Verwendung von Modellen

SPIP 1.9.1 führt den Begriff Modell ein.

Was ist ein Modell? Ein Modell ist ein kleines SPIP-Skelett, das ein HTML-Fragment beinhaltet und sehr einfach in andere Skelette und/oder (und das ist die große Neuerung) in den Text eines Artikels einzufügen ist.

Inspiriert durch die TextModelle von Wikipedia bietet das System des Modells in SPIP neue Möglichkeiten für Webmaster und Redakteure.

Modelle sind eine Weiterführung der bisher verwendeten Abkürzungen <img1> und <doc1>. Diese sind von nun an die Modelle dist/modeles/img.html und dist/modeles/doc.html.

Ihre Syntax ermöglicht spezifischere Anwendungen: neben der bisherigen Ausrichtung (<img1|left>, <img1|right> oder <img1|center>) können weitere Klassen aufgerufen werden. Entweder in Form eines eigenen Skelettes oder einer CSS-Klasse (<img1|classe> ruft das Modell modeles/img_classe.html auf. Sollte dieses nicht existieren, wird Modell modeles/img.html mit dem Parameter class="classe" verwendet).

Aber Modelle beschränken sich nicht auf Bilder und Dokumente. Neue Abkürzungen (Tags) können als <modele1> erstellt werden: Hierzu muss lediglich ein neues Skelett im Ordner modeles/ im entsprechenden Skelettordner angelegt werden.

Sind keine zur gefragten Abkürzung passenden Modelle vorhanden (z.B. <breve1>) prüft die Modellverwaltung von SPIP ob das gefragte Objekt bekannt ist (hier breve) und ob ein URL vorhanden ist.

<breve1>In diesem Fall (hier als Beispiel genommen weil die Kurzmitteilungen „BREVES“ dem System bekannt sind und über eine URL-Funktion verfügen) ersetzt SPIP die Abkürzung <breve1> durch einen Link (in fließendem Rahmen) zu der Kurzmitteilung und ihrem Titel, genau so als hätte man [->breve1] angegeben.

Ist das Objekt unbekannt lässt SPIP den Tag unverändert damit er entweder verwendet (etwa von einem Plugin oder einem Zusatzfilter) oder einfach ignoriert werden kann.

Außerdem ist es möglich den Modellen zusätzliche Parameter zu übergeben (wie das „embed“ bei Flashdokumenten durch die Abkürzung <emb1|autostart=true>). Die Syntax ist allgemein und akzeptiert selbst HTML, wie in folgendem Beispiel:

das einen Modell modeles/klang.html aufrufen könnte, welcher die Parameter auswertet und also Photo 12 in einem Rahmen der Farbe #ff0000, mit einer Legende in Kursivschrift anzeigt.

Vielfältige Verwendung

Wir haben bei weitem noch nicht alle Anwendungsmöglichkeiten der Modelle ausgeschöpft. Hier eine kleine Liste der Möglichkeiten, an die wir bisher gedacht haben. Sollten Sie andere finden zögern Sie bitte nicht dies auf SPIP Zone/SPIP Contrib’ bekannt zu geben. Dort finden Sie eine speziell dafür eingerichtete Rubrik.

-  Verändern des Erscheinungsbildes von Dokumentabkürzungen Oft gewünscht aber bisher schwer umsetzbar, da hierzu PHP-Code im Kern von SPIP editiert werden müsste. Von nun an kann einfach dist/modeles/img.html in modeles/ (ein Unterordner des Skelettordners) kopiert werden. Diese Datei kann dann nach Wunsch umgearbeitet werden; ebenso die Abkürzungen <doc1> und <emb1> (deren Komplexität kann allerdings entmutigend wirken).
Achtung: ändern sie die Modelle nicht für kleine Veränderungen am Aussehen . Oft ist es einfacher deren Stil per CSS zu modifizieren.

-  Einen Klang im Flash-Player abspielen Das Modell modeles/son_player.html könnte zur Abkürzung <son12|player> werden.

-  Einen Artikel verknüpfen Fügt man in sein Skelett ein Modell modeles/site_box.html ein, wird sogleich ein neuer Tag namens <site1|box> erstellt. Dazu schreibt man einfach ein Modell (mit den herkömmlichen SPIP-Schleifen), das in einer rechts schwebenden Box folgendes anzeigt: Name der Webseite gefolgt von Links zu den jeweils letzten 3 syndizierten Artikeln. Schon haben wir eine einfach einzufügende Infobox. Ein Parameter könnte z.B. die Anzahl der anzuzeigenden Artikel angeben, ein anderer das Vorhandensein einer Zusammenfassung ...

-  Bild als Briefmarke anzeigenHat man ein Skelett geschrieben, dass ein Bild in Form einer Briefmarke anzeigt ( wie z.B. hier) kann man dies einfach in modeles/timbre.html umbenennen und somit die Abkürzung <timbre12> erzeugen. Als Parameter könnte man hier beispielsweise Größe, Farbe, Wahl des Stempels und und und angeben. [1].

Selbstverständlich kann man ebenso gut ein Modell herstellen, das Bilder in Sepiazeichnung, in verkleinerter Version, in Schwarz/Weiß usw darstellt. Es wird sicher bald für all das Plugins geben...

-  Zusammengesetzter Artikel Sie brauchen einen Artikel, der aus dem Kopf von Artikel 1 und dem Text von Artikel 2 besteht? Nichts leichter als das: man stellt zwei Modelle her, das eine sendet den Kopf des gewünschten Artikels, das andere den benötigten Text. In unserem zusammengesetzten Artikel müssen wir dann einfach für den Kopf <article1|chapo> und für den Text <article2|texte> aufrufen. Dem können noch Filter, Tags uvm. nach Belieben zugefügt werden.

-  Einen Artikel in mehreren Rubriken aufführen Indem man Modelle wie <article1|chapo>, <article1|texte> etc programmiert wird es denkbar die Kopie eines Artikels in einen zweiten zu legen, ohne die Daten duplizieren zu müssen. So erhalten wir einen Fantomartikel, den wir in einer beliebigen Rubrik platzieren können (zusätzlich gibt es die Optionen, den Titel zu ändern oder eventuell Teile zu verändern).

-  Umfrage Das Plugin Forms kann Formulare erstellen und in Artikeln nutzen, mittels der Abkürzung <form1>. Es wurde jetzt mit Modellen neu geschrieben.

-  Anzeige eines Zitats per Zufallsauswahl Hat man Zitate in seinen Kurzmitteilungen verwendet kann die Abkürzung <citation|aleatoire> sie heraussuchen und per Zufallsprinzip (critère {par hasard}{0,1} in einer Breves-Schleife) in seitlich am aktiven Absatz schwebenden Rahmen anzeigen.

-  Einfügen eines anderssprachigen Dokuments als der Sprache des Artikels. Bei eingefügten Modellen steht der Parameter lang=xx stets zur Verfügung. Sollte eins Ihrer Dokumente mehrsprachig sein (z.B. einen „muti“-Block in der Kurzbeschreibung enthalten)) können Sie die Einleitung in Esperanto in einem Artikel in Japanisch anzeigen, indem Sie <doc1|left|lang=eo> aufrufen. Sollte das Skelett des Modells Strings (Zeichenketten, die in einer Sprachdatei definiert wurden) enthalten, so werden diese interpretiert, gegebenenfalls in einer Sprache, die mittels eines Parametes bestimmt wurde.

-  Eine Graphik anzeigen Dem Modell kann eine Datentabelle zugeführt werden, welche dann in eine graphische Darstellung umgewandelt und so in den Verlauf des Textes eingebaut wird.

-  Ein Zwischentitel in Form eines Bildes Warum nicht als Abkürzung <imagetypo|texte=Mein Zwischentitel> ?

Parameter in Hülle und Fülle

Die Syntax zum Aufruf eines Modells ist <modele12>, <modele|parameter1=dings|parameter2=bums> oder <modele12|alignement|parameter1=etc>. Parameter können aus HTML und SPIP-Tags zusammengesetzt werden (natürlich unter der Bedingung, dass deren Verwendung in den aufgerufenen Modellen vorgesehen ist).

Um Unvereinbarkeiten mit HTML-Tags zu vermeiden kann ein Modell nicht über einen Tag wie <modele> (der weder eine Zahl noch das Symbol | beinhaltet) aufgerufen werden.

Parameter können sich über mehrere Linien erstrecken, was eine übersichtliche Schreibweise des Codes möglich macht:

<modele 10
 |pays=Allemagne
 |population=82000000
 |superficie=357027
 |classement=63
 |hymne=<i>Das Lied der Deutschen</i>
 |url=http://fr.wikipedia.org/wiki/Allemagne
>

Das Skelett bezieht alle Parameter über den Tag #ENV. So beträgt #ENV{population} hier 82000000. Dieses Tag ist gegen jeglichen Eingriff durch JavaScript gesichert. Will man HTML in einem Parameter verwenden, lautet die Schreibweise #ENV*{hymne}. Soll SPIP die Typografie automatisch korrigieren, so verwendet man [(#ENV*{hymne}|typo)] oder [(#ENV*{hymne}|propre)].

Der Hauptparameter (hier 10) wird in zwei Formen übergeben: #ENV{id}=10, und #ENV{id_modele}=10. Dies ermöglicht einem per <article3|chapo> aufgerufenen Modell den Zugriff auf die Einleitung des Artikels 3 durch <BOUCLE_a(ARTICLES){id_article}>#CHAPO</BOUCLE_a> oder auch auf Kurzmitteilungen, die mit Schlüsselwort 3 verknüpft sind, durch: <BOUCLE_b(BREVES){id_mot=#ENV{id}}>#TITRE</BOUCLE_b>

Wie man sieht sollte jedes Modell seine eigene Dokumentation haben, da durch die Tags selbst nicht ersichtlich ist, wie die übergebenen Elemente ausgewertet werden.

Mögliche Verwendung in Skeletten

Modelle sind nicht auf Tags in Artikeln beschränkt. Es ist möglich sie in Skeletten aufzurufen, mittels der Tags #MODELE{modele} oder [(#MODELE{modele}{p1=truc,p2=chose}{p3=etc}|filtre...)]. Dies ist allerdings weniger neu in SPIP, da es einer statischen Einfügung von Skeletten entspricht und ebenfalls über das Tag #INCLURE erreicht werden kann.

GrundModelle

SPIP wird mit folgenden Modellen geliefert:
-  img, doc, emb,
-  article_mots und article_traductions, geben die Liste der jeweils mit einem Artikel verbundenen Schlüsselwörter mit ihren Übersetzungen wieder (Abkürzung: <article1|traductions> und <article1|mots>. Diese Modelle können ebenfalls von einem Skelett durch dist/article.html aufgerufen werden).
-  lesauteurs, welcher das Ergebnis des Tags #LESAUTEURS wiedergibt; kann allerdings nicht als Abkürzung aufgerufen werden.
-  und eine Reihe von Modellen zur Seitenaufteilung (siehe Le système de pagination in fr).

Ein paar Hinweise zur Erstellen von Modellen

Es wird empfohlen sich zunächst über die Syntax klar zu werden, die sich am besten für das gewünschte Resultat eignet. Soll das Modell an einen bestimmten Artikel gebunden sein? Wenn ja beginnen wir mit einem <article1|xxx>.

Dann folgt die Erstellung der Datei modeles/article_xxx.html, in die wir den Tag #ENV einführen. In einem Testartikel schreiben wir unsere Abkürzung <article1|xxx|param=x...> ; so erhalten wir (in einer etwas kryptischen Form .. es handelt sich um eine serielle Tabelle) die Umgebung, wie sie dem Modell übergeben wird. Wir können darin z.B. die ID unseres Artikels erkennen (in Form von #ENV{id} und #ENV{id_article}.

Nun können wir beginnen das Skelett unseres Seitenfragments einzugeben: <BOUCLE_x(ARTICLES){id_article}> oder <BOUCLE_x(ARTICLES){id_article=#ENV{id}}>. Und los geht’s...

Zur Vervollständigung unseren Modells müssen die Schreibweisen <article1|xxx|left> und [<article1|xxx>->www.spip.net] getestet werden.

Im ersten Fall ist es der Parameter align=left, der dem Modell übergeben wird (das Modell soll sich an der Seite ausrichten).

Im zweiten Fall wird der Link in einem Parameter lien=http://www.spip.net und die Klasse des Links in lien_classe=spip_out vermittelt . Es ist ratsam den gewünschten URL irgendwo im Modell einzubeziehen (z.B. im Titel des Icons). Dadurch muss im Parameter des HTML-Tags des Modells ein class="spip_lien_ok" eingefügt werden, der SPIPs Modellverwaltung mitteilt, dass der Link berücksichtigt wurde (andernfalls fügt die Modellverwaltung dem erstellten Modell ein <a href=...>...</a> hinzu).

Bezüglich der Parameter: Der Tag #ENV{x} wurder so konzipiert, dass unerwünschte Eingriffe durch HTML oder JavaScript abgewiesen werden. Will man hingegen in einem Modell HTML in den Parametern zulassen, so muss #ENV*{x} verwendet werden um die gewünschten Daten zurückerhalten zu können. Eventuell müssen diese dann per |propre oder |typo gefiltert werden, je nach Art der Daten (Text aus mehreren Absätzen bestehend oder eine einzelne Textzeile).

In Sachen Programmierung ist zu empfehlen Modelle rein in SPIP-Schleifen zu schreiben, ohne Verwendung von PHP oder dynamischen Tags. Sollte dies nicht beachtet werden so ist zu bedenken, dass ein Modell, welches PHP beinhaltet das Ergebnis der Berechnung wieder gibt, und nicht das Skript selbst (wie es in Skeletten der Fall ist).

Anmerkungen

[1Hätten Sie es lieber, dass ihre Abkürzung <img12|timbre> heißt, so müssen Sie ihren Modell modeles/img_timbre.htmlnennen

Autor joz Publié le : Mis à jour : 26/10/12

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