Как добавить файлы CSS и JS на страницах узла независимо от темы? - PullRequest
1 голос
/ 28 ноября 2011

Я использую набор отображения для отображения полного узла типа «Статья». Я хочу добавить некоторые css и js на страницу, содержащую узел статьи, хотя их добавление не может зависеть от тематики. Поэтому я не могу использовать файл template.php

Как бы я мог это сделать?

Ответы [ 2 ]

1 голос
/ 29 ноября 2011

Создайте новый модуль и поместите его в: / 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.

1 голос
/ 28 ноября 2011

Создайте пользовательский модуль и включите ваши файлы js и css, используя функции drupal_add_js и drupal_add_css. Вы можете вызывать их либо в hook_init вашего пользовательского модуля, либо в hook_nodeapi (или в Node Api Hooks в Drupal 7), в зависимости от того, как вы хотите включить свои файлы. Эти функции вызываются независимо от того, какую тему вы используете.

Ссылка: 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

...