2010-04-28 3 views
0

drupal 버전은 6. $ body_classes가 어디서 오는 지 알고 싶습니다.drupal body class

template_preprocess_page에서 'body_classes'라는 변수가 있습니다.

내 문제는, 모든 body_classes 전처리 페이지에서 왔습니다. 예를 들어

:

나는 '활동과 관광 명소'라는 용어는 다음 내 page.tpl.php에, 클래스 '페이지-활동과 관광 명소'내 태그가 있습니다. taxonomy 모듈이 body_class를 생성하는 것처럼 보이지만 taxonomy 모듈의 검색 소스 코드 다음에 찾을 수 있습니다.

답변

2

모듈 (예 : 택 소노 미)은 일반적으로 페이지 템플릿 변수를 무시하지 않습니다. hook_theme_registry_alter()에서 사용자 정의 사전 처리 함수를 제공하여 수행 할 수 있습니다. 1894

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

이는 몸을 추가

클래스 '페이지 활동 및-명소'가 가장 가능성 (template_preprocess_page에서 오는)에가/theme.inc 라인에 포함 (예를 들어 context module 참조) Drupal 경로의 첫 번째 부분에 대한 클래스입니다.
예를 들어 "node/1"경로에는 본문 클래스 "page-node"가 있고 "taxonomy/term/1"경로에는 본문 클래스 "page-taxonomy"가 있습니다.

"활동 - 및 - 어트랙션"(보기의 페이지 표시에서?) 경로가있는 경우 "page-activities-and-attractions"본문 클래스가 표시됩니다.

참고 : 여기에는 URL 별칭이 아닌 내부 Drupal 경로가 사용됩니다. 별명 "content/mypage"는 실제로 "노드/12"일 수 있으므로 본문 클래스는 "page-content"가 아닌 "page-node"가됩니다.

관련 문제