magento показать / визуализировать один (1) блок в двух (2) местах одновременно

0

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

В ответной теме magento я хочу, чтобы блок topLinks отображался как в чувствительном меню, которое отображается только в мобильном режиме, так и в нижнем колонтитуле. Поскольку оба этих объекта контролируются css и шириной страницы, мне нужно, чтобы они отображались в шаблоне одновременно. У меня это есть в page.xml

<block type="page/html_header" name="header" as="header">
    <... lots of other stuff ...>
    <block type="page/template_links" name="top.links" as="topLinks"/>
    <... lots of other stuff ...>
</block>

Это работает отлично, когда я вызываю <?php echo $this->getChildHtml('topLinks');?> <?php echo $this->getChildHtml('topLinks');?>, но когда я помещаю следующее, также в page.xml только нижний колонтитул, а заголовка нет.

<block type="page/html_footer" name="footer" as="footer" template="page/html/footer.phtml">
    <... lots of other stuff ...>
    <block type="page/template_links" name="top.links" as="topLinks"/>
    <... lots of other stuff ...> -->
</block>

Что я делаю неправильно, или как мне клонировать результаты одного блока во втором месте?

  • 0
    Я считаю, что это конфликт с именем или разделом «как». Попробуйте изменить один или оба в нижней части (а также имя, используемое в getChildHtml.
  • 0
    Я попробовал это ... Я изменил блок нижнего колонтитула в page.xml на as = "topLinksCopy" и изменил имя в footer.phtml, и он рендерится, но он также останавливает рендеринг заголовка. Если вы измените name = "top.links", то вы нарушите функциональность, так как фактические ссылки добавляются другими модулями, используя действие addLink для top.links.
Показать ещё 1 комментарий
Теги:
magento
zend-framework

1 ответ

1

khartnett, спасибо за ваш ответ. Решение найдено здесь: как отображать toplinks на нижнем колонтитуле в magento?

чтобы быть ясным, это то, что я сделал:

1) удалите <block type="page/template_links" name="top.links" as="topLinks"/> из нижнего колонтитула в page.xml

2) сохранить <?php echo $this->getChildHtml('topLinks');?> <?php echo $this->getChildHtml('topLinks');?> как есть в footer.phtml

3) Создайте новый файл макета в своей настраиваемой теме local.xml со следующим кодом:

<?xml version="1.0" encoding="UTF-8"?>
<layout>
    <default>
        <reference name="footer">
            <action method="insert">
                <block_name_to_insert>top.links</block_name_to_insert>
                <sort_relative_to_other_childname/>
                <sort_before_or_after/>
                <alias>topLinks</alias>
            </action>
        </reference>
    </default>
</layout>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню