Wie kann ich auf fremde Quellen wie mySQL-Datenbanken oder RDF Site Summary zugreifen?
Zweck
- Einbindung fremder Inhalte auf eigene Webseite
- Zugriff auf lokale oder entfernte Online-Datenbanken
Parameteraufbau:
In einem Syndicationblock wird angegeben, welche Daten, in welchem Format, aus welcher Quelle, in welcher Form temporär in die VIO.Matrix Datenbank einzubinden sind. Der Syndicationblock erzeugt einen temporären (d.h. nur während der Erzeugung der aktuellen Ausgabe gültigen) Ordner, welcher die importierten Daten enthält. Einzelne Datensätze werden in diesem temporären Ordner als Elemente angelegt.
#SYNDICATE
[Parameter des Syndicationblocks]
#ENDSYNDICATE
Parameter Pflichtangaben:
- id: Angabe einer projektübergreifend eindeutigen Identifikationsnummer (ID), größer Null. Unter der hier vergebenen ID wird ein temporärer Syndicationordner erzeugt. Existiert dieser Ordner bereits im Cache, bspw. weil er von einer anderen Sitzung bereits erzeugt wurde, wird der Inhalt des temporären Ordners in Abhängigkeit der Angabe in revisit-after aktualisiert, d.h. die bisherigen Inhalt des Ordners werden überschrieben bzw. gelöscht.
- content-type: Angabe zum Format, in welchem die zu importierenden Daten vorliegen.
- url: Angabe zum Ort, der Zugriffsmethode und wahlweise auch Login und Paßwort der zu importierenden Daten
Optionale Parameter:
- login: Angabe zum Login, um auf die zu importierenden Daten zugreifen zu können. Das Login kann wahlweise auch innerhalb des Parameters „url" angegeben werden. Die separate Angabe empfiehlt sich, wenn das Login die Zeichen: : , @ oder / enthält.
- password: Angabe zum Passwort, um auf die zu importierenden Daten zugreifen zu können. Das Passwort kann wahlweise auch innerhalb des Parameters „url" angegeben werden. Die separate Angabe empfiehlt sich, wenn das Passwort die Zeichen: @ oder / enthält.
- revisit-after: Angabe, nach wieviel Sekunden die bereits in einem temporären Ordner importierten Daten aktualisiert werden sollen. Die Angabe sehr großer Zeiträume wirkt sich hier positiv auf die Performance des Systems aus, da bei jedem Importvorgang eine Verbindung zu einem entfernten Server aufgebaut und die Daten anhand des Contenttype in VIO.Matrix Ordner und Elemente konvertiert werden müssen.
- import-or-vartypes:Angabe einer Liste von Importvariablen des Syndicationordners und den ihnen zuzuordnenden Variablentypen in der Form [[Importdatenfeldname], [Variablentyp als Zahlwert];].
- import-el-vartypes: Angabe einer Liste von Importvariablen der Elemente des Syndicationordners und den ihnen zuzuordnenden Variablentypen in der Form [[Importdatenfeldname], [Variablentyp als Zahlwert];]
- merge-into: Angabe der ID eines Ordners, in welchen die zu importiernden Daten eingefügt werden sollen. Dabei werden bereits in dem Ordner befindliche Daten und Elemente mit zu importierenden Daten und Elementen gemischt.
- unique-session: Angabe der alphanumerischen Sitzungs-ID - die Resultate der Content-Syndication sind dann nur für diese Sitzung zugänglich
Achtung:
Beim Mischen von internen und externen Daten kann es erforderlich werden, Datenfelder der importierten Daten umzubenennen. Ist bspw. der Titel interner Neuigkeiten in der Variable „de_titel" gesichert und die zu importierenden Neuigkeiten werden über einen RDF Newsfeed bereitgestellt, dann muß das importierte Datenfeld title" in „de_titel" umbenannt werden.
- or-mapping: Liste umzubenennender Datenfeldnamen in dem Format [[[Importdatenfeldname], [VIO.Matrix Ordnervariablenname]];]
- el-mapping: Liste umzubenennender Datenfeldnamen in dem Format [[[Importdatenfeldname], [VIO.Matrix Elementevariablenname]];]
Sortieren:
- merge-sort-or-var: Angabe eines VIO.Matrix Ordnervariablennamen, nach dem die Sortierung erfolgen soll.
- merge-sort-or-type: Angabe der Sortierrichtung: „ascending" für aufsteigende (A-Z) und „descending" für absteigende (Z-A) Sortierung
- merge-sort-el-var: Angabe eines VIO.Matrix Elementevariablennamen, nach dem die Sortierung erfolgen soll.
- merge-sort-el-type: Angabe der Sortierrichtung: „ascending" für aufsteigende (A-Z) und „descending" für absteigende (Z-A) Sortierung
Beispiel 1:
Aus einer lokal auf dem Server vorhandenen mySQL-Datenbank soll der Inhalt der Spalte "farbe" aus der Tabelle "saefte" ausgelesen werden. Der entsprechende Aufruf sieht folgendermaßen aus:
<p><b>Saftfarben:</b></p>
#SYNDICATE
id="1000"
content-type="sql/mysql"
url="mysql://localhost/datenbankname"
login="Karl"
password="gustav"
sql-statement="select farbe from saefte"
#ENDSYNDICATE
#INSERT_OR_#{syndication:1000}_ELZEILE
<!-- Detaildarstellung -->
#INSERT_EL_VAR_farbe!<br />
Ergebnis im Browser:
Saftfarben:
orange
gelb
grün
Beispiel 2:
#SYNDICATE
id="1"
content-type="rss/rdf"
url="heiserdf"
#ENDSYNDICATE
#IF ( #INSERT_OR_#{syndication:1}_ELANZAHL > 0 )
Im Heise-Newsticker wurden #INSERT_OR_#{syndication:1}_ELANZAHL gefunden:<br />
<menu>
#INSERT_OR_#{syndication:1}_ELZEILE
</menu>
#ELSE
Im Heise-Newsticker sind gerade keine Meldungen oder es trat ein Fehler auf!
#ENDIF
<!-- Detaildarstellung -->
<li>
<a href="#INSERT_SP_CGI?kd=#INSERT_KD_ID&synel=#INSERT_EL_ID&or=#INSERT_OR_ID">#INSERT_EL_VAR_title!</a><br />#INSERT_EL_VAR_description!
</li>
Ergebnis im Browser:
Im Heise-Newsticker wurden 2 gefunden:
...