public function formSucceeded(Form $form, $values)
 {
     // priprava managera pro praci s kategoriemi
     $category_manager = new Model\Category($this->database);
     if ($this->id == null) {
         // pridavam novou kategorii
         $category_manager->add($values);
         $form->getPresenter()->flashMessage('Nová kategorie byla přidána.');
     } else {
         $category = $this->database->findById('category', $this->id);
         if ($form['btnedit']->isSubmittedBy()) {
             // upravuji kategorii
             if ($category) {
                 $category_manager->edit($values, $category);
                 $form->getPresenter()->flashMessage('Kategorie byla upravena');
             } else {
                 $form->getPresenter()->flashMessage('Kategorii nebylo možno upravit, pravděpodobně ji někdo smazal.');
             }
         } else {
             // mazu kategorii
             if ($category) {
                 $category_manager->delete($category);
                 $form->getPresenter()->flashMessage('Kategorie byla smazána');
             } else {
                 $form->getPresenter()->flashMessage('Kategorii nebylo možno smazat, pravděpodobně ji někdo smazal.');
             }
         }
     }
     $form->getPresenter()->redirect('Admin:categories');
 }
 public function formSucceeded(Form $form, $values)
 {
     // priprava managera pro praci s dobami
     $auction_manager = new Model\Auction($this->database);
     if ($this->id == null) {
         // pridavam novou dobu
         $auction_manager->addDur($values);
         $form->getPresenter()->flashMessage('Nová doba trvání aukce byla přidána.');
     } else {
         $dur = $this->database->findById('duration_auction', $this->id);
         if ($form['btnedit']->isSubmittedBy()) {
             // upravuji dobu
             if ($dur) {
                 $auction_manager->editDur($values, $dur);
                 $form->getPresenter()->flashMessage('Doba trvání aukce byla upravena');
             } else {
                 $form->getPresenter()->flashMessage('Dobu trvání aukce nebylo možno upravit, pravděpodobně ji někdo smazal.');
             }
         } else {
             // mazu dobu
             if ($dur) {
                 $auction_manager->deleteDur($dur);
                 $form->getPresenter()->flashMessage('Doba trvání aukce byla smazána');
             } else {
                 $form->getPresenter()->flashMessage('Dobu trvání aukce nebylo možno smazat, pravděpodobně ji někdo smazal.');
             }
         }
     }
     $form->getPresenter()->redirect('Admin:durations');
 }
Exemplo n.º 3
0
 public function update($values, $id)
 {
     $product = $this->database->findById('product', $id);
     if ($product) {
         // pokud existuje produkt
         if ($product->related('bid.id_product')->count() <= 0) {
             // a jeste k nemu nikdo neprihodil
             // pak jeste umozni zmenu nastaveni
             $duration = $this->database->findById('duration_auction', $values['id_duration_auction']);
             $duration_diff = $duration->duration_days - $product->duration_auction->duration_days;
             if ($duration_diff >= 0) {
                 // stejny nebo prodluzuji cas
                 $values['expire'] = date('Y-m-d H', strtotime($product->expire . ' + ' . $duration_diff . ' day'));
             } else {
                 // kratim cas
                 $duration_diff = -1 * $duration_diff;
                 $values['expire'] = date('Y-m-d H', strtotime($product->expire . ' - ' . $duration_diff . ' day'));
             }
             $product->update($values);
         } else {
             $this->error = 'Produkt nelze upravovat. O produkt již nějaký uživatel projevil zájem.';
         }
     } else {
         $this->error = 'Produkt nebyl nalezen. Pravděpodobně jej někdo smazal.';
     }
     return $this->error;
 }
Exemplo n.º 4
0
 public function homeFormSucceeded($button)
 {
     $values = $button->getForm()->getValues(true);
     $this->database->findById('contact', 1)->update($values);
     $this->flashMessage('Informace na domovské stránce byly upraveny.');
     $this->redirect('Homepage:default');
 }
