Magento 2:XMLを介してコンテナー内にテキストを追加する方法


11

フッターのリンクリストの前に1行のテキストを表示しようとしています。これを行うためのテンプレートファイルを作成することは、このタスクのリソースの無駄遣いのようです。私はそれを理解していたので、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 '20年

@Devtype完全に。あなたは使用することができます<referenceBlock name="product.info.review">そうするために
デジタルPianismでラファエルを

@RaphaelatDigitalPianismがブロックを参照しても機能しませんが、コンテナを参照すると機能します。何かが足りませんか!!
Devtype

@Devtypeいいえ、ブロックとコンテナの両方で機能するはずです。新しい質問を作成して問題を詳細に説明してください;)
Raphael at Digital Pianism 2016年

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.