Bug(バグ) #2366
Minoru Takai さんが約13年前に更新
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 からである。