プロジェクト

全般

プロフィール

Bug(バグ) #3964

スマートフォン・PC間の表示切り替えに関する問題

kaoru n7年以上前に追加. 約1年前に更新.

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

100%

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

説明

http://sns.openpne.jp/communityTopic/539 より

【質問テンプレート】
現在、スマートフォンメインで新たにOpenPNEによるSNS構築を考え、OpenPNEのインストールをしています。

その後、OpenPNEの動作を確認していますが、スマートフォン⇔PC間の表示変更で気になる箇所があります。

①ログイン画面でスマートフォン版にしてもスマートフォン版にならない。
②ログイン後TOPがスマートフォン版なのにログイン画面やメンバー検索がPC版になることがある。
③メンバー検索でPC版→スマートフォン版にするとログイン画面もスマートフォン版になる。
④メンバー検索でスマートフォン版→PC版にするとスマートフォン版TOPに遷移してしまう。
⑤その後メンバー検索に行くとPC版が表示される。メンバー検索以外に行くとスマートフォン版のままになっている。
⑥ログアウトした後のスマートフォン版TOPから新規登録を選択するとPC版新規登録が表示される。

最初こちらの設定の問題かと思ったのですが、OpenPNEデモSNS
http://demo.openpne.jp/
でも動作を試したところ、②~⑥に関しては再現してしまっています。

一方、①に関してはOpenPNEのバグとして2013年に修正が試みられていますが、なぜか2年以上前の時点で更新が止まっている状態のようです。
https://redmine.openpne.jp/issues/3485

上記URLでの修正該当ファイルである
apps/pc_frontend/templates/_layout.php
を修正すれば問題なくログイン画面でスマートフォン版にできることを確認しています。
OpenPNEデモSNSはデザインがデフォルトから変更されているため、こちらの問題点をクリアしているのではと考えられます。

ですので、現状の問題としては、
A.デフォルトのデザインを使用した場合、ログイン画面でPC版からスマートフォン版にしようとしてもスマートフォン版にならない。
B.メンバー検索などのページでPC版に変更しようとすると、なぜかスマートフォン版TOPへ遷移する。その後メンバー検索などのページに戻るとPC版になっているが、他のページはスマートフォン版のまま。
C.ログイン画面はスマートフォン対応しているものの、新規登録関連がスマートフォン対応しておらず、PC版が表示される。
の三点が挙げられます。

「C.」は今後のバージョンで新機能として盛り込むべき事項ですが、「A.」「B.」に関してはOpenPNEのバグであると考えられます。

動作の確認とOpenPNEのソースの調査をお願いいたします。

・OpenPNEのバージョン
OpenPNE 3.8.20

・運用環境
Amazon EC2

・使用ソフトのバージョン
PHPバージョン:5.6.22
MySQLバージョン:5.1


子チケット

Backport(バックポート) #4576: スマートフォン・PC間の表示切り替えに関する問題Fixed(完了)kaoru n

Backport(バックポート) #4577: スマートフォン・PC間の表示切り替えに関する問題Fixed(完了)kaoru n

関係しているリビジョン

リビジョン 3326df24 (差分)
kaoru n約1年前に追加

