[Задача] Создание ноды с кастомными полями.

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

Аватар пользователя ZanaDLucTyc ZanaDLucTyc 4 декабря 2011 в 20:53

Подкину ка я задачку уважаемым друпалерам. Оговорюсь сразу, что это просто умозрительная задачка. Родилась сия идейка во время обдумывания ТЗ к одному проекту. Проектик может вообще и не родиться, но сам по себе сабж - есть над чем подумать. Вот.

И так, алгоритм добавления ноды:

1. Имеется тип материала. Назовем его, к примеру, "Неведомая хрень".
2. Нажимаем в админке на ссыль и создаем новую ноду с "Неведомой хренью"
3. Первый этап - определяем наличие и порядок предопределенных полей или групп полей. В идеале - драг-н-дроп подобно аналогичным фичам в админке.
4. Жмакаем далее и переходим к непосредственно вбиванию контента.
5. На выходе получаем ноду с кастомными полями.

Примечания:

1. Для данного типа материала должен имется набор предопределенных полей. Поля могут (этот пункт ТЗ опционален, но не обязателен) объединятся в группы: если так, то предусмотреть возможность выбора уже сформированной группы полей или формирование новой.
2. Создаем ноду обязательно в 2 этапа.
3. Может быть есть модуль, но меня интересует именно реализация своими силами.

Ну вот, вроде предельно конкретно старался написать. Господа, если бы вы реализовывали подобное - то каким образом? Какие технологии и как тут можно использовать?

Поехали.. Smile

Комментарии

Аватар пользователя Orion76 Orion76 4 декабря 2011 в 21:25

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

Значения и параметры можно например хранить в сериализированном массиве-структуре, построенном по Form API...
А сам массив хранить в специальном поле..

Тогда форматтер поля реализовать проще простого - drupal_render(массив).
Да и виджет не особенно сложно...

или наоборот, храним в БД структуру виджета, а форматтер собираем из виджета..

Аватар пользователя ZanaDLucTyc ZanaDLucTyc 5 декабря 2011 в 18:52

А реализация с помощью уже существующих инструментов? Если не разрабатывать модуль специализированный? Насколько это оправданно? И вообще, возможно ли. Smile