Funktionen zur Erzeugung von News-Feeds
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
Warengruppeeine 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 Feldchannelsist 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 daschannels-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 lautetnews.
Verwendung der NPSOBJ-newslist-Anweisung
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
Auswahloder 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.
Beispiele
Die Liste der 10 neuesten News erzeugen
Den Channel
sitenewsanlegen.Die Dateivorlage
newsitemanlegen und darincanCreateNewsItems(Auf dem Live-Server als News bereitstellen) aktivieren.An beliebiger Stelle in der Ordnerhierarchie eine Datei
news1mit der Vorlagenewsitemanlegen.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
politicsanlegen;Die Dateivorlage
newsitemanlegen und darincanCreateNewsItems(Auf dem Live-Server als News bereitstellen) aktivieren.Das Feld
descriptionund die Dateivorlagefeedanlegen und zu dieserdescriptionhinzufügen.canCreateNewsItemsnicht aktivieren.Den Ordner
rssfeedsanlegen.Darin ein Basislayout anlegen, das einen RSS-Feed ausgibt (s.u.).
In dem gleichen Ordner die Datei
politicsfeedmit der Vorlagefeedanlegen und in diedescription"Neues aus der Firmenpolitik" eingeben. Als Channelspoliticsauswählen.Dem Basislayout den folgenden Haupttext geben:
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS 0.92//EN" "https://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>https://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>https://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:
- Den Channel
sportseinrichten. - Im Ordner
rssfeedsdie Dateisportsfeedmit der Vorlagefeedanlegen und in dessen Felddescription"Neues aus dem Sport" eingeben. Als Channelssportsauswählen. - Jetzt Dateien mit dem Format
newsitemanlegen und als Channelsportsauswählen. Sie erscheinen im Sports-Newsfeed.
Einen Newsletter versenden
- Den Ordner
newslettersanlegen. - Ein Basislayout schreiben, die den Inhalt des Newsletters erzeugt, indem sie beispielsweise Felder aus entsprechenden Dateien ausliest.
- Das Dateiformat
newsletteranlegen. - Im Ordner
newslettersdie Dateipoliticsmit dem Formatnewslettersanlegen. - In den Hauptinhalt von
politicsdie Email-Adressen mit einer Adresse pro Zeile eintragen. - Einen Assistenten
schreiben, der das Feld
exportBlobvonpoliticsan jede Email-Adresse im Haupttext vonpoliticsverschickt.