Sintaxis de plantillas v1 (heredada)
La plantilla v1 es la sintaxis que viene desde los tiempos de XE. La mayoría de los recursos existentes están hechos con ella, así que la resumimos para mantenimiento y consulta. Crea los recursos nuevos con Sintaxis de plantillas v2.
Salida
{$variable}
{$object->method()}
{$array[$key]}No funciona si pones un espacio justo después de la primera llave o si hay un salto de línea en medio ({ $name } no se muestra).
Los filtros son iguales que en v2.
{$var|lower|escape}
{$timestamp|date:'Y-m-d H:i'}
{$number|number_format}Condiciones y bucles: estilo de comentario HTML
<!--@if($condition)-->
<div>참</div>
<!--@else-->
<div>거짓</div>
<!--@endif-->
<!--@foreach($list as $key => $item)-->
<li>{$item->title}</li>
<!--@endforeach--><!--@for(...)--> y <!--@while(...)--> funcionan igual.
Estilo de atributos: cond / loop
Es la sintaxis más característica de v1. Las condiciones y los bucles se agregan como atributos de la etiqueta.
<div cond="$is_logged">로그인 상태에서만 보임</div>
<li loop="$list => $key, $item">{$item->title}</li>También puedes agregar el valor de un atributo de forma condicional.
<option value="foo" selected="selected"|cond="$val === 'foo'">FOO</option>
<input type="checkbox" checked="checked"|cond="$item->checked" />Para agrupar sin etiqueta, usa <block> (sintaxis que v2 no admite).
<block cond="$show">
여러 요소를 한 번에
</block>Código PHP
{@ $foo = 'bar'}
{@
$foo = 'bar';
if ($condition):
$enabled = true;
endif;
}Atención: {@ ... } solo coincide hasta la primera }. Si dentro del código usas bloques con llaves (if (...) { ... }), se corta. Usa el estilo if (...): / endif;.
Inclusión y carga de recursos
<include target="_header.html" />
<include target="^/common/tpl/refresh.html" /> <!--// ^ 는 사이트 루트 -->
<include target="_promo" cond="$show_promo" />
<load target="css/skin.css" />
<load target="css/skin.css" media="print" index="20" />
<load target="js/skin.js" type="body" />
<unload target="js/old.js" /><!--#include(...)-->, <!--%import(...)--> y <!--%load_js_plugin(...)--> son notaciones más antiguas; no las uses en código nuevo.
Comentarios
<!-- 출력에 남는 일반 HTML 주석 -->
<!--// 출력에서 제거되는 템플릿 주석 -->Funciones automáticas (comunes a v1 y v2)
- Conversión automática de rutas de recursos: si usas una ruta relativa como
<img src="img/icon.png" />, se muestra convertida en una ruta absoluta con base en la ruta del skin. - Inyección automática en formularios: a
<form method="post">se le agregan automáticamente los campos hidden necesarios, como mid, act y CSRF. Si indicasruleset="name", también se vinculan las reglas de validación. Para desactivar la inyección automática usarx-autoform="false", y para quitar solo error_return_url usano-error-return-url="true". - Escape automático: si declaras
<config autoescape="on" />al inicio del archivo, se aplica escape a toda salida{$var}. Los archivos antiguos sin esa declaración no se escapan, así que ten cuidado al mostrar entradas del usuario.
Relación con v2
- La sintaxis v1 sigue funcionando, y dentro de archivos v2 también son compatibles parte de los atributos
cond(la condición de<include>), la salida{$var}y el código{@ }. - En cambio, en archivos v1 no funcionan las directivas de v2 como
@if. El criterio es si la primera línea del archivo declara@version(2). - Al modificar un skin v1 existente, te recomendamos seguir con v1, y pasar a v2 cuando lo rehagas a fondo.