【发布时间】:2014-09-18 11:18:47
【问题描述】:
我想使用我的自定义模块创建分层分类法。 我使用 taxonomy_get_vocabularies() 获取所有词汇表。
我的问题是当我选择任何词汇或与父母相关的孩子时,应该在另一个选择列表/下拉列表中列出。
我的代码:-
enter code here
<?php
function student_addform($form, &$form_state) {
$vocabulary = taxonomy_get_vocabularies();
$checklist_vocab_array = array();
foreach ($vocabulary as $item) {
$vocab_vid = $item->vid;
$vocab_name = $item->name;
$checklist_vocab_array[$vocab_vid] = $vocab_name;
}
$form['vocabulary_list'] = array(
'#type' => 'select',
'#title' => t('List of current Classes.'),
'#position' => 'left' ,
'#options' => $checklist_vocab_array ,
'#required' => TRUE,
'#description' => t('List of classes displayed as dropdown'),
'#ajax' => array(
'callback' => '_student_records_callback_fields',
'wrapper' => 'check-box-replace',
'effect' => 'fade',
'event' => 'change' ,
),
);
$form['child-list'] = array(
'#type' => 'select',
'#title' => t('Select fields of'),
'options' => $term_list,
'#prefix' => '<div id="check-box-replace">',
'#suffix' => '</div>',
);
return $form;
}
function _student_records_callback_fields($form, $form_state) {
$term_list = array();
$vocabulary_id = $form['vocabulary_list']['#value'];
$terms = taxonomy_get_tree($vocabulary_id); // Use the correct vocabulary id.
$count = count($terms);
for ($term = 0 ; $term < $count ; $term++) {
$term_list[$terms[$term]->vid] = $terms[$term]->name;
}
return $term_list;
}
?>
谢谢,
【问题讨论】:
标签: drupal drupal-7 drupal-taxonomy