Espacio privado
El espacio privado integra de manera más profunda la técnica de actualización asíncrona (AJAX/AHAH) de una parte de la página. Los formularios de descripción de imágenes y documentos son ahora más ágiles, así como la rotación de imágenes, la introducción de palabras clave o de autores, y las referencias a las traducciones son igualmente más rápidas.
Un sistema de modelos
Los modelos son mini-esqueletos que pueden integrarse fácilmente en un esqueleto normal, pero, también y más importante, en el texto de los artículos (o de breves, etc).
Se trata de una extensión natural de los atajos <img1|left>
, <doc1|center>
. De hecho, de ahora en adelante éstos son manejados por mini-esqueletos; pero ahora pueden definirse unos propios en la subcarpeta modeles/ de nuestra carpeta de esqueletos (o de un plugin).
Además de los atajos para documento e imagen, los modelos propuestos en dist/modeles/ manejan la presentación de los enlaces de paginación, de la baliza #LESAUTEURS
y de los enlaces de traducción.
Los modelos son documentados en detalles en el artículo «Utiliser les modèles» (por traducir).
Nuevas balizas
-
#SPIP_VERSION
muestra la versión de SPIP. -
#INSERT_HEAD
: una baliza a insertar en la zona<head>...</head>
de nuestros esqueletos para permitir a los plugins añadir automáticamente archivos CSS o con código JavaScript. -
#INCLURE
: una nueva etiqueta para las inclusiones «estáticas» y ya no dinámicas.Recuerda: La sintaxis
<INCLURE{fond=..}>
provoca la inclusión de páginas en cada visita de un internauta, ya sea una página existente en la caché o no.
Con la nueva etiqueta[(#INCLURE{fond=...})]
, la inclusión se realiza durante el cálculo del esqueleto, y su resultado se almacena en la caché de la página que la llama. Con este sistema, ya no se puede gestionar una duración de latencia ($delais
o#CACHE{}
) reducida para un esqueleto incluido; a cambio, resulta posible aplicar filtros sobre el esqueleto incluido:[(#INCLURE{fond=lettre}|version_texte)]
. - La paginación pasa a ser en «modelos» (ver aquí arriba), lo que permite su personalización por medio de modelos personalizados. Así:
-
#PAGINATION{page}
da los números de página (1, 2, 3, 4...) en lugar de los números de elemento (0, 10, 20, ...) ; - También se puede probar con
#PAGINATION{page_precedent_suivant}
y#PAGINATION{precedent_suivant}
.
-
- Introducción de una etiqueta
#SQUELETTE
que proporciona el camino al esqueleto actual.
Filtros
Enriquecimiento de las máscaras de imagen, filtro image_masque:
- De ahora en adelante, la colocación vertical y horizontal de la máscara se puede realizar con:
-
text-align=center
(o left, o right es decir, centrada, izquierda o derecha) -
vertical-align=middle
(o top, o bottom, es decir, alineación vertical centrada, superior o inferior)
-
- También se puede elegir el modo de mezcla de dos imágenes, de forma similar a la que ofrece un programa como Gimp. Por omisión, si no necesita nada se dispone de:
mode=masque
que es el funcionamiento ya conocido.
Los nuevos modos son:-
mode=normal
: se coloca la imagen encima de la otra; -
mode=eclaircir
: Aclarar, se colocan únicamente los píxeles más claros; -
mode=obscurcir
: Oscurecer, se colocan únicamente los píxeles más oscuros; mode=produit
: Producto, se «multiplican» los píxeles del origen por los píxeles de la máscara. De hecho: los puntos negros ennegrecen la imagen, los puntos blancos la dejan intacta;-
mode=difference
: Diferencia, se rellena con la diferencia entre las dos imágenes.
-
Extensión de los filtros de conversión de imagen al texto:
Todos los filtros de imágenes pueden ser aplicados sobre un archivo de imagen, una etiqueta <img src='..' ../>
o un texto completo (los filtros se aplican sobre cada imagen encontrada). Con ello resulta posible hacer [(#TEXTE|image_sepia)]
.
Hay otros filtros que han sido introducidos… cuya lista se completará.
Usuarios avanzados
Carpeta formulaires/:
ahora, los formularios personalizados (para la parte html) deben estar colocados en una sub-carpeta formulaires/ de la carpeta de los esqueletos (o de un plugin). Por su parte, la sección php del formulario podrá ser personalizada en la carpeta balise/ dentro de la carpeta de los esqueletos (o del plugin).
Calcular un fondo (fond) desde el espacio privado:
para los desarrolladores de plugins, una función recuperer_fond
permite ahora calcular un esqueleto, incluso desde un script del espacio privado. Este es el sistema que se usa tanto en la baliza #INCLURE
como en el sistema de modelos.
Variables en el esqueleto
Aparecen nuevas balizas, que permiten realizar cálculos en el interior de los esqueletos y llevar su resultado a una «variable», la cual puede ser usada a continuación en otra parte dentro del mismo esqueleto: #SET{foo, valor}
y #GET{foo}
.
Recarga parcial de página (experimental):
todo bucle puede definir un fragmento de esqueleto recargable dinámicamente, de forma asíncrona, por el navegador (ahah). Para ello, basta crear el criterio {fragment}
sobre el bucle deseado. El criterio {pagination}
implica por omisión al criterio {fragment}
. Todo el contenido del bucle (partes anterior, principal, después o alternativa) queda incluido dentro de un bloque (un div) de la clase "fragment" (class="fragment"), y un id único: <div id="fragment_html_1c4f894574d730e016e980d91fa678ca_articles" class="fragment">
...
Para recargar únicamente esta parte de la página, bastará con llamar a la URL con el parámetro var_fragment
que tenga como valor la id de la div fragment a recargar (por ejemplo: &var_fragment=fragment_html_1c4f894574d730e016e980d91fa678ca_articles)
y el servidor sólo devolverá este fragmento del esqueleto. De este modo es fácil recargar sólo una parte del esqueleto con javascript (AJAX/AHAH).
Aviso:
Esta característica aún es experimental y probablemente evolucionará en futuras versiones. Pese a ello, te animamos a probarla y comentar tus impresiones o proponer código para su mejora.
Modo tidy:
El modo XHTML Tidy (ver article 3070) ya no se incluye en la distribución estándar de SPIP, y pasa a ser un plugin. Por tres razones:
- este código se fundamenta en una llamada a un código binario que no está a menudo disponible en el hospedaje — su modo php_tidy aún no está totalmente operacional;
- el motor de SPIP ahora compone de forma estándar un código XHTML mucho más satisfactorio, lo que reduce el interés de este sistema;
- el depurador (o debugger que se activa agregando
&var_mode=debug
en la URL de la página) ofrece un modo de validación que señala las balizas invalidas y las líneas del esqueleto que las produjeron (agregar$xhtml='spip_sax';
enmes_options.php
para activarlo).
Documentación del código:
Se preparó una documentación del código en http://doc.spip.org
- Cada función está referenciada de forma automática, y el hipertexto funciona en los dos sentidos (del código a la documentación y viceversa);
- El sitio se actualiza diariamente en función de las modificaciones realizadas sobre el código de la versión de desarrollo (SVN) de SPIP.
Correcciones
Se corrigieron numerosos fallos (bugs. sobre todo en lo relativo a la sindicación, la caché de las imágenes tipográficas o el menú de idiomas). Para más detalles, consultar la documentación sobre el sitio de desarrollo http://trac.rezo.net/trac/spip/report/6.
Mejorada la compatibilidad con ciertos hospedajes, en particular los proveedores franceses free y club-internet.
* * *
Si se realiza una actualización de un sitio desde una versión más antigua de SPIP, convendrá leer también el artículo en SPIP 1.9.
A leer igualmente:
— Actualizar la versión de SPIP
— article 3443
Como de costumbre, en caso de dificultades se encontrará ayuda en las listas spip-es@rezo.net (en español), spip@rezo.net (en francés) o en los foros de SPIP.