Magento 2: Cách thêm văn bản trong vùng chứa qua XML


11

Tôi đang cố gắng hiển thị một dòng văn bản trước danh sách Liên kết ở chân trang. Tạo một tệp mẫu để làm điều này dường như là một sự lãng phí tài nguyên cho nhiệm vụ này. Theo tôi hiểu, tôi có thể xuất văn bản với một Magento\Framework\View\Element\Textkhối trong bố cục.

XML

<referenceContainer name="footer">
  <container name="footer.column.about_us" htmlTag="div" htmlClass="column about-us" before="-">
    <container name="column.about_us.label" htmlTag="div" htmlClass="label">
      <block class="Magento\Framework\View\Element\Text" name="about_us.label">
        <arguments>
          <argument name="data" xsi:type="array">
            <item name="text" xsi:type="string">About Us</item>
          </argument>
        </arguments>
      </block>
    </container>
    <block class="Magento\Framework\View\Element\Html\Links" name="footer_links.about_us">
      <arguments>
        <argument name="css_class" xsi:type="string">footer links</argument>
      </arguments>
    </block>
  </container>
</referenceContainer>

Phần trước không xuất ra bất cứ điều gì và tôi không chắc liệu điều này không được hỗ trợ hay không, nếu tôi chỉ làm sai, hoặc nếu có một phương pháp khác phù hợp hơn để thực hiện điều này.

Để rõ ràng, những gì tôi hiện đang thấy là:

<div class="column about-us">
  <ul class="footer links">...</ul>
</div>

khi tôi muốn xem:

<div class="column about-us">
  <div class="label">About Us</div>
  <ul class="footer links">...</ul>
</div>

Bất kỳ đề xuất?

Câu trả lời:


22

Bạn cần sử dụng đối số trực tiếp mà không cần mảng.

Thay vì

    <arguments>
      <argument name="data" xsi:type="array">
        <item name="text" xsi:type="string">About Us</item>
      </argument>
    </arguments>

Bạn cần:

    <arguments>
      <argument translate="true" name="text" xsi:type="string">About Us</argument>
    </arguments>

Thay thế

Bạn cũng có thể thử với <action>thẻ:

<action method="setText">
      <argument translate="true" name="text" xsi:type="string">About Us</argument>
</action>

Thêm một div trực tiếp

Bạn cũng có thể thêm một div trực tiếp trong văn bản như sau:

<argument translate="true" name="text" xsi:type="string"><![CDATA[<div class="label">About Us</div>]]></argument>

Làm thế nào bạn có thể thêm một đối số bên trong một khối hiện có, ví dụ như khối sản phẩm.info.review có thể được tham chiếu và thêm bằng một đối số khác của chuỗi kiểu không?
Devtype

@Devtype hoàn toàn. Bạn có thể sử dụng <referenceBlock name="product.info.review">để làm như vậy
Raphael tại Digital Pianism

@RaphaelatDigitalPianism tham chiếu một khối không hoạt động đối với tôi, mặt khác tham chiếu một container không hoạt động. Tui bỏ lỡ điều gì vậy!!
Devtype

@Devtype không nên hoạt động cho cả khối và container. Vui lòng tạo một câu hỏi mới và mô tả chi tiết vấn đề của bạn;)
Raphael tại Digital Pianism

@RaphaelatDigitalPianism magento.stackexchange.com/questions/141891/ Lần
Devtype
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.