SPIP 1.9

1 de juliol del 2006 : cinc anys després de la primera versió pública, surt SPIP 1.9.

Podeu descarregar aquesta versió a l’adreça habitual, o utilitzat el nou spip_loader que descarrega directament el paquet zip al vostre servidor, i llança la instal·lació.

Heus aquí les principals novetats d’aquesta nova versió en relació a l’anterior versió estable (SPIP 1.8.3).

1. L’espai públic

Nous esquelets estàndards

Els esquelets per defecte han estat refrescats i respecten millor els estàndards W3C i els criteris d’accessibilitat. La seva navegació s’ha pensat de nou. Els fulls d’estil CSS han estat simplificats per facilitar la personalització de l’aparença (tractat en aquesta secció).

Aquestes plantilles s’han construït amb inclusions: tres pel menú de navegació per seccions, la capçalera i el peu de pàgina, que es repeteixen a cadascuna de les pàgines, i dues més pels fòrums i les signatures de peticions.

Els formularis d’SPIP també s’han canviat per millorar la seva accessibilitat i facilitar la seva aparença gràfica; veure: «Que bonics que són els meus formularis !»

Sindicació avançada

Les plantilles dels flux de sindicació backend passen al format RSS 2.0. Una modificació em la configuració del lloc Web, permet precisar si es vol difondre el contingut dels nostres articles en aquests fluxos RSS, o només un resum. El flux de sindicació comporta també informacions sobre la secció de l’article així com sobre les paraules clau i els fitxers que té associats (podcasting). En lectura, quan el vostre lloc sota SPIP sindica un altre lloc que disposa d’un flux enriquit, sap també analitzar aquestes dades. Llegir l’article La sindicació dels continguts.

Formats de documents addicionals

El format SVG (Scalable Vector Graphics), interpretat en origen per FireFox i Opera des de fa poc, és acceptat com a nou tipus de document incrustable en un text (per mitjà de la drecera <emb1>). Aquest format, que incorpora JavaScript, necessita de mesures de seguretat que consisteixen en:
-  en cas de ser carregat per un simple redactor, SPIP depura del document qualsevol codi javascript o referència a un fitxer javascript;
-  en cas de ser carregat per un administrador, SPIP acceptar el document tal i com està.

Altres formats també són tinguts en compte: Abiword (abw), Blender (blend), Flash Video (flv), fonts de caràcters truetype (ttf), així com el conjunt dels formats del tipus «open document» (OpenOffice.org).

Adreces de les pàgines

Els fitxers article.php3 etc., que estaven instal·lats a l’arrel del lloc Web per cridar la plantilla article, ja no són necessaris i, per tant, han desaparegut.

