Perché dobbiamo usare "store" per collegamenti in CMS come <a href= denuncia{{store url='home'}}’> home </a>


8

Per inserire collegamenti nel CMS, utilizziamo questo codice:

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

Cosa sta facendo questa parola chiave "store" e perché si chiama "store"?

E ci sono altre parole chiave disponibili al posto del negozio ?

È anche possibile scrivere solo l'URL, senza "store"?

Se sì, qual è la sintassi corretta?


Cosa stai cercando di ottenere?
user487772

@ Tim voglio sapere un modo alternativo per inserire link.
MageDev,

2
In realtà skin e media sono 2 direttive diverse. Uno prende un file dalla cartella skin e lo stesso codice può rendere 2 immagini diverse (a seconda del tema) e la direttiva media prende un file dalla cartella media. Perché avresti bisogno di un'alternativa alla direttiva store? Ce n'è uno, funziona ... caso chiuso.
Marius

2
@ Michel06 In realtà questa è la parte di programmazione dell'IT, dove speriamo che ci sia un solo metodo per eseguire un determinato compito. In questo caso, la direttiva {{store url = ""}} ti darà un link.
benmark

1
@zus è possibile utilizzare una condizione come indicata di seguito. {{if order.customer_group_id == 1}} <p>Test Code</p> {{/if}}
MageDev

Risposte:


6

Sintassi di Magento per utilizzare gli URL nel contenuto CMS:

  • get SKIN URL: {{skin url='images_foldername/image_name.jpg'}}- ottieni l'immagine dalla cartella skin del pacchetto temi configurato
  • ottieni l'URL multimediale: {{media url='magento-image.jpg'}}- ottieni l'immagine dalla cartella multimediale
  • ottieni l'URL del negozio: {{store url=''}}magento-page.html- ottieni l'URL del dominio del negozio funzionante
  • ottieni l'URL di base: {{base url=''}}magento-page.html- ottieni l'URL del dominio del sito Web di base.

magento-page.htmldovrebbe essere all'interno della direttiva nel url='...'o direct_url='...'.
7

18

Come spiegato in Dove si trova il codice per "{{store url =" example / example "}} {{store}} è una delle cosiddette direttive sui modelli utilizzate da CMS e dalle email transazionali

È documentato come segue:

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

Pertanto, "store" è l'abbreviazione di "store url" e si riferisce a un URL nel negozio, che significa un collegamento all'interno del negozio . Aggiunge automaticamente l'URL di base corretto (importante per i modelli di posta elettronica in cui non è possibile utilizzare collegamenti relativi) e risolve alcuni altri parametri (vedere di seguito)

Come usarlo

Puoi passargli un percorso , proprio come faresti con Mage::getUrl():

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

Anche con parametri:

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

O parametri di query, ad esempio per aggiungere filtri nella navigazione a più livelli:

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

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

Se invece vuoi specificare un URL arbitrario, usa direct_url, in questo modo Magento aggiunge solo l'URL di base e lascia l'URL dato così com'è:

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

Altre direttive URL sono

  • {{skin url="..."}} per URL di immagini, JavaScript o CSS all'interno del tema corrente, utilizzando il meccanismo di fallback del tema.
  • {{media url="..."}}per gli URL di immagini o altri mezzi di comunicazione nel Annuario Media (impostazione predefinita: /media/)
  • {{protocol url="www.domain.com/"}}per URL esterni arbitrari , ma con il protocollo corrente (http o https)
  • {{protocol http="http://url" https="https://url"} per mostrare URL diversi dipende dal protocollo corrente
  • {{protocol}} solo per generare "https" o "http"

Altre direttive non URL

  • {{config path="..."}} genera un valore di configurazione
  • {{customvar code="..."}}genera una variabile personalizzata (gestita globalmente in Sistema> Variabili personalizzate )
  • {{htmlescape var="..." allowed_tags="..."}}converte caratteri speciali nel testo, forniti in "var" in entità HTML. Il parametro opzionale "allow_tags" può contenere un elenco separato da virgole di tag che devono essere mantenuti intatti (ad esempio "h1, h2, strong, em"). È molto utile nei modelli di posta elettronica perché puoi passare una variabile di modello: in questo modo:{{htmlescape var=$customer.firstname}}
  • {{inlinecss file="..."}}carica CSS da un file e lo aggiunge come foglio di stile incorporato. Utile per le email.
  • {{block type="..." id="..." output="..." ...}} crea un'istanza e esegue il rendering di qualsiasi tipo di blocco Magento
  • {{layout area="..." handle="..." ...}}carica un intero handle di layout (definito nei file XML di layout) e esegue il rendering del suo primo blocco. Parametri aggiuntivi vengono passati a tutti i blocchi.

Si noti che le variabili e i blocchi personalizzati devono essere autorizzati nella lista bianca prima di poter essere utilizzati. Vedere: APPSEC-1057 Come aggiungere variabili o blocchi alle tabelle della white list

Altre direttive non URL (solo modelli e-mail)

  • {{var X}}, {{var X.y()}}output template variabile X / risultato del metodo y () sulla variabile X. Vedere Template vars / segnaposto
  • {{depend X}}...{{/depend}}output tra i contenuti solo se la variabile X è true-ish (nota che qui non puoi usare espressioni logiche, solo variabili o metodi su variabili. {{if X}}...{{else}}...{{/if}}lo stesso ma con un blocco "else" opzionale.
  • {{template config_path="..."}}includi un altro modello di email basato su un valore di configurazione, ad esempio "design / email / header". Per impostazione predefinita, i modelli di posta elettronica "intestazione" e "piè di pagina" sono inclusi in tutti gli altri modelli di posta elettronica.
  • {{include template="..."}}include un altro modello. Questo modello erediterà tutte le variabili del modello da quella corrente e puoi passare parametri aggiuntivi con name="value".

Variabili nei parametri

Tutto ciò che può essere elaborato da {{var}}(vedi sopra), può anche essere usato come parametro per un'altra direttiva, con la seguente sintassi:

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

limitazioni

  • Non è possibile nidificare {{if}}e {{depend}}direttive:

    {{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}}
  • Non è possibile utilizzare le direttive nei parametri di altre direttive. Per esempio:

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

    non funziona


{{store url = "customer / account / login"}} funziona anche su M2
Goldy,

Voglio solo aggiungere la condizione if-else nella mia app / locale / en_US / template / email / sales / order_new.html code => paste.ofcode.org/GKsBaztggNpXrmSws7cEyG line 30 - 40, qualsiasi aiuto grazie @Fabian Schmengler
zus
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.