/** Spracovanie formulara pre editaciu udajov menu(clanku). * @param Nette\Forms\Controls\SubmitButton $button Data formulara */ public function menuEditFormSubmitted($button) { $values = $button->getForm()->getValues(); //Nacitanie hodnot formulara $uloz_txt = []; $id_pol = (int) $values->id; // Ak je == 0 tak sa pridava if (strlen($values->langtxt)) { //Mam aj texty foreach (explode(" ", $values->langtxt) as $j) { $pom = []; foreach (["nazov", "h1part2", "description"] as $f) { $new = $values->{$j . "_" . $f}; if (isset($new)) { $pom[$f] = $new; unset($values->{$j . "_" . $f}); } } if (count($pom)) { $uloz_txt[$j] = $pom; } } unset($values->langtxt); } $values->modified = new \DateTime(date('Y-m-d H:i:s')); $values->absolutna = isset($values->absolutna) && strlen($values->absolutna) > 7 ? $values->absolutna : NULL; $values->id_nadradenej = isset($values->id_nadradenej) && (int) $values->id_nadradenej > 0 ? $values->id_nadradenej : NULL; $values->nazov_ul_sub = isset($values->nazov_ul_sub) && strlen($values->nazov_ul_sub) > 1 ? $values->nazov_ul_sub : NULL; if (!$this->menuformuloz["edit"] && !$values->platnost) { $values->datum_platnosti = NULL; } if ($id_pol == 0) { //Pridavam $values->spec_nazov = $this->hlavne_menu->najdiSpecNazov($uloz_txt["sk"]["nazov"]); } unset($values->platnost, $values->id); $ulozenie = 0; //Kontrola spravnosti ulozenia $uloz = $this->hlavne_menu->uloz($values, $id_pol); if (!empty($uloz['id'])) { //Ulozenie v poriadku $ulozenie = 1; if ($utc = count($uloz_txt)) { foreach ($uloz_txt as $ke => $ut) { if (($jid = $this->lang->findOneBy(["skratka" => $ke])) !== FALSE) { $hlid = -1; if ($id_pol) { //editujem $hlh = $this->hlavne_menu_lang->findOneBy(["id_lang" => $jid->id, "id_hlavne_menu" => $uloz["id"]]); if ($hlh !== FALSE) { $hlid = $hlh->id; } else { //pridavam lebo to v DB neexzistuje $ut["id_lang"] = $jid->id; $ut["id_hlavne_menu"] = $uloz["id"]; $hlid = 0; } } else { //pridavam $ut["id_lang"] = $jid->id; $ut["id_hlavne_menu"] = $uloz["id"]; $hlid = 0; } if ($hlid > -1) { $uloz_t = $this->hlavne_menu_lang->uloz($ut, $hlid); if (isset($uloz_t['id']) && $uloz_t['id']) { //Ulozenie v poriadku $ulozenie++; } } else { die("Chyba v hlid = {$hlid}!"); } } else { die("Chyba v lang!"); } } if ($ulozenie != $utc + 1) { //Nieco sa neulozilo v poriadku //TODO!!! Zmazanie toho co sa uz ulozilo $ulozenie = 0; } } else { $ulozenie = $id_pol == 0 ? 0 : 1; } //Ak pri pridani nemam texty je to chyba! } if ($ulozenie) { $this->flashMessage('Položka menu bola uložená!', 'success'); if (strlen($this->menuformuloz["redirect"]) > 2) { $this->redirect($this->menuformuloz["redirect"], $uloz['id']); } else { $this->redirect('Menu:', $uloz['id']); } } else { //Ulozenie sa nepodarilo $this->flashMessage('Došlo k chybe a položka sa neuložila. Skúste neskôr znovu... - ' . $ulozenie . "==" . $utc + 1, 'danger'); } }