创建自定义布局模块
Create Custom layout module
您好,我刚刚在 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 时,它不是我的布局。请帮助我知道我的错误。
检查您当前的主题,可能不是default/default。如果不同,只需将布局和模板放在该主题下即可。或者将其放入base/default主题中以兼容所有主题。
确保模块已在 app/etc/modules/Shareino_Sync.xml
中注册。
最后,也许您的模块已禁用输出。转到 System
->Configuration
->Advanced
->Advanced
->Disable Module Output
找到您的模块并确保它已启用。
您应该始终将模块布局文件和模板文件放在 base/default 下,原因是 Magento 的后备主题机制首先在 your_package/your_theme 中查找这些文件,然后在 your_package/default 下然后在 base/default 下。因此,如果您将这些文件放在 default/default 下并且您的包不是默认包,那么这些文件将永远找不到
您好,我刚刚在 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 时,它不是我的布局。请帮助我知道我的错误。
检查您当前的主题,可能不是default/default。如果不同,只需将布局和模板放在该主题下即可。或者将其放入base/default主题中以兼容所有主题。
确保模块已在 app/etc/modules/Shareino_Sync.xml
中注册。
最后,也许您的模块已禁用输出。转到 System
->Configuration
->Advanced
->Advanced
->Disable Module Output
找到您的模块并确保它已启用。
您应该始终将模块布局文件和模板文件放在 base/default 下,原因是 Magento 的后备主题机制首先在 your_package/your_theme 中查找这些文件,然后在 your_package/default 下然后在 base/default 下。因此,如果您将这些文件放在 default/default 下并且您的包不是默认包,那么这些文件将永远找不到