Configuration de la page de profil Drupal
Champs du profil
Notre contenu de profil reste quasiment vide. Ajoutons les champs d’information principaux, que j’appellerai les "Champs du profil". Cette étape demande une certaine réflexion pour identifier les champs nécessaires. Quelques exemples courants : à propos de moi, sexe, hobbies, travail. Pour définir des champs supplémentaires, il faut utiliser le module Profile2. En général, je regroupe tous les champs dans un fieldset. Vous pouvez ajouter des groupes de champs.
Développement de modules pour Drupal 7
Dans cette section du tutoriel, je vais montrer que Drupal n'est pas seulement un CMS. Nous examinerons de quoi sont composés les modules Drupal, et nous créerons également quelques-uns de nos propres modules.
Drupal 7 - Travail avec la base de données via PHP PDO
Avec la transition vers Drupal 7, nous passons à une nouvelle couche d'abstraction de base de données de Drupal, basée sur PDO. PDO est utilisé depuis longtemps dans le framework Zend ainsi que dans de nombreux autres frameworks PHP. Tout allait bien avec Drupal 6 en écrivant des requêtes SQL, alors pourquoi changer ?
Commençons par comprendre ce qu’est PDO.
Travail avec la base de données dans Drupal 7 - leçon 1 - API de base de données Drupal (db api)
Si vous avez écrit des modules pour la version 6 de Drupal, la transition vers la nouvelle API base de données de Drupal 7 ne sera pas difficile pour vous. La nouvelle API DB repose sur l’extension PHP PDO, ce qui lui permet de fonctionner avec différentes bases de données comme MySQL, PostgreSQL, MSSQL, et possiblement Oracle. Concernant la facilité, il est difficile de se prononcer ; il faut s’habituer à la nouvelle syntaxe, car écrire des requêtes SQL directement est souvent plus naturel.
Voici un extrait de la documentation officielle :
Travail avec la base de données dans Drupal 7 - leçon 2 - Configuration de la base de données
Le principal moyen de définir la connexion à la base de données est le tableau $databases dans settings.php. Comme son nom l’indique, $databases permet de définir plusieurs connexions à des bases de données. Il supporte également la définition de plusieurs cibles. La connexion n’est pas ouverte (l’objet connexion n’est pas créé) tant qu’un morceau de code n’a pas effectué une requête à la base pour la première fois.
Travail avec la base de données dans Drupal 7 - leçon 3 - Requêtes statiques (SELECT)
La forme la plus générale d'une requête dans Drupal est la requête statique. Une requête statique sera transmise à la base de données telle quelle. Seule la requête de sélection (select) peut être statique.
Il ne faut utiliser les requêtes statiques que pour des requêtes très simples. Vous devriez utiliser des requêtes dynamiques si vous devez écrire une requête complexe, créée dynamiquement ou modifiée après exécution.
Une manière simple d’exécuter une requête statique est via la méthode query :
Travail avec la base de données dans Drupal 7 - leçon 5 - Extenders (Extensions)
Les requêtes de sélection supportent les extensions (extenders). Une extension permet d’ajouter des fonctionnalités à une requête de sélection lors de son exécution. Cette fonctionnalité peut être une méthode supplémentaire ou modifier le comportement d’une méthode existante.
Pour cela, des patterns de programmation orientée objet sont utilisés ; les extensions implémentent le Decorator Pattern. Elles ajoutent des responsabilités supplémentaires à un objet dynamique en fournissant une sous-classe alternative flexible pour la méthode étendue.
Travail avec la base de données dans Drupal 7 - leçon 4 - Requêtes dynamiques (SELECT)
Nous sommes probablement arrivés à la partie la plus intéressante de l'API Database de Drupal : les requêtes dynamiques. Ces requêtes sont dites dynamiques car Drupal génère dynamiquement la chaîne de la requête. Toutes les requêtes d'insertion, mise à jour, suppression ou fusion peuvent être dynamiques. Les requêtes de sélection peuvent être dynamiques ou statiques. Toutefois, il est recommandé d'utiliser des requêtes dynamiques même pour la sélection.
Travail avec la base de données dans Drupal 7 - leçon 6 - Modification dynamique de requête (hook_query_alter)
Une caractéristique importante des requêtes dynamiques de sélection est la possibilité pour d’autres modules de modifier ces requêtes à la volée. Cela permet à ces modules d’insérer leurs propres instructions dans la requête, influençant ainsi son comportement ou appliquant des modifications pendant l’exécution, par exemple pour gérer les droits d’accès aux nœuds. Trois composants interviennent dans la modification dynamique des requêtes : les tags, les méta-données et le hook hook_query_alter().
Travail avec la base de données dans Drupal 7 - leçon 7 - Traitement des résultats de requête (fetch)
Une requête de sélection retournera toujours un résultat contenant zéro ou plusieurs enregistrements. Il existe plusieurs façons de traiter les données du résultat que vous pouvez utiliser selon vos besoins.
Le plus souvent, les résultats sont utilisés dans une boucle foreach().