SPIP 1.9

1.Juli 2006 : SPIP 1.9 erscheint genau 5 Jahre nach der ersten Version des Programms.

Sie können diese Version unter folgender Adresse herunterladen
http://www.spip.net/de_download

oder den neuen spip_loader verwenden, der alle erforderlichen Daten als zip auf ihren Server kopiert und die Installation startet.

* *

Beschreibung der wesentlichen Neuerungen im Vergleich zur letzten stabilen Version (SPIP 1.8.3 (fr) ).

1. Öffentliche Website

Neue Standardtemplates (Skelette)

Das Standardlayout wurde überarbeitet und ist jetzt weitestgehend konform mit den W3C Standards und den Anforderungen an Barrierfreiheit. Die Navigation wurde neu gestaltet. Die CSS-Stile wurden vereinfacht, um die Anpassung an individuelle Bedürfnisse zu erleichtern.

Diese Skelette bestehen aus mehreren eingebetteten Sekletten: Drei für das Rubrikmenü, den Kopf und den Fuß der Seite, die auf allen Seiten vorkommen, sowie zwei weiteren, für Foren und Unterzeichner der Petitionen.

Die Formulare von SPIP wurden ebenfalls überarbeitet. Um sie so weit wie möglich barrierefrei zu gestalten, erhielt jedes Eingabefeld die Angaben <label> und diese Elemente wurde mit den Tags <fieldset> sowie <legend> in « logischen Blöcken » gruppiert. Außerdem wurde ihre grafische Darstellung mit CSS wesentlich vereinfacht: Ils sont beaux, mes formulaires !

Erweiterte Syndikation

Die Skelette für Newsfeeds (Syndikation, backend) entsprechen jetzt dem Format RSS 2.0. Ein Schalter im Konfigurationsbereich der Website ermöglicht es, entweder eine Zusammenfassung oder vollständige Artikel per RSS zu verteilen. Der Newsfeed enthält ebenfalls Informationen über die Rubrik des Artikels, Schlagworte und verbundene Dokumente (Podcasts). In Gegenrichtung, wenn sie einen RSS-Feed mit ihrer SPIP-Website abonnieren, kann SPIP die entsprechenden Daten verarbeiten. Siehe Artikel La syndication de contenus (fr).

Zusätzliche neue Dokumenttypen

Das SVG-Format (Scalable Vector Graphics), welches Firefox und Opera seit kurzem eigenständig verarbeiten, wurde den zulässigen Dokumenttypen hinzugefügt und kann jetzt mit den Tags <emb1> in artikel eingebunden werden. Da diese Dokumente Javascript enthalten, wird es aus Sicherheitsgründen wie folgt behandelt:
-  Wenn ein Redakteur eine SVG-Datei hochläd, entfernt SPIP den gesamten Javascript-Code und sämliche Links zu Javascript-Dateien.
-  Wenn ein Administrator das Dokument auf den Server kopiert, übernimmt SPIP das Dokument so wie es ist.

Die folgenden Dateitypen werden jetzt ebenfalls akzeptiert: Abiword (abw), Blender (blend), Flash Video (flv), True Type Schriftarten (ttf) sowie sämtliche «open document» (OpenOffice.org) Dateitypen.

URL der Seiten

Die Dateien wie article.php3 im Wurzelverzeichnis der Website, über die bisher die Skelette für article geöffnet wurden, sind jetzt überflüssig und wurden entfernt.

Diese Dateien erscheinen folglich nicht mehr in den Standard-URLs. SPIP verwendet jetzt « Seiten-URLs » im Format /spip.php?article12 für Artikel 12 oder /spip.php?page=plan für die Sitemap mit dem Skelett plan.html.

