Foros del Web » Programando para Internet » PHP » Zend »

Consulta + Decorator personalizado Composite + Zend Form

Estas en el tema de Consulta + Decorator personalizado Composite + Zend Form en el foro de Zend en Foros del Web. Hola chicos, tengo la siguiente duda, quiero aplicar el ejemplo de la documentacion. La cual proponen la siguiente clase para customizar un decorador: Código PHP: ...
  #1 (permalink)  
Antiguo 05/09/2008, 13:01
 
Fecha de Ingreso: mayo-2005
Mensajes: 257
Antigüedad: 18 años, 11 meses
Puntos: 1
Consulta + Decorator personalizado Composite + Zend Form

Hola chicos, tengo la siguiente duda, quiero aplicar el ejemplo de la documentacion.
La cual proponen la siguiente clase para customizar un decorador:

Código PHP:
class My_Decorator_Composite extends Zend_Form_Decorator_Abstract
{
    public function 
buildLabel()
    {
        
$element $this->getElement();
        
$label $element->getLabel();
        if (
$translator $element->getTranslator()) {
            
$label $translator->translate($label);
        }
        if (
$element->isRequired()) {
            
$label .= '*';
        }
        
$label .= ':';
        return 
$element->getView()
                       ->
formLabel($element->getName(), $label);
    }

    public function 
buildInput()
    {
        
$element $this->getElement();
        
$helper  $element->helper;
        return 
$element->getView()->$helper(
            
$element->getName(),
            
$element->getValue(),
            
$element->getAttribs(),
            
$element->options
        
);
    }

    public function 
buildErrors()
    {
        
$element  $this->getElement();
        
$messages $element->getMessages();
        if (empty(
$messages)) {
            return 
'';
        }
        return 
'<div class="errors">' .
               
$element->getView()->formErrors($messages) . '</div>';
    }

    public function 
buildDescription()
    {
        
$element $this->getElement();
        
$desc    $element->getDescription();
        if (empty(
$desc)) {
            return 
'';
        }
        return 
'<div class="description">' $desc '</div>';
    }

    public function 
render($content)
    {
        
$element $this->getElement();
        if (!
$element instanceof Zend_Form_Element) {
            return 
$content;
        }
        if (
null === $element->getView()) {
            return 
$content;
        }

        
$separator $this->getSeparator();
        
$placement $this->getPlacement();
        
$label     $this->buildLabel();
        
$input     $this->buildInput();
        
$errors    $this->buildErrors();
        
$desc      $this->buildDescription();

        
$output '<div class="form element">'
                
$label
                
$input
                
$errors
                
$desc
                
'</div>';

        switch (
$placement) {
            case (
self::PREPEND):
                return 
$output $separator $content;
            case (
self::APPEND):
            default:
                return 
$content $separator $output;
        }
    }


Esto yo lo grabé en un archivo My_Decorator.php, en mi siguiente arbol:
Código PHP:
app
    
-modules
                
-frontend
                             
-models
                                         
-My_Decorator.php 
Entonces, me surge el siguiente problema, para usarlo pongo:

Código PHP:
$participante $this->createElement('text''participante');
$participante->addPrefixPath('My_Form_Decorator''My/Form/Decorator/''decorator');
$participante->setDecorators(array('Composite')); 

y me devuelve el siguiente error:

Código:
Warning: Plugin by name Composite was not found in the registry
Como puedo solucionarlo??? Estoy medio perdido. Supongo que estoy configurando mal la ruta, pero no entiendo, como tendría que ir.

Tambien, en donde me recomiendan guardarlo??

Desde ya, un abrazo
  #2 (permalink)  
Antiguo 05/09/2008, 14:10
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Consulta + Decorator personalizado Composite + Zend Form

Hola gabyrsh,

Revisa la función addPrefixPath, tu problema es que efectivamente lo estas guardando en otro lugar y lo debes de guardar de acuerdo al path (y nomenclatura) que especificas en este método.

Saludos.
  #3 (permalink)  
Antiguo 05/09/2008, 14:17
 
Fecha de Ingreso: mayo-2005
Mensajes: 257
Antigüedad: 18 años, 11 meses
Puntos: 1
Respuesta: Consulta + Decorator personalizado Composite + Zend Form

Me podrias dar un ejemplo, de como tendria que ir? por favor.
  #4 (permalink)  
Antiguo 05/09/2008, 14:20
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Consulta + Decorator personalizado Composite + Zend Form

No es necesario un ejemplo solo revisa la documentación, el primer parametro es el "namespace" del decorador, y el segundo es el path hacia donde esta el decorador.

Saludos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:26.