代码之家  ›  专栏  ›  技术社区  ›  Brian T Hannan

为什么在drupal 6x中没有调用php模板预处理页面函数?

  •  0
  • Brian T Hannan  · 技术社区  · 15 年前

    在另一个论坛中,我发现了以下示例:

    “我正在寻找一种通过Ajax提取节点数据的方法,并为Drupal6提供了以下解决方案。在实现下面的更改之后,如果在URL中添加ajax=1(例如mysite.com/node/1?Ajax=1),您只会得到内容,而不会得到页面布局。

    在您的主题的template.php文件中:

    function phptemplate_preprocess_page(&$vars) {
    
      if ( isset($_GET['ajax']) && $_GET['ajax'] == 1 ) {
            $vars['template_file'] = 'page-ajax';
      }
    
    }
    

    然后在主题目录中创建page-ajax.tpl.php,内容如下:

    <?php print $content; ?>
    

    他说:“这是一个很好的选择。”

    这似乎是合乎逻辑的方法,我这样做了,但phptemplate预处理页面函数从未被调用…有什么建议吗?

    1 回复  |  直到 15 年前
        1
  •  4
  •   Brian T Hannan    15 年前

    我自己从Drupal支持主题开发页面上找到了它:

    “也许这有帮助 Leahcim.2707-2008年5月29日-05:40

    我试着做同样的事情,对我来说,这是可行的,但我不确定这是否是正确的方式,因为我对Drupal还是个新手:

    在“template.php”中,我添加了以下函数: 函数phptemplate_preprocess_page(&$vars) { $css=$vars['css']; 取消设置($css['all'][模块][模块/system/system.css']); 取消设置($css['all'][模块][模块/系统/默认值.css']); $vars['styles']=drupal_获取CSS($css); }

    我认为在添加函数之后,您需要转到/admin/build/themes,以便Drupal识别该函数。 他说:“这是一个很好的选择。”

    黑体部分是什么做的诡计…您必须重新保存配置,以便它能够识别您已经向模板添加了一个新函数。