. /** * Contains the factory class responsible for creating custom certificate instances. * * @package mod_customcert * @copyright 2017 Mark Nelson * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ namespace mod_customcert; defined('MOODLE_INTERNAL') || die(); /** * The factory class responsible for creating custom certificate instances. * * @package mod_customcert * @copyright 2017 Mark Nelson * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ class element_factory { /** * Returns an instance of the element class. * * @param \stdClass $element the element * @return \mod_customcert\element|bool returns the instance of the element class, or false if element * class does not exists. */ public static function get_element_instance($element) { // Get the class name. $classname = '\\customcertelement_' . $element->element . '\\element'; $data = new \stdClass(); $data->id = isset($element->id) ? $element->id : null; $data->pageid = isset($element->pageid) ? $element->pageid : null; $data->name = isset($element->name) ? $element->name : get_string('pluginname', 'customcertelement_' . $element->element); $data->element = $element->element; $data->data = isset($element->data) ? $element->data : null; $data->font = isset($element->font) ? $element->font : null; $data->fontsize = isset($element->fontsize) ? $element->fontsize : null; $data->colour = isset($element->colour) ? $element->colour : null; $data->posx = isset($element->posx) ? $element->posx : null; $data->posy = isset($element->posy) ? $element->posy : null; $data->width = isset($element->width) ? $element->width : null; $data->refpoint = isset($element->refpoint) ? $element->refpoint : null; // Ensure the necessary class exists. if (class_exists($classname)) { return new $classname($data); } return false; } }