Kategorien
CMS Programmierung

Zimplit und Cushy CMS – Optimale Lösungen für kleine Websites?

Nicht jede Website braucht ein vollwertiges CMS. Selbst WordPress ist vielfach überdimensioniert. Wenn aber der Kunde seine fünf HTML-Seiten selbst pflegen will, jedoch nur rudimentäre Word-Kenntnisse besitzt, wird es kniffelig. Denn dann ist doch ein CMS gefragt und zwar ein möglichst schlankes, einfach zu bedienendes. „Zimplit“ und „Cushy CMS“ versprechen, die optimalen Lösungen zu sein. Wir schauen, ob das stimmt…

Ich könnte aus dem Stehgreif mindestens ein Dutzend Mittelständler aufzählen, die unter den Gesichtspunkten Akquise oder Service und Support oder dem Aspekt der Kundenbindung keinen Internetauftritt benötigen würden. Deren Geschäfte laufen noch so, wie man das vor 15 Jahren kannte und diese Unternehmertypen sehen auch nicht ein, wieso sie nun namhafte Finanzmittel in im Grunde als überflüssig erkannte digitale Präsentationen stecken sollten.

Andererseits werden sie doch von Kunden und Lieferanten häufiger mal auf den fehlenden Internetauftritt angesprochen. Wenigstens die Kontaktdaten, Anfahrtbeschreibung und eine kurze Charakterisierung soll es dann doch sein. Aber, bloß nicht zuviel Information, denn die Konkurrenz soll schließlich nicht unabsichtlich aus dem Auftritt profitieren können.

Gerade letzte Woche erst hatte ich es genau mit einem solchen Kunden zu tun. Nicht einmal Bilder aus dem Betrieb wollte er auf der Website haben, weil er befürchtet, dass man darauf als Wettbewerber Produktteile erkennen kann. Mein Kunde ist Zulieferer und befürchtet, mit solchen Infos könnten Wettbewerber seine Kunden ansprechen und letztlich abwerben.

Ob man diese Paranoia nun nachvollziehen kann oder nicht, ist sekundär. Der Kunde ist König. Und dieser Kunde möchte auch in der Lage sein, seine Texte und Bilder immer mal auszutauschen, wenn ihm gerade danach ist. Ich zeigte ihm ein paar Systeme, darunter WordPress, Plurk und Concrete5. Sein wenig fachkundiges, aber entscheidendes Urteil: „Zu kompliziert“.

Ich begab mich also auf die Suche und fand mehrere Klein-Systeme, von denen ich zunächst zwei für die weitere Präsentation auswählte.

Zimplit – Make It Zimple

Das System Zimplit wurde von der Designagentur Krabi aus Estland ersonnen und erfuhr jüngst ein Update, befindet sich also in aktiver Entwicklung. Zimplit besteht aus einer einzelnen PHP-Datei, umgeben von wenigen Scripts und Bibliotheken.

Zimplit hat kein Backend, sondern gehört zu den Systemen, bei denen man den Content direkt auf der Live-Website editiert. Dazu wird bei Bedarf eine kleine Toolbar eingeblendet, die alle Interaktionsmöglichkeiten auf kleiner Fläche vereint.

01-zimplit-claim.png

Dieser Ansatz und die geringe Größe von 43 KB für das Gesamtsystem soll Grund genug sein, Installation und Inbetriebnahme genauer zu beleuchten.

Systemvoraussetzungen und Installation

Zunächst gilt es, das Kleinstpaket von der Website herunter zu laden, zu entpacken und wieder auf den eigenen Webspace zu hieven. Dabei landet die Datei zimplit.php im Hauptverzeichnis der Website, die Z-Scripts bleiben in ihrem Unterordner.

Für den Hauptordner und alle darin enthaltenen Ordner und Dateien der Website müssen laut Hersteller erweiterte Schreibrechte (775) vergeben werden, die Datei zimplit.php wird mit 755 ausgestattet. Danach rufen Sie die Datei zimplit.php direkt auf (domain.tld/zimplit.php) und werden mit einem Bildschirm konfrontiert, der dazu dient, den ersten (und einzigen) Nutzer des Systems anzulegen. Wählen Sie als erstes die Sprache „Deutsch“ aus, denn wenn Sie das in der Reihenfolge des Formulars machen, löscht Zimplit Ihnen die bereits eingegebenen übrigen Daten raus.

02-zimplit-nutzer-anlegen.png

In meinem Falle hagelte es nach Klick auf „Start“ etliche Fehlermeldungen, die ich so schnell sie kamen und verschwanden nicht zur Kenntnis nehmen konnte. Letztlich erschien das Popup zur Benutzeranlage erneut. Das kenne ich schon, denke ich bei mir, und entschließe mich, für den Test die Rechte des Hauptordners und aller Dateien auf 777 zu setzen. Wie befürchtet: Dann funktioniert es.

Im nächsten Schritt präsentiert Zimplit eine große Vielfalt direkt einsetzbarer Templates. Entscheiden Sie sich zunächst für eines der vorhandenen Themes.

03-zimplit-templateauswahl.png

Erste Schritte

Ich wähle das Template Branches und sehe mich mit einem Userinterface konfrontiert, dass dem von Concrete5 nicht unähnlich ist.

04-zimplit-insite-editor.png

Mit blauen Punkten umrandet, stellen sich die editierbaren Bereiche dar, die der Template-Ersteller zuvor so definiert hat. Innerhalb dieser Bereiche hat der Zimplit-Nutzer allerdings alle Freiheiten, was das Hinzufügen von Elementen oder das Formatieren von Texten angeht. Will heißen, jemand, der sich in völliger Geschmacklosigkeit durchs Leben windet, kann selbst das schönste vorgefertigte Layout komplett verhunzen.

Viel Schatten – wenig Licht

Schnell stellen sich die Schwächen des Systems heraus. So kann man zwar massenhaft Elemente hinzufügen, jedoch in der Regel danach nicht mehr bearbeiten. Ein einmal falsch gesetztes Bild beispielsweise kann nur noch gelöscht und erneut eingefügt werden. Bereits hoch geladene Bilder lassen sich nicht mehrfach verwenden, obschon es einen Dateimanager gibt, mit dem man Zugriff auf Uploads nehmen kann. Dieser Zugriff beschränkt sich jedoch auf Umbenennung und Löschung.

05-zimplit-toolbar.png

Ähnlich sieht es bei den anderen Elementen aus. Sie haben einen Link eingefügt und sich dabei vertippt. Löschen und neu einfügen. Ich recherchiere in der Dokumentation des Systems, die überdies nicht auf dem neuesten Stand zu sein scheint. Zumindest stimmt die Optik der abgebildeten Elemente nicht mit der tatsächlichen Anzeige überein. Auch die Dokumentation erläutert ausführlich, welches Element man wie einfügen kann, bloß von nachträglicher Bearbeitung ist nirgends die Rede. Mit einer Ausnahme, nämlich der nachträglichen Bearbeitung von Bildern, die jedoch auf meinem Mac weder mit dem Firefox, noch mit Safari funktioniert.

Spätestens hier steht fest: Einen Kunden kann man mit dem System absolut nicht allein lassen. Zumindest dann nicht, wenn man ihn nicht an einen Wettbewerber verlieren will.

Die zu weit gehende Rechte-Anforderung gepaart mit teils unlogischer Bedienung und zu weit gehenden, dann aber doch wieder unzulänglichen Bearbeitungsmöglichkeiten, wird durch die Vorteile des Systems, wie Deutschsprachigkeit, geringe Größe, Verzicht auf Backend bei weitem nicht aufgewogen.

Deshalb spare ich mir an dieser Stelle den ansonsten obligatorischen Blick auf das Templating. Nur eines will ich noch erwähnen.

Besser gut geklaut, als schlecht ersonnen

Zimplit wirbt seit kurzem damit, man könne als Template auch die Optik beliebiger anderer Websites übernehmen. Man müsse nur im Templateauswahl-Bildschirm die URL der gewünschten Seite angeben. Plagiatoren an die Front denke ich mir und gebe die URL von Dr. Web als gewünschtes Template ein. Das Erstaunliche passiert. Zimplit übernimmt tatsächlich die gesamte Frontpage von Dr. Web und stellt sie mir editierbar zur Verfügung.

06-zimplit-drjupp.png

Dabei werden alle internen Links auf die eigene Domain umgeschrieben. Die Ablage der verwendeten Elemente, wie Stylesheets, Grafiken et cetera erfolgt in der Ordnerstruktur von Zimplit. Entsprechende Anpassungen im Quelltext finden ebenfalls statt. So bietet Zimplit schlussendlich für eine ganz bestimmte Zielgruppe unter den Weltnetznutzern doch noch eine beachtliche Lösung an…

Nur für meinen Mittelstandskunden, der seine Seiten selber pflegen will, kann ich Zimplit nicht gebrauchen.

Cushy CMS – Websiteediting Remote

01-cushy-logo.png

Einen völlig anderen Ansatz, im Ergebnis aber mit den gleichen Zielen verfolgt Cushy CMS. Cushy CMS geht davon aus, dass es lediglich bestimmte Seiten eines Webauftrittes und dort auch wieder nur bestimmte Bereiche sein werden, die der Endkunde selbst bearbeiten können sollte. Dabei soll der Endkunde auch nur innerhalb des vorgegebenen Layout bleiben dürfen.

Mit anderen Worten: Cushy CMS lässt dem Designer die Gestaltungshoheit. Der Designer entscheidet letztlich, was der Endkunde wie editieren kann. Dabei geht das System sehr einfach zu Werke.

Die Bearbeitung der Seiten, respektive der Seitenbereiche wird völlig simpel durch die Vergabe der Klasse cushycms an jedem Element, welches inhaltlich zu bearbeiten sein soll, gesteuert. Mehr hat der Designer nicht zu beachten. Über einen speziellen Editorbereich auf Cushy CMS können die „Redakteure“ (so heißen dann die mit Berechtigungen versehenen Endkunden) entsprechende Veränderungen an den frei gegebenen Seiten vornehmen.

Am Besten gehen wir das einmal vollständig anhand eines Beispiels durch.

Schritt 1: Der Designer gestaltet die Seiten

Das kennen Sie. Sie werfen Ihren bevorzugten Editor, in meinem Falle Dreamweaver an und gestalten die Kundenwebsite. Da Sie wissen, dass der Kunde seine Texte selber erfassen wird, sparen Sie durch die Verwendung von Textdummys Zeit. Um noch schneller zum Ziel zu gelangen, habe ich ein freies Template von Free Web Templates herunter geladen.

Das sieht so aus:

02-cushy-website-before.png

Schritt 2: Editierbare Bereiche werden mit der Klasse „cushycms“ versehen

Nun versehe ich alle HTML-Elemente, die der zukünftige Redakteur bearbeiten können soll mit der Klasse cushycms. Dabei habe ich natürlich alle Möglichkeiten, Bereiche besonders großzügig oder eben besonders eng zu definieren. Für diesen Test setze ich die Klasse auf den gesamten Textcontainer.

03-cushy-class-cushycms.png

Schritt 3: Site unter CushyCMS.com eintragen

Cushy CNS gibt es in zwei Geschmacksrichtungen, nämlich kostenlos und für 28 $ im Monat. Die kostenpflichtige Variante hat vor allen den Vorteil, dass Ihre Kunden nicht sehen, dass Sie mit dem Cushy CMS arbeiten. Im Pro Plan erhalten Sie eine Subdomain der Domain Clienteditor.com und können das gesamte Backend mit Ihrem Logo und Ihren Farben so umbauen, dass Ihre Kunden glauben werden, Sie wären der Hersteller des CMS.

Entscheiden Sie sich für die kostenfreie Variante müssen sich Ihre Kunden ebenfalls unter der URL CushyCMS.com einloggen. Es dürfte schwierig sein, den Kunden dann dafür etwa Geld abzuknöpfen. Haben Sie das aber ohnehin nicht vor und sehen Cushy CMS in erster Linie als Service am Kunden, können Sie problemlos den kostenlosen Plan wählen.

Auch hier können Sie eine unbegrenzte Zahl von Projekten, Seiten und Redakteuren verwalten, auch hier steht Ihnen der gesamte Bereich auf deutsch zur Verfügung. Klicken Sie also auf „Get Started„.

Mit minimal wenig Daten, nämlich Name, E-Mail und Passwort errichten Sie Ihren Designeraccount und finden sich nach der erfolgreichen Anmeldung im Kontrollzentrum wieder.

04-cushy-kontrollzentrum-start.png

Schritt 4: Projekt und Seiten anlegen

Hier legen Sie nun ein Projekt an, innerhalb dessen Sie dann später Seiten und Redakteure definieren. Cushy CMS benötigt die FTP-Zugangsdaten zu den zu bearbeitenden Seiten, was ich persönlich für eine weit bessere Verfahrensweise halte, als auf dem Server weitgehende Schreibrechte zulassen zu müssen.

05-cushy-projekt-hinzu.png

In Assistentenmanier weist Cushy Sie als nächstes darauf hin, dass Sie noch keine Seiten im Projekt definiert haben. Beispielhaft definiere ich nur eine Seite, die Homepage. Natürlich können Sie beliebig viele Seiten des Webauftrittes editierbar machen.

06-cushy-seite-zuweisen.png

Haben Sie diesen Punkt erledigt, sieht Ihr Kontrollzentrum wie folgt aus:

07-cushy-kontrollzentrum-proj-mit-seiten.png

Schritt 5: Inhalte editieren

Klicken Sie nun auf das Wort „Home“, gelangen Sie direkt in den Edit-Modus und sehen den weiter oben frei gegebenen Teil der Website.

08-cushy-inhalt-edit.png

Ändern wir nun einige Stellen des Textes und klicken auf „Seite veröffentlichen“.

09-cushy-inhalt-edit-ready.png

Cushy CMS überträgt die Änderungen via FTP auf den Kundenserver und die Homepage sieht nun wie folgt aus:

10-cushy-live-website.png

Voilà. Nun sollten Sie noch einen oder mehrere Mitarbeiter Ihres Kunden als Redakteure für das Projekt anlegen. Cushy CMS sendet den Redakteuren die Login-Daten automatisch per Mail zu. Selbstverständlich können Sie unterschiedlichen Redakteuren innerhalb desselben Projektes auch unterschiedliche Rechte geben. Zugriffe werden immer pro Seite im Projekt erteilt. Damit dürfte die Verteilung hinreichend fein granuliert sein.

Fazit

Welche Nachteile hat nun Cushy? Auf der Seite der Datensicherheit verzeichnen wir natürlich einen Teilnehmer mehr, der die FTP-Zugangsdaten zum Server kennt. Das lässt sich aber über einen auf das konkrete Projekt begrenzten FTP-Zugang im Rahmen halten. Positiv schlägt zu Buche, dass hierdurch die Inhalte der Website auch auf der Website und nicht in den Datenbanken eines Anbieters ruhen, dessen finanzielle Ausdauer man nicht ohne weiteres einschätzen kann.

Offensichtlich, zumindest im Rahmen der kostenlosen Verwendung, ist natürlich, dass Ihre Kunden wissen, dass Sie mit dem Cushy CMS und dort mit dem kostenlosen Plan arbeiten. Bereitet Ihnen das Kopfzerbrechen, müssen Sie halt 28 $ im Monat locker machen. Sicher wird Sie das motivieren, weitere Kunden auf Cushy umzustellen, denn der Betrag gilt pro Designeraccount, nicht pro Projekt.

So bleibt mir schlussendlich nur eine klare Empfehlung pro Cushy CMS. Bedenken Sie noch einmal, dass die gesamte Steuerung über class=“cushycms“ läuft. Insofern liegt es an Ihnen, wie genau Sie den Zugriff der Redakteure auf Inhalte und Layout begrenzen wollen. Größere Einflussmöglichkeiten des Designers bieten nur vollwertige CMS, die aber deutlich mehr Aufwand sowohl auf Entwickler-, wie auf Kundenseite erfordern. ™

Kategorien
CMS Programmierung

Der Aufbau einer flexiblen Datenbankklasse für PHP

Mittlerweile kennt jeder erfahrene PHP-Programmierer das Risiko von MySQL-Injection-Angriffen. Die OOP und sogar das MVC-Programmiermodell sind innerhalb aktueller, auf PHP basierender CMS-Systeme zum Standard geworden. Mittels PHP eigenem Exceptionhandling können IDE-interne Debugger obsolet gemacht werden, die sonst meist Bestandteil teurer Closed-Source-Entwicklungsumgebungen sind. Oder den angehenden Programmierer wegen einer verwirrenden Vielzahl an Funktionen verwirren.

Vorsicht ist geboten

Je nach Größe der zu bedienenden Anwendung bzw. dem nötigen Sicherheitsbedarf, sollte man für sich bestimmen ob die Klasse ihrem Anwendungszweck entspricht. Die folgende Klasse war für mich innerhalb meiner Alltagsarbeit hilfreich. Bitte setzen Sie die Klasse nicht um, wenn Sie die Funktionsweise nicht verstehen. Da Sicherheit innerhalb von PHP ohnehin ein prekäres Thema ist, empfehle ich darüberhinaus folgende Links:

Blog des PHP-Sicherheitsexperten Stefan Esser. Er ist ehem. PHP Core-Developer, welcher aus Empörung gegenüber der Schliessungsdauer von Sicherheitslücken in PHP aus der Entwicklung an PHP ausstieg. Mehr dazu gibt es bei Heise.

– Um die Sicherheit der Datenbank Klasse zu erhöhen, empfehle ich die Recherche folgender Seiten im PHP-Manual: Prepared Statements und Stored Procedures, PDOStatement->bindParam und sprintf.

Worum geht es?

Im folgenden Artikel zeige ich den Aufbau und Zugriff auf eine in PHP geschriebene Klasse für MySQL-Datenbanken, die die aktuellen Erfordernisse der OpenSource-Framework- und CMS-Landschaft bedient. Denn gerade, wenn bei einem PHP-Framework wie Kohana die Kommunikation mit einer bestehenden Datenbank wegen Einhaltung der Framework-Konventionen nicht möglich ist oder die Dokumentation der Datenbankzugriffe nicht ausreicht, ist eine externe DB-Klasse ein gutes Werkzeug.

Zugang zur Datenbank

Zuerst legen wir uns aus Gründen der Wiederverwendbarkeit eine externe Datei mit den Datenbank-Zugangsdaten an. Im Beispiel habe ich diese mysql.inc.php genannt, da der Dateiname den Zweck meines Erachtens nach gut erkennen lässt. Die Datei erhält folgenden Inhalt.

<?php

$user = ‚Benutzername‘;
$pass = ‚Passwort‘;
$root = ‚localhost‘;
$dbEx = ‚Datenbankname‘;

?>

Die ersten drei Variablen dürften klar sein. Die vierte Variable habe ich allerdings aus einem besonderen Grund nicht etwa einfach $db genannt. Denn viele CMS belegen für ihre Datenbankklassen (zum Beispiel OpenCart) diesen Variablennamen vor.

Die eigentliche Datenbankklasse

Schlüssigerweise habe ich auch hier einen sprechenden Dateinamen gewählt: dbEx.class.php (Ex für extern). Am Kopf der Datei werden die Zugangsdaten für die DB-Klasse geladen, der Körper der Klasse aufgemacht und die Zugangsdaten zur MySQL-Datenbank als private gesetzt, damit diese nur innerhalb der einen Klasse verwendet werden können. Daraufhin folgt das Array $args und die Variable $sql.

Beim ersten handelt es sich um die beim Aufruf übergebenen Werte. Die andere Variable $sql beinhaltet die Zeile mit dem SQL-Befehl beziehungsweise Query – mit Platzhaltern. Warum nicht alles in einer einzigen Variable enthalten ist? Damit man sich das Setzen der jeweiligen Anführungszeichen (engl. Ticks) um die Variablen in der Abfrage erspart. Aber das ist nicht der einzige Grund. Denn somit kann aus Gründen der »Wertsäuberung« bezüglich einer MySQL-Injection-Attacke, einfach mit einer Foreach-Schleife durch das Array iteriert werden.

<?php
require(‚mysql.inc.php‘);

