méthodes globales

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Bonjour forum,

Petite question toute simple à priori, mais qui me pose quelques problèmes.

Je crée différentes pages dans le cms drupal, et je code directement ces pages en php.
La plupart de ces pages doivent faire appel à certaines fonctions que je pourrais qualifier de "globales".
Exemple, j'ai 4 pages qui doivent faire appel à une même méthode getValue().

Comment je peux passer ces méthodes en global, pour qu'elles soient accessibles depuis n'importe quelle page ?? Je pensais pouvoir utiliser template.php, mais non, ça ne fonctionne pas... Si je déclare ma fonction dans template.php et ensuite j'essaie de l'appeler via une de mes pages drupal (node) il me dit que la fonction est innexistante..

Je suis sur drupal 5.1. Si vous avez une suggestion je suis preneur.

Merci d'avance !!

Thierry

Forum : 
Version de Drupal : 

C'est encore moi... truc un peu bizarre... je déclare une méthode getValue dans le fichier template.php et tente de l'appeler depuis la page xyz, on me dit que la fonction est indéfinie.

Je rajoute ensuite une méthode du même nom directement dans le code de la page xyz, cette fois on me dit que la méthode a déjà été déclarée...

C'est quoi le truc ? comment je fais pour appeler la méthode située dans template.php ??

Marrant. Il s'agit d'un problème lié à l'ordre d'inclusion des fichiers. Dans un language scripté comme PHP, il est tout à fait possible qu'une fonction ne soit pas définie à un moment de l'exécution du script et la devienne ensuite. Cela prouve que template.php est inclu par Drupal après l'exécution du code PHP de ta page.

Pour définir des fonctions globales, le mieux est probablement de les regrouper dans un module. Le code de tes pages PHP probablement aussi, d'ailleurs...