代码之家  ›  专栏  ›  技术社区  ›  Matt Ryan

页面模板未加载,但节点模板正在加载

  •  2
  • Matt Ryan  · 技术社区  · 14 年前

    问题是:只有特定的内容类型无法正确加载其模板文件。一些通过视图显示在这些页面上的节点正在进入标记。它们是唯一被加载的内容。此内容所依赖的模板文件是节点-事件.tpl

    目标:加载页面-团队.tpl.php

    mytheme_preprocess_page(&$vars, $hook)
    

    _phptemplate_variables () 在Drupal5安装中。

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

    4 回复  |  直到 14 年前
        1
  •  1
  •   angryobject    14 年前

    好吧,你清理过缓存了吗?因为在处理主题时,drupal通常会在清除缓存后捕获新添加的主题和模板。

    如果你不确定你的注册号。例如,我相信你可以简单地写下:

    
    if(strpos(drupal_get_path_alias($_GET['q']),'fdl')===0){
        $vars['template_files'][] = 'page-team';
    }
    
    

        2
  •  1
  •   angryobject    14 年前

    这就是我的生活模板.php:

    
    function frontend_preprocess_page(&$vars){
      if(strpos(drupal_get_path_alias($_GET['q']),'dummy_tests')===0){
          $vars['template_files'][] = 'page-dummy';
      }
    }
    
    

    如果您遇到问题,请尝试检查drupal\u get\u path\u alias($\u get['q'])的输出。就这么做吧

    
    print drupal_get_path_alias($_GET['q']);
    
    

    顺便说一句,尝试删除节点模板,只留下页面模板。我不知道为什么,但可能是出了什么问题,drupal把他们搞砸了。

        3
  •  0
  •   angryobject    14 年前

    我尝试在页面预处理和节点预处理函数中添加自定义模板。对我来说,它既适用于页面模板,也适用于节点模板。

    
    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';
      }
    }
    
    
        4
  •  0
  •   Matt Ryan    14 年前

    我在模板中发现一个不推荐使用的链接函数。更新参数修复了一切。