页面模板没有加载,但是节点模板正在加载
-
02-10-2019 - |
题
系统信息:Drupal 6安装,带有大量模块...太多了。
问题:只有某个内容类型不会正确加载其模板文件。通过视图在这些页面上显示的一些节点将其输入标记。它们是唯一加载的内容。此内容倒入的模板文件是node-event.tpl
目的:加载页面team.tpl.php
模板建议通过通过预处理进行两种方式在template.php中加载
mytheme_preprocess_page(&$vars, $hook)
从 _phptemplate_variables ()
在Drupal 5安装中。
方法1:
if (module_exists('path')) {
$alias = drupal_get_path_alias(str_replace('/edit','',$_GET['q']));
if ($alias != $_GET['q']) {
$template_filename = 'page';
foreach (explode('/', $alias) as $path_part) {
$template_filename = $template_filename . '-' . $path_part;
$vars['template_files'][] = $template_filename;
}
}
}
方法2:
if ($vars['node']->og_groups['0'] || preg_match('/fdl\//',$vars['node']->path) || (preg_match('/og\/manage/',$alias) || preg_match('/og\/invite/',$alias) || preg_match('/og\/users/',$alias)) || (preg_match('/node\/add/',$alias) && $_GET['gids'] != '') || $vars['node']->og_description || (arg(0) == 'user' && is_numeric(arg(1)))) {
$vars['template_files'][] = 'page-team';
}
页面是丢失的TPL,我怀疑上面的代码可能会出现错误(方法2)。
我正在尝试使用“ fdl”的第一个路径参数为所有页面加载此模板,soce.com/fdl和所有FDL的孩子。
我知道有很多可能性。但是我觉得错误在这里。谢谢你的尽心帮助。
解决方案 4
我在模板中找到了不弃用的链接功能。更新参数已修复所有内容。
其他提示
好吧,您清除了缓存吗?因为在处理主题时,Drupal通常在清除缓存后捕获新添加的主题和模板。
如果您不确定自己的登记。 Exp。,我相信您可以简单地写下:
if(strpos(drupal_get_path_alias($_GET['q']),'fdl')===0){
$vars['template_files'][] = 'page-team';
}
和清除缓存。
这就是我在模板中的内容:PHP:
function frontend_preprocess_page(&$vars){
if(strpos(drupal_get_path_alias($_GET['q']),'dummy_tests')===0){
$vars['template_files'][] = 'page-dummy';
}
}
前端是我主题的名称。我在主题文件夹中有一个文件页dbummy.tpl.php。为了看到它起作用,我在身体标签之后添加了“它可以工作”。然后清除缓存。现在,我转到“ mydomain.com/dummy_tests/1”页面,看看它有效。
如果您有问题,请尝试检查Drupal_get_path_alias的输出($ _ get ['q'])。做就是了
print drupal_get_path_alias($_GET['q']);
就在Preprocess_page()函数内。而且,如果它确实以“ FDL”开头,那么一切都应该起作用。这是一个工作示例,因此您只需尝试玩耍并弄清楚为什么它不适合您。
顺便说一句,尝试删除节点模板并仅留下页面模板。我不知道为什么,但可能是错误的,Drupal弄乱了他们。
我尝试在page_preprocess和node_preprocess函数中添加自定义模板。它既适合我的页面和节点模板。
function frontend_preprocess_page(&$vars){
if(strpos(drupal_get_path_alias($_GET['q']),'dummy_tests')===0){
$vars['template_files'][] = 'page-dummy';
}
}
function frontend_preprocess_node(&$vars){
if(strpos(drupal_get_path_alias($_GET['q']),'dummy_tests')===0){
$vars['template_files'][] = 'node-dummy';
}
}