Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
bonjour,
je me lance depuis quelques jours sur le framework Zend, je me suis fait quelques tutos de base histoire de bien débuter et maintenant je suis en train de me refondre une petite appli que j'avais fait à l'arrache il y a quelques années...
bref, la, je viens juste de réussir à créer mon propre Decorator pour mes éléments du formulaire, j'ai quelques soucis qui se posent :
au lieu d'avoir un truc du genre
<input type="text" name="test" />
je me retrouve avec un truc moche du genre
<input type="text" name="test" helper="formText">
deux problèmes donc : c'est pas du xhtml (il manque le / qui va bien), et il y a un attribut "helper" dont je ne veux pas..
merci d'avance pour vos réponses pour ces questions
Dernière modification par Zend_Noob (20-08-2008 18:56:07)
Hors ligne
Bonjour Zend_Noob,
j'ai aussi crée mon propre décorateur et je me retrouve avec les mêmes soucis que toi. Pour le moment j'ai modifié le code source pour qu'il enlève de lui même l'attribut 'helper="..."'.
foreach ($attribs as $key => $val) { $tmp = false; $keyLen = strlen($key); if ((6 < $keyLen) && (substr($key, 0, 6) == 'label_')) { $tmp = substr($key, 6); } elseif ((5 < $keyLen) && (substr($key, 0, 5) == 'label')) { $tmp = substr($key, 5); } elseif (substr($key, 0, 6) == 'helper'){ <---- ICI unset($attribs[$key]); } if ($tmp) { // make sure first char is lowercase $tmp[0] = strtolower($tmp[0]); $label_attribs[$tmp] = $val; unset($attribs[$key]); } }
Mais je ne pense pas que la façon dont nous créons les décorateurs soit correcte.
a++
Hors ligne
mouais, c'est bien mon impression aussi, vu que je ne trouve nul part sur le net d'informations sur la façon de créer du xhtml, comme si c'était évident...
enfin bon, merci pour ta réponse, mais je pense que je vais éviter de modifier le code de Zend, c'est pas le top ^^
Hors ligne
Salut,
Je me suis posé la même question pour le XHTML.
En creusant un peu dans la doc officielle, j'ai trouvé la solution dans l'exemple 50.8 sur cette page http://framework.zend.com/manual/fr/zen … lpers.html
Dans le bootstrap, il faut mettre ces 2 lignes :
$doctypeHelper = new Zend_View_Helper_Doctype(); $doctypeHelper->doctype('XHTML1_STRICT');
Du coups, les rendus du framework respectent les normes du W3C ... je suis passé de beaucoup d'erreure à plus que quelques erreures de ma part grâce à cette ligne
tant qu'à faire, autant utilisé la méthode doctype() dans le layout.
Elle affiche la fameuse ligne en tout début de code HTML :
<?php echo $this->doctype() ?> // affiche <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
A propos du helper, à la limite il te dérange pas des masses ...
Mais c'est vrai qu'on peut se demander à quoi il sert.
Hors ligne
ha c'est cool ca ! merci pour la réponse Jocio ! dommage que l'on soit obligé de fouiller la doc dans ses moindres recoins pour trouver un truc aussi basique ^^
pour le helper en plus, ca me saoule quand même, je ne pense que ce soit autorisé par les normes w3c d'ajouter des attributs imaginaires... que ce soit détecté ou pas par le validateur...
enfin bref ^^
Hors ligne
Bon, je sais que le sujet date un peu, mais j'ai trouvé la réponse à mon problème en me remettant un peu sur ZF...
dans la classe decorator personnalisée, il suffit tout bêtement de mettre le code suivant pour virer l'attribut helper :
$element = $this->getElement(); $element->setAttrib('helper', null) ;
voila, comme ca, le sujet est définitivement clos
Hors ligne
Pages: 1