Guide de survie sous Drupal pour développeur front end

Comment s’en sortir dans la jungle des fonctions et autres astuce de l’API de notre cher CMS Drupal ?
Canal Web, après sa liste des modules pour booster Drupal, vous présente son guide de survie sous Drupal pour développeur front end.
Que ce soit pour découvrir des fonctionnalités méconnues, se rafraîchir la mémoire ou même copier du code, ce petit guide sera, je l’espère, vous aider.
N’hésitez pas à revenir sur celui-ci, car nous le mettons à jour régulièrement.

Sommaire :

Créer des liens

Utilisation de la fonction l() de Drupal
l($text, $path, array $options = array())
function l() sur api.drupal.org

Faire un lien vers la page de contact d’un membre avec deux classes

l(t('Contacter'), 'membres/'.$user->uid.'/contact', array(
    'attributes' => array(
        'class' => array(
            'btn_contact', 'submit'
        )
    )
));
// affichera :
<a href="/membres/15/contact" class="btn_contact submit">Contacter</a>

Faire un lien externe

l(t('Voir le site partenaire'), 'http://www.site-du-partenaire.fr', array(
    'attributes' => array(
        'external' => TRUE,
        'target' => '_blank',
    )
));

// affichera :
<a href="http://www.site-du-partenaire.fr" target="_blank">Voir le site partenaire</a>

Afficher une image depuis un champ

Utilisation de la fonction image_style_url() de Drupal
image_style_url($style_name, $path)
function image_style_url() sur api.drupal.org

$style = 'thumbnail';
$img_url = $node->field_image[LANGUAGE_NONE][0]['uri'];
<img src="<?php print image_style_url($style, $img_url); ?>" />

// affichera :
<img src="http://mon-site.fr/sites/default/files/styles/thumbnail/public/image.jpg">

Récupérer le dossier du thème

Utilisation de la fonction drupal_get_path() et de variable_get() de Drupal
drupal_get_path($type, $name)
function drupal_get_path() sur api.drupal.org
variable_get($name, $default = NULL)
function variable_get() sur api.drupal.org

$theme_path = drupal_get_path('theme', variable_get('theme_default', NULL));
print $theme_path;

// affichera :
sites/all/themes/mon-theme/mon-soustheme

Récupérer les informations de l’utilisateur courant

Utilisation de la global $user et de la fonction user_load() de Drupal
global $user
global $user sur api.drupal.org
user_load($uid, $reset = FALSE)
function user_load() sur api.drupal.org

global $user
$user_fields = user_load($user->uid);
print $user_fields->field_prenom[LANGUAGE_NONE]['0']['value'];

// affichera :
Pierre

Ajouter / Modifier le fil d’ariane

Utilisation de la fonction drupal_set_breadcrumb() de Drupal
drupal_set_breadcrumb($breadcrumb = NULL)
global $user sur api.drupal.org

global $user
// Build Breadcrumbs
$breadcrumb = array();
$breadcrumb[] = l(t('Accueil'), '');
$breadcrumb[] = l(t('Mon profil'), '/user/' . $user->uid);
$breadcrumb[] = $user->name;
// Set Breadcrumbs
drupal_set_breadcrumb($breadcrumb)

// affichera :
Accueil >> Mon profil >> Pierre ALBERT

Transformer un string pour l’utiliser comme une class/Id CSS

Utilisation de la fonction drupal_html_id() de Drupal
drupal_html_id($id)
function drupal_html_id() sur api.drupal.org

$string = 'Classe / Numéro 6 & 9';
print drupal_html_id($string);

// affichera :
classe-numro-6-9

Récupérer les paramètres dans l’url

Utilisation de la fonction arg() de Drupal
arg($index = NULL, $path = NULL)
function arg() sur api.drupal.org

Prenons l'url ci-dessous :
htt://wwww.mon-site.fr/user/pierre
print arg(1, request_path());
print arg(1);

// affichera :
pierre
15

Récupérer le title de la page

Utilisation de la fonction drupal_get_title() de Drupal
drupal_get_title(
function drupal_get_title() sur api.drupal.org


print drupal_get_title();

Définir le title de la page

Utilisation de la fonction drupal_set_title() de Drupal
drupal_set_title($title = NULL, $output = CHECK_PLAIN)
function drupal_set_title() sur api.drupal.org


$title = drupal_get_title().' sur mon site de vente en ligne.';
drupal_set_title($title);

Faire une redirection

Utilisation de la fonction drupal_goto() de Drupal
drupal_goto($path =  », array $options = array(), $http_response_code = 302)
function drupal_goto() sur api.drupal.org

//redirection simple
drupal_goto('https://drupal.org/');
//redirection de type 301
drupal_goto('http://www.mon-site.fr/new-url', 301);
//redirection avec paramètres get
$options = array(
    'query' => array(
        'id' =>15,
        'sales'=> 1
    ), 'fragment' => 'mon-ancre',
);
drupal_goto('product', $options);
// le dernier drupal_goto redirigera vers:
http://www.mon-site.fr/product?id=15&sales=1#mon-ancre
Guide de survie sous Drupal pour développeur front end
4.5 (2 votes)

A propos de Christophe Natolot

Directeur Artistique Digital à Canal-web. Membre de l'équipe depuis 2011, Christophe s'attache (entre autres choses) à une problématique centrale : améliorer l'ergonomie et l'expérience utilisateur des plateformes sur lesquelles il intervient.

Laissez un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Time limit exceeded. Please complete the captcha once again.