Anzeige
Anzeige
UX & Design
Artikel merken

Single-Source-Publishing mit Open Source: Alfresco-Kopplung an TYPO3

Als bei den Berliner Philharmonikern die Integration einer Dokumentenlösung sowie ein Relaunch des Internetauftritts anstanden, wurden große Überschneidungen bei den zu verwaltenden Inhalten festgestellt. Um diese nicht länger mehrfach pflegen zu müssen, fiel die Entscheidung für eine Single-Source-Publishing-Lösung auf Open-Source-Basis. Die Basis bildet dabei Alfresco als führende Content-Quelle, TYPO3 ist eines der möglichen Ausgabemedien.

6 Min. Lesezeit
Anzeige
Anzeige

Bei den Berliner Philharmonikern werden Texte im Rahmen eines aufwendigen redaktionellen Prozesses erstellt und redigiert, an dem interne und externe Personen beteiligt sind. Die Texte werden in Print-Publikationen und im Web gleichermaßen verwendet und durchlaufen mehrere Korrekturläufe. Die so geschaffenen Inhalte haben eine sehr hohe Lebensdauer und sollen auch in mehreren Jahren noch wiederverwendet werden.

Quell- und Zielmedien

Anzeige
Anzeige

Die als Quellmedien vorliegenden Texte sind zum Beispiel Magazinartikel, Biografien, Werkstexte, Gesangstexte und Pressemeldungen mit sehr unterschiedlichen Inhalten, die als „Open Documents“ abgelegt werden. Zusätzlich werden XML-Dateien für den Konzertkalender verwaltet.

Die in unterschiedlichen Formaten vorliegenden Zielmedien sollen mit der Single-Source-Publishing-Lösung für die Online-Ausgabe aufbereitet werden.

Die in unterschiedlichen Formaten vorliegenden Zielmedien sollen mit der Single-Source-Publishing-Lösung für die Online-Ausgabe aufbereitet werden.

Die Zielmedien sind entweder Print-Publikationen, zumeist erstellt mit QuarkXPress, oder Onlinemedien wie die Website der Berliner Philharmoniker [1] und die der Digital Concert Hall [2] (DCH).

Anzeige
Anzeige

Alfresco als Quelle wiederverwendbarer Inhalte

Das Dokumenten-Management-System Alfresco soll die Abteilung Kommunikation der Berliner Philharmoniker bei der Verwaltung der großen Menge von Dokumenten und Inhalten unterstützen. Um die verschiedenen Inhalte zu klassifizieren und schnell wiederzufinden, wurde eine Reihe eigener Dokumenttypen mit teilweise individuell erweiterten Metadaten definiert. Alfresco bietet hierfür hervorragende Möglichkeiten über die Erweiterung des Content-Modells. Einige konkrete Beispiele hierfür sind:

Anzeige
Anzeige
Dokumenttyp Zusätzliche Metadaten Format
concert subtitle, editor, relatedTo, concertId XML
biography subtitle, editor, relatedTo ODT
program subtitle, editor, relatedTo ODT
songtext subtitle, editor, relatedTo ODT

Da Alfresco bei der Definition eigener Dokumenttypen Vererbungsstrukturen zulässt, können allgemeingültige Metadatenerweiterungen auch über einen abstrakten Dokumenttyp generalisiert werden.

Alfresco erlaubt Metadatenerweiterungen über abstrakte Dokumenttypen.

Alfresco erlaubt Metadatenerweiterungen über abstrakte Dokumenttypen.

Zusätzlich zur Erweiterung des Content-Modells lässt die Software auch eine individuelle Aspektierung zu. Zur Steuerung der Publizierung der Dokumente in den verschiedenen Medien wurde für jedes Zielmedium ein Aspekt hinzugefügt.

Anzeige
Anzeige
Aspekt Bedeutung
dchPublishable Dokument wird für die Digital Concert Hall publiziert
websitePublishable Dokument wird für die Website publiziert

Alfresco erlaubt den Zugriff auf sein Content-Repository über REST-konforme Web­skripte, eine leichtgewichtige Alternative zu herkömmlichen Web Services. Für die hier beschriebenen Publishing-Mechanismen bietet eine Webscript-Schnittstelle den beiden Zielmedien einen komfortablen Zugriff auf die publizierten Dokumente. Dabei wurde für jedes Zielmedium (Website, DCH) ein Service mit folgender Schnittstelle definiert:

Methode Bedeutung
getDocsToPublish Liste aller uuids von Dokumenten mit dem Wert „true“ im Attribut „f4ph:Outgoing“
getDocument XML-Payload mit Dokumenteninhalt als XHTML und allen Bildern als base64-encoded Byte-Arrayset
OutgoingFalse Setzt das Attribut „f4ph:Outgoing“ des bezeichneten Dokuments auf „false“
getDocuments Liste aller uuids von Dokumenten mit dem Aspekt f4ph

