Ver Mensaje Individual
  #9 (permalink)  
Antiguo 14/02/2011, 22:51
Avatar de SergeMedina
SergeMedina
 
Fecha de Ingreso: septiembre-2007
Ubicación: Guadalajara, Jalisco
Mensajes: 459
Antigüedad: 17 años, 2 meses
Puntos: 20
Respuesta: Zend_File_Transfer y Zend_Form::getValues()

Que tal abimaelrc, lo que GatorV se refiere es que la logica de procesamiento de las imagenes deberia de ir en el modelo; esto es porque en MVC, el modelo es la capa de negocio de la aplicación.

En el metodo save de un modelo yo tengo:

Código PHP:
Ver original
  1. public function save(array $data)
  2.     {
  3.         $this->getForm()->addExtraElements();
  4.  
  5.         //saber si es un update para deshabilitar que los archivos sean requeridos
  6.         $img = $this->getForm()->getElement('NombreImagen');
  7.         if($data['idDestino'] > 0) {
  8.             $img->setRequired(false);
  9.         }
  10.  
  11.         //...
  12.  
  13.  
  14.         $data = $this->getForm()->getValues();
  15.         if($data['DiasSalida'][0] === 'todos') {
  16.             unset($data['DiasSalida'][0]);
  17.         }
  18.        
  19.  
  20.         $imagenes = $data['NombreImagen'];
  21.         if(!is_array($data['NombreImagen']) && isset($data['NombreImagen'])) {
  22.             $imagenes = array($data['NombreImagen']);
  23.         }
  24.  
  25.         //en subidas de imagenes se debe de manejar si es un update o delete.
  26.         $key = 0;
  27.         if(is_array($imagenes)) {
  28.             foreach ($imagenes as $img) {
  29.                 if($data['idImagen'][$key] > 0) {
  30.                     $multi->updateImagen($data['idImagen'][$key], $img);
  31.                 } else {
  32.                     $multi->addImagen($img);
  33.                 }
  34.                 $key++;
  35.             }
  36.         }
  37.        
  38.         if(is_array($data['idImagenBorrada'])) {
  39.             foreach($data['idImagenBorrada'] as $idImagen) {
  40.                 $multi->deleteImagen($idImagen);
  41.             }
  42.         }
  43.         //...
  44.        
  45.         return $this->getMapper()->save($this);
  46.     }

Tengo un modelo "multimedia" que se encarga de hacer la persistencia correspondiente para cada modelo que utiliza imagenes.

Espero que te ayude,

Saludos.
__________________
I see dead pixels