コード例 #1
0
 public function render()
 {
     $template = $this->template;
     $template->setFile(__DIR__ . '/CalendarControl.latte');
     if ($this->presenter->getParameter('y')) {
         $template->year = $this->presenter->getParameter('y');
     } else {
         $template->year = date('Y');
     }
     if ($this->presenter->getParameter('m')) {
         $template->month = $this->presenter->getParameter('m');
     } else {
         $template->month = date('m');
     }
     $events = $this->database->table("events")->select("DAYOFMONTH(date_event) AS datestamp, MONTH(`date_event`) AS monthstamp, YEAR(`date_event`) AS yearstamp, pages.title")->having("monthstamp = ? AND yearstamp = ?", $template->month, $template->year)->order("date_event");
     foreach ($events as $event) {
         $eventDay[$event->datestamp] .= $event->title . ';';
     }
     $template->eventsDates = $eventDay;
     $template->prevMonth = date('m', mktime(0, 0, 0, $template->month - 1, 1, $template->year));
     $template->prevYear = date('Y', mktime(0, 0, 0, $template->month - 1, 1, $template->year));
     $template->nextMonth = date('m', mktime(0, 0, 0, $template->month + 1, 1, $template->year));
     $template->nextYear = date('Y', mktime(0, 0, 0, $template->month + 1, 1, $template->year));
     $dateChosen = $template->year . '-' . $template->month . '-01';
     $template->firstDayofMonth = date('N', strtotime(date($dateChosen)));
     $lastDay = date('Y-m-t', strtotime(date($dateChosen)));
     $template->lastDayofMonth = date('N', strtotime($lastDay));
     $template->daysInMonth = date('t', strtotime($lastDay));
     $template->nameMonth = $this->getMonthNameInCzech(date('n', strtotime($dateChosen)));
     $template->nameYear = date('Y', strtotime($dateChosen));
     $template->render();
 }
コード例 #2
0
 function insertEventFormSucceeded(\Nette\Forms\BootstrapUIForm $form)
 {
     $date_start = \DateTime::createFromFormat('j. n. Y', $form->values->date_event);
     $date1 = $date_start->format('Y-m-d');
     $date_end = \DateTime::createFromFormat('j. n. Y', $form->values->date_event_end);
     $date2 = $date_end->format('Y-m-d');
     if ($form->values->date_event == '') {
         $dateEvent = null;
     } else {
         if ($form->values->allday) {
             $dateEvent = $date1 . ' 00:00:00';
         } else {
             $dateEvent = $date1 . ' ' . $form->values->hour_event . ':' . $form->values->minute_event;
         }
     }
     if ($form->values->date_event_end == '') {
         $dateEventEnd = null;
     } else {
         if ($form->values->allday) {
             $dateEventEnd = $date2 . ' 23:55:00';
         } else {
             $dateEventEnd = $date2 . ' ' . $form->values->hour_event_end . ':' . $form->values->minute_event_end;
         }
     }
     $this->database->table("events")->insert(array("date_event" => $dateEvent, "date_event_end" => $dateEventEnd, "all_day" => $form->values->allday, "price" => $form->values->price, "contacts_id" => $form->values->contact, "time_range" => $form->values->time_range, "capacity" => $form->values->capacity, "capacity_start" => $form->values->capacity_start, "pages_id" => $form->values->event_id));
     $this->redirect(this, array("id" => $form->values->event_id));
 }