class dbEx {

private $user;
private $pass;
private $root;
private $db2;

private $args = array();
private $sql;

Als nächstes folgen zwei Objektvariablen, von denen die erste die Ergebniswerte der Abfrage und die zweite die Anzahl der betroffenen Zeilen enthält.

public $lastResult; // Ergebnisse
public $affectedRows; // betroffene Zeilen

Es folgt der Verbindungsaufbau mit der Datenbank. Wir übergeben der öffentlich zugänglichen Funktion (= public) die Zugangsdaten. Wenn die Verbindung fehlgeschlagen ist, erhalten wir einen Hinweis.

public function __construct($user, $pass, $root, $dbEx){
$this->user = $user;
$this->pass = $pass;
$this->root = $root;
$this->dbEx = $dbEx;
mysql_connect($this->root, $this->user, $this->pass) or die
(„Connection failed!“);
mysql_select_db($this->dbEx) or die („No db found“);
}

Nun kommt die Ausführung unser Abfrage ins Spiel. Wir übergeben im Funktionskopf unsere Abfrage mit Platzhaltern (= $sql) und unsere Werte mit dem Array $args.

public function query($sql, array $args){

// Leere Werte für neue Benutzung
$this->args = array();
// Werte escapen und Übertragung in neues Array
foreach ($args as $key){
array_push($this->args, mysql_real_escape_string($key));
}
// Zusammenführung
array_unshift($this->args, $sql);
$this->sql = call_user_func_array(’sprintf‘,$this->args);
$this->lastResult = mysql_query($this->sql);
$this->affectedRows = mysql_affected_rows();
}

Mit der Foreach-Schleife durchlaufen wir das Werte-Array $args und entfernen die etwaigen, erwähnten böswilligen Zeichen mit der PHP-eigenen Funktion mysql_real_escape_string();. Als nächstes ersetzen wir mit den geprüften Werten die Platzhalter in der MySQL-Abfrage. Die Erzeugung der Ergebniswerte und betroffenen Zeilen geschieht daraufhin. Da die Datenbank-Verbindung nicht mehr benötigt wird, schließen wir diese und geben Speicher frei.

public function destruct(){
@mysql_free_result($this->lastResult);
mysql_close();
}

Debugging

Was ist, wenn die Syntax unserer Abfrage falsch war, wir uns folglich relevante Daten zur Fehlerkorrektur ausgeben lassen wollen oder einfach nur die MySQL-Abfrage sehen möchten? Das geht mit einer Debug-Funktion, deren Ausgabe wegen der Übersichtlichkeit optisch aufgewertet wurde.

public function debug(){
echo „<br/>################################# START_DEBUG #################################<br/>“;
echo „<h3>Sql Befehl</h3>“;
echo $this->sql.“<br/><br/>“;
echo „<h3>Betroffene Zeilen</h3>“;
echo $this->affectedRows.“<br/><br/>“;
echo „<h3>Argumente</h3>“;
$i = 0;
echo „<table>“;
echo „<tr>
<th>Wert</th><th>var_dump</th>
</tr>“;

foreach ($this->args as $key){
// do not echo the first array element, which is the sql statement

if ($i > 0){
echo „<tr>
<td>$key</td><td>“;
// Argument-Informationen
var_dump($key);
echo „</td>
</tr>“;
}
$i++;
}
echo „</table>“;
echo „<br/>################################## END_DEBUG ##################################<br/>“;
}

Zur Verdeutlichung wird die Tabelle eingegrenzt. Die Überschriften für die Ausgabe-Beschreibungen sind dreimal mit dem h3-Tag bewusst gegen W3C-Standards formatiert, da die Ausgaben des Debuggings deutlich aus einem eventuell bestehenden Layout hervor ragen sollen und nur der Entwicklung dienen.

Klasseninstanz erstellen

Nachdem der Klassenkörper geschlossen ist, wird eine Instanz der Klasse mit den Zugangsdaten erstellt.

$dbEx = new dbEx($user, $pass, $root, $dbEx);

Zugriff

Für die Abfrage kann die normale MySQL-Syntax verwendet werden, doch muss an den Stellen für die Wertzuweisungen der bereits erwähnte Platzhalter (%s) gesetzt werden. Diese werden von links nach rechts in die SQL-Query eingefügt, was also keinen Raum für Verwirrungen übrig lässt. Durch das Weglassen der Anführungszeichen um die Platzhalter, wird bei der Query die Komplexität reduziert.

Beispiel 1:

$args = array($id);

$dbEx->query(„SELECT * FROM `schlachtschiffe` WHERE `product_id` = %s“, $args);

while($row = mysql_fetch_array($db->lastResult)) {

echo $row[‚kleines_schlachtschiff‘];

}

Beispiel 2:

$args = array($prod_id, $cat_id);
$dbEx->query(„INSERT INTO schlachtschiffe SET product_id = %s, category_id = %s“);

Beispiel 3 (Debugging):

Möchten wir eine Fehlerprüfung starten oder uns die MySQL-Query ansehen, so setzen wir ein OR $dbEx->debug() in die Queryzeile.

$args = array($id);

$dbEx->query(„SELECT * FROM `schlachtschiffe` WHERE `product_id` = %s“, $args) OR $dbEx->debug();

while($row = mysql_fetch_array($db->lastResult)) {

echo $row[‚kleines_schlachtschiff‘];

}

Die Ausgabe im Browser sieht dann etwa wie folgt aus.

################## START_DEBUG ##################

Sql Befehl

SELECT * FROM `schlachtschiffe` WHERE `product_id` = 1

Betroffene Zeilen

3

Argumente

Wert var_dump
1 string(1) „1“

################## END_DEBUG ##################

Download

Die Klasse kann als Zip-Archiv heruntergeladen werden: Tutorial-Datenbankklasse.

Fazit

Die Klasse kann nun erweitert werden. Mit ihr als Kernkomponente, wird die Wartung und Fortentwicklung besonders im Hinblick auf Längerfristigkeit eleganter. Es bietet sich beispielsweise an, vor jeder Datenbankoperation einen Token zu generieren, die den wirklichen Besucher von einer externen Website trennt, die sich dessen Vertrauen erschleicht, um die Seite zu stehlen, beziehungsweise zu hijacken. Doch insoweit liegt eine Datenbankklasse vor, die als Bestandteil objektorientierter Systeme funktioniert. ™

Kategorien
CMS Programmierung

Pluck – ein CMS für kleine Websites

Noch vor einigen Jahren hatte es durchaus Charme, wenn ein CMS versprach, ohne Datenbank lauffähig zu sein. Immerhin gab es verbreitet in den Webhostingtarifen keine Datenbanken und wenn doch, musste man dieses Feature vergleichsweise teuer bezahlen. Diese Zeiten sind lange vorbei. Heutzutage unterscheiden sich die Hoster höchstens noch in der Version der eingesetzten MySQL-Plattform. Da muss ein datenbankloses CMS wie Pluck schon eine ganze Menge zusätzlich zu bieten haben, damit sich der Einsatz lohnt.

Zielgruppe

Die zumeist niederländischen Entwickler definieren Pluck als ein CMS für kleine Websites. Und das ist auch definitiv richtig so. Während meiner Tests empfand ich eine gewisse konzeptionelle Nähe zu Produkten wie Web2Date oder Contribute als gegeben. Pluck ist schon fast ein Endkunden-CMS. Jedenfalls eines, mit dem sich Handwerker Müller im stillen Kämmerlein gern auch mal selbst befassen kann, so er das relativ überschaubare Know-how zu erlernen bereit ist und so er jemanden hat, der ihm die Grundinstallation aufsetzt.

Ich weiß schon. Otto Normalentwickler wird jetzt Jehova rufen, aber wir wissen im Grunde doch alle, dass es diesen Kundenkreis gibt. Leute, denen es einfach reicht, irgendwie im Internet präsent zu sein. Solche, die ihren Kopfbogen nachbilden und vielleicht noch ein paar News, ein paar Bilder und – ganz wichtig – ein Kontaktformular auf ihre Seiten setzen wollen. Diesem Kundenkreis wird Pluck in nahezu idealer Weise gerecht.

Basics

Die Systemvoraussetzungen für den Einsatz von Pluck sind überschaubar. Die gute Nachricht ist, es läuft auch unter Windows. Die schlechte Nachricht ist, nur wenn dort der Apache werkelt. PHP wird in der Version 5.2.x oder neuer erwartet, der Safe-Mode muss Off sein. Außerdem werden die Module php-gd, php-zlib und curl benötigt. Damit dürfte die Konfiguration den meisten Standard-Webspaces nichts Unmögliches abverlangen.

Pluck selbst ist mit etwas mehr als 800 Dateien und einer Gesamtgröße von rund 3 MB ein wirklich schlankes System. Da Pluck ohne Datenbank arbeitet, ist es auf den Dateisystemzugriff angewiesen. Darauf weist es während der Installation in Malen-nach-Zahlen-Manier hin.

Installation

Haben Sie Pluck, das übrigens unter der total freien GPL steht, von der Projektsite herunter und mittels ihres FTP-Clients, der dabei nahezu arbeitslos bleibt, wieder hochgeladen, rufen Sie einfach die entsprechende Domain oder Subdomain auf. Pluck erkennt, dass es noch nicht installiert ist und ruft selbsttätig das Installscript auf, was nicht selbstverständlich ist und die oben bezeichnete Zielgruppe, jedenfalls die mutigeren derer Vertreter, auf ihrem Weg unterstützt.

01-install-vor-pruefung-w500.gif
Abb.: Pluck meldet Installationsbereitschaft, tut aber noch nichts…

Als erstes führt Pluck einen Test auf die erforderlichen Schreibrechte aus und erzeugt eine detaillierte Checkliste mit Verzeichnissen und Dateien, die mit Schreibrechten versehen werden müssen. Haben Sie diese Liste mittels Ihres FTP-Clients abgearbeitet, können Sie mittels Klick auf Refresh einen erneuten Test auslösen und danach per Klick auf Proceed fortfahren.

02-install-777-pruefung-w500.gif
Abb.: Schreibrechte müssen noch gesetzt werden.

03-install-schreibrechte-vergeben-w500.gif
Abb.: Alle erforderlichen Schreibrechte sind gesetzt.

Nun benennen Sie Ihre Site und geben eine E-Mail-Adresse an, die für den Versand der Daten aus dem mitgelieferten Kontaktformular genutzt wird. Hier haben Sie auch die Möglichkeit, das System auf die deutsche oder eine von zwei Dutzend anderen Sprachen umzustellen. Zu guter Letzt legen Sie an dieser Stelle noch das Admin-Passwort fest. Weiter geht es in deutscher Sprache, so Sie die gewählt haben.

04-install-initial-settings-name-language-w500.gif
Abb.: Grundeinstellungen, wie zu verwendende Sprache et cetera

Der nächste Schritt ist reichlich ungewöhnlich, denn hier fordert Pluck Sie auf, die Startseite zu erstellen. Das habe ich so noch in keinem anderen System gesehen. Es reicht, hier einen Titel, zweckmäßigerweise Home oder Startseite sowie eine kurze Beschreibung einzugeben und auf „Speichern“ zu klicken. Gestalten können Sie die Seite später immer noch. Vorteilhaft bei dieser Vorgehensweise ist, dass Sie so bereits eine Seite im System haben, die als Startpunkt für die weitere Entwicklung gelten kann.

05-install-startseite-gestalten-ungewoehnlich-w500.gif
Abb.: Legen Sie jetzt eine Startseite an. Ungewöhnlich!

Haben Sie diesen letzten Punkt erledigt, informiert Pluck Sie über die erfolgreiche Installation und bietet Ihnen an, entweder die Website in Form der soeben angelegten Startseite oder den Adminbereich aufzusuchen.

06-install-fertig-w500.gif
Abb.: Die Installation ist erfolgt. Gehen Sie nun zum Front- oder zum Backend.

Entscheiden Sie sich für den Adminbereich, gelangen Sie zu einem Login-Screen, der lediglich ein Passwort von Ihnen wissen will. Das ist auch hinreichend, denn eine Benutzerverwaltung kennt Pluck nicht. Konsequenterweise geht Pluck davon aus, dass der Pluck-Anwender allein für sein System verantwortlich darin herumfrickeln wird.

08-backend-login-nur-passwort-w500.gif
Abb.: Mehr als das Passwort müssen Sie sich nicht merken.

Das Backend

Im Admin-Center, wie Pluck das Backend nennt, setzt sich der zielgruppengerechte Eindruck fort. Im Grunde gibt es mit den Punkten „Seiten“, „Module“ und „Optionen“ nur drei Bereiche, in die sich der potentielle Seitenbetreiber verlaufen könnte. Durch die konsequent logische Strukturierung dürfte es, einen Grund-IQ vorausgesetzt, nicht zu Schwierigkeiten kommen.

09-backend-startseite-admincenter-w500.gif
Abb.: Das Admin-Center – recht einfach und intuitiv erfassbar

Die Seiten-Verwaltung

In der Seiten-Verwaltung sehen Sie Ihre vorhandene Sitestruktur und können diese verändern. Hier legen Sie neue Seiten an und verändern bestehende. Außerdem verwalten Sie an dieser Stelle Bilder in den Formaten jpg, gif oder png, die Sie für die Gestaltung Ihrer Seiten benötigen.

10-backend-seitenverwaltung-01-hauptseite-w500.gif
Abb.: Die Hauptübersicht der Seiten-Verwaltung

Entscheiden Sie sich dafür, eine neue Seite anzulegen, werden Sie mit dem im Weltnetz omnipräsenten TinyMCE konfrontiert und haben die Möglichkeit, von Hand Inhalte zu erfassen. Weiter unten auf dieser Eingabemaske finden Sie den Punkt Module. Dieser bietet Ihnen an, bereits im Auslieferungszustand vorhandene Module wie Fotoalben, einen Blog oder ein Kontaktformular allein oder in beliebiger Reihenfolge kombiniert zum Inhalt der zu erstellenden Seite zu machen. Außerdem entscheiden Sie hier, ob die Seite zum Hauptmenü hinzugefügt werden soll. Stets haben Sie auch die Möglichkeit, Seiten untereinander zu verlinken ohne Hauptmenü-Einträge zu generieren. Dies erfolgt über die sich mit wachsendem Inhalt immer stärker populierende Sidebar.

11-backend-seitenverwaltung-02-seite-hinzufuegen-w500.gif
Abb.: Eine Seite wird hinzugefügt.

Die Module

12-backend-moduluebersicht-w500.gif
Abb.: Die Übersicht der installierten Module, andere nennen sie Plugins

Im Auslieferungszustand finden Sie die Module Blog, Alben und Kontaktformular vor, von denen allerdings lediglich die Alben und der Blog aus dem Module-Menü manipulierbar sind. Grundsätzlich ist Pluck mit einer API ausgestattet, die es Modul-Entwicklern leicht machen soll, zusätzliche Funktionalitäten bereit zu stellen. Derzeit ist von einer Fülle an Zusatzmodulen jedoch weit und breit nichts zu sehen. Immerhin gibt es Unterstützung für Google-Sitemaps und Analytics, was dem Handwerker Müller sicher zwei seiner internetbezogenen Sorgen (Wer und wie viele finden mich und wo ranke ich?) nehmen kann.

pluck-modules-w500.gif
Abb.: Von einer Fülle an Modulen kann nicht die Rede sein. Manche laufen auch nicht mit der aktuellen Version.

Quick and dirty kann man im Blogmodul Kategorien und Beiträge anlegen, auch eine Kommentar-Moderation ist in rudimentärer Weise implementiert. Erstellte Beiträge werden im Blogmodul gelistet und sind dort editierbar. Ähnlich einfach gestaltet sich die Nutzung des Albenmoduls. Theoretisch unbegrenzt viele Alben mit theoretisch unbegrenzt vielen Einzelbildern lassen sich verwalten. Etwas unverständlich ist, dass das Albenmodul lediglich jpg verarbeiten kann, während die Funktion „Bilder verwalten“ im Seiten-Menü auch gif und png versteht. In Anbetracht der typischen Anwendung von Alben als Fotogalerien wiegt diese Einschränkung indes nicht besonders schwer.

13-backend-moduluebersicht-blogmodul-w500.gif
Abb.: Das Blogmodul

14-backend-moduluebersicht-blogbeitrag-verfassen-w500.gif
Abb.: Verfassen eines Blogbeitrages

15-backend-moduluebersicht-blogbeitragsuebersicht-w500.gif
Abb.: Der Beitrag auf der Übersichtsseite des Blogmoduls

16-frontend-blogbeitrag-und-kommentar-w500.gif

Abb.: Der Blogbeitrag mitsamt Kommentarmöglichkeit im Frontend

17-backend-moduluebersicht-albenuebersicht-w500.gif
Abb.: Alben verwalten im entsprechenden Modul

Das Optionen-Menü

In den Optionen treffen Sie die wesentlichen Grundeinstellungen des Systems und erweitern dessen Funktionalität. Kommen Sie auf die Idee, den Namen Ihrer Site oder die zentrale E-Mail-Adresse zu ändern, so erledigen Sie das hier. Das aber nur am Rande.

22-backend-optionenuebersicht-w500.gif
Abb.: Die Optionenübersicht im Admin-Center

Wesentlicher ist, dass Sie hier zusätzliche Module installieren oder eine andere Optik aka Farb-Schema, better known as Themes, etablieren können. Dies ist zielgruppengerecht besonders einfach. Sie laden Module und Themes in der Regel als gezipptes Archiv, so wie es auch herunter zu laden ist, per Upload-Formular wieder auf Ihren Webspace hoch. Pluck kümmert sich um den Rest, einfacher geht es kaum.

24-backend-optionenuebersicht-theme-installieren-von-tar-w500.gif
Abb.: Neues Farbschemna aus Tar.gz erfolgreich installiert

bizwatch-theme-aktiviert-w500.gif
Abb.: Auswirkungen des „Farb-Schemas“ auf das Frontend

Was bleibt für den Dienstleister?

Es wird sicherlich nicht jeder Handwerker Müller im Theme-Directory etwas passendes finden. Zumal dieses relativ schmal ausfällt, wenn auch die enthaltenen Themes nicht als schlecht, vielleicht höchstens als etwas zu blogig zu bezeichnen sind. Dann ist Schluss mit zielgruppengerecht, der Müller braucht einen Designer.

Der indes hat es relativ leicht, was insbesondere an der sinnvollen Limitiertheit des Systems liegt. Es sind einfach nicht viele alternative Nutzer-Szenarien zu bearbeiten. Letztlich wird es in den Standardfällen ausreichend sein, eine theme.php mit HTML und Functioncalls, sowie eine style.css für die Formatierungen zu bauen. Pflicht ist zusätzlich noch eine info.php, die lediglich zur Einbindung des Themes erforderlich ist. Auch die Zahl möglicher Functioncalls ist dermaßen begrenzt, dass der Entwickler innerhalb weniger Stunden eine quasi traumwandlerische Sicherheit im Umgang mit dem System erreichen kann. So ergibt sich eine Win-Win-Situation für Entwickler und Kunden.

Fazit: Pluck hat eine klar definierte Zielgruppe. Gehört Ihr Kunde dazu, gibt es kein System, mit dem man schneller eine begeisterungsfähige Website aus dem Boden stampfen kann. Liegt er mit seinen Vorstellungen allerdings auch nur ein kleines bisschen außerhalb des Leistungsumfangs, ist ein anderes System fällig oder der Entwickler müsste die Pluck-API mit Leben füllen. Pluck ist also eine Frage der Perspektive. Ich könnte mehrere Dutzend Kunden aus dem Stehgreif nennen, die mit Pluck absolut hinreichend bedient wären und auch auf Dauer nicht an die Grenzen des Systems stoßen würden. Der Entwickler sollte hier, abseits seiner eigenen tiefgehenden Kenntnisse über mögliche Erweiterungswünsche und deren Abarbeitung, durchaus ein kleines Risiko in Kauf nehmen und dem Handwerker Müller sein Pluck empfehlen und lassen. ™

————–

Alle Screenshots aus dem Bericht und noch einige mehr:

Kategorien
CMS Programmierung

Frog CMS – Content-Management simplified?

CMS werden in aller Welt benötigt, entsprechend werden sie auch in aller Welt entwickelt. Das System, welches wir uns heute anschauen wollen, stammt vom Franzosen Philippe Archambault. Archambault gehört zu den Entwicklern, die über sich selbst nahezu nichts und über ihre Projekte nur das nötigste kommunizieren. So ist auch das „Frog CMS“ ein System, dass sich nicht unbedingt einer großen Informationsbasis erfreut. Ein Grund mehr, es allen Interessierten bei Dr. Web ein wenig näher zu bringen.

Basics

Ursprünglich hieß Frog CMS radiantPHP. Radiant ist ein bekanntes CMS auf der Basis von Ruby On Rails und radiantPHP sollte ein Klon des Systems auf Basis von PHP werden. Nachdem das PHP-Team nicht so rechte Freude daran entwickeln konnte, dass sein Markenzeichen im Namen des CMS Verwendung finden sollte, gab Archambault nach einigen Diskussionen klein bei und benannte sein System bereits Anfang 2007, kurz nach dem Start, in „Frog CMS“ um.

Mittlerweile sind aufgrund der unabhängig vom Ursprungsprodukt verlaufenden Entwicklungen zwar immer noch Ähnlichkeiten zwischen Radiant und Frog zu erkennen, jedoch sind beide Produkte auf dem Weg in unterschiedliche Richtungen. Ohne Archambault zu nahe treten zu wollen, muss man doch unumwunden zugeben, dass hinter Radiant schlicht die potentere Entwicklergemeinschaft steht und sei es auch nur durch eine zahlenmäßige Überlegenheit.

Von den Systemvoraussetzungen her gibt sich Frog bescheiden. PHP 5 oder höher, sowie MySQL 4.1 oder höher oder SQLite 3 mit PDO, sowie einen Webserver sollten selbst Kunden von Shared Space locker aufbieten können. Die empfohlene Datenbanklösung stellt natürlich MySQL 5 dar. Damit sind bislang keine Probleme aufgetreten. In Sachen Webserver behauptet das Team, auch zum IIS kompatibel zu sein, was Windows-Nutzer freuen wird. Auch hier gibt es jedoch eine klare Empfehlung und die lautet Apache mit Mod_Rewrite.

Mit 1,8 MB Gesamtgewicht und wenigen hundert Einzeldateien gehört Frog zu den schlankeren Vertretern seiner Art. Nicht unwichtig für den Einsteiger ist auch die Aktivität des angegliederten Forums, mit dessen Hilfe es mir gelang, etwaige Hürden in der Installation und den ersten Schritten der Umsetzung bereits im Vorfeld zu überspringen. Frog CMS liegt derzeit in der Version 0.9.5 vor, eine Roadmap für das Erreichen der 1.0 liegt zwar hinsichtlich der angestrebten Funktionalität vor, Termine werden jedoch nicht genannt.

Installation

Nachdem das CMS mittels des Lieblings-FTP-Clients, in meinem Falle derzeit Transmit, hochgeladen wurde, sollten noch Schreibrechte auf die config.php und den Ordner public erteilt werden. Der erstmalige Aufruf der (Sub-)Domain startet den Installationsprozess, der lediglich noch darin besteht, die Datenbankverbindung zu konfigurieren und optional ein Datei-Suffix zu vergeben für die Simulation statischer HTML-Seiten.

01-install.png

Sind die Angaben gemacht, präsentiert Frog nach kurzer Bedenkzeit den zweiten und letzten Installationsscreen, der das Initialpasswort enthält sowie darüber informiert, was dem Installateur noch zu tun verbleibt. Hierzu gehört vor allem das Löschen des Install-Verzeichnisses sowie das Aufheben der Schreibrechte auf die config.php. Zur weiteren Erhöhung der Sicherheit empfiehlt Frog, auch Dateien mit .txt-Endung zu entfernen, um interessierten Dritten nicht zuviele Informationen über das System zu überlassen. Alles in allem ist der gesamte Prozess nahe an der legendären WordPress-Installation dran.

02-install.png

Nach dem Entfernen der empfohlenen Dateien sollte Ihr Installationsverzeichnisses dem folgenden Bild entsprechen:

03-ftpclient.png

Halten Sie sich übrigens nicht an die Empfehlungen, deaktiviert sich Frog selbst:

04-frogdisabled.png

Erste Eindrücke

Login und Übersichtsscreen werden bei CMS-erfahrenen Seitenbetreibern keine Überaschung auslösen. Im Gegenteil ist Frog-CMS so simpel strukturiert, dass selbst Personen mit weniger CMS-Erfahrung schnell zu ersten Ergebnissen kommen werden, soweit es um die Erstellung und strukturierte Anzeige von Content geht. Die erste Seite ist schnell geschrieben, formatiert wird per Textile oder Markdown.

05-frog-login.png

06-dashboard.png

07-seite-schreiben.png

Unter „Metadata“ können weitere Angaben zur Seite geschrieben werden. Hier in erster Linie die Definition des Permalinks, des Breadcrumb und etwaiger Tags. An dieser Stelle lässt sich auch steuern, wann die Seite erscheinen soll. Als Seite gilt übrigens jede Art schriftlichen Contents, also auch die Homepage, aber auch einzelne Blog-Beiträge. Eine weitere Unterscheidung, wie sie etwa bei WordPress üblich ist, kennt Frog nicht.

09-page-metadata.png

Nicht überall üblich ist auch die eingebaute Zugangsbeschränkung. Vergibt man einer Seite das Attribut „Login required“, können diese nur eingeloggte User sehen. Schön ist, dass alle steuerbaren Attribute einfach im Wege des „inherit“ vom nächsthöheren Element vererbt werden und so nicht in jedem Falle Einstellungen vorgenommen werden müssen.

Nach dem Login sollte allerdings der erste Weg in die User-Administration führen, um das vom System vergebene Initialpasswort zu ändern. Die User-Verwaltung unterstützt den Dienst Gravatar und kennt drei Rollen. Der Admin legt so fest, ob ein User Administrator, Entwickler oder Editor ist. Etwas grob, aber immerhin.

Bei dieser Gelegenheit stellen Sie in der Administration auch gleich die Backendsprache auf „German“ um und erfreuen sich fortan einer deutschsprachigen Administrationsoberfläche. An dieser Stelle lassen sich einige weitere praktische Voreinstellungen treffen, etwa ob standardmäßig Textile, Markdown oder nichts zum Einsatz kommen soll oder ob Seiten standardmäßig als Entwurf gespeichert oder direkt veröffentlicht werden sollen.

10-administration.png

Ebenfalls in der Administration findet sich die Verwaltung der Plugins. Ähnlich wie in WordPress versuchen die Entwickler, den Core so schlank wie möglich zu halten und stattdessen Zusatzfunktionalitäten im Wege des Plugin bereit zu stellen. Einige Plugins werden im Paket direkt mitgeliefert. Manche, wie der Filemanager oder die bereits genannten Formatierungsfilter sind bereits aktiviert, andere wie das recht elegante Kommentarplugin nicht.

11-admin-plugins.png

Das Kommentar-Plugin bietet eine vollständige Kommentarverwaltung, inklusive Moderation, Captcha und anderem und erlaubt damit den sofortigen Einsatz von Frog als Blogging-Plattform. Ob Kommentare zugelassen sind oder nicht, entscheidet der Autor der jeweiligen Seite für die jeweilige Seite.

12-comments-plugin.png

Im Dateimanager, der das Verzeichnis „Public“ verwaltet, werden nicht nur alle Arten von Medien der Website angezeigt, auch für die Optik des Frontend spielt der Dateimanager ein große Rolle. Im Verzeichnis „Public“ findet nämlich auch die Theme-Verwaltung statt. Die hingegen ist weniger intuitiv.

Schnipsel und Layouts – das Themingkonzept

Als großen Wurf verkauft Archambault das optische Konzept des „Frog CMS2. Nach seiner Auffassung ist es nachgerade ein Knüller, dass Frog PHP auch für das Templating nutzt und so auf eine spezialisiertere Vorgehensweise, etwa via Smarty verzichtet werden kann. So sei es insbesondere für den erfahrenen PHP-Entwickler ein Klacks, in der ihm vertrauten Sprache ansprechende Layouts zu realisieren. Archambault hält offenbar nicht viel von Arbeitsteilung im Entwicklungsprozess. Nur wenige Designer, die ich kenne, würden sich auch als erfahrene PHP-Entwickler bezeichnen. Bei Frog gilt: Designed wird in PHP/CSS.

08-frog-frontend.png

Schnipsel erleichtern dem Entwickler insofern die Arbeit, als er wiederkehrende Layout-Elemente wie Header, Footer oder Sidebars eben als solche Schnipsel anlegen und dann im Layout immer wieder verwenden kann. Insgesamt stellt das Konzept zwar einen klaren Ansatz dar, jedoch einen, den man mögen, der der eigenen Arbeitsweise liegen muss. Mein Ansatz ist das nicht.

Sinnvoll in diesem Zusammenhang ist immerhin, dass sowohl Layouts, wie auch Schnipsel über das CMS verwaltet und bearbeitet werden können. So ist prinzipiell für die Entwicklung von Layouts in Frog kein externes Entwicklungstool notwendig, was der Übersichtlichkeit im Arbeitsablauf dienen kann.

Obschon gewöhnungsbedürftig, lässt sich der Grundgedanke der Layout-Entwicklung zügig erfassen. Wer also muss oder will, kann sich in akzeptabler Zeit einarbeiten. Dabei sollte Startpunkt ein bereits fertiges Theme sein, von denen es eine erkleckliche Zahl in ansprechender Qualität bei Frog zum Download gibt.

Fazit: „Frog CMS“ ist ein System für den eingefleischten PHPler und so betrachtet eher eine Art CMS-Framework. Archambault legt Wert auf die Feststellung, dass die API so gestaltet ist, dass man eigene Erweiterungen „very easily“ einbinden kann. Das scheint zu stimmen, denn die Seite Contributed Plugins beherbergt bereits jetzt eine Vielzahl nützlicher, wie moderner Zusatzfunktionalitäten. Wer für seinen Kunden den Einsatz von WordPress als CMS in Erwägung zieht, sollte auf jeden Fall auch einen Blick auf Frog werfen. Der reine Blogger fährt derzeit mit Systemen wie WP, Movable Type und Textpattern wesentlich besser. ™

Kategorien
CMS Programmierung

Symphony CMS – Technology Working In Harmony?

Just mit diesem Slogan, allerdings ohne das schließende Fragezeichen, wirbt das Open Source CMS Symphony, das dieser Tage in der Version 2.0.2 erschien, um Verwender. Anders als andere CMS legt Symphony den Fokus klar auf XSLT, was schon einen ersten Eindruck von der Komplexität des Unterfangens vermittelt. Möglicherweise um diesen ersten Schreck etwas abzuschwächen, sieht die Website des Produkts fast schon simpel und optisch sehr angenehm aus. Ein Testimonial besagt „When you’re using Symphony, you don’t have to fight against it – it works with you. You feel like it was built for you.“ Das allerdings konnte ich nicht erkennen…

Systemanforderungen

Um Symphony auf Ihrem Server zum Laufen zu bringen, benötigen Sie eine PHP-Version ab 5.2, einen Apache- oder Litespeed-Webserver mit mod_rewrite und MySQL ab Version 4.1. Zusätzlich müssen die PHP-Module LibXML mit XSLT-Erweiterung, ZLib und die GD2-Bibliothek installiert sein, was Sie über Phpinfo schnell überprüft haben. Die Safe Mode Konfiguration ist auf Off zu setzen.

Wie bereits von anderen CMS bekannt, erfordert auch Symphony recht weitgehende Rechtedefinitionen auf die Dateien und Ordner des Systems. Mindestens 775 muss vergeben werden, im Falle meines Webservers funktionierte letztlich wieder nur 777, was für mich ein Kriterium wäre, das CMS nicht zu nutzen.

Installation

Mit einem MB Gesamtgewicht gehört Symphony zu den schlanksten Vertretern seiner Art. Hat man es mittels des sehr prominenten Downloadbuttons auf die heimische Festplatte gezogen, spricht nichts gegen die Verwendung des Lieblings-FTP-Clients, um das CMS auf den Zielspace zu kopieren. Alternativ besteht die Möglichkeit, Symphony unter Verwendung des Git-Repository zu installieren, was aber eher diejenigen Experten unter Ihnen machen werden, die sich an der Fortentwicklung des Systems beteiligen wollen.

Hat man nun den entpackten Inhalt des Zip-Files hochgeladen, findet man drei Verzeichnisse und zwei PHP-Dateien im Root vor. Dabei fällt eine klare Trennung auf. Das Coresystem ist im Folder symphony, jegliche Erweiterung indes im Folder extensions untergebracht. Im dritten Verzeichnis workspace befindet sich das Standardtemplate. Hat man die oben genannte Rechtekonfiguration durchgeführt, ruft man das Installscript www.domain.tld/install.php auf, das einen durch die wenigen weiteren Schritte führt.

Zunächst sind Landesspezifika zu bennen, im weiteren wird der Zugang zu einer Datenbank gelegt, die Schreibrechte werden überprüft und der erste User wird angelegt. Die Installation kann sich fast mit der berühmten 5-Klick-Einrichtung von WordPress messen. Am Ende steht einem ein handelsüblicher Loginscreen zur Verfügung. Die Erwartungshaltung steigt, denn wenn schon die Installation so intuitiv abläuft, vielleicht ist auch die Verwendung so, wie das obige Testimonial behauptet „it works with you.“

install-01.jpg

install-02.jpg

install-03.jpg

Erste Schritte

Nach dem ersten Anmelden scheint die Welt noch in Ordnung und man glaubt sich mit seinen bisherigen CMS-Erfahrungen in der Lage, auch ein Symphony beherrschen zu können. Nach ein paar Klicks wird klar. Man täuscht sich. Allein das Publish-Menü bietet einem einen einfachen und intuitiven Zugriff auf Elemente, die man kennt. Hier können neue Beiträge geschrieben, Kommentare moderiert, Notizen erfasst, Kategorien angelegt oder Nachrichten an andere Teilnehmer versendet werden. An dieser Stelle ist lediglich auffällig, dass beispielsweise beim Verfassen von Beiträgen nur die Vergabe von Titel, Datum und Kategorie, sowie das Erfassen des eigentlichen Textes möglich ist. Mit einem Klick auf „Publish this article“ entscheidet man dann noch über die Liveschaltung. Formatierungsmöglichkeiten, Tagging und andere weitergehende Möglichkeiten sind schlicht nicht vorhanden.

publish-menu.jpg

blueprints-menu.jpg

system-menu.jpg

Sehr schnell wird klar, dass Symphony kein CMS ist, dass man mal eben projektbezogen einsetzen kann. Symphony ist vielmehr eine Philosophie. Ein System, dem man sich quasi mit Haut und Haaren verschreiben muss, damit sich der erforderliche Lernaufwand verbunden mit der zunächst sehr flach verlaufenden Lernkurve auch nur annähernd rechnen kann. Einige bildliche Eindrücke aus dem Kernstück des Systems:

komponenten-definition.jpg

page-definition.jpg

komponenten-detailkonfiguration.jpg

einzelsection-definition.png

Was erlaube Symphony?

Symphony als CMS zu bezeichnen ist nur ein ganz geringer Teil der Wahrheit. Vielmehr ist Symphony ein Framework und zwar in der extensivsten Form, die ich je zu Gesicht bekam. Mit einer Grundinstallation kann man im Grunde nichts anfangen. Es ist nicht möglich, sich sozusagen an der Struktur des CMS entlang hin zur eigenen Website zu hangeln. Symphony verlangt Vorbereitung.

Vorbereitung in einer Art und Weise wie man sie noch von dunnemals kannte, als man nicht mit CMS arbeitete, sondern jedwede Site von Hand in den Editor der Wahl codete. Symphony verlangt, dass man sich über die Informationsarchitektur, die Benutzerschnittstelle, das kreative Design und das Projekterfordernis im ganzen völlig im Klaren ist. Und dann, wenn man sagen kann, man wüsste genau, was man wie erreichen will und wie das Endergebnis aussehen wird. Dann kann man sich an die Umsetzung mit Symphony machen. Jedenfalls, wenn man die persönlichen Voraussetzungen erfüllt, denn ohne profunde XML/XSLT-Kenntnisse läuft rein gar nichts.

Warum XML/XSL(T)?

Warum setzt Symphony auf XML mögen Sie fragen und ich werde antworten, dass das auf den ersten Blick eine gute Frage ist. Letztlich besteht eine gewisse technische Konkurrenz in den Ansätzen von PHP/MySQL und XML/XSL(T). Im Grunde kann XML/XSL die vorgenannten unnötig machen, denn immerhin ist das eine eine Datenquelle und das andere ein Ausgabeformat (vereinfacht ausgedrückt). Symphony verwendet alles gleichzeitig.

Jeder, der bereits einmal ein Seminar zu XML/XSLT besucht hat, weiß, dass es sich um eine hochkomplexe, dabei aber auch hochflexible Art der Programmierung (wenn ich es mal so nennen darf) handelt. XML ist im Gegensatz zu HTML nicht bloß eine Präsentationsbeschreibungssprache und hat ein quasi unendliches, da selbst definierbares Tag-Set.

Mein persönliches Fazit war bislang immer, dass XML/XSL da zum Einsatz kommen sollte, wo der gleiche Inhalt für die unterschiedlichsten Ausgabemedien nutzbar gemacht werden soll. Da also, wo schon unter wirtschaftlichen Gesichtspunkten eine weitgehende Medienkonvergenz gefordert ist oder Datenaustausch stattfinden soll, der gar keinen Präsentationslayer hat, wie etwa die Kommunikation zwischen zwei Maschinen. Im Alltag dürfte die bekannteste XML-Anwendung RSS sein, ein Format, das ebenfalls nicht ohne weiteres menschenlesbar ist (jedenfalls nicht komfortabel…).

Gerade die Flexibilität von XML ist es, die es für eine Anwendung wie Symphony interessant macht. Denn mit XML lässt sich prinzipiell jede Art von Webanwendung entwickeln. Contentbausteine lassen sich frei kombinieren, das CMS zwingt dem Verwender keine spezifische Struktur auf. Das Templating mit XSLT unterliegt nahezu keinen Einschränkungen. Eine Joomla-Site wird der Kenner jederzeit identifizieren können, ebenso eine WordPress-Site. Aber eine Website, die von Symphony getrieben ist, enthält keinerlei erkennungsdienstlich brauchbare Merkmale. Insofern handelt es sich bei Symphony um das flexibelste und fähigste CMS respektive Framework, das ich bisher betrachten konnte.

Schwere Kost

Der Vorteil des Systems ist zugleich sein Nachteil. Auch wenn die Symphony-FAQ suggeriert, Basis-XML-Kenntnisse würden für den Gebrauch des Systems ausreichend sein, so muss doch klar gesagt werden, dass man ohne wirklich fundiertes Wissen rund um XML/XSL(T) mit großer Sicherheit scheitern wird. Dabei gilt zu bedenken, dass XML völlig intolerant gegenüber nachlässiger Programmierung ist. Wer sich nicht strikt und ich meine strikt an die Regeln hält, erzeugt mehr Fehlermeldungen als er an einem Arbeitstag abarbeiten kann. Insofern ist Symphony nichts für den Entwickler, der sich nicht auf ein System festlegen und entsprechenden Lernaufwand treiben will.

Dabei ist es durchaus nicht einfach, zum XML-Profi zu avancieren. Selbst im Showcase von Symphony, also unter den Referenzen, den besten realisierten Sites fanden sich zum Testzeitpunkt Seiten, die nicht funktionierten und statt einer schmucken Optik eine schnöde Fehlermeldung auswarfen. Peinlich.

referencesite-error.jpg

Ich würde noch weitergehen und sagen, dass es für die Verwendung von Symphony ohnehin nur eine überschaubare Zahl denkbarer Projekte gibt, die allesamt eine bestimmte Größe überschreiten. Projekte also, die im Alltag des durchschnittlichen Webentwicklers eher nicht vorkommen. Für das Brot- und Buttergeschäft der Mittelstandswebsite könnte man Symphony zwar auch hernehmen, aber warum sollte man das tun, solange es weitaus einfacher zu verwendende Alternativen gibt, denen man zwar irgendwo den Unterbau ansehen kann, die gleichzeitig aber völlig ausreichend sind, allen bestehenden und künftigen Anforderungen des Kunden zu genügen.

Fazit: System der Wahl für XML-Profis. Exotisches Anschauungsobjekt für alle anderen.

Kategorien
CMS Programmierung

Concrete 5 – Look No Further

Dieser Tage gaben die Entwickler das CMS „Concrete 5“ für die Öffentlichkeit frei. Zunächst war ich nur mäßig interessiert, schließlich gibt es CMS wie Sand am Meer. Den Ausschlag dafür, dass ich dennoch einen Kurztest durchführte, gab ein Beitrag auf ReadWriteWeb, in welchem von dem vermeintlich überragenden „Ease Of Use“ die Rede ist. Wenn sich jetzt dieser „Ease Of Use“ noch mit überzeugender Funktionalität paarte, so dachte ich, wäre wohl das ideale CMS gefunden. Und tatsächlich spielt Concrete 5 bei meinen Projekten wohl künftig eine führende Rolle…

Keine Einstiegshürde – die Installation

Beginnen wir am Anfang. Die Installation eines CMS kann zu einer wahren Quälerei werden. Beispiele gibt es zuhauf. Concrete 5 reiht sich dort glücklicherweise nicht ein. Die Installation ist im Gegenteil höchst einfach. Man lege zunächst eine Domain oder Subdomain, sowie eine MySQL-Datenbank in seinem Webspace an. Nachdem das Paket via Sourcefourge auf den Rechner gezogen ist, reicht es, die entpackte Struktur auf den eigenen Webspace hoch zu laden und die Domain oder Subdomain im Browser aufzurufen. Die Installation startet automatisch, indem sie einige Tests zu den Systemvoraussetzungen durchführt.

install-c5-01.png

Haben Sie mindestens PHP 5.1 mit den gängigen Erweiterungen sowie MySQL ab 4.1, stehen die Chancen gut, dass Concrete 5 auf Ihrem Space problemlos laufen wird. Für die Versionierung wird noch Python 2.2 benötigt. Hat man das nicht, gibt es halt keine Versionierung.

install-c5-02.png

Wie üblich, existieren einige Dateien und Verzeichnisse, denen Schreibrechte (im Grunde nur dem Apache-Prozess; auf shared-space typischerweise 777) zugewiesen werden müssen. Zu guter Letzt gibt man den Namen seiner Site sowie die Informationen zur Datenbank ein und startet die Installation. Mittels des Default-Namens „admin“ und eines zufällig generierten Passworts loggt man sich hernach in das Backend ein, dass übrigens strukturell recht deutlich nach WP ab 2.7 aussieht und ebenfalls Dashboard heißt.

install-c5-03.png

Das Dashboard – fast schon intuitiv

c5-dashboard.png

Innerhalb des Dashboard kann in schon fast intuitiv zu bezeichnender Weise die Site verwaltet werden. Unter dem Hauptmenüpunkt „Sitemap“ zeigt sich in klassischer Treeview der Dokumentenbaum. Hier können per Klick neue Seiten angelegt, verschoben, kopiert, umsortiert oder hinsichtlich ihrer Berechtigungen verändert werden. Die Möglichkeiten erschließen sich by doing, RTFM kann man sich sparen.

c5-sitemap-view.png

Über den Hauptmenüpunkt „Add Functionality“ lässt sich Concrete in Anbindung an den Concrete Marketplace mit zusätzlichen Modulen erweitern. Bereits im Auslieferungszustand befindet sich eine sinnvolle Auswahl installierter Module im Bestand. Web2-typische Site-Elemente wie Gmaps, YouTube oder das Einbinden von RSS-Feeds lassen sich ohne zusätzliche Installationen realisieren. In ähnlicher Weise können Themes und Einzelvorlagen über den Punkt „Pages And Themes“ nutzbar gemacht werden.

c5-gmaps-einbau.png

c5-gmaps-eingebunden.png

c5-module.png

Mit dem Filemanager verwaltet der Siteadmin alle Dokumente und Bilder, die in Seiten eingebunden werden sollen. Eine Suchfunktion, die auch Teile des Dateinamens berücksichtigt, sorgt zuverlässig für schnelles Auffinden etwa gesuchten Datenmaterials. An dieser Stelle ist auch schnelles und unkompliziertes Uploaden vorgesehen.

Eine ungewöhnlich einfach zu verwendende Bibliotheksfunktionalität verbirgt sich hinter dem Punkt „Scrapbook“. In das Scrapbook lassen sich beliebige Inhalte ablegen und an beliebigen Stellen via „Add from Scrapbook“ wieder einfügen. Über „Maintenance“ lassen sich Tasks wie das Re-Indexieren des Suchindex oder das Regenerieren eines Sitemap-Files erledigen. An dieser Stelle erfährt man auch die für Cronjobs erforderliche Adresse. Users and Groups birgt eine fein granulierte Rechte-Verwaltung für alle Elemente der Website sowie des Backend. In der Sektion „Reports“ lassen sich Statistiken verschiedener Art, sowie etwa über ein Kontaktformular oder Polls übermittelte Daten einsehen.

c5-maintenance.png

„Sitewide Settings“ bietet Möglichkeiten, automatisch Tracking-Codes einfügen zu lassen, Pretty-URL oder einen Cache einzuschalten, sowie generelle Möglichkeiten, die Sichtbarkeit des Website-Inhalts für bestimmte Usergruppen einzuschränken. Auch das Debugging wird von hier aus verwaltet.

InContext-Editing – der eigentliche Knüller

Wenn auch das Dashboard aufgrund seiner durchdachten Konzeption bereits zu überzeugen weiß, so ist doch der eigentliche Knüller die Möglichkeit, die gesamte Site quasi vom Frontend aus zu verwalten. Ist man erst einmal als berechtigter Benutzer eingeloggt, steht einem eine Toolbar am oberen Rand der Site zur Verfügung, die einem Zugriff auf die wesentlichen Bearbeitungsfunktionalitäten. So kann man jederzeit per „Edit Page“ oder „Add Page“ Seiten bearbeiten und/oder hinzufügen.

c5-toolbar-links.png

c5-toolbar-rechts.png

Der Edit-Modus, der gleichermaßen beim Bearbeiten wie Hinzufügen gestartet wird, ist vom Feinsten ajaxifiziert und bietet eine vollintuitive Art der Inhaltsbearbeitung an. Zusätzlich kann an dieser Stelle das Layout, den Wünschen entsprechend, angepasst werden. Alles geschieht in WYSIWYG. Selbst das Umsortieren von Seiten, so man sich in der Site-Hierarchie vertan haben sollte, ist von dieser Stelle aus möglich. Concrete5 ist das erste echte CMS (Contribute lassen wir mal außen vor), das ich testen durfte, in welchem das eigentliche Backend, außer zu Konfigurationszwecken überhaupt nicht benötigt wird. Selbst das Uploaden von Bildern oder anderen Elementen funktioniert incontext. Etwa vorhandene verschiedene Versionen ein und derselben Page können ebenfalls aus dem Frontend verglichen und (de)aktiviert werden. In allen vorhandenen Seitenbereichen finden sich „Add To“-Markierungen. An diesen Stellen können mittels Klick höchst einfach weitere Inhaltselemente hinzugefügt werden. Etwaige Hilfestellung kann über den rechts oben omnipräsenten Help-Button erlangt werden.

editmode-c5.jpg

c5-editmode-in-action.png

The Developer´s Perspective

Ihre Kunden werden demnach keine Probleme haben, ihre Inhalte selbst zu bearbeiten. Über das ausgefeilte Rechtesystem können Sie Beschränkungen bis auf Element-Ebene vergeben. Damit dürften die größten Gefahren fürs Layout zu bannen sein. Wie leicht aber lassen sich Concrete5-Sites designen? Was taugt das Templatingsystem und wie steht es mit der Erweiterbarkeit?

Naturgemäß konnte ich hinsichtlich dieser Fragestellungen noch nicht in die Tiefe dringen. Jedoch habe ich mir bereits ein kleines Kundenprojekt ausgeguckt, das ich mit C5 realisieren werde. Die Arbeit daran werde ich hier als Erfahrungsbericht in Kürze vorstellen. Daher zunächst zur Entwicklerseite nur eher allgemeine Informationen.

Positiv fällt im Vergleich zu anderen Systemen auf, dass die Erstellung von Themes sauber Schritt für Schritt dokumentiert wurde. Dabei wird auch besonders der Unterschied zwischen Pagetype und Theme erläutert. Grob gesagt, ist ein Pagetype eine einzelne Seite, die in ihrer Optik aufgrund ihres Inhaltes von anderen Seiten stark abweicht. Beispielsweise würde man für die Implementation eines Forums oder Gästebuchs einen anderen Pagetype definieren müssen als für eine Bildergalerie oder eine statische Produktseite. Ein Theme hingegen ist die Obermenge, derjenige Teil der Optik, der sich auch bei unterschiedlichen Inhalten nahezu nicht ändert. Ein gutes Konzept, das dem Designer eine Menge Arbeit sparen kann, wenn er die Elemente sauber voneinander zu trennen versteht. Programmierer werden sich möglicherweise freuen, zur Kenntnis zu nehmen, dass auch C5 eine Implementation eines MVC-Frameworks, dabei aber weniger strikt als andere ist. Die C5-Dokumentation hält ein Füllhorn an tiefgehenden Infos und Codebeispielen bereit. Die Dokumentation der API findet sich hier. So scheint C5 sowohl den Programmierer wie auch den Designer anzusprechen. Ersterer will möglichst einfach zusätzliche Funktionalität umsetzen, letztere, möglichst ohne tief in die Programmierung zu tauchen, ein Corporate Design umsetzen. Ich kenne kein anderes System, welches beide Zielgruppen gleichermaßen gut bedient.

Fazit: Der erste Eindruck ist überragend. Man merkt C5 an, dass es bereits seit einigen Jahren am Markt ist. Glücklicherweise haben sich die Entwickler nun entschieden, das System unter die MIT-Lizenz zu stellen. Der Grund klingt pathetisch, aber sympathisch: „Content management is a basic human right“. (tm)

Kategorien
CMS

WebEdition 6 – Profi-CMS kostenlos?

WebEdition ist ein etabliertes Produkt im Markt der Content Management Systeme. Als es noch kostenpflichtig war, haben sich Kunden in fünfstelliger Zahl dafür gefunden. Manche Agentur spezialisierte sich gar darauf und verdiente hübsche Sümmchen mit der Implementierung kleiner bis großer Websites. Seit November 2008 ist WebEdition Open Source, ob sich das lohnt?

Dazu muss man wissen, dass es 2001, als WebEdition das Licht der Welt erblickte, deutlich weniger Alternativen als heutzutage gab. Große und teure CM-Systeme dominierten den vergleichsweise kleinen Markt. So konnte WebEdition mit seinen überschaubaren Konditionen schnell einen nicht unbeachtlichen Marktanteil erringen. In der Folgezeit änderten sich die Märkte radikal, was vermutlich auch die Begründung dafür ist, dass WebEdition seit November 2008, nicht unbedingt zur großen und ungeteilten Freude der bisherigen Agenturpartner zu Open Source erklärt wurde. So kann also nun ein jeder interessierte Homepage-Bastler ein früheres Kaufsystem ohne finanziellen Aufwand installieren und betreiben. Nur, sollte er das auch tun?

Einfach und modern – die Installation

WebEdition (WE) kann auf zwei verschiedene Weisen installiert werden. Entweder auf die herkömmliche, die darin besteht, das Gesamtpaket von den Sourcefourge-Servern herunter und dann auf den eigenen Webspace wieder hoch zu laden oder auf die zeitgemäßere, die lediglich darin besteht, die Datei „OnlineInstaller.php“ auf den eigenen Server zu laden, entsprechende Rechte (777) zu vergeben und die PHP-Datei von dort zu starten. Während die herkömmliche Variante den Upload von über 4.000 Dateien mit einem Gesamtvolumen von fast 35 MB bedingt und dementsprechend schon der FTP-Part langsam vonstatten geht, verlangt die modernere Variante lediglich ein Uploadvolumen von rund 500 K. Die restlichen Dateien zieht sich der Online-Installer während des Setups per FTP von den WE-Servern. Da der eigene Webspace in aller Regel deutlich schneller angebunden ist als der eigene Rechner, stellt der Online-Installer sicherlich die mit Abstand schnellste Installationsmöglichkeit dar.

So manches CMS bietet heutzutage selber oder über Fremdsoftware ein Webinstall an, jedoch taugen nicht alle etwas. Ich entscheide mich trotz Skepsis dennoch, vor allem wegen der 35 MB starken 5000-Dateien-Alternative, für diese Variante und bin durchaus überrascht. In ansprechender Optik und sehr gut strukturiert führt der Onlineinstaller zum Ziel. An keiner Stelle ist das Skript unklar. Immer sind die zu entscheidenden Optionen deutlich verständlich. Ich mag grundsätzlich dieses „Don´t Make Me Think“. WE kann von jedermann, der schon einmal eine lokale Softwareinstallation erledigt hat, aufgesetzt werden. Nicht einmal die Installation der Datenbank birgt Schwierigkeiten über das alltägliche Maß hinaus. Sind alle Optionen gesetzt, beginnt WE mit dem Download der Daten. An dieser Stelle bewahrheitet sich die Annahme, dass ein FTP-Transfer zwischen zwei Servern zügiger abläuft als mit zwischengeschaltetem Desktop-Rechner.

Galerie der Installationsbildschirme:

Weder einfach, noch modern – das Backend

Der einfache Einstieg findet ein abruptes Ende, sobald man sich zum ersten Mal mit den während der Installation selbst vergebenen Benutzerdaten anmeldet. Eine nahezu leere Oberfläche begrüßt einen eher kühl und bietet dem Auge, wie auch dem Geist nur wenig Orientierung. Was nun? Ich klicke auf den Punkt Einstellungen, der sich relativ prominent in einem ziemlich bunten Feld findet und werde mit einer – sagen wir – beachtlich großen Zahl Karteireitern konfrontiert. Ein wenig Klickerei ergibt, dass sich hier die grundlegenden Einstellungen der Website finden, soweit es um den Mail-Versand, die Sprache, etwaige Zusatzmodule, Validierung und etliches mehr geht. Für den Einstieg wäre vielleicht eine Demosite nicht ganz verkehrt gewesen. Mit Erstaunen lese ich im etwas später gefundenen First-Steps-Wizard, dass Demoseiten nicht mehr vorinstalliert werden, damit man mit dem System sofort produktiv loslegen kann und sich nicht erst mit der Entsorgung vorhandenen Datenmateriales plagen muss. Klingt plausibel, allerdings nur für WE-Profis. Der Einsteiger hätte sich wohlmöglich ganz gern damit aufgehalten, etwaigen Datenmüll irgendwann späterhin entsorgen zu müssen. Ich jedenfalls. Irgendwie passt diese Vorgehensweise auch nicht so recht zum totsicheren Online-Installer.

Ich beschließe, über den „First Step Wizard“ ein Basislayout zu installieren, um überhaupt drei/vier Schritte im System machen zu können. Der Wizard hält mäßig originelle Layouts für die Bereiche Gastronomie, Anwälte, Steuerberater, Architekten und Vereine bereit, was im Grunde erneut die Ausrichtung auf den eher nicht so professionellen Selbermacher unterstreicht. Leider gelingt es auch nach mehrfachen Versuchen nicht, eines der Layouts fehlerfrei zu downloaden und zu aktivieren. Erst der Weg über den Download von reichlich älteren Demoseiten als WE-Backup auf der eigens dafür eingerichteten Website bei WebEdition führt zum Erfolg. Bis zu diesem Zeitpunkt musste ich allerdings schon eine ganze Menge Konzeptionelles zur Kenntnis genommen und verstanden haben, denn die Vorgehensweise, Sites als Backup abzulegen und dann aus dem Backend wieder einzuspielen ist nicht unbedingt eine sich selbsterklärende Angelegenheit.

Nach der etwas hakeligen, letztlich aber erfolgreichen Restore-Aktion bietet sich mir im Backend ein schöner Verzeichnisbaum, den ich auch auf den ersten Blick zu verstehen glaube. Einige Klicks später und in Anbetracht der Tatsache, dass ich im Frontend nur ein „Permission Denied“ erhalte, beschließe ich, das prominent verlinkte Tutorial aufzurufen. Ich gebe zu, dass es mich nicht eben mit Zuversicht erfüllt, erkennen zu müssen, dass das Tutorial aus dem Jahre 2006 datiert und die Version 4 (aktuell ist 6) beschreibt. Überhaupt ist die Dokumentation nicht eben als homogen zu bezeichnen. An anderer Stelle klickte ich bereits auf einen Link, der mir den Installationsguide als PDF lieferte, aber zur Version 5. Immerhin fand ich darin einen vermeintlich entscheidenden Hinweis zur Notwendigkeit eines Rebuild der gesamten Website nach dem Restore eines Backup. Leider führte auch dieser Schritt nicht dazu, dass ich im Frontend etwas anderes als Permission Denied zu Gesicht bekam.

Letztlich fand ich im Forum Hinweise darauf, dass es an meiner Installation unter einer Subdomain liegen könnte. Erstaunlicherweise funktioniert das gesamte Backend, aber vorne ist nichts zu sehen. Vermutlich war dieser Bug von Beginn an ein Feature. Durch die Notwendigkeit, WE in den Documentroot zu installieren, ist auf einfache Weise sichergestellt, dass unter einer Domain nicht mehrere Parallelinstallationen des CMS laufen können. Dazu passt, dass auch das CMS selbst nicht in der Lage ist, mit einer Installation mehrere Sites zu verwalten. Es handelt sich hierbei mutmaßlich um ein existenzielles DRM-Feature der vormaligen Kaufversion. Allerdings hätte man sich durchaus vorstellen können, dass diese Beschränkung mit dem Going Open Source fallen würde. Jedenfalls entschied ich an dieser Stelle, nicht weiter zu versuchen, das Frontend sichtbar zu machen.

Ein paar Eindrücke aus dem Backend:

Barock trifft Moderne – die Technologie-Mixtur

Von der Komplexizität der Bedienung her würde ich Web-Edition am ehesten mit dem noch komplexeren, aber dennoch in sich moderneren Typo3 vergleichen. Beide Systeme sind nicht unter der Prämisse intuitiver Verwendbarkeit geschrieben worden. WebEdition scheint mir zudem unter der schon recht langen Entwicklungszeit insofern zu leiden, als es den Anschein hat, dass die Entwickler während der letzten Jahre stets neue Funktionen angeflanscht haben, die auch für sich betrachtet, dem jeweiligen Stand der Technik entsprachen. Anders ist es mir nicht erklärlich, warum sich in WE nahezu altertümliche Technologien wie Java-Applets als Navigation mit modernen Ansätzen wie der Verwendung der YUI-Library vermischen. Auch das ständige Aufpoppen neuer Browserfenster für die verschiedensten Zwecke ist nicht unbedingt ein Ausdruck zeitgemäßer technischer Ausführung. Dabei erschließt sich umso weniger, warum WebEdition PHP ab der Version 5.2 voraussetzt. Es mag die eine oder andere dies begründende Funktionalität geben. Insgesamt, sollte ich schätzen sollen, würde ich eher sagen, dass ein altes 4er PHP locker in der Lage sein müsste, dem CMS technisch sogar noch voraus zu sein.

Der Vollständigkeit halber sei denen, die immer noch Interesse an WebEdition haben, gesagt, dass es für WE eine Dreamweaver-Extension gibt, die allerdings im Wesentlichen nichts anderes tut, als die sog. WE-Tags, die die Zusteuerung des Content regeln, in das Layout zu setzen. Ähnliches gibt, respektive gab es auch für WordPress. Dort fand ich persönlich es nutzlos, die WE-Extension habe ich nicht getestet.

Wer bis hierhin gelesen hat und auf der Suche nach einem CMS ist, sollte sich lieber gleich modernere Systeme wie etwa Typolight oder Silverstripe ansehen. Da fehlt vielleicht an der ein oder anderen Stelle noch eine Funktionalität, jedoch machen diese homogenen technischen Plattformen einen deutlich zukunftsfähigeren Eindruck als der alte, möglicherweise in Ehren ergraute, aber eben doch ergraute Bolide Web-Edition. ™

Kategorien
Boilerplates & andere Tools CMS Programmierung

Adobe InContext Editing, der Contribute-Nachfolger(?)

Kommt Adobe InContext Editing? Da stellt man seit gut zehn Jahren eine Software namens Dreamweaver her und schleichend fest, dass die Kundenwünsche sich in dieser Zeit dramatisch verändert haben. Blogsoftware und andere hostbasierende CM-Systeme drohen dem Adobe-Flaggschiff den Rang soweit abzulaufen, dass das Produkt Dreamweaver ins Wanken geraten könnte. Schon vor Jahren versuchte man daher, diesem noch jungen Trend eine Lösung entgegen zu setzen, die es ermöglichen sollte, Dreamweaver auf die Kundenseite zu transferieren, mithin eine Art CMS-Funktionalität zu bieten.

Diese Lösung nannte sich Contribute und konnte bis zum heutigen Tage eigentlich nicht wirklich seinen Durchbruch feiern. Basierend auf dem WYSIWYG-Konzept der lokalen Anwendung Contribute stellt Adobe nun auch in Europa eine fremd gehostete RIA-Anwendung namens Adobe InContext Editing vor, die Dreamweaver-Sites spürbar näher an CMS-Systeme rücken soll.

ice-live.png

Webseiten wie Word-Dokumente

Der Gedanke ist kein schlechter. Änderungen an den Inhalten einer Site sollten direkt in Optik und Layout, quasi live möglich sein. So kann prinzipiell jeder Anwender mit einem gewissen Office-Grundkenntnisstand die Inhalte der Firmenwebsite bearbeiten, ohne dass er zuvor an Schulungen teilnehmen müsste. Außerdem entfällt der Schritt, den im Backend erfassten Beitrag oder die Seite oder welches Screenelement auch immer gedanklich in die endgültige Optik zu portieren. Abgesehen davon, dass die Layoutmöglichkeiten innerhalb eines hostbasierten CMS vergleichsweise stark begrenzt sind, ist vielfach der zustande kommende Code unter dem Webstandards-Aspekten bestenfalls Mittelmaß.

Der Vorgänger und seine Probleme

Contribute, als erster Aufschlag einer entsprechenden auf DW basierenden Lösung, konnte indes nicht in allen Punkten überzeugen. Zunächst war es nicht in jedem Umfeld gewünscht, eine Software installieren zu müssen, nur um einige wenige Webseiten pflegen zu können. Dann war der Preis von rund 100 Euro durchaus ein Akzeptanzhemmnis. Das größte Problem dürfte jedoch das Handling gewesen sein.

Ich selbst habe auch vor einigen Jahren einmal einem Kunden Contribute vorgeschlagen und installiert, sowie die Site entsprechend vorbereitet. Leider konnte man seinerzeit einerseits die zu bearbeitenden Regionen der Website nur unzulänglich vor wilden Formatierungen schützen. Auf der anderen Seite wurde dem Bearbeiter ein im Zweifel zu hohes Maß an Wissen um die Vorgänge im Contribute abverlangt. Speziell die Notwendigkeit des fortwährenden Down- und Uploads von Entwurfsdateien und deren recht häufiges Scheitern liess das Vertrauen in die Contributelösung schnell schmelzen. Da die Darstellungsengine auf dem IE basierte war von echtem WYSIWYG ebenfalls nicht die Rede. Vermutlich war dieser Punkt der Sargnagel für das Contributeprojekt, zumindest, soweit es meinen Kunden betraf.

InContext Editing für Entwickler

Seit einigen Monaten steht, zunächst nur für die Nutzer in den US, jetzt aber für jeden mit einer Adobe-ID, das Nachfolgeprojekt (?) InContext Editing (ICE) bereit. ICE folgt prinzipiell der gleichen Philosophie, zumindest auf der Seite des Entwicklers. Dieser definiert editierbare Bereiche auf einer Website, hat dabei aber wesentlich mehr Kontrolle über die Edit-Funktionalität als zu Contributezeiten. So kann der Entwickler im Einzelnen entscheiden, ob der Endanwender Formatierungen anwenden darf, welche und in welchem Umfang. Zudem kann er ihn auf ein bestimmtes CSS-File limitieren. Bei sauberer Vorbereitung und Durchführung kann ein versehentliches Zerschießen der Siteoptik durch einen unerfahrenen Editoren nahezu ausgeschlossen werden.

Voraussetzung für die Anlage einer editable region ist die konsequente Verwendung des Div-Tags, da sich alle ICE-Befehle nur darauf anwenden lassen. Ältere Sites sollen dem Vernehmen nach nur eingeschränkt mit ICE funktionieren, da die Verwendung aktueller Doctypes ebenfalls zu den ungeschriebenen Voraussetzungen guten Gelingens zu gehören scheint. Durch die Funktionalität der repeatable region lässt sich mit ICE sogar eine Art Blog-, oder allgemeiner Newsseite realisieren, die noch dazu in sich frei sortierbar ist. Adobe bietet unter dieser Adresse eine entsprechende Testwebsite, die ohne Anmeldung bearbeitet werden kann.

Hat der Entwickler seine Site soweit vorbereitet, findet er im Siteverzeichnis unter includes einen Ordner namens ice, der Javascript und CSS enthält. Dieser Ordner muss hochgeladen werden, um das InContext Editing überhaupt aktivieren zu können. Im Folgeschritt wird die Site dem Adobe Webservice InContext Editing bekannt gemacht. Dazu ist ein Adobe-Konto erforderlich. Die späteren Editoren laden Sie aus dem ICE-Backend ein. Diese benötigen keine Adobe-ID. Unter dem Punkte Register Website geben Sie dem Adobe-Server im Wesentlichen die (S)FTP-Zugangsdaten zu Ihrer Website. Damit ist klar, dass ICE intern im Grunde wie Contribute mit Down- und Uploads arbeitet, dies jedoch dem User weniger transparent macht.

registerwebsite.png

InContext Editing für Anwender

Nachdem Sie entsprechende Editoren zur Bearbeitung der Site berechtigt haben, können diese, nachdem sie Ihrer Einladung gefolgt sind ohne Umstände mit der Inhalteerstellung beginnen. Für den Editoren stellt sich ICE als zweireihige Toolbar am oberen Ende des inneren Browserfensters dar. Wer acrobat.com kennt, wird sich in der markanten Optik sofort heimisch fühlen. Je nach zugewiesener Berechtigungsstufe global, wie auch den frei gegebenen Formatierungsoptionen am entsprechenden Element kann der Nutzer seinen Vorstellungen von gelungenem Content freien Lauf lassen.

Im Vergleich zu Contribute stellen sich auch auf Userseite einige Vorteile dar. ICE bedarf keiner lokalen Installation. ICE ist als Webservice konzipiert und als solcher in jedem modernen Browser nutzbar. Dadurch, dass kein bestimmter Browser als Grundlage einer eingeschränkten Anzeigeengine verwendet wird, wie das unter Contribute üblich war, ist die Darstellung am Bildschirm echtes WYSIWYG. Die Ausgestaltung als hostbasierter Service stellt zudem eine hohe Verarbeitungsgeschwindigkeit, sowie -zuverlässigkeit sicher. Hier gab es mit Contribute nach meiner Erfahrung durchaus häufig Probleme.

Der Haken mit dem Datenzugriff und den Gebühren

Allerdings liegt der Haken auch relativ deutlich zutage. ICE ist ein Service, der auf Servern des Unternehmens Adobe läuft. Während der derzeit laufenden Testphase ist der Dienst kostenlos, danach wird mit Preisen von 10 bis 20 Dollar zu rechnen sein. Dem Vernehmen nach wird nicht jeder Editor einzeln abgerechnet, vielmehr soll die Gebühr für ein Paket von bis zu fünf Domains bei einer mutmaßlich unlimitierten Nutzeranzahl gültig sein. So käme man auf eine Monatgebühr von zwei bis vier Dollar pro Domain, sofern man willens und in der Lage ist, seinen Workflow gegenüber dem Kunden klar in Richtung ICE zu positionieren. Was ich allerdings nicht wirklich als Perspektive sehen kann.

InContext Editing – für wen oder was geeignet?

Nach meiner Überzeugung ist ICE eher eine potenzielle Lösung für sehr kleine Websites mit einem einzigen Bearbeiter ohne mehr als rudimentäre Kenntnisse im Editing. Diese Projekte sind in jedoch aller Regel höchst preiskritisch und eher nicht zugänglich für die Umsetzung zusätzlicher Gebühren. Einräumen muss man jedoch, dass gerade der Bereich sehr kleiner Websites noch relativ lösungsoffen ist. Immer wieder wird in Blogs und Foren angeregt diskutiert , welches CMS-System denn nun für kleine bis mittlere Websites geeignet sein könnte. Und auch Entwickler, die bereits viele Systeme auf Tauglichkeit getestet haben, äußern sich zumeist nicht eben euphorisch für ein bestimmtes CMS, bezogen auf diesen Kundenkreis. Zu komplex ist der Funktionsoverhead offenbar sogar bei überschaubaren Softwarelösungen. Insofern kann ICE für den ohnehin mit DW arbeitenden Entwickler die naheliegendste und unaufwändigste Lösung sein. Klar sein muss dabei natürlich, dass man seine im Webserververzeichnis liegenden Daten prinzipiell Dritten zugänglich macht. Nicht wenige Kunden werden damit ein Problem haben. Solange man ICE jedoch nur für Kleinstwebsites nutzt, dürfte auch dieses Manko mangels sensibler Daten im Verzeichnis kaum eine Rolle spielen.

Schlussendlich bleibt festzuhalten, dass ICE eine moderne Lösung für ein ziemlich altes Problem ist, deren Umsetzung überdies als gelungen bezeichnet werden kann. Gerade die Verwendung von (S)FTP als quasi kleinstem gemeinsamem Nenner senkt zumindest technische Hürden auf Normalnull. Ob das Produkt außerhalb der Testphase, also im gebührenpflichtigen Normalbetrieb erfolgreich werden wird, bleibt zurückhaltend abzuwarten. Ich persönlich glaube nicht, dass es sich gegen die mannigfaltig verfügbaren CMS-Systeme wird durchsetzen können. Im Adobe-Universum hingegen nimmt es einen logisch und sinnvoll erscheinenden Platz im Zusammenspiel der Einzelprodukte ein.

Wer sich jetzt ausführlicher mit dem Thema befassen will, sei auf die entsprechende Seite in der Adobe Developer Connection verwiesen. Dort gibt es auch ein Beispielprojekt zum Download.

incontext-welcome.png

Kategorien
CMS Programmierung

Bitrix Site Manager – CMS für Unternehmer

Mit den fünf unterschiedlichen Editionen richtet sich dieses CMS an eine große Zielgruppe. Während ein Kleinunternehmer mit der Start Edition bestens bedient ist, entscheiden sich größere Unternehmen eher für die Enterprise Edition. Und sogar an die Internet-Händler wurde gedacht: Die relativ preiswerte Small Business Edition genügt bereits, um einen kompletten Online-Shop aufzubauen.

Die Internetpräsenz kommt einem Unternehmer teuer zu stehen. Nicht genug, dass die Erstellung der Webseite gut und gerne vierstellige Beträge verschlingt, auch die ständigen Aktualisierungen entwickeln sich zu einem kostspieligen Vergnügen. Wer nach einer günstigeren Variante sucht, entscheidet sich für ein Content Management System. Ein Content Management System (kurz CMS) ist eine Software für die Erstellung und Pflege einer Internetseite. Programmierkenntnisse werden dabei nicht benötigt. Die Bedienung ist eher vergleichbar mit der eines üblichen Büroprogramms, und dennoch soll letztendlich eine Webseite entstehen, die sich mit der eines professionellen Webdesigners messen kann. Dies verspricht jedenfalls der Bitrix Site Manager (Achtung, verändert unter Umständen das Browserfenster).

Die fünf Editionen unterscheiden sich durch die Anzahl der Module. Insgesamt 21 an der Zahl wurden entwickelt und bieten verschiedene Funktionen. Sehen Sie selbst, welche dieser Bausteine Ihnen wichtig sein könnte:

