Jetzt habe ich gerne
1 | Städtename
2 | Ein anderer Städtename
3 | Kleiner Städtename
im Wertefeld beim Erstellen des Inhaltstypfelds
Wie kann ich einige davon in eine Gruppe einbinden, die in HTML als "optgroup" angezeigt wird?
Jetzt habe ich gerne
1 | Städtename
2 | Ein anderer Städtename
3 | Kleiner Städtename
im Wertefeld beim Erstellen des Inhaltstypfelds
Wie kann ich einige davon in eine Gruppe einbinden, die in HTML als "optgroup" angezeigt wird?
Antworten:
Sie können einen hook_FORM_ID_alter verwenden und dann Code wie folgt hinzufügen:
$form['FIELDNAME']['#options'] = array (
'parent1' => array(
3 => 'child1',
4 => 'child2',
5 => 'child3',
),
'parent2' => array(
8 => 'child1',
9 => 'child2',
),
);
Mit der Forms-API in der Funktion hook_form-alter können Sie ein Eltern-Kind-Array generieren. Dann rendert drupal_render das Dropdown-Menü.
<?
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;
}
}
?>
Es gibt ein Modul dafür, das als optgroup select bezeichnet wird . Sie können dieses Modul ausprobieren.
PS: Ich bin der Modulbetreuer.