Итак состоялось! Теперь отпадает нужда в модулях дополняющих термины таксономии дополнительными полями. Все можно делать посредвом Field API, даже темизировать вывод каждого термина.
Для словарей добавлено дополнительное поле taxonomy_vocabulary[machine_name] использовать которое можно шаблонах, делая для каждого словаря/термина разлчное оформление. Также наличие этого поля упрощает перенос данных или синхронизацию между сайтами.
Слущий шаг - добавление шаблонов к выводу терминов с зависимостью от словаря http://drupal.org/node/489834
Вот пример, как выглядет ввод термина с дополнительным полем:

Ниже код, который добавляет поле 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 (не проверено)
Пт, 2009/10/09 - 21:20
Постоянная ссылка
Прикрепить словарь к материалу
Из профиля установки:
Создается словарь тегов и крепится к материалу 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 (не проверено)
Ср, 2011/01/05 - 12:55
Постоянная ссылка
классная статья
классная статья