Сортировка по дополнительным полям в стандартном теге sort
Хак позволит сортировать новости по дополнительным полям в теге {sort}.
Установка:
1. Открыть engine/init.php и найти:
if( !$config['allow_comments'] ) unset($allowed_sort[3]);
Добавить выше:
$allowed_sort = array_merge($allowed_sort, array("year")); // вписываем сюда название доп.полей которые нужны через запятую "year", "director"
2. Открыть engine/modules/functions.php и найти:
$allowed_sort = array ('date', 'rating', 'news_read', 'comm_num', 'title' );
Заменить на:
$allowed_sort = array ('date', 'rating', 'news_read', 'comm_num', 'title', 'year'); // вписываем сюда название доп.полей которые нужны через запятую
Найте далее:
$soft_by_array = array (
Добавить ниже:
'year' => array ( // так делаем для каждого поля, вместо year вписываем название нужного доп.поля и вместо год, то что будет показано пользователям сайта
'name' => "год", 'value' => "year", 'direction' => "desc", 'image' => ""
),
3. Открыть engine/engine.php и найти (все вхождения):
if (isset ( $_SESSION['dle_sort_
Добавить выше:
if(isset ( $_SESSION['dle_sort_' . $do] ) && in_array($_SESSION['dle_sort_' . $do], array("year", "director"))) // вписываем сюда все названия доп полей которые нужны через запятую в кавычках, пример "year", "director"
{
if(in_array($_SESSION['dle_sort_' . $do], array("year"))) // вписываем сюда название доп поле которые должны быть числами
$news_sort_by = "ABS(SUBSTRING_INDEX( SUBSTRING_INDEX( xfields, '{$_SESSION['dle_sort_' . $do]}|', -1 ) , '||', 1 ))";
if(in_array($_SESSION['dle_sort_' . $do], array("director"))) // вписываем сюда название доп поле которые должны быть строками, если не нужны удалить две строчки эти
$news_sort_by = "SUBSTRING_INDEX( SUBSTRING_INDEX( xfields, '{$_SESSION['dle_sort_' . $do]}|', -1 ) , '||', 1 )";
}
else
Готово!
• Автор: PunPun
• Источник
Посетители, находящиеся в группе Гость, не могут оставлять комментарии к данной публикации.
Комментариев 1