Добавление файла шаблона на страницу учетной записи клиента
Я добавляю один файл phtml на страницу индекса панели мониторинга учетной записи клиента. Я использовал код как
<customer_account_index>
<reference name="customer_account_dashboard">
<block type="ecustomers/myphtml" name="myphtml_page" after="customer_account_dashboard_hello" template="ecustomers/myphtml.phtml" />
</reference>
</customer_account_index>
И я хочу показать phtml после hello.phtml на панели управления пользователя.
Если я использую дескриптор <reference name="content">
, то он показывает мое содержимое phtml, но если я использую дескриптор <reference name="customer_account_dashboard">
, он не показывает мой файл phtml.
Я думаю, что мы можем использовать ссылку для блока, который мы хотим обновить, так как я хочу обновить customer_account_dashboard
, поэтому я сослался на него. Пожалуйста, дайте мне знать, если я здесь что-то не так.
1 answers
В вашем xml нет ничего плохого, кроме того факта, что before="" здесь не будет иметь никакой функции.
Проблема в том, что блок панели мониторинга не является основным типом блока текстового списка. Таким образом, phtml, который работает с дисплеем панели мониторинга, не будет "волшебным образом" выводить ваш блок.
Вам нужно добавить запись в файл dashboard.phtml, чтобы отобразить ваш блок.
<?php echo $this->getChildHtml('myphtml_page') ?>
И поместите его в правильное положение над кодом, выводящим привет блок
Естественно, вы скопируете файл dashboard.phtml в свою тему, чтобы внести это изменение;)
ИЗМЕНИТЬ: Добавлено для ответа на вопрос ОП о списке основного текста
Основной текстовый список - это класс magento, который содержит список дочерних блоков и будет генерировать объединенный HTML-вывод всех дочерних блоков в виде одного HTML-блока.
Хорошим примером одного из них является "before_body_end", как определено в макете page.xml файл
<block type="core/text_list" name="before_body_end" as="before_body_end" translate="label">
<label>Page Bottom</label>
</block>
Таким образом, когда вы назначаете ребенка блокируйте производный блок core/text_list, для вас будет сгенерирован HTML-код ребенка.
Вы найдете "волшебство" в списке Mage_Core_Block_Text_List::_tohtml()