Handbuch für den Benutzer
Version 1.0, März 2003
Inhaltsverzeichnis
1. Einleitung
1.1 Zielgruppe
1.2 Glossar
2. Technische Vorraussetzungen
2.1 Vorraussetzungen für den Einsatz der Beispielprogramme
2.1.1 PHP
2.1.2 Perl
3. Das Web-Interface
3.1 Allgemeines
3.2 Bedeutung der Elemente
3.2.1 Kategorie
3.2.2 Anzahl der Schlagzeilen
3.2.3 Titel
3.2.4 Titelhintergrund
3.2.5 Text
3.2.6 Hintergrund
3.2.7 Neuer Link
3.2.8 Hover Link
3.2.9 Besuchter Link
3.2.10 Tabellenrand
3.2.11 Stärke Tabellenrandes
3.2.12 Textausrichtung
3.2.13 Sprachen
4. Die Schnittstellen
4.1 Grundlagen
4.2 Daten anfordern
4.2.1 Datenanforderung über eine URL
4.2.2 Datenanforderung über ein SOAP-Interface
4.2.2.1. PHP
4.2.2.2. Perl
4.3 Daten verarbeiten
4.3.1 Das XML-Format
4.3.2 Das RDF-Format
4.4 Das nightloop-Tool für Perl und PHP
4.4.1 Perl
4.4.2 PHP
5. Glossar
1. Einleitung
1.1 Zielgruppe
Diese Handbuch wendet sich Betreiber einer Web-Präsenz, die Teile der Schlagzeilen von nightloop.de in das eigene Angebot übernehmen wollen. Es wendet sich sowohl an erfahrene Programmierer als auch an Webbetreiber mit geringeren Kenntnissen über die Programmeirung dynamischer Webseiten.
1.2 Glossar
Die wichtigsten Abkürzungen und Begriffe werden am Schluss dieses Handbuchs in einem Glossar erläutert. Verweise auf dieses Glossar werden im Text mit „“ gekennzeichnet.
2. Technische Vorraussetzungen
Das nightloop.de-Interface ist weitestgehend programmiersprachen-unabhängig und kann mit jeder Programmiersprache genutzt werden, die HTTP und/oder SOAP unterstützt. Die HTTP-Unterstützung ist in den meisten Programmiersprachen bereits implementiert, die SOAP-Unterstützung wird, wenn nicht vorhanden, häufig von externen Bibliotheken zur Verfügung gestellt.
Soll eines der mitgelieferten Beispiele genutzt werden, so muss Ihr Webserver entweder PHP ab der Version 4.3.0 mit DOM-Unterstützung oder Perl ab der Version 5.8.0 unterstützen. Sie müssen außerdem die Berechtigung besitzen, auf Ihrem Webserver Skripte ausführen zu dürfen.
Sollten Sie sich nicht sicher sein, ob diese Vorraussetzungen auf Ihrem Server gegeben sind, so wenden Sie sich bitte an Ihren Administrator oder Provider.
2.1 Vorraussetzungen für den Einsatz der Beispielprogramme
Die eingesetzten Softwareprodukte sollten mindestens in den angebenenn Versionsnummern installiert sein.
2.1.1 PHP
- PHP v4.3.0
- DOM/XML mit libxml v2.4.30
- Expat 1.95.2
2.1.2 Perl
- LWP
- XML::Parser v2.31
- XML::XPath v1.13
- Encode v1.86
- SOAP::Lite v0.55
3. Das Web-Interface
3.1 Allgemeines
Auch wenn Sie sich nicht in die Tiefen von PHP, Perl und HTML begeben wollen, ist es Ihnen möglich, die Schlagzeilen von nightloop.de in Ihre Web.Präsenz zu integrieren.
Mit Hilfe der webbasierten Benutzerschnittstelle können Sie alle notwendigen Parameter für eine individuelle Darstellung des nightloop.Panels einstellen.
Die Farben können direkt eingegeben werden (z.B. „#000000“ oder „black“) oder aber aus einem Menü („Color Chooser“) ausgewählt werden. Dazu müssen Sie hinter dem gewünschten Element auf den Knopf „Farben“ drücken. Daraufhin öffnet sich ein weiteres Fenster, das Ihnen eine Auswahl der Farben anbietet. Klicken Sie auf einer dieser Farben so schließt sich das fenster, der Wert der Farbe wird in das entsprechende Feld eingetragen und die Beispieltabelle auf der rechten Seite passt sich den neuen Parametern an.
3.2 Bedeutung der Elemente
3.2.1 Kategorie
Die anzuzeigende Kategorie. Es kann nur eine Kategorie ausgewählt werden.
3.2.2 Anzahl der Schlagzeilen
Anzahl der höchstens dargestellten Schlagzeilen. Die Schlagzeilen werden in absteigender chronologischer Reihenfolge dargestellt.
3.2.3 Titel
Farbe der Titelzeile („nightloop.de“). Diese Farbe sollte sich gut vom Hintergrund abheben.
3.2.4 Titelhintergrund
Farbe des Hintergrundes der Titelzeie. Diese Farbe sollte sich vom der Farbe der Titelzeile abheben.
3.2.5 Text
Farbe des Textes der Schlagzeilen. Diese Farbe sollte sich gut vom Hintergrund abheben.
3.2.6 Hintergrund
Farbe des Hintergrundes der Schlagzeile. Diese Farbe sollte sich gut vom Text abheben.
3.2.7 Neuer Link
Farbe eines Links, der vom Benutzer noch nicht angewählt wurde.
3.2.8 Hover Link
Farbe des Links, den der Benutzer momentan anwählt.
3.2.9 Besuchter Link
Farbe eines Links, den der Benutzer bereits angewählt hat.
3.2.10 Tabellenrand
Farbe des Tabellenrandes.
3.2.11 Stärke Tabellenrandes
Stärke des Tabellenrandes in Pixel. Der Tabellenrand umschließt die gesamte Tabelle und unterteilt die Schlagzeilen.
3.2.12 Textausrichtung
Der Text der Schlagzeilen kann linksbündig, rechtsbündig oder zentriert ausgerichtet werden.
3.2.13 Sprachen
Programmiersprache, für die das Programmskript erstellt werden soll. Zur Zeit stehen die Sprachen PHP und Perl zur Verfügung.
4. Die Schnittstellen
4.1 Grundlagen
Die Schlagzeilen von nightloop.de können auf verschiedene Weise überrtagen werden. Die Daten können entweder über eine URL vom Server abgefragt werden, oder es kann ein SOAP-Interface genutzt werden. Die Rückgabe der Daten erfolgt im XML- oder RDF Format. Das RSS-Format wird noch nicht unterstützt.
Welches Format soll ich benutzen?
Wenn Sie einen Client speziell für nightloop.de schreiben, ist das XML-Format einfacher zu implementieren. Soll der Client allerdings auch für andere Datenquellen genutzt werden, so ist das RDF-Format flexibler.
4.2 Daten anfordern
Bei beiden Arten der Datenanforderung über eine URL oder SOAP werden die gleichen Parameter zur Definition der gewünschten Daten benutzt. Es stehen foglende Parameter zur Verfügung:
cat (Defaultwert: keiner)
Dieser Parameter bestimmt die Kategorie, aus der die Schlagzeilen ausgewählt werden. Es muss genau eine Kategorie angegeben werden, bei der Angabe mehrerer Kategorien wird nur die erste Angabe ausgewertet. Das Fehlen dieses Parameters erzeugt eine Fehlermeldung.
items (Defaultwert: 10)
Dieser Parameter bestimmt die Anzahl der zu übertragenden Schlagzeilen. Sind weniger Schlagzeilen als angefordert vorhande, so werden ohne Fehlermeldung alle vorhandenen Schlagzeilen übertragen. Wird kein Wert angegeben, so werden maximal zehn Schlagzeilen übertragen. Die Angabe eines Wertes kleiner Null oder eines nicht-numerischen Wertes erzeugt keine Fehlermeldung.
format (Defaultwert: XML)
Dieser Parameter bestimmt das Format, mit dem die Daten übertragen werden. Wird kein Wert oder ein anderer Wert als „RDF“ übergeben, so werden die Daten im ⇒ proprietärem XML-Format übertragen. Das Format der Daten wird in Kapitel XXX und XXX erläutert.
4.2.1 Datenanforderung über eine URL
Die Daten können über die URL „http://www.nightloop.de/backend.php“ mit Angabe der gewünschten Parameter vom Server angefordert werden. Die Parameter werden von der Adress durch eine Fragezeichen getrennt, die einzelnen Parameter untereinander wiederum durch ein „&“ („Ampersand“, „Kaufmanns-Und“).
Im folgenden Beispiel werden aus der Kategorie „magazin_stars“ elf Schlagzeilen im RDF-Format angefordert:
http://www.nightloop.de/backend.php?cat=magazin_stars&items=11&format=rdf
Die Groß- und Kleinschreibung und die Reihenfolge der Parameter ist nicht relevant. Wird diese Zeile aus einem Programm oder einem Browser an den Server geschickt, sendet dieser ein XML/RDF-Dokument mit den angeforderten Daten zurück.
Diese Art der Datenanforderung ist sprachenunabhängig und kann mit jeder mordernenProgrammeirsprache verwendet werden.
4.2.2 Datenanforderung über ein SOAP-Interface
Die Datenanforderung über ein SOAP-Interface unterscheidet sich bei den verschiedenen prorammiersprachen stark. Aus diesem Grund wird in diesem Handbuch beispielhaft für die Sprachen PHP und Perl vorgestellt.
4.2.2.1. PHP
Für die Programmierung eines SOAP-Interfaces für PHP gibt es eine Reiher verschiedener Bibliotheken. Eine einfache, objektorientierte Variante ist „nusoap“ („http://dietrich.ganx4.com/nusoap“). Im folgenden Beispiel werden aus der Kategorie „magazin_stars“ zehn Schlagzeilen im RDF-Format angefordert.
# URL des Nightloop-SOAP-Backends.
$url = "http://www.nightloop.de/backend_soap.php";
# Wir brauchen das SOAP-Modul
require_once("include/nusoap.php");
# einen neuen Client erzeugen und mit dem SOAP-backend verbinden.
$soap_client = new soapclient($url);
# Die notwendigen Parameter erstellen
$parameters = array("cat"=>“magazin_stars“, "items"=>10);
# Den SOAP-Server abfragen und den XML-String zurueckgeben.
$xml $soap_client->call('backend', $parameters);
- Erläuterungen:
- Zeile 2:
Die Variable $url beinhaltet die Internetadresse des Programms, das für die Erstellung des XML-Dokuments über SOAP zuständig ist. - Zeile 5:
Das nusoap-Modul wird in das Programm eingebunden. - Zeile 8:
Es wird ein neues SOAP-Client-Objekt erzeugt. - Zeile 11:
In der Variablen $parameters werden die Parameter angegeben, die an den Server übertragen weredn sollen. Der Parameter format wurde nicht angegeben, so das der Server maximal zehn Schlagzeile zurückgeben wird. - Zeile 14:
Die Anfrage wird mit den vorher definierten parametern an den Server übergeben. Gleichzeitig wird die Rückgabe des Servers in der Variablen $xml gespeichert und kann anschließend weiterverarbeitet werden.
4.2.2.2. Perl
Für Perl gibt es verschiedene Implementierungen für des SOAP-Protokolls. Die am häufigsten verwendete und am einfachsten einzusetzende Bibliothek ist „SOAP::Lite“, die unter anderem über das CPAN-Netzwerk zu beziehen ist (http://cpan.org“).
Im folgenden Beispiel werden aus der Kategorie „magazin_stars“ elf Schlagzeilen im XML-Format angefordert.
use SOAP::Lite; # Das notwendige SOAP-Modul einbinden.
# URI des SOAP-Backend-Skriptes
$url = "http://www.nightloop.de/backend_soap.php";
# Das SOAP-Modul mit den entprechenden Parametern aufrufen und das
# XML Dokument als String an den Aufrufer zurueckgeben.
$xml = SOAP::Lite
-> uri('http://nightloop.de/Backend/')
-> proxy($url)
-> backend('magazin_stars', 11)
-> result;
Erläuterungen:
- Zeile 1:
Das SOAP::Lite-Modul wird in das Programm eingebunden. - Zeile 4:
Die Variable $url beinhaltet die Internetadresse des Programms, das für die Erstellung des XML-Dokuments über SOAP zuständig ist. - Zeile 8 bis 12:
Dem SOAP::Lite-Objekt werden die Parameter übergeben und es übergibt die SOAP-Anforderung an den Server. Gleichzeitig wird die Rückgabe des Servers in der Variablen $xml gespeichert und kann anschließend weiterverarbeitet werden.
4.3 Daten verarbeiten
4.3.1 Das XML-Format
Das XML-Format hat folgende Struktur:
Darstellung als Quellcode (variable Werte sind als „…“ angegeben):
http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/">
http://www.nightloop.de">
nightloop.de
http://www.nightloop.de/
die party community des nordwest-net
de-DE
2003-04-02T10:29:27+01:00
Lutz Schroeer (Lutz.Schroeer@team.nwn.de)
nordwest.net GmbH & CO. KG, 26122 Oldenburg, Germany
World Wide Web Home Page
-
...
...
...
-
...
...
Die Elemente unterhalb des
- <title>
Der Titel des Nachrichtenkanals. - <link>
Der Link zur Website des Nachrichtenanbieters. - <descripion>
Eine kurze Beschreibung des Inhalts des Nachrichtenkanals. - <language>
Die Sprache, in der die Nachrichten verfasst sind (nach ISO 639). - <creator>
Der Ansprechpartner. - <rights>
Urheberrechtsinhaber des angebotenen Materials. - <image>
Ein Link, der auf ein Logo des Anbieters verweist. - <item>
Elternelement für die Schlagzeilen.
Die Elemente unterhalb des
Titel der Schlagzeile. Link zum entsprechenden Webangebot von nightloop.de.
Anreißer für die Schlagzeile.
Das XML-Dokument ist mit UTF-8 kodiert. Wie es vom XML-Standard in Kapitel 4.3.3 gefordert wird.
4.3.2 Das RDF-Format
Das RDF-Format hat folgende Struktur:
Darstellung als Quellcode (variable Werte sind als „…“ angegeben):
<?xml version=”1.0″ encoding=”utf-8″?<>
<rdf:RDF xmlns:rdf=”<a class=”linkificator-ext” href=”http://www.w3.org/1999/02/22-rdf-syntax-ns#” title=”Linkificator: http://www.w3.org/1999/02/22-rdf-syntax-ns#”>http://www.w3.org/1999/02/22-rdf-syntax-ns#</a>” xmlns:dc=”<a class=”linkificator-ext” href=”http://purl.org/dc/elements/1.1/” title=”Linkificator: http://purl.org/dc/elements/1.1/”>http://purl.org/dc/elements/1.1/</a>”>
<channel rdf:about=”<a class=”linkificator-ext” href=”http://www.nightloop.de” title=”Linkificator: http://www.nightloop.de”>http://www.nightloop.de</a>”>
<dc:title>nightloop.de</dc:title>
<dc:link><a class=”linkificator-ext” href=”http://www.nightloop.de” title=”Linkificator: http://www.nightloop.de”>http://www.nightloop.de</a>/</dc:link>
<dc:description>die party community des nordwest-net</dc:description>
<dc:language>de-DE</dc:language>
<dc:date>2003-04-02T10:29:27+01:00</dc:date>
<dc:creator>Lutz Schroeer (<a class=”linkificator-ext” href=”mailto:Lutz.Schroeer@team.nwn.de” title=”Linkificator: mailto:Lutz.Schroeer@team.nwn.de”>Lutz.Schroeer@team.nwn.de</a>)</dc:creator>
<dc:publisher>nordwest.net GmbH & CO. KG, 26122 Oldenburg, Germany</dc:publisher>
<dc:type>World Wide Web Home Page</dc:type>
<items>
<rdf:Seq>
<rdf:li rdf:resource=”…”/>
<rdf:li rdf:resource=”…”/>
</rdf:Seq>
<item>
<title>…</title>
<link>…</link>
<description>…</description>
</item>
<item>
…
</item>
…
<items>
</channel>
</rdf:RDF>
Die Elemente entsprechem dem Namsraum, der unt „http://purl.org/dc/elements/1.1/“ definiert ist. Das RDF-Format ist wie das XML-Format mit UTF-8 kodiert, um Umlaute, Ligature u.ä. Zu ermöglichen.
Die Elemente entsprechen dem Vorschlag der „Dublin Core Metadata Initiative“, einem weit verbreitetem Format für Content-Syndication im Internet.
4.4 Das nightloop-Tool für Perl und PHP
Für die Programmeirsprachen Perl und PHP existieren Tools, die das XML-Format in zwei assoziative Felder (Hash-Arrays) kopieren, die sich anschließend mit programmierspracheneigenen Mitteln verarbeiten lassen.
4.4.1 Perl
Das Perl-Tool nightloop.pm beinhaltet eine Funktion zur Konvertierung der XML-daten in ein assoziatives Feld. Das Tool wird wie folgt aufgerufen (Beispiel):
($channeldata, $items) = nightloop::getNightloop( channel => ‘magazin_stars’,
protocol => ‘SOAP’,
items => 2
);
4.4.2 PHP
Die Dateien include/inc_client_hhtp.php und include/inc_client_soap.php enthalten eine Funktion zur Konvertierung des XML-Formats in zwei assoziative Felder. Das Tool wird folgendermaßen aufgerufen:
list($channel_data, $schlagzeilen) = getNightloop(“magazin_stars”, 10);
5. Glossar
DOM
HTTP
proprietär
RDF
RSS
SOAP
URL
UTF-8
UTF-8 (Abk. für 8-bit Unicode Transformation Format) ist ein Kodierung für Unicode-Zeichen; dabei besteht der Code aus Byte-Ketten von variabler Länge. UTF-8 ist gegenwärtig als RFC 2279 standardisiert (UTF-8, a transformation format of ISO 10646). Hat ein Byte in UTF-8 einen Wert zwischen 0 und 127, so entspricht es exakt dem ASCII-Zeichen mit demselben Wert. In allen anderen Fällen sind mehr Bytes erforderlich.
XML