. /** * This file contains the customcert element categoryname's core interaction API. * * @package customcertelement_categoryname * @copyright 2013 Mark Nelson * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ namespace customcertelement_categoryname; defined('MOODLE_INTERNAL') || die(); /** * The customcert element categoryname's core interaction API. * * @package customcertelement_categoryname * @copyright 2013 Mark Nelson * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ class element extends \mod_customcert\element { /** * Handles rendering the element on the pdf. * * @param \pdf $pdf the pdf object * @param bool $preview true if it is a preview, false otherwise * @param \stdClass $user the user we are rendering this for */ public function render($pdf, $preview, $user) { \mod_customcert\element_helper::render_content($pdf, $this, self::get_category_name($this->get_id())); } /** * Render the element in html. * * This function is used to render the element when we are using the * drag and drop interface to position it. * * @return string the html */ public function render_html() { global $COURSE; $categoryname = format_string($COURSE->fullname, true, ['context' => \context_course::instance($COURSE->id)]); return \mod_customcert\element_helper::render_html_content($this, $categoryname); } /** * Helper function that returns the category name. * * @param int $elementid * @return string */ protected static function get_category_name($elementid) { global $DB, $SITE; $courseid = \mod_customcert\element_helper::get_courseid($elementid); $course = get_course($courseid); // Check that there is a course category available. if (!empty($course->category)) { $categoryname = $DB->get_field('course_categories', 'name', array('id' => $course->category), MUST_EXIST); return format_string($categoryname, true, ['context' => \context_course::instance($courseid)]); } else { // Must be in a site template. return format_string($SITE->fullname, true, ['context' => \context_system::instance()]); } } }