• ¡Bienvenido a XenFácil!

    Estás viendo el sitio como Invitado. Para poder participar en este sitio

    y obtendrás privilegios adicionales, acceso a otras áreas y mucho mas.

    ¡Es gratis!


    ¿Ya eres miembro? Inicia sesión
Icono de recurso

Tutorial Sintáxis de plantillas: Etiquetas de XenForo

La etiqueta xen:sidebar está diseñada para informar al software de la existencia o no de barra lateral o sidebar en la página que se está viendo actualmente (mejor, la que se visualiza mediante plantillas). Ejempos de esto pueden verse tanto en el Gestor de Recursos como en el índice de foros.

Atributos
La etiqueta xen:sidebar no utiliza atributos y su funcionalidad radica en en su interior.

Ejemplo
Insertar CODE, HTML o PHP:
<xen:sidebar>
¡Estoy en la barra lateral o sidebar!
</xen:sidebar>
Esto creará una barra lateral con un panel de visitante y el texto "¡Estoy en la barra lateral o sidebar!"

Para crear una barra lateral sin panel de visitante debes usar un parámetro xen:container que evita mostrar el panel. Esto produce la misma salida que aquí arriba, sin mostrar el panel de visitante. La barra lateral del Gestor de Recursos usa esta técnica. La documentación para xen:container estará en breve.
Insertar CODE, HTML o PHP:
<xen:sidebar>
   <xen:container var="$noVisitorPanel">1</xen:container>
     ¡Estoy en la barra lateral o sidebar!
</xen:sidebar>
La etiqueta xen:description se usa para sobreescribir y configurar la meta descrición en páginas individuales.

Atributos
  • skipmeta
    • El atributo skipmeta es una bandera booleana que indica si la metadescripción debe mostrarse o no. Configurarlo a verdadero apaga la visualización, mientras que falso deja su visualización.
Ejemplo
Insertar CODE, HTML o PHP:
<xen:description>La metadescripción es  meta y habla por sí misma.</xen:description>
Esto visualizará lo siguiente en la plantilla PAGE_CONTAINER:
HTML:
<meta name="description" content="La metadescripción es  meta y habla por sí misma." />
Insertar CODE, HTML o PHP:
<xen:description skipmeta="true"></xen:description>
Esto evitará que se muestre cualquier descripción meta.

Nota
  • La metadescripción está limitada a 200 palabras.
La etiqueta xen:title se usa para configurar el título de la página actual, así como en este recurso si miras en la pestaña de la ventana del navegador. El contenido de esta etiqueta viene antes del nombre de tu comunidad en el HTML.

Atributos
La etiqueta xen:title no tiene atributos.

Ejemplo:
Insertar CODE, HTML o PHP:
<xen:title>Sintáxis de plantillas: Etiquetas de XenForo</xen:title>
Este es el código interno que ejecutará por el Gestor de Recursos de XenForo en este recurso. La translación de esta etiqueta conllevará la siguiente salida (en la sección header):
HTML:
<title>Template Syntax: XenForo Tags | XenForo Community</title>
Pueden ampliarse las sentencias usando AND, OR, xen:else y xen:elseif.

Reemplazando == con != cuando se referencia un valor numérico cambiará la candición de verdadero a falso, por ejemplo:
<xen:if is="{$visitor.user_id} == x"> como verdadero
<xen:if is="{$visitor.user_id} != x"> como falso

Cuando una sentencia solo contiene una variable, insertar un ! antes de ella tiene el mismo efecto, por ejemplo:
<xen:if is="{$visitor.user_id}"> como verdadero
<xen:if is="!{$visitor.user_id}"> como falso

Cuando se trabaja con matrices, el ! se coloca justo antes del argumento, por ejemplo:
<xen:if is="in_array({$forum.node_id}, array(x, y, z))"> como verdadero
<xen:if is="!in_array({$forum.node_id}, array(x, y, z))"> como falso

Usando xen:else y xen:elseif, pueden incorporarse varias condiciones en una única sentencia.
El ejemplo más simpe del uso de xen:else es algo así:
<xen:if is="{$forum.node_id} == x">
Esto se mostrará en el foro x
<xen:else />

