Добавлен выбор шаблонов пагинации используемых модулем.

This commit is contained in:
2026-04-17 12:51:32 +05:00
parent c0d2ca8da0
commit 11571573f0
3 changed files with 44 additions and 14 deletions

View File

@@ -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

View File

@@ -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&amp;query='
. urlencode($this->_search_string)
. ($type_search ? '&amp;ts=1' : '')
. (isset($_REQUEST['or']) && $_REQUEST['or'] == 1 ? '&amp;or=1' : '')
. '&amp;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&amp;query=' . urlencode($this->_search_string) . '&amp;page={s}';
$pagination_params = ($type_search ? '&amp;ts=1' : '') .
(isset($_REQUEST['or']) && $_REQUEST['or'] == 1 ? '&amp;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))

View File

@@ -4,7 +4,7 @@
$module = array(
'ModuleSysName' => 'search',
'ModuleVersion' => '3.31.1',
'ModuleVersion' => '3.31.2',
'ModuleAutor' => 'AVE.cms Team',
'ModuleCopyright' => '&copy; 2007-' . date('Y') . ' AVE.cms',
'ModuleIsFunction' => 1,