Voilà, voilà... Fin de l'aventure...

 

Fermeture de kolossaldrupal.org dans...


Bonjour tout le monde,

Drupal évolue, les versions changent et Kolossaldrupal.org était essentiellement consacré à la version 6 de Drupal.

Autant dire que les infos présentées ici commencent à dater...

Faute de temps, je ne peux plus garder le site Kolossaldrupal à jour...

Je vous aurais bien proposé de reprendre le flambeau mais... c'est tellement simple de nos jours de se faire son propre site à soi...Pourquoi s'embêter alors ? :-)

Ce site restera donc en l'état, tel qu'il était en 2011...

Ah la la ! Cela ne nous rajeunit pas !

Manuel Vila - Avril 2016

Écrire des fichiers .info

Traduction de la page http://drupal.org/node/231036
publiée le 1 Décembre 2010 sur Drupal.org


Vue d'ensemble

Drupal utilise des fichiers .info pour mémoriser les metadonnées des modules et des thèmes.

Pour les modules, le fichier .info est utilisé pour :

  • mettre en forme les données sur les pages d'administration de l'interface graphique utilisateur de Drupal
  • fournir des critères pour contrôler l'activation et la désactivation de modules
  • informer Drupal de l'existence d'un module
  • l'administration générale dans d'autres contextes

La présence du fichier .info est obligatoire pour que le système détecte la présence d'un module

; $Id$
name = "module Exemple"
description = "Voici un exemple de module."
core = 6.x
package = Views
dependencies[] = views
dependencies[] = panels

Ce fichier .info doit porter le même nom que le fichier .module et se trouver dans le même dossier. Par exemple, si votre module s'appelle example.module, votre fichier .info devra s'appeler example.info.

Ce fichier répond à la norme des fichiers .ini qui dispose les éléments en paires clé/valeur séparés par un signe égal. Vous pouvez placer les valeurs entre guillemets, elles peuvent alors contenir des retours à la ligne.

description = "Fred's crazy, crazy module; use with care!"

Les fichiers .info peuvent contenir des commentaires. Le caractère marquant le début d'un commentaire est le point-virgule. Il est d'usage de placer l'ID CVS au début d'un fichier .info, marqué comme commentaire :

; $Id$

Le fichier .info peut contenir les champs suivants :

name (obligatoire)

Le nom de votre module qui sera affiché. Il doit respecter les normes de mise en majuscules de Drupal 6 : seule la première lettre du premier mot doit être en majuscule («Exemple module», pas «Exemple Module» ni «exemple module»). Les espaces sont autorisées puisque le nom est surtout utilisé pour l'affichage.

name = "Forum"

description (obligatoire)

Une courte description, de préférence sur une seule ligne, qui dira, sur la page d'administration des modules, ce que fait le module. Souvenez-vous que des descriptions trop longues peuvent causer des difficultés d'utilisation de cette page, soyez donc le plus concis possible. Ce champ est limité à 255 caractères.

description = "Permet la mise en place de discussions générales sur beaucoup, beaucoup de sujets. Et plus encore".

core (obligatoire)

La version de Drupal pour laquelle votre module est destiné. Pour Drupal 6 ce sera 6.x, pour Drupal 7 ce sera 7.x, etc. Les modules ne doivent pas spécifier la branche de Drupal. 6.x est correct, 6.2 ne l'est pas.

core = 6.x

dependencies (facultatif)

Un tableau des modules requis pour le fonctionnement du vôtre. Si ces modules ne sont pas présents, le vôtre ne pourra être activé. Si ces modules sont présents mais pas activés, l'administrateur en sera averti grâce à une liste des modules requis et pourra les activer, ou abandonner toute l'opération.

