Stefan Buchali, November 13th, 2009

Sauberer Code trotz CMS

Moderne Content Management Systeme müssen Ansprüchen genügen, die nicht so leicht zu kombinieren sind:

  • Sie müssen auch ohne Programmiererfahrung leicht zu bedienen sein.
  • Der Redakteur muss Texte mehr oder weniger beliebig formatieren können.
  • Sie müssen semantisch korrekten, validen Code erzeugen.
  • Die Ausgabe muss zudem suchmaschinenoptimiert sein.

Welche Probleme sich einem stellen, und wie man sie erfolgreich löst, erläutere ich in meinem Artikel “How to get a tidy website” im Unofficial RedDot CMS blog.

In jedem Fall ist es ratsam, sich mit einem erfahrenen CMS-Partner an die Umsetzung einer Anwendung zu machen. Unsere zertifizierten RedDot-Entwickler freuen sich auf Sie.

Stefan Buchali, Mai 6th, 2009

Die RedDot Reihenfolge

RedDot CMS bietet den Templateentwicklern eine Vielzahl an Techniken an, um die jeweiligen Projektanforderungen zu lösen. Somit lassen sich schon unter geschickter Nutzung der „Bordmittel“ und ohne Customizing der Applikation interessante Lösungen realisieren.

Wichtig hierbei ist die Beachtung der richtigen Reihenfolge, in der die einzelnen Module gerendert und ausgeführt werden. Spätere Module können auf den zuvor erzeugten Code zugreifen und ihn weiterverarbeiten. Frühere Module können zudem den Code der folgenden Module erst erzeugen, aber das ist dann schon nicht mehr Pflicht, sondern Kür.

  1. Inhalte der Elemente und Blockmarkierungen, im SmartEdit auch die RedDots
  2. Rendertags
  3. PreExecute-Code
  4. RDExecute-Code (SmartEdit und Vorschau) oder PageBuilder (Publizierung)

Wichtig zu beachten ist der grundsätzliche Unterschied zwischen SmartEdit und Vorschau einerseits und der Publizierung andererseits. Beim Publizieren werden in alle Elemente, die Urls enthalten (Links, Listen, Media, Images, einzelne Infoelemente), zunächst nur Vorab-Informationen für den Pagebuilder geschrieben. Erst dieser erzeugt dann daraus die finale Url. Sie steht somit noch nicht für die Verarbeitung im PreExecute zur Verfügung!

Stefan Buchali, Dezember 10th, 2008

Mit Rendertags Daten der Seite im Targetcontainer auslesen

Targetcontainer sind ein schickes Feature im RedDot CMS, mit dem man schnell und effizient Projektstrukturen aufbauen kann.

Wie allerdings gelingt es, Inhalte einer Seite im Targetcontainer auf die Rahmenseite zu übertragen, z.B. um die Headline einer Pressemeldung in den Title-Tag zu schreiben?

Transferelemente funktionieren nur “abwärts”. Sie transferieren Informationen aus der Rahmenseite an die Seite im Targetcontainer. Doch wie geht es “aufwärts”?

Bislang musste man auf eine Skriptinglösung zurückgreifen (Liste + ActiveTemplate + ID-Vergleich, um hier die Stichworte zu nennen). Eine Standardfunktion war nicht verfügbar.

Anders ist es nun seit der Version 7, mit der die Rendertags eingeführt wurden. Diese stellen eine mächtige Erweiterung des Funktionsumfangs dar. Mit einem einfachen Statement greift man direkt auf die Elemente einer bestimmten Seite zu, z.B. auf die Überschrift:

<%!! Context:Pages.GetPage(Guid:GUID_DER_SEITE).Headline !!%>

Ersetzt man nun die fixe GUID gegen das Infoelement “GUID der Seite”, mit aktivierter Option “Daten der Seite im Targetcontainer”, erhält man zur Laufzeit die Überschrift der Seite im Targetcontainer:

<%!! Context:Pages.GetPage(Guid:<%inf_guid_in_TC%>).Headline !!%>

