Ako upravit kod do best practice
- erikbalog
- Člen | 27
Zdravim, mam tento kod
public function actionGenre($slug, $page = 1) {
if(!$this->genre = $this->genreFacade->findBySlug($slug))
$this->error("Genre not found");
$paginator = new Nette\Utils\Paginator;
$paginator->setItemCount(count($this->genre->serials));
$paginator->setItemsPerPage(1);
$paginator->setPage($page);
$this->template->serials = $this->genre->serials->slice($paginator->getOffset(), $paginator->getItemsPerPage());
$this->template->paginator = $paginator;
}
public function renderGenre()
{
$this->template->genre = $this->genre;
}
nepaci sa mi ze tam pouzivam **slice **aj ze template definujem v action aj v render.. co si myslite ako by sa to dalo lepsie zapisat aj ten **paginator **na tu **manytomany **asociaciu?
v latte
{layout '../@layout.latte'}
{block content}
<div class="jumbotron movies">
<h1><span>Serialy v kategorii „</span>{$genre->name}<span>“</span></h1>
{control videoList $serials}
<nav aria-label="pagi" class="text-xs-center">
<ul class="pagination">
<li class="page-item {if $paginator->page <= $paginator->firstPage}disabled{/if}">
<a class="page-link" n:href="this $genre->slug, $paginator->page - 1" tabindex="-1" aria-label="Previous">
<span aria-hidden="true">«</span>
<span class="sr-only">Previous</span>
</a>
</li>
{for $i = $paginator->firstPage; $i <= $paginator->lastPage; $i++}
{if $i == $paginator->page}
<li class="page-item active">
<a class="page-link" n:href="this $genre->slug, $i">{$i} <span class="sr-only">(current)</span></a>
</li>
{else}
<li class="page-item"><a class="page-link" n:href="this $genre->slug, $i">{$i}</a></li>
{/if}
{/for}
<li class="page-item {if $paginator->page >= $paginator->lastPage}disabled{/if}">
<a class="page-link" n:href="this $genre->slug, $paginator->page + 1" tabindex="-1" aria-label="Next">
<span aria-hidden="true">»</span>
<span class="sr-only">Next</span>
</a>
</li>
</ul>
</nav>
</div>
{/block}
Za rady dakujem, trapim sa s tym uz par dni ale neviem na to prist
- F.Vesely
- Člen | 369
Tak pokud pouzivas Kdyby/Doctrine, tak se zkus podivat na QueryObject a ResultSet Vyberes si pouze serialy podle zanru a aplikujes na to Paginator.
- Tomáš Votruba
- Moderator | 1114
@erikbalog Jestli to hodíš na Github na Gist, pošlu ti PR, co bych zlepšil :)
- erikbalog
- Člen | 27
F.Vesely napsal(a):
Tak pokud pouzivas Kdyby/Doctrine, tak se zkus podivat na QueryObject a ResultSet Vyberes si pouze serialy podle zanru a aplikujes na to Paginator.
to ma tiez napadlo ale nedokazal som zostavit DQL na to „$genre + $genre->serials“
- erikbalog
- Člen | 27
CZechBoY napsal(a):
Paginator bych převedl na/použil existující vizuální komponentu.
Taky existuje n:class, takže nemusíš používat ify vně atributů.
to tam aj dam lenze logika paginatora je rovnaka vzdy limit a offset .. a to potrebujem zistit ako vybrat $genre, a pridat limit a offset na asociaciu ManyToMany $genre->serials
- erikbalog
- Člen | 27
Tomáš Votruba napsal(a):
@erikbalog Jestli to hodíš na Github na Gist, pošlu ti PR, co bych zlepšil :)
https://gist.github.com/…16ce30476293
budem ti vdacny