Exemplo n.º 5
0
 public function prihozFormSucceeded($button)
 {
     $id = (int) $this->getParameter('id');
     $values = $button->getForm()->getValues(true);
     $values['datum_vkladu'] = date('Y-m-d H:i:s');
     if ($values['pocet'] == $this->database->findAll('drazba')->where('id_nemovitost', $values['id_nemovitost'])->count('*')) {
         // pokud se shoduji pocty prihozu pri nacteni a tesne pred prihozenim, pak vse ok
         unset($values['pocet']);
         // priprava promennych pro poslani emailu o prehozeni
         $nemovitost = $this->database->findById('nemovitost', $id);
         $prihozy = $this->database->findAll('drazba')->where('id_nemovitost', $id);
         $drazba = $this->drazba->vyhodnotDrazbu($id, $prihozy);
         if ($drazba["email"] != null || $drazba["email"] != "") {
             // nastaveni parametru pro latte emailu
             $latte = new Nette\Latte\Engine();
             $params = array('nemovitost' => $nemovitost, 'uzivatel' => $drazba["jmeno"], 'cena' => $drazba["cena"] + $values["vkladana_castka"]);
             // nastaveni mailu
             $mail = new Nette\Mail\Message();
             $mail->setFrom('*****@*****.**')->addTo($drazba["email"])->setHtmlBody($latte->renderToString(__DIR__ . '/../templates/Aukce/email.latte', $params));
             // poslani mailu
             $mailer = new Nette\Mail\SmtpMailer(array('host' => 'smtp.seznam.cz', 'username' => '*****@*****.**', 'password' => 'pps2015', 'secure' => 'ssl'));
             $mailer->send($mail);
         }
         // prihozeni
         $this->database->insert('drazba', $values);
         $this->flashMessage('Přihodil(a) jste ' . number_format($values['vkladana_castka']) . ' Kč.');
         $this->redirect('Nemovitosti:detailNemovitosti', $values['id_nemovitost']);
     } else {
         $this->flashMessage('Znovu zvažte přihození, někdo před Vámi ještě navýšil cenu.');
         $this->redirect('Aukce:prihodit', $values['id_nemovitost']);
     }
 }
 public function formSucceeded(Form $form, $values)
 {
     $product = $this->database->findById('product', $this->id_product);
     if ($product) {
         if ($product->related('bid.id_product')->count() <= 0) {
             $photo_manager = new Model\Photo($this->database);
             $photo_manager->deleteAllProductPhotos($this->id_product);
             // smazu fotky produktu
             $product->delete();
             // smazu produkt
         } else {
             $form->addError('Produkt nelze smazat. O produkt již nějaký uživatel projevil zájem.');
         }
     } else {
         $form->addError('Produkt nebyl nalezen. Pravděpodobně jej někdo smazal.');
     }
 }
Exemplo n.º 7
0
 /**
  * @return Form
  */
 public function create($id_product = null, $id_user = null)
 {
     // nacteni privatnich promennych
     $this->product = $this->database->findById('product', $id_product);
     $this->id_user = $id_user;
     // form
     $form = new Form();
     $form->getElementPrototype()->class('ajax form');
     if ($this->product->id_type_auction != 1) {
         $form->addText('deposit', 'Přihazovaná částka:')->setType('number')->setRequired('Prosím vložte částku, o kterou chcete navýšit současnou cenu.')->setAttribute('placeholder', 'Nevyplněno')->setAttribute('class', 'form-control')->addRule(Form::RANGE, 'Přihazovaná částka musí být vyšší nebo rovna ' . number_format($this->product->min_bid) . ' Kč.', array($this->product->min_bid, null));
     }
     // uchovani kvuli pozdejsimu presmerovani
     $form->addText('id_product')->setValue($id_product);
     $form->addSubmit('send', 'Koupit')->setAttribute('class', 'btn btn-primary');
     $form->onSuccess[] = array($this, 'formSucceeded');
     $form->onError[] = array($this, 'formNotSucceeded');
     return $form;
 }
 public function handleActivateMyPoster($id)
 {
     $poster = $this->database->findById('poster', $id);
     $data['expire'] = date('Y-m-d', strtotime(date("Y-m-d", time()) . " + 30 day"));
     // pokud uzivatel bude chtit inzerat dodatecne prodlouzit tak, uz jen o mesic
     $poster->update($data);
     if ($this->isAjax()) {
         $this->redrawControl('myposters');
     }
 }
 public function formSucceeded(Form $form, $values)
 {
     $product = $this->database->findById('product', $this->id_product);
     if ($product) {
         if ($product->related('bid.id_product')->count() <= 0) {
             if ($this->photos != null) {
                 $photo_manager = new Model\Photo($this->database);
                 $photo_manager->deleteProductPhotos($values, $this->photos);
                 // presmerovani
                 $form->getPresenter()->flashMessage('Vybrané fotografie byly smazány.');
                 $form->getPresenter()->redirect('Homepage:product', $this->id_product);
             }
         } else {
             $form->addError('Fotografie nelze smazat. O produkt již nějaký uživatel projevil zájem.');
         }
     } else {
         $form->addError('Produkt nebyl nalezen. Pravděpodobně jej někdo smazal.');
     }
 }
