الآن لدي مثل
1 | اسم المدينة
2 | اسم مدينة آخر
3 | اسم بلدة صغيرة
في مجال القيم عند تكوين مجال نوع المحتويات
كيف يمكنني لف بعضها في مجموعة ستظهر باسم "optgroup" في HTML الذي تم إنشاؤه؟
يمكنك استخدام 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 ، يمكنك إنشاء مجموعة من الوالدين والطفل ثم 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: أنا مشرف الوحدة النمطية.