Transformation von ODT in XHTML

Als Grundlage zur Erzeugung von strukturierten und transformierbaren Dokumenten wurde zunächst eine Open-Document-Vorlage erstellt. In dieser Vorlage bilden zahlreiche Absatz- und Inlinevorlagen die Bandbreite der nötigen semantischen Unterscheidungen ab. Das Open-Document bietet nicht nur den Vorteil eines Standardformats. Es legt auch Inhalt und die Style-Informationen im (gezippten) XML-Format ab – das Format ist also leicht per XSLT weiterzuverarbeiten. Alternative Formate wie Word-XML oder auch proprietäre Formate mit entsprechenden Adaptern sind aber ebenso denkbar.

Da der mitgelieferte HTML-Exporter von OpenOffice keine zufriedenstellenden Ergebnisse liefert, wurde ein eigener XHTML-Transformer erstellt. Die Transformation selbst verwendet die im ODT eingebetteten content.xml und styles.xml als Eingangsdokumente und erzeugt per XSL-Transformation ein Ziel-XHTML.

Anzeige
Anzeige
Hier fehlt eine einzeilige Bildunterschrift.

Hier fehlt eine einzeilige Bildunterschrift.

Dieses XSLT ist in einen Alfresco-Transformer integriert und steht Alfresco damit als Standard-Transformer für die Umwandlung von Dokumenten zur Verfügung. Der für den TYPO3-Export erstellte Webscript-Service nutzt die selbe Transformation, die auch über die Alfresco-GUI oder per Workflow gestartet werden kann.

Integration in TYPO3

TYPO3 legt die importierten Dokumente in einer eigenen Datenstruktur ab und speichert sie als Entität „Alfresco-Dokument“ in einer individuellen Tabelle ab. Wesentliche Meta-Daten wie die Alfresco-UID und der Dokumenttyp, aber auch der komplette und unveränderte (aus dem ODT transformierte) XHTML-Body werden dabei in eigene Spalten geschrieben. Diese Dokumentensammlung bildet für den Redakteur einen Datenpool, den er nutzen kann. Zur Anzeige auf der Website lassen sich verschiedene Inhalte – zumeist in separaten Datenstrukturen als Plugins – mit den Alfresco-Dokumenten verknüpfen.

Ein alternativer Ansatz wäre, die importierten Dokumente direkt als Pages in TYPO3 zu verwalten. Die Alfresco-UID wäre dann eine zusätzliche Seiteneigenschaft, die Unterscheidung der verschiedenen Dokumententypen im DMS ließe sich mit entsprechenden Doctypes umsetzen. Den XHTML-Body würde man TYPO3-konform direkt als Inhaltselement „HTML“ in „tt_content“ speichern. Auf diese Weise könnten Dokumente aus Alfresco komplett und unverändert im Web als Inhaltsseiten dargestellt werden. Spezielle Entitäten in TYPO3 wären so nicht erforderlich.

Anzeige
Anzeige

Import in TYPO3

Der Import von Dokumenten aus Alfresco wird regelmäßig per Cron über ein CLI-Script auf dem TYPO3-Server gestartet und erfolgt in folgenden Schritten:

  1. Aufruf der Service-Methode „getDocsToPublish“: TYPO3 erhält eine Liste mit allen neuen oder geänderten Dokumenten (f4ph:Outgoing == true) in Form von UUIDs.
  2. Für jede dieser UUIDs wird die Service-Methode „getDocument“ aufgerufen. Das Dokument wird als transformiertes XHTML ausgeliefert und von TYPO3 in die Tabelle „tx_bphalfrescointerface_document“ importiert. Nach dem Import eines jeden Dokuments wird über die Methode „setOutgoingFalse“ das Flag „f4ph:Outgoing“ gelöscht.
  3. Über den Aufruf der Methode „getDocuments“ werden nun alle Alfresco-Dokumente ermittelt, die als publizierbar markiert sind.
  4. TYPO3 iteriert über alle Datensätze in der Tabelle „tx_bphalfrescointerface_document“. Für jeden Datensatz wird geprüft, ob dieser noch in Alfresco vorhanden und als publizierbar markiert ist. Ist der Datensatz nicht in der Liste der Alfresco-Dokumente vorhanden, so wird er aus „tx_bphalfrescointerface_document“ gelöscht.

Import in die Digital Concert Hall

