Drupal 7 для начинающих: Работа с полями.

Что такое поля, зачем нужны, и учимся пользоваться.

01.02.2013
7 комментариев
3 мин.

Я начинал изучать Drupal, когда была шестая версия. И добавленные типы материалов не отличались ничем, как сейчас у нас: новости, услуги и отзывы. На тот момент в топе модулей был CCK, который я поставил, и после чего я уже окончательно полюбил друпал. Данный модуль позволял добавлять дополнительные поля к типам содержимого, что и делало их отличными друг от друга. В седьмой версии данный модуль добавили в ядро (т.е. идет вместе с друпалом) и он там называется Field. Ему и будет посвящена статья.

Итак, сейчас для каждого созданного нами типа материала мы добавим свои собственные поля. Начнем с новостей. Для работы с полями любого типа содержимого переходим в Структура » Типы содержимого и справа от нужного типа материала жмем «Управлять полями».

Управление полями.

На открывшейся странице мы увидим два добавленных поля: title и body, а также краткую информацию о типе поля, и кнопки для редактирования. Давайте начнем с простого и отредактируем Body, сделав ему русскую метку «Содержимое», которая выводится при добавлении новости. Для этого жмем на «изменить», справа от поля body:

Изменить поле.

И в окне настроек меняем Body на «Содержимое». Сохраняем. Теперь при добавлении новости над полем содержимого будет русская метка:

Результат изменения метки.

Добавление собственных полей

Теперь добавим свои собственные поля. Для этого переходим Структура » Типы содержимого, и у нужного типа материала жмем «Управлять полями». Заметка: данная ссылка может отсутствовать если выключен модуль Fields UI, который предназначен для этого.

Перед нами откроется та же самая страница, в которой только что мы заменили body на «Содержимое». В этот раз мы добавим своё поле при помощи специальной формы.

Добавление нового поля.

Для наших новостей, мы добавим два поля: промо-картинка и теги.

Начнем с первого. Для этого в метку вводим «Промо-изображение» - такое название будет отображаться над полем добавления картинки. В момент ввода названия, справа появится кнопка [Редактировать]. Как я раньше рассказывал, она необходима для задания машинного имени, в данном случае уникального машинного имени для поля. Это является обязательным. Вводим «promo_image». И старайтесь всегда вводить понятные названия. В типе поля мы указываем «Изображение». Для изображения всего один виджет, поэтому пропускаем. В результате получится примерно так:

Первый этап добавления.

Затем жмем «Сохранить» и перед нами открывается страница донастройки поля. В данном случае у нас открылась настройка для поля.

Второй этап настройки.

Нам предлагают настроить «Хранилище», т.е. то место, куда будут сохраняться файлы. По умолчанию всего одно хранилище, остальные добавляются отдельно, и нам это не нужно. Мы также можем задать «Изображение по умолчанию» (делайте на своё усмотрение, я же пропущу). Разумеется, если мы его не зададим и при добавлении новости мы не добавим картинку, то ничего не выведется.  Для продолжения добавления поля жмем «Сохранить настройки поля». И перед нами открывается детальная настройка поля. Все поля имеют подробное описание, поэтому я это пропущу это, вдобавок у каждого типа поля свои настройки. Просто читаем внимательно для чего каждое поле.

Давайте завершим настройку поля промо-картинки. Что нужно изменить\добавить:

  • Каталог файлов: news/promo_img
  • Минимальное разрешение изображения: 800х600
  • Показывать поля для «alt» и «title» - поставить галочки

И жмем завершающую кнопку «Сохранить настройки». После этого в списке появится наше поле.

Добавленное поле.

Мы можем также перетащить поле, например, чтобы оно было над «Содержимым», для этого просто нужно перетащить за спец иконку:

Переносим поле выше.

После перемещения не нужно забывать про кнопку «Сохранить» внизу страницы. Также не стоит забывать, что поле можно всегда отредактировать, для этого достаточно нажать «Изменить».

Теперь добавим еще одно поле для наших «новостей».

  • Метка: Теги
  • Машинное имя: tags
  • Тип поля: Ссылка на термин. Теги будут храниться в определенном словаре таксономии, который дальше мы укажем.
  • Виджет: Автозавершение ввода. Можете выбрать любой другой на выбор, или поэкспериментировать с каждым.

Далее предлагается выбрать словарь из таксономии, в котором будут храниться теги. По умолчанию в друпале уже есть словарь «Tags», поэтому оставляем его и идем дальше. На последнем этапе нам необходимо указать «Количество значений», ставим «Не ограничен», так как у каждой новости может быть неопределенное количество тегов. Разумеется если укажите, например, 3, то можно будет ввести до 3 тегов. И сохраняем.

Всё, на этом поля для новостей мы добавили. Должно получиться примерно следующее:

Результат добавления полей.

Теперь быстренько добавим поля для «Отзыв» и «Услуга».

Начнем с «Отзыв». Для начало изменим метку поля Body на «Отзыв», а также поставим галочку «Обязательное поле».

Метка и обязательное поле.

Затем добавляем новое поле, которое будет указывать на тип отзыва:

  • Метка: Тип отзыва
  • Машинное имя: review_type
  • Тип поля: Список (текст)
  • Виджет: Флажки\Радио-кнопки

Далее, в список допустимых значений вводим (каждое с новой строки):

  1. Нейтральный
  2. Положительный
  3. Отрицательный

Донастраиваем поле:

  • Обязательное поле – устанавливаем галочку.
  • Значение по умолчанию: Нейтральный

Сохраняем. И переходим к добавлению полей для типа содержимого «Услуга».

Опять же, меняем Body, например на «Описание услуги». И добавляем собственное поле:

  • Метка: Иконка
  • Машинное имя: icon
  • Тип поля: Изображение
  • Виджет: Изображение

Пропускаем шаг с изображением по умолчанию. На этапе детальной настройки:

  • Обязательное поле – отмечаем
  • Каталог файлов: service/icons
  • Максимальное разрешение: 64х64
  • Минимальное разрешение: 16х16

Сохраняем. Это будет поле для иконки услуги, чтобы приукрасить список.

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

Прикрепленные файлы
Результат выполнения — dfbeginners_fields.zip, 3.95 МБ
Drupal
Drupal 7

Комментарии

Новенькая)   чт, 23/10/2014 - 22:09

Здравствуйте! Скажите пожалуйста, что делать, если при добавлении нового поля невозможно выбрать виджет?

Павел   пн, 02/02/2015 - 22:28

ОПС!) в 7 версии машинное имя tags нельзя использовать.

Вячеслав   вс, 30/08/2015 - 11:42

А как сделать как у вас, чтобы поле Заголовок тоже можно было перетащить?

Андрей   вс, 13/09/2015 - 08:37

При добавлении нового типа материала поле title является обязательным. Можно ли как-то обойтись без заголовка? Требуется создать тип материала для коротких заметок, которым заголовок не нужен.

Михаил   вт, 15/12/2015 - 18:08

Доброго вечера,можете ли помочь при переносе с хостинга на хостинг на одном сайте были утеряны данные css, бекап которые предоставили е решили вопрос,видутерян темы сайта,админки и админ мню, может смоете подсказать как можно это исправить?

Мария   чт, 20/07/2017 - 17:22

Спасибо за упоминание модуля Fields UI, столько всего перерыла и только здесь нашла причину невозможности управлять полями.