プロジェクト

全般

プロフィール

Bug(バグ) #2418

Minoru Takai12年以上前に更新

h3. 概要 Overview (現象)

OpenPNE にはグローバルナビ、ローカルナビがある。これは3系と2系両方に存在するが、3系と2系では項目が異なっている。

opSkinClassicPlugin は、3系で2系のデザインを模倣するスキンだが、これを用いると2系のナビ項目の名称が表示されてしまい、次の問題が生じる。

* (P1) 2系にしか存在しない(3系で実装されていない)ナビ項目が機能しない(クリックできない項目が表示されている)
2.14.x から 3.6.x へのバージョンアップし,ログイン後のホーム画面でグローバルナビにカーソルを合わせても色が変わりません.
* (P2) 3系にしか存在しないナビ項目が表示できない(項目名は2系で用いている画像で表示されている) 但し,「マイホーム」と「最新日記」は色が変わりクリック可能です.

これとは別に、次の問題が生じている。 さらに調査した結果、2系からのバージョンアップは特に関係なく、opSkinClassicPluginに切り替えるとこの問題は再現します。

h3. 再現バージョン

* (P3) 3系に存在するナビ項目のほとんどが機能していない(クリックできない) OpenPNE3.6.x

このチケットでは (P3) を扱う。

h3. 補足 再現手順

opSkinClassicPlugin を用いなければよいという話ではあるが、2系からのコンバートを行ったSNSはデフォルトで opSkinClassicPlugin が使われる。これを加味するとこの問題がどれほど重大であるかが考えやすいかもしれない。 2.14.x から 3.6.x へのバージョンアップ
ログイン後のグローバルナビにカーソルを合わせる


h3. バージョン Causes (原因)

* OpenPNE-3.6.x で生じている(ログアウトなど基本機能がクリックできない) バグ発見時のチャットログより転載
** stable-3.6.x ブランチ <pre>

17:46:53 takai:
opSkinClassicPlugin の実装不備(バグ)の可能性が高いです

** master ブランチ

OpenPNE-3.4.x では、ログアウトなどの基本機能はクリックできる。しかし 3.4.x でも、実装されているがクリックできないナビ項目が存在するかもしれない(後述の原因を参照)。

h3. 原因

この問題は主に次の 2 つの原因によるものである。

* (C1) opSkinClassicPlugin の
// 原因自体は CSS に記述されているセレクタと、実際に出力される HTML 上の id 値が一致していない(3.6.x 以降) に書かれているグローバルナビに関するIDセレクタと、HTMLに出力されているグローバルナビのIDが一致していない(アンダースコアの個数がまちまち)なことですが、たぶんバグが放置されている状況だと想います
* (C2) 3系で新たに実装された機能(バンドルされたプラグインで実装された機能)に対応するナビ項目について、そのナビ項目を機能させるために opSkinClassicPlugin の CSS を書き換える(追記する)必要があるが、それを行なっていない(3.6.x 以降、もしかしたら 3.4.x でもあるかもしれない) </pre>

h3. 修正方針 Way to fix (修正内容)

原因の (C2) については CSS に追記する対応をする。

(C1) について、 3.6.x 以降で生じているが 3.4.x では生じていない点については #1004 の修正(3.5.2 対象)がきっかけであり、この問題の根本的な原因は #257 の commit:3da8aa22 で定義されている "op_url_to_id() の定義":http://redmine.openpne.jp/projects/op3/repository/revisions/3da8aa22c389233af40028edacf5633b4f8edf24/diff/lib/helper/opUtilHelper.php か使い方 ( "glovalNav":http://redmine.openpne.jp/projects/op3/repository/revisions/3da8aa22c389233af40028edacf5633b4f8edf24/diff/apps/pc_frontend/modules/default/templates/_globalNav.php / "localNav":http://redmine.openpne.jp/projects/op3/repository/revisions/3da8aa22c389233af40028edacf5633b4f8edf24/diff/apps/pc_frontend/modules/default/templates/_localNav.php ) が誤っていることである。

(C1) については次のいずれかの方針で修正する。

* (S1): HTML 側の出力は修正せずに CSS 側のセレクタを修正する
* (S2): HTML 側の出力(恐らく op_url_to_id() 関数の定義)を修正する
修正内容を記入

戻る