  • Hauptmodul: Das Basis-Modul ist der Kern des Content Management Systems. Der Anwender kann Benutzer bzw. Benutzergruppen einrichten, Aktualisierungen durchführen und Grundeinstellungen für jedes einzelne Modul vornehmen.
  • Datei Manager: Die Internetseitenstruktur wird durch das Anlegen, Verschieben und Löschen der Dateien bestimmt.
  • Arbeitsablauf: Über die Arbeitsabläufe wird festgelegt, welcher Benutzer zu welchen Arbeitsschritten berechtigt ist.
  • Postfach: Direkt im System lassen sich Nachrichten empfangen, filtern und nach Kategorien sortieren.
  • Informationsblöcke: Mit diesem Modul lassen sich News, Foto-Galerien, Artikelauflistungen u.ä. erstellen.
  • Kommerzieller Katalog: Den Informationsblöcken können Preisfelder hinzugefügt werden, sodass ein richtiger Katalog entsteht. Im Falle verschiedener Besuchergruppen lassen sich sogar unterschiedliche Preise festlegen.
  • Übersetzung: Beliebig viele Sprachversionen der Webseite lassen sich erzeugen.

  • Währung: Je nach angewählter Webseiten-Sprachversion kommt es automatisch zu einer Währungsumrechnung aller Preisfelder.
  • e-Shop: Dieses Modul ermöglicht den Aufbau bzw. die Verwaltung eines kompletten Online-Shops.
  • Suchen: Mit diesem Modul lässt sich ein Suchsystem einrichten, sodass die Besucher einen Begriff eingeben und sich direkt weiterleiten lassen können.
  • Werbung: Werbebanner können erstellt und gesteuert (Anzeigedauer, Häufigkeit etc.) werden.
  • Info-Post: Newsletter werden an alle Interessenten verschickt, die sich für diesen Service angemeldet haben.
  • Web-Formulare: Online-Formulare (z.B. für Bestellungen, Anmeldungen oder Umfragen) können mit diesem Modul erstellt und dann über das Statistik-Modul ausgewertet werden.
  • Statistik: Sämtliche Daten werden gesammelt (Besucheraufkommen, Suchmaschinen-Analyse etc.) und in Form von Diagrammen und Tabellen dargestellt.

