Добавление файла шаблона на страницу учетной записи клиента


Я добавляю один файл 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, поэтому я сослался на него. Пожалуйста, дайте мне знать, если я здесь что-то не так.

Author: MagentoBoy, 2014-01-22

1 answers

В вашем xml нет ничего плохого, кроме того факта, что before="" здесь не будет иметь никакой функции.

Проблема в том, что блок панели мониторинга не является основным типом блока текстового списка. Таким образом, phtml, который работает с дисплеем панели мониторинга, не будет "волшебным образом" выводить ваш блок.

Вам нужно добавить запись в файл dashboard.phtml, чтобы отобразить ваш блок.

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

И поместите его в правильное положение над кодом, выводящим привет блок

Естественно, вы скопируете файл dashboard.phtml в свою тему, чтобы внести это изменение;)

netbeans debug showing child blocks

ИЗМЕНИТЬ: Добавлено для ответа на вопрос ОП о списке основного текста

Основной текстовый список - это класс 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()

 3
Author: ProxiBlue, 2014-01-23 01:54:12