[english version]

Seit drei Tagen beschäftige ich mich mit dem CakePHP Framework und kann es kaum erwarten damit das nächste Projekt zu beginnen. Nun damit ich auch zufrieden bin und mich heimisch fühle suche ich mir derzeit ein gutes Set an Helpern, Components und Scripts damit ich auch gleich loslegen kann wenn ich möchte.

Der AjaxHelper und JavascriptHelper ist zwar gut, aber leider produzieren diese Inline-Javascript was natürlich nicht so schön ist. Aber so wie ich im IRC Channel mitbekommen habe wird auch nach Verstärkung in diesem und anderen Sektoren gesucht.

Ich benutze derzeit in all meinen Projekten das Behaviour Javascript von Ben Nolan. Damit kann man über CSS Selektoren jedem beliebigem HTML Element ein Script anhängen. Das hat den Vorteil das man Javascript komplett auslagern kann und der Quelltext viel sauberer ist. Auch in der HTML Produktion selbst hat man viel mehr flexiibilität. Wenn man sich ein Set an Behaviour Regeln angelegt hat kann man jederzeit darauf zurückgreifen. Konventionen und dynamik ist die halbe Miete.

Ich habe heute dne Helper fertiggestellt und bin hellauf begeistert, denn er ist mir wirklich gelungen. Hier mal ein Beispiel wie schnell man damit eine Formularvalidierung mit Ajax realisieren kann:

PHP:
  1. // Einfaches Registrierungsformular. Man beachte die "class"
  2. <form action="" method="post" name="register" id="register">
  3.  
  4. Benutzername:
  5. <?php echo $html->input('test/bla', array('class'=>'required'));?><br/>
  6. Passwort:
  7. <?php echo $html->input('test/bla', array('class'=>'required'));?><br/>
  8. E-Mail:
  9. <?php echo $html->input('test/bla', array('class'=>'required'));?><br/>
  10.  
  11. Homepage (optional):
  12. <?php echo $html->input('test/bla');?><br/> <!-- ohne die klasse, wird nicht beachtet -->
  13.  
  14. <div id="loading" style="display:none">
  15. <?php echo $html->image('indicator.gif') ?> Loading..</div>
  16.  
  17. <?php $html->submit('registrieren'); ?>
  18.  
  19. <div id="message">Keine Fehler</div>
  20. </form>
  21.  
  22. // Optionen für AJAX
  23. $options = array(
  24. 'update' => 'message',
  25. 'url' => '/users/register_ajax',
  26. 'method' => 'post',
  27. 'with' => "Form.serialize('register')",
  28. 'loading' => "Element.show('loading')",
  29. 'complete' => "Element.hide('loading');"
  30. );
  31.  
  32. // und jetzt mein Helper
  33. $behaviour->addAjaxRule('#login', 'onsubmit', $options);

Ich erstelle eine Ajax Regel (das heisst prototypes Ajax.updater wird verwendet).

  • Parameter 1: Alle Input-Elemente mit der Klasse "required"...
  • Parameter 2: ... sollen bei "onsubmit"..
  • Parameter 3: .. per Ajax die Felder an users/register_ajax schicken und das Resultat in das DIV 'message' schreiben.

Mehr dazu wird auf meiner offiziellen Seite für diesen Helper erklärt

2 Kommentare zu “BehaviourJS Helper für CakePHP”

  1. 1 Daniel Hofstetter Says:
    Vielleicht hilft dir der Head-Helper von Rossoft weiter: http://rossoft.wordpress.com/2006/03/28/register-head-tags-from-helpers-2/
  2. 2 Mentor Says:
    Danke für den Link. Hatte ich gesucht. ;)

    Hmm, dann ist aber nun die Frage:
    Externe JS Datei (wie jetzt) ODER einen Script-Block im Head (mit HeadHelper)?

    Pro/con??


Trackbacks/Pingbacks

Noch keine Trackbacks/Pingbacks von anderen Blogs

Diesen Eintrag kommentieren