Настройка виджета Magento 1 в бэкэнде - как мне двигаться вверх

11

У меня есть настройки виджетов на всех страницах категорий через бэкэнд -> CMS -> Виджеты

Теперь, когда я использую этот метод, я выбираю блок для страниц категорий, и блок хорошо отображается. Это внизу всей другой информации в левом столбце.

Но как мне переместить блок вверх? (выше слоистых и т. д.) ...

Альтернативой является использование local.xml, которое я не предпочитаю +, оно также затем отображается на ВСЕХ моих веб-сайтах, которые используют одну и ту же тему.

snh_nl
источник
3
Возможно, попробуйте использовать custom layout updatesполе в категории, чтобы добавить блок и использовать before=""или after=""для его размещения.
Рик Кейперс

Ответы:

12

Проблема в том, что Magento не имеет контейнера виджетов в верхней части левой колонки. Вы можете создать такой контейнер в два этапа:

  1. Создайте свой контейнерный блок виджетов в файле local.xml :

    <layout>
       <!-- category pages with layered navigation -->
       <catalog_category_layered>
            <update handle="custom_top_container" />
       </catalog_category_layered>
       <!-- category pages without layered navigation -->
       <catalog_category_default>
            <update handle="custom_top_container" />
       </catalog_category_default>
       <!-- custom block container on that page -->
       <custom_top_container>
            <reference name="left">
               <block name="left_top" type="core/text_list" before="-" translate="label">
                    <label>Left Column Top</label>
               </block>
            <reference>
       </custom_top_container>
    </layout>

    В следующем примере catalog_category_default и catalog_category_layered являются дескрипторами для страниц категорий, а дескриптор custom_top_container включен в эти страницы с помощью инструкции обновления макета. Новый блок left_top представляет собой тип Mage_Core_Block_Text_List , который показывает каскадный вывод дочерних блоков, назначенных ему, поэтому он будет пустым, если к нему не добавлен виджет. Теперь, когда макет готов к настройке виджета, проверьте следующий шаг.

  2. Создайте файл widget.xml в каталоге etc вашей темы (если вы не хотите сохранять эту конфигурацию из расширяемой темы, вам необходимо скопировать ее из этой темы в свою). Этот widget.xml должен содержать дополнительную информацию, чтобы Magento знал, какие виджеты поддерживают ваш вновь созданный контейнер:

    <widgets>
        <[widget_id]>
            <supported_blocks>
                <left_column_top>
                    <block_name>left_top</block_name>
                </left_column_top>
             </supported_blocks>
        </[widget_id]>
    </widgets>

    Этот файл конфигурации позволяет Magento знать, какие блоки можно использовать для получения возможного контейнера в панели администратора.

Итак, вы можете зайти в админ-панель и выбрать свой контейнер в верхней части левой колонки для обновления макета виджета.

Иван Чепурный
источник
Спасибо Иван. И мой лучший способ - если мы все равно редактируем local.xml - это также немедленно вызывать блок CMS (только небольшое изображение, которое предназначалось для верхнего левого
угла
2

Вы можете попробовать позвонить в этом блоке, используя

<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('BLOCK_ID_HERE')->toHtml() ?>

Вставьте приведенный выше код в:

интерфейс / по умолчанию / YOURTHEME / шаблон / Каталог / навигация / sidebar.phtml

над кодом, отображающим меню каталога.

Чтобы он не отображался на разных сайтах, используйте разные темы для каждого сайта.

Томас Монган
источник