Anmerkung:
-  SPIP wird mit einer Textdatei namens htaccess.txt ausgeliefert, die es Besuchern und Suchmaschinen ermöglicht, unter den alten Adressen weiterhin die Seiten der Website zu erreichen. Bei den meisten Webspace-Providern genügt es, diese Datei nach .htaccess (der Punkt bezeichnet eine versteckte Datei) umzubenennen, um sie zu aktivieren. Diese Datei ermöglicht es ebenfalls, die anderen Adressierungsarten (die so genannten «URLs propres», etc.) zu nutzen.
-  Wenn sie bei einem Update von einer früheren Version die alten Dateien article.php3 beibehalten, funktionieren weiterhin sie dank der Fantomdatei inc-public.php3 — Vorsicht! In der nächsten Version wird SPIP dies nicht mehr unterstützen.
-  Die Einstellung des Cache-Timeout (die Variable $delais) erfolgt nunmehr mit dem SPIP-Tag #CACHE direkt im HTML-Skelett. Wenn die Variable $delais explizit angegeben wird, behält sie ihre Wirkung.

Um andere Adressierungsschemata zu nutzen kann man weiterhin die Variable $type_urls in der Datei ecrire/mes_options.php einsetzen.

Dateierweiteung php oder php3?

Grundsätzlich heißen jetzt alle Dateien *.php, die bis Version 1.83 *.php3 genannt wurden. Die personalisierten Konfigurationsdateien (mes_fonctions.php3, ecrire/inc_connect.php3 oder ecrire/mes_options.php3) werden weiterhin von SPIP erkannt und brauchen nicht unbedingt umbenannt zu werden.

Mit SPIP 2.0 wird das nicht mehr der Fall sein. Bitte denken sie daran, diese drei Dateien wenn möglich schon jetzt nach *.php umzubenennen.

Kompatibilität: SPIP benötigt eine PHP-Version neuer als 4.0.8, und ist kompatibel mit PHP 5.x. Die Kompatibilität mit MySQL 4 et 5 wurde überarbeitet und verbessert.

Grafikfilter

Mit zahlreichen neuen Filtern können Bilder und Grafiken von SPIP auf dem Server bearbeitet werden.

Dazu muss die Bibliothek GD2 auf dem Server installiert sein.

Einige Filter manipulieren Farben (Bilder nach Schwarz-Weiss oder Sepia umwandeln, abdunkeln, aufhellen ...), andere ermöglichen Bilder zu drehen, das weich zu zeichnen, einen Spiegeleffekt einzublenden, Bilder halbtransparent zu machen, eine Maske für die Transparenz anzuwenden, etc.

Die Grafikfilter (fr) sind ausführlich in einem speziellen Artikel beschrieben.

Der Filter |couleur_extraire ermöglicht, eine Farbe aus einem Bild (Logo, Dokument eines Artikels ...) zu extrahieren und sie für andere Elemente der Seite (Farbflächen, CSS-Stile, Text als Grafik, etc.) zu verwenden. Damit kann man die Farbgestaltung einzelner Seiten automatisieren und dabei sicherstellen, daß alle Elemente aufeinander abgestimmt sind.

Diese Farbe kann zusätzlich mit einer Reihe Filter (aufhellen, abdunkeln, ...) modifiziert werden, um eine vollständige Farbpalette zu erzeugen. Die Farbfilter für Bilder (fr) sind in einem besonderen Artikel beschrieben.

Gleichzeitig wird der Filter |image_typo eingeführt, mit dem aus Texten Grafiken erstellt werden, so dass eine einheitliche typografische Darstellung in allen Webbrowsern erreicht wird, auch wenn bestimmte Schrifttypen nicht auf dem Rechner des Betrachters vorhanden sind. Dazu wird die gewünschte Schriftart auf dem Server vorgehalten und als Grafik ausgegeben. Ein besonderer Artikel beschreibt den Filter image_typo (fr) detailliert. Dieser Filter benötigt GD2 und die Bibliothek Freetype (sie wird gewöhnlich zusammen mit GD2 installiert) auf dem Server.

Verbessertes Verkleinern von Grafiken

