2011-08-04 3 views
1

간단히하기 위해 기본 메뉴의 모든 링크에 '활성'클래스를 추가하려고한다고 가정 해 봅시다.앨리어싱 된 페이지의 theme_link

아래 코드는 앨리어스가 적용되지 않은 페이지에서 작동합니다. 그러나 별칭이있는 노드를 실행하면 활성 클래스가 적용되지 않습니다.

코드가 실행되고 있는지 확인했습니다.

URL 별칭이있는 노드를 볼 때 주 메뉴 링크에 클래스를 추가하는 방법에 대한 의견이 있으십니까?

function mytheme_links__system_main_menu(array $variables) { 

    foreach ($variables['links'] as $key => $link) { 
    $variables[$key]['attributes']['class'][] = 'active'; 
    } 

    return theme_links($variables); 
} 
+0

이'template.php' 파일에서 해당 코드? 또는 모듈에'hook_theme'을 통해 등록 했습니까? – nmc

+0

예,이 코드는 제 template.php 파일에 있습니다. – Coder1

+1

hmmn, 문제를 복제 할 수 없습니다. for 루프 내에서 코드를 '$ variables ['links '] ['attributes '] ['class '] [] ='pizza ';로 변경해야만 클래스를 적용 할 수 있습니다. 메인 메뉴의 모든 링크. – nmc

답변

0

메인 메뉴 링크를 사용하는 경우 코드를 직접 작성하는 대신 컨텍스트 모듈을 사용하는 것이 좋습니다. 테스트의 시간과 두통을 없애고 사용자와 클라이언트가 클래스를 하드 코딩하는 대신 사용자 인터페이스를 통해 활성 링크를 편집 할 수있게합니다.

를 체크 아웃 : http://drupal.org/project/context

+1

제안 해 주셔서 감사합니다. 그래도 내 코드가 제대로 작동하려면 무엇이 필요한지 이해하고 싶었습니다. – Coder1

관련 문제