Category: Programming

Reguläre Ausdrücke und ApacheMon

Heute gibt’s zwei tolle Linktipps:

  • Ein sehr ausführliches und gut geschriebenes Tutorial für reguläre Ausdrücke findet sich auf regular-expressions.info

  • ApacheMon geht sehr viel weiter als das Programm, das bei Apache 2.0 dabei ist und erlaubt schnelle Änderungen an den Konfigurationsdateien und bequemen Zugriff auf andere Apache-Tools. Mit einem Doppelklick auf das Icon bekommt man sogar direkt eine Konsole im Apache-Stammverzeichnis präsentiert.

JavaScript und das DOM

Ich habe trotz einiger Recherche kein gutes Tutorial zu “modernem” JavaScript/ECMAScript und dem DOM gefunden. Alles was es scheinbar im Netz gibt sind lose Informationsbrocken und oberflächliche Einführungen, die gerade mal getElementById abdecken. Die Verwendung von prototype ist kaum erklärt und das Thema Objektorientierung wird ebenfalls nur angerissen. Der zweite Typ von Einführungen ist schon einige Jahre alt und nimmt nicht auf moderne Programmierpraktiken Rücksicht, wie etwa SelfHTML. Hier sind zwar noch die DOM 1-Funktionen erklärt, aber zum Thema Objektorientierung findet sich nahezu nichts. Sollte dem nicht so sein und es doch ein gutes Tutorial geben, belehrt mich jemand bitte eines Besseren ;-) Ansonsten muss ich halt mal nach Büchern Ausschau halten.

Drupal!

Das Drupal-Logo

Was Anne noch sucht, hab ich (für mich) gefunden: Das perfekte Weblog-/Webpublishingsystem. Sein Name ist Drupal

Die Drupal-Broschüre

Drupal bietet so ziemlich alles was man braucht, angefangen von Blog-Features, einer API für Weblogs, vollständige UTF-8-Unterstützung(!), Moderation, Anti-Spam-Plugin, ausgefeiltes Rechtemanagement, XHTML-Kompatibilität (out of the box), schöne URLs, extrem erweiterbar durch Module (von denen es einige auf der Drupal-Website gibt).

Schon in dem Standardinstallationsarchiv sind Module für ein Forum, ein Blog, statische Seiten, ein Buch (Wiki-ähnlich), Umfragen und noch einige andere enthalten. Zusätzlich gibt es online einen Event-Kalender, Umfragebögen, einen Online-Shop, ein Banner-Modul, Bildergalerien, ein PayPal-Framework und noch einige mehr. Wer nicht findet, was er braucht, kann sich auch (ziemlich einfach) selber ein Modul basteln.

Drupal ist komplett themebar - jedes (X)HTML-Tag ist veränderbar. URLs kann man auch selber basteln, z.B. für wichtige Seiten. Und vor allem: Drupal ist internationalisierbar - es gibt Sprachpakete für einige Sprachen (das Deutsche ist noch nicht ganz komplett, aber ich arbeite dran ;-)) und man kann so wirklich alles in eine andere Sprache übersetzen.

Wer jetzt vermutet, so ein CMS hat mindestens 20 MB, liegt absolut falsch. Der Tarball mit der Grundausstattung wiegt läppische 460 kB - und bringt schon einige Themes mit. Drupal setzt nur einen Apache, PHP 4 und MySql oder PostgreSQL vorraus, lässt sich also auch auf einem Shared-Hosting-Account problemlos betreiben.

Das ganze mag vielleicht etwas euphorisch klingen, jeder der Drupal ausprobiert und sich wirklich damit auseinandersetzt (Handbuch lesen!) wird aber schnell merken wie mächtig das System ist. Drupal ist auf jeden Fall eine Alternative zu Konsorten wie Typo3 (naja, vielleicht nicht ganz ;-)) oder Contenido.

Eingabefelder automatisiert

