プロジェクト

全般

プロフィール

Bug(バグ) #3485

PC向けUIの未ログイン時に jQuery 等のライブラリがロードされない

Youichi Kimura10年以上前に追加. ほぼ3年前に更新.

ステータス:
Fixed(完了)
優先度:
Normal(通常)
担当者:
対象バージョン:
開始日:
2013-11-15
期日:
進捗率:

100%

3.6 で発生するか:
No (いいえ)
3.8 で発生するか:
Yes (はい)

説明

Overview (現象)

jquery.min.js などのライブラリが PC 向け UI の未ログイン時には読み込まれない。これにより jQuery 等に依存するプラグインが未ログイン時の画面で動作できない状態となっている。

Causes (原因)

source:apps/pc_frontend/templates/_layout.php@27853bc5 の下記コードの通り、未ログイン時には use_javascript('jquery.min.js') を通過しないためこれらのライブラリのロードが行われない。

<?php if (opConfig::get('enable_jsonapi') && opToolkit::isSecurePage()): ?>
<?php
use_helper('Javascript');

use_javascript('jquery.min.js');
use_javascript('jquery.tmpl.min.js');
use_javascript('jquery.notify.js');
use_javascript('op_notify.js');
$jsonData = array(
  'apiKey' => $sf_user->getMemberApiKey(),
  'apiBase' => app_url_for('api', 'homepage'),
  'baseUrl' => $sf_request->getRelativeUrlRoot().'/',
);

echo javascript_tag('
var openpne = '.json_encode($jsonData).';
');
?>
<?php endif ?>

opConfig::get('enable_jsonapi') && opToolkit::isSecurePage() という条件は API キーの出力を行うか否かを判断するための条件であるが、 9f50bdf66e3cdaaa4372669902995a1558d8cbe8 にて誤って use_javascript をこの if ブロック内に追加してしまったことが原因で当チケットの問題が発生した。

Way to fix (修正内容)

jQuery 等をロードする use_javascriptopConfig::get('enable_jsonapi') && opToolkit::isSecurePage() の if ブロックの外に移動する。


子チケット

Backport(バックポート) #4386: PC向けUIの未ログイン時に jQuery 等のライブラリがロードされないFixed(完了)isao sano

Backport(バックポート) #4387: PC向けUIの未ログイン時に jQuery 等のライブラリがロードされないFixed(完了)isao sano


関連するチケット

関連している OpenPNE 3 - Bug(バグ) #3170: スマートフォンでログインが必要でないページを開くとエラーが発生する New(新規) 2012-08-23
関連している OpenPNE 3 - Bug(バグ) #3019: [3.8RC1]iPhoneからログインできません Works for me(再現せず) 2012-04-23
次のチケットが重複 OpenPNE 3 - Bug(バグ) #3589: pc_frontend 全画面で呼び出される util.js が必須とする jquery.min.js が呼び出されていない条件がある Invalid(無効) 2014-04-09

関係しているリビジョン

リビジョン 66a31866 (差分)
Youichi Kimura10年以上前に追加

load javascript libraries (such as jquery.min.js) for insecure page (fixes #3485)

リビジョン 024c83fd (差分)
kaoru nほぼ3年前に追加

(refs #3485) jquery.min.js の読み込み定義を view.yml で行うよう変更

リビジョン 6c4f5874
kaoru nほぼ3年前に追加

Merge pull request #634 from nishizoe/t-3485

(refs #3485) jquery.min.js の読み込み定義を view.yml で行うよう変更

履歴

#1 Youichi Kimura10年以上前に更新

  • ステータスNew(新規) から Pending Review(レビュー待ち) に変更
  • 進捗率0 から 50 に変更

更新履歴 66a31866e32f8b9c10ca58ccb9ee3186e4105946 で適用されました。

#2 Yuya Watanabe10年以上前に更新

  • ステータスPending Review(レビュー待ち) から Pending Testing(テスト待ち) に変更
  • 進捗率50 から 70 に変更

#3 Shinichi Urabeほぼ10年前に更新

  • 次のチケットが重複 Bug(バグ) #3589: pc_frontend 全画面で呼び出される util.js が必須とする jquery.min.js が呼び出されていない条件がある を追加

#4 Shinichi Urabeほぼ10年前に更新

  • ステータスPending Testing(テスト待ち) から Rejected(差し戻し) に変更
  • 進捗率70 から 50 に変更

source:apps/pc_frontend/config/view.yml@406bb371 によって jquery が必須な util.js が全画面で呼び出されるように修正されています
layout が plain など _lauyout.php 以外のレイアウトにセットされた場合 jquery が呼び出されませんので、 同様の条件で呼び出されていたほうがよいかと考えます (別チケット対応でいいかもしれません)

#5 kaoru nほぼ7年前に更新

  • 対象バージョンOpenPNE 3.9.0-old から OpenPNE 3.9.0 に変更

対象バージョン変更のため、修正内容の確認を行います。

#6 kaoru n約4年前に更新

  • 対象バージョンOpenPNE 3.9.0 から OpenPNE 3.10.x に変更

#7 kaoru n3年以上前に更新

  • 対象バージョンOpenPNE 3.10.x から OpenPNE 3.11.x に変更

#8 kaoru nほぼ3年前に更新

  • ステータスRejected(差し戻し) から Pending Review(レビュー待ち) に変更

#3485-4 について
https://github.com/openpne/OpenPNE3/pull/634
にてプルリクエストしました。

#9 Rimpei Ogawaほぼ3年前に更新

  • ステータスPending Review(レビュー待ち) から Pending Testing(テスト待ち) に変更
  • 進捗率50 から 70 に変更

#10 isao sanoほぼ3年前に更新

  • ステータスPending Testing(テスト待ち) から Pending Merge(マージ待ち) に変更
  • 進捗率70 から 80 に変更

試験完了しました。
問題ありません。

#11 kaoru nほぼ3年前に更新

  • ステータスPending Merge(マージ待ち) から Fixed(完了) に変更
  • 進捗率80 から 100 に変更

マージしました

他の形式にエクスポート: Atom PDF