系统信息: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';
  }
}

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top