/** * @param null $params */ public function render() { $news = $this->newsRepository->getAllWhere(['active' => 1])->orderBy('dateAdd DESC')->limit($this->settings['pagesPerPage']); $this->getTemplate()->news = $news; $this->getTemplate()->setFile(__DIR__ . '/NewsControl.latte'); $this->getTemplate()->render(); }
/** * @param $id */ public function actionView($id) { /** @var NewsEntity $new */ $new = $this->newsRepository->get($id); $this->getTemplate()->new = $new; $this->getTemplate()->title = $new->title(); $this->getTemplate()->description = $new->title(); $this->getTemplate()->keywords = ""; }
/** * @param Form $form */ public function formSucceeded(Form $form) { $values = $form->getValues(); $news = new NewsEntity(); $news->title($values->title); $news->active($values->active); $news->text($values->text); $news->url(strlen($values->url) > 0 ? Strings::webalize($values->url) : Strings::webalize($values->title)); $news->dateAdd(new DateTime()); $this->newsRepository->save($news); }
/** * @param $name * @return Grid * @throws \Grido\Exception */ protected function createComponentGrid($name) { $grid = new Grid($this, $name); $grid->translator->lang = 'cs'; $fluent = $this->newsRepository->getAll(); $grid->model = $fluent; $grid->addColumnText('title', 'Titulek')->setSortable()->setFilterText(); $grid->getColumn('title')->headerPrototype->style['width'] = '65%'; $grid->addColumnDate('dateAdd', 'Datum')->setSortable()->setFilterText(); $grid->addColumnText('active', 'AktivnĂ')->setCustomRender(function ($item) { if ($item->active === 0) { $i = Html::el('i', ['class' => 'glyphicon glyphicon-thumbs-down']); $el = Html::el('a', ['class' => 'btn btn-danger btn-xs btn-mini ajax'])->href($this->presenter->link("active!", $item->id))->setHtml($i); } else { $i = Html::el('i', ['class' => 'glyphicon glyphicon-thumbs-up']); $el = Html::el('a', ['class' => 'btn btn-success btn-xs btn-mini ajax'])->href($this->presenter->link("active!", $item->id))->setHtml($i); } return $el; })->cellPrototype->class[] = 'center'; $grid->addActionEvent('delete', '')->setCustomRender(function ($item) { $i = Html::el('i', ['class' => 'fa fa-trash']); $el = Html::el('a', ['class' => 'btn btn-default btn-xs btn-mini ajax'])->href($this->presenter->link("delete!", $item->id))->setHtml($i); return $el; }); $grid->addActionHref('edit', '')->setIcon('pencil'); $grid->setDefaultSort(['dateAdd' => 'DESC']); $grid->setDefaultPerPage(50); $grid->filterRenderType = $this->filterRenderType; $grid->setExport(); return $grid; }
/** * @return IRouter * @param IRequest $httpRequest */ public function match(IRequest $httpRequest) { $appRequest = parent::match($httpRequest); if (!isset($appRequest->parameters['id'])) { return NULL; } $id = $appRequest->parameters['id']; if (!is_numeric($id)) { $news = NULL; try { /** @var NewsEntity $news */ $news = $this->newsRepository->getOneWhere(['url' => $id]); } catch (BadRequestException $exc) { return NULL; } $appRequest->parameters['id'] = $news->id(); } return $appRequest; }
/** * @return Nette\Application\IRouter */ public function createRouter() { $router = new RouteList(); $router[] = $adminRouter = new RouteList('Admin'); $adminRouter[] = new Route('[<locale=cs cs|en>/]admin/<presenter>/<action>', 'Pages:default'); $router[] = $frontRouter = new RouteList('Front'); $frontRouter[] = new Route("rss.xml", 'Homepage:rss'); $frontRouter[] = new Route("sitemap.xml", 'Homepage:sitemap'); $frontRouter[] = new Route('[<locale=cs cs|en>/]blog', 'Articles:default'); $frontRouter[] = new PageRoute('[<locale=cs cs|en>/][stranky/]<id>', array('id' => array(Route::FILTER_IN => function ($id) { if (is_numeric($id)) { return $id; } else { $page = $this->pagesRepository->getOneWhere(['url' => $id]); if ($page === NULL) { return NULL; } return $page->id(); } }, Route::FILTER_OUT => function ($id) { if (!is_numeric($id)) { return $id; } else { $page = $this->pagesRepository->get($id); return $page->url(); } }), 'presenter' => 'Pages', 'action' => 'view')); $frontRouter[] = new ArticleRoute('[<locale=cs cs|en>/]blog/<id>', array('id' => array(Route::FILTER_IN => function ($id) { if (is_numeric($id)) { return $id; } else { $article = $this->articlesRepository->getOneWhere(['url' => $id]); if ($article === NULL) { return NULL; } return $article->id(); } }, Route::FILTER_OUT => function ($id) { if (!is_numeric($id)) { return $id; } else { $article = $this->articlesRepository->get($id); return $article->url(); } }), 'presenter' => [Route::VALUE => 'Articles', Route::FILTER_TABLE => ['blog' => 'Articles']], 'action' => 'view')); $frontRouter[] = new NewsRoute('[<locale=cs cs|en>/][novinky/]<id>', array('id' => array(Route::FILTER_IN => function ($id) { if (is_numeric($id)) { return $id; } else { $page = $this->newsRepository->getOneWhere(['url' => $id]); if ($page === NULL) { return NULL; } return $page->id(); } }, Route::FILTER_OUT => function ($id) { if (!is_numeric($id)) { return $id; } else { $page = $this->newsRepository->get($id); return $page->url(); } }), 'presenter' => 'News', 'action' => 'view')); $frontRouter[] = new Route('[<locale=cs cs|en>/]<presenter>/<action>[/<id>]', 'Homepage:default'); $frontRouter[] = new Route('[<locale=cs cs|en>/]index.php', 'Homepage:default', Route::ONE_WAY); return $router; }