0

あるサーバーでは機能するが、他のサーバーでは機能しないコードがあります。基本的に、URL がディスカッション フォーラムの場合に使用するテンプレート ファイルを作成しましたが、ページが見つからないと表示されます。

    /* 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'; 
}

のディスカッション フォーラムの代わりに page-not-found を指定した場合$querystring[0]=='discussion-forum'。ページを正しく表示します。ここで何が起こっているのかわからない。他のサーバーでは問題なく動作しています。

4

1 に答える 1

0

カスタム tpl を追加するには、通常、前処理ノードにテーマの提案を追加します。

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

だからあなたのものはあるべきです

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

これらのいくつかはバージョン間で変更されるため、使用している drupal のバージョンを特定すると役立ちます。

于 2012-05-30T16:36:13.570 に答える