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?

Jonathan Eltgroth
quelle

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>
Raphael beim digitalen Pianismus
quelle
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
@ RaphaelatDigitalPianism magento.stackexchange.com/questions/141891/…
Devtype