Esempio n. 1
0
File: Form.php Progetto: keradus/ker
 public function run($_ = array())
 {
     $values = $this->getPassedValues();
     if (isset($values[$this->formTrigger])) {
         if ($this->validate($values)) {
             // hooki przed outputem
             foreach ($this->hooks["beforeOutput"] as &$hook) {
                 $hook($this->items);
             }
             //TASK: #22 - sprawdzic wydajnosc:
             //1. $this->output->__invoke ()
             //2. $callback = $this->output; $callback ()
             //3. call_user_func_array($this->output, )
             $retOutput = $this->output->__invoke($this);
             if (!empty($_["onSuccessReturnOutput"])) {
                 return $retOutput;
             }
             //TASK: #23 - przydala by sie mozliwosc by tutaj wyswietlac forma, inaczej czesto w funkcji output'a form jest wyswietlany
             return $this->displayForm(true);
         }
         if ($this->useMessages) {
             $communicat = "";
             foreach ($this->items as $key => &$item) {
                 if (empty($item["errors"])) {
                     continue;
                 }
                 $communicat .= "<div><label>{$item["label"]}</label><div>" . implode("", array_map(function (&$_) {
                     return "<p>{$_}</p>";
                 }, $item["errors"])) . "</div></div>";
             }
             Messages::add(MessageType::error(), $communicat, "form");
         }
         return $this->displayForm();
     } else {
         return $this->displayForm();
     }
     return NULL;
 }