Project

General

Profile

Bug(バグ) #2984

スマホ版において,PC版のスキンプラグインを変更するとスマホ版でスキンプラグインのCSSが読み込まれてしまう

Added by Shouta Kashiwagi over 7 years ago. Updated over 2 years ago.

Status:
Won't fix(対応せず)
Priority:
Normal(通常)
Assignee:
Target version:
Start date:
2012-04-18
Due date:
% Done:

0%

3.6 で発生するか:
Unknown (未調査)
3.8 で発生するか:
Unknown (未調査)

Description

現象

スマホ版において,PC版のデフォルトスキンプラグイン(opSkinBasicPlugin)から別のスキンプラグイン(opSkinBootstrapPluign等)に変更すると
変更したスキンプラグインのCSSがスマホ版においても読み込まれてしまう

発生バージョン: OpenPNE 3.8beta1, OpenPNE3.8RC1

原因

理由としては,スマホ版テンプレートに以下のようなコードの記述がなされていて,
opSkinBasicPluginに依存するような書き方がされているからである.

  • apps/pc_frontend/templates/smtLayoutHome.php
1. <?php use_helper('Javascript') ?>
2. <?php $sf_response->removeStylesheet('/opSkinBasicPlugin/css/main.css') ?>
3. 

修正内容

opSkinBasicPlugin以外におけるスキンプラグインのmain.cssを,スマホ版でロードされないようにする


Related issues

Related to OpenPNE 3 - Backport(バックポート) #2985: スマホ版において,PC版のスキンプラグインを変更するとスマホ版でスキンプラグインのCSSが読み込まれてしまう Fixed(完了) 2012-04-18

Associated revisions

Revision f479f7cd (diff)
Added by Yuya Watanabe over 7 years ago

(fixes #2984) add smartphone asset helper

Revision 91b09bba (diff)
Added by Yuya Watanabe over 7 years ago

(fixes #2984) add smartphone properties operation in opWebResponse

Revision 9c524c38 (diff)
Added by Yuya Watanabe over 7 years ago

(fixes #2984) removed unnessessary properties

History

#1 Updated by Shouta Kashiwagi over 7 years ago

  • Description updated (diff)

#2 Updated by Yuya Watanabe over 7 years ago

  • Assignee set to Yuya Watanabe

#3 Updated by Yuya Watanabe over 7 years ago

  • Status changed from New(新規) to Accepted(着手)

#4 Updated by Yuya Watanabe over 7 years ago

変更対象ファイル群.

apps/pc_frontend/templates/smtLayoutMember.php
2:<?php $sf_response->removeStylesheet('/opSkinBasicPlugin/css/main.css') ?>

apps/pc_frontend/templates/smtLayoutHome.php
2:<?php $sf_response->removeStylesheet('/opSkinBasicPlugin/css/main.css') ?>

apps/pc_frontend/templates/smtLayoutSns.php
2:<?php $sf_response->removeStylesheet('/opSkinBasicPlugin/css/main.css') ?>

apps/pc_frontend/templates/smtLayoutGroup.php
2:<?php $sf_response->removeStylesheet('/opSkinBasicPlugin/css/main.css') ?>

#5 Updated by Yuya Watanabe over 7 years ago

修正方針

response に addStylesheet() している部分は view.yml のキャッシュ部分であるため直接追加部分のソースの変更を行うことはできない.
よって修正方針としては以下の3つが考えられる.

  1. ビュー部分で不必要な css や js をすべて $response->removeStylesheet() や $response->removeJavascript() などで使用しないようにする
  2. include_stylesheet() や include_javasript() のスマートフォンを対象とした処理を追加して不必要な css や js を読み込まないようにする
  3. view.yml のキャッシュ生成時に不必要な css や js を読み込まないようにする.

1 の方法だと,各ビューで同じような処理を追加する必要があり,そうでなくても不必要なファイルを読み込んでから削除するという処理が発生する無駄があるので取りうるべきではない.
2 の方法も無難ではあるが,Symfony の作法とは別に OpenPNE での作法となるため,カスタマイズなどでスマートフォン対応をする際に実装ミスの原因となる可能性がある.また,PC版と共通のファイルを読み込みたい場合などであっても,PC版とスマートフォン版でそれぞれ読み込む処理を追加しなければならない.これらはすべてソースコードで設定を行わなければならないため,PC版のように view.yml から設定を行うことができない.
3 の方法が最も適切であると思うが,PC版と同じアプリケーションで実装されているためキャッシュがPC版と混在してしまう.これを避けるため,2のようにスマートフォンで必要な css や js を得る手段が必要であると考えられる.

2 または 3 の方法を選択する場合にはいずれにせよスマートフォン用のファイルを得る手段が必要なため,今回は実装が簡単な 2 の方法を選択することにする. 3 の方法は今後の改善要求として 別チケットで作成しておくこととする.( #3043

その他

本チケットではPC版のスキンプラグインが読み込まれてしまうという問題であるが, 管理画面で設定したカスタマイズCSSもPC版用として設定されたものが適用されてしまう.この問題については別チケットで対応する.( #3040

#6 Updated by Yuya Watanabe over 7 years ago

  • Status changed from Accepted(着手) to Pending Review(レビュー待ち)
  • % Done changed from 0 to 50

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

#7 Updated by Rimpei Ogawa over 7 years ago

  • Status changed from Pending Review(レビュー待ち) to Rejected(差し戻し)

sfWebResponse のいくつかのメソッドで stylesheets/javascripts プロパティは対応しているが、 smtStylesheets/smtJavascripts プロパティは対応できていないものがあります。

  • initialize() で smt* のプロパティが初期化されない(array_combine() 使っているところ)
  • copyProperties() / merge() で smt* のプロパティが反映されない
  • serialize() / unserialize() で smt* のプロパティが保存・復元されない

また、使用されていないプロパティ displayMember/displayCommunity が残っていますが、これについては別チケットで扱うということでこのチケットでのレビュー対象とはしませんでした。

#8 Updated by Yuya Watanabe over 7 years ago

  • Status changed from Rejected(差し戻し) to Accepted(着手)
  • % Done changed from 50 to 0

#9 Updated by Yuya Watanabe over 7 years ago

「使用されていないプロパティ displayMember/displayCommunity が残っていますが、これについては別チケットで扱う」としていましたが,対象チケットがなく,影響範囲もないということで本チケットで同時に修正を行います.

#10 Updated by Yuya Watanabe over 7 years ago

  • Status changed from Accepted(着手) to Pending Review(レビュー待ち)
  • % Done changed from 0 to 50

更新履歴 91b09bbae018ed73bdc621504d87c6acf1d30300 で適用されました。

#11 Updated by Yuya Watanabe over 7 years ago

更新履歴 9c524c3855389400e2b397766a954e60ab16afa6 で適用されました。

#12 Updated by Rimpei Ogawa over 7 years ago

  • Status changed from Pending Review(レビュー待ち) to Pending Testing(テスト待ち)
  • % Done changed from 50 to 70

#13 Updated by kaoru n about 4 years ago

  • 3.8 で発生するか set to Unknown (未調査)

#14 Updated by isao sano over 2 years ago

  • Status changed from Pending Testing(テスト待ち) to Won't fix(対応せず)
  • % Done changed from 70 to 0

OpenPNE 3.8.0 にて対応済みであったため、対応せずとします。

Also available in: Atom PDF