File: /home/confeduphaar/backip-old-files/templates/jd_boston_astroid/html/pagination.php
<?php
/**
* @package Joomla.Site
* @subpackage Templates.protostar
*
* @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
defined('_JEXEC') or die;
/**
* This is a file to add template specific chrome to pagination rendering.
*
* pagination_list_footer
* Input variable $list is an array with offsets:
* $list[limit] : int
* $list[limitstart] : int
* $list[total] : int
* $list[limitfield] : string
* $list[pagescounter] : string
* $list[pageslinks] : string
*
* pagination_list_render
* Input variable $list is an array with offsets:
* $list[all]
* [data] : string
* [active] : boolean
* $list[start]
* [data] : string
* [active] : boolean
* $list[previous]
* [data] : string
* [active] : boolean
* $list[next]
* [data] : string
* [active] : boolean
* $list[end]
* [data] : string
* [active] : boolean
* $list[pages]
* [{PAGE}][data] : string
* [{PAGE}][active] : boolean
*
* pagination_item_active
* Input variable $item is an object with fields:
* $item->base : integer
* $item->link : string
* $item->text : string
*
* pagination_item_inactive
* Input variable $item is an object with fields:
* $item->base : integer
* $item->link : string
* $item->text : string
*
* This gives template designers ultimate control over how pagination is rendered.
*
* NOTE: If you override pagination_item_active OR pagination_item_inactive you MUST override them both
*/
/**
* Renders the pagination footer
*
* @param array $list Array containing pagination footer
*
* @return string HTML markup for the full pagination footer
*
* @since 3.0
*/
function pagination_list_footer($list) {
$html = "<div class=\"pagination\">\n";
$html .= $list['pageslinks'];
$html .= "\n<input type=\"hidden\" name=\"" . $list['prefix'] . "limitstart\" value=\"" . $list['limitstart'] . "\" />";
$html .= "\n</div>";
return $html;
}
/**
* Renders the pagination list
*
* @param array $list Array containing pagination information
*
* @return string HTML markup for the full pagination object
*
* @since 3.0
*/
function pagination_list_render($list) {
// Calculate to display range of pages
$currentPage = 1;
$range = 1;
$step = 5;
foreach ($list['pages'] as $k => $page) {
if (!$page['active']) {
$currentPage = $k;
}
}
if ($currentPage >= $step) {
if ($currentPage % $step === 0) {
$range = ceil($currentPage / $step) + 1;
} else {
$range = ceil($currentPage / $step);
}
}
$html = '<nav role="navigation" aria-label="' . JText::_('JLIB_HTML_PAGINATION') . '">';
$html .= '<ul class="pagination">';
$html .= $list['start']['data'];
$html .= $list['previous']['data'];
foreach ($list['pages'] as $k => $page) {
if ($k !== $currentPage && $k !== $range * $step - $step && ($k % $step === 0 || $k === $range * $step - ($step + 1)) && in_array($k, range($range * $step - ($step + 1), $range * $step))) {
$page['data'] = preg_replace('#(<a.*?>).*?(</a>)#', '$1...$2', $page['data']);
}
$html .= $page['data'];
}
$html .= $list['next']['data'];
$html .= $list['end']['data'];
$html .= '</ul>';
$html .= '</nav>';
return $html;
}
/**
* Renders an active item in the pagination block
*
* @param JPaginationObject $item The current pagination object
*
* @return string HTML markup for active item
*
* @since 3.0
*/
function pagination_item_active(&$item) {
$class = ' class="page-item"';
// Check for "Start" item
if ($item->text === JText::_('JLIB_HTML_START')) {
$display = '<i class="fas fa-fast-backward fa-xs"></i>';
$aria = JText::sprintf('JLIB_HTML_GOTO_POSITION', strtolower($item->text));
}
// Check for "Prev" item
if ($item->text === JText::_('JPREV')) {
$display = '<i class="fas fa-backward fa-xs"></i>';
$aria = JText::sprintf('JLIB_HTML_GOTO_POSITION', strtolower($item->text));
}
// Check for "Next" item
if ($item->text === JText::_('JNEXT')) {
$display = '<i class="fas fa-forward fa-xs"></i>';
$aria = JText::sprintf('JLIB_HTML_GOTO_POSITION', strtolower($item->text));
}
// Check for "End" item
if ($item->text === JText::_('JLIB_HTML_END')) {
$display = '<i class="fas fa-fast-forward fa-xs"></i>';
$aria = JText::sprintf('JLIB_HTML_GOTO_POSITION', strtolower($item->text));
}
// If the display object isn't set already, just render the item with its text
if (!isset($display)) {
$display = $item->text;
$aria = JText::sprintf('JLIB_HTML_GOTO_PAGE', $item->text);
$class = ' class="hideonxs page-item"';
}
return '<li' . $class . '><a title="' . $item->text . '" href="' . $item->link . '" class="pagenav page-link" aria-label="' . $aria . '">' . $display . '</a></li>';
}
/**
* Renders an inactive item in the pagination block
*
* @param JPaginationObject $item The current pagination object
*
* @return string HTML markup for inactive item
*
* @since 3.0
*/
function pagination_item_inactive(&$item) {
// Check for "Start" item
if ($item->text === JText::_('JLIB_HTML_START')) {
return '<li class="d-none page-item"><a><span class="icon-first" aria-hidden="true"></span></a></li>';
}
// Check for "Prev" item
if ($item->text === JText::_('JPREV')) {
return '<li class="d-none page-item"><a><span class="icon-previous" aria-hidden="true"></span></a></li>';
}
// Check for "Next" item
if ($item->text === JText::_('JNEXT')) {
return '<li class="d-none page-item"><a><span class="icon-next" aria-hidden="true"></span></a></li>';
}
// Check for "End" item
if ($item->text === JText::_('JLIB_HTML_END')) {
return '<li class="d-none page-item"><a><span class="icon-last" aria-hidden="true"></span></a></li>';
}
// Check if the item is the active page
if (isset($item->active) && $item->active) {
$aria = JText::sprintf('JLIB_HTML_PAGE_CURRENT', $item->text);
return '<li class="active page-item"><a class="page-link" href="#" aria-current="true" aria-label="' . $aria . '">' . $item->text . '</a></li>';
}
// Doesn't match any other condition, render a normal item
return '<li class="d-none hidden-phone page-item"><a>' . $item->text . '</a></li>';
}