Hola,
Estoy usando symfony 1.4 y tengo que hacer un modulo en el backend que sea para subir banners en multiidioma, lo que he hecho ha sido crear una tabla llamada banners_home y su correspondiente translation con el campo banner, y para subir los archivos funciona, pero a la hora de mostrar los archivos subidos, solo me muestra los de español. Y bueno a la hora de subir las imagenes tampoco me pasa por una función que he creado para poner un nombre único legible y redimensionar la imagen si fuera necesario, a continuación os pongo el código:
Código:
$this->widgetSchema['banner'] = new sfWidgetFormInputFileEditable(array(
'label' => 'Banner',
'file_src' => '/uploads/banners/'.$this->getObject()->BannersHome->getBanner(),
'is_image' => true,
'edit_mode' => !$this->isNew(),
'template' => '<div>%file%<br />%input%<br />'.public_path('uploads/banners/'.$this->getObject()->BannersHome->getBanner(), true).'</div>',
));
Este es el código para mostrar el archivo y me muestra siempre el del idioma español, imagino que porque coge el "culture" del backend, y claro me gustaría que mostrase los de los otros idiomas también.
Y aquí la parte de subir archivos:
Código:
public function save($con = null) {
parent::save($con);
$banner = Doctrine_Core::getTable('BannersHomeTranslation')->find($this->getObject()->getIdBanner());
if(strlen(trim($this->getValue('banner')))>0){
$filename_home = Functions::upload_file(sfconfig::get('sf_upload_dir').'/banners/', $this->getValue('banner'), $banner->getBanner(), $banner->getPromo(), 999, 167);
$query = Doctrine_Query::create()
->update('BannersHomeTranslation')
->set('banner', "'".$filename_home."'")
->where('id_banner = '.$banner->getIdBanner())
->execute();
}
return $banner;
}
Aquí no me lo coge porque el getvalue de banner no lo encuentra al ser multiidioma.
A ver si podeis echarme un cable, muchísimas gracias por adelantado.