Das PHP CMS / Framework Silverstripe bietet eine einfache Möglichkeit, mehrsprachige Seiten zu verwalten. Standardmäßig ist diese Funktion ausgeschaltet, sie kann aber bei Bedarf einfach aktiviert werden.
Bei einigen meiner Projekte habe ich pro Seite ein Hauptbild (für die Kategorienlistung) sowie eine Bildergalerie, z.B. für Produktseiten oder Mitgliedsbetriebe einer Vereinigung. Damit später nicht die Bilder aller Unterseiten in einem Ordner liegen und ein riesiges Durcheinander bilden, macht es Sinn, die Bilder pro Seite in einen eigenen Unterordner zu legen. Silverstripe bietet mit onAfterWrite() einen prima Hook, um diese Ordner automatisch anzulegen.
Bin heute über ein seltsames Phänomen gestolptert: Der embedded Youtube-Player überdeckte auf der Homepage die Thickbox / Lightbox der Bildergalerie. Das ist nicht im Sinne des Erfinders!
Die Lösung ist jedoch so einfach wie das Video einzubinden...
Das PHP-CMS/Framework Silverstripe bringt viele schöne Funktionen mit, um die fertige Seite zu optimieren. Eine davon ist combine_files(), die CSS bzw. Javascript-Dateien zusammenfasst und komprimiert. Ein paar Stolpersteine gibt es dabei aber zu beachten.
Die Standardkonfiguration von Silverstripe (2.3.3) hat einen IMHO sehr wichtigen Knopf im TinyMCE deaktiviert: den "remove formatting" Button, mit dem man versehentlich von Word & Co. rüberkopierte Formatierungen elegant und einfach entefernen kann.
Gewusst wie ist es natürlich sehr einfach, diese Funktion wieder hinzuzufügen.
Nach einem Update auf jQuery 1.3 hat fast alles funktioniert - ausser meiner heissgeliebten Thickbox. Zum Glück hab ich hier den Grund gefunden: Der [@...]-Selektor funktioniert nicht mehr.
Seit gestern ist PHP 5.3.0offiziell draussen. Unter anderem wurden Namespaces und Lamda-Funktionen eingeführt, die z.B. bei Javascript schon lange Standard sind. Damit muss man z.B. für usort die callback-Funktion nicht zwingend vorher definieren, sondern es geht in einem Aufwasch.
Am besten gefällt mir persönlich aber die Abkürzung für den Ternary-Operator. Damit ist jetzt folgendes möglich:
Habe endlich mal meine Blog auf die aktuelle Version von Serendipity
geupdated. Abgesehen, davon, dass nachdem ich die Konfiguration
geändert hatte, plötzlich die Umlaute verschwunden waren, ging es
wirklich extrem einfach, getreu dem Motto "Just add hot water"...
Anders in PHP. Dort wird nur eine vorher definierte Funktion aufgerufen. Heute stand ich vor dem Problem, ein Array von Einträgen nach dem Datum zu filtern, also z.B. alle Konzerte des Jahres 2009. Oder vergangene Jahre. Leider kann ich der Callbackfunktion aber keinen Parameter übergeben. Alternativ könnte man für jedes Jahr eine eigene Filterfunktion schreiben, was aber sehr unpraktisch ist. Packt man jedoch die Filterfunktion in ein Objekt, kann man diesem die Parameter übergeben und anschließend filtern.
On a project a while ago i had to make a thickbox gallery which was accessible by clicking on the first thumbnail or a link "visit gallery". The other images were placed in a hidden div.
Because of the "visit gallery" link i had one pic double. Using the jQuery.filter(function) it's easy to remove the duplicate entries.
Die Gewinnspiele auf www.im-salzkammergut.at werden immer besser angenommen. Als ich heute früh aber plötzlich ein paar hundert neue Einträge fand wurde ich stutzig. Fast alle Einträge hatten eine Mailadresse nach dem Schema "xx12345@mailpot.de". Anscheinend hat ein sog. Gewinnspielservice uns entdeckt und hat uns zugespammt.
Jeder Browser hat seine Macken und unvollständigkeiten. Und immer wieder sind wir Webentwickler damit konfrontiert, daß so manches im IE nicht geht. So z.B. heute eine kleine JS-Funktion, die mir Bilder anhand einer CSS-Klasse per JS im DOM umbaut und automatisch eine Großansicht des Bildes per thickbox erstellt.
On my latest project with Seagull PHP Framework i need an own section for every category. With the "normal" method of defining an action for every section i don't have the current category marked as "current" when i view an article. This is a quick tutorial how i solved the problem.
Wer kennt das Problem nicht? Viele kleine JS und CSS Files verlangsamen den Aufbau einer Seite empfindlich.
Max Kiesler hat eine intressante Aufstellung über die am Markt befindlichen Optimierungsmethoden von JS und CSS zusammengestellt. Sicherlich auch für die neue "optimize.php" in Seagull intressant.