Example #1
0
 /** 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');
     }
 }