W Magento 2 bloki CMS najczęściej używane są bezpośrednio w layoutach XML, jednak czasami zachodzi potrzeba wyświetlenia bloku CMS bezpośrednio w pliku PHTML np. przy warunkowej logice. W tym wpisie przybliżymy jak poprawnie wywołać blok CMS w plikach .phtml.
Wyświetlanie bloku CMS w .phtml
<?php
echo $this->getLayout()
->createBlock('Magento\Cms\Block\Block')
->setBlockId('id_bloku_cms')
->toHtml();
?>
W miejscu „id_bloku_cms” podajemy ID bloku statycznego CMS. Ważne – wprowadzamy identyfikator ustalony po stronie panelu, nie ID z bazy danych.
Wywołanie bloku CMS na stronie CMS
Jeśli blok CMS ma być użyty wewnątrz treści strony CMS, należy skorzystać z dyrektywy:
{{block class="Magento\\Cms\\Block\\Block" block_id="id_bloku_cms"}}
Wywołanie statycznego bloku CMS za pomocą pliku xml
<referenceContainer name="product.info.main">
<block class="Magento\Cms\Block\Block" name="block_identifier">
<arguments>
<argument name="block_id" xsi:type="string">id_bloku</argument>
</arguments>
</block>
</referenceContainer>
Tak. W pliku .phtml możesz dodać dowolną logikę PHP np. sprawdzenie: typu produktu, danej cechy produktu, atrybutu klienta itd.).
Tak. Wszystkie opisane metody są zgodne z każdą wersją Magento 2.
Ponieważ treść umieszczona w bloku CMS nie wymaga deployu kodu po zmianie i może być dowolnie modyfikowana przez administratora (bezpośrednio z poziomu panelu).
Dodaj komentarz