Esto se mostrará en cualquier otro sitio
</xen:if>

Una sentencia más avanzada, con varias condiciones que usen xen:elseif sería algo así:
<xen:if is="{$forum.node_id} == x">
Esto se mostrará en el foro x
<xen:elseif is="{$forum.node_id} == y" />

Esto se mostrará en el foro y
<xen:elseif is="{$forum.node_id} == z" />

Esto se mostrará en el foro z
<xen:else />

Esto se mostrará en cualquier otro sitio
</xen:if>

Dependiendo de la plantilla en la que se trabaja, puede ser necesario usar $user en lugar de $visitor; $visitor contiene siempre el registro del usuario conectado actual, $user es el registro que se procesa (ej. mensaje autor, listado de miembros, listado de usuarios conectados, etc.).

Las variables x, y y z deben reemplazarse con su valor actual.
La etiqueta xen:foreach se usa como un iterador simple. Sirve para repetir programaticamente bloques de código que usan datos diferentes en cada iteración. Esto simplifica a los desarrolladores de complementos y reduce el número de plantillas que contendrían esta repetición en una plantilla. La etiqueta xen:foreach se convierte internamente en la estructira de control de PHP foreach.

Atributos
La etiqueta xen:foreach soporta los siguientes atributos:
  • loop (obligatorio)
    • El atributo loop se usa para definir el conjunto de datos sobre el que se está trabajando. Nomalmente es una matríz.
  • value (obligatorio)
    • El atributo value es el nombre de variable al que se desea transferir cada valor durante su iteración. Debe usarse dentro de la etiqueta xen:foreach para manejar datos.
  • key
    • Si tienes un par key => value en la fuente de datos (ej, id => nombre) y se precisa acceder a la clave interna del xen:foreach, el atributo key definirá el mapa de variables, así como el atributo value.
  • i
    • El atributo i permite asignar con cada iteración un valor a una variable. Esto comienza en 1 y se incrementa de 1 en 1 en cada iteración.
  • count
    • El atributo count asignará el número total de iteraciones en una variable para usarla dentro del xen:foreach.
Formato de uso:
PHP:
<xen:foreach loop="$variable" value="$valor" i="$i" count="$cuentaDe" key="$clave">
          Código
</xen:foreach>

Ejemplo
Datos:
Insertar CODE, HTML o PHP:
$navigation = array(
  array('href'=>'#', 'valor'=>'primero'),
  array('href'=>'#', 'valor'=>'segundo'),
  array('href'=>'#', 'valor'=>'tercero'),
);
Insertar CODE, HTML o PHP:
               <xen:foreach loop="$navigation" value="$breadcrumb" i="$i" count="$count" key="$key">
                    <span>Total de elementos de navegación: {$count}</span>
                    <span class="crust iteration_{$i} breadcrumb_{$key}">
                        <a href="{$breadcrumb.href}" class="crumb"><span>{$breadcrumb.value}</span></a>
                        <span class="arrow"><span>&gt;</span></span>
                    </span>
                </xen:foreach>
El ejemplo de arriba es una versión simplificada y expandida de cómo XenForo construye la navegación. En este ejemplo, $key será uno menor que $i, desde que las matrices se auto-indexan en PHP se inician en 0. Dado que $navigation contiene 3 elementos, $count será igual a 3. La salida será como sigue:
Insertar CODE, HTML o PHP:
                   <span>Total de elementos de navegación: 3</span>
                    <span class="crust iteration_1 breadcrumb_0">
                        <a href="#" class="crumb"><span>primero</span></a>
                        <span class="arrow"><span>&gt;</span></span>
                    </span>
                    <span>Total de elementos de navegación: 3</span>
                    <span class="crust iteration_2 breadcrumb_1">
                        <a href="#" class="crumb"><span>segundo</span></a>
                        <span class="arrow"><span>&gt;</span></span>
                    </span>
                    <span>Total de elementos de navegación: 3</span>
                    <span class="crust iteration_3 breadcrumb_2">
                        <a href="#" class="crumb"><span>tercero</span></a>
                        <span class="arrow"><span>&gt;</span></span>
                    </span>
Arriba