Versie 2.1 van SPIP werd in 2010 vrijgegeven en was de eerste stap naar een modulering van de functionaliteit van SPIP, waarbij een map met «extensies» verschijnt. De in deze map aanwezige plugins zijn standaard geactiveerd en dat kan niet ongedaan worden gemaakt wat de weg opent voor specifieke distributie-sets van SPIP.
De belangrijkste verbeteringen in versie 2.1
— sneller:
- een beter beheer van schijftoegang
- cache op berekende paden
- verbeteringen en uitbreidingen van de virtuele SQL-server
— veiliger:
- sha256 op wachtwoorden en handelingen
- verificatie van de werking van .htaccess
- automatische detectie van updates van SPIP
— mooier:
- integratie (als extensie) van de plugin «porte-plume» die de tekstvelden aanzienlijk verrijkt en een vooruitblik op het eindresultaat biedt
- een lichtere en meer elegante grafische interface
- de mogelijkheid van grafische thema’s (zoals met de plugin «themes_interface_privee»)
- beter beheer van de afmetingen van de tekstvelden (conditionele vergroting)
- beheer van de PNG24 transparantie onder MS IE6 voor de publieke site
- terugkeer van de links «dit artikel aanpassen» en «dit artikel voorstellen» tijdens het bewerken van een artikel
- nieuwe interface voor het beheer van plugins
- herontwerp van de backup en restore procedures
- mogelijkheid van URL’s met accenten door het «false» definiëren van
_TRANSLITTERER_URL
(let wel op de serverconfiguratie)
— moderner:
- compatibiliteit met PHP 5.3
- integratie van de jQuery 1.4.2 bibliotheek
- integratie van de pclzip 2.8.2 bibliotheek
— slanker:
- eerste uitbreidingen van de core met: compressie (js, css, html), porte-plume (toolbars), afbeeldingsfilters, safehtml (beveiliging van forum en petitie), ondersteuning voor oudere browsers
- beheer van een nieuwe map (extensions/) waar standaard plugins zijn opgenomen die niet kunnen worden uitgeschakeld
— meer uitbreidbaar:
- nieuwe toegangspunten voor plugins
- herontwerp van het beheer van plugins (en een specifieke map voor hun beheer: ecrire/plugins)
- plugins mogen in andere mappen worden geïnstalleerd dankzij een constante
_DIR_PLUGINS_SUPPL
(vooral nuttig bij meerdere sites op dezelfde software) - de mogelijkheid de online hulp uit te breiden met persoonlijke items, alsmede een uitbreiding voor meertaligheid
— beter gestructureerd:
- een API voor authenticatie
- verbetering van de LDAP interface
- herfundering van de API voor notificaties
- veralgemening van de
#LOGO_
bakens: parameters worden tussen accolades doorgegeven en de «dubbele pipes» (#LOGO_xxx||filter
) zijn niet langer nodig - nieuwe bakens en functies:
#BOUTON_ACTION
,|balise_img
,|couleur_luminance
(gelijk aan|couleur_saturation
, maar werkend op de kleurintensiteit) - de mogelijkheid van dynamische bakens (type
#FORMULAIRE_
) om de uitvoering van waardes die niet bekend zijn tijdens de compilatie te bevatten
— gemakkelijker te debuggen:
- de foutieve regel van een skelet kan nu worden aangeduid
- de debugger geef ook de exacte plaats aan van onjuist gebruikte dynamische bakens
- een meer functionele API
- verbetering van insluitingen (
?var_mode=inclure
) waarbij de verschillende insluitingen worden weergegeven - mogelijkheid de functie
spip_log()
te laden
— meer geek:
- de compiler is in staat meerdere nieuwe syntaxen te verwerken
- een decompiler biedt de mogelijkheid om te experimenteren met een nieuwe syntax
Bekende incompatibiliteit
Zoals in iedere major version gaat deze SPIP 2.1 gepaard met enkele compatibiliteitsproblemen, die gelukkig eenvoudig te corrigeren zijn:
- In een lus moet de naam van een externe SQL-tabel worden aangegeven in zijn feitelijke schrijfwijze en niet langer in hoofdletters:
<BOUCLE_a(MijnTabel)...
in plaats van<BOUCLE_a(MIJNTABEL)...
<BOUCLE_a(mijn_info)...
in plaats van<BOUCLE_a(MIJN_INFO)...
- Het filter
|reduire_image
verdwijnt definitief (het was al obsolete en vervangen door|image_reduire
) - Toevoeging van
include_spip("inc/filtres_images");
in PHP scripts zorgt voor het oproepen van de grafische filters - Je kunt je laten inspireren in de bestanden van
ecrire/url/
om scripts de schrijven voor alternatieve URL’s - De pipeline
creer_chaine_url
verdwijnt en is vervangen door specifieke pipelines:propres_creer_chaine_url
,arbo_creer_chaine_url
, ... - Elke aan een baken gehechte openende accolade wordt beschouwd als aanlevering van argumenten voor dat baken
voorbeeld: in een stylesheet:.rub_#ID_RUBRIQUE{font-size:1.2em;}
zal niet werken
je moet de accolade scheiden:.rub_#ID_RUBRIQUE {font-size:1.2em;}
ofwel de volledige schrijfwijze van het baken gebruiken:.rub_[(#ID_RUBRIQUE)]{font-size:1.2em;}
- jQuery oproepen van het type
$("input[@name=voornaam]")
die al in jQuery 1.3 obsolete waren, zullen niet langer werken in versie 1.4.2 van jQuery (gebruikt in SPIP 2.1). De juiste syntax is:$("input[name=voornaam]")
- De schrijfwijze
#SET{variabele,}
is niet langer toegelaten (om een variabele leeg te definiëren) en moet worden vervangen door#SET{variabele, ''}
- Bij plugins is een lege declaratie
<fonctions></fonctions>
in bestandplugin.xml
niet langer toegelaten - Om een specifieke functie uit een plugin uitsluitend te gebruiken wanneer de plugin actief is (en anders de instructie te negeren) schrijf je:
[(#BALKEN|appliquer_filtre{specifiek_filter})]
in plaats van[(#BALISE|specifiek_filter)]
wat een compilatiefout zal geven. - Voor de bakens
#LOGO_xxx
[1] zijn de valse filters|fichier
en|lien
vervangen door respectievelijk#LOGO_xxx**
en#LOGO_xxx*
.
De valse filters voor d euitlijning (|top
,|left
,|right
,|center
en|bottom
) en de bakens|#URL_yyy
op de positie van een filter worden nu geschreven als argument van het baken.
De syntax[(#LOGO_xxx|left)]
is dus vervangen door#LOGO_xxx{left}
en[(#LOGO_xxx|#URL_yyy)]
door#LOGO_xxx{#URL_yyy}
. - Het wordt ten zeerste aangeraden het baken
#INSERT_HEAD
te gebruiken om ervoor te zorgen dat extensies hun stylesheets en JavaScript op de juiste plaats opnemen.