Doctype in Typo3 angeben

Ohne die Angabe des Doctype kann es in einigen Browsern zu Darstellungsfehlern kommen. Ein bisschen Typoscript löst das Problem.

In einigen Browser, unter anderem dem Internet Explorer, führt die falsche Angabe des Doctypes zu einer unschönen Ausgabe. Typo3 deklariert das Dokument standardmäßig als HTML 4.0 Transitional. Mal ganz abgesehen davon ist eine falsche Deklaration nicht W3C-konform und führt zu Validierungsfehlern. Für ein XHTML-gerechtes HTML hier die Lösung:

doctype = xhtml_trans
doctypeSwitch = 1
xmlprologue = none
xhtml_cleaning = all
htmlTag_langKey = de
language = de

Submit-Button IE6-kompatibel als Bild

IE6-kompatibler und passgenauer Submit-Button als Bild ohne lästige Abstände integrieren.

Es gibt eine einfache Lösung einen passgenauen Submit-Button als Bild ohne lästige Abstände zu integrieren. Das ganze natürlich IE6-kompatibel und ohne JavaScript. Dazu bedarf es nur einen Div-Container mit gewünschten Hintergrundbild. Darin betten wir das input-Tag vom Typ ‘submit’ ein. Dieses erhält dann die folgenden Eigenschaften:

margin: 0;
background: transparent;
border: none;
cursor: pointer;
height: 'Höhe des Bildes';
width: 'Breite des Bildes';

Damit wird der Submit-Button quasi versteckt, bleibt aber dennoch klickbar.


Zend Framework lokal aufsetzen – mod_rewrite

Das offizielle Quickstart Tutorial von Zend zum Zend Framework ist nicht schlecht. Allerdings fehlt es hin und wieder an der Erwähnung von einigen Stolpersteinen. Einer davon hat mich zwar nicht lange aufgehalten, sei aber dennoch erwähnt. Verwendet man wie vorgeschlagen einen eigenen virtuellen Host und setzt dabei die Befehle AllowOverride All und Order allow,deny ein, [...]

Das offizielle Quickstart Tutorial von Zend zum Zend Framework ist nicht schlecht. Allerdings fehlt es hin und wieder an der Erwähnung von einigen Stolpersteinen. Einer davon hat mich zwar nicht lange aufgehalten, sei aber dennoch erwähnt.
Verwendet man wie vorgeschlagen einen eigenen virtuellen Host und setzt dabei die Befehle AllowOverride All und Order allow,deny ein, um mit htacess Dateien arbeiten zu können, muss zwingend das Rewrite module von PHP eingeschaltet sein. Bei einer Standard-PHP-Installation ist das nicht der Fall.

Das Modul kann in der httpd.conf im conf Verzeichnis des Apaches (wenn ihr den verwendet) durch entfernen der Raute vor der Zeile LoadModule rewrite_module modules/mod_rewrite.so aktiviert werden.


Probleme mit gem und rake Befehlen unter Windows 7 x64

Eigentlich sollte es ganz einfach sein Ruby und Ruby gems ordentlich zum Laufen zu bringen, schließlich habe ich das jetzt auch nicht zum ersten Mal gemacht. Windows 7 x64 hielt aber gerade eine neue Überraschung für mich bereit.

Nach erfolgreicher Installation wollte ich ein Update für gems über gem update --system -y vornehmen. Das führte zu folgender Fehlermeldung:

sh.exe": /c/Web/Ruby/bin/gem: D:/Users/Luis/projects/oss/installer2-trunk/ruby/bin/ruby.exe bad interpreter: no medium

» Den gesamten Beitrag Probleme mit gem und rake Befehlen unter Windows 7 x64 lesen


Zend Framework – Das zf Command Line Tool

Es ging mal wieder hoch her in der letzten Zeit, ein neues Projekt hat meine ganze Aufmerksamkeit gefordert. Seit langem habe ich wieder Zeit für etwas Web-Entwicklung und da wollte ich mir die neue Version vom Zend Framework angucken (1.10.2). Zuletzt habe ich mit der 1.5 gearbeitet, es gibt also viel Neues zu entdecken.

Doch gleich am Anfang hakte es. Das zf Command Line Tool wollte nicht so, wie ich es gerne hätte, bzw. wie es die Online-Hilfe suggerierte. Beim Anlegen eines neuen Projekts erhielt ich nur folgende Meldung:

PHP Warning: mkdir(): No such file or directory in C:\Program Files\Zend\ZendServer\share\ZendFramework\library\Zend\Tool\Project\Provider\Project.php on line 55

Warning: mkdir(): No such file or directory in C:\Program Files\Zend\ZendServer\share\ZendFramework\library\Zend\Tool\Project\Provider\Project.php on line 55

An Error Has Occurred
Could not create requested project direcotry 'test'
[...]

» Den gesamten Beitrag Zend Framework – Das zf Command Line Tool lesen


<base href /> in Kombination mit HTML Ankern verwenden

Man stößt doch immer mal wieder auf Probleme, die auf den ersten Blick absurd sind und bei denen man sich wundert, dass man sie vorher noch nie bemerkt hat. Ein solches Problem ist mir heute untergekommen: Die Verwendung vom base-Tag und Anker-Links (also Verweise innerhalb einer einzelnen Seite).

Hier tritt das Problem auf, dass der Anker an die im base-Tag angegebene Adresse angehängt wird und man bei einem Klick zu dieser weitergeleitet wird – das ist ja nun wirklich nicht der Sinn und Zweck eines Ankers.

» Den gesamten Beitrag <base href /> in Kombination mit HTML Ankern verwenden lesen


Interessanter Vortrag zu JavaScript: “JavaScript: The Good Parts”

Erst kürzlich habe ich diesen Vortrag vom JavaScript Guru Douglas Crockford entdeckt, den er auf der im Rahmen der Google Tech Talks Web Exponents Serie am 27. Februar 2009 gehalten hat.


Rails-Modelle – die ersten Schritte mit ActiveRecord

Nachdem in meinem kleinen Railsprojekt die Migrationsskripte (definieren die Datenbankstruktur) ferti erstellt sind, wird es endlich Zeit, dass ich mich um die Model-Ebene (ActiveRecord) der MVC-Architektur kümmere.

Die Modelle beziehungsweise in Rails ActiveRecord steuern unabhängig von Controller und View den Zugriff auf – in diesem Fall – die Datenbank. ActiveRecord ist eine ORM-Schicht, die die Objekte der Anwendung direkt in der Datenbank vorhält. Dabei wird eine Klasse eines Models auf eine Datenbanktabelle sowie deren Attribute auf Datenbankspalten abgebildet. Damit ist eine Klasseninstanz gleichzusetzen mit einem Datensatz aus einer Tabelle. Sehr kurz gefasst könnte man sagen, dass ein Model alle Operationen enthält, die direkten Datenbankzugriff erfordern und mit der Datenbank in enger Beziehung stehen. Dazu zählen beispielsweise die Beziehungen zwischen den Modellen und Validierungen von Daten.

» Den gesamten Beitrag Rails-Modelle – die ersten Schritte mit ActiveRecord lesen


JavaScript komprimieren

Seit längerem musste ich heute mal wieder eine JavaScript Datei komprimieren, da die über 8000 Codezeilen stattliche 270 KB zur Folge hatten. Das ist nichts für eine Produktivumgebung.

Da ich mit dem letzten Tool nicht wirklich zu frieden war, habe ich mich mal wieder umgeschaut und bin dabei auf den YUI Compressor von Yahoo! gestoßen. Dieser hat mich sehr überzeugt und ist auch recht einfach zu bedienen.

» Den gesamten Beitrag JavaScript komprimieren lesen


Fremdschlüssel den Migrationen hinzufügen

Es hat mir ja doch keine Ruhe gelassen, dass ich über Migrationen mit der Standardfunktionalität von Rails keine Fremdschlüssel (foreign keys) der Datenbank hinzufügen kann.

Aus diesem Grund habe ich noch etwas Recherche betrieben und bin zunächst auf ein Plugin gestoßen, was allerorts im Internet referenziert wird, aber wohl leider nicht mehr verfügbar ist. Schade! Dann habe ich auf einen Codeschnippsel aus ‘Agile Web Development with Rails’ von Sam Ruby, Dave Thomas und David Heinemeier Hansson, zurückgegriffen. Dieser funktioniert – nach einer kleinen Ergänzung – bisher einwandfrei.

» Den gesamten Beitrag Fremdschlüssel den Migrationen hinzufügen lesen