2011-02-11 4 views
1

Je souhaite utiliser le script Colourbox jQuery sur mon site Drupal 7, mais je souhaite uniquement le charger sur certains types de contenu.Insertion de jQuery avec Drupal 7

J'ai trouvé [ce script] [1] que je veux. Il est pour Drupal 6, mais semble fonctionner parfaitement pour Drupal 7.

Dans le script, vous devez insérer le script Java dans un wrapper PHP. Cependant, parce que mon script Java utilise deux types de guillemets/apostrophes, il casse le script. Comment puis-je corriger cela?

Voici le script que je suis en train d'utiliser (inséré dans template.php):

fonction THEMENAME_preprocess_node (& variables $) { // test pour le type de noeud de page ressource si (variables $ [ 'type'] == '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', 

'colorbox'); jQuery ("a [rel = 'colorbox']"). Chaque fonction (() {

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

"" + jQuery (this) .Find ('img'). Attr ('alt') }); }); '; drupal_add_js ($ js, 'inline'); }}

Le bit jQuery ("un [rel = 'colorbox']"). casse le script car il a deux types de guillemets. Comment puis-je réparer cela?

[1]: // Ajouter jScript http://thedrupalblog.com/adding-jquery-image-carousel-your-node-view

Répondre

1

Je suppose que vous pouvez utiliser le heredoc feature de PHP, mais en fait, je trouverais plus judicieux de mettre votre JavaScript personnalisé dans son propre fichier et l'inclure avec drupal_add_js. Tout comme vous l'avez fait avec le plugin colorbox.

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

Je pense que la plupart des applications Web adhèrent au concept de Separation of Concerns, qui est, séparation entre les balises (HTML) de style (CSS) et le comportement (JavaScript) par exemple. Cela pourrait faciliter la maintenance, disons que vous avez des designers sur votre équipe qui sont responsables de HTML/CSS/JS seulement, vous ne voulez probablement pas qu'ils touchent du code PHP.

Et bien sûr vous pourriez échapper aux citations.

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

Merci! Cette solution fonctionne parfaitement. –