first commit
This commit is contained in:
90
layouts/joomla/pagination/link.php
Normal file
90
layouts/joomla/pagination/link.php
Normal file
@ -0,0 +1,90 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Joomla.Site
|
||||
* @subpackage Layout
|
||||
*
|
||||
* @copyright (C) 2014 Open Source Matters, Inc. <https://www.joomla.org>
|
||||
* @license GNU General Public License version 2 or later; see LICENSE.txt
|
||||
*/
|
||||
|
||||
defined('_JEXEC') or die;
|
||||
|
||||
use Joomla\CMS\Factory;
|
||||
use Joomla\CMS\Language\Text;
|
||||
|
||||
$item = $displayData['data'];
|
||||
$display = $item->text;
|
||||
$app = Factory::getApplication();
|
||||
|
||||
switch ((string) $item->text) {
|
||||
// Check for "Start" item
|
||||
case Text::_('JLIB_HTML_START'):
|
||||
$icon = $app->getLanguage()->isRtl() ? 'icon-angle-double-right' : 'icon-angle-double-left';
|
||||
$aria = Text::sprintf('JLIB_HTML_GOTO_POSITION', strtolower($item->text));
|
||||
break;
|
||||
|
||||
// Check for "Prev" item
|
||||
case $item->text === Text::_('JPREV'):
|
||||
$item->text = Text::_('JPREVIOUS');
|
||||
$icon = $app->getLanguage()->isRtl() ? 'icon-angle-right' : 'icon-angle-left';
|
||||
$aria = Text::sprintf('JLIB_HTML_GOTO_POSITION', strtolower($item->text));
|
||||
break;
|
||||
|
||||
// Check for "Next" item
|
||||
case Text::_('JNEXT'):
|
||||
$icon = $app->getLanguage()->isRtl() ? 'icon-angle-left' : 'icon-angle-right';
|
||||
$aria = Text::sprintf('JLIB_HTML_GOTO_POSITION', strtolower($item->text));
|
||||
break;
|
||||
|
||||
// Check for "End" item
|
||||
case Text::_('JLIB_HTML_END'):
|
||||
$icon = $app->getLanguage()->isRtl() ? 'icon-angle-double-left' : 'icon-angle-double-right';
|
||||
$aria = Text::sprintf('JLIB_HTML_GOTO_POSITION', strtolower($item->text));
|
||||
break;
|
||||
|
||||
default:
|
||||
$icon = null;
|
||||
$aria = Text::sprintf('JLIB_HTML_GOTO_PAGE', strtolower($item->text));
|
||||
break;
|
||||
}
|
||||
|
||||
if ($icon !== null) {
|
||||
$display = '<span class="' . $icon . '" aria-hidden="true"></span>';
|
||||
}
|
||||
|
||||
if ($displayData['active']) {
|
||||
if ($item->base > 0) {
|
||||
$limit = 'limitstart.value=' . $item->base;
|
||||
} else {
|
||||
$limit = 'limitstart.value=0';
|
||||
}
|
||||
|
||||
$class = 'active';
|
||||
|
||||
if ($app->isClient('administrator')) {
|
||||
$link = 'href="#" onclick="document.adminForm.' . $item->prefix . $limit . '; Joomla.submitform();return false;"';
|
||||
} elseif ($app->isClient('site')) {
|
||||
$link = 'href="' . $item->link . '"';
|
||||
}
|
||||
} else {
|
||||
$class = (property_exists($item, 'active') && $item->active) ? 'active' : 'disabled';
|
||||
}
|
||||
|
||||
?>
|
||||
<?php if ($displayData['active']) : ?>
|
||||
<li class="page-item">
|
||||
<a aria-label="<?php echo $aria; ?>" <?php echo $link; ?> class="page-link">
|
||||
<?php echo $display; ?>
|
||||
</a>
|
||||
</li>
|
||||
<?php elseif (isset($item->active) && $item->active) : ?>
|
||||
<?php $aria = Text::sprintf('JLIB_HTML_PAGE_CURRENT', strtolower($item->text)); ?>
|
||||
<li class="<?php echo $class; ?> page-item">
|
||||
<a aria-current="true" aria-label="<?php echo $aria; ?>" href="#" class="page-link"><?php echo $display; ?></a>
|
||||
</li>
|
||||
<?php else : ?>
|
||||
<li class="<?php echo $class; ?> page-item">
|
||||
<span class="page-link" aria-hidden="true"><?php echo $display; ?></span>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
84
layouts/joomla/pagination/links.php
Normal file
84
layouts/joomla/pagination/links.php
Normal file
@ -0,0 +1,84 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Joomla.Site
|
||||
* @subpackage Layout
|
||||
*
|
||||
* @copyright (C) 2014 Open Source Matters, Inc. <https://www.joomla.org>
|
||||
* @license GNU General Public License version 2 or later; see LICENSE.txt
|
||||
*/
|
||||
|
||||
defined('_JEXEC') or die;
|
||||
|
||||
use Joomla\CMS\Language\Text;
|
||||
use Joomla\CMS\Layout\LayoutHelper;
|
||||
use Joomla\Registry\Registry;
|
||||
|
||||
$list = $displayData['list'];
|
||||
$pages = $list['pages'];
|
||||
|
||||
$options = new Registry($displayData['options']);
|
||||
|
||||
$showLimitBox = $options->get('showLimitBox', false);
|
||||
$showPagesLinks = $options->get('showPagesLinks', true);
|
||||
$showLimitStart = $options->get('showLimitStart', true);
|
||||
|
||||
// Calculate to display range of pages
|
||||
$currentPage = 1;
|
||||
$range = 1;
|
||||
$step = 5;
|
||||
|
||||
if (!empty($pages['pages'])) {
|
||||
foreach ($pages['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);
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
|
||||
<?php if (!empty($pages)) : ?>
|
||||
<nav class="pagination__wrapper" aria-label="<?php echo Text::_('JLIB_HTML_PAGINATION'); ?>">
|
||||
<div class="pagination pagination-toolbar text-center">
|
||||
|
||||
<?php if ($showLimitBox) : ?>
|
||||
<div class="limit float-end">
|
||||
<?php echo Text::_('JGLOBAL_DISPLAY_NUM') . $list['limitfield']; ?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($showPagesLinks) : ?>
|
||||
<ul class="pagination ms-auto mb-4 me-0">
|
||||
<?php echo LayoutHelper::render('joomla.pagination.link', $pages['start']); ?>
|
||||
<?php echo LayoutHelper::render('joomla.pagination.link', $pages['previous']); ?>
|
||||
<?php foreach ($pages['pages'] as $k => $page) : ?>
|
||||
<?php $output = LayoutHelper::render('joomla.pagination.link', $page); ?>
|
||||
<?php if (in_array($k, range($range * $step - ($step + 1), $range * $step), true)) : ?>
|
||||
<?php if (($k % $step === 0 || $k === $range * $step - ($step + 1)) && $k !== $currentPage && $k !== $range * $step - $step) : ?>
|
||||
<?php $output = preg_replace('#(<a.*?>).*?(</a>)#', '$1...$2', $output); ?>
|
||||
<?php endif; ?>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php echo $output; ?>
|
||||
<?php endforeach; ?>
|
||||
<?php echo LayoutHelper::render('joomla.pagination.link', $pages['next']); ?>
|
||||
<?php echo LayoutHelper::render('joomla.pagination.link', $pages['end']); ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($showLimitStart) : ?>
|
||||
<input type="hidden" name="<?php echo $list['prefix']; ?>limitstart" value="<?php echo $list['limitstart']; ?>">
|
||||
<?php endif; ?>
|
||||
|
||||
</div>
|
||||
</nav>
|
||||
<?php endif; ?>
|
||||
30
layouts/joomla/pagination/list.php
Normal file
30
layouts/joomla/pagination/list.php
Normal file
@ -0,0 +1,30 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Joomla.Site
|
||||
* @subpackage Layout
|
||||
*
|
||||
* @copyright (C) 2016 Open Source Matters, Inc. <https://www.joomla.org>
|
||||
* @license GNU General Public License version 2 or later; see LICENSE.txt
|
||||
*/
|
||||
|
||||
defined('_JEXEC') or die;
|
||||
|
||||
use Joomla\CMS\Language\Text;
|
||||
|
||||
$list = $displayData['list'];
|
||||
|
||||
?>
|
||||
<nav class="pagination__wrapper" aria-label="<?php echo Text::_('JLIB_HTML_PAGINATION'); ?>">
|
||||
<ul class="pagination ms-0 mb-4">
|
||||
<?php echo $list['start']['data']; ?>
|
||||
<?php echo $list['previous']['data']; ?>
|
||||
|
||||
<?php foreach ($list['pages'] as $page) : ?>
|
||||
<?php echo $page['data']; ?>
|
||||
<?php endforeach; ?>
|
||||
|
||||
<?php echo $list['next']['data']; ?>
|
||||
<?php echo $list['end']['data']; ?>
|
||||
</ul>
|
||||
</nav>
|
||||
Reference in New Issue
Block a user