{% endfor %}
</ul>
-<ul class="pager">
- {% if links.prev %}
- <li class="previous">
- <a href="{{links.prev}}">← prev</a>
- </li>
- {% else %}
- <li class="previous disabled">
- <a href="#">← prev</a>
- </li>
- {% endif %}
- {% if links.next %}
- <li class="next">
- <a href="{{links.next}}">next →</a>
- </li>
- {% else %}
- <li class="next disabled">
- <a href="#">next →</a>
- </li>
- {% endif %}
-</ul>
+ {% include 'pager.htm' %}
+
{% endblock %}
--- /dev/null
+{% set links = pager.getLinks() %}
+{% if pager.numPages > 1 %}
+<div class="pagination pagination-centered">
+<ul>
+ {% if links.first %}
+ <li>
+ {{links.first|raw}}
+ </li>
+ {% else %}
+ <li class="disabled"><a href="#">first</a></li>
+ {% endif %}
+ {% if links.back %}
+ <li>
+ {{links.back|raw}}
+ </li>
+ {% else %}
+ <li class="disabled"><a href="#">« prev</a></li>
+ {% endif %}
+
+ {% for page in links.pages %}
+ {% if page|length <= 3 %}
+ <li class="active">
+ <a href="#">{{page|raw}}</a>
+ </li>
+ {% else %}
+ <li>
+ {{page|raw}}
+ </li>
+ {% endif %}
+ {% endfor %}
+
+ {% if links.next %}
+ <li>
+ {{links.next|raw}}
+ </li>
+ {% else %}
+ <li class="disabled"><a href="#">next »</a></li>
+ {% endif %}
+ {% if links.last %}
+ <li>
+ {{links.last|raw}}
+ </li>
+ {% else %}
+ <li class="disabled"><a href="#">last</a></li>
+ {% endif %}
+</ul>
+</div>
+{% endif %}
\ No newline at end of file
{% include 'repo-list.htm' %}
{% endfor %}
</ul>
- {{pager.getLinks.all|raw}}
+ {% include 'pager.htm' %}
{% endif %}
{% endblock %}
--- /dev/null
+<?php
+namespace phorkie;
+
+class Html_Pager
+{
+ protected $pager;
+
+ /**
+ * @param integer $currentPage Current page, beginning with 1
+ */
+ public function __construct($itemCount, $perPage, $currentPage, $filename)
+ {
+ //fix non-static factory method error
+ error_reporting(error_reporting() & ~E_STRICT);
+ $this->pager = \Pager::factory(
+ array(
+ 'mode' => 'Sliding',
+ 'perPage' => $perPage,
+ 'delta' => 2,
+ 'totalItems' => $itemCount,
+ 'currentPage' => $currentPage,
+ 'urlVar' => 'page',
+ 'append' => false,
+ 'path' => '/',
+ 'fileName' => $filename,
+ 'separator' => '###',
+ 'spacesBeforeSeparator' => 0,
+ 'spacesAfterSeparator' => 0,
+ 'curPageSpanPre' => '',
+ 'curPageSpanPost' => '',
+ 'firstPagePre' => '',
+ 'firstPageText' => 'first',
+ 'firstPagePost' => '',
+ 'lastPagePre' => '',
+ 'lastPageText' => 'last',
+ 'lastPagePost' => '',
+ 'prevImg' => '« prev',
+ 'nextImg' => 'next »',
+ )
+ );
+ }
+
+
+ public function getLinks()
+ {
+ $arLinks = $this->pager->getLinks();
+ $arLinks['pages'] = explode('###', $arLinks['pages']);
+ return $arLinks;
+ }
+
+ public function numPages()
+ {
+ return $this->pager->numPages();
+ }
+}
+
+?>
* @param integer $page Page number, beginning with 0
* @param integer $perPage Number of repositories per page
*
- * @return array Array of Repositories
+ * @return array Array of Repositories first, number of repositories second
*/
public function getList($page = 0, $perPage = 10)
{
$r->loadById(substr($oneDir, 0, -4));
$repos[] = $r;
}
- return $repos;
+ return array($repos, count($dirs));
}
}
if (!is_numeric($_GET['page'])) {
throw new Exception_Input('List page is not numeric');
}
- $page = (int)$_GET['page'];
+ $page = (int)$_GET['page'] - 1;
}
$perPage = 10;
-$repos = $rs->getList($page, $perPage);
+list($repos, $repoCount) = $rs->getList($page, $perPage);
-$links = array('prev' => null, 'next' => null);
-if ($page > 0) {
- $links['prev'] = '/list/' . ($page - 1);
- if ($page - 1 == 0) {
- $links['prev'] = '/list';
- }
-}
-if (count($repos) && count($repos) == $perPage) {
- $links['next'] = '/list/' . ($page + 1);
-}
+$pager = new Html_Pager(
+ $repoCount, $perPage, $page + 1, '/list/%d'
+);
render(
'list',
array(
'repos' => $repos,
- 'links' => $links,
+ 'pager' => $pager,
)
);
?>
$sres = $search->search($query, $page, $perPage);
-//fix non-static factory method error
-error_reporting(error_reporting() & ~E_STRICT);
-$pager = \Pager::factory(
- array(
- 'mode' => 'Sliding',
- 'perPage' => 10,
- 'delta' => 2,
- 'totalItems' => $sres->getResults(),
- 'currentPage' => $page + 1,
- 'urlVar' => 'page',
- 'path' => '/',
- 'fileName' => $sres->getLink($query),
- )
+$pager = new Html_Pager(
+ $sres->getResults(), $perPage, $page + 1, $sres->getLink($query)
);
-
render(
'search',
array(
'debug' => true
)
);
+//$twig->addExtension(new \Twig_Extension_Debug());
function render($tplname, $vars)
{