管理ページで問題が発生せずにjQuery 1.7を使用するにはどうすればよいですか?


11

誰かがjQuery 1.7を正常に実行していますか?jQuery 1.7以降が必要なページでjQueryコンポーネントを使用しています。このバージョンは、利用可能な場合に追加のコントロールを表示しないチェックボックスをチェックしたり、フィールドウィジェットがアクティブでないなど、管理UIに不要な副作用を引き起こします。

jQuery 1.7を簡単に操作できるソリューションがあるかどうか疑問に思っていました。

私は尋ねる前にこの答えを見ました。私が理解している限り、2つの別個の問題があります。jQueryのsrcを1.7.xに更新することと、管理者が使用するJavaScriptを更新することです。最新のjquery_update開発スナップショットを使用してパッチを適用しようとしましたが、UIに関する上記の問題は解決しません。


このポリシーでは、DrupalのバージョンをアップグレードしてもjQueryに依存するものを壊してはならないので、バージョンの一貫性が保たれます。
mpdonadio

技術的には、この問題はdrupal.stackexchange.com/a/41394/809のまとまりです。また、私は少し偏見がありますが、他の質問の方が適切な答えがあります。
ericduran 2012

回答:


11

ここで手動で行うことに関するCliveのアドバイスを見てみましょう。

ダウンロードできる最新バージョンにjQueryを更新するにはどうすればよいですか?

スクリプトにさらにインテリジェンスを追加して、管理ページで実行しないようにします。例:

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

また、「コア」を破壊しないようにnode/#/addnode/#/editページやページなどでそれを実行する必要があります。または、必要に応じて、Drupalコアに飛び込み、その他すべてを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);
  }
}

ここで、「YOUR CONDITION HERE」を、新しいjqueryを使用したいページなどに設定できますarg(0)!='admin'


Jimajammaに感謝します。私はあなたのコードを使用しませんでしたが、あなたの答えは私を正しい軌道に乗せました。jquery_update設定画面にUIを追加する素敵なパッチを見つけました。これにより、管理者はさまざまなバージョンのjQueryを使用できます。drupal.org/node/1524944。これまでのところうまくいきました。
Artur

2
jtoolsの更新により、ctoolsにも問題が発生したことに注意してください。これを考慮してパッチを調整する必要があるかもしれません。
mpdonadio

これを指摘してくれてありがとう。それに対してテストするための最良の方法は何だと思いますか?
Artur

3
URL内の「管理者」を持っていないすべての管理ページのリストを取得する+1 Aの素敵な簡単な方法は次のとおりです。$pages = module_invoke_all('admin_paths');
クライヴ

1
@Clive、これはctools AJAX URLをキャッチしますか?「通常の」ページでctoolsウィジェットを使用するときのように?
mpdonadio

2

jQuery Updateに、フロントエンドとバックエンドで異なるjQueryバージョンを有効にする機能が追加されました。最新のdevバージョンをダウンロードしてください。準備は整っています。バックエンドで1.5、ビューUIで動作し、フロントエンドで1.7または1.8で動作するため、jQueryの優れた機能を利用できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.