Zur Erzeugung von News-Feeds dienen im CMS die folgenden Funktionen:
In den Systemeinstellungen können Channels definiert werden.
Channels dienen dazu, Nachrichten thematisch zu gruppieren, also Dateien
in Bezug auf deren Inhalte zu kategorisieren – ähnlich wie ein
benutzerdefiniertes Feld Warengruppe
eine Datei bezüglich
der in den Inhalten beschriebenen Produkte kategorisieren würde. Die
Channel-Einstellungen sind mit dem Content Navigator über das Menü
Extras > Systemeinstellungen zu
erreichen.
Die Versionen von Dateien des Typs Ordner und
Dokument haben das fest eingebaute Feld channels
.
Das Feld channels
ist vom Typ Mehrfachauswahl, und
man kann es daher mit beliebig vielen der konfigurierten Channels
belegen. Auf diese Weise lassen sich Inhalte und eine Auswahl von
Channels einander zuordnen.
Dateivorlagen haben das Feld canCreateNewsItem
(als
News auf dem Live-Server bereitstellen). Ist dieses Feld bei einer
Vorlage aktiviert, so werden Dateien mit dieser Vorlage bei der Freigabe
in eine interne Newsliste aufgenommen, sofern das
channels
-Feld der freigegebenen Version nicht leer ist
(dieses Feld also mindestens einen Channel enthält).
Es können Listen von News erzeugt werden, die sich in beliebig
festlegbaren Channels befinden. Hierfür stehen eine NPSOBJ-Anweisung und
ein Tcl-Befehl zur Verfügung. Die NPSOBJ-Anweisung liefert analog zur
toclist
-Anweisung eine Kontextliste, so dass die Felder der
Version ausgelesen werden können. Der Tcl-Befehl lautet news
.
Zur Erzeugung von Newslisten in Layouts kann die
NPSOBJ-newslist
-Anweisung auf die folgenden drei Arten verwendet
werden:
Die Liste aller News in allen Channels erzeugen:
<npsobj newslist="all" length="20"> Für jede News evaluierter Text </npsobj>
Die Liste der News erzeugen, die mindestens einem Channel zugeordnet sind, die als Wert in einem Feld des aktuellen Dokuments enthalten sind:
<npsobj newslist="selected" name="Channel-Feld" length="20"> Für jede News der indirekt angegebenen Channels evaluierter Text </npsobj>
Das Feld muss einen der Typen Zeichenkette,
Text, Auswahl oder
Mehrfachauswahl haben. Bei den Typen
Zeichenkette und Text müssen die Werte
kommasepariert angegeben sein. Bei Feldern vom Typ
Auswahl
oder Mehrfachauswahl werden
die Werte des Feldes so wie sie sind als Channels
verwendet.
Die Liste der News erzeugen, die direkt angegebenen Channels zugeordnet sind:
<npsobj newslist="selected" value="ch1, ch2, ..." length="20"> Für jede News der direkt angegebenen Channels evaluierter Text </npsobj>
Auch wenn eine News mehr als einem der direkt oder indirekt angegebenen Channels zugeordnet ist, ist sie höchstens einmal in der generierten Newsliste enthalten.
Erzeugte Newslisten enthalten nur News, deren Erscheinungsdatum zum
Zeitpunkt des Exports in der Vergangenheit liegt. Intern enthält die
Newsliste natürlich alle Dateien, denen ein Channel zugewiesen wurde und
deren Vorlage über das Feld canCreateNewsItem
die Bereitstellung
der Datei als News vorsieht. Das Erscheinungsdatum entspricht initial dem
Anlegezeitpunkt der Newsdatei, der bei Bedarf über das Gültig-ab-Feld der
Arbeitsversion beeinflusst werden kann.
Ein versehentlich freigegebener Newsartikel kann daher aus der generierten
Newsliste entfernt werden, indem ihr Erscheinungsdatum in die Zukunft verlegt
wird. In der internen Newsliste bleibt sie jedoch erhalten, sofern die
News-Datei nicht gelöscht oder ihr Channels-Feld nicht geleert wird. Eine
Datei wird auch aus der internen Newsliste entfernt, wenn die Channels, denen
die News zugeordnet ist, aus der Systemkonfiguration gelöscht werden. Der
Wert des channels
-Feldes der Versionen wird dadurch jedoch nicht
beeinflusst, kann danach also Namen nicht existenter Channels enthalten.
Newsartikel, die nicht existierenden Channels zugewiesen sind, werden nicht
wieder in die Newsliste eingetragen, wenn ein fehlender Channel wieder
angelegt wird.
Wenn die Template Engine eingesetzt wird, werden alle Dateien, die eine
NPSOBJ-newslist
-Anweisung enthalten, bei jeder Änderung an
Dateien und an der Channel-Konfiguration neu exportiert, damit die erzeugten
Newslisten stets aktuell sind. (Die Dateien erhalten eine
usesAll
-Abhängigkeit.
Die Liste der 10 neuesten News erzeugen
Den Channel sitenews
anlegen.
Die Dateivorlage newsitem
anlegen und darin
canCreateNewsItems
(Auf dem Live-Server als News
bereitstellen) aktivieren.
An beliebiger Stelle in der Ordnerhierarchie eine Datei
news1
mit der Vorlage newsitem
anlegen.
In das Layout der Startseite etwa Folgendes einfügen:
<ul> <npsobj newslist="all" lenght="10"> <li> <npsobj insertvalue="anchor" destination="self"> <npsobj insertvalue="var" name="title" /> </npsobj> </npsobj> </ul>
Einen RSS-Feed für Politik-News einrichten
Den Channel politics
anlegen;
Die Dateivorlage newsitem
anlegen und darin
canCreateNewsItems
(Auf dem Live-Server als News
bereitstellen) aktivieren.
Das Feld description
und die Dateivorlage
feed
anlegen und zu dieser description
hinzufügen. canCreateNewsItems
nicht aktivieren.
Den Ordner rssfeeds
anlegen.
Darin ein Basislayout anlegen, das einen RSS-Feed ausgibt (s.u.).
In dem gleichen Ordner die Datei politicsfeed
mit
der Vorlage feed
anlegen und in die description
"Neues aus der Firmenpolitik" eingeben. Als Channels
politics
auswählen.
Dem Basislayout den folgenden Haupttext geben:
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS 0.92//EN" "http://my.netscape.com/publish/formats/rss-0.92.dtd"> <rss version="0.92"> <channel> <description> <npsobj insertvalue="var" name="description" /> </description> <language>de</language> <title><npsobj insertvalue="var" name="title" /></title> <link>http://www.mysite.com/</link> <copyright>(c) JustRelate Group GmbH</copyright> <generator>CMS Fiona 6.0</generator> <ttl>60</ttl> <npsobj newslist="selected" name="channels" length="20"> <item> <title><npsobj insertvalue="var" name="title"/></title> <link>http://www.mysite.de<npsobj insertvalue="var" name="visiblePath" /> </link> <description> <npsobj insertvalue="var" name="description"/> </description> </item> </npsobj> </channel> </rss>
Für eine RSS-Datei in einer anderen Version (beispielsweise 2.0) kann die Layoutdatei entsprechend angepasst werden.
Um einen weiteren Feed mit Sportnachrichten mit der obigen Layoutdatei zu generieren:
sports
einrichten.rssfeeds
die Datei
sportsfeed
mit der Vorlage feed
anlegen und
in dessen Feld description
"Neues aus dem Sport" eingeben.
Als Channels sports
auswählen.newsitem
anlegen und
als Channel sports
auswählen. Sie erscheinen im
Sports-Newsfeed.Einen Newsletter versenden
newsletters
anlegen.newsletter
anlegen.newsletters
die Datei
politics
mit dem Format newsletters
anlegen.politics
die Email-Adressen
mit einer Adresse pro Zeile eintragen.exportBlob
von politics
an jede Email-Adresse im Haupttext von politics
verschickt.