CSS und Symfony input_date_tag

Das PHP-Framework Symfony bietet zum einbinden aller möglicher XHTML-Eingabefelder Helper an, natürlich auch für die eingabe eines Termines. Dafür gibt es unter Helper eine Funktion
function input_date_tag($name, $value = null, $options = array())

Diese Funktion nimmt unter $options wie es für Symfony üblich ist die verschiedensten Parameter an, der wichtigste ist wohl 'rich' welcher, auf true gesetzt, eine zusätzliche Schaltfläche einbindet über die sich per Javascript eine Kalenderbox zur Datumsauswahl öffnet. Dies kann durchaus nützlich sein, vor allem da man das Aussehen des Kalenders über CSS-Themes recht leicht anpassen kann.
Alles was dazu nötig ist, ist ein weiterer Parameter:

'css'=>'skins/aqua/theme'

skins/aqua/theme bezeichnet hier den Pfad zur CSS-Datei, die für dies zuständig ist, relativ zu den Javascript-Daten des Helpers. Toll nicht?

Moment? Relativ zum Helper? Ja, richtig gelesen! Man kann nur relativ zum Helper einen Pfad angeben, die Skin-Daten liegen also erstmal standardmäßig irgendwo zwischen Symfony-spezifischen Daten.

Jetzt werden sicher viele sage dies sei ja nicht schlimm, man würde ja nur einmal an dieser Datei arbeiten und wenn es doch ernster wird, könne man ja die entsprechende Symfony-Funktion leicht ändern, es ist ja OpenSource. Das eigentliche Problem an der Sache tritt eigentlich erst dann auf, wenn man ein Symfony-Update durchführt oder schlimmer noch Symfony per externals ins SVN des betroffenen Projektes eingebunden hat und auf dieser Basis ein Update durchführt. Auch wenn man das Projekt ohne Symfony weitergeben will (man muss ja nicht immer unbegrenzt Speicher und Bandbreite haben) kommt man bei dieser Grundlage ins Grübeln

Sicherlich kann man das Ganze etwas umgehen. Man könnte z.B. eine invalide URL für ein Stylesheet angeben (keine geht ja nicht, dann wird wieder auf Aqua geschalten) und die Styles gesondert einbinden. Solche Lösungen funktionieren, schön sind sie jedoch nicht.

Viel besser wäre es gewesen, hätten die Autoren des Symfony-Frameworks sich hier an ihre eigenen Regeln gehalten und die gleichen URL-Erzeugungsfunktionen verwendet wie überall sonst. Dann könnte man einfach eine Url vom Basisverzeichnis aus angeben und alles wäre gut. ...haben sie nur leider nicht

Geschrieben von Dr. Azrael Tod
Later article
OpenOffice.org 3.0