Aprendiendo SPIP [6]

[06] Primer contacto con BOUCLES y #BALIZAS

, por dani


Para seguir este capítulo se suponen unos mínimos conocimientos de HTML

Si miramos el contenido de cualquiera de los ficheros que componen el esqueleto, (ver capítulo anterior), por ejemplo el sommaire.html:

Nos fijamos en el cuerpo del documento:

<body>
<INCLURE{fond=inc-entete}{lang}>

...

<INCLURE{fond=inc-pied}{lang}>
</body>

Los INCLURE significan que sean incluidos (en el lugar donde aparecen) los ficheros de cabecera (inc-entete.html) y pié de página (inc-pied.html). Estos dos html también estan en el esqueleto y por tanto se pueden modificar.
Entre ambos (entre cabecera y pié) tenemos algunas balizas y algunos bucles:

Las balizas como por ejemplo: #NOM_SITE_SPIP son unas variables de spip que serán susutituidas por su valor.
Las balizas se escriben así:
#BALIZA
o bien mediante la expresión:
[texto anterior (#BALIZA) texto posterior]
Mediante esta segunda expresión, sólo se muestra en caso de existir (se hace para evitar errores que comprenderás más adelante)

Los bucles son consultas a la base de datos que serán sustituidos por el resultado de la consulta. Mediante un bucle podemos decirle a spip que muestre los últimos 5 artículos ordenados por fecha. El lenguaje propio de spip (a base de bucles y balizas hace que no necesitemos conocer php ni mysql). Los bucles siguen esta estructura (en su expresión simple):

<BOUCLEnombre(TIPO){criterio}>
   Código HTML + balizas SPIP
</BOUCLEnombre>

Un ejmplo sería:

<BOUCLE_articulos_recientes(ARTICLES) {par date}{inverse}{0,10}>
        <h3><a href="#URL_ARTICLE">#TITRE</a></h3>
        [(#DATE|affdate)][, <:par_auteur:> (#LESAUTEURS)]
        <br>
</BOUCLE_articulos_recientes>

Analizamos:
tenemos las etiquetas de inicio y fin de boucle. En la de inicio van las características del boucle que son las siguientes:

- el nombre del bucle es _articulos_recientes (se puede elegir cualquier nombre, siempre que no lo dupliquemos, es decir, no se puede elegir el mismo nombre para dos bucles).
- el TIPO es (ARTICLES) (artículos). Debe ser un tipo existente: (ARTICLES), (RUBRIQUES), (BREVES), etc. Es lo que queremos que liste (de la base de datos). En este caso le pedimos un listado de artículos.
- hemos puesto tres criterios (entre los muchos que existen para elegir): {par date} (ordénalos por fecha), {inverse} (al revés, el más nuevo primero) y {0,10} (sólo desde el 0 hasta el 10, es decir, los 11 primeros)

Entre ambas etiquetas (de inicio y fín) va el código html y las balizas SPIP que queramos poner. Con ello le decimos lo que queremos mostrar de cada elemento del boucle (en este caso lo que queremos mostrar de cada artículo). Por tanto tenemos:

- las balizas en forma normal #TITRE (título) y #URL_ARTICLE (url del artículo)
- una baliza deltipo #BALIZA, concretamente #DATE|affdate que significa la fecha de publicación del artículo formateada con affdate (sale la fecha en texto: 11 de agosto de 2006, en lugar de 11/8/2006 si no llevase el filtro affdate), y además al estar entre [corchetes] sólo la pondrá en caso de existir.
- una última [texto anterior (#BALIZA) texto posterior] que es #LESAUTEURS (autor/a del artículo) con un texto anterior , <:par_auteur:> en el que además de los espacios en blanco y la coma (,) vemos la expresión <:par_auteur:>. Este tipo de expresiones <:cadena_de_texto:> son para internacionalizar los esqueletos y será traducida por by (inglés), par (francés), por (castellano), etc.

Por tanto el resultado de ese bucle sería algo así:

Título del artículo 1
fecha, por autor

Título del artículo 2
fecha, por autor

...

Título del artículo 11
fecha, por autor