Magento正在显示我的模块页面,但只显示页眉,页脚和侧边栏。我的页面内容未显示。经过大量的检查和重新检查,我发现我的文件没有任何问题,但似乎没有调用布局文件。
直接从我的控件回调返回预期结果
直接从我的块回复不会返回任何结果
中断layout.xml不会返回任何异常。
中断config.xml会在system.log中返回404和错误
var_dump(Mage::getSingleton('core/layout')->getUpdate()->getHandles());
显示以下内容
array
0 => string 'default' (length=7)
1 => string 'STORE_default' (length=13)
2 => string 'THEME_frontend_default_default' (length=30)
3 => string 'prefs_index_signup' (length=18)
4 => string 'customer_logged_in' (length=18)
这个模块以前曾经工作过,我无法弄清楚已经改变了什么。我还将我当前的代码与我在git的repo中的代码进行了比较,但似乎没有什么区别,显然有些事情发生了变化,我还能检查什么?
应用程序/设计/前端/碱/默认/布局/ ps_prefs /的prefs.xml
<layout>
<prefs_index_signup>
<reference name="content">
<block type="prefs/signup" name="prefs_new" template="ps/prefs/new.phtml" />
</reference>
</prefs_index_signup>
</layout>
应用程序/代码/本地/ PS /偏好设置/砌块/ Signup.php
class Ps_Prefs_Block_Signup
extends Mage_Core_Block_Template
{
public $key;
public $locale;
public function _construct()
{
$this->setKey();
$this->getLocale();
}
应用程序/代码/本地/ PS /偏好设置的/ etc / config.xml中
<config>
<global>
<models>
<prefs>
<class>Ps_Prefs_Model</class>
<resourceModel>prefs_resource</resourceModel>
</prefs>
<prefs_resource>
....resources.....
</prefs_resource>
</models>
<blocks>
<prefs>
<class>Ps_Prefs_Block</class>
</prefs>
</blocks>
</global>
<frontend>
<layout>
<updates>
<prefs>
<file>ps_prefs/prefs.xml</file>
</prefs>
</updates>
</layout>
<routers>
<prefs>
<use>standard</use>
<args>
<module>Ps_Prefs</module>
<frontName>prefs</frontName>
</args>
</prefs>
</routers>
</frontend>
</config>
应用程序/代码/本地/ PS /偏好设置/控制器/索引控制器
class Ps_Prefs_IndexController
extends Mage_Core_Controller_Front_Action
{
public function signupAction()
{
$this->loadLayout()->renderLayout();
}
答案 0 :(得分:0)
看起来你没有提到引用root。
<reference name="root">
<action method="setTemplate"><template>page/2columns-right.phtml</template></action>
</reference>
同样尝试从下面渲染布局,我在我的页面中使用它,它正在工作。
$this->loadLayout();
$this->renderLayout();
希望这会对你有所帮助。
干杯!