Você está na página 1de 146

SPIP, systme de publication pour l'internet

Gua del/la webmaster/webmistress


y el tocalotodo SPIP
http://www.spip.net/es



Documento traducido por:
Montserrat Boix
(Mujeres en red por el software libre y no sexista
http://www.mujeresenred.net/software_libre/indexsl.html)
y compilado por:
Jos Mara Glvez
(Bradomn http://www.bradomin.es.vg)

- Pgina 2 de 114 -
ndice
I. PRIMEROS PASOS................................................................................................................. 4
I.1. CONTRIBUIR AL DESARROLLO DE SPIP............................................................................. 5
I.2. SEGURIDAD: SPIP E IIS..................................................................................................... 6
I.3. RAPIDEZ DEL SITIO PBLICO............................................................................................ 7
I.4. QU SON LOS FICHEROS -DIST.HTML?........................................................................ 8
I.5. FAQ PARA WEBMASTERS Y WEBMISSTRES ........................................................................ 9
II. FORMATEO: MANUAL DE REFERENCIA............................................................................... 11
II.1. PRINCIPIO GENERAL ..................................................................................................... 12
II.2. BUCLES Y BALIZAS......................................................................................................... 14
II.3. LA SINTAXIS DE LOS BUCLES......................................................................................... 16
II.4. LA SINTAXIS DE LAS BALIZAS SPIP............................................................................... 19
II.5. EL BUCLE ARTICLES (ARTCULOS) ................................................................................. 21
II.6. EL BUCLE RUBRIQUES (SECCIONES) .............................................................................. 23
II.7. EL BUCLE BREVES........................................................................................................... 24
II.8. EL BUCLE AUTEURS (AUTORES) ..................................................................................... 25
II.9. EL BUCLE FORUMS (FOROS)........................................................................................... 26
II.10. EL BUCLE MOTS (PALABRAS) ....................................................................................... 27
II.11. EL BUCLE SITES (O SYNDICATION) (SITIOS O SINDICACIN) .................................... 28
II.12. EL BUCLE DOCUMENTS (DOCUMENTOS) ....................................................................... 29
II.13. EL BUCLE SYNDIC_ARTICLES ....................................................................................... 30
II.14. EL BUCLE SIGNATURES (FIRMAS) ................................................................................ 31
II.15. EL BUCLE HIERARCHIE (JERARQUA)........................................................................... 31
II.16. CRITERIOS COMUNES A TODOS LOS BUCLES ............................................................... 32
II.17. LAS BALIZAS PROPIAS DEL SITIO................................................................................ 34
II.18. LOS FORMULARIOS ...................................................................................................... 35
II.19. LOS BUCLES DE BSQUEDA.......................................................................................... 37
II.20. LOS FILTROS DE SPIP .................................................................................................. 37
II.21. LOS BUCLES RECURSIVOS............................................................................................ 40
II.22. LA POPULARIDAD DE LOS ARTCULOS ......................................................................... 40
II.23. LA GESTIN DE LAS FECHAS ........................................................................................ 41
II.24. RESALTAR UN ARTCULO DE UNA LISTA ...................................................................... 43
III. SPIP PASO A PASO. ......................................................................................................... 45
III.1. MI PRIMER ESQUELETO (LO SACO DEL ARMARIO) ....................................................... 46
III.2. UN ESQUELETO, VARIOS ARTCULOS... ES PARA ESO QUE SIRVE................................. 46
III.3. UNA SECCIN (RBRICA) O CMO HACER LISTAS DEL CONTENIDO DE LA BASE ......... 47
III.4. BUCLES EN BUCLES....................................................................................................... 47
III.5. GESTIONAR LA CACH... Y EVITAR HACER TRABAJAR AL SERVIDOR QUE TIENE OTRAS
COSAS QUE HACER................................................................................................................. 48
III.6. LOS FILTROS. SUTILEZAS ESQUELTICAS .................................................................... 49
IV. GUA DE LAS FUNCIONES AVANZADAS............................................................................. 50
IV.1. ESTRUCTURA DE LA BASE DE DATOS ............................................................................. 51
IV.2. EL SOPORTE LDAP ......................................................................................................... 54
IV.3. SPIP Y LAS HOJAS DE ESTILO........................................................................................ 55
IV.4. <INCLURE>: INCLUIR OTROS ESQUELETOS .................................................................. 58

- Pgina 3 de 114 -
IV.5. HACER UN SITIO MULTILINGE .................................................................................... 59
IV.6. INTERNACIONALIZAR LOS ESQUELETOS ....................................................................... 62
IV.7. UTILIZAR URLS PERSONALIZADAS................................................................................ 66
IV.8. EL MOTOR DE BSQUEDA .............................................................................................. 67
IV.9. LAS VARIABLES DE PERSONALIZACIN ........................................................................ 69
V. INICIACIN: UTILIZAR HOJAS DE ESTILO CON SPIP......................................................... 72
V.1. INTRODUCCIN.............................................................................................................. 73
V.2. ESTILOS CON CLASE ................................................................................................. 73
V.3. PERSONALIZAR LA TIPOGRAFA..................................................................................... 75
V.4. QU FORMULARIOS MS BONITOS! ............................................................................... 77
V.5. PARA PROFUNDIZAR....................................................................................................... 78
VI. TUTORIAL: UTILIZACIN AVANZADA DE BUCLES Y PALABRAS CLAVES............................ 80
VI.1. INTRODUCCIN............................................................................................................. 81
VI.2. EL OBJETIVO DEL JUEGO: UN SITIO WEB DEDICADO A LOS VIDEOJUEGOS................... 82
VI.3. LA ESTRUCTURA DEL SITIO WEB................................................................................... 84
VI.4. DESPLIEGUE DE LA ESTRUCTURA .................................................................................. 86
VI.5. ESCRIBIR LOS ARTCULOS ............................................................................................ 87
VI.6. PRIMERA VERSIN DEL ESQUELETO DE LOS ARTCULOS .............................................. 90
VI.7. LA PGINA DE LAS SECCIONES ..................................................................................... 91
VI.8. LAS PALABRAS CLAVE EN LOS ARTCULOS .................................................................... 94
VI.9. LAS PALABRAS CLAVE EN LAS SECCIONES .................................................................... 96
VI.10. LA INTERFAZ DE LAS NOTICIAS .................................................................................. 98
VII. TUCOS Y UTILIDADES ..................................................................................................... 99
VII.1. VER EL NMERO DE MENSAJES DEL FORO UNIDO A UN ARTCULO............................ 100
VII.2. PRESENTAR LOS RESULTADOS DE UNA BSQUEDA POR SECTORES ........................... 100
VII.3. NO MOSTRAR LOS ARTCULOS PUBLICADOS HACE MS DE UN AO.......................... 101
VII.4. MOSTRAR LOS LTIMOS ARTCULOS DE LOS REDACTORES DE CADA SECCIN.......... 101
VII.5. VARIOS LOGOS PARA EL MISMO ARTCULO............................................................... 102
VII.6. MOSTRAR LOS ELEMENTOS COMO LNEAS DE UNA TABLA ......................................... 107
VII.7. RELLENAR LOS META-TAGS HTML DE LAS PGINAS DE ARTCULO............................. 108
VII.8. UN MEN DESPLEGABLE PARA PRESENTAR UNA LISTA DE ARTCULOS ..................... 108
VII.9. PUBLICAR AUTOMTICAMENTE SEGN LA FECHA O SEGN EL ORDEN IMPUESTO..... 108
VII.10. SELECCIONAR ARTCULOS POR ORDEN ALFABTICO, SALVO UNO QUE HAY QUE
PUBLICAR EN PRIMER LUGAR .............................................................................................. 109
VII.11. REALIZAR UNA AGENDA CON SPIP........................................................................... 110


- Pgina 4 de 114 -




I. Primeros pasos
Informacin previa al uso de SPIP

- Pgina 5 de 114 -
I.1. Contribuir al desarrollo de SPIP
Si deseas ayudar en la programacin de SPIP, la idea ms importante a recordar es la siguiente: lle-
gas a un proyecto que ya est en funcionamiento. Este proyecto tiene un conjunto de reglas que, por
arbitrarias que puedan parecer, aseguran su coherencia. Estas reglas no es necesario que estn enun-
ciadas explcitamente para existir: algunas son claramente visibles tras un examen ms o menos deta-
llado del cdigo, y las reglas tcitas deben respetarse de misma forma que las dems.
Se aconseja formalmente atenerse a estas reglas. Esta cuestin no est sujeta o no a tus gustos per-
sonales: permite al proyecto conservar su coherencia y su unidad, y mantenerlo tan legible como estaba
antes. No olvides que otras personas distintas a ti estn obligadas a leer, entender, y tal vez modificar
tu cdigo.
Por ejemplo, es evidente que las funciones de SPIP estn escritas de forma mi_funcion(). En el
marco de este proyecto, estara por lo tanto completamente fuera de lugar aadir funciones escritas co-
mo MiFuncion() - aunque esta forma no es, en absoluto, ms criticable que la otra.
Evidentemente, todo esto no impide criticar una regla y proponer otra mejor, llegado el caso. No du-
des en hacerlo; pero tiene que haber buenas razones para ello.
En fin, toda regla tiene excepciones. Pero estas deben tener una verdadera justificacin, no slo la
pereza del programador; deben ser lo ms escasas posible. En especial, hay que tener presente que lo
provisional tiene bastante tendencia a convertirse en definitivo cuando nadie se preocupa de corregir-
lo; claramente es lgico y justo que todo programador sea responsable del acabado de su propio cdigo,
pero no del de los dems.
I.1.1. Reglas de presentacin y de escritura
Las reglas siguientes son comunes para un nmero ms o menos grande de lenguajes de programa-
cin: al menos todos los lenguajes que tienen una sintaxis similar a PHP (es decir, adems del propio
PHP, C, C++, Java....).
Estas son reglas aceptadas comnmente, de forma tan natural como las reglas de presentacin y de
tipografa de un texto en lenguaje natural; de hecho es frecuente que sean similares.
Presentacin
El cdigo debe estar espaciado e indentado de manera que resalte su estructura y la separacin en-
tre los diferentes bloques lgicos (en especial las funciones). El espaciado y la indentacin deben ser
suficientes para hacer comprensible la estructura desde el primer vistazo; tampoco deben ser exce-
sivos. Se le debe prestar la misma atencin que a la divisin en prrafos de un texto en lenguaje
natural.
La indentacin se har preferentemente con el carcter de tabulacin. Eso permite elegir libremente
la profundidad de indentacin en las opciones de tu editor de texto, sin imponer esa eleccin al re-
sto de desarrolladores.
Todo bloque contenido en el interior de un par de llaves se indentar con una sola tabulacin. Lo
mismo, de forma recursiva, para los sub-bloques: aadir una nica tabulacin suplementaria por
cada salto a un nivel suplementario de profundidad. Esta regla tambin sirve para la declaracin de
funciones.
El cdigo que no forma parte de una funcin no debe estar indentado.
El uso de las transiciones PHP-HTML (<?php y ?>) debe ser minimizado. Evitarlo cuando haya que
mostrar nicamente pequeas partes de HTML. No olvidar que un trocito de cdigo PHP insertado en
medio de un ocano de HTML es invisible sin un examen muy atento.
Tipografa
Cuando se usen parntesis o corchetes, no hace falta dejar espacio despus del parntesis de aper-
tura ni antes del parntesis de cierre.
Cuando se usen operadores binarios (+, =, *, AND, ...), hay que dejar un espacio a ambos lados
del operador. La excepcin manifiesta a esta regla, es cuando los operadores se mencionan y no son
usados como tales.
Los operadores unarios (!, ...) deben estar pegados al parmetro al cual se aplican.
Por convencin, despus de la llamada a una funcin, no hay espacio antes del parntesis de aper-
tura: f($x) y no f ($x). Al contrario, y para distinguirlo bien, se deja un espacio antes del
parntesis cuando se trata de una estructura de control integrada en el lenguaje: if (!$x) y no
if(!$x).
La coma y el punto y coma van seguidos por un espacio; pero no precedidos por l.
I.1.2. Reglas de programacin
Reflexionar
Antes de programar una nueva caracterstica, reflexionar sobre...


- Pgina 6 de 114 -
mtodos y algoritmos usados para la implementacin: ligereza, prestaciones, robustez (no dudes en
hacer algn clculo aproximado para validar tu eleccin);
adecuacin al proyecto: portabilidad, seguridad, flexibilidad;
implicaciones para el resto de caractersticas: modificaciones y aadidos que hay que hacer en las
caractersticas existentes;
lugar natural para esta caracterstica dentro del proyecto: en cuanto a la interfaz, a los ficheros...
No olvidar la factorizacin o puesta en comn del cdigo (para las funciones, y especialmente para
los ficheros a incluir). Evitar en cambio mientras sea posible los ficheros incluidos que contengan cdigo
fuera de funciones (salvo cuando esto es natural y es lo que se desea).
Dar nombre
Variables y funciones:
Sea cual sea el proyecto, el modo de dar nombres debe ser homogneo para que el cdigo sea fcil
de leer. As, bajo SPIP, los nombres de las variables y los de las funciones estarn en minsculas; con
los nombres compuestos, de la forma variable_compuesta.
De manera general, los nombres no sern ni muy breves, ni demasiado largos; y sern suficiente-
mente explcitos. Esta regla es particularmente importante para las variables globales, que pueden estar
compartidas por varios ficheros y numerosas funciones. Para las variables locales (i.e. en una funcin),
la regla es ms flexible. Notablemente, se pueden emplear variables de una letra, por ejemplo para ob-
tener expresiones ms compactas. Recordamos que en todos los lenguajes de programacin, un cierto
nmero de letras se asocian, por tradicin, con determinados usos (ejemplos: $i, $j para los contadores
de bucles, $n para una denominacin, $t para un instante o una duracin en segundos...). No cambiar
esas convenciones permite que los lectores vayan al grano ms rpidamente.
Ficheros:
Por razones histricas, los ficheros a incluir en el espacio pblico se llamarn inc-fichero.php3. En
el espacio privado, esto ser ecrire/inc_fichero.php3 (ntese el guin bajo en lugar del guin nor-
mal). Los ficheros del espacio pblico llamados mediante redireccin HTTP desde el espacio privado se
llaman spip_fichero.php3. Todos los dems ficheros tienen un nombre que no comienza ni por "inc",
ni por "spip".
Probar
Una vez aportada una modificacin importante, es bueno comprobarla por si mismo, sin esperar a
que alguien lo haga en nuestro lugar. En el marco de SPIP, esto quiere decir verificar que el programa
funcione correctamente en un cierto nmero de alojamientos Web (por ejemplo: Altern, Free...) y de
configuraciones (por ejemplo: diferentes versiones de PHP, de MySQL, restriccin mayor o menor de los
derechos de acceso a los directorios...); y tambin que un determinado nmero de las situaciones ms
habituales (sobre todo en el caso de una interfaz grfica) se efecten correctamente.
I.1.3. Compartir tus modificaciones
Una vez que ests satisfecho con la modificacin del cdigo, es el momento para hablar con los de-
ms desarrolladores de SPIP, y para ver si merece ser integrado en la distribucin oficial de SPIP... Une-
te a la lista de correo spip-dev. Hasta pronto!

I.2. Seguridad: SPIP e IIS
Impedir el acceso a los datos confidenciales de SPIP bajo Microsoft IIS
Este artculo afecta a quienes tengan su sitio web alojado en una mquina que no utilice Apache, el
servidor Web ms extendido, sino el software IIS de Microsoft.
I.2.1. Seguridad por omisin de SPIP
En SPIP existen dos carpetas sensibles, que son CACHE y ecrire/data. La primera contiene todos
los ficheros que utiliza la cache para acelerar la visualizacin de las pginas, luego es de mediana sensi-
bilidad; pero la segunda almacena los registros de actividad de SPIP (los spip.log) y sobre todo permite
crear dump.xml, el fichero de respaldo de la base de datos.
El valioso fichero dump.xml contiene datos muy sensibles: en particular se pueden ver todos los ar-
tculos, incluso los que no se han publicado en el sitio web, sin contar que igualmente lista los identifica-
dores y contraseas
1
de los redactores y administradores del sitio.
La seguridad de todos estos ficheros tradicionalmente se asegura mediante unos ficheros de configu-
racin de acceso llamados .htaccess. SPIP genera estos ficheros automticamente para impedir el acce-
so a los datos sensibles almacenados en el servidor: se puede comprobar que las carpetas CACHE y

1
Las contraseas son cifradas por SPIP; pero hay que tener muy presente que ninguna proteccin es i nviolable.

- Pgina 7 de 114 -
ecrire/data contienen cada una un fichero .htaccess. Por desgracia, estos ficheros funcionan bajo
Apache (el servidor Web libre que mueve la mayora de los sitios Web de Internet) pero no bajo IIS (In-
ternet Information Services, el servidor Web de Microsoft).
I.2.2. Proteger sus datos bajo IIS: un paso ms
Si el sitio SPIP est instalado en un IIS, cualquiera podr ver las carpetas que se hayan asegurado
por medio de ficheros .htaccess: por lo tanto, es necesario protegerlas.
Para proteger una carpeta del sitio web : ir al panel de administracin del servidor Web, hacer clic
con el botn derecho sobre la carpeta deseada, pulsar en propiedades, y en la pestaa Directorio
desmarcar la casilla Leer.

Panel de propiedades de la carpeta /ecrire/data/
Basta con desmarcar la casilla "Leer" para proteger la carpeta exactamente igual que
hace Apache con los ficheros .htaccess
Hace falta realizar esta operacin en cada una de las dos carpetas CACHE y ecrire/data. Si se ha
hecho bien, no debera ser posible el acceso a los ficheros de estas carpetas a travs del servidor web.
Se puede comprobar la configuracin intentando abrir http://www.tu-sitio.com/ecrire/data/spip.log con
el navegador. Se debera obtener un mensaje de tipo Acceso denegado.

I.3. Rapidez del sitio pblico
Contrariamente a la mayora de sistemas de publicacin gratuitos, SPIP integra un sistema de cach
que permite acelerar la publiacin del sitio pblico. Algunas pistas para entender lo que influye en la ra-
pidez de tu sitio...
I.3.1. Optimizar un sitio
Si te preocupa la rapidez de publicacin de tu sitio es bueno interesarse por las siguientes pistas:
El servidor que alberga tu web ofrece servicios de buena calidad? Evidentamente es subjetivo. La
expresin mala calidad podra seguramente aplicarse a la mayora de albergadores gratuitos (so-
bre todo Free). Buena calidad incluye forzosamente una mquina dedicada (i.e. que slo es utili-
zada por tu sitio) de fabricacin reciente, pero tambin a los albergadores comerciales con precios

- Pgina 8 de 114 -
no muy rebajados. Entre los dos, esto se convierte en algo muy subjetivo en funcin de tus exigen-
cias, del tamao del sitio...
Si la calidad del servidor en el que albergas tu sitio web deja que desear, tienes inters en no crear
esqueletos muy complejos, i.e. que piden a SPIP publicar muchas informaciones diferentes. Esto sir-
ve para todo tipo de informaciones: todo lo que, en los esqueletos, es susceptible de ser transfor-
mado por SPIP en informaciones publicables. Ten en cuenta en particular que los esqueletos ofreci-
dos por defecto ofrecen el mximo de posibilidades de SPIP y por tanto generan pginas bastante
pesadas.
No olvides adems modificar el plazo de expiracin de los diferentes tipos de pginas. As, si tu sitio
contiene un gran nmero de artculos en archivos te interesar aumentar el plazo de expiracin de
los artculos, sino los artculos consultados de manera poco frecuente no se beneficiaran del sistema
de cach.
I.3.2. La influencia de la cach
La presencia de la cach cambia un poco las condiciones de rapidez. El punto crtico no ser tanto el
nmero de visitas de tu sitio sino la capacidad de tu servidor para actualizar las pginas en el tiempo de-
terminado en el script PHP (en efecto, en la mayora de servidores se ha fijado un lmite de duracin de
ejecucin por llamada para evitar el abuso y los errores de prgramacin). Por contra, si la pgina solici-
tada est en la cach y no ha expirado, la respuesta del servidor deber ser cuasi instantnea (en caso
contrario, tu servidor est realmente muy cargado).
La calidad de las acciones se convierte as en objetivamente mesurable si, tras la actualizacin de
una pgina del sitio, se obtiene un timeout, es decir, que el servidor ha sobrepasado el tiempo mxi-
mo de ejecucin de un script PHP. Entonces hay que cambiar el albergue del sitio o bien decidirse a pu-
blicar pginas ms sencillas: para ello modificar los esqueletos para publicar menos informacin en una
misma pgina.
I.3.3. En una mquina dedicada
Si utilizas una mquina propia es necesario que te asegures que podr asumir la carga. Cualquier
mquina no muy vieja (menos de tres aos) debera ser capaz.
Por contra, la utilizacin de SPIP en relacin a otros sistemas de publicacin permite compartir los
rescursos tcnicos entre varios sitios. En efecto, en tanto que se utiliza la cach, la mquina est poco
solicitada y por tanto pueden cohabitar varios sitios sin problema (salvo si se recibe realmente un nme-
ro muy grande de visitas). El problema es pues sobretodo prevenir que exista muchos pasajeros a bor-
do, es decir, que un nmero demasiado de servicios albergados (sitios web, correos electrnicos...) pone
en peligro la calidad del servicio.


I.4. Qu son los ficheros -dist.html?
Como ya sabrs (sino lee el tutorial y luego el manual de referencia) el sistema de esqueletos est
basado en ficheros .html que contienen la presentacin grfica del sitio. Por ejemplo article.html
presenta los artculos, rubrique.html presenta las secciones...
Ahora bien, nos dimos cuenta que frecuentemente quienes manipulaban su sitio pblico modificando
estos archivos .html distribuidos con SPIP, encontraban problemas al alctualizarlo, si previamente no
haban tomado sus precauciones haciendo un respaldo de los archivos modificados. En efecto, al reinsta-
lar todos los nuevos archivos entregados con SPIP estos se graban pura y simplemente sobre los archi-
vos modificados (olvidando hacer una copia de seguridad de sus modificaciones).
A partir de la versin 1.3 puedes constatar que los archivos de esqueletos ofrecidos en la distribucin
de SPIP se denominan article-dist.html, rubrique-dist.html, y as sucesivamente. Si se quiere
personalizar estos archivos bastar con primero renombrarlos article.html, rubrique.html, etc.
(sin el -dist). De tal manera que en la siguiente actualizacin reinstalars los ficheros -dist.html pero
tus archivos propios .html no seran sustituidos. Una pequea mejora que evitar mucho trabajo su-
plementario.
I.4.1. Para ir ms lejos
Este es el orden (por prioridad decreciente) en el que son utilizados los archivos de esqueletos segn
su nombre:
rubrique=10.html: si este archivo existe slo se aplica a la seccin (rubrique) nmero 10;
si este archivo no existe SPIP busca si existe entonces un archivo denominado rubrique-10.html,
si ste existe, la seccin (rubrique) 10 y las sub-secciones lo utilizan, es pues recursivo;
si este archivo no existe, SPIP busca si existe uno denominado rubrique.html que se aplica a todas
las secciones del sitio que no estan relacionados con los archivos indicados anteriormente;
si este archivo no existe, SPIP utiliza entonces el archivo rubrique-dist.html que es el que se dis-
tribuye por omisin. Si quieres modificarlo renmbralo rubrique.html, de tal manera que no se bo-
rren tus modificaciones en la prxima actualizacin de SPIP.

- Pgina 9 de 114 -
Nota: En el artculo sobre las variables de personalizacin (vase cap. IV.9 Las variables de
personalizacin) se explica como proceder para guardar todos los esqueletos del sitio en
una sub-carpeta.

I.5. FAQ para webmasters y webmisstres
I.5.1. Las bases
1. Como puedo modificar el aspecto del sitio pblico?
La gestin de la publicacin se apoya en ficheros que llevan la extensin .html llamados esqueletos
de publicacin de pginas. Grosso modo, su papel es similar a lo que otros programas llaman mode-
los, plantillas o, en ingls, templates.
Cada fichero est asociado a un tipo de pgina diferente: as podemos encontrar un esqueleto para el
sumario, uno para visualizar artculos, otro para las secciones, etc. Un esqueleto contiene HTML estndar
que define la presentacin de la pgina, en el cual se insertan cdigos especficos de SPIP para definir
qu informacin vendr a habitar en esta paginacin.
El lenguaje de los esqueletos de SPIP es muy flexible y permite realizar paginaciones muy variadas.
Una simple mirada a uZine [http://www.uzine.net/], Vacarme [http://vacarme.eu.org/], Hacktivist
News Service [http://hns.samizdat.net/] o a otros sitios registrados aqu
[http://www.spip.net/es_article81.html] por sus creadores y creadoras, alcanzarn para convencerte.
Por ende, si bien el formato de pginas por omisin puede ser muy til para entrar en materia, es una
pena limitarse a ste.
2. Es posible escribir uno mismo dichos esqueletos?
S. Y es uno de los principales intereses de SPIP. Para eso se sugiere consultar:
primero el tutorial SPIP paso a paso (vase seccin III. SPIP paso a paso) para comprender las
bases de programacin de los esqueletos, partiendo de ejemplos elementales,
luego recorrer el manual de referencia (vase seccin II. Formateo. Manual de referencia) que
detalla todas las posibilidades para la construccin del contenido de los esqueletos,
y la gua de funciones avanzadas que documenta diferentes mecanismos para estructurar el sitio, y
en particular las posibilidades de internacionalizacin.
3. No se/no quiero aprender a programar. Se pueden utilizar paginaciones ya existentes?
S. Adems de la paginacin por omisin, hay otros juegos de esqueletos disponibles en el sitio de
contribuciones SPIP [http://www.spip-contrib.net/], en la seccin Squelettes [http://www.spip-
contrib.net/rubrique.php3?id_rubrique=5] (nicamente en francs por el momento).
En general slo es necesario recuperar el archivo deseado (fichero en formato .zip o .tar.gz, a elec-
cin), descomprimirlo en tu ordenador y transferir su contenido va FTP a la raz de tu sitio SPIP. Mejor
hacer una copia de seguridad de tus esqueletos .html previos, por si no te convence el resultado y pre-
fieres desandar el camino.
4. No hay muchos juegos de esqueletos disponibles. Por qu?
Estos juegos de esqueletos disponibles se alimentan por los/las webmasters/webmistress SPIP que
ofrecen sus creaciones. Contamos pues con los webmasters para completar esta base de esqueletos con
el fin de animar a la ayuda mutua y la mejora de los sitios con SPIP. (cf. la seccin Compartir ms
abajo en esta FAQ)
I.5.2. Crear sus propios esqueletos
1. Se puede utilizar un editor de textos para crear y modificar los esqueletos?
S, al igual que lo haramos para un documento HTML clsico..
2. Se puede utilizar un editor grfico (WYSIWYG) para crear y modificar los esqueletos ?
S, tal como lo haramos para el HTML clsico. Ver sin embargo la siguiente pregunta.
3. Intento utilizar un editor grfico para crear mis pginas pero este editor me modifica los
cdigos SPIP. Como puedo resolver el problema?
Algunos editores grficos corrigen automticamente las marcas que no comprenden. La mayora
de ellos tienen una opcin que permite desactivar esta funcin. Hemos dedicado un artculo especfico
para DreamWeaver, pero la dinmica es equivalente para otros editores (HomeSite, GoLive...).
I.5.3. Compartir tus creaciones
1. Constru esqueletos para mi sitio. Como puedo hacer para compartirlos?

- Pgina 10 de 114 -
No dudes en inscribirte en el sitio SPIP-contrib [http://www.spip-contrib.net/] anteriormente men-
cionado, para ofrecer tus esqueletos y que otras y otros puedan a su vez bajarlos e inspirarse de stos
para su propio trabajo.
El sitio SPIP-contrib an slo est en francs, pero te espera para iniciar una versin multilinge. No
dudes en venir a charlar de sto en la lista spip-es@rezo.net.

- Pgina 11 de 114 -




II. Formateo: manual de refe-
rencia
Cmo hago para crear mis propios formatos de pgina
en un sitio manejado con SPIP.

- Pgina 12 de 114 -
II.1. Principio general
Todo el contenido de un sitio gestionado por SPIP se instala en una base de datos MySQL (en la parte
protegida por la contrasea /ecrire). Para mostrar sus informaciones a quien visita el sitio es necesario
realizar la operacin que consiste en recuperar las informaciones, organizarlas y colocarlas en la pgina
para ofrecer una pgina HTML.
Esta operacin es habitualmente bastante dificultosa:
es necesario conocer PHP y MySQL, y efectuar rutinas relativamente complejas;
la integracin de tales rutinas en una pgina HTML elaborada es bastante dificultosa;
el recurso sistemtico a las peticiones MySQL cada vez que se muestra una pgina consume impor-
tantes recursos, ralentiza la visita y en casos extremos provoca que el servidor se cuelgue.
SPIP propone una solucin completa para resolver estas dificultades:
la paginacin del sitio se efecta a travs de pginas HTML denominadas esqueletos, que contienen
las instrucciones simplificadas que permitirn indicar dnde y cmo se colocan las informaciones en
la pgina;
un sistema de cach permite almacenar cada pgina y as evitar provocar llamadas a la base de da-
tos en cada visita. No slo la carga del servidor sino que la velocidad se acelera considerablemente,
y adems un sitio SPIP contina pudindose consultar incluso si la base MySQL est colgada.
II.1.1. Para cada tipo de documento, un par de ficheros
El inters (y el lmite) de un sistema de publicacin automatizado es que no se redefinir una interfaz
diferente en HTML para cada pgina aislada. Por ejemplo todos los artculos tendrn la misma interfaz,
simplemente el sistema colocar informaciones diferentes en este grafismo (veremos ms adelante que
SPIP permite sin embargo cierta flexibilidad).
La ventaja de esta manera de proceder es evidente: se define un formato-tipo (esqueleto) para, por
ejemplo, todos los artculos y el sistema fabricar cada pgina individual colocando automticamente el
ttulo, el texto, los enlaces de navegacin... de cada artculo.
Para cada tipo de documento, SPIP solicita dos ficheros: un fichero .php3 y un fichero .html. Tras la
instalacin de SPIP encontrareis as las parejas: article.php3 / article.html, rubrique.php3 /
rubrique.html, etc. Se puede, naturalmente, modificar estas parejas y crear otras.
II.1.2. El principio de funcionamiento de la cach
La llamada de una pgina especfica se realiza a travs del fichero .php3. Por ejemplo para llamar al
artculo 5 la URL correspondiente es:
article.php3?id_article=5


1. El fichero solicitado es por tanto article.php3, con la variable id_article=5.

- Pgina 13 de 114 -
2. El fichero article.php3 es un fichero PHP; su primera tarea consiste en verificar en el dossier
/CACHE en vuestro servidor si existe ya un fichero correspondiente a este artculo.
Si el fichero existe en /CACHE, article.php3 verifica su fecha de creacin. Si el fichero es
suficientemente reciente lo devuelve directamente a quien lo ha solicitado. El procedimiento de
consulta ha finalizado.
3. Si no existe el fichero en /CACHE (en el caso, por ejemplo, de la primera visita al artculo) o
bien si su fecha de creacin es muy antigua, SPIP pone en marcha el clculo de esta pgina.
4. Es en este momento cuando la pgina article.html se carga y se analiza. Esta pgina contiene
la paginacin correspondiente a este tipo de documento. Se trata de HTML completado con indi-
caciones que permiten colocar los elementos extrados de la base de datos. En funcin de los
elementos solicitados por article.html, SPIP buscar las informaciones necesarias extradas de
la base de datos MySQL y las insertar en las zonas previstas.
5. Tambin se fabrica un fichero a partir de la descripcin contenida en article.html, con los ele-
mentos extrados de la base de datos. Este fichero se guarda en el dossier /CACHE y se reenva
a la persona visitante de la pgina.
En una visita siguiente, si el tiempo que transcurre entre una visita y otra es suficientemente corto,
ser el nuevo fichero almacenado en /CACHE el que se entregue sin necesidad de realizar un nuevo cl-
culo a partir de la base de datos. En caso de que se cuelgue la base de datos ser este fichero, incluso si
es demasiado antiguo el que se muestre al/a la solicitante.
Nota. Se observa aqu que cada pgina del sitio se introduce en la cach individualmente y que
cada actualizacin est provocada por las visitas del sitio. No existe la opcin de actualizar
todas las pginas del sitio a la vez de manera regular (este tipo de gran maniobra acaba
provocando la sobrecarga del servidor y el que a veces se cuelgue).
II.1.3. El fichero .php3
El fichero .php3 es muy simple. Por ejemplo, article.php3 contiene nicamente:
<?
$fond = "article";
$delais = 24 * 3600;
include ("inc-public.php3");
?>
Su nico objetivo es establecer dos variables ($fond y $delais) y llamar al fichero que inicia el fun-
cionamiento de SPIP (inc-public.php3).
La variable $fond es el nombre del fichero que contiene la descripcin de la puesta en pgina (el es-
queleto). All, dado que $fond="article", el fichero de descripcin se incluir en article.html. (Ntese
que en la variable $fond, no se indica la terminacin .html.)
Nota: El inters de elegir por si mismo el nombre del fichero de esqueleto (que se hubiera po-
dido deducir automticamente del nombre del fichero .php3 es para cuando sea necesario
utilizar otro nombre. Se produce para no remplazar, eventualmente, ficheros HTML que po-
dran subsistir de una antigua versin del sitio que no se desea suprimir. Si existe, de una
versin anterior del sitio, un fichero article.html que no se desea borrar se utilizar, por
ejemplo, un fichero esqueleto para SPIP titulado spip-article.html, y se colocar en arti-
cle.php3: "$fond="spip-article".
La variable $delais es el tiempo mximo para la utilizacin del fichero almacenado en /CACHE. Este
tiempo se fija en segundos. Un plazo de 3600 corresponde a una hora; el plazo de 24*3600 sera de 24
horas.
Se escoger este valor en funcin de la frecuencia de actualizacin de contenidos en el sitio (nuevos
artculos, nuevas notas breves...). Un sitio actualizado varias veces al da podra adoptar un plazo de una
hora; un sitio en el que se publican varios artculos por semana podra adoptar un plazo mucho ms lar-
go. Por otro lado tambin es importante el contenido de las pginas: si utilizas la sindicacin del conte-
nido de sitios frecuentemente actualizados, sin duda querrs adaptar tu propio plazo al de los sitios refe-
renciados.
Nota. Algun@s webmaster/webmisstres sucumben a la tentacin de fijar plazos irrisorios (algu-
nos segundos) para que el sitio corresponda muy exactamente, a cada instante, a las ltimas
modificaciones de la base de datos. En este caso, pierdes todas las ventajas del sistema de
la cach: las visitas se ralentizan notablemente e incluso al lmite; en sitios muy visitados,
puedes provocar que la base de datos se cuelgue (o ser expulsado por quien alberga tu sitio,
porque ests monopolizando la potencia de su servidor...).
Nota. Otra razn que parece animar a webmasters/webmisstres a fijar un plazo muy corto es la
presencia de foros en su sitio. Para que las contribuciones sean visibles desde que se envan
creen que es necesario reducir el plazo de actualizacin. Es intil. SPIP maneja automtica-
mente este aspecto; cuando se enva una contribucin al foro la pgina correspondiente se
borra de la cach y se actualiza inmediatamente sea cual sea el plazo establecido para esta
pgina.

- Pgina 14 de 114 -
II.1.4. El fichero .html
En SPIP, los ficheros .html se llaman esqueletos. Son ellos los que describen la interfaz grfica de las
pginas.
Estos ficheros se crean directamente en HTML a lo que se suman instrucciones que permiten indicar
a SPIP donde deber colocar los elementos extrados de la base de datos (del tipo: colocar el ttulo
aqu, indicar en este lugar la lista de artculos que se refieren al mismo tema...).
Las instrucciones de colocacin de los elementos se realizan en un lenguaje especfico explicado en
este manual de utilizacin. Este lenguaje constituye la nica dificultad de SPIP.
Otro lenguaje? Pues s, vas a tener que aprender un nuevo lenguaje. Sin embargo, no es muy
complicado y permite crear interfaces complejas muy rpidamente. En relacin a PHP/MySQL, vers que
te permite ganar mucho tiempo (sobre todo: es mucho ms simple). Se trata de un lenguaje de marcas
(markup language), es decir, un lenguaje utilizando cdigos similares al HTML.
Nota. De la misma manera que se aprende HTML inspirndose en el cdigo fuente de los sitios
que se visitan, puedes inspirarte en los esqueletos utilizados por otros sitios que funcionan
con SPIP. Basta con buscar el fichero .html correspondiente. Por ejemplo, puedes ver el
esqueleto de los artculos de uZine (visualizar el cdigo fuente para obtener el texto del es-
queleto).
II.1.5. Una interfaz diferente en el mismo sitio
Ante todo cabe mencionar que es posible crear varias parejas de ficheros para el mismo elemento l-
gico (artculos, secciones, ...). Por ejemplo puedes crear ficheros para visitar un mismo artculo con dife-
rentes interfaces article.php3/html para el formato normal, imprimir.php3/html para el mismo art-
culo en un formato adaptado a la impresin, articulo-texto.php3/html para el artculo en un formato
texto (adaptado a quienes tienen problemas de visin, por ejemplo), article-heavy.php/html con una
interfaz pesada adaptada a una conexin de alta velocidad, etc.
Una interfaz diferente segn las secciones (rubriques). Se puede, para un mismo tipo de do-
cumento, crear esqueletos diferentes segn las secciones del sitio. Se trata de crear simplemente nue-
vos ficheros .html en funcin de las secciones (intil aqu modificar el fichero .php3, nos contentaremos
con jugar con los nombres de los ficheros esqueletos).
Alcanza con completar el nombre del fichero esqueleto con -numero (guin seguido de un nmero
de seccin). Por ejemplo si creas un fichero: article-60.html, todos los artculos contenidos en la sec-
cin 60 utilizarn este esqueleto (y no el esqueleto por defecto article.html). Atencin: el nmero indi-
cado es el de una seccin (una rubrique). Si esta seccin 60 contiene sub-secciones, los artculos con-
tenidos en estas sub-secciones utilizarn igualmente este nuevo esqueleto.
Nota: En nuestro ejemplo, tambin nos interesar sin duda crear un rubrique-60.html, un
breve-60.html, etc. para acompaar el cambio de formato de esta seccin.
Una interfaz para un sola seccin. (SPIP 1.3) Se puede crear una interfaz que se aplique slo a
una seccin, pero no a sus sub-secciones. Para eso hay que crear un fichero: article=60.html, que se
aplicar nicamente a los artculos de la seccin 60, pero no a sus sub-secciones.
II.1.6. Qu puede incluirse en un fichero .html
Los ficheros .html son esencialmente ficheros texto completados con instrucciones de colocacin
de elementos de la base de datos.
SPIP analiza nicamente las instrucciones de colocacin de los elementos de la base de datos (codifi-
cados segn el lenguaje especfico de SPIP); no le importa lo que est colocado en este fichero y que no
corresponda a estas instrucciones.
Su contenido esencial es pues HTML. T mism@ determinas el aspecto de la pgina, la versin del
HTML deseado, etc. Puedes incluir no slo hojas de estilo (CSS) sino tambin JavaScript, Flash... es de-
cir, todo lo que se coloca habitualmente en una pgina Web.
Pero tambin puedes (sigue siendo texto) crear XML (por ejemplo, backend.php3/html genera
XML).
Ms original: todas las pginas devueltas a quien visita el sitio son extradas del /CACHE por una
pgina escrita en PHP. Por lo tanto en tus esqueletos puedes incluir instrucciones en PHP, que sern eje-
cutadas durante la visita. Utilizada con precisin, esta posibilidad permite una gran agilidad a SPIP, al
que as puedes completar (por ejemplo aadir un contador) o hacer evolucionar algunos elementos de
paginacin en funcin de las informaciones extradas de la base de datos.

II.2. Bucles y balizas
Todo lo que sigue concierne al lenguaje de descripcin de la paginacin de esqueletos con SPIP. Si
entendiste la explicacin precedente, ya sabes que trabajamos con los ficheros .html.

- Pgina 15 de 114 -
Esta documentacin es voluntariamente tcnica (se trata de un manual de referencia tcnica); quizs
prefieras empezar por la gua SPIP paso a paso que es ms didctica y luego volver aqu para una do-
cumentacin ms detallada.
II.2.1. Los bucles
La nocin de base del lenguaje de SPIP es el bucle (boucle, en francs).
La lgica del bucle
Clsicamente, una base de datos est compuesta por tablas que son listas de elementos: aqu, una
lista de artculos, una lista de secciones, una lista de autores, etc. Para construir el sitio, extraeremos
ciertos elementos de estas listas:
puede ser un solo elemento: por ejemplo colgar el contenido del artculo deseado;
pero tambin es frecuente extraer varios elementos de una lista: por ejemplo, en la pgina de una
seccin, queremos mostrar todos los artculos pertenecientes a esta seccin y todas las sub-
secciones;
y an ms sutil: es frecuente que no haya elementos satisfactorios en tal o tal lugar; SPIP debe po-
der manejar la ausencia de stos. Por ejemplo, en el caso precedente qu hacer si no hay sub-
secciones en una seccin dada?
Estas tres situaciones se tratan por la nocin comn de bucle, que permite a la vez tratar la aparicin
de un solo elemento, de varios elementos sucesivos, o la ausencia de elementos.
El sistema de bucles permite, en un cdigo nico:
indicar en que lugar del cdigo HTML se necesita un tipo de elemento (en que lugar se quiere mos-
trar la lista de artculos, en qu lugar se quiere incluir la lista de sub-secciones...);
prever la presentacin un elemento nico;
indicar cmo se muestra una lista de varios elementos;
determinar lo que se muestra cuando no hay ningn elemento correspondiente.
Analoga con la programacin en PHP/MySQL
Quienes ya han programado peticiones MySQL en PHP saben que el tratamiento se desarrolla en dos
tiempos:
la construccin de la sintaxis de la peticin (que consiste en decir quiero recuperar la lista de los
artculos contenidos en tal seccin...);
el anlisis y presentacin de los resultados a travs de un bucle.
Estos son los dos sucesos que, en SPIP, se gestionan mediante los bucles.
II.2.2. Las balizas SPIP
Gracias a los bucles, hemos recuperado elementos nicos o listas de elementos: por ejemplo una lis-
ta de artculos o una lista de secciones...
Sin embargo, cada elemento de esas listas est compuesto por varios elementos precisos: por ejem-
plo un artculo se compone de un ttulo, un antettulo, un subttulo, un texto de introduccin (chapeau),
un texto principal, un post-scriptum, etc. En SPIP tambin existen balizas especficas que permiten indi-
car con precisin en qu lugar se muestran los elementos: situar el ttulo aqu, situar el texto
aqu...
II.2.3. Las balizas dentro de los bucles
Veamos, a travs de un caso clsico, el principio de funcionamiento general de un bucle acompaado
por sus balizas (atencin, esto no es lenguaje SPIP, sino una descripcin lgica):
BUCLE: mostrar la lista de los artculos de esta seccin
mostrar aqu el ttulo del artculo
mostrar el subttulo
mostrar el texto
Fin del BUCLE
Este bucle, analizado por SPIP, puede dar tres resultados diferentes.
No hay ningn artculo en esta seccin.
En este caso, evidentemente, no se usa ninguno de los elementos mostrar aqu... (ttulo, subttu-
lo...). En cambio, si se ha previsto, se puede mostrar un mensaje de tipo No hay artculos.
Slo hay un artculo en esta seccin.
En este caso, simplemente, la pgina HTML se construye segn el modelo del bucle:
Ttulo del artculo
Subttulo
Texto del artculo

- Pgina 16 de 114 -
Hay varios artculos en esta seccin.
La descripcin de compaginacin (mostrar aqu...) ahora se va a calcular sucesivamente para cada
uno de los artculos. Sencillamente esto nos da:
Ttulo del artculo 1
Subttulo del artculo 1
Texto del artculo 1
Ttulo del artculo 2
Subttulo del artculo 2
Texto del artculo 2
...
Ttulo del ltimo artculo
Subttulo del ltimo artculo
Texto del ltimo artculo
La continuacin de esta gua de referencia se realizar de la siguiente manera:
sintaxis general de los bucles;
sintaxis general de las balizas de SPIP;
y, a continuacin, una pgina especfica para cada tipo de bucle, indicando qu balizas se pueden
usar.

II.3. La sintaxis de los bucles
II.3.1. Advertencia: Arqueologa del lenguaje natural
Los trminos que utilizan los lenguajes de programacin generalmente derivan del ingls ( FOR
I==0 TO N DO ... ).
Tal no es el caso de SPIP que fue creado inicialmente en francs. Por eso vers que los trminos uti-
lizados derivan del francs: BOUCLE, ARTICLE, RUBRIQUE, MOT, ...
2

Se ha discutido la posibilidad de traducir este lenguaje pero claramente las complicaciones que impli-
cara no valen la pena. Por lo tanto si quieres aprender a hacer un esqueleto SPIP debers aprender algo
ms de una decena de palabras de francs. No es la mayor complicacin...
II.3.2. La sintaxis bsica
La sintaxis simplificada de un bucle es el siguiente:
< BOUCLEn(TYPE){criterio1}{criterio2 }... { criteriox } >
el cdigo SPIP + HTML
</BOUCLEn >
Vimos en la explicacin de los bucles y las balizas, que el cdigo HTML ms las balizas SPIP se repi-
ten tantas veces como elementos extrados de la base de datos al ejecutar el bucle (es decir una vez,
varias veces, o ninguna).
La lnea significativa, aqu, es:
< BOUCLEn(TYPE){criterio1}{criterio2 }... { criteriox } >
el elemento BOUCLE es la orden que indica que se trata de un bucle SPIP; es decir que no se puede
modificar; o, dicho de otra manera, que todos los bucles de SPIP comienzan con la instruccin BOU-
CLE.
el elemento N es, a eleccin, el nombre o el nmero del bucle. Este elemento lo elige el/la webmas-
ter/webmisstres, para cada bucle que utilice. Veremos ms adelante que es posible (es incluso todo
el inters de la operacin) utilizar varios bucles en el mismo esqueleto: por ende darles un nombre
es esencial para identificarlos.
Si decides numerar los bucles, por ejemplo, la sintaxis se convierte (para el bucle 5):
< BOUCLE5... >
...
</BOUCLE5 >
Si decides darle un nombre a tus bucles (es generalmente ms prctico, el cdigo es ms legible), es
imprescindible hacer preceder este nombre por el smbolo "_" (que generalmente se llama underscore).
Por ejemplo:
< BOUCLE_subsecciones... >

2
bucle - loop, artculo, seccin, palabra (clave),... Para mayores explicaciones de la terminologa, vase el lxico co m-
pleto francs/espaol de SPIP.

- Pgina 17 de 114 -
...
</BOUCLE_subsecciones >
El Elemento (TYPE). Este elemento es de primera importancia: indica qu tipo de elementos se de-
sea recuperar. La sintaxis es significativa: el TIPO (TYPE) se indica entre parntesis (sin espacios), en
maysculas, y este TIPO debe corresponder obligatoriamente a uno que exista entre los tipos considera-
dos por SPIP (que encontrars en la actual documentacin): ARTICLES, RUBRIQUES, AUTEURS, BREVES,
etc. (ARTCULOS, TTULOS, AUTORES, BREVES, etc.)
Para el ejemplo precedente, obtenemos:
< BOUCLE_subsecciones(RUBRIQUES)... >
...
</BOUCLE_subsecciones >
Los Criterios {criterio1}{criterio2}... indican simultneamente:
segn qu criterios se desea seleccionar los elementos de la base de datos (extraer las subsecciones
incluidas en tal seccin, extraer las otras secciones existentes al mismo nivel jerrquico que la pre-
sente seccin...),
la manera de la cual se clasificarn o se limitarn los elementos (clasificar los artculos segn su fe-
cha, segn su ttulo... para extraer solamente los tres primeros artculos, para extraer la mitad de
los artculos...).
Como se pueden combinar criterios, se puede fabricar muy fcilmente extracciones muy potentes de
la base de datos, como "extraer la lista de los 5 artculos ms recientes escritos por tal autor":
<BOUCLE_mismo_autor(ARTICLES){id_auteur}{par date}{inverse}{0,5}>
...
</BOUCLE_mismo_autor>
Los diferentes criterios y su sintaxis sern clarificados a continuacin, para cada tipo de bucle (cier-
tos criterios funcionan para todos los tipos de bucles, algunos son especficos a ciertos tipos).
II.3.3. Sintaxis completa
La sintaxis indicada previamente puede ser completada por elementos condicionales. De hecho, el
bucle precedente fija sucesivamente los elementos contenidos dentro del bucle. SPIP permite adems
especificar qu se incluye antes y despus del bucle si hay varios resultados y qu se inserta si no hay
ningn resultado.
Eso da:
<bn>
cdigo HTML opcional antes
<BOUCLEn(TYPE){criterio1}{criterio2 }... { criteriox } >
cdigo HTML + seudo-balizas SPIP
</BOUCLEn>
cdigo HTML opcional antes
</bn>
cdigo HTML alternativo
<//bn>
El cdigo opcional antes (precedido por < bn >) solo se muestra si el bucle extrae por lo menos una
respuesta. Se incluye antes de los resultados del bucle.
El cdigo opcional despus (que acaba por </bn>) se muestra solamente si el bucle contiene por lo
menos una respuesta. Se incluye despus de los resultados del bucle.
El cdigo alternativo (que acaba por <//bn>) se muestra en el lugar del bucle (y remplazando
tambin los cdigos opcionales antes y despus) si el bucle no encontr ninguna respuesta.
Por ejemplo, el cdigo:
<B1>
Esta seccin contiene los elementos siguientes:
<UL>
<BOUCLE1(ARTICLES){id_rubrique}>
<LI>#TITRE
</BOUCLE1>
</UL>
</B1>
Esta seccin no contiene un artculo.
<//B1>
da los resultados siguientes:
Hay solamente un artculo:
Esta seccin contiene los elementos siguientes:
<UL>

- Pgina 18 de 114 -
<LI> titulo del artculo
</UL>
<code>
- {{hay varios artculos: }}
<code>
Esta seccin contiene los elementos siguientes:
<UL>
<LI> Ttulo del artculo 1
<LI> Ttulo del artculo 1
...
<LI> Ttulo del ltimo artculo
</UL>
No hay ningn artculo:
Esta seccin no contiene ningn artculo.
Nota: La manera de la cual SPIP interpreta los bucles prohbe poner un bucle entre <B1> y
<BOUCLE1>. Sin embargo, es posible poner bucles adicionales en las piezas opcionales si-
tuadas despus de la definicin <BOUCLE1...>. Si debes realmente instalar un bucle en la
parte opcional antes, es necesario pasar por un comando <INCLURE()> (ver ms adelan-
te).
II.3.4. Criterios de entorno en cascada
Cada bucle realiza la seleccin de los elementos extrados de la base de datos en funcin de los crite-
rios. Estos criterios corresponden al entorno en el cual se encuentra el bucle.
Por ejemplo: si se considera un bucle del estilo "extraer los artculos incluidos en esta seccin", es
necesario saber de qu seccin se trata. Es lo que se llama el entorno.
El entorno proporcionado por el URL
Cuando se visita una pgina de un sitio SPIP, su direccin contiene generalmente una variable.
Por ejemplo: rubrique.php3?id_rubrique=15
Esta variable define as un primer entorno: el bucle "extraer los artculos incluidos en esta sec-
cin" debe entonces entenderse como la "extraccin de los artculos de la seccin 15".
Claramente, con el mismo cdigo del esqueleto, si se llama la direccin: rubri-
que.php3?id_rubrique=7
La interpretacin de este bucle se convertir en "extraer los artculos de la seccin 7".
El entorno proporcionado por los otros bucles dentro de un bucle, el entorno se modifica pa-
ra cada elemento de respuesta del bucle. Al colocar bucles al interior unos de otros se hereda as
entornos imbricados unos en otros.
As, en la estructura siguiente:
<BOUCLE_articulos: extraer los artculos de esta seccin>
<LI>Imprimir el ttulo del articulo
<BOUCLE_autores: extraer los autores de este artculo>
Nombre del autor
</BOUCLE_autores>
</BOUCLE_articulos>
Debe entenderse que:
el primer bucle (BOUCLE_articulos) extrae los artculos en funcin de la seccin, en funcin del
entorno que proporciona el URL (id_rubrique=15 por ejemplo);
en este bucle, uno obtiene uno o ms artculos;
"al interior" de cada uno de estos artculos, hay un entorno diferente (el del artculo, es decir, por
ejemplo, id_article=199);
el segundo bucle (BOUCLE_autores), que se encuentra al interior del primer bucle, depende para
cada de sus ejecuciones sucesivas (se ejecuta para cada uno de los artculo del primer bucle): "ex-
traer los autores de este artculo" sucesivamente se convierte en "extraer los autores del primer ar-
tculo", "del segundo artculo" etctera.
Los resultados de los bucles dependen de aquellos de los bucles en los que estn incluidos, y el bucle
inicial depende de un parmetro fijado en la direccin de la pgina.
II.3.5. Bucles incluidos y bucles sucesivos
Si, como acabamos de ver, se pueden incluir bucles unos en otros, tambin se pueden instalar bucles
sucesivos. En ese caso, estos no influyen unos sobre otros. Solo dependen del entorno de URL.
Por ejemplo, la pgina de una seccin se compone tpicamente de los elementos siguientes:
<BOUCLE_seccion(RUBRIQUES){id_rubrique}>
Ttulo de la seccin
<BOUCLE_articulos(ARTICLES){id_rubrique}>

- Pgina 19 de 114 -
<LI> Ttulo del articulo
</BOUCLE_articulo>
<BOUCLE_sub_seccion(RUBRIQUES){id_rubrique}>
<LI> Ttulo de la sub-seccin
</BOUCLE_sub_seccion>
</BOUCLE_seccion>
No hay contenido de seccin en esta direccin
<//B_seccion>
El primer bucle (BOUCLE_seccion) depende de la variable pasada en el URL de la pgina
(id_rubrique=15 por ejemplo). Los bucles siguientes (BOUCLE_articulos y BOUCLE_sub_seccion)
estn al interior del primer bucle. Si no existe una seccin 15, el primer bucle no da ningn resultado (se
imprime el cdigo alternativo "No hay contenido de seccin..."), y se ignoran totalmente los dos bucles
incluidos. Pero si existe una seccin 15, entonces se analizan los dos sub-bucles.
En cuanto a stos, se presentan sucesivamente, uno despus del otro. Dependen de los resultados
del bucle en el que se encuentran, pero son independientes uno de otro. Si no hay artculos en la seccin
15 (BOUCLE_articulos), igual se imprimirn los ttulos de las sub-secciones (BOUCLE_sub_seccion),
y recprocamente.

II.4. La sintaxis de las balizas SPIP
Cada tipo de bucle permite seleccionar los elementos de la base de datos de SPIP: artculos, seccio-
nes, breves, etc. Cada uno de estos elementos est a su vez compuesto por elementos precisos: un ttu-
lo, una fecha, un texto, etc. En el interior de un bucle, es necesario poder indicar en qu lugar del cdigo
HTML se ponen tal o tal de dichos elementos.
Para esto vamos a utilizar las balizas SPIP.
II.4.1. Funcionamiento simplificado
Una baliza SPIP se coloca en el interior de un bucle (pues hay que saber si se quiere recuperar un
elemento de un articulo, una seccin. El nombre de estas balizas es generalmente simple, y se propor-
cionar, para cada tipo de bucle, la lista completa de balizas que se pueden utilizar.
A una baliza siempre la precede el signo diesis (#). Por ejemplo, imprimamos una lista de artculos:
<BOUCLE_articulos(ARTICLES){id_rubrique}>
<LI> #TITRE
</BOUCLE_articulos>
Cuando el bucle ser ejecutado, la baliza SPIP #TITRE ser cada vez remplazada por el ttulo del ar-
tculo en cuestin:
<LI> Ttulo del artculo 1
<LI> Ttulo del artculo 2
...
<LI> Ttulo del ltimo artculo
Nada muy complicado: nos contentamos de indicar en el interior del cdigo HTML el nombre del ele-
mento deseado, y ste es remplazado por el contenido extrado de la base de datos.
II.4.2. Cdigos opcionales
En la prctica, un elemento de contenido se acompaa a menudo con cdigo HTML (que slo debe
incluirse si este elemento existe), sin lo cual el formateo y la paginacin se vuelven imprecisas.
Por ejemplo, existe una baliza SPIP para indicar el ante-ttulo de un artculo. Sin embargo, numero-
sos artculos no tienen ante-ttulo.
Completemos el ejemplo precedente:
<BOUCLE_articulos(ARTICLES){id_rubrique}>
<LI> #SURTITRE<BR>
#TITRE
</BOUCLE_articulos>
que, clsicamente, nos da una lista de artculos, ahora con la indicacin del ttulo y del ante-ttulo de
cada artculo. Pero que pasa si el artculo no tiene ante-ttulo? Obtenemos el cdigo: <LI> <BR> ,
es decir una cua
3
seguida de una lnea en blanco.
Lo que debemos hacer: imprimir el cdigo <BR> slo cuando el artculo tiene un ante-ttulo.

3
Alguien tiene una idea mejor para la traduccin de "puce"?

- Pgina 20 de 114 -
La sintaxis de la baliza SPIP es entonces:
[ texto opcional antes (#BALISE) texto opcional despues ]
La baliza que determina el campo SPIP se pone entre parntesis, y el conjunto de texto condicional
entre corchetes. El texto opcional antes y el texto opcional despus slo se imprimen si existe, en la ba-
se de datos, un campo no vaco que corresponde a dicha baliza.
Nuestro ejemplo da as:
<BOUCLE_articulos(ARTICLES){id_rubrique}>
<LI> [(#SURTITRE)<BR>]
#TITRE
</BOUCLE_articulos>
Y as se obtiene lo que se buscaba: si existe un ante-ttulo se imprime seguido del <BR>; y si no
existe, tambin el <BR> desaparece.
II.4.3. Filtrar los resultados
Es frecuente querer modificar un elemento de la base de datos, ya sea para obtener una visualiza-
cin diferente (por ejemplo imprimir el ttulo todo en mayscula), o para recuperar un valor que se de-
duce a partir de ese elemento. (por ejemplo, imprimir el da de la semana correspondiente a una fecha).
En SPIP se pueden directamente aplicar filtros a los elementos recuperados de la base de datos, indi-
cndolo en la sintaxis de las balizas SPIP, lo que nos da:
[ opcin antes (#BALIZA|filtro1|filtro2|...|filtron) opcin despus ]
Entre parntesis, hay que poner la baliza seguida por el o los filtros sucesivos, separados por una ba-
rra vertical (carcter |, conocido con el nombre pipe en el mundo UNIX)
Nota: En realidad los filtros son funciones PHP. SPIP viene con una serie de filtros ya definidos,
pero uno puede agregar sus propios filtros usando las funciones PHP adecuadas (con la con-
dicin de que estas funciones slo utilicen una variable), como veremos ms adelante.
He aqu algunos filtros definidos por SPIP
4
:
majuscules (maysculas), pasa el texto a maysculas (este filtro es ms potente que la funcin
PHP correspondiente, que no funciona con los caracteres acentuados); por ejemplo:
[(#TITRE|majuscules)]
justifier (justificar), imprime el texto justificado a la izquierda y a la derecha (es decir, en HTML:);
por ejemplo:
[(#TEXTE|justifier)]
La presente documentacin consagra un artculo detallado (vase cap. II.20. Los filtros de SPIP) a
los diferentes filtros que vienen con SPIP.
II.4.4. Evitar las transformaciones por SPIP
SPIP aplica transformaciones tipogrficas a todos los textos extrados de la base de datos. En
particular, pone espacios insecables antes de ciertos smbolos (puntos y coma, etc.), y analiza los atajos
de formateo.
En ciertos casos, puede ser necesario evitar estas transformaciones para recuperar directamente en
texto en bruto, tal cual se encuentra en la base de datos.
Para eso, es suficiente agregar un asterisco (*) luego de la baliza SPIP. Lo que nos da:
[ opcin antes (#BALIZA*|filtre1|filtre2|...|filtren) opcin despus ]
II.4.5. Filtros de varias variables
Cuidado: este prrafo est dirigido a usuari@s SPIP algo experimentad@s. [SPIP 1.5] autori-
za a pasar parmetros en los filtros. La sintaxis es:
[(#BALIZA|filtro{arg1, arg2}|...)]
La funcin filtro debe ser definido de la manera siguiente en el fichero mes_fonctions.php3:
<?php
function filtro($texte, $arg1='valor por omisin 1', $arg2='valor por omisin 2')
{
....clculos....
return (una cadena de caracteres);
}

4
Los nombres de estos filtros estn an en francs. Es muy posible que en el futuro se traduzcan: debera ser suficie n-
te declarar un sinnimo de la funcin PHP.

- Pgina 21 de 114 -
?>
Tal funcin debe tener forzosamente como primera variable el texto a tratar (en este caso, el texto
de #BALIZA).

II.5. El bucle ARTICLES (artculos)
Un bucle de artculos se codifica poniendo ARTICLES (con una s) entre parntesis:
<BOUCLEn(ARTICLES){criterios...}>
Los elementos contenidos en tal bucle son artculos.
Nota. Un bucle ARTICLES slo devuelve artculos publicados. (No hay ninguna manera de mos-
trar artculos en curso de redaccin, propuestos a la publicacin o rechazados.)
II.5.1. Los criterios de seleccin
Se utilizar uno u otro de los criterios siguientes para indicar como seleccionar los elementos.
{tout} (todo) se selecciona la totalidad de los artculos del sitio (en todas las secciones). til en
particular para mostrar los artculos ms recientes (en la integralidad del sitio) en la portada
5
.
{id_article} devuelve el artculo cuyo identificador es id_article. Como el identificador de cada
artculo es nico, este criterio devuelve una respuesta o ninguna.
{id_rubrique} devuelve la lista de artculos contenidos en la seccin id_rubrique.
{id_secteur} devuelve los artculos en este sector (un sector es una seccin que no depende de
ninguna otra seccin, es decir situada en la raz del sitio).
[SPIP 1.4] {branche}: el criterio {branche} (rama) devuelve el conjunto de artculos de la sec-
cin y de sus sub-secciones. (Es una especie de extensin del criterio {id_secteur}. Sin embargo,
al contrario de {id_secteur=2}, no es posible llamar directamente una branche, por ejemplo con
{branche=2}: primero se debe crear un bucle que determine la seccin y dentro de ste se pone
un bucle que lleve el criterio branche. Hablando tcnicamente, el contexto corriente debe dar la sec-
cin en cuestin. Este criterio se debe usar con parsimonia: si tu sitio est bien estructurado, no de-
beras necesitarlo, salvo en casos muy particulares.)
{id_auteur} devuelve los artculos correspondientes a este identificador de autor (til para indicar
la lista de artculos escritos por un autor).
{id_mot} devuelve los artculos correspondientes a este identificador de palabra clave (til para
indicar la lista de los artculos que tratan de cierto tema).
[SPIP 1.3] {titre_mot=xxxx}, o {type_mot=yyyy} devuelve los artculos ligados a la palabra
clave cuyo nombre es xxxx, o ligados a las palabras claves cuyo grupo de palabras claves es
yyyy. Cuidado, no se pueden utilizar varios criterios {titre_mot=xxxx} o {type_mot=yyyy}
en un mismo bucle.
[SPIP 1.4] {id_groupe=zzzz} permite seleccionar los artculos ligados a un grupo de palabras
claves; principio idntico al criterio {type_mot} precedente, pero, como trabajamos con un identi-
ficador (numero del grupo), la sntaxis ser ms limpia. [Nota: Este criterio no es (en el estado
actual del desarrollo de SPIP) acumulable con el precedente {type_mot=yyyy}]
[SPIP 1.7.1] {lang} selecciona los artculos del idioma indicado en la direccin de llamada a la
pgina.
[SPIP 1.7.2] Los criterios {date} (o {date=...} o {date==...}) permiten seleccionar un artculo
en funcin de la fecha pasada en la URL.
{recherche} devuelve los artculos correspondientes a las palabras indicadas en la interfaz de bs-
queda (motor de bsqueda incorporado a SPIP). Ver la pgina consagrada al motor de bsqueda
(vase cap. II.19. Los bucles de bsqueda).
II.5.2. Los criterios de presentacin
Una vez fijado uno de estos criterios, se podrn agregar los criterios siguientes para restringir el nu-
mero de elementos seleccionados.
Por supuesto, se aplican los criterios comunes a todos los bucles, establecidos en el captulo 16.
{exclus} (excluido) permite excluir del resultado el artculo en el cual ya nos encontramos (por
ejemplo, cuando se seleccionan los artculos contenidos en la misma seccin, no se quiere mostrar
un enlace hacia el artculo que se est visualizando).
{doublons} o {unique} (duplicados o nico, estos dos criterios son rigurosamente idnticos)
permiten prohibir la seleccin de artculos ya seleccionados en otros bucles a su vez marcados
{doublons}.
[SPIP 1.7] {traduction} (traduccin) permite extraer todos los artculos que son una traduccin
del artculo en curso.

5
En realidad, el criterio tout no se trata de manera informtica: es un ayuda memoria para el/la webma s-
ter/webmistress; se obtiene el mismo resultado si no se indica ninguno de los criterios siguientes.

- Pgina 22 de 114 -
[SPIP 1.7] {origine_traduction} (origen_traduccin) permite extraer, entre las traducciones del
artculo en curso, el artculo que constituye la versin original.
II.5.3. Las balizas de este bucle
Las balizas extradas de la base de datos:
Las balizas siguientes corresponden a los elementos directamente extrados de la base de datos.
Puedes utilizarlos igualmente como criterio de clasificacin (por ejemplo: {par date} o {par titre}).
#ID_ARTICLE muestra el identificador nico del artculo. til para fabricar enlaces de hipertexto
no previstos (por ejemplo hacia una pgina Imprimir el artculo).
#SURTITRE devuelve el antettulo.
#TITRE devuelve el ttulo del artculo.
#SOUSTITRE devuelve el subttulo.
#DESCRIPTIF devuelve el descriptivo.
#CHAPO devuelve el texto de introduccin (epgrafe, entradilla, copete, como sea que se lo llame).
#TEXTE devuelve el texto principal del artculo.
#PS devuelve la posdata del artculo (post-scriptum).
Las fechas: #DATE, #DATE_REDAC, #DATE_MODIF estn explicadas en el cap. II.23. La ges-
tin de las fechas.
[SPIP 1.7] #LANG devuelve el cdigo del idioma del artculo, en dos letras
6
. Con el filtro tradui-
re_nom_langue se obtiene el nombre completo del idioma, en ese mismo idioma. Por ejemplo,
dentro de un artculo que est en francs #LANG devolver fr y
(#LANG|traduire_nom_langue) franais. Existe una documentacin especfica acerca del mul-
tilingismo de SPIP.
[SPIP 1.7] #LANG_DIR devuelve el sentido de escritura del idioma del artculo corriente. Puede
tomar dos valores: LTR, de izquierda a derecha (left to right) o RTL de derecha a izquierda (right to
left).
#ID_RUBRIQUE es el identificador de la seccin de la cual depende el artculo.
#ID_SECTEUR es el identificador del sector del cual depende el artculo (siendo el sector la seccin
situada en la raz del sitio).
#NOM_SITE y #URL_SITE corresponden a los campos del enlace de hipertexto del artculo (si
es que has activado esta opcin).
#VISITES es el nmero de visitas de este artculo.
#POPULARITE da el porcentaje de popularidad de este artculo, ver el cap. II.22. La popularidad
de los artculos.
Las balizas calculadas por SPIP:
Los elementos siguientes son calculados por SPIP. (No pueden ser utilizados como criterio de clasifi-
cacin.)
#NOTES las notas de fin de pgina (calculadas a partir del anlisis del texto).
#INTRODUCTION: [SPIP 1.4] si el artculo contiene un descriptivo, es ste que se utiliza aqu; si
no, SPIP extrae los 600 primeros caracteres del inicio del artculo (epgrafe, y luego el texto). [SPIP
1.3] En las versiones precedentes de SPIP, son sistemticamente los primeros caracteres del artcu-
lo (epgrafe, y luego el texto) que se tienen en cuenta (el descriptivo no se utiliza).
#LESAUTEURS los autores de este artculo. Evita tener que crear un bucle AUTEURS para obtener
el mismo resultado.
#URL_ARTICLE es la URL de la pgina del artculo.
#FORMULAIRE_FORUM fabrica la interfaz que permite colgar un mensaje de respuesta a este
artculo.
#FORMULAIRE_SIGNATURE fabrica la interfaz que permite firmar la peticin asociada a este
artculo.
#PARAMETRES_FORUM fabrica la lista de variables necesarias a la interfaz del formulario que
permite responder a este artculo. Por ejemplo:
[<A HREF="forum.php3?(#PARAMETRES_FORUM)">Responder a este artculo</A>]
Los logos:
#LOGO_ARTICLE el logo del artculo, eventualmente con la gestin del sobrevuelo por el ratn.
#LOGO_ARTICLE_RUBRIQUE el logo del artculo, eventualmente reemplazado por el logo de la
seccin si no existe logo especfico del artculo.
#LOGO_RUBRIQUE el logo de la seccin del artculo.
Los logos se incorporan en un esqueleto SPIP de la manera siguiente:
[(#LOGO_ARTICLE|alineacin|direccin)]
La alineacin puede ser left (izquierda) o right (derecha). La direccin es la URL de destino del enlace
de este logo (por ejemplo #URL_ARTICLE). Si no se indica una direccin, el botn no es un enlace.

6
La referencia de los cdigos de lengua es, en principio, la norma ISO 639-2 (disculparn que la referencia est en i n-
gls y en Estados Unidos, pero la ISO ya no pone sus normas accesibles en lnea).

- Pgina 23 de 114 -
Si se quiere recuperar directamente el nombre del fichero del logo (mientras que las balizas prece-
dentes fabrican el cdigo HTML completo para insertar la imagen en la pgina), por ejemplo para mos-
trar una imagen en el fondo de un cuadro, se utilizar el filtro |fichier como sigue: [(#LO-
GO_ARTICLE|fichier)]
Por otra parten dos balizas permiten recuperar uno solo de los dos logos:
#LOGO_ARTICLE_NORMAL es el logo principal;
#LOGO_ARTICLE_SURVOL es el segundo logo, que normalmente aparece cuando se lo sobre-
vuela con el ratn.

II.6. El bucle RUBRIQUES (secciones)
El bucle RUBRIQUES (secciones o rbricas, en francs) devuelve una lista de... secciones (extrao,
no?)
<BOUCLEn(RUBRIQUES){criterios...}>
Nota. Un bucle RUBRIQUES slo cuelga secciones activas, es decir que contengan artculos
publicados, documentos adjuntos (a partir de [SPIP 1.4]), sitios publicados, o sub-
secciones a su vez activas. De esta manera, se evita caer en secciones callejn sin salida,
que no presenten ningn elemento de navegacin de inters. A partir de la versin SPIP
1.7.1, es posible forzar a que aparezcan las secciones vacas (ver ms abajo).
II.6.1. Los criterios de seleccin
Se pueden utilizar uno u otro de los siguientes criterios para indicar como se seleccionan los elemen-
tos.
{tout}: todo, selecciona la totalidad de las secciones del sitio.
{id_rubrique} devuelve la seccin cuyo identificador es id_rubrique. Como el identificador de ca-
da seccin es nico, este criterio devuelve una o ninguna respuesta.
{id_secteur} devuelve las secciones del sector de la seccin actual
7
. (Tambin se puede, por ex-
tensin, utilizar el criterio {branche} (rama), descrito en El bucle ARTICLES (artculos)).
{id_parent} madre, devuelve la lista de secciones (sub-secciones) que contiene la seccin corrien-
te.
{racine} raz, devuelve la lista de sectores (rigurosamente idntico a {id_parent=0}).
{id_enfant} hija, devuelve la seccin que contiene la seccin corriente (une sola respuesta; o cero
respuesta si la seccin corriente est situada en la raz del sitio).
{meme_parent}: mismo_padre, devuelve la lista de secciones que dependen de la misma seccin
que la seccin corriente. Permite mostrar las secciones hermanas que se encuentran al mismo ni-
vel de jerarqua.
{recherche} bsqueda devuelve las secciones que corresponden a las palabras indicadas en la in-
terfaz de bsqueda (Se trata del motor de bsqueda incorporado a SPIP. Vase cap. II.19. Los bu-
cles de bsqueda).
A partir de la versin SPIP 1.4, se pueden ligar las secciones a palabras claves. Por ende, se pue-
den utilizar los criterios de de palabras claves en los bucles (RUBRIQUES):
o {id_mot}, {titre_mot=xxx} recuperan las secciones ligadas a la palabra clave cuyo nmero
(identificador) es id_mot o cuyo ttulo es titre_mot;
o {id_groupe}, {type_mot=yyyy} recuperan las secciones ligadas a las palabras clave del
grupo cuyo nmero (identificador) es id_groupe o cuyo ttulo es type_mot.
[SPIP 1.7.1] {tout} muestra las secciones vacas adems de aquellas que contienen elementos
publicados. Se reservar este criterio a casos muy especficos; en efecto, por omisin, SPIP no
muestra en el sitio pblico las secciones que no contienen ningn elemento activo, de manera a
asegurarse que el sitio no tenga callejones sin salida (navegacin que d acceso a pginas que no
proponen ningn contenido).
II.6.2. Los criterios de presentacin
Una vez fijado uno de los criterios precedentes, se pueden agregar los criterios siguientes para res-
tringir el nmero de elementos presentados.
Evidentemente, los criterios comunes a todos bucles se aplican.
{exclus} permite excluir del resultado la seccin en la cual ya nos encontramos (til en conjuncin
con meme_parent).
{doublons} o {unique} (estos dos criterios son rigurosamente idnticos) permite no mostrar las
secciones que ya aparecieron en otros bucles de la misma pgina.

7
El sector es la seccin situada en la raz del sitio de la cual depende jerrquicamente la seccin corriente.

- Pgina 24 de 114 -
II.6.3. Las balizas de este bucle
Las balizas extradas de la base de datos:
Las balizas siguientes corresponden a los elementos directamente extrados de la base de datos.
Tambin puedes utilizarlos como criterios de clasificacin (generalmente por ttulo: {par titre}).
#ID_RUBRIQUE muestra el identificador nico de la seccin.
#TITRE devuelve el ttulo de la seccin.
#DESCRIPTIF devuelve el descriptivo (descripcin rpida) de la seccin.
#TEXTE devuelve el texto principal de la seccin.
#ID_SECTEUR es el identificador del sector de la seccin
8
.
Las balizas calculadas por SPIP:
Los elementos siguientes son calculados por SPIP. (No pueden ser utilizados como criterio de clasifi-
cacin.)
#NOTES las notas de fin de pgina (calculadas a partir del anlisis del texto).
#INTRODUCTION los 600 primeros caracteres del texto; se suprimen las particularidades tipogr-
ficas (negrita, cursiva,...).
#URL_RUBRIQUE es la direccin URL de la pgina de la seccin.
[SPIP 1.4] #DATE muestra la fecha de la ltima publicacin efectuada en la seccin y sus sub-
secciones (artculos, breves...).
#FORMULAIRE_FORUM fabrica la interfaz que permite colgar un mensaje en el foro de esta sec-
cin.
#PARAMETRES_FORUM fabrica la lista de variables necesarias a la interfaz del formulario del foro
de la seccin. Por ejemplo:
[<A HREF="forum.php3?(#PARAMETRES_FORUM)">Responder a esta seccin</A>]
#FORMULAIRE_SITE [SPIP 1.4] El formulario de sitio #FORMULAIRE_SITE muestra una inter-
faz que permite a los visitantes del sitio proponer sitios para ser referenciados. Estos sitios aparece-
rn como propuestos en el espacio privado, a la espera de una validacin por los administradores.
Tales formularios slo aparecen si activas la opcin Gestionar un directorio de sitios en la Con-
figuracin del sitio en el espacio privado y si indicas que los/as visitantes del sitio pblico son
quin puede proponer los sitios referenciados.
El logo:
#LOGO_RUBRIQUE el logo de la seccin, eventualmente con la gestin del sobrevuelo por el ra-
tn. Si no hay logo para esta seccin, SPIP busca automticamente si existe un logo en la seccin
de la cual depende (la seccin "madre"), y as sucesivamente de manera recursiva, hasta el logo del
sitio.
El logo se incorpora en un esqueleto SPIP de la manera siguiente:
[(#LOGO_RUBRIQUE|alineamiento|direccin)]
[SPIP 1.4] #LOGO_RUBRIQUE_NORMAL muestra el logo sin sobrevuelo; #LO-
GO_RUBRIQUE_SURVOL muestra el logo de sobrevuelo: estas dos balizas permiten, por ejemplo,
en una seccin dada, de colgar, en una lista de todas las secciones "hermanas", un logo con so-
brevuelo para los enlaces hacia las otras secciones, y de dejar siempre visible el logo de sobrevue-
lo en la seccin activa.

II.7. El bucle BREVES
El bucle BREVES, como su nombre indica, devuelve una lista de breves.
<BOUCLEn(BREVES){criterios...}>
II.7.1. Los criterios de seleccin
Se pueden utilizar uno u otro de los siguientes criterios para indicar como se seleccionan los elemen-
tos.
{tout}: todo, selecciona todas las breves del sitio.
{id_breve} devuelve la breve cuyo identificador es id_breve. Como el identificador de cada breve
es nico, este criterio devuelve una o ninguna respuesta.
{id_rubrique} devuelve las breves de la seccin actual.
[SPIP 1.2] {id_mot} devuelve todas las breves ligadas a la palabra clave actual (dentro de un
bucle de tipo (MOTS)).
[SPIP 1.3] {titre_mot=xxxx}, o {type_mot=yyyy} devuelve las breves ligadas a la palabra
clave cuyo nombre es xxxx, o ligadas a palabras clave del grupo de palabras clave yyyy. Cui-
dado, no se pueden usar varios criterios {titre_mot=xxxx} o {type_mot=yyyy} en un mismo
bucle.

8
Vase nota anterior.

- Pgina 25 de 114 -
[SPIP 1.4] {id_groupe=zzzz} permite seleccionar breves ligadas a un grupo de palabras clave
utilizando el identificador (nmero de grupo). Es similar al {type_mot} precedente, pero la sintaxis
ser ms rigurosa; al utilizar el identificador nico.
{recherche} bsqueda, devuelve las breves que corresponden a las palabras indicadas en la inter-
faz de bsqueda (se trata del motor de bsqueda incorporado a SPIP: ver la documentacin consa-
grada al motor de bsqueda (vase cap. II.19. Los bucles de bsqueda).
II.7.2. Los criterios de presentacin
Se aplican los criterios comunes a todos bucles.
II.7.3. Las balizas de este bucle
Las balizas extradas de la base de datos:
Las balizas siguientes corresponden a los elementos directamente extrados de la base de datos.
Tambin puedes utilizarlos como criterios de clasificacin (generalmente por ttulo: {par titre}).
#ID_BREVE devuelve el identificador nico de la breve.
#TITRE devuelve el ttulo de la breve.
#DATE devuelve la fecha de publicacin de la breve.
#TEXTE devuelve el texto de la breve.
#NOM_SITE devuelve el nombre del sitio indicado como referencia.
#URL_SITE la direccin (URL) del sitio indicado como referencia.
#ID_RUBRIQUE el identificador de la seccin de la cual depende la breve actual.
Las balizas calculadas por SPIP:
Los elementos siguientes son calculados por SPIP. (No pueden ser utilizados como criterio de clasifi-
cacin.)
#NOTES las notas de fin de pgina (calculadas a partir del anlisis del texto).
#INTRODUCTION los 600 primeros caracteres del texto; se suprimen las particularidades tipogr-
ficas (negrita, cursiva,...).
#URL_RUBRIQUE es la direccin URL de la pgina de la breve.
#FORMULAIRE_FORUM fabrica la interfaz de formulario que permite colgar un mensaje en el foro
de esta breve.
#PARAMETRES_FORUM fabrica la lista de variables utilizadas por la interfaz del formulario del fo-
ro de la breve. Por ejemplo:
[<A HREF="forum.php3?(#PARAMETRES_FORUM)">Responder a esta breve</A>]
El logo:
#LOGO_RUBRIQUE el logo de la seccin, eventualmente con la gestin del sobrevuelo por el ra-
tn.
El logo se incorpora en un esqueleto SPIP de la manera siguiente:
LOGO_BREVE|alineamiento|direccin)]
#LOGO_BREVE_RUBRIQUE muestra, si existe, el logo de la breve; y si ste no ha sido atribuido,
SPIP muestra el logo de la seccin [SPIP 1.4].

II.8. El bucle AUTEURS (autores)
El bucle AUTEURS, como indica su nombre, devuelve una lista de autores. Si no se explicita ningn
criterio de seleccin, el bucle devolver todos los autores que tienen al menos un artculo publicado.
<BOUCLEn(AUTEURS){criterios...}>
II.8.1. Los criterios de seleccin
Se utilizar uno u otro de los criterios siguientes para indicar cmo seleccionar los autores y sus da-
tos.
{tout} se seleccionan todos los autores, que hayan escrito algn artculo o no.
{id_auteur} devuelve el autor cuyo identificador es id_auteur. Como el identificador de cada au-
tor es nico, este criterio devuelve una respuesta o cero.
{id_article} devuelve todos los autores de este artculo.
II.8.2. Los criterios de presentacin
Se aplican los criterios comunes a todos los bucles, establecidos en el captulo 16.
II.8.3. Las balizas de este bucle
Las balizas extradas de la base de datos:

- Pgina 26 de 114 -
Las balizas siguientes corresponden a los elementos directamente extrados de la base de datos.
Tambin puedes utilizarlos como criterios de clasificacin (generalmente por nombre: {par nom}).
#ID_AUTEUR devuelve el identificador nico del autor.
#NOM devuelve el nombre del autor.
#BIO devuelve su biografa.
#EMAIL devuelve su direccin de correo electrnico.
#NOM_SITE devuelve el nombre de su sitio web.
#URL_SITE la direccin (URL) de su sitio.
#PGP su clave pblica para PGP.
#FORMULAIRE_ECRIRE_AUTEUR [SPIP 1.4] construye y cuelga un formulario que permite es-
cribir al autor. La configuracin PHP del servidor de hospedaje debe permitir mandar emilios. Este
sistema permite no divulgar la direccin de correo electrnico del autor.
Las balizas calculadas por SPIP:
#NOTES las notas de pie de pgina (calculadas a partir del anlisis del texto).
#URL_AUTEUR la direccin de la pgina auteur.php3?id_auteur=....
El logo:
#LOGO_AUTEUR el logo del autor, eventualmente con gestin del paso del ratn.
El logo se instala de la manera siguiente:
[(#LOGO_AUTEUR|alineamiento|direccin)]
[SPIP 1.6]: las variantes #LOGO_AUTEUR_NORMAL y #LOGO_AUTEUR_SURVOL permiten un
manejo ms detallado de las dos versiones del logo (la normal y la de paso del ratn).

II.9. El bucle FORUMS (foros)
El bucle FORUMS devuelve una lista de mensajes de foros.
<BOUCLEn(FORUMS){criterios...}>
II.9.1. Los criterios de seleccin
Se utilizar uno u otro de los criterios siguientes para indicar cmo seleccionar los elementos.
{id_forum} devuelve el mensaje cuyo identificador es id_forum. Como el identificador de cada
mensaje es nico, este criterio devuelve una respuesta o ninguna.
{id_article} devuelve los mensajes del foro del artculo cuyo identificador es el id_article del con-
texto.
{id_rubrique} devuelve los mensajes que se encuentran en la seccin cuyo identificador es el
id_rubrique del contexto.
{id_breve} devuelve los mensajes del foro de la breve cuyo identificador es el id_breve del
contexto.
{id_parent} devuelve los mensajes que dependen de otro mensaje, es decir que fueron publicados
en respuesta a dicho mensaje. Indispensable para manejar los "hilos de discusin" (threads) en los
foros.
{id_enfant} devuelve el mensaje del cual depende el mensaje del contexto (permite subir en la
jerarqua del hilo de discusin o threads). (SPIP 1.3)
{meme_parent} devuelve los otros mensajes que responden a un mismo mensaje de foro. (SPIP
1.3)
{plat}: muestra todos los mensajes del foro sin tener en cuenta su jerarqua. Al agregar este crite-
rio, se pueden seleccionar todos los mensajes sea cual sea su posicin en un thread (dentro de los
lmites de los otros criterios, por supuesto). Permite, por ejemplo, presentar los mensajes en orden
estrictamente cronolgico, o contar el nmero total de contribuciones a un foro.
N.B. En ausencia de un criterio {id_forum} o {id_parent}, cuando no se use {plat}, slo se
mostrarn los mensajes que no tengan padre (es decir, en la raz de un hilo o thread).
{id_secteur} devuelve los mensajes de foro que corresponden al sector. A priori, poco til; pero
permite, por ejemplo, hacer un gran foro temtico que agrupa todos los mensajes de un sector,
donde quiera que se encuentren.
A partir de la versin SPIP 1.4, los mensajes de los foros se pueden vincular con palabras claves
(vase cap. II.10. El bucle MOTS (palabras)). Por ende, los criterios de palabras claves ahora se
pueden utilizar en los bucles (FORUMS):
o {id_mot}, {titre_mot=xxx} recuperan los mensajes cuya palabra clave tiene el nmero
id_mot o cuyo ttulo es titre_mot;
o {id_groupe}, {type_mot=yyyy} recuperan los mensajes vinculados con palabras claves del
grupo cuyo identificador es id_groupe, o cuyo ttulo es type_mot.
II.9.2. Los criterios de presentacin
Se aplican los criterios comunes a todos los bucles, establecidos en el captulo 16.

- Pgina 27 de 114 -
II.9.3. Las balizas de este bucle
Las balizas extradas de la base de datos:
Las balizas siguientes corresponden a los elementos extrados directamente de la base de datos.
Tambin puedes utilizarlos como criterios de clasificacin (generalmente por ttulo: {par titre}).
#ID_FORUM devuelve el identificador nico del mensaje.
#ID_BREVE devuelve el identificador de la breve a la cual este mensaje est ligado. Cuidado, no es
transitivo: un mensaje que responde a un mensaje vinculado a una breve no contiene a su vez el
identificador de la breve.
#ID_ARTICLE es el identificador del artculo al cual responde el mensaje.
#ID_RUBRIQUE es el identificador de la seccin a la cual responde el mensaje.
#DATE esa fecha de publicacin del mensaje de foro.
#TITRE es el ttulo del mensaje de foro.
#TEXTE es el texto del mensaje.
#NOM_SITE es el nombre del sitio web indicado por el autor del mensaje.
#URL_SITE es la direccin (URL) de este sitio web.
#NOM es el nombre del autor del mensaje.
#EMAIL es la direccin de correo electrnico del autor del mensaje de foro.
#IP es la direccin IP del autor del mensaje durante la sesin de envo de su contribucin al foro.
Las balizas calculadas por SPIP:
#FORMULAIRE_FORUM construye la interfaz que permite publicar una contribucin en un foro.
#PARAMETRES_FORUM construye la lista de variables usadas por la interfaz del formulario que
permite responder al mensaje. Por ejemplo:
[<a href="forum.php3?(#PARAMETRES_FORUM)">Responder a este mensaje</a>]

II.10. El bucle MOTS (palabras)
El bucle MOTS devuelve una lista de palabras clave.
<BOUCLEn(MOTS){criterios...}>
II.10.1. Los criterios de seleccin
Se utilizar uno u otro de los criterios siguientes para indicar cmo seleccionar los elementos.
{tout} selecciona las palabras en la totalidad del sitio.
{id_mot} devuelve la palabra clave cuyo identificador es id_mot.
{id_groupe} devuelve las palabras clave asociadas al grupo de palabras cuyo identificador es
id_groupe [SPIP 1.4].
{id_article} devuelve las palabras clave asociadas al artculo cuyo identificador es id_article (es,
sin duda, la utilizacin ms corriente de este bucle).
{id_rubrique} devuelve las palabras clave asociadas a una seccin [SPIP 1.4].
{id_breve} devuelve las palabras clave asociadas a una breve [SPIP 1.4].
{id_syndic} devuelve las palabras clave asociadas a un sitio referenciado [SPIP 1.4].
{id_forum} devuelve las palabras clave asociadas a un mensaje de foro [SPIP 1.4] (cuidado:
utilizacin muy especfica).
{titre=Macondo} devuelve la palabra clave denominada -cuyo ttulo es- Macondo (por ejemplo).
{type=aldeas} devuelve las palabras clave del grupo cuyo ttulo es aldeas (por ejemplo).
II.10.2. Los criterios de presentacin
Se aplican los criterios comunes a todos los bucles, establecidos en el captulo 16.
II.10.3. Las balizas de este bucle
Las balizas extradas de la base de datos:
Las balizas siguientes corresponden a los elementos directamente extrados de la base de datos.
Tambin puedes utilizarlos como criterios de clasificacin (generalmente por ttulo: {par titre}).
#ID_MOT devuelve el identificador nico de la palabra clave.
#TITRE es el ttulo (la palabra clave en s).
#DESCRIPTIF es la descripcin de la palabra clave.
#TEXTE es el texto asociado a la palabra.
#TYPE es el grupo (o la categora) en la cual se encuentra clasificada esta palabra (por ejemplo la
palabra Rocinante podra ser asociada al grupo Caballos).
#LOGO_MOT [SPIP 1.4] devuelve el logo asociado a una palabra clave.
#URL_MOT da la direccin (URL) de esta palabra.

- Pgina 28 de 114 -
II.10.4. El bucle (GROUPES_MOTS)
De utilizacin marginal, el bucle GROUPES_MOTS [SPIP 1.5] merece que se lo cite aqu: si tienes
varios grupos de palabras claves, permite, por ejemplo, seleccionarlos y organizar una pgina ndice de
todas las palabras clave clasificadas por grupos; y, dentro de esos grupos, digamos, por orden alfabti-
co. Esto es lo que hace el siguiente cdigo fuente:
<BOUCLE_grupos(GROUPES_MOTS){par titre}>
<h1>#TITRE</H1>
<BOUCLE_palabras(MOTS){id_groupe}{par titre}{" - "}>
#TITRE
</BOUCLE_palabras>
</BOUCLE_grupos>
Les balizas y criterios asociados a este bucle son:
#ID_GROUPE, es el identificador del grupo de palabras [disponible tambin en el bucle (MOTS)];
#TITRE, el ttulo del grupo [dentro del bucle (MOTS), puedes utilizar #TYPE para obtener este da-
to].

II.11. El bucle SITES (o SYNDICATION) (sitios o sin-
dicacin)
El bucle SITES (SPIP 1.3) devuelve una lista de sitios referenciados. (Si se han sindicado sitios
referenciados, este bucle se utiliza, habitualmente, asociado a un bucle SYNDIC_ARTICLES (vase cap.
II.13. El bucle SYNDIC_ARTICLES) que permite recuperar la lista de los artculos de estos sitios).
<BOUCLEn(SITES){criterios...}>
Antes de la versin 1.3 de SPIP, este bucle se llamaba SYNDICATION, puesto que slo los sitios sin-
dicados podan ser referenciados. Las dos denominaciones son rigurosamente equivalentes (pero SI-
TES corresponde mejor al hecho de que, desde la versin 1.3, se trata de un sistema de referenciacin
de sitios, que tiene la sindicacin como una opcin).
<BOUCLEn(SYNDICATION){criterios...}>
II.11.1. Los criterios de seleccin
Se utilizar uno u otro de los siguientes criterios para indicar cmo se seleccionan los elementos.
{tout}, todos los sitios referenciados.
{id_syndic} devuelve el sitio referenciado cuyo identificador es id_syndic.
{id_rubrique} devuelve los sitios referenciados en esta seccin.
{id_secteur} devuelve los sitios referenciados en este sector.
[SPIP 1.3] {id_mot} devuelve todos los sitios relacionados con la palabra clave actual (dentro de
un bucle tipo (MOTS)).
[SPIP 1.3] {titre_mot=xxxx}, o {type_mot=yyyy} devuelve los sitios relacionados con la pa-
labra clave cuyo nombre es xxxx , o relacionados con palabras clave del grupo de palabras clave
yyyy . Atencin, no se pueden utilizar varios criterios {titre_mot=xxxx} o {type_mot=yyyy}
en un mismo bucle.
[SPIP 1.4] {id_groupe=zzzz} permite seleccionar los sitios relacionados con un grupo de pala-
bras clave; principio idntico al {type_mot} precedente, pero dado que se trabaja con un identifi-
cador (nmero de grupo), la sintaxis ser ms limpia.
II.11.2. Los criterios de publicacin
Se aplican los criterios comunes a todos los bucles, establecidos en el captulo 16.
{moderation=oui} [SPIP 1.4] devuelve los sitios sindicados cuyos enlaces son bloqueados a
priori (moderados); el criterio inverso a este es {moderation!=oui}.
(SPIP 1.3) {syndication=oui}, {syndication=non} permite devolver slo los sitios referencia-
dos que son objeto de una sindicacin o los sitios no sindicados.
(SPIP 1.2) {doublons} o {unique} (estos dos criterios son rigurosamente idnticos) evita que el
bucle muestre los sitios referenciados que ya han publicado otros bucles del mismo esqueleto.
II.11.3. Las balizas de este bucle
Las balizas extradas de la base de datos:
Las balizas siguientes corresponden a los elementos extrados directamente de la base de datos.
Puedes utilizarlos igualmente como criterios de clasificacin (generalmente: {par titre}).
#ID_SYNDIC devuelve el identificador nico del sitio sindicado.
#NOM_SITE es el nombre del sitio sindicado.

- Pgina 29 de 114 -
#URL_SITE es la direccin (URL) del sitio sindicado.
#DESCRIPTIF es el texto descriptivo del sitio sindicado.
#ID_RUBRIQUE es el nmero de la seccin que contiene esta sindicacin.
#ID_SECTEUR es el nmero de la seccin-sector (en la raz del sitio) que contiene esta sindica-
cin.
Otras balizas:
#LOGO_SITE muestra el logo atribuido a este sitio.
#URL_SYNDIC muestra la direccin (URL) del fichero de sindicacin de este sitio.

II.12. El bucle DOCUMENTS (documentos)
[SPIP 1.4] El bucle DOCUMENTS (documentos) devuelve una lista de documentos multimedia aso-
ciados (a un artculo, a una seccin, o eventualmente las imgenes asociadas a una breve).
<BOUCLEn(DOCUMENTS){criterios...}>
Este bucle maneja, no slo los documentos asociados que no se muestren en el texto de un artculo,
sino que tambin permite acceder a las imgenes
9
, a las miniaturas de previsualizacin y a los documen-
tos ya insertados en el cuerpo del artculo.
Recordemos entonces que la utilizacin ms frecuente del bucle DOCUMENTS llevar (por lo menos)
los criterios siguientes (ver a continuacin las explicaciones):
<BOUCLEn(DOCUMENTS){mode=document}{doublons}>
II.12.1. Los criterios de seleccin
Un bucle DOCUMENTS se utiliza en general dentro de un artculo o una seccin
10
.
{id_article} devuelve los documentos del artculo cuyo identificador es id_article.
{id_rubrique} devuelve los documentos de la seccin cuyo identificador es id_rubrique.
{id_breve} devuelve los documentos de la breve cuyo identificador es id_breve.
Cuidado: aqu no es posible utilizar el criterio {id_secteur}; la concepcin de los documentos
hace que estn ntimamente ligados a los artculos y a las secciones, y no permite llamarlos
solos sin dichos elementos (en SPIP se habla de documentos adjuntos).
II.12.2. Los criterios de presentacin
{mode=document} o {mode=image} permite indicar si se desea llamar los documentos multi-
media, o las imgenes (en efecto, las imgenes asociadas a un artculos son ahora tratadas como
documentos en modo mode=image)
11

{doublons} toma aqu una importancia particular: permite no slo no mostrar documentos ya col-
gados en otros bucles, sino tambin no volver a mostrar documentos que ya estn integrados de-
ntro de un artculo. Su se olvida este criterio, el bucle devolver todos los documentos asociados a
un artculo, incluidos los que ya estn colgados dentro del texto.
{extension=...} permite seleccionar los documentos por su extensin (extensin de fichero multi-
media, por ejemplo mov, ra, avi, ...). Esto puede ser utilizado, por ejemplo, para realizar un
portafolio de imgenes, es decir un bucle que slo devolvera los documentos de tipo imagen, y lue-
go un segundo bucle con una presentacin grfica diferente, los otros tipos de documentos:
<BOUCLE_portfolio(DOCUMENTS){id_article}
Este BOUCLE_portfolio recupera los documentos adjuntos a un artculo, que no estn ya colgados
en el texto del artculo, y cuya extensin puede ser jpg, png o gif.
II.12.3. Las balizas
#LOGO_DOCUMENT devuelve el logo de un documento, es decir su miniatura de previsualizacin,
a no ser que el autor del artculo haya subido manualmente su propio logo de documento. Para una
imagen, la miniatura de previsualizacin es una versin reducida de sta, cuando el servidor que
hospedaje puede construirla
12
; si no, utiliza un icono estndar en funcin del tipo de fichero.

9
Desde la versin 1.4 de SPIP, las imgenes se manejan, a nivel del programa, como un tipo e specfico de documen-
tos.
10
Se la puede utilizar en una breve, pero dicho uso est reservado a recuperar imgenes (las breves no tienen doc u-
mentos multimedia asociados, slo imgenes), lo que ser muy especfico.
11
Nota: En sitios SPIP existentes antes de la versin 1.4, se tena la costumbre de no poder colgar las imgenes que
no se insertaban dentro del texto del artculo. De hecho, si uno agrega un bucle DOCUMENTS en mode=image en un
sitio existente, se arriesga a ver reaparecer en este bucle imgenes que no estaban destinadas a ser publicadas en el
sitio pblico. Por lo tanto, en tal caso proceda con precaucin, verificando uno por uno los antiguos artculos para ev itar
la publicacin de imgenes parsito.
12
Es decir cuando la configuracin de PHP tiene i nstaladas las libreras de procesamiento de imgenes adecuadas.

- Pgina 30 de 114 -
#URL_DOCUMENT es la direccin URL del fichero multimedia. Para mostrar una miniatura clicable,
se utilizar, pues, el cdigo siguiente:
[(#LOGO_DOCUMENT|#URL_DOCUMENT)]
#TITRE devuelve el ttulo del documento.
#DESCRIPTIF devuelve el descriptivo del documento.
#TYPE_DOCUMENT devuelve el tipo (fichero Quicktime, fichero Real...) del documento multime-
dia.
#TAILLE devuelve el tamao del fichero multimedia. Se proporciona este valor en octetos. Para ar-
chivos voluminosos, se podr aplicar el filtro (vase cap. II.20. Los filtros de SPIP) tai-
lle_en_octets, que lo convertir sucesivamente, para simplificarlo, en bytes (octetos), en kiloby-
tes, o incluso en megabytes:
[(#TAILLE|taille_en_octets)]
#LARGEUR (anchura) y #HAUTEUR (altura) devuelven las dimensiones en pixels.
#ID_DOCUMENT devuelve el nmero de documento.
#EMBED_DOCUMENT es una baliza de utilizacin muy especfica: permite incluir directamente los
ficheros de formatos que lo permiten imgenes, video, sonido) directamente en la pgina web. Sin
embargo, se debe evitar utilizar sistemticamente esta baliza para insertar directamente los docu-
mentos en la pgina sin un control estricto: de lo contrario, corres el riesgo de aumentar enorme-
mente el tiempo de acceso a tus pginas.
Esta baliza puede ser completada por parmetros propios de los formatos utilizados (una vez ms:
de uso sumamente especfico). Por ejemplo, para que un vdeo o un sonido se inicie sin accin previa de
la persona visitante:
[(#EMBED_DOCUMENT|autostart=true)]

II.13. El bucle SYNDIC_ARTICLES
El bucle SYNDIC_ARTICLES devuelve una lista de artculos de los sitios sindicados
13
.
Se puede utilizar este bucle:
ya sea dentro de un bucle SITES (vase cap. II.11. El bucle SITES (o SYNDICATION) sitios (o
sindicacin)): este ltimo recupera una lista de sitios referenciados y a continuacin se recuperan
los artculos de cada uno de estos sitios,
ya sea directamente dentro de una seccin (vase cap. II.6. El bucle RUBRIQUES (secciones)):
se recuperan directamente todos los artculos sindicados en una seccin, saltando el paso por la lista
de los sitios.
<BOUCLEn(SYNDIC_ARTICLES){criterios...}>
(SPIP 1.3) A partir de la versin 1.3 de SPIP, el bucle SITES (o SYNDICATION) (vase cap. II.11)
ya no slo muestra los sitios sindicados sino, en general, los sitios referenciados (la sindicacin de cier-
tos sitios referenciados es una opcin). Se podr pues, para obtener una presentacin grfica ms preci-
sa, utilizar un bucle SYNDIC_ARTICLES nicamente dentro de un bucle SITES utilizando el criterio
{syndication=oui}.
II.13.1. Los criterios de seleccin
Se utilizar uno u otro de los criterios siguientes para indicar como se seleccionan los elementos.
{tout}, todos los sitios sindicados.
{id_syndic_article} devuelve el artculo sindicado cuyo identificador es id_syndic_article. (En la
prctica existe poco inters en fabricar una pgina para un artculo sindicado ya que se preferir re-
enviar directamente hacia el artculo en cuestin.)
{id_syndic} devuelve la lista de artculos del sitio sindicado cuyo identificador es id_syndic.
{id_rubrique} devuelve la lista de artculos sindicados en esta seccin.
{id_secteur} devuelve la lista de artculos sindicados en este sector.
II.13.2. Los criterios de publicacin
Se aplican los criterios comunes a todos los bucles, establecidos en el captulo 16.
II.13.3. Las balizas de este bucle
Las balizas extradas de la base de datos:
Las balizas siguientes corresponden a los elementos extrados directamente de la base de datos.
Puedes utilizarlos igualmente como criterio de clasificacin (generalmente: {par titre}).
#ID_SYNDIC_ARTICLE devuelve el identificador nico del artculo sindicado.

13
Un sitio sindicado es un sitio que pone a disposicin y del cual se recuperan los ltimos artculos. Vase SPIP - Carac-
tersticas completas.

- Pgina 31 de 114 -
#ID_SYNDIC devuelve el identificador nico del sitio sindicado que contiene este artculo sindica-
do.
#TITRE devuelve el ttulo del artculo. Observacin: es preferible utilizar aqu el ttulo en bruto
del artculo sindicado - a travs del cdigo [(#TITRE*)] -, para evitar el motor tipogrfico. Efecti-
vamente se supone que los ttulos son ya tipogrficamente correctos en los backends, y no se
desea pasar la correccin tipogrfica en ttulos en ingls o en ttulos que incluyen expresiones del ti-
po Los ficheros /.tcshrc.
#URL_ARTICLE es la direccin (URL) del sitio sindicado (en su sitio original).
#DATE devuelve la fecha de publicacin de este artculo.
#LESAUTEURS, devuelve los autores del artculo sindicado.
#DESCRIPTIF devuelve la descripcin del artculo sindicado.
#NOM_SITE devuelve el nombre del sitio sindicado que contiene este artculo.
#URL_SITE devuelve la direccin (URL) del sitio.

II.14. El bucle SIGNATURES (firmas)
El bucle SIGNATURES devuelve una lista de firmantes de una peticin asociada a un artculo.
<BOUCLEn(SIGNATURES){criterios...}>
II.14.1. Los criterios de seleccin
Se utilizar uno u otro de los criterios siguientes para indicar cmo se seleccionan los elementos.
{tout} todas las firmas son seleccionadas en el sitio de manera integral.
{id_signature}, la firma correspondiente al identificador actual.
{id_article} devuelve las firmas de la peticin de este artculo.
II.14.2. Los criterios de publicacin
Se aplican los criterios comunes a todos los bucles, establecidos en el captulo 16.
Atencin. En este tipo de bucles, algunos criterios de clasificacin del bucle no son idnticos a las eti-
quetas SPIP indicadas a continuacin:
{par nom_email} clasifica los resultados segn el #NOM (nombre) de la persona firmante;
{par ad_email} clasifica segn el #EMAIL de la persona firmante.
II.14.3. Las etiquetas de este bucle
Las etiquetas extradas de la base de datos:
Las etiquetas siguientes corresponden a los elementos directamente extrados de la base de datos.
Puedes utilizarlos igualmente en tanto que criterio de clasificacin (generalmente: {par titre}).
#ID_SIGNATURE publica el identificador nico del mensaje.
#ID_ARTICLE es el identificador del artculo para esta peticin.
#DATE es la fecha de publicacin.
#MESSAGE es el texto del mensaje.
#NOM es el nombre de la persona autora del mensaje.
#EMAIL es la direccin de correo electrnico de la persona autora.
#NOM_SITE el nombre del sitio Web indicado por la persona autora.
#URL_SITE la direccin (URL) de este sitio Web.

II.15. El bucle HIERARCHIE (jerarqua)
El bucle HIERARCHIE (jerarqua) est basado en un principio diferente al resto de bucles ya que efec-
ta una recursividad (en lugar de simplemente extraer una lista de la base de datos).
Este bucle devuelve la lista de las secciones (RUBRIQUES) que conducen de la raz del sitio a la
seccin o al artculo en curso.
<BOUCLEn(HIERARCHIE){criterios...}>
II.15.1. Los criterios de seleccin
Se utilizar uno u otro de los criterios siguientes para indicar como se seleccionan los elementos.
{id_rubrique} devuelve la lista de las secciones desde la raz hasta la seccin correspondiente a
este identificador.
{id_article} devuelve la lista de las secciones desde la raz hasta el artculo correspondiente a este
identificador.

- Pgina 32 de 114 -
II.15.2. Los criterios de publicacin
Atencin: no todos los criterios comunes a todos los bucles se aplican a este tipo de bucle.
Los criterios de presentacin utilizables son: {"inter"} y {a,b}.
II.15.3. Las balizas de este bucle
Los elementos obtenidos con un bucle HIERARCHIE son secciones. Se puede pues utilizar todas las
balizas propuestas para los bucles RUBRIQUES (vase cap. II.6. El bucle RUBRIQUES (secciones)).

II.16. Criterios comunes a todos los bucles
Ciertos criterios se aplican a (casi) todos los tipos de bucles. Son criterios destinados a limitar el n-
mero de resultados extrados o a indicar el orden de presentacin. Se puede, sin dificultad alguna, com-
binar varios de estos criterios de seleccin.
II.16.1. Clasificar los resultados
{par criterio_de_clasificacin} indica el orden de presentacin de los resultados
14
. Por ejemplo,
se pueden clasificar los artculos por fecha ({par date}), por fecha de redaccin ({par date_redac}) o
por ttulo ({par titre}). Este criterio corresponde a una de las balizas extradas de la base de datos para
cada tipo de bucle.
OJO: si bien las balizas se presentan en maysculas, los criterios de clasificacin se presentan
en minsculas.
Caso particular: {par hasard} ("al azar") permite obtener una lista presentada en orden aleatorio.
Invertir la clasificacin. Adicionalmente, {inverse} provoca la presentacin de una clasificacin
en orden invertido. Por ejemplo, con el criterio {par date} se empieza por los artculos ms antiguos,
mientras que con {par date}{inverse} se empieza por los ms recientes.
Clasificar por numero. (SPIP 1.3) Cuando el criterio de clasificacin es un elemento de texto (por
ejemplo el ttulo - titre), la clasificacin se hace por orden alfabtico. Sin embargo, para imponer cierto
orden de presentacin, se puede indicar un nmero delante del ttulo, por ejemplo: 1. Mi primer artcu-
lo, 2. El segundo artculo, 3. Tercer ..., etc.
Si utilizramos un criterio habitual par titre, la clasificacin alfabtica de estos elementos sera la se-
rie: 1, 10, 11,..., 2, 3.... Para restablecer la clasificacin numrica se puede utilizar el criterio:
{par num criterio}
OJO: la opcin {par num titre} no funciona con viejas versiones de MySQL, anteriores a la
3.23.
Ejemplos:
<BOUCLE_articles(ARTICLES){id_rubrique}{par date}{inverse}>
cuelga los artculos de una seccin clasificados por orden cronolgico invertido (los ms recientes al
principio, los ms antiguos al final);
<BOUCLE_articles(ARTICLES){id_rubrique}{par titre}>
los cuelga por orden alfabtico de su ttulo;
<BOUCLE_articles(ARTICLES){id_rubrique}{par num titre}>
los cuelga ordenados por el nmero de su ttulo.
II.16.2. Seleccin por comparacin
{ criterio smbolo valor } criterio corresponde a una baliza de la base de datos, valor es un valor
fijado que puede tomar la baliza, y smbolo es un operador de comparacin, como ser
15
: >, <,
=, >=, <=.
Un criterio de seleccin por comparacin permite extraer slo una parte de los resultados de un bu-
cle: los que verifican el criterio.
Por ejemplo:
<BOUCLE_art(ARTICLES){id_article=5}>

14
"par", en francs, significa "por". Recuerda que el lenguaje de bucles utiliza un vocabulario francs. Al respecto pue-
des consultar el Lxico SPIP francs - espaol.
15
En realidad, se puede utilizar cualquier operador vlido para la base de datos.

- Pgina 33 de 114 -
cuelga nicamente el artculo cuyo nmero es 5. Es til, por ejemplo, para resaltar en la portada un
artculo dado.
<BOUCLE_art(ARTICLES){id_secteur=2}>
cuelga los artculos del sector nmero 2.
Expresiones regulares. Son sumamente potentes... pero bastante ms complejas de manipular. La
comparacin de un criterio con una expresin regular como valor de comparacin, se introduce con el
smbolo ==.
Empecemos por dar algunos ejemplos tiles:
<BOUCLE_art(ARTICLES){titre==^[aA]}>
selecciona los artculos cuyo ttulo empieza por a o por A.
<BOUCLE_art(ARTICLES){id_rubrique==(4|9|20)}>
selecciona los artculos que se encuentran, ya sea en la seccin nmero 4, ya sea en la nmero 9, o
en la nmero 20.
Ms all de estos ejemplos, las "expresiones regulares" ("regex", para los ntimos, pronunciar: re-
guex) son una tcnica comn a varios sistemas y lenguajes informticos (shell unix, perl, C, php, ...)
que permite analizar y hacer operaciones complejas sobre textos.
Una documentacin completa sobre las regex estara fuera del objetivo de la presente documenta-
cin de SPIP. Si necesitas, hay extensa documentacin al respecto en la web, y no dudes en poner un
emilio en las listas SPIP para ayudarte a construir un criterio de seleccin.
Negacin. (SPIP 1.2) Se puede utilizar la notacin {xxx != yyy}, el smbolo ! corresponde a la
negacin (operador lgico NOT).
<BOUCLE_art(ARTICLES){titre!==^[aA]}>
selecciona los artculos cuyo ttulo no comienza por a o por A.
<BOUCLE_art(ARTICLES){id_secteur != 2}>
selecciona los artculos que no pertenecen al sector nmero 2.
Para facilitar la utilizacin de comparaciones de fechas, se agregaron los siguientes criterios de
"edad" de un artculo:
age y age_redac corresponden respectivamente la antigedad de la publicacin y de la primera
publicacin de un artculo, expresada en das: {age<30} selecciona los elementos publicados des-
de hace menos de un mes;
los criterios mois, mois_redac, annee, annee_redac permiten, comparar con valores fijos res-
pectivamente del mes y del ao. (por ejemplo, {annee<=2000} para les elementos publicados
antes de fin del ao 2000).
Se pueden combinar varios criterios para efectuar selecciones sumamente detalladas. Por ejemplo:
<BOUCLE_art(ARTICLES){id_secteur=2}{id_rubrique!=3}{age<30}>
cuelga los artculos del sector 2, excepto los que estn en la seccin 3, y publicados desde hace me-
nos de 30 das.
Un truco astuto. El criterio age es muy prctico para seleccionar los artculos o breves que se sit-
an en el futuro, con valores negativos (a condicin de haber seleccionado, en la Configuracin precisa
del sitio, la opcin Publicar los artculos con fecha posterior). Por ejemplo, este criterio permite resal-
tar eventos futuros: {age<0} selecciona los artculos o las breves cuya fecha est situada en el futuro
(despus de hoy).
(SPIP 1.3) Edad respecto a una fecha dada. El criterio edad (age) se calcula en relacin a la fe-
cha del da (es decir que {age<30} corresponde a los artculos publicados desde hace un mes respecto
a la fecha de hoy). El criterio de edad relativa, age_relatif, compara la fecha de un artculo o de una
breve a una fecha corriente; por ejemplo, dentro de un bucle ARTICLES, ya se conoce una fecha pa-
ra cada resultado del bucle, respecto a la cual se hace la seleccin (y ya no respecto a la fecha de hoy).
Por ejemplo:
<BOUCLE_articulo_principal(ARTICLES){id_article}>

<h1>#TITRE</h1>

<BOUCLE_siguiente(ARTICLES){id_rubrique}{age_relatif<=0}{exclus}{par date}{0,1}>
Artculo siguiente: #TITRE
</BOUCLE_siguiente>

</BOUCLE_articulo_principal>

- Pgina 34 de 114 -
El BOUCLE_siguiente extrae los artculos de la misma seccin que el articulo_principal, cuya fe-
cha de publicacin es anterior a la de ste, los ordena por fecha, y cuelga un solo artculo (ver ms ade-
lante la explicacin del criterio {0,1}): es decir que se obtiene el artculo que sigue cronolgicamente al
artculo principal.
II.16.3. Mostrar una parte de los resultados
{a,b} donde a y b son dos nmeros. Este criterio permite limitar el nmero de resultados. a indica
el resultado a partir del cual se empieza la seleccin (OJO: el primer resultado est numerado 0 -
cero); b indica el nmero de resultados que comprende la seleccin.
Por ejemplo {0,10} cuelga los diez primeros resultados; {4,2} cuelga dos resultados a partir del
quinto (incluido: es decir el quinto y el sexto).
{debut_xxx,b} es una variante ms elaborada del criterio precedente. Permite hacer empezar la
limitacin de los resultados utilizando una variable pasada en la direccin URL (esta variable reem-
plaza el nmero a que se indicaba inicialmente). Su funcionamiento es algo complejo, pero afortu-
nadamente no es necesario utilizarlo muy a menudo.
La variable que se pasa en el URL debe empezar por debut_. En su nombre completo de-
but_xxx, el/la webmaster/webmistress escoge la segunda parte xxx. De esta manera, para una
pgina cuyo URL es:
peticion.php3?id_article=13&debut_firmas=200
con un esqueleto (peticion.html) que contenga, por ejemplo:
<BOUCLE_firmas(SIGNATURES){id_article}{debut_firmas,100}>
obtendremos la lista de las firmas a partir de la 200-esima. Y, sin cambiar de esqueleto, con el URL:
peticion.php3?id_article=13&debut_firmas=300
obtendremos la lista de las firmas a partir de la 300-esima.
{a/b} donde a y b son dos nmeros. Este criterio permite dividir la totalidad de los resultados en b
grupos de una misma cantidad (excepto eventualmente el ltimo) y mostrar el a-esimo grupo.
Por ejemplo: {1/3} muestra el primer tercio de los resultados. Este criterio es til principalmente
para presentar listas en varias columnas. Para obtener una presentacin en dos columnas, alcanza
con crear un primer bucle, dentro de una celda de tabla, con el criterio {1/2} (primera mitad de los
resultados), y luego un segundo bucle en la celda siguiente, con el criterio {2/2} (segunda mitad
de los resultados).
OJO. La utilizacin del criterio {doublons} con este criterio es peligrosa
16
. Por ejemplo:
<BOUCLE_primera(ARTICLES){id_rubrique}{1/2}{doublons}>
<li> #TITRE
</BOUCLE_primera>
<BOUCLE_segunda(ARTICLES){id_rubrique}{2/2}{doublons}>
<li> #TITRE
</BOUCLE_segunda>
no mostrar todos los artculos de la seccin! Imaginemos por ejemplo que haya un total de
20 artculos en nuestra seccin. El BOUCLE_primera va a colgar la primer mitad de los
artculos, es decir los 10 primeros, y prohibir (a causa de {doublons}) volver a utilizarlos.
El BOUCLE_segunda, por su parte, va a recuperar la segunda mitad de los artculos de esta
seccin que an no fueron mostrados por el BOUCLE_primera; en consecuencia, la mitad
de los 10 artculos siguientes, es decir los 5 ltimos artculos de la seccin. Y de paso se te
perdieron 5 artculos por el camino...
II.16.4. Separador de resultados
{"inter"} permite indicar un cdigo HTML (aqu, inter) que ser insertado entre los resultados del
bucle. Por ejemplo, para separar una lista de autores por una coma, se indicar el criterio {", "}:
<BOUCLE_auteurs(AUTEURS){id_article}{", "}>

II.17. Las balizas propias del sitio
Ciertas balizas estn disponibles fuera de los bucles; su contenido se define al configurar el sitio
SPIP.
#URL_SITE_SPIP es la direccin del sitio. Por convencin, no incluye el / final, as puedes crear
enlaces del estilo de: #URL_SITE_SPIP/sommaire.php3
#NOM_SITE_SPIP es el nombre del sitio.
#EMAIL_WEBMASTER [SPIP 1.5] es la direccin de correo del/de la webmaster/webmistress.
Por omisin, SPIP toma la direccin de quien instal el sitio (el/la primer administrador/a). (Si, en
vez de proporcionar pblicamente la direccin de correo, prefieres un formulario escribir al/a la
webmaster/webmistress, consulta cap. II.18. Los formularios).

16
Acerca del criterio {doublons}, vase los cap. 5. El bucle ARTICLES (artculos) o 6. El bucle RUBRIQUES
(secciones).

- Pgina 35 de 114 -
#CHARSET [SPIP 1.5] es el juego de caracteres que utiliza el sitio. Su valor por omisin es iso-
8859-1, juego de caracteres llamado iso-latn. Ver www.uzine.net/article1785.html (en francs)
para una introduccin a los charsets, mientras no haya una documentacin mas completa en SPIP
al respecto.
Adems; para escribir ms rpido esqueletos, se puede utilizar la baliza:
#PUCE [SPIP 1.5], que presenta la imagen del icono de listas
17

y, para mejorar la localizacin en la pgina de los botones reservados a los/las administradores (Ac-
tualizar esta pgina, Modificar este artculo, ...), existe una baliza #FORMULAIRE_ADMIN [SPIP
1.5]. Esta baliza es opcional: si est presente, los botones de administracin aparecen en su lugar; si
no, vienen al final de la pgina
18
.

II.18. Los formularios
SPIP permite una gran interaccin del sitio con las personas que lo visitan; para lo cual ofrece nume-
rosos formularios en el sitio pblico, que permiten tanto manejar los accesos al espacio privado como
autorizar el aadido de mensajes y firmas.
Los formularios se insertan en los esqueletos con una simple baliza; SPIP se encarga a continuacin
de generar el comportamiento (a menudo complejo) de estos formularios en funcin del entorno y de las
configuraciones efectuadas en el espacio privado.
II.18.1. Funciones interactivas
#FORMULAIRE_RECHERCHE
Se trata del formulario del motor de bsqueda integrado en SPIP. Se presenta en el artculo acerca
de los bucles de bsqueda.
#FORMULAIRE_FORUM
El #FORMULAIRE_FORUM gestiona la interfaz que permite enviar mensajes en los foros pblicos.
Concierne pues en primer lugar al bucle FORUMS.
El formulario depende evidentemente de la eleccin de la moderacin a posteriori, a priori o bajo
suscripcin para los foros.
En el caso (muy especfico) en que se autoriza la presencia de palabras clave en los foros pblicos,
se puede ajustar el comportamiento de este formulario con variables de personalizacin.
#FORMULAIRE_SIGNATURE
El #FORMULAIRE_SIGNATURE autoriza la firma de las peticiones asociadas a los artculos (este
formulario se coloca pues en un bucle ARTICLES).
N.B. La firma de las peticiones reclama obligatoriamente una validacin de las personas signa-
tarias por correo electrnico. Este formulario slo tiene inters si la configuracin PHP de tu
hospedaje autoriza el envo de e-milios.
#FORMULAIRE_SITE
[SPIP 1.4] El #FORMULAIRE_SITE publica una interfaz que permite a las personas que visitan el
sitio proponer la referenciacin de sitios. Estos sitios aparecern como propuestos en el espacio priva-
do, a la espera de la validacin del equipo de administracin.
Este formulario slo se publica si activaste la opcin "Gestionar un anuario de sitios" en la Configura-
cin del sitio en el espacio privado, y si seleccionaste "las personas visitantes del sitio pblico" como
"Quien puede proponer sitios referenciados".
Como en SPIP los sitios referenciados se colocan en las secciones, la baliza #FORMULAIRE_SITE
de este formulario slo se puede colocar dentro de un bucle RUBRIQUES
#FORMULAIRE_ECRIRE_AUTEUR
[SPIP 1.4] Colocado en el interior de un bucle AUTEURS, este formulario permite enviar un correo
electrnico al autor (de un artculo). As, modificando los esqueletos (que, por omisin, publican enlaces
que contienen las direcciones de correo electrnico de las personas autoras de los artculos), permite es-
cribir a las autoras sin colgar su direccin de correo electrnico en el sitio pblico.

17
Sea dicho de paso, se puede personalizar este icono. Ver cap. IV.9. Las variables de personalizacin.
18
Cabe agregar que tambin se puede manejar la presentacin de estos botones con el esti lo spip_bouton. Ver tam-
bin cap. IV.3. Spip y las hojas de estilo.

- Pgina 36 de 114 -
II.18.2. Inscripcin, autentificacin...
#FORMULAIRE_INSCRIPTION
Sin duda el ms importante, el #FORMULAIRE_INSCRIPTION (FORMULARIO DE INSCRIPCIN)
gestiona la inscripcin de nuevos redactores. Slo se publica una interfaz de inscripcin si autorizaste la
inscripcin automtica desde el sitio pblico (de lo contrario, esta baliza no muestra absolutamente na-
da).
La inscripcin necesita el envo de las informaciones de conexin (login y contrasea) por correo
electrnico; as que este formulario tan slo funciona si la configuracin PHP de tu servidor autoriza el
envo de mensajes de correo electrnico.
#LOGIN_PRIVE
[SPIP 1.4] Tambin igual de importante (si no ms) el #LOGIN_PRIVE muestra el formulario de
acceso al espacio privado (la parte "/ecrire" del sitio).
Importante: esta etiqueta debe imperativamente estar presente en el esqueleto llamado por la pgi-
na spip_login.php3, es decir en estndar por el esqueleto denominado login-dist.html. En efecto, du-
rante los accesos directos a la direccin "/ecrire" de tu sitio, SPIP te dirigir hacia
`shim_spipnet`.spip_login.php3.
#LOGIN_PUBLIC
[SPIP 1.4] De utilizacin mucho ms especfica #LOGIN_PUBLIC muestra un formulario que per-
mite a tus usuarias y usuarios identificarse mantenindose en el sitio pblico (sin entrar en el espacio
privado). Esta baliza sirve especialmente para autentificar las personas visitantes en los sitios que ofre-
cen foros moderados con suscripcin. Tambin puede servir de punto de partida para restringir el acceso
a ciertos contenidos en el sitio pblico: esto implica un manejo complicado y necesitar todava desarro-
llo y redaccin de tutoriales completos antes de que sea fcilmente utilizable por todas y todos. Sin em-
bargo ms adelante se ofrece un ejemplo avanzado de utilizacin.
Por omisin, el #LOGIN_PUBLIC se enlaza sobre si mismo, es decir que, cuando la visitante
ingresa su identificador y contrasea en el formulario, SPIP vuelve a la pgina en la que se encuentra.
Se puede indicar una pgina hacia la cual el formulario remitir de la siguiente manera:
[(#LOGIN_PUBLIC|mipagina.php3)]
Si tu sitio ofrece una inscripcin automtica al espacio privado, los datos de conexin al espacio p-
blico son idnticos a los del espacio privado; es decir que los datos enviados a la persona usuaria para
identificarse en el espacio pblico tambin le permiten acceder al espacio privado. Si, por el contrario,
has prohibido la inscripcin automtica al espacio privado, te ser imperativo tener al menos un artculo
cuyos foros estn configurados en el modo "por suscripcin" para activar esta baliza; desde entonces
SPIP podr ofrecer al visitante la informacin de conexin para el sitio pblico sin acceder al espacio pri-
vado.
#URL_LOGOUT [SPIP 1.5] est relacionado con #LOGIN_PUBLIC; ofrece una URL que permite
a una persona visitante autentificada desconectarse.
He aqu un ejemplo sencillo pero completo de utilizacin de estas dos balizas. Hay que usar un poco
de php para comprobar la variable {{$auteur_session}}, que indica que una persona autora est
identificada o no. En ese caso, se puede recuperar (o sea, comprobar) su estado, su login, etc. a travs
de $auteur_session['statut']...
Hay que tener en cuenta que el contenido no est "seguro" ms que en este esqueleto. Si tu esque-
leto "imprimir este artculo", por ejemplo, no verifica por $auteur_session todo el mundo (incluidos
los motores de bsqueda!) podr tener acceso a este famoso contenido que deseas proteger.
<?php if ($auteur_session) { ?>

Ests autentificado, <a href='#URL_LOGOUT'>pincha aqui para desconectarte</a>

... aqui se pone el contenido de acceso restringido....

<?php } else { ?>

<h2>Acceso restringido</h2>
<p>Hay que identificarse para ver esta parte</p>
#LOGIN_PUBLIC

<?php } ?>
II.18.3. Hojas de estilo
Se puede modificar la interfaz grfica de los formularios a travs de las hojas de estilo (vase cap.
IV.3. SPIP y las hojas de estilo) especialmente forml, `shim_spipnet`.spip_encadrer y
`shim_spipnet`.spip_bouton.

- Pgina 37 de 114 -

II.19. Los bucles de bsqueda
SPIP dispone de un motor de bsqueda integrado. Por lo tanto, si se utiliza, hay que prever una p-
gina que permita mostrar los resultados de las bsquedas.
II.19.1. La interfaz de bsqueda
Para colgar el formulario de la interfaz de bsqueda, alcanza con insertar la baliza:
#FORMULAIRE_RECHERCHE
Por omisin, el formulario enviar las solicitudes hacia la pgina cuyo nombre es recherche.php3
19
;
por lo tanto, debes realizar un esqueleto recherche.html que permita colgar los resultados.
Tambin puedes decidir que utilizars otra pgina para mostrar los resultados. Para eso, hay que
agregarle un pseudo-filtro a la baliza, de la manera siguiente:
[(#FORMULAIRE_RECHERCHE|busqueda.php3)]
donde busqueda.php3 es la pgina hacia la cual deseas enviar al visitante que hace una bsqueda.
II.19.2. El esqueleto de resultados
Los bucles que permiten mostrar los resultados de la bsqueda son, en realidad, bucles considerados
anteriormente en este manual
20
: ARTICLES (vase cap. II.5. El bucle ARTICLES (artculos)), RUBRI-
QUES (vase cap. II.6. El bucle RUBRIQUES (secciones)), BREVES (vase cap. II.7. El bucle BRE-
VES).
La nica diferencia, respecto a lo que est documentado para estos bucles, es la eleccin del criterio
de seleccin que debe ser {recherche}. Los criterios de presentacin y las balizas de estos bucles no
cambian.
Adicionalmente, para clasificar los resultados por pertinencia, utilizaremos preferentemente el nuevo
criterio de presentacin: {par points} (por puntos).
Tambin se puede utilizar la baliza #POINTS (puntos), que indica la pertinencia de los resultados
(OJO: en absoluto este valor no es muy explicito en s, su inters es relativo de un resultado a otro y es
til sobre todo para clasificar los resultados).
Para mostrar la solicitud formulada por el visitante del sitio, se puede utilizar la baliza #RECHERCHE
([SPIP 1.5.1])
21
.

II.20. Los filtros de SPIP
En La sintaxis de las balizas SPIP vimos que es posible modificar el comportamiento y el resultado de
las balizas SPIP aplicndoles filtros. Aqui se presentan los principales filtros que vienen con SPIP, y ade-
ms se aprende como crear uno sus propios filtros.
El sintaxis general de los filtros que no llevan otros parmetros que la baliza (la gran mayora) es el
siguiente:
[ opcin anterior (#BALISE|filtro1|filtro2|...|filtron) opcin posterior ]
Los filtros 1, 2, ..., n se aplican sucesivamente a la baliza #BALISE.
Adems, desde [SPIP 1.5], es posible pasar parmetros a los filtros. En este caso la sintaxis es:
[(#BALISE|filtre{arg1, arg2}|...)]
II.20.1. Los filtros de paginacin y formato
Ya no se aconseja utilizas los filtros de paginacin siguientes (majuscules, justifier...). Se re-
comienda, en adelante, la utilizacin preferente de los estilos CSS correspondientes.
majuscules pasa el texto a maysculas. Comparado con la funcin equivalente en PHP, el filtro
SPIP majuscules tambin se aplica a las letras acentuadas.
justifier pasa el texto a justificacin total. Es decir que aplica a todos los prrafos el atributo justi-
fy: (<P align=justify>).
aligner_droite pasa el texto a justificacin alineada a la derecha (atributo <P align=right>).
aligner_gauche pasa el texto a justificacin alineada a la izquierda (atributo <P align=left>).

19
Habrs entendido que recherche significa bsqueda en francs
20
Por cierto, se pueden efectuar bsquedas no slo en los artculos, sino tambin en las secciones y las breves.
21
Que en versiones anteriores de SPIP se puede obtener con el cdigo PHP <?php echo $recherche; ?>).

- Pgina 38 de 114 -
centrer centrar el texto en la pgina. (atributo <P align=center>).
II.20.2. Los filtros de fechas
Los filtros siguientes se aplican a las fechas ([(#DATE|affdate)] por ejemplo). Los filtros de fecha
utilizan el idioma del contexto.
affdate devuelve la fecha, por ejemplo, 13 de enero de 2001 si #DATE es el 13/1/2001.
jour devuelve el da (en nmeros, del 1 al 31).
mois devuelve el mes (en nmeros).
annee devuelve el ao.
[SPIP 1.0.2] heures devuelve las horas de una fecha (los campos de fecha registradas autom-
ticamente por SPIP en su base comprenden no slo la fecha en s, sino tambin la hora exacta).
[SPIP 1.0.2] minutes devuelve los minutos de una fecha.
[SPIP 1.0.2] secondes devuelve los segundos.
nom_jour devuelve el nombre del da de la semana (lunes, martes,... o lundi, mardi...).
nom_mois devuelve el nombre del mes (enero, febrero,... o janvier, fvrier...).
saison devuelve la estacin (invierno, verano,... o hiver, t...).
II.20.3. Filtros de texto
La mayora de los filtros que siguen fueron introducidos en la versin [SPIP 1.4].
liens_ouvrants transforma todos los enlaces SPIP hacia sitios web exteriores en enlaces de tipo
popup, que abren una nueva ventana ("enlaces abrientes"). Es el equivalente del atributo tar-
get=blank de la etiqueta <a> de HTML. Nota: los autores de SPIP estiman que tal comportamiento
en una pgina web es, en general, intrusivo y descorts. El internauta sabe si desea abrir otra ven-
tana o no, y lo puede hacer fcilmente sin que el sistema se lo imponga. Pero la insistencia era de-
masiado fuerte, as que cedimos...;-)
supprimer_numero sirve para suprimir el nmero de un ttulo, cuando, por ejemplo, uno quiere
clasificar los artculos por nmero (criterio {par num titre}) pero no mostrar dichos nmeros, los
cuales as sirven slo para ordenar.
PtoBR transforma los saltos de prrafo en simples retornos de lnea, lo que permite apretar una
paginacin, por ejemplo en un sumario.
taille_en_octets permite transformar un nmero de bytes (por ejemplo 25678906) en una cadena
de caracteres ms explcita (en nuestro ejemplo: 24.4 Mo).
supprimer_tags es una supresin bsica y brutal de todos los cdigos entre <...>
textebrut se parece al filtro precedente supprimer_tags, pero acta de manera algo ms sutil,
transformando en particular los prrafos y los <br> en cambios de lnea y los espacios insecables
en espacios simples. Se puede utilizar, para incluir en una pgina un descriptivo de metadatos a
partir de la baliza #DESCRIPTIF: [<meta name='description' con-
tent='(#DESCRIPTIF|textebrut)'>]
II.20.4. Filtros de logos
Como vimos al presentar las balizas de logos (por ejemplo en el bucle ARTICLES, existe un manejo
especfico para los filtros de logos, que permite fcilmente determinar su posicin y la direccin a la cual
enlazan.
fichier [SPIP 1.4]. Aplicado a un logo, este filtro permite recuperar directamente el nombre del fi-
chero que corresponde al logo (se trata del nombre relativo del fichero, que est situado en la car-
peta IMG).
Otros filtros. Al contrario de las versiones anteriores, [SPIP 1.4] permite aplicar filtros caseros
a los logos: la lgica es un poco rara, porque haba que respetar la compatibilidad con SPIP 1.3. El
anlisis de los filtros se desarrolla as:
o si el primer filtro no es un alineamiento, SPIP considera que se trata de una URL y enlaza el
logo hacia esa direccin;
o si el primer filtro es un alineamiento (gauche, droite), SPIP considera que el segundo filtro es
una URL;
o los filtros siguientes son verdaderos filtros, en el sentido habitual (incluidos los filtros case-
ros declarados en mes_fonctions.php3);
o para aplicar un filtro cualquiera sin especificar un enlace hacia una URL, hay que poner dos ba-
rras. Por ejemplo: &lt;?php $logo = '[(#LOGO_RUBRIQUE||texte_script)]'; ?> permite
recuperar el logo en la variable php $logo, para un tratamiento ulterior (ver ms abajo el signi-
ficado de |texte_script).
SPIP 1.7.1 introduce el filtro reduire_image (reducir_imagen), que permite forzar un tamao
mximo de visualizacin de un logo.
Este filtro se utiliza por ejemplo sobre un logo de artculo de la manera siguiente:
[(#LOGO_ARTICLE|right||reduire_image{130})]
En este ejemplo; el logo del artculo aparece alineado a la derecha, con un tamao mximo de 130
pixels.

- Pgina 39 de 114 -
Nota. Si la opcin creacin de miniaturas est activada en la configuracin del sitio, estos lo-
gos reducidos sern archivos de imgenes especficos calculados automticamente por el
servidor. (idealmente, con la extensin GD2 instalada en el servidor), para los formatos
aceptados por ste (con GD2, habitualmente, los formatos JPG y PNG). Si no, es una versin
completa de la imagen que se visualiza, pero con un tamao especificado directamente en
HTML.
II.20.5. Filtros tcnicos
Estos filtros fueron introducidos por la versin [SPIP 1.4].
entites_html transforma un texto en entidades HTML, que se pueden insertar en un formulario,
por ejemplo: [<textarea>(#DESCRIPTIF|entites_html)</textarea>]
texte_script transforma cualquier baliza en una cadena de caracteres utilizable en PHP o en Javas-
cript con total seguridad
22
, por ejemplo: &lt;?php $x = '[(#TEXTE|texte_script)]'; ?>. OJO: ten
cuidado de utilizar el carcter ' y no " pues en el segundo caso, si tu texto contiene smbolos $, el
resultado puede ser catastrfico (un resultado parcial, publicar otra cosa, colgar el php, etc.).
attribut_html devuelve una cadena utilizable sin peligro como atributo HTML; por ejemplo; si se
quiere agregar un texto de sobrevuelo al enlace habitual a un artculo, se puede utilizar:
<a href="#URL_ARTICLE" [ title = "(#DESCRIPTIF|supprimer_tags|attribut_html)"
]>#TITRE</a>.
sinon [SPIP 1.6] introduce el filtro |sinon (si no), que indica lo que se debe mostrar cuando la ba-
liza filtrada est vaca. Por ejemplo [(#TEXTE|sinon{"no hay texto"})] muestra el texto salvo si
est vaco, en cuyo caso muestra no hay texto.
II.20.6. Agregar sus propias funciones
Los filtros de SPIP son en realidad funciones PHP. Cuando no llevan otro parmetro que la baliza, la
funcin PHP es de una sola variable. Puedes utilizar directamente las funciones habituales de PHP, pero
tambin crear tus propias funciones siguiendo el modelo:
&lt;?php
funcion mi_filtro($texto){
$texto = (mi receta en PHP) ...;
return $texto;
}
?>
Para no modificar ficheros de SPIP (que podran ser reemplazados en la prxima actualizacin), pue-
des instalar tus funciones personales en un fichero mes_fonctions.php3: si SPIP encuentra un fichero
con este nombre, lo incluye automticamente.
Por ejemplo, ARNO* desarroll el filtro enlettres, que no est incluido en la distribucin estndar de
SPIP. Este filtro escribe la denominacin de un nmero en francs (si la fecha #DATE es en el ao 2003,
[(#DATE|annee|enlettres)] = deux mille trois ). Puedes bajar este filtro de
http://www.uzine.net/spip_contrib/a...; es suficiente agregarlo a tu fichero mes_fonctions.php3 para
utilizarlo.
Como se ha mencionado al principio, desde [SPIP 1.5], es posible pasar parmetros adicionales a
los filtros. La sintaxis es:
[(#BALISE|filtro{arg1, arg2}|...)]
El filtro debe ser definido en mes_fonctions.php3 de la manera siguiente:
function filtro($texto, $arg1='valor por omision1', $arg2='valor por omision2')
{
....calculos....
return (una cadena de caracteres);
}
As, se puede llamar a cualquier funcin php, o apoyarse en funciones definidas en SPIP o en
mes_fonctions.php3, con la nica condicin de respetar el orden de los argumentos (el texto que se
debe tratar tiene que ser el primer argumento). Por ejemplo, para cortar el texto a una longitud dada,
digamos 50 caracteres, se puede utilizar [(#TEXTE|couper{50})].


22
En efecto, una va de ataque contra un sitio web puede consistir en insertar, donde slo est previsto un texto, cd i-
go ejecutable adecuadamente presentado. Al construir sitios complejos con SPIP que incluyen PHP es conveniente tener
presente esto.

- Pgina 40 de 114 -
II.21. Los bucles recursivos
Los bucles recursivos son una funcin muy potente para manejar la paginacin de la interfaz. Su
programacin es particularmente sencilla; pero su utilizacin requiere un buen dominio lgico del enca-
denamiento de los bucles.
La llamada a un bucle recursivo es muy simple. Basta con indicar el nombre de otro bucle como TI-
PO de bucle:
<BOUCLEn(bouclex)></BOUCLEn>
No hay ningn criterio: el bucle n corresponde pura y simplemente a una copia del bucle x. La totali-
dad del bucle funciona como si se hubiera vuelto a copiar ntegramente el bucle x (todas las balizas y
bucles SPIP, el cdigo HTML, al igual que los textos condicionales antes, despus, y el texto alternativo)
en el lugar donde se presenta el bucle n. Es necesario, sin embargo, que el bucle x preceda al bucle n.
La utilizacin ms simple consiste en duplicar un bucle sin tener que volver a copiarlo. As, tam-
bin, cualquier modificacin del bucle original x repercute en la copia n.
Pero el inters y la funcionalidad adicional aparecen en realidad cuando se pone el segundo bucle, n,
dentro del primero, x. Se obtiene as un comportamiento recursivo: el bucle x contiene un bucle n, que a
su vez reproduce el bucle x, que contiene el boucle n, y as sucesivamente, hasta que el bucle x ya no
d ningn resultado.
Un excelente ejemplo de lo que es la recursividad se encuentra en los foros: uno puede responder a
un artculo, pero luego tambin se puede responder a esa respuesta, y nuevamente a la respuesta a la
respuesta, y a la respuesta a la respuesta a la respuesta, y as recursivamente.
Cmo hacer un esqueleto que muestre y ordene toda la discusin en un foro? Con lo que vimos has-
ta aqu, habra que limitarse a cierto nivel de respuestas. Quizs sera sano, pero bien se sabe que es di-
fcil decir de antemano cundo va a parar una discusin...
La solucin es un bucle recursivo, es decir un bucle que se llama a si mismo. Para el caso de los fo-
ros, he aqu un ejemplo que muestra, en listas incluidas, el titulo de todas las respuestas, sea cual sea el
nivel de discusin. Es muy sencillo: un primer bucle fabrica la entrada de los hilos (threads, los men-
sajes que responden a un artculo directamente), un segundo bucle muestra las respuestas a estos men-
sajes, y un bucle recursivo causa la recursividad de este segundo bucle:
<BOUCLE_foro(FORUMS){id_article}>
<P>#TITRE
<B_repuestas>
<UL>
<BOUCLE_repuestas(FORUMS){id_parent}>
<LI>#TITRE
<BOUCLE_recursivo(boucle_respuestas)>
</BOUCLE_recursivo>
</BOUCLE_repuestas>
</UL>
</B_repuestas>
</BOUCLE_foro>
El BOUCLE_recursivo es remplazado por el BOUCLE_repuestas que lo contiene, mientras haya
resultados en el bucle, es decir mientras haya respuestas.
As, en pocas lneas, se puede lograr que se muestre la totalidad de la estructura (secciones, subsec-
ciones...) del sitio.

II.22. La popularidad de los artculos
El concepto de popularidad expuesto a continuacin aparece en SPIP 1.4.
II.22.1. Cmo calcular las visitas
Existen cientos de mtodos estadsticos para calcular las visitas de un determinado sitio. La mayora
ofrecen curvas horarias por da, que permiten conocer si el sitio "sube" o "baja" y verificar que hay ms
gente conectada a la red al final de la tarde o durante la semana laboral que durante el fin de semana o
la noche...
Nuestro objetivo es un poco diferente: se trata de atribuir a cada artculo un valor de "popularidad"
que refleje bastante bien la tendencia y permita comparar la actividad de los diferentes artculos sea de
manera global en todo el sito (hit-parade), sea en el interior de una seccin, o sea a travs de los artcu-
los de una misma autora o autor, etc.
El mtodo aplicado es el siguiente (puedes prescindir de esta explicacin si no te sientes cmodo en
matemticas ;-))

- Pgina 41 de 114 -
Cada visita de un artculo aade un cierto nmero de puntos a este artculo; 1 punto si es un artcu-
lo que se consulta desde el sitio siguiendo un enlace, y 2 puntos si es una "entrada directa" desde
un sitio exterior (motor de bsqueda, enlace hipertexto, sindicacin...)
Cada 10 minutos el recuento obtenido se multiplica por un pequeo factor de descuento que hace
que un punto atribuido por una visita a las 10h12 del mircoles no vale ms que medio punto al da
siguiente a la misma hora, y el viernes a las 10h12, un cuarto de punto...;
La cifra total se calcula de manera que, en la hiptesis de que el artculo reciba siempre el mismo
nmero x de visitas por unidad de tiempo, su puntuacin se establece sobre este valor x. Dicho de
otra manera, si la frecuentacin del artculo es estacionaria, su popularidad terminar por reflejar
exactamente el nmero de visitas por da (modulado por el marcador 2 dado para las entradas di-
rectas);
Esta popularidad se expresa de dos manera: una, la "popularit_absolue/popularidad_absoluta", ex-
presa el marcador en cuestin (evaluacin de la frecuentacin cotidiana del artculo); la otra, la "po-
pularit_relative/popularidad_relativa", un porcentaje relativo al artculo del sitio que tenga la ma-
yor popularidad (popularit_max);
Finalmente, la suma de todos estos valores (absolutos) del sitio da la populari-
t_site/popularidad_sitio, que permite comparar la frecuentacin de dos sitios bajo SPIP...
II.22.2. Bucles y etiquetas
Determinadas etiquetas permiten recuperar y publicar estos valores en tus esqueletos. El siguiente
bucle planteado resume el conjunto de etiquetas:
<BOUCLE_pop(ARTICLES){id_article}{popularite>0}>
<h5>Popularidad</h5>
Este artculo tiene una popularidad absoluta igual a #POPULARITE_ABSOLUE, lo que es un
#POPULARITE % de #POPULARITE_MAX. En total, este sitio tiene un promedio de
#POPULARITE_SITE visitas al da.
</BOUCLE_pop>
La etiqueta ms til es la de #POPULARITE dado que ofrece un porcentaje de la popularidad del ar-
tculo relativo al artculo ms popular del sitio. Ello permite realizar fcilmente clasificaciones comprensi-
bles para todo el mundo (con valores que van del 0 al 100). Las otras etiquetas dan valores absolutos,
ms difciles de interpretar para quienes visitan el sitio.
Nota: a pesar de que los datos sean representados en la base de SPIP bajo forma de nmeros
reales, el resultado de todas estas etiquetas se ofrece bajo forma de un nmero entero, lo
que ofrecer, en sitios muy poco frecuentados (sobre todo sitios en pruebas) cosas diverti-
das, como puede ser:
Este artculo tiene una popularidad absoluta igual a 1, es decir el 17% de 2. En total este
sitio recibe aproximadamente 5 visitas al da.
Finalmente, puede resultar til un criterio de seleccin: {par popularite} que se utilizar por ejem-
plo para publicar la lista de los 10 artculos ms populares de la seccin actual:
<BOUCLE_hitparade(ARTICLES){id_rubrique}{par popularite}{inverse}{0,10}>
<li>#TITRE (popularidad: #POPULARITE %)</li>
</BOUCLE_hitparade>
(Se suprimir {id_rubrique} para publicar un hit-parade del sitio completo.)

II.23. La gestin de las fechas
[SPIP 1.6] introduce una serie de criterios y de etiquetas para manejar mejor las fechas de los
artculos. Esta es la lista.
II.23.1. Publicar las fechas
#DATE es la fecha de publicacin en la web. (Modificable tras la publicacin del artculo, la breve,
etc. La fecha de una seccin es la de la publicacin de su elemento ms reciente.)
#DATE_REDAC es la fecha de primera publicacin. (Modificable a voluntad, la opcin slo est
disponible para los artculos.)
#DATE_MODIF [SPIP 1.5] es la fecha de la ltima edicin del artculo: se trata precisamente del
ltimo momento en que el artculo fue abierto para ser editado ,haya sido modificado o no. Prctico
en numerosos casos pero sin rigor cientfico... (No es modificable, salvo si se la quiere fijar a la fe-
cha actual: basta entonces con abrir el artculo en edicin.)
#DATE_NOUVEAUTES [SPIP 1.6] permite publicar la fecha del ltimo envo del correo electrnico
presentando las novedades.
Los filtros |annee, |mois, |jour, |heure, |minutes, |secondes, (ao, mes, da, hora, minutos,
segundos) adems de los que ya hemos visto (vase cap. II.20. Los filtros de SPIP) |affdate,
|nom_mois, |nom_jour, |saison, etc. (publicar fecha, nombre del mes, nombre del da de la semana,

- Pgina 42 de 114 -
estacin, etc.) se aplican para permitir todas las publicaciones habituales en diversos formatos. Sin estos
filtros, las balizas #DATE... devuelven una fecha en formato MySQL: "2001-12-01 03:25:02".)
II.23.2. Filtros para presentar fechas
Los siguientes filtros se utilizan con las fechas ([(#DATE|affdate)], por ejemplo):
journum devuelve el nmero del da del mes: "19".
jour devuelve el nmero ordinal del da del mes: "1", "19".
nom_jour devuelve el nombre del da de la semana: "martes".
mois devuelve el nmero de mes: "10".
nom_mois devuelve el nombre del mes: "octubre".
annee devuelve el ao: "2004".
heures devuelve la hora de una fecha (las fechas de SPIP no slo manejan la fecha, sino tambin la
hora) utilizando una numeracin de 24 h.: "00", "13", "22", etc.
minutes devuelve los minutos.
secondes devuelve los segundos.
saison devuelve la estacin (primavera, verano, otoo, invierno).
affdate devuelve la fecha completa; "19 de Octubre de 2004", por ejemplo.
Algunas variantes del filtro affdate dan mas posibilidades que se ilustran a continuacin, con la
manera de la cual devuelven (durante el ao 2004) las dos fechas "19 de octubre de 2004 y "1ro
de noviembre de 2003:
affdate_jourcourt devuelven el nombre del mes y el nmero del da si es el ao en curso, i.e. "19
de Octubre. Si la fecha es de otro ao se agrega el ao: "1ro de noviembre de 2003".
affdate_court devuelve el nombre del mes y el nmero del da, si es del ao en curso, i.e. "19 de
Octubre. Si la fecha es de otro ao slo se devuelven el mes y el ao: "noviembre de 2003".
affdate_mois_annee devuelve slo el mes y el ao: "octubre 2004", "noviembre 2003".
Si no se aade ninguno de los filtros mencionados, las balizas #DATE... aparecen con el formato
de fecha nativo MySQL: "2001-12-01 03:25:02".
II.23.3. Contexto de fecha
[SPIP 1.6] ofrece a todos los bucles un contexto de fecha. Si nos encontramos dentro de un bucle
(ARTICLES), (BREVES) o (RUBRIQUES), la fecha en cuestin es la fecha de publicacin del artculo,
de la breve o de la ltima modificacin de la seccin.
Si nos encontramos en el primer nivel del esqueleto, la fecha presentada en el contexto es la fecha
del da, salvo si existe una fecha pasada en la URL de la pgina.
En este ltimo caso y para las versiones de php superiores a 3.0.12, la fecha pasada en la URL se
analiza con la funcin strtotime (vase http://www.php.net/manual/en/function.strtotime.php): as
?date=2003, ?date=2003/01 funcionarn, pero tambin funcionar date=-1year (hace un ao), ?da-
te=1march1970 (artculos publicados el 1 de marzo de 1970), etc.
II.23.4. Criterio de date/fecha, ge/antigedad, y ge relatif/antigedad
relativa
El criterio {age}
23
permite seleccionar los artculos en funcin del tiempo que dista entre su fecha de
publicacin en lnea y la fecha corriente. As {age<30} permitir publicar los artculos puestos en lnea
hace menos de 30 das.
La {age_relatif} permite comparar las fechas de publicacin de dos artculos: si acabamos de se-
leccionar un artculo en un bucle, un segundo bucle colocado dentro del primero podr, por ejemplo, so-
licitar los artculos publicados en la semana precedente, utilizando simultneamente los criterios
{age_relatif<=7}{age_relatif>=0}
Los criterios {age} y {age_relatif} permiten distinguir dos artculos publicados el mismo da (no
era posible antes de [SPIP 1.6]). Por ende, a partir de entonces se pueden programar bucles para ob-
tener el artculo precedente o el siguiente:
<BOUCLE_art(ARTICLES){id_article}>
<BOUCLE_precedente(ARTICLES){age_relatif>=0}{par date}{inverse}{1,1}>
Artculo precedente: <a href='#URL_ARTICLE'>#TITRE</a> #DATE
</BOUCLE_precedente>
<br />
<b>#TITRE</b> - #DATE
<br />
<BOUCLE_siguiente(ARTICLES){age_relatif<0}{par date}{0,1}>
Artculo siguiente: <a href='#URL_ARTICLE'>#TITRE</a> #DATE
</BOUCLE_suivant>
</BOUCLE_art>

23
Nota de traduccin: hemos traducido el concepto por "antigedad" aunque en traduccin literal del francs sera
"edad".

- Pgina 43 de 114 -
Atencin: A pesar de las apariencias, las comparaciones de fecha son de un manejo delicado: en
efecto, a causa de las fechas ambiguas (un artculo publicado en un determinado mes sin que se pre-
cise el da), el clculo de age_relatif/antigedad relativa puede dar valor cero en un sentido y no en
otro. De ah la asimetra de los bucles presentados a continuacin: en un sentido se busca el "segundo
ms reciente" de los artculos {age_relatif>=0} (puesto que el ms reciente en comparacin no estric-
ta, solo puede ser el propio artculo); en otro, el ms antiguo de los artculos publicados estrictamente
ms tarde.
Los criterios {jour_relatif}, {mois_relatif} y {annee_relatif} (da, mes y ao relativo) funcio-
nan como age_relatif pero tomando en cuenta las fechas redondeadas del da, el mes y el ao respecti-
vamente; por ejemplo, si la URL lleva la variable ?date=2003-01-01, el bucle siguiente dar todos los
artculos del mes de marzo de 2003
<h3>Articles de [(#DATE|nom_mois)] [(#DATE|annee)] :</h3>
<BOUCLE_blog(ARTICLES){mois_relatif=0}{par date}{"<br />"}>
<a href='#URL_ARTICLE'>#TITRE</a> ([(#DATE|jour)]/[(#DATE|nom_mois)]
</BOUCLE_blog>
II.23.5. La fecha de redaccin anterior
Si activaste la utilizacin de fechas de publicacin anterior, la mayora de los criterios planteados a
continuacin funcionan: tan slo es necesario aadir _redac al criterio
24
. As {age_redac>365} publi-
car los artculos cuya fecha de publicacin anterior remonta a ms de un ao.
Si un bucle selecciona un artculo cuya date_redac est definida, un bucle interno que contenga el
criterio {annee_relatif_redac=0} buscar los artculos cuya fecha de publicacin pertenezca al mismo
ao.
23.6. Un ejemplo de sumario de sitio clasificado por fecha
A ttulo de ejemplo, he aqu como se puede publicar todos los artculos de un sitio, ordenados por
mes de publicacin:
<BOUCLE_articulom(ARTICLES){par date}{inverse}>
<BOUCLE_primero_del_mes(ARTICLES){id_article}{doublons}>
<BR><UL><b> [(#DATE|nom_mois|majuscules)] [(#DATE|annee)] </b>
<li><a href="#URL_ARTICLE">[(#TITRE|couper{50})]</a> -
[(#DATE|jour)]/[(#DATE|mois)]</li>
</BOUCLE_primero_del_mes>
<BOUCLE_MES(ARTICLES) {mois_relatif=0}{doublons}{par date}{inverse} >
<li><a href="#URL_ARTICLE">[(#TITRE|couper{50})]</a> -
[(#DATE|jour)]/[(#DATE|mois)]</li>
</BOUCLE_MES>
</ul>
</BOUCLE_articulom>

II.24. Resaltar un artculo de una lista
Introducida en SPIP 1.7.1, la baliza #EXPOSER permite destacar, en un men o una lista, el objeto
principal de la pgina en la cual se encuentra.
Su uso ms sencillo permite cambiar la manera de presentar el ttulo del artculo principal; por ejem-
plo, en el esqueleto article.html, se puede modificar el estilo del enlace de la siguiente manera:
<BOUCLE_principal(ARTICLES){id_article}>
<BOUCLE_menu(ARTICLES){id_rubrique}>
<li class='enlace#EXPOSER'><a href="#URL_ARTICLE">#TITRE<a></li>
</BOUCLE_menu>

... #TEXTE ...

</BOUCLE_principal>
con los siguientes estilos:
a.enlace {
color: red;
}
a.enlaceon {
color: blue;
font-weight: bold;

24
redac, de redaction, redaccin.

- Pgina 44 de 114 -
}
El objeto que resulta resaltado por una presentacin diferente es el artculo, la noticia breve, la
seccin, la palabra clave o el autor que pertenecen al contexto actual. En el caso de las secciones,
gestiona la jerarqua completa, lo que permite resaltar el rbol de secciones que contiene el artculo
publicado.
Por omisin, SPIP reemplaza la baliza #EXPOSER por on si el objeto pertenece al contexto actual;
de lo contrario la baliza simplemente se ignora. Sin embargo, la baliza #EXPOSER acepta uno o dos ar-
gumentos, que permiten de precisar cmo se presenta el artculo resaltado, y cmo se presenta el resto
de artculos. As mediante [(#EXPOSER|s,no)] se ver s en el artculo resaltado, y no en el re-
sto.
Nota: los dos argumentos estn separados mediante una coma, lo que impide utilizar la coma
en el primero de ellos; se permiten las siguientes construcciones:
[(#EXPOSER|plus)] para mostrar plus en lugar de on;
[(#EXPOSER|,off)] para no mostrar nada en el objeto resaltado, y mostrar off en el resto de
objetos.
Con un pequeo truco se puede desactivar el enlace al artculo resaltado y, al mismo tiempo, elegir
la hoja de estilo:
<BOUCLE_menu(ARTICLES){id_rubrique}{"<br>"}>
<a [(#EXPOSER|id,href)]="#URL_ARTICLE" class="enlace[(#EXPOSER|-
desactivado)]">#TITRE</a>
</BOUCLE_menu>
crear el siguiente HTML:
<a href="article1.html" class="enlace">Todo sobre mi hermana</a><br>
<a id="article2.html" class="enlace-desactivado">Todo sobre m</a><br>
<a href="article3.html" class="enlace">Todo sobre mi hermano</a>
que aparece as:
Todo sobre mi hermana
Todo sobre m
Todo sobre mi hermano

- Pgina 45 de 114 -




III. SPIP paso a paso.
Paso a paso, como crear un SPIP que desafa los lmi-
tes.

- Pgina 46 de 114 -
III.1. Mi primer esqueleto (lo saco del armario)
Si el sistema de esqueletos puede parecer en un principio intimidador es porque lo que se le pide es
suficientemente rico para obligarlo a ser complejo. Pero complejo no quiere decir complicado. Expone-
mos a continuacin un ejemplo mnimo de esqueleto.
Supondremos para empezar que tu base SPIP contiene al menos una seccin y dos artculos publi-
cados.
Antes de utilizar un esqueleto es necesario poder llamarlo: crea en la raz de tu sitio web un fichero
tutorial.php3 que contenga las siguientes lneas:
<?
$fond = "tutorial";
$delais = 0;
include "inc-public.php3";
?>
Despus, comprueba en tu navegador: http://tusitio.net/tutorial.php3. no funciona, verdad? El
mensaje de error est informando que falta un fichero. Es el famoso esqueleto que ahora vamos a crear.
En la raz del sitio coloca un fichero tutorial.html, que contenga lo siguiente:
<BOUCLE_articulo(ARTICLES){id_article=1}>
#TITRE
</BOUCLE_articulo>
Despus recarga la pgina http://tusitio.net/tutorial.php3. Va mejor, no? SPIP fue a buscar el ttulo
del artculo n 1 de tu base y la muestra en el lugar de #TITRE.
Si esto no funciona... tienes que verificar que tu artculo n1 est correctamente publicado (y no
propuesto a la evaluacin o en curso de redaccin).
Despus aade el HTML, otras llamadas de campos SPIP, y obtendrs rapidamente tu artculo n1
completo:
<BOUCLE_articulo(ARTICLES){id_article=1}>
<H1>#TITRE</H1>
<B>#CHAPO</B>
<P align=justify>#TEXTE
</BOUCLE_articulo>
Aade a continuacin los campos que faltan: #SURTITRE, #LESAUTEURS, #SOUSTITRE, #NO-
TES, etc.
Bien!

III.2. Un esqueleto, varios artculos... es para eso
que sirve
La leccin precedente nos permiti extraer los datos del artculo n 1 de la base de datos y hacer una
pgina Web. Generalicemos...
Nuestro esqueleto es intil si slo sirve para colgar el artculo n 1. Aprendamos a colgar cualquier
artculo:
Para ello vamos a llamar a nuestra pgina Web con una variable id_article=2: solicita al navegador
la direccin URL http://tusitio.net/tutorial.php3?id_article=2.
Y ah aparece... el artculo 1 (y no el 2). Modifiquemos en el esqueleto tutorial.html la lnea que de-
fine el bucle artculo :
<BOUCLE_articulo(ARTICLES){id_article}>
(Como vers, se reemplaza {id_article=1} por {id_article}).
Veamos: http://tusitio.net/tutorial.php3?id_article=2 te devuelve el artculo 2
25
.
El BOUCLE_articulo se ejecuta en un contexto donde id_article es igual a 2 (el valor que se pasa
en la URL). Si se le indica de manera precisa {id_article=1} buscar el artculo n 1 pero si se le pide
{id_article}, buscar el artculo cuyo nmero est indicado en el contexto (aqu, la URL).
Pincha ahora en :

25
No? al menos debera...

- Pgina 47 de 114 -
http://tusitio.net/tutoriel.php3?id_article=1,
http://tusitio.net/tutoriel.php3?id_article=2 y
http://tusitio.net/tutoriel.php3.
Ves la diferencia? Las dos primera pginas te permiten visualizar los artculos n 1 y 2, la tercera no
tiene id_article en su contexto y produce un error.
Bravo! Tu esqueleto es ahora "contextual.

III.3. Una seccin (rbrica) o cmo hacer listas del
contenido de la base
La leccin precedente nos ensea a colgar elementos en funcin del contexto. Ahora vamos a ver
como este contexto vara a medida de los BOUCLES que vaya encontrando.
Modifiquemos nuestro esqueleto tutorial.html de la siguiente manera :
<BOUCLE_articulos(ARTICLES)>
#TITRE<BR>
</BOUCLE_articulos>
En este caso se suprime directamente la condicin {id_article=1}. Atencin: este BOUCLE va a
generar una pgina enorme si tu base contiene ya un nmero considerable de artculos: es mejor tomar
precauciones y aadir de {0,10} para limitar a los 10 primeros artculos...
<BOUCLE_articulos(ARTICLES){0,10}>
Resultado: los ttulos de los 10 primeros artculos de tu base de datos quedan visualizados en la p-
gina, separados por un salto de lnea. A partir de ah se puede ver como producir el sumario de una sec-
cin (rubrique): colguemos los 10 artculos ms recientes que pertenecen a esta seccin.
<BOUCLE_articulos(ARTICLES){id_rubrique}{par date}{inverse}{0,10}>
<a href=#URL_ARTICLE>#TITRE</A><BR>
</BOUCLE_articulos>
Tommoslo por orden :
{id_rubrique}: solo toma los artculos que pertenecen a la seccin id_rubrique (cf. a continuacin
para que esta variable sea definida en el contexto de nuestro BOUCLE_articulos).
{par date}{inverse}: selecciona por fecha en orden decreciente (antecronolgico)...
{0,10}: ... et toma los 10 primeros resultados.
Finalmente, <a href=#URL_ARTICLE>#TITRE</A> escribir no slo el ttulo del artculo sino
que adems crear un enlace hacia este artculo.
Queda por invocar el esqueleto transmitindole el contexto {id_rubrique=1}:
http://tusitio.net/tutorial.php3?id_rubrique=1
La magia de SPIP est en la combinacin de este tipo de funcionalidades. Si has llegado hasta aqu,
ya est logrado!

III.4. Bucles en bucles
Ya sabemos generar la lista de ttulos de una seccin. Ahora vamos a colgar en la misma pgina los
propios elementos de la seccin: su ttulo, su texto de presentacin, etc.
Intentalo!
Y esta es una solucin:
<BOUCLE_seccion(RUBRIQUES){id_rubrique}>
<H1>#TITRE</H1>
<BOUCLE_articulos(ARTICLES){id_rubrique}{par date}{inverse}{0,10}>
<a href=#URL_ARTICLE>#TITRE</A><BR>
</BOUCLE_articulos>
[(#TEXTE|justifier)]
</BOUCLE_seccion>
Desde el navegador llamamos a la pgina con http://tusitio.net/tutorial.php3?id_rubrique=1. Qu
es lo que ocurre?
Nuestro bucle ARTICULOS est integrado en un bucle SECCION. El contexto del bucle ARTICULOS
es la id_rubrique dada por el bucle SECCION, que a su vez va a buscar el contexto dado por el URL, es

- Pgina 48 de 114 -
decir ?id_rubrique=1). Por lo tanto, estamos en el nivel de los ARTICULOS, con la id_rubrique solici-
tada. Desde este punto de vista no cambia nada.
Por otro lado sin embargo, el bucle SECCION ha permitido a SPIP seleccionar los valores de los
campos de la seccin en cuestin: podemos por tanto colgar el #TITRE y el #TEXTE de esta seccin.
Fjate bien en que el #TEXTE sera el de la seccin incluso si llamramos #TEXTE en el bucle ARTICU-
LOS. El funcionamiento ramificado de SPIP garantiza que el #TEXTE de un artculo no desborde el bucle
ARTICULOS...
Una ltima cuestin: se ha introducido un filtro |justifier en el campo #TEXTE. Este filtro modifica
el contenido del texto antes de instalarlo en la pgina final. Empiezas a tomarle gusto?

III.5. Gestionar la cach... y evitar hacer trabajar al
servidor que tiene otras cosas que hacer
En las lecciones precedente hemos comenzado a elaborar los esqueletos. El xito de nuestro sitio
web corre el riesgo de ser fulgurante. Pensemos enseguida en las pobres neuronas de nuestro ordena-
dor. En esta leccin, nada de divertido, tampoco nada de esencial. Los y las perezosos/as aprovecharn
para acurrucarse en el fondo, cerca del radiador. ;-)
Resumen para ellos y para la gente que tiene prisa: en los ficheros de llamada de tipo tutorial.php3,
cambiar por $delais = 3600; la cifra de 0.
En el momento en el que una pgina es solicitada a SPIP este comprueba si, por azar, esta pgina ya
ha sido vista anteriormente. Si la URL solicitada es http://tusitio.net/tutorial.php3?id_article=12, SPIP
mira en su sub-repertorio CACHE/ si este fichero existe y, en caso de que as sea, compara la fecha del
fichero cach a el $delais (plazo) fijado en le fichero de llamada tutorial.php3.
En nuestro ejemplo habamos fijado un plazo de $delais=0; es decir que se produce un clculo sis-
temtico de las pginas en cada consulta del sitio. Pasemos a $delais=3600; (se expresa en segun-
dos).
Nuestra pgina web slo es renovada si, cuando un o una visitante la solicita, su versin en cach
data de ms de una hora (es decir 3600 s.) De lo contrario SPIP lee simplemente el contenido del fichero
cach
26
y reenva el resultado sin conectarse a la base de datos (salvo para insertar un "hit en las esta-
dsticas).
Como fijar estos $delais para optimizar la relacin reactividad/carga del servidor? No hay
soluciones milagrosas pero no dudes en fijar un plazo de un da (i.e. $delais=24*3600) o ms, para
los artculos y las secciones (rbricas). Las pginas de navegacin ms importantes pueden tener $de-
lais ms cortos (veinte minutos o una hora, por ejemplo) si se supone que tu sitio debe a reaccionar con
frecuencia a la validacin de noticias breves y de sitios sindicados... Si ests albergado en un servidor
compartido con otros sitios, debes ser respetuoso/a con los dems y no tomar todo el tiempo de clculo
para pginas que raramente cambian: sera especialmente tonto por lo que respecta a los artculos
grandes o en los sumarios, ya que el clculo de pginas puede tomar algunos segundos, lo que ralentiza
la consulta de tus pginas...
Como provocar una puesta al da fuera de plazo? Acabamos de decidir $delais extremada-
mente largos y nos damos cuenta de una falta de ortografa en una pgina. Correccin en el back-
office... Como borrar de inmediato tal villana cicatriz del sitio?
Desde una pgina de modificacin de artculo o seccin el back-office (la interfaz privada de SPIP),
al pinchar en Ver en lnea (abajo del n de artculo o seccin) se inicia la actualizacin de la pgi-
na correspondiente a #URL_ARTICLE o #URL_RUBRIQUE del artculo o de la rbrica que acabas
de corregir. Este es el caso ms frecuente. Pero sin, cmo actualizar un esqueleto personalizado?
La solucin ms sencilla consiste en pinchar en el botn "Actualizar esta pgina que le aparece al
administrador en la zona inferior izquierda de cada pgina del sitio pblico. Cabe recalcar que ste
botn te aparece nicamente si eres administrador, y slo una vez que te hayas conectado a la in-
terfacz privada (back-office) desde el navegador que utilizas. Para sto, SPIP coloca un cookie en tu
navegador que le permite reconocerte. Si deseas suprimir ese cookie, lo puedes hacer desde la por-
tada de la interfaz privada, pinchando en el tringulo al lado de tu nombre, que muestra tus infor-
maciones personales.
Finalmente, en el back-office del sitio, en la sub-seccin Mantenimiento del sitio de la Adminis-
tracin del sitio, encontrars los comandos para vaciar la cach que borra todos los ficheros de
la cachs (til si haces muchas modificaciones y con un sitio muy complejo, evitar si no es as).
Volviendo al contexto: Volvemos aqu sobre la nocin de contexto. Si se llama un esqueleto con un
contexto de id_article, de id_rubrique o incluso id_breve, se propone otro botn cuando SPIP detecta

26
Para los/las especialistas, se trata de hecho de un include PHP del fichero correspondiente, permitiendo ejecutar el
cdigo desde la cach.

- Pgina 49 de 114 -
el cookie: Modificar este artculo (ou seccin, o breve), que conduce directamente a la pgina corres-
pondiente en el back-office. Y se le dice gracias a quin?
ltimos detalles:
por razones evidentes el motor de bsqueda no dispara la cache y se reactualizan las pginas con
forum son en cuanto se enva una nueva contribucin.
la carpeta CACHE/ en la ramificacin del sitio se divide en 16 sub-carpeta numeradas 0, 1, 2... 9,
A, B... F, en las cuales los ficheros cachs se distribuyen casi-aleatoriamente; esto se llama hacer
un hash de la cach y slo por ello ya merece que se le mencione.
los ficheros cachs quedan accesibles incluso si la base de datos "se cae, lo que proteje al sitio en
caso de averas transitorias del servidor MySQL.

III.6. Los filtros. Sutilezas esquelticas
Si los BOUCLES permiten estructurar la pgina de manera lgica, falta por presentar los datos de
manera esttica. En cuestiones de diseo SPIP no puede hacer nada por t, pero es bueno saber utilizar
sus filtros...
Un dato almacenado en la base MySQL se presenta como un bloque de texto, cuyo valor puede que
queramos manipular antes de presentarlo en pantalla. Los filtros estn hechos para eso:
los filtros ms utilizados (son llamados sistemticamente) son |typo y |propre; el primero es un
corrector tipogrfico que tiene por misin principal aadir espacios "insecables donde sea necesario
(cf. Ayuda en linea de SPIP); el segundo se encarga de los prrafos, los atajos SPIP (itlicas, negri-
tas, interttulos, notas de pi de pgina, etc.) - tan solo se aplica por defecto en los campos largos
(#TEXTE, #CHAPO, etc.)
Otros filtros son muy utilizados: citemos |majuscules (con funcionalidad evidente: maysculas),
|justifier o |aligner_droite (que definen la alineacin del texto respecto a los bordes verticales), o in-
cluso la esotrica |saison (que indica verano si la variable es una fecha comprendida entre el 21
de junio y el 20 de septiembre)...
Para utilizar un filtro es necesario incluir la variable entre parntesis o corchetes (ms tarde se vern
las implicaciones): [blah blah (#VARIABLE|filtro) bloh bloh]
Los filtros pueden encadenarse uno tras otro
27
: as [(#DATE|saison|majuscules)] mostrar la
palabra INVIERNO
28
.
Ejercicio referido al conjunto de las lecciones precedentes: Mostrar, en maysculas, los ttulos de los
10 artculos ms recientes de la seccin pasada en el contexto, y colocar al comienzo de la pgina la es-
tacin actual (es decir la estacin en la cual se ha publicado el artculo ms reciente de toda la base de
datos).
***
Para que los corchetes? Supongamos que vuestra base de datos contiene unos artculos con fe-
cha y otros sin ella. La variable {#DATE} vale 2001-07-01 10-53-01 (fecha en formato MySQL) en el
primer caso y 0000-00-00 00-00-00 en el segundo. Para mostrar la fecha en un bonito(?) cuadro, se
van a utilizar en el esqueleto las lneas siguientes:
[<table border=1><tr><td>
(#DATE|affdate)
</td></tr></table>]
Aqu el filtro |affdate muestra la fecha en letra (con el formato 1ro de Julio de 2001
29
); pero de-
vuelve una cadena vaca si la fecha es desconocida (igual a 0000...). Los corchetes delimitan lo que
hay que mostrar junto a la fecha si el resultado entre parntesis no es una cadena vaca.
Resultado: slo los artculos datados provocan que se muestre un cuadro conteniendo la fecha. Un
esqueleto bien construido definir precisamente lo que es necesario colgar o no en funcin del conteni-
do... Los filtros sirven tambin para esto.

27
Lo que podemos llamar un pipeline.
28
Si es que estamos en invierno, claro.
29
La lengua en que aparece la fecha es la lengua principal del sitio.

- Pgina 50 de 114 -




IV. Gua de las funciones
avanzadas
Ms all del manual de referencia, aqu encontrars
una descripcin de las funciones ms avanzadas para la
configuracin de un sitio con SPIP.

- Pgina 51 de 114 -
IV.1. Estructura de la base de datos
La estructura de la base de datos es bastante sencilla. Las convenciones utilizadas aparecen implici-
tamente en este documento. Por ejemplo, la mayora de los objetos se indexan con un entero autoin-
crementado cuyo nombre es algo como id_objet, y que se declara como clave primaria en su tabla.
NB: este artculo necesita ser actualizado y nadie lo est haciendo todava. Hay que leerlo como
un elemento que ayuda a comprender el funcionamiento de SPIP, pero ya no como una refe-
rencia. Si quieres contribuir a la documentacin rehaciendo este artculo, no lo dudes!
IV.1.1. Contenido referido a la redaccin
30

Las secciones: spip_rubriques
Cada seccin se identifica por su id_rubrique.
id_parent es la id_rubrique de la seccin que contiene esta seccin
(cero si la seccin se encuentra en la raz del sitio).
titre, descriptif, texte se explican ellos mismos
31
.
id_secteur es la id_rubrique de la seccin inicial de la jerarqua
que la contiene. Una seccin depende de una seccin que depende
de una seccin. hasta una seccin colocada en la raz del sitio; es
esta ltima seccin la que determina el id_secteur. Este valor
calculado previamente permite acelerar ciertos clculos del espacio
pblico (de hecho las breves son clasificadas nicamente por sector
y no segn toda la jerarqua).
maj es un campo tcnico
32
calculado automticamente por MySQL.
Contiene la fecha de la ltima modificacin introducida en la tabla.
export, id_import son dos campos reservados para funcionalidades futuras.
Los artculos: spip_articles
Cada artculo est identificado por su id_article.
id_rubrique indica en que seccin est incluido el artculo.
id_secteur indica el sector correspondiente a la seccin antes
mencionada (ver el prrafo precedente para advertir la
diferencia entre los dos).
titre, surtitre, soustitre, descriptif, chapo, texte, ps se
explican ellos mismos.
date es la fecha de publicacin del artculo (si todava no est
publicado, es la fecha de creacin).
date_redac es la fecha de publicacin anterior si introduces un
valor, sino es 0000-00-00.
statut es la situacin actual del artculo: prepa (en curso de
redaccin), prop (propuesto a su publicacin), publie
(publicado), refuse (rechazado), poubelle (en la papelera).
accepter_forum: permite seleccionar manualmente si el
artculo acepta foros o no (por defecto, s).
maj: el mismo significado que en la tabla de las secciones.
export es un campo reservado para funcionalidades futuras.
images es un campo que contiene la lista de las imgenes
utilizadas por el artculo, en un formato propio. Este campo se
genera por spip_image.php3..
visites y referers son usados para las estadsticas sobre los
artculos. El primero es el nmero de visitas del artculo en el
espacio pblico; el segundo contiene un extracto de hash de las
visitas externas para recordar esos diferentes enlaces externos.
Ver inc-stats.php3.







30
... de artculos, breves,...
31
Se explican ellos mismos... en francs ;-) Puede ser til consultar el Lxico SPIP francs - espaol
[http://www.spip.net/es_article104.html].
32
"maj son las iniciales de "mise jour: puesta al da, actualizacin.

- Pgina 52 de 114 -
Los autores/as: spip_auteurs
Cada autora o autor es identificado por su id_auteur.
nom, bio, nom_site, url_site, pgp son, respectivamente, el nombre
de la autora o autor, una corta biografa, su direccin de email, el
nombre de la URL de su sitio Web, y su clave PGP. Son informaciones
que l o ella puede modificar libremente.
email, login son su email de inscripcin y su login. Slo puede modi-
ficarlos un administrador.
pass es el hash MD5 de la contrasea.
htpass es el valor encriptado (i.e. generado por encriptacin) de la
contrasea para el .htpasswd.
statut es el estado del autor/a: 0minirezo (administrador/a),
1comite (redactor/a), 5poubelle (en la papelera), 6forum
(registrado en los foros, cuando estn definidos en el modo por
registro).
maj tiene el mismo significado que en las otras tablas.


Las breves: spip_breves
Cada breve est identificada por su id_breve.
id_rubrique es la seccin (de hecho el sector) en la cual est
clasificada la breve.
titre, texte, lien_titre, lien_url son el ttulo, el texto, y el nombre
y la direccin de referencia asociados a la breve.
date_heure es la fecha de la breve.
statut es el estado de la breve: prop (propuesta a su publicacin),
publie (publicada) o refuse (rechazada).
maj: igual que en las otras tablas.
Las palabras clave: spip_mots
Cada palabra clave es identificada por su id_mot.
El type de la palabra clave es el tipo, o grupo, elegido para esa
palabra clave. Definiendo varios tipos se obtienen diversas
clasificaciones independientes (por ejemplo tema, poca,
pas...).
titre, descriptif, texte se explican ellos mismos.
maj: igual que en las otras tablas.

Los sitios sindicados: spip_syndic
Cada sitio sindicado es identificado por su id_syndic.
id_rubrique e id_secteur contienen la posicin en la jerarqua del
sitio donde se encuentran los contenidos sindicados.
nom_site, url_site, descriptif son el nombre, la direccion y la
descripcion del sitio sindicado.
url_syndic es la direccin del archivo dinmico utilizado para
recoger los contenidos sindicados (normalmente se trata de la
url_site seguida de backend.php3).
Los artculos sindicados: spip_syndic_articles
Cada artculo sindicado es identificado por su id_syndic_article.
id_syndic se refiere al sitio sindicado de donde es extrado el
artculo.
titre, url, date, lesauteurs se explican ellos mismos.






IV.1.2. Elementos interactivos
Los mensajes de los foros: spip_forum
Cada mensaje de un foro es identificado por su id_forum.

- Pgina 53 de 114 -
El objeto al cual est vinculado el foro es identificado por su
id_rubrique, id_article o id_breve. Por defecto estos valores
estn a cero.
El mensaje padre (es decir, el mensaje al que se responde con el
mensaje actual) es identificado por id_parent. Si el mensaje no
es una respuesta a ningn otro mensaje este valor es cero.
titre, texte, nom_site, url_site son el ttulo y el nombre del
mensaje, y el nombre y la direccin del objeto relacionado.
auteur y email_auteur son el nombre y el email declarados por
la autora o autor. En el caso de los foros con registro, no tienen
porque ser los mismos que los datos guardados del autor (por ej.
en la tabla spip_auteurs).
id_auteur identifica al autor o autora del mensaje en el caso de
los foros con inscripcin.
statut es el estado del mensaje: publie (visible en el espacio
pblico), prive (escrito en relacin a un artculo del espacio
privado), privrac (escrito en el foro interno en el espacio
privado), off (suprimido o a validar, segn la moderacin de los
foros -a priori o a posteriori-).
ip es la direccin IP del ordenador de conexin al redactar una
contribucin en los foros pblicos.
maj: igual que en las otras tablas.


Las peticiones: spip_petitions
id_article identifica el artculo al cual est asociada la peticin
(una sola peticin por artculo).
email_unique, site_obli, site_unique, message definen la
configuracin de la peticin: la direccin email de los firmantes
debe ser nica en las firmas; la direccin Web es obligatoria y
debe ser nica; un mensaje relacionado con las firmas es
autorizado (oui o non).
texte es el texto de la peticin.
maj igual que en las otras tablas.
Las firmas de las peticiones: spip_signatures
Cada firma es identificada por su id_signature.
id_article identifica el artculo en el que est incluida la peticin
que tiene la firma.
nom_email, ad_email, nom_site, url_site son el nombre, la
direccin email, as como el sitio Web escritos por la persona
firmante.
message es el mensaje eventualmente introducido por la
persona firmante.
statut es el estado de la firma: publie (aceptada), poubelle
(suprimida); cualquier otro valor da el valor de la clave de
validacin utilizada para la confirmacin por email.
maj: igual que en las otras tablas.


IV.1.3. Las relaciones entre los objetos
Estas tablas no generan ningn contenido, simplemente una relacin entre los objetos presentes en
otras tablas. As:
spip_auteurs_articles especifica la relacin entre autores/as y sus artculos. Si un id_auteur est
asociado a un id_article, eso quiere decir que el autor/a en cuestin ha escrito o coescrito el artcu-
lo (puede haber varios artculos por autor/a y viceversa).
spip_mots_articles la define la relacin para relacionar los artculos por palabras clave.
IV.1.4. Gestin del sitio
La tabla spip_meta es fundamental. Contiene parejas (nom, valeur) indexadas por el nombre (cla-
ve primaria); estas parejas permiten almacenar diferentes informaciones como la configuracin del sitio
o la versin instalada de SPIP.
La tabla spip_forum_cache es utilizada para adaptar el sistema de cach a la inmediatez de los fo-
ros. Para cada fichero de la cach que haya dado lugar a una bsqueda en la tabla spip_forum, la tabla

- Pgina 54 de 114 -
spip_forum_cache almacena los parmetros de la bsqueda (artculo, seccin, breve y eventual men-
saje padre del foro). Cuando un mensaje es enviado, sus parmetros son comparados con los guardados
en spip_forum_cache, y para cada correspondencia encontrada el fichero cach hallado en la tabla es
borrado. As los mensajes no tienen que esperar a que la pgina en la que se encuentran vuelva a ser
calculada para aparecer en el espacio pblico.
IV.1.5. Indexacin (motor de bsqueda)
Seis tablas son utilizadas por el motor de bsqueda. Se dividen en dos categoras.
El diccionario de indexacin: spip_index_dico
Cada palabra encontrada durante la indexacin es almacenada en esta tabla, as como los 64 prime-
ros bits de su hash MD5. Es la palabra que sirve de clave primaria, permitiendo as efectuar muy rpidas
bsquedas sobre el comienzo de una palabra; se recuperan entonces los hash que satisfacen la bsque-
da, con el fin de efectuar la bsqueda propiamente dicha en las tablas de indexacin.
Las tablas de indexacin: spip_index_*
Estas tablas, son cinco, generan cada una la indexacin de un tipo de objeto: artculos, seccines,
breves, autores/as, palabras clave. Una entrada por palabra y por objeto es almacenada. Cada entrada
contiene el hash de la palabra (de hecho, los 64 bits ms importantes del hash MD5, cf. debajo), el iden-
tificador del objeto indexado (por ejemplo el id_article para un artculo), y el nmero de puntos asocia-
do a la indexacin de la palabra dentro del objeto. Este nmero de puntos es calculado en funcin del
nmero de ocurrencias de la palabra, ponderado por el campo donde se producen esas incidencias: una
ocurrencia en le ttulo de un artculo genera ms puntos que una ocurrencia en el cuerpo del artculo.
El funcionamiento de la indexacin es explicado ms detalladamente aqu.

IV.2. El soporte LDAP
Atencin este artculo est realamente desintado a las personas que son usuarias avanzadas, que
controlan la utilizacin de LDAP y desean apoyr SPIP en un anuario LDAP existente.
LDAP (Lightweight Directory Access Protocol) es un protocolo que permite interrogar un anuario que
contiene informaciones de usuarios (nombre, login, autentificacin...). Desde la versin [SPIP 1.5] es
posible virificar si una redactora se encuentra en la base LDAP antes de darle acceso al espacio privado.
En la instalacin, SPIP detecta si PHP ha sido compilado con el soporte LDAP. Si es as, en la quinta
etapa ("crear un acceso) un botn permite aadir un anuario LDAP a la configuracin SPIP. La configu-
racin que sigue es relativamente simple e intenta adivinar al mximo los parmetros. Especialmente,
permite elegir por defecto el estatuto de las autoras que se encuentran en el anuario: ellas pueden ser
redactores (aconsejado), administradoras, o simples personas visitantes.
Nota: por defecto, la extensin LDAP de PHP no est habitualmente activada por tanto SPIP no
publicar el formulario correspondiente durante la instalacin. Acordaros de activar la exten-
sin LDAP en vuestra instalacin PHP si vais a utilizar LDAP con SPIP.
Si SPIP se encuentra ya instalado y quieres configurar el anuario LDAP bastar con retomar la insta-
lacin borrando el fichero ecrire/inc_connect.php3. Una vez que la configuracin se ha realizado co-
rrectamente, los usuarios del anuario LDAP sern identificados escribiendo el login (el nombre) en el
anuario LDAPT y despus la contrasea. Ten en cuenta que ello no impide crear directamente autoras en
SPIP; estos nombres de autores no se recopiarn en el anuario sino que sern gestionados directamente
por SPIP. Por otro lado las informaciones personales (biografa, clave PGP...) de los autores autentifica-
dos en LDAP tampoco se volvern a copiar en el anuario. As SPIP solo tiene necesidad de un acceso solo
lectura en el anaurio LDAP.
Importante. crea siempre una primera adminsitradora normal (no LDAP) tras la instalacin de SPIP.
Es preferible para evitar quedarse bloqueado en caso de avera del servidor LDAP.
IV.2.1. Para saber ms
Las informaciones de conexin al servidor LDAP estn escritas en inc_connect.php3. Corolario: es
necesario suprimir este fichero y volver a lanzar la instalacin para activar LDAP en el sitio SPIP existen-
te.
En la tabla spip_auteures se aade un campo fuente que indica de donde vienen las informa-
ciones sobre la autora. Por defecto, es spip pero puede tomarse tambin el valor ldap. Ello permite saber
concretamente cuales son los campos que no deben cambiarse: en particular no se debe autorizar la
modificacin del login, puesto que de lo contrario se produce una prdida de sincronizacin entre SPIP y
LDAP.
Durante la autentificacin se prueban los dos mtodos: primero SPIP y posteriormente LDAP. De
hecho un autor LDAP no podr ser identificado por el mtodo SPIP (mtodo standard con challenge md5)
ya que el paso se deja vaco en la tabla spip autoras. Con respecto al autor SPIP la contrasea se trans-
mite en claro. Cuando un autor LDAP se conecta por primera vez su entrada se aade en la table spip

- Pgina 55 de 114 -
autoras. Los campos que se rellenan son: nombre, login y correo electrnico que vienen de LDAP (cam-
pos cn, uid y mail y el estatuto cuyo valor por defecto se define durante la instalacin redactor, adminis-
tradora o visitante. Importante: no se puede modificar el estatuto con el fin de elegir sus administrado-
res a mano por ejemplo, Una vez que la autora se ha conectado es autentificada por la va clsica, es
decir simplemente con el cookie de sesin. As solo se conecta a LDAP a partir del login
(spip_cookie.php3). Por otro lado, las informaciones que se tienen en cuenta en la publicacin y los
bucles son las de spip autoras y no las del anuario.
Para los autores SPIP no cambia nada. Pueden crearse y modificarse como de costumbre.

IV.3. Spip y las hojas de estilo
SPIP 1.2 Cuando se utilizan los atajos tipogrficos en los artculos con SPIP (permitiendo por ejemplo
poner en negrita, en cursiva, crear enlaces hipertexto, nterttulos, etc.) SPIP produce las balizas HTML
necesarias a tal efecto, cada una de estas balizas est asociada a una clase de estilo CSS.
Por ejemplo,
Esto es un [enlace->http://www.uzine.net]
ser transformado en cdigo HTML as:
Esto es un <a href="http://www.uzine.net" class="spip_out">enlace</a>
El cdigo HTML se completa as llamando a un estilo CSS llamado `shim_spipnet`.spip_out .
Quin lo use puede lograr por tanto la personalizacin de su interfaz grfica definiendo este estilo
`shim_spipnet`.spip_out (color diferente, fondo, etc.).
La mayora de los atajos tipogrficos de SPIP pueden as ser parametrizados con hojas de estilo; al-
gunos son muy tiles, otros se reservan a las webmisstres/webmasters que desean efectos exticos.
IV.3.1. Dnde se encuentra la definicin de hojas de estilo?
En la instalacin de SPIP con los esqueletos que se ofrecen en estndar, la definicin de las hojas de
estilo se encuentra en la carpeta donde est instalado SPIP, en el fichero:
spip_style.css
Puedes modificar los estilos (incluso es aconsejable), pero es preferible definir tu propio fichero de
hojas de estilo CSS para que tus aadidos no se pierdan cuando instales una versin nueva de SPIP.
Igualmente puedes integrar directamente las definiciones de estilos en los esqueletos.
Atencin: el concepto de hoja de estilo o cascading style sheets, no es una norma propia de SPIP, se
trata de un estndar de la Web. Existe numerosa documentacin sobre este tema en diversos sitios;
consultar por ejemplo la pgina del W3C.
Con el fin de seguir esta explicacin es altamente recomendable abrir el archivo spip_style.css
en un editor de textos.
IV.3.2. Los enlaces de hipertexto
Las dos primeras definiciones permiten modificar el comportamiento de a y a :hover ; muy
clsicas, se refieren a todos los sitios enlazados en la pgina Web (mostrar los enlaces sin subrayado y
arreglar el sobrevuelo de los enlaces de hipertexto).
Se encuentran a continuacin tres definiciones propias de los atajos tipogrficos de SPIP:
a.spip_in, a.spip_out, a.spip_url.
a.spip_in se refiere a los enlaces en el interior de tu propio sitio. Por ejemplo :
Esto es un [enlace interno->article1177]
a.spip_out se refiere a los enlaces exteriores de vuestro sitio. Por ejemplo :
Esto es un [enlace externo->http://www.uzine.net]
a.spip_url se refiere a las direcciones URL transformadas en enlace hipertexto. Por ejemplo :
[->http://www.uzine.net]
(este atajo muestra la URL, con un enlace hipertexto hacia esta direccin, as:
http://www.uzine.net).
El principal inters de estos tres estilos diferentes es el de permitir diferenciar de manera grfica los
enlaces internos en el sitio y los enlaces hacia otro sitio.
IV.3.3. Los interttulos
Los interttulos creados por el atajo siguiente :
{{{Un interttulo}}}

- Pgina 56 de 114 -
pueden ser definidos por el estilo h3.spip. Este estilo es sin duda uno de los ms tiles puesto que
permite definir el tamao, el cuerpo (police) y la posicin de los interttulos en los artculos: segn tu
eleccin grfica y tipogrfica es probable que tengas que modificarlo.
Por defecto, la definicin es :
h3.spip {
font-family: Verdana,Arial,Helvetica,sans-serif;
font-weight: bold;
font-size: 120%;
text-align: center;
margin-top: 2em;
margin-bottom: 1.5em;
padding: 0em;
}
Fjate en particular en los atributos margin y padding que permiten intervenir sobre el espaciado del
interttulo respecto a los prrafos anterior y siguiente. Sin estos reglajes, habra muchas posibilidades de
que el interttulo estuviese demasiado pegado al resto del texto, o bien demasiado separado (segn
los gustos...).
IV.3.4. Cdigo y tabla
Los elementos del cdigo definidos por el atajo :
<code>Cdigo en el texto</code>
son parmetrizados por el estilo .spip_code. Poco utilizado, salvo en casos de documentacin tcni-
ca (como sta) donde hay que poner trozos de cdigo informtico, nombres de ficheros o directorios...
Introducida en SPIP 1.3, la baliza <cadre>...</cadre> permite presentar cdigo fuente en una ta-
bla (elemento de formulario) en la cual es fcil copiar y pegar el texto.
La hoja de estilo asociada es: .spip_cadre, definido as por omisin:
.spip_cadre {
width: 100%;
background-color: #FFFFFF;
padding: 5px;
}
IV.3.5. Las notas a pie de pgina
Las notas a pie de pgina, definidas por el atajo :
El texto[[Una nota de pie de pgina]] se parmetrizan con el estilo p.spip_note. A menudo intil, ya
que las notas pueden ser modificadas directamente en HTML cuando empleas de la baliza #NOTES en
tus esqueletos.
IV.3.6. Las tablas
Las tablas son definidas en SPIP de la siguiente manera :
|{{Nombre}}|{{Fecha de nacimiento}}|{{Ciudad}}|
| Mara | 5/10/1970 | Buenos Aires |
| Juan Carlos | 12/2/1975 | Barcelona |
| Marta | 1/31/1957 | Roma |
| Manu | 23/12/1948 | Bilbao |
que queda como sigue:
Nombre Fecha de nacimiento Ciudad
Mara 5/10/1970 Buenos Aires
Juan Carlos 12/2/1975 Barcelona
Marta 1/31/1957 Roma
Manu 23/12/1948 Bilbao
Las hojas de estilo permiten parametrizar detalladamente como se cuelgan tales tablas :
table.spip {
}
table.spip tr.row_first {
background-color: #FCF4D0;
}
table.spip tr.row_odd {
background-color: #C0C0C0;
}
table.spip tr.row_even {

- Pgina 57 de 114 -
background-color: #F0F0F0;
}
table.spip td {
padding: 1px;
text-align: left;
vertical-align: center;
}
table.spip permite modificar el comportamiento general de la tabla (particularmente su posicin, a
la izquierda, centrada...);
table.spip tr.row_first define el comportamiento de la primera lnea de la tabla, en este caso en
amarillo (para que la primera lnea se tenga en cuenta es necesario que los elementos que con-
tiene se coloquen en negrita);
table.spip tr.row_odd para las lneas pares;
table.spip re.row_even para las lneas impares;
table.spip td permite modificar el comportamiento de las celdas de la tabla.
Uno de los intereses estriba en la eleccin de colores diferentes para row_odd y row_even,
permitiendo poder hacer una presentacin de colores alternados para las lneas de la tabla (en este caso
gris claro y gris oscuro).
IV.3.7. Lnea de separacin horizontal
Una lnea de separacin horizontal, definida por :
----
puede ser modificada por: hr.spip.
IV.3.8. Negrita e itlica
La negrita y la itlica son definidas por los atajos :
Texto {{en negrita}}, texte {en itlica}
Pueden ser modificadas por los estilos: b.spip y i.spip. Estilos poco tiles.
IV.3.9. Los prrafos
Los prrafos creados por SPIP (dejando lneas vacas entre los prrafos) pueden ser modificados por
el estilo: p.spip.
A priori, poco til, puesto que se puede definir directamente el comportamiento de los elementos de
texto en HTML.
IV.3.10. Los formularios
En el espacio pblico se utilizan diferentes formularios para el motor de bsqueda interno, la interfaz
de redaccin de mensajes de los foros, las inscripciones en el espacio privado.
Las hojas de estilo son: .forml, .spip_encadrer, .spip_bouton, .formrecherche.
Por omisin se definen as :
.forml { width: 100% ; background-color: #FFDDAA;}
.spip_encadrer { background-color: #EEEEEE; }
.spip_bouton { background-color: #FFCC00;}
.formrecherche { width: 100% ; background-color: #FFDDAA;}
.forml define las celdas de texto de los formularios; til para definir el tamao de estas celdas y
el color de fondo;
.spip_encadrer; cuando un formulario tiene diferentes partes, la separacin entre ellas puede
definirse con este estilo (por ejemplo, enmarcar cada parte, crear un espacio antes o despus...);
.spip_bouton modifica el aspecto del botn de validacin del formulario ;
.formrecherche modifica el aspecto de la celda Buscar del motor de bsqueda.
IV.3.11. Conclusin
Te dars cuenta de que, por omisin, algunos estilos no estn definidos en la hoja. Pueden conside-
rarse como muy accesorios (reservados a webmistress/webmasters que quieren obtener efectos grficos
muy especficos).
Como regla general, los estilos que causan modificaciones grficas espectaculares en un sitio, por
otro lado sencillos de parametrizar, son los que se refieren a:
Los enlaces del conjunto de la pgina, a y a:hover,
El comportamiento de los interttulos, h3.spip,
Los formularios.

- Pgina 58 de 114 -

IV.4. <INCLURE>: incluir otros esqueletos
[SPIP 1.4] Cuando hay elementos de texto y bucles comunes a varios esqueletos, es lgico querer
factorizar dichos elementos, es decir extraerlos de las pginas donde se encuentran, agruparlos en un
fichero separado y llamarlos desde los otros esqueletos. De esta manera se agrupa el cdigo comn en
un fichero nico, lo que facilita notablemente las modificaciones que conciernen varios esqueletos de una
sola vez.
Quienes estn acostumbrados a PHP (u otros lenguajes informticos) conocen la funcin include, cu-
yo principio es similar al que se presenta aqu para SPIP.
Con SPIP, se puede llamar a un esqueleto desde otro esqueleto con la baliza <INCLURE> (tambin
se puede utilizar <INCLUDE>, que es idntico). Su sintaxis completa es:
<INCLURE(fichero.php3){parametro1}{parametro2}...>
El fichero.php3 es le nombre del fichero que se quiere integrar en la pgina. Por ejemplo, ima-
ginemos que todas las pginas del sitio muestran la misma informacin abajo de la pgina. Se agrupa
entonces el cdigo HTML y SPIP de este pie de pgina en un fichero: pie.html, esqueleto que se
llama desde la pgina pie.php3 (siempre siguiendo el principio de de [parejas de ficheros destinados
a construir esqueletos SPIP-art93]). Basta integrar en cada uno de los esqueletos que llevan ese pie de
pgina el siguiente cdigo en el lugar deseado:
<INCLURE(pie.php3)>
Ciertas inclusiones pueden depender del contexto. Por ejemplo, imaginemos un esqueleto jerar-
quia(.html/php3), que muestre el camino de secciones que llevan desde la raz a un artculo; se
llamara a esta pgina por un URL de la forma: jerarquia.php3?id_rubrique=xxx.
En los esqueletos donde se quiera mostrar el camino desde la raz a cierta seccin (por ejemplo la
seccin actual de un artculo), hay que indicar que el parmetro correspondiente es {id_rubrique}. Si
fuera necesario, creamos un bucle en el que se genera contextualmente el nmero apropiado de seccin,
y se incorpora el siguiente cdigo 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 sec-
cin variable (segn el contexto, por ejemplo un parmetro pasado en la URL), sino en funcin de una
seccin cuyo nmero (identificador) se sabe de antemano. Para sto se puede fijar el valor del parme-
tro as:
<INCLURE(jerarquia.php3){id_rubrique=5}>
Nota. Es posible indicar varios parmetros en la baliza <INCLURE>; sin embargo, tal caso es
poco frecuente. En todo caso, dichas variables se acumulan por un Y lgico al igual que
cuando se los adjunta en la definicin de los bucles. Evita aadir parmetros intiles, que
harn la cach menos eficaz y tu sitio ms lento.
Nota. El fichero incluido es, a su vez, un esqueleto y, por lo tanto, dicho esqueleto tendr su
propio valor de $delais (plazo)
33
. Puede revelarse prctico para evitar actualizar elementos
complejos y pesados del sitio, que no cambian, y al contrario, actualizar otros elementos que
varan regularmente (por ejemplo, la sindicacin).
IV.4.1. En un contexto multilinge
Si est activado el multilingismo (vase cap. IV.5. Hacer un sitio multilinge) de SPIP, desde
SPIP 1.7.1 se puede definir un idioma de entorno para un esqueleto incluido, utilizando el parmetro
{lang}.
Si no se utiliza ningn parmetro, es decir bajo la forma <INCLURE(pie.php3)>, se llamar al es-
queleto 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 cdigo ISO del idioma deseado: en para el ingls, fr para el fran-
cs, vi para el vietnamita, etc. (ver cap. IV.6. Internacionalizar los esqueletos),
e <INCLURE(pie.php3){lang}> llama al esqueleto en el idioma actual del contexto de inclusin.

33
Recordemos que la variable $delais define el periodo de actualizacin de una pgina en la cach. Vase la seccin
"El fichero .php3 en Principio general.

- Pgina 59 de 114 -
Cabe notar que esto hace posible utilizar cdigos de archivos de idiomas en los esqueletos incluidos
(para mayores explicaciones sbre los archivos de idiomas, ver cap. IV.6. Internacionalizar los
esqueletos).
Adicionalmente, los esqueletos incluidos estn sujetos a las mismas tcnicas de seleccin 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 ms, ver cap. IV.6. Internacionalizar los esqueletos para ms
detalles.

IV.5. Hacer un sitio multilinge
La modificacin ms importante que introducir SPIP 1.7 es su gestin natural de sitios multilin-
ges. La totalidad de este artculo slo se aplica a partir de SPIP 1.7.
IV.5.1. Prembulo: Qu es un sitio multilinge ?
En este artculo no tendra sentido redactar un tutorial completo sobre los sitios multilinges: por un
lado, es cierto que existen diversos enfoques sobre lo que se llama multilingismo; por otra parte,
la definicin de el mejor mtodo es siempre algo personal.
Por eso a continuacin revisamos las diferentes herramientas que proporciona SPIP para gestionar si-
tios multilinges; queda en tu mano el usarlas, y su discusin en los espacios previstos para ello (wiki
[http://www.spip-contrib.net/spikini/index.php?wiki=MultiLinguisme], listas de discusin, etc.)
Pero, antes de seguir leyendo, deja un poco de lado tu proyecto actual, y piensa en las siguientes si-
tuaciones:
un sitio de poesas, clasificadas por temas (secciones);
un sitio de documentacin para, por ejemplo, un software libre como SPIP;
un sitio institucional en 25 idiomas ;
un sitio corporativo cataln bilinge;
el sitio de una asociacin blgara con algunas pginas en ingls para visitantes extranjeros.
El sitio de poesas elegir mas bien sus idiomas artculo por artculo; la documentacin de SPIP, por
su lado, los ventila por sectores (secciones de primer nivel), y muestra las traducciones disponibles
para cada artculo, cuando estn disponibles. El sitio institucional en 25 idiomas, sin duda no podr dis-
poner de 25 traducciones al mismo tiempo, pero intentar lo mismo conservar las ramificaciones en pa-
ralelo; el sitio corporativo bilinge tendr obligatoriamente una traduccin frente a cada artculo, y una
arborescencia de secciones en dos partes, siendo la parte en ingls una copia fiel de la parte en cataln;
la asociacin blgara adjudicar el ingls a un sector determinado de su sitio, quedando el resto de los
sectores en blgaro (por omisin).
IV.5.2. Principio
Para poder permitir estas diferentes situaciones, y varias ms, el modelo desarrollado por SPIP con-
siste en determinar un idioma para cada artculo, para cada seccin y para cada breve. En el espacio p-
blico, al igual que en el espacio privado, este idioma determina el modo de correccin tipogrfico que se
aplica a los textos; en el espacio pblico tambin determina el idioma de los elementos insertados por
SPIP para estos objetos: principalmente las fechas y los formularios.
Para crear un sitio multilinge con SPIP, primero hay que configurar el sitio en consecuencia: en la
Administracin del sitio, en la seccin Gestin de idiomas, por supuesto. Ah podrs activar la ges-
tin multilinge, y elegir los idiomas que utilizas para tu sitio.
IV.5.3. Configurar el espacio privado
Para manejar ms fcilmente el sitio, en la configuracin se puede elegir con qu nivel de precisin
se efecta la gestin de idiomas, lo que permite ocultar la interfaz donde no sea necesaria y as limitar
los riesgos de errores
34
. SPIP propone tres niveles de interfaz diferentes para escoger los idiomas que
afectan a los artculos (y breves, etc.); por orden de complejidad:
Por sector (seccin de primer nivel): a cada seccin de la raz del sitio corresponde un idioma modi-
ficable por los administradores, que afecta a todas las subsecciones y todos los artculos y breves que
contienen; este reglaje debera satisfacer las necesidades de la mayora de sitios multilinges, mante-
niendo una estructura y una interfaz sencillas.
Por secciones: con este reglaje se puede cambiar, de manera ms precisa, el idioma para cada una
de las secciones del sitio, no slo las de primer nivel.

34
Cabe mencionar que en la configuracin original de la distribucin, SPIP queda monolinge, para no perturbar la i n-
terfaz ms de lo que fuera necesario.

- Pgina 60 de 114 -
Por artculos: el idioma puede ser modificado a nivel de cada artculo: esta eleccin es compatible
con las precedentes (se puede por ejemplo elegir el idioma por seccin, pero aplicar excepciones por
aqu y por all a ciertos artculos) y permitir toda la precisin imaginable; pero ten cuidado para que
la estructura de tu sitio no termine siendo incomprensible...
IV.5.4. Bloques multilinges
[SPIP 1.7.2] Ciertos objetos, como los autores o las palabras clave, pueden escribirse de distintas
formas segn pertenezcan a un artculo en un idioma o en otro. Sin embargo, sera absurdo de concebir
la traduccin de una palabra clave o traduccin de un autor, porque es el propio autor quien firma
ambos artculos, o la propia palabra clave (es el mismo concepto) el que se adjudica. Por eso, estos
objetos no tienen idioma en el sentido de SPIP, pero igualmente es posible, con ayuda de los bloques
multi, hacer que se muestren en el idioma del contexto en el cual se les invoca (dicho ms sencillamen-
te: hacer que la palabra clave Irak se muestre como Iraq cuando afecte un artculo en ingls).
El bloque multi es un nuevo atajo de SPIP, cuya estructura es relativamente intuitiva:
<multi>cadena 1 [xx] cadena 2 [yy] cadena 3 ...</multi>
Retomando el ejemplo de la palabra clave, su ttulo se escribira de esta forma :
<multi>[fr]Irak [en]Iraq</multi>
Si se llama a un bloque multi para ser publicado en un idioma que no est previsto, Siempre se
muestra la primera parte del bloque (cadena 1 en el primer ejemplo, Irak en el segundo). Esto es
para no tener nunca un campo vaco
35
.
NB: los bloques multi tambin se pueden usar dentro de los esqueletos, segn la misma estruc-
tura, cf. cap. IV.6. Internacionalizar los esqueletos.
IV.5.5. Bucles y balizas: cmo hacer?
Una vez el espacio privado arregladito con sal y pimienta, pasemos al sitio pblico. Y s, aunque cada
artculo disponga de su propio idioma juiciosamente elegido (segn el mecanismo anteriormente expli-
cado), los esqueletos deben poder tenerlo en cuenta al visualizar el sitio.
1. Para empezar, una buena noticia: lo esencial del multilingismo de los esqueletos es totalmen-
te natural; no es necesario hacer distintos esqueletos para mostrar artculos en distintos idiomas. El
mismo esqueleto adapta automticamente su presentacin a la lengua actual
Esto quiere decir que todos los elementos colgados alrededor y dentro de un artculo en un idioma
dado, sern visualizados en dicho idioma. As es, tanto para la fecha de publicacin del artculo, como
para el formulario de respuesta al foro del artculo. De manera ms general: cualquier baliza SPIP inclui-
da en un bucle ARTICLES ser visualizada en el idioma del artculo.
Por ejemplo, si la portada de un sitio contiene un sumario de los 10 ltimos artculos publicados y de
su fecha de publicacin, la fecha de los artculos en vietnamita estar en vietnamita, la de los articulos
en creol de la Runion estar en creol de la Runion, etc
Nota: este funcionamiento supone que el idioma del artculo fue traducido en SPIP. As, si un
artculo est en volapuk, pero que tu versin de SPIP an no est traducida al volapuk (por
supuesto te invitamos a corregir esta carencia participando en el esfuerzo de traduccin
[http://www.spip.net/rubrique4.html], la fecha de los artculos ser visualizada, por cierto
en letras, pero en el idioma principal del sitio.
2. El sentido de la escritura
Si tu sitio contiene idiomas que se escriben de izquierda a derecha (la mayora de los idiomas) pero
tambin lenguas que se escriben de derecha a izquierda (en particular el rabe, el hebreo o el farsi), pe-
queos complementos al cdigo HTML sern necesarios para que la visualizacin se haga sin inciden-
tes
36
.
A tal efecto, SPIP ofrece una baliza especfica: #LANG_DIR, que define el sentido del idioma en cur-
so. Esta baliza se puede usar como valor del atributo dir en la mayora de las etiquetas HTML [lo que nos
da ltr para los idiomas que se escriben de izquierda a derecha y rtl para los otros
37
).
As, un bucle de visualizacin del sumario se convierte en :
<BOUCLE_sumario(ARTICLES){par date}{inverse}{0,10}>
<li dir="#LANG_DIR">[(#DATE|affdate)]:
<a href="#URL_ARTICLE">#TITRE</a></li>

35
Si, por el contrario se quiere ver un campo vaco, es necesario crear explcitamente una primera par te vaca con un
nombre de cualquier idioma.
36
Tericamente el HTML debera arreglar todos esos detalles automticamente, pero el resultado no siempre es como
esperado, sobre todo al cambiar de lnea o si se mezclan idiomas que utilizan sentidos de escritur a diferentes.
37
Desgraciadamente, las instancias de normalizacin parecen ignorar por el momento el bustrofedn, lo que impide su
utilizacin en HTML.


- Pgina 61 de 114 -
</BOUCLE_sumario>
Si la paginacin reposa en elementos alineados a la derecha o a la izquierda, sin duda se los deber
invertir para los idiomas escritos de la derecha a la izquierda: la primer idea es de remplazar todos
38
los
elementos de esqueleto marcados left o right por las balizas #LANG_LEFT y #LANG_RIGHT. Respecto
a la definicin de la pgina en si, parece razonable empezar por dar el idioma del elemento solicitado y
la direccin general de la pgina:
<html lang="#LANG">
<body dir="#LANG_DIR">
...
</body>
</html>
3. Los enlaces de traduccin
SPIP propone un sistema de traduccin entre artculos: se puede especificar cuales son las diferentes
traducciones de un artculo (nota: dichas traducciones son, a su vez, artculos en s). El criterio {traduc-
tion} permite, en un bucle ARTICLES, recuperar todas las versiones de un mismo artculo.
Por ejemplo, para mostrar todas las traducciones del articulo en curso:
<BOUCLE_traducciones(ARTICLES){traduction}{exclus}>
[<a href="#URL_ARTICLE" dir="#LANG_DIR">(#LANG|traduire_nom_langue)</a>]
</BOUCLE_traducciones>
Notemos el uso del criterio {exclus}, que permite no mostrar la versin en curso de visualizacin, y
el filtro {traduire_nom_langue}
39
que devuelve el nombre completo del idioma a partir de su cdigo
informtico (esto permite escribir en pantalla franais en vez de fr, English en vez de en...).
Un criterio complementario {origine_traduction}
40
(para los puristas) permite seleccionar nicamen-
te la versin original del artculo actual.
Una pgina del wiki de spip-contrib reune ejemplos de bucles que utilizan estos criterios:
http://www.spip-contrib.net/spikini...
4. Elementos suplementarios
[SPIP 1.7.2] introdujo otros elementos que permiten crear sitios multilinges:
el criterio {lang_select} sirve para forzar la seleccin del idioma para el bucle (AUTEURS), que
normalmente no lo hace (a la inversa, el criterio {lang_select=non} permite decirles a los bucles
(ARTICLES), (RUBRIQUES) o (BREVES) que no seleccionen el idioma).
la variable de personalizacin $forcer_lang indica a SPIP que debe comprobar si el visitante dispo-
ne de una cookie de idioma, y en caso afirmativo reenviarle hacia la pgina correspondiente. Esto es
lo que hace la pgina de conexin al espacio privado que viene como estndar con SPIP.
las balizas #MENU_LANG (y #MENU_LANG_ECRIRE) presentan un men de idioma que permite
al visitante elegir esta pgina en.... La primera baliza muestra la lista de los idiomas del sitio; la
segunda, la lista de los idiomas del espacio privado (se usa en la pgina de conexin al espacio
privado).
por fin, los criterios opcionales (cf. SPIP 1.7, 1.7.2) permiten utilizar un mismo bucle (de hecho,
un mismo esqueleto) para mostrar todos los artculos del sitio en todas las lenguas, o bien slo los
artculos en el idioma pasado en la URL. Esto puede ser til en los backend, por ejemplo, o en los
bucles de bsqueda :
<BOUCLE_recents(ARTICLES){lang?}{par date}{inverse}{0,10}>
<BOUCLE_recherche(ARTICLES){lang?}{recherche}{parpoints}{inverse}{0,10}>
IV.5.6. Esqueletos internacionales para un sitio masivamente multilinge
Lo que precede nos permite hacer multilinge la parte especficamente SPIP de nuestro esqueleto:
todo lo que sale de los bucles SPIP aparece en el sentido correcto, con la buena tipografa, y los elemen-
tos producidos por SPIP (formularios, fechas...) estn en el idioma solicitado.
Para un sitio que presenta un nmero modesto de idiomas (bilinge, por ejemplo), o para el cual
existe un idioma principal y algunos idiomas anexos, podramos parar aqu. Los textos escritos a fue-
go en los esqueletos, es decir las menciones escritas directamente en el HTML como Mapa del sitio,
espacio de redaccin, Responder a este mensaje... pueden, en ciertos casos, quedar en un solo
idioma, y en otros -como el de un sitio bilinge- ser resueltos utilizando esqueletos diferentes para cada
idioma.
Sin embargo, si quieres realizar y administrar eficazmente un sitio con numerosos idiomas plena-
mente representados, sera ilusorio mantener esqueletos separados, o imponer una navegacin en un
idioma nico (incluso el esperanto o el ingls...). Para realizar un juego de esqueletos que funcione en

38
Todos o casi todos, t sabrs si tu paginacin tiene peculiaridades que prefieres conservar.
39
traducir_nombre_idioma
40
origen_traduccin

- Pgina 62 de 114 -
todos los idiomas, hay que internacionalizar los esqueletos para modificar los textos, independientemen-
te del cdigo HTML que los contiene (el cual, por su lado, no se mueve de un idioma a otro). Esta tarea,
para la cual es necesario poner las manos en la masa, es el objeto de un artculo de documentacin
separado (vase cap. IV.6. Internacionalizar los esqueletos).
IV.5.7. Detalles anexos
Los atajos tipogrficos <code> y <cadre> siempre producen un texto escrito de izquierda a dere-
cha, aunque el idioma del artculo se escriba normalmente de derecha a izquierda. Por cierto, estos dos
atajos estn principalmente destinados a mostrar cdigo o datos informticos, que casi siempre se escri-
ben de izquierda a derecha (y usando el alfabeto latino).
Siempre respecto al sentido de la escritura, notemos que los atributos left y right del HTML tambin
estn presentes a menudo en las hojas de estilo. Esto significa que tendrs que incluir la parte corres-
pondiente de la hoja de estilo en tus esqueletos (para utilizar las balizas #LANG_LEFT y
#LANG_RIGHT) en vez de ponerlas en un fichero separado.
He aqu un resumen de las balizas SPIP ligadas al sentido de la escritura:
Idioma #LANG_LEFT #LANG_RIGHT #LANG_DIR
idiomas escritos de izquierda a derecha left right ltr
rabe, farsi, hebreo... right left rtl

IV.6. Internacionalizar los esqueletos
Todas las funcionalidades abordadas en este artculo estn disponibles a partir de SPIP 1.7.
IV.6.1. Por qu crear esqueletos multilinges?
Al poner documentos en lnea, SPIP adapta ciertas informaciones automticas al idioma apropiado.
En particular las fechas aparecen en el idioma del sitio, de un artculo o de una seccin. Los formularios
tambin aparecen en el idioma correspondiente (por ejemplo la interfaz para publicar un mensaje en los
foros). Todo eso, ya lo traduce SPIP.
Sin embargo no alcanza: los/las webmaster/webmistress suelen agregar a los esqueletos ciertas in-
formaciones, en particular las que describen la navegacin en el sitio. Puede ser necesario, por ejemplo,
disponer ciertos textos como Mapa del sitio, Responder a este artculo, Artculos de la misma auto-
ra o autor, En la misma seccin... Para un sitio en un solo idioma, es fcil incorporar estos elemen-
tos: se los inserta a fuego en el cdigo HTML de los esqueletos. El problema surge cuando el sitio es
multilinge: bajo un artculo en espaol, uno querr agregar Responder a este artculo, pero bajo un
artculo en francs se espera leer Rpondre cet article.
[SPIP 1.7.2] propone tres mtodos para manejar estos elementos de texto segn el idioma:
(1) un mtodo que consiste en conservar los elementos de textos de los esqueletos en ficheros de
idioma (un fichero por cada idioma utilizado en el sitio), separados de los esqueletos; siendo un
mismo esqueleto (por ejemplo article.html) el cual llama, usando cdigos definidos por el/la
webmaster/webmistress, estos elementos de texto segn el idioma utilizado. De esta manera, un
esqueleto nico article.html mostrar automaticamente el texto Rpondre cet article o Com-
ment on this document en funcin del idioma del artculo (francs o ingls). Se aconseja vivaman-
te este mtodo, pues ofrece mas flexibilidad, facilita la actualizacin del sitio (se trabaja con un solo
esqueleto que maneja automticamente varios idiomas) y hay herramientas que a mediano plazo
sern integradas a SPIP, que facilitan el trabajo colectivo de traduccin de la interfaz del sitio (va-
rios administradores, que dominan idiomas diferentes, podrn traducir la interfaz desde el espacio
privado, sin tener que intervenir en los ficheros de esqueletos);
(2) un mtodo ms rpidamente accesible y tcnicamente simple, que se basa en la creacin de fi-
cheros de esqueletos diferentes para cada idioma. En ste mtodo, se fabrica un fichero article.html
para manejar los artculos en el idioma principal del sitio, y un fichero article.en.html para los artcu-
los en ingls (nota: en realidad, article.html se aplica a todas las lenguas que no tienen un esque-
leto explicitamente definido). Este metodo se adapta a la creacin rpida y simple de sitios que
comprenden pocos idiomas diferentes y con una estructura no muy compleja, pero se la desaconse-
ja si el sitio utiliza varios idiomas y/o si se utilizan esqueletos diferentes segn la seccin.
(3) el mtodo de los bloques multilinges, introducido por [SPIP 1.7.2], funciona igual de bien
con los contenidos y con los esqueletos. Basta con introducir en el esqueleto la siguiente construc-
cin:
<multi>
[fr] Rpondre cet article
[en] Comment on this article
</multi>
y se mostrar la frase en el idioma deseado. Si bien este sistema es muy flexible, an tiene limita-
ciones cuando el nmero de idiomas es grande, y porque es necesario que distintos traductores ac-

- Pgina 63 de 114 -
ten sobre el sitio (se necesita que puedan modificar el esqueleto, lo que se puede evitar con el m-
todo de los ficheros de idioma).
IV.6.2. Mtodo de ficheros de idioma
El principo de los ficheros de idioma consiste en insertar en un esqueleto nico un cdigo, que co-
rresponder en cada idioma a un elemento de texto (una cadena); de un idioma a otro el cdigo no
vara, pero al texto correspondiente se lo traduce.
Por ejemplo, se puede decidir que el cdigo telechargement corresponde:
en francs, a la cadena tlcharger ce fichier,
en ingls, a la cadena download this file,
en espaol, a la cadena
41
descargar este archivo,
etc.
En el fichero de esqueleto de los artculos (un slo fichero para manejar todos los idiomas), arti-
cle.html, alcanza con insertar el cdigo (anota la sntaxis):
<:telechargement:>
Al visualizar un artculo, este cdigo ser remplazado por su traduccin en el idioma del artculo.
Por ejemplo; en el esqueleto article.html, insertamos en el bucle que cuelga los documentos asocia-
dos al artculo, el cdigo siguiente:
<a href="#URL_DOCUMENT"><:telechargement:></a>
Si el artculo en cuestin est en espaol, producir:
<a href="/IMG/jpg/midocumento.pdf">descargar este archivo</a>
si est en ingls:
<a href="/IMG/jpg/midocumento.pdf">download this file</a>
y as succesivamente. Un esqueleto nico, que contiene cierto cdigo, cuelga un texto traducido en
cualquiera de los idiomas utilizados en el sitio.
Utilizar textos que ya estn traducidos
Para facilitar el trabajo de los/las webmasters/webmistress, SPIP brinda un conjunto de cadenas ya
traducidas (por los traductores de SPIP). Utilizando estas cadenas, que corresponden a elementos de
textos frecuentemente utilizados en los sitios Web, el/la webmaster/webmistress puede rpidamente
realizar una interfaz que funcionar en diferentes idiomas, incluso aquellas que l o ella misma no habla.
Puedes listar las cadenas disponibles desde el espacio privado: entra en la seccin Gestin de idio-
mas de Administracin del sitio, y luego pulsa sobre la pestaa Ficheros de idioma. Copia los cdi-
gos elegidos para realizar los esqueletos.


41
NdT: en Latinoamrica se suele hablar de archivo y en Espaa de fichero para lo que los anglfonos llaman f i-
le y los francfonos fichier. En la documentacin de SPIP hablamos de fichero, porque as empezamos, pero pon-
gamos de vez en cuando un archivo.

- Pgina 64 de 114 -
Les fichiers de langue dans l'espace priv
Ejemplo: un/a webmaster/webmistress quiere realizar la interfaz para un sitio en francs, en
espaol y en rabe, pero l mismo no habla ni rabe ni francs. Insertando en los esqueletos
los cdigos que vienen con SPIP no debe preocuparse en obtener las traducciones al francs
o al rabe, pues stas ya fueron hechas inicialmente por los traductiores de SPIP; as, al di-
sear su interfaz en espaol con los cdigos que vienen con SPIP sabe de antemano que es-
tas pginas aparecern adecuadamente en francs y en rabe cuando uno de los redactores
del sitio escriban un arculo en estos idiomas.
Si, ulteriormente, se agregan artculos en polaco, aparecern inmediatamente con los elementos
de texto traducidos al polaco, sin que el diseador deba intervenir de nuevo.
Otra ventaja de este metodo: facilita la cracin de esqueletos para compartir inmediatamente
multilinges. Esqueletos realizados con este metodo sern inmediatamente utilizables en
cualquiera de los idiomas en los que se traduzca SPIP.
De un punto de vista tcnico, los elementos de texto que vienen en la distribucin estndar de SPIP
se almacenan en los archivos de idioma public:
/ecrire/lang/public_fr.php3 contiene las cadenas en francs,
/ecrire/lang/public_es.php3 en espaol,
etc.
Crear uno mismo sus prpios cdigos
Es posible crear uno mismo sus propios cdigos, que correspondan a cadenas que se desea agregar.
Alcanza para esto con crear ficheros de idioma personales, a partir del modelo de los ficheros pu-
blic.... Para crear tus propios ficheros, instala, en la carpeta
/ecrire/lang<code>:
-- <code>local_es.php3
para definir las cadenas en espaol,
local_en.php3 en ingls,
...
Por ejemplo, podrs crear las cadenas siguientes:
telechargement para visualizar en espaol Bajar la ltima versin, en francs Tlcharger la
dernire version, ...
quehaydenuevo para visualizar Modificaciones recientes.
Con ste mtodo, insertando en los esqueletos los cdigos <:telechargement:> y
<:quehaydenuevo:>, luego se visualizarn con las traducciones correspondientes, tal como se han de-
finido en los ficheros local_...php3.
Cabe notar que los cdigos son arbitrarios: los eliges t mismo. Por supuesto, se recomienda
elegir cdigos que sean fciles de recordar (textos explcitos en vez de nmeros, por ejem-
plo). Como suele suceder con los cdigos informticos, es conveniente limitar los caracteres
utilizados al alfabeto latino, y sin acentos...
Los ficheros de idioma contienen las diferentes traducciones de los cdigos que utilizars; son fiche-
ros PHP que contienen cada uno un cuadro (table) que asocia los cdigos a las cadenas de texto corres-
pondiente en cada idioma.
Contendrn, por ejemplo:
Versin espaola:
<?php
$GLOBALS[$GLOBALS['idx_lang']] = array(
'telechargement' => 'Descargar la uacute;ltima versi&oacute;n',
'quehaydenuevo' => 'Modificaciones recientes'
);
?>
Versin francesa :
<?php
$GLOBALS[$GLOBALS['idx_lang']] = array(
'telechargement' => 'T&eacute;l&eacute;charger la derni&egrave;re version',
'quehaydenuevo' => 'Modifications r&eacute;centes'
);
?>
Versin catalana :
<?php
$GLOBALS[$GLOBALS['idx_lang']] = array(
'telechargement' => 'Descarregar la darrera versi&oacute;',

- Pgina 65 de 114 -
'quehaydenuevo' => 'Modificacions recents'
);
?>
La construccin es la siguiente:
al principio del fichero:
<?php
$GLOBALS[$GLOBALS['idx_lang']] = array(
al final del fichero:
);
?>
la parte que hay que enriquecer uno mismo consiste en varias lneas de definiciones, que siguen el
modelo:
'codigo' => 'La cadena de texto para visualizar',
OJO: Cada lnea de definicin se termina por un punto y coma, excepto la ltima.
OJO-2: Se debe transcribir el texto de la cadena por traducir en cdigos HTML (los caracteres
acentuados, por ejemplo, se convierten en su equivalente HTML, de tipo &eacute;).
Las apstrofes al interior de la cadena se deben escapar, es decir que se las debe preceder de
una barra invertida (antislash). Por ejemplo en francs, la cadena sur linternet debe ser
escrita: sur l\'internet.
Nota: a medio plazo, esta previsto incluir en SPIP una herramienta que permita crear y mane-
jar sus propios ficheros de idioma, sin tener que modificar a mano ficheros PHP. Tal
herramienta facilitar no slo la utilizacin de caracteres especiales (letras acentuadas, ca-
racteres de alfabetos no occidentales, escapes de apstrofes...), sino tambin la colaboracin
de varias personas en el proceso de traduccin de la interface del sitio pblico.
Por el momento, la herramienta que permite manejar la traduccin de dichas cadenas no se distribu-
ye con SPIP, y su utilizacin muy generalista (la utilizamos para traducir toda la interfaz de SPIP
[http://www.spip.net/rubrique4.html], y no slo los archivos de idioma de tipo local...php3) la hace
un poco compleja para esta tarea. Este programa, trad_lang, que nos sirve para traducir el software
SPIP, la ayuda en lnea, la interfaz del sitio spip.net, etc., tambin est disponible bajo licencia
GNU/GPL, pero no est integrado en estndar a SPIP. Puedes bajarlo, para usarlo en tu sitio o para otros
pryectos. Si lo mejoras o si tienes ideas para transformarlo, ven a charlar del asunto a la lista de traduc-
tores de SPIP spip-trad.
IV.6.3. Esqueletos separados para cada idioma
El segundo mtodo, ms accesible a los/las webmasters/webmistress principiantes, consiste en crear
esqueletos diferentes para cada idioma. Ms o menos de la misma manera que se crean esqueletos es-
pecficos para diferentes secciones
42
para obtener interfaces grficas diferentes.
Si queremos realizar un sitio en espaol (lengua principal), en francs y en ingls. Construmos tres
ficheros de esqueleto diferentes:
article.html para el espaol (en realidad, para todos los idiomas que no tienen un fichero de lengua
especfico),
article.en.html para el ingls,
article.fr.html para el francs.
(Nota: si se publica un artculo en alemn, y no existe ningn esqueleto article.de.html en el sitio,
SPIP utilizar el esqueleto article.html.)
Importante: Para que los esqueletos por idioma, definidos agregando un cdigo .lang al final
del nombre, sean tomados en cuenta, debe obligatoriamente existir en el sitio una versin
por omisin del esqueleto (es decir con el mismo nombre, pero sin la extensin de len-
gua).
En nuestro ejemplo, si article.html no existiera (y en vez de eso se prefiri crear un arti-
cle.es.html), no se tomaran en cuenta los ficheros en ingls y en francs.
Se pueden combinar estas extensiones de lengua con la nomenclatura por secciones en cuyo caso
SPIP tomar en cuenta el siguiente rden, suponiendo que la seccin nmero 8 est dentro de la seccin
2:
article=8.es.html (el esqueleto para los artculos en espaol de la seccin 8, pero no sus sub-
secciones),
article=8.html (el esqueleto para la seccin pero no sus sub-secciones),
article-2.es.html (el esqueleto para los artculos en espaol de la seccin 2 y sus sub-secciones),
article-2.html (el esqueleto para los artculos de la seccin 2 y sus sub-secciones),

42
Ver el prrafo Una interfaz diferente en el mismo sitio, en este articulo del manual de refere ncia.

- Pgina 66 de 114 -
article.es.html (el esqueleto para los artculos en espaol),
article.html (el esqueleto para los artculos),
article-dist.html (el esqueleto para los artculos que se distribuye con SPIP).
Nota: salvo algunas excepciones, hay que utilizar aqu lso cdigos de lengua en dos letras nor-
malizados por la ISO, como es, para el espaol. Se peude consultar la lista enla Biblioteca
del Congreso de los Estados Unidos [http://www.loc.gov/standards/iso639-
2/langcodes.html] (oh s!). Para asegurar la mxima compatibilidad, hay que utilizar los
cdigos ISO de dos letras (iso 639-1), si existen, y para una designacin ms especializa-
da de un idioma dentro de su familia lingstica los cdigos ISO de tres letras (iso 639-2
T). Por ejemplo, el alemn se designar como de. Pero la ISO slo tiene en cuenta 182
idiomas de entre 5.000 a 7.000 que se hablan en el mundo; para los idiomas an no catalo-
gados puede servir de guia el catlogo propuesto por el sitio ethnologue.com; para saber
ms, nete a la lista spip-trad.
Simplificarse la vida. Uno de los mtodos muy simples que autoriza SPIP para manejar un si-
tio multilinge consiste en asociar directamente los idiomas a las secciones (y no artculo por
artculo) De esta manera, en el caso en que los artculos de un mismo idioma se agrupan en
una misma seccin (o incluso en un mismo sector), uno puede contentarse con crear los es-
queletos especficos por seccin, sin utilizar los nombres especficos por idiomas, salvo even-
tualmente para la portada (esqueleto sommaire.html).
De esta manera, si todos los artculos en espaol estn agrupados en la sessin 8 (y sus sub-
secciones), uno puede contentarse con llamar rubrique-8.html el fichero adaptado al espa-
ol, y no rubrique.es.html.
Se adivinan los problemas que se pueden plantear con este mtodo:
el fichero article-2.html debe existir si se quiere que article-2.es.html pueda seleccionarse;
no se puede decidir, a la inversa, que se use article.es.html en vez de article-2.html si article-
2.es.html no existe: la seleccin por secciones siempre tiene prioridad respecto a la seleccin por
idiomas;
una correccin de paginacin en un esqueleto implica de hacer la misma correccin en las otras ver-
siones
43
;
es necesario poder insertar uno mismo elementos de texto en los ficheros de esqueletos, an cuan-
do no entendemos el idioma (imagnate haciendo esqueletos en rabe, cuando uno habla un poco el
espaol del sur (ch, vos..), y entiende apenas el cataln...).
Por eso, este mtodo est destinado a trabajar rpidamente sobre sitios poco complejos (con pocos o
sin esqueletos especficos a ciertas secciones) y/o que llevan pocos idiomas diferentes. En cuanto tu
proyecto multilinge se haga algo ambicioso, se aconseja vivamente trabaja con el mtodo de ficheros
de lengua.
IV.6.4. Los bloques multilinges
Los bloques multi, definidos en el cap. IV.5. Hacer un sitio multilinge funcionan igual de bien en
el texto de los autores o las palabras clave como en los esqueletos. Cuidado, estos bloques slo manejan
texto, no los bucles de SPIP!
Para manejar rpidamente un sitio multilnge es, sin duda, el mejor mtodo al principio, accesible y
eficaz a la vez; despus, una vez estabilizado el sitio, si se necesita optimizar los esqueletos (por ejem-
plo, para abrirlos a ms idiomas; o para distribuirlos en forma de contribucin [http://www.spip-
contrib.net/]; o incluso para profesionalizarlos), habr que transformar los bloques multi en ficheros
de idioma.

IV.7. Utilizar URLs personalizadas
Por omisin, las pginas generadas por SPIP utilizan direcciones relativas parecidas a: arti-
cle.php3?id_article=123, dando URLs del tipo http://www.minirezo.net/article.php3?id_article=123.
Este tipo de sintaxis producidas en los sitios "dinmicos" no son muy atractivas ni evocadoras. Existe la
posibilidad de tener direcciones ms a gusto -por ejemplo articulo123.html- y SPIP en parte puede
ayudarte en esta tarea.
Esta funcionalidad implica la distincin entre dos tipos de URLs:
La URL aparente de una pgina, es decir tal como est escrita y/o publicada en la barra de direccin
de un navegador. Por ejemplo http://www.uzine.net/article765.html. Son estas URLs las que se in-
tenta hacer ms "atractivas" o ms "significativas";

43
Este problema se puede disminuir (pero no eliminar) utilizando la inclusin de esqueletos (vase cap. IV.4. <IN-
CLURE> : incluir otros esqueletos).

- Pgina 67 de 114 -
La URL real de la pgina, es decir la URL que es "vista" por SPIP cuando la pgina es calculada en el
servidor. Por ejemplo http://www.uzine.net/article.php3?id_article=765; en general esta URL puede
escribirse tambin directamente en el navegador (puedes verificarlo).
IV.7.1. Elegir el tipo de URLs aparentes
El fichero inc-urls.php3 en la raiz de SPIP contiene la declaracin de una variable PHP que contiene
el tipo de URLs a utilizar. Por defecto:
$type_urls = "standard";
Esta variable determina el nombre del fichero PHP que es llamado para gestionar las URLs. Con la
declaracin por defecto planteada a continuacin es inc-urls-standard.php3. Puedes ver que existe
tambin un fichero inc-urls-html.php3. Permite tratar las direcciones del tipo de las hemos tomado por
ejemplo(article123.html). Puedes pues decidir utilizar este fichero en vez del fichero "estandard"
reemplazando la lnea citada por la siguiente:
$type_urls = "html";
Si quieres utilizar tus propias direcciones (para ello debes saber programar en PHP), es especialmen-
te aconsejable partir de uno de los ficheros existentes y recopiarla bajo el nombre que habrs elegido:
inc-urls-XXX.php3. Veamos ahora los diferentes tipos de modificaciones a aportar.
IV.7.2. Programar la traduccin de las direcciones aparentes en direccio-
nes reales
Para que la direccin article123.html haga un llamamiento en realidad al fichero PHP article.php3
con, como parmetro id_article=123, va a ser necesario configurar el servidor Web que alberga tu siti-
to, sea en un fichero .htaccess (esto no funciona siempre), sea en el fichero de configuracin central
del servidor si tienes acceso a l. Se utiliza para ello, bajo el servidor Apache (el ms utilizado) lo que se
denomina Rewrite Rules: reglas de reescritura de direcciones Web.
Saber escribir estas reglas no es sencillo para quien no sepa programar y no podemos dar soluciones
infalibres puesto que depende de tu configuracin: esta parte se encuentra completamente en tus ma-
nos (o en manos de quien albergue tu Web).
Sin embargo y a modo de ejemplo, he aqu las reglas utilizadas en el sitio de uZine:
RewriteEngine on
# urls spip
RewriteRule ^/rubrique([0-9]+)\.html$ /rubrique.php3?id_rubrique=$1 [QSA,L]
RewriteRule ^/article([0-9]+)\.html$ /article.php3?id_article=$1 [QSA,L]
RewriteRule ^/breve([0-9]+)\.html$ /breve.php3?id_breve=$1 [QSA,L]
RewriteRule ^/secteur([0-9]+)\.html$ /secteur.php3?id_rubrique=$1 [QSA,L]
(Nota si escribes tus propias reglas: utiliza siempre la opcin [QSA] ya que la direccin puede pre-
sentar parmetros suplementarios -como los se plantean al pinchar sobre el botn actualizar, que se
presenta si colocas la cookie de administracin; la opcin [L] significa, por su parte, que la reescritura se
para all si la regla es aplicada: Last)
Se aconseja testar la validez de estas direcciones (probndolas en tu navegador) despus de grabar
la configuracin correspondiente, puesto que de lo contrario, los siguientes pasos no servirn de nada.
IV.7.3. Generar las URLs aparentes en las pginas SPIP
SPIP incorpora una funcionalidad permitiendo generar automticamente las URLs del tipo que habrs
elegido, en el interior mismo de las pginas calculadas por SPIP. As, los enlaces hacia los artculos seran
por ejemplo generados bajo la forma article123.html.
Los ficheros inc-urls-XXX.php3 estan all para ello. Si has decidido crear el tuyo propio, va a ser
necesario que tu misma/o programes la generacin de las URLs. Sino est ya hecho. Descubrirs que
cierto nmero de funciones PHP estan definidas, en el fichero, bajo el nombre generer_url_type
d'objet (por ejemplo generer_url_article). El rol destas funciones debera serte evidente por poco que
entiendas un mnimo el PHP. Es cuestin tuya modificarlas a tu gusto. A ttulo de ejemplo, puedes entrar
en el fichero inc-urls de Le Monde diplo. En todo caso no olvides modificar el tipo elegido en el interior de
inc-urls.php3.
Finalmente, en tus esqueletos, verifica que para calcular los enlaces en el interior de los bucles, utili-
zas siempre los recursos #URL_ARTICLE, #URL_RUBRIQUE, #URL_BREVE, etc. Son en efecto ellos
quienes desencadenan las funciones evocadas aqu permitiendo la generacin des "buenas" URLs.

IV.8. El motor de bsqueda
SPIP integra un motor de bsqueda desactivado por defecto. Cuando se activa este motor, desde la
pgina de configuracin, por alguna persona con rango de administradora, permite efectuar bsquedas

- Pgina 68 de 114 -
sobre diferentes tipos de informacin presente en la base de datos: artculos, secciones, breves, pala-
bras clave y autores/as. Desde SPIP 1.7.1 se indexan, igualmente, los hilos de discusin de los foros
(threads) y las firmas de las peticiones.
IV.8.1. Principio
Existen principalmente dos maneras para hacer un motor de bsqueda. La primera es buscar simple
y directamente en la informacin tal cual est almacenada (ficheros HTML, base de datos,... segn el ti-
po de sitio) Dicho mtodo es muy lento, ya que el tipo de almacenamiento no est especficamente pre-
visto para ello.
El segundo mtodo que fue elegido para SPIP (y que es tambin el de todos los motores de bsque-
da profesionales), consiste en establecer un modo de almacenamiento especfico a las necesidades de la
bsqueda. Por ejemplo, se puede guardar directamente la puntuacin de cada palabra de un artculo con
el fin de que se recupere fcilmente, y as obtener la puntuacin total de una bsqueda mediante una
simple suma. La ventaja es que la bsqueda es muy rpida: casi tan rpida que como cualquier otro cl-
culo de pgina. El inconveniente es que se hace necesaria una fase de construccin y de almacenamien-
to de dicha puntuacin: esto se denomina indexacin. La indexacin tiene un coste en trminos de re-
cursos (tiempo de clculo y espacio en el disco), e introduce igualmente una ligera diferencia temporal
entre el aadido o la modificacin de un contenido y la repercusin de este aadido o de esta modifica-
cin en los resultados de bsqueda.
Por otro lado, en el caso de SPIP, estamos obligados a utilizar PHP y MySQL al igual que en el resto
del programa, lo que no permite realizar un motor muy optimizado en cuanto a rapidez, ni tampoco en
cuanto a precisin u otros aadidos diversos (indexacin de documentos externos al sitio, creacin de
campos semnticos que permitan ofrecer bsquedas ms precisas, etc.).
La ventaja del motor interno, sin embargo, es que permite gestionar la publicacin de los resultados
a travs de los mismos mtodos (esqueletos) que el resto de pginas de SPIP, y dentro de un mismo en-
torno visual.
IV.8.2. La indexacin
La indexacin se realiza durante las visitas al sitio pblico.Para evitar que la acumulacin de una in-
dexacin y un clculo de pgina lleve a un timeout (tiempo excedido) en servidores particularmente len-
tos, SPIP espera a que una pgina se muestre utilizando la copia de la cach
44
.
La indexacin trata uno a uno los diferentes datos textuales de un contenido dado: por ejemplo, para
un artculo la entradilla, el descriptivo, el ttulo, el texto... Para cada dato textual la puntuacin de cada
palabra se calcula simplemente contando el nmero de apariciones. A este efecto, se ignoran las pala-
bras de tres caracteres o menos (la mayora no son significativas, y hacen ms pesada la base de da-
tos); por otro lado, los caracteres acentuados son transliterados (convertidos en sus equivalentes no
acentuados) para evitar los problemas de juegos de caracteres y tambin para permitir efectuar bsque-
das en versin no acentuada (en caso de teclado no adaptado...).
Inmediatamente despus, las puntuaciones de cada palabra se acumulan de manera ponderada en-
tre los diferentes datos textuales del contenido indexado. La ponderacin permite, por ejemplo, dar ms
peso a las palabras contenidas en el ttulo de un artculo que en el cuerpo del texto o el post-scriptum...
Las funciones de indexacin pueden ser estudiadas dentro del fichero ecrire/inc_index.php3 . Para
ver mejor la dinmica de indexacin del sitio, puedes abrir el fichero ecrire/data/spip.log, o tambin ver
la pginaecrire/admin_index.php3 (nota: esta pgina, an experimental, no est incluida en todas las
versiones de SPIP, y slo existe en francs).
En la versin [SPIP 1.6], se han introducido importantes modificaciones el comportamiento del mo-
tor:
mejor comportamiento en un entorno multilinge;
el guin bajo (underscore) ya no est considerado como un separador de palabra sino como un ca-
rcter alfabtico (til para la documentacin informtica).
las palabras de dos letras (y ms) que slo contienen maysculas y cifras son consideradas como
siglas y son indexadas, lo que elimina uno de los principales inconvenientes de la limitacin de la in-
dexacin a palabras de ms de 3 letras (G8, CNT, ONU son por tanto, indexadas).
IV.8.3. La bsqueda
La bsqueda se efecta simplemente separando el texto de bsqueda en sus diferentes palabras; se
aplica el mismo filtro que durante la indexacin: supresin de las palabras de tres letras o menos (salvo
las siglas) y conversin de los caracteres acentuados.
Por cada contenido de bsqueda se recupera y luego se suma la puntuacin de las diferentes pala-
bras para obtener la puntuacin total. Finalmente son en general publicados por orden decreciente de

44
Por lo tanto, si has puesto todos los $delais a cero, o si tu sitio no tiene visitas (sitio de pruebas), la indexacin no se
llevar a cabo.

- Pgina 69 de 114 -
puntuacin ({par points}{inverse}); es decir, de pertinencia (pero esto se deja a voluntad de la per-
sona que escribe los esqueletos de paginacin [vase cap. II.19. Los bucles de bsqueda]).
IV.8.4. Prestaciones
Rapidez
En un servidor reciente y no muy cargado la indexacin de un texto largo (varios decenas de millares
de caracteres) necesitar entre uno y dos segundos: la espera es casi imperceptible comparada con el
tiempo de carga a travs de la red. Los contenidos cortos son indexados de manera casi instantnea. Por
supuesto, estas afirmaciones deben condicionarse al tamao del sitio. Un sitio realmente grande corre el
riesgo de ver cmo el tiempo de bsqueda se ampla ligeramente; para relativizar sealemos que un si-
tio como Le Courrier des Balkans tiene, en la fecha de escritura de este texto, unos 3800 artculos publi-
cados, y ms de 7500 mensajes en el foro, y que el motor de bsqueda de SPIP no muestra ningn sn-
toma de debilidad.
Por otro lado, estadsticamente, se puede considerar de manera aproximada que cada contenido slo
ser indexado una sola vez: teniendo en cuenta que existe en general muchas ms visitas en un sitio
que de actualizacin de contenidos, el aumento de carga del servidor es poco considerable (salvo en ca-
so de mquinas muy lentas).
Calidad
La calidad de indexacin es ms floja que en motores de bsqueda profesionales. Al ser PHP un len-
guaje sobre todo lento, la fase de extraccin de palabras ha tenido que simplificarse al mximo para que
los tiempos de indexacin sean mnimos. Por consiguiente, los datos de indexacin incluyen algunos re-
siduos, es decir, trozos de texto que no corresponden a verdaderas palabras; pero que han sido in-
dexadas como tales (se trata a menudo de contenidos tcnicos como los nombres de ficheros o de pasos
puntuados mal hechos). El ejemplo de uZine (donde hemos constatado en torno a un 2% de tales re-
siduos) nos permite pensar que estos datos son una cantidad poco considerable, adems de que exis-
ten pocas posibilidades de que produzcan un resultado positivo en una bsqueda.
En cuanto a la bsqueda, es simplemente aditiva: no hay operadores booleanos, el operador implcito
es a grosso modo un O lgico. Sin embargo, desde SPIP 1.7.1, los artculos encontrados se muestran
ordenadas segn los resultados que contengan ms palabras con la ortografa ms aproximada a la bs-
queda. Por ejemplo, en la bsqueda de sobre el euro devolver los artculos que contengan sobre y
euro antes que los que contienen sobrecarga y Europa, que aparecern ms abajo en la clasifica-
cin.
Espacio en el disco
Dado que MySQL no est especialmente concebido para el almacenamiento de datos indexados, la
utilizacin del motor de bsqueda tiene tendencia a incrementar mucho el espacio del disco utilizado por
la base de datos. Para precisar un poco ms podramos decir que un contenido genera datos de indexa-
cin de un tamao comprendido entre el tamao del contenido y el doble del mismo. Es decir, excluyen-
do los datos que no se incluyen en la indexacin (los foros, por ejemplo), puede calcularse que la in-
dexacin dobla o triplica el tamao de la base de datos. Esto puede ser molesto si el sitio que tienes es
muy escaso.
Si alguna vez desactivas el motor de bsqueda con el fin de economizar espacio en el disco, no olvi-
des a continuacin borrar los datos de indexacin (en la pgina de salvaguarda/restauracin de la base
de datos) con el fin de liberar realmente el espacio del disco ocupado por estos datos.

IV.9. Las variables de personalizacin
Algunos comportamientos de las pginas de tu sitio pueden ser modificadas a travs de variables
PHP. Estas variables son normalmente definidas por SPIP pero para obtener una mayor personalizacin
del sitio la webmisstres o el webmaster puede modificarlas.
IV.9.1. Donde indicar estas variables?
No es necesario entrar en el propio cdigo fuente de SPIP para fijar estas variables (por suerte!).
Para el conjunto del sitio
Si quieres fijar estas variables para todo el sitio puedes indicarlo con una sintaxis un poco diferente
en un fichero denominado mes_fonctions.php3, colocado en la raz del sitio. (Eventualmente ser nece-
sario crear este fichero y cercar las definiciones de tus variables por las etiquetas <?php y ?>, ver los
ejemplos ms abajo.)
Para cada tipo de esqueleto
[SPIP 1.4] Tambin puedes definir estas variables esqueleto por esqueleto. Para ello es necesario
declarlas al principio del fichero PHP que llama al esqueleto (por ejemplo article.php3, rubri-
que.php3...). Se insertan naturalmente al lado de las variables obligatorias $fond y $delais.

- Pgina 70 de 114 -
IV.9.2. Las variables del texto
Estas variables se utilizan en el clculo de la paginacin (correccin tipogrfica) por SPIP.
$debut_intertitre fija el cdigo HTML insertado en apertura de los interttulos (mediante el atajo
{{{). Por omisin, su valor es:
$debut_intertitre = "\n&nbsp;<h3 class=\"spip\">\n";
$fin_intertitre es el cdigo HTML insertado en el cierre de los interttulos (atajo }}}). Su valor nor-
mal es:
$fin_intertitre = "\n</h3><br>\n";
Nota. El interttulo estandar propuesto por SPIP puede parecer ineficaz; se explica por la histo-
ria del desarrollo de este programa; en tu propio sitio puedes, evidentemente elegir crear un
cdigo ms "elegante" (llamando a una simple hoja de estilo)
$ouvre_ref es el cdigo de apertura de las llamadas de las notas de pi de pgina; por omisin, es
un espacio inscable y un corchete abriendo;
$ferme_ref es el cdigo de cierre de las llamadas de las notas a pi de pgina; por omisin es un
corchete cerrando;
$ouvre_note es le cdigo de apertura de la nota de pi de pgina (tal como aparece en #NOTES);
por omisin, un corchete abriendo;
$ferme_note es el cdigo de cierre de las notas a pi de pgina (un corchete cerrando).
Opciones alternativas podran ser, por ejemplo, utilizar parntesis o, ms atractivo, abrir con la eti-
queta de , y cerrar con , lo que situara al nmero de nota en exponente.
El fichero puce.gif y la variable $puce. Cuando empiezas una nueva lnea por un guin SPIP la reem-
plaza por un pequeo smbolo grfico. Este smbolo
45
est constitudo por el fichero puce.gif instalado en
la raiz del sitio. Puedes modificar el fichero si te apetece. Pero tambin puedes decidir fijar t mismo la
eleccin de la "puce" a travs de la variable $puce .Por ejemplo para indicar otro fichero grfico:
$puce = "<img src='mipulga.gif' alt='-' align='top' border='0'>";
o por un elemento HTML no grfico:
$puce = "---";
IV.9.3. Las variables para los foros pblicos
Existen variables que permiten fijar el comportamiento de los foros pblicos con palabras clave.
Nota. Estas variables slo se utilizan cuando creas foros pblicos en los que las personas visi-
tantes pueden seleccionar palabras clave; su utilizacin es, pues, sumamente especfica (y
nada evidente...).
$afficher_texte (valores oui o non: - s o no). Por omisin, los foros pblicos son concebidos
para permitir a las personas visitantes introducir un texto de mensaje; pero cuando se propone la
eleccin de palabras clave en los foros se puede decidir que ningn mensaje es til, que slo la se-
leccin de las palabras clave importa. En este caso se podr indicar:
$afficher_texte = "non";
$afficher_groupe permite indicar los diferentes grupos de palabras-clave que se desea proponer
en tal o cual foro. En efecto, todos los foros de un sitio pueden no ser idnticos. Si, en ciertos foros,
se quiere proder proponer la seleccin de todos los grupos de palabras clave (es decir aquellos que,
desde el espacio privado, se los volvi accesibles a las personas visitantes) es posible que en otros
se quiera utilizar slo algunos grupos, o inclusive ningn grupo (ninguna seleccin de palabras cla-
ve: stos son foros de mensajes nicamente).
La variable $afficher_groupe es un tablero (array) y se construye, por ejemplo, de la manera si-
guiente:
$afficher_groupe[] = 3;
$afficher_groupe[] = 5;
impone proponer a la seleccin nicamente los dos grupos cuyos identificantes son 3 y 5.
$afficher_groupe[] = 0;
impide utilzar palabras clave en esos foros (ya que no existe ningn grupo de palabras clave nume-
rado 0).
Si no se le indica nada (no se explicita $afficher_groupe), SPIP propone a la seleccin todos los
grupos de palabras clave que estn indicados en el espacio privado como propuestos a las personas vi-
sitantes del sitio pblico.

45
En francs, se le llama puce, lo que significa pulga. No duden en hacer propuestas de traduccin en la lista spip-es.

- Pgina 71 de 114 -
IV.9.4. La carpeta de los esqueletos
[SPIP 1.5] Si se desea poner los esqueletos de un sitio en una carpeta particular, (por ejemplo para
probar diferentes juegos de esqueletos localizados en Internet, o porque a uno le gustan las cosas bien
ordenadas) es posible fijar en mes_fonctions.php3 la variable $dossier_squelettes.
<?php
$GLOBALS['dossier_squelettes'] = 'design';
?>
A partir de ese momento, SPIP ir a buscar prioritariamente los esqueletos presentes en la carpeta
design/ (que habrs creado en la raz de tu sitio). Si, adems, utilizas <INCLURE(xxx.php3)>, SPIP
ir a buscar el fichero xxx.php3 primero en design/, y luego, si no se encuentra ah, en la raz del si-
tio.
Las ventajas de este arreglo pueden parecer evidentes (mejor separacin del cdigo SPIP y de la es-
tructura del sitio, posibilidad de cambiar todo un conjunto de esqueletos de una sola vez, etc.); el incon-
veniente principal es que ser ms difcil visualizar los esqueletos a travs de un simple navegdor (los
enlaces hacia las imgenes, sobre todo, corren el riesgo de provocar problemas).
IV.9.5. Ejemplos
Para modificar variables slo para un cierto tipo de esqueletos (por ejemplo para las pginas de sec-
ciones) basta con definir sus valores en el fichero de llamada de estos esqueletos. Por ejemplo, para las
secciones, se pueden fijar los valores directamente en rubrique.php3:
<?php
$fond = "rubrique";
$delais = 2 * 3600;
$espace_logos = 20;
include ("inc-public.php3");
?>
Aqu se mofica los valores del espacio alrededor de los logos. Para modificar los valores de variables
para el conjunto del sitio se puede definirlos en el fichero mes_fonctions.php3.
Atencin, cuando se definen los valores en este fichero es imperativa utilizar la sintaxis $GLO-
BALS['xxx'] para cada una de las variables por personalizar. Por ejemplo, para definir el valor de $de-
but_intertitre, se utiliza la sintaxis $GLOBALS['debut_intertitre']. La utilizacin de esta sintaxis est
impuesta por imperativos de seguridad de los sitios.
<?php
$GLOBALS['debut_intertitre'] = "<h3 class='mon_style_h3'>";
$GLOBALS['fin_intertitre'] = "</h3>";
$GLOBALS['ouvre_ref'] = '&nbsp;(';
$GLOBALS['ferme_ref'] = ')';
$GLOBALS['ouvre_note'] = '(';
$GLOBALS['ferme_note'] = ') ';
$GLOBALS['espace_logos'] = 0;
?>

- Pgina 72 de 114 -




V. Iniciacin: utilizar hojas de
estilo con SPIP
Para sacar el mejor provecho de SPIP, se recomienda
utilizar las hojas de estilo. Tranquil@s, esta breve inicia-
cion permitir a los principiantes dar sus primeros pa-
sos...

- Pgina 73 de 114 -
V.1. Introduccin
Esta presentaci considera que conoces el sistema de los esqueletos de SPIP y que eres capaz de en-
tender los esqueletos simples. En caso contrario, te aconsejamos releer el tutorial (vase seccin III.
SPIP paso a paso) y/o el manual de referencia (vase seccin II. Formateo. Manual de referencia).
V.1.1. Por qu hojas de estilo?
Si realizas pginas Web de modo tradicional, las indicaciones grficas se insertan en el cdigo
HTML de la pgina. As, cada vez que quieres poner un texto en rojo, escribes: <font color="red">.
Para mostrar una tabla con borde ancho, escribes: <table border="2">.
Con este mtodo y un sitio esttico (donde cada artculo tiene una pgina HTML especfica), cambiar
la maquetacin de un sitio completo es una pesadilla: hay que buscar en todos los archivos HTML los
trozos de cdigo a cambiar, y hacer las modificaciones una por una (por ejemplo reemplazar <font co-
lor="red"> por <b> si se decide que los elementos que se mostraban en rojo, ahora van a ser mos-
trados en negrita).
Como ya sabrs, SPIP mejora mucho la situacin: no tienes que modificar ya cientos de archivos
HTML, slo algunos esqueletos; y el aspecto de tu pgina es actualizado automticamente en el sitio
completo. Sin embargo, el problema no est completamente resuelto.
Por ejemplo, supongamos que has decidido usar cierto azul pastel en muchos elementos del sitio, pa-
ra conseguir una identidad grfica de la Web: los enlaces, los encartes, ciertos elementos de navega-
cin... se ven en azul pastel. El da que quieras cambiar el azul pastel por un verde plido, tendrs que
modificar todos los lugares del esqueleto donde aparece el azul y sustituirlo por el verde. Esto puede ser
desalentador: en estas condiciones no es factible cambiar rpidamente el aspecto de las pginas, ni si-
quiera para hacer pruebas.
La solucin est en el uso de las hojas de estilo. Una hoja de estilo es un archivo en el que se define
un conjunto de propiedades grficas y los lugares donde estas se aplican. Las hojas de estilo tienen dos
ventajas principales:
la hoja de estilo es un archivo nico y centralizado, que se puede aplicar a tantos archivos HTML (y
esqueletos SPIP) como se desee;
las propiedades grficas se definen una sola vez en la hoja de estilo, sea cual sea el nmero de ve-
ces que se aplican en el HTML.
V.1.2. Concretamente
La hoja de estilo que se va a aplicar en un archivo HTML (que puede ser un esqueleto SPIP), debe
declararse dentro de la etiqueta <head> del archivo HTML (junto al ttulo y otras etiquetas <meta>)
de la siguiente manera:
<head>
...
<link rel="stylesheet" type="text/css" href="mes_styles.css">
</head>
Aqu el archivo mes_styles.css contiene las propiedades grficas que se desea aplicar a la pgina
HTML (a lo largo de todo el tutorial, supondremos que mes_styles.css es el nombre que has elegido para
este archivo). El archivo lleva la extensin css. De hecho, CSS
46
es el nombre del lenguaje utilizado en
las hojas de estilo, de igual forma que HTML es el nombre del lenguaje utilizado para la creacin de p-
ginas Web.
Nota: una hoja de estilo se puede aplicar lo mismo a una pgina HTML clsica (esttica) que
a un esqueleto SPIP. Es decir, que todos los trucos CSS vlidos en HTML clsico sirven tam-
bin para un esqueleto de tu sitio...
Si has leido bien los prrafos anteriores, es posible que ests en duda: s, hace falta aprender un
nuevo lenguaje para usar las hojas de estilo (no es culpa de SPIP!). Las CSS, en efecto, no usan la sin-
taxis del HTML. Sin embargo, es un lenguaje muy sencillo, y bastan algunos ejemplos para poder mane-
jarlo sin ayuda...
Para continuar, veamos primero un ejemplo de uso de los CSS por SPIP.

V.2. Estilos con clase
En el artculo anterior, habamos visto de forma general las ventajas de las hojas de estilo. Ahora ex-
plicaremos los beneficios adicionales de utilizar las hojas de estilo conjuntamente con SPIP.

46
Cascading Style Sheets: literalmente, hojas de estilo en cascada.

- Pgina 74 de 114 -
V.2.1. Los estilos definidos por SPIP
Como ya sabrs, las hojas de estilo permiten centralizar y gestionar las definiciones grficas de for-
ma mucho ms fcil que cuando se insertan en HTML tradicional. Esto hace beneficioso su uso, aunque
no indispensable: se puede seguir insertando donde se quiera cdigos grficos en el HTML mientras se
sigue usando una hoja de estilo.
En SPIP, las hojas de estilo tienen una funcin adicional fundamental: sirven para modificar las pro-
piedades grficas de los elementos que no estn definidos en tu HTML (el del esqueletos). En realidad, el
propio SPIP genera une multitud de estilos de publicacin diversos y variados. De este modo, los atajos
tipogrficos (enlaces de hipertexto, subttulos, negrita, cursiva, tablas...) se transforman en cdigo
HTML/CSS para representarlos en pantalla. Lo mismo sucede con los formularios automticos (responder
a un foro, firmar una peticin...) y otros ms.
Para que tambin se pueda modificar el aspecto grfico de estos estilos, SPIP les da un nombre es-
pecfico, inmutable (existe una lista exhaustiva de estilos en el cap. IV.3. Spip y las hojas de estilo).
Por ejemplo, los {{{subttulos}}} no generan una simple etiqueta <h3>, sino una etiqueta <h3
class="spip">. Qu es lo interesante? Que las etiquetas llevan un nombre especfico en el atributo
class: este nombre define a que clase pertenece, es decir, un conjunto de elementos HTML que here-
dan las mismas propiedades grficas definidas en la hoja de estilo.
Y ahora cmo hacemos para cambiar el aspecto de todos los subttulos de SPIP? Muy fcil, basta
con abrir el archivo mes_styles.css (o cualquier otro nombre que hayas decidido darle) en un editor de
texto y aadir las siguientes lneas:
h3.spip {
color: red;
font-size: 18px;
}
Recarga la pgina y todos los subttulos SPIP apareceran en rojo como por arte de magia; fjate
adems en que el resto de etiquetas <h3> de la pgina, si las hay, no son publicadas en rojo... Si no
aparece nada de esto, comprueba que est declarada la hoja de estilo en el esqueleto (en la etiqueta
<head> como se explicaba en el artculo anterior), y recarga la pgina...
Expliquemos brevemente la sintaxis de esta regla de publicacin:
h3.spip justo antes de las llaves significa que la regla siguiente slo se aplicar a las etiquetas
<h3> que tengan un atributo class igual a spip. Fjate bien: ni las etiquetas <h3> que no tengan
este atributo, ni las etiquetas que tengan este atributo y no sean <h3>, resultan afectadas.
Las llaves contienen la lista de las propiedades grficas asociadas al estilo definido. Es destacable
que el resto de propiedades no definidas en esta lista mantienen el valor por defecto para la etique-
ta en cuestin; en este caso, la etiqueta <h3> producir siempre un texto en negrita, ya que nada
en el estilo dice lo contrario.
Cada una de las propiedades listadas entre llaves termina con un punto y coma. Estan formadas por
un nombre (definido por el lenguaje CSS), seguido por dos puntos y por uno o ms valores. Aqu
vemos que el color est puesto en rojo y que la fuente de caracteres debe mostrarse con una altura
de 18 pixels.
Importante: si aades tus propios estilos, debes saber que el valor dado al atributo class es
totalmente arbitrario. Para el navegador es indiferente que este atributo se llame spip, me-
nu-secciones o patin321. Lo nico que hay que tener en cuenta es que el valor corresponda
con la regla enunciada en la hoja de estilo.
Como puedes ver, el lenguaje CSS es muy sencillo, y usa el mismo tipo de vocabulario que los atri-
butos HTML clsicos. Segun vayas progresando en el lenguaje de las hojas de estilo, seguirs encon-
trando nociones ms o menos heredadas del HTML tradicional (border, width, height...).
V.2.2. La gestin de la cach
El hecho de que tu hoja de estilo est definida en un archivo separado (el famoso mes_styles.css)
tiene una consecuencia importante. En efecto, el archivo, al contrario de tus esqueletos no es gestionado
por SPIP (ni es necesario!). Eso significa que si modificas la hoja de estilo, no necesitas vaciar le cach
de SPIP: basta con recargar la pgina en el navegador. Eso hace que el ajuste de la pgina sea an ms
fcil.
Hay que recordar tambin que la hoja de estilo debe ser declarada en los archivos HTML, y que estos
deben ser recalculados una primera vez para que la declaracin sea tenida en cuenta: la lnea <link
rel="stylesheet" type="text/css" href="mes_styles.css"> debe encontrarse en la cach para
que el navegador pueda contar con ella.
Despus de esta presentacin general y el primer ejemplo, veamos ms en detalle cono se pueden
utilizar los CSS para las balizas SPIP.

- Pgina 75 de 114 -

V.3. Personalizar la tipografa
Despus de la introduccin general a las hojas de estilo (vase captulo anterior), vamos a pasar re-
vista a alguno de sus usos ms habituales con SPIP.
Fijmosnos en los estilos creados cuando se insertan los atajos tipogrficos en un texto escrito en
SPIP. No tiene importancia que lo que se publica sea un artculo, una breve, una seccin o cualquier otra
cosa: los estilos siempre llevan los mismos nombres. Lo que no impida que encontremos la forma de
aplicar estilos grficos eventualmente distintos...
V.3.1. El texto base
El propio texto base con SPIP, ese que se teclea en un formulario, genera ciertas etiquetas HTML. El
texto es separado en prrafos; a cada prrafo le corresponde una etiqueta <p class="spip">. Por lo
tanto, podremos asociar a estos prrafos un estilo claramente definido, que no se aplicar al resto de
texto en la pgina.
Empecemos por elegir un estilo de caracteres. Para ello se usa la propiedad font-family, que toma
como valor uno o ms nombres de fuentes a emplear. Para un cuerpo de texto como el de un artculo,
va mejor una fuente serif; supongamos que se elige Bookman Old Style. Hay que aadir al archivo
mes_styles.css la siguiente regla:
p.spip {
font-family: "Bookman Old Style";
}
(los nombres de fuente que tienen varias palabras deben ir entre comillas...) Un posible problema es
que la fuente Bookman Old Style no est instalada en el ordenador de nuestros visitantes: cada orde-
nador est configurado de forma diferente, y no hay que olvidar que las fuentes gratuitas de Microsoft
pueden no estar instaladas en Linux o Macintosh... Es preferible prevenir esta posibilidad y especificar
una o ms fuente alternativas:
p.spip {
font-family: "Bookman Old Style", "Times New Roman", serif;
}
Aqu especificamos como alternativas sucesivas de Bookman, la clsica Times New Roman , y co-
mo ltimo recurso serif. serif no es una fuente en s, es un cdigo genrico que indica al nave-
gador que use la fuente serif por defecto del ordenador; de la misma manera sans-serif especifica la
fuente sans-serif por defecto (en general Arial o Helvetica).
Hay que recordar esta importante regla: en la propiedad font-family, siempre conviene proponer
varias alternativas sucesivas para adaptarse a las fuentes instaladas en el ordenador del visi-
tante. Esta regla tambin es vlida para la etiqueta <font face="..."> del HTML tradicional.
Naturalmente, hay ms propiedades disponibles. Se puede, por ejemplo regular el tamao del texto
con la propiedad font-size. Hay que tener en cuenta, no obstante, que los navegadores disponen de op-
ciones para configurar el tamao predeterminado del texto, y el texto principal de la pgina no debera
sobrepasar ese ajuste por motivos de confort visual: quien elige el tamao base del texto es el usuario,
no el webmaster.
Se debe tener en cuenta que los estilos que se apliquen a las etiquetas <p> se aplican a cada prra-
fo como objeto autnomo. Esto permite algunos efectos interesantes, como por ejemplo, sangrar la pri-
mera lnea de los prrafos usando la propiedad text-indent. Por defecto, esta propiedad tiene un valor
cero; es decir, que no hay sangra. Se puede modificar para obtener, en cada primer lnea de prrafo,
una sangra de 1em (ms o menos 3 espacios
47
):
p.spip {
text-indent: 1em;
}
V.3.2. Los enlaces de hipertexto
Quienes ya se hayan peleado con el CSS sabrn que se puede modifcar el aspecto de los enlaces de
manera global:
a {
color: green;
text-decoration: none;
}

47
La unidad typogrfica em, que se puede utilizar en CSS, es relativa al tamao de letra.

- Pgina 76 de 114 -
Esta regla de estilo especifica que todos los enlaces de hipertexto (es decir, las etiquetas <a ...>,
tengan o no un atributo class) sern mostradas en verde sin subrayar.
SPIP permite ir ms all. Los enlaces de hipertexto generados por los atajos tipogrficos, utilizan va-
rios estilos diferentes:
cuando es un enlace interno (reenva a otra pgina del mismo sitio), la etiqueta es <a
class="spip_in">;
cuando es un enlace externo (reenva hacia otro sitio Web), la etiqueta es <a
class="spip_out">
48
;
y cuando la URL se introduce sin ttulo, la etiqueta es <a class="spip_url">.
esto hace muy sencillo representar estos tres tipos de enlaces con distinto aspecto grfico. Veamos:
a {
color: green;
text-decoration: none;
}
a.spip_in {
color: blue;
}
a.spip_out {
color: red;
}
muestra los enlaces internos en azul y los enlaces externos en rojo. El resto de enlaces, includos los
no generados por SPIP, se vern en verde. Adems todos los enlaces se mostrarn sin subrayar: en
efecto, la propiedad text-decoration, especificada en la primera regla, no se ha modificado en las si-
guientes; por lo tanto, se aplica automticamente a todos los elementos de tipo <a ...>.
Hay que resaltar una propiedad fundamental de las hojas de estilo: las reglas grficas se aplican
en el orden de la ms genrica a la ms especfica. As se puede definir un comportamiento
genrico para la mayor parte de los elementos, y modificar este comportamiento para un
subconjunto de ellos. De esta caracterstica deriva la potencia de las hojas de estilo.
V.3.3. Aplicar un tratamiento diferenciado
Mejor que extendernos sobre la multitud de estilos generados automticamente por los atajos tipo-
grficos de SPIP, que pueden ser modificados al gusto (se enumeran en el cap. IV.3 Spip y las hojas
de estilo), estudiaremos el caso en el que se desea aplicar un aspecto distinto a un mismo estilo, segn
su posicin en el esqueleto. Esto puede ser deseable cuando se quiere, por ejemplo, publicar el cuerpo
del texto con una fuente serif e indentacin al principio del prrafo; pero el post-scriptum con una fuente
ms lisa (sin los resaltes de las letras serif) y ms pequea, sin indentacin.
La operacin es realmente muy sencilla. Hay que modificar el esqueleto para introducir los elementos
que permitan discriminar el texto y el post-scriptum. Se pondr, por ejemplo, dentro del bucle ARTICLES
principal, el siguiente cdigo:
<div class="texte">#TEXTE</div>
<div class="ps">#PS</div>
Aqu es necesario recalcular la pgina (ya que se ha modificado el HTML...). Pero el aspecto en el na-
vegador sigue siendo el mismo: normal, los nuevos estilos no son objeto de ninguna regla en la hoja de
estilo, y son omitidos por el navegador. Vamos a remediarlo:
.texte p.spip {
font-family: "Times New Roman", serif;
text-indent: 50px;
}
.ps p.spip {
font-family: Tahoma, Arial, sans-serif;
font-size: 90%;
}
La gran novedad no est en las propiedades grficas, sino en la forma en que se aplican al cdigo
HTML. En efcto, .texte p.spip significa: esta regla se aplica a todas las etiquetas <p
class="spip"> contenidas en una etiqueta que tenga un atributo class igual a "texte. Se podra res-
tringir algo esta regla especificando que la etiqueta padre debe ser, adems una etiqueta <div> (el prin-
cipio de la regla sera entonces div.texte p.spip); pero como controlamos la estructura de nuestros
propios esqueletos, no es til hacer la hoja de estilo tan restrictiva.
As pues, esta hoja de estilo da el resultado deseado: los prrafos del cuerpo de texto se muestran
con indentacin, los del post-scriptum con una fuente ms pequea y sin indentacin. Para verificar que

48
Que no se alegren todava los amantes de abrir nuevas ventanas: en una hoja de estilo es imposible especificar si un
enlace debe abrirse en otra ventana... Mala suerte!

- Pgina 77 de 114 -
las reglas se aplican bien a cada prrafo <p class="spip"> y no a los <div class="..."> que les inclu-
yen, vamos a divertirnos poniendo un marco negro:
.texte p.spip {
border: 1px solid black;
}
Comprobamos que cada prrafo del cuerpo de texto (pero no el post-scriptum) est rodeado por su
propio cuadro negro. Si se hubiese escrito .texte en lugar de .texte p.spip, sera el texto com-
pleto el que estara rodeado por un nico cuadro negro. Sealemos, de paso, la aparicin de la propie-
dad border...
Nota: este truco, que consiste en trazar un marco de color para saber exactamente a qu ele-
mentos se aplica una regla, puede ser muy til cuando una hoja de estilo se hace complica-
da. No dudes en usarla si te pierdes...
Este mtodo es muy poderoso y su uso general es provechoso para estructurar la composicin de la
pgina.
Despus de la tipografa de las balizas SPIP, sigamos aprendiendo los CSS y los trucos de SPIP con
los formularios.

V.4. Qu formularios ms bonitos!
Ya estn personalizados el aspecto y la tipografa del sitio; pero ahora los formularios SPIP desento-
nan totalmente del resto. Que no cunda el pnico!, tambin aqu las hojas de estilo resuelven el pro-
blema.
Recuerda que las hojas de estilo, usadas conjuntamente con SPIP, permiten adaptar la visualizacin
de los atajos tipogrficos (vase cap. V.3. Personalizar la tipografa) al aspecto de la pgina. Bien,
pues sucede lo mismo con los formularios generados por SPIP: su aspecto grfico se puede modular pa-
ra integrarse sin diferencias con tu diseo.
Una vez ms, no se trata aqu de revisar todos los estilos proporcionados por SPIP (vase cap. IV.3.
SPIP y las hojas de estilo). Sin embargo, hay que saber que se puede alterar el aspecto de todos los
formularios del espacio pblico: formulario de respuesta a los foros, de bsqueda, de firma de peti-
cin
49
... Vamos a dar algunas recetas.
V.4.1. Los colores y el relieve
Una novedad que va a encantar a los principiantes en CSS: se puede cambiar el color de los campos
y los botones de los formularios
50
.
Por ejemplo, para que los botones tengan un fondo azul claro, aade la siguiente regla a tu archivo
CSS (que, si has seguido este tutorial al pie de la letra, se llama mes_styles.css) :
.spip_bouton {
background-color: #b0d0FF;
color: black;
}
Los botones aparecen desde ahora con un fondo azul claro (propiedad background-color), y un
texto negro. Fjate que .spip_bouton es el estilo utilizado por los botones y campos de los formularios
SPIP.
Ahora vamos a modificar el aspecto del borde de los botones. El relieve tradicional de los botones
HTML ya est un poco anticuado. Podemos decidir aplanar los bordes, y ensancharlos en contrapartida
para que sean bien visibles. Por ejemplo:
.spip_bouton {
background-color: #b0d0FF;
color: black;
border: 2px solid #000060;
}
La propiedad border definida traza un contorno de 2 pixels de ancho, de aspecto plano (solid en
lenguaje CSS) y de color azul rodeando los botones. Igualmente se puede modificar el tipo de caracteres
del botn (con las propiedades font-size y font-family como se ha visto en las etapas anteriores de es-
ta inicicin).

49
E incluso los botones de administracin que se colocan abajo de las pginas cuando ests cone ctado.
50
Sin embargo, hay que advertir que ciertos navegadores imponen su propio estilo de botones, y no permiten cambiar
su aspecto.

- Pgina 78 de 114 -
Y los campos? Basta con aplicar los cambios al estilo .forml en lugar de a .spip_bouton.
V.4.2. Un poco de espacio
Las hojas de estilo permiten no slo de cambiar los colores y los tipos de fuentes; tambin se puede
gestionar la posicin relativa de los objetos dentro de la pgina. Sin ir ms lejos, veamos cmo desaho-
gar un poco los formularios:
.formulaire {
background-color: #e8f4ff;
font-family: Verdana, Arial, sans-serif;
font-size: 90%;
font-weight: normal;
border: 1px solid black;
padding: 10px;
}
Aqu cambiamos la visualizacin del estilo .formulaire, que es el estilo principal de todos los formu-
larios generados por SPIP. El inters de modificar este estilo es que se puede gestionar la visualizacine
de todos los formularios. Aqu le hemos aplicado un color de fondo, muy claro, y un estilo de fuentes.
Pero, sobre todo, se ha modificado el espaciado interior de cada formulario individual. La propiedad
padding es la que permite el efecto de espaciado. Hay que tener en cuenta que la separacin se produ-
ce precisamente en el interior del borde definido por la propiedad border: el formulario se considera
aqu como un bloque rectangular autnomo.
Nota: las hojas de estilo permiten incluso definir la disposicin de estos bloques rectangulares
entre ellos, sin utilizar tablas para colocarlos. Sin embargo, esta es una materia demasiado
larga para tratar en una iniciacin.
Aqu termina esta breve introduccin de SPIP y los CSS. Slo nos falta aconsejarte nuestros sitios
preferidos para ir ms all.

V.5. Para profundizar
La presente iniciacin no es ms que un repaso superficial del poder de las hojas de estilo y una ex-
plicacin de como las utiliza SPIP. Si este nivel no es suficiente, se pueden buscar entre la abundante
documentacin disponible en la Red para ir ms all.
Algunos puntos de partida interesantes:
V.5.1. En espaol
Carlos Benavides [http://www.sidar.org/recur/desdi/mcss/index.php], mantiene una traduccin
completa de la especificacin CSS2 del W3C;
El Web Design Group [http://www.htmlhelp.com/es/reference/css/], promueve la creacin de
sitios que no dependan del navegador ni de la resolucin de pantalla;
unas referencias rpidas selfhtml [http://www.selfhtml.com.ar/], para no perderse en medio de
la accin (en proceso de traduccin);
V.5.2. En francs
OpenWeb [http://openweb.eu.org/], mezcla de debates y artculos tcnicos sobre CSS y otros
standards de la Red;
un curso CSS dbutant [http://mammouthland.free.fr/cours/css/];
Techniques et astuces pratiques pour une mise en page CSS
[http://pompage.net/pompe/csspratique/] ensea a gestionar la posicin de elementos con hojas
de estilo;
una coleccin de recettes [http://www.alsacreations.com/articles/] para el uso eficaz de CSS;
V.5.3. En ingls
el bello CSS ZEN Garden [http://www.csszengarden.com/] dnde se pueden ver concretamente
en un mismo contenido, centenas de diseos (aunque la hoja de estilo sea ms bien especfica, es
una bonita ilustracin);
Listas de elementos: Max Design [http://css.maxdesign.com.au/index.htm] ejemplos de efectos
grficos;
los tipsntricks [http://www.w3.org/Style/Examples/007/] del propio W3C...
y, para los amantes del riesgo, todas las especificaciones originales del W3C!
[http://www.w3.org/Style/CSS/]

- Pgina 79 de 114 -
V.5.4. Una pequea herramienta
Si utilizas el excelente navegador Firefox [http://mozilla.org/products/firefox/], el plug-in EditCss
[http://texturizer.net/firefox/extensions/#editcss] permite editar y comprobar las hojas de estilo
sobre la marcha, desde el navegador.


- Pgina 80 de 114 -




VI. Tutorial: utilizacin avan-
zada de bucles y palabras
claves
Este tutorial explica rapidamente como ir ms all de
los limites aparentes de SPIP. OJO: est dirigido a usua-
rios con experiencia.

- Pgina 81 de 114 -
VI.1. Introduccin
SPIP es un producto limitado. Hay cosas que hace muy bien y otras que no puede realizar. Si inten-
tas por ejemplo crear un sitio web dedicado al cine con los enlaces de todos los nombres (actores, reali-
zador, equipo tcnico, a la manera de fichas como las de Internet Movie Database
[http://www.imdb.com/]) hacia otras pelculas que han realizado, etc. te dars cuenta de que SPIP no
est realmente pensado para ello. Por el contrario, crear y gestionar un sitio de contenido editorial con
una estructura simple a la manera de [uZine-http://www.uzine.net/], es muy sencillo.
No obstante, entre estos dos extremos (de los sitos irrealizables con SPIP a los sitios para los cuales
SPIP est particularmente adaptado) existe una multitud de usos, de necesidades, fcilmente realizables
pero a priori inaccesibles con la versin estndar de los esqueletos.
Algunos webmasters (con mucho valor), confrontados a los lmites aparentes del producto, se lanzan
con el cdigo fuente de SPIP con el objetivo de adaptarlo a sus necesidades especficas. Si esta actitud
muy open source es loable, sin embargo priva a quien la mantiene de la posibilidad de seguir las evo-
luciones del programa estndar y requiere conocimientos amplios en PHP.
Ahora bien, y es el objetivo de este tutorial, existen numerosas posibilidades para sobrepasar los l-
mites de SPIP, nicamente a travs de una utilizacin personalizada de los esqueletos y de la estructura
del sitio.
VI.1.1. A quin se dirige este documento?
Este tutorial est destinado a las y los webmasters/webmisstres que desean sobrepasar algunos lmi-
tes aparentes de SPIP. Resulta pues imperativo haber comprendido el funcionamiento de los esqueletos
y los bucles que gestionan la interfaz pblica.
Si estas empezando empieza con los documentos de la seccin III. SPIP paso a paso destinada a
quien se inicia en el funcionamiento de los esqueletos. Si sabes utilizar ya bien los esqueletos te aconse-
jamos manejes bien una versin del Manual de Referencia (seccin II. Formateo. Manual de referen-
cia).
VI.1.2. Qu versin SPIP?
Los ejemplos que aqu se plantean utilizan funcionalidades incluidas a partir de la versin SPIP 1.3.
Algunos pueden realizarse con versiones precedentes pero la versin 1.3 (y posteriores) ofrece mayores
garantas
51
.
VI.1.3. Qu otros conocimientos tcnicos son necesarios?
Este tutorial es muy progresivo. Presenta la construccin paso a paso de esqueletos completos.
Adems de la comprensin del mecanismo general de los esqueletos (y del sistema de bucles) conviene
entender el cdigo HTML. El HTML utilizado aqu ser voluntariamente rudimentario pero, si nunca has
realizado una pgina web sino con un programa Wysiwyg, corres el riesgo de sufrir.
No abordaremos aqu la utilizacin del PHP en los esqueletos; el conocimiento de este lenguaje resul-
ta pues aqu intil.
VI.1.4. Los imperativos
No tocar la estructura de SPIP en si misma. En ningn momento modificaremos el cdigo fuente del
producto, ni las tablas de base de datos utilizadas por SPIP. Esto garantizar que las funcionalidades
aportadas aqu continen compatibles con las futuras evoluciones del programa y que la interfaz privada
conserve su coherencia.
Realizar un sitio en el que la interfaz de navegacin se mantenga coherente. Uno de los objetivos
aqu es realizar una navegacin ms rica que la que proponen los esqueletos estndar, no conviene pues
que contrariamente a ello la interfaz se convierta en una interfaz incomprensible para quien visite el si-
tio. (Comprobars sin embargo que no hemos desarrollado aqu el grafismo de nuestras pginas; grfi-
camente, la interfaz obtenida al final de este tutorial ser horrible... pero en revancha, los enlaces entre
los diferentes elementos estructurales del sitio estarn presentes.)
Realizar un sitio cuyas actualizaciones continen siendo simples. Quienes gestionan el sitio desde el
espacio privado no deben pasar varias horas para aadir un nuevo artculo... Se trata de aprovechar los
automatismos relacionados con un sitio dinmico.
VI.1.5. Cmo utilizar este tutorial?
Este tutorial es muy progresivo y los cdigos ofrecidos son completos: no encontrars aqu trozos
de cdigo salidos de no se sabe donde para volver a copiar, al contrario, el cdigo completo de los es-
queletos se construir a medida que se construyan los artculos. El mtodo que se desarrolla aqu es el
de la creacin de pginas de esqueletos cada vez ms complejas explicndose cada etapa.

51
Nota de la traductora: en el momento de realizar la traduccin se est utilizando ya la versin e stable de SPIP 1.6

- Pgina 82 de 114 -
Te aconsejamos pues seguir este tutorial por el orden de sus artculos y crear los ficheros al mismo
tiempo que las explicaciones integrando cada vez las variaciones dadas en ejemplo.
Encontrars estos ejemplos mucho ms claros si realizas t misma las pginas planteadas aqu. El
cdigo te parecer ms simple ya que a cada nuevo elemento vers inmediatamente el impacto de las
modificaciones.
Todos los esqueletos realizados en este tutorial estn agrupados en una contribucin
[http://www.spip-contrib.net/article87.html] de spip-contrib->http://www.spip-contrib.net/]. Te los
puedes bajar ya, pero no obstante te aconsejamos realizar los esqueletos propuestos en el tutorial desde
el principio: si trabajas directamente a partir de los esqueletos terminados perders la construccin pro-
gresiva y corres el riesgo de no comprender su estructura.
VI.1.6. La progresin de este tutorial
Los primeros artculos (desde "El objeto del juego" a "Escribir los artculos") insisten en la importan-
cia de pensar bien la estructura de tu sitio y de definir la constitucin de los artculos antes de empezar
un sitio complejo. Tcnicamente esta parte es necesaria para toda aquella persona usuaria de SPIP (se
puede pues leer incluso si no se tiene ningn conocimiento del funcionamiento de los esqueletos.)
Esta parte te parecer quizs demasiado sencilla (no hay ninguna audacia tcnica). Introduce sim-
plemente la utilizacin de las palabras clave como herramienta de estructuracin del sitio. Sobre todo
permite comprender que la estructura del sitio es primordial durante el comienzo de un proyecto de sitio
ambicioso. Cuando en esta etapa se realiza una negligencia (y ello resulta frecuente) conduce a realizar
sitios que dejan de ser manejables y cuya interfaz pblica es incoherente (estos problemas se plantean
raramente cuando se empieza el sitio, con un pequeo grupo de artculos). Finalmente insistimos (am-
pliamente...) en el hecho de que las elecciones tcnicas (programacin de los esqueletos, utilizacin de
palabras clave) dependen directamente de las elecciones editoriales (esta evidencia es primordial en un
sistema de publicacin).
Los siguientes artculos (de "Primera versin del esqueleto de los artculos" a "El sitio completo")
propondrn la creacin paso a paso de los esqueletos. Es necesario a partir de ese momento tener un
buen conocimiento del sistema de bucles SPIP. Las dificultades en ese punto sern de orden lgico y no
informticas. Voluntariamente fabricaremos los esqueletos en varias etapas sucesivas: al principio los
esqueletos sern extremadamente sencillos, se evolucionar aadiendo cada vez ms complejidad en la
estructura de los bucles.
Encontrars en esta parte algunas astucias lgicas en la gestin de los bucles; sobre todo vers la
utilizacin de las palabras clave como elementos de estructuracin de la navegacin.
Obtendremos al final de este tutorial un sitio completo y explotable (a travs de la creacin de una
interfaz grfica un poco ms elaborada). Sin embargo, el ltimo artculo (El sitio completo) te ofrecer
algunas ideas de desarrollos suplementarios que podrs aadir a tu sitio poniendo en prctica los princi-
pios explicados aqu.

VI.2. El objetivo del juego: un sitio web dedicado a
los videojuegos
Las explicaciones siguientes se basan en la realizacin de un sitio web dedicado a los videojuegos.
VI.2.1. Por qu los videojuegos?
Una nocin que nunca se debe perder de vista cuando se realizan esqueletos con SPIP, es que se
pretende presentar un contenido de forma periodstica (pensar en trminos de posibilidades tcnicas o
de base de datos es el mejor modo de crear un sitio con una interfaz incomprensible). Por lo tanto, es
necesario utilizar permanentemente un vocabulario e imgenes relacionados directamente con el conte-
nido que se quiere presentar.
Por lo tanto, para que este tutorial resulte legible, tenamos que fijarnos un objetivo periodstico, pa-
ra poder presentar cada manipulacin tcnica como la respuesta a una necesidad editorial.
Un sitio de videojuegos ofrece varias ventajas para nuestra explicacin:
el vocabulario asociado con los contenidos de este tipo de sitios web es conocido por todos,
la navegacin por estos sitios es muy flexible (existen numerosas formas distintas de navegar en
ellos);
es un ejemplo tpico de un sitio imposible de realizar con los esqueletos estndar de SPIP (salvo que
te contentes con un sitio muy por debajo de lo esperado en este tipo de contenidos);
en cambio, es un ejemplo muy bueno de lo que se puede hacer para superar los lmites de SPIP,
mientras se conserva la coherencia y la sencillez de su uso.
VI.2.2. Qu dificultades presenta un sitio web as?
La dificultad principal concierne a la organizacin en secciones de los artculos:

- Pgina 83 de 114 -
cada juego es objeto de diversos artculos: uno o varios tests (pruebas del producto comercial),
un anlisis previo (describir un juego que an no est disponible comercialmente, sino en versin
beta), las noticias (por lo general, antes de la salida, se trata de difundir algunas informaciones so-
bre el futuro juego), los trucos y soluciones (o tips), una solucin completa a los enigmas del juego;
ciertos juegos estn disponibles para diferentes plataformas (PC, Dreamcast, Playstation...); ciertas
pruebas, avances o soluciones conciernen a una sola versin del juego, quizs a varias (y esto no es
sistemticamente igual para un mismo juego: la solucin de un juego suele ser comn a diversas
versiones, mientras que las pruebas deben realizarse para cada versin);
cada juego pertenece a una categora (juego de accin/aventura, juego de reflexin, juego de plata-
forma, juego de simulacin deportiva, juego de carreras, juego de joystick...).
Con SPIP, slo se puede crear una nica estructura jerrquica para las secciones. De manera simple,
habra que elegir una estructura nica:
una estructura para el tipo de artculo (una seccin para las pruebas, una seccin para los previos,
una seccin para las soluciones...);
una estructura segn el tipo de mquina (una seccin para PC, una seccin para Playstation, una
seccin para Dreamcast...);
una estructura para cada categora de juego (una seccin para aventura, una para simulacin de-
portiva, una para carreras...).
En todos los casos, vemos que se pierde la riqueza de navegacin que debe ofrecer un sitio semejan-
te, que debera permitir el paso a otro artculo relacionado con el mismo juego; pero tambin navegar
segn el tipo de mquina, o consultar otros juegos de la misma categora...
Tiene una segunda dificultad en cuanto a las informaciones sistemticas que se quieran incluir para
cada juego, para poder presentarlas como informaciones separadas:
la fecha de salida del juego;
una nota de puntuacin.
Evidentemente, se podra hacer escribiendo esta informacin a mano en el interior de los artculos;
pero as no podra presentarse en las pginas especficas (prximas apariciones, juegos recin apa-
recidos, mejores juegos de esta categora...).

Esta reproduccin del sumario que obtendremos da una idea de la diversidad de informacin presen-
tada en el sitio, y de las posibilidades de navegacin:
en el centro, las pruebas; para cada juego probado, se indica la nota atribuida, y la mquina
(Dreamcast, Playstation...);
en lo alto, se pueden colocar los sumarios consagrados a cada mquina;
arriba a la izquierda, se podrn ver las prximas fechas de salida de juegos, al igual que la lista
de juegos que hayan recibido mejor nota;
a la izquierda aparece la navegacin en el sitio por la categora de juego (supervivencia-terror,
simulacin deportiva...);
a la derecha, los anlisis previos, las soluciones, los trucos, las noticias...


- Pgina 84 de 114 -
VI.3. La estructura del sitio web
La flexibilidad de SPIP en la gestin de la estructura de las secciones permite, por lo general, comen-
zar la redaccin de los artculos sin preocuparse demasiado por su seccin (despus siempre es fcil mo-
ver los artculos o las secciones). En el caso que nos ocupa, por el contrario, es necesario comenzar por
la definicin de la estructura subyacente. En realidad, es ella la que condiciona las posibilidades de un si-
tio como ste.
Con SPIP, no se puede definir nada ms que una estructura jerrquica nica para las secciones.
Habr que decidir, por lo tanto, cmo vamos a crear las secciones de nuestro sitio web.
VI.3.1. Posibilidades
Como hemos visto en el artculo anterior, aqu cada artculo contiene diversos criterios. Por lo tanto,
se puede elegir para las secciones una estructura entre las siguientes:
una estructura segn la mquina: una seccin para Dreamcast, una seccin para Playstation, una
seccin para PC...
una estructura segn el juego: una seccin para Resident Evil, una seccin para Gran Turismo, una
seccin para Mortal Combat...
una estructura segn la categora de los artculos: una seccin para las pruebas, una seccin de no-
ticias, una seccin para soluciones...
una estructura segn el tipo de juego: una seccin para juegos de deportes, una para los juegos de
plataformas, una para juegos de habilidad...
Forzando un poco las posibilidades, tambin se podran adoptar las siguientes estructuras:
una estructura segn la calidad de los juegos (los mejores juegos en una seccin, los de calidad
media en otra...);
una estructura segn la fecha de redaccin, que se adapta notablemente a la transposicin en la
Red de una revista mensual (los artculos del nmero de noviembre de 2001, una seccin para di-
ciembre de 2001, una seccin para enero de 2002, etc.).
VI.3.2. Los requisitos
Ciertas caractersticas de nuestro sitio web aconsejan la eleccin de un tipo de estructura mejor que
otro.
Mientras se navega por un sitio web, es natural que se quiera pasar directamente de la prueba de
un juego a su solucin, de la presentacin preliminar a sus noticias... Los visitantes, interesados por
la presentacin, querrn saber la informacin reciente sobre el desarrollo del producto (las noticias).
Una jugadora, tras leer la opinin extrada de una prueba, querr encontrar rpidamente pistas para
terminar su juego (las soluciones, los trucos).
En este caso, lo ms sencillo es reunir todos los artculos de un mismo juego en la misma seccin.
La seccin de un juego incluir al mismo tiempo la presentacin previa, las pruebas, la solucin...
Por lo tanto, la seccin ms pequea de nuestro sitio web ser la seccin que contenga todos los
artculos sobre un solo juego.
Se podra decidir la creacin de grandes secciones por tipo de mquina, y situar cada uno de los
juegos como subsecciones con sus distintos artculos (un juego que tenga versin para varias m-
quinas tendra una seccin especfica para cada tipo de mquina). Sin embargo, es frecuente que
ciertos artculos sobre un mismo juego sean comunes para varias mquinas. La prueba de la versin
para Dreamcast de Alone in the dark es diferente de la prueba para la versin Playstation; en cam-
bio, la solucin del juego es comn para ambos soportes. Organizando las secciones por tipo de
mquina, tendremos la prueba de Dreamcast en la seccin Dreamcast, y la prueba sobre Playstation
en la seccin ad hoc; pero la solucin, comn para las dos versiones, tendra que publicarse en am-
bas secciones, lo que es poco elegante y muy molesto.
Los tipos de juegos presentan una estructura jerrquica: una carrera de rallye es una carrera de co-
ches, que a su vez es una simulacin deportiva; un survival horror es un juego de aventu-
ra/accin; un juego de habilidad 2D es un juego de habilidad... Por tanto, este tipo de estructura se
adapta especialmente bien a SPIP, porque dentro de las secciones se pueden insertar tantas sub-
secciones como sea necesario. Una gran seccin Deporte contendr varias subsecciones (Carre-
ras, Ftbol, Deslizamiento, Tenis...), cada una de las cuales puede a su vez contener otras subsec-
ciones.
Por el contrario, las dems estructuras no tienen realmente una estructura jerrquica. Los tipos de
mquina no dependen unos de otros: evidentemente, se podran reunir las consolas de juegos
dentro de una gran seccin y crear otra gran seccin para PC; pero esto no tiene mucho inters, y
no presentara gran profundidad jerrquica. De igual manera, una categora de artculos no depende
de otra (las noticias no dependen de las soluciones, las cuales no dependen de las pruebas...); una
organizacin de secciones segn la categora de los artculos no nos permitira, por lo tanto, tener
una estructura real de secciones/subsecciones.
VI.3.3. La estructura seleccionada
En realidad, no importa cual de las posibilidades vistas anteriormente resulta factible, pues las tcni-
cas que abordaremos ms adelante permitiran adaptarse a esas distintas situaciones. No obstante, es

- Pgina 85 de 114 -
ms agradable elegir una estructura adaptada ms directamente a la lgica de SPIP; dicho de otro mo-
do: un sitio web que ya se podra presentar bien con esa estructura, incluso sin utilizar los trucos que
explicaremos ms adelante (es decir, un sitio que ya se puede visitar con los esqueletos standard). De
esta manera, el uso del espacio privado y la gestin del sitio web seguirn siendo coherentes y sencillos.
Por lo tanto vamos a preferir la estructura ms jerrquica: la estructura segn el gnero de juego.
Crearemos grandes secciones temticas (Accin/aventura, Combate, Juegos pedaggicos, Plataformas,
Deportes, Estrategia...), con varias subsecciones en cada una de ellas.
En cada una de las subsecciones vamos a crear una subseccin para cada juego, que reuna todo tipo
de artculos sobre ese juego en todas las plataformas del mismo (por ejemplo, todos los artculos relati-
vos a Alone in the Dark 4. No importa que los artculos sean noticias, anlisis previos, pruebas, solucio-
nes... que se refieran a la versin PC, Dreamcast o Playstation... todos estarn agrupados en la seccin
nica consagrada e este juego).
Lgicamente, la prueba de la versin para Dreamcast de Alone in the Dark se encontrar en la sec-
cin Alone in the Dark, que estar instalada en una seccin Terror, dependiente a su vez de la seccin
Accin/Aventura.
Ms adelante veremos que, aunque es fcil utilizar esta estructura con SPIP (y que un sitio web se-
mejante ya es fcil de visitar con los esqueletos estndar); a cambio aade algunas dificultades en la l-
gica de presentacin, porque se mezclan secciones en las que el nombre es un juego con otras secciones
que son las grandes categoras de juegos.
VI.3.4. Qu sucede con el tipo de mquina y el gnero de artculo?
Con esta estructura hemos perdido la posibilidad de indicar en la navegacin, para cada artculo, si
se trata de una prueba, de una solucin, de noticias... o tambin si se refiere a una versin para PC,
Dreamcast, Playstation...
No sera prctico tener aqu para cada artculo un men desplegable que ofrezca una lista de m-
quinas, y otro que ofrezca la lista de tipos de artculo? Se podra seleccionar en estos mens desplega-
bles y, con un clic, indicar que se trata de una prueba, y que se refiere a la Dreamcast. Incluso se podra
indicar que un mismo artculo se refiere a la Dreamcast y la Playstation.
(No te puedes ni imaginar la cantidad de webmasters que, en este punto, se lanzan a cuerpo limpio
sobre el cdigo fuente de SPIP para aadir los mens desplegables donde lo necesitan!)
Fjate bien: ese men desplegable ya existe. Es el de las palabras-clave.
Las palabras-clave asociadas a los artculos, permiten crear elementos de navegacin transversales
en el seno de la estructura jerrquica de un sitio con SPIP, es decir, pasar directamente de un artculo
en una seccin a un artculo situado en otra seccin distinta (sea cual sea la posicin de la otra seccin
dentro de la jerarqua).
Es cierto que el uso inmediato de las palabras-clave consiste en crear palabras-clave puramente te-
mticas; pero si se considera que se trata de un medio de navegacin transversal en la estructura de
secciones, se pueden utilizar de igual manera para adjudicar el nombre de la mquina utilizada o el tipo
de artculo.
El mtodo se ajusta particularmente bien a nuestro caso: lo que tenemos que indicar no tiene una
estructura jerrquica y, sobre todo el nmero de elementos es relativamente fijo. Una vez determinada
la lista completa de tipos de mquina, no es necesario aadir ms (la aparicin de una nueva consola no
es frecuente); y los tipos de artculo en nuestro sitio web sern determinados de antemano. por lo tanto,
se fijar la lista de palabras-clave una sola vez antes de comenzar (los aadidos sern muy raros) y ten-
dremos nuestro men desplegable que permitir, para cada artculo, indicar la mquina a la cual se re-
fiere y el tipo de artculo.
N.B. Existen otros casos donde el uso de palabras-clave es una trampa. Notablemente son los
casos donde la lista de palabras no est fijada por adelantado, y donde casi sera necesario
crear una palabra-clave nueva para cada nuevo artculo. Es verdad que esto funcionara con
SPIP; pero la actualizacin del sitio sera particularmente costosa.
Por ejemplo, un sitio web dedicado al cine. Tendramos una estructura temtica segn los grandes
gneros del cine. A continuacin, desearamos poder saltar de una pelcula de tal director a otras pelcu-
las de ese mismo director. Una solucin (con trampa) consistira en crear una palabra-clave para este di-
rector: siempre que se aada la ficha de una pelcula, se le asociara la palabra-clave de su director. lo
mismo para los actores protagonistas, el autor del guin, etc. La navegacin por el sitio web sera de
gran riqueza. Pero la actualizacin con SPIP sera infernal: una lista de palabras-clave interminable, y
sobre todo la necesidad de crear palabras-clave cada vez que se aade una pelcula.
Imaginemos tambin que hemos seleccionado para nuestro sitio web una estructura segn una cate-
gora de artculos grande: una seccin para las pruebas, una seccin para previos, una seccin para no-
ticias... Una vez dentro de las pruebas de Alone in the dark, se querra mostrar enlaces hacia su solu-
cin, sus noticias... El nico medio de hacerlo sera utilizando una palabra-clave Alone in the dark. Se
ve que as, por cada nuevo juego que se incluya en el sitio , habr que crear una nueva palabra-clave:
muy molesto de gestionar, difcil de utilizar (el men desplegable se har interminable rpidamente),

- Pgina 86 de 114 -
con interfaz sobrecargado intilmente (ciertos juegos dejan de ser tratados por completo unos meses
despus de su salida, su presencia en la lista de palabras-clave mostrada cada vez, resulta intil).

VI.4. Despliegue de la estructura
Una vez determinada la estructura del sitio web en el artculo anterior, entramos al espacio privado
de SPIP, e introducimos los elementos necesarios.
Siempre es una tarea ingrata; pero es indispensable antes de redactar el menor artculo e incluso de
crear los esqueletos. Los elementos que vamos a crear a partir de ahora servirn de base a los siguien-
tes.
VI.4.1. La estructura de las secciones
Empecemos por crear la jerarqua temtica de secciones (segn las grandes categoras de juegos).
Esto es cuestin de gustos personales; pero esta puede ser una idea (no exhaustiva) del resultado:
Accin/aventura
o Exploracin y enigmas
o FPS (Tipo Quake)
o RPG (Juegos de rol)
o Supervivencia y terror
Combate
o 2D
o 3D
Juegos pedaggicos
o Lectura
o Matemticas
o Fsica
o Cultura
Plataformas
o 2D
o 3D
Deportes
o Carreras
S Formula 1
S Rallye
S Gran Turismo
o Ftbol
o Esqu
o Tenis
Estrategia
o Rompecabezas
o Juegos de cartas
o Juegos de tablero
o Wargames
o Estrategia en tiempo real
Esta estructura no est completa; pero eso es lo interesante: podemos modificarla fcilmente en fun-
cin de nuestras necesidades, sin que por ello tengamos que modificar el principio general ni los esque-
letos. Cuando una seccin contenga demasiados juegos, se pueden crear subsecciones para evitar que
nos salgan listas demasiado largas (por ejemplo, si hay demasiados juegos de cartas, se pueden crear
subsecciones Poker, Bridge, Solitario dentro de esta seccin y mover los juegos).
Habamos previsto crear a continuacin secciones para cada juego (una seccin Resident Evil, una
seccin Alone in the dark...). Pero como estas secciones no afectan a la estructura fija del sitio
web, las dejaremos para el siguiente artculo.
VI.4.2. Las mquinas
Como habamos explicado antes, los tipos de mquina se indicarn por medio de palabras-clave.
Para empezar hay que crear un grupo de palabras, que vamos a llamar Mquinas.
A continuacin creamos una palabra-clave para cada mquina dentro del grupo Mquinas. Queda-
r asi:

- Pgina 87 de 114 -

En este tipo de sitios web, es frecuente indicar el tipo de mquina al que nos referimos mediante un
pequeo logo. As que vamos a atribuir a cada palabra clave el correspondiente logo (considerando este
logo como obligatorio; en los esqueletos, a menudo, mostraremos el logo en vez de escribir el nombre
de la mquina). Para asegurar la coherencia grfica, estos logos deben ser aproximadamente del mismo
tamao (por ejemplo unos 25 pixels x 25 pixels):

VI.4.3. Los tipos de artculo
De la misma manera definiremos ahora una lista de los tipos de artculo. Quedar asi:

No atribuimos un logo a estas palabras-clave (tu puedes decidir hacerlo, al igual que crear elementos
grficos de navegacin).
Un matiz (que veremos de manera ms evidente enseguida) sobre estas palabras en relacin con las
palabras-clave de las mquinas: estas palabras se usarn por su nombre en los esqueletos; por lo tanto
hay que elegir un nombre y mantenerlo (si, en el caso anterior, Playstation se podr cambiar despus
por PS One sin dificultad, aqu no se puede cambiar Soluc. por Solucin sin tener que modificar
los esqueletos).
Fjate en que el grupo de palabras se llama Type_article, y no Tipo de artculo; ya que escribi-
remos directamente este ttulo en los esqueletos, y los nombres con espacios, acentos y otros signos or-
togrficos son menos manejables.

VI.5. Escribir los artculos
Ahora es el momento de crear los primeros artculos. Esta etapa no slo nos va a permitir explicar el
planteamiento en el tutorial, sino que es indispensable de todos modos para que se pueda trabajar sobre
los esqueletos.
N.B. Si ya has manipulado los esqueletos de SPIP, sabrs que no se puede trabajar realmente
hasta que se ha publicado al menos un artculo. Incluso aconsejamos que, mientras se reali-
za la interfaz grfica, se escriba el mximo nmero de artculos posible, con varios artculos
por seccin, varias secciones... e incluso artculos de diferente tamao, con o sin antettulo y
subttulo, con o sin introduccin, descriptivo... Cuanto ms numerosos y diferentes en forma-
to sean estos artculos, mejor se podr crear una interfaz flexible (es decir, adaptada a to-
dos los casos posibles de artculo). Naturalmente, para las pruebas de interfaz, estos artcu-

- Pgina 88 de 114 -
los pueden ser realizados con texto aleatorio (copiar-pegar artculos tomados de Internet,
caracteres sin sentido, latinajos...).
VI.5.1. Una seccin por juego
Habamos decidido que todos los artculos relativos a un juego se agrupan en una misma seccin. Por
lo tanto, antes de escribir el primer artculo dedicado a un juego, hace falta crear una seccin que lleve
el nombre de ese juego (para los siguientes artculos, evidentemente se pondrn en la misma seccin).
La seccin va a desempear un papel muy importante: es ella quien da el nombre del juego, y pro-
porciona el logo, para todos los artculos que contiene. Por ejemplo, vamos a crear una seccin Resi-
dent Evil: Code Veronica y vamos a atribuirle un logo. Desde ahora, cuando introduzcamos un artculo
que contenga la solucin del juego en esta seccin, no hace falta que el artculo recuerde el nombre del
juego (el artculo se llamar simplemente Solucin completa), y no ser obligatorio atribuirle un logo.
Vamos a situarnos en la seccin:
Accin/aventura | Survival horror
y vamos a crear una nueva subseccin titulada Resident Evil: Code Veronica.
Pondremos una descripcin para esta seccin, presentando la trama general del juego.
Para finalizar, utilizamos una captura de pantalla para crear el logo de la seccin.
N.B. Estos logos de seccin despus sern muy utilizados para obtener la interfaz grfica del si-
tio. Nuestro consejo es elegir arbitrariamente (en funcin de las exigencias grficas) un for-
mato nico para todos los logos. Esto facilitar la creacin de una interfaz coherente. Elegi-
remos por ejemplo que todos los logos de las secciones tengan 120 x 160 pixels.
Esto nos da:

VI.5.2. La prueba completa del juego!
Con esta seccin creada, ya podemos escribir nuestro primer artculo sobre este juego.
N.B. Subrayemos aqu el primer inconveniente de este sitio: es necesario esperar (y explicar
esto a los dems participantes del sitio) a crear una seccin antes de que se pueda escribir el
primer artculo sobre un juego. Est claro que la accin natural sera escribir el artculo direc-
tamente en la seccin Survival horror, y ponerle como ttulo (o como antettulo) el nombre
del juego. Esto puede ser conveniente para un sitio ms sencillo (que trate de una sola m-
quina, que no tenga nada ms que pruebas o soluciones...). Pero, como estamos interesados
en un sitio ms ambicioso, esto nos lleva a un mayor formalismo en la estructuracin.
Para empezar, basta con escribir el texto, integrar las imgenes... nada fuera de lo normal.
Ahora, atencin, hay dos puntos que se deben determinar de inmediato, y a los que es necesario
atenerse sistemticamente en lo sucesivo:
se indica el nombre del juego en las cajas del propio artculo? (en ttulo, antettulo, subttulo...)
es obligatoria la descripcin?
Esto determina la forma en que trataremos los esqueletos a continuacin. Puedes elegir cualquiera
de las posibilidades, bastar con realizar despus tus esqueletos en consecuencia.
En los ejemplos que se darn en este tutorial, hemos decidido que el propio artculo no indicar el
nombre del juego (ni en el ttulo, ni en los ante/subttulos); el nombre se tomar sistemticamente de la
seccin que contiene el artculo. Y en nuestros esqueletos, usaremos el #DESCRIPTIF; donde sea
aconsejable ponerlo; si no, el espacio reservado a la descripcin estar vaco.
Por ltimo, no es obligatorio atribuir un logo al propio artculo, ya que tomaremos el de la seccin.
Pero si se decide poner un logo en el artculo, aconsejamos respetar el formato adoptado para los logos
de las secciones (en nuestro caso 120 x 160 pixels).

- Pgina 89 de 114 -
Aproximadamente, esto nos dar:

El ttulo del artculo no es el nombre del juego, sino un titular (por ejemplo: El retorno de Claire
Redfield);
existe una descripcin;
slo usamos la fecha de publicacin en lnea (y no la fecha de publicacin anterior - incluso
hemos desactivado esta posibilidad en la Configuracin precisa); esta fecha corresponde bien a la
de publicacin del artculo, o bien a la de actualizacin del sitio Web (la gestin de las fechas de sa-
lida comercial del juego se tratar ms adelante);
con los autores, trabajaremos tambin de la manera habitual: el autor es el redactor que ha escrito
el artculo en el sitio (las pruebas, las noticias...). Aqu no intentes indicar un autor del juego u
otra sutileza.
VI.5.3. Para qu mquina(s)? Qu tipo de artculo?
Ahora queda indicar a qu mquina(s) se refiere el artculo, y de qu tipo de artculo se trata.
Para ello, vamos a utilizar los mens desplegables Aadir una palabra clave. Vemos que es bien
prctico...

Para este juego, consideraremos que la prueba sirve igual para la versin Dreamcast que para la
versin Playstation 2. Si se considera que ambas versiones son suficientemente diferentes, tambin se
puede escribir una prueba distinta para cada mquina, bastar con seleccionar slo una mquina por ar-
tculo.
En cuanto al tipo de artculo, se trata de una prueba.
Esto nos da:


- Pgina 90 de 114 -
Nuevamente hay que subrayar la necesidad de formalizar estrictamente la manera de publicar un ar-
tculo. Antes de cualquier publicacin, es necesario comprobar la presencia de las palabras clave necesa-
rias.
No es realmente obligatorio indicar la mquina (el artculo aparecer igual en el sumario); pero su
ausencia har la interfaz incoherente (ciertos artculos indican las mquinas, otros no) y el artculo no
estar referenciado en la navegacin por mquina. Es posible indicar varias mquinas para un mismo
artculo.
El tipo de artculo es indispensable. A continuacin veremos que se hace un uso intensivo de los ti-
pos de artculo. En caso de olvido, hay riesgo de que el artculo pura y simplemente no aparezca en el si-
tio pblico. Para un artculo, slo hay que indicar un tipo de artculo.
Una vez hecho esto, crea otros artculos, con diferentes formatos, algunos con varias mquinas, con
diferentes tipos de artculo... En particular, intenta crear una seccin completa (con todos los tipos de
artculo), y enriquece las secciones cercanas a Survival horror, de forma que se pueda trabajar sobre
los esqueletos con secciones representativas de la actividad del sitio. Piensa tambin en modificar las fe-
chas de publicacin, para poder probar la clasificacin de los artculos y secciones.
Lo ideal es, en esta situacin, crear el mximo de artculos en todo el sitio, con fechas de publicacin
que cubran un periodo bastante largo.

VI.6. Primera versin del esqueleto de los artculos
Tenemos ya un sitio muy estructurado en el espacio privado y numerosos artculos publicados. Ya es
hora de plantearnos la creacin del primer esqueleto.
Muchas webmisstres empiezan esta etapa trabajando a partir de un esqueleto estndar que modifi-
can poco a poco.
Por nuestra parte no solo por las necesidades de este tutorial sino tambin por costumbre, vamos a
construir los esqueletos a partir de un documento totalmente vaco. Etapa por etapa, los diferentes bu-
cles van aadindose y al final se aade la interfaz grfica (en un principio cdigo HTML extremadamen-
te simple, la construccin grfica con tablas se aadir en la ltima etapa).
Este mtodo presenta varias ventajas:
Permite comprender bien la propia construccin intelectual durante el desarrollo de una pgina: qu
bucle depende de qu otro, etc;
Prescindiendo inicialmente de los elementos interfaz grfica es ms sencillo percibir la jerarqua de
las informaciones de la pgina; de este modo la interfaz grfica se desprende de ella de una manera
ms coherente;
El cdigo HTML generado es a menudo ms claro: las redundancias son menos numerosas (proble-
ma frecuente al copiar y pegar cdigo HTML).
En el texto siguiente utilizaremos pues cdigo HTML muy simple (sobre todo sin tablas). La creacin
de una interfaz grfica ms elaborada al final del proceso, se deja a eleccin personal.
Voluntariamente construiremos el cdigo etapa por etapa. Para evitar pginas interminables, cuando
enriquezcamos un bucle existente, no reproduciremos de manera ntegra la pgina sino nicamente la
parte que nos interesa. Para que sea ms fcil nos referiremos a menudo al nombre de los bucles ya
existentes.
VI.6.1. La pgina base
Empecemos pues con un fichero "article.html" virgen.
Extremadamente simple, he aqu la estructura mnima de un artculo sin ningn elemento de nave-
gacin:
<html>
<title>[#NOM_SITE_SPIP]
<BOUCLE_titre(ARTICLES){id_article}>#TITRE</BOUCLE_titre></title>
</head>

<body>
<blockquote>
<BOUCLE_principale(ARTICLES){id_article}>

[<h3>(#SURTITRE)</h3]
<h2>#TITRE</h2>
[<h3>(#SOUSTITRE)</h3>]

[(#DATE|affdate)]


- Pgina 91 de 114 -
[(#LOGO_ARTICLE_RUBRIQUE|right)]
[<b>(#CHAPO|justifier)</b>]
[(#TEXTE|justifier)]

[<p align="right" align='justify'>(#LESAUTEURS)]

[<hr>(#PS)]
[<hr>(#NOTES)]

</BOUCLE_principale>
</blockquote>
</body>
</html>
Fcil:
El bucle BOUCLE_titre permite publicar el ttulo del artculo en la cabecera de la pgina;
El bucle BOUCLE_principale contiene ntegramente toda la pgina; permite situar los otros bucles
en el interior del artculo seleccionado.
VI.6.2. Recuperar la informacin sobre el juego
El esqueleto precedente sera una buena base para un webzine estndar (toda la informacin necesa-
ria est en el artculo); pero, en nuestro caso, hay una informacin esencial que no se encuentra en el
artculo: de que juego se trata?
En efecto, hemos decidido que el ttulo del juego no se encuentra en el artculo sino en la seccin que
contiene este artculo. Podramos contentarnos con el bucle HIERARCHIE (JERARQUA); pero aqu
preferimos acostumbrarnos a lo que haremos sistemticamente en nuestros ejemplos: es necesario pa-
sar del artculo a su seccin para recuperar el nombre del juego. (Es el mismo principio para recuperar el
logo; con la diferencia de que la etiqueta #LOGO_RUBRIQUE_ARTICLE efecta automticamente esta
operacin.)
Ser pues una constante en este sitio web: los bucles ARTICLES contienen a menudo un bucle RU-
BRIQUES que permite "subir un paso", es decir, recuperar el ttulo del juego. Este ser el caso en las
pginas de las secciones, al igual que en la pgina de sumario.
Retomemos el principio del cdigo, al comienzo del BOUCLE_principale:
<BOUCLE_principale(ARTICLES){id_article}>
<BOUCLE_rubrique(RUBRIQUES){id_rubrique}>
<h1>#TITRE</h1>
</BOUCLE_rubrique>
...
Fjate que el #TITRE (TITULO) de la seccin se publica con el tamao mximo (h1); lgico, puesto
que se trata del ttulo del juego. El ttulo de la seccin, que habitualmente es slo un elemento de nave-
gacin en el sitio, es aqu la informacin principal del artculo.
Con el fin de obtener un esbozo de navegacin, mostramos la jerarqua. Vamos a iniciar esta jerar-
qua desde la seccin que contiene la subseccin actual, dado que lo que nos interesa es la lista de las
categoras de juegos (y ya sabemos el nombre de la ltima subseccin: el ttulo del juego). Nos coloca-
mos pues en el interior del BOUCLE_rubrique, aadimos una BOUCLE_rub_parent (que permite "su-
bir un paso" en la jerarqua) y a partir de ah llamamos a la jerarqua:
<BOUCLE_rubrique(RUBRIQUES){id_rubrique}>
<BOUCLE_rub_parent(RUBRIQUES){id_enfant}>
<BOUCLE_hierarchie(HIERARCHIE){id_rubrique}{": "}>
<a href="#URL_RUBRIQUE">#TITRE</a>
</BOUCLE_hierarchie>
</BOUCLE_rub_parent>
<h1>#TITRE</h1>
</BOUCLE_rubrique>
Dejemos esta pgina article.html en este punto. Nada de complicado por el momento. Falta la
gestin de las palabras clave, y los enlaces entre los artculos de una misma seccin (es decir, los que
tratan sobre un mismo juego).
Un solo detalle: hay que subir a la seccin que contiene el artculo para obtener el ttulo del juego, y
es necesario de nuevo "subir un paso" (la seccin que contiene la seccin que contiene el juego) antes
de poner en mar.

VI.7. La pgina de las secciones
Comenzaremos con un fichero rubrique.html virgen.

- Pgina 92 de 114 -
La primera versin de nuestro fichero ser muy sencilla. Integramos todo el BOUCLE_hierarchie,
que aqu no tiene ninguna particularidad.
<html>
<title>[#NOM_SITE_SPIP]
<BOUCLE_titre(RUBRIQUES){id_rubrique}>#TITRE</BOUCLE_titre></title>
</head>
<body>
<blockquote>
<BOUCLE_principale(RUBRIQUES){id_rubrique}>
<BOUCLE_hierarchie(HIERARCHIE){": "}>
<a href="#URL_RUBRIQUE">#TITRE</a>
</BOUCLE_hierarchie>
<h1>#TITRE</h1>
[(#LOGO_RUBRIQUE|right)]
[(#TEXTE|justifier)]
[<hr>(#NOTES)]
</BOUCLE_principale>
</blockquote>
</body>
</html>
Si instalas esta pgina en tu sitio, no va a ser nada espectacular...
VI.7.1. Los artculos que contiene esta seccin
Aadimos la lista de los artculos que contiene esta seccin. Situamos el bucle BOUCLE_articles al
final del BOUCLE_principale (despus del texto y sus notas).
...
<B_articles>Les articles :
<ul>
<BOUCLE_articles(ARTICLES){id_rubrique}>
<li> <a href="#URL_ARTICLE">#TITRE</a>
</BOUCLE_articles>
</ul>
</B_articles>
</BOUCLE_principale>
...
En realidad, este bucle no presenta gran inters: muestra los artculos sin un orden particular (no
tiene en cuenta las palabras clave de tipo de artculos). Por el momento, lo instalamos tal cual, con el fin
de tener una primera posibilidad de navegacin por el sitio. Retomaremos esta parte un poco ms ade-
lante en el tutorial.
VI.7.2. Las subsecciones
Ahora instalamos el bucle de las subsecciones (despus del bucle BOUCLE_articles):
...
<B_sous_rubriques>Les sous-rubriques :
<ul>
<BOUCLE_sous_rubriques(RUBRIQUES){id_parent}{par titre}>
<li> <a href="">#TITRE</a>
</BOUCLE_sous_rubriques>
</ul>
<B_sous_rubriques>
</BOUCLE_principale>
...
Y aqu se encuentra el primer problema verdadero de nuestro tutorial: las secciones que definen los
tipos de juego estn mezcladas con las secciones dedicadas directamente a los juegos.
Por ejemplo, en la estructura de demostracin, la seccin Accin/aventura contiene a la vez, pre-
sentadas exactamente de la misma manera:
dos subsecciones temticas (Exploracin y enigmas y Survival horror),
y dos secciones de juegos (Devil May Cry y Soul Reaver 2).
La presentacin del bucle anterior nos da la lista:
Devil May Cry,
Exploracin y enigmas,
Soul Reaver 2,
Survival horror.

- Pgina 93 de 114 -
Est claro que es completamente necesario distinguir con claridad las secciones categoras de jue-
gos (tiles esencialmente para la navegacin) y las secciones de juegos (que nos dan el ttulo de los
juegos).
Para resolver esta dificultad, vamos a usar el sistema de los bucles. No har falta ningn truco in-
formtico, slo ser necesario entender bien la lgica del sitio y la lgica de los bucles.
La lgica del sitio: una seccin Juego es una seccin que contiene artculos; una seccin de cate-
gora de juegos no contiene artculos directamente. Es la definicin de nuestro sitio: todo artculo rela-
tivo a un juego est situado en una seccin que lleva el nombre del juego; de igual forma una seccin de
categora de juego no contiene ms que subsecciones de categoras y secciones que llevan el nombre de
los juegos; nunca artculos directamente (est bien claro?). Por ejemplo, en nuestro caso:
Soul Reaver 2 y Devil May Cry contienen los artculos relacionados con estos juegos (pruebas,
presentaciones, etc.);
Survival horror y Exploracin y enigmas por definicin no contienen artculos. Si hay dos jue-
gos en Survival horror, los artculos relacionados estn en las subsecciones que lleven el nombre
de esos juegos, nunca directamente en la seccin Survival....
El objetivo de la maniobra consistir,por lo tanto, en separar las secciones sin artculos de las seccio-
nes con artculos. Y lo ms sencillo es hacer dos bucles diferentes.
VI.7.3. Las secciones sin artculos
Comencemos por las subsecciones que no contienen artculos (es decir, las grandes categoras de ti-
po Survival horror, Exploracin...). Modificamos el bucle BOUCLE_sous_rubriques as:
<BOUCLE_sous_rubriques(RUBRIQUES){id_parent}{par titre}>
<BOUCLE_sans_articles(ARTICLES){id_rubrique}>
</BOUCLE_sans_articles>
<h3><a href="#URL_RUBRIQUE">#TITRE</a></h3>
<//B_sans_articles>
</BOUCLE_sous_rubriques>
El principio de este truco es sencillo:
dentro del bucle BOUCLE_sous_rubriques, se inserta un nuevo BOUCLE_sans_articles, que re-
cupera los artculos que contiene aquel. Fjate que el interior del BOUCLE_sans_articles est va-
co: si las subsecciones contienen artculos, estos no se muestran (el bucle slo sirve para controlar
su presencia);
el #TITRE del BOUCLE_sous_rubriques se inserta en el texto opcional sin del BOU-
CLE_sans_articles. Justo antes de <//B_sans_articles>. As, el ttulo de la seccin slo se
muestra si BOUCLE_sans_articles no contiene ningn artculo (es decir, si el propio BOU-
CLE_sous_rubriques no contiene ningn artculo).
El bucle BOUCLE_sous_rubriques, recupera absolutamente todas las secciones (incluida la de los
juegos). Pero el ttulo #TITRE (con el enlace de hipertexto) slo se muestra si el BOU-
CLE_sans_articles est vaco.
VI.7.4. Las secciones de juego (con artculos)
Aplicamos el principio exactamente a la inversa en un BOUCLE_jeux (que podemos situar justo an-
tes del BOUCLE_sous_rubriques).
<BOUCLE_jeux(RUBRIQUES){id_parent}{par titre}>
<B_avec_articles>
<h4><a href="#URL_RUBRIQUE">#TITRE</a></h4>
[(#LOGO_RUBRIQUE|right)]
<ul>
<BOUCLE_avec_articles(ARTICLES){id_rubrique}>
<li><a href="#URL_ARTICLE">#TITRE</a>
</BOUCLE_avec_articles>
</ul>
</B_avec_articles>
</BOUCLE_jeux>
Esta vez, el #TITRE de la seccin est situado en el texto condicional anterior; se muestra el
#LOGO_RUBRIQUE (evidentemente, al final, harn falta unas bonitas tablas para evitar las superposi-
ciones desafortunadas). Y, de paso, se aprovecha para mostrar la lista de los artculos del BOU-
CLE_avec_articles.
El BOUCLE_jeux y el BOUCLE_sous_rubriques son en principio totalmente idnticos: sus criterios
son los mismos. Dentro de estos bucles, por lo tanto, se tratan las mismas secciones. En cambio, los bu-
cles BOUCLE_avec_articles y BOUCLE_sans_articles sirven de filtros: toman cada una de las sec-
ciones de BOUCLE_jeux y BOUCLE_sous_rubriques, y verifican la presencia o no de artculos.

- Pgina 94 de 114 -
Se hubiera podido usar aqu el criterio {doublons}? No, porque el primer bucle mostrado (BOU-
CLE_sous_rubriques) trata todas las subsecciones (solamente el ttulo de estas subsecciones se mues-
tra o no segn los casos). Atribuirle un criterio {doublons} impedira tratar despus ninguna de estas
subsecciones. A continuacin, el BOUCLE_jeux asociado a este criterio de {doublons} intentara recu-
perar todas las subsecciones que no hayan sido tratadas por el primer bucle; pero todas las subseccio-
nes han sido tratadas. El BOUCLE_jeux no podra mostrar absolutamente nada.
Dejaremos ahora esta pgina rubrique.html para retomarla ms tarde.

VI.8. Las palabras clave en los artculos
Volvamos a nuestros artculos... Ahora vamos a aprovechar las palabras clave para determinar la o
las mquinas a las que se refiere, para despus gestionar inteligentemente los enlaces hacia el resto
de artculos relativos al mismo juego.
VI.8.1. Las mquinas
Es muy sencillo indicar qu mquinas estn relacionadas: se trata de una simple aplicacin del bucle
(MOTS). Introducimos el siguiente bucle en el artculo (por ejemplo, entre el #SOUSTITRE y la #DA-
TE):
<BOUCLE_machines(MOTS){id_article}{type=Machines}>
[(#LOGO_MOT|left)]
</BOUCLE_machines>
Slo mostraremos el logo de la mquina. (Evidentemente, una vez terminado todo el proceso de
creacin de los bucles, sera conveniente retocar la interfaz grfica...)
VI.8.2. En la misma seccin, sobre el mismo juego
Tampoco es mucho ms complicado mostrar el resto de artculos que contiene la misma seccin.
Comenzamos por modificar la llamada del BOUCLE_principale con un {doublons}, para evitar que
luego se cree un enlace hacia el artculo que ya se est viendo (esto no es que sea malo; pero no queda
demasiado bien):
<BOUCLE_principale(ARTICLES){id_article}{doublons}>
Ahora podramos contentarnos simplemente con recuperar todos los artculos de la misma seccin
(simplemente, con un bucle (ARTICLES){id_rubrique}{doublons}). Sin embargo, aqu queremos di-
ferenciar claramente los tipos de artculo, no solamente para tener una interfaz ms clara, sino tambin
para poder realizar enlaces y presentaciones diferentes segn el caso.
Comencemos por un bucle para las otras pruebas del mismo juego. Siempre insertaremos este bucle
dentro del BOUCLE_principale; por ejemplo justo despus de #NOTES.
<B_tests><p>Otras pruebas de este juego:
<ul>
<BOUCLE_tests(ARTICLES){id_rubrique}{titre_mot=Test}{doublons}>
<li><a href="#URL_ARTICLE">#TITRE</a>
</BOUCLE_tests>
</ul>
</B_tests>
(Para comprobar el funcionamiento de este bucle, crea varios artculos de tipo Test en la misma
seccin. Incluso puedes atribuirles mquinas diferentes: un test de la versin PC, un test de la versin
Dreamcast, un test de la versin Playstation...)
Como puedes constatar, es muy sencillo:
se llama a los (ARTICLES) segn el criterio {id_rubrique} (es decir los artculos pertenecientes a
la misma seccin);
se aade la restriccin siguiente: el ttulo de una de las palabras clave asignadas a estos artculos
debe ser Test (nota aqu lo importante que es respetar la eleccin inicial del nombre de la palabra
clave, y no modificarla despus);
el criterio {doublons} evita que se vea de nuevo el artculo principal.
Los textos opcionales anterior y posterior (los <ul>...</ul>) slo sirven para la presentacin grfi-
ca.
N.B. Este bucle utiliza una caracterstica introducida en la versin SPIP 1.3: en un bucle (AR-
TICLES), puedes seleccionar los artculos segn el ttulo de una palabra clave (con el criterio
titre_mot), o segn un grupo de palabras (criterio type_mot).
Sin embargo, este bucle no es suficiente: debido a que se trata de pruebas del mismo juego, pero en
distintas mquinas, es necesario indicar a qu mquina se refiere. Basta con aadir un bucle de palabras

- Pgina 95 de 114 -
(como el de ms abajo) dentro de este BOUCLE_tests y mostrar los logos correspondientes. De paso,
aadimos la fecha de publicacin del artculo.
El cdigo pasa a ser:
<B_tests><p>Otras pruebas de este juego:
<ul>
<BOUCLE_tests(ARTICLES){id_rubrique}{titre_mot=Test}>
<li>
<BOUCLE_tests_machines(MOTS){id_article}{type=Machines}>
[(#LOGO_MOT)]
</BOUCLE_tests_machines>
<a href="#URL_ARTICLE">#TITRE</a> - [(#DATE|affdate)]
</BOUCLE_tests>
</ul>
</B_tests>
Lo mismo se hace para los previos, las soluciones y los trucos:
<B_previews><p>Los anlisis previos de este juego:
<ul>
<BOUCLE_previews(ARTICLES){id_rubrique}{titre_mot=Preview}>
<li>
<BOUCLE_previews_machines(MOTS){id_article}{type=Machines}>
[(#LOGO_MOT)]
</BOUCLE_previews_machines>
<a href="#URL_ARTICLE">#TITRE</a> - [(#DATE|affdate)]
</BOUCLE_previews>
</ul>
</B_previews>

<B_soluces><p>Las soluciones de este juego:
<ul>
<BOUCLE_soluces(ARTICLES){id_rubrique}{titre_mot=Soluce}>
<li>
<BOUCLE_soluces_machines(MOTS){id_article}{type=Machines}>
[(#LOGO_MOT)]
</BOUCLE_soluces_machines>
<a href="#URL_ARTICLE">#TITRE</a> - [(#DATE|affdate)]
</BOUCLE_soluces>
</ul>
</B_soluces>

<B_astuces><p>Los trucos y atajos de este juego :
<ul>
<BOUCLE_astuces(ARTICLES){id_rubrique}{titre_mot=Astuces}>
<li>
<BOUCLE_astuces_machines(MOTS){id_article}{type=Machines}>
[(#LOGO_MOT)]
</BOUCLE_astuces_machines>
<a href="#URL_ARTICLE">#TITRE</a> - [(#DATE|affdate)]
</BOUCLE_astuces>
</ul>
</B_astuces>
(Estos tres bucles funcionan exactamente de la misma forma que el BOUCLE_tests.)
Faltan las noticias... Aqu vamos a proceder de forma muy diferente. Como las noticias generalmente
son una informacin corta (anuncio de un retraso, rumores...), ser ventajoso presentarlas todas re-
unidas en una misma pgina (es posible que no; pero, por necesidades de este tutorial, digamos que es
mejor).
Este trocito de cdigo se encargar del asunto:
<BOUCLE_news(ARTICLES){id_rubrique}{titre_mot=News}{doublons}{par
date}{inverse}{0,1}>
<p><a href="news_jeu.php3?id_rubrique=#ID_RUBRIQUE">Las noticias de este
juego</a> - ltima actualizacin: [(#DATE|affdate)]
</BOUCLE_news>
El truco que permite obtener un cdigo tan corto:
para empezar, no nos importa a qu mquina se refiere; as se suprime un bucle;
el BOUCLE_news recupera el ltimo artculo ({par date}{inverse}{0,1}) asociado con la pala-
bra clave News. Un slo artculo, es ms que suficiente para saber si hay una pgina dedicada a

- Pgina 96 de 114 -
las noticias; y cuando se recupera la noticia ms reciente, mostrar su fecha equivale a anunciar la
ltima actualizacin de la pgina de las noticias...
De manera ms elegante, se hubiese podido realizar un BOUCLE_news vaco e insertar el enlace de
hipertexto en el texto opcional del bucle.
Importante: el enlace de hipertexto apunta hacia una pgina news_jeu.php3, con la
id_rubrique de la seccin actual. A continuacin tendremos que crear el esqueleto corres-
pondiente.
VI.8.3. Los juego de la misma categora
Para terminar, queremos mostrar los juego de la misma categora (por ejemplo, los otros juego del
gnero Survival horror).
Para empezar, vamos a utilizar el mtodo que consiste en subir un paso (para pasar de la seccin
del artculo a la seccin de la categora de este juego). Luego vamos a recuperar el mtodo utilizado en
las secciones para mostrar por separado las secciones que contengan artculos (es decir las secciones di-
rectamente dedicadas a un juego).
El cdigo es:
<BOUCLE_rub_act(RUBRIQUES){id_rubrique}{doublons}>
<BOUCLE_jeux(RUBRIQUES){meme_parent}{doublons}{par date}{inverse}>
<B_avec_articles>
<h4><a href="#URL_RUBRIQUE">#TITRE</a></h4>
<BOUCLE_avec_articles(ARTICLES){id_rubrique}{age < 90}>
</BOUCLE_avec_articles>
</BOUCLE_jeux>
</BOUCLE_rub_act>
Las sutilezas de este cdigo:
el BOUCLE_rub_act (que devuelve la seccin actual) contiene un {doublons} para evitar que
ahora se vea el juego principal;
lgicamente, el BOUCLE_jeux contiene tambin un {doublons}; cuidado: multiplicar los criterios
doublons puede crear dificultades. Si duplicas estos bucles en la misma pgina para otro uso, ten
cuidado de evitar este criterio;
el BOUCLE_avec_articles slo recupera artculos con una antigedad menor de 3 meses (90 das).
Efectivamente, aqu no queremos mostrar todos los juegos de la misma categora, sino slo los que
se han modificado recientemente.

VI.9. Las palabras clave en las secciones
Volvamos al fichero rubrique.html. Lo habamos dejado con un malvado BOUCLE_articles, sin inte-
rs para nuestro sitio, ya que no clasificaba los artculos por categoras.
La cosa marcha bien: acabamos de programar esa funcin para los artculos!
Basta, por lo tanto, con copiar y pegar el bloque que nos interesa, insertarlo en lugar del BOU-
CLE_articles (el cual, por lo tanto, desaparece), y ver si hace falta modificarlo. Esto nos da:
<BOUCLE_les_articles(RUBRIQUES){id_rubrique}>
<B_tests><p>Las pruebas de este juego:
<ul>
<BOUCLE_tests(ARTICLES){id_rubrique}{titre_mot=Test}>
<li>
<BOUCLE_tests_machines(MOTS){id_article}{type=Machines}>
[(#LOGO_MOT)]
</BOUCLE_tests_machines>
<a href="#URL_ARTICLE">#TITRE</a> - [(#DATE|affdate)]
</BOUCLE_tests>
</ul>
</B_tests>

<B_previews><p>Los previos de este juego:
<ul>
<BOUCLE_previews(ARTICLES){id_rubrique}{titre_mot=Preview}>
<li>
<BOUCLE_previews_machines(MOTS){id_article}{type=Machines}>
[(#LOGO_MOT)]
</BOUCLE_previews_machines>
<a href="#URL_ARTICLE">#TITRE</a> - [(#DATE|affdate)]
</BOUCLE_previews>

- Pgina 97 de 114 -
</ul>
</B_previews>

<B_soluces><p>Las soluciones de este juego :
<ul>
<BOUCLE_soluces(ARTICLES){id_rubrique}{titre_mot=Soluce}>
<li>
<BOUCLE_soluces_machines(MOTS){id_article}{type=Machines}>
[(#LOGO_MOT)]
</BOUCLE_soluces_machines>
<a href="#URL_ARTICLE">#TITRE</a> - [(#DATE|affdate)]
</BOUCLE_soluces>
</ul>
</B_soluces>

<B_astuces><p>Los trucos y atajos de este juego:
<ul>
<BOUCLE_astuces(ARTICLES){id_rubrique}{titre_mot=Astuces}>
<li>
<BOUCLE_astuces_machines(MOTS){id_article}{type=Machines}>
[(#LOGO_MOT)]
</BOUCLE_astuces_machines>
<a href="#URL_ARTICLE">#TITRE</a> - [(#DATE|affdate)]
</BOUCLE_astuces>
</ul>
</B_astuces>

<BOUCLE_news(ARTICLES){id_rubrique}{titre_mot=News}{par
date}{inverse}{0,1}>
<p><a href="news_jeu.php3?id_rubrique=#ID_RUBRIQUE">Las noticias de este
juego</a> - ltima actualizacin: [(#DATE|affdate)]
</BOUCLE_news>
</BOUCLE_les_articles>
Las modificaciones aportadas:
no hace falta cambiar la llamada a {id_rubrique}, porque ya era en esta seccin en lo que nos ba-
samos para los artculos;
suprimimos todos los {doublons}, ya que aqu no son de ninguna utilidad (no hay ningn artculo
que ya se haya mostrado); por eso no hay que correr el riesgo de tener conflictos con futuros
desarrollos de nuestra pgina si no sirven para nada;
el conjunto se instala en un gran BOUCLE_les_articles. Qu hace este bucle? Estrictamente na-
da: devuelve la seccin en la que nos encontramos ya. Pero nos ser til despus...
El otro punto oscuro de nuestra pgina era el BOUCLE_jeux, en el cual el BOUCLE_avec_articles
aprovechaba su paso para mostrar la lista de artculos de la subseccin sin ordenar. Claro que lo que
acabamos de hacer ms arriba es ordenar los artculos de una seccin.
Por lo tanto, modifiquemos el BOUCLE_jeux as:
<BOUCLE_jeux(RUBRIQUES){id_parent}{par titre}>
<B_avec_articles>
<h4><a href="#URL_RUBRIQUE">#TITRE</a></h4>
[(#LOGO_RUBRIQUE|right)]
<ul>
<BOUCLE_avec_articles(ARTICLES){id_rubrique}{0,1}>
<BOUCLE_rec(boucle_les_articles)></BOUCLE_rec>
</BOUCLE_avec_articles>
</ul>
</B_avec_articles>
</BOUCLE_jeux>
El BOUCLE_avec_articles ahora se ejecuta una sola vez (sobre un solo artculo), lo que es suficien-
te para saber si la seccin contiene un artculo. Se ve que aparece un BOUCLE_repeter_articles: se
trata de un bucle que reproduce exactamente el comportamiento del BOUCLE_les_articles, desde el
punto donde se encuentra (es decir que no arranca desde la seccin principal, sino desde la subseccin).
El inters de limitar ahora el BOUCLE_avec_articles a un elemento nico est claro: sin este lmite, el
BOUCLE_rec se ejecutara tantas veces como artculos haya en la subseccin.
Evidentemente, el resultado grfico de este ejemplo es horroroso: demasiado recargado, poco claro.
Digamos que era interesante utilizar un bucle recursivo en este tutorial...


- Pgina 98 de 114 -
VI.10. La interfaz de las noticias
VI.10. Todas las noticias sobre un juego
En los esqueletos de los artculos y de las secciones, hemos insertado un enlace hacia una pgina
news_jeu.php3, que debe presentar a la vez todas las noticias relativas a un juego.
Hagamos este esqueleto...
Para empezar (segn el principio de parejas de ficheros para manejar los esqueletos de SPIP), vamos
crear el fichero de llamada news_jeu.php3. Basta con copiar, por ejemplo el fichero arti-
cle.php3 (proporcionado con SPIP) y de modificar algunos elementos. Este es el contenido del fichero
news_jeu.php3:
<?
$fond = "news_jeu";
$delais = 24 * 3600;
include ("inc-public.php3");
?>
El fichero de esqueleto utilizado ser entonces news_jeu (.html, o una de las variantes espec-
ficas para una seccin si es necesario, como news_jeu-52.html...).
Digamos que el esqueleto ser news_jeu.html. Este fichero se usa con una variable de seccin,
ya que es justo la seccin la que contiene el nombre del juego y la totalidad de los artculos relativos al
juego. Visto y no visto, vamos a copiar el contenido del fichero rubrique.html y a suprimir lo que no
nos hace falta:
<html>
<title>[#NOM_SITE_SPIP]
<BOUCLE_titre(RUBRIQUES){id_rubrique}>#TITRE</BOUCLE_titre></title>
</head>

<body>
<blockquote>
<BOUCLE_principale(RUBRIQUES){id_rubrique}>
<BOUCLE_hierarchie(HIERARCHIE){": "}>
<a href="#URL_RUBRIQUE">#TITRE</a>
</BOUCLE_hierarchie>
<h1><a href="#URL_RUBRIQUE">#TITRE</a></h1>
[(#LOGO_RUBRIQUE|right)]
</BOUCLE_principale>
</blockquote>
</body>
</html>
Esto muestra el ttulo de la seccin (es decir el nombre del juego), el logo de la seccin, y la jerar-
qua. La nica modificacin: el ttulo del juego es un enlace de hipertexto para volver a la pgina princi-
pal (hasta el acabado grfico del sitio, puede ser preferible un enlace ms discreto).
Lo que nos falta por hacer: insertar un nico bucle que mostrar todos los artculos de esta seccin
ligados a la palabra clave News. Dentro del BOUCLE_principale, bajo el #LOGO_RUBRIQUE, bas-
ta con poner:
<BOUCLE_news(ARTICLES){id_rubrique}{titre_mot=News}{par date}{inverse}>
<hr><h3>#TITRE</h3>
[(#DATE|affdate)]
<BOUCLE_news_machines(MOTS){id_article}{type=Machines}>
[(#LOGO_MOT|right)]
</BOUCLE_news_machines>
[(#TEXTE|justifier)]
[<p><font size=2>(#PS)</font>]
[<p>(#NOTES)]
</BOUCLE_news>
El BOUCLE_news hace todo el trabajo: muestra el ttulo de cada noticia, su texto, y si es necesario
el post-scriptum y las notas de pie de pgina.
Como es habitual, el BOUCLE_news_machines muestra el logo de las mquinas relacionadas con
la noticia.
Consideremos terminada nuestra pgina de noticias. Naturalmente, se le podrn aadir enlaces hacia
los artculos de la misma seccin (las pruebas, los previos, las soluciones...).

- Pgina 99 de 114 -




VII. Tucos y utilidades
Algunos ejemplos de bucles, y otros trozos de esque-
letos para aprender a usar el lenguaje de SPIP resolvien-
do casos particulares.

- Pgina 100 de 114 -
VII.1. Ver el nmero de mensajes del foro unido a un
artculo
Esta es una pequea acrobacia.
A primera vista, es muy sencillo saber el nmero de elementos de un bucle: basta con utilizar la bali-
za #TOTAL_BOUCLE de SPIP. Esta baliza no slo se puede usar dentro del bucle; sino tambin (y es el
nico caso) en el texto condicional anterior (el texto que se muestra antes del bucle si este contiene al-
gn elemento) y el texto condicional alternativo (el texto que se muestra si el bucle est vaco).
Debemos crear un bucle de tipo FORUMS (vase cap. II.9. El bucle FORUMS (foros)), unido a un
artculo, de forma que podamos contar el nmero de resultados.
Primera sutileza: queremos todos los mensajes de los foros unidos al artculo, contando las respues-
tas a los mensajes, las respuestas a las respuestas...
Un bucle sencillo de tipo:
<BOUCLE_forum(FORUMS){id_article}>
contiene nicamente los mensajes que responden al artculo. Habitualmente se incluye un segundo
bucle dentro del mismo, para acceder a las respuestas a estos mensajes... Aqu, deseamos que el bucle
seleccione absolutamente todos los mensajes unidos al artculo, sin tener en cuenta su jerarqua. Para
ello, hace falta especificar el criterio plat que sirve para mostrar un foro sin ordenar por hilos. Lo que
nos da:
<BOUCLE_forum(FORUMS){id_article}{plat}>
Veamos ahora cmo contar los elementos que contiene. La dificultad, aqu, es que precisamente este
bucle no debe mostrar nada! No muestra el ttulo de los mensajes, se evitar incluso que haga aparecer
espacios o saltos de lnea (si no, tu pgina HTML contendr decenas de lneas vacias, poco elegantes). El
interior del bucle no muestra, por lo tanto, rigurosamente nada; pero antes del bucle se debe mostrar el
nmero de resultados.
Una sutileza que hay que comprender bien: el texto condicional alternativo se ve si el bucle no mues-
tra nada; por lo tanto, se ve incluso cuando el bucle selecciona los elementos (en este caso, los mensa-
jes del foro) pero no tiene ninguno que mostrar.
Por lo tanto, debemos situar #TOTAL_BOUCLE en el texto condicional alternativo. Si no hay ningn
mensaje en el foro unido al artculo, #TOTAL_BOUCLE estar vaco, y entonces no har falta mostrar el
texto que lo contiene (hay N contribuciones al foro) en este caso.
<BOUCLE_nb_forums(FORUMS){id_article}{plat}></BOUCLE_nb_forums>
[Hay (#TOTAL_BOUCLE) contribucin(es) al foro.]
<//B_nb_forums>

VII.2. Presentar los resultados de una bsqueda por
sectores
Es suficiente con incluir el bucle de bsqueda dentro de un bucle de tipo secciones, que seleccione
las secciones de primer nivel; en el bucle de bsqueda, aadimos el criterio id_secteur para limitar-
nos al sector actual.
<BOUCLE_secteurs(RUBRIQUES){racine}>
<B_recherche>
<b>#TITRE</b>
<ul>
<BOUCLE_recherche(ARTICLES){recherche}{id_secteur}{par points}{inverse}{0,5}>
<li><a href="#URL_ARTICLE">#TITRE </a>
</BOUCLE_recherche>
</ul><hr>
</B_recherche>
</BOUCLE_secteurs>
Destacamos que el ttulo del sector slo se ver si la bsqueda devuelve algn resultado para este
sector. Por otra parte, para cada sector no se ven ms que los cinco artculos mejor clasificados, en or-
den decreciente de pertinencia.
Pero ten cuidado, como la bsqueda se efecta tantas veces como sectores haya en tu sitio web,
existe el riesgo de que el clculo sea lento.


- Pgina 101 de 114 -
VII.3. No mostrar los artculos publicados hace ms
de un ao
Esto se consigue con el criterio age, que es la antigedad del artculo (calculada a partir de su fe-
cha de puesta en lnea en el espacio pblico) en nmero de das.
As, para conservar todos los artculos de la seccin actual desde hace menos de un ao, el criterio
de seleccin que nos interesa usar es: age.
<B_articles_recents>
<ul>
<BOUCLE_articles_recents(ARTICLES){id_rubrique}{age < 365}{par titre}>
<li>#TITRE</li>
</BOUCLE_articles_recents>
</ul>
</B_articles_recents>
Para considerar el tiempo desde la fecha de su primera publicacin, en lugar de la fecha de puesta en
lnea, hay que usar el criterio age_redac en lugar de age. La antigedad se indica en nmero de d-
as.
Fjate en que esta manipulacin se puede realizar con todo tipo de datos que tengan una fecha aso-
ciada (breves, foros...).

VII.4. Mostrar los ltimos artculos de los redactores
de cada seccin
SPIP te ofrece, por omisin, una pgina de autores que hace posible mostrar la lista de auto-
res/redactores que participan en tu sitio web, al igual que sus ltimos artculos.
Pero surge un problema cuando hay bastantes redactores que participan activamente en el sitio. En
este caso la pgina de autores acaba siendo interminable.
Sin embargo existe un medio de mostrar los ltimos envos de todos y cada uno de tus auto-
res/redactores.
Cmo se hace? Para empezar, se van a crear dos ficheros: un fichero myauteur.php3 y un fichero
myauteur.html
VII.4.1. Creacin del fichero myauteur.php3
En el fichero myauteur.php3 se escribe el siguiente cdigo:
<?php
$fond = "myauteur";
$delais = 24*3600;
include ("inc-public.php3");
?>
Creacin del fichero myauteur.html
En el fichero myauteur.php3 introducir los siguientes cdigos:
Justo despus de la baliza <body>, insertar
<BOUCLE_principale(AUTEURS){id_auteur}{unique}>
Justo antes de la baliza </body>, insertar
</BOUCLE_principale>
Este es el cdigo que se escribe en el cuerpo de la pgina HTML (no se puede determinar la seccin
porque, por omisin, la autora no est asociada con una seccin, sino con un artculo, el cdigo
puede parecer algo extravagante; pero devolver la seccin relativa al artculo):
Cdigo para mostrar el ltimo artculo
<B_appel_article>
ltimo artculo escrito por <BOU-
CLE_nom_auteur(AUTEURS){id_auteur}>[(#NOM)]</BOUCLE_nom_auteur><br>
<BOUCLE_appel_article(ARTICLES){id_auteur}>
<BOUCLE_appel_rubrique_article(RUBRIQUES){id_rubrique}{par titre}{doublons}>
[(#TITRE|majuscules)]
<ul>
<BOUCLE_rappel_article(ARTICLES){id_rubrique}{par
date}{inverse}{doublons}{0,15}>
<li><a href="#URL_ARTICLE">[(#TITRE)<br></a>]
</BOUCLE_rappel_article>

- Pgina 102 de 114 -
</ul>
</BOUCLE_appel_rubrique_article>
</BOUCLE_appel_article>
</B_appel_article>
Por el momento, este autor no ha escrito ningn artculo
<//B_appel_article>
Cdigo para mostrar un artculo al azar
<B_appel_article>

ltimo artculo escrito por <BOU-
CLE_nom_auteur(AUTEURS){id_auteur}>[(#NOM)]</BOUCLE_nom_auteur><br>
<BOUCLE_appel_article(ARTICLES){id_auteur}>
<BOUCLE_appel_rubrique_article(RUBRIQUES){id_rubrique}{par titre}{doublons}>
[(#TITRE|majuscules)]
<ul>
<BOUCLE_rappel_article(ARTICLES){id_rubrique}{par
hasard}{doublons}{0,15}>
<li><a href="#URL_ARTICLE">[(#TITRE)<br></a>]
</BOUCLE_rappel_article>
</ul>
</BOUCLE_appel_rubrique_article>
</BOUCLE_appel_article>
</B_appel_article>
Por el momento, este autor no ha escrito ningn artculo
<//B_appel_article>
VII.4.2. Y, para terminar
Ahora es necesario configurar la pgina de autores (la pgina donde se listan los diferentes autores)
para que, al pulsar sobre el enlace del autor, se dirija hacia la pgina myauteur donde se encontrarn
los ltimos artculos escritos por el mismo.
El enlace deber escribirse de la siguiente manera:
<a href="myauteur.php3?id_auteur=#ID_AUTEUR">nombre del enlace</a>

VII.5. Varios logos para el mismo artculo
Es frecuente que, para dinamizar la navegacin del sitio web, se desee utilizar diferentes logos (es-
pecialmente de distintos tamaos) para un mismo artculo en funcin del contexto en el cual aparece.
Por ejemplo, utilizar un logo grande en la pgina de inicio del sitio que pueda aadir valor al artculo
principal actual, y un logo pequeo para la navegacin general en el sitio.
Hasta hace poco, los usuarios haban creado algunos mtodos personales basados en el uso diferente
del logo normal y del logo de paso del ratn. En nuestro ejemplo, el logo normal utilizado como
logo pequeo, llamado desde la baliza #LOGO_ARTICLE_NORMAL; y en la portada, el logo de pa-
so del ratn llamado por la baliza #LOGO_ARTICLE_SURVOL para mostrar la versin grande del
logo. Este mtodo complica bastante el cdigo de los esqueletos, e impide el uso habitual de logos de
paso del ratn que SPIP proporciona automticamente. Adems es de una flexibilidad muy limitada.
Desde la versin [SPIP 1.4], es posible adjuntar documentos a los artculos (y, adems, a las sec-
ciones). A continuacin vamos a explicar cmo se pueden usar estos documentos adjuntos para crear
ms logos para un mismo artculo.
VII.5.1. Principio general
Seguiremos usando los dos logos del artculo para mostrar los logos normales (los que aparecen
en los enlaces de navegacin ms frecuentes, por ejemplo, en las pginas de las secciones), lo que
permite conservar la sencillez de gestin de los logos con SPIP y la gestin automtica del paso de
ratn (se vuelve al uso natural de las balizas #LOGO_ARTICLE, o #LO-
GO_ARTICLE_RUBRIQUE).
Adjuntaremos a los artculos un documento (por lo general una imagen en formato GIF, JPEG o
PNG) al cual daremos siempre el mismo nombre. Basta con mostrar este documento (haciendo una
llamada a su nombre) en el lugar del logo normal cuando se desee.
Este mtodo tambin permite crear tantos logos diferentes como se necesite para un mismo artculo
(no slo un logo grande y uno pequeo; sino incluso una imagen escaneada de un trabajo de im-
prenta creado para mostrar el ttulo, etc.).
Adems veremos cmo, gracias a los bucles de SPIP, se puede determinar con facilidad en los es-
queletos si ese logo grande (el documento que tiene el nombre que hemos elegido) est presen-
te, y actuar en consecuencia (mostrar en un lugar un logo normal, un texto especfico, o cual-
quier otro elemento grfico).

- Pgina 103 de 114 -
Por milagro de la tecnologa moderna, de los formatos propietarios y del acceso por banda ancha,
estas versiones especficas de los logos, al ser documentos adjuntos, pueden tener un formato dis-
tinto que las imgenes. De este modo se pueden mostrar, en lugar de logos grandes, animacio-
nes de Flash o Shockwave, imgenes de vdeo...
VII.5.2. Situacin de los documentos y eleccin de sus nombres
Decidimos (arbitrariamente, se puede elegir el que se desee) que los documentos adjuntos usados
como logo grande se titularn todos spip_logo; este documento spip_logo se situar en
la pgina del sumario de nuestro sitio web en lugar del logo normal.
Como en este ejemplo utilizaremos ms adelante otros nombres para crear efectos ms sutiles,
decidimos que los nombres de todos ellos comenzarn por spip_.... (Esto nos va a permitir que,
en la presentacin normal de los documentos adjuntos de un artculo, queden excludos todos los
documentos cuyo nombre comience por spip_.... De esta manera, el uso de documentos como
logos alternativos no interferir con la presentacin, por ejemplo, de un lbum de imgenes.)
En un artculo publicado en lnea (para que podamos "trastear" con nuestros esqueletos mientras los
probamos), instalamos simplemente:
o un logotipo normal (columna de la izquierda); si queremos, se puede instalar una versin
de paso de ratn para la gestin automtica del cambio de imagen cuando el ratn pasa
por encima de ella;

El logotipo normal
El logotipo se instala de forma
clsica. A priori, se trata de una
imagen de tamao reducdo.
o al final de la pgina del artculo, instalamos un documento adjunto (en el bloque AA-
DIR UN DOCUMENTO); sencillamente, instalamos una imagen (JPEG, GIF, PNG); una
vez instalado el documento (subido al servidor), lo titulamos spip_logo. Ya est, es
lo nico que hay que hacer... SPIP muestra el documento bajo la pgina del artculo en el
espacio privado, con su ttulo (spip_logo) e indicando sus dimensiones en pixels.

- Pgina 104 de 114 -

El documento spip_logo
Este documento debe llevar obligato-
riamente el ttulo spip_logo. Es in-
til instalar un icono de previsualiza-
cin.
En el caso de un documento multimedia
(Flash, Shockwave...), es necesario in-
dicar manualmente sus dimensiones en
pxels.
Decidimos cmo utilizar este documento titulado spip_logo: se pondr en la pgina de inicio del
sitio web en lugar del logo normal del ltimo artculo publicado. De esta manera, la pgina de por-
tada del sitio puede mostrar una imagen grande para aadir valor al artculo principal.
VII.5.3. Mostrar spip_logo en la Portada del sitio
Comencemos por insertar un bucle sencillo que muestre el ltimo artculo publicado en el sitio con
su logo normal. (En todos los ejemplos siguientes, el cdigo HTML es el mnimo estricto; tendrs que
adaptarlo con el estilo grfico ms conveniente para tus pginas.)
<BOUCLE_article_vedette(ARTICLES){doublons}{par date}{inverse}{0,1}>
#LOGO_ARTICLE
<h1>#TITRE</h1>
</BOUCLE_article_vedette>
Este bucle, muy simple, muestra el primer artculo ({0,1}) de entre todos los ARTICLES (artculos),
seleccionados por la fecha de publicacin ({par date}) del ms reciente al ms antiguo ({inverse}).

- Pgina 105 de 114 -
Por lo tanto, muestra el ltimo artculo publicado en el sitio. En el interior del bucle, se publica el logo
del artculo, seguido por su ttulo.
Habamos dicho que queramos mostrar, en lugar del logo normal, el documento adjunto al artculo
cuyo ttulo es spip_logo. El cdigo se transforma en:
<BOUCLE_article_vedette(ARTICLES){doublons}{par date}{inverse}{0,1}>
<BOUCLE_logo_article_vedette(DOCUMENTS){id_article}{titre=spip_logo}>
[(#EMBED_DOCUMENT)]
</BOUCLE_logo_article_vedette>
<h1>#TITRE</h1>
</BOUCLE_article_vedette>
El BOUCLE_logo_article_vedette selecciona de entre los documentos adjuntos de este artculo
({id_article}) aquel cuyo ttulo es spip_logo ({titre=spip_logo}). Dentro del bucle, se pide que se
muestre este documento adjunto (#EMBED_DOCUMENT).
El uso de #EMBED_DOCUMENT (an poco extendido entre los sitios que utilizan SPIP) en los
esqueletos permite insertar directamente el documento dentro de la pgina, mediante el sistema de bu-
cles. SPIP se encarga de crear el cdigo correspondiente a las imgenes o a los ficheros multimedia.
Inconveniente: si el artculo no tiene un documento adjunto titulado spip_logo, la ejecucin del
cdigo anterior slo muestra el ttulo. Por lo tanto vamos a efectuar una nueva modificacin, que permi-
te mostrar el logo normal del artculo si no existe un documento adjunto que se pueda usar. Fjate
bien: una vez comprendido este mtodo, no harn falta nuevas sutilezas para realizar todos los efectos
siguientes...
<BOUCLE_article_vedette(ARTICLES){doublons}{par date}{inverse}{0,1}>
<BOUCLE_logo_article_vedette(DOCUMENTS){id_article}{titre=spip_logo}>
[(#EMBED_DOCUMENT)]
</BOUCLE_logo_article_vedette>
#LOGO_ARTICLE
<//B_logo_article_vedette>
<h1>#TITRE</h1>
</BOUCLE_article_vedette>
Simplemente hemos aadido la llamada al logo normal (#LOGO_ARTICLE) en el texto alternativo
(el que se halla antes de <//B...> en un bucle, que se muestra si el bucle no produce ningn resultado
- en este caso, si no hay un documento adjunto al artculo que lleve el ttulo spip_logo).
Hemos obtenido el resultado que desebamos:
si existe un documento adjunto asociado al artculo que hayamos titulado spip_logo, se muestra
directamente;
si no, en su lugar se muestra el logo normal.
VII.5.3. Exclur estos documentos especficos de la publicacin normal de
los documentos adjuntos
En el esqueleto de los artculos, se muestran los documentos adjuntos gracias al bucle BOU-
CLE_documents_joints, donde los criterios esenciales son:
<BOUCLE_documents_joints(DOCUMENTS){id_article}{mode=document}{doublons}>
Se llama a los DOCUMENTS (documentos) unidos a este artculo ({id_article}), que sean docu-
mentos adjuntos y no imgenes ({mode=document}) y que no hayan sido ya publicados en el interior
del texto del artculo utilizando el atajo <EMBxx> ({doublons}).
Modificamos este cdigo para evitar que se muestren, en este bucle (que es una especie de l-
bum), los documentos cuyo nombre comience por spip_... (si no se quiere mostrar aqu el logo
grande usado en la pgina de Portada del sitio):
<BOUCLE_documents_joints(DOCUMENTS){id_article}{titre!==^spip\_}{mode=document}
{doublons}>
El criterio {titre!==^spip\_} es una expresin regular, cuya sintaxis est muy codificada. Se se-
leccionan los documentos cuyo ttulo no est formado as (la expresin !== significa que no correspon-
de a la expresin regular): los primeros caracteres (el smbolo ^ indica el inicio de la cadena de carac-
teres) son spip seguidos por _ (en la sintaxis de las expresiones regulares, \_ indica el carc-
ter _, de la misma forma que \. indica el carcter .).
Por lo tanto, este criterio selecciona los documentos adjuntos cuyo ttulo no comience por spip_.
Aqu termina la exposicin del principio general, con esto tienes mucha diversin para probar en tu
propio sitio. Los siguientes ejemplos no son ms que variaciones.

- Pgina 106 de 114 -
VII.5.4. Mostrar siempre un gran logo en lo alto de la pgina
He decidido, de manera arbitraria, que siempre habr una gran imagen en lo alto de la pgina de mis
artculos. Se trata de una eleccin grfica por mi parte: para asegurar la unidad grfica de mi sitio, pu-
blico en lo alto de la pgina una versin en formato grande relacionada con el artculo (una variacin del
principio del logo grande) y, por omisin, une imgen guardada en otro lugar de mi sitio.
Siempre el mismo principio: aado a mi artculo un documento al que pongo por ttulo
spip_haut. (Para evitar que este documento se muestre en el lbum del bucle BOU-
CLE_documents_joints precedente, hago comenzar su ttulo por spip_....)
En mi esqueleto de los artculos, simplemente muestro en lo alto de la pgina este documento:
<BOUCLE_doc_haut(DOCUMENTS){id_article}{titre=spip_haut}>
#EMBED_DOCUMENT
</BOUCLE_doc_haut>
Como en el ejemplo precedente, muestro el documento adjunto al artculo de esta pgina cuyo ttulo
es spip_haut.
Como en el primer ejemplo, podra decidir que se muestre el logo del artculo si este documento no
existe:
<BOUCLE_doc_haut(DOCUMENTS){id_article}{titre=spip_haut}>
#EMBED_DOCUMENT
</BOUCLE_doc_haut>
#LOGO_ARTICLE
<//B_doc_haut>
Pero este no es el resultado que se desea. Quiero, por imperativos grficos, que siempre se vea una
imagen grande de dimensiones predeterminadas.
Por lo tanto (siempre segn una eleccin arbitraria por ma parte) voy a crear imgenes de sustitu-
cin, utilizadas por omisin, en el caso de que un artculo no tenga imagen propia. Estas imgenes
responden a mis requisitos grficos (por ejemplo, todas ellas tienen les mismas dimensiones que los do-
cumentos que uso habitualmente en spip_haut).
En mi sitio, creo una seccin para guardar estos documentos de sustitucin en almacenaje. Activo
los documentos asociados a las secciones. (Tambin puedo crear un artculo que recoja todos estos do-
cumentos, para no tener que activar los documentos adjuntos en las secciones. El cdigo apenas sera
diferente.) Admitamos que esta seccin tiene el nmero 18 (es SPIP quien adjudica automticamente el
nmero de la seccin cuando se crea esta). Instalo todos mis documentos de sustitucin dento de esta
seccin nmero 18. (Es intil ponerle un ttulo.)
Para llamar, al azar, a un documento instalado en esta seccin, es suficiente invocar los criterios si-
guientes:
<BOUCLE_doc_substitution(DOCUMENTS){id_rubrique=18}{0,1}{par hasard}>
#EMBED_DOCUMENT
</BOUCLE_doc_substitution>
(Fjate bien: el criterio {par hasard} no significa que la imagen sea diferente para cada visita de la
pgina, sino que ser seleccionada al azar cada vez que se recalcule la pgina.)
Hay que tener cuidado para evitar que se vea la seccin 18, en la navegacin del sitio, pues no es
necesario que se muestre a los visitantes. El criterio {id_rubrique!=18} se ocupar de esto.
Para terminar el despliegue del dispositivo, basta con insertar este bucle que muestra un documento
de sustitucin tomado al azar de la seccin 18 como texto alternativo a nuestro bucle BOU-
CLE_doc_haut (en lugar de #LOGO_ARTICLE):
<BOUCLE_doc_haut(DOCUMENTS){id_article}{titre=spip_haut}>
#EMBED_DOCUMENT
</BOUCLE_doc_haut>
<BOUCLE_doc_substitution(DOCUMENTS){id_rubrique=18}{0,1}{par hasard}>
#EMBED_DOCUMENT
</BOUCLE_doc_substitution>
<//B_doc_haut>
VII.5.5. Mostrar un ttulo grfico
Siguiendo el mismo principio, vamos a publicar una versin grfica del ttulo del artculo. Se trata de
una imagen realizada con un programa de dibujo donde aparece, con una tipografa especialmente cui-
dada (efectos de relieve, degradados de color, tipos de caracteres raros...) el ttulo del artculo.
Decidimos que se har mediante un documento adjunto asociado al artculo, que vamos a titular
spip_titre.

- Pgina 107 de 114 -
Para llamar a este documento, en el lugar donde debera figurar el #TITRE (ttulo) del artculo, si-
tuamos el siguiente bucle:
<BOUCLE_doc_titre(DOCUMENTS){id_article}{titre=spip_titre}>
#EMBED_DOCUMENT
</BOUCLE_doc_titre>
Fjate nuevamente que este mtodo permite usar no slo una imgen para mostrar el ttulo, si-
no tambin una animacin Flash, un vdeo... En estos casos, es necesario indicar manual-
mente las dimensiones en pixels del documento adjunto.
Completamos el dispositivo: si no existe un documento adjunto con el ttulo spip_titre, hay que
mostrar la informacin necesaria como texto HTML clsico:
<BOUCLE_doc_titre(DOCUMENTS){id_article}{titre=spip_titre}>
#EMBED_DOCUMENT
</BOUCLE_doc_titre>
[<div>(#SURTITRE|majuscules)</div>]
<div><font size=6>#TITRE</font></div>
[<div>(#SOUSTITRE|majuscules)</div>]
<br>[(#DATE|nom_jour)] [(#DATE|affdate)]</p>
<//B_doc_titre>
* * *
Sealamos una ltima ventaja de usar este mtodo...
Permite realizar rpidamente una modificacin radical en el aspecto grfico de tu sitio web. Sin tener
que suprimir uno por uno los documentos titulados spip_haut, spip_titre..., es suficiente con
crear unos esqueletos nuevos que, simplemente, no llamen a esos documentos.
Por ejemplo, si los documentos spip_haut estaban pensados anteriormente con una longitud de
450 pixels, y el nuevo aspecto grfico requiere que las imgenes tengan una longitud de 600 pixels, no
necesitars modificar uno por uno todos los ficheros spip_haut. Basta con no hacer la llamada, en
los esqueletos, a los documentos titulados spip_haut; utilizando en su lugar un nombre nuevo (por
ejemplo spip_large) e instalarlos a medida que vayas teniendo las versiones nuevas de los docu-
mentos titulados spip_large. Durante la transicin, no habr incoherencias grficas.
Los ms atrevidos incluso pueden imaginar todo tipo de pruebas con el tipo de documento ({exten-
sion=...}) o con su tamao ({largeur=...}, {hauteur=...}) (no se necesita PHP) para cambiar el as-
pecto segn el resultado obtenido (por ejemplo, mostrar cierta interfaz grfica si spip_haut tiene
450 pixels de longitud, y otra distinta si esa longitud es de 600 pixels...).

VII.6. Mostrar los elementos como lneas de una ta-
bla
Por ejemplo, es posible que se desee crear una tabla que contenga los ttulos de los artculos de una
seccin dispuestos en tres columnas, con un nmero de lneas que depende del nmero total de artcu-
los segn el esquema:
artculo 1 artculo 2 artculo 3
artculo 4 artculo 5 artculo 6
artculo 7 artculo 8 artculo 9
El truco consiste en jugar al mismo tiempo con los doublons y con los bucles recursivos.
Construimos un primer bucle que muestre los tres primeros artculos de la seccin una vez elimina-
dos los duplicados. Como se ver, basta con seguir llamando a este bucle mientras nos queden artculos
para mostrarlos gradualmente todos, pues los ya mostrados pasan cada vez a formar parte del rango de
los duplicados.
Para eso, en el cdigo condicional de este bucle, se aade una llamada recursiva al propio bucle que
funcionar mientras produzca resultados.
<table>
<B_ligne>
<tr>
<BOUCLE_ligne (ARTICLES) {id_rubrique} {doublons} {par titre} {0,3}>
<td width="33%">
<a href="#URL_ARTICLE">#TITRE</a>
</td>
</BOUCLE_ligne>
</tr>
<BOUCLE_ligne_suite (BOUCLE_ligne)></BOUCLE_ligne_suite>
</B_ligne>

- Pgina 108 de 114 -
</table>
El mismo tipo de bucle, cambiando la llamada al ttulo por el logo (con la baliza #LOGO_ARTICLE),
permite mostrar una galera con la miniatura de cada logo de artculo (cuyos tamaos es preferible que
sean iguales para mejorar la presentacin de la pgina), obras que se muestran en el texto del artculo.

VII.7. Rellenar los meta-tags HTML de las pginas de
artculo
El objetivo de este ejemplo, es situar en los meta-tags de nuestra pgina la lista de palabras clave
asociadas al artculo; al igual que el nombre de los autores.
<head>
<BOUCLE_head(ARTICLES){id_article}>
<title>#TITRE</title>
<meta name="Description" content="#DESCRIPTIF">
<meta name="Keywords" content="<BOUCLE_keywords(MOTS){id_article}{","}>#TITRE
</BOUCLE_keywords>">
<meta name="Author" content="<BOUCLE_author(AUTEURS){id_article}{","}>#NOM
</BOUCLE_author>">
</BOUCLE_head>
</head>
Si se desea optimizar la indexacin del sitio por los motores de bsqueda, se puede, por ejemplo, in-
cluir la descripcin del artculo, las palabras clave asociadas, y el nombre de los autores.
Hay que destacar que, para las palabras clave y el autor, utilizamos un bucle anidado
52
para buscar
esta informacin a partir del id_article actual. Adems, especificamos una coma como separador, con el
fin de que el contenido del meta-tag sea comprensible (y para que lo entienda el motor de bsqueda).
Atencin! el cdigo de ejemplo del cuadro superior es un poco bsico: si el #NOM de un autor o
el #DESCRIPTIF de un artculo contienen etiquetas html (letra cursiva, salto de prrafo...) la pgina
resultante estar llena de errores. Para evitarlo, sera necesario poner un filtro como |supprimer_tags en
el campo en cuestin (cambiar #DESCRIPTIF por [(#DESCRIPTIF|supprimer_tags)])...

VII.8. Un men desplegable para presentar una lista
de artculos
Es fcil realizar un men desplegable utilizando las etiquetas HTML para creacin de formularios; que
adems sirva para ir a la URL del artculo seleccionado.
Si la URL de los artculos es del tipo article.php3?id_article=123, el siguiente cdigo har maravi-
llas:
<FORM ACTION="article.php3" METHOD="get">
<SELECT NAME="id_article">
<BOUCLE_menu_articles(ARTICLES) {id_rubrique} {par titre}>
<OPTION VALUE="#ID_ARTICLE">#TITRE</OPTION>
</BOUCLE_menu_articles>
</SELECT>
<INPUT TYPE="submit" NAME="Valider" VALUE="Mostrar articulo">
</FORM>
Los criterios del bucle artculos (en este caso: los artculos de la seccin actual, ordenados por ttulo)
se pueden modificar segun el gusto. Esta construccin funciona tambin para las breves, secciones...
Siguiendo el mismo procedimiento, es igual de fcil presentar una lista de secciones, otra de bre-
ves... o incluso de la totalidad de la estructura del sitio.

VII.9. Publicar automticamente segn la fecha o se-
gn el orden impuesto
La situacin es la siguiente: en un mismo sitio la presentacin de artculos en diferentes secciones
debe estar diferenciada:

52
Se llama bucle anidado al que est includo dentro de otro bucle.

- Pgina 109 de 114 -
en algunas secciones, los artculos son publicados los unos tras los otros y se quiere que se presen-
ten por orden cronolgico: los ms recientes al principio de la lista, los ms antiguos al final de la
lista;
en otras secciones se quiere "forzar" la publicacin de los artculos numerndolos (1. El primer ar-
tculo, 2. El segundo artculo...) ; en el sitio pblico se les quiere presentar segn este orden in-
dicado por la numeracin.
He aqu un mtodo para realizar este efecto:
Estamos en el interior de un bucle de seccin (por ejemplo la pgina rubrique.html) :
<BOUCLE_rubrique_principale(RUBRIQUES){id_rubrique}>
...
</BOUCLE_rubrique_principale>
En el interior de este bucle vamos a efectuar el test siguiente: existe en esta seccin al menos un
artculo cuyo ttulo empiece por un nmero seguido por un punto?
<BOUCLE_test_numero(ARTICLES){id_rubrique}{titre==^[0-9]+\.}{0,1}>
Existe un artculo numerado en esta seccin.
</BOUCLE_test_numero>
No hay ningn artculo numerado.
<//B_test_numero>
El criterio interesante aqu es:
{titre==^[0-9]+\.}
Se trata de una seleccin del ttulo segn una expresin regular(== indica una seleccin segn
una expresin regular) cuya sintaxis es: al principio del ttulo (^ indica el principio de la cadena tes-
tada), hay uno o varios (+ indica al menos uno de los caracteres precedentes) caracteres com-
prendidos entre 0 y 9 ([0-9] significa caracteres comprendidos entre 0 y 9 incluidos), seguidos del
carcter punto (\.).
Notar finalmente que slo se selecciona un artculo as numerado ({0,1}); de esta manera el interior
del bucle solo ser efectuado una sola vez. Por otro lado basta que exista un solo artculo numerado pa-
ra provocar la publicacin de una lista por orden numerado.
Este bucle muestra tambin Existe un artculo numerado en esta seccin. si existe al menos un ar-
tculo cuyo ttulo es precedido por un nmero en la seccin, y No hay ningn artculo numerado. si no
existe.
Es suficiente ahora instalar en lugar de estas menciones bucles que publiquen los artculos segn el
orden de presentacin deseado:
<BOUCLE_test_numero(ARTICLES){id_rubrique}{titre==^[0-9]+\.}{0,1}>
<BOUCLE_ordre_numeros(ARTICLES){id_rubrique}{par num titre}>
<li> [(#TITRE|supprimer_numero)]
</BOUCLE_ordre_numeros>
/BOUCLE_test_numero>
<BOUCLE_ordre_date(ARTICLES){id_rubrique}{par date}{inverse}>
<li> #TITRE
</BOUCLE_ordre_date>
<//B_test_numero>

VII.10. Seleccionar artculos por orden alfabtico,
salvo uno que hay que publicar en primer lugar
Supongamos que quieres presentar una serie de artculos por orden alfabtico, salvo el prlogo que
quieres lgicamente publicar al principio de la lista...
Existe un truco para "engaar" a la ordenacin efectuada por SPIP: basta con aadir un espacio al
principio del ttulo del artculo (por ejemplo, transformar "Prlogo" en " Prlogo"). El orden alfabtico si-
tuar este ttulo por delante de los dems y lo mostrar primero.
A pesar de ello el espacio suplementario del ttulo ser ignorado por el navegador Web y no provoca-
r un desplazamiento extrao en la paginacin de la lista de artculos.
Tener en cuenta que el truco slo funcionar si ests utilizando la clasificacin alfabtica en el ttulo
de los artculos (es decir el criterio de bucle {par titre}). En toda otra clasificacin no funcionar.
Observacin: esto se aplica igualmente a las secciones, breves, sitios referenciados, etc.

- Pgina 110 de 114 -
VII.11. Realizar una agenda con SPIP
Indicaciones para poder construir una agenda con SPIP.
Pertinencia: 83 % Nivel: difcil Contiene cdigo PHP
[SPIP 1.4.2] En este artculo vamos a utilizar SPIP para presentar una agenda de acontecimientos
en formato de calendario. En vez de integrar un logiciel externo especializado, veamos como realizar es-
to con un esqueleto mezclando bucles SPIP clsico y cdigo PHP.

VII.11.1. Cules son las informaciones que necesitas?
La primera etapa consiste en determinar como se almacenaran las informaciones en SPIP y por tanto
ofrecidas por las redactoras/es.
Con el objetivo principal de que quien redacte pueda definir una fecha en la debe celebrarse un de-
terminado evento, necesitaremos los siguientes elementos:
al menos un campo de tipo texto
un campo de tipo fecha
Para el campo texto es simple, SPIP nos propone al menos 3 muy tiles y sistemticamente presen-
tes sea cual sea el parametrage del sitio: ttulo, descripcin y texto.
VII.11.2. La fecha de publicacin anterior o la verdadera fecha de publi-
cacin?
La fecha de publicacin de un artculo se determina automticamente en el momento de su valida-
cin lo que significa que la autora no puede precisarlo previamente. Esta fecha puede ser modificada sin
embargo por quien valida la nota pero esto no resulta verdaderamente muy til para indicar la fecha de
un acontecimiento -sobre todo si se ha configurado el sitio para que SPIP no publique los artculos post-
datados.
Afortunadamente SPIP propone tambin una fecha de publicacin anterior especialmente utilizada
para indicar en que fecha a sido publicado un artculo recogido posteriormente por SPIP, y que puede ser
definida libremente por el redactor (Verifica si has configurado el sitio para gestionar este tipo de fecha
suplementaria). Es esta fecha la que vamos a utilizar para definir las convocatorias de la agenda.
Utilizacin de la fecha de publicacin anterior

Utilizacin de la fecha de publicacin anterior

- Pgina 111 de 114 -
VII.11.3. Organizar las convocatorias
Si la agenda debe contener mucha informacin de diferente tipo, puede resultar til clasificarlas
(concierto, pelcula, reunin) para mostrarlas y eventualmente colgarlas de manera selectiva.
En SPIP dos mtodos de clasificacin vienen inmediatamente a la memoria:
clasificacin por seccin (y eventualmente sub-secciones);
clasificacin por palabra clave.
En este ejemplo vamos a utilizar las secciones que nos permitir constituir una ramificacin para al-
macenar los artculos-convocatoria; ello nos va a permitir filtrar los tipos de convocatoria con una nocin
de granularit (no encuentro traduccin) progresiva.
En la agenda de Gastero Prod, la organizacin de secciones no est muy desarrollada pero resulta ya
posible seleccionar unicamente los acontecimientos musicales y eventualmente filtrar todava conside-
rando solo los conciertos.
Una jerarqua de secciones por tema

Las convocatorias se crean en una ramificacin de secciones temticas, se colocan en una base de
datos, pasemos a cosas serias:
VII.11.4. Colgar la agenda, PHP al rescate
Deseamos colgar la agenda con un formato estandar de una tabla mensual en la que cada columna
representa un da a la semana. Deseamos tambin poder navegar de un mes a otro, ver, incluso elegir
directamente un mes de manera arbitraria. Todo ello no es posible directamente si se utiliza exclusiva-
mente los bucles de SPIP, por ello es necesario usar PHP.
He aqu una explicacin paso a paso de todos los elementos del esqueleto (encontrars al final de es-
te texto el esqueleto completo para telecargar).
Preparacin de las informaciones a tratar
Definamos una tabla que contenga los 12 meses del ao y los 7 das de la semana.
$months = array('', 'Enero', 'Febrero', 'Mazo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Sep-
tiembre', 'Octubre', 'Noviembre', 'Deciembre');
$days = array('Lunes', 'Martes', 'Miercoles', 'Jueves', 'Viernes', 'Sabado', 'Domingo',);
Y he aqu una pequea funcin, que permite simplificar la generacin de una fecha en formato times-
tamp para las y los ms perezosos que no solo quieren tener que precisar la hora...
function mkdate($month, $day, $year)
{
return mktime(0, 0, 0, $month, $day, $year);
}
Gestin de la navegacin. Los parmetros de navegacin se colocan en la URL a travs de las
variables var_nav_month et var_nav_year (Se utiliza la anotacin var_xxx para indicar a SPIP que
no tome en cuenta estas variables para el clculo de la cach de la pgina, lo que permite a la vez
limitar el impacto en la cach -un solo fichero cach tratar todas las pginas de la agenda- y acelerar la
publicacin -ya que SPIP solo tendr necesidad de ir a buscar los datos en la base una sola vez.) La
primera cosa a hacer al principio del script es pues determinar que mes es necesario publicar. Por

- Pgina 112 de 114 -
sa a hacer al principio del script es pues determinar que mes es necesario publicar. Por defecto se publi-
ca el mes corriente si no se introduce ningn dato:
if(isset($GLOBALS['var_nav_month'])) {
$cal_day = mkdate($GLOBALS['var_nav_month'], 1, $GLOBALS['var_nav_year']);
} else {
$cal_day = time();
}
$D = intval(date('d', $cal_day));
$M = intval(date('m', $cal_day));
$Y = intval(date('Y', $cal_day));
Recuperacin de la lista de convocatorias
Vamos a comenzar por colocar en una variable PHP de tipo tabla llamada $events la lista de convoca-
torias susceptibles de ser publicadas en el calendario del mes solicitado, en funcin por supuesto de la
restriccin temtica correspondiente a la seccin corriente:
$events = array();
?>
<BOUCLE_principale(RUBRIQUES){id_rubrique}{doublons}>
<p>
<span class="small">
<a href="#URL_SITE_SPIP">Accueil</a> >
<BOUCLE_hier1(HIERARCHIE){doublons}>
<a href="#URL_RUBRIQUE">#TITRE</a> >
</BOUCLE_hier1>
</span>
<br />
[<span class="title">(#TITRE)</span>]
</p>
<BOUCLE_evenements(ARTICLES){branche}>
<?php
$date = ereg_replace("^([0-9]{4})-([0-9]{2})-([0-9]{2}).*$", "\\1\\2\\3",
'#DATE_REDAC');
if ($date > date("Ymd", mkdate($M, $D - 31, $Y)) && $date < date("Ymd",
mkdate($M, $D + 31, $Y))) {
if (!isset($events[$date])) {
$events[$date] = array();
}
$events[$date][] = array('link' => '#URL_ARTICLE', 'title' =>
'[(#TITRE|texte_script)]', 'logo' => "#LOGO_ARTICLE_RUBRIQUE");
}
?>
</BOUCLE_evenements>
La seleccin de las fechas est de hecho realizada en PHP sobre la lista completa de los artculos re-
enviados por SPIP sin control de fecha.
Publicacin de la navegacin
Utilizamos aqu enlaces hacia el mes precedente y el siguiente, y un pequeo formulario con las listas
de los 12 meses y de los aos desde 1995 al 2010.
<table width="100%" cellpadding="5" cellspacing="0" align="center" border="1"
class="small">
<form method="get">
<tr>
<th colspan="7">
<a
href="/rubrique.php3?id_rubrique=#ID_RUBRIQUE&var_nav_month=<?=($M -
1)?>&var_nav_year=<?=$Y?>"><b>&lt;&lt;</b></a>
&nbsp;&nbsp;&nbsp;
<input type="hidden" name="id_rubrique" value="#ID_RUBRIQUE" />
<?php
echo '<select name="var_nav_month">';
for($i = 1; $i < 13; $i++) {
echo '<option value="'.$i.'"'.($i == $M ? ' selected="selected"':
'').'>'.$months[$i].'</option>';
}
echo '</select>';
echo ' <select name="var_nav_year">';
for($i = 1995; $i < 2011; $i++) {
echo '<option value="'.$i.'"'.($i == $Y ? ' selected="selected"':
'').'>'.$i.'</option>';

- Pgina 113 de 114 -
}
echo '</select> ';
?>
<input type="submit" value="go" />
&nbsp;&nbsp;&nbsp;
<a
href="/rubrique.php3?id_rubrique=#ID_RUBRIQUE&var_nav_month=<?=($M +
1)?>&var_nav_year=<?=$Y?>"><b>&gt;&gt;</b></a>
</th>
</tr>
</form>
Publicacin de los nombres de los das en la cabecera de las columnas
<tr>
<?php
for($i = 1; $i < 8; $i++) {
echo '<th width="14%" class="calendar_head">'.$days[$i%7].'</th>';
}
Publicacin de los ltimos das del mes precedente
En un calendario mensual presentado en forma de tabla, los ltimos das del mes precedente y los
primeros de mes siguiente son en general presentados para que las semanas sean completas.
$TempD = 1;
if(date('w', mkdate($M, 1, $Y)) != 1) {
echo '</tr><tr>';
$tmp = '';
while(date('w', mkdate($M, $TempD, $Y)) != 1) {
$TempD--;
$case = '<td width="14%" height="50" valign="top"
class="calendar_not_this_month">';
$case .= date('j', mkdate($M, $TempD, $Y));
$date = date('Ymd', mkdate($M, $TempD, $Y));
if (isset($events[$date])) {
while (list(, $event) = each($events[$date])) {
$case .= '<br />'.$event['logo'].'<a
href="'.$event['link'].'" class="small">'.$event['title'].'</a>';
}
}
$case .= '</td>';
$tmp = $case.$tmp;
}
echo $tmp;
}
Publicacin del resto del calendario
$TempD = 1;
while((date('m', mkdate($M, $TempD, $Y)) == $M) || (date('w', mkdate($M,
$TempD, $Y)) != 1)) {
if(date('w', mkdate($M, $TempD, $Y)) == 1) {
echo '</tr><tr>';
}
echo '<td width="14%" height="50" valign="top"
class="calendar_'.(date('m', mkdate($M, $TempD, $Y)) != $M ? 'not_': '').'this_'.(date('Ymd',
mkdate($M, $TempD, $Y)) == date('Ymd') ? 'day': 'month').'">';
echo date('j', mkdate($M, $TempD, $Y));
$date = date('Ymd', mkdate($M, $TempD, $Y));
if (isset($events[$date])) {
while (list(, $event) = each($events[$date])) {
echo '<br />'.$event['logo'].'<a href="'.$event['link'].'"
class="small">'.$event['title'].'</a>';
}
}
echo '</td>';
$TempD++;
}
?>
</tr>
</table>
Publicacin de la ramificacin temtica de la agenda
<?php

- Pgina 114 de 114 -
function depth($depth, $type)
{
for($i = 0; $i < $depth; $i++) {
echo '<img src="/images/dot.gif" width="15" />';
}
}

$depth = 1;
?>

<p class="big">Accs direct aux thmes, et lgende des icnes :</p>
<BOUCLE_sous_rubriques1(RUBRIQUES){id_parent=43}{par titre}>
<p>
#LOGO_RUBRIQUE
<a href="#URL_RUBRIQUE">#TITRE</a>
<B_sous_rubriques>
<BOUCLE_sous_rubriques(RUBRIQUES){id_parent}{par titre}>
<br />
<?php depth($depth, 'rub'); ?>
#LOGO_RUBRIQUE
<a href="#URL_RUBRIQUE">#TITRE</a>
<B_sous_rubriques_2>
<?php $depth++; ?>
<BOUCLE_sous_rubriques_2(BOUCLE_sous_rubriques)>
</BOUCLE_sous_rubriques_2>
<?php $depth--; ?>
</B_sous_rubriques_2>
</BOUCLE_sous_rubriques>
</B_sous_rubriques>
</p>
</BOUCLE_sous_rubriques1>
Y por supuesto, cierre final del bucle principal:
</BOUCLE_principale>
VII.11.5. Un poco de personalizacin visual
Como puedes ver en el cdigo propuesto, la presentacin puede personalizarse con varios estilos. Es-
te es el estracto de la hoja de estilo de Gastero Prod correspondiente a la agenda:
.calendar_head
{
background-color: #003366;
}
.calendar_this_day
{
background-color: #00bbee;
}
.calendar_this_month
{
background-color: #0099cc;
}
.calendar_not_this_month
{
background : #006699;
}
VII.11.6. El cdigo completo del esqueleto
Y aqu tienes el cdigo completo del esqueleto, para copiar y difundir al mximo !

agenda.html
[http://www.uzine.net/IMG/zip/doc-710.zip]
1
spipedu
manual de uso
creacin de
sitios web dinmicos
de forma colaborativa
con software libre
versin 2.0 - septiembre 2008
grupo de trabajo spipedu + hapaxmedia.net
creative commons by 3.0 es
2
spipedumanual de uso
Contenidos

1 - Qu es spipedu? 3
1.1. Qu es spip? 3
1.2. Por qu elegir spipedu? 4
2 - Conceptos bsicos 5
3 - Modelos en spipedu 7
3.1. Modelo 1. 7
3.2. Modelo 2. 12
4 - Trabajando un modelo spipedu 15
4.1. Consideraciones previas del espacio privado. 15
4.2. Creacin de autores. 17
4.3. Publicar un artculo. 18
4.4. La cach de spip. 24
4.5. Publicar contenidos multimedia. 25
4.6. Publicar un enlace / sitio referenciado. 26
4.7. Gestin de la agenda. 27
4.8. Gestionar comentarios. 28
4.9. Gestin de blogs. 29
5 - Breve introduccin al diseo y modifcacin de esqueletos 31
3
spipedumanual de uso
1 - Qu es SPIPEDU?
SPIPEDU es un proyecto de elaboracin de recursos educativos digitales en
software libre, apoyado, en el curso 2005 / 2006, por la Consejera de Educacin
de la Junta de Andaluca y que ha tenido su desarrollo con el apoyo del Centro de
Profesorado de Alcal de Guadaira (Sevilla). El proyecto se basa en el desarro-
llo de modelos de creacin de pginas web para centros educativos de carcter
abierto y mantenimiento colaborativo.
La web ofcial del proyecto es http://www.spipedu.es y la ayuda la puedes encon-
trar en el wiki http://www.spipedu.es/ayuda
SPIPEDU es una adaptacin del sistema SPIP (Systme de Publication Pour
lInternet Participative) que usa la versin 1.9.2.c de este software escrito en PHP
y que utiliza HTML y CSS para su diseo.
Los promotores del proyecto han sido los docentes Jos Antonio Jimnez, Beatriz
Rodrguez, Manuel Cceres y Dolores lvarez, tanto el mantenimiento y la aseso-
ra tcnica lo viene haciendo la empresa de Gestin Creativo Cultural Hapaxmedia.
Modelos en SPIPEDU
SPIPEDU ha construido dos modelos de aplicacin que se pueden instalar en ser-
vidores web que cumplan las caractersticas bsicas de SPIP. Estos modelos han
sido diseados para facilitar la eleccin de los mismos a los centros educativos:
MODELO 1 (o IES Profesor Juan Bautista), es el ms completo, diseado en
colaboracin con un centro de Educacin Secundaria, es importante que puedan
mantenerse blogs de contenidos concretos y permite comentarios. Existen centros
de infantil y primaria que mantienen este modelo. Requiere una mayor dedicacin
para su correcto mantenimiento. El modelo original se puede encontrar en www.
spipedu.es/modelo1 y en funcionamiento real en www.iesprofesorjuanbautista.es
MODELO 2 (o Sevilla Este) es ms simple, diseado en colaboracin con un
centro educativo de infantil y primaria. No permite comentarios, ni blogs, su man-
tenimiento requiere de menor dedicacin. El modelo original se puede encontrar
en www.spipedu.es/modelo2 y en funcionamiento real en www.colegiomaestrojo-
sefuentes.es
Puedes encontrar un listado amplio de sitios web que utilizan SPIPEDU en la
siguiente direccin: http://www.spipedu.es/ayuda/index.php/Sitios_SPIPEDU
1.1. Qu es SPIP?
Es el acrnimo de Systme de Publication Pour lInternet Participative, un soft-
ware libre bajo licencia GPL con la estructura ideal para desarrollar sitios de tipo
CMS con edicin colectiva al estilo de una revista en lnea.
Caractersticas tcnicas
SPIP es un programa escrito en PHP y que utiliza una base de datos MySql. La
apariencia del sitio est separada del contenido del mismo, y se basa en esquele-
tos, que son simples archivos HTML (aunque puede incluirse PHP propio embebi-
do) donde se introducen etiquetas propias de SPIP que forman un pseudocdigo
de bucles.
La gran fortaleza de SPIP es la fexibilidad para modifcar la apariencia del sitio
publico, el que es visible para los visitantes. Esto hace ms fexible la presenta-
cin del contenido, permitiendo por ejemplo mostrar con un bucle los 5 artculos
ms ledos de esta seccin, todos los artculos relacionados con este tema u otros
artculos de este autor ordenados por fecha. Las posibilidades son infnitas, tanto
como la imaginacin.
Los esqueletos son muy abiertos y slo con conocimientos de HTML y algo de
estudio de las etiquetas propias de SPIP se pueden hacer presentaciones grfcas
propias, rompiendo el esquema demasiado estandarizado de otros CMS, que slo
permiten hacer modifcaciones desde un panel de control.
Otra gran ventaja es la velocidad con la que se muestran las pginas al visitante.
Esto se debe a un sistema de Cach que tiene: la base de datos no se consulta
cada vez que un visitante solicita una pgina, sino que se genera una vez cada
cierto tiempo (confgurable), y se guarda esta pgina esttica en un cach para
4
spipedumanual de uso
mostrarla (mucho ms rpido por ser html puro) al visitante. En Principio General
se explica esto con ms detalle.
Documentacin Oficial
* http://www.spip.net/ Sitio Ofcial
* http://www.spip.net/es Documentacin en Espaol
* http://www.spip.net/es_download Descargar la ltima versin
* http://www.spip-es.net/ Comunidad Hispanohablante
1.2. Por qu elegir SPIPEDU?
Si has llegado aqu y tienes inters en este proyecto quizs quieras instalar y de-
sarrollar un sitio web con SPIPEDU. Si an lo ests pensando estos son algunos
de los motivos para elegir SPIPEDU:
1. Est desarrollado para centros educativos y por un grupo de profesorado.
2. Prima la facilidad y es totalmente intuitivo en su uso.
3. Cumple las normas estndares de accesibilidad.
4. Slo tendrs que preocuparte de los contenidos.
5. Si tienes conocimientos limitados podrs mantener vivo y actualizado tu
sitio web.
6. Si tienes conocimientos avanzados podrs modifcar lo que no te guste y
hacer versiones nuevas de SPIPEDU.
7. Todo est en castellano y el resto de lenguas co-ofciales del Estado Espaol.
8. Hay una comunidad de desarrollo y de apoyo a nuevos usuarios muy ami-
gable.
9. Est desarrollado con Software Libre bajo Licencia GPL. En resumen, y
como dicen algunos spiperos: es Software Libre con cario.
10. Nos hara mucho ilusin que nuestro trabajo sirviera para otros y otras.
5
spipedumanual de uso
2 - Conceptos bsicos de SPIPEDU
A modo de glosario vamos a realizar un listado de los conceptos bsicos que hay
que conocer para el trabajo en SPIP y en SPIPEDU. Son defniciones escuetas
que luego sern desarrolladas con mayor extensin en el resto de pginas de
este manual.
2.1. Contenido esttico vs. contenido dinmico
Un sitio esttico es aquel que muestra siempre el mismo contenido. En cambio,
un sitio dinmico funciona mediante una estructura de programacin oculta para el
usuario que permite la utilizacin de distintas aplicaciones en Internet, como foros,
encuestas, estadsticas de visitas, sistemas de noticias, etctera. Las posibilida-
des que brinda un sitio dinmico son enormes y casi cualquier cosa es posible. El
trmino programacin dinmica, es un concepto nuevo con respecto a las pginas
HTML conocidas hasta ahora. El mismo consiste en la formacin de una pgina,
tanto de grfcos como de contenidos, a partir de la lectura de determinados datos
residentes en una base de datos. En otras palabras, una pgina dinmica no se
encuentra pre-armada, sino que se construye online en el momento en que es
solicitada por el usuario que la visita.
Los sitios estticos estn diseados con algn software editor de HTML (Nvu para
Guadalinex, Frontpage de Microsoft o Dreamweaver de Adobe son los ms cono-
cidos) y requieren de este programa para su actualizacin. Los sitios dinmicos,
como SPIP, han sido diseados con algunos de los programas arriba mencio-
nados, pero para la actualizacin de contenidos no hay que tenerlos instalados.
Adems, en el caso de SPIPEDU, no hace falta disear nada porque existen dos
modelos preparados para empezar a publicar.
2.2. La estructura del sitio
La estructura de un sitio web SPIP se construye bajo una jerarqua de secciones.
No hay lmite en el nmero de secciones: una seccin puede contener as mismo
las sub-secciones necesarias y stas a su vez contener otras sub-secciones, etc.
En SPIPEDU hemos decidido limitar el nmero de secciones, salvo en la seccin
blogs del modelo 1, as nos centraremos en publicar contenidos.
2.3. Diseo y Esqueletos
El diseo de un sitio bajo SPIP y SPIPEDU se basa en archivos HTML y CSS que
son alimentados por una base de datos MySQL. Esta caracterstica nos permite
tener total libertad en cuanto al diseo que queramos desarrollar.
2.4. HTML
El HTML, acrnimo ingls de Hyper Text Markup Language (lenguaje de mar-
cacin de hipertexto), es el lenguaje de programacin diseado para estructurar
textos y presentarlos en forma de hipertexto. Es el formato estndar de la mayora
de pginas web. Existen editores de HTML avanzado aunque cualquier editor de
textos podra servir, los lectores o navegadores de HTML son los conocidos Inter-
net Explorer o Mozilla Firefox.
Aunque en SPIPEDU no es necesario conocer el lenguaje HTML, ya que el
diseo del mismo permite saltarse este paso, siempre es recomendable conocer
sus etiquetas y sintaxis bsicas. Existe un wiki.libro sobre Lenguaje HTML http://
es.wikibooks.org/wiki/Lenguaje_HTML
2.5. CSS
Las hojas de estilo en cascada (Cascading Style Sheets, CSS) son un lenguaje
formal de programacin usado para defnir la presentacin (la parte visual del
mismo) de un documento escrito en HTML. La idea principal que se encuentra
detrs del desarrollo de CSS es separar la estructura de un documento de su
presentacin. El conocimiento del lenguaje CSS ser importante, en SPIPEDU,
para aquellos usuarios avanzados que quieran desarrollar un modelo desde cero
o hacer modifcaciones sustanciales al modelo escogido.
2.6. Los redactores y administradores
Un sitio bajo SPIP puede estar gestionado por una sola persona o realizado por
un grupo de usuarios con diferentes niveles de acceso. SPIP propone tres niveles:
6
spipedumanual de uso
a) los administradores y administradoras que gestionan la estructura del sitio,
crean y adjudican niveles de responsabilidad a los usuarios y normalmente se
encargan de la validacin de los artculos.
b) las redactoras y redactores que proponen los artculos, su principal limita-
cin es que no pueden publicarlos, slo proponerlos para que un administra-
dor lo haga.
c) los administradores restringidos que slo pueden controlar secciones con-
cretas, donde s pueden publicar.
El nmero de redactores y de administradores es ilimitado. En SPIPEDU, aposta-
mos por la horizontalidad y recomendamos que todas las personas implicadas en
el proceso de creacin de la web sean administradores y administradoras.
2.7. Los artculos
La unidad mnima de informacin en SPIP es el artculo (o article en francs) que
tienen que ser publicados dentro de alguna seccin. Se pueden colgar tantos
artculos como sea necesario. La redaccin de los artculos se hace dentro de la
propia web, en sus entraas y es muy simple. Colgar un artculo con SPIP es tan
fcil como escribir un correo electrnico.
Un artculo, en SPIPEDU, est constituido por varios elementos que permiten
estructurarlo: ttulo, epgrafe o resumen y texto principal. La interfaz permite incluir
fcilmente texto, imgenes y cualquier tipo de documento. Para ilustrarlo cada
artculo quedar sealado con su propio logo o imagen de cabecera. Para su
correcta identifcacin e indexacin se le agregarn palabras clave.
En el modelo 1 de SPIPEDU se encuentran activados los comentarios que ge-
neran un foro sobre el propio artculo. Este foro podr ser moderado a priori o a
posteriori por sus administradores.
2.8. Los sitios referenciados / enlaces
SPIP permite crear un directorio de enlaces a pginas webs, artculos de inter-
net, normativas. Pueden estar asignados a Secciones y Subsecciones y poseer
palabras claves. Funciona como la segunda unidad mnima de informacin. Nor-
malmente se puede incluir el ttulo de la pgina, el enlace (http://....) y una breve
descripcin.
2.9. Las palabras clave
SPIP integra un sistema muy simple de palabras claves que pueden servir para
crear categoras temticas de artculos de diferentes secciones o subsecciones.
Las palabras clave se pueden asignar a Artculos y Enlaces. Es uno de los gran-
des avances de SPIPEDU y su uso es muy importante para conseguir una pgina
web transversal y dinmica.
7
spipedumanual de uso
3 - Modelos de spipedu
En este paso vamos a ayudarte a elegir el MODELO SPIPEDU que se ajuste
ms a tus necesidades, para ello debes conocer las caractersticas comunes de
ambos:
1. Estn programados en SPIP lo que conlleva que en lo esencial el funciona-
miento de interfaz privada es idntica.
2. Estn orientados a los contenidos y a la creacin de una Hemeroteca /
Mediateca del Centro con el paso de los cursos escolares
3. Usan 3 secciones, una para contenidos estticos, otra para contenidos
dinmicos y una tercera para incluir enlaces.
4. En ambos modelos podemos incluir imgenes, vdeos, sonidos y otros
documentos.
5. Las palabras claves hacen transversal la categorizacin y orden de la pgi-
na web.
Los modelos han sido diseados en colaboracin con dos centros educativos. El
Modelo 1 con el IES Profesor Juan Bautista de El Viso del Alcor, Sevilla y el Mode-
lo 2 con el Colegio Maestro Jos Fuentes de Sevilla capital. El trabajo continuado
en SPIPEDU nos ha hecho ver que ambos modelos estn enfocados hacia el
nivel de implicacin y complicacin que quiera establecerse por parte del grupo
promotor de la web. As encontramos sitios web, basados en el modelo 1, que
estn dando muy buenos resultados en Colegios de infantil y primaria y sitios web
basados en el modelo 2 que han sido totalmente reformulados.
Tanto en www.spipedu.es/modelo1 como www.spipedu.es/modelo2 puedes entrar
en la interfaz de administracin, pulsando en espacio privado o privado con el
usuario y contrasea invitado, si quieres experimentar las diferencias. A continua-
cin hacemos una descripcin detallada de todas las caractersticas de cada uno
de los modelos.
3.1. Modelo 1
3.1.1 Secciones en el Modelo 1
Estas son las secciones que forman la estructura interna del sitio web:
- Nuestro centro
- Novedades
- Enlaces
- Blogs
- Blog Profesor 1
- Blog Alumnado 1
- (...)
La Seccin Nuestro centro contiene documentos de localizacin y funcio-
namiento del centro. Son contenidos estticos y lo que publiquemos aqu
no aparece en la columna central. Algunos de los contenidos que han sido
colocados en esta seccin, el ROF, el Plan de Centro, la Localizacin y con-
tacto, las diferentes memorias de direccin. Estos artculos que se dejan en la
seccin Nuestro centro tienen estas particularidades: son documentos con
una cierta durabilidad, una extensin en el tiempo y sobre todo una relevan-
8
spipedumanual de uso
cia comunicativa que no permite que sean tratados como hechos noticiosos
sujetos a la cronologa de la novedad.
En la seccin Novedades publicaremos la mayor parte de los artculos.
Aparecern siempre en la columna central y es importante que estos artculos
tengan logotipo y palabras claves. En esta seccin publicamos los contenidos
dinmicos, noticias, circulares del centro, artculos de opinin, galeras de
fotos, convocatorias, comunicaciones, etc. Se ordenarn segn de la tempo-
ralidad, es decir, segn se van publicando contenidos en novedades se van
colocando automticamente en orden cronolgico inverso, esto es, del ms
nuevo al ms antiguo. En portada aparecen los 6 ltimos artculos publicados.
Ser muy importante establecer las palabras claves para poder recuperar
los artculos a travs de las categoras.
La seccin Enlaces recopila aquellos hiperenlaces ms interesantes selec-
cionados por los promotores de la web. Son enlaces que contienen un ttulo,
el enlace y una descripcin, se ordenan por palabras claves y los ltimos pu-
blicados aparecen en la barra de la izquierda. Es importante diferenciarlos de
los hiperenlaces que se incluyen dentro de un artculo, ya que estos forman
parte del propio artculo. Esta seccin nace con la idea de convertirse en un
repositorio permanente de otros contenidos relacionados con la temtica de
la web. Por ello, es importante asociar los enlaces con las palabras claves del
grupo de palabras clave homnimo.
Esta seccin Blogs es una de las importantes diferencias en relacin al
Modelo 2. No alberga directamente artculos con una temtica concreta, sino
que contiene ms cajones en su interior, una serie de subsecciones, que cada
una es un BLOG. Dentro de cada BLOG se publicarn artculo que slo apa-
recern dentro del blog, es decir, son contenidos dinmicos que no aparecen
en la columna central de nuestra web. Se pueden crear blogs para materias
especfcas (por ejemplo el Blog de Matemticas) o para cursos concretos (el
blog de 2 de ESO), o se pueden crear blogs como espacios singulares para
la opinin de algn miembro de la comunidad educativa o incluso como diario
de clase. Sobre blogs es interesante leer este artculo en la wikipedia http://
es.wikipedia.org/wiki/Edublog y en el blog de la especialista Tscar Lara
http://tiscar.com/alfabetizacion-digital-con-blogs/
Palabras claves, como importante contenido estructurador de la web estarn
las palabras clave. Estas palabras claves se engloban dentro de grupos de
palabras clave, dentro del modelo hay propuestos algunos grupos para orien-
tar al usuario sobre el posible uso que se le pueden dar a las palabras clave.
El usuario es libre de crear tantas palabras clave como necesite.
9
spipedumanual de uso
3.1.2 El esqueleto en el Modelo 1
Hemos hablado de las secciones, que estructuran internamente el contenido
de nuestra web. Ahora hablaremos de los elementos grfcos y pblicos que
son comunes en el Modelo 1. La interfaz pblica se compone de un cabecera,
tres columnas de contenido y un pie.
- Cabecera. Se trata de una imagen que tiene un ancho no superior a 817
pxeles y un alto de 180 pxeles. Puede ser una composicin de imgenes o
un fragmento del centro. La imagen se puede cambiar cuantas veces se quie-
ra en el Panel de Administracin ya que es el Logotipo del Sitio. Es importante
que la imagen est optimizada para internet y su peso en kb sea el menor
posible, ya que se trata de una imagen de cabecera siempre se ver.
- Una barra lateral de la izquierda, que contiene un men de navegacin
por diferentes criterios o apartados. Por un lado, nos permite acceder a
todos los contenidos de la seccin Nuestro centro. As mismo podremos
colocar una imagen a travs del Logotipo de la seccin, se puede poner el
escudo del centro o una fotografa del edifcio.
10
spipedumanual de uso
En el apartado Contenidos aparecern los grupos de palabras claves que
contienen a todas las palabras claves de nuestro sitio web.

Despus aparecen los ltimos enlaces que publicamos en la seccin Enla-
ces as como un acceso directo a ver todos los Enlaces de la web. Y, por
ltimo, los contenidos de esta barra lateral de la izquierda se cierran con un
men de navegacin, propio de la web 2.0, conocido como nube de pala-
bras claves. Aparecen todas las palabras claves de nuestro sitio web orde-
nadas de manera alfabtica, con los nmeros en primer lugar y con diferentes
tamaos segn el nmero de artculos que contengan dicha palabra clave.

- La columna central es en la que encontramos el contenido principal de la
web, el que hemos llamado contenido dinmico o noticioso. Aparecen los 10
ltimos artculos publicados y contienen bastante informacin de cada uno de
ellos: el ttulo, la fecha de publicacin, la nombre del autor/a, un logotipo (una
imagen no superior a 150 pxeles de ancho), un breve resumen / epgrafe del
contenido (con su correspondiente leer ms que da acceso al artculo comple-
to) y las palabras clave que etiquetan y defnen el artculo.
- La barra de la derecha contiene: un men de acceso al espacio privado,
al correo electrnico de contacto y un botn de inicio que vuelve siempre a la
portada de la web, este mismo men incluye el buscador de la web que tiene
una importante efectividad, ya que busca entre todas las palabras y muestra
resultados por orden de relevancia.
11
spipedumanual de uso
Un calendario / agenda que funciona una vez que le asignamos a los artculos
alguna fecha concreta. Es decir, hay que publicar el artculo y luego asignarle
una fecha concreta en el calendario.
Existe un bloque de noticias destacadas, para reforzar la presencia de noticias
importantes. Esta funcin se asignar mediante palabras claves y aparecern
todas las noticias destacadas que tengan dicha etiqueta.
El men de acceso a los blogs, que muestra los ttulos de las subsecciones
creadas al efecto.
La informacin prctica donde se indica los crditos del proyecto SPIPEDU,
as como la sindicacin de contenidos y la licencia del sitio: ya que todo el
contenido que se publique usando los modelos de SPIPEDU se publican bajo
una licencia de Creative Commons.
Por ltimo, hay un apartado para las estadsticas que estn generadas de
manera automtica por el sitio y que en la zona privada tiene un desarrollo
grfco.
- Pie de Pgina. El pie de pgina recoge la informacin ms ofcial, mostran-
do principalmente los logotipos de las entidades e instituciones que colaboran
o forman parte del propio proyecto. Asimismo, se indica el nombre y direccin
postal del centro, as como un telfono, fax de contactos y la direccin de
correo electrnico a la que poder dirigirse para comunicarse con el centro.
Tambin existe un botn para la versin slo texto y para dispositivos mviles
12
spipedumanual de uso
que genera automticamente SPIP. Lo vemos en la siguiente imagen:
3.2. Modelo 2
3.2.1 Secciones en el Modelo 2
Estas son las secciones que forman la estructura interna del sitio web:
- Nuestro centro
- Novedades
- Enlaces
La Seccin Nuestro centro contiene documentos de localizacin y funcio-
namiento del centro. Son contenidos estticos y lo que publiquemos aqu
no aparece en la columna central. Algunos de los contenidos que han sido
colocados en esta seccin, el ROF, el Plan de Centro, la Localizacin y con-
tacto, las diferentes memorias de direccin. Estos artculos que se dejan en la
seccin Nuestro centro tienen estas particularidades: son documentos con
una cierta durabilidad, una extensin en el tiempo y sobre todo una relevan-
cia comunicativa que no permite que sean tratados como hechos noticiosos
sujetos a la cronologa de la novedad.
En la seccin Novedades publicaremos la mayor parte de los artculos.
Aparecern siempre en la columna central y es importante que estos artculos
tengan logotipo y palabras claves. En esta seccin publicamos los contenidos
dinmicos, noticias, circulares del centro, artculos de opinin, galeras de
fotos, convocatorias, comunicaciones, etc. Se ordenarn segn de la tempo-
ralidad, es decir, segn se van publicando contenidos en novedades se van
colocando automticamente en orden cronolgico inverso, esto es, del ms
nuevo al ms antiguo. En portada aparecen los 6 ltimos artculos publicados.
Ser muy importante establecer las palabras claves para poder recuperar
los artculos a travs de las categoras.
La seccin Enlaces recopila aquellos hiperenlaces ms interesantes selec-
cionados por los promotores de la web. Son enlaces que contienen un ttulo,
el enlace y una descripcin, se ordenan por palabras claves y los ltimos pu-
blicados aparecen en la barra de la izquierda. Es importante diferenciarlos de
los hiperenlaces que se incluyen dentro de un artculo, ya que estos forman
parte del propio artculo. Esta seccin nace con la idea de convertirse en un
repositorio permanente de otros contenidos relacionados con la temtica de
la web. Por ello es importante asociar los enlaces con las palabras claves del
grupo de palabras clave homnimo.
13
spipedumanual de uso
3.2.2 El esqueleto en el Modelo 2
La estructura o esqueleto de nuestra interfaz pblica es como se ve
a la derecha:
- Cabecera. Simple, se alimenta del nombre del sitio SPIPEDU, en este caso,
CEIP Maestro Jos Fuentes - Sevilla Este. El nombre es algo que podemos
cambiar en la propia Administracin del sitio.
- Men horizontal. Que se compone de varios enlaces siempre presentes
y que nunca cambian. Por un lado, un enlace a la portada del sitio. Tambin
un enlace a la palabra clave que engloba a todas las galeras de fotos. Un
enlace directo al correo electrnico en contactar. El acceso directo a la interfaz
privada. Un enlace con suscrbete que lleva a la sindicacin de contenidos
del sitio mediante la tecnologa RSS y por ltimo la versin slo texto que
permite acceder a la web fcilmente desde dispositivos mviles como telfo-
nos, PDA o consolas, es una versin sencilla de la web.
- Contenido principal. Con contenido principal nos referimos fundamental-
mente a los artculos, que se estructuran de la siguiente manera:
14
spipedumanual de uso
Segn vemos en la imagen, un titular, seguido de la fecha y el autor, un
epgrafe o introduccin al artculo, las palabras clave o categoras asignadas y
por ltimo un enlace al Leer ms que contina con el texto del artculo.
- Barra lateral. La barra lateral contiene una imagen que identifca el edifcio
del centro (podra ser cualquier otra imagen, como el escudo del centro o si-
milar, esta imagen ser el Logotipo del Sitio que se gestiona en Confguracin
del Sitio), seguido de un potente buscador para realizar bsquedas a partir
de una o ms palabras. A partir de ah, le sigue un listado de los que estn
incluidos en la seccin Nuestro centro o Mi Centro, es decir, la informacin
esttica. A continuacin encontraremos aquellos artculos etiquetados con la
palabra clave Noticia destacada que podemos encontrar en el grupo de pa-
labras clave Tipos de contenido, podremos activar o desactivar esta palabra
clave en el artculo para que forme parte de ese apartado en la web.
A continuacin aparecern los nombres de los Grupos de Palabras Claves
que hayamos creado es lo que hemos llamado buscar por categora.
En esta barra lateral, nos encontramos con otro tipo de informacin relevante
para identifcar la pgina web y conocer ms acerca de ella. En Sobre esta
web, se indica que este sitio web forma parte del proyecto SPIPEDU, desa-
rrollado con SPIP y bajo la asesora tcnica de la empresa Hapaxmedia.net.
Se hace referencia tambin a la licencia del sitio: se publica bajo una licencia
de Creative Commons. Y por ltimo, un apartado para las estadsticas nos
permite conocer las visitas y nmeros totales de artculos y autores y autoras
que participan en el sitio. Estas estadsticas, para consumo interno, tienen
ms informacin en la interfaz privada del sitio web.
Pie de Pgina. El pie de pgina recoge la informacin ms ofcial, mostran-
do principalmente los logotipos de los proyectos que lleva a cabo el centro.
Asimismo, se indica el nombre y direccin postal del centro, as como un
telfono y fax de contactos y, la direccin de correo electrnico a la que poder
dirigirse para comunicarse con el centro. Lo vemos en la siguiente imagen:
15
spipedumanual de uso
4 - Trabajando con un modelo
En el apartado anterior hemos desarrollado los elementos bsicos de los Modelos
1 y 2 de SPIPEDU. En l hemos adelantado algunas acciones relacionadas con
palabras claves y secciones, ahora vamos a explicar paso por paso cmo traba-
jar internamente. Como norma general, y mientras no se diga la contrario, estas
acciones sern vlidas para el Modelo 1 y 2. Recuerda que toda nuestra interfaz
de trabajo est en castellano y otros idiomas co-ofciales del Estado.
Otro aspecto importante es que si vas a utilizar SPIPEDU tienes que instalarlo en
tu sitio web para ello hemos elaborado otro Manual que explica la instalacin.
4.1. Consideraciones previas del espacio privado
El espacio privado es diferente segn seas Administrador o Redactor. Vamos a
trabajar siempre sobre la opcin de Administrador ya que el Redactor slo podr
proponer artculos. Para acceder pulsa en espacio privado o teclea www.tusitio.
com/ecrire
La primera accin que tienes que ejecutar, siempre que te conectes por primera
vez con tu nombre y con tu usuario a un sitio con SPIP es pasar de la interfaz
simple a la interfaz completa. Pulsa en esta pestaa.
Veamos todos los elementos que nos encontramos en la interfaz completa de
nuestro sitio interno:
Mis Tareas, encontraremos todos los atajos directos a publicar contenidos,
aparecern los artculos en redaccin, as como las notifcaciones de adminis-
trador: validacin de artculos, de foros, etc.
Edicin del sitio, encontraremos todos los artculos y la estructura de nuestro
modelo, las secciones. En l podremos acceder como administradores a
todos los artculos publicados, en curso de redaccin y propuestos a evalua-
cin. Tambin encontraremos la edicin de las palabras claves. Para usuarios
avanzados aqu encontraris un editor HTML de los esqueletos.
Foro interno, es una herramienta de teletrabajo sobre la web, permite hacer
comentarios internos de los artculos. En principio no es una herramienta que
se use mucho porque normalmente el grupo que gestiona la web tiene reunio-
nes presenciales para tratar estos asuntos.
Autoras y autores, es donde gestionaremos los administadores, los adminis-
16
spipedumanual de uso
tradores restringidos, los redactores, los podremos crear, borrar y modifcar
sus datos.
Estadsticas de Visitas, ah podremos saber el nmero de visitas por seccio-
nes, por artculos y conocer quin nos enlaza, as como las palabras que se
utilizan en los buscadores para encontrar nuestra web.
Confguracin del sitio, es el verdadero espacio de Administracin de la
web, todo lo que se toque ah podr afectar mucho a la web y podremos crear
confictos y errores externos. Para los usuarios normales de SPIPEDU slo
usaremos este apartado para cambiar la direccin, telfono y correo electrni-
co, as como para colocar la cabecera del Modelo 1 y el nombre del centro del
Modelo 2. En principio no es necesario tocar nada ms de la Confguracin
del Sitio.
Ayuda, una potente ayuda on.line, consltala y te sorprenders. No vamos a
desarrollar algunos elementos que ah estn muy claros as que en todo mo-
mento haremos referencia a ella. Es muy til porque est disponible en todo
momento a travs de botones como este:
Visitar el Sitio, es un botn que sirve para ir a la portada pblica de nuestra
web. Se utiliza normalmente para comprobar los cambios que hemos realiza-
do en la web, por ejemplo, despus de publicar un artculo.
Tambin en la interfaz interna tenemos esta barra de atajos, que tiene estos
iconos:
De izquierda a derecha. Acceso directo a todo el sitio, a todas las secciones
y subsecciones en el caso de que las haya. Navegacin Rpida, para crear
artculos o referenciar sitios de una manera rpida. Un potente Buscador interno
que te devuelve artculos, enlaces, palabras claves, muy til cuando el volumen
de artculos crece.
De izquierda a derecha. Agenda en el que incluir eventos y recordatorios pbli-
cos y personales, no confundir con el plugin agenda, esta es de uso interno en el
que automticamente se marcan los das en que se publican artculos. Mensaje-
ra Personal, acceso directo a recordatorios personales, Mensaje a algn autor
y Anuncios a todos los autores. Seguir la vida del sitio se puede hacer de
diferentes maneras, usando RSS, sincronizando la agenda con el protocolo ical
o usando una simple lnea de javascript para colocar los artculos publicados en
cualquier archivo HTML
De izquierda a derecha. Interfaz simple / Interfaz Completa que permite
cambiar el aspecto de la parte interna como ya hemos visto. Los tres iconos
permite eliminar los mens que estamos viendo y dejar slo las letras o los logos
o mantener los dos que es el que tenemos por defecto. Con Pantalla pequea
/ Pantalla Completa aprovecharemos la resolucin al mximo, para poder ver
todo correctamente. Segn tu resolucin de pantalla lo vers de una forma u otra.
Los colores, cambian la visualizacin de tu interfaz de trabajo. Ojo no cambia
los colores de la interfaz pblica.
Nos permite cambiar el idioma de nuestra interfaz privada. Hay muchos. El botn
verde y blanco indica salir de la sesin, para entrar con otro nombre o para dejar
de administrar la web. Cuando ests en ordenadores pblicos es importante que
pulses ese botn y as te garantizas que nadie usurpe tu identidad o entre en tu
cuenta por error.
17
spipedumanual de uso
4.2. Creacin de autores
Ser una de las primeras acciones que tendremos que hacer, es importante que
decidamos el nmero de administradores y redactores que vamos a tener en la
web. De todos modos ya hemos comentado que cuantos ms administradores
mejor, porque un redactor no puede publicar el artculo, y tiene que esperar que
un administrador lo haga. Adems si todos somos administradores tenemos una
estructura de trabajo ms horizontal. Si creas un grupo de trabajo para desarrollar
la web de tu centro permite a todos los miembros de tu grupo que publiquen sus
propios contenidos. Puede que alguno se equivoque o haga algn estropicio pero
todo se puede arreglar y lo mejor es que todos podris arreglarlo. Hay experien-
cias en algunos centros que han creado Redactores para el alumnado, puede ser
interesante de cara a un blog realizado por ellos, por poner un ejemplo.
Pulsamos en Crear un nuevo autor o autora y nos encontraremos con una pgi-
na sencilla que nos pide los datos siguientes:
Firma: Tu nombre tal y como aparecer cuando publiques un artculo, puede
tener tildes y espacios. Es OBLIGATORIO
Correo Electrnico: No es obligatorio pero permite que los usuarios se pongan
en contacto contigo.
Nos saltamos Sitio Web y tu clave PGP, esto es para usuarios avanzados. Vamos
al apartado ms importante el de Login y Tipo de Autor:
Login: es el nombre con el que acceder el autor al espacio privado, evita los
caraceteres raros y las tildes, aunque las acepta siempre es mejor no arriesgarse
en este sentido. Lo ms fcil es que sea tel nombre del autor
Contrasea: que tenga ms de 5 caracteres y sea fcil de recordar, se puede
crear el nombre del autor dos veces y luego que cada autor la cambie. Si alguien
olvida su contrasea hay que sobreescribir con una contrasea nueva.
Tipo de Autor: Redactor/a o Administrador/a. Tambin lo puedes enviar a la pa-
pelera, esta ser la forma de borrar a autor. Cuando elijas Administrador/a vers
que puedes restringir a una seccin concreta (pulsa en el tringulo de la derecha
para desplegar esta opcin), esta medida es sobre todo se puede usar con la
seccin Blogs del Modelo 1, aunque no es necesario.
18
spipedumanual de uso
4.3. Publicar un artculo
Este quizs sea el apartado ms importante de este manual porque SPIPEDU
funciona slo si hay contenidos, vamos a intentar ser lo ms exhaustivos posibles,
pero si te atascas o haces algo mal es importante que mires la ayuda a travs de
los botenes de interrogacin:
Accede desde Mis Tareas o desde el Acceso Directo correspondiente a la funcin
Nuevo Artculo. Este botn crear una entrada en la base de datos y le asignar
un nmero nico que identifcar para siempre a tu artculo.
Estas son las tres cosas que tendrs que rellenar. Si vas a escribirlo in situ, como
si se tratase de un procesador de textos al uso, ponle un ttulo y dirgete a Guar-
dar. Si no lo haces puedes perder toda la informacin si por casualidad la web se
cae o similar. Dndole a guardar ya tendrs tu artculo creado.
Ttulo: no debe ser muy largo ni muy corto, unas 7 u 8 palabras es perfecto.
Si vas a usar todo en maysculas procura que todos los artculos tengan los
ttulos en maysculas. Lo que elijas o lo que decida el grupo de trabajo que
se cumpla, ya sea todo mayscula, o minsculas. Convenid entre todos unas
mnimas normas de estilo como esta.
Seccin: Por defecto elegiremos normalmente Novedades, que es donde se
ubicarn los contenidos diarios que no pertenecen a los elementos estticos
del centro, la seccin Nuestro Centro. Si publicas un artculo en una seccin
que no es, en la web pblica vers que o no aparece o aparece en una barra
que no debiera. No te preocupes todos los cambios se pueden hacer cuantas
veces sea necesario. Recuerda: Contenidos Estticos en la Seccin Nues-
tro Centro y Contenidos Dinmicos en la Seccin Novedades. En la seccin
Enlaces slo publicaremos sitios referenciados (ver ms adelante).
Epgrafe o Descripcin: Escribe una 40 palabras, piensa que se trata de una
introduccin o breve resumen del artculo que sigue, es importante esto para
cuando aparezca en la portada del sitio web. Quizs puedes escribirlo al fnal,
cuando ya lo hayas terminado.
Texto: Se trata del texto completo de la noticia que ests escribiendo. Si
copias el texto de otro sitio perders el estilo (las negritas, cursivas y aparta-
dos) as que te recomendamos que aprendas algunos de los recursos para
ponerlos fcilmente, aunque siempre podrs usar la barra de herramientas
que tienes para ello.
Los atajos tipogrfcos de SPIP:
Cursivas: { palabra }
Negritas: {{ palabra }}
Interttulo: {{{ palabra }}}
Enlaces Externos: [palabra->http://]
Enlaces Internos: [palabra->nmero de artculo]
19
spipedumanual de uso
Si te resulta ms sencillo siempre puedes seleccionar la palabra y usar los boto-
nes:
Hay ms recursos o atajos tipogrfcos propios de SPIP, por ejemplo las listas
de un solo nivel se hacen con guiones ( - ), pero se le pueden aadir hasta tres
niveles de jerarqua utilizando asteriscos ( * ) y si usas la almohadilla (#) puedes
hacer listas numeradas .
- Listas
- Nivel 1
-* Nivel 2
-** Nivel 3
-# Lista numerada
Si quieres hacer una lnea horizontal (HR en HTML) puedes hacerla poniendo
unos cuantos guiones seguidos sin espacios: Lnea Horizontal ---- . Para hacer
citas de otros utiliza este cdigo <quote> Frase que queramos citar </quote> y
por ltimo una que es muy sorprendente y til: Si usas la sentencia [?palabra] el
servidor se conecta a la WIKIPEDIA en espaol y crea un enlace directo a su de-
fnicin si existe. RECUERDA: Es importante que si vas escribiendo poco a poco
uses cada cierto tiempo el botn de Guardar:
Una vez que hayas terminado o dado a guardar te encontrars con una nueva
pantalla que te permite seguir trabajando en tu artculo. En esta segunda panta-
lla tenemos las palabras claves, el logotipo del artculo, la posibilidad de cambiar
o sumar autores, la fecha de publicacin, la posibilidad de incluir documentos y si
usas el Modelo 1 la inclusin en la agenda pblica de un evento relacionado con
lo que escribes en ese momento.
Logotipo del Artculo: Ser una imagen no superior a 150 pxeles de ancho que
nos permitir ilustrar grfcamente en la portada nuestro artculo. Es importante
que la imagen haga referencia al contenido del artculo:
20
spipedumanual de uso
Palabras Claves, es muy importante que nos detengamos a asignar palabras
claves, as podremos desarrollar una web ms transversal y dinmica. Por defecto
estn creados diferentes grupos de palabras claves segn los modelos. Se tienen
que crear palabras claves nuevas, lo veremos ms adelante. Para asignar pala-
bras claves tienes que desplegar el tringulo negro:
Repite esta accin cuantas veces sea necesario. Una sugerencia para saber si tu
artculo pertenece a una palabra concreta es que te lo plantees como una pre-
gunta Mi artculo es de Francs? Mi artculo es una programacin? Mi artculo
es de Primaria? Mi artculo es del curso 2005 / 2006? Es un mtodo sencillo y
efcaz.
Ahora segn lo necesites puedes, seguir editando el artculo, aadir un documen-
to, aadir imgenes o una galera de fotos o proponer tu artculo para la evalua-
cin. Veamos cada una de las opciones.
Aadir documentos: Se puede hacer en la misma pgina en la que estamos,
es un pequeo formulario que est cerca de modifcar este artculo. Al artculo
podemos incluirle todo tipo de documentos de texto, archivos PDF y archivos
multimedia. Existe un lmite de 2 megas por documento y te recomendamos que
uses archivos libres. Recuerda lo de Software Libre con cario y no lo estropees
con algn archivo que slo puedes ver en la ltima versin de Microsoft, por poner
un ejemplo corriente.
Cuando subes un documento automticamente aparecer un icono en miniatura
que indica qu tipo de archivo es. Ese icono lo puedes modifcar si quieres pero
te recomendamos que los uses porque son muy fciles y comunes de entender.
El documento lo puedes titular y ponerle una descripcin. Como se puede ver en
la imagen adjunta puedes incluso poner la fecha de publicacin del documento.
Es importante atender al cdigo que aparece debajo del logotipo. En nuestro
ejemplo es <doc 1> ese cdigo servir para localizar el documento y sobre todo
21
spipedumanual de uso
para incluirlo en nuestro texto. Si queremos que aparezca en un punto concreto
del texto o si lo queremos repetir en otros artculos slo tenemos que colocar el
cdigo y aparecer. Los documentos se borran directamente en el botn suprimir
este documento. Puedes publicar todos los documentos que quieras. Slo tienes
que repetir el proceso indicado cada vez que lo necesites.
Un consejo si vas a subir muchos archivos a un mismo artculo es comprimir
todos los que quieras que aparezcan, de diferentes extensiones y tipos. SPIPEDU
reconocer los archivos que incluyas en un ZIP y te preguntar si quieres subirlo
como ZIP o si quieres que lo descomprima. Aparecern cuadros de dilogo como
el anterior uno por cada archivo.
Aadir imgenes: En teora es un proceso diferente al de subir un documento,
pero te dars cuenta, con la prctica, que es lo mismo. Aunque no es necesario
para subir documentos o imgenes te recomendamos que guardes al menos
una vez el artculo. Si entras a editar te encontrars a la izquierda, arriba, con un
cuadro de dilogo similar a este:
Es importante que la imagen que subas no sea superior
a 400 pxeles de ancho y que sea de uno de los siguien-
tes formatos: JPG, PNG, GIF. Si haces una foto con una
cmara digital o escaneas un folio A4, tienen una media
de 2000 pxeles de ancho. Si subes esa imagen te dars
cuenta de que no aparece en el artculo o aparece ocu-
pando toda la pantalla. Recuerda que tu imagen no puede
pesar ms de 2Mb. Para saber lo que mide la imagen que
hemos subido podemos verlo en el Cuadro de Dilogo
que aparece al subir el archivo, similar al que tenemos
aqu al lado. En este cuadro de dilogo encontraremos las
mismas opciones que en el de subir documento. El cdigo
de localizacin del archivo incluye la opcin de left, cen-
ter, right, es para organizarlo dentro de tu documento, si
haces doble click sobre el cdigo se incluir en el cuerpo
de texto. Una cosa importante es que si vas a modifcar
el ttulo o la descripcin de la imagen tienes que darle a
Guardar antes de Guardar el artculo, si modifcas algo
y no lo salvas antes de Guardar el artculo lo vas a
perder.
22
spipedumanual de uso
En las imgenes es muy til usar lo que hemos comentado antes del archivo com-
primido en ZIP. Podremos hacer rpidamente una galera de fotos con todas las
imgenes. Si queremos localizarlas con el cdigo tendrs el orden que quieras,
sino siempre te lo har de manera automtica SPIPEDU a travs de Miniaturas
que al pulsar muestra la imagen ms grande.
Publicar: Una vez hemos terminado nuestro artculo tenemos que decidir si lo pu-
blicamos o pedimos que nos lo publiquen. Si eres administrador/a podrs hacerlo,
si eres Administrador/a Restringido slo podrs hacerlo en la seccin que tienes
permisos, si eres redactor/a slo podrs proponer que tu artculo se publique y un
administrador lo har por t. Para publicar atiende a este cuadro de dilogo:
Que tiene las opciones siguientes en el modo administrador:
- En curso de redaccin, es el estado inicial de cualquier artculo, hasta que no
lo termines no lo pongas en otro estado que no sea ese.
- Propuesto a la evaluacin, si quieres que tu artculo lo revise otro administra-
dor o si eres redactor y quieres que algn administrador/a te lo publique.
- Publicado, para hacerlo pblico en el sitio web.
- A la papelera, para borrarlo de la base de datos.
- Rechazado. Si un administrador no lo ve correcto y pide que lo cambie lo
puede rechazar.
Para ejecutar estos estados es importante que una vez lo elijas, pulses sobre el
botn de validar el estado de tu artculo. Te mostramos la imagen para que veas
bien cmo se hace:
Una vez publicado tu artculo puedes verlo en lnea de dos maneras, usando el
botn de Visitar el Sitio que est arriba a la derecha en nuestra barra de herra-
mientas de Administradores o debajo del nmero de artculo aparecer un nuevo
botn llamado ver en lnea.
Et voil! Tenemos nuestro artculo publicado. Repite estos pasos para cada art-
culo nuevo. El orden de los pasos es indiferente.
En la pgina siguiente encontrars un resumen de todos los pasos, sin las imge-
nes, que realizamos para las compaeras del Colegio Maestro Jos Fuentes, es
un documento muy til que puedes imprimir y tener a mano delante del ordenador.
23
spipedumanual de uso
Como publicar artculos en la web
1. Entrar en la web: http://www.tusitio.com y una vez dentro acceder al espacio
privado http://www.tusitio.com/ecrire. Introducir vuestro login y luego vuestra con-
trasea.
2. Arriba en el centro de la web, hay el dibujo de un sol en pequeito: colocarlo en
Interfaz completa (esto slo hay que hacerlo la primera vez).
3. Dependiendo del contenido que vayas a crear entra en Novedades (contenido
dinmico) o Nuestro Centro (contenido esttico).
4. Una vez dentro del deseado, le damos a la pgina hasta abajo del todo y selec-
cionamos: Nuevo artculo pulsando una sola vez sobre ste.
5. Ya vamos a crear nuestro artculo y los pasos son:
5.1. Escribir el ttulo.
5.2. Escribir un pequeo Epgrafe (es obligatorio). Es un resumen del conteni-
do del texto, y suele ser lo que sale en la web inicial antes de entrar a leer en
profundidad el texto.
5.3. Escribir el texto: Introduccin, objetivos, contenidos, actividades, fotos,
etc....
5.3. Nos vamos abajo del todo y le damos a guardar.
6. Para meter fotos en el texto, una vez guardado volvemos a entrar en l, le
damos a modifcar este artculo y volvemos a entrar en l. Arriba a la izquierda
aparece una ventana que dice: AADIR UNA IMAGEN le dais a examinar en
vuestro ordenador, la seleccionis y luego le dais a subir.
7. La Imagen a subir: recordad que deber ser modifcada, y el tamao recomen-
dado es 400 pxeles de ancho. Puedes usar GIMP para modifcarlo o cualquier
programa de retoque digital.
8. Una vez subis la foto, abajo os aparecer una ventana donde le colocaris
el nombre a la foto, este nombre aparecer como pie de foto en el artculo. Le
ponis ttulo y le dais a guardar. Una vez guardada, volvis a entrar en modifcar
el artculo y copiis los cdigos de debajo de la foto que sern como estos: en la
zona del texto donde queris que aparezca la foto. Volver a guardar el artculo.
9. Estos pasos se deben hacer para cada una de las fotos a subir o puedes me-
terlas todas en un ZIP y subirlas de una vez.
10. IMPORTANTE: hay que ponerles las palabras claves con las que el texto est
relacionado, cuantas ms mejor. Pulsar la pestaa (triangulo negro) que aparece
junto a palabras claves y seleccionar las deseadas pulsando en Elegir.
Cuando termines proponlo a la evaluacin de los dems y si ests muy seguro de
que tu artculo es correcto ponlo en el estado PUBLICADO. Recuerda pulsar en
validar.
24
spipedumanual de uso
4.4. La cach de SPIP
Un punto importante en este momento es hablar de la cach de SPIPEDU. La
cach es el sistema que permite servir las pginas ms rpidamente. Cada vez
que publicamos un artculo o hacemos alguna modifcacin es importante que
renovemos la cach, para que muestre el contenido nuevo y no el anterior. Para
ello tenemos dos formas de hacerlo, la ms comn es que cuando visitemos el
sitio o veamos en lnea el artculo, si no se ha modifcado nos encontraremos
con una pestaa como esta:
Si pulsamos sobre ella deber actualizarse pero la cach es algo que depende
de muchos factores, tipo de servidor, conexin a internet, navegador que uses...
as que existe una opcin ms drstica que no recomendamos usar de manera
habitual. Se trata de la funcin que permite borrar la Cach en el panel de Admi-
nistracin de SPIPEDU:
Pulsamos en vaciar la cach de arriba y ya nuestros artculos deben aparecer
correctamente. A modo de recopilacin vamos a hacer un listado de consejos y
recordatorios para publicar un artculo. Te lo puedes imprimir y tenerlo siempre a
mano, cuando publiques el tercer artculo ya no te har falta este documento.
25
spipedumanual de uso
4.5. Publicar contenidos multimedia
Cada vez ms Internet se audiovisualiza y podemos encontrarnos con vdeos
presentaciones en powerpoint o msica. En SPIPIEDU hemos activado varios plu-
gins para poder incrustar archivos de audio. As mismo os explicamos brevemente
cmo colgar vdeos de Youtube y similares.
- Archivos MIDI: El MIDI es el acrnimo de Musical Instrument Digital Interface
estos archivos se usan por dispositivos musicales electrnicos para interpretar y
compartir partituras. Los archivos MIDI contienen la informacin que el ordenador
interpreta y reproduce las notas. Son archivos que ocupan muy poco espacio y
son ideales para ilustrar artculos con canciones. Para colocarlos en nuestra web
tenemos que seguir estos sencillos pasos sobre un artculo ya creado:
1. Subir archivo como Documento Adjunto
2. Ponerle una descripcin
3. Incluir el siguiente cdigo <embXX|autostart=true|loop=true> , las XX hacen
referencia al nmero automtico del documento.
Cuando hayamos hecho estos pasos tendremos en nuestro navegador la msica
elegida.
- Archivos MP3: Es el tipo de archivo ms usado en internet para compartir msi-
ca (existen otros como el OGG que tambin son vlidos para SPIPEDU), existen
dos formas de colocar el audio en tu artculo ya creado:
1.- Si tienes el archivo MP3, sbelo como documento adjunto y para activar el
plugin tienes que poner el siguiente cdigo: <docXX|player> y aparecer algo
como esto:

que si pulsas sobre el PLAY te devuelve un player de esta manera:
2.- Si no tienes el archivo MP3 pero sabes su direccin concreta en internet
tienes la opcin de vincular (no subirlo) el archivo como un documento nuevo.
En el cuadro de dilogo de subir un documento si pulsas sobre el tringulo
se despliega una pestaa que te permite incluir una direccin de internet. Ten
en cuenta que tu direccin ha de terminar siempre en .mp3 porque tienes el
enlace directo al archivo. Una vez hecho esto el proceso es idntico al del
punto anterior, pones el cdigo <docXX|player> y tendrs el player que has
visto arriba. Te mostramos a continuacin la imagen de cmo se vinculan los
archivos mp3 que estn en otras pginas web.
- Videos y Presentaciones Electrnicas: Como
recordars, por defecto, SPIP tiene una limitacin
de archivos de 2 megas, por eso los vdeos y las
presentaciones electrnicas (tambin conocidas
como Powerpoints) vamos a colocarlos desde otros
servicios de vdeo y presentaciones electrnicos.
Esta opcin es ms un consejo o apoyo a la edicin
de contenidos que algo propio del proyecto SPIPE-
DU. Para colocar archivos de vdeo, presentaciones
de fotografa y otras cosas tendremos que utilizar la
opcin embed que tienen estos servicios gratuitos.
Una vez tengamos nuestro artculo guardado nos
iremos a Youtube.com o a Dailymotion.com (para
vdeos) y a Slideshare.net o Slide.com (para presen-
taciones electrnicas) y cogeremos el cdigo embed
y lo copiaremos en nuestro artculo.
As ya tenemos el vdeo en nuestra web. Estos servicios son gratuitos as que
puedes darte de alta para colocar ah tus vdeos y/o presentaciones y luego pa-
sarlas a SPIPEDU.
Aqu tienes de cmo aparece el cdigo en Youtube:
26
spipedumanual de uso
4.6. Publicar enlaces o sitios referenciados
En SPIPEDU encontrars el nombre Sitio Referenciado y la Seccin Enlaces, si
te diriges a ella o a travs de cualquier acceso directo pulsa sobre el botn
que nos mostrar un cuadro de dilogo con dos opciones:
Si usamos esta opcin automtica pondr todos los contenidos de nuestro enlace,
pero que eso funcione bien depende de la web que queramos referenciar, si esa
pgina no est bien hecha o no tiene un ttulo, descripcin que nos interese, no
saldr bien la cosa. Por este motivo existe una segunda opcin que es la de poner
manualmente los siguientes datos:
Nombre del sitio: Es importante que sea descriptivo y nomine bien la web,
no tiene sentido que sea por ejemplo dibujos infantiles, porque podrn haber
ms de una web de dibujos. Este campo es obligatorio
Direccin del sitio: Tiene que empezar con http:// Este campo evidentemen-
te es obligatorio.
En el interior de la seccin...: Siempre tiene que ser Enlaces
Descripcin del sitio: Una descripcin breve para que cuando busquemos
los enlaces sepamos bien a qu nos estamos refriendo. Una buena descrip-
cin siempre ayudar en la bsqueda y el usuario lo agradecer.
La sindicacin y su URL: es una opcin que no hemos activado, pero
podramos recuperar en nuestro SPIPEDU los artculos publicados en otras
web. Veamos el cuadro de dilogo al que nos hemos estado refriendo:
27
spipedumanual de uso
Cuando le demos a Guardar o Aadir en la primera de las opciones nos aparece-
r un nuevo cuadro de dilogo. Muy parecido al de la gestin de artculos donde
podremos aadir las palabras claves, podemos modifcar lo que no nos guste,
podremos publicarlo o borrarlo.
Hay que elegir las palabras claves del grupo de palabras claves: Enlaces
Cuando elijamos el estado en el que estar el sitio es importante que le demos a
Validar. Una vez hecho este proceso lo podremos repetir cuantas veces necesite-
mos publicar un enlace. Recuerda que estos enlaces se vern en la parte pblica
ordenados por fechas en la barra izquierda en el Modelo 1 y en la barra derecha
en el Modelo 2.
4.7.- Gestin de la agenda
La agenda funciona nicamente para el modelo Profesor Juan Bautista El Viso
del Alcor, su funcionamiento es muy sencillo. Cuando hayas publicado un artculo
podrs agregarlo a una fecha concreta. Su uso es para marcar reuniones futuras
o pasadas en el calendario. El procedimiento es el siguiente, una vez publicado tu
artculo encontrars:
28
spipedumanual de uso
Despliega la pestaa / tringulo y encontrars:
Elige la fecha y hora concreta de la actividad, puedes poner una descripcin y una
duracin, por ejemplo para marcar los periodos no lectivos o para marcar reunio-
nes. Cuando pulses en Aadir tu evento se incluir en la base de datos y aparece-
r marcado con un recuadro verde.
4.8. Gestionar comentarios
Tambin en exclusiva para el Modelo 1, los comentarios permiten interactuar con
los visitantes y usuarios de nuestra web. Aunque SPIP lo llame foro no se trata
de un foro abierto en el que todos pueden plantear un tema, sino que funcionan
como comentarios dentro de un artculo, la gestin de los comentarios (borrar re-
peticiones o comenarios no deseados, activarlos o desactivarlos, aprobarlos...) se
hace en cada artculo. Es decir podemos establecer para cada artculo diferentes
sistemas de moderacin, a priori o a posteriori. No obstante existe una pgina de
moderacin de todos los comentarios de la web. Vayamos por partes.
- Tipos de Moderacin. La moderacin por defecto en el Modelo 1 es a pos-
teriori, lo que signifca que no hay moderacin. Tenemos adems tres opciones
ms, que no haya posibilidad de hacer comentarios (Sin foro), que slo pueden
publicar comentarios los usarios registrados en la web (administradores o redacto-
res) o que sea con moderacin a priori , es decir, que para publicar el comentario
un administrador de la web tendr que validarlo. En la pgina de tu artculo tienes
las diferentes opciones justo debajo del Logotipo del Artculo. Elige la que ms te
convenga.
- Borrar un comentario, siguiendo con la imagen de arriba vemos que aparece
ah Actualidad del foro pblico: 5 contribuciones, es decir, que hay 5 comen-
tarios. Pulsamos y aparecer una nueva pgina que nos permite ver todos los
comentarios. Ah podremos borrar los que sean SPAM, estn repetidos o no se
29
spipedumanual de uso
ajusten a las normas que hayamos establecido. Los comentarios quedarn ocul-
tos pero no desaparecern de la base de datos ya que si hay algn otro usuario
que considera que no debe ser borrado puede ser recuperado fcilmente.
Veamos en la siguiente imagen un ejemplo de comentario borrado, el que tiene el
recuadro discontinuo en rojo y un comentario pblico. Pulsando en los botones de
la izquierda arriba lo validamos o lo borramos.
Es posible que a veces tengis algn comentario de SPAM, en las diferentes
versiones de SPIP que se van realizando se estn mejorando estos asuntos. Si
os encontris un comentario con publicidad, normalmente en otro idioma, borrarlo
porque es SPAM. Si queris gestionar todo el foro pblico, es decir, sin ir artculo
a artculo podis entrar en Seguir y administrar los foros y aparecern todos los
comentarios. El botn es este:
4.9. Gestin de blogs
Los blogs slo estn disponibles en el Modelo 1. No existe ningn Blog creado
priori as que vamos a explicar aqu cmo se crea un blog en muy pocos pasos.
Los Blogs los puede crear cualquier Administrador dentro de la seccin BLOGS.
Accedemos a la Seccin Blogs y ah pulsamos sobre Crear una Nueva Subsec-
cin. Es importante no crear subsecciones ms all de Blogs, si creis un blog
dentro de otro blog no existir as que la jerarqua ser Raiz del Sitio / Blogs /
Nombre de vuestro blog
30
spipedumanual de uso
En la imagen podis ver cmo ya existe un blog de Artculos de Opinin. En nues-
tro ejemplo vamos a crear un blog nuevo de Matemticas.
Para ello tendremos que indicar un ttulo y un resumen, una breve descripcin de
los objetivos del Blog ya que esta descripcin estar visible en nuestra pgina de
los blogs. El siguiente paso, antes de empezar a poner artculos en la subseccin
Blog de Matemticas, es colocar el Logotipo del Blog. Esta ser una imagen que
identifca al Blog y que aparecer en nuestra web igualmente. Guardas el ttulo y
la descripcin y aparecer esto:
Elegiremos una imagen de un ancho no superior a 160 pixeles y una vez subida
ya lo tendremos listo para empezar a publicar artculos. Recuerda que estos art-
culos colocados en la seccin de BLOGS no aparecen en la portada si no que hay
que entrar a travs del men de blogs que tenemos en el barra derecha. As ms
o menos ha quedado nuestro blog Matemticas con el artculo sobre Webquest
Probabilidad ya publicado. La imagen de los nmeros es nuestro logotipo del
blog y lo que est entre lneas verdes la descripcin.
31
spipedumanual de uso
5 - Breve introduccin al diseo y modicacin
de esqueletos
El trabajo de aplicacin de los sitios web SPIPEDU en el CEP de Alcal de
Guadaira nos ha llevado a desarrollar esta pequea introduccin a la edicin de
esqueletos. Una introduccin que realmente es breve porque no es el objetivo de
SPIPEDU generar nuevos modelos. Hemos constatado que hay inters en per-
sonalizar o en aadir y cambiar cosas de la parte visual, si conoces el Lenguaje
HTML y CSS podrs cambiar algunas de las cosas que hay en tu modelo.
Gracias al Plugin Editor de Esqueletos que est instalado en tu sitio web pue-
des acceder a todos los archivos que lo confguran y editar su cdigo fuente. Es
decir que te encontrars cdigo HTML, CSS, PHP y la sintaxis propia de SPIP. A
travs de la edicin del sitio podris acceder a un botn que pone Editor de Es-
queletos ah aparecer un listado, a la izquierda, con todos los archivos que tiene
vuestro sitio web. Pulsad sobre el que queris modifcar y os aparecer el cdigo
que tendris que editar manualmente o descargarlo para editarlo en un editor
HTML externo. Tambin tenis la opcin, abajo a la izquierda, de cargar archivos
html nuevos que hayis creado y desde ah mismo subir lo modifcado. La ventaja
principal de este editor es que no tenis que depender de una cuenta FTP ya que
a travs de esta interfaz podris manejar todo a vuestro gusto.
En la imagen podris ver cmo hemos cargado el archivo pie.html, es el ms
sencillo de editar ya que si conocis el cdigo podris ver cmo las imgenes de
los logotipos ofciales estn incluidas en un listado horizontal. Si queris eliminar
alguno podis borrar por ah. Recuerda que el HTML es un lenguaje de marcas
y eso signifca que funciona abriendo y cerrando etiquetas <html> </html> no os
olvidis nunca de abrir y cerrar las etiquetas.
Es tambin recomendable que guardis una copia de seguridad del archivo antes
de empezar a tocarlos, es decir, descargis el archivo pie.html y si os habis equi-
vocado slo tenis que volver a subirlo y sobreescribir el archivo estropeado.
Todo lo que os encontris con almohadillas o con palabras en francs sern las
sentencias propias del lenguaje de SPIP, en la imagen de arriba lo encontris arri-
ba #DESCRIPTIF_SITE esas sentencias son llamadas a la base de datos. Para
conocer bien la sintaxis de SPIP tienes un enlace fundamental http://www.spip.
net/@ en donde se explican las balizas, los criterios, los boucles, etc, que llaman
a la base de datos de tus artculos.
Recordad tambin que el diseo de vuestro sitio web usa CSS y hay un archivo
que controla todo el diseo, tipos de letras, colores, tamaos de columnas, enla-
ces etc. Ese archivo en el modelo 1 se llama profesor_juan_bautista.css y en el
modelo 2 spip_style_naranja.css
Si necesitis ayuda acudid a la comunidad en espaol de SPIP o consultar al-
gunos manuales de HTML y de SPIP avanzado que existen en la web ofcial del
proyecto www.spipedu.es
spipedumanual de uso

Você também pode gostar