Fundamenti

Tutta a robba ch’ellu cuntene un situ cù SPIP hè cullucata dentr’à una basa di dati MySQL. Da prisentà tutte st’infurmazioni à i visitori di u situ, bisogna dunque à leghje l’infurmazioni, à accuncià le è à appaginà le, da fà cumparisce una pàgina HTML in u navigatore Web.

Senza un gestiunariu di cuntenutu di quelli elaburati cum’è SPIP, sta faccenda hè abbastanza fastidiosa :
-  bisogna à cunnosce a prugrammazione PHP è MySQL, è scrive «routines» abbastanza cumplesse;
-  l’integrazione di isse routines in un appaginamentu HTML cumplicatu hè robba difficiule;
-  bisogna à sviluppà un’interfaccia sana da chì l’utilizatori auturizati mudifichèghjinu u cuntenutu di a basa di dati;
-  bisogna à piglià in contu i prublemi di vitezza: chjamà sempre còdice MySQL è PHP dumanda assai risorse, ralentisce a vìsita è, in certi casi, pò ancu fà cascà u servore Web.

SPIP prupone una suluzione cumpletta da francà ste difficultà :
-  si face l’appaginamentu di u situ usendu forme HTML chjamate mudelli, chì cuntenenu istruzzioni simplificate da indettà induve è quandu venenu piazzate in pàgina l’infurmazioni stratte da a basa di dati;
-  un sistema di cache permette di caricà ogni pàgina, è cusì ùn lampà micca chjame à a basa di dati per ogni vìsita. Cusì vene ridotta a càrica nant’à u servore, a vitezza vene cresciuta assai assai, è in più di quessa, ferma cunsultèvule u situ ancu in casu chì a basa di dati sia cascata;
-  un «spaziu privatu» permette à l’amministratori è è scrittori di gestisce i dati sani sani di u situ.

À ogni tippu di pàgina, u so mudellu

L’interessu (è u lìmitu) d’un sistema di pubblicazione autumatizatu hè di definisce un solu mudellu per, ad esempiu, tutti l’artìculi. Vene indettatu dentr’à stu mudellu induve veneranu piazzati, ad esempiu, u tìtulu, u testu, e lee di navigazione... di l’artìculu, è u sistema custruiscerà ogni sìngula pàgina d’artìculu piazzendu in autumàticu st’elementi stratti da a basa di dati, dentr’à l’appaginamentu cuncepitu da u webmaestru.

Stu sistema autumatizatu permette dunque una prisentazione cuerente in un situ... Ma hè dinò u so lìmitu: ùn permette micca di definisce un’interfaccia sferente per ogni sìngula pàgina (ma videremu più indà chì SPIP pussede quantunque una certa sgualtrezza).

Quand’è vo stallate SPIP, vene prupostu un ghjocu di mudelli da predefinitu. Hè cullucatu in u cartulare dist/, à a ràdica di u vostru situ. Sè vo vulete mudificà sti schedari da ch’elli rispondinu à i vostri bisogni, o sè vo vulete stallà un altru ghjocu di mudelli, cunvene à creà un cartulare di nome squelettes/ à listessu livellu. Per sapè ne di più nant’à u sugettu, andate à leghje l’artìculu Duve mette i so propri mudelli .

Quandu chì qualchì visitore dumanda a pàgina http://esempiu.org/spip.php?article3437, SPIP và è cerca un mudellu di nome «article.html». SPIP s’appoghja nant’à l’indirizzu URL di a pàgina da definisce u mudellu à aduprà :

L’URL chjamerà u mudellu
spip.php?article3437 article.html
spip.php?rubrique143 rubrique.html
spip.php?mot12 mot.html
spip.php?auteur5 auteur.html
spip.php?site364 site.html

Ci hè dui casi speciali :

-  L’URL spip.php chjama u mudellu sommaire.html. Hè a pàgina d’accogliu di u situ.
-  L’URL spip.php?page=abcd chjama u mudellu abcd.html. Vene à dì chè vo pudete creà mudelli chì ùn sò privisti da u sistema, è dà li nome chì vi pare è piace.

Ghjova dinò sta sintassa per e pàgine cum’è u pianu di u situ, o i risultati di ricerche, per esempiu : spip.php?page=plan, spip.php?page=recherche&recherche=acellu.

Quandu chì SPIP chjama un mudellu, li trasmette dinò u so cuntestu

D’altronde, avete rimarcatu chì l’URL furnisce altri elementi in più di u nome di u mudellu. Per esempiu, in spip.php?article3437, u nùmeru di l’artìculu richiestu (3437) ; in spip.php?page=recherche&recherche=acellu, a parulla ricircata (acellu).

Ghjè un «cuntestu», vale à dì, una o parechje «variàbili d’embiu», ch’ellu hà da furnisce SPIP à u mudellu è ch’anu da ghjuvà per custruisce a pàgina. Difatti, u mudellu article.html hà bisognu di cunnosce u nùmeru di l’artìculu richiestu da pudè circà u so tìtulu, u so testu,... in a basa di dati. Di listessu modu, u mudellu recherche.html deve cunnosce e parulle ricircate da u visitore da truvà l’arregistramenti di a basa di dati chì cuntenenu stu testu.

In qualsìasi URL, e varìabile d’embiu venenu dopu à u «?». Quandu ci n’hè parechje, sò staccate da «&».

In l’URL spip.php?page=recherche&recherche=acellu, emu dunque duie variàbili : page è recherche, chì li sò attribuiti i valori rispettivi «recherche» et «acellu».

In u casu di spip.php?article3437, SPIP hà simplificatu l’URL chì infatti currisponde à : spip.php?page=article&id_article=3437 (a vi dimu, pruvate puru !). Dunque quì dinò avemu duie variàbili : page chì hà u valore "article" è id_article chì hà u valore "3437". Ste variàbili permettenu à SPIP d’aduprà i dati di l’artìculu 3437 dentr’à u mudellu article.html.

Cum’ellu viaghja u cache, in trè parulle

SPIP feghja in u CACHE per vede s’ellu ci hè qualchì pàgina chì currisponde à l’URL dumandata

  1. S’ella esiste a pàgina, SPIP verificheghja ch’ellu ùn hè micca troppu anzianetta.
    1. S’ella hè troppu vechja a pàgina, a ricalculeghja à parte si di u mudellu è di a basa MySQL. Dopu l’assesta in u CACHE, è poi a manda à l’utilizatore.
    2. S’ella hè abbastanza nuvella a pàgina, a manda à l’utilizatore.
  2. S’ella ùn esiste micca, a calculeghja à parte si di u mudellu è di a basa MySQL. Dopu l’assesta in u CACHE, è poi a manda à l’utilizatore.

À a prùssima vìsita, s’ellu hè abbastanza cortu u frattempu cù l’anziana vìsita, hè rimandata propriu sta pàgina cullucata in u /CACHE, senza avè bisognu di fà un nuvellu càlculu à parte si di a basa di dati. In casumai ch’ella sia cascata a basa, serà sempre rimandata a pàgina in cache, puru «troppu vechja» ch’ella sia.

Rimarca. Si vede quì chì ogni pàgina di u situ vene messa in cache à una à una, è ogni càlculu vene fattu per via di e vìsite di u situ. In particulare, ùn ci hè nisunu ricàlculu di tutte pàgine di u situ sanu sanu, d’un colpu solu è à tempi regulari (sta spezia di «grossa artiglieria» vi carca u servore à rumpitura, è certe volte u vi sprufonda...).

Da predefinita, una pàgina vene tenuta da troppu vechja à u capu di 3600 seconde. [1]

U schedariu .html

In SPIP, i schedari .html i chjamemu mudelli. Sò elli chì discrivenu l’interfaccia gràfica di e votsre pàgine.

Sò scritti direttamente in HTML, è ci si aghjunghjenu istruzzioni chì permettenu d’indettà à SPIP induve li tuccherà à piazzà l’elementi stratti da a basa di dati (à l’usu: «piazzà u tìtulu quì», «indettà quì a lista d’artìculi chì trattanu di listessu sugettu»...).

L’istruzzioni da piazzà l’elementi sò scritte in un linguagiu specìficu, chì apposta hè statu fattu stu manuale d’aopru. D’altronde stu linguagiu hè a sola difficultà di SPIP.

«Torna un linguagiu?» Iiiiè, vi tuccherà à amparà torna un nuvellu linguagiu. Ma ùn vi inchetate chì ùn hè tantu difficiule, è permette di creà interfacce cumplesse assai in furia. Paragunatu à u paghu PHP/MySQL, viderete chì vi face vince un tempu scemu (ma sopratuttu, hè assai più sèmplice). Hè un markup language, vale à dì un linguagiu chì usa balise listesse à quelle di HTML.

