Example #1
0
 /**
  * Renderer par défaut des actions, utilise pour chaque action sa méthode 
  * render(). 
  * 
  * @param array $actions tableau d'objets action
  * @access public
  * @return void
  */
 public function render($actions)
 {
     $actions = !is_array($actions) ? array($actions) : $actions;
     $result = array();
     $inSelect = array();
     $inSelectForSingleSelection = array();
     foreach ($actions as $anAction) {
         if ($anAction->renderer == 'Inline') {
             continue;
         }
         // Les actions dans un select sont regroupées à la fin
         if ($anAction->renderer == 'Select') {
             $inSelect[] = $anAction;
             continue;
         }
         if ($anAction->renderer == 'SelectForSingleSelection') {
             $inSelectForSingleSelection[] = $anAction;
             continue;
         }
         // vérifie si un autre renderer doit être utilisé
         // (méthode buttonRenderer() de l'action par exemple)
         $html = $this->checkRenderer($anAction);
         if ($html != false) {
             $result[] = $html;
             continue;
         }
         // instancie le bon GridActionRenderer
         $cls = 'GridActionRenderer' . $anAction->renderer;
         if (class_exists($cls, true)) {
             $renderer = new $cls($this->formName);
             $result = array_merge($result, $renderer->render($anAction));
         } elseif (method_exists($anAction, 'render')) {
             // utilise le render de l'action
             $result[] = $anAction->render();
         }
     }
     // effectue le render des actions du select
     if (!empty($inSelect)) {
         $renderer = new GridActionRendererSelect($this->formName);
         $result = array_merge($result, $renderer->render($inSelect));
     }
     if (!empty($inSelectForSingleSelection)) {
         $renderer = new GridActionRendererSelectForSingleSelection($this->formName);
         $result = array_merge($result, $renderer->render($inSelectForSingleSelection));
     }
     return $result;
 }
 /**
  * __construct 
  * 
  * @param string $form nom du formulaire
  * @access public
  * @return void
  */
 public function __construct($form)
 {
     parent::__construct($form);
     $this->type = 'SelectForSingleSelection';
     $this->message = _('For selected item: ');
 }