drupal自定义内容类型页面模板

时间:2015-01-19 02:13:34

标签: php html drupal drupal-7

我正在尝试在drupal 7中为我的自定义内容类型创建一个页面模板。我修改了我的theme_preprocess_page函数,以包含一段代码来加载它。它似乎工作正常,我的页面 - wine.tpl.php被加载。然而drupal仍然在head标签中渲染了很多我不需要的标签。我该如何删除它?

if (isset($vars['node'])) {
    // If the node type is "blog_madness" the template suggestion will be "page--blog-madness.tpl.php".
    $vars['theme_hook_suggestions'][] = 'page__'. $vars['node']->type;

  }

当页面呈现时,它在head标签中有很多垃圾html。我正在为客户实现登录页面。此着陆页具有完全独立的html /资产,包括主模板页面中的css和javascript会导致各种问题。有没有办法告诉模板引擎如果我的自定义内容类型不呈现Head标签?

也许有更好的方法在Drupal 7中实现登陆页面?我是Drupal的新手所以不确定!

非常感谢任何帮助!

感谢。

1 个答案:

答案 0 :(得分:0)

Drupal通过编写许多模板级别来构建页面。从html.tpl.php开始,然后是page.tpl.php,然后是节点/视图模板。

如果覆盖page.tpl.php仍然使用html.tpl.php。你必须以某种方式覆盖它。

其他方式是创建独立文件 - 只需制作简单的php文件,包括drupal的引导程序,你就会有完全清楚的情况 - 没有drupal的垃圾代码,但是你会这样做能够使用drupal的功能,如加载节点和获取字段值,打印出来..

所以,制作php文件,将其放在网站root中,并确保它以这段代码开头:

<?php

define('DRUPAL_ROOT', getcwd());
require_once DRUPAL_ROOT . '/includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);