コード例 #3
0
 function sendFormSucceeded(\Nette\Forms\BootstrapUIForm $form)
 {
     $helpdesk = $this->database->table("helpdesk")->get(1);
     $helpdesk_admin = $helpdesk->related("helpdesk_emails", "helpdesk_id")->get(1);
     $helpdesk_customer = $helpdesk->related("helpdesk_emails", "helpdesk_id")->get(2);
     $arr = array("subject" => $form->values->name, "email" => $form->values->email, "message" => $form->values->message, "ipaddress" => getenv('REMOTE_ADDR'), "helpdesk_id" => 1, 'date_created' => date("Y-m-d H:i"), 'session_id' => session_id());
     if ($this->presenter->user->isLoggedIn()) {
         $arr["users_id"] = $this->presenter->template->member->id;
     }
     if ($helpdesk->fill_phone > 0) {
         $arr["phone"] = $form->values->phone;
     }
     $this->database->table("helpdesk_messages")->insert($arr);
     $params = array('name' => $form->values->name, 'email' => $form->values->email, 'phone' => $form->values->phone, 'message' => $form->values->message, 'ipaddress' => getenv('REMOTE_ADDR'), 'time' => date("Y-m-d H:i"), 'settings' => $this->presenter->template->settings);
     $latte = new \Latte\Engine();
     $latte->setLoader(new Latte\Loaders\StringLoader());
     //$latte->setTempDirectory(__DIR__ . '/../temp');
     $email_admin = $latte->renderToString($helpdesk_admin->body, $params);
     $email_customer = (string) $latte->renderToString($helpdesk_customer->body, $params);
     $mail = new \Nette\Mail\Message();
     $mail->setFrom($this->presenter->template->settings["contacts:email:hq"]);
     $mail->addTo($this->presenter->template->settings["contacts:email:hq"]);
     $mail->setHTMLBody($email_customer);
     $mailA = new \Nette\Mail\Message();
     $mailA->setFrom($this->presenter->template->settings["contacts:email:hq"]);
     $mailA->addTo($form->values->email);
     $mailA->setHTMLBody($email_admin);
     $mailer = new \Nette\Mail\SendmailMailer();
     $mailer->send($mail);
     $mailer->send($mailA);
     $this->presenter->flashMessage($this->presenter->translator->translate('messages.sign.thanksForMessage'), "error");
     $this->presenter->redirect(":Front:Contact:default");
 }
コード例 #4
0
 /**
  * Page settings
  */
 function createComponentSetForm()
 {
     $pages = $this->database->table("pages")->get($this->presenter->getParameter("id"));
     $form = new \Nette\Forms\BootstrapPHForm();
     $form->setTranslator($this->presenter->translator);
     $form->getElementPrototype()->class = "form-horizontal";
     $form->getElementPrototype()->role = 'form';
     $form->getElementPrototype()->autocomplete = 'off';
     $l = $this->presenter->getParameter("l");
     $form->addHidden("id");
     $form->addHidden("l");
     $form->addHidden("slug_old");
     $form->addGroup("");
     $form->addCheckbox("public", "dictionary.main.PublishedForm");
     $form->addText("date_published", "Datum zveřejnění")->setAttribute("class", "datetimepicker");
     $form->addText("title", "dictionary.main.Title");
     $form->addText("slug", "dictionary.main.Slug");
     $form->addGroup("dictionary.main.MetaTags");
     $form->addTextArea("metadesc", "dictionary.main.MetaDesc")->setAttribute("class", "form-control");
     $form->addTextArea("metakeys", "dictionary.main.MetaKeys")->setAttribute("class", "form-control");
     if ($l == '') {
         $form->setDefaults(array("id" => $pages->id, "slug" => $pages->slug, "slug_old" => $pages->slug, "metadesc" => $pages->metadesc, "metakeys" => $pages->metakeys, "title" => $pages->title, "public" => $pages->public, "date_published" => $pages->date_published));
     } else {
         $form->setDefaults(array("id" => $pages->id, "l" => $l, "slug" => $pages->{'slug_' . $l}, "slug_old" => $pages->{'slug_' . $l}, "metadesc" => $pages->{'metadesc_' . $l}, "metakeys" => $pages->{'metakeys_' . $l}, "title" => $pages->{'title_' . $l}, "public" => $pages->public, "date_published" => $pages->date_published));
     }
     $form->onSuccess[] = $this->setFormSucceeded;
     $form->onValidate[] = $this->permissionValidated;
     $form->addSubmit("submit", "dictionary.main.Save")->setHtmlId('formxins');
     return $form;
 }
