Der Jahrgang 2010 bietet ein besonderes Aroma. Er wurde harten Tests unterworfen und verfügt über einen Satz Komponententests, durch die neue Programmierungen sicherer werden. Die vorliegende Version 2.1 ist ein erster Schritt zur Modularisierung der SPIP-Funktionen, der durch die Einführung des Verzeichnisses «extensions» sichtbar wird. Die in diesem Verzeichnis gespeicherten Plugins werden bei der Installation von SPIP aktiviert und können nicht deaktiviert werden, wodurch spezielle SPIP-Distributionen möglich werden.
Die wichtigsten Verbesserungen in SPIP 2.1
— schneller:
- bessere Verwaltung der Festplattenzugriffe
- Dynamische Pfade werden im Cache berücksichtigt
- Verbesserungen und Erweiterungen des virtuellen SQL-Servers
— sicherer
- sha256 für Passworte und Aktionen
- Überprüfung der Funktionsfähigkeit von .htaccess
- Automatisches Erkennen von neuen SPIP-Versionen
— schöner:
- Integration des Plugins «Federhalter» als Extension, wodurch die Arbeit mit Textfeldern verbessert und um eine sofortige Vorschau ergänzt wird.
- Leichtere und elegantetre grafische Oberfläche
- neue Möglichkeit Designs für das Redaktionssystem zu definieren (z.B. mit dem Plugin «themes_interface_privee»)
- Bessere Steuerung der Größe von Textfeldern (Vergrößerung unter bestimmten Bedingungen)
- Verwaltung (konfigurierbar und abschaltbar) der PNG24 Transparenz unter MSIE6 im öffentlichen bereich
- Die Links «Artikel bearbeiten » und «Artikel vorschlagen» wurden stehen im Redaktionssystem wieder zur Verfügung
- neues Design der Plugin-Verwaltung
- Neugestaltung der Backup- und Restore-Funktionen
- Verwendung von Sonderzeichen-URLs wird durch durch Setzen des Parameters
_TRANSLITTERER_URL
auf «false» möglich (Achtung, muß mit der KOnfiguration des Webservers abgestimmt sein)
— aktueller:
- kompatibel mit PHP 5.3
- Integration der Bibliothek jQuery 1.4.2
- Integration der Bibliothek pclzip 2.8.2
— flexibler:
- erstmals sind Teile des Kernels als Extension ausgeführt: Kompressoren (js, css, html), Federhalter (Funktionsleiste), Bild- und Farbfilter (Bildbearbeitung), Safehtml (Absicherung der Foren und Petitionen), Unterstützung alter Webbrowser
- Verwaltung eines neuen Verzeichnis (extensions/) für bei der Installation aktivierte Plugins, die nicht abgeschaltet werden können.
— erweiterbarer:
- neuen Einstiegspumkte für Plugins
- Neuprogrammierung der Plugin-Verwaltung (und Einführung eines Verzeichnis dafür: ecrire/plugins)
- Plugins können nun in weiteren Verzeichnissen installiert werden, wenn
_DIR_PLUGINS_SUPPL
gesetzt ist. Dadurch Verbesserung der gemeinsamen Nutzung durch mehrere SPIP-Installationen - Möglichkeit zur Erweiterung der online-Hilfe und persönliche Kapitel und automatische Verwaltung mehrsprachiger Inhalte
— strukturierter:
- Einführung einer Authentifizierungs-API
- Verbesserung des LDAP-Interface
- Neuprogrammierung der Benachrichtigungs-API
- Vereinheitlichung der SPIP-Tags
#LOGO_
: Parameter werden nun in gechweiften Klammern übergeben und die «doppelten Pipes» verschwinden (die Schreibweise#LOGO_xxx||filtre
ist jetzt obsolet, wird aber weiter unterstützt) - Neue SPIP-Tags und Funktionen:
#BOUTON_ACTION
,|balise_img
,|couleur_luminance
(entspricht|couleur_saturation
, wirkt aber auf die Helligkeit der Farbe) - dynamische SPIP-Tags wie
#FORMULAIRE_
können nun zur Laufzeit Werte verarbeiten, die erst bei der Kompilation bekannt sind.
— leichter debuggen:
- Verbesserung des Debuggers, der nun präzise Angaben u fehlerhaften Zeilen in Skeletten machen kann
- der Debugger informiert nun über den exakten Ort einer möglicherweise fehlerhaften Verwendung von dynamischen SPIP-Tags
- Debug-API um mehreer Funktionen erweitert (zusätzliche Aufrufvarianten und persönliche Anpassungsmöglichkeiten)
- Verbesserungen des Modus inclure (
?var_mode=inclure
); verschiedene Inklusionstypen werden angezeigt (Integration mit dem Plugin Skeleditor, das Überschreiben und Bearbeiten von Skeletten direkt auf dem Server erlaubt) - die Funktion
spip_log()
kann überladen werden.
— ++geek:
- der Compiler beitet nun eine bessere Trennung von Parser und Abstraktionsbaum, wodurch neue eigne Syntaxkonstruktionen möglich werden (für die Mutigen)
- Wiedereinführung eines vollständigen und konfigurierbaren Dekompilierers, mit dem neue Syntaxkonstruktionen und -experimente möglich werden.
Bekannte Unverträglichkeiten
Wie jede wesentliche neue Version bringt SPIP 2.1 ein paar Unverträglichkeiten mit sich, die sich zum Glück gut korrigieren lassen:
- Tabellennamen für SPIP-externe Daten müssen nun Groß- und Kleinschreibung respektieren und dürfen nicht mehr ausschließlich in Versalien geschrieben werden:
<BOUCLE_a(MeineTabelle)...
an Stelle von<BOUCLE_a(MEINETABELLE)...
<BOUCLE_a(meine_infos)...
an Stelle von<BOUCLE_a(MEINE_INFOS)...
- Der Filter
|reduire_image
entfällt endgültig (er war bereits obsolet und durch|image_reduire
ersetzt.) - In PHP-Skripte, die Funktionen der Grafikfilter verwenden, muß jetzt ausdrücklich
include_spip("inc/filtres_images");
eingefügt werden. - Neue personalisierte URLs müssen an Hand der Beispiele in
ecrire/url/
entwickelt werden. - Die Pipeline
creer_chaine_url
entfält und wird durch spezielle Pipelines ersetzt:propres_creer_chaine_url
,arbo_creer_chaine_url
, ... - Jede geschweifte Klammer, die direkt auf einen SPIP-Tag folgt, wird als Container für Parameter dieses Tags interpretiert.
zum Beispiel: in einem Stylesheet funktioniert das hier nicht mehr:.rub_#ID_RUBRIQUE{font-size:1.2em;}
dei geschweifte Klammer muß entweder durch ein Leerzeichen vom SPIP-Tag getrennt sein:.rub_#ID_RUBRIQUE {font-size:1.2em;}
oder es muß der vollständige Code des SPIP-Tag verwendet werden:.rub_[(#ID_RUBRIQUE)]{font-size:1.2em;}
- Die Aufrufe von jQuery mit
$("input[@name=prenom]")
, die bereits in jQuery 1.3 obsolet waren, funktionieren nicht mehr mit der Version 1.4.2 von jQuery, die in SPIP 2.1 enthalten ist. Jetzt lautet die korrekte Syntax folgendermaßen:$("input[name=prenom]")
- Die Schreibweise
#SET{variable,}
wird nicht mehr akzeptiert (um eine leere Variable zu deklarieren) und muß durch diese Syntax ersetzt werden:#SET{variable, ''}
- Für die Plugins wird eine leere Deklaration wie
<fonctions></fonctions>
in der Dateiplugin.xml
nicht mehr akzeptiert. - Um eine Funktion aus einem Plugin ausschließlich zu nutzen, wenn dieses aktiviert ist (und anderenfalls nichts zu tun) muß nun diese Formulierung gewählt werden:
[(#BALISE|appliquer_filtre{fonction_specifique})]
und nicht mehr[(#BALISE|fonction_specifique)]
, durch welche ein Fehler ausgelöst wird. - Für die SPIP-Tags
#LOGO_xxx
[1], werden die Pseudo-Filter|fichier
und|lien
durch die Schreibweisen#LOGO_xxx**
und#LOGO_xxx*
ersetzt.
Die Pseudo-Filter zur Positionierung (|top
,|left
,|right
,|center
und|bottom
) sowie die SPIP-Tags|#URL_yyy
, die wie Filter verwendet wurden, werden nun wie ein Argument des SPIP-Tags geschrieben.
Die Schreibweise[(#LOGO_xxx|left)]
wird folglich ersetzt durch#LOGO_xxx{left}
und die Formulierung[(#LOGO_xxx|#URL_yyy)]
durch#LOGO_xxx{#URL_yyy}
.