LightWindow und AJAX

Heute bin ich glücklich, Euch mal wieder einen etwas technischeren Artikel präsentieren zu können.

Es geht um das Zusammenspiel zwischen dem JavaScript-basierten LightWindow (dient grob gesagt dazu, um ein Fenster im Fenster animiert anzuzeigen und zu steuern – Einsatz z.B. für Großansichten von Bildern) und AJAX-Aufrufen im Allgemeinen.

LightWindow im Einsatz

LightWindow im Einsatz beim CakePlanner

In meinem Fall habe ich eine CakePHP-Applikation, die auf Anforderung gewissen Seitenteile per AJAX austauscht. Sowohl auf der Startseite, als auch auf dem nachgeladenen Bereich sind Links verbaut, die die jeweils verlinkten Inhalte in einem LightWindow darstellen sollen.
Auf der Startseite funktionierte das beim Testen auch prächtig. Lud ich jedoch einen Seitenteil nach, wurden die LightWindow-Links unschön “ganz normal” im Browser geöffnet, anstatt im LightWindow.

Ursache: Beim Nachladen verliert LightWindow den Bezug zu den vorhandenen DOM-Objekten (z.B. den Links) und kann dann nicht mehr wie gewünscht auf ein onClick-Event reagieren.

Lösung: Nach dem Nachladen muss die jeweilige LightWindow-Instanz re-initialisiert werden.

Bei mir sah das dann so aus:


<script type="text/javascript">
myLightWindow.initialize();
</script>

Dieses Code-Snippet ziert nun den jeweiligen, nachgeladenen Bereich und siehe da: die Links wurden wieder sauber im LightWindow geöffnet.

[1] LightWindow: http://www.stickmanlabs.com/lightwindow/
[2] CakePHP: http://www.cakephp.org/
[3] CakePlanner: http://sourceforge.net/projects/cakeplanner/

[CakePHP] Leerer Eintrag in Select-Boxen

Alt bekanntes Thema: beim Aufruf eines HTML-Formulars soll in einer Select-Box ein Text angezeigt werden, der dazu auffordert, doch bitte einen Wert auszuwählen.

Auch in CakePHP ist das natürlich über den Form-Helper möglich. Eher zufällig stieß ich gerade auf das input-Parameter empty, als ich gerade auf der Suche nach einer Lösung für mein Problem war, dass meine Select-Box komplett leer ist – aber das ist ein anderes Thema.

Wollt Ihr also einer Select-Box ein “Bitte auswählen” spendieren, sieht das zusammengefasst so aus:

echo $form->input('category_id', array('type' => 'select', 'empty' => 'Bitte auswählen'));

[CakePHP] Deutscher Kuchen

Mein Abend ist gerettet…das CakeFest kommt nach Deutschland! Yes! Auch, wenn es in Berlin ist.

Wer ist dabei?

Stylistische Verwirrungen

Da brat mir doch einer nen Storch!

Man nehme:

  • eine Cake-Applikation
  • Scriptacolous
  • ein simples Template
  • ein DIV mit ID- und class-Attributen
  • eine ausgelagerte CSS-Datei, die sowohl ID, als auch class formatiert (u.a. mit display:none)
  • die Absicht, das DIV per appear()-Effekt erscheinen zu lassen


Ich bastelte mir also den wunderbaren Scriptacolous-Effekt in meine Applikation und was passierte?
Nichts! Nada!
Firebug meldete mir keinen Fehler und ein vorgeschaltetes, verzweifeltes alert(); tat seinen Dienst anstandslos.

Sourcecode

Einige Versuche später kam mir die Idee…nehmen wir das display:none mal aus der CSS-Datei heraus und implementieren es direkt per Style ins Template. Und siehe da…appear() tat anstandlos seinen Dienst!

Leider habe ich auf die Schnelle keine offizielle Stellungnahme finden können, ob es sich dabei um einen bekannten Bug handelt, aber ganz offenbar liegt hier ein solcher vor…

Jetzt seid Ihr gefragt…falls Ihr weiterführende Links dazu habe, dann ab in die Kommentare damit.

CakePHP Onlineseminar

