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

Zend_Form_Element_Radio, ViewHelper y ViewScript

Estas en el tema de Zend_Form_Element_Radio, ViewHelper y ViewScript en el foro de Zend en Foros del Web. Saludos, Estoy experimentando con Zend_Form_Element_Radio y quisiera modificar el label del radio a que esté al lado. En vez de que esté así @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); ...
  #1 (permalink)  
Antiguo 08/08/2011, 08:11
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Zend_Form_Element_Radio, ViewHelper y ViewScript

Saludos,

Estoy experimentando con Zend_Form_Element_Radio y quisiera modificar el label del radio a que esté al lado.

En vez de que esté así
Código HTML:
Ver original
  1. <div id="status">
  2.     <label for="status" class="optional">Status:</label>
  3.     <label for="status-0" class="" aria-disabled="false">
  4.         <input type="radio" name="status" id="status-0" value="0" checked="checked">
  5.         Pendiente
  6.     </label>
  7.     <label for="status-1">
  8.         <input type="radio" name="status" id="status-1" value="1">
  9.         Completado
  10.     </label>
  11. </div>
esté así
Código HTML:
Ver original
  1. <div id="status">
  2.     <label for="status" class="optional">Status:</label>
  3.     <input type="radio" name="status" id="status-0" value="0" checked="checked">
  4.     <label for="status-0" class="" aria-disabled="false">Pendiente</label>
  5.     <input type="radio" name="status" id="status-1" value="1">
  6.     <label for="status-1">Completado</label>
  7. </div>
Lo que traté de hacer a ver si salia fue esto
Código PHP:
Ver original
  1. /***************************
  2.  *                      status
  3.  **************************/
  4. $status = new Zend_Form_Element_Radio('status');
  5. $status->setLabel('Status:')
  6.     ->setDecorators(
  7.         array(
  8.             array('ViewHelper', array('ViewScript', array('viewScript' => 'elements/radio.phtml'))),
  9.             'Label',
  10.             array('HtmlTag', array('tag' => 'div', 'id' => 'status', 'openOnly' => true)),
  11.         )
  12.     )
  13.     ->addMultiOptions(
  14.         array(
  15.             0 => 'Pendiente',
  16.             1 => 'Completado'
  17.         )
  18.     )
  19.     ->setSeparator(' ');
Pero ni error me dio Lo colocó como normalmente lo hace

¿Cuál es la forma como podría lograr lo que quiero?

Edito: El viewScript no lo he creado todavía, solo coloqué eso para que me diera el error, pero como no me dio el error ahora quede
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos

Última edición por abimaelrc; 08/08/2011 a las 08:16
  #2 (permalink)  
Antiguo 08/08/2011, 08:59
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: Zend_Form_Element_Radio, ViewHelper y ViewScript

No te da error porque estas agregando mal el decorator, debería ser algo así:
Código PHP:
Ver original
  1. ...
  2. $this->addElement('radio', 'status', array(
  3.     'label'        => 'Status:',
  4.     'separator'    => ' ',
  5.     'multiOptions' => array('Pendiente', 'Completado'),      
  6.     'decorators'   => array(
  7.         array('ViewScript', array('viewScript' => 'elements/radio.phtml'))
  8.     )  
  9. ));
  10. ...

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #3 (permalink)  
Antiguo 08/08/2011, 09:12
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Zend_Form_Element_Radio, ViewHelper y ViewScript

Lo que pasa es que debes de usar, o el ViewHelper, o el ViewScript, la idea de usar el ViewScript es esa, que tu generes el layout de la forma que quieres.

Saludos.
  #4 (permalink)  
Antiguo 08/08/2011, 09:56
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Zend_Form_Element_Radio, ViewHelper y ViewScript

Ohhh, lo que pasa es que tome de referencia uno con file y como habia que añadirlo de la forma como indique, pense que con el resto era asi. Ahora me siento menos analfebeta

Edito: con file en vez de indicar ViewHelper, es File.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos

Última edición por abimaelrc; 08/08/2011 a las 10:01
  #5 (permalink)  
Antiguo 08/08/2011, 12:09
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Zend_Form_Element_Radio, ViewHelper y ViewScript

Ok, ahora he logrado crearlo como yo quiero, pero no sé como obtener el valor que tiene por defecto, pero que este valor se llena por populate ya que viene de una base de datos.
Código PHP:
Ver original
  1. <div id="<?php echo $this->element->getId(); ?>">
  2.     <?php echo $this->formLabel($this->element->getFullyQualifiedName(), $this->element->getLabel());?>
  3.     <?php foreach($this->element->getMultiOptions() as $k => $v): ?>
  4.         <input type="radio" name="<?php echo $this->element->getName(); ?>" id="<?php echo $this->element->getName(); ?>-<?php echo $k; ?>" value="<?php echo $k; ?>" <?php echo $s; ?> />
  5.         <label for="<?php echo $this->element->getName(); ?>-<?php echo $k; ?>"><?php echo $v; ?></label>
  6.     <?php endforeach; ?>
  7. </div>
De esta forma lo logré pero me falta el checked

Edito: Ya veo como se recibe, con
Código PHP:
Ver original
  1. <?php echo $this->element->getValue(); ?>
Se sabe que valor tiene entonces sería algo así
Código PHP:
Ver original
  1. <div id="<?php echo $this->element->getId(); ?>">
  2.     <?php echo $this->formLabel($this->element->getFullyQualifiedName(), $this->element->getLabel());?>
  3.     <?php foreach($this->element->getMultiOptions() as $k => $v): ?>
  4.         <?php $s = $this->element->getValue() == $k ? 'checked="checked"' : null; ?>
  5.         <input type="radio" name="<?php echo $this->element->getName(); ?>" id="<?php echo $this->element->getName(); ?>-<?php echo $k; ?>" value="<?php echo $k; ?>" />
  6.         <label for="<?php echo $this->element->getName(); ?>-<?php echo $k; ?>"><?php echo $v; ?></label>
  7.     <?php endforeach; ?>
  8. </div>
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos

Última edición por abimaelrc; 08/08/2011 a las 12:14

Etiquetas: frameworks-y-php-orientado-a-objetos, viewhelper
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 12:11.