しかたさん、ありがとうございます。
jQueryをテーマで読み込んではいけないと散々言われているので(笑)、オーバーライドはConcrete5の仕組みを使って、ルート直下のディレクトリを使用することで行っています。
結果的に、katzさんの方法で解決できました。
5.6で、編集時以外だけ jQueryをオーバーライドできますか?
2015年7月2日 at 16:31
5.6で制作したサイトにおいて、編集時以外は jQueryの新しいバージョンを読み込ませるようにすることはできるのでしょうか?
実は、5.6のサイトにおいてBootstrap3でテーマを作ってしまったため、スマートフォン閲覧時のドロップダウンメニューなどにおいて jQuery1.9 以上が必要になってしまいました。(グリッドが正しく機能していたので気づきませんでした)
ルート直下のjsディレクトリにjQuery1.9を置いたらドロップダウンメニュー等が機能するようになったのですが、今度は管理画面でブロックの編集に問題が出るようになりました。
よろしくお願いいたします。
タグ:
Re: 5.6で、編集時以外だけ jQueryをオーバーライドできますか?
2015年7月2日 at 18:39
編集バーがみえているユーザーは concrete5 の古い jQuery を読み込んで、編集バーが見えていないゲストを含めたユーザーは、新しい jQuery を読み込むということでいいでしょうか。
編集バーが見えていない時は、新しい jQuery を読み込むといった動作でいいでしょうか?
http://ja.katzueno.com/2014/05/3104/
の「// 編集ツールバーが見えたときの条件分岐 (テーマや、ブロックの view.php内:5.6.x 以降)」のコードを利用して
/concrete/elements/header_required.php
を
/elements/header_required.php
にコピーして、その中にある
というコードを上記の PHP を適用させることによってできますね。
そうするとこんなかんじになります
http://gist.github.com/katzueno/21ccf8f3f526b6ebd174
該当箇所に、新しい jQuery の絶対パスを入れてあげてください。
元々のファイルから変更した部分はこちらです
http://gist.github.com/katzueno/21ccf8f3f526b6ebd174/revisions
ちなみに、これで header_required.php という部分を concrete5 でオーバーライドしたので、次回アップデートする際は気をつける必要があります。
編集バーが見えていない時は、新しい jQuery を読み込むといった動作でいいでしょうか?
http://ja.katzueno.com/2014/05/3104/
の「// 編集ツールバーが見えたときの条件分岐 (テーマや、ブロックの view.php内:5.6.x 以降)」のコードを利用して
/concrete/elements/header_required.php
を
/elements/header_required.php
にコピーして、その中にある
$this->addHeaderItem($html->javascript('jquery.js'), 'CORE');
というコードを上記の PHP を適用させることによってできますね。
そうするとこんなかんじになります
http://gist.github.com/katzueno/21ccf8f3f526b6ebd174
該当箇所に、新しい jQuery の絶対パスを入れてあげてください。
元々のファイルから変更した部分はこちらです
http://gist.github.com/katzueno/21ccf8f3f526b6ebd174/revisions
ちなみに、これで header_required.php という部分を concrete5 でオーバーライドしたので、次回アップデートする際は気をつける必要があります。
Re: 5.6で、編集時以外だけ jQueryをオーバーライドできますか?
2015年7月2日 at 21:57
katzさん、ありがとうございます。
まったくその通りの動作をさせたかったので、教えていただいた方法で解決できました。
仕組みもわかったので、バージョンアップの際も忘れなければ問題なさそうですし、応用もできそうです。
まったくその通りの動作をさせたかったので、教えていただいた方法で解決できました。
仕組みもわかったので、バージョンアップの際も忘れなければ問題なさそうですし、応用もできそうです。
Your post has been saved and will be published after approval by the forum moderator.
しかたこうき
Re: 5.6で、編集時以外だけ jQueryをオーバーライドできますか?
まずルート/jsに置いたjQuery1.9は、どのように読み込んでますか? テーマでハードコーディングですか?
その場合は、編集モードでのみ1.9を無効にしたいのであれば、isEditMode()で判定できるんじゃないでしょうか。
参考:http://qiita.com/katzueno/items/256e3a971c294922d598
ただ、テーマでハードコーディングしている場合は、ログイン時にconcrete5が出力するjQueryとバッティングすると思うので、そこはどうされているのでしょう?