Internet Explorer 6 Downgrade (IE 6 Standalone)

Heute kommt der Beitrag mal etwas verspätet, aber mir ist einfach kein vernünftiges Thema eingefallen, bis vor wenigen Stunden.

Schon seit einigen Jahren wird es immer wichtiger, Webseiten für alle Browser zu optimieren. Es gibt inzwischen aber so viele Browser, dass es immer schwieriger wird, alles zu testen. Deshalb sollte man zumindest die Wichtigsten parat haben:

  • Mozilla Firefox
  • Google Chrome
  • Opera
  • Safari
  • Internet Explorer 7+8
  • Internet Explorer 6

Aber Moment, das sind 3 Versionen des Internet Explorers. Die kann man doch gar nicht gleichzeitig auf einem Rechner ausführen.
Doch, kann man (der IE 8 hat übrigens einen Kompatibilitätsmodus, der Seiten wie der IE 7 darstellt). Ich habe hier mal vier unterschiedliche Wege zusammengetragen.

» Weiterlesen

Joomla! vs. TYPO3

Der Kampf zweier Open Source CMS

Runde 1: Popularität – Wo bekommt man mehr Hilfe?

Blau: Joomla!, Rot: TYPO3
Diese Statistiken kommen aus Google Trends und zeigen eindeutig, dass Joomla wesentlich mehr Aufsehen genießt als sein Konkurrent. Ein weiterer Punkt für Joomla ist die Community, dessen Forum mit über 1 Millionen Beiträgen großen Support verspricht.
Neuer Stand: 1-0 für Joomla

Runde 2: Funktionalität – Welcher der beiden CMS kann mehr?
Hier hat TYPO3 einen entscheidenden Vorteil: In Joomla ist derzeit die Verteilung von Berechtigungen für Administratoren sehr begrenzt, was für viele bereits ein Ausschlusskriterium ist. Ansonsten bieten beide CMS ungefähr die selben Funktionalitäten, außer das bei Joomla bereits vieles vorinstalliert ist, was bei TYPO3 erst noch stundenlang konfiguriert oder durch Extensions nachinstalliert werden muss.
Neuer Stand: 1-1 Ausgleich

Runde 3: Erweiterbarkeit – Welche Möglichkeiten gibt es außerhalb des Standards?
In dieser Runde schenkt sich keiner etwas. Für beide CMS stehen unzählige kosntelose Erweiterungen bereit und auch für Eigenentwicklungen gibt es einigen Lesestoff zur Unterstützung. Dafür bietet TYPO3 dank Typoscript die wohl größte Konfigurationsmöglichkeit.
Neuer Stand: 1-2 für TYPO3 (für Typoscript)

Runde 4: Programmierung – Welcher Code ist sauberer?
Der TYPO3-Code ist inzwischen schon über 10 Jahre alt und sieht auch dementsprechen aus. Das meiste ist mittlerweile auf Klassen aufgebaut, aber die Struktur ist größtenteils sehr unsauber und kompliziert.
Bei Joomla hingegen wurde die komplette Anwendung mittels MVC-Pattern umgesetzt, was viel Struktur in den Code bringt. Auch sonst ist der Code viel modener und besser zu lesen. Hier ist das Zukunftpotenzial wesentlich höher.
Neuer Stand: 2-2 Ausgleich

Runde 5: Komplexität – Was ist einfacher zu bedienen?
Um mit TYPO3 wirklich gute Webseiten zu bauen, wird einiges an Einarbeitung verlangt. Es gibt einige ziemlich dicke Bücher, die sich mit dem Thema beschäftigen und selbst wenn man damit durch ist, braucht man noch einiges an praktischer Erfahrung, bevor man wirklich durchgestiegen ist. Während der Einrichtung sollte man immer die Typoscript-Referenz zu Rate ziehen, denn die Konfigurierbarkeit ist wirklich enorm.
Auch bei Joomla wird man sich nicht sofort zurecht finden, allerdings muss man für die Bedienung der Administratoberfläche kein Buch gelesen haben. Es reicht ein gutes Tutorial und schon kann man loslegen. Eine einfache Webseite lässt sich sogar komplett ohne Programmierkenntnisse entwerfen!
Endstand: 3-2 für Joomla

Ein knappes Finale, dennoch ist Joomla mein klarer Favorit wegen der super einfachen Bedienung. Joomla ist außerdem wesentlich zukunftssicherer als das veraltete TYPO3. Trotzdem lässt sich nicht immer jede Website mit Joomla am besten umsetzten. Man sollte genau darauf achten, was das CMS wirklich leisten muss.
Und noch eine Anmerkung: Für Joomla 1.6 (Release vorrausichtlich 2010) wird die Rechtevergabe für Admins komplett überarbeitet. Also ein Ausschlusskriterium weniger.

Autoloading àla Zend Framework

Wer hat sich schonmal gefragt, warum alle Klassen des Zend Frameworks immer so lang sein müssen? Zend_View_Helper_Navigation_Breadcrumbs, Zend_Db_Adapter_Pdo_Mysql oder auch sehr schön ist Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitive.
Die Antwort ist ganz einfach: So lässt sich genau nachvollziehen, wo sich die Klasse befindet, denn aus dem Namen lässt sich das genaue Verzeichnis der Klasse ablesen. So liegt die Klasse Zend_View_Helper_Navigation_Breadcrumbs beispielsweise unter Zend/View/Helper/Navigation/Breadcrumbs.php. Dieses Schema bringt nicht nur Struktur in das Klassen-Chaos einer Anwendung, sondern bietet auch eine hervorragende Möglichkeit, die Klassen automatisch zu laden, ohne dass die Klasse jedes mal mit require_once inkludiert werden müssen. Dazu bedienen wir uns einfach der Funktion __autoload, die jedes mal aufgerufen wird, wenn eine Klasse verwendet wurde, die nicht existiert.

function __autoload($className)
{
    $classFile = implode("/", explode("_", $className)).".php";
    require_once(DEIN_ROOT_PFAD.$classFile);
}
$obj = new Zend_Db_Adapter_Pdo_Mysql(); // Lädt automatisch die Datei Zend/Db/Adapter/Pdo/Mysql.php

Natürlich lässt sich das noch weiter ausbauen und mit verschiedenen Include-Paths verwenden.
Wenn ihr also das nächste mal eine neue Anwendung plant, macht es Sinn, dasselbe Namensschema wie das Zend Framework oder PEAR zu nutzen. So müsst ihr euch nicht mehr darum kümmern, ob eine Klasse wirklich mit require oder include eingebunden wurde und die Klassen-Datei wird nur noch dann geladen, wenn sie tatsächlich gebraucht wird.

Und noch ein Tipp:
Mit Hilfe der Funktion spl_autoload_register($callback) lassen sich mehrere Autoloader gleichzeitig verwenden und können als Callback auch in eigene Klasse ausgelagert werden.