Derzeit befasse ich mich sehr ausführlich mit dem PHP-Framework CakePHP und kann dazu das Buch Webentwicklung mit CakePHP sehr empfehlen.
Nun bin ich noch zusätzlich auf der Suche nach einem Onlineseminar über dieses Thema. Da Cake im deutschsprachigen Raum bislang eher wenig verbreitet ist, scheint das Angebot entsprechend rar zu sein.

Hat jemand von Euch eine Empfehlung dazu? Dann gerne ab damit in die Kommentare.

Weiterhin happy baking!

Checkliste: Survival-Paket für PHP-Entwickler

Du bist auch PHP-Entwickler?

Dann habe ich hier etwas für Dich, nein, Verzeihung…genau genommen haben Adrian und Andre Liem etwas für Dich, ihre Zeichns Webentwickler bei midstride.com.

Und zwar formulierten die beiden die 5 wichtigsten Dinge, auf die ein PHP-Entwickler achten sollte.

Here we go…

  1. Nutze ein MVC-Framework (in meinem Fall ist das CakePHP). Es organisiert Dein Projekt, erhält die Übersicht des Quellcodes und erhöht damit auch die gesamte Qualität.
  2. Nutze ein AJAX-Framework. Ich persönlich nutze noch keins, versuche mich aber mit jQuery anzufreunden. Die leuchtenden Auge der “Klicki-Bunti”-Fraktion werden es Dir danken.
  3. Nutze eine gute IDE. Ich kann sowohl PHPEclipse (kostenlos), als auch Zend Studio (lizenzpflichtig) empfehlen, wobei mir Zend noch einen Ticken besser gefällt. So behältst Du deine Projektdateien immer im Griff.
  4. Nutze eine Datenbank-Management-Software. Asche auf mein Haupt. Außer phpMyAdmin fand noch keine derartige Software den Weg in meine Gefilde. Der DBManager 4 hat gute Ansätze, enthält mir aber noch zu viele Bugs (ist aber immerhin für Linux verfügbar).
  5. Nutze einen OR-Mappers. Wat für ein Ding? OR-Mapper dienen wohl als Middleware zwischen Business-Logik und der Datenbank selbst und erleichtern so die Entwicklung. Leider kosten sie auch dann und wann etwas Performance.

Das eine oder andere können wir also noch lernen…kennt jemand einen guten OR-Mapper?

CakePHP Forum

!!! Achtung !!! Werbung !!! Achtung !!! Werbung !!! Achtung !!! Werbung !!!

Wie der eine oder andere schon gelesen haben mag, schaue ich mir seit geraumer Zeit das MVC-Framework CakePHP an, da ich dieses gerne für ein Projekt verwenden würde.
Da mir für eben jenes Projekt noch ein paar Ansatzpunkte zur Softwarestruktur fehlen, bin ich mal auf den rauhen Wellen des Webs gesurft und habe das CakePHP Forum gefunden. Ein bislang von den Benutzerzahlen her kleines Forum in deutscher Sprache. So etwas habe ich schon eine ganze Weile vermisst, da die Community rund um CakePHP im deutschsprachigen Raum noch recht dünn besetzt zu sein scheint.

Wer Interesse an CakePHP hat, dem empfehle ich jenes Forum, damit die vier Forenbetreiber in Zukunft mehr Nutzer verbuchen können und diese gute Idee nicht im Sande der Missachtung untergeht.

CakePHP Tutorial by DIEVOLUTION

Wer sich schon einmal mit PHP und MVC-Konzepten beschäftigt hat, dürfte schon so manches Framework im Netz gefunden haben. Eines davon ist CakePHP.

Ich habe mir mal den Spaß erlaubt, es für ein aktuelles Projekt auf seine Fähigkeiten hin zu prüfen und bin ausgesprochen angetan. Geholfen hat mir dabei ein Tutorial des DIEVOLUTION-Blogs, in dem Schritt für Schritt ein kleines Blog-System gebaut wird. Setzt man sich an einem Stück an das Tutorial, ist das Blog-System in maximal 2 Stunden zusammengeschraubt. Genial, wie ich finde.

Wer sich das auch einfach mal reinschrauben möchte – hier sind die Links zum Tutorial:
- Teil 1
- Teil 2
- Teil 3
- Teil 4

Go back to top