El calendario de SPIP 1.8.2

SPIP 1.8.2 permite ver en el espacio público los calendarios del espacio privado; y, más en general, construir agendas que aprovechen las herramientas de compaginación de esos calendarios. Esta posibilidad se ofrece mediante un nuevo criterio de bucle y tres nuevos filtros.

El criterio agenda tiene un número variable de argumentos, siendo los dos primeros:

-  un nombre de campo SQL de tipo datetime (por ejemplo date o date_redac para la tabla Artículos); este argumento no puede omitirse.

-  un tipo de calendario (jour, semaine, mois o periode) [1]; el valor por omisión es mois.

Estos dos argumentos deben ser literales (dicho de otro modo, no se pueden calcular dinámicamente por #ENV o cualquier otra baliza). Después viene eventualmente un trio de argumentos suplementarios que pueden indicarse mediante balizas:
-  una cadena exactamente de 4 cifras que indique un año;
-  una cadena exactamente de 2 cifras que indique un mes;
-  una cadena exactamente de 2 cifras que indique un día.

Si estos valores se omiten o son nulos, se reemplazan por los de la fecha actual. En caso de que el segundo argumento sea periode (periodo), es necesario un segundo trio de valores con la misma forma (el correspondiente al final del periodo); por lo dicho anteriormente, si se omite se tomará la fecha actual, y si el primer trio está ausente también, el periodo abarcará toda la vida del sitio (para los sitios con muchos artículos, el tiempo de ejecución puede ser excesivo si otros criterios no limitan el número).

Este criterio se emplea en un bucle que tenga un campo de tipo datetime indicado como primer argumento. Eso hace que en este bucle únicamente se seleccionen los elementos que en este campo tengan un valor compatible con los otros argumentos, a saber:

-  será un valor igual a año-mes-día si el tipo es jour,
-  será un valor comprendido en la semana del día indicado por año-mes-día si el tipo es semaine,
-  será un valor comprendido dentro del mes indicado por año-mes si el tipo es mois,
-  será un valor comprendido dentro del periodo indicado por los dos tríos de fechas si el tipo es periode.

El filtro agenda_memo se aplica con:

  1. una fecha
  2. una descripción
  3. un título
  4. la URL de un artículo que tenga ese título, esa descripción y esa fecha
  5. un nombre de clase CSS

Si el primer argumento no es nulo, el filtro se limita a memorizar los cuatro primeros argumentos en una tabla privada identificada por el quinto argumento y no devuelve nada. Si no, devuelve su tabla privada. El uso del quinto argumento como índice en la tabla privada permite tener tantos calendarios por página como sea necesario, con la tipografía diferenciada que se desee. La hoja calendrier.css ofrece 28 estilos diferentes que se pueden modificar o extender.

El filtro agenda_affiche se aplica a:

  1. un número que supuestamente es el número de eventos hallados por el criterio agenda;
  2. un texto en bruto;
  3. un tipo de calendario (jour, semaine, mois o periode);
  4. ... nombres de clases CSS utilizadas en la llamada al filtro precedente

Si el primer argumento es nulo, este filtro devuelve el segundo argumento. Si no, devuelve la compaginación de los elementos memorizados por el filtro precedente con los nombres pasados en el argumento (o todos los elementos, si no se pasa ningún nombre), según el tipo solicitado y las clases CSS indicadas. El tipo periode restringirá lo mostrado al periodo comprendido entre el elemento más antiguo y el más reciente de los realmente hallados, lo que permite dar como criterio un periodo muy largo sin obtener una visualización demasiado grande.

Por fin, el filtro agenda_connu comprueba si su argumento es uno de los cuatro tipos de calendario conocidos (jour, semaine, mois o periode).

Este criterio y estos filtros se utilizan en los nuevos esqueletos agenda_jour.html, agenda_semaine.html, agenda_mois.html y agenda_periode.html, llamados desde el esqueleto agenda.html que indica en su encabezamiento las hojas de estilo y funciones JavaScript necesarias (pero que se pueden reemplazar a voluntad). Por lo tanto, estos esqueletos ofrecen un ejemplo representativo de su uso.

Notas

[1Es decir: día, semana, mes o periodo

Autor o autora Xuacu Publicado el: Actualizado: 26/10/12

Traducciones: عربي, català, English, Español, français, italiano