2012-06-13 2 views
0

Я довольно новичок в Magento, и я начал учиться создавать пользовательские модули для интерфейса. Я следил за несколькими гидами, и по какой-то причине никто из них не работает. Кажется, что loadLayout и renderLayout вызывают проблемы. Я не уверен, что это потому, что у меня есть файл в неправильном месте или проблема. Я пробовал загружать страницы magento.x/helloworld magento.x/helloworld/index magento.x/index.php/helloworld. Я получаю сломанную версию сайта по умолчанию. Если я заменил lLayout и rLayout на эхо, это будет отлично. Это то, что у меня есть:Невозможно создать пользовательский модуль в Magento

приложение/код/​​местные/Wrapids/Helloworld/и т.д./config.xml

<config> 
<modules> 
    <Wrapids_Helloworld> 
     <version>0.1.0</version> 
    </Wrapids_Helloworld> 
</modules> 
<frontend> 
    <routers> 
     <helloworld> 
      <use>standard</use> 
      <args> 
       <module>Wrapids_Helloworld</module> 
       <frontName>helloworld</frontName> 
      </args> 
     </helloworld> 
    </routers> 
    <layout> 
     <updates> 
      <helloworld> 
       <file>helloworld.xml</file> 
      </helloworld> 
     </updates> 
    </layout> 
</frontend> 
</config> 

приложения/код/​​местные/Wrapids/HelloWorld/контроллеры/IndexController.php

<?php 
class Wrapids_Helloworld_IndexController extends Mage_Core_Controller_Front_Action 
    { 
    public function indexAction() 
    { 
     $this->loadLayout(); 
     $this->renderLayout(); 
    } 
    } 
?> 

/app/design/frontend/default/default/template/helloworld/page.phtml

text 

приложение/дизайн/интерфейс/по умолчанию/де неисправность/макет/helloworld.xml

<?xml version="1.0" encoding="UTF-8"?> 
<layout version="0.1.0"> 
    <default> 
     <reference name="content"> 
      <block type="helloworld/helloworld" name="hello" template="helloworld/page.phtml"> 
     </reference> 
    </default> 
</layout> 

приложение/код/​​местные/Wrapids/Helloworld/Block/Helloworld.php

<?php 
    class Wrapids_Helloworld_Block_Helloworld extends Mage_Core_Block_Template 
    { 
    } 
?> 
+0

Вы закрывающий тег для разметки XML (приложение/дизайн/интерфейс/по умолчанию/по умолчанию/макет/helloworld.xml) сломано, проверьте, если это проблема. –

+0

Упс, нет. Типично, когда я вошел сюда. – Sturm

+0

Проблема в вашем файле макета. Прежде всего, вы удаляете корневой узел, насколько я помню, это главный узел. И я не вижу в макете. –

ответ

2

Я не совсем понял, ваша цель, но вам можно попробовать:
приложение/дизайн/интерфейс/по умолчанию/по умолчанию/макет/helloworld.xml

<layout version="0.1.0"> 
    <default> 
     <reference name="root"> 
      <action method="setTemplate"><template>helloworld/page.phtml</template></action> 
     </reference> 
    </default> 
</layout> 
+0

Не могли бы вы объяснить, что это работает при использовании ? – Sturm

+0

Хотите заменить блок для этого шаблона, например diNord

+0

До сих пор изменение любого типа не имеет значения, ничего, что использует type = "", пока не работает. Только вышеуказанный метод с Sturm

0

Вы добавили Wrapids_Helloworld.xml файл в приложение/и т.д./модулей с следующий код? Это должно присутствовать для того, чтобы загрузить модуль

<?xml version="1.0"?> 
<config> 
    <modules> 
     <Wrapids_Helloworld> 
      <active>true</active> 
      <codePool>local</codePool> 
     </Wrapids_Helloworld> 
    </modules> 
</config> 
+0

Да, я упоминал в сообщении, что он работал с эхом, я не чувствовал, что мне нужно добавить этот код. – Sturm

+1

Я скопировал эти файлы в одну из моих локальных настроек magento (корпоративная версия) и устранил проблемы с корневым блоком. Удаление нижнего колонтитула показало страницу без нижнего колонтитула. Кажется, все работает. Чтобы определить действие, я использовал '' и внутри ''. С этим в '/ helloworld/index/index' я видел страницу без нижнего колонтитула. – Zefiryn

1

переместить шаблон и компоновки файлов [your_package]/по умолчанию или [your_package]/[your_theme]