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

当我在$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 回答