it-swarm-korea.com

template_preprocess_page ()를 사용하여 노드 유형에 따라 페이지 제목을 숨기는 방법

현재 페이지가 1) 전체 디스플레이의 노드 (티저 모드가 아닌) 인 경우 현재 페이지의 제목 (page.tpl.php으로 인쇄 됨)을 숨기려고합니다. 그리고 2) 노드 유형이 콘서트 또는 bio . 이러한 컨텐츠 유형의 노드 제목을 노드 컨텐츠에 직접 인쇄하므로 page.tpl.php로 인쇄 된 사본을 숨기고 싶습니다. 나는 이것을 page.tpl.php에서 직접 작동시킬 수 없으며, 내 독서는 전처리 및 프로세스 기능을 사용하여 template.php에서 템플릿 로직을 처리하는 것이 가장 좋습니다. 따라서 template_preprocess_page()을 사용하여 현재 페이지 제목 (위의 2 가지 조건)을 숨기려고합니다. 이것은 내 코드입니다.

<?php
    function MYTHEME_preprocess_page(&$variables) {
        if (!empty($variables['node']) && $variables['node']->type == 'concert') {
            hide($variables['title']);
        }
    }
?>

template.php에서 변수를 인쇄하기 위해 노드 유형을 어떻게 테스트합니까?template_preprocess_page() 및 기타 여러 사이트에 대한 설명서 페이지를 읽습니다. 그러나 나는 이것을 작동시키지 못하는 것 같습니다. 노드 유형을 테스트하기 전에 $variables['node']에서 isset()을 (를) 호출해야한다는 제안을 보았지만 작동하지 않았습니다. 나는 명확한 해결책을 어디에도 게시하지 못했고, 나는 재치가 끝났다.

10
diekunstderfuge

Drupal_set_title ()을 사용하여이를 관리 할 수 ​​있습니다.

function mytheme_preprocess_page(&$vars){
    if (isset($vars['node']) && $vars['node']->type == 'news'){
        drupal_set_title('');
    }
}
2
mohit_rocks

If 조건이 맞다고 가정하여 이것을 시도하십시오 :)

 function MYTHEME_preprocess_page(&$variables) {
        if (!empty($variables['node']) && $variables['node']->type == 'concert') {
            unset($variables['title']);
        }
    }
1
junedkazi

올바른 기능은

function mytheme_preprocess_node(&$vars) {
}

대신에

function mytheme_preprocess_page(&$vars) {
}
0
Paolo Marcolli

덜 복잡한 방법은 페이지에 이것을 인쇄하는 것입니다.

<?php hide($title); ?>

그러나 만약 당신이 역동적이기를 원한다면 나는 preprocess_page 다른 사람들이 제안한대로.

0
ninjascorner

mytheme_preprocess_page의 제안은 저에게 효과적이지만 $vars['title_hidden'] = TRUE;

function mytheme_preprocess_page(&$vars) {
  if (isset($vars['node']->type) && $vars['node']->type == 'type') {
    $vars['title_hidden'] = TRUE;
  }
}
0
cigotete

CSS에서 나는 이것을 테마로했다.

/*    Front Page - hide title  */
body.front header h1 {
 position: absolute; 
 left: -999em;    
}

에서 권장 한대로 http://www.alistapart.com/articles/now-you-see-me/

왜? 당신은 여전히 ​​접근성을 위해 스크린 리더에 헤더와 h1을 'visible'시키길 원하기 때문입니다. 단순히 H1의 가치를 없애면 시각 장애인과 시력이 좋지 않은 방문객에게 중요한 정보를 빼앗기고 있습니다.

0
Rick