コード例 #5
0
 /**
  * Performs an authentication.
  * @param array $credentials (string $username, string $password)
  * @return Nette\Security\Identity
  * @throws Nette\Security\AuthenticationException
  */
 public function authenticate(array $credentials)
 {
     list($username, $password) = $credentials;
     $row = $this->database->table('user')->where('username', $username)->fetch();
     if (!$row) {
         throw new Security\AuthenticationException('Uživatel s tímto jménem neexistuje.', self::IDENTITY_NOT_FOUND);
     } elseif (!Security\Passwords::verify($password, $row->password)) {
         throw new Security\AuthenticationException('Nesprávné heslo.', self::INVALID_CREDENTIAL);
     } elseif (!$row->active) {
         throw new Security\AuthenticationException('Účet není aktivovaný.', self::NOT_APPROVED);
     } elseif (Security\Passwords::needsRehash($row->password)) {
         $row->update(array('password' => Security\Passwords::hash($password)));
     }
     $arr = $row->toArray();
     unset($arr['password']);
     $roles = $row->related('privilege')->fetch()->toArray();
     unset($roles['user_id']);
     //adds privileges
     array_walk($roles, function (&$value, $key) use(&$roles) {
         if ($value != NULL) {
             $value = $key . ' - ' . $value;
         }
     });
     return new Security\Identity($row->id, $roles, $arr);
 }
コード例 #6
0
ファイル: NGrams.php プロジェクト: lixiangnlp/MT-ComparEval
 public function __construct(Nette\Database\Context $db)
 {
     $this->db = $db;
     Nette\Database\Table\Selection::extensionMethod('getCursor', function ($selection) use($db) {
         return $db->queryArgs($selection->getSql(), $selection->getSqlBuilder()->getParameters());
     });
 }
コード例 #7
0
 public function render()
 {
     $template = $this->template;
     $template->settings = $this->presenter->template->settings;
     $template->carousel = $this->database->table("carousel")->where(array("visible" => 1))->order("sorted");
     $template->setFile(__DIR__ . '/CarouselBoxControl.latte');
     $template->render();
 }
コード例 #8
0
 public function render($id)
 {
     $template = $this->template;
     $template->setFile(__DIR__ . '/ContactControl.latte');
     $contact = $this->database->table("contacts")->get($id);
     $template->contact = $contact;
     $template->render();
 }
コード例 #9
0
 public function render($id, $style = 'sidemenu')
 {
     $template = $this->template;
     $template->setFile(__DIR__ . '/SideMenuControl.latte');
     $template->id = $id;
     $template->style = $style;
     $template->categories = $this->database->table('categories')->where('parent_id', $id);
     $template->render();
 }
コード例 #10
0
 public function render($layer = 'front')
 {
     $template = $this->template;
     $template->setFile(__DIR__ . '/ResetPassControl.latte');
     $template->addon = $this->database->table("addons");
     $template->layer = $layer;
     $template->member = $this->presenter->template->member;
     $template->render();
 }
コード例 #11
0
 public function render($id, $style = 'navbar')
 {
     $template = $this->template;
     $template->appDir = APP_DIR;
     $template->setFile(__DIR__ . '/NavbarMenuControl.latte');
     $template->id = $id;
     $template->style = $style;
     $template->categories = $this->database->table('menu')->where('parent_id = ?  AND (NOT id = 136)', $id);
     $template->render();
 }
