• DONATE to NULLED!
    Форуму и его команде можно помочь, мотивировать модераторов разделов.
    Помогите модератору этого раздела killoff лично.

Помощь Как связать новости из разных категории

Attyla

Профессор
Регистрация
21 Ноя 2012
Сообщения
160
Реакции
44
Сайт на DatalifeEngine 9.8, есть категория Исполнители (И1, И2, И3,…Иn) и категория Песни/Альбом (П1, П2, П3,…Пm). Вопрос: как автоматически вывести в новости про исполнителя «И» все его песни/альбомы «П». Как их связать?
 
Находясь в новости, мы знаем номер id её категории. => можно сделать SQL-запрос на все категории, для которых данный ID родительский (а в ДЛЕ вообще функция такая есть - надо в коде искать) - дальше делаем SQL-запрос, на выборку всех статей из полученных категорий.

Короче, модуль писать надо...

Либо можно обойтись тегом custom, но я пока не придумал алгоритм для него...
 
Думал в сторону: для категории песни/альбомы создать доп. поле ID исполнителя, где будет ID новости из категории Исполнители. Но как выводить потом новости у которых значение доп. поля равно ID
 
Можно, если по простому, через стандартные теги сделать. Тег - имя исполнителя. В новости вывести все другие песни этого же исполнителя не выйдет (а надо ли - список может очень громоздкий получиться), а в виде списка новостей - пожалуйста.
 
Можно, если по простому, через стандартные теги сделать. Тег - имя исполнителя. В новости вывести все другие песни этого же исполнителя не выйдет (а надо ли - список может очень громоздкий получиться), а в виде списка новостей - пожалуйста.
Ну так обычный список новостей в виде ссылок. Как через стандартные теги реализовать?
 
Кстати, можно сделать через вывод "похожих новостей", изменив запрос в show.full.php и введя доп. поле к новости с именем исполнителя (xfields).
Запрос оригинальный такой
PHP:
$db->query( "SELECT id, date, short_story, xfields, title, category, alt_name FROM " . PREFIX . "_post WHERE {$allowed_cats}MATCH (title, short_story, full_story, xfields) AGAINST ('$body') AND id != " . $row['id'] . " AND approve=1" . $where_date . " LIMIT " . $config['related_number'] );

заменить на что-то такое
PHP:
$db->query( "SELECT id, date, short_story, xfields, title, category, alt_name FROM " . PREFIX . "_post WHERE {$allowed_cats}MATCH (xfields) AGAINST ('$xfilelds') AND id != " . $row['id'] . " AND approve=1" . $where_date );

т.е. изменить запрос чтобы искал только по доп. полям.


========
Как через стандартные теги реализовать?
В новости в теги вписыватся имя исполнителя. При клике на тег (при просмотре новости),
выводятся все новости с этим тегом.
 
Кто возьмётся за разработку такого модуля? Готов обсудить.

В место технического задания:
1. Модулю передается {news-id} или idновости (например 6)где он выводится через {includefile="engine/modules/other_modules/modulename/newsidinxfields.php?parentnewsID={news-id}&xfieldname=artistID&displayquantity=10&sortby=date"}
2. Модулю передается название дополнительного поля значение которого он будет сравнивать с ID новости где он выводится. Например это будет доп. Поле с названием artistID.
3. Далее модуль обращается к базе данных и ищет новости в table dle_post где значение xfields равно artistID|6 и определяет общее количество и выводит последние по дате новости (самые свежие, или другой параметр) в количестве (displayquantity) например это будет 10.
4. Далее модуль выводит подходящие новости в том месте где он вызываетсяиспользуя .tpl шаблон для этого.
 
Назад
Сверху