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; }