public function renderDefault() { $articles = $this->articlesRepository->getAll()->orderBy(['date' => 'DESC']); $visualPaginator = $this['visualPaginator']; $paginator = $visualPaginator->getPaginator(); $paginator->itemsPerPage = $this->settings['pagesPerPage']; $paginator->itemCount = $articles->count(); $articles->limit($paginator->itemsPerPage); $articles->offset($paginator->offset); $this->getTemplate()->articles = $articles->fetchAll(); $this->getTemplate()->title = 'Blog - ' . $this->settings['siteName']; $this->getTemplate()->description = 'Blog - ' . $this->settings['siteName']; $this->getTemplate()->keywords = 'Blog'; }
/** * @param $name * @return Grid */ protected function createComponentGrid($name) { $grid = new Grid($this, $name); $grid->translator->lang = 'cs'; $fluent = $this->articlesRepository->getAll(); $articles = []; foreach ($fluent as $articleRow) { $articles[$articleRow->id] = $articleRow; } if (isset($grid->model)) { $grid->model = $fluent; } $grid->addColumnNumber('id', 'ID'); $header = $grid->getColumn('id')->headerPrototype; $header->style['width'] = '0.5%'; $grid->addColumnText('name', 'Název')->setFilterText()->setSuggestion(); $grid->getColumn('name')->headerPrototype->style['width'] = '40%'; $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->addActionHref('edit', '')->setIcon('pencil'); $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', 'data-grido-confirm' => "Opravdu chcete tuto položku odstranit?"])->href($this->presenter->link("delete!", $item->id))->setHtml($i); return $el; }); $grid->setDefaultSort(['date' => 'DESC']); $grid->setRememberState(true); $grid->setPrimaryKey('id'); $grid->setDefaultPerPage(50); $grid->filterRenderType = $this->filterRenderType; $grid->setExport(); return $grid; }