explication de la fonction theme ()

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.

Existe il a votre connaissanc eune explication de la fonction theme (). Je bloque un peu et pour avancer il me faut absolument comprendre le fonctionnement de cette fonction

Merci d avance

Forum : 

Salut,

Le mieux, c'est de regarder la doc : http://api.drupal.org/api/function/theme/5.

En gros, la fonction theme() est un dispatcher : si ton thème propose sa propre implémentation d'une fonction de thème, alors c'est elle qui sera exécutée, sinon c'est la fonction par défaut.

Par exemple, pour afficher un tableau avec la fonction de thème appropriée, tu écris :

<?php
print theme('table', $header, $rows, $attributes);
?>

Par défaut, la fonction theme() ci-dessus appellera theme_table(). Autrement dit, le code ci-dessus sera équivalent à :

<?php
print theme_table($header, $rows, $attributes);
?>

Mais ton thème peut proposer sa propre implémentation de theme_table (si tu veux afficher les tableaux d'une façon différente de la façon par défaut). Pour ça, en supposant que tu utilises le thème "toto", il faudrait déclarer la fonction suivante dans le fichier template.php du thème toto :

<?php
function toto_table($header, $rows, $attributes = array(), $caption = NULL) {
 
// ici, reprendre le code de la fonction par défaut
  // et l'adapter pour qu'il affiche ce qu'on veut
}
?>

Si la fonction toto_table() existe, elle sera automatiquement détectée et utilisée par Drupal à la place de theme_table(). Autrement dit, mon premier bout de code sera équivalent à :

<?php
print toto_table($header, $rows, $attributes);
?>

Conclusion : la fonction theme(), c'est le mécanisme qui te permet de proposer ta propre implémentation de chaque fonction de thème de Drupal (voir la liste sur http://api.drupal.org/api/group/themeable/5).

he be c est se que l on appelle de la réponse

Merci beaucoup tu viens de m ouvrir la voie qu il me fallait pour continuer mon appréhension de ce formidable outil qu est drupal.

A charge de revange ( si c es tun joru dans mes cordes)