布局未显示在前端模块magento上


Layout not display on frontend Module magento

在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定位应用程序/design/frontend/base/default/template/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');
    }
}
?>

代码哪里出了问题?

在Magento中,除了类名之外,最好将所有内容都设置为小写字母。函数名称也必须仅使用camelCase字母。

上面的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如下路径:位置:app/design/frontend/base/default/layout/salewithus.xml

您的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>