<INCLURE> : <I>incluir</I> otros esqueletos

[SPIP 1.4] Cuando hay elementos de texto y bucles comunes a varios esqueletos, es lógico querer «factorizar» dichos elementos, es decir extraerlos de las páginas donde se encuentran, agruparlos en un archivo separado y llamarlos desde los otros esqueletos. De esta manera se agrupa el código común en un archivo único, lo que facilita notablemente las modificaciones que afectan a varios esqueletos de una sola vez.

Quienes están acostumbrados a PHP (u otros lenguajes informáticos) conocen la función include, cuyo principio es similar al que se presenta aquí para SPIP.

Con SPIP, se puede llamar a un esqueleto desde otro con la baliza <INCLURE> (también se puede utilizar <INCLUDE>, que es idéntica). Su sintaxis completa es:

<INCLURE(archivo.php3){parametro1}{parametro2}...>

El «archivo.php3» es el nombre del archivo que se quiere integrar en la página. Por ejemplo, imaginemos que todas las páginas del sitio muestran la misma información abajo de la página. Se agrupa entonces el código HTML y SPIP de este «pie de página» en un archivo «pie.html», esqueleto que se llama desde el archivo «pie.php3» (siempre siguiendo el principio de parejas de archivos destinados a construir esqueletos SPIP). Basta integrar en cada uno de los esqueletos que llevan ese «pie de página» el siguiente código en el lugar deseado:

<INCLURE(pie.php3)>

Desde [SPIP 1.8.2] la distribución incluye un archivo page.php3 que permite llamar cualquier esqueleto pasando en parametro el «fond». Así, podremos evitar el archivo pied.php3 y remplazarlo ventajosamente por el siguiente código:

<INCLURE(page.php3){fond=pied}>

Para una reflexión más ámplia acerca de lo que aporta esta nueva posibilidad de llamada de esqueletos, asociada a la baliza #DOSSIER_SQUELETTE, se puede consultar este artículo de Spip Contrib (sólo en francés, por el momento).

Ciertas inclusiones pueden depender del contexto. Por ejemplo, imaginemos un esqueleto «jerarquia(.html/php3)», que muestre el camino que lleva desde la raíz hasta una sección; se llamaría a esta página por un URL de la forma: «jerarquia.php3?id_rubrique=xxx».

En los esqueletos donde se quiera mostrar el camino desde la raíz a cierta sección (por ejemplo la sección actual de un artículo), hay que indicar que el parámetro correspondiente es {id_rubrique}. Si fuera necesario, creamos un bucle en el que se genera contextualmente el número apropiado de sección, y se incorpora el siguiente código dentro de este bucle:

<INCLURE(jerarquia.php3){id_rubrique}>
Nota: en este caso, el esqueleto jerarquia.html tendrá que comenzar con un bucle secciones con el criterio {id_rubrique}...

Se puede imaginar que, en ciertos esqueletos, se desee recuperar ya no el camino hasta cierta sección «variable» (según el contexto, por ejemplo un parámetro pasado en la URL), sino en función de una sección cuyo número (identificador) se sabe de antemano. Para ésto se puede fijar el valor del parámetro así:

<INCLURE(jerarquia.php3){id_rubrique=5}>

Nota. Es posible indicar varios parámetros en la baliza <INCLURE>; sin embargo, tal caso es poco frecuente. En todo caso, dichas variables se acumulan por un «Y lógico» al igual que cuando se los adjunta en la definición de los bucles. Evita añadir parámetros inútiles, que harán la caché menos eficaz y tu sitio más lento.

Nota. El archivo incluido es, a su vez, un esqueleto y, por lo tanto, dicho esqueleto tendrá su propio valor de $delais (plazo) [1]. Puede resultar práctico para separar la actualización de elementos complejos y pesados del sitio, que no cambian; y la de elementos dinámicos que necesitan una actualización frecuente (por ejemplo, la sindicación).

En un contexto multilingüe

Si está activado el multilingüismo de SPIP, desde SPIP 1.7.1 se puede definir un idioma de entorno para un esqueleto incluido, utilizando el parámetro {lang}.

-  Si no se utiliza ningún parámetro, es decir bajo la forma <INCLURE(pie.php3)>, se llamará al esqueleto incluido con el idioma principal del sitio,

-  <INCLURE(pie.php3){lang=ar}> utilizará el árabe al llamar al esqueleto incluido. Por supuesto, basta con reemplazar «ar» por el código ISO del idioma deseado: en para el inglés, fr para el francés, vi para el vietnamita, etc. (ver Internacionalizar los esqueletos),

-  y <INCLURE(pie.php3){lang}> llama al esqueleto en el idioma actual del contexto de inclusión.

Cabe notar que esto hace posible utilizar códigos de archivos de idiomas en los esqueletos incluidos (para mayores explicaciones sbre los archivos de idiomas, ver Internacionalizar los esqueletos).

Adicionalmente, los esqueletos incluidos están sujetos a las mismas técnicas de selección de idioma que los esqueletos de «primer nivel». En otras palabras, los esqueletos incluidos (en este caso pie.html) pueden ser especificados de acuerdo al idioma escogido (pie.ar.html, por ejemplo) de la misma manera que cualquier otro esqueleto. Una vez más, ver «Internacionalizar los esqueletos» para más detalles.

Notas

[1Recordemos que la variable $delais define el periodo de actualización de una página en la caché. Véase la sección “El archivo .php3” en Principio general - versión archivada.

Autor o autora dani, David Sánchez Crespillo Publicado el: Actualizado: 26/10/12

Traducciones: عربي, català, English, Español, français, italiano, Nederlands, Türkçe