コード例 #12
0
 function insertFormSucceeded(\Nette\Forms\BootstrapUIForm $form)
 {
     $langExists = $this->database->table("languages")->where("title = ? OR code = ?", $form->values->language, $form->values->code);
     if ($langExists->count() > 0) {
         $this->presenter->flashMessage("Název jazyka nebo kód již existuje", "error");
         $this->presenter->redirect(this);
     } else {
         $this->database->table("languages")->insert(array("title" => $form->values->language, "code" => $form->values->code));
         $this->presenter->redirect(this);
     }
 }
コード例 #13
0
 public function render()
 {
     $template = $this->template;
     $template->id = $this->presenter->getParameter('id');
     $template->languages = $this->database->table("languages");
     $template->langSelected = $this->presenter->getParameter("l");
     $template->arr = $this->presenter->getParameters();
     $template->settings = $this->presenter->template->settings;
     $template->setFile(__DIR__ . '/LangSelectorControl.latte');
     $template->render();
 }
コード例 #14
0
 function insertFormSucceeded(\Nette\Forms\BootstrapUIForm $form)
 {
     $doc = new \App\Model\Document($this->database);
     $doc->setType(5);
     $doc->createSlug("contact-" . $form->values->name);
     $doc->setTitle($form->values->name);
     $page = $doc->create($this->presenter->user->getId());
     // create new contact
     $this->database->table("contacts")->insert(array("categories_id" => 5, "pages_id" => $page, "users_id" => $this->presenter->user->getId(), "name" => $form->values->name, "street" => $form->values->street, "zip" => $form->values->zip, "city" => $form->values->city));
     $this->presenter->redirect(":Front:Profile:addresses");
 }
コード例 #15
0
 function changePasswordFormSucceeded(\Nette\Forms\BootstrapUIForm $form)
 {
     $ppwd = $form->values->password1;
     $ppwd2 = $form->values->password2;
     $passwordEncrypted = \Nette\Security\Passwords::hash($ppwd);
     if (strcasecmp($ppwd, $ppwd2) != 0) {
         $this->presenter->flashMessage('Hesla se neshodují');
     }
     $this->database->table("users")->where(array("id" => $this->presenter->user->getId()))->update(array("password" => $passwordEncrypted));
     setcookie("calpwd", $passwordEncrypted, time() + time() + 60 * 60 * 24 * 30, "/");
     $this->presenter->redirect(this);
 }
コード例 #16
0
 function insertFormSucceeded(\Nette\Forms\BootstrapPHForm $form)
 {
     $doc = new \App\Model\Document($this->database);
     $doc->setType(5);
     $doc->createSlug("contact-" . $form->values->user);
     $doc->setTitle($form->values->title);
     $page = $doc->create($this->presenter->user->getId());
     \App\Model\IO::directoryMake(substr(APP_DIR, 0, -4) . '/www/media/' . $page);
     $arr = array("pages_id" => $page, "type" => 1, "name" => 'contact-' . $form->values->user, "users_id" => $form->values->user);
     $this->database->table("contacts")->insert($arr);
     $this->presenter->redirect(this, array("id" => $form->values->page));
 }
コード例 #17
0
 function editFormSucceeded(\Nette\Forms\BootstrapUIForm $form)
 {
     $arr = array("sex" => $form->values->sex, "newsletter" => $form->values->newsletter, "state" => $form->values->state);
     if ($this->presenter->template->member->username) {
         $arr["users_roles_id"] = $form->values->role;
     }
     if ($this->presenter->template->settings['members:groups:enabled']) {
         $arr["categories_id"] = $form->values->group;
     }
     $this->database->table("users")->where(array("id" => $form->values->id))->update($arr);
     $this->presenter->redirect(this, array("" => $form->values->id));
 }
コード例 #18
0
 /**
  *
  * @param type $id
  * @param type $type Specifies type of category: store, media, blog, menu etc. Some categories have special needs
  */
 public function render($id, $type)
 {
     $template = $this->template;
     $template->type = $type;
     $getParams = $this->getParameters();
     unset($getParams["page"]);
     $template->args = $getParams;
     $template->setFile(__DIR__ . '/AdminCategoryPanelControl.latte');
     $template->id = $id;
     $template->idActive = $this->presenter->getParameter("id");
     $template->menu = $this->database->table('pages')->where(array('pages_types_id' => type, 'pages_id' => null));
     $template->render();
 }