Wir raten dringend dazu, in den Konfigurationseinstellungen unter "Erweiterte Einstellungen" die Bibliothek GD2 zu wählen (wenn sie auf dem Server installiert ist). Mit dieser Methode wird die Verkleinerung von Grafiken wesentlich verbessert: PNG und GIF-Dateien behalten ihre transparenten Bereiche.

Der Filter |reduire_image wird zu |image_reduire (die Bezeichnungen aller Grafikfilter beginnen jetzt mit |image_). Die alte Schreibweise ist weiterhin möglich.

Mit dem neu eingeführten Filter |image_reduire_par wird die Größe eines Bildes um einen bestimmten Faktor verkleinert (z.B. |image_reduire_par{2} verkleinert die Maße eines Bildes um den Faktor 2).

Neue SPIP-Tags

  • #CACHE. Der Cache-Timeout $delais für generierte Seiten wird jetzt direkt im Skelett in der Syntax #CACHE{dauer} angegeben (Anmerkung: Es ist weiterhin möglich einen Ausdruck wie 24*3600 zu verwenden). Die neue Schreibweise bietet zusätzlich den Vorteil, einen HTTP-Header zu produzieren, der dem Webbrowser mitteilt, daß sich eine Seite während einer bestimmten Zeitsppanne nicht ändern wird.
  • #HTTP_HEADER ermöglicht, gezielt bestimmte HTTP-Header zu generieren. Zum Beispiel beschreibt #HTTP_HEADER{Content-Type: text/css} den Typ des übertragenen Dokuments. WICHTIG: Wird dieser SPIP-Tag verwendet, unterdrückt er die Ausgabe der Schaltfächen für Administratoren. Damit ersetzt er die alte globale Variable $flag_preserver, die unter SPIP 2.0 nicht mehr unterstützt werden wird .
  • #CHEMIN{datei} (erweitert #DOSSIER_SQUELETTE). #CHEMIN{xxx} gibt den Pfad bis zur Datei xxx aus, die im Wurzelverzeichnis, im Ordner dist/, in einem Skelettverzeichnis oder an anderem Ort steht.
  • #DESCRIPTIF_SITE_SPIP zeigt die Beschreibung der Website an, die man auf den Konfigurationsseiten ausfüllen kann. Eine sinnvolle Anwendung wäre das Ausfüllen von Meta-Tags.
  • #LOGO_SITE_SPIP wurde geändert. Nunmehr unterscheidet es sich vom Standardlogo für Rubriken (rubon0.jpg). #LOGO_SITE_SPIP zeigt jetzt das Logo der Website (siteon0.jpg). Das Website-Logo wird wie Titel und Beschreibung in der allgemeinen Konfigurationsseite eingegeben.
  • Verlinkte / syndizierte Websites: Neue SPIP-Tags #SOURCE und #URL_SOURCE mit denen Name und Adresse einer durch ein Portal syndizierten Website angezeigt werden. In den syndizierten Inhalten zeigt der SPIP-Tag #TAGS Links zu eingebetteten Dokumenten, Schlagworten und Rubriken in Form von Mikroformaten an.
    Detaillierte Beschreibungen La syndication de contenus (fr).
  • Der technische Tag #CONFIG ermöglicht den Wert eines Parameters aus der Tabelle spip_meta anzuzeigen.
  • Ebenfalls auf der technischen Ebene wirkt der Tag #EVAL{}, mit dem von geschweiften Klammern eingeschlossene PHP-Ausdrücke ausgewertet werden. #EVAL{2*7} ergibt 14, #EVAL{_DIR_IMG_PACK} ergibt den Pfad zum Ordner ecrire/img_pack/ (bitte sparsam verwenden).
  • Eine vereinfachte Schreibweise wurde für INCLURE eingeführt. Es genügt jetzt, den Namen des einzufügenden Skeletts in der folgenden Syntax anzugeben <INCLURE {fond=squelette2} {id_article}>. (Anmerkung: Es ist noch offen, ob in Zukunft ein derart referenziertes Skelett bzw. der Code, den SPIP mit seiner Hilfe erstellt, innerhalb der Cache-Datei der aufrufenden Seite gespeichert wird.)
  • Die Sicherheitsfilter können nunmehr vollständig abgeschaltet werden, indem einem SPIP-Tag ein doppelter Asterisk angehängt wird. (Beispiel: [(#TEXTE**)] ermöglicht, PHP-Code im Quelltext eines Artikels auszuführen — wenn sie dieses Beispiel übernehmen wie es ist, gefährden sie möglicherweise die Sicherheit Ihres Servers).
  • Tags mit Parametern, d.h. die, welchen ein Paar geschweifte Klammern folgt, können jetzt in vereinfachter Syntax geschrieben werden. Die eckigen Klammern sind dafür nicht mehr erforderlich. So kann man jetzt den Code
    #EXPOSE{rouge} anstelle von
    [(#EXPOSE{rouge})] verwenden.

Automatische Pagination der Schleifen

Ein System für die automatische Pagination (Seitenaufteilung) der Ergebnisse einer Schleife wurde integriert. Es basiert auf dem Kriterium {pagination} (als Parameter übergibt man ihm die Anzahl der Elemente, die eine Seite anzeigen soll: {pagination 5}) und auf den Tags #PAGINATION und #ANCRE_PAGINATION. Die Standardskelette enthalten zahlreiche Beispiele für die Anwendung der automatischen Pagination (siehe der Artikel Le système de pagination (fr) in der offiziellen Dokumentation). Anmerkung: Dieses System ist nicht kompatibel zum System für die Pagination auf spip-contrib.net, das viele Anregungen für die neuen integrierten Funktionen geliefert hat.

Kriterien

-  Das Kriterium {inverse} akzeptiert als Parameter jeden beliebigen Tag, und variiert die Sortierung dynamisch je nach dem Inhalt des Parameters. Man kann jetzt schreiben: <BOUCLE_exemple(ARTICLES){par #ENV{tri}}{inverse #ENV{senstri}}>, wodurch man die Spalte und die Reihenfolge der Sortierung im URL auswählen kann (&senstri=1 ou &senstri=0).

-  Die Möglichkeit, ein Kriterium ({lang?}) wegzulassen, auch wenn es in einer Schleife verwendet wird, wurde verallgemeinert und wird jetzt beim Kompilieren sorgfältig behandelt, so daß kein SQL "join" generiert wird, wenn es nicht übergeben wurde.

-  Das Kriterium {xxx IN 1,2,3} akzeptiert jetzt als Parameter eine Wertetabelle im URL (siehe Definition des Kriteriums IN (fr) ).

Verbesserte Cachemanagement

Die Cachedatei wird nicht mehr allein abhängig vom URL der Seite generiert, sondern berücksichtigt ebenfalls den Domainnamen, den Wert von $dossier_squelettes und die Variable mit der Bezeichnung $marqueur, die frei gewählt werden kann. Damit eröffnet sich u.a. die Möglichkeit, Skelette "on the fly" zu wechseln und totzdem den Cache zu nutzen (Personalisierung, Nutzung von «var_skel» ...).

Neu ist ebenfalls, daß die Cachdatei nicht mehr komprimiert wird, wenn sie kleiner als 16kB ist, so daß Skelette mit vielen kleinen (mit inclure) eingebetteten Skeletten effizienter verarbeitet werden.

Sprache und Zeichensätze

-  SPIP wird jetzt bei der Installation zunächst für den «universellen» Zeichensatz utf-8 konfiguriert. Im Redaktionssystem gibt es einen Schalter, mit dem sie ihre Website in diesen Zeichensatz konvertieren können (das ist nicht zwingend erforderlich).

Um diese Konvertierung zu unterstützen, werden Umlaute und Sonderzeichen in Skeletten zur Laufzeit (wenn die Seite von SPIP erzeugt wird) in den Zeichensatz der Website umgewandelt, der im Redaktionssystem eingestellt ist.

-  Eine neue Sprache steht jetzt zur Verfügung: Das Bosnische.

-  Ein Filter |direction_css erlaubt, eine CSS-Datei für die Sprachen, die von rechts nach links geschrieben werden, zu invertieren. Wenn z.B. die zu invertierende CSS-Datei style.css heißt, wendet der Filter eine CSS-Datei mit der Bezeichnung style_rtl.css an. Wenn diese nicht existiert, wird automatisch eine RTL-Datei erzeugt, in der alle Einträge mit left durch right ersetzt sind (und umgekehrt). Sie wird im Verzeichnis IMG/cache-css/ gespeichert. Der Filter wird meistens auf einen Tag #CHEMIN angewendet: [(#CHEMIN{style.css}|direction_css)].

2. Redaktionssystem und Administration

Einführung von AJAX

Das Redaktionssystem nutzt - auf vorläufige Art, denn manche Funktionen sind im MSIE deaktiviert - Navigationselemente auf Basis von AJAX (oder genauer gesagt auf Basis von AJAH, denn die HTML-Bestandteile werden vom Server generiert). Diese ermöglichen, durch alle Seiten der Website zu navigieren, ohne die gesamte Darstellung bei jeder Änderung der Perspektive neu vom Server zu laden. Diese Navigationselemente wurden für große Websites mit vielen Rubriken und Artikeln konzipiert.

Ab einer bestimmten Zahl von Rubriken wird anstelle des Klappmenüs zu Wahl der Rubrik eines Objekts ein kleiner Navigator mit vier Spalten angezeigt, der die Struktur der Website darstellt.

Dieser kleine Navigator enthält eine eigene Suchmaschine als Ergänzung zur übersichtlicheren Navigation durch die Struktur der Website.

Die Listen von Objekten (besonders von Artikeln) werden aus zwei Arten durch AJAX verbessert:

— Wenn viele Elemente vorhanden sind, erfolgt die Darstellung in Abschnitten aus 10 Elementen (Artikel 1 bis 10, dann 11 bis 20 usw.) ohne die gesamte Seite neu zu laden, nur die Liste wird aktualisiert. Der kleine Schalter «Plus» rechts oben ermöglicht die vollständige Liste anzuzeigen - ebenfalls ohne den Rest der Seite neu vom Server zu laden.
— Bei Artikellisten in mehrsprachigen Websites schaltet das Symbol «Mikrofon» die Anzeige so um, daß der Stand der Übersetzungen angezeigt wird.

Anzeigegeschwindigkeit

Die Anzeigegeschwindigkeit im Internetexplorer 6 war bisher sehr langsam. Ein speziell für diesen Browser entwickleter Code realisiert jetzt eine Anzeigegeschwindigkeit, die mit der in anderen Webbrowsern vergleichbar ist. Lassen sie sich dadurch nicht vom Umstieg auf Firefox abhalten!

Noch zu erwähnen ist die Abschaltung der Seitenkompression für das Redaktionssystem, wodurch eine schnellere Anzeige erreicht wird.

Überarbeitung des Status der Rubrikadministratoren

Dieser Status litt an einigen Widersprüchen und wurde vollständig überarbeitet. Um die Eigenschaften dieses Status optimal zu nutzen, ist es sinnvoll, ihn ausschließlich für Sektoren, d.h. Rubriken der oberstens Ebene einzusetzen. Es bleibt weiterhin möglich, ihn für Unterrubriken zu verwenden.

Die Rubrikadministratoren können jetzt die Foren ihrer Rubrik verwalten, Dokumente per FTP in das Verzeichnis upload/login hochladen, ihre Rubriken als XML in diesem Verzeichnis sichern und die Zugriffsstatistiken der Website einsehen. Auf ihrer persönlichen Homepage im Redaktionssystem stehen ihnen direkte Links zu den Rubriken, die sie verwalten, zur Verfügung. Auf der internen Übersichtsseite einer Rubrik werden in einem ähnlichen Kasten die Administratoren dieser Rubrik genannt.

Im Gegenzug ist für sie der Zugriff auf die rubrikübergreifenden Einstellungen der Website (Anlegen von Schlagworten, Einrichten von Benutzern, Leeren des Cache) gesperrt. Das war in den Vorversionen teilweise möglich und und bleibt jetzt den Hauptadministratoren vorbehalten, damit diese die Entwicklung der Website besser steuern können (Vermeidung von quasi-identischen Schlagworten, Überblick über neue Redakteure).

Verbesserung des Systems zm Anlegen von Sicherungskopien

Das System zum Im- und Export der SQL-Tabellen als XML-Dateien berücksichtigt jetzt externe Tabellen. Es verhält sich jetzt stabiler bei Unterbrechungen der Sicherung von großen Datenbanken und zeigt den Fortschritt des Sicherungsvorgang öfter an.

Die Wiederherstellung von Sicherungskopien geht jetzt ebenfalls schneller vonstatten und verträgt Sicherungskopien von älteren SPIP-Versionen besser als bisher. Ebenfalls neu ist die Wiederherstellung von XML-Sicherungskopien, die mit PHPMyAdmin angelegt wurden.

Verbesserung der Indexierung

Der Code wurde vollständig neu geschrieben, um jede Tabelle berücksichtigen zu können, die ein Feld namens idx enthält. SPIP kann nun zusätzliche Tabellen indexieren und sie wie üblich mit Schleifen mit dem Kriterium {recherche} wiedergeben.

Die Gewichtung der einzelnen Felder bei der Indexierung von Worten ist jetzt einstellbar.

Die unterschiedlichen Indextabellen wurden zu einer einzigen zusammengeführt.

Verbesserung der Berechnung von Zugriffsstatistiken

Eine verfeinerte Analyse der Herkunft von Seitenabrufen erlaubt aussagekräftigere Berechnungen. Es ist nicht mehr erforderlich, bei jedem Seitenabruf eine Verbindung zur Datenbank herzustellen, wodurch die Serverlast reduziert werden konnte.

Nebenbei wurde die Anzeige der verweisenden Websites (referer) durch Thumbnails der Homepages dieser Sites ergänzt (zumindest für eine Reihe Websites). In der Standardeinstellung wird Thumbshots.org als Quelle der Thumbnails verwendet. Man kann die Quelle für diese Screenshots mit einer der folgenden Einstellungen modifizieren:

$source_vignettes = "http://open.thumbshots.org/image.pxf?url=http://";
$source_vignettes = "http://msnsearch.srv.girafa.com/srv/i?s=MSNSEARCH&r=http://";
$source_vignettes = "http://pthumbnails.alexa.com/image_server.cgi?id=www.monsite.net&size=small&url=http://";

3. Interface für Programmierer

Die Neugestaltung des Codes wurde fortgesetzt, um im Ergebnis ein standardisiertes Interface für Programmierer (API) anzubieten. Die Informationen in diesem Abschnitt dienen dem Zweck, die zahlreichen externen Module für SPIP mit der neuen Version 1.9 einzusetzen, auch wenn eine SPIP-Installation bei Webspace-Anbietern von mehrere Websites gemeinsam genutzt wird (Das betrifft besonders tausende Zusatzfunktionen, die auf www.spip-contrib.net verfügbar sind). Diese Informationen garantieren nicht, daß bestimmte Funktionen in zukünftigen Versionen von SPIP verfügbar sein werden, für die das API vollständig überarbeitet werden wird.

Neue Verzeichnis- und Ordnerstruktur

Wie bereits zu sehen war, sind die Dateien mit der Endung .php3 verschwunden, was bereits mit SPIP 1.8 vorbereitet worden ist. Diese Umbenennung wurde erforderlich, um Mehrdeutigkeiten zu beseitigen. Sie erfolgte zusammen mit einer vollständigen Neustrukturierung der Verzeichnisse.

Skelette und CSS-Dateien stehen nicht mehr im Wurzelverzeichnis der SPIP-Installation. Sie befinden sich jetzt im Ordner dist und dürfen nicht gelöscht werden.

Das Wurzelverzeichnis enthält nur noch das Skript spip.php und seinen Alias index.php (Durch eine interne Einstellung kann ./ anstelle von spip.php im URL angegeben werden: define('_SPIP_SCRIPT', ''), jedoch lautet der Standard define('_SPIP_SCRIPT', 'spip.php'), denn man kann nicht sicher sein, daß mit dem Wurzelverzeichnis der Website spip.php aufgerufen wird und man Gefahr läuft, daß ein simples index.html ausgegeben wird).

Die anderen Skripte wurde in Unterverzeicnisse von ecrire/ verlegt und sind wie folgt angeordnet:

  • exec/ => Skripte, die die Seiten des Redaktionssystems generieren;
  • action/ => Skripte, die in die Datenbank schreiben und keine geändert Seite ausgeben (z.B. Statusänderungen durch Klick auf eine der Minigrafiken);
  • base/ => Funktionen für die Datenbank;
  • inc/ => Funktionsbibliotheken von SPIP.

"Überladen" der Standarddateien

Dank der oben beschriebenen Anordnung wird es möglich, das Verhalten des Redaktionssystems zu ändern, ohne den Quellcode von SPIP zu modifizieren.

Jedes Skript des Redaktionssystems wird jetzt mit einem URL in der Syntax ecrire/?exec=s.... aufgerufen. SPIP sucht dann nach einer Datei exec/s.php in den Verzeichnissen, die in der Konstanten <SPIP_PATH definiert sind. Die erste gefundene Datei wird geladen und definiert die Funktion exec_s, die dann ausgeführt wird. Als letzte Möglichkeit läd SPIP die Standarddatei ecrire/exec/s, welche die Beschreibung der Funktion <code>exec_s_dist enthält, die in diesem Fall ausgeführt wird.

Dieses Verhalten gilt auch für die Funktionen action_a_dist, die in den Dateien action/a.php definiert werden.

Es ist ebenfalls möglich, die Standardbibliotheken zu überladen, die durch die Funktion include_spip geladen werden. (include_ecrire wurde duch die neue Funktion ersetzt und ist nunmehr obsolet, jedoch kann sie bis auf weiteres verwendet werden). Wenn include_spip('inc/nom') aufgerufen wird, sucht SPIP diese Datei im Unterverzeichnis inc von SPIP_PATH (Dieser Pfad wird per Variable festgelegt.), und läd sie an Stelle der Standarddatei.

Aus dem Gesagten folgt, dass man mit dieser Schnittstelle SPIP um Skripte und Bibliotheken ergänzen kann, ohne den Code des Programms zu verändern.

Da nunmehr alle Skripte durch eine Funktion aufgerufen werden, müssen sich die globalen Variablen an Namenskonventionen halten, wodurch SPIP sicherer wird.

Das Ergebnis dieser Arbeiten erschließt SPIP zwei wichtige Perspektiven: Die Integration eines Plugin-Systems und die Nutzung einer einzigen Kopie des SPIP-Quelcodes durch mehrere Websites.

Plugins

Einführung eines Plugin-Systems: Wenn SPIP in seinem Installationsverzeichnis ein Unterverzeichnis plugins/ findet, erscheint im Konfigurationsmenü ein neues Untermenü. Dort kann man die installierten Plugins einzeln aktivieren und abschalten. Mehr Informationen finden sich im Artikel installer des plugins.

Zahlreiche Plugins sind in Entwicklung, besonders in der SPIP Zone http://zone.spip.org/trac/spip-zone.... Sie werden nach und nach auf der Website SPIP Contrib dokumentiert.

Ein Quellcode für mehrere Installationen

Durch die umfangreiche Überarbeitung des gesamten SPIP-Quellcodes ist es jetzt möglich, mit einem einzigen Exemplar von SPIP mehrere Websites zu betreiben, ohne den Quellcode kopieren zu müssen. Von dieser Funktionalität profitieren Anwender, die mehrere Websites bei einem Provider hosten lassen (in mehreren SQL-Datenbanken oder mit Hilfe des Spalten-Päfix in einer einzigen), und Provider, die ihren Kunden ein "schlüsselfertiges" SPIP-CMS anbieten möchten. Eine derartige SPIP-Installation kann durch das oben beschriebene Überladen wie eine Einzelinstallation personlisiert werden. Darüber hinaus genügt es, die Verwendung einiger Direktiven (Alias oder RewriteRule) in den .htaccess der Kunden zu gestatten, oder sie direkt in httpd.conf zu schreiben (Directive VirtualHost).

Automatische Erkennung von SQL-Tabellen und Joins

Mit dem Ausdruck BOUCLE_a(xxx) in einem Skelett (d.h. Template), kann man auf eine beliebige, dem SQL-Server bekannte Tabelle xxx zugreifen. SPIP fordert beim SQL-Server eine Beschreibung der fraglichen Tabelle xxx an, um mit dieser Information das Skelett zu kompilieren und mit dem Ausdruck #NAME auf das Feld <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+eHh4PC9jb2RlPg=="></span>.name zuzugreifen - vorausgesetzt es existiert. Durch diese Technik können auch Werte von beliebigen Datenbankfeldern als Bedingung in <BOUCLES> (Schleifen) verwendet werden.

In einem Skelett mit dem Ausdruck BOUCLE_a(TabellE TabellE1 ... TabellEn), werden die zusätzlichen Tabellen als Kandidaten für ein JOIN über namensgleiche Spalten angesehen. Wir werden in der Dokumentation konkrete Beispiele erläutern.

Andere Verbesserungen

-  Wenn die Versionskontrolle aktiviert ist, kann man eine ältere Version eines Artikels wieder herstellen.

-  Die Symbolleiste für editorische SPIP-Tags funktioniert jetzt auch unter Safari.

Installation und Update

spip_loader: um SPIP 1.9 zu installieren, wurde ein neues spip_loader.php bereit gestellt (/spip-dev/INSTALL/). Es kümmert sich um den automatischen Download des gleichen Dateiarchivs (ZIP), das auch bei der manuellen Installation verwendet wird, und entpackt es auf dem Server. Der SPIP_LOADER ist jetzt mehrsprachig und kann sehr einfach so angepaßt werden, daß er die Entwicklerversion (SVN) an Stelle der stabilen Version einrichtet.

Für das Update einer älteren SPIP-Version genügt es weiterhin, alle Dateien von SPIP 1.9 über die vorhandene Installation zu kopieren. In Anbetracht der grundlegenden Neuorganisation der Dateien und Ordner ergibt diese Vorgehensweise eine funktionsfähige, aber wenig zufrieden stellende Mixtur aus alten und neuen Skripten.

Es empfiehlt sich aus diesem Grund, nach dem Update der Datenbank eine neue Sicherung in dump.xml.gz anzulegen und anschließend eine Neuinstallation durchzuführen. Nachdem man diese Installation um das Verzeichnis IMG mit allen seinen Unterverzeichnissen und Dateien und um die persönlichen Skelette ergänzt hat, kann man die Daten der Website aus der neuen Sicherungsdatei dump.xml.gz wieder herstellen.

Autor klaus++ Publié le : Mis à jour : 13/07/23

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