2012-05-28 1 views
0

한 서버에서는 작동하지만 다른 서버에서는 작동하지 않는 코드가 있습니다. 기본적으로 우리는 URL이 discussion_forum이지만 페이지를 찾을 수 없다는 것을 나타내는 템플릿 파일을 작성했습니다.drupal template.php tpl 파일을 사용하지 않음

/* discussion forum templates */ 
    $querystring=$_GET['q']; 
     echo $querystring; // THIS PRINTS page-not-found 
    $querystring=explode('&',$_GET['q']);  

if(!isset ($vars['node']) && $querystring[0]=='discussion-forum'){ 
    $vars['template_files'] = array(); 
    $vars['template_files'][] = 'page-discussion_forum'; 
} 
if (!isset ($vars['node']) && $querystring[0]=='discussion_forum_answer') { 
    $_SESSION['question_id']=$querystring[1]; 
    $vars['template_files'] = array(); 
    $vars['template_files'][] = 'page-discussion_forum_answer'; 
    } 

if(!isset ($vars['node']) && $querystring[0]=='discussion_forum_search'){ 
    $vars['template_files'] = array(); 
    $vars['template_files'][] = 'page-discussion_forum_search'; 
} 

나는 $querystring[0]=='discussion-forum'에서 토론 - 포럼 대신에 페이지하지-발견 줄 때. 페이지를 제대로 보여줍니다. 여기서 무슨 일이 일어나는 지 모릅니다. 다른 서버에서 잘 작동합니다.

+0

여기에 template.php를 추가 할 수 있습니까? preprocess_node, preprocess_page 또는 다른 것입니까? 그냥 팁, 당신은 질문 쿼리 문자열을 얻는 대신 arg() 함수를 사용할 수 있습니다. –

+0

내부에서 사용 _preprocess_page (& $ vars) {.... 역시 arg로 시도했습니다. 심지어 작동하지 않습니다. – antnewbee

답변

0

사용자 정의 tpl을 추가하려면 대개 전 처리 노드에 테마 제안을 추가하십시오.

$vars['theme_hook_suggestions'][] = 'node____'.$vars['view_mode']; 

그래서 당신은 당신이이 일의 일부 버전간에 변경 때문에 당신이 사용하는 드루팔의 버전을 식별하는 경우 도움이 될

function THEME_preprocess_node(&$vars, $hook) 
    $vars['theme_hook_suggestions'][] = 'page-discussion_forum_search'; 
} 

해야한다.

관련 문제