From ac3ac17e8ad977e9f20ca19a2ebd6c4d4f14ccd3 Mon Sep 17 00:00:00 2001 From: Mark Nelson Date: Wed, 24 Jul 2013 19:34:43 +0800 Subject: [PATCH] Introduced the grade item name element --- .../en/customcertelement_gradeitemname.php | 27 ++++++ element/gradeitemname/lib.php | 83 +++++++++++++++++++ element/gradeitemname/version.php | 29 +++++++ 3 files changed, 139 insertions(+) create mode 100644 element/gradeitemname/lang/en/customcertelement_gradeitemname.php create mode 100644 element/gradeitemname/lib.php create mode 100644 element/gradeitemname/version.php diff --git a/element/gradeitemname/lang/en/customcertelement_gradeitemname.php b/element/gradeitemname/lang/en/customcertelement_gradeitemname.php new file mode 100644 index 0000000..97fada3 --- /dev/null +++ b/element/gradeitemname/lang/en/customcertelement_gradeitemname.php @@ -0,0 +1,27 @@ +. + +/** + * Strings for component 'customcertelement_gradeitemname', language 'en'. + * + * @package customcertelement_gradeitemname + * @copyright 2013 Mark Nelson + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +$string['gradeitem'] = 'Grade item'; +$string['gradeitem_help'] = 'The name of the selected item will be displayed on the PDF.'; +$string['pluginname'] = 'Grade item name'; diff --git a/element/gradeitemname/lib.php b/element/gradeitemname/lib.php new file mode 100644 index 0000000..5ceba8e --- /dev/null +++ b/element/gradeitemname/lib.php @@ -0,0 +1,83 @@ +. + +defined('MOODLE_INTERNAL') || die('Direct access to this script is forbidden.'); + +require_once($CFG->dirroot . '/mod/customcert/element/element.class.php'); +require_once($CFG->dirroot . '/mod/customcert/element/grade/lib.php'); + +/** + * The customcert element gradeitemname's core interaction API. + * + * @package customcertelement_gradeitemname + * @copyright 2013 Mark Nelson + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ +class customcert_element_gradeitemname extends customcert_element_base { + + /** + * This function renders the form elements when adding a customcert element. + * + * @param mod_customcert_edit_element_form $mform the edit_form instance + */ + public function render_form_elements($mform) { + $mform->addElement('select', 'gradeitem', get_string('gradeitem', 'customcertelement_gradeitemname'), + customcert_element_grade::get_grade_items()); + $mform->addHelpButton('gradeitem', 'gradeitem', 'customcertelement_gradeitemname'); + + parent::render_form_elements($mform); + } + + /** + * This will handle how form data will be saved into the data column in the + * customcert_elements table. + * + * @param stdClass $data the form data + * @return string the text + */ + public function save_unique_data($data) { + return $data->gradeitem; + } + + /** + * Handles rendering the element on the pdf. + * + * @param pdf $pdf the pdf object + * @param bool $preview true if it is a preview, false otherwise + */ + public function render($pdf, $preview) { + global $DB; + + // Get the course module information. + $cm = $DB->get_record('course_modules', array('id' => $this->element->data), '*', MUST_EXIST); + $module = $DB->get_record('modules', array('id' => $cm->module), '*', MUST_EXIST); + + // Get the name of the item. + $itemname = $DB->get_field($module->name, 'name', array('id' => $cm->instance), MUST_EXIST); + + parent::render_content($pdf, $itemname); + } + + /** + * Sets the data on the form when editing an element. + * + * @param mod_customcert_edit_element_form $mform the edit_form instance + */ + public function definition_after_data($mform) { + $this->element->gradeitem = $this->element->data; + parent::definition_after_data($mform); + } +} diff --git a/element/gradeitemname/version.php b/element/gradeitemname/version.php new file mode 100644 index 0000000..ed10a5e --- /dev/null +++ b/element/gradeitemname/version.php @@ -0,0 +1,29 @@ +. + +/** + * This file contains the version information for the gradeitemname plugin. + * + * @package customcertelement_gradeitemname + * @copyright 2013 Mark Nelson + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +defined('MOODLE_INTERNAL') || die('Direct access to this script is forbidden.'); + +$plugin->version = 2013072401; +$plugin->requires = 2013040500; // Requires this Moodle version. +$plugin->component = 'customcertelement_gradeitemname';