2009-08-11 3 views
2

"News"의 컨텐츠 유형과 News 노드 목록을 메뉴 항목으로 표시하는보기가 있습니다.보기의 메뉴 항목 아래에 표시 할 노드 가져 오기

뉴스 노드를 볼 때 메뉴 트리에서 뉴스보기를 강조 표시 할 수있는 방법이 있습니까?

나는 이것이 작동하지 않는 이유를 알고 있습니다. 왜 이런 일이 해킹 될지 모릅니다.하지만 "기본"메뉴 항목이나 노드가 표시 될 수있는 방법이 있어야합니다. . 내 위의 의견에 대한 답을 가정

+0

그래서 (전형적인 드루팔 용어에 넣어려고)가 제대로 질문을 이해하고, 특정 유형의 노드 (보기)를 볼 때 특정 블록 (뉴스보기 블록)에 특수 스타일 클래스를 적용하려고합니까? – anschauung

답변

1

실제로 기본적으로 컨텐츠 유형별로 기본 메뉴 항목을 지정할 수 있도록 위의 template.php 대답을 수행하는 모듈을 찾았습니다.

Menu Trails이라고합니다. 다음의 프로젝트 페이지에서 발췌 한 것입니다 :

  • 메뉴 트레일은 현재 메뉴 흔적을 유지/보조 링크를 구현 드루팔의 메뉴 시스템에 대한 몇 가지 상식적인 유용성이

    ...

    을 추가합니다 "활성" 강조 표시됩니다. template.php에 들어갈 준비가 된 편리한 스 니펫이 포함되어 있습니다.
  • 이 모듈은 노드 (유형 또는 분류법에 따라)를 널리 알려진 메뉴 항목의 "아래"로 분류하는 수단을 제공합니다. 이러한 노드는 메뉴 트리에 추가되지 않고 (메뉴 관리 시스템 제정신을 유지함) 위의 기능을 트리거하여 사용자가 볼 때 탐색 상태를 유지합니다.
  • 6.0의 새로운 기능 : 메뉴 트레일은 노드에 대한 탐색 경로를 설정하여 트레일과 동기화되도록 유지할 수 있습니다.
  • 6.0의 새로운 기능 : 메뉴 트레일은 이제 유기 그룹 인식이므로 노드가 속한 첫 번째 그룹 노드의 "아래"로 떨어지도록 노드를 지정할 수 있습니다.
  • 6.0의 새로운 기능 : 토큰이 pathauto (및 기타 토큰 인식 모듈)에 노출되어 메뉴 경로가 자동 경로 별칭 작성에 사용될 수 있습니다. Menutrails이 작동하지 않는 경우
0

은 "예"이것은 당신이 당신의 테마 폴더

최종 솔루션은 사용자의 설정에 따라 달라집니다

하지만, 일반적으로 대부분의 template.php 파일을 통해 달성 할 수있는 무언가이다 phptemplate_preprocess_page

// Simplified, and untested in this form 
    function phptemplate_preprocess_page(&$vars) {       
     if (isset($vars['node'])) { // if we're looking at a node 
     $body_classes[] = (($vars['node']->type == 'News') || (arg(0) == 'News')) ? 'news_page' : '';    // Page is news page 
     } 
     else if (arg(0) == 'taxonomy') { 
     // ... Special handling for news taxonomy pages, if you want 
     } else { 
     $body_classes[] = "page-type-" . arg(0); 
     } 
     $body_classes = array_filter($body_classes); // Out! Out! Damn empty elements! 
     $vars['body_classes'] = implode(' ', $body_classes); 
    } 

이는 당신과 함께 일할 수있는 body.news_page 스타일 클래스를 줄 것이다 내부 작업이 일어날 것입니다, 당신은 당신이 좋아하는 방법을 표시하기 위해 뉴스 메뉴 블록의 스타일이 결합 할 수 있습니다.

0

이 (나를 위해 그것을하지 않았다) 당신과 같이하여 직접 수행 할 수 있습니다

$somenode = menu_get_item('node/5');

menu_set_item($somenode);

0

나는 당신이 발견 hook_nodeapi()에서 이와 같이하면 좀더 제어 할 수 있습니다.

// this code worked for me 
$somenode = menu_get_item(); 
$somenode['href'] = 'node/5'; 
menu_set_item(NULL, $somenode); 
당신은 핵심 모듈보다 무거운 것으로 사용자 정의 모듈의 무게를 설정해야 할 수도 있습니다

적어도 1

관련 문제