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

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

  • Автор темы Автор темы iCooLER
  • Дата начала Дата начала

iCooLER

Кодер
Регистрация
13 Сен 2016
Сообщения
390
Рейтинг реакций
239
Баллы
43
Возраст
31
1/3
Автор темы
Как реализовать подборки на сайте?

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 новости добавится в доп-поле «Подборка» с проверкой на дубль.
 
Последнее редактирование:
Автор темы
UPD: Всем известный «конкурент» данного форума уже скопипастил данный топик 😡 Но вообще — пофиг 🙂
 
Получается добавляем ссылку в полную новости подборки, а как они формируются или для каждой подборки новое доп поле?
 
Автор темы
Получается добавляем ссылку в полную новости подборки
Ни про какие ссылки я не писал, с чего ты это взял?

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

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

И добавляй хоть 100500+ подборок. Все что для этого нужно: {custom + категория + доп-поле} — вот и вся реализация.
 
iCooLER а как вывести кол-во новостей в подборке?
 
Автор темы
iCooLER а как вывести кол-во новостей в подборке?
1. Отдельное доп-поле и туда указывать кол-во.
2. Правка в файле dle (буквально одна строчка)

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

Думаю кому-то будет полезно, тем кто делает подборки вышеуказанной схемой DLE - Пагинация тега {custom...} в полной новости / хак
 
Тупость, зачем создавать новости и хранить id новостей в доп поле?
 
Автор темы
Тупость, зачем создавать новости и хранить id новостей в доп поле?
А тебе прочитать сложно? Зачем писать отдельный модуль, который будет делать тоже самое, что уже заложено в функционале DLE изначально? Вот это тупость!
 
iCooLER можно сделать без записи ID новостей, без сторонних модулей.
 
А как сделать в кастом xfields_translation="значение", а то по всем полям дико получается
 
Опережу автора
Хак для вывода количества новостей в подборке :

В 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
 
Опережу автора
Хак для вывода количества новостей в подборке :

В 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}

а само будет подсчитывать или надо вручную к каждой подборке прописывать кол-во?
 
Все по инструкции делал, при открытии категории подборки на сайте пишет-
Внимание! Обнаружена ошибка
По данному адресу публикаций на сайте не найдено, либо у Вас нет доступа для просмотра информации по данному адресу.

я хз что делать, дле 12
 

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

Назад
Сверху