0

私はDrupal 7のモジュールを開発しています。私は 'Booth'という名前のノードタイプを定義しました。今私のモジュールでは、名前、電話番号、住所などのフィールドを持つフォームを作成しました。これらのフィールドの1つは、選択タイプの要素であるブースです。私はSelect Elementオプションとしてブースのタイトル( "Add Content> Booth"で追加したもの)を持っていたいと思います。どうやってやるの?私のブースコンテンツタイプのタイトル欄で、オプション配列をどのように記入できますか?他のノードタイプのフィールドをDrupal 7のフォーム要素タイプとして定義して使用します。

The first field must be filled with title of booth titles

$form['exbooth'] = array(
    '#type' => 'select', 
    '#title' => t('Exhibition Booth'), 
    '#options' => array(), // I want to fill this array with title fields of booth content type 
    '#required' => TRUE, 
); 
$form['name'] = array(
    '#type' => 'textfield', 
    '#title' => t('Name'), 
    '#required' => TRUE, 
); 
$form['lastname'] = array(
    '#type' => 'textfield', 
    '#title' => t('Last Name'), 
    '#required' => TRUE, 

答えて

0

はdrupalのAPIでいくつかの掘削した後、最終的に私は解決策を見つけた[以下の画像をご覧下さい]。

私は「ブース」コンテンツタイプのすべてのノードを取得するにはentity_load()関数を使用して、私は、配列内の結果のタイトルを入れて、オプションを選択するためにその配列を設定します。

$entities = entity_load('node'); 
$booths = array(); 
foreach($entities as $entity) { 
    if($entity->type == 'booth') { 
     $i = 1; 
     $booths[$i] = $entity->title; 
    } 
} 
.... 
//inputs 
$form['exbooth'] = array(
    '#type' => 'select', 
    '#title' => t('Exhibition Booth'), 
    '#options' => $booths, // I set my array of booth nodes here 
    '#required' => TRUE, 
); 
関連する問題