Magento 2: วิธีเพิ่มข้อความภายในคอนเทนเนอร์ผ่าน XML


11

ฉันพยายามแสดงข้อความบรรทัดเดียวก่อนรายการลิงก์ในส่วนท้าย การสร้างไฟล์เทมเพลตเพื่อทำสิ่งนี้ดูเหมือนจะเป็นการสิ้นเปลืองทรัพยากรสำหรับงานนี้ ตามที่ฉันเข้าใจฉันสามารถส่งออกข้อความด้วยMagento\Framework\View\Element\Textบล็อกในเค้าโครง

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>

ก่อนหน้านี้จะไม่แสดงผลใด ๆ และฉันไม่แน่ใจว่าสิ่งนี้จะได้รับการสนับสนุนหรือไม่หากฉันเพิ่งทำผิดหรือมีวิธีการอื่นที่เหมาะสมกว่าในการทำสิ่งนี้ให้สำเร็จ

เพื่อให้ชัดเจนสิ่งที่ฉันเห็นอยู่ในขณะนี้คือ:

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

เมื่อฉันต้องการดู:

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

ข้อเสนอแนะใด ๆ

คำตอบ:


22

คุณต้องใช้อาร์กิวเมนต์โดยตรงโดยไม่มีอาร์เรย์

แทน

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

คุณต้องการ:

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

ทางเลือก

คุณสามารถลองด้วย<action>แท็ก:

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

เพิ่ม div โดยตรง

นอกจากนี้คุณยังสามารถเพิ่ม div โดยตรงในข้อความดังต่อไปนี้:

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

คุณจะเพิ่มอาร์กิวเมนต์ภายในบล็อกที่มีอยู่เช่น product.info.review บล็อกนั้นสามารถอ้างอิงและเพิ่มด้วยอาร์กิวเมนต์ชนิดสตริงอื่นได้อย่างไร
Devtype

@Devtype โดยสิ้นเชิง คุณสามารถใช้<referenceBlock name="product.info.review">เพื่อทำเช่นนั้น
ราฟาเอลที่เปียโนดิจิตอล

@RaphaelatDigitalPianism อ้างอิงบล็อกไม่ทำงานสำหรับฉันในมืออื่น ๆ ที่อ้างอิงคอนเทนเนอร์ทำงาน ฉันพลาดอะไรไปรึเปล่า!!
Devtype

@Devtype no ที่ควรใช้กับทั้งบล็อกและคอนเทนเนอร์ อย่าลังเลที่จะสร้างคำถามใหม่และอธิบายปัญหาของคุณในรายละเอียด;)
Raphael ที่ Digital Pianism

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.