Project

General

Profile

Actions

Bug(バグ) #2984

closed

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

Added by Shouta Kashiwagi almost 13 years ago. Updated almost 8 years ago.

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

0%

Estimated time:
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 1 (0 open1 closed)

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

Actions
Actions #1

Updated by Shouta Kashiwagi almost 13 years ago

  • Description updated (diff)
Actions #2

Updated by Yuya Watanabe over 12 years ago

  • Assignee set to Yuya Watanabe
Actions #3

Updated by Yuya Watanabe over 12 years ago

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

Updated by Yuya Watanabe over 12 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') ?>

Actions #5

Updated by Yuya Watanabe over 12 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

Actions #6

Updated by Yuya Watanabe over 12 years ago

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

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

Actions #7

Updated by Rimpei Ogawa over 12 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 が残っていますが、これについては別チケットで扱うということでこのチケットでのレビュー対象とはしませんでした。

Actions #8

Updated by Yuya Watanabe over 12 years ago

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

Updated by Yuya Watanabe over 12 years ago

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

Actions #10

Updated by Yuya Watanabe over 12 years ago

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

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

Actions #11

Updated by Yuya Watanabe over 12 years ago

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

Actions #12

Updated by Rimpei Ogawa over 12 years ago

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

Updated by kaoru n over 9 years ago

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

Updated by isao sano almost 8 years ago

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

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

Actions

Also available in: Atom PDF