2011-02-11 77 views
1

我想在我的Drupal 7站點上使用Colourbox jQuery腳本,但我只希望它加載某些內容類型。用Drupal 7插入jQuery

我發現[這個腳本] [1]確實需要我想要的。它適用於Drupal 6,但對於Drupal 7似乎很適合。

在腳本中,您必須將Java腳本插入到PHP包裝器中。 但是,由於我的Java腳本使用兩種引號/撇號,因此會中斷腳本。我該如何解決這個問題?

這裏是我嘗試使用腳本(在插入的template.php):

功能 THEMENAME_preprocess_node(& $變量) {// 測試資源頁節點類型如果($變量[ '類型'] == 'resources_page'){

// include colorbox javascript 
drupal_add_js(path_to_theme() . '/scripts/colorbox/jquery.colorbox.js'); 


// include colorbox css 
drupal_add_css(path_to_theme() . '/scripts/colorbox/colorbox.css'); 
    $js = '  jQuery(document).ready(function(){ 
     jQuery('.photos>a').attr('rel', 

'顏色框'); jQuery的( 「一個[相對= '顏色框']」)。每個(函數(){

jQuery(this).colorbox({title:jQuery(this).attr('title')+ 

「」 + jQuery的(本).find( 'IMG')。ATTR( 'ALT') }); }); '; drupal_add_js($ js,'inline'); }}

jQuery的( 「一個[相對= '顏色框']」)。打破了腳本,因爲它有兩種引號。我怎樣才能解決這個問題?

[1]://添加的JScript http://thedrupalblog.com/adding-jquery-image-carousel-your-node-view

回答

1

我想你可以使用PHP的heredoc feature的,但實際上,我會覺得更明智的把你的自定義JavaScript在自己的文件,包括它與drupal_add_js。就像你用colorbox插件做的一樣。

drupal_add_js('/path/to/your/custom.js/'); 

我想大多數Web應用程序堅持Separation of Concerns的概念,那就是,分離風格(CSS),例如標記(HTML)和行爲(JavaScript的)。它可以減輕維護的負擔,比如說你的團隊中只有設計師只負責HTML/CSS/JS,你可能不希望他們碰到PHP代碼。

當然,你可以逃避報價。

$foo = 'Hello \'Name\''; 
$bar = "$('a[rel=\"colorbox\"]')"; 
+0

謝謝!該解決方案完美運作。 – 2011-02-12 15:19:58