it-swarm-vi.com

Cách thêm tệp CSS và JS trên các trang nút từ template.php của theme

Tôi đang cố gắng thêm các tệp JavaScript và CSS vào một trang loại nút từ tệp template.php của mình nhưng nó không hoạt động. Đây là mã template.php của tôi:

<?php
// $Id: template.php,v 1.13 2010/12/14 01:04:27 dries Exp $

function mttheme_preprocess_html(&$variables) {
  $node = node_load(arg(1));
  if ($node->type = 'sales_team_page') {
    drupal_add_css('misc/jquery.fancybox-1.3.4.css');
    drupal_add_js('misc/jquery.mousewheel-3.0.4.pack.js',
      array('type' => 'file', 'scope' => 'header')
    );
    drupal_add_js('misc/jquery.fancybox-1.3.4.pack.js',
      array('type' => 'file', 'scope' => 'header')
    );
    drupal_add_js('misc/jquery.fancybox-calls.js',
      array('type' => 'file', 'scope' => 'header')
    );
  }
}

Có ai biết tại sao nó không hoạt động?

6
zach

Vì bạn muốn CSS và JavaScript của mình khi hiển thị một nút, bạn có thể thêm các tệp trong hàm tiền xử lý cho mẫu nút. Ngoài ra, như đã nêu trong tài liệu của họ, khi thêm tệp, đối số đầu tiên cho drupal_add_css()drupal_add_js() là đường dẫn Tệp CSS/JavaScript liên quan đến cơ sở_path () . Bạn có thể sử dụng drupal_get_path('theme', 'THEME') để lấy đường dẫn của chủ đề của bạn so với đường dẫn cơ sở.

function THEME_preprocess_node(&$variables) {
  if ($variables['view_mode'] == 'full') {
    $node =& $variables['node'];
    if ($node->type == 'sales_team_page') {
      $path = drupal_get_path('theme', 'THEME');
      drupal_add_css($path . '/misc/jquery.fancybox-1.3.4.css');
      drupal_add_js($path . '/misc/jquery.mousewheel-3.0.4.pack.js', array('type' => 'file', 'scope' => 'header'));
      drupal_add_js($path . '/misc/jquery.fancybox-1.3.4.pack.js', array('type' => 'file', 'scope' => 'header'));
      drupal_add_js($path . '/misc/jquery.fancybox-calls.js', array('type' => 'file', 'scope' => 'header'));
    }
  }
}

Ngoài ra, thực hiện $node = node_load(arg(1)); để tải nút hiện đang xem là không an toàn và sai. Nếu bạn có một không phải nút trang tại whatever/42 Nhưng có nút sales_team_page Hiện có với nid = 42, bạn sẽ tải nút này và thêm CSS và JavaScript của mình tập tin ngay cả khi người dùng không xem nút.

7
Pierre Buyle

Có lẽ bởi vì bạn không nhận được loại nút chính xác. Sử dụng nút tiền xử lý để nắm bắt loại nút chính xác.

function mttheme_preprocess_node(&$variables) {
 if ($variables['type'] == "sales_team_page"){
   drupal_add_css(drupal_get_path('theme', 'mttheme') . 'misc/jquery.fancybox-1.3.4.css');
   //add js in the same way using drupal_get_path()
 }
}

Bạn cũng có thể thêm chúng thông qua tệp .info của chủ đề của bạn:

name = Your theme
core = 7.x
engine = phptemplate


scripts[] = my_js.js
1
Paris Liakos