Main /

ElsniWiki (ewiki)

Allgemein

Knowledge Base

Virtualisierung Emulation

Technik und Wissen

Community

Privat

%center%[[http://validator.w3.org/check?uri=referer|http://www.w3.org/Icons/valid-xhtml10.png]]%%

ElsniWiki (ewiki)

ElsniWiki heißt dieses Wiki-System, bzw. diese Installation von PmWiki.

Eigentlich wollte ich (Elsni) ein eigenes Wiki-System schreiben, allein mir fehlt die Zeit, also Griff ich auf PmWiki zurück, das einen ganz guten Kompromiss zwischen Leistung und Komplexität darstellte. Ich plante eigentlich es selbst zu erweitern, aber habe es dann doch gelassen.

PmWiki ist leider wie viele PHP-OpenSource-Systeme fürchterlich schlecht programmiert. Das fängt bei der Tatsache an, daß dem Autor scheinbar die objektorientierte Programmierung unbekannt ist, geht über if-else und for-schleifen die komplett in einer Zeile stehen und include-Orgien und endet bei Funktions- und Variablennamen in Arrays und globalen Variablen.

Ein beliebiges Stückchen original-Code aus dem Modul "Mailform" als (abschreckendes) Beispiel:

if (!$from) $from=$MailFormDefaultSender;
if (!$to || !$_REQUEST['text']) $msg = 'error';
else if (mail($to, $subject, $text, "From: $from")) $msg = 'success';
else $msg = 'failure';
header("Location: $ScriptUrl?pagename=$pagename&mailform=$msg");

Der gleiche Code-Schnipsel könnte auch so aussehen:

if (!$from) {
   $from = $MailFormDefaultSender;
}
if (!$to || !$_REQUEST['text']) {
   $msg = 'error';
}
else if (mail($to, $subject, $text, "From: $from")) {
   $msg = 'success';
}
else {
   $msg = 'failure';
}
header("Location: $ScriptUrl?pagename=$pagename&mailform=$msg");

Leider sind den Autoren vom PmWiki scheinbar weder Lesbarkeit noch Wartbarkeit des Codes in irgend einer Weise wichtig.

Somit kann ich also wieder einmal die Hoffnung begraben ein gut strukturiertes Stück Software einfach für meine Bedürfnisse anpassen zu können. Es bleibt wieder mal nur ein Ausweg: Irgendwann selbst schreiben, klassenbasiert und wohlstrukturiert - nur leider fehlt die Zeit.

Bevor ich's vergesse:
Falls sich jemand über den Inhalt dieses Wikis beschweren sollte, erschießen wir diesen Hund.

Vielen Dank für die Beachtung aller Sicherheitsvorkehrungen.

Frische Änderungen (All) | Edit SideBar Zuletzt geändert am 11.03.2006 13:24 Uhr Seite Bearbeiten | Seitenhistorie
Powered by PmWiki