класс тела друпал - PullRequest
       9

класс тела друпал

0 голосов
/ 29 апреля 2010

версия drupal - 6. просто хочу узнать, откуда эти $ body_classes формы.

Я знал, что в template_preprocess_page есть переменная body_classes.

но моя проблема в том, что не все body_classes взяты со страницы предварительной обработки.

например:

У меня есть термин «развлечения и достопримечательности», затем в моем page.tpl.php есть класс «страница деятельности и достопримечательности» в моем теге. похоже, что модуль таксономии генерирует класс body_class, но я мог бы найти его после поискового кода источника модуля таксономии.

1 Ответ

2 голосов
/ 29 апреля 2010

Модуль (такой как таксономия) обычно не переопределяет переменные шаблона страницы. Хотя это может быть сделано путем предоставления пользовательских функций предварительной обработки в hook_theme_registry_alter (). (См., Например, контекстный модуль )

Класс "page-активность-и-аттракционы", скорее всего, происходит от template_preprocess_page () в include / theme.inc в строке 1894

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

Это добавляет класс тела для первой части пути друпала.
Например, путь «узел / 1» будет иметь класс тела «страница-узел», а путь «таксономия / термин / 1» будет иметь класс тела «страница-таксономия».

Если у вас есть путь "виды деятельности и аттракционы" (может быть, на странице просмотра вида?), То вы получите класс тела "страницы-виды деятельности и аттракционы".

Примечание: при этом используется внутренний путь Drupal, а не псевдонимы URL. Псевдоним «content / mypage» может быть внутренне «node / 12», поэтому класс body будет «page-node», а не «page-content».

...