¿Por qué tenemos que usar "almacenar" para enlaces en CMS como <a href=*{{store url='home'}}"> home </a>


8

Para insertar enlaces en el CMS, utilizamos este código:

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

¿Qué hace esta palabra clave "tienda" y por qué se llama "tienda"?

¿Y hay otras palabras clave disponibles en lugar de la tienda ?

¿También es posible escribir solo la URL, sin "almacenar"?

En caso afirmativo, ¿cuál es la sintaxis correcta?


¿Qué estás intentando lograr?
user487772

@Tim quiero saber una forma alternativa para insertar el enlace.
MageDev

2
En realidad, la piel y los medios son 2 directivas diferentes. Uno toma un archivo de la carpeta de máscara y el mismo código puede generar 2 imágenes diferentes (según el tema) y la directiva de medios toma un archivo de la carpeta de medios. ¿Por qué necesitarías una alternativa a la directiva de tienda? Hay uno, funciona ... caso cerrado.
Marius

2
@ Michel06 En realidad, esta es la parte de programación de TI, donde esperamos que solo haya un método para realizar una tarea determinada. En este caso, la directiva {{store url = ""}} le proporcionará un enlace.
Benmarks 01 de

1
@zus puede usar una condición como la que se indica a continuación. {{if order.customer_group_id == 1}} <p>Test Code</p> {{/if}}
MageDev

Respuestas:


6

Sintaxis de Magento para usar URL en contenido de CMS:

  • obtener la URL de SKIN: {{skin url='images_foldername/image_name.jpg'}}obtenga la imagen de la carpeta de skin del paquete de tema configurado
  • obtener URL de medios: {{media url='magento-image.jpg'}}obtenga la imagen de la carpeta de medios
  • obtener URL de la tienda: {{store url=''}}magento-page.html- obtener la URL del dominio de la tienda en funcionamiento
  • obtener URL base: {{base url=''}}magento-page.html- obtener la URL del dominio del sitio web base.

magento-page.htmldebe estar dentro de la directiva en url='...'o direct_url='...'.
7ochem

18

Como se explica en Dónde está el código para "{{store url =" example / example "}} {{store}} es una de las llamadas directivas de plantilla utilizadas por CMS y correos electrónicos transaccionales

Está documentado de la siguiente manera:

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

Entonces, "store" es la abreviatura de "store url" y se refiere a una URL en la tienda, eso significa un enlace dentro de la tienda . Agrega automáticamente la URL base correcta (importante para las plantillas de correo electrónico donde no puedes usar enlaces relativos) y resuelve algunos otros parámetros (ver más abajo)

Cómo usarlo

Puede pasarle una ruta , tal como lo haría con Mage::getUrl():

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

También con parámetros:

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

O consulte los parámetros, por ejemplo, para agregar filtros en la navegación por capas:

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

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

Si desea especificar una URL arbitraria en su lugar, use direct_url, de esta manera Magento solo agrega la URL base y deja la URL dada como está:

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

Otras directivas de URL son

  • {{skin url="..."}} para URL a imágenes, JavaScript o CSS dentro del tema actual, utilizando el mecanismo de respaldo del tema.
  • {{media url="..."}}para las direcciones URL a las imágenes u otros medios de comunicación en el directorio de los medios de comunicación (por defecto: /media/)
  • {{protocol url="www.domain.com/"}}para URL externas arbitrarias , pero con el protocolo actual (http o https)
  • {{protocol http="http://url" https="https://url"} para mostrar diferentes URL dependiendo del protocolo actual
  • {{protocol}} simplemente generar "https" o "http"

Otras directivas no URL

  • {{config path="..."}} genera un valor de configuración
  • {{customvar code="..."}}genera una variable personalizada (mantenida globalmente en Sistema> Variables personalizadas )
  • {{htmlescape var="..." allowed_tags="..."}}convierte caracteres especiales en el texto, dados en "var" a entidades HTML. El parámetro opcional "allow_tags" puede contener una lista de etiquetas separadas por comas que deben mantenerse intactas (por ejemplo, "h1, h2, strong, em"). Es más útil en las plantillas de correo electrónico porque puede pasar una variable de plantilla: así:{{htmlescape var=$customer.firstname}}
  • {{inlinecss file="..."}}carga CSS de un archivo y lo agrega como hoja de estilo en línea. Útil para correos electrónicos.
  • {{block type="..." id="..." output="..." ...}} crea instancias y renderiza cualquier tipo de bloque de Magento
  • {{layout area="..." handle="..." ...}}carga un controlador de diseño completo (definido en los archivos XML de diseño) y representa su primer bloque. Se pasan parámetros adicionales a todos los bloques.

Tenga en cuenta que las variables y los bloques personalizados deben incluirse en la lista blanca antes de que puedan usarse. Ver: APPSEC-1057 Cómo agregar variables o bloques a las tablas de la lista blanca

Otras directivas que no son URL (solo plantillas de correo electrónico)

  • {{var X}}, {{var X.y()}}variable de plantilla de salida X / resultado del método y () en la variable X. Consulte Variables de plantilla / marcadores de posición
  • {{depend X}}...{{/depend}}salida de contenido intermedio solo si la variable X es true-ish (tenga en cuenta que no puede usar expresiones lógicas aquí, solo variables o métodos en variables. {{if X}}...{{else}}...{{/if}}lo mismo pero con un bloque opcional "else".
  • {{template config_path="..."}}incluya otra plantilla de correo electrónico basada en un valor de configuración, por ejemplo "diseño / correo electrónico / encabezado". De forma predeterminada, las plantillas de correo electrónico de "encabezado" y "pie de página" se incluyen en todas las demás plantillas de correo electrónico.
  • {{include template="..."}}Incluye otra plantilla. Esta plantilla heredará todas las variables de plantilla de la actual y puede pasar parámetros adicionales con name="value".

Variables en parámetros

Cualquier cosa que pueda ser procesada por {{var}}(ver arriba), también puede usarse como parámetro para otra directiva, con la siguiente sintaxis:

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

Limitaciones

  • No puedes anidar {{if}}y {{depend}}directivas:

    {{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}}
    
  • No puede usar directivas en parámetros de otras directivas. Por ejemplo:

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

    No funciona


{{store url = "customer / account / login"}} esto también funciona en M2
Goldy

Solo quiero agregar la condición if-else dentro de mi aplicación / locale / en_US / template / email / sales / order_new.html code => paste.ofcode.org/GKsBaztggNpXrmSws7cEyG line 30-40, cualquier ayuda gracias @Fabian Schmengler
zus
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.