Magento 2: Kapsayıcıya XML yoluyla nasıl metin eklenir


11

Altbilgideki bir Bağlantı listesinden önce tek bir metin satırı oluşturmaya çalışıyorum. Bunu yapmak için bir şablon dosyası oluşturmak, bu görev için kaynak israfı gibi görünüyor. Anladığım kadarıyla Magento\Framework\View\Element\Text, mizanpajda bir blok içeren metin çıktısı alabilirim .

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>

Önceki hiçbir şey çıkmaz ve bunun desteklenip desteklenmediğinden emin değilim, eğer sadece yanlış yapıyorsam ya da bunu gerçekleştirmek için daha uygun bir yöntem varsa emin değilim.

Açık olmak gerekirse, şu anda gördüğüm şey:

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

görmek istediğimde:

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

Herhangi bir öneri?

Yanıtlar:


22

Bağımsız değişkeni doğrudan dizi olmadan kullanmanız gerekir.

Onun yerine

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

Gerekenler:

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

Alternatif

Ayrıca <action>etiketi ile de deneyebilirsiniz :

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

Doğrudan bir div ekleme

Aşağıdakileri içeren metne doğrudan bir div de ekleyebilirsiniz:

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

Varolan bir bloğun içine nasıl bir argüman eklersiniz, örneğin product.info.review block, bu dizeye başka bir tür argümanı ile başvurulabilir ve eklenebilir mi?
Devtype

@Devtype tamamen. Bunu <referenceBlock name="product.info.review">yapmak için kullanabilirsiniz
Raphael, Dijital Piyanizm'de

@RaphaelatDigitalPianism bir bloğa atıfta bulunurken benim için çalışmazken, bir konteynere referansta bulunmak işe yarar. Bir şey mi kaçırıyorum !!
Devtype

@ Hem bloklar hem de konteynerler için çalışması gereken cihaz türü. Yeni bir soru oluşturmaktan ve sorununuzu ayrıntılı olarak açıklamaktan çekinmeyin;)
Raphael, Digital Pianism'da

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.