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)
Dependecias: sfThumbnailPlugin
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
Symfony Developer
Email/Gtalk: henryvallenilla@gmail.com
Skype: hvallenilla
Caracas - Venezuela
www.matatigre.com