Auf analoge Weise erhält man jedes beliebige Element dieser Seite. Ganz ohne Skripting.

Stefan Buchali, Oktober 9th, 2008

Excel-Export aus RedDot

Kennen Sie das? Sie möchten im laufenden Betrieb ein Element einer Content-Klasse löschen, wissen aber nicht, ob es auf irgend einer Seite schon ausgefüllt wurde? Oder ein Optionslisten-Eintrag soll entfallen? Eine Bildvorbelegung ändert sich?
Wenn man also eine schnelle Übersicht über die eingepflegten Inhalte braucht?

Glück hat man, wenn das Projekt noch nicht über viele Seiten verfügt, und man sie schnell durchklicken kann. Aber wenn es mehrere 100 sind?

Für solche Fälle greifen wir bei stoll & fischbach eBusiness auf folgende Vorgehensweise zurück:

1. Instanzen-Export der betroffenen Content-Klasse

Der Instanzen-Export ist eine Standardfunktion des RedDot CMS, die am Knoten „Instanzen“ einer jeden Content-Klasse im Aktionsmenü verfügbar ist. Dabei werden alle (oder die manuell ausgewählten) Instanzen als XML-Dateien exportiert.
Sinnvollerweise erstellt man sich hierzu ein lokales Publizierungsziel auf dem CMS-Server.

2. Zusammenfassen der Dateien in einem einzigen XML

Per Konsole greift man anschließend auf dieses Publizierungsverzeichnis zu und fasst mit folgendem Windows-Befehl alle XML-Dateien in eine zusammen:

type *.xml > instanzen.xml

Diese instanzen.xml muss man dann noch XML-gültig machen, also die überflüssigen XML-Deklarationen entfernen, und ein Wurzelelement erstellen.

3. Öffnen mit Excel

Excel starten und das XML importieren. Fertig.

Stefan Buchali, August 12th, 2008

Pinyin – oder: Wie sortiert man auf Chinesisch?

Moderne Content Management Systeme wie RedDot verfügen über Standardfunktionen, mit denen sich alphabetisch sortierte Listen wie Ersatzteillisten, Lexika, Glossare etc. einfach und komfortabel erstellen und pflegen lassen – auch mehrsprachig.

Aber funktioniert das auch außerhalb des lateinischen Alphabets? Auch dann, wenn die Liste nicht nur sortiert, sondern auch gruppiert werden soll (A-C, D-F, …)?

Dank Unicode ist die Sortierung an sich kein Problem. Doch wie soll man ein Alphabet gruppieren, das mehrere tausend Schriftzeichen enthält, wenn grad kein Praktikant greifbar ist?

Seit 1958 existiert mit „Hanyu Pinyin“, dem „Programm zur Fixierung der Laute im Chinesischen“, die offizielle chinesische Romanisierung des Hochchinesischen in der Volksrepublik China.

Pinyin (gespr.: „Pinin“) ordnet jedem chinesischen Schriftzeichen den phonetisch passenden lateinischen Buchstaben zu. Es ist seit 1982 ein ISO-Standard.

Der CMS-Redakteur erhält also die Möglichkeit, zusätzlich zu den chinesischen Begriffen den Pinyin-Buchstaben einzupflegen.
Der Programmierer hinterlegt hierzu im CMS-Template folgende Logik: In der chinesischen Sprache wird zur Eingruppierung des Begriffs das Datenfeld abgefragt, das den Pinyin-Buchstaben enthält. In allen anderen Sprachen dagegen wird der erste Buchstabe des Begriffs herangezogen. So lassen sich die Begriffe in allen Sprachen anhand des lateinischen Alphabets gruppieren.

Eine unserer Umsetzungen dieser Pinyin-Methode mit dem CMS RedDot finden Sie unter
http://www.etas.com/zh/glossary_information_from_p_to_r.php.

Neugierig auf die japanische Umsetzung, bei der man „Hiragana“ und „Katagana“ beachten muss?
Die erklären wir Ihnen gerne mal persönlich.