it-swarm-id.com

Bagaimana cara menambahkan file CSS dan JS pada halaman node dari theme.pocket.php

Saya mencoba untuk menambahkan file JavaScript dan CSS ke satu halaman jenis simpul dari file template.php saya tetapi tidak berfungsi. Ini kode template.php saya:

<?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')
    );
  }
}

Adakah yang tahu mengapa ini tidak berhasil?

6
zach

Karena Anda menginginkan CSS dan JavaScript saat menampilkan sebuah node, Anda dapat menambahkan file-file itu dalam fungsi preprocess untuk templat node. Juga, sebagaimana dinyatakan dalam dokumentasi mereka, saat menambahkan file, argumen pertama untuk drupal_add_css() dan drupal_add_js() adalah path File CSS/JavaScript relatif terhadap base_path () . Anda dapat menggunakan drupal_get_path('theme', 'THEME') untuk mendapatkan jalur tema Anda relatif ke jalur dasar.

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'));
    }
  }
}

Juga, melakukan $node = node_load(arg(1)); untuk memuat simpul yang dilihat saat ini tidak aman dan salah. Jika Anda memiliki bukan simpul halaman di whatever/42 Tetapi memiliki simpul sales_team_page Yang ada dengan nid = 42, Anda akan memuat simpul ini dan menambahkan CSS dan JavaScript Anda file bahkan jika pengguna tidak melihat simpul.

7
Pierre Buyle

Mungkin karena Anda tidak mendapatkan jenis simpul dengan benar. Gunakan simpul praproses untuk menangkap jenis simpul dengan benar.

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()
 }
}

Anda juga dapat menambahkannya melalui file .info tema Anda:

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


scripts[] = my_js.js
1
Paris Liakos