Bug(バグ) #2366
Minoru Takai が12年以上前に更新
h3. Overview (現象)
OpenPNE3.4.15 をインストールし、受信メッセージのあるメンバーが /message に遷移すると以下のような Fatal error が発生する。 新規にOpenPNE3.4をインストールし、/messageに遷移すると以下のようなFatal errorが発生する。
/message/sendList などでも同様のエラーが発生する。 /message/sendListなどでも同様のエラーが発生する。
Fatal error: Call to undefined function op_link_to_member() in /home/user/sns/34x.example.jp/plugins/opMessagePlugin/apps/pc_frontend/modules/message/templates/listSuccess.php on line 135
※原因がplugin側にあるという確証を得る調査はまだ行われていないため、このチケットの作成プロジェクトに誤りがあった場合、作成すべきプロジェクトに変更して下さい。
h3. 再現バージョン
* OpenPNE-3.4.15
** バンドルプラグイン opMessagePlugin-0.9.2 OpenPNE3.4.16
原因から明らかですが、 op_link_to_member() が定義されていない OpenPNE のバージョンで opMessagePlugin-0.9.2 を用いた場合に問題が生じます。 3.4.15 は opMessagePlugin-0.9.2 がバンドルされているため特に問題です。
h3. 再現ブランチ
* OpenPNE-3.4.15
* stable-3.4.x remotes/origin/stable-3.4.x
h3. 再現手順
# 新規に OpenPNE-3.4.15 を設置する 1. 新規にOpenPNE3.4を設置する(この際使用するbranchはremotes/origin/stable-3.4.x)
# メンバーを招待する(メッセージの送信相手を用意するため)
# メンバーAからメンバーBにメッセージを送信する
# メンバーAの送信箱、あるいはメンバーBの受信箱を開こうとすると、表示の途中で Fatal Error が発生する
** 一部のテンプレートの HTML のみが出力される(テンプレートの途中で処理が止まっており、CSSなど共通部分のHTMLも読み込まれていない)。 2. OpenPNE君で(/message)に遷移する
h3. Causes (原因)
op_link_to_member() は #840 によって追加されたヘルパー関数だが、 #840 の対応内容の事情により 3.4 向けのバックポートは行なわれていなかった。
つまり 3.4 系ではこの関数は使えないことになる。しかし、コア側とバージョンが対応しないプラグインにおいて op_link_to_member() を使っている箇所があり、今回の問題が生じている。
発覚しているのは opMessagePlugin であり、このプラグインで op_link_to_member() を使ったのは 0.9.2 からであるらしい。 0.9.2 においては #1995 の修正で追加されている。
opMessagePlugin-0.9.2 がバンドルされているのは OpenPNE-3.4.15, OpenPNE-3.6beta12 からである。
OpenPNE3.4.15 をインストールし、受信メッセージのあるメンバーが /message に遷移すると以下のような Fatal error が発生する。 新規にOpenPNE3.4をインストールし、/messageに遷移すると以下のようなFatal errorが発生する。
/message/sendList などでも同様のエラーが発生する。 /message/sendListなどでも同様のエラーが発生する。
Fatal error: Call to undefined function op_link_to_member() in /home/user/sns/34x.example.jp/plugins/opMessagePlugin/apps/pc_frontend/modules/message/templates/listSuccess.php on line 135
※原因がplugin側にあるという確証を得る調査はまだ行われていないため、このチケットの作成プロジェクトに誤りがあった場合、作成すべきプロジェクトに変更して下さい。
h3. 再現バージョン
* OpenPNE-3.4.15
** バンドルプラグイン opMessagePlugin-0.9.2 OpenPNE3.4.16
原因から明らかですが、 op_link_to_member() が定義されていない OpenPNE のバージョンで opMessagePlugin-0.9.2 を用いた場合に問題が生じます。 3.4.15 は opMessagePlugin-0.9.2 がバンドルされているため特に問題です。
h3. 再現ブランチ
* OpenPNE-3.4.15
* stable-3.4.x remotes/origin/stable-3.4.x
h3. 再現手順
# 新規に OpenPNE-3.4.15 を設置する 1. 新規にOpenPNE3.4を設置する(この際使用するbranchはremotes/origin/stable-3.4.x)
# メンバーを招待する(メッセージの送信相手を用意するため)
# メンバーAからメンバーBにメッセージを送信する
# メンバーAの送信箱、あるいはメンバーBの受信箱を開こうとすると、表示の途中で Fatal Error が発生する
** 一部のテンプレートの HTML のみが出力される(テンプレートの途中で処理が止まっており、CSSなど共通部分のHTMLも読み込まれていない)。 2. OpenPNE君で(/message)に遷移する
h3. Causes (原因)
op_link_to_member() は #840 によって追加されたヘルパー関数だが、 #840 の対応内容の事情により 3.4 向けのバックポートは行なわれていなかった。
つまり 3.4 系ではこの関数は使えないことになる。しかし、コア側とバージョンが対応しないプラグインにおいて op_link_to_member() を使っている箇所があり、今回の問題が生じている。
発覚しているのは opMessagePlugin であり、このプラグインで op_link_to_member() を使ったのは 0.9.2 からであるらしい。 0.9.2 においては #1995 の修正で追加されている。
opMessagePlugin-0.9.2 がバンドルされているのは OpenPNE-3.4.15, OpenPNE-3.6beta12 からである。