Drupal 7
-
-
Le backoffice de drupal est réputé pour être austère, même si cela s'est amélioré depuis les dernières version, ça n'est pas complètement faux ! Mais via quelques modules et thème il est possible d'améliorer grandement cette expérience. Vous trouverez ci-dessous quelques modules que je conseille dans cet objectifs. N'hésitez-pas à ajouter les votre.
-
(et oui des fois on doit retourner sous drupal 7)
Voici comment créer un champ calculé pour un type d'entité (ici Node) qui sera accessible comme n'importe quel champ dans views.
Dans mon_module.module :
-
Mise Ă jour du 29 mars 2018 :
Patchez votre site
Si vous n'avez pas encore patché / mis à jour votre site, faite le ! Téléchargement des nouvelles versions ou des patchs à cette adresse : https://www.drupal.org/sa-core-2018-002.
Si vous utilisez composer, la commande pour mettre Ă jour le core est :
-
Voici comment créer une table dans une base de donnée autre que celle par défaut.
Code Ă mettre dans votre MODULE.install
-
Flag est un module drupal 7 et 8 permettant de « Marquer » du contenu.
Pour avoir une idée simple de ce que cela veut dire, on peut penser au « j'aime » de facebook. Si un utilisateur clique sur le « J'aime » en dessous d'une photo, alors il la flag.
-
Un besoin classique sur un site avec gestion de membre est d'utiliser l'email comme identifiant. De base drupal utiliser la notion de "pseudo" et demande un email en plus.
Si l'on souhaite n'utiliser que l'email et supprimer complètement la notion de pseudo, on peut utiliser le module "Email Registration".
-
Un peu d'auto-promotion pour commencer cette année 2017, je vais vous parler d'un de mes petits modules : CKEditor Responsive Plugin.
Ce module comme son nom l'indique est un plug-in pour CKEditor, qui permet d'ajouter des zones responsives dans une textarea afin de remplacer les tableaux.
-
Avec un contenu personnalisé dans drupal, on peut rapidement se retrouver avec des dizaines et des dizaines de champs dans le formulaire de création de contenu. Field Group est un module drupal 7 et 8 qui permet de les réorganiser, via l'interface d'administration en "groupes", qui peuvent être au choix, des fieldset, des onglets, des acordéons...
-
Quand on fait des modifications sur un site Drupal on doit parfois récupérer une base de production afin d'avoir toute la configuration ainsi que les contenus à jour.
Ensuite généralement on désactive le cache, active le module devel...
-
$role = new stdClass(); $role->name = 'Label du rĂ´le'; user_role_save($role);
-
Mon premier module drupal officiellement publié sur drupal.org !
Il s'agit du module CKEditor Responsive Plugin, qui comme son nom l'indique est un plugin pour CKEditor qui permet d'insérer des zones responsives dans une zone WYSIWYG.
-
$view = views_get_view_result($view_name,$display_mode,$view_args); $nb_result = count($view);
-
Dans views quand l'on veut avoir un champ personnalisé un peu tiré par les cheveux, on peut y aller comme un porc en utilisant le hook_views_pre_render ou alors on peut definir un custom field.
Première étape, implémenter le HOOK_views_data() afin de définir le champ :
-
Comment utiliser count dans un db_select avec Drupal ?
Dans l'exemple ci-dessous, on détermine le nombre de nodes de type "page" publiées.
-
Quand l'on fait des jointures on veut parfois récupérer les enregistrements dont un champ n'est pas renseigné ou au contraire que ceux qui le sont.
Pour cela en SQL on utilise le "IS NULL" ou "IS NOT NULL".
-
J'ai mis sur github un scaffolder de site drupal 7.
En une commande, cela télécharge la dernière version de Drupal 7 ainsi qu'une liste de module (qualifié subjectivement par moi-même comme indispensables).
L'ensemble du core et des modules sont gérés par composer, le gestionnaire de dépendances PHP.
-
Parfois vous pouvez vous retrouver avec un problème d'intégrité de données qui entraîne l'impossibilité de supprimer un champ, voici comment faire avec Drush, dans un terminal donc :
-
Le script suivant permet de créer un nouveau vocabulaire et de lui affecter des termes en concervant l'ordre défini dans le tableau.
Il est Ă utiliser dans un HOOK_install ou un HOOK_update_X par exemple.
-
Pour faire du ménage sur un site et supprimer tous les contenus de test, on peut biensûr le faire à la main, ou utiliser un script.
Celui qui suit fonctionne à la fois pour les types de contenu mais aussi pour les entités custom.
-
Via la fonction drupal_get_form il est possible de passer des variables Ă notre formulaire custom.
-
ECK (Entity Construction Kit) est un module qui permet de créer facilement vos types d'entités via l'interface d'administration de Drupal.
-
Afficher un block créé via l'administration
$identifiant = 1; //c'est l'identifiant du bloc visible dans l'url lors de sa modification $block = block_load('block', $identifiant); $monBlock = _block_get_renderable_array(_block_render_blocks(array($block))); //Code
-
Les #states drupal permettent d'ajouter facilement une couche javascript sur nos formulaires, pour par exemple afficher un champ en fonction d'un autre...
Ces exemples marchent sur les version drupal 7, 8, 9 et 10.
-
Chargement d'une entité :
-
Dans une fonction :