Magento 2: Thêm các khối tĩnh vào phần cụ thể của trang với tệp xml bố cục mô-đun tùy chỉnh


16

Trong magento 1.x có thể thêm một khối tĩnh bằng tệp bố cục xml.

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

Nhưng, trong magento 2 làm thế nào chúng ta có thể đạt được nó?

Câu trả lời:


25

Cuối cùng tôi đã có giải pháp. Bạn có thể gọi khối tĩnh bằng cách sau.

<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>

Làm thế nào bạn tìm ra tên tham khảo?
Stevie G

@StevieG Hoặc xác định vị trí của nó hoặc đọc các triển khai XML mặc định để bạn biết mọi thứ được xây dựng như thế nào (rất hữu ích để thực hiện lâu dài).
Melvyn

8

Nó có thể được thực hiện dễ dàng từ bảng quản trị bằng cách làm theo các bước dưới đây.

  1. Chuyển đến Nội dung -> Widget
  2. Thêm widget mới
  3. Chọn loại là Khối tĩnh CMS
  4. Chọn gói thiết kế / chủ đề và tiếp tục
  5. Set Widget Title, StoreSort ordertrong Storefront propertiestab
  6. Chọn khối tĩnh từ trong Widget optionstab
  7. Lưu tiện ích
  8. Nhấn vào Add Layout Updatenút
  9. Chọn Tùy chọn từ Display ondanh sách thả xuống, ví dụ: Specific pageđể hiển thị khối trên specifi

  10. Chọn trang từ Pagedanh sách thả xuống

  11. Chọn Container từ Containerdanh sách thả xuống
  12. lưu tiện ích

Nó chỉ hữu ích cho các trang CMS. Chúng tôi có thể sử dụng nó trong xml mô-đun tùy chỉnh của chúng tôi không?
Rajput khen ngợi

Tôi chỉ cung cấp ví dụ trang cms, bạn có thể sử dụng nó cho mọi mô-đun hoặc trang có thể. bạn có thể có ý tưởng bằng cách xem danh sách tùy chọn trong danh sách thả xuống Hiển thị
Taral Patoliya

Điều này là tuyệt vời, sạch sẽ và đơn giản. Cảm ơn bạn.
dawhoo

5

Nếu bạn muốn gọi khối tĩnh trong trang 2columns, bạn chỉ cần thực hiện bằng cách sử dụng,

ở đây bên dưới bạn có thể thay đổi quickblockvới định danh khối tĩnh của bạn.

<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>

Khối trên đang hoạt động tốt cho 2 màu - bên trái với thanh bên.


Xin chào Nếu chúng tôi muốn gọi khối tĩnh chỉ để bố trí trang danh mục thì sao? tôi đã gọi khối tĩnh trong xml bằng sidebar.additable nhưng nó không hoạt động. Điều gì có thể là lý do?
jack

@Rakesh, <? Php echo $ this-> getLayout () -> createBlock ('Magento \ Cms \ Block \ Block') -> setBlockId ('nhận dạng_id') -> toHtml (); ?> Tôi đã sử dụng trong thành công. Nó không hoạt động
jafar pinjar

2

Trong đoạn mã sau, thay đổi "block_identifier" từ khối CMS được tạo trên bảng điều khiển magento và thêm nó vào layout.xml. Nó hoạt động.

<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>
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.