Привет, друзья.
У меня достаточно большой опыт построения сайтов, но всегда обходил Друпал стороной.
Но тут родился в голове один проект и хотел бы построить его именно на друпал ибо прочитав массу статей он оказался очень интересным. Ну или, проще говоря, просто лень кодить с нуля.
Задача простая, но вот с Друпал теоретически это можно сделать, но как, пока не хватает знаний и опыта.
Собственно основное - это просто построить систему статей по категориям, но, как я понял, каждая статья - это нода, но мне нужно, чтобы к головной ноде можно было прикрепить дочерние ноды (статьи) и рейтинг этих головных нод строился из суммарного рейтинга дочерних нод, где плюсуют или минусуют пользователи.
По большому счету, функционал дочерних нод, рейтингов и т.д., которые мне нужны очень похож, как реализована структура работы otzovik.com. У него так же головная статья с фото, внутри нее дочерние статьи с галереями фото и рейтинг. Вот что-то подобное нужно и мне.
Прошу сильно не смеяться над новичком ибо только установил Друпал 9 на виртуальной машине и пока не совсем получается то, что хотел бы.
Буду благодарен за подсказки.
Спасибо!
Комментарии
Сделать иерархию нод можно по разному. Например использовать book или и скорее предпочтительней на перспективу использовать entity_reference поля.
Что касается рейтингов, какой-нибудь флаг, но тут давно не делал такое, может что-то и лучшее есть.
А рейтинг, чтобы менялся по всей сети я бы писал кастом, на основе хука/события изменения ноды.
Плюс если совсем новичок, то я бы порекомендовал не сразу D9 а пока D8 т.к. можете ещё не весь контриб суметь поставить, много времени можете потерять на этом. А до D9 можно обновиться в любой момент
- это реально накликать новичку. Рецепты озвучены выше.
А это уже сложно. Мало того, что есть несколько систем "рейтинга" rate, votingapi, flag, так еще непонятно как эти рейтинги сумировать.
Так что удачи.
Rate это виджет к votingapi. Виджетов не мало, можно выбрать подходящий или вообще сделать свой. Система учёта одна, фактически. В votingapi есть всё нужное для агрегации результатов.
Flag это не о рейтинге.
Вообще, там всё довольно-таки просто. Не за чем пугать зря.
Благодарю за ответы, друзья.
В целом удалось уже натыкать зависимость, скорее всего еще коряво ибо особо информации не нашел, но теперь осталось разобраться с отображением этого всего из серии обрезания и т.д. По крайней мере по типу того же otzovik.com пока не очень получается.
Рецепты выше конечно понятны и об этом уже почитал, но вот новичку пошаговости этого всего не хватает.
По крайней мере переходя с Yii и Laravel, попытка построить в CMS типа Drupal - это прямо скажем выглядит, как темный лес.
Буду благодарен, если кто-либо сможет пошаговый блиц сжато описать, чтобы не запутываться, тыкая все подряд. А с нюансами я уже сам разберусь.
Касательно рейтинга все просто, по типу лайк/дизлайк: головная нода в ней указывается кол-во лайков и кол-во дизлайков, лайки - это сумма лайков из дочерних нод, соответственно, дизлайки - это сумма дизлайков из дочерних нод. В целом идея такова.
Спасибо.
Вам надо потратить время и изучить основы того, что предоставляет из себя Drupal. Как в целом строится приложение, какие есть инструменты, основные модули, какие предоставлены api, как выполняется темизация.
Без этого слепо тыкаться будет крайне не эффективно.
Я бы начал с https://www.drupal.org/docs/develop
https://www.youtube.com/c/NiklanNet/videos
там серия уроков "создание своего блога с нуля"
Могу ошибаться, вроде модули rate и fivestar используют некий api. Возможно от него можно скакать.
Как вариант использовать агрегацию во вьюхе. В 8-ке не знаю. В 7-ке находите в представлении настройки Расширенные-Другое -Использовать агрегацию. Выбираете Да и у полей появится дополнительная настройка. Настраиваете поле рейтинга. Там куча вариантов выводимого значения. Полученное представление/блок можно вывести с головной нодой или как угодно.
https://www.drupal.org/project/votingapi они используют.
Во views можно работать с этими данными.
Есть функции их агрегации и без views.