Templates

Bonjour à tous,

Bon je me mets petit à petit à drupal. Je tente de faire un template pour celui-ci car je trouve qu'il bcp de possiblité et une grosse communauté. Cependant j'aimerais avoir un peu d'éclaircissement sur les classes utilisé dans le CSS par drupal car là je perd un peu la boule. Donc si vous une bonne infos la dessus je suis preneur avec plaisir. J'ai beau prendre des templates utilsés crée par d'autre mais il en y en jamais d'identique au point de vue des classes.

J'espère que j'en demande pas trop :-) et que ensuite que je pourrai aider à mon tour ce qui sont dans la même panade que moi.

Voilu

Ne changez rien et continuez comme ça.

Merci d'avance.

Forum : 

La réponse courte est : tu fais ce que tu veux. Je m'explique. Quand drupal affiche une page, il fait appel à la fonction

theme('page', $ouput)

cette fonction va regarder si, pour le theme utilisé, il existe un template 'page' et affichera le contenu de la page suivant le template. Si ce template n'existe pas, alors la fonction va faire appel à la fonction theme_page qui elle affichera le contenu. Concrètement quand tu crées un template 'page' tu redéfinis la fonction theme_page. Donc les classes que tu dois utiliser dans ta feuille de style sont les classes que tu définis toi même dans ton template (vu que ton template sera utilisé à la place de la fonction theme_page, tu n'a pas besoin de savoir qu'elles sont les classes que le fonction theme_page défini).

Le premier argument de la fonction theme correspond au type de contenu à afficher, et le second est le contenu lui même.
theme('node', $output) regardera si il existe un template 'node' ou fera appel à la fonction theme_node
theme('comment', $output) regardera si il existe un template 'comment' ou fera appel à la fonction theme_comment

Chaque fonction theme_* peut être redéfini par un template.
La liste des fonctions qui peuvent être redéfini par un template se trouvent sur la page : [url=http://drupaldocs.org/api/head/group/themeable]http://drupaldocs.org/api...

Donc si tu souhaites redéfinir certaines fonctions par tes propres template, tu as juste à regarder quels sont les variables auxquelles tu dois faire appel dans ton template, et les classes que tu devras utiliser seront tes propres classes. Pour les autres que tu ne souhaite pas redéfinir toi même, tu dois regarder comment sont écrites les fonctions theme_* pour avoir le nom des classes utilisées.

C'est là où l'on voit que le système de thème de drupal est à la fois flexible et puissant, car à chaque fois que l'on fait appel à une fonction theme_*, celle ci peut être redéfini dans un thème par l'intermédiaire des templates.

J'espère avoir été clair.