Полезные модули для Drupal (4.7) и CCK

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

Аватар пользователя tema tema 25 июля 2006 в 20:50

Всем привет!

Моей здешней учетной записи уже почти полтора года, значит примерно столько же я вожусь с Друпалом. Выношу на суд публики вспомогательные модули собственной лепки (пока что два, но скоро будет еще один), предназначенные для работы с Content Construction Kit (CCK).

Один модуль называется Add and reference, работает с полем nodereference, с помощью которого одна нода привязывается к другой. Базовый модуль содержит 2 виджета (способа представления поля в node form): выбор из списка и autocomplete. Выбор нод для каждого поля ограничен типами контента и, само собой, предполагает, что присоединяемый документ уже существует.

Мой модуль добавляет к каждому полю nodereference кнопки для добавления новых нод (по одной на каждый разрешенный тип контента). После подтверждения формы, создающей новую ноду, пользователь возвращается в предыдущую форму с уже заполненным соответствующим полем nodereference и (sic!) другими полями, которые он успел заполнить к моменту нажатия на кнопку (валидации не происходит, поэтому на незаполненные обязательные поля Друпал не ругнется).

Для того, чтобы это работало, необходимо включить еще один маленький модуль - Form restore. Он сохраняет поля в пользовательскую сессию и восстанавливает их по мере возможности. Причем, если создаваемая нода также содержит поле nodereference, из него также можно создать ноду (и так до 10 раз!), при подтверждении каждой формы пользователь будет попадать в предыдущую с уже заполненными полями.

Модуль Add and reference подставляет значения в стэк, созданный Form restore, который этот стэк пополняет, восстанавливает данные в соответствующих формах и удаляет их из стека при сохранении в базу.

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

Жду комментариев!