这个问题真的很伤我的头。
我正在为 Moodle 开发一个自定义等级导出插件,并将grade_export 类划分为子类:
class grade_export_sitscsv extends grade_export {
...
我创建的表单设置了两个自定义变量,因此我实现了一个 *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:打印到我的输出文件中。
我将不胜感激任何可以帮助我解决此问题的建议。