Als zweites Zielmedium im Web wird die Digital Concert Hall mit Inhalten aus Alfresco bedient. Diese wurde mit Flash im Frontend und Drupal im Backend umgesetzt. Für Flash reicht in diesem Fall die XHTML-Datei nicht aus, es wird ein strikter aufgebautes XML benötigt. Der Transformer erzeugt das entsprechende Format für die DCH und stellt dieses über die Webscripts zur Verfügung. Damit besteht in Alfresco ein separater Aspekt, um medienspezifisch publizieren zu können. Zur einfachen Abgrenzung der Systeme erfolgt das Abholen der Dokumente ähnlich wie bei TYPO3 über ein Skript, das per Cron angestoßen wird. Allerdings werden hier die XML-Dateien in einer spezifischen Ordnerstruktur abgelegt. Der Import erfolgt durch Drupal aus dem Filesystem.

Fazit

Nach der Umsetzung steht der Kommunikationsabteilung Alfresco als ein JSR-170-konformes Content-Repository für redaktionelle Inhalte zur Verfügung, das als Basis für eine leistungsfähige Single-Source-Publishing-Architektur dient. Die Integration heterogener Systeme wie Alfresco, TYPO3 und Drupal vervollständigt das System zu einer Multi-Channel-Publishing-Lösung.

Anzeige
Anzeige

Ausbaumöglichkeiten ergeben sich vor allem durch die Integration weiterer Zielmedien sowie die Einbeziehung weiterer Abteilungen und Inhalte. Die mediengerechte Aufbereitung beziehungsweise Transformation der Quelldokumente soll im nächsten Schritt für die Print-Publikationen erfolgen. Dabei ist eine Transformation in ein QuarkXPress-optimiertes XML geplant.

Zudem wird die Verknüpfung der Textdokumente mit Bildern aus einer externen Bilddatenbank angedacht. So sollen in speziellen Kommentaren oder Verlinkungen die Bilder per URL oder ID in OpenOffice verknüpt werden, sodass bei der Transformation in die Zielmedien auch die Bilder zu den Texten automatisch mitgeliefert werden können.

Mehr zu diesem Thema
Fast fertig!

Bitte klicke auf den Link in der Bestätigungsmail, um deine Anmeldung abzuschließen.

Du willst noch weitere Infos zum Newsletter? Jetzt mehr erfahren

Anzeige
Anzeige
Schreib den ersten Kommentar!
Bitte beachte unsere Community-Richtlinien

Wir freuen uns über kontroverse Diskussionen, die gerne auch mal hitzig geführt werden dürfen. Beleidigende, grob anstößige, rassistische und strafrechtlich relevante Äußerungen und Beiträge tolerieren wir nicht. Bitte achte darauf, dass du keine Texte veröffentlichst, für die du keine ausdrückliche Erlaubnis des Urhebers hast. Ebenfalls nicht erlaubt ist der Missbrauch der Webangebote unter t3n.de als Werbeplattform. Die Nennung von Produktnamen, Herstellern, Dienstleistern und Websites ist nur dann zulässig, wenn damit nicht vorrangig der Zweck der Werbung verfolgt wird. Wir behalten uns vor, Beiträge, die diese Regeln verletzen, zu löschen und Accounts zeitweilig oder auf Dauer zu sperren.

Trotz all dieser notwendigen Regeln: Diskutiere kontrovers, sage anderen deine Meinung, trage mit weiterführenden Informationen zum Wissensaustausch bei, aber bleibe dabei fair und respektiere die Meinung anderer. Wir wünschen Dir viel Spaß mit den Webangeboten von t3n und freuen uns auf spannende Beiträge.

Dein t3n-Team

Melde dich mit deinem t3n Account an oder fülle die unteren Felder aus.

Bitte schalte deinen Adblocker für t3n.de aus!
Hallo und herzlich willkommen bei t3n!

Bitte schalte deinen Adblocker für t3n.de aus, um diesen Artikel zu lesen.

Wir sind ein unabhängiger Publisher mit einem Team von mehr als 75 fantastischen Menschen, aber ohne riesigen Konzern im Rücken. Banner und ähnliche Werbemittel sind für unsere Finanzierung sehr wichtig.

Schon jetzt und im Namen der gesamten t3n-Crew: vielen Dank für deine Unterstützung! 🙌

Deine t3n-Crew

Anleitung zur Deaktivierung
Artikel merken

Bitte melde dich an, um diesen Artikel in deiner persönlichen Merkliste auf t3n zu speichern.

Jetzt registrieren und merken

Du hast schon einen t3n-Account? Hier anmelden

oder
Auf Mastodon teilen

Gib die URL deiner Mastodon-Instanz ein, um den Artikel zu teilen.

Anzeige
Anzeige