Bug(バグ) #3964
完了スマートフォン・PC間の表示切り替えに関する問題
100%
説明
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
kaoru n さんがほぼ2年前に更新
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 どちらでも上記の結果
kaoru n さんがほぼ2年前に更新
問題の再現確認¶
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 どちらでも上記の結果
kaoru n さんがほぼ2年前に更新
問題の原因¶
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>
Rimpei Ogawa さんが1年以上前に更新
- ステータス を Pending Review(レビュー待ち) から Pending Testing(テスト待ち) に変更
- 進捗率 を 50 から 70 に変更