SPIP 2.0

SPIP passa in versione 2.0, sette anni dopu u lanciu di a versione 1.0, ottu anni dopu a versione d’uZine, è guasi dui anni dopu a versione di prima.

A prima generazione di SPIP era un sistema di pubblicazione integratu, vale à dì fundatu nant’à un ùnicu zòcculu di basa di dati, prontu à l’adopru. E so funziunalità, sopratuttu u so sistema di mudelli d’appaginamentu, anu suscitatu nuvelli bisogni mancu previsti à principiu. U novu cumpilatore di mudelli di SPIP 1.8 avia fatta cresce e so capacità di spressione, spluttate da tanti cuntributi da prisentà una mansa d’infurmazioni nancu à imaginà : catàloghi, dati geugràfichi, sèguite d’evenimenti... SPIP 1.9 avia iniziatu diversi mètudi di stese, soprascrittura, punti d’entrata, inseti (i plugins). Fù un bellu successu pè i siti di cuntribuzioni à SPIP, è parechji cuntributori vensenu à rinfurzà a squatra di i sviluppori. Ma solu i prugrammori avianu accessu à quelle nuvità, è in quant’à l’interfaccia di prugrammazione, appena di maturazione ùn li pudia fà male...

A seconda generazione di SPIP si prisenta dunque à tempu cum’è u sistema di pubblicazione integratu (cumpatìbule cù e versioni in prima), è cum’è un spaziu di sviluppu, ancu multi-servori SQL, à chì vole andà più luntanu. Stu spaziu prupone dui livelli di pussibulità, è cusì permette di cunservà a crèscita di a curva d’amparera di SPIP, ma fendu cresce dinù a quantità di servizi resi.

  • U primu livellu, presente digià in e versioni precedenti di SPIP, s’indirizza à quelli chì volenu fà novu à u livellu gràficu, senza duvè prugrammà in SQL, PHP è JavaScript. Cunniscendu HTML è CSS è pronti ch’elli sò à amparà u sistema di mudelli SPIP, ponu prisentà cù paginature innuvate infurmazioni cacciate da base di dati puru spare è diverse.
  • U secondu livellu s’indirizza à i prugrammori, chì puderanu scrive estensioni purtèvule versu diversi servori, cù l’aiutu d’un’interfaccia arrembata à un servore virtuale SQL. St’interfaccia pò ancu esse aduprata fora di di a basa di dati stallata da SPIP.

Per via di tante nuvità, a discrizzione di sta nuvella versione di SPIP si spone in trè teme, rinviendu certe volte à artìculi dedicati :

  • SPIP è a pubblicazione Web,
    • URLs simbòliche chì gestiscenu a so propria storia è permettenu a nutazione in struttura arburata;
    • inserimentu in i testi di vari media;
    • fori chì permettenu l’inserimentu di ducumenti;
    • tante nuvelle funziunalità riguardu à e petizioni;
    • gestione di l’edizioni cuncurrenti;
    • stallazione di plugins in autumàticu;
    • accessu à listessu tempu à parechji servori (MySQL PostGres, SQLite2 è 3), mischju di pezzi di base, mudelli autumàtichi;
    • messa in cumunu facilitata, sopratuttu pè l’òspiti;
  • SPIP è u design Web
    • mudelli fundati nant’à CSS LayoutGala;
    • nuvelli stacci;
    • nouvelli modi d’inclusione, sopratuttu di furmulari AJAX;
    • nuvità in e balise, sopratuttu quelle chì gestiscenu URL è chjave primarie;
    • nuvità in i criteri, sopratuttu per e ghjunture è u mutore di ricerca;
    • gestione autumàtica di e catene di lingue da traduce;
    • cunvalidatore XML integratu da appiecà à parechje pàgine;
  • SPIP è a prugrammazione Web
    • servore SQL virtuale chì s’arremba direttamente à i strali bassi di PHP;
    • nuvelli pipelines;
    • dichjarazioni è bibbiuteche esterne.

Mintuvemu infine chì à parte si di sta versione, SPIP vene distribuitu sottu licenza GNU/GPL 3. Sta licenza, chì vene dopu à quella GNU/GPL 2, vechja di 15 anni, piglia megliu in contu u dirittu d’autore in paesi altri chè i Stati Uniti, è l’evuluzione di a pràtica di u prugrammu libèru. Spiegazioni sane sane è ghjustificazione da a Free Software Foundation è Richard Stallman :
— a licenza
— traduzzione francese (micca ufficiale)
— Perchè aghjurnà versu a GPLv3

Cum’è sempre, ringraziemu à quelle è quelli ch’anu cuntribuitu da più o menu vicinu à sta nuvella versione. À ringrazià prima à i traduttori, in particulare à i ghjunghjiticci chì permettenu à SPIP d’esse oramai dispunìbule in indunesianu, birmanu, khmer (cambugianu), asturianu è svedese.
À ringrazià à quelle è quelli chì anu seguitatu a versione di sviluppu guasi ogni ghjornu, à ringrazià li per a so pazienza di pettu à l’immensità di u travagliu messu in ballu è e strade sviate chì ogni tantu l’emu fatti seguità, à ringrazià li pè a so cunfidenza malgradu i capatoghji chè no emu impettatu.

