2011-02-11 73 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