Pflege von CMS / Modulprogrammierung

marneus

Registered User
Guten Tag zusammen!

Hier werden ja in letzter Zeit eine Menge Threads bzgl. "einfacher" / "light-weight" CMS aufgemacht und nach Erfahrungen gefragt. Ich möchte etwas spezifischer einsteigen und fragen, wie ihr die (gängigen) CMS hinsichtlich ihrer Pflegbarkeit einschätzt.

Insbesondere interessiert es mich aus gegebenem Anlass, inwiefern die Programmierung von Modulen eher einfach (im Sinne von zu beachtender Nomenklatur, Ordnerstrukturierung und vor allem Einbindung und API) oder schwer ist.

Meine Erfahrung in Sachen PHP sind durchaus handfest, jedoch schrecke ich immer noch regelmäßig vor fertigen CMS zurück, weil die Modulprogrammierung für mich teilweise einfach undurchschaubar ist.

Ich freue mich auf einen regen Meinungsaustausch.

Grüße,
--marneus
 
Ich beschäftige mich auch angehend damit da ich meine Seiten durch spezielle oftmals nicht vorhandene Features erweitern möchte.

Ich arbeite viel mit Wordpress, Foren (WBB, SMF, phpBB) und dem w3blaborcms da meine Seiten eher statischen Content haben eignen sich solche "kleinen" CMS oftmals besser.

Wordpress bringt dafür die gern und viel genutzte Widgetfunktion mit sich. Dank der "API" kann man die Widgets auch mit Einstellungen/Optionen versehen etc pp. Wie Funktionen, Vorgehensweise, Möglichkeiten und viele Codesnippets finden man in den diversen Wordpressforen, Wikis, FAQ-Sammlungen etc. Man kann also auch ohne großes Vorwissen seine eigenen Erweiterungen schnell und sauber erstellen.

Bei Foren ist es sehr unterschiedlich, großer Vorteil der Woltlab Produkte ist das neue Framework mit dessen Hilfe das erstellen von Erweiterungen ein Kinderspiel ist. Wenn man sich da jedoch nicht herantraut gibt es eine sehr grpße Community in der man nicht nur viel Hilfe erhält, sondern man auch sehr viele Plugins und Erweiterungen findet.

Mein letztes Beispiel, das w3blaborcms ist ein wahres miniCMS. Es bietet zwar eine einfache Möglichkeit Erweiterungen in Form von Modulen zu erstellen, jedoch gibt es keine Workarounds oder ähnliches dazu. Anhand der Erweiterungen die bereits existieren ist es jedoch ein leichtes weitere zu Schreiben. Eine API etc. gibt es leider nicht (ist ja auch ein miniCMS).
 
Meine Erfahrung in Sachen PHP sind durchaus handfest, jedoch schrecke ich immer noch regelmäßig vor fertigen CMS zurück, weil die Modulprogrammierung für mich teilweise einfach undurchschaubar ist.

Ich setze das mwCMS ein. Es basiert auf MediaWiki und YAML. Die Modulprogrammierung erfolgt in PHP.

Beispiel für eine MediaWiki Extension (die im CMS 1:1 umgesetzt wird):
PHP:
$wgExtensionFunctions[] = 'example';
 
function example()
{
    global $wgParser;
    $wgParser->setHook('example', 'process_input');
}
 
function process_input($input, $args, $parser)
{
    return 'Hello World! Your input: ' . htmlspecialchars($input);
}

Plugins (mwCMS):
PHP:
<?php include_once 'templates/col3_begin.htm'; ?>
 
<h1>Hello World!</h1>
 
<p>Date: <?=date('Y-m-d')?><p>
 
<?php include_once 'templates/col3_end.htm'; ?>

Das CMS bringt Dir aber nur was, wenn Du fit in PHP, XHTML und CSS bist. Von regulären Ausdrücken mal gehört zu haben kann auch nicht schaden.

Mehr zu Extensions und Plugins ...

Für das MediaWiki gibt es schon viele fertige Extensions:

Aber das Schreiben von Extensions und Plugins ist (siehe oben) auch wirklich einfach.

Gruß
Claus
 
Ich verwende Etomite unter anderem deshalb, weil mir das Erstellen von Modulen bei Joomla zu kompliziert war.

Etomite verwendet zur Erweiterung "Snippets". Das geniale daran: Es sind einfach PHP-Funktionen, deren Rückgabewert an der gewünschten Stelle angezeigt wird. Ein "helloworld"-Snippet sieht so aus:

PHP:
$text = 'Hello World!';
return $text;

Eingebunden wird es dann so:

Code:
Hallo Welt auf Englisch ist [[helloworld]]

Von den Snippet aus kann man auf das $etomite-Objekt zugreifen, welches zB. Funktionen zum Abfragen der Anzahl User online, letztes Änderungsdatum der Seite etc. bereitstellt.
 
Kurze Frage:
Woran erkennt "[[helloworld]]", dass der Return-Parameter "$text" gemeint ist?

Heißt die Funktion vielleicht "helloworld"?

Gruß
Claus
 
Woran erkennt "[[helloworld]]", dass der Return-Parameter "$text" gemeint ist?

Das Snippet selbst heisst helloworld, den Namen vergibt man beim Erstellen.

Funktionsbezeichnung gibt es keine, das Snippet ist eigentlich der Teil innerhalb einer "function { }".

Ausgegeben wird alles, was mit "return" zurückgegeben wird, wie bei einer normalen Funktion.
 

Attachments

  • etomite.JPG
    etomite.JPG
    40.7 KB · Views: 134
Back
Top