SPIP è a pubblicazione Web

SPIP hè un sistema di pubblicazione di creazione è di gestione di siti Web pruvistu d’une interfaccia chì gestiscenu strutture edituriale affidèvule, vale à dì durèvule è evulutive [1]. Stallatu ch’ellu hè, dopu solu cinque furmulari Web, vene sùbbitu prontu à esse adupratu, da solu o da qualchì squatra di scrittori, è permette di fà campà un situ Web pruvistu da e tecnulugie e più tercane di u tempu.

Per SPIP 2.0, sò state arricchite l’interfaccia è l’ergunumia, megliu rispettate quelle norme XHTML è CSS, accelerati i pass’è veni cù u sistema, sopratuttu da favurisce l’adopru sistemàticu d’AJAX [2]. Hè stata unificata l’aghjunta di ducumenti di vari tippi, puru permettendu ne un adopru diversificatu. Fatta fine, ste «manighjate» ripetute pruponenu à i nuvelli utilizatori un’interfaccia bella sparmintata, invece chì l’anziani si tenenu e so abitùdini bone.

-  Ghjochi d’URLs simbòliche

Nuvelle URLs, dette proprie, permettenu chì parechji nomi d’URLS sianu assuciati à listessu uggettu, dunque in particulare, mudifichendu u tìtulu d’un artìculu venerà creata a nuvella URL senza ch’ella sia invalidata quella prima. Di più, un cliente HTTP chì dumanda l’indirizzu vechju serà sempre rinviatu versu quellu novu.

Oramai sò gestite quelle URLs in una tàvula SQL staccata, chì da chjave primaria ci hà l’URL stessa, accelerendu ne cusì l’accessu. A cumpatibulità cù l’anziane URLs proprie vene assicurata tempu l’aghjurnamentu di u situ.