Exemplo n.º 10
0
 public function deleteNemovitostFormSucceeded()
 {
     $id = (int) $this->getParameter('id');
     // smazu vsechny fotky z adresare
     if (is_dir(WWW_DIR . "/images/auction/" . $id . "/")) {
         $this->deleteDir(WWW_DIR . "/images/auction/" . $id . "/");
     }
     // smazu vsechny soubory z adresare
     if (is_dir(WWW_DIR . "/files/auction/" . $id . "/")) {
         $this->deleteDir(WWW_DIR . "/files/auction/" . $id . "/");
     }
     $this->database->findById('nemovitost', $id)->delete();
     $this->flashMessage('Nemovitost byla smazána.');
     $this->redirect('Homepage:default');
 }
Exemplo n.º 11
0
 public function setMainPhotoFormSucceeded($button)
 {
     $values = $button->getForm()->getValues(true);
     // priprava pomocnyh prom
     $id = (int) $this->getParameter('id');
     $photos = $this->database->findAll('photo')->where('id_property', $id);
     $selected_main_photo = null;
     $prev_main_photo = null;
     // projdu vsechny fotky k dane udalosti
     foreach ($photos as $photo) {
         // najdu predchozi hlavni a nastavim ji na 0
         if ($photo->order == 1) {
             $prev_main_photo = $photo->id;
         }
         // vyberu kterou vybral uzivatel a nastavim ji jako hlavni (1)
         if ($values["{$photo->id}"] == true) {
             $selected_main_photo = $photo->id;
         }
     }
     // uprava stare hlavni fotky
     if ($prev_main_photo != null) {
         // pokud vubec mame nejakou vybranou starou fotku
         $photo = $this->database->findById('photo', $prev_main_photo);
         if ($photo && $photo->id_property == $id) {
             // pokud ji tedy mam v db
             // tak ji odoznacime jako hlavni fotku
             $upArr["order"] = 0;
             $photo->update($upArr);
         }
     }
     // uprava nove hlavni fotky
     if ($selected_main_photo != null) {
         // pokud vubec mame nejakou vybranou novou fotku
         $photo = $this->database->findById('photo', $selected_main_photo);
         if ($photo && $photo->id_property == $id) {
             // pokud ji tedy mam v db
             // tak ji oznacime jako hlavni fotku
             $upArr["order"] = 1;
             $photo->update($upArr);
         }
     }
     // informace pro uzivatele + presmerovani
     $this->flashMessage('Hlavni fotografie byla upravena.');
     $this->redirect('Nemovitosti:detailNemovitosti', $id);
 }
Exemplo n.º 12
0
 public function deleteFileFormSucceeded($button)
 {
     $values = $button->getForm()->getValues(true);
     // nactu id z url
     $id = (int) $this->getParameter('id');
     $file_id = (int) $this->getParameter('file_id');
     // pripravim si promennou pro jmena mazaneho souboru pro vypsani
     $tmp_name = null;
     // vyberu soubor z db
     $file = $this->database->findById('file', $file_id);
     if ($file) {
         $tmp_name = $file->name;
         unlink(WWW_DIR . "/files/auction/" . $file->id_property . "/" . $file->hid_name . "-" . $file->timestamp . "." . $file->type);
         // smazu ve slozce
         $file->delete();
         // smazu v db
     }
     $this->flashMessage('Soubor "' . $tmp_name . '" byl smazán.');
     $this->redirect('File:vypis', $id);
 }
