操作
Bug(バグ) #4026
未完了PC向けのテンプレートのみ存在する画面をスマートフォンで閲覧するとテーマCSSが適用されない
開始日:
2016-10-19
期日:
進捗率:
50%
予定工数:
3.6 で発生するか:
Unknown (未調査)
3.8 で発生するか:
Unknown (未調査)
説明
現象¶
opSkinThemePlugin は、リクエストのあった User-Agent に応じて PC 向けの CSS とスマートフォン向けの CSS を分けて出力できるが、スマートフォンで PC 向けのテンプレートのみ用意された画面を開くと PC, スマートフォン向けのいずれの CSS も読み込まれない現象が起こる。
具体的には opAuthMailAddressPlugin の新規登録画面 (/opAuthMailAddress/requestRegisterURL) などで発生する。
原因¶
opThemeEvent::enableSkinByTheme()
メソッドでは、opWebRequest::isSmartphone()
の結果が true の場合にはスマートフォン向け CSS のみを設定し、false の場合には PC 向け CSS のみを設定という動作となっている。
しかし、スマートフォンから閲覧した場合は表示される画面が常にスマートフォン向けのレイアウトであるとは限らず、PC 向けテンプレートのみ用意されている画面であれば PC 向けのレイアウトで表示される。
そのため、スマートフォンからの閲覧でかつ PC 向けのレイアウトが表示される場合に、PC 向け CSS が設定されておらずスキンが適用されていない状態で表示されていた。
修正内容¶
opWebRequest::isSmartphone()
の結果が true の場合にはスマートフォン向け CSS と PC 向け CSS の両方が設定されるように修正する。
操作