この問題は本当に私の頭を傷つけています。
私はMoodleのカスタムグレードエクスポートプラグインに取り組んでおり、grade_exportクラスをサブクラス化しています:
class grade_export_sitscsv extends grade_export {
...
私が作成したフォームは2つのカスタム変数を設定するため、* process_form()*関数を実装しました。この関数は、親クラスの関数を呼び出します。
function process_form($formdata) {
$this->grade_item = preg_replace('/itemids\[([0-9]+)\]/','\1',$formdata->grade_item);
$this->sits_assnum = $formdata->sits_assnum;
parent::process_form($formdata);
}
これらのインスタンス変数が*display_preview()*関数で設定されていることがわかります。
public function display_preview() {
echo("<h2>Do we need a preview?</h2>");
echo("<p> Grade item: ".$this->grade_item.", SITS num: ".$this->sits_assnum."</p>");
}
(たとえば、Grade item:7487、SITS num:7を印刷します)。
ただし、* print_grades()*関数で変数を使用しようとすると、次のように設定されません。
public function print_grades() {
global $CFG;
echo("Grade item: ".$this->grade_item.", SITS num: ".$this->sits_assnum."\n");
... Grade item:、SITS num:を出力ファイルに出力します。
これを解決するのに役立つ提案をいただければ幸いです。