XSL / XSLT als Templatesystem

Bekanntlich setzt das papaya CMS bereits seit Version 1 (um 2000) auf XSL / XSLT als Templatesystem. Auch wenn der Standard schon viele Jahre besteht und z.B. im professionellen Umfeld (große Softwareprojekte, insbesondere im Java Bereich) eine große Wertschätzung und Verbreitung genießt, so ist die Wahrnehmung bei vielen PHP Entwicklern leider noch anders. Und das obwohl XSL / XSLT ein offener Standard ist, der die vielbeschworene Trennung von Logik, Inhalt und Layout sauber implementiert und der nicht zuletzt beliebige Ausgabeformate (HTML, XML, PDF u.v.m.) ermöglicht.

Umso erfreulicher ist es immer, wenn die mannigfaltigen Vorteile gegenüber proprietären Script- und Templatesprachen die Runde machen – wie aktuell in einem lesenswerten Beitrag von phpmonkeys.de.

Fazit der Autoren:

Der Vorteil von XSL ist, dass man dieses Verfahren mit jeder Programmiersprache einsetzen kann, die einen XSLTProzessor mitbringt. Und dabei können Template- und Layout-Dateien ohne Aufwand migriert werden. Man benötigt nur eine ähnliche Implementierung wie der HTMLGenerator und Logik, die die XML-Daten generiert.

…das völlig korrekt – neben weiteren Vorteilen:

  • offener Standard des W3C, keine proprietäre Lösung
  • in die Einarbeitung investierte Zeit ist nicht auf ein Produkt begrenzt, sondern kann in verschiedenen Projekten angewandt werden
  • hervorragend dokumentierter Standard, viel Literatur verfügbar
  • hohe Verbreitung in der Java-Welt
  • mächtiges Werkzeug/Programmiersprache
  • gut nutzbar für Internationalisierung der Ausgabe
  • und viele, viele mehr… 😉

Kurzmitteilung: Import von OpenOffice Dokumenten in das papaya CMS

Mein Arbeitskollege Martin hat ein papaya Modul entwickelt, mit dem sich OpenOffice Dokumente in das papaya CMS importieren lassen. Das Modul steht (neben anderen papaya Plugins wie einem Gästebuch und einer Google Maps API) im Downloadbereich seiner Website frei zur Verfügung)

Max hat dazu in seinem Blog eine hervorragende Einführung veröffentlicht, auf die hiermit verwiesen sei.

Als „Appetizer“ hier die ersten zwei Absätze 😉

Mit dem von Martin Kelm entwickelten Importmodul für das Oasis-Dokumentenformat kann man OpenOffice-Dokumente in papaya CMS importieren. Dies ist möglich, da der Inhalt eines OpenOffice-Dokuments intern als XML-Datei vorliegt. Durch ein XSLT-Stylesheet lässt sich das OpenOffice-Format in ein durch papaya CMS lesbares Importformat umwandeln.

Papaya CMS bietet eine entsprechende API-Schnittstelle für Importfilter an, sodass man sich als Programmierer allein auf die Umwandlung des Dokumentenformats konzentrieren kann.

Geo Maps (Google Maps) und das papaya CMS

Mein Arbeitskollege Martin hat seine Präsentation zur Nutzung von Geo Maps (also Google Maps, Yahoo Maps etc.) mit dem entsprechenden papaya Modul / Plugin bei Slideshare eingestellt. Ursprünglich gehalten wurde die Präsentation bei einem Treffen der PHPUG (PHP User Group) in Köln.

Sicherung der Codequalität mit SVN Hooks

Wir haben bei papaya mit dem Wachstum des Entwicklerteams das Problem gehabt, dass Coding Standards (unsere sind in enger Anlehnung an die PEAR Coding Standards entstanden) nicht immer von allen Kollegen exakt 1:1 eingehalten wurden. Manchmal übersah ein Mitarbeiter etwas, manchmal machte seine individuelle Entwicklungsumgebung (bei uns viel Eclipse, ein wenige VIM und anderes) die Einrückungen etwas unsauber etc.

Wir nutzen daher die „Pre-Commit-Hooks“ im SVN, um vor dem Commit ins zentrale SVN einige Tests durchzuführen. Nur wenn diese erfolgreich verlaufen, kann ein Commit erfolgen – nur dann geht der Quellcode ins SVN.

Mein Kollege Thomas Weinert hatte hierzu neulich folgende Präsentation gehalten, die das ganze im Groben erläutert:

SVN Hook

papaya CMS: Nighly builds ab sofort verfügbar!

Hinweis in eigener Sache:

Ab sofort stehen nightly builds (also jede Nacht automatisch aus dem internen papaya SVN erzeugte Exports des kompletten papaya CMS) unter folgenden URLs zur Verfügung:

Systemvorstellung papaya CMS auf Contentmanager.de

Achtung, Eigenwerbung 😉

Auf Contentmanager.de ist aktuell eine m.E. sehr gelungene Darstellung des papaya CMS veröffentlicht worden (die mein Kollege Massimiliano Siddi verfasst hatte):

Hier klicken, um den Artikel aufzurufen.

Kinder und Content Management

Das hier darf ich dank der freundlichen Freigabe eines Kollegen mal aus unserem internen Blog übernehmen:

Unsere Tochter weiß schon, wo ich arbeite: papaya

😉

PR mit Hang zur Übertreibung bei RedDot

Die Firma RedDot hat sicher umfangreiche Erfahrungen in der Softwareentwicklung – in Sachen PR kann man dort aber m.E. noch etwas dazu lernen:

In einer aktuellen Newsmeldung berichtet man von der umfangreichen Nutzung des RedDot CMS bei der Bertelsmann Stiftung.

Hieran ist erstmal überhaupt nichts auszusetzen: In der Tat verwendet die Bertelsmann Stiftung in verschiedenen Projekten das RedDot CMS und bringt damit professionell ihre Inhalte ins Web. Die Seiten laufen flott, sehen gut aus – alles prima.

Ein wenig überraschend fand ich jedoch die folgenden zwei Teaser, die ich auf der Website gesehen habe:

Die hierin enthaltene Aussage, nach der die Bertelsmann Stiftung für alle Webprojekte RedDot einsetze, ist leider unkorrekt. Eine kurze Google-Suche nach Websites, bei denen im Impressum die Bertelsmann Stiftung als verantwortlich genannt wird, fördert einiges an Belegen zu Tage. Die folgende Liste hat keinen Anspruch auf Vollständigkeit – zeigt aber, dass diverse Projekte der Stiftung auf Open Source Software setzen und somit vom RedDot CMS so weit entfernt sind wie Linux von Microsoft:

Ach ja – auch die von uns realisierte Krankenhaussuche „Weisse Liste“ basiert mit dem papaya CMS natürlich auf Open Source Software 😉

Vermutlich würde eine weitere Suche noch mehr Beispiele liefern, bei denen eben nicht RedDot im Einsatz ist. Dies ist wenig überraschend bei einer so aktiven Organisation mit vielen Projekten.

Umso mehr verwundert es, dass man bei RedDot so unpräzise bzw. irreführend kommuniziert, hätte man doch mit der „Corporate Website“ und dem Intranet der Stiftung bereits zwei sehr nette und wichtige Referenzen zur Verfügung gehabt…

cuil – YASENN?! (yet another search engine nobody needs?)

Cuil ist sicher den meisten ein Begriff – die Suchmaschine mit den Ex-Google Mitarbeitern, die erst mit Spannung und einem kleinen Hype gehandelt wurden…und dann eine eher wenig spannende und mit einem schlechten Rankingsystem ausgestattete Suchmaschine gelauncht haben.

Ich habe gerade mal diverse Keywords für verschiedene Websites von unseren Kunden oder von uns getestet. Dabei kam mit dem Suchstring „papaya CMS“ etwas sehr seltsames heraus: Neben der Anzeige von „www.papaya-cms.com“ taucht ein seltsamer Button auf – siehe Screenshot:

Der Button ist mit www.papaya-cms.com verlinkt, also ist es wohl kein an die falsche Stelle geratenes Ad – eventuell testet man bei Cuil die Einbindung von spezieller Werbung neben dem eigenen Suchergebnis? Quasi editierbare Darstellung in der Suchergebnisseite, also ein CMS für search results? 🙂

Weiß jemand, was dahinter steckt?

Open Social – erster Überblick, Videos, Links…

Aktuell schauen wir uns gerade Open Social genauer an um zu sehen, ob wir eine Integration ins papaya CMS implementieren wollen.

In Kürze gibt es dazu hier noch ein Update mit weiteren Informationen (Argumente pro/contra, technische Bedenken/Probleme etc.) und nicht zuletzt unserer Entscheidung. Bis dahin hier schonmal einige Informationsfragmente und Links zum Thema, die wir bei der Recherche lesenswert fanden:

Open Social – was ist das, worum geht es?

