Redéfinir une fonction autre que theme_

Catégories:

Bonjour à tous,

je continu mon aprentissage intensif de Drupal et j’ai déjà réussi à comprendre quelques fonctionnalités puissantes comme phptemplate.

Donc les fonctions dans les modules qui commencent par theme_, on peut les redéclarer dans un fichier template.php en remplacant theme_ par phptemplate_ et ca marche parfaitement.

Mais comment redéclarer des fonctions qui ne sont pas theme_. Car certaines d’entre elles dans les modules que j’utilise définissent un peu l’affichage et j’ai donc besoin de les modifier pour personnaliser la chose comme je veux. Je sais qu’il n’est pas conseillé de modifier directement dans le module car j’ai une installation de drupal multisite donc c’est pas top, et plus, mes modifications passeraient à la trappe à la moindre mise à jour du module…

Donc comment modifier une fonction qui n’est pas theme_ ?

Pour l’exemple la fonction à laquelle je pense est la fonction : _cart_review_table du module de ecommerce ubercart. Cette fonction définit l’affichage du panier et j’ai besoin d’ajouter une classe à la première colonne pour lui enlever une bordure…

Merci d’avance

zmove

#

Ca n’est pas possible. Il faut essayer de trouver une fonction theme_XX() qui récupère ce que _cart_review_table() renvoie, et d’injecter ta classe en faisant un rechercher/remplacer sur une expression régulière.

Ca n’est pas très élégant, mais je ne vois pas d’autre solution.

Vincent

Formations Drupal pour WEBMASTERS, DESIGNERS et DÉVELOPPEURS.

#

Ok merci,

C’est dommage que toutes les fonctions ne soit pas «ecrasable» comme les fonctions themes, car j’aimais vraiment ce principe.

Merci pour la réponse.

zmove

#

Ouaip, en même temps, tu imagines la «machinerie» qu’il faudrait mettre en place pour qu’à chaque appel de fonction, Drupal détecte si l’utilisateur a défini la sienne ? :)

Vincent

Formations Drupal pour WEBMASTERS, DESIGNERS et DÉVELOPPEURS.

#

boah, ca serait compensé par l’allégement des 100 000 000 de div que drupal et les modules rajoutent alors qu’ils ne servent à rien ^^.

De plus, toutes les fonctions n’ont pas un role d’affichage, c’est dommage que certaines fonctions qui génerent 15 div et 3 tables dégueulasses ne soit pas themable parfois.

#

Hm… En réalité, c’est pas vraiment ça le pb, mais plutôt «c’est dommage que des fonctions qui n’ont pas un rôle d’affichage contiennent du HTML». En principe, il devrait y avoir une stricte séparation de la présentation (thème) et de la logique applicative, ce qui te permettrait de faire à peu près ce que tu veux au niveau de l’affichage.

Paraît que ça sera le cas avec Drupal 6.

Vincent

Formations Drupal pour WEBMASTERS, DESIGNERS et DÉVELOPPEURS.

Syndiquer le contenu