VisualPaginator v komponentě
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Tirus91
- Člen | 199
V případě že využiju VisualPaginator v komponentě, tak mi nefungují
odkazy na jiné stránky.
Nějaká dobrá duše co by mi poradila?
<?php
namespace Tirus;
use Nette\Application\UI\Control;
class PostListControl extends Control {
/** @var \Kdyby\Translation\Translator */
protected $translator;
/** @var \Tirus\Articles\PostModel @inject * */
protected $post;
private $type = 'list';
public function injectPost(\Tirus\Articles\PostModel $p) {
$this->post = $p;
}
public function injectTranslator(\Kdyby\Translation\Translator $translator) {
$this->translator = $translator;
}
public function beforeRender() {
$posts = $this->post->getData();
$vp = new \VisualPaginator\VisualPaginator($this, 'postList');
if (!$posts) {
$posts = array();
return;
} else {
$paginator = $vp->getPaginator();
$paginator->itemsPerPage = 3;
$paginator->itemCount = $posts->count();
$posts = $posts->fetchAll($paginator->offset, $paginator->itemsPerPage);
}
if ($posts) {
foreach ($posts as $rowId => $post) {
if (trim($post->tags) != null) {
$posts[$rowId]->tags = explode(' ', trim($post->tags));
}
}
}
$this->template->posts = $posts;
}
public function changeType($t) {
$this->type = $t;
}
public function render() {
$this->template->registerHelperLoader(callback($this->translator->createTemplateHelpers(), 'loader'));
$this->template->setFile(dirname(__FILE__) . '/PostListControl.latte');
$this->beforeRender();
$this->template->type = $this->type;
$this->template->render();
}
}
- David Matějka
- Moderator | 6445
Pouzij ho jako subkomponentu, tedy pridej si metodu
createComponentPaginator
, kde ten paginator vytvoris
- Tirus91
- Člen | 199
matej21 napsal(a):
Pouzij ho jako subkomponentu, tedy pridej si metodu
createComponentPaginator
, kde ten paginator vytvoris
super, díky za radu :)
upravil jsem to takto
protected function createComponentPaginator() {
return new \VisualPaginator\VisualPaginator;
}
public function beforeRender() {
$posts = $this->post->getData();
$vp = $this['paginator'];
....
....