Всех приветствую!
Подскажите, пожалуйста, по возможностям Drupal и стоит ли задуманное реализовывать на Drupal?
Исходные данные:
Планируется сайт, содержащий некоторые Анкеты (например статьи) и Рецензии к Анкетам.
Одной Анкете может соответствовать произвольно большое количество Рецензий.
Анкета содержит около 20 полей.
Рецензия содержит тот же самый состав полей, из которых
15 полей имеют те же самые значения что в родительской Анкете
и 5 полей имеют другие значения.
Вопросы у меня такие :
1) Возможно ли на Drupal организовать сквозную нумерацию всех Анкет
и нумерацию Рецензий относительно родительских Анкет?
2) Возможно ли, чтобы любой зарегистрированный пользователь сайта
мог создать новую Рецензию на любую Анкету
посредством копирования значений 15-ти полей из родительской Анкеты.
3) Возможно ли, чтобы автор Рецензии НЕ мог редактировать скопированные 15 полей,
а мог бы заполнить только свои 5 полей?
4) Знаю в Drupal есть модуль Workflow, позволяющий провести Анкету (Рецензию)
по Этапам (/Состояниям/Статусам) согласования до Состояния Опубликована.
Но возможно ли задать еще несколько этапов уже после Состояния Опубликована
и чтобы Автор Анкеты мог бы проводить Анкету по этим дополнительным Состояниям
на протяжении которых Анкета оставалась бы опубликованной?
5) Возможно ли в Drupal управлять редактируемостью полей в зависимости от различных условий,
например в зависимости от значений некоторых других полей, от этапа согласования?
Например нужно чтобы проводя Анкету по дополнительным Этапам (Состояниям) после публикации
Автор Анкеты мог бы редактировать какие-то поля а какие-то не мог бы.
6) Возможно ли для заполнения полей (типа Категория) реализовать Справочники,
расширяемые пользователями с согласованием Модератором?
Например, есть поле Город, которое должно заполняться из Справочника Городов.
Первоначально Админ сайта создал Справочник Городов с двумя значениями - Москва и Питер.
Нужно чтобы Автор Анкеты мог бы в поле Город набрать например Казань (т.е. новое значение,
отсутствующее в справочнике) и затем при отправке Анкеты на согласование публикации,
чтобы если Модератор согласует Казань, то надо чтобы Казань стала третьим значением в Справочнике Городов.
И таких полей-категорий с соответствующими расширяемыми справочниками должно быть штук 5.
Просьба по возможности не ограничиваться ответами Да/Нет,
а если Drupal что либо позволяет из перечисленного,
то намекните пожалуйста куда мне смотреть-копать...
Буду признателен за любые комментарии и советы!
Заранее спасибо всем откликнувшимся!!!
Комментарии
1 Да. Добавить cck поле. При сохранении ноды смотреть в бд, инкрементить счётчик и заполнять поле.
2 Да. Nodereference. Чтобы подтянуть 15 полей - можно чёнибудь придумать, новый урл например создать с доп аргументом.
3 Да. Закрыть права на эти поля. Проверку обязательно.
4 Не юзал Workflow, но статусов можно хоть 30 штук сделать, различными способами.
5 Да. Form API.
6 Возможно. Скорей всего таксономия. Но понятия опубликовано/не опубликовано у терминов нет. Может по другому как, или чёто придумать можно.
Всё это можно реализовать стандартным API, где-то модули взять, но по большей части придётся код писать, не оч сложный.
За исключением пункта №6 все реализуется с помощью уже существующих модулей.
Добавление категории после согласования с модератором - скорее всего придется разрабатывать модуль, готового я не встречала. А вообще, думаю, модератор не обломается ручками взять название нового города из поля, создать его в справочнике, а затем добавить в ту анкету город уже из справочника. Ну или дайте пользователям возможность добавлять термины в справочник без согласования, а модератор пусть контролирует справочник на предмет дублей/ненужных значений.
У всех материалов в Друпале единая нумерация.
1. Если хотите, чтобы каждый материал нумеровался по-особому, добавьте дополнительное поле Serial Field для Анкеты, сделайте на нее ссылку из рецензии с помощью entity reference.
2. Чтобы сделать ссылку с Анкеты на добавление Рецензии, используйте entity reference prepopulate. Настроить разрешение на создание материалов можно без установки доп.модулей - просто выставьте соответствующие права роли.
3. Кстати, нет смысла копировать поля из Анкеты в Рецензию. Достаточно создать и настроить новый именованный вывод материала-Анкеты, а в Рецензии в виджете поля entityreference, указать отображение как материала с вашим именованным выводом.
4. Есть еще аналог Workflow- модуль Rules. Статусы и состояния складывайте в справочники (в терминологии Друпала справочник называется словарем Таксономии).
5. Управление полями в зависимости от условий - conditional fields.
Ну вот, собственно, и все Качайте ядро, устанавливайте вышеперечисленные модули и их зависимости, и поднимайте проект
Не вижу проблем с пунтом 6.
Делаем словарь
-Москва
-Питер
-Другое
--На этом уровне разрешить создавать термины.
Модератор периодически просматривает их и те, что утвердил переносит на верхний уровень...
Есть несколько модулей для реализации такого функционала. Hierarchical Select для примера.
Все решаемо) Друпал это не только CMS, но и CMF
Хороший вариант, вот только Hierarchical Select разрешит создавать подуровни всем терминам.
Кстати, у версии Hierarchical Select 7.x-3.0-alpha5 есть очень противный баг: при создании материала, когда включено сохранение нового термина, сабмитится вся форма. В результате, либо пользователь видит ошибки заполнения всей формы, либо материал сохраняется дважды.
Подобный функционал есть не только у HS, кроме этого можно ограничить права на создание дочерних терминов (через taxonomy access control и т.п.).
Супер, огромнейшее всем СПАСИБО!!!