Upload de fichiers internationnalisés
bonjour j'ai plus ou moins le meme problème que dans ce sujet.
J'ai une table Offre qui a un champ vignette en i18n
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| Offre:
actAs:
Timestampable: ~
I18n:
fields: [libelle, vignette]
columns:
id:
type: integer
autoincrement: true
primary: true
annonceur_id: { type: integer, notnull: true }
libelle: { type: string(255), notnull: true }
vignette: { type: string(255) }
gain: { type: decimal }
relations:
Annonceur:
local: annonceur_id
foreign: id
foreignAlias: Annonceur |
J'ai créé ma form comme ceci :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| class OffreForm extends BaseOffreForm {
public function configure() {
unset($this['created_at'], $this['updated_at']);
$this->setWidget('region_list', new sfWidgetFormDoctrineChoice(array('multiple' => true, 'expanded' => true, 'model' => 'Region')));
$this->languages = sfConfig::get('app_cultures_enabled');
$langs = array_keys($this->languages);
$this->embedI18n($langs);
foreach ($this->languages as $lang => $label) {
$this->widgetSchema[$lang]->setLabel($label);
}
}
} |
et
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| class OffreTranslationForm extends BaseOffreTranslationForm {
public function configure() {
unset($this['vignette'], $this['flyer']);
$this->widgetSchema['vignette'] = new sfWidgetFormInputFileEditable(array(
'file_src' => '/uploads/annonceurs/' . $this->getObject()->vignette, // Le dossier de stockage
'edit_mode' => !$this->isNew(), // Affiche la case supprimer si on est en mode édition
'is_image' => true, // Afficher l'image
'delete_label' => 'Supprimer',
'template' => '%file% %input% %delete% %delete_label%',
));
$this->validatorSchema['vignette'] = new sfValidatorFile(array(
'mime_types' => 'web_images',
'path' => sfConfig::get('sf_upload_dir').'/annonceurs/',
'required' => false
));
}
} |
Mon formulaire se sauve bien,
j'ai mes champs dans la db,
et mon image est bien uploadé dans le directory
Code:
/uploads/annonceurs/
Je souhaiterais en réalité sauver mes images dans un dossier par annonceur du style
Code:
/uploads/annonceurs/%annonceur_id%/maVignette.jpg
Qu'elle est la manière la plus rigoureuse de faire cela, sachant que je suis dasn un module admin (en backend)
merci d'avance