Heute möchte ich kurz ein CMS vorstellen, welches mich sehr begeistert. Sicher kennen viele Joomla (früher Mambo). Ich habe damit auch gearbeitet, aber es war mir immer zu kompliziert. Man kann sehr viel damit machen, aber dafür ist es hie und da recht umständlich. Auch Typo3 hat mich wegen seiner Komplexität abgeschreckt. Per Zufall bin ich vor über einem Jahr auf
Etomite gestossen. Bis heute habe ich schon einige Websites damit realisiert und bin immer wieder aufs Neue davon fasziniert.
Was macht es so toll?
Mir gefällt, dass es für Entwickler geschrieben wurde. Es nimmt einem viele Routineaufgaben ab, die man mit statischen Seiten zu erledigen hätte (Menüs erstellen etc.). Aber man braucht trotzdem Kenntnisse von HTML/CSS/Javascript (und PHP, wenn man eigene Erweiterungen schreiben will). Dafür kann man überall eingreifen.
Ein einfaches Template sieht beispielsweise so aus:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="templates/andreas/01/andreas01.css" media="screen" title="andreas/01 (screen)" />
<title>[(site_name)] :: [*pagetitle*] :: andreas/01</title>
</head>
<body>
<div id="wrap">
<div id="header"><h1>[(site_name)]</h1></div>
<img id="frontphoto" src="templates/andreas/01/images/front.jpg" width="760" height="175" alt="" title="" />
<div id="avmenu">
<h2 class="hide">Menu:</h2>
<ul>
[[ListMenu?LM_node=0]]
</ul>
</div>
<div id="content">
<h2>[*longtitle*]</h2>
[*content*]
</div>
<div id="footer">
Copyright © 2006 [(site_name)]. Design by <a href="http://andreasviklund.com" title="andreas01">Andreas Viklund</a> / <a href="http://www.baynetservices.co.uk" title="bay net services">Bay Net Services</a>.
</div>
</div>
</body>
</html>
Den Platzhalter [*content*] ersetzt Etomite durch den Inhalt der gewählten Seite. [*pagetitle*] steht für den Seitentitel usw.
Um dynamische Inhalte einzubinden gibt es Snippets. Das sind ganz einfach PHP-Funktionen, deren Rückgabewert an der gewünschten Stelle auf der Seite ausgegeben wird. So kann man einfachere Erweiterungen sehr schnell schreiben.
Ein Beispiel für ein Snippet:
// Snippet name: DateTime
// Snippet description: Makes a date and time... thingy.
// Revision: 1.1 ships with Etomite 0.6.1-Final
// Author: Alex -- 2004-09-12
/ For such a small piece of code, this is an exceedingly
powerful and handy snippet. The snippet accepts one
parameter, 'timestamp'. If this isn't set, the snippet
will display the current date and time. If you pass a
timestamp (UNIX-style), it will convert that instead.
Probably the most useful way of using this snippet is
by writing something like the following in your template
or document:
Last edited on: [[DateTime?timestamp=[*editedon*]]
This will display the date and time at which the document
was last altered on your page!
/
// Changes:
// v1.1 by Lloyd Borrett -- 2005-02-07
// Return local time based on Etomite server offset time
// get the Etomite server offset time in seconds
$server_offset_time = $etomite->config['server_offset_time'];
if (!$server_offset_time) {
$server_offset_time = 0;
}
if(!isset($timestamp)) {
$timestamp=time();
}
return strftime("%d-%m-%Y %H:%M:%S", $timestamp + $server_offset_time);
Wie Ihr seht, kann man von den Snippets aus auf das $etomite-Objekt zugreifen und so viele Informationen auslesen. In der
Snippet Library gibt es viele weitere Snippets zum Download. Eine Gallery oder ein Gästebuch sind absolut kein Problem.
Vielleicht konnte ich mit diesem Beitrag einigen von Euch das relativ unbekannte Etomite näher bringen. Falls ihr mit anderen CMS gute oder schlechte Erfahrungen gemacht habt, freue ich mich natürlich über einen Kommentar.