. /** * Defines a node in my profile page navigation. * * @package core_user * @copyright 2015 onwards Ankit Agarwal * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ namespace core_user\output\myprofile; defined('MOODLE_INTERNAL') || die(); /** * Defines a node in my profile page navigation. * * @since Moodle 2.9 * @package core_user * @copyright 2015 onwards Ankit Agarwal * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ class node implements \renderable { /** * @var string Name of parent category. */ private $parentcat; /** * @var string Name of this node. */ private $name; /** * @var string Name of the node after which this node should appear. */ private $after; /** * @var string Title of this node. */ private $title; /** * @var string|\moodle_url Url that this node should link to. */ private $url; /** * @var string Content to display under this node. */ private $content; /** * @var string|\pix_icon Icon for this node. */ private $icon; /** * @var string HTML class attribute for this node. Classes should be separated by a space, e.g. 'class1 class2' */ private $classes; /** * @var array list of properties accessible via __get. */ private $properties = array('parentcat', 'after', 'name', 'title', 'url', 'content', 'icon', 'classes'); /** * Constructor for the node. * * @param string $parentcat Name of parent category. * @param string $name Name of this node. * @param string $title Title of this node. * @param null|string $after Name of the node after which this node should appear. * @param null|string|\moodle_url $url Url that this node should link to. * @param null|string $content Content to display under this node. * @param null|string|\pix_icon $icon Icon for this node. * @param null|string $classes a list of css classes. */ public function __construct($parentcat, $name, $title, $after = null, $url = null, $content = null, $icon = null, $classes = null) { $this->parentcat = $parentcat; $this->after = $after; $this->name = $name; $this->title = $title; $this->url = is_null($url) ? null : new \moodle_url($url); $this->content = $content; $this->icon = $icon; $this->classes = $classes; } /** * Magic get method. * * @param string $prop property to get. * * @return mixed * @throws \coding_exception */ public function __get($prop) { if (in_array($prop, $this->properties)) { return $this->$prop; } throw new \coding_exception('Property "' . $prop . '" doesn\'t exist'); } }