. /** * 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 = $element->id ?? null; $data->pageid = $element->pageid ?? null; $data->name = $element->name ?? get_string('pluginname', 'customcertelement_' . $element->element); $data->element = $element->element; $data->data = $element->data ?? null; $data->font = $element->font ?? null; $data->fontsize = $element->fontsize ?? null; $data->colour = $element->colour ?? null; $data->posx = $element->posx ?? null; $data->posy = $element->posy ?? null; $data->width = $element->width ?? null; $data->refpoint = $element->refpoint ?? null; $data->alignment = $element->alignment ?? null; // Ensure the necessary class exists. if (class_exists($classname)) { return new $classname($data); } return false; } }