Um die immer wiederkehrenden Funktionen, die oft für Eingabefelder (input) verwendet werden, zu automatisieren, habe ich mal ein JavaScript geschrieben, dass automatisch allen Eingabefeldern Klassen je nach ihrem Zustand zuweist und den Inhalt entsprechend anpasst. Das heißt, wenn man ein Feld mit einem Wert vorbelegt, hat das Eingabefeld erstmal die Klasse input-empty. Sobald man das Feld fokussiert erhält es die Klasse input-focus und wenn ein anderer Wert als der Default-Wert hineingeschrieben wird, erhält es die Klasse input-normal. Das Script funktionert auch mit mehreren Klassenangaben und löscht diese beim ändern der input-Klasse nicht. input-focus habe ich implementiert, da der IE ja ab und zu mit dem :focus-Selektor seine Probleme hat.

Das ganze ist voll DOM-kompatibel und funktioniert in halbwegs aktuellen Versionen des Internet Explorers (5.0) und mit Mozilla sowieso. Nur der Opera zickt wieder rum, aber der hat ja desöfteren Probleme mit Eingabefeldern, insbesondere mit der Formatierung.

Hier gibt’s auch eine Demo

PHP 4 und PHP 5

PHP

Da ich in letzter Zeit einige CMS getestet habe, die natürlich entweder nur mit PHP 4 oder PHP 5 funktionieren wurde es langsam lästig, ständig einige Apache-Konfigurationsdateien zu öffnen und die Werte zu ändern, Dateien herumzukopieren - vom php.ini-Wust ganz zu schweigen. Deswegen habe ich mir zwei Scripts zur schnellen Umstellung von Apache von PHP 4 auf PHP 5 geschrieben.

Dazu ist eine Änderung an der httpd.conf nötig: Die Zeile

LoadModule php5_module php501/php5apache2.dll

(oder die entsprechende Zeile für PHP 4) muss durch die (IIRC nur für Apache 2 gültige) Anweisung:

Include conf/php.conf

ersetzt werden.

Anschließend legt man zwei Konfigurationsdateien im Apache-conf-Ordner beispielsweise mit den Namen php4.conf und php5.conf an. In diese kommen jeweils die LoadModule-Anweisungen für die entsprechende PHP-Version (etwa LoadModule php4_module php438/sapi/php4apache2.dll).

Damit die beiden Versionen eigene php.ini-Dateien haben, benennt man die PHP 4-Konfigurationsdatei in php4.ini und die für die neue Version in php5.ini um.

Und jetzt zu den Batch-Dateien: Im Windows-Ordner (oder irgendeinem anderen Verzeichnis, das durch PATH-Variablen abgedeckt wird) legt man die Dateien php4.bat und php5.bat an. Der Inhalt von php4.bat (ggf. sind die Pfade anzupassen)

@echo off
echo PHP 4.3.8 aktivieren...
copy C:\Programme\Apache2\php4.ini C:\Programme\Apache2\php.ini /Y
copy C:\Programme\Apache2\conf\php4.conf C:\Programme\Apache2\conf\php.conf /Y
net stop apache2
net start apache2

Für die Datei php5.bat müssen einfach nur die Vierer durch Fünfer ausgetauscht werden.

Jetzt kann man ganz bequem über Start, Ausführen oder [Win]+[R] und der Eingabe von php4 oder php5 die PHP-Version ändern.

Stundenplan 0.3

Stundenplan

Ich habe angefangen, die nächste Version von Stundenplan zu entwickeln. Und: Stundenplan 0.3 wird HiRes+ unterstützen, sowohl das Sony- als auch das palmOne-Modell. Diese Version wird ein sehr flexibles Anzeigemodell haben, bis zu 12 Stunden pro Tag und maximal 6 Tage in der Woche sind möglich. Das heißt, dass auch Schüler mit Samstagsunterricht Stundenplan jetzt nutzen können! Weiterhin werde ich eine Hausaufgaben- und Notenverwaltung einbauen.

Zum Flickr-Photostream