コード例 #19
0
 /**
  * Performs an authentication.
  * @return Nette\Security\Identity
  * @throws Nette\Security\AuthenticationException
  */
 public function authenticate(array $credentials)
 {
     list($username, $password) = $credentials;
     $row = $this->database->table('users')->where('username', $username)->fetch();
     if (!$row) {
         throw new Security\AuthenticationException('The username is incorrect.', self::IDENTITY_NOT_FOUND);
     }
     if ($row->password !== $this->calculateHash($password, $row->password)) {
         throw new Security\AuthenticationException('The password is incorrect.', self::INVALID_CREDENTIAL);
     }
     unset($row->password);
     return new Security\Identity($row->id, $row->role, $row->toArray());
 }
コード例 #20
0
 function changePortraitFormSucceeded(\Nette\Forms\BootstrapUIForm $form)
 {
     // TODO peekay support for more types of images or image convertor
     $membersDb = $this->database->table("users")->where(array("id" => $this->presenter->user->getId()));
     if ($membersDb->count() > 0) {
         $uid = $membersDb->fetch()->id;
         if (file_exists(APP_DIR . '/images/profiles/portrait-' . $uid . '.jpg')) {
             \App\Model\IO::remove(APP_DIR . '/images/profiles/portrait-' . $uid . '.jpg');
             \App\Model\IO::upload(APP_DIR . '/images/profiles/', 'portrait-' . $uid . '.jpg');
         } else {
             \App\Model\IO::upload(APP_DIR . '/images/profiles/', 'portrait-' . $uid . '.jpg');
         }
     }
     $this->presenter->redirect(":Front:Profile:image");
 }
コード例 #21
0
 function addSucceeded(\Nette\Forms\BootstrapUIForm $form)
 {
     $doc = new \App\Model\Document($this->database);
     $doc->setType(5);
     $doc->createSlug("contact-" . $form->values->email);
     $doc->setTitle($form->values->email);
     $page = $doc->create($this->presenter->user->getId());
     \App\Model\IO::directoryMake(substr(APP_DIR, 0, -4) . '/www/media/' . $page, 0755);
     $arr = array("users_id" => null, "pages_id" => $page, "type" => 0);
     $arr["email"] = $form->values->email;
     $arr["name"] = $form->values->email;
     $this->database->table("contacts")->insert($arr);
     $this->presenter->flashMessage("Byli jste přihlášení k odeběru newsletteru");
     $this->presenter->redirect(this);
 }
コード例 #22
0
 function insertFormSucceeded(\Nette\Forms\BootstrapPHForm $form)
 {
     $doc = new \App\Model\Document($this->database);
     $doc->setType(5);
     $doc->createSlug("contact-" . $form->values->title);
     $doc->setTitle($form->values->title);
     $page = $doc->create($this->template->user->getId());
     \App\Model\IO::directoryMake(substr(APP_DIR, 0, -4) . '/www/media/' . $page, 0755);
     $arr = array("users_id" => null, "pages_id" => $page, "type" => $form->values->type);
     if ($form->values->type == 0) {
         $arr["name"] = $form->values->title;
     } else {
         $arr["company"] = $form->values->title;
     }
     $this->database->table("contacts")->insert($arr);
     $this->presenter->redirect(":Admin:Contacts:detail", array("id" => $page));
 }
