Хак позволит сортировать новости по дополнительным полям в теге {sort}
Установка хака Сортировка новостей по дополнительным полям в стандартном теге {sort} для DLE
1. Открываем /engine/init.php находим:
Выше вставляем:
2. Открываем /engine/modules/functions.php находим:
Меняем на:
Находим:
Ниже вставляем:
3. Открываем /engine/engine.php находим (все разы что найдете):
Выше вставляем:
Автор: https://punpun.name/
Установка хака Сортировка новостей по дополнительным полям в стандартном теге {sort} для DLE
1. Открываем /engine/init.php находим:
PHP:
if( !$config['allow_comments'] ) unset($allowed_sort[3]);
PHP:
$allowed_sort = array_merge($allowed_sort, array("year")); // вписываем сюда название доп полей которые нужны через запятую "year", "director"
PHP:
$allowed_sort = array ('date', 'rating', 'news_read', 'comm_num', 'title' );
PHP:
$allowed_sort = array ('date', 'rating', 'news_read', 'comm_num', 'title', 'year'); // вписываем сюда название доп полей которые нужны через запятую
PHP:
$soft_by_array = array (
PHP:
'year' => array ( // так делаем для каждого поля, вместо year вписываем название нужного доп поля и вместо год то что будет показано пользователям сайта
'name' => "год", 'value' => "year", 'direction' => "desc", 'image' => ""
),
PHP:
if (isset ( $_SESSION['dle_sort_
PHP:
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
if (isset ( $_SESSION['dle_sort_' . $do] )) $news_sort_by = $_SESSION['dle_sort_' . $do];
Последнее редактирование: