Редактор темы

Dle хак вывод новостей по порядку id

Valkiriya

Бывалый
Регистрация
22 Окт 2016
Сообщения
171
Рейтинг реакций
68
Баллы
28
1/3
Автор темы
Всем привет ребят выкладываю свой хак, как выводить новости по ID, в порядке проставленного, установка очень простая.

Установка хака

1 Шаг - Редактирование файла functions.php
Файл лежит в директории /engine/modules/functions.php

Ищем данный код if( preg_match( "#aviable=['\"](.+?)['\"]#i", $param_str, $match ) ) {

И выше вставляем

Код:
    # Хак вывод в порядке по ID
    if( preg_match( "#okloc=['\"](.+?)['\"]#i", $param_str, $match ) )
    {
        if( $match[1] == 'yes' )
        {
            if( preg_match( "#od=['\"](.+?)['\"]#i", $param_str, $match ) )
            {
                $temp_array = array();
                $where_id = array();
                $match[1] = explode (',', trim($match[1]));

                $set_numbe_im = implode(',', $match[1]);      
                $sort_oklock = 'FIELD (id, '.$set_numbe_im.'), ';
                $where[] = 'id IN ('.$set_numbe_im.') ';
            }
        }
    }

2 Шаг - Добавление #2 (в том же файле functions.php)

Ищем данный код $fixed . $news_sort

И заменяем на этот код

Код:
.$sort_oklock.$fixed.$news_sort

Вы успешно установили данный хак! 😉

Пример

Вы хотите вывести новости к примеру в слайдер, в том порядке который необходим вам. Первые шаги сделать конструкцию custom, пример приведу свой {custom od="1,56,498,789,1021" okloc="yes" template="topnews" limit="14"} - В данном примере у нас появились новые методы, это oid и okloc, первый метод выводит новости в том порядке который вы проставили, второй метод включает данную функцию. Не путать с метод id - это совсем разные методы, и работают они совсем по разному!

Порядок подключения прост:
{custom od="1,56,498,789,1021" okloc="yes" template="topnews" limit="14"}

Что получиться

Мы взяли новости с такими id - 1,56,498,789,1021, всего 5 шт., как вы вставите в вашу конструкцию id, так и будут выведены в вашем блоке.

8920f7391ea60f699fc6bee4ebc07a10.png


Выражать спасибки сюда:
  • RUR - R712571423881
  • $ - Z155930089248
 
Последнее редактирование:
Спасибо, но это не по порядку, задай к примеру Id 1,1021,789,56,498 выведет ли он в таком порядке? нет, ты создал однотипный тег что есть в кустоме, зачем?
 
Автор темы
Спасибо, но это не по порядку, задай к примеру Id 1,1021,789,56,498 выведет ли он в таком порядке? нет, ты создал однотипный тег что есть в кустоме, зачем?
Исправил теперь работает, чет немного тупанул я)) спс исправил 😀😉
 
Исправил теперь работает, чет немного тупанул я)) спс исправил 😀😉
дубль кода
upload_2016-11-21_20-0-34.png
Потому что oid нельзя называть, ибо есть регулярка
PHP:
if( preg_match( "#id=['\"](.+?)['\"]#i", $param_str, $match ) ) {
Можно так сделать:
В /engine/modules/functions.php найти
PHP:
$where_id[] = "id IN ('" . implode("','", $temp_array) . "')";
Выше вставить:
PHP:
$id_main = $temp_array;
Далее найти:
PHP:
if ( $allowed_sort[$match[1]] ) $news_sort = $allowed_sort[$match[1]];
Ниже вставить:
PHP:
elseif ($match[1] == "id" ) { $fixed = ""; $news_msort = ""; $news_sort = "FIND_IN_SET(p.id,'".implode(',',$id_main)."')"; }
В custom использовать id и order="id". Пример:
PHP:
{custom id="3,55,124,2,1" order="id" template="shortstory" limit="3"}
 
Автор темы
дубль кода
Посмотреть вложение 9282
Потому что oid нельзя называть, ибо есть регулярка
PHP:
if( preg_match( "#id=['\"](.+?)['\"]#i", $param_str, $match ) ) {
Можно так сделать:
В /engine/modules/functions.php найти
PHP:
$where_id[] = "id IN ('" . implode("','", $temp_array) . "')";
Выше вставить:
PHP:
$id_main = $temp_array;
Далее найти:
PHP:
if ( $allowed_sort[$match[1]] ) $news_sort = $allowed_sort[$match[1]];
Ниже вставить:
PHP:
elseif ($match[1] == "id" ) { $fixed = ""; $news_msort = ""; $news_sort = "FIND_IN_SET(p.id,'".implode(',',$id_main)."')"; }
В custom использовать id и order="id". Пример:
PHP:
{custom id="3,55,124,2,1" order="id" template="shortstory" limit="3"}
Геймер некепяшуй поменял метод с oid на od, теперь все норм, кароче ребят оба способа работают, какой проще такой и устанавливайте! 🙂
 
Геймер некепяшуй поменял метод с oid на od, теперь все норм, кароче ребят оба способа работают, какой проще такой и устанавливайте! 🙂
Я указал на 2 бага, в чем собственно кипишь ?
 
Автор темы

Похожие темы Последние темы Популярные темы

Назад
Сверху