Blog
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 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 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 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()
.