Display the course short name (#415)
- Added a new select box to choose from course name or short description to display.
This commit is contained in:
parent
227b162721
commit
d6d10d21ac
2 changed files with 71 additions and 5 deletions
|
@ -35,6 +35,33 @@ defined('MOODLE_INTERNAL') || die();
|
|||
*/
|
||||
class element extends \mod_customcert\element {
|
||||
|
||||
/**
|
||||
* This function renders the form elements when adding a customcert element.
|
||||
*
|
||||
* @param \MoodleQuickForm $mform the edit_form instance
|
||||
*/
|
||||
public function render_form_elements($mform) {
|
||||
|
||||
// The course name display options.
|
||||
$mform->addElement('select', 'coursenamedisplay', get_string('coursenamedisplay', 'customcertelement_coursename'),
|
||||
self::get_course_name_display_options());
|
||||
$mform->setType('coursenamedisplay', PARAM_ALPHA);
|
||||
$mform->addHelpButton('coursenamedisplay', 'coursenamedisplay', 'customcertelement_coursename');
|
||||
|
||||
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->coursenamedisplay;
|
||||
}
|
||||
|
||||
/**
|
||||
* Handles rendering the element on the pdf.
|
||||
*
|
||||
|
@ -43,7 +70,7 @@ class element extends \mod_customcert\element {
|
|||
* @param \stdClass $user the user we are rendering this for
|
||||
*/
|
||||
public function render($pdf, $preview, $user) {
|
||||
\mod_customcert\element_helper::render_content($pdf, $this, $this->get_course_name());
|
||||
\mod_customcert\element_helper::render_content($pdf, $this, $this->get_course_name_detail());
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -55,19 +82,54 @@ class element extends \mod_customcert\element {
|
|||
* @return string the html
|
||||
*/
|
||||
public function render_html() {
|
||||
return \mod_customcert\element_helper::render_html_content($this, $this->get_course_name());
|
||||
return \mod_customcert\element_helper::render_html_content($this, $this->get_course_name_detail());
|
||||
}
|
||||
|
||||
/**
|
||||
* Helper function that returns the category name.
|
||||
* Sets the data on the form when editing an element.
|
||||
*
|
||||
* @param \MoodleQuickForm $mform the edit_form instance
|
||||
*/
|
||||
public function definition_after_data($mform) {
|
||||
if (!empty($this->get_data())) {
|
||||
$element = $mform->getElement('coursenamedisplay');
|
||||
$element->setValue($this->get_data());
|
||||
}
|
||||
parent::definition_after_data($mform);
|
||||
}
|
||||
|
||||
/**
|
||||
* Helper function that returns the selected course name detail (i.e. name or short description) for display.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
protected function get_course_name() : string {
|
||||
protected function get_course_name_detail() : string {
|
||||
$courseid = \mod_customcert\element_helper::get_courseid($this->get_id());
|
||||
$course = get_course($courseid);
|
||||
$context = \mod_customcert\element_helper::get_context($this->get_id());
|
||||
|
||||
return format_string($course->fullname, true, ['context' => $context]);
|
||||
// The name field to display.
|
||||
$field = $this->get_data();
|
||||
// The name value to display.
|
||||
$value = $course->fullname;
|
||||
if ($field == 'courseshortdescription') {
|
||||
$value = $course->shortname;
|
||||
}
|
||||
|
||||
return format_string($value, true, ['context' => $context]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Helper function to return all the possible name display options.
|
||||
*
|
||||
* @return array returns an array of name options
|
||||
*/
|
||||
public static function get_course_name_display_options() {
|
||||
$coursenamedisplayoptions = array(
|
||||
'coursename' => get_string('coursename', 'customcertelement_coursename'),
|
||||
'courseshortdescription' => get_string('courseshortdescription', 'customcertelement_coursename')
|
||||
);
|
||||
|
||||
return $coursenamedisplayoptions;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -24,3 +24,7 @@
|
|||
|
||||
$string['pluginname'] = 'Course name';
|
||||
$string['privacy:metadata'] = 'The Course name plugin does not store any personal data.';
|
||||
$string['coursenamedisplay'] = 'Course name / short description';
|
||||
$string['coursenamedisplay_help'] = 'Course name or short description you wish to display on certificate.';
|
||||
$string['coursename'] = 'Course name';
|
||||
$string['courseshortdescription'] = 'Course short description';
|
||||
|
|
Loading…
Reference in a new issue