【发布时间】:2010-08-30 04:01:31
【问题描述】:
系统信息:drupal 6 安装,包含大量模块...太多无法列出。
问题:只有特定的内容类型不会正确加载它的模板文件。将通过视图显示在这些页面上的一些节点正在进入标记。它们是唯一被加载的内容。此内容依赖的模板文件是 node-event.tpl
目的:加载page-team.tpl.php
模板建议通过预处理通过两种方式在template.php中加载
mytheme_preprocess_page(&$vars, $hook)
在 drupal 5 安装中从 _phptemplate_variables () 转换而来。
方法一:
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;
}
}
}
方法二:
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';
}
page-team 是缺少的 tpl,我怀疑我上面的代码可能有错误(方法 2)。
我正在尝试为第一个路径参数为“fdl”的所有页面加载此模板,因此 site.com/fdl 和 fdl 的所有子级。
我知道有很多可能性。但我感觉错误就在这里。感谢您提供的任何帮助。
【问题讨论】:
-
您的主题文件夹是否已经包含 page.tpl.php?有一个已知错误 (drupal.org/node/279573) 表示当 node.tpl.php 不可用时,主题不能使用 node-foo.tpl.php。这同样可能适用于 page.tpl.php - 我不是 100% 确定。
-
感谢您的回复,但我确实在主题目录中有page.tpl.php。
标签: php drupal drupal-6 preprocessor drupal-5