webleads-tracker

Création d'un champ sous Drupal 7

Création du formulaire de configuration

Une fois notre champ ajouté à notre type de contenu il est possible de le paramètrer.
Dans notre cas par exemple nous pourrions vouloir centrer la carte sur une ville en particulier pour un type de contenu donné.
Nous allons donc créer un formulaire de configuration des paramètres du champ.

Editez le fichier fieldmap.module et ajoutez ces lignes :


/*
* Implements field_settings_form
* 
*/
function fieldmap_field_settings_form($field, $instance, $has_data) {
  // Dans la mesure ou il peut y avoir plusieurs
  // champs dans notre module nous verifions
  // que le hook est appelé pour le champ "map"
  if ($field["type"] == "map") {
    // Récupération des paramètres du champ déclarer dans 
    // le hook fieldmap_field_info()
    $settings = $field["settings"];
    // Création du render array contenant notre 
    // élément de formulaire
    $form["ville"] = array(
    "#type" => "select",      
    "#title" => t("Choissisez une ville"),
    "#options" => array(
      "Paris" => t("Paris"),
      "Lyon" => t("Lyon"),
    ),
    "#default_value" => $settings["ville"],
    "#required" => FALSE,
    "#description" => t("La ville de depart de la carte ?"),
    );
    // On retourne le render array
    return $form;
  }
}



Nous créons un champ de formulaire de type select dans un Render Array permettant de choisir une ville par défaut (Lyon ou Paris).
Vous remarquez que le paramètre #default_value utilise le paramètre settings que nous avons déclaré précédemment dans le hook fieldmap_field_info().