function pagination() {
return _class('html')->pagination([
'1' => url('/some/action/1'),
'2' => url('/some/action/2'),
'prev' => url('/some/action/1'),
'next' => url('/some/action/2'),
'3' => url('/some/action/3'),
'4' => url('/some/action/4'),
'5' => url('/some/action/5'),
]);
}
function pagination($data = [], $extra = []) {
$extra['id'] = $extra['id'] ?: __FUNCTION__.'_'.++$this->_ids[__FUNCTION__];
if (isset($data['prev'])) {
$prev = $data['prev'];
unset($data['prev']);
}
if (isset($data['next'])) {
$next = $data['next'];
unset($data['next']);
}
$items = [];
// TODO: auto-detect current page and need of first. last
if ($prev) {
$items[] = '<li><a href="'.$prev.'">'.t('Prev').'</a></li>';
}
foreach ((array)$data as $page => $link) {
$items[] = '<li><a href="'.$link.'">'.$page.'</a></li>';
}
if ($next) {
$items[] = '<li><a href="'.$next.'">'.t('Next').'</a></li>';
}
if ($this->_is_bs3) {
return '<div><ul class="pagination'.($extra['class'] ? ' '.$extra['class'] : '').'" id="'.$extra['id'].'">'.implode(PHP_EOL, $items).'</ul></div>';
} else {
return '<div class="pagination'.($extra['class'] ? ' '.$extra['class'] : '').'" id="'.$extra['id'].'"><ul>'.implode(PHP_EOL, $items).'</ul></div>';
}
}