  • Umfragen-Auswertung: Auf der Webseite können beliebige Umfragen (per Klick-System) durchgeführt und ausgewertet werden.
  • Forum: Unbegrenzt viele Foren können erzeugt, verwaltet und moderiert werden.
  • Netztagebuch: Blogs werden mit diesem Modul erzeugt und verwaltet. Sobald es einen neuen Beitrag gibt, kann eine automatische E-Mail-Benachrichtigung erfolgen.
  • eLernen: Über die Webseite lassen sich Online-Schulungen durchführen, bei denen die Teilnehmer die einzelnen Lektionen durchgehen müssen und am Ende einen Abschluss-Test vorfinden.
  • Service-Unterstützung: Über die erstellte Webseite lässt sich ein Support-System für Kunden einrichten.
  • Kompression: Durch die Komprimierung der HTML-Seitendaten ist der Datentransfer geringer und die Seiten lassen sich schneller aufrufen.
  • AD/LDAP : Das Content Management System kann in das Firmen-Netzwerk integriert werden.

Die 5 Editionen

Die Start Edition besteht lediglich aus dem Haupt-Modul, dem Datei-Manager, dem Suchmodul und den Informationsblöcken. Für anspruchsvolle Unternehmer mag dies zu wenig sein, doch wer sich im Internet einfach nur präsentieren und das eigene Unternehmen vorstellen möchte, erhält für 199 Euro ein mehr als ausreichendes Content Management System. Die Standard Edition ist mit einem Verkaufspreis von 499 Euro erheblich teurer, bietet dafür aber auch 5 zusätzliche Module. Mit den Web-Formularen, der InfoPost, den Foren, der Umfrage-Auswertung und dem Netztagebuch richtet sich diese Version an alle Unternehmer, denen die Kommunikation mit der Kundschaft sehr am Herzen liegt. Die nächst teurere Version ist die Small Business Edition. Speziell für Internet-Händler gedacht, lassen sich mit den 10 Modulen u.a. Kataloge mit verschiedenen Währungen erstellen, Newsletter verschicken und Online-Shops einrichten. Das eShop Modul bietet dabei eine ausgezeichnete Funktionalität. Die Preisaktualität und Warenverfügbarkeit wird automatisch geprüft, Versandkosten und eventuelle Rabatte berücksichtigt und verschiedene Zahlungssysteme können eingerichtet werden.

Schade ist nur, dass man für die 899 Euro kein Service-Unterstützung-Modul und kein Werbung-Modul erhält. Gerade für Online-Händler wäre dies von Interesse gewesen. Stattdessen ist das Forum-Modul enthalten, welches wohl nur die wenigsten Verkäufer wirklich brauchen. Die Professional Edition mit 17 Modulen ist für 999 Euro erhältlich. Anders als bei der Small Business Edition ist das eShop- und das Katalog-Modul nicht enthalten. Somit scheiden schon einmal alle Verkäufer aus der Zielgruppe aus. Auch das Fehlen des Arbeitsablauf- und des AD/LDAP-Moduls dürfte größeren Unternehmen übel aufstoßen. Wer sich also die volle Funktionalität wünscht, greift zur Enterprise Edition.

Der Verkaufspreis von 1.999 Euro liegt zwar recht hoch, aber dafür wird man sich an allen 21 Modulen erfreuen können. Wer sich bei der Entscheidung für die richtige Edition etwas schwer tut, sollte erst einmal mit einer niedrigen Version beginnen. Grund: Der Kunde kann seine Edition jederzeit aufstocken und zahlt dafür lediglich den Differenzpreis. Beispiel: Für 199 Euro wurde die Start Edition erworben, nun wünscht man sich aber die Standard Edition. Da diese einen Neuwert von 499 Euro hat, muss für die Aufstockung 300 Euro bezahlt werden. Ausgeschlossen ist leider die Nachrüstung einzelner Module. Noch vor einigen Monaten war dies möglich, doch wegen dem hohen Verwaltungsaufwand wurde dieser Service wieder eingestellt.

Die Vorlagen

Mit dem Erwerb des Bitrix Site Managers ist es noch längst nicht vollbracht. Was nämlich noch fehlt, ist die richtige Vorlage. Im CMS sind zwar einige Templates enthalten, doch die Auswahl ist gering, und überhaupt sind die mitgelieferten Vorlagen optisch eher unattraktiv. Der Kunde hat also zwei Möglichkeiten: Entweder er lässt sich ein Template erstellen, wobei sich der Preis schnell auf 4.000 bis 5.000 Euro beläuft, oder er entscheidet sich für eine der kaufbaren Vorlagen. Unterschieden wird dabei zwischen dem Price und dem Unique Price. Letzteres beinhaltet die alleinigen Rechte an der Vorlage. Entscheidet man sich wiederum für die günstigere Variante, so können auch noch beliebig viele andere Kunden diese Vorlage erwerben und verwenden. Ärgerlich, dass die Thematik mit den Vorlagen auf der deutschen Webseite kaum erwähnt wird. Aus Sicht der potenziellen Kundschaft ist nur zu hoffen, dass sich dies bald ändern wird.

Kaufen oder Leasen?

Der Bitrix Site Manager muss nicht zwingend erworben werden. Ab einem Gesamtwert von 2.000 Euro darf sich der Kunde an den Anbieter wenden und ein Leasing-Angebot anfordern. In Ausnahmefällen ist dies auch schon bei einem geringeren Gesamtwert möglich, aber der Anbieter gibt in diesem Fall keine Versprechungen aus. Dennoch wird er versuchen, den Interessenten an eine entsprechende Leasingfirma zu vermitteln. Sofern gewünscht, kann das Leasingangebot auch verschiedene Dienstleistungen und das Domain-Hosting beinhalten. Wie teuer dies letztendlich wird, hängt von dem Anspruch des Kunden ab und sollte daher mit dem Anbieter individuell abgeklärt werden.

Fazit

Wer an einer professionellen Webpräsenz interessiert ist, wird ein hochwertiges Content Management System benötigen oder eben einen Webdesigner engagieren müssen. Ob ein CMS die bessere Variante darstellt, lässt sich pauschal nicht beantworten. Denn auch wenn die Bedienung einfach gehalten ist, braucht es schon eine Zeit für die Einarbeitung. Zeit, die viele selbstständige Unternehmer einfach nicht haben. Aber immerhin: Anders als viele andere Content Management Systeme ist der Bitrix Site Manager mit einer deutschsprachigen Bediener-Oberfläche erhältlich, womit den nicht-englischsprachigen Personen der Einstieg vereinfacht wird. Und durch die 5 unterschiedlichen Editionen ist sichergestellt, dass die Ansprüche der Unternehmer exakt erfüllt werden. Ob dies aber auch die hohen Kosten rechtfertigt, ist eine andere Frage. Renommierte Content Management Systeme wie Joomla oder Typo3 sind kostenlos erhältlich und den Ansprüchen eines kleineren bis mittleren Unternehmens mehr als gewachsen.

Kategorien
CMS Programmierung

CMS mit Shopsystem Teil 4: Qual der Wahl mit Typo3

Typo3 spricht als CMS große Internetprojekte an. Ebenso groß sind auch die Ansprüche solcher Projekte an die dazugehörigen Shop-Systeme. Im Umfeld rund um Typo3 stehen eine Reihe professioneller E-Commerce-Erweiterungen zur Auswahl. Je nach Bedarf können Seitenbetreiber hier aus dem Repository auswählen.

Typo3 ist das Flaggschiff unter den quelloffenen CMS. Es ist flexibler als die Konkurrenzprogramme „Joomla!“, „WordPress“ und „Drupal“, bietet mehr Funktionen und mehr Leistung. Es bedient selbst die Ansprüche großer Unternehmen, denn Typo3 organisiert ohne Probleme mehrere tausend Sites und verwaltet hunderte Benutzer.

Eine solch professionelle Zielgruppe hat jedoch auch ebenso professionelle Ansprüche, wenn es um den Handel im World Wide Web geht. Ein großes Internetportal mit zigtausenden Besuchern benötigt schließlich auch einen Webshop, der mit diesen Mengen fertig wird.

Das Typo3-Repository bietet zum Thema „E-Commerce“ auch eine große Auswahl an Shop-Extensions. Die genaue Anzahl lässt sich darüber jedoch nicht in Erfahrung bringen, da eine Suche nach Rubriken nicht vorgesehen ist. Beliebte Typo3-Shops sind das „Webformat Shop System“, das „Trade Ecommerce System“ und der „GSA-Shop“.

Die Stärken des Webformat-Shops, auch bekannt als „extendendshop“, sind die Mehrsprachigkeit, die Nutzerfreundlichkeit und das Tracking-Modul. Trade basiert ursprünglich auf dem Typo3-Klassiker „tt_products“, ist mittlerweile aber ein eigenständiges Produkt. Die Erweiterung verwaltet jedoch lediglich eine begrenzte Anzahl an Artikel und eignet sich daher auch nur für kleinere Shops. Trade ist allerdings leicht zu installieren und zu handhaben. Daher ist er für Shop-Anfänger empfehlenswert. GSA steht für General Shop Applications und wurde auf der Basis eines externen Warenwirtschaftsystems entwickelt. Der GSA-Shop ist zwar neu, bietet aber bereits große Funktionsvielfalt.

Im Zentrum der Shop-Erweiterungen für Typo3 stehen jedoch „tt_products“ und „Commerce“. „tt_products“ ist die meist verwendete und „Commerce“ die wohl vielversprechendste E-Commerce-Anwendung für das professionelle Open Source-CMS Typo3.

„tt_products“: Der Klassiker unter den Typo3-Shops

„tt_products“ ist eine der ältesten Shop-Anwendungen für Typo3. Schon im Jahr 1999 begann der Däne Kasper Skårhøj, der Entwickler von Typo3, mit der Programmierung dieser E-Commerce-Extension. 2004 übernahm der in Köln lebende Österreicher Franz Holzinger das Projekt und dessen Weiterentwicklung. „tt_products“ besteht nicht nur seit langer Zeit im Umfeld von Typo3, sondern ist auch die meist verwendete Shop-Lösung in Verbindung mit diesem CMS. Im Typo3-Extension-Repository, kurz „TER“, wurde diese Erweiterung seit 2002 mehr als 47.000 Mal heruntergeladen und zahlreiche Shops setzen das System im Live-Betrieb ein.

„tt_products“ ist für den EU-Binnenhandel ausgelegt und sollte daher den Ansprüchen deutscher Shop-Betreiber entgegenkommen. Die Zielgruppe dieser Shop-Erweiterung sind kleine und mittelständische Unternehmen.

Die größten Stärken hat der Shop in der Installation und in der Einrichtung. Diese gehen einfach und schnell von der Hand. Sie müssen die Extensions „Table Library“, „static_info_tables“, „sr_stativ_info“, „sr_fe_user_register“ und natürlich das Shop-System im Backend installieren. Danach können Sie beginnen, ihren Shop einzurichten. Eine ausführliche deutsche, englische und auch französische Dokumentation steht dazu im Netz bereit. Der Verlag „Open Source Press“ hat zu „tt_products“ ein Buch mit dem Titel „Der TYPO3-Webshop“ herausgebracht. Autorin Andrea Herzog-Kienast und Webshop-Entwickler Franz Holzinger beschreiben darin, wie man den Shop installiert, einrichtet und schlussendlich auch in Betrieb nimmt. Zusätzlich beschäftigen sich zahlreiche Typo3-Forumseinträge mit dem Shop-System und der Support von Entwicklerseite ist laut Typo3-Usergemeinde umfangreich und professionell.

„tt_products“ bietet nicht den gesamten Funktionsumfang großer Shop-Systeme, jedoch mit großer Wahrscheinlichkeit fast alles, was kleine bis mittlere Shops benötigen, und noch ein paar Highlights. Die Produkte können mit verschiedenen Varianten wie unterschiedlicher Farbe oder Größe erstellt werden. Es ist möglich, Kundengruppen anzulegen, wodurch zwischen Geschäfts- und Endkunden unterschieden werden kann, oder für bestimmte Kundengruppen Rabatte angeboten werden können. Auch Coupon-Marketing und ein Newslettersystem (eingebunden über Typo3) gehören zum Funktionsumfang des Shops. Zudem können mehrere, unabhängige Shops über eine einzige Installation verwaltet werden. Was jedoch fehlt, mittlerweile aber fast zum Muss eines modernen Shop-Systems geworden ist, ist die Möglichkeit digitale Güter zu verkaufen.

Das Layout des Frontends wird mittels HTML-Templates gestaltet. Komfortabel ist darin der Mini-Warenkorb, der dem Käufer jederzeit Überblick über seine Bestellmenge verschafft.

Trotz vielfachem Einsatz wird „tt_products“ aber nicht vorbehaltlos von der Typo3-Gemeinde eingesetzt. In der Kritik stehen die englischsprachige Dokumentation und der Code, der manchen Nutzern zu chaotisch ist. Zudem sind den Entwicklern wohl Fehler bei der Vergabe von Versionsnummern unterlaufen. Dennoch schneidet der Shop seit dem letzten Update im Repository mit durchschnittlich 3,4 von fünf möglichen Punkten bei 33 User-Bewertungen positiv ab.

Zusammenfassend lässt sich trotz aller Kritik festhalten, dass „tt_products“ ein ausgereiftes und professionelles Shop-System für kleine bis mittlere Ansprüche darstellt. Die Beliebtheit der Extension und zahlreiche Live-Shops stellen dies täglich unter Beweis.

„Commerce“: Live-Einsatz trotz Beta-Phase

„Commerce“ ist eine deutlich jüngere Shop-Erweiterung als „tt_products“. Die Ziele der drei Entwickler Ingo Schmitt, Volker Graubaum und Thomas Hempel sind jedoch ehrgeizig formuliert. „Commerce“ soll zu einer Shop-Anwendung wachsen, die möglichst alle Ansprüche von Shopbetreibern erfüllen kann. Und die Zielgruppe der Extension hat hohe Ansprüche, denn „Commerce“ soll nicht etwa nur kleine oder mittlere Shops ansprechen, sondern große Online-Shops mit großen Warenbeständen verwalten können.

Obwohl die erste stabile Version dieser E-Commerce-Lösung noch nicht erschienen ist, erfreut sich „Commerce“ schon jetzt großer Beliebtheit und ist auf einigen Seiten bereits im Live-Einsatz.

Trotz Beta-Phase setzt dieser Shop auf „Commerce“

Diese Popularität liegt der komfortablen Artikelverwaltung zugrunde. Bei „Commerce“ werden Produkte auf Basis der Extension „gray tree“ in einem Kategoriebaum mit Haupt- und Subkategorien organisiert. In diesem Kategoriebaum werden auch die Zahl- und Liefervarianten definiert.

Weitere Funktionsvielfalt bietet „Commerce“ durch die flexible Preisgestaltung, nach Bestellmenge, verschiedenen Käufergruppen oder mittels Rabattaktionen. Zudem können die einzelnen Module des Shops auch eigenständig und voneinander unabhängig eingesetzt werden. So kann mit „Commerce“ auch ein reiner Katalog ohne Kaufoption präsentiert oder die Kassafunktionen ohne Produktanzeige für Auktionen eingesetzt werden.

Das Frontend wird Standards entsprechend via HTML-Templates gesteuert und auch „Commerce“ bietet seinen Kunden im Schauraum mit einem Mini-Warenkorb Überblick über die Bestellmenge.

Stimmen aus der Usergemeinde zur neuesten Version von „Commerce“ (0.9.8.) gibt es noch keine. Zusammenfassend lässt sich jedoch sagen, dass diese Shop-Lösung ein breites Spektrum an Einsatzmöglichkeiten bietet. Dank der komfortablen Artikel- und Bestellverwaltung ist „Commerce“ zudem noch benutzerfreundlich. ™

Kategorien
CMS Programmierung

Markup-Editoren für jede Textarea

Schon der Titel macht wohl deutlich, dass dieser Beitrag nicht gerade einer der Kategorie „general interest“ ist. Dafür werden sich diejenigen, die sich dafür interessieren, umso mehr freuen. Um doch noch eine Spur „general interest“ rein zu bringen, stelle ich ein zum Thema gehöriges WP-Plugin vor. Diejenigen Webentwickler unter Ihnen, die auf der Suche nach einem benutzbaren und idiotensicheren clickable Code-Editoren für ihre Auftraggeber sind, lesen bitte weiter. Im Folgenden stellen wir Ihnen den eigenständigen Newcomer „SmartMarkUp“ von PHPcow, sowie den schon länger am Markt befindlichen jQuery-Aufsatz markItUp! vor.

Markup-Editoren: Problemstellung

Sie realisieren ein Projekt für einen Kunden, in welchem Sie auch eine Art Mini-Redaktionssystem verwirklichen sollen. Kleinere Texte sollen durch Mitarbeiter des Auftraggebers online gestellt werden können. Natürlich verwenden Sie Textarea als Element der Wahl. So können die Mitarbeiter Texte erfassen. Aber: Wie sollen sie diese Texte formatieren? HTML-Code ist zwar möglich und würde auch interpretiert. Nur leider ist von den Mitarbeitern keiner auch nur im Ansatz HTML-kundig. Ein Editor muss her, mit dessen Hilfe über einfache Buttons Formatierungen in den Text eingesetzt werden können. Dabei soll der Editor aber nicht irgendwelchen Code produzieren, wie es bei diversen bekannten Editoren gang und gäbe ist. Vielmehr legen Sie Wert auf validen Code, sowie darauf, dass nur bestimmte Tags verwendet werden können.

Genau dafür eignen sich die beiden Javascript-Bibliotheken SmartMarkUp und markItUp!. Natürlich richten sich die Bibliotheken auch an die Teams der CMS-Entwickler. Schließlich muss man nicht aus purer Eitelkeit jede Aufgabe selber lösen oder ständig das Rad neu erfinden.

SmartMarkUp (SMU) von PHPCow

Die Besonderheit an SMU ist, dass es sich um eine völlig eigenständige Lösung handelt. Sie ist weder fest an ein Javascript-Framework gebunden, noch benötigt sie weitere Funktionalitäten neben denen, die sie selbst mitbringt. SMU kann daher ohne Framework oder aber mit jedem beliebigen Framework, sei es jQuery, Mootools, Prototype oder welches auch immer verwendet werden. Eine weitergehende Integration in jQuery ist vorbereitet, aber grundsätzlich nicht erforderlich.

smu-conf-js.png

SMU wird mit Konfigurationen für HTML, CSS und BBCode geliefert. Eigene Konfigurationen können in einfach zu schreibenden „conf.js“ schnell selbst angelegt werden. SMU ist skinnable und kann von daher nahtlos in bestehende Designs eingebaut werden. Die Bindung an die jeweilige Textarea erfolgt in wenigen Schritten, welche die Entwickler, wie auch die sonstigen Installations-, Konfigurations- und Erweiterungsmöglichkeiten, ausführlich dokumentiert haben.  SMU ist aufgrund einer strukturierten API einfach zu erweitern und zu kontrollieren. Add-Ons in Form eines Farbwählers, eines Sonderzeichen-Tabletts, sowie eines Suchen-Ersetzen-Dialogs werden mitgeliefert, eigene sollen mit wenig Aufwand erstellt werden können.

SMU ist eine moderne Lösung auf dem Stand der Technik. Es spräche im Grunde wenig für ihren Einsatz, wenn es nicht den Konkurrenten markItUp! gäbe. SMU ist aber in jedem Falle die Lösung der Wahl, wenn Sie in Ihrem Projekt nicht mit jQuery arbeiten können oder wollen. Es gibt derzeit keine weitere völlig eigenständige Lösung, die ohne jegliches Framework auskommen würde. Gehören Sie zu den Entwicklern, die ohnehin auf jQuery setzen oder künftig setzen wollen oder jederzeit ein beliebiges Framework integrieren können, empfehle ich Ihnen den Einsatz der „markItUp!“-Bibliothek.

markItUp! (mIU) von Jay Salvat

Würde PHPCow nicht ohnehin selber einräumen, dass man sich von „Jay Salvat“ inspirieren ließ, man würde es auch selber sehr schnell merken. Tatsächlich wirkt SMU wie eine schwächere Kopie. Mit zwei Unterschieden pro und kontra SMU:

  1. Pro: SMU ist nicht von jQuery abhängig, steht also auch Jüngern anderer Frameworks zur Verfügung.
  2. Kontra: mIU verfügt über eine Vielzahl downloadbarer Addons und Sprachimplementationen.

mIU kann bereits eine ansehnliche Zahl von Referenzverwendern benennen, darunter das bekannte CMS Redaxo, wie auch das weniger bekannte TangoCMS. Funktional gilt für mIU, was bereits zu SMU gesagt wurde. Auch mIU ist mit zwei Codezeilen zu integrieren, es ist leicht zu erweitern und es kann an das jeweilige Seitendesign angepasst werden. Hinsichtlich des Datengewichts tun sich SMU und mIU nur wenig. Beide bewegen sich unterhalb von 10 kb pro Konfiguration.

plugins-miu.png

Aufgrund seiner Einbindung in jQuery ist es überdies möglich, weitere jQuery-Funktionalitäten auch für den Editor nutzbar zu machen, so dass mIU insgesamt das deutlich mächtigere Werkzeug ergibt. So ist es beispielsweise möglich, mIU von jeder beliebigen Position in der Website aus anzusprechen sowie sonstige Features, wie Galleries, Dropdowns etc. einzubinden.

miu-html-set-example.png

Für den Entwickler und/oder Blogger auf der Basis gängiger CMS entfaltet mIU einen besonderen Charme, da es von engagierten Community-Teilnehmern in Plugin-Form gegossen wurde. Unter anderem für Drupal und WordPress, Habari und Textpattern stehen funktionsfähige Plugins bereit. In WP ersetzt mIU die eher schmalbrüstige Tab-Leiste, die die WP-Entwickler der Textarea mitgegeben haben und die nicht einmal für die gängigsten Befehle gerüstet ist.

wp-standard.png

Wer sich also – nicht zu unrecht – über die Qualität des Wysiwyg-Codes beschwert und deshalb bislang HTML per Hand setzt, sollte sich das mIU-Plugin einmal näher ansehen. Produktivitätssteigerung ist garantiert. Um die Installation des jQuery-Frameworks muss man sich übrigens nicht kümmern. Dieses wird mit dem Plugin automatisch installiert.

wp-markitup.png

Executive Summary

