Вставка jQuery с Drupal 7 - PullRequest
       37

Вставка jQuery с Drupal 7

1 голос
/ 11 февраля 2011

Я хочу использовать сценарий Colourbox jQuery на своем сайте Drupal 7, но я хочу, чтобы он загружался только для определенных типов контента.

Я нашел [этот сценарий] [1], который действительно хочет, я хочу.Это для Drupal 6, но, похоже, отлично работает для Drupal 7.

В сценарии вы должны вставить Java Script в оболочку PHP.Однако, поскольку мой Java Script использует два вида кавычек / апострофов, это нарушает сценарий.Как я могу это исправить?

Вот скрипт, который я пытаюсь использовать (вставлен в template.php):

function THEMENAME_preprocess_node (& $ variable) {// test forтип узла страницы ресурса if ($ variable ['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']"). each (function () {

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

"" + jQuery (this) .find ('img'). attr ('alt')});});«;drupal_add_js ($ js, 'inline');}}

Бит jQuery ("a [rel = 'colorbox']"). разбивает скрипт, так как он имеет два вида кавычек.Как я могу это исправить?

[1]: // Добавить jScript http://thedrupalblog.com/adding-jquery-image-carousel-your-node-view

1 Ответ

1 голос
/ 12 февраля 2011

Полагаю, вы могли бы использовать функцию heredoc в PHP, но на самом деле, я бы посчитал более целесообразным поместить ваш собственный JavaScript в отдельный файл и включить его с drupal_add_js.Как и в случае с плагином colorbox.

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

Я думаю, что большинство веб-приложений придерживаются концепции Разделение проблем , то есть отделение разметки (HTML) от стиля (CSS).) и поведение (JavaScript), например.Это может упростить обслуживание, скажем, в вашей команде есть дизайнеры, которые отвечают только за HTML / CSS / JS, вы, вероятно, не хотите, чтобы они касались кода PHP.

И, конечно, вы могли бы избежать кавычек.

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