我有一个代码可以在一台服务器上运行但在另一台服务器上运行。基本上我们编写了一个模板文件,如果URL是discussion_forum但它显示找不到页面,应该使用该文件。
/* 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'
中使用page-not-found代替讨论论坛时。它正确显示页面。不知道这里发生了什么。它在其他服务器上运行良好。
答案 0 :(得分: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会有所帮助,因为其中一些版本会在版本之间发生变化。