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

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

DLE {custom + категория + доп-поле} = подборки

Тема в разделе "Хаки DLE", создана пользователем iCooLER, 30 мар 2018.

30.03.18 в 12:15
04.09.18 в 21:17
30
1.762
4
  1. TopicStarter Overlay
    iCooLER

    Команда форума Модератор Кодер

    Регистрация:
    13 сен 2016
    Сообщения:
    356
    Лучших ответов:
    3
    Рейтинги:
    +240 / 8 / -1
    Как реализовать подборки на сайте?

    1. Создаем категорию «Подборки», в которую будет добавлять подборки. Прописываем в настройках категории свои шаблоны для краткой и полной новости.
    2. Создаем доп-поле «Подборка», в котором будет список id новостей входящих в подборку.
    3. В шаблоне полной новости для категории «Подборки» прописываем код: {custom cache="yes" id="[xfvalue_ПОДБОРКА]"} где ПОДБОРКА — название созданного доп-поля «Подборка». Также вы можете прописать для {custom свой шаблон параметром template="тут_название_шаблона".

    Плюсы:
    — Не нужно редактировать движок и заливать на сайт сторонние файлы модуля.
    — Пользуетесь стандартными средствами DLE, с которыми привыкли работать.

    Минусы:
    — Список id новостей нужно прописать вручную. Но это решаемо небольшим хаком(см. ниже).
    — Сортировку новостей в подборке не получится выставить именно так, как хотите вы.

    UPD:
    Упрощаем создание подборки используя хак.
    В файле engine/ajax/find_relates.php ищем:
    PHP:
    if ( $mode $d_link "";
    Ниже вставляем(вместо слова ПОДБОРКА пишем свое название доп-поля):
    PHP:
    $d_link "<a title=\"Добавить в подборку\" onclick=\"var _self = $('#xf_ПОДБОРКА'), flag = _self.val().split(',').filter(function(item){return item=={$related['id']}}).length ? true : false; if(_self.val()=='') {_self.val('{$related['id']}')} else if( flag === false ) {_self.val(_self.val() + ',{$related['id']}')}; return false\" href=\"#\"><i class=\"fa fa-play position-left\"></i></a>{$d_link}";
    После этого при поиске похожих новостей в добавлении/редактировании новости будет выводится еще одна кнопка, перед ссылкой. При клике на нее id новости добавится в доп-поле «Подборка» с проверкой на дубль.
     
    #1 iCooLER, 30 мар 2018
    Последнее редактирование: 3 апр 2018
    • Нравится Нравится x 4
    • Полезно Полезно x 2
    • Лучший Лучший x 1
  2. TopicStarter Overlay
    iCooLER

    Команда форума Модератор Кодер

    Регистрация:
    13 сен 2016
    Сообщения:
    356
    Лучших ответов:
    3
    Рейтинги:
    +240 / 8 / -1
    UPD: Всем известный «конкурент» данного форума уже скопипастил данный топик :mad: Но вообще — пофиг :)
     
    • Смешно Смешно x 1
  3. Stishny

    Stishny Бывалый

    Регистрация:
    28 май 2017
    Сообщения:
    279
    Лучших ответов:
    0
    Рейтинги:
    +6 / 8 / -3
    Получается добавляем ссылку в полную новости подборки, а как они формируются или для каждой подборки новое доп поле?
     
  4. TopicStarter Overlay
    iCooLER

    Команда форума Модератор Кодер

    Регистрация:
    13 сен 2016
    Сообщения:
    356
    Лучших ответов:
    3
    Рейтинги:
    +240 / 8 / -1
    Ни про какие ссылки я не писал, с чего ты это взял?

    Суть проста: жмем добавить новости, в доп-поле указываем список id новостей(например:256,938,12,2019,...), задаем название новости/подборки и прочее. Добавляем на сайт. При открытии новости на сайте, будет выведен список новостей указанных в доп поле(256,938,12,2019,...).

    Суть хака:
    1 категория
    1 доп-поле
    тег {custom в шаблоне полной новости

    И добавляй хоть 100500+ подборок. Все что для этого нужно: {custom + категория + доп-поле} — вот и вся реализация.
     
  5. grndfilm

    grndfilm Зелёный

    Регистрация:
    25 янв 2018
    Сообщения:
    24
    Лучших ответов:
    1
    Рейтинги:
    +1 / 4 / -1
    iCooLER а как вывести кол-во новостей в подборке?
     
  6. TopicStarter Overlay
    iCooLER

    Команда форума Модератор Кодер

    Регистрация:
    13 сен 2016
    Сообщения:
    356
    Лучших ответов:
    3
    Рейтинги:
    +240 / 8 / -1
    1. Отдельное доп-поле и туда указывать кол-во.
    2. Правка в файле dle (буквально одна строчка)

    отпиши в ЛС или телегу, если актуально

    Думаю кому-то будет полезно, тем кто делает подборки вышеуказанной схемой DLE - Пагинация тега {custom...} в полной новости / хак
     
  7. jpgKhan

    jpgKhan Зелёный

    Регистрация:
    10 фев 2018
    Сообщения:
    10
    Лучших ответов:
    0
    Рейтинги:
    +3 / 0 / -0
    Тупость, зачем создавать новости и хранить id новостей в доп поле?
     
  8. TopicStarter Overlay
    iCooLER

    Команда форума Модератор Кодер

    Регистрация:
    13 сен 2016
    Сообщения:
    356
    Лучших ответов:
    3
    Рейтинги:
    +240 / 8 / -1
    А тебе прочитать сложно? Зачем писать отдельный модуль, который будет делать тоже самое, что уже заложено в функционале DLE изначально? Вот это тупость!
     
  9. jpgKhan

    jpgKhan Зелёный

    Регистрация:
    10 фев 2018
    Сообщения:
    10
    Лучших ответов:
    0
    Рейтинги:
    +3 / 0 / -0
    iCooLER можно сделать без записи ID новостей, без сторонних модулей.
     
  10. TopicStarter Overlay
    iCooLER

    Команда форума Модератор Кодер

    Регистрация:
    13 сен 2016
    Сообщения:
    356
    Лучших ответов:
    3
    Рейтинги:
    +240 / 8 / -1
    Делай
     
    • Смешно Смешно x 1
  11. Oooops

    Oooops Бывалый

    Регистрация:
    15 ноя 2016
    Сообщения:
    113
    Лучших ответов:
    0
    Рейтинги:
    +58 / 3 / -2
    А можно решение с правкой файла, выложить пожалуйста !
     
  12. Heiz

    Heiz Бывалый

    Регистрация:
    24 сен 2016
    Сообщения:
    626
    Лучших ответов:
    0
    Рейтинги:
    +154 / 0 / -0
    А как сделать такой же поиск, только не в поле Заголовка, а в отдельном? Например, ниже Полного описания.
     
  13. pan_oleksandr

    pan_oleksandr Посетитель

    Регистрация:
    18 фев 2016
    Сообщения:
    75
    Лучших ответов:
    0
    Рейтинги:
    +19 / 0 / -0
    А как сделать в кастом xfields_translation="значение", а то по всем полям дико получается
     
  14. Oooops

    Oooops Бывалый

    Регистрация:
    15 ноя 2016
    Сообщения:
    113
    Лучших ответов:
    0
    Рейтинги:
    +58 / 3 / -2
    Опережу автора
    Хак для вывода количества новостей в подборке :

    В show.short.php найти :
    Код:
    $row['xfields'] = stripslashes( $row['xfields'] );
    Ниже вставить
    Код:
    $xfieldsdata = xfieldsdataload( $row['xfields'] );
          
    $tpl->set( '{mix-count}', isset( $xfieldsdata['collections'] ) ? substr_count( $xfieldsdata['collections'], "," ) + 1 : "" );
    В шаблоне вывода количество будет выводиться тегом {mix-count}

    2018-05-06_21-44-06.png 2018-05-06_21-44-28.png
     
    • Полезно Полезно x 3
  15. grndfilm

    grndfilm Зелёный

    Регистрация:
    25 янв 2018
    Сообщения:
    24
    Лучших ответов:
    1
    Рейтинги:
    +1 / 4 / -1
    а само будет подсчитывать или надо вручную к каждой подборке прописывать кол-во?
     
  16. Winston?!

    Winston?! Бывалый

    Регистрация:
    31 дек 2016
    Сообщения:
    814
    Лучших ответов:
    2
    Рейтинги:
    +62 / 3 / -7
    Если прописан тег, значит будет само подсчитывать! Oooops спасибо за решение!
     
  17. grndfilm

    grndfilm Зелёный

    Регистрация:
    25 янв 2018
    Сообщения:
    24
    Лучших ответов:
    1
    Рейтинги:
    +1 / 4 / -1
    Если так то вообще огонь!!!
     
  18. Oooops

    Oooops Бывалый

    Регистрация:
    15 ноя 2016
    Сообщения:
    113
    Лучших ответов:
    0
    Рейтинги:
    +58 / 3 / -2
    Автору спасибо. Я только выложил решение.
     
  19. Oooops

    Oooops Бывалый

    Регистрация:
    15 ноя 2016
    Сообщения:
    113
    Лучших ответов:
    0
    Рейтинги:
    +58 / 3 / -2
    Автоматически считает, ничего не надо прописывать.
     
  20. raps

    raps Бывалый

    Регистрация:
    11 дек 2016
    Сообщения:
    155
    Лучших ответов:
    0
    Рейтинги:
    +23 / 1 / -1
    Все по инструкции делал, при открытии категории подборки на сайте пишет-
    Внимание! Обнаружена ошибка
    По данному адресу публикаций на сайте не найдено, либо у Вас нет доступа для просмотра информации по данному адресу.

    я хз что делать, дле 12
     
Яндекс.Метрика