Bonjour

J'aimerai afficher, lors de l'édition d'une séance depuis l'administration, à côté de chaque case à cocher de chaque activité, une liste déroulante permettant d'indiquer le nombre de vidéos requis pour la séance et l'activité.

Mon schéma :
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
19
20
21
22
23
24
25
26
27
28
29
30
Seance:
  columns:
    name:
      type:           string(255)
      notnull:        true
Activite:
  columns:
    name:
      type:           string(255)
      notnull:        true
  relations:
    Seances:
      class:          Seance
      refClass:       SeanceActivite
      foreignAlias:   Activites
SeanceActivite:
  columns:
    seance_id:
      type:           integer
      primary:        true
    activite_id:
      type:           integer
      primary:        true
    nbvidrequis:
      type:           integer
  relations:
    Seance:
      foreignAlias:   SeanceActivites
    Activite:
      foreignAlias:   SeanceActivites
Dans la page d'édition d'une séance, j'arrive à afficher la liste des activités sous forme de case à cocher :
Mon generator.yml >
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
generator:
...
    config:
...
      form:
        class: BackendSeanceForm
...
Ma classe BackendSeanceForm >
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
class BackendSeanceForm extends SeanceForm
{
  public function configure()
  {
    $this->widgetSchema['activites_list'] = new sfWidgetFormDoctrineChoice(array(
	  'label' => 'Activités associées',
      'multiple' => true, 
	  'expanded' => true, 
	  'model' => 'Activite',
	  'renderer_class' => 'myWidgetFormSelectCheckboxTable' 
    ));
  }
}
et le myWidgetFormSelectCheckboxTable.class.php

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
19
20
21
22
class myWidgetFormSelectCheckboxTable extends sfWidgetFormSelectCheckbox {
 
  public function formatter($widget, $inputs) {
    $rows = array();
    $itemsPerRow = sfConfig::get('app_itemsperrow_checkbox');
    $i=0;
    $rows[] = "<table>";
    foreach ($inputs as $input) {
      if ($i % $itemsPerRow == 0) {
        $rows[] = "<tr>";
      }
      $rows[] = $this->renderContentTag('td', $input['input'].$this->getOption('label_separator').$input['label']) ;
      $i++;
      if ($i % $itemsPerRow == 0) {
        $rows[] = "</tr>";
      }
    }
    $rows[] = "</table>";
 
    return !$rows ? '' : $this->renderContentTag('ul', implode($this->getOption('separator'), $rows), array('class' => $this->getOption('class')));
  }
}
Seulement, je n'ai aucune idée sur le chemin a suivre pour ajouter les listes déroulantes pour chaque activités...
Merci de m'aider svp.