lms
01/12/2009, 19:42
vBulletin 4.0 introduce una nueva y rica sintaxis en las plantillas reduciendo la necesidad de formatos y escapes en su ejecución en archivos php.
Advierte que cuando una plantilla hace uso de cualquier sintaxis de plantilla en vbulletin 4 dejará de funcionar la antigua sintaxis de plantillas de vBulletin. Las conversiones son asunto de todo o nada.
Variables de acceso
Variables de seguridad
Variables puras (RAW)
Sintaxis de Llaves
Métodos integrados
phrase
rawphrase
date
time
number
raw
escapejs
urlencode
if
link
math
stylevar
Etiquetas
literal
if
elseif
else
comment
each
Ejemplo de uso de vb:each
Variables de acceso
Variables de seguridad
De cara al futuro, las variables deben referenciarse en las plantillas, cuando sea posible, con la siguiente sintaxis:
{vb:var variable}
El acceso de este modo a las variables es más seguro y se ejecuta a través de caracteres especiales html (htmlspecialchars) en su salida.
Para acceder a elementos de matríz (array), usa un operador punto (.) en lugar de los corchetes ([ ]) estándar de PHP:
{vb:var variable.foo} // accede a los caracteres especiales html (htmlspecialchars) $variable['foo']
{vb:var variable.$varkey} // accede a los caracteres especiales html (htmlspecialchars) $variable[$varkey]
Variables Puras (Raw)
Para acceder a las variables normales de uso pre-vBulletin 4, usa la siguiente sintaxis:
{vb:raw variable}
Este es el equivalente al acceso simple a $variable en la sintaxis pre-vB4. No se aplica ningún tratamiento a la variable. El operador punto se usa para acceder a elementos de matriz.
Sintaxis de Llaves
Aquí la sintaxis general es
{vb:method arg1[, arg2...]}
Dentro de las llaves, las variables pueden accederse sin usar un conjunto separador envolvente de llaves. Por ejemplo,
{vb:method {variable}} // No son necesarios las llaves extra
{vb:method variable}
Métodos integrados
phrase
{vb:phrase nombre_de_frase[, argumentos para la frase...]}
Inserta la frase especificada. Si se proveen argumentos, podrán ejecutarse como caracteres especiales html.
rawphrase
{vb:rawphrase phrase_name[, arguments for phrase...]}
Como el anterior, aunque los argumentos desvían los caracteres especiales html.
Ejemplo:
{vb:rawphrase message_by_x_on_y_at_z, {vb:link member, {vb:raw postinfo}}, {vb:raw postinfo.username}, {vb:raw postinfo.postdate}, {vb:raw postinfo.posttime}}
date
{vb:date timestamp[, formato]}
Formatos UNIX que usan el formato predeterminado de fecha para el idioma activo. Puede especificarse explícitamente un formato. La zona horária se corregirá a la vista del usuario.
time
{vb:time timestamp[, formato]}
Como el anterior, aunque usa el formato de hora predeterminado en lugar del formato de fecha.
number
{vb:number number[, decimales]}
Da salida a un número con formato de número vBulletin (vb_number_format) para el formateo local correcto. Puede indicarse opcionalmente el número de decimales a mostrar.
raw
{vb:raw variable}
Da salida a la variable pura, sin ningún formato o escape.
escapejs
{vb:escapejs variable}
Devuelve la variable preparada para usar con cadenas entrecomilladas simples de Javascript para ejecutar caracteres especiales de html.
urlencode
{vb:urlencode variable}
Escapa la variable usando urlencode.
if
{vb:if condition, true[, false]}
Usa esto en los casos en que la etiqueta <vb:if> no puede usarse, como dentro de las etiquetas HTML.
link
{vb:link type, info[, extra-info]}
Se usa para crear un hipervínculo URL específico en un formato correcto o "amistoso".
math
{vb:math expression}
Se usa primordialmente dentro del CSS, esto se usa para evaluar el resultado de una expresión matemática indicada.
stylevar
{vb:stylevar name[.sub-part]}
Se usa para dar salida a una variable de estilo desde el sistema de estilos. No se realiza ningún escape.
Etiquetas
Todas las etiquetas usan el espacio de nombres de vB para una identificación fácil y de análisis.
Estan disponibles las siguientes etiquetas:
literal
<vb:literal>misc code</vb:literal>
Cualquier código dentro de etiquetas vb:literal se tratarán como HTML plano. No se evalúan las llaves ni las etiquetas vb:.
if
<vb:if condition="condition">resultado verdadero</vb:if>
Si la expresión indicada en la condición es verdadera, el contenido de la etiqueta vb:if se devolverá, de otra manera no se devolverá nada.
elseif
<vb:elseif condition="condición" />resultado verdadero
Usado en conjunción con vb:if, te permite comprobar una segunda y se devolverá el resultado verdadero si se cumple la condición.
else
<vb:else />resultado verdadero
Usado en conjunción con vb:if, se devolverá el resultado verdadero si la condición vb:if es falsa, al igual que cualquier control vb:elseif.
comment
<vb:comment>un comentario</vb:comment>
Cuando se precisa un comentario, no es deseable la sintaxis habitual <!-- comment -->, la etiqueta vb:comment te permite borrar sus contenidos por completo en la compilación, no entregándose al navegador. Úsalo para comentarios internos.
each
<vb:each from="array" key="clave" value="valor"></vb:each>
Esta etiqueta itera a través de una matriz, de manera similar al foreach. Ve el ejemplo siguiente.
Ejemplo de Uso del vb:each
// Tenemos una matríz de usuarios disponibles en PHP.
// Tal como así:
// $users = array(
// 1 => array('nombredeusuario' => 'lms', 'email' => 'lms@forovbulletin.com'),
// 2 => array('nombredeusuario' => 'Mariohn', 'email' => 'mariohn@forovbulletin.com'),
// 3 => array('nombredeusuario' => 'DN', 'email' => 'dn@forovbulletin.com')
// );
<!-- nuestro código de plantilla... -->
<vb:each from="users" key="userid" value="userinfo">
<li><a href="member.php?u={vb:var userid}">{vb:var userinfo.username}</a></li>
</vb:each>
<!-- devolverá... -->
<li><a href="member.php?u=1">lms</a></li>
<li><a href="member.php?u=2">mariohn</a></li>
<li><a href="member.php?u=3">DN</a></li>
Página original en inglés en vBulletin 4 Template Syntax (Solo los usuarios registrados pueden ver enlaces_example)
Salud2
Advierte que cuando una plantilla hace uso de cualquier sintaxis de plantilla en vbulletin 4 dejará de funcionar la antigua sintaxis de plantillas de vBulletin. Las conversiones son asunto de todo o nada.
Variables de acceso
Variables de seguridad
Variables puras (RAW)
Sintaxis de Llaves
Métodos integrados
phrase
rawphrase
date
time
number
raw
escapejs
urlencode
if
link
math
stylevar
Etiquetas
literal
if
elseif
else
comment
each
Ejemplo de uso de vb:each
Variables de acceso
Variables de seguridad
De cara al futuro, las variables deben referenciarse en las plantillas, cuando sea posible, con la siguiente sintaxis:
{vb:var variable}
El acceso de este modo a las variables es más seguro y se ejecuta a través de caracteres especiales html (htmlspecialchars) en su salida.
Para acceder a elementos de matríz (array), usa un operador punto (.) en lugar de los corchetes ([ ]) estándar de PHP:
{vb:var variable.foo} // accede a los caracteres especiales html (htmlspecialchars) $variable['foo']
{vb:var variable.$varkey} // accede a los caracteres especiales html (htmlspecialchars) $variable[$varkey]
Variables Puras (Raw)
Para acceder a las variables normales de uso pre-vBulletin 4, usa la siguiente sintaxis:
{vb:raw variable}
Este es el equivalente al acceso simple a $variable en la sintaxis pre-vB4. No se aplica ningún tratamiento a la variable. El operador punto se usa para acceder a elementos de matriz.
Sintaxis de Llaves
Aquí la sintaxis general es
{vb:method arg1[, arg2...]}
Dentro de las llaves, las variables pueden accederse sin usar un conjunto separador envolvente de llaves. Por ejemplo,
{vb:method {variable}} // No son necesarios las llaves extra
{vb:method variable}
Métodos integrados
phrase
{vb:phrase nombre_de_frase[, argumentos para la frase...]}
Inserta la frase especificada. Si se proveen argumentos, podrán ejecutarse como caracteres especiales html.
rawphrase
{vb:rawphrase phrase_name[, arguments for phrase...]}
Como el anterior, aunque los argumentos desvían los caracteres especiales html.
Ejemplo:
{vb:rawphrase message_by_x_on_y_at_z, {vb:link member, {vb:raw postinfo}}, {vb:raw postinfo.username}, {vb:raw postinfo.postdate}, {vb:raw postinfo.posttime}}
date
{vb:date timestamp[, formato]}
Formatos UNIX que usan el formato predeterminado de fecha para el idioma activo. Puede especificarse explícitamente un formato. La zona horária se corregirá a la vista del usuario.
time
{vb:time timestamp[, formato]}
Como el anterior, aunque usa el formato de hora predeterminado en lugar del formato de fecha.
number
{vb:number number[, decimales]}
Da salida a un número con formato de número vBulletin (vb_number_format) para el formateo local correcto. Puede indicarse opcionalmente el número de decimales a mostrar.
raw
{vb:raw variable}
Da salida a la variable pura, sin ningún formato o escape.
escapejs
{vb:escapejs variable}
Devuelve la variable preparada para usar con cadenas entrecomilladas simples de Javascript para ejecutar caracteres especiales de html.
urlencode
{vb:urlencode variable}
Escapa la variable usando urlencode.
if
{vb:if condition, true[, false]}
Usa esto en los casos en que la etiqueta <vb:if> no puede usarse, como dentro de las etiquetas HTML.
link
{vb:link type, info[, extra-info]}
Se usa para crear un hipervínculo URL específico en un formato correcto o "amistoso".
math
{vb:math expression}
Se usa primordialmente dentro del CSS, esto se usa para evaluar el resultado de una expresión matemática indicada.
stylevar
{vb:stylevar name[.sub-part]}
Se usa para dar salida a una variable de estilo desde el sistema de estilos. No se realiza ningún escape.
Etiquetas
Todas las etiquetas usan el espacio de nombres de vB para una identificación fácil y de análisis.
Estan disponibles las siguientes etiquetas:
literal
<vb:literal>misc code</vb:literal>
Cualquier código dentro de etiquetas vb:literal se tratarán como HTML plano. No se evalúan las llaves ni las etiquetas vb:.
if
<vb:if condition="condition">resultado verdadero</vb:if>
Si la expresión indicada en la condición es verdadera, el contenido de la etiqueta vb:if se devolverá, de otra manera no se devolverá nada.
elseif
<vb:elseif condition="condición" />resultado verdadero
Usado en conjunción con vb:if, te permite comprobar una segunda y se devolverá el resultado verdadero si se cumple la condición.
else
<vb:else />resultado verdadero
Usado en conjunción con vb:if, se devolverá el resultado verdadero si la condición vb:if es falsa, al igual que cualquier control vb:elseif.
comment
<vb:comment>un comentario</vb:comment>
Cuando se precisa un comentario, no es deseable la sintaxis habitual <!-- comment -->, la etiqueta vb:comment te permite borrar sus contenidos por completo en la compilación, no entregándose al navegador. Úsalo para comentarios internos.
each
<vb:each from="array" key="clave" value="valor"></vb:each>
Esta etiqueta itera a través de una matriz, de manera similar al foreach. Ve el ejemplo siguiente.
Ejemplo de Uso del vb:each
// Tenemos una matríz de usuarios disponibles en PHP.
// Tal como así:
// $users = array(
// 1 => array('nombredeusuario' => 'lms', 'email' => 'lms@forovbulletin.com'),
// 2 => array('nombredeusuario' => 'Mariohn', 'email' => 'mariohn@forovbulletin.com'),
// 3 => array('nombredeusuario' => 'DN', 'email' => 'dn@forovbulletin.com')
// );
<!-- nuestro código de plantilla... -->
<vb:each from="users" key="userid" value="userinfo">
<li><a href="member.php?u={vb:var userid}">{vb:var userinfo.username}</a></li>
</vb:each>
<!-- devolverá... -->
<li><a href="member.php?u=1">lms</a></li>
<li><a href="member.php?u=2">mariohn</a></li>
<li><a href="member.php?u=3">DN</a></li>
Página original en inglés en vBulletin 4 Template Syntax (Solo los usuarios registrados pueden ver enlaces_example)
Salud2