  • jQuery ohnehin im Einsatz oder kein Problem, es einzusetzen? => markItUp!
  • Frameworks sollen oder können nicht eingesetzt werden oder sind nicht jQuery? => SmartMarkUp ™
Kategorien
CMS Programmierung WordPress

CMS mit Shopsystem Teil 3: Plugins und Themes für WordPress

WordPress ist wahrscheinlich das beliebteste Open-Source Blog-System im Netz. Dank der rasanten Weiterentwicklung wandelte sich dessen Image von einer reinen Blog-Anwendung schnell hin zum vollwertigen Content-Management-System. Dieser Fortschritt führte zwangsläufig auch zu der Frage, kann mit WordPress auch ein Online-Shop betrieben werden?.

Die Nachfrage nach solchen Erweiterungen für WordPress wird stetig größer. Zahlreiche Blogger, vor allem Betreiber von Shopping-Blogs, sehnen sich nach ausgereiften Möglichkeiten, Produkte unter ihrer Leserschaft zu vertreiben. Externe Lösungen wie die Weiterleitung vom Weblog in den eigentlichen Shop oder die Einbindung des Blogs in einen bestehenden Shop haben eindeutige Nachteile. Die Kunden müssen sich oft zweimal registrieren, einmal, um im Blog Kommentare zu verfassen, und einmal, um im Shop zu bestellen. Zudem kann man nicht alles einheitlich über das Backend von WordPress verwalten. Den Shop muss man bei einer externen Lösung zusätzlich über den eigenen Admin-Bereich des Shop-Systems organisieren.

Nicht verwunderlich also, dass unter den 3.458 Plugins des Repository der offiziellen Homepage einige E-Commerce-Erweiterungen sind. Wieviele davon für den Aufbau eines Shops gedacht sind, ist leider schwer zu sagen, da der offizielle Auftritt von WordPress keine Rubrik „E-Commerce“, „Shopping-Carts“ oder Ähnliches listet. Die Anzahl der zu findenden Plugins variiert nach der Trefferquote des Suchbegriffs.

Tatsache ist, dass man mit WordPress Shops mit ansprechender Optik betreiben kann. Das veranschaulichte der Lopsta Ecommerce Blog. Dort finden sich beeindruckende Screenshots von zehn Shops, die mittels WordPress verwaltet werden.

Screenshot

Zweifellos bringt es Vorteile, einen Blog direkt im CMS um Shop-Funktionen zu erweitern. Ob es tatsächlich die beste Lösung ist, hängt jedoch immer von der Erweiterung ab. Die bekanntesten Shop-Extensions für WordPress sind das „WP e-Commerce“-Plugin der neuseeländischen Firma „Instinct“ und das kostenpflichtige „Market Theme“. Die beiden Anwendungen gelten als die professionellsten rund um WordPress und sind auch jene, die für die Umsetzung der zehn Shops im Lopsta-Blog verwendet wurden. Wie die folgenden detaillierten Betrachtungen zeigen werden, reicht jedoch allein dieser Status unter dem Angebot rund um WordPress noch nicht aus, um sich als besonders empfehlenswerte Shop-Lösung zu profilieren. Vor allem auf dem deutschen Markt genügt die bisherige Auswahl an E-Commerce-Erweiterungen kaum den Ansprüchen der hiesigen Shopbetreiber.

Market Theme

Market Theme ist im Gegensatz zu anderen Erweiterungen für WordPress kein Plugin, sondern ein so genanntes Premium Theme. Theme deshalb, weil es schlicht die Frontend-Oberfläche darstellt, um einen Webshop zu verwalten. Das geschieht mittels eines integrierten Ajax-Shopping-Cart Moduls. Lediglich für die Verwaltung der Produkte im Backend wird ein kleines Plugin namens Market Produkt Manager, kurz MPM, benötigt. Dieses Plugin wird mit dem Download des Themes mitgeliefert.

Der Entwickler verspricht mit Market ein revolutionäres Theme, das jede normale WordPress-Installation in einen vollwertigen Online-Shop mit Backend-Produktverwaltung verwandelt. Zudem soll die Produktverwaltung dank des MPM besonders einfach zu bedienen sein. Diese Versprechungen halten einer Überprüfung, soweit diese mit dem Demo-Shop des Anbieters möglich war, jedoch nicht stand. Für die 55 US-Dollar Lizenzgebühr (für Entwickler sogar 150 US-Dollar) unterstützt „Market Theme“ bei den Bezahlmethoden nur PayPal und Google-Checkout. Es gibt keine Möglichkeit, Steuerklassen auszuwählen, wodurch davon auszugehen ist, dass es auch nur eine Steuerklasse gibt. Damit ist es einem deutschen Shop, der Produkte mit unterschiedlichen Mehrwertsteuersätzen verkaufen will, unmöglich, das Theme zu nutzen.

Auch bei den Versandeinstellungen werden keine Optionen angeboten. Es besteht lediglich die Möglichkeit beim Anlegen eines Produkts, einen Versandbetrag anzugeben. Zudem gibt es kaum Support für dieses kostenpflichtige „Premium“-Produkt. Weder per Telefon noch per Mail ist der Entwickler für Käufer zu erreichen. Mit dem Kauf des „Market Themes“ erhält man aber Zugang zu einem Forum, das nur für Kunden bereitgestellt wird. Wie aktiv die Hilfestellung rund um „Market Theme“ tatsächlich ist, lässt sich von außen so nicht einschätzen.

Zum Shop selbst ist zu sagen, dass das Theme Möglichkeiten bietet, Produkte ansprechend zu präsentieren: Produktkategorien, mehrere Bilder für ein Produkt, Beschreibungen, Tags und verschiedene Produktattribute werden unterstützt und auch angezeigt. Der Demo-Shop führt bei Produkten zwei Buttons: „buy now“ und „add to cart“. Der „buy now“-Button leitet sofort weiter zu PayPal (ohne eine Zustimmung zu den AGBs) und der „add to cart“-Knopf blendet ein Lightbox-Fenster mit dem Warenkorb ein. In diesem Fenster lässt sich die Anzahl der zu bestellenden Produkte auswählen (diese Möglichkeit besteht vorher nicht) und links unten befindet sich ein weiterer Link zum Bezahlen via PayPal.

Screenshot

Im Backend fällt die Shop-Erweiterung kaum auf. In der Navigationsleiste neben „Comments“ findet sich nach Installation des MPM-Plugins der Punkt „Add Product“. Bei der Produktverwaltung verspricht Market tatsächlich nicht zuviel. Ein Produkt anzulegen funktioniert genauso, wie einen Beitrag zu verfassen. Bild hochladen, Text verfassen, dazu noch Preis, Tags, Versandkosten und weitere Angaben machen und das Produkt steht online zum Verkauf. Verwaltet werden die Produkte dann zusammen mit den Beiträgen unter dem entsprechenden Menü-Punkt. Diese Handhabe ist einfach, vor allem für jene, die sowieso schon mit WordPress arbeiten. Bei zu vielen Produkten wird die Organisation des Shops mit dem MPM jedoch zu unübersichtlich.

Screenshot

Zusammenfassend ist festzuhalten, dass Market Theme zwar leicht zu bedienen ist, diese Eigenschaft aber aufgrund der eingeschränkten Möglichkeiten nicht besonders überrascht. Für den Betrieb eines professionellen Shops mit vielen Produkten und Kunden ist das Theme nicht geeignet. Der Einsatz in einem deutschen Shop gestaltet sich aufgrund der vielen Einschränkungen wie fehlende Steuerklassen, Versandoptionen oder eine Zustimmung zu den AGB vor der Bezahlung schwierig. Auch sonst überzeugt „Market Theme“ nicht, da jederzeit aus einem kleinen Hobby-Shop ein größeres Projekt werden kann, wodurch das Theme sicherlich an seine Grenzen stößt.

WP e-Commerce

WP e-Commerce ist eine kostenlose E-Commerce-Erweiterung für WordPress und in einem Plugin verpackt. Es ist auch aus dem Repository der offiziellen Homepage herunterzuladen. Installiert wird die Shop-Erweiterung wie jedes andere Plugin auch. Auf der Seite des Herstellers „Instinct“ wirbt man mit der Popularität dieser Shop-Lösung für WordPress. Mehr als 100.000 User sollen WP e-Commerce bereits heruntergeladen haben.

„Instinct“ bezeichnet das Plugin als vollwertiges E-Commerce-System und liefert auf der Homepage eine Feature-Liste. An dieser Liste fällt jedoch auf, dass manche Funktionen, die eigentlich zu den Standards bei Shop-Lösungen gehören, extra hinzugekauft werden müssen. Zum Beispiel eine Produktsuche, andere Payment-Gateways als PayPal und Google-Checkout oder ein tabellarischer Aufbau der Produktanzeige (Grid-Layout). Diese Funktionen sind in verschiedenen Modulen erhältlich, die für das WP e-Commerce nachinstalliert werden können. Der Preis liegt zwischen 10 und 25 Dollar.

Viele Highlights bietet das Plugin nicht. Zu erwähnen wären jedoch One-Page-Checkout (bezahlen in einem Schritt) und die Marketing-Funktionen, die der Hersteller unter Social Networking anpreist, zum Beispiel das „Share This“-Plugin, mit dem Kunden Produkte bookmarken und weiterempfehlen können.

Deutsche Shopbetreiber, die WP e-Commerce einsetzen wollen, müssen sich auf viel Anpassungsarbeit einstellen. Auch in dieser WordPress Shop-Lösung ist nur eine Mehrwertsteuerklasse vorgesehen und die Versandoptionen bieten lediglich die Einstellung eines nationalen und internationalen Basispreises. Zudem liegt die deutsche Übersetzung nur in einer veralteten Version vor und ist unvollständig. Beispielsweise sind die Gewichtangaben in Pfund und Unzen fest kodiert und müssen in der entsprechenden Datei geändert werden.

Jene Shops, die von Instinct als Beispiele für den gelungenen Einsatz des WP e-Commerce-Plugins hervorgehoben werden, zeigen, dass damit optisch ansprechende und funktionstüchtige Shops betrieben werden können. Die Produktpräsentation kann mittels des zugekauften Grid-View-Moduls (Preis 15 Dollar) übersichtlich gestaltet werden. Die Produkte werden bebildert dargestellt, in Kategorien eingeteilt und in verschiedenen Varianten aufgeführt (inklusive eigener Preise). Da für das Frontend-Widget eingesetzt werden, braucht man auch ein Widget-fähiges Template.

Screenshot

Das Backend führt nach der Installation den Reiter „e-Commerce“ in der Navigation. Dahinter findet man die Punkte Sales (Verkäufe), Products (Produkte), Groups (Gruppen), Variations (Varianten), Marketing, Payment und Checkout Options (Bezahloptionen) und Settings (Einstellungen). Abgesehen von Produktverwaltung und Bezahloptionen beschränkt sich die Verwaltungsoberfläche somit auf die Anzeige der getätigten Käufe, Export in CSV, Umsätze des Monats und E-Mail-Benachrichtigung für den Kunden nach einer Bestellung. Um hier tatsächlich an den Funktionsumfang eines vollwertigen Shop-Systems heranzukommen, muss WP e-commerce noch deutlich erweitert werden.

Screenshot

Auch für dieses Plugin bleibt zusammenfassend die Erkenntnis, dass es als Shop-Lösung nur bedingt einsetzbar ist. Will man WP e-Commerce für den deutschen Markt fit machen, so ist einiges an Anpassungsarbeit zu leisten. Mindestens die Steuerklassen, die Versandoptionen, die Übersetzung und manche Feinheiten, wie eine Zustimmung zu den AGBs vor dem Zahlvorgang, müssen für den Online-Betrieb hierzulande überarbeitet werden. ™

Kategorien
CMS Programmierung

SilverStripe – CMS For The Rest Of Us?

Content Management Systeme gibt es wie Sand am Meer. Riesige Portale befassen sich allein mit deren Katalogisierung. Der Markt ist nahezu unüberschaubar geworden und stark von Technokraten geprägt. Wer schon einmal versucht hat, mit vertretbarem Aufwand ein CMS für ein Kundenprojekt qualifiziert auszuwählen, wird wissen, was ich meine. Nach einigen Stunden Recherche gab ich bislang noch immer auf und bog das Projekt so um, dass es mit Joomla, Typo3, WordPress oder Dreamweaver zu stemmen war. Tief im Inneren wusste ich jedoch stets, dass es irgendwo da draußen das System für den mittleren Internetauftritt geben musste. Das System, das einen nicht zwingt, erst einmal zum entsprechenden Experten des Systemsprech zu werden. Heute weiß ich, dass dieses System „SilverStripe“ sein könnte. Bald, vielleicht…

Der erste Eindruck

Auf den ersten Blick kommt „SilverStripe“ nicht sehr auffällig daher. Die Projektwebsite ist ein gestalterischer GAU. Wüsste man nicht, dass SilverStripe die diesjährigen CMS-Awards in der Kategorie „Most Promising“ des Verlages Packt Publishing gewonnen hat, man würde wahrscheinlich gar nicht erst die Downloads-Section aufsuchen. So aber motivierte es mich schon, zu erfahren, welche Software CMS Made Simple und ImpressCMS, die ich beide schon einmal testete und beiseite legte, geschlagen hatte.

Vielleicht sollte ich zunächst definieren, was ich von einem CMS für ein kleines bis mittleres Projekt erwarte?! Das Wichtigste ist eine überschaubare Einarbeitungszeit, sowie keine schwierig zu memorierenden Arbeitsschritte. Schließlich arbeite ich fallbezogen mit unterschiedlichen Technologien und kann mich nicht auf ein System einlassen, das erfordert, dass man dran bleibt, um seine Fertigkeiten nicht zu verlernen. Das gesuchte CMS muss entsprechend weitestgehend intuitiv bedienbar, jedenfalls intuitiv verstehbar sein. Also nicht so ein Navigationsmonster wie „ImpressCMS“:

impresscms-backend.gif

Was ich nicht gebrauchen kann, ist ein System, dass mit einer weiteren Template-Sprache arbeitet und mag sie auch noch so etabliert sein. Ich kann schon genügend Sprachen und will keine weitere erlernen müssen, bloß um ein CMS einsetzen zu können. Ideal wäre eine Software, die das Design vollständig html-/css-basiert ermöglicht und lediglich das Einfügen kleiner (!!) Logikblöcke in vorhandene Layouts erfordert. Ebenfalls als unbrauchbar empfinde ich Systeme, deren Seitenverwaltung einen förmlich erschlägt.

cmsmadesimple.gif

Aber der absolute Killer war bislang zumeist der Installationsprozess. Ungezählte CMS sind von meinen Festplatten geflogen, weil sie sich nicht oder nicht in akzeptabler Zeit installieren ließen. Bislang ungeschlagen steht in dieser Disziplin „WordPress“ da, wenn ich meinen Dreamweaver mal aus der Betrachtung lass.

Installation ohne unnötige Hemmnisse und Probleme

Mit diesen Erfahrungen und Erwartungen also ging ich an SilverStripe (SS) heran. SS erfordert PHP 5 und MySQL ab 4.1 und sollte einen Apache als Webserver antreffen, obschon es auch findige Leute gibt, die SS auf dem IIS ans Laufen bekommen werden. Ich hatte schon äußerste Schwierigkeiten, WordPress auf den IIS6 zu hieven und werde mich mit dieser Thematik nicht noch einmal auseinandersetzen. PHP und Apache gehören schlichtweg zusammen. Basta.

Angenehm überraschte mich bereits der Installationsvorgang. Detailliert zeigt SS auf, was an der Konfiguration noch nicht stimmte und nach ein paar einfachen Berechtigungseinstellungen klappte die Installation reibungslos und nahezu so schnell wie bei WordPress. Weitere Installationsscreens finden sich am Fuß dieses Beitrags in einer kleinen Gallery.

ss-install-1st-screen.gif

Themeinstallation  – retro, aber funktional

Während der Installation hat man die Möglichkeit, eine leere Website quasi als Tutorial-Grundlage oder eine mit fertigem Layout und Beispielinhalten zu erstellen. Ich entschied mich für die Beispielinhalte und so fand ich fünf Minuten nach dem Upload der Dateien eine funktionierende Website mit dem – allerdings ziemlich hässlichen – Standardtheme „BlackCandy“ vor. Schon in diesem frühen Stadium lernte ich die zwar überschaubare, aber doch ansprechende, weil professionelle Auswahl alternativer Themes auf der zugehörigen Downloadseite schätzen.

So lernte ich noch vor allen anderen Dingen, wie man Themes in SS installiert. Anders als in anderen Systemen, in denen die Template-Verwaltung per Backend längst etablierter Standard ist, ist bei SS dafür das Editieren der _config.php im Ordner mysite erforderlich. Angenehmerweise bedarf es bloß des Einfügens einer einzelnen Textzeile:

SSViewer::set_theme(„themename“);

Wobei unter „themename“ die Bezeichnung des Themes nach Downloaddatei eingegeben wird, in meinem Fall paddygreen. Exotischerweise muss man hernach noch den Cache flushen, indem man seine Website mit dem Parameter ?flush=1 versieht und aufruft. Auch wenn diese Vorgehensweise nicht nach 2008 klingt, muss man neidlos anerkennen, dass sie reibungslos und ohne Wenn und Aber funktioniert. Sechs Minuten nach dem Upload der Dateien auf meinen Server verfügte ich somit über eine ansprechende Website, ohne dass ich bis dahin nennenswerte Aktivitäten entwickelt hätte.

ss-website-after-themechange.gif

Website fertig nach 30 Minuten (längstens)

Seitenbetreiber, die auf der Suche nach einem leistungsfähigen CMS sind, dabei aber keine hohen Ansprüche an eigenständiges Design stellen, können sich an dieser Stelle bereits zurücklehnen und den Themekatalog auf der Silverstripe-Website aufrufen. Die meisten der dort enthaltenen Templates halten professionellen Gestaltungsansprüchen durchaus Stand und können dabei unproblematischer angepasst werden als das handelsübliche WordPress-Theme. Und so kann eine Website nach einer halben Stunde Arbeit bereits so aussehen, wie die Projektsite Inventionate.de, die auf dem unveränderten Paddygreen-Theme basiert.

Seitenbetreiber, die auf der Basis vorhandener Themes arbeiten, aber doch eine gewisse Eigenständigkeit erreichen wollen, werde sich darüber freuen, dass es in SilverStripe grundsätzlich mehrere CSS-Dateien mit jeweils klar definierten Aufgabengebieten gibt. So ist für das Erscheinungsbild, soweit es um die Positionierung von Objekten et cetera geht, die Datei layout.css zuständig. Formulare werden über form.css.css gestyled und die Typographie über typography.css. Weitere CSS-Dateien für weitere Aufgaben finden sich gemeinsam mit den bereits genannten stets im Unterverzeichnis css. Systemseitig erforderlich sind lediglich layout.css, typography.css und form.css. Weitere CSS-Dateien können, müssen aber nicht angelegt werden. Der Vorteil dieser Vorgehensweise, gerade für die Anpasserfraktion liegt in der größeren Übersichtlichkeit und Vorhersehbarkeit der Auswirkungen auf die Seitenoptik. Profis, die ohnehin CSS ohne Cheatsheets und sonstige Hilfen mittels Notepad erstellen, werden darin keinen Nutzen erkennen.

Templating – Separating the boys from the men

Silverstripe ist nicht nur ein CMS, sondern in gleichem Maße, wenn nicht ausgeprägter, ein Framework zur Anwendungsentwicklung, nicht unähnlich dem populären Ruby on rails. Konsequenterweise werden Code und Layout in einer Art und Weise getrennt, wie sie der durchschnittliche – sagen wir – WP-Themedesigner nicht kennt, wie sie aber der reinen Lehre einerseits und dem Workflow größerer Agenturen andererseits eher entsprechen dürfte. „No code in the template-files“, lautet die Devise. In Themedateien darf kein PHP verwendet werden. Stattdessen müssen alle PHP-Funktionen in separaten Dateien deklariert werden. Aus dem Template heraus erfolgt nur noch ein einfacher Aufruf der im Controller deklarierten „custom functions“.

ss-templating.png

Auf diese Weise bleibt der Themecode überschaubar und leicht zu ändern, einerseits. Andererseits mag es nicht für jeden Zweck sinnvoll erscheinen, zunächst eine „custom function“ erstellen zu müssen, bloß um diese dann aus dem Theme heraus verwenden zu können. Manch einer würde sich da sicherlich zumindest ein Wahlrecht wünschen. Dem Workflow größerer Agenturen hingegen mag diese Vorgehensweise sogar eher entsprechen. Dort arbeiten in der Regel Programmierer und Designer in strikter fachlicher Trennung und so mag es Silverstripe dort leichter haben, weil der Designer nicht in des Coders Dateien und umgekehrt rumpfuschen muss. Die durchschnittliche One-Man-Show der Webentwicklung hat natürlich davon zunächst keinen Vorteil.

Silverstripe erweitern

Durch die Anlage als Framework ist es mit Silverstripe grundsätzlich leichter, Projekte zu entwickeln, die sich nicht starr in ein CMS-Schema einpassen lassen. Fehlt eine Funktionalität kann sie – entsprechende PHP-Skills vorausgesetzt – relativ unproblematisch hinzugefügt und systemintegriert verwendet werden. Insoweit ist Silverstripe mehr ein Werkzeug zur Anwendungsentwicklung, denn ein reinrassiges CMS und ähnelt an diesem Punkt noch am ehesten dem Funktionsmonster „Drupal“, bleibt dabei aber wesentlich handhabbarer.

Anders als in konkurrierenden Projekten gibt es für Silverstripe bislang nur wenige zusätzliche Module, die man out of the box verwenden könnte. Zudem weisen die vorhandenen Module eine durchaus unterschiedliche, bisweilen durchwachsene Qualität auf. Insbesondere das Blogmodul dürfte dem WP-verwöhnten User die Tränen in die Augen treiben; ob vor lachen oder weinen mag jeder für sich selbst beurteilen.

Für etliche wesentliche Funktionsbereiche sind Module bislang nicht entwickelt worden. Silverstripe-Entwickler Ingo Schommer beklagte sich in gebotener Zurückhaltung über diesen Umstand bereits kommentierenderweise in dem ein oder anderen Blog. In der Tat scheint die Community um das Projekt bislang nur mäßig aktiv zu sein. All das wird den ambitionierten PHP-Entwickler nicht stören, kann er doch jedwede Funktion selber nachrüsten. Der Seitenbetreiber, der im Wesentlichen auf fertige Module angewiesen ist und sich lediglich an der optischen Anpassung beteiligen kann, wird möglicherweise noch einige Monate abwarten und auf die Belebung der Silverstripe-Community setzen müssen.

Fazit

Zum jetzigen Zeitpunkt ist Silverstripe das CMS der Wahl für kleine bis mittelgroße Websites, deren Entwickler entweder PHP-Profis oder weitgehend kenntnislos sind. Der PHP-Profi baut flexible Funktionalitäten so einfach in das System wie bei keinem anderen CMS sonst und realisiert auf diese Weise auch exotische Kundenwünsche. Der Seitenbetreiber ohne tiefergehende Kenntnisse freut sich über ein einfach zu installierendes und noch einfacher zu administrierendes System mit einer professionellen Themebasis, die unter Verwendung nur geringer CSS-Kenntnisse angepasst werden kann. Entwickler, die hinsichtlich ihrer Skills irgendwo zwischen diesen beiden Polen liegen, werden sich bei TYPOlight oder Drupal möglicherweise besser betreut fühlen. Definitiv aber ist Silverstripe mehr als nur einen kurzen Blick wert.

Anhang: Weitere Webquellen zu Silverstripe