La valeur qui indique chaque dépendance doit être le nom du module (sans l'extension .module) et doit être écrite en minuscules, comme dans les exemples ci-dessous. Les espaces ne sont pas autorisées.

dependencies[] = taxonomy
dependencies[] = comment
package (facultatif)

Si le module est livré avec d'autre modules, ou est destiné à fonctionner exclusivement avec d'autres modules existant, indiquez le nom du groupe (package) ici.

Si vous n'indiquez rien, le module sera listé dans le groupe Autres.

En général, ce champ ne devrait être utilisé que par des packages multi-modules, ou par des modules étendant ces packages, comme CCK, Views, E-commerce, Organic Groups et ainsi de suite. Tous les autres modules ne devraient pas renseigner ce champ.

À titre d'exemple, quatre modules ou plus qui dépendent les uns des autres sont des bons candidats pour un package. Mais pas vraiment s'il y en a moins.

Si vous en indiquez un package, son nom sera utilisé pour grouper les modules dans la page d'administration des modules; la chaîne package servira d'en-tête pour le groupe et devra donc être homogène (en orthographe et casse) dans tous les fichiers .info où elle apparaîtra. Elle ne devra pas utiliser de ponctuation et devra se conformer aux normes de mise en majuscules de Drupal, comme indiqué précédemment.

L'exception à cette règle est le package « Development » qui doit être utilisé par tout module outil de développement (Devel, Coder, Module Builder...).

package = Views

Voici quelques suggestions de groupes possibles :

  • Audio
  • Bot
  • CCK
  • Chat
  • E-commerce
  • Event
  • Feed Parser
  • Organic Groups
  • Performance and scalability
  • Station
  • Video
  • Views
  • Voting (s'il utilise/a besoin de VotingAPI)
php (facultatif)

Depuis la version 6.x, les modules et les thèmes doivent spécifier la version PHP minimum requise pour leur fonctionnement. Cela se fait par l'ajout d'un ligne comme celle-ci dans le fichier .info :

php = 5.1

Cette ligne indique que le module ou le thème ne fonctionneront pas avec une version de PHP antérieure à la 5.1. C'est utile si le module fait appel à des caractéristiques ajoutées dans les dernières versions de PHP (manipulation de XML améliorée, itération d'objets, JSON, etc).

Si aucune version n'est indiquée, on suppose qu'on utilise la même version que celle demandée par le core de Drupal.

Les modules ne devraient pas indiquer de version de PHP à moins qu'ils n'aient besoin d'une version plus récente que celle demandée par le core. Reportez-vous au manuel de PHP pour d'autres informations sur les chaînes de version PHP.

version (déconseillé)

La chaîne version sera automatiquement ajoutée par Drupal.org quand une release est créée et un tarball empaqueté. Cependant, si votre module n'est pas hébergé par Drupal.org, vous pouvez donner n'importe quelle valeur à cette clé, du moment qu'elle vous semble parlante.

Les utilisateurs se servant directement auprès du CVS pour leurs modules n'auront pas de chaîne de version car les fichiers .info enregistrés dans le CVS ne déclarent pas de version. Les utilisateurs sont encouragés à utiliser le module CVS deploy afin de fournir aux modules checked out directement depuis le CVS des chaînes de version exactes pour les pages d'administration de modules.

Comme le core de Drupal utilise une méthode de packaging légèrement différente que celles des modules tiers, les modules du core ont une ligne de version prédéclarée. C'est une exception à la règle générale, pas un modèle à suivre pour les modules tiers.

project (déconseillé, uniquement à l'usage du packaging)

Les développeurs du module n'utilisent pas du tout cette clé. Le script de packaging de drupal.org placera automatiquement une chaîne à cet endroit pour identifier le projet d'où vient le module. C'était initialement utilisé pour le module Update status, les installations de Drupal pouvaient ainsi surveiller les versions de packages installés et avertir les administrateurs quand de nouvelles versions étaient disponibles.

Pour plus d'information sur le fichier .info, voir la documentation drupal_parse_info_file().

Dépannage

J'ai ajouté la ligne core = 6.x mais la pages des modules, mon module me dit « Cette version est incompatible avec la version 6.x du core Drupal ». Que faire ?

Faites attention au fait que le format de dépendances a été modifié entre les versions 5.x et 6.x de Drupal.

Incorrect :

name = Example
description = Example description
dependencies = foo bar   ; 5.x dependency format.
core = 6.x

Correct :

name = Example
description = Example description
dependencies[] = foo     ; Note the [], and that each of the dependencies is on its own line.
dependencies[] = bar
core = 6.x

 

Description et accents

Une remarque pour tous les développeurs non anglophones... Si vous devez utiliser des accents, utilisez les caractères ASCII. C'est la seule façon d'éviter de tronquer ce champ dans la base de données et d'avoir quand même des accents dans la description. On ne peut pas utiliser utf8_encode à cet endroit.

Voir également