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

[SOLUCIONADO] Problemas con decorators

Estas en el tema de Problemas con decorators en el foro de Zend en Foros del Web. Hola: Voy maquetando mi Formulario pero tengo la necesidad: 1. Insertar solo un label el cual debe estar envuelto con un id css, además debe ...
  #1 (permalink)  
Antiguo 26/06/2013, 18:03
 
Fecha de Ingreso: enero-2010
Mensajes: 491
Antigüedad: 9 años, 10 meses
Puntos: 12
Problemas con decorators

Hola:

Voy maquetando mi Formulario pero tengo la necesidad:

1. Insertar solo un label el cual debe estar envuelto con un id css, además debe estar alineado horizontalmente a lado de un textbox

Agrupe los elementos y le puse ->removeDecorator('DtDdWrapper') en algunos elementos donde no quiero que tenga estos tags todo con el fin de alinear el label uno a lado de otro, esto me funciona con el submit y el button (es decir estos dos elementos están alineados horizontalmente), pero no con los imputs, a que se debe?

Código PHP:
        $nrofolios = new Zend_Form_Element_Text('nrofolios');
        
$nrofolios->setLabel('Nro. de Folios:')
        ->
removeDecorator('DtDdWrapper')
        ->
setAttrib('size','3')
        ->
setValue('1')
        ->
addFilter 'StripTags' )
        ->
addFilter 'StringTrim' )
        ->
addValidator 'Digits' )
        ->
addValidator ('StringLength' false, array(1,2));

//Deseo que este elemento esté alineadoc on el anterior
        
$nroanexos = new Zend_Form_Element_Text('nroanexos');
        
$nroanexos->setLabel('Nro. de Anexos:')
        ->
removeDecorator('DtDdWrapper')
        ->
setAttrib('size','3')
        ->
addFilter 'StripTags' )
        ->
addFilter 'StringTrim' )
        ->
addValidator 'Digits' )
        ->
addValidator ('StringLength' false, array(1,2));
//Asi los agrupo
        
$this->addElements ( array (
                
$id,
                
$idr,
                
$ide,
                
$lista,
                
$remitente,
                
$destino,
                
$fecha,
                
$referencia,
                
$nrofolios,
                
$nroanexos,
                
$anexos,
                
$tenor,
                
$submit,
                
$cancel
        
) );
        
        
$this->addDisplayGroup(array('id','ide','idr','lista','remitente','destino','fecha','referencia'),'datos1');
        
$datos1 $this->getDisplayGroup('datos1');
        
$datos1->setDecorators(array('FormElements',array('HtmlTag',array('div id' => 'wbuttoncenter'))));

        
$this->addDisplayGroup(array('nrofolios','nroanexos'),'datos2');
        
$datos2 $this->getDisplayGroup('datos2');
//         $datos2->removeDecorator('DtDdWrapper');
        
$datos2->setDecorators(array('FormElements',array('HtmlTag',array('div id' => 'wbuttoncenter'))));

        
$this->addDisplayGroup(array('anexos','tenor'),'datos3');
        
$datos3 $this->getDisplayGroup('datos3');
        
$datos3->setDecorators(array('FormElements',array('HtmlTag',array('div id' => 'wbuttoncenter'))));
        
        
$this->addDisplayGroup(array('submit','cancel'), 'botones');
        
$botones $this->getDisplayGroup('botones');
        
$botones->setDecorators(array('FormElements',array('HtmlTag',array('div id' => 'wbuttoncenter')))); 
Asi me genera el Html:
Código HTML:
<form id="compinterna" enctype="application/x-www-form-urlencoded" action="" method="post"><dl class="zend_form">
<div div id="wbuttoncenter">

<input type="hidden" name="id" value="" id="id" />

<input type="hidden" name="ide" value="" id="ide" />

<input type="hidden" name="idr" value="" id="idr" />

<input type="hidden" name="lista" value="" id="lista" />
<dt id="remitente-label"><label for="remitente" class="required">Remitente:</label></dt>
<dd id="remitente-element">
<textarea name="remitente" id="remitente" rows="1" cols="60" required="" size="80"></textarea></dd>
<dt id="destino-label"><label for="destino" class="required">Dirigido a:</label></dt>
<dd id="destino-element">
<textarea name="destino" id="destino" rows="1" cols="60" required="" size="80"></textarea></dd>
<dt id="fecha-label"><label for="fecha" class="optional">Fecha y Hora:</label></dt>
<dd id="fecha-element">
<input type="text" name="fecha" id="fecha" value="26-06-2013 20:48:09" disabled="" /></dd>
<dt id="referencia-label"><label for="referencia" class="required">Referencia:</label></dt>
<dd id="referencia-element">
<textarea name="referencia" id="referencia" required="" rows="2" cols="60"></textarea></dd></div>
<div div id="wbuttoncenter">
<dt id="nrofolios-label"><label for="nrofolios" class="optional">Nro. de Folios:</label></dt>
<dd id="nrofolios-element">
<input type="text" name="nrofolios" id="nrofolios" value="1" size="3" /></dd>
<dt id="nroanexos-label"><label for="nroanexos" class="optional">Nro. de Anexos:</label></dt>
<dd id="nroanexos-element">
<input type="text" name="nroanexos" id="nroanexos" value="" size="3" /></dd></div>
<div div id="wbuttoncenter">
<dt id="anexos-label"><label for="anexos" class="optional">Anexos:</label></dt>
<dd id="anexos-element">
<textarea name="anexos" id="anexos" rows="1" cols="60"></textarea></dd>
<dt id="tenor-label">*</dt>
<dd id="tenor-element">
<textarea name="tenor" id="tenor" rows="24" cols="80"></textarea></dd></div>
<div div id="wbuttoncenter">

<input type="submit" name="submit" id="submitbutton" value="Guardar" />

<button name="cancel" id="cancel" type="button" onclick="opera('/documento/cominterna')">Cancelar</button></div></dl></form> 

2. Necesito que uno de los label tenga un link. intente así pero no funciona:
Código PHP:
        $destino = new Zend_Form_Element_Textarea 'destino' );
        
$destino->setLabel 'Dirigido a:' )
        ->
setDecorators(array(
                
'ViewHelper',
                array(array(
'data'=>'HtmlTag'),array('tag'=>'dd')),
                array(
'Label',array('tag'=>'dt')),
                array(array(
'a'=>'HtmlTag'), array('a href'=>'#'))
                )) 
  #2 (permalink)  
Antiguo 26/06/2013, 18:18
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 11 años, 11 meses
Puntos: 845
Respuesta: Problemas con decorators

Te sugiero que utilices el decorator ViewScript que te permite control absoluto del layout, no tiene sentido perder tiempo con algo que debería ser trivial, no por capricho han desaparecido de Zend 2....

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #3 (permalink)  
Antiguo 26/06/2013, 19:01
 
Fecha de Ingreso: enero-2010
Mensajes: 491
Antigüedad: 9 años, 10 meses
Puntos: 12
Respuesta: Problemas con decorators

Gracias masterpuppet, lo tomare en cuentra

Etiquetas: Ninguno
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 17:05.