Работа с полями в drupal 7

Хочу показать примеры по добавлению полей к объектам "user" & "node". Теперь для добавления поля вовсе не обязательно устанавливать модуль cck, который теперь содержит только интерфейсы для управления полями.

Пример взят со cтраницы документации. В данной заметке будет использоваться модуль devel, который умеет выполнять php код прямо из блока или страницы (devel/php).

Итак, добавим пользователю поле lastname

<?php

$field

= array(
 
'field_name' => 'lastname',
 
'type' => 'text',
);
field_create_field($field);

$instance = array(
 
'field_name' => 'lastname',
 
'bundle' => 'user',
 
'label' => t('Last name'),
 
'description' => t('You can enter your last name here.'),
 
'weight' => 10,
 
'widget' => array(
   
'type' => 'text_textfield',
   
'label' => t('Last name'),
  ),
);
field_create_instance($instance);
?>

Результатом будет появление дополнительного поля в профиле у пользователя
user_lastname.png

Следущий код добавит поле subtitle к типу материалов page

<?php

$field

= array(
 
'field_name' => 'subtitle',
 
'type' => 'text',
);
field_create_field($field);

$instance = array(
 
'field_name' => 'subtitle',
 
'bundle' => 'page',
 
'label' => t('Subtitle'),
 
'description' => t('You can enter page subtitle here.'),
 
'weight' => 0,
 
'widget' => array(
   
'type' => 'text_textfield',
   
'label' => t('Subtitle'),
  ),
);
field_create_instance($instance);
?>

результат можно наблюдать на форме создания материала
page_fields.png

PS: Теперь готов функционал для добавления полей к терминам таксономии...
Документация http://api.drupal.org/api/group/field/7

Comments

Webmaster's picture

Теперь и термины таксономии могут быть расширены дополнительными полями. Читаем про добавление полей к терминам

Guest's picture

как вывести поле с картинкой в node.tpl.php в drupal 7 ?

Guest's picture

А как например добавить свою кнопку в уже имеющееся поле image?