Макет не отображается на внешнем модуле 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 Местоположение 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');
    }
}
?>

Где я ошибаюсь в коде?


person Lazy Lion    schedule 01.10.2014    source источник
comment
Есть пара вещей, которые выделяются: ваш файл макета называется saleus.xml, но в вашем config.xml он указан как sales.xml. Также в вашем config.xml отсутствует закрывающий тег ‹/config›, и, наконец, ваш файл phtml указан как saleus.xml, но должен иметь расширение .phtml, чтобы соответствовать определению шаблона вашего блока.   -  person fracture    schedule 01.10.2014
comment
Пожалуйста, измените весь код, но получите тот же   -  person Lazy Lion    schedule 01.10.2014
comment
@LazyLion Активируйте журналы в magento и следите за ними. Обычно туда выкидывают ошибки верстки. Кроме того, измените «SaleWithus_index_index» на «saleWithus_index_index» в макете xml.   -  person aki    schedule 01.10.2014
comment
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 версия=1.0? в F:\xampp\htdocs\magento\test2\app\code\core\Mage\Core\Model\Layout\Update.php в строке 450, не могли бы вы помочь мне с этой ошибкой   -  person Lazy Lion    schedule 01.10.2014
comment
до сих пор я не могу получить какую-либо ошибку или какой-либо вывод   -  person Lazy Lion    schedule 01.10.2014


Ответы (2)


В 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>

Измените имя файла шаблона ur, как показано ниже: app/design/frontend/base/default/template/SaleWithus/salewithus.phtml

Layout.xml, как показано ниже: Расположение: app/design/frontend/base/default/layout/salewithus.xml

person Pavan Kumar    schedule 02.10.2014

Есть некоторые серьезные проблемы с вашим 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> 
person TTech IT Solutions    schedule 01.10.2014