我有一个控制器,它有以下代码:
class Company_ModuleName_NameController extends Mage_Core_Controller_Front_Action
{
public function indexAction()
{
$this->loadLayout();
$this->renderLayout();
}
}
然后我在config.xml中配置了布局XML。现在我想添加指向。phtml文件的块,当用户访问我的控制器时,。phtml文件将显示给用户。
首先你应该为你的控制器定义布局句柄:
:
<modulename_name_index>
</modulename_name_index>
你应该定义你想要显示的位置:content, left, right, another block:
<modulename_name_index>
<reference name="content">
</reference name="content">
</modulename_name_index>
然后定义将显示的块:
<modulename_name_index>
<reference name="content">
<block type="module/blockname" name="blockname" template="templatedir/templatefile.phtml"/>
</reference name="content">
</modulename_name_index>
其中module/blockname是你的块的名称。在示例文件中应该像这样:
公司/ModuleName/块/Blockname.php。你的config.xml也应该被正确定义,这样magento就可以理解"模块"的东西,它应该加载你的类。像这样:
<global>
...
<blocks>
<module>
<class>Company_Module_Block</class>
</module>
</blocks>
...
</global>
更新1
如果你想简单地渲染一些内容,那么你可以使用Magento的默认块类:
core/template or Mage/Core/Block/Template
这就是你的xml文件的样子:
<modulename_name_index>
<reference name="content">
<block type="core/template" name="blockname" template="templatedir/templatefile.phtml"/>
</reference name="content">
</modulename_name_index>
但是如果你的。php文件中有如下内容:
$this->getSomethingSpecificValueForCurrentDisplay()
这行不通。另一方面,如果你的php中有非常简单的php,像下面这样,你不需要自定义块。
<?php for(i = 0; i++; i< 10){ ?>
<?php echo "Hello mates" ?>
<?php } ?>