Dismiss Notice
ВАШИ ПРАВА ОГРАНИЧЕНЫ!

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

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

Discussion in 'Хаки DLE' started by Valkiriya, Nov 21, 2016.

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

    Valkiriya Бывалый

    Messages:
    171
    Likes Received:
    70
    Best Answers:
    0
    Всем привет ребят выкладываю свой хак, как выводить новости по ID, в порядке проставленного, установка очень простая.

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

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

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

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

    Code:
        # Хак вывод в порядке по 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

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

    Code:
    .$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
     
    Last edited: Nov 21, 2016
    • Нравится Нравится x 2
  2. PunPun

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

    Messages:
    7,436
    Likes Received:
    3,688
    Best Answers:
    32
    Спасибо, но это не по порядку, задай к примеру Id 1,1021,789,56,498 выведет ли он в таком порядке? нет, ты создал однотипный тег что есть в кустоме, зачем?
     
  3. TopicStarter Overlay
    Valkiriya

    Valkiriya Бывалый

    Messages:
    171
    Likes Received:
    70
    Best Answers:
    0
    Исправил теперь работает, чет немного тупанул я)) спс исправил :D;)
     
  4. PunPun

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

    Messages:
    7,436
    Likes Received:
    3,688
    Best Answers:
    32
    дубль кода
    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 Бывалый

    Messages:
    171
    Likes Received:
    70
    Best Answers:
    0
    Геймер некепяшуй поменял метод с oid на od, теперь все норм, кароче ребят оба способа работают, какой проще такой и устанавливайте! :)
     
  6. PunPun

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

    Messages:
    7,436
    Likes Received:
    3,688
    Best Answers:
    32
    Я указал на 2 бага, в чем собственно кипишь ?
     
  7. TopicStarter Overlay
    Valkiriya

    Valkiriya Бывалый

    Messages:
    171
    Likes Received:
    70
    Best Answers:
    0
    :D:D:D, баги устранил все в порядке, огромное спасибо что уделил моим багам время, очень признателен)))
     
    • Нравится Нравится x 1