Inicio > Symfony > New version sfUploadFilePlugin (for Symfony 1.4) / Nueva versión sfUploadFilePlugin (para Symfony 1.4)

New version sfUploadFilePlugin (for Symfony 1.4) / Nueva versión sfUploadFilePlugin (para Symfony 1.4)

Los cambios realizados en el plugin permiten ajustar la configuración de la imagen en el modulo o en la aplicación (Leer Readme)

DependeciassfThumbnailPlugin

Instalación

1) Descarga el paquete: sfUploadFilePlugin

2) Existen dos maneras de configuración:

2.1) En el módulo o los módulos donde se vaya a usar el helper debe crearse el archivo module.yml
en la carpeta config de dicho módulo. La estructura para que el helper funcione es la siguiente:

all:
configuration:
upload_images:
# Número de copias
copies:   NUMERO DE COPIAS "DEBE COINCIDIR CON LA CANTIDAD DE TAMAÑOS"
size_1:   {pref_1: small, image_width_1: #, image_height_1: #}
size_N:   {pref_N: """, image_width_N: #, image_height_N: #}

2.2) En el app.yml de la aplicación:

all:
upload_images:
nombre_modulo:
copies:   NUMERO DE COPIAS "DEBE COINCIDIR CON LA CANTIDAD DE TAMAÑOS"
size_1:   {pref_1: small, image_width_1: #, image_height_1: #}
size_N:   {pref_N: """, image_width_N: #, image_height_N: #}

3) Se agregó otro parámetro ($inModule) que debe ser TRUE si la configuración depende del modulo, ó, FALSE si la configuración está en la aplicación.

loadFiles($file->getOriginalName(), $file->getTempname(), 0,
sfConfig::get('app_directory_upload'), $Model->getId(), $inModule);

De esta manera se cargan los archivo al directorio especifico.
Pero esto no lo es todo, al momento de edición del registro y selecciono una nueva imagen debo borrar
la anterior. Para esto, en el método doSave de su FormClass Model ó en la función que estén usando
para guardar los cambios, se debe incluir lo siguiente:

protected function doSave($con = null)
{
// Si hay un nuevo archivo por subir y ya mi registro tiene un archivo asociado entonces,
if ($this->getObject()->getImage() && $this->getValue('image'))
{
// recorro y elimino
$configParam = sfConfig::get('mod_MODULE_configuration_upload_images');
for($i=1;$i<=$configParam['copies'];$i++)
{
// Elimino las fotos de la carpeta
if(is_file(sfConfig::get('app_directory_poster').$configParam['size_'.$i]['pref_'.$i].'_'.$this->getObject()->getImage()))
{
unlink(sfConfig::get('app_directory_poster').$configParam['size_'.$i]['pref_'.$i].'_'.$this->getObject()->getImage());
}
}
}
return parent::doSave($con);
}}

Saludos,
Henry Vallenilla (Programador Web en Php)
Henry Vallenilla
Symfony Developer
Email/Gtalk: henryvallenilla@gmail.com
Skype: hvallenilla
Caracas - Venezuela
www.matatigre.com

Compartir información en: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • MisterWong
  • Y!GG
  • Webnews
  • Digg
  • del.icio.us
  • StumbleUpon
  • Reddit
  • Ask
  • De.lirio.us
  • Facebook
  • LinkedIn
  • Live-MSN
  • MySpace
  • YahooMyWeb
  • email
  • Google Bookmarks
  • TwitThis
  • YahooBuzz
Categories: Symfony Tags:
  1. Sin comentarios aún.
  1. Sin trackbacks aún.