Warum müssen wir "Store" für Links in CMS verwenden, wie z

8

Um Links in das CMS einzufügen, verwenden wir diesen Code:

<a href="{{store url='home'}}">home</a>

Was macht dieses Schlüsselwort "store" und warum heißt es "store"?

Und gibt es andere Keywords anstelle des Geschäfts ?

Ist es auch möglich, nur die URL ohne "Speichern" zu schreiben?

Wenn ja, wie lautet die richtige Syntax?

MageDev
quelle
Was versuchst du zu erreichen?
user487772
@ Tim Ich möchte einen alternativen Weg zum Einfügen eines Links kennen.
MageDev
2
Eigentlich sind Haut und Medien zwei verschiedene Richtlinien. Man nimmt eine Datei aus dem Skin-Ordner und der gleiche Code kann 2 verschiedene Bilder (je nach Thema) rendern, und die Medienanweisung nimmt eine Datei aus dem Medienordner. Warum brauchen Sie eine Alternative zum Speichern der Direktive? Es gibt eine, es funktioniert ... Fall geschlossen.
Marius
2
@ Michel06 Eigentlich ist dies der Programmierteil der IT, wo wir hoffen, dass es nur eine Methode gibt, um eine bestimmte Aufgabe auszuführen. In diesem Fall erhalten Sie mit der Anweisung {{store url = ""}} einen Link.
Benmarks
1
@zus Sie können eine Bedingung wie unten angegeben verwenden. {{if order.customer_group_id == 1}} <p>Test Code</p> {{/if}}
MageDev

Antworten:

6

Magento-Syntax zur Verwendung von URLs in CMS-Inhalten:

  • SKIN-URL abrufen: {{skin url='images_foldername/image_name.jpg'}}- Bild aus dem Skin-Ordner des konfigurierten Design- Pakets abrufen
  • Medien-URL abrufen: {{media url='magento-image.jpg'}}- Bild aus Medienordner abrufen
  • Store-URL abrufen: {{store url=''}}magento-page.html- Domain-URL des Working Stores abrufen
  • Basis-URL abrufen: {{base url=''}}magento-page.html- Domain-URL der Basis-Website abrufen.
Kaushik Chavda
quelle
magento-page.htmlsollte innerhalb der Richtlinie in der url='...'oder sein direct_url='...'.
7ochem
18

Wie unter Wo ist der Code für "{{store url =" example / example "}} erläutert, {{store}}ist dies eine der sogenannten Vorlagenanweisungen, die von CMS und Transaktions-E-Mails verwendet werden

Es ist wie folgt dokumentiert:

/**
 * Retrieve store URL directive
 * Support url and direct_url properties
 */

"Store" ist also die Abkürzung für "Store URL" und bezieht sich auf eine URL im Store, dh einen Link innerhalb des Stores . Es fügt automatisch die richtige Basis-URL hinzu (wichtig für E-Mail-Vorlagen, bei denen Sie keine relativen Links verwenden können) und löst einige andere Parameter auf (siehe unten).

Wie man es benutzt

Sie können eine Route übergeben , genau wie Sie es tun würden mit Mage::getUrl():

{{store url="customer/account/login"}}

Auch mit Parametern:

{{store url="catalog/product/view" id="42"}}

Oder fragen Sie Parameter ab, um beispielsweise Filter in der geschichteten Navigation hinzuzufügen:

{{store url="catalog/category/view" id="3" _query_color=red}}

=> example.com/url-to-category-3/?color=red

Wenn Sie stattdessen eine beliebige URL angeben möchten, verwenden Sie direct_urldiese Option. Auf diese Weise fügt Magento nur die Basis-URL hinzu und lässt die angegebene URL unverändert:

{{store direct_url="terms.html#delivery"}}

