Drupal 7, Создание виджета с помощью ImageField и Textarea - PullRequest
3 голосов
/ 25 сентября 2011

Может ли кто-нибудь помочь мне понять, как я могу создать виджет (Field API), который будет содержать изображение (я хочу быть ImageField) и текстовое поле в Drupal 7?К сожалению, я не могу найти учебник, как это сделать в Google.Спасибо!

Ответы [ 4 ]

7 голосов
/ 25 сентября 2011

Нет такого учебника, о котором я знаю, но посмотрите на Модуль примеров Drupal , в нем есть модуль с именем field_example со всей необходимой информацией.

На базовом уровне вы хотите сделать это:

  1. Реализация hook_field_schema () в файле .install вашего модуля, чтобы определить, какие столбцы будут храниться в вашей таблице полей (вероятно, идентификатор файла (fid), альтернативный текст для изображения, заголовок текст для изображения и содержимое текстовой области в вашем случае).
  2. Реализуйте hook_field_info () , чтобы определить тип вашего поля.
  3. Реализация hook_field_is_empty () , чтобы предоставить Drupal способ узнать, что конкретный экземпляр поля пуст и может быть удален при сохранении сущности.
  4. Реализация hook_field_formatter_info () , чтобы сообщить Drupal о различных способах отображения содержимого вашего поля.
  5. Реализация hook_field_formatter_view , чтобы точно определить, как будут выводиться те средства форматирования полей, которые были определены в шаге 4.
  6. Реализация hook_field_widget_info для определения различных виджетов ввода для вашего поля.
  7. Реализация hook_field_widget_form , чтобы определить элементы, которые будут составлять виджет для вашего поля.

После того, как вы перепрыгнули через все эти циклы (на самом деле это не занимает много времени, большинство функций - это всего лишь несколько строк кода), включите модуль и начните добавлять новое поле к сущностям!

1 голос
/ 10 августа 2012

Извините, что не закрыли это. но реальный ответ на это заключается в использовании модуля Field Collection - drupal.org/project/field_collection. Вы добавляете несколько полей к этому. Когда я задал этот вопрос, я был новичком в D7, а в D6 мы должны были написать это вручную. отличный модуль!

1 голос
/ 26 сентября 2011

Вы должны начать с этого 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

0 голосов
/ 13 мая 2014

Попробуйте взглянуть на этот учебник . Большинство других писатель концентрируется на умном звучании, у этого есть скриншоты и он очень ясный и лаконичный.

...