Bonjour,
Ce poste (lister les noms de dossier dans un menu déroulant) m'a bien aidé pour le champs de formulaire select.
ska_root j'ai réutilisé votre méthode : new DirectoryIterator, mais sur prestashop 1.7 j'ai eu un petit accrochage.
Voici mon code :
Le helper form :
et ici ma fonction :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 array( 'type' => 'select', 'label' => $this->l('Events:'), 'name' => 'selectEvent', 'required' => true, 'options' => $this->getEvents(new DirectoryIterator($_SERVER['DOCUMENT_ROOT'].$this->_path.'/views/img'),'selectEvent'), ),
Effectivement je n'ai pas utilisé la variable ($name), mais lorsque j'ai mon tout le code de mon formulaire avec le (name) les arrays ne supportent pas les boucles FOR internes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 public function getEvents($it,$name){ // pour chaque entree du repertoire for( ; $it->valid(); $it->next()) { // si c'est un repertoire et si ce n'est pas "." ou ".." if($it->isDir() && !$it->isDot()) $idevents =array( 'query' => $idevents = array( array('idevents' => $it->getFilename(), 'name' => $it->getFilename()), ), 'id' => 'idevents', 'name' => 'name' ); } return $idevents; }
Le résultat qui s'affiche dans le champs (select) n'est rien d'autre que 1 nom de dossier sur 5 et en plus c'est le dernier.
Quelqu'un aurait une idée ?
Partager