Andere URL-Anweisungen sind

  • {{skin url="..."}} für URLs zu Bildern, JavaScript oder CSS innerhalb des aktuellen Themas mithilfe des Fallback-Mechanismus für Themen.
  • {{media url="..."}}für URLs , um Bilder oder andere Medien im Medienverzeichnis (Standard: /media/)
  • {{protocol url="www.domain.com/"}}für beliebige externe URLs, jedoch mit dem aktuellen Protokoll (http oder https)
  • {{protocol http="http://url" https="https://url"} Das Anzeigen verschiedener URLs hängt vom aktuellen Protokoll ab
  • {{protocol}} um einfach "https" oder "http" auszugeben

Andere Nicht-URL-Anweisungen

  • {{config path="..."}} gibt einen Konfigurationswert aus
  • {{customvar code="..."}}gibt eine benutzerdefinierte Variable aus (global verwaltet unter System> Benutzerdefinierte Variablen )
  • {{htmlescape var="..." allowed_tags="..."}}konvertiert Sonderzeichen im Text, die in "var" angegeben sind, in HTML-Entitäten. Der optionale Parameter "allow_tags" kann eine durch Kommas getrennte Liste von Tags enthalten, die intakt bleiben sollen (z. B. "h1, h2, strong, em"). Dies ist in E-Mail-Vorlagen am nützlichsten, da Sie eine Vorlagenvariable übergeben können: wie folgt:{{htmlescape var=$customer.firstname}}
  • {{inlinecss file="..."}}Lädt CSS aus einer Datei und fügt es als Inline-Stylesheet hinzu. Nützlich für E-Mails.
  • {{block type="..." id="..." output="..." ...}} instanziiert und rendert jeden Magento-Blocktyp
  • {{layout area="..." handle="..." ...}}Lädt ein gesamtes Layout-Handle (definiert in den Layout-XML-Dateien) und rendert seinen ersten Block. Zusätzliche Parameter werden an alle Blöcke übergeben.

Beachten Sie, dass benutzerdefinierte Variablen und Blöcke in die Whitelist aufgenommen werden müssen, bevor sie verwendet werden können. Siehe: APPSEC-1057 Hinzufügen von Variablen oder Blöcken zu den White-List-Tabellen

Andere Nicht-URL-Anweisungen (nur E-Mail-Vorlagen)

  • {{var X}}, {{var X.y()}}Ausgabevorlagenvariable X / Ergebnis der Methode y () für Variable X. Siehe Vorlagenvariablen / Platzhalter
  • {{depend X}}...{{/depend}}Geben Sie den Inhalt nur dazwischen aus, wenn die Variable X wahr ist (beachten Sie, dass Sie hier keine logischen Ausdrücke verwenden können, sondern nur Variablen oder Methoden für Variablen. {{if X}}...{{else}}...{{/if}}Dieselbe, jedoch mit einem optionalen "else" -Block.
  • {{template config_path="..."}}Fügen Sie eine weitere E-Mail-Vorlage hinzu, die auf einem Konfigurationswert basiert, z. B. "Design / E-Mail / Header". Standardmäßig sind die E-Mail-Vorlagen "Kopfzeile" und "Fußzeile" in allen anderen E-Mail-Vorlagen enthalten.
  • {{include template="..."}}enthält eine andere Vorlage. Diese Vorlage erbt alle Vorlagenvariablen von der aktuellen und Sie können zusätzliche Parameter mit übergeben name="value".

Variablen in Parametern

Alles, was von {{var}}(siehe oben) verarbeitet werden kann, kann auch als Parameter für eine andere Direktive mit der folgenden Syntax verwendet werden:

{{store url=$x}}
{{store url=$x.y()}}

Einschränkungen

  • Sie können nicht verschachteln {{if}}und {{depend}}Anweisungen:

    {{if x}}{{depend y}}     THIS WORKS    {{/depend}}{{/if}}
    {{depend x}}{{if y}}     THIS WORKS    {{/if}}{{/depend}}
    
    {{depend x}}{{depend y}} DOES NOT WORK {{/depend}}{{/depend}}
    {{if x}}{{if y}}         DOES NOT WORK {{/if}}{{/if}}
  • Sie können keine Direktiven in Parametern anderer Direktiven verwenden. Zum Beispiel:

    {{store url={{config path="..."}}}}

    funktioniert nicht

Fabian Schmengler
quelle
{{store url = "Kunde / Konto / Login"}} Dies funktioniert auch auf M2
Goldy
Ich möchte nur , wenn-dann - Bedingung in meinem app / locale / en_US / template / E - Mail / Vertrieb / order_new.html code => hinzufügen paste.ofcode.org/GKsBaztggNpXrmSws7cEyG Linie 30 - 40, jede Hilfe dank @Fabian Schmengler
zus