如何在节点页面上添加独立于主题的css和js文件?

时间:2011-11-28 12:01:02

标签: javascript css drupal themes

我正在使用展示套件来显示“文章”类型的完整节点。我想在包含文章节点的页面上添加一些css和js,尽管这些添加不能依赖于主题。所以我不能使用template.php文件

我怎么能这样做?

2 个答案:

答案 0 :(得分:1)

使用drupal_add_js和drupal_add_css函数创建自定义模块并包含js和css文件。您可以在自定义模块的hook_init或hook_nodeapi(或Drupal 7中的Node Api Hooks)中调用它们,具体取决于您希望如何包含文件。无论您使用什么主题,都会调用这些函数。

参考文献: http://api.drupal.org/api/drupal/includes--common.inc/function/drupal_add_js

http://api.drupal.org/api/drupal/includes--common.inc/function/drupal_add_css

答案 1 :(得分:1)

创建一个新模块并将其放入:/ sites / all / modules / custom

模块结构和文件如下所示:

ahelper/
ahelper/css/article_node.css
ahelper/js/article_node.js
ahelper/ahelper.info
ahelper/ahelper.module

ahelper / ahelper.info

core = "7.x"
name = "Article Helper"
project = "ahelper"
version = "7.x-1.0"

ahelper / ahelper.module

<?php
/**
 * Implements hook_node_view()
 */
function ahelper_node_view($node, $view_mode, $langcode) {
  // if node is an article, and we're looking at a full page view
  if ($node->type == 'article' && $view_mode == 'full') {
    // then add this javascript file
    drupal_add_js(drupal_get_path('module', 'ahelper') .'/js/article_node.js');
    // and add this css file
    drupal_add_css(drupal_get_path('module', 'ahelper') .'/css/article_node.css');
  }
}

然后启用该模块。你可以使用node_view钩子。