Drupal 7, Создание виджета с помощью ImageField и Textarea
Может кто-нибудь помочь мне понять, как я могу создать виджет (Field API), который будет содержать изображение (я хочу быть ImageField) и текстовое поле в Drupal 7? К сожалению, я не могу найти учебник, как это сделать в Google. Спасибо!
4 ответа
Извините, что не закрыли это. но реальный ответ на этот вопрос - использовать модуль Field Collection - drupal.org/project/field_collection. Вы добавляете несколько полей к этому. Когда я задал этот вопрос, я был новичком в D7, а в D6 мы должны были написать это вручную. отличный модуль!
Там нет учебника как такового, о котором я знаю, но посмотрите на модуль примеров Drupal, внутри есть модуль с именем field_example
со всей необходимой информацией.
На самом базовом уровне вы хотите сделать это:
- Реализуйте hook_field_schema() в вашем модуле
.install
файл, чтобы определить, какие столбцы будут храниться в таблице полей (вероятно, идентификатор файла (fid
), альтернативный текст для изображения, текст заголовка для изображения и содержимое текстовой области в вашем случае). - Реализуйте hook_field_info(), чтобы определить тип вашего поля.
- Реализуйте hook_field_is_empty(), чтобы предоставить Drupal способ узнать, что конкретный экземпляр поля пуст и может быть удален при сохранении сущности.
- Реализуйте hook_field_formatter_info(), чтобы сообщить Drupal о различных способах отображения содержимого вашего поля.
- Реализуйте hook_field_formatter_view, чтобы точно определить, как будут выводиться те средства форматирования полей, которые были определены на шаге 4.
- Реализуйте hook_field_widget_info, чтобы определить различные входные виджеты для вашего поля.
- Реализуйте hook_field_widget_form, чтобы определить элементы, которые будут составлять виджет для вашего поля.
После того, как вы перепрыгнули через все эти циклы (на самом деле это не занимает много времени, большинство функций - это всего лишь несколько строк кода), включите модуль и начните добавлять новое поле к сущностям!
Вы должны начать с этого 2 хука, чтобы создать виджет. тогда вы должны начать создавать составное поле
hook_field_widget_info() hook_field_widget_form(&$form, &$form_state, $field, $instance, $langcode, $items, $delta, $element)
вот несколько ссылок для создания настраиваемого поля и виджета http://www.phase2technology.com/node/1495/ http://drupal.org/project/dnd_character
Попробуйте взглянуть на этот урок. Большинство других писатель сосредотачивается на том, чтобы казаться умным, у этого есть скриншоты и очень ясно и сжато.