今、私は持っています
1 |都市名
2 |別の都市名
3 |小さな町名
コンテンツタイプフィールドを作成するときの値フィールド
生成されたhtmlで「optgroup」として表示されるグループにそれらの一部をラップするにはどうすればよいですか?
今、私は持っています
1 |都市名
2 |別の都市名
3 |小さな町名
コンテンツタイプフィールドを作成するときの値フィールド
生成されたhtmlで「optgroup」として表示されるグループにそれらの一部をラップするにはどうすればよいですか?
回答:
hook_FORM_ID_alterを使用して、次のようなコードを追加できます。
$form['FIELDNAME']['#options'] = array (
'parent1' => array(
3 => 'child1',
4 => 'child2',
5 => 'child3',
),
'parent2' => array(
8 => 'child1',
9 => 'child2',
),
);
hook_form-alter関数内でフォームAPIを使用すると、親子配列を生成でき、次にdrupal_renderがドロップダウンをレンダリングします。
<?
function mymodule_form_alter(&$form, &$form_state, $form_id) {
if ($form['#form_id'] == 'my_nodetype_node_form') {
$parents = taxonomy_get_tree($vid = 2 /*vocaulary ID*/, $parent = 0, $max_depth = 1);
foreach ($parents as $term) {
$options[$term->name] = array();
$children = taxonomy_get_tree($term->vid, $term->tid);
foreach ($children as $child) {
$options[$term->name][$child->tid] = $child->name;
}
}
//echo '<pre>';print_r($options);die;
$form['the_taxonomy_terms_field']['und']['#options'] = $options;
}
}
?>
optgroup selectと呼ばれるモジュールがあります。そのモジュールを試すことができます。
PS:私はモジュールのメンテナーです。