-add to composer.json
{ "require": { "knplabs/knp-paginator-bundle": "dev-master" } }
2. configure
- add app/config/config.yml
knp_paginator:
page_range: 5 # default page range used in pagination control
default_options:
page_name: page # page query parameter name
sort_field_name: sort # sort field query parameter name
sort_direction_name: direction # sort direction query parameter name
distinct: true # ensure distinct results, useful when ORM queries are using GROUP BY statements
template:
pagination: KnpPaginatorBundle:Pagination:sliding.html.twig # sliding pagination controls template
sortable: KnpPaginatorBundle:Pagination:sortable_link.html.twig # sort link template
3. Add to application kernel
- add app/AppKernel.php
public function registerBundles() { return array( // ... new Knp\Bundle\PaginatorBundle\KnpPaginatorBundle(), // ... ); }
The controller :
$em = $this->get('doctrine.orm.entity_manager');
$dql = "SELECT a FROM ASFPembedaBundle:Quran a WHERE a.sura = '$surah'";
$query = $em->createQuery($dql);
$paginator = $this->get('knp_paginator');
$pagination = $paginator->paginate(
$query,
$this->get('request')->query->get('page', 1)/*page number*/,
10/*limit per page*/
);
return $this->render('ASFPembedaBundle:Quran:qsurah.html.twig', array(
'pagination' => $pagination,
'comments' => 'ssssss'
));
The view :
<table border=1>
{# table body #}
{% for ayat in pagination %}
<tr {% if loop.index is odd %}class="snippet"{% endif %}>
<td>{{ ayat.aya }}</td><td>{{ ayat.text }}</td>
</tr>
<tr {% if loop.index is odd %}class="grey"{% endif %}>
<td></td><td>
<div>
<p>{{ ayat.quranmakna.mtext }}</p>
</div>
</td>
</tr>
{% else %}
<p>Search text not found</p>
{% endfor %}
</table>
{# display navigation #}
<div class="navigation">
{{ knp_pagination_render(pagination) }}
</div>
No comments:
Post a Comment