Magento 2: Hinzufügen von Text innerhalb eines Containers über XML


11

Ich versuche, eine einzelne Textzeile vor einer Linkliste in der Fußzeile zu rendern. Das Erstellen einer Vorlagendatei zu diesem Zweck scheint eine Verschwendung von Ressourcen für diese Aufgabe zu sein. So wie ich es verstanden habe, konnte ich Text mit einem Magento\Framework\View\Element\TextBlock im Layout ausgeben .

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>

Das Vorhergehende gibt nichts aus, und ich bin mir nicht sicher, ob dies nicht unterstützt wird, ob ich es nur falsch mache oder ob es eine andere geeignetere Methode gibt, um dies zu erreichen.

Um klar zu sein, sehe ich derzeit:

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

wenn ich sehen will:

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

Irgendwelche Vorschläge?

Antworten:


22

Sie müssen das Argument direkt ohne das Array verwenden.

Anstatt von

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

Du brauchst:

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

Alternative

Sie können es auch mit dem <action>Tag versuchen :

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

Div direkt hinzufügen

Sie können ein div auch direkt im Text wie folgt hinzufügen:

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

Wie würden Sie ein Argument in einen vorhandenen Block einfügen, z. B. einen product.info.review-Block, auf den verwiesen und mit einem anderen Argument vom Typ string hinzugefügt werden kann?
Devtype

@ Devtype total. Sie können <referenceBlock name="product.info.review">dies tun
Raphael bei Digital Pianism

@RaphaelatDigitalPianism, der auf einen Block verweist, funktioniert bei mir nicht, andererseits funktioniert das Verweisen auf einen Container. Vermisse ich etwas !!
Devtype

@ Devtype nein, das sollte sowohl für Blöcke als auch für Container funktionieren. Fühlen Sie sich frei, eine neue Frage zu erstellen und Ihr Problem im Detail zu beschreiben;)
Raphael bei Digital Pianism

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.