Ste nuvelle URLs sò u cumpiimentu di u travagliu di fundamentu fattu da u ben’di Toggg (http://toggg.com/spip/spip.php?article19 è http://toggg.info/spip.php?article18) à quale hè dedicata sta nuvella versione di SPIP.

Hè statu dinù integratu un nuvellu ghjocu d’URLs, chjamatu arbo, è chì permette una nutazione di modu arburatu, vale à dì:

http://www.umositu.com/settore/rubbrica1/rubbrica2/articulu

Infine, basta oramai à cliccà dentr’à un tavulone di e pàgine d’amministrazione per sceglie u ghjocu d’URLs. Viaghja sempre l’anzianu mètudu chì aduprava a varràbile glubale PHP $type_urls, ma hè cunsigliatu di caccià sta variàbile da u vostru schedariu mes_options.php da ch’ellu cumparisca stu tavulone di cunfigurazione. Sè vo avete qualchì ghjocu persunale d’URLs in u cartulare urls di u vostru SPIP_PATH, cumpariscerà in autumàticu in stu tavulone.

-  Inserimentu dentr’à i testi di diversi media

I mudelli img è emb chì permettenu d’inserisce ducumenti in corpu à un testu sò stati ricuncipiti in tuttu. Oramai s’arrembanu à a classìfica ufficiale di i tippi MIME, aduprendu stacci omònimi di quessi. St’architettura permette d’arrigulà di modu assai finazzatu l’inserimentu di ducumenti di qualsìasi tippu; vene discritta in article 3715, cumplementu di l’artìculu Utiliser les modèles scrittu tempu esciutu SPIP 1.9.1.

Cusì i scrittori ponu inserisce di più tippi di ducumenti di pettu à nanzu. Hè cusì ch’ellu face SPIP per prisentà in HTML in autumàticu u cuntenutu d’un schedariu CSV chì vene da qualchì tavulatore. Di listessu modu omu inserisce un schedariu txt dopu trascudificatu i «cappelli» (caràtteri «^») è spustatu lu dentr’à una balisa pre da ch’ellu cumparisca à l’usu «verbatim». Infine, s’ellu si tratta d’un ducumentu HTML, seranu impurtate in autumàticu e so foglie di stile, ciò chì permette in particulare di mutà à a lestra un situ stàticu versu un situ fattu cù SPIP.

-  Inviu di ducumenti in i fori

Una nuvella funzione permette à i visitori di pudè pustà ducumenti in i fori; bella sicura ùn hè attivata in predefinitu.

Omu a parametreghja allistinendu l’estensioni di schedari accettati, per esempiu «gif,png,jpg,mp3», u sìmbulu * indettendu ch’ellu hè accettatu ogni tippu di ducumenti, for’chè quelli chì puderebbenu avè qualchì sgheza di sicurezza.

-  Tante nuvelle funziunalità riguardu à e petizioni

Assai nuvità sò discritte in Les pétitions sous SPIP: ricerca è urdinamentu mùltipli di i signatari, appaginamentu, flussi RSS, statìstiche cutidiane è misinche, interfaccia per i tavulatori, petizioni bislingue.

-  Gestione di l’edizioni cuncurrenti

U spaziu privatu di SPIP gestisce i cunflitti d’edizione cuncurrente per l’artìculi, e rùbbriche, i dispacci, i segni, l’autori è i siti.

Cusì serebbe a storia : adimettimu chì Annamaria è Benedettu àprinu à listessu tempu u listessu artìculu in scrittura; dopu ognunu manda e so mudìfiche, prima Annamaria , è dopu Benedettu.

Ci ponu esse parechji casi :

  • Annamaria hà mudificatu u tìtulu, è Benedettu u testu : sò accetttate e duie mudìfiche, u tìtulu di Benedettu (firmatu) ùn schiaccia micca u tìtulu Annamaria ;
  • Annamaria hà mudificatu u tìtulu, è Benedettu dinù :
    • s’elli anu scrittu listessu tìtulu, ùn ci hè prublemu;
    • s’elli sò sferenti i tìtuli: hè avvisatu Benedettu, è omu li face vede u tìtulu ch’ellu hà mandatu, quellu chì stà in basa, a diferenza frà i dui, è un furmulariu da cupià/incullà e so mudìfiche. U tìtulu mandau ùn hè ancu à andà in a basa.

St’elementi sò trattati ognunu, campu à campu : cusì in casu ch’ellu nacqui cunflittu nant’à u tìtulu ma micca nant’à u cappellu, questu vene arregistratu, è u messagiu d’errore vene solu per u tìtulu.

-  Facilità l’adopru di i plugins

— Stallazioni manuali è/o in autumàticu

Si stallanu i plugins in un cartulare /plugins. Creendu un sottucartulare /plugins/auto, omu attiveghja a stallazione autumàtica di plugins.

Cù a stallazione autumàtica vene pussìbule l’aghjunta :

  • di sìnguli plugins, indettendu l’URL d’un schedariu Zip,
  • di liste di plugins allistinati in un flussu RSS.

— Truvà plugins

Trè spazi permettenu à l’utilizatori di truvà plugins secondu diversi criteri di scelta (sviluppori, cuntribuzione, riferimentu):

  • ponu cumparisce tutti i plugins sviluppati dentru à a «Zona», secondu u parè di u so autore, in u cartulare http://files.spip.org/spip-zone/;
  • SPIP-Contrib hè megliuritu da facilità a ricerca di plugins;
  • lanciatu à tempu à sta nova versione di SPIP, u situ Plugins.spip prupone un riferimentu più fine, per tema, per cumpatibulità di versione SPIP, per lingua...

I siti Plugins.spip è SPIP-contrib pruponenu flussi RSS da aduprà direttamente à prò di a stallazione autumàtica di plugins cumpatìbuli cù SPIP 2.0.

-  Accessu à parechji base è servori, mischju parziale è mudelli autumàtichi

Hè oramai dispunìbule SPIP micca solu à traversu un servore MySQL ma dinù à traversu un servore PostGreSQL è à traversu l’estensioni SQLite 2 è 3 di PHP. A scelta vene pruposta à principiu di a stallazione, poi hè memurizata in u schedariu di cunnessione. Bisogna à piglià nota chì u furmatu di e copie di salvezza hè u listessu per tutte e versioni, cusì vene pussìbule du vultà à a scelta iniziale ricuarendu si una copia dopu ristallatu SPIP nant’à un antru servore SQL.

Quella nuvella qualità di SPIP, vale à dì di pudè esse traspurtatu, hà permessu di stabbilisce a funziunalità, chì mancava fin’ad avà, di pudè aduprà mudelli nant’à parechje base SQL à tempu.

Un furmulariu, chì s’assumiglia à quellu di a stallazione, accessìbule in u menù mantenimentu di u situ, permette di dichjarà i so còdici di cunnessione à un’antra basa, è pruduce un schedariu di cunnessione sìmule à quellu di u situ principale. Abbasta què per aduprà sta basa. In u casu d’una basa creata da un altru situ fattu cù SPIP, sta dichjarazione pò puru esse ridotta à una copia di u so schedariu di cunnessione.

Fatta sta dichjarazione, omu pò appiecà i mudelli di u situ principale à e tàvule d’un altru situ, solu aghjunghjendu in l’URL di u situ principale un paràmetru in più, connect, chì u valore serebbe u nome i u so schedariu di cunnessione (senza l’estensione .php). Omu pò dinù mischjà in listessu mudellu cicli nant’à base diverse. Tandu SPIP apre cunnessioni altr’è tantu necessaria è passa da una à l’altra quand’ella hè necessaria. Hè da nutà chì quelle base ponu esse gestite dinù cù altre implementazioni SQL chè quella di u situ principale, avendu tandu SPIP a funzione d’accumpulà pezzi di parechje base.

Da pudè frugnicà più in furia dentr’à e tàvule d’una basa, una mecànica di creazione autumàtica d’un mudellu vene lanciatu quandu chì u paràmetru d’URL page vale qualcosa chì s’assumiglia à table:a tàvula.

Sta mecànica, detta «assestalisca», rimira u cuntenutu di a tàvula secondu parechji modi di navigazione, è permette di fà una copia di salvezza di quellu mudellu cusì creatu.

Tandu vene fàciule di sviluppà un arnese di gestione di base di dati cù SPIP, è dunque ancu multiservore s’ellu bisogna.

Per ragioni di persunalità di i dati, hè accessìbule sta mecànica solu da u webmaestru principale ma pò esse aperta ancu di più, soprascrivendu a funzione autoriser_webmestre.

Un’altra funziunalità stabbilita à tempu à a traspurtabulità multi-servori: a salvezza d’una parte sola di a basa, è u so mischju dopu cù a basa d’un altru situ.

In un artìculu cumplettu Les bases de données en SPIP sò discritte e funziunalità rispettu à e base SQL. Prupone dinù st’artìculu un modu di chjamà i schedari di cunnessione tale chì tutte e base stallate si cunnoscanu l’una l’altra, senza alcuna altra dichjarazione in più.

-  Messa in cumunu di e fonti

Vene oramai appiecata a Mutualisation du noyau SPIP, pruposta dipoi SPIP 1.9, qual’elli sianu i cartulari di dati di SPIP, essendu stata sciolta a intravata riguardu l’indirizzu di u cartulare IMG.

Hè arricumandata a messa in cumunu à i webmaestri chì amministreghjanu parechji siti, da facilità li u mantenimentu. À elli assicurerà dinù un màsimu cunfortu s’elli volenu prufittà di u multibase, discrittu in altrò in u presente artìculu.

Invitemu inoltre tutti l’òspiti à studià quelle funziunalità, cusì puderanu risparmià tantu spaziu di discu, è sminuisce tandu u nùmeru di scaricamenti di e tante copie di SPIP chì forse esisteranu nant’à i so servori. Sò state sviluppate parechje estensioni rializendu cunfigurazioni sìmuli, cunsultate le puru à a rùbbrica Messa in cumunu di SPIP-Contrib. In ssa cunfigurazione, SPIP face da stazzile à blog o da servore di CMS.

SPIP è u design Web

-  Mudelli fundati nant’à CSS LayoutGala

SPIP furnisce à tempu mudelli standard strutturati chì adopranu i métudi muderni, è arnesi indirizzati à i webmaestri (a lingua di i cicli, balise, criteri è stacci) chì li permettenu di persunalizà pianamente è bè u so situ, andendu più avanti chè l’usanza di quelli mudelli « pronti à l’adopru ».

I mudelli pruposti standard, vale à dì u cartulare « dist », s’arrembanu oramai à a struttura HTML di i mudelli « Layout Gala », chì permettenu di mudificà a piazza di certi blocchi, solu mudifichendu qualchì ligna di CSS :

<div id="page">
	<div id="entete">Cappellu</div>
	<div id="conteneur">
		<div id="contenu">Cuntenutu</div>
	</div>
	<div id="navigation">Navigazione</div>
	<div id="extra">Extra</div>
	<div id="pied">Fondu di pàgina</div>
</div>

Da predefinitu, u còdice HTML di i mudelli include i « microfurmati » (Microformats).

Rispettanu i mudelli à XHTML 1.0 schiettu, è ancu à i scripts di u spaziu privatu. Ma u Doctype dichjaratu hè XHTML transiziunale, da ùn cunstringhje micca i scrittori à amparà una norma diffìciule è abbastanza critichèvule (vede u primu paràgrafu di l’artìculu Le validateur XML intégré).

Hè stata megliurita a gestione di l’accurtatoghji è nuvelle variàbili permettenu ch’elli sianu perzunalizati. (Cf. : http://archives.rezo.net/spip-core....)

-  Persunalizazione di e balise inserite da SPIP per l’itàlicu è u grassettu :

$debut_italique = '<i>' ;
$fin_italique = '</i>'  ;
$debut_gras = '<strong>' ;
$fin_gras = </strong>' ;

-  Paràgrafi : oramai tutti i testi sò paragrafati da SPIP di manera listessa è cuerente. Per ritruvà u funziunamentu di prima, basta à mette a variàbile di persunalizazione $toujours_paragrapher à false :

$GLOBALS['toujours_paragrapher'] = false;

-  Sò stati cacciati i class="spip" nant’à i p, i, strong è li. A variàbile di persunalizazione da rimette li, hè (attenti chì principia cù un spaziu !) :

$class_spip = ' class="spip"';

Nutate puru chì, in e note, vene cunservatu <p class="spip_note"> s’ellu hè cunservatu <p class="spip"> (per cumpatibulità à falera), o sinnò sparisce anch’ellu.

Omu a pò fà ancu più fine, per esempiu, caccendu class="spip" da i paràgrafi ma micca da l’itàlichi :

$class_spip = '';
$debut_italique = '<i class="spip">';
$debut_gras = '<strong class="spip">';

D’altronde, s’omu vole caccià dinù class="spip" da tutti l’accurtatoghji (ul, ol, tables, hr, h3 è blockquote creati da l’accurtatoghji), pò omu ancu fà :

$class_spip_plus = '';

-  Puesia : u còdice creatu da l’accurtatoghji SPIP <poesie> diventa : <blockquote class="spip_poesie">

-  Data di prima pubblicazione: mintuvemu infine quì un’antra variàbile di persunalizazione, bench’ella ùn ci entri per nunda cù i stili. Da predefinitu, l’annata di a data di pubblicazione ferma lìbera. Da furzà l’appaginamentu d’un menù à sbucinera secondu una certa annata (per esempiu a data di messa in ligna), omu pò persunalizà a variàbile $debut_date_publication, cusì scrivendu :

$debut_date_publication = 1997;

-  Nuvità cù i stacci

— image_typo funzione (di modu sperimentale) cù l’àrabu è l’ebreiu. Hè scuperta in autumàticu a presenza di caràtteri àrabi o ebrei, è venenu tandu smarrate tante mecàniche à scopu di ringuerscià u sensu di e lèttere (da manca à diritta) è à gestisce u sistema cumplicatu di e ligature di l’àrabu.

— Nascenu trè nuvelli stacci di maneghju di i culori : couleur_saturation, couleur_web et couleur_4096.

U stacciu couleur_saturation accetta valore trà 0 è 1 è indetta a saturazione di u culore:

  • 0: biancu
  • 1: culore saturatu in tuttu (attenti : u culore saturatu in tuttu ùn hè micca u neru).

Stu stacciu hè assai còmudu pè creà un pannellu di culori, invece chì e funzioni couleur_eclaircir è couleur_foncer mancanu di precisione è sopratuttu rendenu i culori lazzi (per via ch’elle ùn toccanu a saturazione ma a luminusità).

U stacciu couleur_web dà un attundamentu di u culore in senu d’una gamma di 256 culori. U scopu ùn hè propriu di fà imàgini per i screni à 256 culori (esisteranu sempre screni sìmuli ??), ma di modu più generale di limità u nùmeru di pussìbuli culori appiecati à un stacciu gràficu (per esempiu culurizà un’imàgine tipugràfica o scambià un fogliu di stile) è cusì francà si d’ottene 16 millioni di pussìbuli varianti di sìmule schedariu.

U stacciu couleur_4096 dà un attundamentu di u culore in senu d’una gamma di 4096 culori.

— Infine, u stacciu couleur_extreme accetta oramai un valore micca ubbligatoriu, frà 0 è 1 (da predefinitu: 0.5), per arrigulà u zigliare di luminusità da chì si salta à u neru o à u biancu.

Dicendu la in passendu, sò integrate e funzioni di cunvertimentu trà RGB, HSL è HSV in e fonti (cù adopru internu di e funzioni di maneghju di i culori). D’altronde hè adupratu oramai u passeghju in HSL in couleur_extreme, vale à dì chì u saltu neru-biancu si face «secondu ciò chì si vede», è micca solu cù a mezana di e valori cumpunenti.

— U stacciu gràficu image_aplatir accetta oramai un quartu paràmetru, è permette di cunservà a trasparenza (principalmente per a cunversione versu u furlatu GIF).

— U nuvellu stacciu gràficu image_format permette di sfurzà u passeghju d’un furmatu à l’altru, cunservendu a trasparenza in casu di u PNG è di u GIF. Si tratta d’un scurtatoghju (dunque simplificatu) di a funzione image_aplatir.

Attenti, in casu d’una cunversione da PNG cù trasparenza versu GIF, hè rializata a trasfurmazione di i punti mezutrasparenti versu qualchì culore. Ma sta funzione ùn permette micca di sceglie stu culore; in tale situazione, bisognerà à aduprà image_aplatir.

— I stacci di trattamentu d’imàgini sò stati arricchiti d’una mecànica autumatizata di racolta è pulizia di l’imàgini tempurari. Cusì quandu si seguitanu parechji stacci in una spressione, vene cunservata solu l’ùltima imàgine, cusì permette di abbassà u spaziu cunsumatu di u discu.

— U nuvellu stacciu compacte_head cumpressa i diversi schedari Javascript è CSS chjamati da un mudellu, in dui sìnguli schedari di poca taglia, ciò chì permette d’accelerà u càricu di e pàgine visitate (oramai ùn venenu più chjamati parechji schedari Javascript ma unu solu, è più legeru). Aduprendu (cusì face u mudellu di dist) un inclusione inc-head.html chì addunisce e chjamate Javascript è CSS, sta funzione serà attivata in autumàticu per via d’una parametrata in pàgina di cunfigurazione di SPIP.

-  Nuvelli modi d’inclusione, principalmente in AJAX

A balisa #INCLURE leghje l’argumentu {env} è trasmette l’embiu sanu à u mudellu . Viaghja dinù a nutazione <INCLURE ...>. S’elli ci sò altri argumenti, i so valori seranu priuritari nant’à l’embiu inclusu :

 <INCLURE{fond=fondu/rubbrica}{env}{lang=en}>

includerà fondu/rubbrica, passendu li {id_rubrique} è {debut_pages} di u cuntestu includente (vene à dì, di l’URL), ma furzendu l’inglese ancu s’ella cuntene l’URL ?lang=XX.

L’argumentu {ajax} aghjuntu à una balisa #INCLURE o à <INCLURE ...> permette di lancià ajax in autumàticu nant’à tutte e lee di classa ajax è tutte e lee cuntenute in una classa di paginatura. Per sapè ne di più, andate à vede `ajax` pour les `inclure`

Ammintemu chì a balisa INCLURE accetta un slash finale micca ubbligatoriu, da avvicinà si di a sintassa XML.

Altri casi d’inclusione sò e balise dette dinàmiche, chì u nome principia cù #FORMULAIRE_ perc via ch’elle pruducenu furmulari. Sti furmulari di u spaziu pùbblicu, è ancu d’una parte di u spaziu privatu, sò stati turnati à scrive usendu un nuvellu mètudu, CVT (caricà, verificà, trattà). Permette di creà nuvelli furmulari scrivendu solu mudelli, SPIP s’incaricheghja di visticà i furmulari empiuti di male, o d’inserisce l’infurmazioni dati in a basa di dati.

Cusì, prive/contenu/ cuntene i mudelli d’appaginamentu di l’uggetti edituriali, è prive/editer/ cuntene i mudelli d’edizione currispundenti, chì chjamanu a seria di i #FORMULAIRE_EDITER_... cullucati in prive/formulaires. Diventa pussìbule di persunalizà ste pàgine secondu i nùmeri di rùbbrica usendu un suffissu -xx.html, cum’è qualsìasi altru mudellu.

Sò spiegate in detagliu quelle nove pussibulità in Formulaires CVT par l’exemple è Les formulaires CVT de SPIP.

-  Nuvità cù e balise

— E balise chì principianu cù URL_ sò trattate dimo du genèricu, generalizendu cusì quelle dispunìbule ancu prima. Sì a balisa ùn hà argumentu, cum’è in URL_type, u cumpilatore di SPIP lancia una chjama di a funzione generer_url_entite appiecatu à $id_type (chì deve esse definitu in cuntestu), è à type. Cusì si ritrovanu l’abituali URL_ARTICLE, URL_RUBRIQUE etc, fundati nant’à e funzioni generer_url_article, generer_url_rubrique etc, oramai ford’adopru per via di mancanza di generalità. Sì a balisa hà un argumentu, à ellu è micca à $id_type serà appiecata generer_url_entite. Tutta quella famiglia di balise piglia in contu un pussìbule accessu à parechje base SPIP (vede quì sopra). Sta funziunalità di navigazione da luntanu permette in particulare di pruvà un nuvellu ghjocu di mudelli nant’à un situ in pruduzzione senza mudificà a stallazione.

— A balisa #EXPOSE (vede Exposer un article dans une liste) allarga u so modu d’appiecu. Piglia a chjave primaria di u ciclu chì li vene sùbbitu sopra (o di quella chjamata cù u so nome s’omu adopra a sintassa #nom:EXPOSE oramai auturizata) è paraguneghja u so valore currente à ogni giru cù u valore di u paràmetru di listessu nome in l’URL di chjama. S’elli sò listessi i valori, face tandu cumparisce u so primu argumentu, o sinnò u secondu. Stu paragonu si stende fin’à a ierarchia di quella chjave, vale à dì chì in un ciclu RUBRIQUES serà paragunata a chjave primaria di stu ciclu cù u nùmeru di rùbbrica di quellu artìculu, è in un ciclu GROUPES_MOTS, serà paragunata a so chjave primaria cù u nùmeru di quella parulla.

— Una nuvella balisa, #FILTRE inserita in un mudellu permette d’appiecà un stacciu à a pàgina inghjennata sana sana. Cusì, inserendu u seguente còdice in un mudellu :

#FILTRE{compacte_head}

a pàgina inghjennata da stu mudellu, sana sana serà passata à u stacciu compacte_head.

— Da mudificà i punti di sèguita di a balisa #INTRODUCTION, omu pò oramai fà di modu sèmplice, in mes_fonctions.php (o mes_options) :

define('_INTRODUCTION_SUITE', ' (...)');

ou

define('_INTRODUCTION_SUITE', '');

— Chjamatu di modu sottu intesu da sta balisa, u stacciu couper pò esse chjamatu ancu da solu, è accetta un paràmetru di più chì mintuveghja qualessa serà a catena di caràtteri da inserisce in punta di u testu tagliatu :

[(#TITRE|couper{10,'...'})]

— Una nuvella balisa, #SESSION, permette d’accede à l’infurmazioni rispettu à u visitore identificatu (id_auteur, è altre infurmazioni alleate) è d’individuà in autumàticu u cache secondu u visitore.

-  Nuvità cù i criteri

Hè pussìbule oramai di cagiunà una ghjuntura frà duie tàvule SQL, scrivendu direttamente TAVULA.NOME in un criteru. Serà pussìbule a ghjuntura sì a tàvula chjamata hà un campu di listessu nome chè un campu di a tàvula principale di u ciclu, essendu priuritaria a chjave primaria. In u casu d’un criteru senza uperatore chjamatu {TAVULA.NOME} , u valore sottu intesu pigliatu hè u valore di NOME in u cuntestu currente (in particulare, à u primu livellu, in l’URL). Eccu quì per esempiu un ciclu chì cerca e zifre di e petizioni assuciate à e traduzioni d’un sìngulu artìculu :

<BOUCLE_signatures(SIGNATURES){articles.id_trad}  />

Siccume a tàvula SQL signatures hà in cumunu cù a tàvula articles u campu id_article, mintuvà in l’URL u valore di u campu id_trad cagiunerà a selezzione in a tàvula signatures di tutte e zifre assuciate à un artìculu chì anu stu valore di id_trad in a tàvula articles.

Hè dispunìbule dinù sta funziunalità cù i criteri cundiziunali. Eccu per esempiu un ciclu chì allistineghja e zifre sia d’una petizione d’un artìculu datu (id_article presente in cuntestu), sia di e petizioni assuciate à e traduzzioni d’un sìngulu artìculu (s’ellu hè presente id_trad):

<BOUCLE_signatures(SIGNATURES){id_article?} {articles.id_trad ?}  />

Sta nuvella funziunalità rende for’d’adopru certi criteri (cum’è titre_mot per esempiu), ma sò cunservati per primura di cumpatibulità.

Un altru scambiamentu d’impurtanza rispettu à i criteri hà à vede cù a ricerca. Prima SPIP aduprava una tàvula SQL di più per fà l’indezzazione di l’elementi di u situ tempu creati. sò abbastanza veloce l’uperatori di ricerca di i servori SQL ughjinchi per francà si di stu trattamentu capunanzu, custosu à livellu di u spaziu, è cusì à elli oramai s’arremba u criteru recherche. Di più, accetta oramai un argumentu micca ubbligatoriu chì indetta a catena da ricircà. S’ella ùn ci hè, hè sempre aduprata a variàbile d’URL recherche; vene dunque uguale <BOUCLE_t(ARTICLES){recherche}> è <BOUCLE_t(ARTICLES){recherche #ENV{recherche}}>.

I vantagi di quella estensione sò parechji :

  • circà una catena data da u cuntestu internu à u mudellu, cum’è per esempiu in
    <BOUCLE_m(MOTS){id_mot}>
     <BOUCLE_r(ARTICLES){recherche #TITRE}>...
      </BOUCLE_r>
    </BOUCLE_m>
    
  • trasmette a catena da circà à un mudellu inclusu, cum’è in
    <INCLURE{fond=x}{recherche=NNN}>
    
  • adopru in un mudellu da selezziunà uggetti di chì i campi cuntenenu a catena, cum’è in
    <modele1|recherche=spip>
    

In u casu d’adopru cundiziunale di stu criteru, omu si primurerà ch’ellu ùn ci sia spazi trà u puntu interrugaticu è u valore mintuvatu :

{recherche ?#ENV{rech}}

è micca

{recherche ? #ENV{rech}}

for’ch’ellu si voli difatti un spaziu prima di a catena ricircata..

-  Avec Salvatore, u mo plugin spricht разных språk

Salvatore hè goffu, rozu, gobbu, mezu scemu, è parla tutte e lingue (sicura ch’ellu hè cusì !).

Salvatore hè u nostru nuvellu arnese chì permette di sviluppà un plugin multilingua, apparinendu in autumàticu u so schedariu di lingua nant’à SPIP-Zone cù u spaziu di traduzzione (duve sò cuncolti tutti i traduttori di SPIP). Consultate è participate puru à a so ducumentazione.

-  Cunvalidazione XML

Le validateur XML intégré s’arricchisce d’una nuvella funziunalità : sì u so argumentu hè un cartulare, è micca un’URL, vene appiecatu à tutti i schedari di stu cartulare chì anu l’estensione uguale à u valore di u paràmetru d’URL ext. Senza l’argumentu, hè pigliata l’estensione .php, è s’ellu ùn esiste nisun schedariu .php, anderà a truvà tutti i schedari .html, visti da mudelli. L’argumenti aspettati da sti mudelli sò creati in autumàticu, dopu analizatu u so cuntenutu. Ùn hè pussìbule sìmule anàlisi per i scripts, chì PHP hè tippatu di modu dinàmicu, ma permette l’architettura di SPIP, principalmente perchè ùn mai adupratu l’istruzzione exit, à quellu chì cunvalideghja una prova « à cechera » abbastanza riccu d’infurmazioni.

L’influenza di XML nant’à SPIP si face dinù sente cù una pìccula evuluzione di sintassa. I cicli senza corpu ponu avè oramai una nutazione accurtata, ispirata da a nutazione XML.

Per esempiu, u seguente ciclu :

<BOUCLE_message(FORUMS){id_article}>
</BOUCLE_message>
#TOTAL_BOUCLE messages
</B_message>

oramai si pò ancu scrive :

<BOUCLE_message(FORUMS){id_article} />
#TOTAL_BOUCLE messages
<//B_message>

SPIP è a prugrammazione Web

Sta parte discrive l’arnesi di sviluppu aduprati da a squatra SPIP, arnesi chì ancu i sviluppori «furesteri» devenu ammaistrà da pudè furnisce estensioni traspurtèvuli.

Tanti siti Web, per via di l’interazzioni pruposte à i visitori, sò da per elli prugrammi in ligna. Tanti sviluppi di a generazione 2 sò oramai destinati à a creazione di siti Web 2.0 : gestione di e sessioni utilizatori, travagliu in cumunu nant’à u situ pùbblicu, megliurimentu di a gestione di l’evenimenti datati ...

-  U servore SQL virtuale

A nova versione di SPIP hà necessitatu un longu travagliu di riscrittura di e richieste SQL, da rende le traspurtèvule. Sti trasporti s’arrembanu à un’interfaccia di prugrammazione chì basta à aduprà la da chì un’estensione di SPIP sia traspurtèvule ella stessa. Furnisce dinù una gestione di i prublemi di sicurezza à l’usu attaccu per via d’inserimentu di còdice.

St’interfaccia ùn hè azzucculata nant’à bibbiuteche preesistenti, chì ùn hè abbastanza altu u so livellu d’astrazzione da arrigulà tutti i prublemi scuntrati, ma nant’à un ghjocu d’una trentina di funzioni virtuale ricacciate da l’astrazzione di u còdice più anzianu di SPIP. A so generalità li permette d’esse à prò di l’integrazione di base SQL spare, fora di l’altri servizi resi da SPIP.

L’interfaccia gestisce da per ella e so proprie versioni, ciò chì permetterà di lancià à tempu estensioni di SPIP usendu diverse versioni di st’interfaccia, in casu chì quessa averebbe da evuluà.

Sta riscrittura sana sana prufitta ancu à MySQL postu chì l’architetture e più pisive sò state cacciate. Cusì vene assicurata a cuerenza di a basa in modu incrementale, è non più per via d’una scruttatura cumpletta lanciata in tempi regulari. A chjuditura glubale di u servore hè stata rimpiazzata in modu sistemàticu da custrinte SQL rifiutendu in autumàticu una scrittura cuncurrente à quella in corsu.

Sò stati turnati à definì certi ìndici da megliurisce a so efficacità. Pè fà la finita, u cumpilatore analiseghja di modu più fine a necessità di fà ghjunture, u còdice SQL creatu s’avvicina di più di l’òttimu nant’à stu puntu.

Sti migliurimenti si ponu vede usendu un prufilore SQL oramai dispunìbule in a ricerca di SPIP.

A prucedura d’aghjurnamentu hè stata anch’ella turnata à scrive è sana sana rimanighjata. Oramai gestisce senza faltà certe base chì prima u so pesu impurtante richeria arnesi specìfichi di u servore SQL.

Hè discrittu stu nuvellu visu di SPIP in un artìculu apposta : L’interface de SPIP avec SQL.

-  Nuvelli pipelines, è chjamati assai di più

U nùmeru di pipelines ghjunghje guasi à 50, quant’è a so quantità di chjame chì ghjunghje à più di 180 punti d’entrata.

In particulare

  • I pipelines pre_edition è post_edition sò chjamati in modu sistemàticu prima è dopu arregistratu un uggettu edituriale in basa di dati, ch’ella sia tempu a creazione, a mudìfica, o u cambiamentu di statutu ;
  • u pipeline recuperer_fond permette d’agisce nant’à u risultatu di qualsìasi mudellu inclusu tempu a so valutazione ;
  • i pipelines pre_boucle è post_boucle permettenu di mudificà l’andatura d’un ciclu senza soprascrittura.

Quella allargata di i pipelines permette à i plugins d’agisce torna assai di più sopr’à l’andatura di SPIP, sempre cù di menu rìsicu d’incumpatibulità frà elli.

-  Bibbiuteche esterne

Da cunnette si à MySql, SPIP face listessu ch’è phpMyAdmin : s’ella ùn hè stata ricaricata l’estensione, lancia un caricamentu dinàmicu dl('mysql.so'), dopu avè verificatu bè ch’ellu ne avia u dirittu. Quessa permette a stallazione nant’à certi servori cusì cunfigurati (ubuntu per esempiu).

Permette una funzione SPIP di dumandà un caricamentu dinàmicu : charger_php_extension('mysql').

À voi tocca !

L’avanzate di SPIP permettenu oramai di sviluppà, altru chè siti internet tradiziunali, tanti prugrammi à l’usu intranet è tante razze di prugrammi in ligna, imbulighjendu sessioni d’utilizatori, AJAX, pàgine persunalizate o puru interfacce interattive elaburate ...

Note

[1Cuncepisce è mantene a struttura edituriale d’un situ arricchitu assai à spessu ùn hè mancu appena asgiatu; richere quessa una sperienza accertata. À più o menu longu andà, un situ pò puru diventà inaduprèvule per via d’una struttura edituriale malpensata, fendu si l’aghjurnamenti di più in più straziati. A lògica di pubblicazione di SPIP avvia omu à cuncepisce strutture edituriali chì si tenenu u situ sempre assestatu bè, puru à decine di millaie d’artìculi.

[2AJAX: gruppu di funzioni Javascript chì permettenu di pudè tuccà a struttura di a pàgina HTML, di caricà certi elementi di a pàgina l’uni fora da l’altri, è di creà di modu sèmplice animazioni visuali in e pàgine HTML.

Autore tavamig Publié le : Mis à jour : 21/07/23

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