這個問題真的讓我傷腦筋。實例變量未設置在類的一個函數中
我工作的一個定製級出口插件的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>");
}
(打印件,例如,等級項目:7487,SITS號碼:7)。
然而,當我嘗試使用變量在* print_grades()*功能,它們不設置:
public function print_grades() {
global $CFG;
echo("Grade item: ".$this->grade_item.", SITS num: ".$this->sits_assnum."\n");
...打印Grade項目:坐鎮民:我的輸出文件。
我希望有任何建議可以幫助我解決這個問題。
請將您要調用的代碼發佈到print_grades()。 – 2013-02-13 18:32:50
''print_grades()'在'process_form()'之後被調用嗎? – mkaatman 2013-02-13 18:33:52
謝謝,所有。我在一位同事的幫助下找出了答案...... 我(愚蠢地)期待同一個對象在範圍內一路通過。而是將數據寫入中間頁面的表單中,然後在提交表單後創建對象的新實例。我必須重寫grade_export的get_export_params()方法(添加我的參數),然後將它們添加到我的export.php文件中,並確保它們傳遞給構造函數。 D'Oh! – robhogg 2013-02-13 19:54:04