Error message

  • Это обсуждение закрыто: вы не можете добавлять новые комментарии.
  • This discussion is closed: you can't post new comments.
  • Это обсуждение закрыто: вы не можете добавлять новые комментарии.
  • Это обсуждение закрыто: вы не можете добавлять новые комментарии.

Поля для терминов таксономии уже в ядре drupal 7

Итак состоялось! Теперь отпадает нужда в модулях дополняющих термины таксономии дополнительными полями. Все можно делать посредвом Field API, даже темизировать вывод каждого термина.

Для словарей добавлено дополнительное поле taxonomy_vocabulary[machine_name] использовать которое можно шаблонах, делая для каждого словаря/термина разлчное оформление. Также наличие этого поля упрощает перенос данных или синхронизацию между сайтами.

Слущий шаг - добавление шаблонов к выводу терминов с зависимостью от словаря http://drupal.org/node/489834

Вот пример, как выглядет ввод термина с дополнительным полем:

term-field.png

Ниже код, который добавляет поле test к терминам словаря tags

<?php
$field
= array(
 
'field_name' => 'test',
 
'type' => 'text',
 
'cardinality' => 1, /* not necessary as it's the default.*/
);
field_create_field($field);

$instance = array(
 
'field_name' => 'test',
 
'bundle' => 'tags',
 
'label' => t('Some text'),
 
'description' => t('You can enter some text here.'),
 
'weight' => 0,
 
'widget' => array(
   
'type' => 'text_textfield',
   
'label' => t('Some text'),
  ),
);
field_create_instance($instance);
?>

Выполнить его можно посредством модуля devel, как я писал в Работа с полями в drupal 7.

PS: изменение разрабатывалось в http://drupal.org/node/413192

Комментарии

drupalist аватар

Из профиля установки:

Создается словарь тегов и крепится к материалу article

<?php
 
// Create a default vocabulary named "Tags", enabled for the 'article' content type.
 
$description = st('Use tags to group articles on similar topics into categories.');
 
$help = st('Enter a comma-separated list of words to describe your content.');
 
$vocabulary = (object) array(
   
'name' => 'Tags',
   
'description' => $description,
   
'machine_name' => 'tags',
   
'help' => $help,

  );
 

taxonomy_vocabulary_save($vocabulary);
 
$instance = array(
   
'field_name' => 'taxonomy_' . $vocabulary->machine_name,
   
'object_type' => 'node',
   
'label' => $vocabulary->name,
   
'bundle' => 'article',
   
'description' => $vocabulary->help,
   
'widget' => array(
     
'type' => 'taxonomy_autocomplete',
     
'weight' => 4,
    ),
  );
 
field_create_instance($instance);
?>
Guest аватар

классная статья