public function add_pagination_links($xml, $count)
{
// Retrieve the current matched rule and store its name and argument values.
$rr = URL::get_matched_rule();
$rr_name = $rr->name;
$rr_args = $rr->named_arg_values;
$page = isset($rr_args['page']) ? $rr_args['page'] : 1;
$firstpage = 1;
$lastpage = ceil($count / Options::get('atom_entries'));
if ($lastpage > 1) {
$nextpage = intval($page) + 1;
$prevpage = intval($page) - 1;
$rr_args['page'] = $firstpage;
$feed_link = $xml->addChild('link');
$feed_link->addAttribute('rel', 'first');
$feed_link->addAttribute('href', URL::get($rr_name, $rr_args));
$feed_link->addAttribute('type', 'application/atom+xml');
$feed_link->addAttribute('title', _t('First Page'));
if ($prevpage > $firstpage) {
$rr_args['page'] = $prevpage;
$feed_link = $xml->addChild('link');
$feed_link->addAttribute('rel', 'previous');
$feed_link->addAttribute('href', URL::get($rr_name, $rr_args));
$feed_link->addAttribute('type', 'application/atom+xml');
$feed_link->addAttribute('title', _t('Previous Page'));
}
if ($nextpage <= $lastpage) {
$rr_args['page'] = $nextpage;
$feed_link = $xml->addChild('link');
$feed_link->addAttribute('rel', 'next');
$feed_link->addAttribute('href', URL::get($rr_name, $rr_args));
$feed_link->addAttribute('type', 'application/atom+xml');
$feed_link->addAttribute('title', _t('Next Page'));
}
$rr_args['page'] = $lastpage;
$feed_link = $xml->addChild('link');
$feed_link->addAttribute('rel', 'last');
$feed_link->addAttribute('href', URL::get($rr_name, $rr_args));
$feed_link->addAttribute('type', 'application/atom+xml');
$feed_link->addAttribute('title', _t('Last Page'));
}
return $xml;
}