webleads-tracker

Création d'un champ sous Drupal 7

Déclaration du champ à Drupal

La première étape consiste à déclarer le champ et ses composants à Drupal.

Le hook field_info

Afin de déclarer notre champ à drupal il faut utiliser le hook field_info.
Cette fonction doit retourner un tableau comportant les caractéristiques de notre champ.
Vous trouverez toutes les options possibles concernant le tableau à retourner sur l'api de drupal.
Il faut placer ce code dans le fichier fieldmap.module

Code de notre fonction hook_field_info() :


<?php
/**
* Implements hook_field_info().
* 
*/
function fieldmap_field_info() {
  return array("map"=>array(      
    "label" => t("Champs  Google Map"),
    "description" => t("Permet d'afficher une carte par rapport à une latitude et longitude."),
    "default_widget" => "field_map_widget",
    "default_formatter" => "field_map_formater",
    "settings" => array("ville" => "Paris"),
    ),
  );
}


Description des paramètres :

Le hook field_schema

Ce hook va permettre d'indiquer le schéma de base de données ou seront stockées les valeurs du champ.
Nous allons créer deux champs de type varchar qui stockeront la latitude et la longitude.
Vous trouverez la documentation de ce hook sur cette page.
Il faut placer ce hook dans le fichier fieldmap.install.


<?php
/**
* Implements hook_field_schema().
* 
*/
function fieldmap_field_schema($field) {
  if($field["field_type"]=="fieldmap") {
	  $schema["columns"]["longitude"] = array(
	    "type" => "varchar",
	    "length" => 32,
	    "not null" => FALSE,
	  );
	  $schema["columns"]["latitude"] = array(
	    "type" => "varchar",
	    "length" => 32,
	    "not null" => FALSE,
	  );
	  $schema["indexes"] = array(
	    "longitude" => array("longitude"),
	    "latitude" => array("latitude"),
	  );
	
	  return $schema; 
  }						
}