0

Je développe un module Drupal 7. J'ai défini un type de noeud nommé «Booth». Maintenant, dans mon module, j'ai créé un formulaire avec des champs tels que le nom, le téléphone, l'adresse, etc. L'un de ces champs est Booth qui est un élément de type Select. Je veux avoir les titres des stands (que j'ai ajoutés dans "Ajouter un contenu> Booth") en tant qu'options Select Element. Comment puis je faire ça? Comment puis-je remplir le tableau d'options, avec le champ de titre de mon type de contenu de stand? [S'il vous plaît regarder l'image ci-dessous]Définir et utiliser un champ d'un autre type de nœud comme type d'élément de formulaire dans 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, 

Répondre

0

Après quelques recherches dans l'API drupal, enfin je trouve la solution.

J'utilise la fonction entity_load() pour récupérer tous les nœuds du type de contenu « stand », puis je mets les titres de résultat dans un tableau et définissez ce tableau pour les Sélectionnez les options:

$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, 
);