Exemplo n.º 13
0
 public function setMainPhoto($values, $photos)
 {
     $selected_main_photo = null;
     // nova hlavni fotka
     $prev_main_photo = null;
     // stara hlavni fotka
     // projdu vsechny fotky k dane udalosti
     foreach ($photos as $photo) {
         // najdu predchozi hlavni
         if ($photo->order == 1) {
             $prev_main_photo = $photo->id;
         }
         // najdu novou hlavni
         if ($values["{$photo->id}"] == true) {
             $selected_main_photo = $photo->id;
         }
     }
     // uprava stare hlavni fotky
     if ($prev_main_photo != null) {
         // pokud vubec mame nejakou vybranou starou fotku
         $photo = $this->database->findById('image', $prev_main_photo);
         if ($photo) {
             // pokud ji tedy mam v db
             // tak ji odoznacime jako hlavni fotku
             $val['order'] = 0;
             $photo->update($val);
         }
     }
     // uprava nove hlavni fotky
     if ($selected_main_photo != null) {
         // pokud vubec mame nejakou vybranou novou fotku
         $photo = $this->database->findById('image', $selected_main_photo);
         if ($photo) {
             // pokud ji tedy mam v db
             // tak ji oznacime jako hlavni fotku
             $val['order'] = 1;
             $photo->update($val);
         }
     }
 }
Exemplo n.º 14
0
 public function passEditFormSucceeded($button)
 {
     $values = $button->getForm()->getValues();
     $user = $this->database->findById('uzivatel', $this->user->id);
     $old_pw = $this->authenticator->generateHash($values['oldpassword'], $user->heslo);
     if ($user->heslo == $old_pw) {
         if ($values['newpassword'] == $values['newpassword2']) {
             unset($values['oldpassword']);
             unset($values['newpassword2']);
             $values['heslo'] = $this->authenticator->generateHash($values['newpassword']);
             unset($values['newpassword']);
             $user->update($values);
             $this->flashMessage('Heslo bylo úspěšně změněno.');
             $this->redirect('Uzivatele:zmenitHeslo');
         } else {
             $this->flashMessage('Heslo nebylo změněno. Zopakujte prosím správně nové heslo.');
             $this->redirect('Uzivatele:zmenitHeslo');
         }
     } else {
         $this->flashMessage('Heslo nebylo změněno. Zadejte prosím správně staré heslo.');
         $this->redirect('Uzivatele:zmenitHeslo');
     }
 }
Exemplo n.º 15
0
 public function formSucceeded(Form $form, $values)
 {
     if ($this->id == null) {
         try {
             $userManager = new Model\UserManager($this->user, $this->database);
             try {
                 $new_user = $userManager->register($values);
                 if (!$new_user) {
                     $form->addError('Registrace z neznámého důvodu selhala. Zkuste se prosím zaregistrovat znovu a pokud problémy přetrvají, kontaktujete helpdesk.');
                 }
             } catch (\PDOException $e) {
                 if ($e->getCode() == 23000) {
                     $form->addError('Zájemce s tímto nickem už je zaregistrován, zvolte prosím jiný nick.');
                 } else {
                     $form->addError($e->getMessage());
                 }
             }
         } catch (Nette\Security\AuthenticationException $e) {
             $form->addError($e->getMessage());
         }
         if ($form->getPresenter()->isAjax()) {
             $form->getPresenter()->redrawControl('registration');
         }
     } else {
         $database = new Model\Database($this->database);
         $user = $database->findById('user', $this->id);
         if ($user) {
             $user->update($values);
             $this->user->identity->name = $values->name;
         } else {
             $form->addError('Uživatel, kterého se snažíte upravit, neexistuje. Je možné, že ho někdo smazal.');
         }
         if ($form->getPresenter()->isAjax()) {
             $form->getPresenter()->redrawControl('profile');
         }
     }
 }