Добавлен выбор шаблонов пагинации используемых модулем.
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
### search
|
||||
|
||||
## Модуль Поиск 3.31.1
|
||||
## Модуль Поиск 3.31.2
|
||||
|
||||
|
||||
### Данный модуль позволяет организовать поиск необходимой информации на вашем сайте.
|
||||
@@ -10,6 +10,8 @@
|
||||
|
||||
### Changelog:
|
||||
|
||||
17.04.2026 - версия 3.31.2 - Добавлен выбор шаблонов пагинации используемых модулем. По умолчанию используется шаблон с id=1 созданный при установке AVE.cms. Если вы хотите сменить шаблон, откройте файл ```modules/search/class/search.php``` и в самом начале файла в строке ```var $_pagination_id = 1; // ID шаблона пагинации по умолчанию``` укажите нужный вам id. Там же находится переменная ```var $_limit = 15;```, отвечающая за вывод количества (15 по умолчанию) результатов (строк) поиска на одной странице.
|
||||
|
||||
05.03.2026 - версия 3.31.1 - Адаптация для версии AVE.CMS v3.31.1 ALT. Рефакторинг кода для работы в среде PHP-8.4, верстка публичной части модуля Bootstrap v5. Вы можете использовать файл mod_search_styles.css - подключается в основной шаблон при использовании модуля программно.
|
||||
|
||||
02.09.2019 - версия 2.26.0 - Адаптация для версии AVE.CMS v3.26
|
||||
|
||||
@@ -15,7 +15,8 @@ class Search
|
||||
* СВОЙСТВА
|
||||
*/
|
||||
|
||||
var $_limit = 15;
|
||||
var $_limit = 15; // Количество строк на странице "Результаты поиска"
|
||||
var $_pagination_id = 1; // ID шаблона пагинации по умолчанию
|
||||
var $_adminlimit = 1000;
|
||||
var $_highlight = 1;
|
||||
var $_allowed_tags = '';
|
||||
@@ -216,18 +217,45 @@ function searchResultGet($tpl_dir, $lang_file)
|
||||
");
|
||||
}
|
||||
|
||||
$page_nav = '';
|
||||
// --- НАЧАЛО БЛОКА ПАГИНАЦИИ ПОИСКА ---
|
||||
$page_nav = '';
|
||||
|
||||
if ($num > $limit)
|
||||
{
|
||||
$page_nav = '<a class="page_nav" href="index.php?module=search&query='
|
||||
. urlencode($this->_search_string)
|
||||
. ($type_search ? '&ts=1' : '')
|
||||
. (isset($_REQUEST['or']) && $_REQUEST['or'] == 1 ? '&or=1' : '')
|
||||
. '&page={s}">{t}</a>';
|
||||
$page_nav = get_pagination($pages, 'page', $page_nav);
|
||||
}
|
||||
$AVE_Template->assign('q_navi', $page_nav);
|
||||
if ($num > $limit && $pages > 1)
|
||||
{
|
||||
// Берем ID из настроек модуля
|
||||
$p_id = (int)$this->_pagination_id;
|
||||
if ($p_id < 1) {
|
||||
$p_id = 1;
|
||||
}
|
||||
|
||||
// Базовая ссылка
|
||||
$pagination_base = 'index.php?module=search&query=' . urlencode($this->_search_string) . '&page={s}';
|
||||
$pagination_params = ($type_search ? '&ts=1' : '') .
|
||||
(isset($_REQUEST['or']) && $_REQUEST['or'] == 1 ? '&or=1' : '');
|
||||
$pagination_full = $pagination_base . $pagination_params;
|
||||
|
||||
// Пытаемся вызвать пагинацию.
|
||||
// Делаем проверку на неверный ID
|
||||
try {
|
||||
$page_nav = AVE_Paginations::getPagination($pages, 'page', $pagination_full, $p_id);
|
||||
} catch (TypeError $e) {
|
||||
// Если поймали ошибку
|
||||
// Принудительно откатываемся на ID = 1
|
||||
$page_nav = AVE_Paginations::getPagination($pages, 'page', $pagination_full, 1);
|
||||
}
|
||||
|
||||
// Если try-catch не поддерживается PHP версией или не сработал:
|
||||
if (empty($page_nav)) {
|
||||
$page_nav = AVE_Paginations::getPagination($pages, 'page', $pagination_full, 1);
|
||||
}
|
||||
|
||||
// Очистка и ЧПУ
|
||||
$page_nav = str_ireplace('"//"', '"/"', str_ireplace('///', '/', rewrite_link($page_nav)));
|
||||
$page_nav = str_ireplace('"//' . (defined('URL_SUFF') ? URL_SUFF : '.html') . '"', '"/"', $page_nav);
|
||||
$page_nav = preg_replace('/(?<!:)\/\//', '/', $page_nav);
|
||||
}
|
||||
$AVE_Template->assign('q_navi', $page_nav);
|
||||
// --- КОНЕЦ БЛОКА ПАГИНАЦИИ ПОИСКА ---
|
||||
}
|
||||
|
||||
if ($num > 0 && isset($query_feld))
|
||||
|
||||
Reference in New Issue
Block a user