【问题标题】:Create Custom layout module创建自定义布局模块
【发布时间】:2016-10-12 04:56:20
【问题描述】:

您好,我刚刚在 magento 中创建了自定义模块,但它的前端不起作用。

配置文件:

<?xml version="1.0"?>
<config>
<modules>
    <Shareino_Sync>
        <version>0.1.0</version>
    </Shareino_Sync>
</modules>

<global>
     <helpers>
        <sync>
            <class>Shareino_Sync_Helper</class>
        </sync>
    </helpers>
    <blocks>
        <sync>
            <class>Shareino_Sync_Block</class>
        </sync>
    </blocks>
</global>
<frontend>
    <routers>
        <sync>
            <use>standard</use>
            <args>
                <module>Shareino_Sync</module>
                <frontName>shareinosync</frontName>
            </args>
        </sync>
    </routers>
    <layout>
        <updates>
            <sync>
                <file>shareino_front.xml</file>
            </sync>
        </updates>
    </layout>
</frontend>

</config>

布局文件:

# File in : app/design/frontend/default/default/layout/shareino_front.xml
<layout version="0.1.0">
    <sync_index_index>
        <reference name="content">
            <block type="sync/sync" name="sync" template="sync_index.phtml" />
        </reference>
    </sync_index_index>
</layout>

还有sync_index.phtml

# file in app/design/frontend/default/default/template/sync_index.phtml
<h1>
    Test Text
</h1>

我创建了一个名为Sync.php的块

class Shareino_Sync_Block_Sync extends Mage_Core_Block_Template
{
    public function myfunction()
    {
        return "Hello tuts+ world";
    }
}

最后我的控制器:

class Shareino_Sync_IndexController extends Mage_Core_Controller_Front_Action
{
    public function indexAction(){

            $this->loadLayout();


            $this->renderLayout();

    }
    public function testAction(){
        echo "index Action";
    }
}

我认为我做得很好,但是当我在浏览器中加载操作 url 时,它不是我的布局。请帮助我了解我的错误。

【问题讨论】:

    标签: magento magento-1.9 magento-layout-xml


    【解决方案1】:

    检查您当前的主题,也许它不是默认/默认。如果不同,只需将布局和模板放在此主题下即可。或者将其放入 base/default 主题中以兼容所有主题。

    确保模块在app/etc/modules/Shareino_Sync.xml注册。

    最后,也许你的模块被禁用了输出。转到System->Configuration->Advanced->Advanced->Disable Module Output 找到您的模块并确保它已启用。

    【讨论】:

      【解决方案2】:

      您应该始终将模块布局文件和模板文件放在 base/default 下,原因是 Magento 的后备主题机制首先在 your_package/your_theme 中查找这些文件,然后在 your_package/default 下查找这些文件,然后在 base/default 下查找。因此,如果您将这些文件放在默认/默认下并且您的包不是默认的,则永远不会找到这些文件

      【讨论】:

        猜你喜欢
        • 2013-10-25
        • 1970-01-01
        • 1970-01-01
        • 2018-01-23
        • 2012-10-28
        • 1970-01-01
        • 2016-01-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多