Скрыть объявление
ВАШИ ПРАВА ОГРАНИЧЕНЫ!

Зарегистрируйтесь на форуме, чтобы стать полноценным участником сообщества!

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

Тема в разделе "Хаки DLE", создана пользователем Valkiriya, 21 ноя 2016.

21.11.16 в 20:08
21.11.16 в 21:30
6
1.684
2
  1. TopicStarter Overlay
    Valkiriya

    Valkiriya Бывалый

    Регистрация:
    22 окт 2016
    Сообщения:
    171
    Лучших ответов:
    0
    Рейтинги:
    +72 / 0 / -0
    Всем привет ребят выкладываю свой хак, как выводить новости по 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, так и будут выведены в вашем блоке.

    [​IMG]

    Выражать спасибки сюда:
    • RUR - R712571423881
    • $ - Z155930089248
     
    #1 Valkiriya, 21 ноя 2016
    Последнее редактирование: 21 ноя 2016
    • Нравится Нравится x 2
  2. PunPun

    VIP Кинотрафик v2

    Регистрация:
    11 июн 2015
    Сообщения:
    7.292
    Лучших ответов:
    31
    Рейтинги:
    +3.892 / 96 / -0
    Спасибо, но это не по порядку, задай к примеру Id 1,1021,789,56,498 выведет ли он в таком порядке? нет, ты создал однотипный тег что есть в кустоме, зачем?
     
  3. TopicStarter Overlay
    Valkiriya

    Valkiriya Бывалый

    Регистрация:
    22 окт 2016
    Сообщения:
    171
    Лучших ответов:
    0
    Рейтинги:
    +72 / 0 / -0
    Исправил теперь работает, чет немного тупанул я)) спс исправил :D;)
     
  4. PunPun

    VIP Кинотрафик v2

    Регистрация:
    11 июн 2015
    Сообщения:
    7.292
    Лучших ответов:
    31
    Рейтинги:
    +3.892 / 96 / -0
    дубль кода
    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"}
     
    • Нравится Нравится x 1
  5. TopicStarter Overlay
    Valkiriya

    Valkiriya Бывалый

    Регистрация:
    22 окт 2016
    Сообщения:
    171
    Лучших ответов:
    0
    Рейтинги:
    +72 / 0 / -0
    Геймер некепяшуй поменял метод с oid на od, теперь все норм, кароче ребят оба способа работают, какой проще такой и устанавливайте! :)
     
  6. PunPun

    VIP Кинотрафик v2

    Регистрация:
    11 июн 2015
    Сообщения:
    7.292
    Лучших ответов:
    31
    Рейтинги:
    +3.892 / 96 / -0
    Я указал на 2 бага, в чем собственно кипишь ?
     
  7. TopicStarter Overlay
    Valkiriya

    Valkiriya Бывалый

    Регистрация:
    22 окт 2016
    Сообщения:
    171
    Лучших ответов:
    0
    Рейтинги:
    +72 / 0 / -0
    :D:D:D, баги устранил все в порядке, огромное спасибо что уделил моим багам время, очень признателен)))
     
    • Нравится Нравится x 1
Яндекс.Метрика