如何在magento中加载自定义模块的phtml

时间:2014-10-21 11:16:47

标签: php xml magento

我需要知道如何在自定义模块上加载phtml ...

我需要在我的块上加载phtml文件...在magento中

我的代码如下......我正在为我的学习创建模块

目的.....

在自定义块中加载phtml的最佳方法是什么......

如果我有模特,控制器就像其他mvc ......

那么在magento中需要阻止什么..

my controller
-----------
class Packt_New_IndexController extends Mage_Core_Controller_Front_Action
{
public function indexAction()
{
echo "this is my new controller ";
}
    public function newAction(){

        $this->loadLayout();
        $this->renderLayout();

    }


}

my config.xml
----------------
<?xml version="1.0" encoding="UTF-8" ?>
<config>
    <!-- module configuration -->
    <modules>
        <Packt_New>
            <version>0.0.1</version>
        </Packt_New>
    </modules>
    <!-- module configuration end -->
    <global>
        <blocks>
            <new>
                <class>Packt_New_Block</class>
            </new>
         </blocks>
         <helpers>
            <new>
                <class>Packt_New_Helper</class>
            </new> 
        </helpers>
        <models>
            <new>
                <class>Packt_New_Model </class>
            </new>
        </models>
    </global>
    <frontend>
        <routers>
            <new>
                <use>standard</use>
                <args>
                    <module>Packt_New</module>
                    <frontName>new</frontName>  
                </args>
            </new>
        </routers>
        <layout>
        <updates>
            <new>
                <file>new.xml</file>
            </new>
        </updates>
        </layout>
    </frontend>

</config>


my layout.xml
---------------------
<?xml version="1.0" encoding="UTF-8"?>
<layout>
   <!-- <default>
        <remove name="header"/>
    </default>-->
    <new_index_new>
        <refrence name="root">
            <action method="setTemplate">
                <template>page/2columns-right.phtml</template>
            </action>
        </refrence>
        <refrence name="content">
            <block type="new/newproducts" name="block_newproducts" template="new/new.phtml"></block>
        </refrence>
    </new_index_new>
</layout>

this is my block
-------------------
class Packt_New_Block_Newproducts extends Mage_Core_Block_Template
{



}

2 个答案:

答案 0 :(得分:0)

config.xml,如

   <layout>
        <updates>
            <unique_identifier module="YourNameSpace_Test">
                <file>yournamespace_test.xml</file>
            </unique_identifier>
        </updates>
    </layout>

应用程序/设计/前端/默认/默认/布局/ yournamespace_test.xml

<?xml version="1.0" encoding="UTF-8"?>
<layout version="0.1.0">
    <catalog_category_view>
        <reference name="content"> <!-- block name inside which you need to display hello world -->
            <action method="setTemplate">
                <template>yournamespace_test/catalog/yournamespace_test.phtml</template>
            </action>
        </reference>
    </catalog_category_view>
</layout>

More info to go

答案 1 :(得分:0)

在magento中,布局很复杂。 它遵循mvc结构,略有不同

在其他框架中,我们有一个控制器用于渲染的视图。

在magento中我们有不同的结构。说一个页面,它分为许多块。此块在布局中的默认处理程序或布局中的自定义处理程序中定义。

您使用的

new_index_new是自定义处理程序的示例。因此定义了引用,例如head,content。我们使用添加此处理程序来保存一些引用。这将有块详细信息。

因此,页面通常有各种块需要呈现作为magento模板文件的phtml文件。

我希望你能得到答案。另外,请浏览一些magento的博客