コード例 #23
0
ファイル: MenuControl.php プロジェクト: caloriscz/caloriscms
 public function render($id = null, $style = 'sidemenu', $controlName = null)
 {
     $template = $this->template;
     if ($controlName == null) {
         $controlName = 'MenuControl';
     }
     if ($this->presenter->translator->getLocale() != $this->presenter->translator->getDefaultLocale()) {
         $template->langSuffix = '_' . $this->presenter->translator->getLocale();
         $template->langPrefix = '/' . $this->presenter->translator->getLocale();
     }
     $template->setFile(__DIR__ . '/' . $controlName . '.latte');
     $template->active = strtok($_SERVER["REQUEST_URI"], '?');
     $template->id = $id;
     $template->style = $style;
     $template->categories = $this->database->table('menu')->where('parent_id', $id)->order('sorted DESC');
     $template->render();
 }
コード例 #24
0
 function sendLoginFormSucceeded(\Nette\Forms\BootstrapUIForm $form)
 {
     $pwd = \Nette\Utils\Random::generate(10);
     $pwdEncrypted = \Nette\Security\Passwords::hash($pwd);
     $user = $this->database->table('users')->get($form->values->contact_id);
     $this->database->table("users")->get($user->id)->update(array("password" => $pwdEncrypted));
     if ($form->values->sendmail) {
         $latte = new \Latte\Engine();
         $latte->setLoader(new \Latte\Loaders\StringLoader());
         $params = array('username' => $user->username, 'email' => $user->email, 'password' => $pwd, 'settings' => $this->presenter->template->settings);
         $helpdesk = $this->database->table("helpdesk")->get(4);
         $helpdesk_resend_login = $helpdesk->related("helpdesk_emails", "helpdesk_id")->get(8);
         $helpdesk_resend = $latte->renderToString($helpdesk_resend_login->body, $params);
         $mail = new \Nette\Mail\Message();
         $mail->setFrom($this->presenter->template->settings["site:title"] . ' <' . $this->presenter->template->settings["contacts:email:hq"] . '>')->addTo($user->email)->setHTMLBody($helpdesk_resend);
         $mailer = new \Nette\Mail\SendmailMailer();
         $mailer->send($mail);
     } else {
         $this->presenter->flashMessage("pass", "success");
     }
     $this->presenter->redirect(this, array("id" => $form->values->contact_id, "pdd" => $pwd));
 }
コード例 #25
0
 function uploadFormSucceeded(\Nette\Forms\BootstrapUIForm $form)
 {
     $fileDirectory = APP_DIR . '/media/' . $form->values->id;
     \App\Model\IO::directoryMake($fileDirectory, 0755);
     if (strlen($_FILES["the_file"]["tmp_name"]) > 1) {
         $imageExists = $this->database->table("media")->where(array('name' => $_FILES["the_file"]["name"], 'pages_id' => $form->values->id));
         $fileName = $fileDirectory . '/' . $_FILES["the_file"]["name"];
         \App\Model\IO::remove($fileName);
         copy($_FILES["the_file"]["tmp_name"], $fileName);
         chmod($fileName, 0644);
         if ($imageExists->count() == 0) {
             $this->database->table("media")->insert(array('name' => $_FILES["the_file"]["name"], 'pages_id' => $form->values->id, 'description' => $form->values->description, 'filesize' => filesize($fileDirectory . '/' . $_FILES["the_file"]["name"]), 'file_type' => 1, 'date_created' => date("Y-m-d H:i:s")));
         }
         // thumbnails
         $image = \Nette\Utils\Image::fromFile($fileName);
         $image->resize(400, 250, \Nette\Utils\Image::SHRINK_ONLY);
         $image->sharpen();
         $image->save(APP_DIR . '/media/' . $form->values->id . '/tn/' . $_FILES["the_file"]["name"]);
         chmod(APP_DIR . '/media/' . $form->values->id . '/tn/' . $_FILES["the_file"]["name"], 0644);
     }
     $this->redirect(this, array("id" => $form->values->id, "category" => $form->values->category));
 }