(fixed #3964) スマートフォン表示とPC表示の切り替えが正常に行えない問題を修正

リビジョン 40c07297
kaoru n約1年前に追加

Merge pull request #679 from nishizoe/t-3964

(fixed #3964) スマートフォン表示とPC表示の切り替えが正常に行えない問題を修正

履歴

#1 kaoru n約7年前に更新

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

#2 kaoru n約4年前に更新

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

#3 kaoru n約1年前に更新

A.デフォルトのデザインを使用した場合、ログイン画面でPC版からスマートフォン版にしようとしてもスマートフォン版にならない。

A.は、スマートフォンでアクセスした場合、初手でPC画面は表示されないので、「スマートフォンでアクセスした場合のログイン画面での動作」を確認しました。

確認環境A
・Debian 10.12
・PHP 7.4.28 (cli) (built: Feb 17 2022 16:16:01) ( NTS )
・MariaDB 10.3.34-MariaDB-0+deb10u1 Debian 10
・OpenPNE-3.11.x (master ブランチ)
#3485 は適用済み
・opSkinThemePlugin 1.0.16

確認環境B
・Debian 10.11
・PHP 5.6.40-57+0~20211119.60+debian10~1.gbp8a9bd1 (cli)
・MariaDB 10.3.31-MariaDB-0+deb10u1 Debian 10
・OpenPNE-3.8.x (stable-3.8.x ブランチ)
#3485 は適用済み
・opSkinThemePlugin 1.0.16

(1)
・スマートフォン
・未ログイン
・URL: https://example.com/

「PC表示に切り替え」⇔「スマートフォン表示に切り替え」双方ともに正常に切替可能

(2)
・スマートフォン
・ログイン後、即ログアウト
・URL: https://example.com/member/login

「PC表示に切り替え」を行うと正常にPC表示に切り替わり、URL: https://example.com/ に遷移する。

(3)
・スマートフォン
・ログイン後「PC表示に切り替え」を行った後ログアウト
・URL: https://example.com/member/login

「スマートフォン表示に切り替え」を行っても反応しない = スマートフォン表示にならない

※ 確認環境A, B どちらでも上記の結果
※ opSkinBasicPlugin / opSkinThemePlugin どちらでも上記の結果

#4 kaoru n約1年前に更新

問題の再現確認

B.メンバー検索などのページでPC版に変更しようとすると、なぜかスマートフォン版TOPへ遷移する。その後メンバー検索などのページに戻るとPC版になっているが、他のページはスマートフォン版のまま。

確認環境A
・Debian 10.12
・PHP 7.4.28 (cli) (built: Feb 17 2022 16:16:01) ( NTS )
・MariaDB 10.3.34-MariaDB-0+deb10u1 Debian 10
・OpenPNE-3.11.x (master ブランチ)
#3485 は適用済み
・opSkinThemePlugin 1.0.16

確認環境B
・Debian 10.11
・PHP 5.6.40-57+0~20211119.60+debian10~1.gbp8a9bd1 (cli)
・MariaDB 10.3.31-MariaDB-0+deb10u1 Debian 10
・OpenPNE-3.8.x (stable-3.8.x ブランチ)
#3485 は適用済み
・opSkinThemePlugin 1.0.16

・スマートフォン
・ログイン後「メンバー検索」に遷移

「PC表示に切り替え」を行うとホーム画面に遷移してしまう
その他メニューを押下してもPC表示のまま

その後メンバー検索などのページに戻るとPC版になっているが、他のページはスマートフォン版のまま。

は再現できず

※ 確認環境A, B どちらでも上記の結果
※ opSkinBasicPlugin / opSkinThemePlugin どちらでも上記の結果

#5 kaoru n約1年前に更新

問題点

#3964-3 #3964-4 より問題点まとめ

1. スマートフォンにてログイン後「PC表示に切り替え」を行った後ログアウトした際のログイン画面にて「スマートフォン表示に切り替え」を行ってもスマートフォン表示にならない

2. スマートフォンにてログイン後「メンバー検索」に遷移し「PC表示に切り替え」を行うと、ホーム画面に遷移してしまう

このチケットでは 1 と 2 を修正します。

#6 kaoru n約1年前に更新

  • 担当者kaoru n にセット

#7 kaoru n約1年前に更新

問題の原因

1. スマートフォンにてログイン後「PC表示に切り替え」を行った後ログアウトした際のログイン画面にて「スマートフォン表示に切り替え」を行ってもスマートフォン表示にならない

https://github.com/openpne/OpenPNE3/blob/master/web/js/util.js.src#L214-L218
にて、cookie を削除するために name のみ指定して cookie を設定しているが、
設定されている cookie は、path に openpne.baseUrl が設定されているため削除できていない。

  switchSmt: function() {
    // delete cookie.
    opCookie.set(this.key);
    location.reload();
  },

2. スマートフォンにてログイン後「メンバー検索」に遷移し「PC表示に切り替え」を行うと、ホーム画面に遷移してしまう

https://github.com/openpne/OpenPNE3/blob/master/web/js/util.js.src#L209-L212
にて smtSwitch.elem に設定されている href に遷移するように設定されているが、

  switchPc: function() {
    smtSwitch.updateExpires(true);
    location.href = smtSwitch.elem.getAttribute('href');
  },

smtSwitch.elem とは id=smt-switch のエレメントであり、
https://github.com/openpne/OpenPNE3/blob/master/apps/pc_frontend/modules/default/templates/_smtMenu.php#L12
にて、常に @homepage が設定されている。

  <li><a href="<?php echo url_for('@homepage') ?>" id="smt-switch"><?php echo __('View this page on regular style') ?></a></li>

#8 kaoru n約1年前に更新

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

#9 kaoru n約1年前に更新

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

#10 Rimpei Ogawa約1年前に更新

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

#11 isao sano約1年前に更新

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

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

#12 kaoru n約1年前に更新

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

マージしました

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