Ein guter Einstieg ist ja oftmals Wikipedia, wo natürlich auch zu OpenSocial ein umfangreicher Artikel zur Verfügung steht. Hierin fasst man das Thema mit folgenden Zeilen zusammen:

OpenSocial ist eine Menge von Programmierschnittstellen für Anwendungen in webbasierten sozialen Netzwerken. OpenSocial wird von Google entwickelt und wurde am 1. November 2007 veröffentlicht.

Anwendungen, welche die OpenSocial-API nutzen, sind mit jedem anderen sozialen Netzwerk interoperabel, welches dieses auch unterstützt, so können Funktionen von Seiten wie MySpace und Friendster miteinander verknüpft werden. Zum Start von OpenSocial sind aus Deutschland lediglich das Business Netzwerk XING und der Einladungs- und Ticketservice amiando dabei.

Die Technologie basiert weitgehend auf offenen Standards wie HTML und JavaScript. OpenSocial unterstützt vier APIs für social software-Anwendungen für den Datenzugriff und Kernfunktionen teilnehmender sozialer Netzwerke. Jede API zielt auf unterschiedliche Aufgaben: eine generelle Javascript-API, eine für Menschen (Menschen und deren Beziehungen), eine für Aktivitäten (Veröffentlichungen) und eine für Single Sign-On.

Weitere Informationen

Näheres speziell zur Idee des ganzen und zur Technik gibt es auf der Website des Projektes bei code.google.com. Dort gibt es auch eine Liste der Unternehmen bzw. der Portale, die Open Social bereits einsetzen (oder sich zumindest dazu bekannt haben, es einbauen zu wollen).

Videos / Präsentationen / Tutorials zum Thema

Google hat natürlich eine Youtube Playlist mit diversen Videos zu OpenSocial:

FAQs zu OpenSocial

Die folgenden Punkte sind auch der Google-Website entnommen, ich habe mal die meines Erachtens wichtigsten FAQ Einträge übernommen:

What is the basic architecture of a social application that uses the OpenSocial API?
OpenSocial applications use Google’s gadget architecture but with extensions that provide programmatic access to social data within its container environment. Similar to gadgets, OpenSocial apps are hosted XML documents with HTML/JavaScript within their bodies. Social apps have most of the infrastructure of gadgets available to them but with a few minor exceptions.

Where do OpenSocial apps run?
One of the initial environments for social apps which use the OpenSocial APIs is Orkut. Other OpenSocial enabled websites are expected to launch support for developers soon.

How do I create social apps using OpenSocial?
Social apps are initially created in the same manner as gadgets: with your favorite text editor or within the Google Gadgets Editor. They then can be augmented with the OpenSocial JavaScript APIs, where they can fetch and post social data about friends and activities.

Does OpenSocial require any special markup languages or plug-ins?
No. OpenSocial uses standard JavaScript, HTML, and XML.

What resources do I need to create an OpenSocial gadget?
Other than a good idea and a few minutes to write JavaScript and HTML, you don’t need any. Google will do all the hosting for you if you want, but you are also free to use your own servers.

Can OpenSocial apps use Flash?
Yes. Similar to gadgets, it is possible to embed Flash content into a social app.

Can OpenSocial apps interact with other websites?
Yes, social apps have the ability to fully interact with outside 3rd party applications using standard web protocols.

What other JavaScript libraries can I use?
All of them! Dojo, Prototype, JQuery, GWT, etc.

What languages can I use on my server?
All of them! PHP, Ruby on Rails, Java, etc.

Das hört sich spannend an – wie startet man am besten?

Genauer ansehen muss man sich dazu folgende Seiten:

Bevor man sich die ganzen Links im Detail ansieht, macht dieses Video auf jeden Fall Sinn – hierin werden die für OpenSocial verfügbaren Ressourcen kurz vorgestellt:

Medium: www.youtube.com
Link: www.youtube.com

Lesenswerte Blogartikel anderer zum Thema OpenSocial

Fazit

Wie eingangs bemerkt ist es noch zu früh für ein wirkliches Fazit – spannend auf jeden Fall, ob das technisch so gut und ausgereift ist, dass wir darauf aufsetzen wollen, gilt es noch zu klären. Später mehr dazu…

Update / Ergänzung (2008-10-31)

Eine sehr lesenswerte Ausführung zum eng verwandten Thema „Open ID“ / „OpenID“ habe ich gerade bei Pixelsebi.com gefunden – zu dem Thema werde ich hier im Blog auch nochmal nachlegen 😉

Update / Ergänzung (2008-11-17)