Стоит ли задуманное реализовывать на Drupal?

Главные вкладки

Аватар пользователя ppa ppa 21 августа 2013 в 0:52

Всех приветствую!

Подскажите, пожалуйста, по возможностям Drupal и стоит ли задуманное реализовывать на Drupal?

Исходные данные:
Планируется сайт, содержащий некоторые Анкеты (например статьи) и Рецензии к Анкетам.
Одной Анкете может соответствовать произвольно большое количество Рецензий.
Анкета содержит около 20 полей.
Рецензия содержит тот же самый состав полей, из которых
15 полей имеют те же самые значения что в родительской Анкете
и 5 полей имеют другие значения.

Вопросы у меня такие :

1) Возможно ли на Drupal организовать сквозную нумерацию всех Анкет
и нумерацию Рецензий относительно родительских Анкет?

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

3) Возможно ли, чтобы автор Рецензии НЕ мог редактировать скопированные 15 полей,
а мог бы заполнить только свои 5 полей?

4) Знаю в Drupal есть модуль Workflow, позволяющий провести Анкету (Рецензию)
по Этапам (/Состояниям/Статусам) согласования до Состояния Опубликована.
Но возможно ли задать еще несколько этапов уже после Состояния Опубликована
и чтобы Автор Анкеты мог бы проводить Анкету по этим дополнительным Состояниям
на протяжении которых Анкета оставалась бы опубликованной?

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

6) Возможно ли для заполнения полей (типа Категория) реализовать Справочники,
расширяемые пользователями с согласованием Модератором?
Например, есть поле Город, которое должно заполняться из Справочника Городов.
Первоначально Админ сайта создал Справочник Городов с двумя значениями - Москва и Питер.
Нужно чтобы Автор Анкеты мог бы в поле Город набрать например Казань (т.е. новое значение,
отсутствующее в справочнике) и затем при отправке Анкеты на согласование публикации,
чтобы если Модератор согласует Казань, то надо чтобы Казань стала третьим значением в Справочнике Городов.
И таких полей-категорий с соответствующими расширяемыми справочниками должно быть штук 5.

Просьба по возможности не ограничиваться ответами Да/Нет,
а если Drupal что либо позволяет из перечисленного,
то намекните пожалуйста куда мне смотреть-копать...
Буду признателен за любые комментарии и советы!
Заранее спасибо всем откликнувшимся!!!

Комментарии

Аватар пользователя Chyvakoff Chyvakoff 21 августа 2013 в 9:41

1 Да. Добавить cck поле. При сохранении ноды смотреть в бд, инкрементить счётчик и заполнять поле.
2 Да. Nodereference. Чтобы подтянуть 15 полей - можно чёнибудь придумать, новый урл например создать с доп аргументом.
3 Да. Закрыть права на эти поля. Проверку обязательно.
4 Не юзал Workflow, но статусов можно хоть 30 штук сделать, различными способами.
5 Да. Form API.
6 Возможно. Скорей всего таксономия. Но понятия опубликовано/не опубликовано у терминов нет. Может по другому как, или чёто придумать можно.

Всё это можно реализовать стандартным API, где-то модули взять, но по большей части придётся код писать, не оч сложный.

Аватар пользователя eLSe eLSe 21 августа 2013 в 10:09

За исключением пункта №6 все реализуется с помощью уже существующих модулей.
Добавление категории после согласования с модератором - скорее всего придется разрабатывать модуль, готового я не встречала. А вообще, думаю, модератор не обломается ручками взять название нового города из поля, создать его в справочнике, а затем добавить в ту анкету город уже из справочника. Ну или дайте пользователям возможность добавлять термины в справочник без согласования, а модератор пусть контролирует справочник на предмет дублей/ненужных значений.

У всех материалов в Друпале единая нумерация.

1. Если хотите, чтобы каждый материал нумеровался по-особому, добавьте дополнительное поле Serial Field для Анкеты, сделайте на нее ссылку из рецензии с помощью entity reference.
2. Чтобы сделать ссылку с Анкеты на добавление Рецензии, используйте entity reference prepopulate. Настроить разрешение на создание материалов можно без установки доп.модулей - просто выставьте соответствующие права роли.
3. Кстати, нет смысла копировать поля из Анкеты в Рецензию. Достаточно создать и настроить новый именованный вывод материала-Анкеты, а в Рецензии в виджете поля entityreference, указать отображение как материала с вашим именованным выводом.
4. Есть еще аналог Workflow- модуль Rules. Статусы и состояния складывайте в справочники (в терминологии Друпала справочник называется словарем Таксономии).
5. Управление полями в зависимости от условий - conditional fields.

Ну вот, собственно, и все Smile Качайте ядро, устанавливайте вышеперечисленные модули и их зависимости, и поднимайте проект Smile

Аватар пользователя Advin Advin 21 августа 2013 в 13:09

Не вижу проблем с пунтом 6.

Делаем словарь
-Москва
-Питер
-Другое
--На этом уровне разрешить создавать термины.

Модератор периодически просматривает их и те, что утвердил переносит на верхний уровень...

Есть несколько модулей для реализации такого функционала. Hierarchical Select для примера.

Аватар пользователя eLSe eLSe 21 августа 2013 в 17:03

"Advin" wrote:
-Другое
--На этом уровне разрешить создавать термины.

Хороший вариант, вот только Hierarchical Select разрешит создавать подуровни всем терминам.
Кстати, у версии Hierarchical Select 7.x-3.0-alpha5 есть очень противный баг: при создании материала, когда включено сохранение нового термина, сабмитится вся форма. В результате, либо пользователь видит ошибки заполнения всей формы, либо материал сохраняется дважды.

Аватар пользователя Advin Advin 21 августа 2013 в 18:20

Подобный функционал есть не только у HS, кроме этого можно ограничить права на создание дочерних терминов (через taxonomy access control и т.п.).