Як я можу використовувати jQuery 1.7, не маючи проблем на сторінках адміністратора?


11

Хтось успішно працює jQuery 1.7? Я використовую компонент jQuery на своїх сторінках, який вимагає jQuery 1.7 або новішої версії. Ця версія викликає небажані побічні ефекти в інтерфейсі адміністратора, наприклад, встановлені прапорці, які не виявляють додаткових елементів керування, коли вони доступні, або польовий віджет не активний.

Мені було цікаво, чи є рішення, яке могло б мені легко працювати з jQuery 1.7.

Цю відповідь я побачив, перш ніж запитати. Наскільки я розумію, є два окремих питання: оновлення src jQuery до 1.7.x та оновлення javascript, що використовується адміністратором. Я намагався використовувати найновіший знімок розробки jquery_update і застосувати патч , але це не вирішує вищезазначені проблеми з інтерфейсом користувача.


Політика в значній мірі диктує, що оновлення версій Drupal не повинно порушувати нічого, що покладається на jQuery, тому версія залишається послідовною.
mpdonadio

Технічно це питання є дурнем drupal.stackexchange.com/a/41394/809 Також я трохи упереджений, але на інше питання є краща відповідь.
ericduran

Відповіді:


11

Я б переглянув поради Клайва про те, як це робити вручну тут:

Як оновити jQuery до останньої версії, яку я можу завантажити?

і додайте трохи більше інформації в сценарій, щоб не робити цього на сторінках адміністратора, наприклад:

if (arg(0)=='admin') {
  return;
}

Ви також повинні зробити це на node/#/addі node/#/editсторінки і т.д. , з тим , щоб не порушити нічого «ядро» там, або, якщо ви хочете, занурення в Друпал ядра і довести все інше до 1,7 , а також.

Залежно від версії Drupal, яку ви працюєте, це також може працювати:

function YOURTHEME_preprocess_page(&$vars) {
  if (YOUR CONDITION HERE) {
    $scripts = drupal_add_js('PATH TO YOUR JQUERY FILE');
    unset($scripts['core']['PATH TO DRUPAL JQUERY FILE']);
    $variables['scripts'] = drupal_get_js('header', $scripts);
  }
}

де ви можете встановити "СВОЄМО УМОВА ТУТ", щоб це були будь-які сторінки, на яких ви хочете новий jquery, наприклад, arg(0)!='admin'тощо


Дякую Джімажамма, я не використовував ваш код, але ваша відповідь поставила мене на правильний шлях. Я знайшов хороший патч, який додає інтерфейс користувача на екран конфігурації jquery_update, що дозволяє використовувати різні версії jQuery для адміністратора. drupal.org/node/1524944 . Поки добре працює.
Артур

2
Майте на увазі, що у ctools теж було помилок з оновленнями jquery. Можливо, вам доведеться відрегулювати виправлення для обліку цього.
mpdonadio

Дякуємо, що вказали на це. Чи маєте ви ідею, що було б найкращим способом протестувати проти цього?
Артур

3
+1 Хороший простий спосіб отримати список усіх сторінок адміністратора, які не мають "адміністратора" в URL-адресі:$pages = module_invoke_all('admin_paths');
Clive

1
@Clive, чи це ловить URL-адреси AJAX? Як, коли ви використовуєте віджет ctools на "звичайній" сторінці?
mpdonadio

2

jQuery Update тепер має можливість вмикати різні версії jQuery для переднього та заднього. Завантажте найновішу версію розробника, і ви готові: 1,5 в бекенді, так що вона працює з інтерфейсом Views і 1,7 або 1,8 у передній частині, щоб отримати додаткові якості jQuery.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.