it-swarm-ja.com

drupal 7リストフィールドのoptgroup

今、私は持っています

1 |都市名
2 |別の都市名
3 |小さな町の名前

コンテンツタイプフィールド作成時の値フィールド

生成されたhtmlで「optgroup」として表示されるグループにそれらの一部をラップするにはどうすればよいですか?

6

hook_FORM_ID_alter を使用して、次のようなコードを追加できます。

$form['FIELDNAME']['#options'] = array (

   'parent1' => array(
      3 => 'child1',
      4 => 'child2',
      5 => 'child3',
    ),
    'parent2' => array(
      8 => 'child1',
      9 => 'child2',
    ),
);
13
uwe

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;
    }
}
?>
5
B Ravanbakhsh

optgroup select と呼ばれるモジュールがあります。そのモジュールを試すことができます。

PS:私はモジュールのメンテナーです。

0
Ram