2010-04-28 4 views
0

La version de drupal est 6. il suffit de savoir où se trouvent ces $ body_classes.drupal body class

Je savais dans template_preprocess_page, il y a une variable appelée 'body_classes'.

mais mon problème est, tous les body_classes sont venus de la page de pré-traitement.

par exemple:

J'ai un terme nommé « activités et attractions », puis dans mon page.tpl.php, il y a une « page activités et attractions »-classe dans mon tag. On dirait que le module de taxonomie génère un body_class, mais je pourrais le trouver après le code de recherche de source du module de taxonomie.

Répondre

2

Un module (comme la taxonomie) généralement ne pas surcharger la page variables de modèle. Bien que cela puisse être fait en fournissant des fonctions de prétraitement personnalisées dans hook_theme_registry_alter(). (Voir la context module par exemple)

La classe 'page-activités-et-attractions' est à venir le plus probable de template_preprocess_page() includes/theme.inc en ligne 1894

$body_classes[] = preg_replace('![^abcdefghijklmnopqrstuvwxyz0-9-_]+!s', '', 'page-'. form_clean_id(drupal_strtolower(arg(0)))); 

Cela ajoute un corps classe pour la première partie du chemin drupal.
Par exemple, le chemin « nœud/1 » aurait une « page-noeud » classe du corps et le chemin « taxonomie/terme/1 » aurait une classe de corps « en page taxonomie ».

Si vous avez un chemin « activités-et-attractions » (peut-être de l'affichage de la page d'une vue?), Vous obtiendrez une classe de corps « page-activités-et-attractions ».

Note: Ceci utilise le chemin Drupal interne ne Alias ​​url. L'alias "content/mypage" peut vraiment être "node/12" en interne donc la classe body sera "page-node" et non pas "page-content".

Questions connexes