Bug(バグ) #2366
完了新規の環境にも関わらず/messageに遷移するとFatal errorが発生する
100%
説明
Overview (現象)¶
OpenPNE3.4.15 をインストールし、受信メッセージのあるメンバーが /message に遷移すると以下のような Fatal error が発生する。
/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側にあるという確証を得る調査はまだ行われていないため、このチケットの作成プロジェクトに誤りがあった場合、作成すべきプロジェクトに変更して下さい。
再現バージョン¶
- OpenPNE-3.4.15
- バンドルプラグイン opMessagePlugin-0.9.2
原因から明らかですが、 op_link_to_member() が定義されていない OpenPNE のバージョンで opMessagePlugin-0.9.2 を用いた場合に問題が生じます。 3.4.15 は opMessagePlugin-0.9.2 がバンドルされているため特に問題です。
再現ブランチ¶
- OpenPNE-3.4.15
- stable-3.4.x
再現手順¶
- 新規に OpenPNE-3.4.15 を設置する
- メンバーを招待する(メッセージの送信相手を用意するため)
- メンバーAからメンバーBにメッセージを送信する
- メンバーAの送信箱、あるいはメンバーBの受信箱を開こうとすると、表示の途中で Fatal Error が発生する
- 一部のテンプレートの HTML のみが出力される(テンプレートの途中で処理が止まっており、CSSなど共通部分のHTMLも読み込まれていない)。
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 からである。