Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 25-02-2010 12:23:06

neoncyber
Nouveau membre
Date d'inscription: 25-02-2010
Messages: 5

[RESOLU] Exception avec Zend_Form_Decorator_Callback

J'ai un message d'erreur inattendu lors de l'utilisation du décorator callback sur un element.

Je me suis basé sur la doc pour faire un script de test.
Le message de l'exception est :

Warning: Exception caught by form: Invalid callback provided to callback decorator Stack Trace:
#0 C:\php5\pear\Zend\Form\Decorator\Callback.php(88): Zend_Form_Decorator_Callback->setCallback(Array)
#1 C:\php5\pear\Zend\Form\Decorator\Callback.php(108): Zend_Form_Decorator_Callback->getCallback()
#2 C:\php5\pear\Zend\Form\Element.php(1971): Zend_Form_Decorator_Callback->render(...

Et le code concerné :

Code:

$element->addDecorator('Callback',array('callback' => array('Util', 'label')));

Code:

class Util
{
  public static function label($content, $element, array $options)
  {
    return '<span class="label">coucou</span>';
  }
}

Pourriez vous m'indiquer si quelqu'un a déjà eu ce bug et comment le résoudre.

Cordialement, arnauld.

Dernière modification par neoncyber (26-02-2010 15:15:17)

Hors ligne

 

#2 25-02-2010 13:49:05

nORKy
Membre
Date d'inscription: 06-03-2008
Messages: 1098

Re: [RESOLU] Exception avec Zend_Form_Decorator_Callback

C'est pas un bug, il ne peut pas appelé Util::label, c'est tout, à toi de trouver pourquoi.


----
Gruiiik !

Hors ligne

 

#3 25-02-2010 14:25:29

neoncyber
Nouveau membre
Date d'inscription: 25-02-2010
Messages: 5

Re: [RESOLU] Exception avec Zend_Form_Decorator_Callback

Pourrai tu me dire si il est nécessaire d'appeler addprefixpath sur le formulaire pour lui indiqué la class et le path correspondant a la class ? Si je le fait il me dit qu'il n'arrive pas a charger le plugins du décorateur donné dans le prefixpath.

Cordialement.

Hors ligne

 

#4 26-02-2010 14:48:34

neoncyber
Nouveau membre
Date d'inscription: 25-02-2010
Messages: 5

Re: [RESOLU] Exception avec Zend_Form_Decorator_Callback

Le problème vennait du faite que le nom de ma class ne respectait pas la convention de nomage de zend par rapport a l'arborésence d'ou se place ma classe fourni.

Par ailleur j'ai un nouveau problème, qui ressemble vrement a un bug !

    $element->addDecorator('Callback', array('callback' => array('Ad_Util', 'label'), 'placement'=>'null'));

D'apres la doc le placement null devrait remplacer tous le contenu par la valeur retourné par le callback mais il n'en est rien juste append et prepend on un effet. mais avec null contrairement a ce que di la doc il est en append.

Merci a vous .

Hors ligne

 

#5 26-02-2010 15:11:28

neoncyber
Nouveau membre
Date d'inscription: 25-02-2010
Messages: 5

Re: [RESOLU] Exception avec Zend_Form_Decorator_Callback

Apres etre aller voir le code zend il y a en effet une petite incohérence. Dans la doc il dise qu'il faut mettre NULL alors que dans le source ils disent qu'il faut mettre false...
Bizarement dans le source on a un default qui devrait aussi bien fonctionner avec NULL que avec false, alors pourquoi ca marche avec false et pourquoi pas avec NULL, je me demande...

Code:

 switch ($placement) {
            case self::APPEND:
                return $content . $separator . $response;
            case self::PREPEND:
                return $response . $separator . $content;
            default:
                // replace content
                return $response;

Hors ligne

 

#6 26-02-2010 15:14:05

neoncyber
Nouveau membre
Date d'inscription: 25-02-2010
Messages: 5

Re: [RESOLU] Exception avec Zend_Form_Decorator_Callback

Solution :
path: library/Ad/Util.php

class Ad_Util
{
  public static function label($content, $element, array $options)
  {
    return   '<span class="label">coucou</span>';
  }
}

$element->addDecorator('callback', array('callback' => array('Ad_Util', 'label'),'placement' => false));

Bye !

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages