Magento 2: Додавання статичних блоків до певного розділу сторінок із користувацьким розміщенням файлу xml-файлу


16

У magento 1.x можна додати статичний блок, використовуючи файл макета xml.

<reference name="root">
        <block type="cms/block" name="name">
            <action method="setBlockId"><block_id>static-block-id</block_id></action>
        </block>
</reference>

Але, в magento 2, як ми можемо цього досягти?

Відповіді:


25

Нарешті я отримав рішення. Статичний блок можна викликати наступним чином.

<referenceContainer name="footer">
    <block class="Magento\Store\Block\Switcher" name="store_switcher" as="store_switcher" after="footer_links" template="switch/stores.phtml"/>

     <block class="Magento\Cms\Block\Block" name="test">
        <arguments>
            <argument name="block_id" xsi:type="string">promo</argument>
        </arguments>
    </block>
</referenceContainer>

Як ви дізналися посилання?
Стіві Г

@StevieG Знайдіть або прочитайте за замовчуванням реалізацію XML, щоб ви знали, як все створено (що дуже корисно робити на тривалий термін).
Мельвін

8

Зробити це можна легко з панелі адміністратора, виконавши наведені нижче дії.

  1. Перейдіть до Змісту -> Віджети
  2. Додати новий віджет
  3. Виберіть тип як статичний блок CMS
  4. Виберіть Дизайн-пакет / Тема та продовжте
  5. Набір Widget Title, Storeі Sort orderв Storefront propertiesзакладці
  6. Виберіть статичний блок на Widget optionsвкладці
  7. Збережіть віджет
  8. Натисніть на Add Layout Updateкнопку
  9. Виберіть "Опція" зі Display onспадного меню, наприклад: Specific pageдля відображення блоку у специфіці

  10. Виберіть Сторінка зі Pageспадного меню

  11. Виберіть контейнер зі Containerспадного меню
  12. зберегти віджет

Це корисно лише для сторінок CMS. Чи можемо ми використовувати його і в нашому спеціальному модулі xml?
Молебний Раджпут

Я надав лише приклад сторінки cms, ви можете використовувати її для кожного можливого модуля чи сторінки. Ви можете отримати ідею, переглянувши список опцій у спадному меню "Дисплей у
спаді"

Це чудово, чисто і просто. Дякую.
dawhoo

5

Якщо ви хочете зателефонувати на статичний блок на 2-му стовпці зліва, ви можете просто зробити це, використовуючи,

тут нижче ви можете змінити quickblockсвій ідентифікатор статичного блоку.

<referenceContainer name="sidebar.main">
            <block class="Magento\Cms\Block\Block" name="quick-block">
                <arguments>
                    <argument name="block_id" xsi:type="string">quickblock</argument>
                </arguments>
            </block>
</referenceContainer>

Над блоком працює чудово для двох стовпців-зліва з бічною панеллю.


Привіт Якщо тоді ми хочемо викликати статичний блок лише для макета сторінки категорії? Я зателефонував статичному блоку в XML з sidebar.additional, але він не працює. Що може бути причиною?
джек

@Rakesh, <? Php echo $ this-> getLayout () -> createBlock ('Magento \ Cms \ Block \ Block') -> setBlockId ('identiefier_id') -> toHtml (); ?> Я використав у success.phtml, його не працює
jafar pinjar

2

У наведеному нижче коді змініть "block_identifier" з блоку CMS, створеного на інформаційній панелі magento, і додайте його до layout.xml. Це працює.

<referenceContainer name="footer">
       <block class="Magento\Cms\Block\Block" name="block_identifier">
            <arguments>
                <argument name="block_id" xsi:type="string">block_identifier</argument>
            </arguments>
        </block>
    </referenceContainer>
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.