Rimarca. Certi amparanu HTML sbulichendu in u còdice di i siti visitati. Cusì pudete fà ancu voi, pigliendu idee in i mudelli usati da altri siti chì viaghjanu cù SPIP. Vi basta à circà u schedariu «.html» chì currisponde. Per esempiu, pudete vede u mudellu di l’artìculi di stu ciclu (andate à vede u còdice fonte da ottene u testu di u mudellu).

Un’interfaccia sferente in u listessu situ

Oltre a paginatura predefinita di diversi cuntenuti di u situ (rubrique.html, article.html, etc.), pudete dinò creà mudelli sferenti per rùbbriche particulari di u situ, è per u so cuntenutu. Basta chè vo crèite nuvelli schedari .html è chè vo i chjàmite secondu e règule quì sottu :

-  Un’interfaccia sferente per una rùbbrica è i so cuntenuti (sotturùbbriche, artìculi, dispacci, etc.) : bisogna à cumplettà u nome di u schedariu mudellu currispundente cù « -nùmeru » (un trattinu sguitatu da un nùmeru di rùbbrica).

Per esempiu, sè vo create un schedariu rubrique-60.html, venerà appiecatu à a rùbbrica n°60 è à e so sotturùbbriche, invece di rubrique.html. U mudellu article-60.html venerà appiecatu à l’artìculi di a rùbbrica n°60. S’ella cuntene sta rùbbrica unepoche di sotturùbbriche, i so artìculi adutteranu anch’elli u nuvellu mudellu. Listessa per breve-60.html... è tira avanti è dà li.

-  Un’interfaccia per una rùbbrica sola. (SPIP 1.3) Si pò creà un’interfaccia chì venga appiecata à una rùbbrica, ma micca à e so sotturùbbriche. Basta à cumplettà u nome di u schedariu mudellu currispundente cù « =numéro ».

Per esempiu, bisogna à creà un schedariu rubrique=60.html, chì venerà appiecatu solu à a rùbbrica n°60, ma micca à e so sotturùbbriche. Listessu per article=60.html, breve=60.html, etc. Sti mudelli venenu appiecati à i cuntenuti di a rùbbrica n°60 ma quelli di e so sotturùbbriche ritrovanu u vestitu predefinitu.

Pigliate nota : u nùmeru hè sempre quellu d’una rùbbrica. I mudelli article-60.html o article=60.html ùn rimandanu micca l’artìculu n°60 ma tutti l’artìculi di a rùbbrica n°60.

Cosa si pò mette dentr’à un schedariu HTML

Per u più, i schedari .html cuntenenu «testu», cumplettatu da istruzzioni da piazzà elementi di a basa di dati.

SPIP analiseghja solu l’istruzzioni da piazzà elementi di a basa di dati (scritte cù u linguagiu specìficu di SPIP); si ne impippa pocu di ciò chì ci hè in stu schedariu è chì ùn arriguarda micca quelle istruzzioni.

Dunque, per u più cuntenenu HTML. Voi definite l’appaginamentu, a versione di HTML chè vo vulete, etc. Di sicuru ci pudete mette dinò foglie di stile (CSS), JavaScript, Flash... per taglià à lo’accorta: tuttu ciò chì di règula si pò mette in una pàgina Web.

Ma testu per testu, pudete dinò creà còdice XML (per esempiu, «backend.html» anch’ellu crea còdice XML). Più uriginale: tutte e pàgine riturnate à u visitore sò stratte da u CACHE per via d’una pàgina scritta in PHP. Vole dì chì ancu voi pudete dunque include in i vostri mudelli unepoche d’istruzzioni PHP, chì seranu eseguite tempu a vìsita. Cù appena di maestria, sta pussibulità arreca assai sgualtrezza à SPIP, chì pò esse tandu cumplettatu (per esempiu da aghjunghje qualchì cuntatore, etc.), o ancu purtatu à evuluzione di certi elementi soi di paginatura secondu l’infurmazioni stratte da a basa di dati.

Note

[1Capitu chè vo averete u linguagiu SPIP, puderete puru mudificà stu tempu, aduprendu a balisa #CACHE.

Autore tavamig Publié le : Mis à jour : 23/08/23

Traductions : عربي, català, corsu, English, Español, français, italiano, Nederlands, українська