布局不显示在前端模块 magento
Posted
技术标签:
【中文标题】布局不显示在前端模块 magento【英文标题】:Layout not display on frontend Module magento 【发布时间】:2014-11-25 23:04:32 【问题描述】:magento 模块中的前端无法加载布局存在一些问题。
config.xml
<?xml version="1.0" encoding="UTF-8"?>
<config>
<modules>
<Way_SaleWithus>
<version>1.0.0</version>
</Way_SaleWithus>
</modules>
<frontend>
<routers>
<SaleWithus>
<use>standard</use>
<args>
<module>Way_SaleWithus</module>
<frontName>SaleWithus</frontName>
</args>
</SaleWithus>
</routers>
<layout>
<updates>
<SaleWithus>
<file>SaleWithus.xml</file>
</SaleWithus>
</updates>
</layout>
</frontend>
</config>
SaleWithus.xml 位置:app/design/frontend/base/default/layout/SaleWithus.xml
<?xml version="1.0" encoding="UTF-8"?>
<layout version="0.1.0">
<SaleWithus_index_index>
<reference name="content">
<block type="core/template" name="SaleWithus" template="SaleWithus/SaleWithus.phtml" />
</reference>
</SaleWithus_index_index>
</layout>
SaleWithus.phtml 位置 app/design/frontend/base/default/template/SaleWithus/SaleWithus.phtml
<div>
<h4>Hello World!!</h4>
</div>
IndexController.php
<?php
class Way_SaleWithus_IndexController extends Mage_Core_Controller_Front_Action
public function indexAction()
// if ($this->_getSession()->isLoggedIn())
// $this->_redirect('*/*/');
// return;
//
// $this->getResponse()->setHeader('Login-Required', 'true');
// $this->loadLayout();
// $this->_initLayoutMessages('customer/session');
// $this->_initLayoutMessages('catalog/session');
// $this->renderLayout();
$this->loadLayout();
$this->renderLayout();
echo "subhash";
protected function _getSession()
return Mage::getSingleton('customer/session');
?>
我的代码哪里出错了?
【问题讨论】:
有几件事很突出,您的布局文件称为 saleus.xml,但在您的 config.xml 中它被列为 sales.xml。此外,您的 config.xml 缺少结束 标记,最后列出的 phtml 文件被命名为 saleus.xml,但应具有扩展名 .phtml 以匹配块的模板定义。 现在请更改所有代码,但要保持不变 @LazyLion 在 magento 中激活日志并密切关注它们。通常在那里抛出布局错误。此外,在布局 xml 中将“SaleWithus_index_index”更改为“saleWithus_index_index”。 2014-10-01T08:15:30+00:00 ERR (3):警告:simplexml_load_string():实体:第 1 行:解析器错误:XML 声明仅在文档开头允许在 F:\xampp\htdocs\magento\test2\app\code\core\Mage\Core\Model\Layout\Update.php 行 450 2014-10-01T08:15:30+00:00 ERR (3):警告:simplexml_load_string():<?xml version="1.0"?>在第 450 行的 F:\xampp\htdocs\magento\test2\app\code\core\Mage\Core\Model\Layout\Update.php 你能帮我解决这个错误吗 现在我仍然无法得到任何错误或任何输出 【参考方案1】:您的 xml 存在一些重大问题,应该如下所示。
<?xml version="1.0"?>
<config>
<modules>
<Way_SaleWithus>
<version>0.1.0</version>
</Way_SaleWithus>
</modules>
<frontend>
<routers>
<salewithus>
<use>standard</use>
<args>
<module>Way_SaleWithus</module>
<frontName>salewithus</frontName>
</args>
</salewithus>
</routers>
<layout>
<updates>
<salewithus>
<file>salewithus.xml</file>
</salewithus>
</updates>
</layout>
</frontend>>
</config>
【讨论】:
【参考方案2】:在 Magento 中,除了类名,最好用小写字母设置。函数名称也只能是驼峰字母。
上面的 config.xml 混淆了所有类型的英文字母大小写。问题来了。如果一切正常,layout.xml 必须如下:
<?xml version="1.0" encoding="UTF-8"?>
<layout version="0.1.0">
<salewithus_index_index>
<reference name="content">
<block type="core/template" name="salewithus" template="SaleWithus/salesithus.phtml" />
</reference>
</salewithus_index_index>
</layout>
Config.xml 必须如下:
<?xml version="1.0"?>
<config>
<modules>
<Way_SaleWithus>
<version>0.1.0</version>
</Way_SaleWithus>
</modules>
<frontend>
<routers>
<salewithus>
<use>standard</use>
<args>
<module>Way_SaleWithus</module>
<frontName>salewithus</frontName>
</args>
</salewithus>
</routers>
<layout>
<updates>
<salewithus>
<file>salewithus.xml</file>
</salewithus>
</updates>
</layout>
</frontend>>
</config>
修改你的模板文件名,如下路径:app/design/frontend/base/default/template/SaleWithus/salewithus.phtml
Layout.xml 如下路径:Location : app/design/frontend/base/default/layout/salewithus.xml
【讨论】:
以上是关于布局不显示在前端模块 magento的主要内容,如果未能解决你的问题,请参考以下文章
为啥我的属性在 Magento 1.9.1.0 前端显示位置不正确?
Magento中的Authorize.net付款在选择时不显示信用卡表格