Per tant, aquests fitxers ja no apareixen als URLs per defecte (que s’anomenen des d’ara « urls page » i són del tipus /spip.php?article12 (per l’article número 12) o fins i tot /spip.php?page=plan (per l’esquema).

Si un esquelet xxx necessita funcions o altres suplements que estaven anteriorment situats a dins d’aquest xxx.php3, ara els posarem a dins de squelettes/xxx_fonctions.php, per exemple per article a dins de squelettes/article_fonctions.php

A tenir en compte:
-  es proporciona un fitxer htaccess.txt per a permetre servir correctament als visitants (i motors de cerca) que coneixen aquestes antigues. A casa de la majoria d’hostatjadors en tindrem prou tornant a copiar aquest fitxer amb el nom .htaccess (fitxer invisible) per activar-lo. Aquest fitxer, d’altra banda, permet de servir els altres modes de gesitó de les adreces de les pàgines («URLs propres», etc).
-  en cas d’una migració, si deixeu els fitxers antics article.php3 etc. a l’arrel, aquests continuen funcionant gràcies al fitxer fantasma inc-public.php3 — però alerta, ja que aquesta compatibilitat desapareixerà a la següent versió d’SPIP.
-  la gestió de la durada de la validesa de la memòria cau (variable $delais) ara es confia a l’etiqueta #CACHE que s’inscriu directament a la plantilla (no obstant, si la variable $delais existeix, continua funcionant).

Per escollir una altra manera de gestionar les adreces encara és possible modificar la variable $type_urls al fitxer ecrire/mes_options.php.

Fitxers php o php3?

En general, tots els fitxers .php3 s’anomenen ara .php però els noms antics encara els entén SPIP, el que fa que els vostres fitxers personalitzats (mes_fonctions.php3, ecrire/inc_connect.php3 o ecrire/mes_options.php3) encara es tinguin en compte.

Aquest no serà el cas amb SPIP 2.0: penseu, per tant, a canviar el nom d’aquests tres fitxers des d’avui mateix.

Compatibilitat: SPIP necessita una versió de php superior a 4.0.8 i és compatible amb les versions 5.x. La seva compatibilitat amb MySQL 4 i 5 ha estat revisada i millorada.

Filtres gràfics

Una important col·lecció de filtres nous permet aplicar tractaments gràfics a les imatges.

Necessiten la presència de GD2 al servidor.

Alguns filtres fan referència al color (convertir a blanc i negre, a sèpia, enfosquir, aclarir...), altres a la rotació, permetent desenfocar, aplicar un efecte mirall, tornar semi-transparent, aplicar una «màscara» de transparència, etc.

Un article ens presenta el conjunt d’aquests nous filtres de tractament gràfic.

El filtre |couleur_extraire permet extreure un color d’una imatge (logotip, document adjunt...) per aplicar-lo a altres elements de la pàgina (blocs de colors, estil CSS, imatge tipogràfica...). També es pot automatitzar variacions de colors entre les diverses pàgines del lloc, tot conservant una certa coherència gràfica.

Una sèrie de filtres permet a continuació modificar aquest color (aclarir, enfosquir, etc.) per crear una completa paleta de colors. Un article presenta l’ús d’aquests filtres sobre els colors de les imatges.

També apareix el filtre |image_typo que permet crear imatges tipogràfiques, és a dir imatges representant un text amb un joc de caràcters disponible al servidor, garantint una presentació uniforme en tots els navegadors en els que les fonts particulars no són sol·licitades Un article ens presenta l’ús complet del filtre image_typo. A més de GD2, aquest filtre requereix la presència de Freetype al vostre servidor (el més normal és que estigui instal·lat amb GD2).

Millora de la reducció d’imatges

A la configuració del lloc Web, pestanya «Funcions avançades», és altament aconsellable seleccionar el mètode GD2 (evidentment, si aquest està disponible al servidor). En realitat, la reducció feta amb aquest mètode és des d’ara molt més precís: conserva les zones transparents de les imatges GIF i PNG.

El filtre |reduire_image esdevé |image_reduire (d’aquesta manera tots els filtres de tractament d’imatge comencen per |image_). L’antiga denominació encara està disponible.

Un nou filtre, |image_reduire_par redueix les dimensions d’una imatge segons un cert factor (per exemple: |image_reduire_par{2} redueix per dos les dimensions de la imatge).

Noves etiquetes

  • #CACHE. Els $delais de les pàgines es poden a partir d’ara fixar en els mateixos esquelets, amb #CACHEduree (a tenir en compte: podem utilitzar aquí, com abans, una expressió de l’estil 24*3600). Aquesta nova escriptura té com avantatge suplementari la producció d’un encapçalament HTTP advertint al client que la pàgina no canviarà durant un cert període de temps.
  • #HTTP_HEADER permet definir les capçaleres HTTP de les pàgines. Exemple #HTTP_HEADER{Content-Type: text/css}. IMPORTANT: el fet d’utilitzar aquesta etiqueta provoca la supressió per SPIP dels botons d’administració: per tant, això substitueix l’antiga variable global $flag_preserver, que s’abandonarà a SPIP 2.0.
  • #CHEMIN{fichier} (millora #DOSSIER_SQUELETTE). #CHEMIN{xxx} donarà el camí complet cap el fitxer xxx, que es troba a l’arrel, a la carpeta de les plantilles, a dist/ etc.
  • #DESCRIPTIF_SITE_SPIP reenvia, com el seu nom indica, la descripció del lloc Web, que s’ha comunicat a la pàgina de configuració general del lloc. Útil per les etiquetes meta.
  • Modificació de #LOGO_SITE_SPIP: d’ara en endavant diferent del logotip per defecte de les seccions (rubon0.jpg), #LOGO_SITE_SPIP retorna ara el logotip del lloc Web (siteon0.jpg). El logotip del lloc és afegit, com el títol i la descripció el lloc, a la pàgina de configuració general del lloc Web.
  • Llocs sindicats: creació d’etiquetes #SOURCE i #URL_SOURCE que permeten mostrar respectivament el nom i l’adreça de la font original d’un contingut sindicat via un portal. En els continguts sindicats, l’etiqueta #TAGS mostra en forma de microformats els enllaços caps els documents adjunts, les paraules clau i la secció.
    Per més detalls llegir La sindicació dels continguts.
  • l’etiqueta tècnica #CONFIG permet mostrar el valor d’un ajust emmagatzemat a la taula spip_meta
  • Molt tècnic, també, #EVAL{} avaluarà l’expressió PHP posada entre claus. #EVAL{2*7} dóna, per tant, 14, #EVAL{_DIR_IMG_PACK} dóna també el camí cap al directori ecrire/img_pack/ (utilitzar-lo amb moderació)
  • Una notació simplificada es troba disponible des d’ara pels INCLURE on no es precisa més que el nom de l’esquelet a incloure, sota la forma <INCLURE {fond=squelette2} {id_article}>. (Nota: no està decidit encara si aquesta notació portarà a un emmagatzament «intern» del tros inclòs d’aquesta manera en el fitxer cache de la pàgina en curs).
  • En matèria de seguretat, a partir d’ara és possible desactivar totalment els filtres de seguretat a una etiqueta, aplicant-li una doble estrella (exemple: [(#TEXTE**)] permet compilar php inserit dins d’un article — si deixeu aquesta possibilitat tal qual en una plantilla us exposeu a molèsties pitjors).
  • Les etiquetes amb arguments, és a dir seguides d’un parell de claus, es beneficien d’una escriptura més lleugera, i ja no són obligatoris els claudàtors i els parèntesis: podem escriure
    #EXPOSE{rouge} en lloc de
    [(#EXPOSE{rouge})].

Paginació automàtica dels bucles

S’ha integrat un sistema genèric de paginació dels resultats d’un bucle: fa servir el criteri {pagination} (que pot agafar en argument el número d’elements a mostrar en una pàgina: {pagination 5}) i les etiquetes #PAGINATION i #ANCRE_PAGINATION. Les plantilles per defecte estan plenes d’exemples de paginació (llegir l’article de la documentació El sistema de paginació). Tinguem en compte que aquest sistema és incompatible amb la contrib’.

Criteris

-  El criteri {inverse} pot agafar com a paràmetre qualsevol etiqueta per variar dinàmicament el sentit del triatge. És possible escriure: <BOUCLE_exemple(ARTICLES){par #ENV{tri}}{inverse #ENV{senstri}}>, que ens permet escollir la columna de triatge i el sentit del triatge pel URL (&senstri=1 ou &senstri=0)

-  La possibilitat de tornar condicional un criteri (caràcter ?) és més sistemàtic i es beneficia d’una compilació més curosa, evitant provocar un moment crític quan està absent.

-  El criteri {xxx IN 1,2,3} només accepta actualment que li sigui passada pel URL una taula de valors (veure la definició del criteri IN).

Millor gestió de la memòria cau

El fitxer cache no depèn només del URL de la pàgina, sinó també del nom de domini, del valor de $dossier_squelettes i també del valor d’una variable global anomenada $marqueur, que podem fixar lliurement. Això permet, entre altres coses, canviar la plantilla «al vol» tot beneficiant-nos de la memòria cau (personalització, funcionalitat «var_skel»...).

Igualment, el fitxer cache ja no es comprimeix si és lleuger (< 16 kB) per guanyar una mica en eficàcia en les plantilles que tenen moltes (petites) inclusions.

Llengua i caràcters

-  SPIP s’instal·la des d’ara per defecte en el joc de caràcters «universal» utf-8. Proposa un botó, a l’espai privat, per a convertir el vostre lloc Web en aquest joc de caràcters (això no té res d’obligatori).

Per facilitar aquesta conversió, si les vostres plantilles tenen caràcters accentuats, seran convertits al vol (al moment de tornar a calcular la pàgina) en el joc de caràcters especificat pel vostre lloc Web.

-  Es proposa una nova llengua: el bosnià.

-  Un filtre |direction_css permet «invertir» un fitxer CSS en aquelles llengües que s’escriuen de dreta a esquerre. Si el CSS a invertir s’anomena, per exemple, style.css, aquest filtre utilitza (en el cas que la llengua actual s’escrigui de dreta a esquerre) un eventual full style_rtl.css; si aquest no existeix, crea automàticament un full RTL substituint a tot arreu on posa left per right i viceversa (i la emmagatzema a dins del directori IMG/cache-css/). Sovint s’aplica en una etiqueta #CHEMIN: [(#CHEMIN{style.css}|direction_css)].

2. L’espai privat i l’administració

Introducció d’AJAX

L’espai privat integra, de manera experimental, (algunes funcionalitats no estan activades a MSIE), elements de navegació AJAX (o més aviat AJAH, els elements HTML es creen directament pel servidor). Aquest autoritzen una navegació més rica sense recarregar la totalitat de la pàgina. Aquestes formes de navegació estan destinades, bàsicament, als «grans» llocs Web (és a dir, aquells que tenen una gran quantitat de seccions i d’articles).

A partir d’una certa quantitat de seccions, el menú desplegable permetent seleccionar a quina secció es troba l’element actual (per exemple un article) esdevé un petit navegador de quatre columnes mostrant l’estructura del lloc Web:

Aquest petit navegador, a més d’una navegació més clara per l’estructura del lloc, ens proposa el seu propi motor de cerca.

Les llistes d’elements (particularment d’articles) es beneficien d’AJAX de dues maneres:
— quan hi ha nombrosos elements, la presentació de 10 en 10 (articles de l’1 al 10, després de l’11 al 20, etc.) es fa sense carregar la totalitat de la pàgina, només se’ns mostra la llista; el petit botó «Més» que hi ha a dalt a la dreta permet mostrar la totalitat de la llista, sense carregar igualment tota la pàgina.;
— en els les articles, quan el lloc Web és multilingüe, la sigla «Micròfon» que ens assenyala el multilingüisme fa balancejar la publicació de la llista a un mode que permet seguir l’estat de les traduccions.

Rapidesa de presentació

La presentació de l’espai privat era molt lenta amb Internet Explorer 6 ; s’ha desenvolupat un codi específic per aquest navegador que permet a partir d’ara una presentació comparable, en termes de rapidesa, a la que s’obté amb els altres navegadors. Que això no us dissuadeixi de passar a FireFox !

D’altra banda, la compressió de les pàgines s’ha desactivat a l’espai privat per tal de permetre una rapidesa final més gran.

Refosa del status d’administradors restringits

Aquest status tenia algunes incoherències i s’ha revisat completament. Per beneficiar-se plenament de les seves noves atribucions, és preferible que aquest status s’apliqui exclusivament als sectors (les seccions de primer nivell) tot i que la seva aplicació en altres seccions sigui possible.

Els administradors restringits poden ara gestionar els fòrums dels seus sectors, descarregar documents per FTP a partir del directori upload/login, realitzar una salvaguarda XML de les seves seccions (desant la còpia en aquest mateix directori)i, visualitzar les estadístiques. A la pàgina d’inici de l’espai privat, un requadre a dalt a la dreta facilita els enllaços directes a les seccions que administren, i simètricament la pàgina d’inici d’una secció indica en un requadre semblant la llista dels administradors restringits de la secció.

A la inversa, les possibilitats transversals en l’administració d’una secció (creació de paraules clau, obertura d’un compte, buidat de la memòria cau) no són accessibles (algunes ho eren més o menys fàcilment) per tal que els administradors generals puguin controlar l’evolució del lloc (evitar les paraules clau gairebé idèntiques, conèixer els nous redactors, controlar el rendiment de la memòria cau).

Millora del sistema de còpia de seguretat

El sistema d’importar / exportar les taules SQL en format XML té en compte actualment taules externes. És també més robusta en front de les interrupcions dels processos de salvaguarda quan la base és voluminosa i mostra la progressió més sovint.

La restauració també s’ha accelerat i és més robusta si la comparem amb els fitxers de salvaguarda d’antigues versions d’SPIP. Permet restaurar directament una còpia de seguretat XML realitzada amb phpmyadmin.

Millora de la indexació

El codi s’ha tornat a escriure de forma genèrica per tenir en compte qualsevol taula declarada que comporti un camp idx: per tant, SPIP pot indexar taules suplementàries, i donar-los-hi una resposta per mitjà dels bucles i el criteri {recherche}.

El pes dels diferents camps en la indexació de les paraules el podem decidir mitjançant paràmetres.

Les diverses taules d’indexació s’han fusionat en una de sola.

Millora del recompte de les estadístiques

Una anàlisi més fina dels enllaços entrants permet un càlcul més significatiu i ja no és necessari establir una connexió amb la base de dades a cada visita, cosa que permet alleugerir considerablement la càrrega al servidor.

D’altra banda, la presentació dels llocs referers proposa miniatures de les pàgines d’inici d’aquests llocs Web (en tot cas, per a una gran part d’aquests llocs). Per defecte, la font d’aquestes miniatures és Thumbshots.org. És possible modificar el lloc proporcionant les miniatures, amb una o altra de les següents modificacions:

3. La interfície de programació

S’ha tornat a escriure el codi per tal d’oferir al final una interfície de programació normalitzada. Les informacions d’aquesta secció es donen per permetre a les diferents extensions d’Spip (en particular als milers de contribucions disponibles a Spip-Contrib) el poder funcionar en aquesta nova versió, fins i tot en cas d’una instal·lació mutualitzada. Malgrat tot, aquestes informacions no garanteixen la presència de tal o qual funcionalitat en versions posteriors d’Spip, on la problemàtica de la interfície de programació serà completament revisada.

Reorganització dels fitxers i els directoris

Tal i com hem vist, els fitxers acabats per .php3 han desaparegut, ratificant l’abandonament de la compatibilitat amb PHP3 que ja va deixar de ser operatiu amb SPIP 1.8. Aquest canvi de nom, indispensable per resoldre l’ambigüitat dels continguts, s’ha acompanyat d’una reorganització completa dels directoris.

A l’arrel ja no hi trobem els fitxers de les plantilles i dels fulls d’estil; aquests figuren actualment dins del directori dist, indispensable i no esborrable.

A l’arrel només hi ha com script spip.php, i el seu àlias index.php (una regulació interna permet posar ./ en lloc de spip.php als URL: define('_SPIP_SCRIPT', '') però per defecte és define('_SPIP_SCRIPT', 'spip.php') ja que no es pot estar completament segur que l’arrel del lloc cridarà aquest script (podria ser un estúpid index.html amb una pantalla de benvinguda).

Els altres scripts han estat moguts cap a altres subdirectoris del directori ecrire/ i es reparteixen d’aquesta manera:

  • exec/ => els scripts que realitzen les pàgines de l’espai privat;
  • action/ => els scripts que modifiquen la base sense construir una pàgina per remetre al client (per exemple el canvi d’estat ordenat per un guionet);
  • base/ => les funcions que tracten la base de dades;
  • inc/ => les biblioteques de funcions utilitzades per SPIP.

Sobrecàrrega dels fitxers estàndards

Gràcies a la organització que hem vist, és possible canviar el comportament d’Spip a l’espai privat sense modificar les seves fonts.

Tot script s de l’espai privat està cridat ara per un URL del tipus ecrire/?exec=s..... SPIP mirarà llavors que cadascun dels directoris que figuren en la constant SPIP_PATH si ja existeix un fitxer exec/s.php. El primer trobat es carregarà, i definirà la funció exec_s, que llavors s’aplicarà. Com a últim recurs, SPIP carregarà el fitxer estàndard ecrire/exec/s.php que conté la definició de la funció exec_s_dist que serà aplicada.

Aquest comportament s’assegura igualment per les funcions action_a_dist definides en els fitxers action/a.php.

Es poden també sobrecarregar les biblioteques estàndards, que són carregades per la funció include_spip i ja no per include_ecrire (que es declara obsoleta però continua funcionant). Arran de la crida de include_spip('inc/nom') Spip buscarà també un fitxer homònim en un subdirectori inc dels directoris de SPIP_PATH que es carregarà en lloc del fitxer estàndard.

Haurem comprès que aquesta interfície permet també afegir a Spip scritpts i biblioteques sempre sense modificar les seves fonts.

La crida d’scripts a través d’una funció, i ja no directament, té també l’avantatge de forçar a la nomenclatura de les variables globals, cosa que permet, i ha permès, eliminar qualsevol injecció de codi per publicació d’una variable global no inicialitzada.

Aquest treball té dues sortides importants: la integració d’un sistema de plugins, i la possibilitat de mutualitzar les fonts d’SPIP entre diversos llocs Web.

Plugins

Introducció d’un sistema de plugins; un nou submenú apareix al menú « Configuració » quan es detecta una carpeta anomenada plugins/ a l’arrel del lloc Web. Llavors podem activar un a un els plugins instal·lats en aquesta carpeta. Per més informacions, veure l’article Instal·lar els plugins.

Nombrosos plugins estan en preparació; el seu desenvolupament es fa essencialment a SPIP Zone http://zone.spip.org/trac/spip-zone..., i la seva documentació es trobarà a SPIP Contrib.

Mutualització de les fonts

Una reescriptura important de tot el codi Spip permet actualment que una mateixa distribució doni servei a diversos llocs Web a la vegada sense necessitat de copiar les fonts. Aquesta funcionalitat es pot desplegar tant per un hostatjat que tingui diversos lloc Web en un hostatjador (amb diversos comptes MySQL o també amb un de sol gràcies al prefix de taula) com per l’hostatjador amb ganes d’oferir Spip immediatament al conjunt dels seus hostatjats (per optimitzar els seus accés-disc). Una instal·lació com aquesta no impedeix una personalització d’Spip per part de cadascun dels usuaris, gràcies al sistema de recàrrega que es descriu en la última secció d’aquest article. En canvi, exigeix que l’hostatjador autoritzi certes instruccions (Alias o RewriteRule) en els .htaccess dels seus hostatjats, o que sigui ell qui s’encarregui directament d’això al seu httpd.conf (directiva VirtualHost).

Detecció automàtica de taules SQL et de connexions

En una plantilla comportant BOUCLE_a(xxx), la taula xxx pot ser qualsevol taula SQL coneguda del servidor SQL. SPIP preguntarà llavors al servidor SQL que descrigui aquesta taula, el que li permetrà compilar la plantilla interpretant tota etiqueta #NOM com un accés al camp `xxx`.nom si existeix. Aquests camps són també identificats en els criteris dels bucles.

En una plantilla comportant BOUCLE_a(table table1 ... tablen), les taules suplementàries seran vistes com a candidates a una connexió, a través dels camps homònims. A la documentació es donaràn exemples més concrets.

Altres millores

-  Si el seguiment de les revisions està activat, disposarem a partir d’ara de la possibilitat de tornar a una versió anterior d’un article.

-  A partir d’ara, la barra d’edició de les dreceres es troba també disponible també sobre Safari.

Instal·lació i actualitzacions

spip_loader : per a la instal·lació automàtica d’SPIP 1.9, un nou spip_loader.php s’ha posat a (/spip-dev/INSTALL/). Carrega directament el mateix fitxer zip que quan es fa una instal·lació manual i el descompacta. Altres novetats que fan referència a spip_loader: a partir d’ara és multilingue,i és molt fàcil d’editar per aquells que instal·len la versió en desenvolupament (SVN) en lloc de la versió estable.

Per a l’actualització a partir d’una versió anterior d’SPIP, podeu copiar tots els fitxers d’SPIP 1.9 damunt de la vostra instal·lació que ja teníeu, com abans. No obstant, tingueu en compte que hi ha una profunda reorganització dels fitxers i que, per tant, podeu obtenir una barreja poc satisfactòria entre els antics i els nous scripts. Existeix una documentació més completa on s’explica com fer una actualització «neta» : Migració cap a SPIP 1.9.

* * *

Totes les novetats seran integrades progressivament a les pàgines de referència de la documentació. S’estan preparant articles més detallats sobre els punts més tècnics.

De manera general, tenim necessitat d’ajuda per millorar la documentació d’SPIP: no dubteu en participar en la redacció, la relectura, la correcció, l’organització d’aquesta documentació.

Moltes gràcies a aquelles i aquells que han contribuït en aquesta nova versió assenyalant problemes o donant idees (a les llistes o a trac), codi, imatges, documentació, donant «suport» als usuaris, formació i en tots els casos aportant... tendresa.

Autor merce Publié le : Mis à jour : 26/10/12

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