. abstract class feedback_item_base { protected $type; /** * constructor * */ public function __construct() { $this->init(); } //this function only can used after the call of build_editform() public function show_editform() { $this->item_form->display(); } public function is_cancelled() { return $this->item_form->is_cancelled(); } public function get_data() { if ($this->item = $this->item_form->get_data()) { return true; } return false; } public function value_type() { return PARAM_RAW; } public function value_is_array() { return false; } abstract public function init(); abstract public function build_editform($item, $feedback, $cm); abstract public function save_item(); abstract public function check_value($value, $item); abstract public function create_value($data); abstract public function compare_value($item, $dbvalue, $dependvalue); abstract public function get_presentation($data); abstract public function get_hasvalue(); abstract public function can_switch_require(); /** * @param object $worksheet a reference to the pear_spreadsheet-object * @param integer $row_offset * @param object $item the db-object from feedback_item * @param integer $groupid * @param integer $courseid * @return integer the new row_offset */ abstract public function excelprint_item(&$worksheet, $row_offset, $xls_formats, $item, $groupid, $courseid = false); /** * @param $item the db-object from feedback_item * @param string $itemnr * @param integer $groupid * @param integer $courseid * @return integer the new itemnr */ abstract public function print_analysed($item, $itemnr = '', $groupid = false, $courseid = false); /** * @param object $item the db-object from feedback_item * @param string $value a item-related value from feedback_values * @return string */ abstract public function get_printval($item, $value); /** * returns an Array with three values(typ, name, XXX) * XXX is also an Array (count of responses on type $this->type) * each element is a structure (answertext, answercount) * @param $item the db-object from feedback_item * @param $groupid if given * @param $courseid if given * @return array */ abstract public function get_analysed($item, $groupid = false, $courseid = false); /** * print the item at the edit-page of feedback * * @global object * @param object $item * @return void */ abstract public function print_item_preview($item); /** * print the item at the complete-page of feedback * * @global object * @param object $item * @param string $value * @param bool $highlightrequire * @return void */ abstract public function print_item_complete($item, $value = '', $highlightrequire = false); /** * print the item at the complete-page of feedback * * @global object * @param object $item * @param string $value * @return void */ abstract public function print_item_show_value($item, $value = ''); /** * cleans the userinput while submitting the form * * @param mixed $value * @return mixed */ abstract public function clean_input_value($value); } //a dummy class to realize pagebreaks class feedback_item_pagebreak extends feedback_item_base { protected $type = "pagebreak"; public function show_editform() { } public function is_cancelled() { } public function get_data() { } public function init() { } public function build_editform($item, $feedback, $cm) { } public function save_item() { } public function check_value($value, $item) { } public function create_value($data) { } public function compare_value($item, $dbvalue, $dependvalue) { } public function get_presentation($data) { } public function get_hasvalue() { } public function excelprint_item(&$worksheet, $row_offset, $xls_formats, $item, $groupid, $courseid = false) { } public function print_analysed($item, $itemnr = '', $groupid = false, $courseid = false) { } public function get_printval($item, $value) { } public function get_analysed($item, $groupid = false, $courseid = false) { } public function print_item_preview($item) { } public function print_item_complete($item, $value = '', $highlightrequire = false) { } public function print_item_show_value($item, $value = '') { } public function can_switch_require() { } public function value_type() { } public function clean_input_value($value) { } }