Помощь новичку

Аватар пользователя sh241 sh241 9 августа в 14:25

Привет, друзья.

У меня достаточно большой опыт построения сайтов, но всегда обходил Друпал стороной.
Но тут родился в голове один проект и хотел бы построить его именно на друпал ибо прочитав массу статей он оказался очень интересным. Ну или, проще говоря, просто лень кодить с нуля.

Задача простая, но вот с Друпал теоретически это можно сделать, но как, пока не хватает знаний и опыта.

Собственно основное - это просто построить систему статей по категориям, но, как я понял, каждая статья - это нода, но мне нужно, чтобы к головной ноде можно было прикрепить дочерние ноды (статьи) и рейтинг этих головных нод строился из суммарного рейтинга дочерних нод, где плюсуют или минусуют пользователи.

По большому счету, функционал дочерних нод, рейтингов и т.д., которые мне нужны очень похож, как реализована структура работы otzovik.com. У него так же головная статья с фото, внутри нее дочерние статьи с галереями фото и рейтинг. Вот что-то подобное нужно и мне.

Прошу сильно не смеяться над новичком ибо только установил Друпал 9 на виртуальной машине и пока не совсем получается то, что хотел бы.

Буду благодарен за подсказки.

Спасибо!

Комментарии

Аватар пользователя vlucas vlucas 9 августа в 14:37

Сделать иерархию нод можно по разному. Например использовать book или и скорее предпочтительней на перспективу использовать entity_reference поля.
Что касается рейтингов, какой-нибудь флаг, но тут давно не делал такое, может что-то и лучшее есть.
А рейтинг, чтобы менялся по всей сети я бы писал кастом, на основе хука/события изменения ноды.

Аватар пользователя vlucas vlucas 9 августа в 14:42
1

Плюс если совсем новичок, то я бы порекомендовал не сразу D9 а пока D8 т.к. можете ещё не весь контриб суметь поставить, много времени можете потерять на этом. А до D9 можно обновиться в любой момент

Аватар пользователя VasyOK VasyOK 10 августа в 14:58

sh241 wrote: головная статья с фото, внутри нее дочерние статьи с галереями фото

- это реально накликать новичку. Рецепты озвучены выше.

sh241 wrote: рейтинг этих головных нод строился из суммарного рейтинга дочерних нод, где плюсуют или минусуют пользователи

А это уже сложно. Мало того, что есть несколько систем "рейтинга" rate, votingapi, flag, так еще непонятно как эти рейтинги сумировать.

Так что удачи.

Аватар пользователя bsyomov bsyomov 14 августа в 19:00

Rate это виджет к votingapi. Виджетов не мало, можно выбрать подходящий или вообще сделать свой. Система учёта одна, фактически. В votingapi есть всё нужное для агрегации результатов.

Flag это не о рейтинге.

Вообще, там всё довольно-таки просто. Не за чем пугать зря. Smile

Аватар пользователя sh241 sh241 10 августа в 16:03

Благодарю за ответы, друзья.

В целом удалось уже натыкать зависимость, скорее всего еще коряво ибо особо информации не нашел, но теперь осталось разобраться с отображением этого всего из серии обрезания и т.д. По крайней мере по типу того же otzovik.com пока не очень получается.

Рецепты выше конечно понятны и об этом уже почитал, но вот новичку пошаговости этого всего не хватает.

По крайней мере переходя с Yii и Laravel, попытка построить в CMS типа Drupal - это прямо скажем выглядит, как темный лес.

Буду благодарен, если кто-либо сможет пошаговый блиц сжато описать, чтобы не запутываться, тыкая все подряд. А с нюансами я уже сам разберусь.

Касательно рейтинга все просто, по типу лайк/дизлайк: головная нода в ней указывается кол-во лайков и кол-во дизлайков, лайки - это сумма лайков из дочерних нод, соответственно, дизлайки - это сумма дизлайков из дочерних нод. В целом идея такова.

Спасибо.

Аватар пользователя bsyomov bsyomov 14 августа в 19:08

Вам надо потратить время и изучить основы того, что предоставляет из себя Drupal. Как в целом строится приложение, какие есть инструменты, основные модули, какие предоставлены api, как выполняется темизация.

Без этого слепо тыкаться будет крайне не эффективно.
Я бы начал с https://www.drupal.org/docs/develop

Аватар пользователя vladtulku vladtulku 14 августа в 18:23

Могу ошибаться, вроде модули rate и fivestar используют некий api. Возможно от него можно скакать.
Как вариант использовать агрегацию во вьюхе. В 8-ке не знаю. В 7-ке находите в представлении настройки Расширенные-Другое -Использовать агрегацию. Выбираете Да и у полей появится дополнительная настройка. Настраиваете поле рейтинга. Там куча вариантов выводимого значения. Полученное представление/блок можно вывести с головной нодой или как угодно.