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

Тема в разделе "DLE", создана пользователем Attyla, 20 май 2013.

Информация :
Актуальная версия DataLife Engine 12.0
( Final Release v.12.0 | Скачать DataLife Engine | Скачать 12.0 demo )
Нужно ли обновляться | Как обновиться | Изменения в шаблонах
> Нет русских символов <
[Приватная тема DLE (Все подробности в ЛС к модератору раздела)]

Версии 11.3 и ниже - уязвимы!

Локализации | F.A.Q. | Внешний вид
Правила раздела | Правила форума
Обсуждение хайда карается баном!
В каждом сообщении указывайте версию DLE, которого они касаются!
Модераторы: killoff
  1. Attyla

    Attyla

    Регистр.:
    21 ноя 2012
    Сообщения:
    160
    Симпатии:
    43
    Сайт на DatalifeEngine 9.8, есть категория Исполнители (И1, И2, И3,…Иn) и категория Песни/Альбом (П1, П2, П3,…Пm). Вопрос: как автоматически вывести в новости про исполнителя «И» все его песни/альбомы «П». Как их связать?
     
  2. Горбушка

    Горбушка Ищу её...

    Регистр.:
    2 май 2008
    Сообщения:
    3.199
    Симпатии:
    2.223
    Находясь в новости, мы знаем номер id её категории. => можно сделать SQL-запрос на все категории, для которых данный ID родительский (а в ДЛЕ вообще функция такая есть - надо в коде искать) - дальше делаем SQL-запрос, на выборку всех статей из полученных категорий.

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

    Либо можно обойтись тегом custom, но я пока не придумал алгоритм для него...
     
    Attyla нравится это.
  3. Attyla

    Attyla

    Регистр.:
    21 ноя 2012
    Сообщения:
    160
    Симпатии:
    43
    Думал в сторону: для категории песни/альбомы создать доп. поле ID исполнителя, где будет ID новости из категории Исполнители. Но как выводить потом новости у которых значение доп. поля равно ID
     
  4. Attyla

    Attyla

    Регистр.:
    21 ноя 2012
    Сообщения:
    160
    Симпатии:
    43
    Сколько примерно может стоить такой модуль который выводил бы новости по значению доп. поля?
     
  5. FKMA

    FKMA Постоялец

    Регистр.:
    4 фев 2007
    Сообщения:
    71
    Симпатии:
    24
    Можно, если по простому, через стандартные теги сделать. Тег - имя исполнителя. В новости вывести все другие песни этого же исполнителя не выйдет (а надо ли - список может очень громоздкий получиться), а в виде списка новостей - пожалуйста.
     
    Attyla нравится это.
  6. Attyla

    Attyla

    Регистр.:
    21 ноя 2012
    Сообщения:
    160
    Симпатии:
    43
    Ну так обычный список новостей в виде ссылок. Как через стандартные теги реализовать?
     
  7. FKMA

    FKMA Постоялец

    Регистр.:
    4 фев 2007
    Сообщения:
    71
    Симпатии:
    24
    Кстати, можно сделать через вывод "похожих новостей", изменив запрос в 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 ); 
    т.е. изменить запрос чтобы искал только по доп. полям.


    ========
    В новости в теги вписыватся имя исполнителя. При клике на тег (при просмотре новости),
    выводятся все новости с этим тегом.
     
  8. Attyla

    Attyla

    Регистр.:
    21 ноя 2012
    Сообщения:
    160
    Симпатии:
    43
    Кто возьмётся за разработку такого модуля? Готов обсудить.

    В место технического задания:
    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 шаблон для этого.