  • Silverstripe – ein Schimmer am CMS Horizont? | medamind: Anne-Kathrin Merz, eingefleischte Joomla-/Typolight-Entwicklerin nähert sich an Silverstripe an, mit offenen Holprigkeiten…
  • SilverStripe CMS: Early Impressions — MikeWhoBikes: Mikes Early Adopters Impressionen und ein kurzer Dialog mit einem der Core-Entwickler.
  • Der neue Stern am CMS-Himmel! Oder doch nicht? | webholics – development +design | Freelancer im Bereich Webentwicklung und Webdesign: Mario Volkes recht harsche Kritik am seiner Meinung nach inkonsistenten und fehlerbehafteten Silverstripe.
  • FreelanceSwitch Forums – SilverStripe vs CMS Made Simple?: Ein interessanter Forumsthread für alle CMS-Nomaden.
  • SilverStripe – A New CMS Contender – from Beyond Caffeine and WebsiteStyle.com: Beyond Caffeine Bloggerin Nicole kritisiert qualifiziert Schwierigkeiten in Sachen Templatedesign unter Silverstripe.
  • Das PHP-Magazin zu Silverstripe: Bereits im März 2008 befasste sich das renommierte PHP-Magazin mit dem Newcomer-CMS und fokussierte dabei besonders auf die Framework-Eigenschaften.
  • Tobis Welt » Ein erster Test von Silverstripe 2.3.0 RC1: Tobias Hoderlein bloggt unermüdlich zum Thema Silverstripe. Informativ und deutschsprachig…
  • praegnanz.de: Silverstripe – mein neuer Top-Favorit!: Auf Praegnanz.de schaltet sich auch der deutsche Entwickler des Silverstripe-CMS in die Diskussion ein. Informationen aus erster Hand also.
  • SilverStripe CMS im praktischen Einsatz | tactical web development blog: Entwickler Broschart schildert in aller Kürze die Umsetzung eines Kundenprojektes auf Basis des Silverstripe-CMS.
  • Das Silverstripe-Buch: Im Galileo-Verlag erscheint im Februar 2009 ein Buch zum Newcomer. Autor Broschart verspricht fachkompetente Informationen. ™
Kategorien
CMS Programmierung

CMS mit Shopsystem Teil 2: E-Commerce-Module für Drupal

Wer mit Drupal-Sites Geld verdienen will, muss sich zwischen dem altbewährten e-Commerce-Modul und „Neuling“ „Ubercart“ entscheiden. Alternativen gibt es nicht. Beide E-Commerce-Lösungen präsentieren sich jedoch als ausgereifte Shop-Module und unterstützen die Community-Möglichkeiten des CMS.

Drupal ist spezialisiert auf Communities. Damit besetzt es eine besondere Nische unter den kostenlosen Open Source-CMS. Mit diesem Schwerpunkt auf 2.0-Gemeinden erwachsen auch einzigartige Möglichkeiten für Online-Shops. Drupal bietet im Verein mit seinen E-Commerce-Modulen die Möglichkeit, Communities rund um ein Produkt aufzubauen oder eine Drupal-Community zum Marktplatz zu machen, etwa durch die Schaffung eines virtuellen Auktionshauses oder durch bezahlpflichtige Mitglieder-Bereiche.

Außerdem gilt Drupal als suchmaschinenfreundlich, bietet gewisse Sicherheit vor Hacker-Attacken und verfügt über eine große Fan-Gemeinschaft, die Seitenbetreibern hilfsbereit mit Rat und Tat im Forum zur Seite steht. Für besonders dringende und ausgefallene Bedürfnisse tummelt sich auch noch eine Reihe professioneller IT-Dienstleister im Drupal-Umfeld, die gegen ein entsprechendes Honorar jedes Problem in den Griff kriegt.

E-Commerce und Drupal: noch viel Platz für Mitbewerber

Die Drupal-Gemeinde zählt zwar zu den größten unter den kostenlosen Open Source-Content-Management-Systemen, im Bereich E-Commerce herrscht allerdings noch nicht viel Konkurrenzkampf unter den Entwicklern. Das offizielle Drupal Modul Repository listet 111 Module im Bereich E-Commerce, die tatsächliche Anzahl an Shop-Lösungen für Drupal fällt aber weit bescheidener aus. Dort finden sich mit e-Commerce, Ubercart und EZ-Shop in Wahrheit nur drei Module dieser Art. Der Rest sind Erweiterungen für e-Commerce und Ubercart. Inwieweit EZ-Shop als ausgereiftes Modul angesehen werden kann, ist ohne Ungarisch-Kenntnisse nur schwer einzuschätzen. Zwar gibt es auf der Homepage der Entwickler aus Budapest teilweise auch englischen Inhalt, vielmehr als „Webshop leicht gemacht“ ist daraus jedoch noch nicht herauszulesen.

Neben e-Commerce und dem noch jungen Projekt „Ubercart“ bietet die Drupal-Community also noch viel Platz für weitere Konkurrenz, die den Markt belebt und den Usern professionelle Werkzeuge für den Onlinehandel zur Verfügung stellt.

e-Commerce: Erfahrung und Funktionsvielfalt

Das e-Commerce-Modul war bis Anfang Juni 2008 als die erste stabile Version des Konkurrenten Ubercart erschienen, die einzige vollwertige E-Commerce-Lösung für Drupal. Derzeit in Version 3 für Drupal 5 verfügt das e-Commerce-Modul über entsprechend viele Entwicklungsjahre und Funktionen. Es bietet unter anderem ein vielseitiges Produktgenerierungs- und Attributsystem, Discount-Optionen, eine Lagerverwaltung, den Verkauf von digitalen Gütern, Charts, einen Rechnungsgenerator und macht es möglich, Auktionen durchzuführen. Für das Tool existieren unzählige Erweiterungen, womit zunehmend viele User aber auch unzufrieden sind. „e-Commerce ist aufgeblasen, unübersichtlich und schwierig zu konfigurieren. Es gibt zwar fast alles, aber man braucht viel Zeit alles so hinzubiegen, wie man es haben will“ lautet ein oftmaliges Fazit in Drupal-Blogs und Forumseinträgen.

Eine umfassende Dokumentation könnte viele Probleme bei der Einrichtung des Moduls aus dem Weg räumen. Trotz der vielen Jahre auf dem Markt liegt ein gutes Handbuch noch nicht vor. Als es keine Konkurrenz gab, war dies auch nicht nötig.

Mit dem Erscheinen von Ubercart änderte sich jedoch diese Situation und die User-Gemeinde des e-Commerce-Moduls erwachte zu neuem Leben. Eine zentrale Homepage wurde geschaffen und es scheint so, als würde man mit Version 4.x, die sich bereits in der Beta-Phase befindet, noch vor Ubercart eine Shop-Lösung für Drupal 6 herausbringen. Dieser Schritt war auch notwendig, denn auf dem Vorsprung an Funktionsvielfalt werden sich die Entwickler des e-Commerce-Moduls nicht mehr lange ausruhen können.

Ubercart: moderne „Out-of-the-Box“-Lösung

„Neuling“ Ubercart mischte die Karten im E-Commerce-Sektor rund um Drupal neu. Die Lösung präsentierte sich von Anfang an als benutzerfreundliches Out-of-the-box Modul. Die derzeit aktuelle Version 1.6 ist für Drupal 5 gedacht. Das Projekt beschäftigt zwei Vollzeit-Entwickler, die auch bereits an einer Version 2.0 für Drupal 6 arbeiten.


Die Ubercart Admin-Oberfläche.

Ubercart ist den hohen Ansprüchen moderner Shop-Betreiber angepasst. Benutzerfreundlichkeit im Backend und Kundenfreundlichkeit im Frontend sind die Leitlinien des Projekts. Trotz übersichtlicher Menüführung bietet die Shop-Lösung eine breite Auswahl an Features. Darunter finden sich Highlights wie Single-Page-Checkout (=Bezahlen in einem Schritt), automatische Account-Erstellung (ermöglicht anonymisiertes Bezahlen) und die Verwaltung von zahlungspflichtigem Membership-Inhalt. Mit „Single-Page-Checkout“ bietet Ubercart sogar eine Funktion, die das e-Commerce-Modul noch nicht listet.

Dennoch hinkt das junge Ubercart-Projekt dem e-Commerce-Modul bei der Funktionsvielfalt noch hinterher. Zudem fehlen für deutsche User entsprechende Übersetzungen. Jene Sprachpakete, die auf dem Sprachserver liegen, müssen vor dem Live-Einsatz noch überarbeitet werden.
Mit der Zeit wird Ubercart solche „Kinderkrankheiten“ jedoch hinter sich lassen. Denn schon jetzt ist eine starke und wachsende Community festzustellen. Mehr als 3.500 registrierte Forumsuser beantworten Fragen innerhalb weniger Stunden und immer mehr Community-Mitglieder beteiligen sich freiwillig an der Weiterentwicklung des Projekts.

Hinzu kommt, dass Ubercart aufgrund prominenter Live-Sites viel Aufmerksamkeit erhält. So verwendeten laut den Drupal-Theme-Designern von „Collective Mind“ bereits AOL und Warner Brothers Records Ubercart für kurze Zeit in ihrem Online-Shop. Damit sich jeder selbst ein Bild dieses Drupal-Moduls machen kann, bietet die offizielle Projekthomepage einen Testshop und Links zu zahlreichen Live-Shops. ™

Der Live-Shop „B-Who-U-R“ („Sei, wer du bist!“) zeigt Ubercart im Einsatz.

Kategorien
CMS Programmierung

CMS Joomla! – Ein Alleskönner unter der Lupe: Rund um Joomla! (Teil 4 von 4)

Joomla! ist beliebt und wird von vielen Seitenbetreibern eingesetzt. Dementsprechend professionell ist auch das Umfeld, welches sich um dieses CMS gebildet hat. Handbücher, Lehrvideos, Erweiterungen und Support sind im Netz oder auch im gut sortierten Buchhandel leicht zu finden.

Joomla!-Dokumentationen sind ein eigener Markt

Wer Joomla! verwenden will, wird nicht an der fehlenden Dokumentation oder an Sprachbarrieren scheitern. Es befinden sich zahlreiche Anleitungen und Erklärungen zu Joomla! in großer Sprachenvielfalt im Netz. Eine umfassende deutsche Dokumentation stellt beispielsweise das Joomla!book, ein ausführliches Wiki rund um das CMS, dar.

Wer ungern Anleitungen auf dem Bildschirm liest und auch ausgedruckte Papierberge vermeiden will, wird zudem im gut sortierten Buchhandel fündig. Ein kurzer Blick in die Ecke mit Computer-Fachliteratur und das auffällige Joomla!-Logo sticht sofort auf zahlreichen Buchrücken ins Auge. Auf Amazon findet man unter dem Stichwort „Joomla!“ auf Anhieb 44 deutschsprachige Buchtreffer. Zusätzlich gibt es noch Lern-Software und DVDs zum Thema Joomla!. Wer keine Bücher wälzen will, kann sich stattdessen Videotrainings auf dem PC-Schirm ansehen.

Die wichtigsten Joomla!-Dokumentationen:

Support

Im Mittelpunkt des Supports eines jeden quelloffenen und freien Content Management Systems steht das eigene Forum. Die Community der Joomla!-Foren ist riesig. Es gibt dutzende Versionen in verschiedenen Sprachen. Allein das deutsche Forum verzeichnete bis zum 29. Oktober 87.933 Benutzer und mehr als 735.000 Beiträge.

Persönlicher Support wird für Joomla! in Form von speziellen Joomla!-Hostings, Joomla!-Kursen und bedarfsorientierten IT-Dienstleistungen von zahlreichen Unternehmen angeboten. So notiert Google ungefähr 127.000 Treffer, wenn nach „Joomla-Dienstleistungen“ gesucht wird.

Eine kleine Auswahl verschiedener Support-Anbieter für Joomla!:

Erweiterungen und Templates

Am einfachsten ist die Suche nach Erweiterungen und Templates auf den offiziellen Joomla!-Seiten. Schon auf der englischsprachigen Site und dem deutschen Gegenstück findet man mehr als 4.000 Extensions und Templates. Jedoch bieten auch weitere Joomla!-Nutzer, vom privaten Hobby-Programmierer bis hin zum professionellen IT-Dienstleistungsunternehmen, zahlreiche Erweiterungen. Wie viele Module, Plugins, Komponenten und Templates insgesamt existieren, weiß niemand.

Eine große Auswahl an Erweiterungen und Designvorlagen steht unter folgenden Seiten zum Download bereit:

Community: User Groups, Events, Magazin, Blogs

Die Joomla!-Community ist nicht nur groß, sie ist auch professionell organisiert. Im Community-Bereich der offiziellen Homepage erhält man einen Überblick. Es gibt Joomla! User Groups, regelmäßige Events, ein eigenes Community Magazin, Blogs und noch mehr.

Joomla! User Groups, kurz JUGs, sind regionale Gruppen von Joomla!-Benutzern und –Entwicklern. Sie treffen sich regelmäßig, tauschen Informationen über das CMS aus und planen gemeinsame Projekte wie zum Beispiel Workshops. JUGs finden sich auf allen fünf Kontinenten. Deutschsprachige Gruppen gibt es in Deutschland, Österreich und in der Schweiz. Die Events der gesamten Community werden in einem Veranstaltungskalender abgestimmt und im eigenen Community-Magazin angekündigt.
Zusätzlich wird die treue Gemeinschaft von den Entwicklungsteams mit regelmäßigen Blogeinträgen auf dem neuesten Stand des Joomla!-Projekts gehalten.

Die wichtigsten Links der Joomla! Community im Überblick:

Fazit

Wer ein Content Management System sucht, ist mit Joomla! fast immer gut beraten. Die Bedienung erfordert zwar eine kurze Einarbeitungszeit, danach präsentiert sich Joomla! allerdings durchwegs benutzerfreundlich. Das CMS sammelt Pluspunkte durch seine Vielseitigkeit. Die unüberschaubare Anzahl an Modulen, Plugins und Komponenten macht Joomla! zum Alleskönner – von der einfachen Präsentationsplattform bis hin zur kompletten E-Commerce-Lösung. Zudem dürfen die Nutzer bei Problemen auf das Wissen und die Unterstützung einer riesigen Community hoffen.

Schwächen zeigt Joomla! nur, wenn die Seiten zu groß werden oder eine besondere Nutzerverwaltung nötig ist. Dann stößt das CMS durch seine einfache Struktur im Aufbau von Websites oder seine unausgereifte Zugriffsverwaltung an seine Grenzen. ™

Kategorien
CMS Programmierung

CMS Joomla! – Ein Alleskönner unter der Lupe: Joomla! erweitern (Teil 3 von 4)

Die Erweiterbarkeit ist eine der Stärken von Joomla!. Mit wenigen Klicks können Sie Ihrer Homepage eine Vielzahl an Funktionen oder ein neues Aussehen verpassen. Die meisten Erweiterungen und Templates müssen Sie nicht aufwendig selbst erarbeiten. Sie können auf die reichhaltige Auswahl im Netz zurückgreifen. Für Joomla! gibt es bereits so viel Zusatz-Material, dass die genaue Menge nicht mehr zu benennen ist.

Erweiterungen sind kleine Zusatzprogramme. Sie verändern entweder vorhandene Inhalte und bereiten diese neu auf oder sie geben zusätzliche Informationen auf der Homepage aus. Joomla! teilt die Erweiterungen in drei Arten:

  • Module: Sie dienen der Anzeige spezieller Inhalte im Front- und Backend. Module können im Template positioniert werden und sind kein Bestandteil des normalen Inhaltsbereichs. Meist werden Module bei Joomla! am Rand eingesetzt. Ein Beispiel ist das Suchformular.
  • Plugins: Das sind kleine Programme, die den Inhalt einer Seite verändern, bevor dieser ausgegeben wird. Sie verrichten auch systemnahe Aufgaben wie die Anmeldung der Benutzer oder die Erweiterung der Suche. Beispielsweise ist der WYSIWYG-Editor „TinyMCE“ ein Plug-in.
  • Komponenten: Sie sind die komplexesten Erweiterungen. Als solche können sie dynamische Inhalte verwalten und im Backend sowie in der Datenbank getrennte Bereiche beanspruchen. Die Komponenten werden meist direkt im Inhaltsbereich angezeigt. Manche besitzen zugeordnete Module oder Plug-ins, um Inhalte anzuzeigen. Über Komponenten können Sie zum Beispiel ein Forum in Ihre Seite einbinden.

Erweiterungen installieren

Die Fülle an Joomla!-Extensions reicht von einer simplen Kalenderanzeige bis hin zur voll ausgebauten Webshop-Lösung. Zahlreiche Downloads stehen auf der offiziellen Joomla!-Site zur Verfügung. Auch Joomlaos hat ein großes Angebot an Modulen, Plug-ins und Komponenten. Tausende weitere Extensions gibt es auf den zahlreichen länderspezifischen Joomla!-Sites sowie privaten und kommerziellen Sites.

Um eine Erweiterung auf einer Homepage einzubinden, muss man sie als ZIP-Archiv herunterladen. Dann kann man dieses Archiv direkt aus dem Joomla!-Backend unter Erweiterungen hochladen und installieren. Entpacken und in die Ordnerstruktur einbinden erledigt Joomla! von selbst. Dieser Vorgang ist immer gleich, egal ob Sie ein Modul, ein Plug-in oder eine Komponente installieren wollen.

Die Erweiterungen im Einsatz

Wollen Sie neue Module oder Plug-ins einsetzen, müssen Sie sie im entsprechenden Verwaltungsbereich aktivieren.

Anhand der Details in der entsprechenden Editieransicht bestimmen Sie die Position der Erweiterung im Frontend, für welche Benutzer sie sichtbar ist und weisen sie bestimmten Menüs zu.

Für Komponenten besteht in der Navigationsleiste des Backends ein eigener Menüpunkt. Handelt es sich bei der neuen Komponente um eine besonders aufwendige Erweiterung, wie zum Beispiel das Fireboard Forum, besitzt sie sogar ein eigenes Kontrollzentrum:

Darüber lassen sich die Funktionen in der Art und Weise steuern, wie es auch das allgemeine Joomla!-Backend ermöglicht.

Templates verwalten

Die Optik einer Joomla!-Homepage wird einem modernen CMS entsprechend über Templates gesteuert. Das Template wird so zum grafischen Grundgerüst der Website und vom Inhalt getrennt verwaltet. Das heißt, Sie können Ihre Inhalte jederzeit in einer neuen Umgebung erscheinen lassen, ohne diese selbst anzutasten. Sie müssen lediglich das Template austauschen. Die Verwaltung der Templates finden Sie in der Navigation unter Erweiterungen/Templates. Dort sind alle installierten Templates aufgelistet. Indem Sie das Sternsymbol in der Spalte „Standard“ versetzen, wird ein anderes Template aktiviert.

Weitere Templates finden Sie zu tausenden im Internet. Je nach Anbieter sind diese Designs kostenpflichtig oder gratis. Für Joomla! 1.5 gibt es drei verschiedene Arten von Templates:

  • Statische Templates haben eine feste Breite und sind für eine bestimmte Bildschirmbreite ausgelegt.
  • Dynamische Templates passen sich der Breite des Bildschirms des Users an
  • Templates mit wählbarer Breite; bei diesen Templates können Sie die Breite über Parameter festlegen.

Wenn Sie sich bei einem Anbieter (zum Beispiel Joomlaos) für ein Template entschieden haben, müssen Sie die Quelldatei, ein ZIP-Archiv, herunterladen. Die Installation erfolgt genauso wie bei einer Erweiterung. Unter dem Menüpunkt „Erweiterungen“ die Option „Installieren/Deinstallieren“ aufrufen und den Installationsmanager starten. Danach können Sie das Template aktivieren.

Der Einsatz von vorgefertigten Templates ist leicht und unkompliziert. Sie können Ihrer Homepage damit ohne großen Aufwand einen professionellen Look verpassen. Ein Nachteil daran ist jedoch, dass das Template Ihrer Wahl vielleicht schon 1.000 Mal verwendet wird. Wenn Sie ein unverwechselbares Design möchten, brauchen Sie Kenntnisse im Webdesign oder müssen einen Profi dafür bezahlen.

Fehlen Ihnen das nötige Wissen oder Geld, so könnten Sie ein vorgefertigtes Layout Ihren persönlichen Vorstellungen anpassen.
Sehr schnell und oberflächlich geht dies über die Modulverwaltung, indem Sie Module im Frontend ein- oder ausblenden. Wenn Sie dem Template noch eine eigene Note verpassen möchten, müssen Sie in das Verzeichnis des Templates eindringen. In dem Ordner „images“ befinden sich die Grafikstücke des Layouts. Diese können Sie mit eigenen Grafiken austauschen (zum Beispiel die Logodatei) oder farblich verändern. ™