Submitted by alekos on
Bonjour à tous,
Pour ceux qui souhaitent commencer à développer en back-end sur Drupal, voici un tuto pour créer son premier module en PHP/SQL.
http://www.alekos.fr/creer-son-premier-module-drupal/
Les sujets suivants sont abordés :
- l’architecture d’un module codé en PHP
- le fonctionnement des hooks
- la création d’un bloc affichable dans les différentes régions d’un thème
- l’utilisation de SQL sur Drupal avec db_query()
Bonne lecture !
Alexandre (Alekos Paris)
Dans ton .info, inutile d
Permalien Soumis par Mixalis44 le 6 Novembre, 2015 - 09:26
Dans ton .info, inutile d'appeler le .module, drupal le gère.
Dans ton hook_block_info() tu doit mettre un nom machine au block $block['nommachine'] = array ...
C'est limite ton code avec la requete en dur dans ton block view. En sachant tous ce que drupal met à disposition niveau requête.
Pour le système de traduction remplace :
Par
Car toutes les chaines sont considérées comme anglaises, la langue par défault des chaines provenant des fichiers est en anglais et ce n'est pas modifiable.
Et la variable @nb_node permet, en traduction de changer la valeur dans les traduction.
Par exemple
Entre l'anglais et le francais les mots/nombre ne sont pas à la même place dans la phrase.
Bonjour !
Permalien Soumis par alekos le 8 Novembre, 2015 - 04:46
Bonjour !
Je ne savais pas qu'il est inutile de renseigner le .module, mais je pense que la bonne pratique consiste à le faire, je l'ai toujours vu dans le .info. De plus, pour un tuto c'est préférable d'évoquer la règle des fichiers.
Je crois savoir qu'il n'est pas nécessaire de mettre un nom machine si il n'y a qu'un seul block.
Pour le SQL, oui je sais que Drupal propose des outils comme db_select, addExpression, etc... le problème est d'une part que ça ne fonctionne pas toujours lorsque je code des modules contrairement au bon vieux SQL,d'autre part voulant faire un tuto court et clair, il m'a semblé plus approprié d'utiliser db_query().
Pour l'anglais, merci à toi car je n'avais tout simplement pas percuté cette évidence. Je ne veux pas aborder ce point dans le tuto dans un soucis de simplicité, donc je vais modifier le texte.
Cdlt,
Alexandre [Alekos]
Tu ne veras jamais la
Permalien Soumis par Mixalis44 le 9 Novembre, 2015 - 12:10
Tu ne veras jamais la déclaration dans le .info du .module dans les modules drupal. C'est l'api qui le gère, c'est son fonctionnement natif. C'est comme le .install => même gestion.
Le nom machine n'est pas obligatoire mais fortement recommander sinon ton block va avoir un nom du type block-1, block-2, donc en bdd c'est pas tip top et pour les liens contextuels non plus.
Concernant la partie SQL je ne comprend pas trop. Si, par exemple, un db_select() ne marche pas c'est à cause d'une mauvaise utilisation car c'est un "language" bas niveau. c'est juste une couche d'abstraction du SQl ce qui lui permet d'être plus lisible et surtout maintenable.
Pour la partie traduction, c'est un piège à con, et j'en ai passer des heure pour essayé de faire un système de language/traduction propre, mais ce n'est pas possible. Drupal8 corrige ça. Ils ne pensent qu'à eux ces anglais :)