操作
Bug(バグ) #3485
完了PC向けUIの未ログイン時に jQuery 等のライブラリがロードされない
開始日:
2013-11-15
期日:
進捗率:
100%
予定工数:
(合計: 0:00時間)
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_javascript
を opConfig::get('enable_jsonapi') && opToolkit::isSecurePage()
の if ブロックの外に移動する。
操作