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; }
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'); }
/** * @return Form */ public function create($kat = null, $page = null, $id_user = null) { // nastaveni paginatoru $paginator = new Nette\Utils\Paginator(); $paginator->setItemsPerPage(6); // def počtu položek na stránce $paginator->setPage($page); // def stranky // selekce upozorneni $alerts = $this->database->findAll('alert')->where('id_user', $id_user); if ($kat == 'read') { // prectene $alerts = $alerts->where('visited', 1); } else { // neprectene $alerts = $alerts->where('visited', 0); } $alerts = $alerts->order('added DESC')->order('id DESC'); // prideleni produktu na stranku $paginator->setItemCount($alerts->count('*')); $this->alerts = $alerts->limit($paginator->getLength(), $paginator->getOffset()); $this->kat = $kat; // form $form = new Form(); $form->getElementPrototype()->class('ajax form'); foreach ($this->alerts as $alert) { $form->addCheckbox($alert->id); } $form->addSubmit('btndel', 'Smazat upozornění')->setAttribute('class', 'btn btn-primary'); $form->addSubmit('btnvis', 'Označit jako přečtené')->setAttribute('class', 'btn btn-default'); $form->onSuccess[] = array($this, 'formSucceeded'); $form->onError[] = array($this, 'formNotSucceeded'); return $form; }
/** * @return Form */ public function create() { // nahrani kategorii $this->categories = $this->database->findAll('category'); // form $form = new Form(); $form->getElementPrototype()->class('ajax form'); foreach ($this->categories as $c) { $form->addCheckbox($c->id); } $form->addSubmit('send', 'Smazat vybrané')->setAttribute('class', 'btn btn-primary'); $form->onSuccess[] = array($this, 'formSucceeded'); $form->onError[] = array($this, 'formNotSucceeded'); return $form; }
function Mefollower() { $connexion = \App\Model\Database::get()->prepare("\n\t\t\tSELECT *,count(follow_id) AS nbrFollow\n\t\t\tFROM `tp_follow` INNER JOIN tp_users\n\t\t\tON tp_follow.follower_id = tp_users.id\n\t\t\tWHERE follow_id = '" . $this->id . "'"); $connexion->execute(); $data = $connexion->fetchAll(); return $data; }
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'); }
function ReadMessage() { $connexion = \App\Model\Database::get()->prepare("SELECT * FROM `tp_messages` INNER JOIN tp_users on tp_users.id = expediteur_id WHERE expediteur_id = '" . $_SESSION["id"] . "'"); $connexion->execute(); $data = $connexion->fetchAll(); return $data; }
public function readTweet($id) { $connexion = \App\Model\Database::get()->prepare("SELECT * from tp_follow INNER JOIN tp_users on tp_users.id = tp_follow.follow_id INNER JOIN tp_tweets on tp_users.id = tp_tweets.user_id WHERE follower_id = '" . $id . "' OR follow_id = '" . $id . "' GROUP BY tp_tweets.id"); $connexion->execute(); $data = $connexion->fetchAll(); return $data; }
function register($login, $pass, $mail, $prenom, $nom, $city, $birthday) { $connexion = \App\Model\Database::get()->prepare("\n\t\t\tINSERT INTO tp_users\n\t\t\t(email,login,password,first_name,last_name,city,birthday,register_date)\n\t\t\tVALUE ( '" . $mail . "', '" . $login . "', '" . $pass . "', '" . $prenom . "', '" . $nom . "','" . $city . "','" . $birthday . "', NOW() )"); $connexion->execute(); echo "true"; //Ajax }
function User($login, $pass) { $connexion = \App\Model\Database::get()->prepare("\n\t\t\tSELECT * from tp_users\n\t\t\tWHERE (login = '******'\n\t\t\tOR email = '" . $login . "')\n\t\t\tAND password = '******'\n\t\t"); $connexion->execute(); $data = $connexion->fetchAll(); return $data; }
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.'); } }
function allSearch($data) { $connexion = \App\Model\Database::get()->prepare("SELECT * FROM tp_tweets INNER JOIN tp_users ON tp_tweets.user_id = tp_users.id\n\t\t\tWHERE login LIKE '%" . $data . "%' OR content like '%" . $data . "%'"); $connexion->execute(); $data = $connexion->fetchAll(); $tab = ["type" => "*"]; $type = array_merge($tab, $data); return $type; }
/** * @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 deleteAllProductPhotos($id_product) { $photos = $this->database->findAll('image')->where('id_product', $id_product); foreach ($photos as $p) { unlink($this->root_img_dir . 'products/' . $p->id_product . '_' . $p->id . '_' . $p->name . '.' . $p->extension); // smazu ve slozce $p->delete(); // smazu v db } }
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.'); } }
public function beforeRender() { /* --- --- promenne --- --- */ $this->template->systemName = $this->database->findAll('setings')->where('id_parameter', 1)->fetch(); $this->template->categories = $this->database->findAll('category'); $this->template->alerts = $this->database->findAll('alert')->where('id_user', $this->user->id)->where('visited', 0)->order('added DESC')->order('id DESC'); $this->template->id_category = (int) $this->getParameter('kat'); /* --- --- vlastni helpery --- --- */ // filtr na tvorbu "hezkeho" datumu $this->template->addFilter('mydate', function ($date) { if ($date >= date('Y-m-d', strtotime('today'))) { return 'Dnes'; } elseif ($date >= date('Y-m-d', strtotime('yesterday'))) { return 'Včera'; } else { $months = array(1 => 'leden', 'únor', 'březen', 'duben', 'květen', 'červen', 'červenec', 'srpen', 'září', 'říjen', 'listopad', 'prosinec'); return date('j', strtotime($date)) . '. ' . $months[date('n', strtotime($date))]; } }); }
public function endOfAuction($product) { // priprava na posilani emailu $email_manager = new Model\Email($this->database); // celkova cena $cost = $product->cost + $product->related('bid.id_product')->sum('deposit'); /* --- vyrozumneni pro vyherce aukce --- */ $winners_bid = $this->database->findAll('bid')->where('id_product', $product->id)->order('id DESC')->fetch(); // priprava alertu pro viteze aukce $val['id_user'] = $winners_bid->id_user; $val['id_type_alert'] = 1; $val['added'] = $this->now; $val['visited'] = 0; $val['body'] = 'Vyhráli jste aukci produktu ' . $product->name . ' (id ' . $product->id . '). Cena produktu činí ' . number_format($cost) . ' Kč. Pro další informace k předání produktu kontaktujte ' . $product->user->name . ' (tel: ' . $product->user->phone . ', email: ' . $product->user->email . ').'; // vlozeni alertu pro viteze do db $row = $this->database->insert('alert', $val); // a poslani emailu vitezi aukce $email_manager->sendEmail($winners_bid->user->email, 'end_auction_winner', $product, $winners_bid, $cost, $row->type_alert->name); /* --- vyrozumneni pro zbyle ucastniky aukce --- */ $bids = $this->database->findAll('bid')->where('id_product', $product->id)->group('id_user'); foreach ($bids as $bid) { if ($bid->id_user != $winners_bid->id_user) { // vitez aukce uz informovan byl // uprava alertu $val['id_user'] = $bid->id_user; $val['body'] = 'Aukci produktu ' . $product->name . ' (id ' . $product->id . '), do které jste zasáhli, vyhrál jiný účastník.'; // vlozeni do db $row = $this->database->insert('alert', $val); // a poslani emailu porazenym $email_manager->sendEmail($bid->user->email, 'end_auction_others', $product, $bid, $cost, $row->type_alert->name); } } /* --- vyrozumneni pro zadavatele aukce --- */ $val['id_user'] = $product->id_user; $val['body'] = 'Aukce produktu ' . $product->name . ' (id ' . $product->id . ') je u konce. Výherce aukce je ' . $winners_bid->user->name . ' (tel: ' . $winners_bid->user->phone . ', email: ' . $winners_bid->user->email . '), který produkt koupil za ' . number_format($cost) . ' Kč.'; // vlozeni do db $row = $this->database->insert('alert', $val); // a poslani emailu zadavateli $email_manager->sendEmail($product->user->email, 'end_auction_seller', $product, $winners_bid, $cost, $row->type_alert->name); }
/** * @return Form */ public function create($id_product = null) { // nacteni id nemovitosti $this->id_product = $id_product; // form $form = new Form(); $form->getElementPrototype()->class('ajax form'); // uchovani kvuli pozdejsimu presmerovani $form->addText('id_product')->setValue($this->id_product); $this->photos = $this->database->findAll('image')->where('id_product', $this->id_product); $i = 0; $first_checkbox = null; $is_set_any_main_photo = false; // pridam tolik checkboxu kolik je fotek foreach ($this->photos as $photo) { if ($i == 0) { // ulozim si id prvniho checkboxu $first_checkbox = $photo->id; } ++$i; if ($photo->order == 1) { // pokud mam v db nastavenou hlavni fotku $form->addCheckbox($photo->id)->setValue(true); // nastavim checkbox zaskrtnuty $is_set_any_main_photo = true; // a dam si vedet ze nastaveno j*z mam } else { $form->addCheckbox($photo->id); } } // pokud uzivatel nenastavil doposud hlavni fotku if ($first_checkbox != null && $is_set_any_main_photo == false) { $form["{$first_checkbox}"]->setValue(true); } // defaultne je brana prvni jako hlavni $form->addSubmit('send', 'Odeslat formulář')->setAttribute('class', 'btn btn-primary'); $form->onSuccess[] = array($this, 'formSucceeded'); $form->onError[] = array($this, 'formNotSucceeded'); return $form; }
/** * Crée un nouvel élément dans le tableau * @param array $fieldArray contient les infos à créer ['champ' => 'value'] */ public function create($fieldArray = array()) { $fields = ''; $values = ''; foreach ($fieldArray as $key => $value) { $fields .= "{$key}, "; $values .= "'{$value}', "; } $fields = substr($fields, 0, -2); $values = substr($values, 0, -2); $sql = "INSERT INTO {$this->table} ({$fields}) VALUES ({$values})"; $req = Database::get()->prepare($sql); $req->execute(); }
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'); } } }
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'); }
/** * @return Form */ public function create($id_user = null) { // predani id uzivatele $this->id_user = $id_user; // form $form = new Form(); $form->getElementPrototype()->class('ajax form'); $form->addText('id'); $form->addText('name', 'Název:')->setAttribute('class', 'form-control')->setAttribute('placeholder', 'Nevyplněno')->setRequired('Prosím vyplňte pole Název.'); $cat = $this->database->arrayColumn('category', 'name'); $form->addSelect('id_category', 'Kategorie:', $cat)->setAttribute('class', 'form-control')->setRequired('Prosím vyberte kategorii.'); $form->addUpload('img', 'Fotografie:', TRUE)->addRule(Nette\Application\UI\Form::IMAGE, 'Fotografie musí být JPEG, PNG nebo GIF.')->addRule(Nette\Application\UI\Form::MAX_FILE_SIZE, 'Maximální velikost fotografie je 2 MB.', 2 * 1024 * 1024); $form->addTextArea('description', 'Popis:')->setAttribute('class', 'form-control')->setAttribute('placeholder', 'Nevyplněno')->setRequired('Prosím vyplňte pole Popis.'); $auct_type = $this->database->arrayColumn('type_auction', 'name'); $form->addSelect('id_type_auction', 'Typ aukce:', $auct_type)->setAttribute('class', 'form-control')->setRequired('Prosím vyberte kategorii.'); $auct_duration = $this->database->arrayColumn('duration_auction', 'name'); $form->addSelect('id_duration_auction', 'Doba trvání aukce:', $auct_duration)->setAttribute('class', 'form-control')->setRequired('Prosím vyberte kategorii.'); $form->addText('cost', 'Cena:')->setType('number')->setAttribute('class', 'form-control')->setAttribute('placeholder', 'Nevyplněno')->setRequired('Prosím vyplňte pole Cena.')->addRule(Form::RANGE, 'Cena musí být vyšší nebo rovna 0.', array(0, null)); $form->addText('min_bid', 'Minimální přihazovaná částka:')->setType('number')->setAttribute('class', 'form-control')->setAttribute('placeholder', 'Nevyplněno')->setRequired('Prosím vyplňte pole Minimální příhoz.')->addRule(Form::RANGE, 'Minimální příhoz musí být číslo, které je větší nebo rovno 1.', array(1, null))->setValue(1); $form->addSubmit('send', 'Přidat aukci')->setAttribute('class', 'btn btn-primary'); $form->onSuccess[] = array($this, 'formSucceeded'); $form->onError[] = array($this, 'formNotSucceeded'); return $form; }
public function prvniPrihozFormSucceeded($button) { $values = $button->getForm()->getValues(true); $values['datum_vkladu'] = date('Y-m-d H:i:s'); $values['vkladana_castka'] = 0; // prvni prihoz je nulovy, pouze se potvrdi zadana castka 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']); $this->database->insert('drazba', $values); $this->flashMessage('Podal(a) jste první nabídku.'); $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 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); }
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); }
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'); } }
function SendMessage($content, $dest, $exp) { $connexion = \App\Model\Database::get()->prepare("INSERT INTO tp_messages\n\t\t\t(content,destinataire_id,expediteur_id,date)\n\t\t\tVALUE('" . $content . "','" . $dest . "','" . $exp . "',NOW()) "); $connexion->execute(); }
public function addDur($values) { $this->database->insert('duration_auction', $values); }