コード例 #26
0
ファイル: Document.php プロジェクト: caloriscz/caloriscms
 /**
  * Generate slug
  */
 function generate($slugToGenerate)
 {
     $slug = Strings::webalize($slugToGenerate);
     $slugNameOne = $this->database->table("pages")->where("slug", $slug);
     if ($slugNameOne->count() == 0) {
         return $slug;
     }
     $max = 0;
     $slugName = $this->database->table("pages")->where("slug LIKE ?", '%' . $slug);
     if ($slugName->count() > 0) {
         $slugs = array_values($slugName->fetchPairs("slug", "slug"));
         while (in_array(++$max . '-' . $slug, $slugs)) {
         }
         return $max . '-' . $slug;
     } else {
         return $slug;
     }
 }
コード例 #27
0
 function dropFileUploadFormSucceeded(\Nette\Forms\BootstrapUIForm $form)
 {
     if (!empty($_FILES)) {
         $ds = DIRECTORY_SEPARATOR;
         $storeFolder = 'media/' . $form->values->pages_id;
         \App\Model\IO::directoryMake(APP_DIR . $ds . $storeFolder, 0755);
         $tempFile = $_FILES['file']['tmp_name'];
         $realFile = $_FILES['file']['name'];
         $targetPath = APP_DIR . $ds . $storeFolder . $ds;
         $targetFile = $targetPath . $_FILES['file']['name'];
         move_uploaded_file($tempFile, $targetFile);
         chmod($targetFile, 0644);
         $fileSize = filesize($targetFile);
         $checkImage = $this->database->table("media")->where(array('name' => $realFile, 'pages_id' => $form->values->id));
         if ($checkImage->count() == 0) {
             $this->database->table("media")->insert(array('name' => $realFile, 'pages_id' => $form->values->pages_id, 'filesize' => $fileSize, 'file_type' => 0, 'date_created' => date("Y-m-d H:i:s")));
         } else {
             echo "Nejsem reálný soubor";
         }
     }
     exit;
 }
コード例 #28
0
 function editAddressFormSucceeded(\Nette\Forms\BootstrapUIForm $form)
 {
     $this->database->table("contacts")->where(array("id" => $form->values->contacts_id))->update(array("name" => $form->values->name, "street" => $form->values->street, "zip" => $form->values->zip, "city" => $form->values->city));
     $this->presenter->redirect(":Front:Profile:address", array("id" => $form->values->id));
 }
コード例 #29
0
<?php

require __DIR__ . '/../print_benchmark_result.php';
if (@(!(include __DIR__ . '/vendor/autoload.php'))) {
    echo 'Install Nette using `composer install`';
    exit(1);
}
$useCache = TRUE;
date_default_timezone_set('Europe/Prague');
$connection = new Nette\Database\Connection('mysql:dbname=employees', 'root', '');
$cacheStorage = new Nette\Caching\Storages\FileStorage(__DIR__ . '/temp');
$dao = new Nette\Database\Context($connection, new Nette\Database\Reflection\DiscoveredReflection($connection, $useCache ? $cacheStorage : NULL), $useCache ? $cacheStorage : NULL);
$time = -microtime(TRUE);
ob_start();
foreach ($dao->table('employees')->limit(500) as $employe) {
    echo "{$employe->first_name} {$employe->last_name} ({$employe->emp_no})\n";
    echo "Salaries:\n";
    foreach ($employe->related('salaries') as $salary) {
        echo $salary->salary, "\n";
    }
    echo "Departments:\n";
    foreach ($employe->related('dept_emp') as $department) {
        echo $department->dept->dept_name, "\n";
    }
}
ob_end_clean();
print_benchmark_result('NDB 2.1', 'Nette: ' . Nette\Framework::VERSION);
コード例 #30
0
ファイル: Base.php プロジェクト: petrparolek/web_cms
 /**
  * Vrací vysledek custom dotazu
  * @return Nette\Database\Context\ResultSet
  */
 public function query($query)
 {
     return $this->database->query($query);
 }