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

Zend como colocar una imagen en un form

Estas en el tema de Zend como colocar una imagen en un form en el foro de Zend en Foros del Web. Hola. Quiero colocar una pequeña imagen en un form. Pero no una imagen input. solo una imagen <img src > . ya que no quiero ...
  #1 (permalink)  
Antiguo 24/11/2009, 22:24
 
Fecha de Ingreso: noviembre-2008
Mensajes: 288
Antigüedad: 16 años
Puntos: 2
Zend como colocar una imagen en un form

Hola.
Quiero colocar una pequeña imagen en un form. Pero no una imagen input. solo una imagen <img src > . ya que no quiero que linkee al hacer click sobre ella, como ocurre con Zend_Form_Element_Image. ¿alguien sabe como hacer?
  #2 (permalink)  
Antiguo 25/11/2009, 06:14
 
Fecha de Ingreso: noviembre-2007
Ubicación: Lanus, Buenos Aires
Mensajes: 178
Antigüedad: 17 años
Puntos: 14
Respuesta: Zend como colocar una imagen en un form

Puedes usar el decorator Description, seteando escape => false, y luego poniendo en la descripcion del elemento "<img src='xxx' />", o puedes usar el decorator Callback y hacer algo similar

Código PHP:
$element->addDecorator(array('img' => 'Description'), array('escape' => false'description' => '<img src="xxx" />')); 
usando el callback decorator podrias crear un decorador general que reciba el src de la imagen y se encargue del resto (a mi me gusta mas esta forma :P)

http://framework.zend.com/manual/en/...ators.callback
  #3 (permalink)  
Antiguo 25/11/2009, 12:19
 
Fecha de Ingreso: noviembre-2008
Mensajes: 288
Antigüedad: 16 años
Puntos: 2
Respuesta: Zend como colocar una imagen en un form

gracias Rodrigo.
Estoy probando la primera opción que me diste. El callback creo que aun está unos niveles más arriba de mi conocimiento. Soy nuevo con el Zend.

¿conoces algun link que explique bien detalladamente como funcionan los decorators? preferentemente en español.

estoy tratando de incluir el ejemplo que me pasaste dentro del decorator que ya tenía para colocarlo dentro de una tabla:
$elemento->setDecorators(array(
'viewHelper',
'Errors',
array('HtmlTag', array('tag'=>'td')),
array(array('row'=>'HtmlTag'),array('tag'=>'tr',
'openOnly' => true, 'placement' => Zend_Form_Decorator_Abstract::PREPEND))

pero aun no he dado con el resultado.
  #4 (permalink)  
Antiguo 25/11/2009, 12:34
 
Fecha de Ingreso: noviembre-2008
Mensajes: 288
Antigüedad: 16 años
Puntos: 2
Respuesta: Zend como colocar una imagen en un form

por ahora he podido resolverlo agregando un onclick = return false; :

$form->elemento
->setImage('imagen.jpg')
->setAttrib('onclick','return false');

Lo que no me gusta, es que continua colocando "la manito" de link cuando pasa el mouse sobre la imagen.
  #5 (permalink)  
Antiguo 25/11/2009, 14:20
 
Fecha de Ingreso: noviembre-2007
Ubicación: Lanus, Buenos Aires
Mensajes: 178
Antigüedad: 17 años
Puntos: 14
Respuesta: Zend como colocar una imagen en un form

la verdad que un link en español explicando bien el uso de los decorators no conozco, y en ingles conozco solo uno o dos :P

esto no te funciona?

Código PHP:
$elemento->setDecorators(array(
array(array(
'img' => 'Description'), array('escape' => false'description' => '<img src="xxx" />')),
'ViewHelper',
'Errors',
array(
'HtmlTag', array('tag'=>'td')),
array(array(
'row'=>'HtmlTag'),array('tag'=>'tr''openOnly' => true'placement' => Zend_Form_Decorator_Abstract::PREPEND))
); 

igualmente quizas no quieras poner la imagen ahi, o no te guste como queda, o lo que sea... para personalizarlo a tu gusto tendrias que tener un conocimiento medio-avanzado del uso de los decorators, si bien no es dificil suele costar abrir la cabeza para entenderlos y manejarlos a la perfeccion

saludos
  #6 (permalink)  
Antiguo 25/11/2009, 21:49
 
Fecha de Ingreso: noviembre-2008
Mensajes: 288
Antigüedad: 16 años
Puntos: 2
Respuesta: Zend como colocar una imagen en un form

aha.. bien, ahora veo bien como introducir ese código en todo el decorator. gracias.

Volviendo, me gustaría más no definir el archivo de imagen dentro del decorator.

bueno, si tenes esos links explicativos a mano, pasamelos igual.

hoy estuve buscando y encontre este que parece bastante claro,
aunque falta un poco más de explicación en como construir distintos ejemplos.
Pero al menos, la teoría inicial, creo que está bien explicada.
http://devzone.zend.com/article/3450...with-Zend_Form

gracias Rodrigo.
  #7 (permalink)  
Antiguo 26/11/2009, 09:13
 
Fecha de Ingreso: noviembre-2007
Ubicación: Lanus, Buenos Aires
Mensajes: 178
Antigüedad: 17 años
Puntos: 14
Respuesta: Zend como colocar una imagen en un form

el archivo de imagen solo puedes definirlo dentro del decorador

y ese link es de los mas explicativos que puedes encontrar, otros mas avanzados los puedes encontrar en http://weierophinney.net/matthew/ind...rm]=decorators

igualmente todo esto tambien esta explicado en el manual :)

saludos
  #8 (permalink)  
Antiguo 26/11/2009, 23:17
Avatar de emiliodeg  
Fecha de Ingreso: septiembre-2005
Ubicación: Córdoba
Mensajes: 1.830
Antigüedad: 19 años, 2 meses
Puntos: 55
Respuesta: Zend como colocar una imagen en un form

a modo de colaboración, depsues de leer esto, pude hacer un buen decorador para un input file

Código php:
Ver original
  1. class ComercioForm extends Zend_Form {
  2.    
  3.     public function __construct($o = null) {
  4.         parent::__construct($o);
  5.    
  6.         $this->setMethod(Zend_Form::METHOD_POST)->setEnctype(Zend_Form::ENCTYPE_URLENCODED)->setAttrib('accept-charset','utf-8');
  7.        
  8.         $this->addElement(
  9.             $this->createElement('file','logo')
  10.             ->setLabel('Logotipo')
  11.             ->setRequired(false)
  12.             ->addDecorators(
  13.                 array(
  14.                     array('Description',array('escape'=>false,'tag'=>'p', 'placement' => Zend_Form_Decorator_Abstract::PREPEND))                   
  15.                 )
  16.             )
  17.         );
  18. /*resto del formulario */      
  19. }
  20. }
  21.  
  22.  
  23. y luego en mi controlador, cuando edito (ya q cuando creo nunca voy a tener ya un logo cargado)
  24.  
  25. $this->view->formulario->populate($comercio->toArray());
  26.        
  27.         if($comercio->idLogo>0){
  28.             $this->view->formulario->getElement('logo')->setDescription(
  29.                 $this->view->thumb(
  30.                     $comercio->findParentArchivos_Models_LogosModelByLogo()->nombre,
  31.                     Zend_Registry::get('config')->logos
  32.                 )
  33.             );
  34.         }
  35.  
  36. // $this->view->thumb es un simple viewHelper q genera un <img />

con esto todo solucionado y ahora tenes el input type file con img cuando ya hay una cargada ;)
__________________
Degiovanni Emilio
developtus.com
  #9 (permalink)  
Antiguo 26/11/2009, 23:19
Avatar de emiliodeg  
Fecha de Ingreso: septiembre-2005
Ubicación: Córdoba
Mensajes: 1.830
Antigüedad: 19 años, 2 meses
Puntos: 55
Respuesta: Zend como colocar una imagen en un form

bueno depsues de esto se me ocurre q hay q buscar una buena solucion cuando envio el formulario y pifia algo para q no se pierda el archivo subido

voy a tener q revisar como solucionarlo con un poco mas de tiempo
__________________
Degiovanni Emilio
developtus.com
  #10 (permalink)  
Antiguo 28/11/2009, 03:20
 
Fecha de Ingreso: noviembre-2008
Mensajes: 288
Antigüedad: 16 años
Puntos: 2
Respuesta: Zend como colocar una imagen en un form

Muchas gracias Emilio !!!!!!!!!!!!!!!!!!
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 04:19.