Magento - добавление моего собственного блока контента только на главной странице - PullRequest
3 голосов
/ 21 ноября 2011

Это просто не работает, что бы я ни пытался.

Я установил новый файл по адресу /app/design/frontend/mytemplate/default/template/page/popularsearches.phtml

Я пытаюсь сослаться на обновление макета .XML (из CMS).Код, который я добавляю в обновление макета XML под ссылкой на содержимое, выглядит следующим образом:

<block type="core/template" name="popular_searches" as="popular_searches" template="page/popularsearches.phtml" />

Кто-нибудь может сказать мне, почему он не работает?

Спасибо.

РЕДАКТИРОВАТЬ:

Хорошо, теперь я чувствую себя идиотом, но у меня это работает, и я подумал, что выложу решение, если кто-нибудь придет сюда с такой же проблемой.

Я правильно настроил файл шаблона, и XML-макет был верным, но я нигде не вызывал getChildHtml в шаблоне, чтобы вытянуть содержимое в шаблон.

Чтобы он работал, я добавил следующее в1column.phtml

<?php echo $this->getChildHtml('popularsearches') ?>

Ответы [ 3 ]

2 голосов
/ 21 ноября 2011

Добро пожаловать в ТАК!

Там может быть несколько вещей, происходящих. Предполагая, что ваша страница CMS имеет <reference name="content"><your block code from above /></reference>, вы сделали свой блок дочерним по отношению к контенту, поэтому он должен отображаться вместе с остальным содержимым. Кстати, вам не нужно указывать псевдониму вашего блока (атрибут as = "").

1-й шаг: обновите кэш макета в разделе «Система»> «Управление кэшем».

2-й шаг: проверьте var/log/system.log и посмотрите, получаете ли вы Недопустимый шаблон предупреждение; опечатки / неправильные пути к файлам часто являются проблемой. Если ваш шаблон не найден, проверьте настройки пакета и темы. Кстати, вполне уместно добавить этот новый шаблон в тему base / default.

3-ий шаг: если ваш шаблон содержит PHP, закомментируйте его и посмотрите, сможете ли вы получить обычный HTML для рендеринга. Если это так, в вашем коде есть проблема. Вы можете включить режим разработчика, добавив SetEnv MAGE_IS_DEVELOPER_MODE или изменив логику в index.php, если хотите. Если это производственная версия, очевидно, используйте режим разработчика для своего IP.

0 голосов
/ 27 марта 2015

Вы можете добавить контент, сначала создав статический блок с вашим конкретным контентом, а затем вызвав его через ссылочный вызов в макете cms xml.

Выполните поиск в блоке cms и задайте для своего блока содержимого тот же элемент.

Вы также можете обратиться за справкой http://prashantpandeytech.blogspot.in/2015/03/magento-add-seo-content-to-home-page-end.html

0 голосов
/ 05 декабря 2013

Поскольку прошло уже 2 года с тех пор, как это было опубликовано, я уверен, что вы уже поняли это, но может быть, вы используете

<?php echo $this->getChildHtml('popularsearches') ?>

вместо

<?php echo $this->getChildHtml('popular_searches') ?>

?

В вашем коде в XML-коде обновления макета для имени указано «популярные_поиски» (без подчеркивания), а не «популярныепоиски».

...