Я использую Magento версии 1.8.1.0.
Я пытаюсь создать новый настраиваемый блок-модуль, который я буду использовать для создания новой домашней страницы.
Это то, что у меня есть до сих пор:
\ Приложение \ и т.д. \ модули \ Crusader_All.xml
<?xml version="1.0"?> <config> <modules> <Crusader_CLHomePage> <active>true</active> <codePool>local</codePool> </Crusader_CLHomePage> </modules> </config>
\ Приложение \ код \ Local \ Crusader \ CLHomePage \ и т.д. \ config.xml
<?xml version="1.0"?> <config> <modules> <Crusader_CLHomePage> <version>0.0.1</version> </Crusader_CLHomePage> </modules> <global> <blocks> <crusaderhome> <class>Crusader_CLHomePage_Block</class> </crusaderhome> </blocks> </global> </config>
\ Приложение \ код \ Local \ Crusader \ CLHomePage \ Block \ Qwerty.php
<?php class Crusader_CLHomePage_Block_Qwerty extends Mage_Core_Block_Template { // Methods (optional) } ?>
\ Приложение \ дизайн \ интерфейс \ крестоносец \ умолчанию \ расположение \ local.xml
<?xml version="1.0" ?> <layout> <cms_index_index> <reference name="content"> <block type="core/template" name="homepage" template="crusader/home.phtml"> <block type="crusaderhome/qwerty" name="homeads" as="homeads" template="crusader/homeads.phtml" /> </block> </reference> </cms_index_index> </layout>
\ Приложение \ дизайн \ интерфейс \ крестоносец \ умолчанию \ шаблон \ крестоносец \ home.phtml
<div id="home"> <p>Home Wrapper</p> <?php echo $this->getChildHtml('homeads'); ?> </div>
\ Приложение \ дизайн \ интерфейс \ крестоносец \ умолчанию \ шаблон \ крестоносец \ homeads.phtml
<p>Adverts</p>
Теперь, с приведенным выше, моя домашняя страница показывает только «Home Wrapper», поэтому отображается содержимое home.phtml
, но не содержимое homeads.phtml
.
Если я изменяю тип блока для homeads
на core/template
, он работает, и я вижу как «Home Wrapper», так и «Adverts». Поэтому я знаю, что проблема связана с ссылкой на мой новый тип блока (так называемый crusaderhome).
Что я здесь делаю неправильно? ..
Прежде всего
изменить \app\etc\modules\Crusader_All.xml
на
\app\etc\modules\Crusader_CLHomePage.xml
используйте cLHomePage
(проверьте соглашение об именах. Вы должны использовать строчные буквы, такие как Clhomepage
), скорее crusaderhome
в типе блока.
в
<block type="crusaderhome/qwerty" name="homeads" as="homeads" template="crusader/homeads.phtml" />
Я нашел ответ после публикации на веб-сайте обмена Magento:
https://magento.stackexchange.com/questions/18098/magento-new-custom-block-module
Это был компилятор Magento, как только я отключил компилятор, похоже, он работает.
Администратор> Система> Инструменты> Компиляция