アンケートレポートのエラー

2018年2月7日 at 1:21

ローカルのXAMPP5.6.8でconcrete5 5.7.5.9でアンケートを作成した場合は、管理画面のレポートでアンケート結果のグラフページを閲覧できました。
同様に、XAMPP7.1.11でconcrete5 5.7.5.13でアンケートを作成した場合は、管理画面のレポートでアンケート結果のグラフページが下記のエラーになり閲覧できません。

予期せぬエラーが発生しました。
Fatal error: Using $this when not in object context

Coreserverのphp5.59とCoreserverのphp7.1の環境でconcrete5 8.2.1 をインストールしてアンケートページを作成し、管理画面のレポートでアンケート結果のリンクをクリックしてもエラーは表示されませんが、結果ページに遷移せず、結果のグラフは閲覧できません。

何か対処方法等ありましたら、ご指導お願いします。

タグ:

Re: アンケートレポートのエラー

2018年2月18日 at 0:17
バージョンアップすると上書きされて消えてしまいそうですが、下記のファイルを変更したら、一応管理画面でグラフが表示されましたので報告します。

管理画面のアンケート結果を生成するページらしきページ。
concrete/controllers/single_page/dashboard/reports/surveys.php
このファイルの中で、concrete/blocks/survey/controller.phpに記述されている
displayChart($bID, $cID);を下記のように呼び出しているみたいですが、なぜかここでエラーに。

SurveyBlockController::displayChart($bID, $cID); ここでエラーが発生しているみたい。

そこで、concrete/blocks/survey/controller.php ①の部分を丸ごとsurveys.phpにコピーしました。

use Database; // <--- これもコピーしました

class Surveys extends DashboardPageController
{
...
...

private function displayChart($bID, $cID) // <--- ① private にしました
{
...... // 中身は丸ごとコピーしました
}
...
...

public function viewDetail($bID = 0, $cID = 0)
{
if ($bID > 0 && $cID > 0) {
$this->getSurveyDetails($bID, $cID);
$this->displayChart($bID, $cID); // <--------------------- ②こっちを呼び出せば正しく描画できました!
// SurveyBlockController::displayChart($bID, $cID); // <--- ①これを呼び出そうとするとなぜかエラーに
} else { // Otherwise, redirect the page to overview
$this->redirect('/dashboard/reports/surveys');
}
}
...
...
}

もっとしっかりした対処方法があれば教えていただきたく存じます。
※この現象はウチ以外の方は、出ないのでしょうか...。
 

Re: アンケートレポートのエラー

2018年2月19日 at 13:52
お手数ですが、エラーが出るPHPのバージョンを教えていただけますでしょうか。
 

Re: アンケートレポートのエラー

2018年2月20日 at 1:18
ご連絡ありがとうございます。
上記エラーが出るPHP環境とconcrete5のバージョンです。また、リンク先のパラメータが1つのときと2つあるときがあって、2つあればグラフが見えました。修正前のパラメータが1つだったかどうかわかりません。

■ローカルサーバー PHP7.1.11(XAMPP7.1.11)
concrete5 5.7.5.13(エラーが出る)→ 修正後は正常に動作する。/viewDetail/32/155 と最後のパラメータは2つある
concrete5 8.2.1(エラーにはならないが質問項目のリンク先が開けず、画面が戻ってくる。/viewDetail/519 と最後のパラメータが1つしかない)

■ローカルサーバー PHP5.6.8(XAMPP5.6.8)
concrete5 5.7.5.13(正常に動作する。/viewDetail/163/183 と最後のパラメータは2つある)
concrete5 5.7.5.9 (正常に動作する。/viewDetail/180/196 と最後のパラメータは2つある)

■coreserver php5.6.32
concrete5 8.3.1 (エラーにはならないが質問項目のリンク先が開けず、画面が戻ってくる。/viewDetail/170 と最後のパラメータが1つしかない)

■coreserver PHP7.1.12
concrete5 8.2.1 (エラーが出る)→ 修正後は正常に動作する。/viewDetail/974/312 と最後のパラメータは2つある。ただし、投稿数0件のリンク先は/viewDetail/1036 と最後のパラメータが1つしかなく画面が遷移しない

以上です。
よろしくお願いします。