protected function render_custom_menu(custom_menu $menu) { $langs = get_string_manager()->get_list_of_translations(); $haslangmenu = $this->lang_menu() != ''; if (!$menu->has_children() && !$haslangmenu) { return ''; } if ($haslangmenu) { $strlang = get_string('language'); $currentlang = current_language(); if (isset($langs[$currentlang])) { $currentlang = $langs[$currentlang]; } else { $currentlang = $strlang; } $this->language = $menu->add($currentlang, new moodle_url('#'), $strlang, 10000); foreach ($langs as $langtype => $langname) { $this->language->add($langname, new moodle_url($this->page->url, array('lang' => $langtype)), $langname); } } $children = $menu->get_children(); if (count($children) == 0) { return false; } $content = ''; foreach ($menu->get_children() as $item) { $content .= $this->render_custom_menu_item($item, 1); } return $content; }
protected function render_custom_menu(custom_menu $menu) { // TODO: eliminate this duplicated logic, it belongs in core, not // here. See MDL-39565. $children = $menu->get_children(); if (count($children) == 0) { return false; } $content = ''; foreach ($menu->get_children() as $item) { $content .= $this->render_custom_menu_item($item, 1); } return $content; }
/** * Renders a custom menu object (located in outputcomponents.php) * * The custom menu this method override the render_custom_menu function * in outputrenderers.php * @staticvar int $menucount * @param custom_menu $menu * @return string */ protected function render_custom_menu(custom_menu $menu) { // If the menu has no children return an empty string if (!$menu->has_children()) { return ''; } // Add a login or logout link if (isloggedin()) { $branchlabel = get_string('logout'); $branchurl = new moodle_url('/login/logout.php'); } else { $branchlabel = get_string('login'); $branchurl = new moodle_url('/login/index.php'); } $branch = $menu->add($branchlabel, $branchurl, $branchlabel, -1); // Initialise this custom menu $content = html_writer::start_tag('ul', array('class' => 'dropdown dropdown-horizontal')); // Render each child foreach ($menu->get_children() as $item) { $content .= $this->render_custom_menu_item($item); } // Close the open tags $content .= html_writer::end_tag('ul'); // Return the custom menu return $content; }
protected function render_custom_menu(custom_menu $menu) { global $CFG; // TODO: eliminate this duplicated logic, it belongs in core, not // here. See MDL-39565. $addlangmenu = true; $langs = get_string_manager()->get_list_of_translations(); if (count($langs) < 2 or empty($CFG->langmenu) or $this->page->course != SITEID and !empty($this->page->course->lang)) { $addlangmenu = false; } if (!$menu->has_children() && $addlangmenu === false) { return ''; } if ($addlangmenu) { $strlang = get_string('language'); $currentlang = current_language(); if (isset($langs[$currentlang])) { $currentlang = $langs[$currentlang]; } else { $currentlang = $strlang; } $this->language = $menu->add($currentlang, new moodle_url('#'), $strlang, 10000); foreach ($langs as $langtype => $langname) { $this->language->add($langname, new moodle_url($this->page->url, array('lang' => $langtype)), $langname); } } $content = '<ul class="nav">'; foreach ($menu->get_children() as $item) { $content .= $this->render_custom_menu_item($item, 1); } return $content . '</ul>'; }
/** * Renders a custom menu object (located in outputcomponents.php) * * The custom menu this method override the render_custom_menu function * in outputrenderers.php * @staticvar int $menucount * @param custom_menu $menu * @return string */ protected function render_custom_menu(custom_menu $menu) { // If the menu has no children return an empty string if (!$menu->has_children()) { return ''; } /** Add a login or logout link if (isloggedin()) { $branchlabel = get_string('logout'); $branchurl = new moodle_url('/login/logout.php'); } else { $branchlabel = get_string('login'); $branchurl = new moodle_url('/login/index.php'); } $branch = $menu->add($branchlabel, $branchurl, $branchlabel, -1); **/ // Initialise this custom menu $content = html_writer::start_tag('ul', array('class' => 'dropdown dropdown-horizontal')); // Insert "Home" icon link into menu $content .= html_writer::start_tag('li', array('class' => 'first')); $content .= html_writer::tag('a', html_writer::empty_tag('img', array('src' => $this->pix_url('home_icon', 'theme'), 'alt' => 'Home')), array('href' => '/')); $content .= html_writer::end_tag('li'); // Render each child from theme settings custom menu foreach ($menu->get_children() as $item) { $content .= $this->render_custom_menu_item($item); } // Close the open tags $content .= html_writer::end_tag('ul'); // Return the custom menu return $content; }
/** * Renders a custom menu object (located in outputcomponents.php) * * The custom menu this method override the render_custom_menu function * in outputrenderers.php * @staticvar int $menucount * @param custom_menu $menu * @return string */ protected function render_custom_menu(custom_menu $menu) { // If the menu has no children return an empty string if (!$menu->has_children()) { return ''; } // Initialise this custom menu $content = html_writer::start_tag('ul', array('class'=>'dropdown dropdown-horizontal')); // Render each child foreach ($menu->get_children() as $item) { $content .= $this->render_custom_menu_item($item); } // Close the open tags $content .= html_writer::end_tag('ul'); // Return the custom menu return $content; }
protected function render_custom_menu(custom_menu $menu) { foreach ($menu->get_children() as $item) { $items[] = $this->render_custom_menu_item($item); } if (isset($items)) { return html::ul('nav', $items); } else { return ''; } }
protected function render_header_toggle_menu(custom_menu $menu) { $headertoggle = html_writer::tag('i', '', array('class' => 'headertoggle fa fa-expand')); $menu->add($headertoggle, new moodle_url('#'), get_string('headertoggle', 'theme_campus'), 10001); $content = html_writer::start_tag('ul', array('class' => 'nav headertogglemenu')); foreach ($menu->get_children() as $item) { $content .= $this->render_custom_menu_item($item, 1); } $content .= html_writer::end_tag('ul'); return $content; }
protected function render_custom_menu(custom_menu $menu) { global $CFG, $USER; // TODO: eliminate this duplicated logic, it belongs in core, not // here. See MDL-39565. // Start custom add category and courses to menu //http://docs.moodle.org/dev/Adding_courses_and_categories_to_the_custom_menu /* require_once($CFG->dirroot.'/course/lib.php'); $branch = $menu->add(get_string('courses', 'theme_parksboot2'), null, null, 10000); $categorytree = get_course_category_tree(); */ // -- end -- $content = '<ul class="nav navbar-nav">'; $content .= '<li><a href="' . $CFG->wwwroot . '">Home</a></li>'; // Start custom add category and courses to menu /*foreach ($categorytree as $category) { $content .= $this->add_category_to_custommenu($branch, $category); }*/ // -- end -- foreach ($menu->get_children() as $item) { $content .= $this->render_custom_menu_item($item, 1); } return $content . '</ul>'; }
protected function render_user_menu(custom_menu $menu) { global $CFG, $USER, $DB, $PAGE; $addusermenu = true; $addlangmenu = true; $addmessagemenu = true; if (!isloggedin() || isguestuser()) { $addmessagemenu = false; } if ($addmessagemenu) { $messages = $this->get_user_messages(); $messagecount = count($messages); $messagemenu = $menu->add('<i class="fa fa-envelope-o"></i>' . html_writer::tag('ot', $messagecount), new moodle_url('#'), get_string('messages', 'message'), 9999); foreach ($messages as $message) { if (!$message->from) { continue; } $senderpicture = new user_picture($message->from); $senderpicture->link = false; $senderpicture = $this->render($senderpicture); $messagecontent = $senderpicture; $messagecontent .= html_writer::start_span('msg-body'); $messagecontent .= html_writer::start_span('msg-title'); $messagecontent .= html_writer::span($message->from->firstname . ': ', 'msg-sender'); $messagecontent .= $message->text; $messagecontent .= html_writer::end_span(); $messagecontent .= html_writer::start_span('msg-time'); $messagecontent .= html_writer::tag('i', '', array('class' => 'icon-time')); $messagecontent .= html_writer::span($message->date); $messagecontent .= html_writer::end_span(); $messageurl = new moodle_url('/message/index.php', array('user1' => $USER->id, 'user2' => $message->from->id)); $messagemenu->add($messagecontent, $messageurl, $message->state); } } $langs = get_string_manager()->get_list_of_translations(); if (count($langs) < 2 or empty($CFG->langmenu) or $this->page->course != SITEID and !empty($this->page->course->lang)) { $addlangmenu = false; } if ($addlangmenu) { $language = $menu->add(get_string('language'), new moodle_url('#'), get_string('language'), 10000); foreach ($langs as $langtype => $langname) { $language->add($langname, new moodle_url($this->page->url, array('lang' => $langtype)), $langname); } } if ($addusermenu) { if (isloggedin() && !isguestuser()) { $usermenu = $menu->add('<img class="profilepic" src="' . $CFG->wwwroot . '/user/pix.php?file=/' . $USER->id . '/f1.jpg" width="80" height="80" title="' . $USER->firstname . ' ' . $USER->lastname . '" alt="' . $USER->firstname . ' ' . $USER->lastname . '" />' . fullname($USER), new moodle_url('#'), fullname($USER), 10001); if (!empty($PAGE->theme->settings->enablemy)) { $usermenu->add('<i class="fa fa-file"></i>' . get_string('enablemy', 'theme_keats'), new moodle_url('/my', array('id' => $USER->id)), get_string('enablemy', 'theme_keats')); } if (!empty($PAGE->theme->settings->enableprofile)) { $usermenu->add('<i class="fa fa-user"></i>' . get_string('viewprofile'), new moodle_url('/user/profile.php', array('id' => $USER->id)), get_string('viewprofile')); } if (!empty($PAGE->theme->settings->enableeditprofile)) { $usermenu->add('<i class="fa fa-cog"></i>' . get_string('editmyprofile'), new moodle_url('/user/edit.php', array('id' => $USER->id)), get_string('editmyprofile')); } if (!empty($PAGE->theme->settings->enablemessages)) { $usermenu->add('<i class="fa fa-comments"></i>' . get_string('enablemessages', 'theme_keats'), new moodle_url('/message/index.php', array()), get_string('enablemessages', 'theme_keats')); } if (!empty($PAGE->theme->settings->enableprivatefiles)) { $usermenu->add('<i class="fa fa-file"></i>' . get_string('privatefiles', 'block_private_files'), new moodle_url('/user/files.php', array('id' => $USER->id)), get_string('privatefiles', 'block_private_files')); } if (!empty($PAGE->theme->settings->enablebadges)) { $usermenu->add('<i class="fa fa-certificate"></i>' . get_string('badges'), new moodle_url('/badges/mybadges.php', array('id' => $USER->id)), get_string('badges')); } if (!empty($PAGE->theme->settings->enablecalendar)) { $usermenu->add('<i class="fa fa-calendar"></i>' . get_string('pluginname', 'block_calendar_month'), new moodle_url('/calendar/view.php', array('id' => $USER->id)), get_string('pluginname', 'block_calendar_month')); } // Add custom links to menu $customlinksnum = empty($PAGE->theme->settings->usermenulinks) ? false : $PAGE->theme->settings->usermenulinks; if ($customlinksnum != 0) { foreach (range(1, $customlinksnum) as $customlinksnumber) { $cli = "customlinkicon{$customlinksnumber}"; $cln = "customlinkname{$customlinksnumber}"; $clu = "customlinkurl{$customlinksnumber}"; if (!empty($PAGE->theme->settings->enablecalendar)) { $usermenu->add('<i class="fa fa-' . $PAGE->theme->settings->{$cli} . '"></i>' . $PAGE->theme->settings->{$cln}, new moodle_url($PAGE->theme->settings->{$clu}, array('id' => $USER->id)), $PAGE->theme->settings->{$cln}); } } } $usermenu->add('<i class="fa fa-lock"></i>' . get_string('logout'), new moodle_url('/login/logout.php', array('sesskey' => sesskey(), 'loginpage' => '1')), get_string('logout')); } else { echo '<a href="' . $CFG->wwwroot . '/login/index.php">' . get_string('login') . '</a>'; } } $content = '<ul class="nav navbar-nav navbar-right">'; foreach ($menu->get_children() as $item) { $content .= $this->render_custom_menu_item($item, 1); } return $content . '</ul>'; }
/** * Renders a custom menu object (located in outputcomponents.php) * * The custom menu this method produces makes use of the YUI3 menunav widget * and requires very specific html elements and classes. * * @staticvar int $menucount * @param custom_menu $menu * @return string */ protected function render_custom_menu(custom_menu $menu) { static $menucount = 0; // If the menu has no children return an empty string if (!$menu->has_children()) { return ''; } // Increment the menu count. This is used for ID's that get worked with // in JavaScript as is essential $menucount++; // Initialise this custom menu (the custom menu object is contained in javascript-static $jscode = js_writer::function_call_with_Y('M.core_custom_menu.init', array('custom_menu_'.$menucount)); $jscode = "(function(){{$jscode}})"; $this->page->requires->yui_module('node-menunav', $jscode); // Build the root nodes as required by YUI $content = html_writer::start_tag('div', array('id'=>'custom_menu_'.$menucount, 'class'=>'yui3-menu yui3-menu-horizontal javascript-disabled custom-menu')); $content .= html_writer::start_tag('div', array('class'=>'yui3-menu-content')); $content .= html_writer::start_tag('ul'); // Render each child foreach ($menu->get_children() as $item) { $content .= $this->render_custom_menu_item($item); } // Close the open tags $content .= html_writer::end_tag('ul'); $content .= html_writer::end_tag('div'); $content .= html_writer::end_tag('div'); // Return the custom menu return $content; }
protected function render_user_menu(custom_menu $menu) { global $CFG, $USER, $DB, $PAGE; //Elegance add $PAGE; $addusermenu = true; $addlangmenu = true; $addmessagemenu = true; //Elegance add Check for messaging start if (!$CFG->messaging) { $addmessagemenu = false; } else { // Check whether or not the "popup" message output is enabled // This is after we check if messaging is enabled to possibly save a DB query $popup = $DB->get_record('message_processors', array('name' => 'popup')); if (!$popup) { $addmessagemenu = false; } } //Elegance add Check for messaging end if (!isloggedin() || isguestuser()) { $addmessagemenu = false; } if ($addmessagemenu) { $messages = $this->get_user_messages(); $messagecount = 0; foreach ($messages as $message) { if (!$message->from) { // Workaround for issue #103. continue; } $messagecount++; } $messagemenutext = $messagecount . ' '; if ($messagecount == 1) { $messagemenutext .= get_string('message', 'message'); } else { $messagemenutext .= get_string('messages', 'message'); } $messagemenu = $menu->add($messagemenutext, new moodle_url('/message/index.php', array('viewing' => 'recentconversations')), get_string('messages', 'message'), 9999); foreach ($messages as $message) { if (!$message->from) { // Workaround for issue #103. continue; } $senderpicture = new user_picture($message->from); $senderpicture->link = false; $senderpicture = $this->render($senderpicture); $messagecontent = $senderpicture; $messagecontent .= html_writer::start_span('msg-body'); $messagecontent .= html_writer::start_span('msg-title'); $messagecontent .= html_writer::span($message->from->firstname . ': ', 'msg-sender'); $messagecontent .= $message->text; $messagecontent .= html_writer::end_span(); $messagecontent .= html_writer::start_span('msg-time'); $messagecontent .= html_writer::tag('i', '', array('class' => 'icon-time')); $messagecontent .= html_writer::span($message->date); $messagecontent .= html_writer::end_span(); $messageurl = new moodle_url('/message/index.php', array('user1' => $USER->id, 'user2' => $message->from->id)); $messagemenu->add($messagecontent, $messageurl, $message->text); } } $langs = get_string_manager()->get_list_of_translations(); if (count($langs) < 2 or empty($CFG->langmenu) or $this->page->course != SITEID and !empty($this->page->course->lang)) { $addlangmenu = false; } if ($addlangmenu) { $language = $menu->add(get_string('language'), new moodle_url('#'), get_string('language'), 10000); foreach ($langs as $langtype => $langname) { $language->add($langname, new moodle_url($this->page->url, array('lang' => $langtype)), $langname); } } if ($addusermenu) { if (isloggedin()) { $usermenu = $menu->add('<i class="fa fa-user"></i>' . fullname($USER), new moodle_url('#'), fullname($USER), 10001); if (!empty($PAGE->theme->settings->enablemy)) { $usermenu->add('<i class="fa fa-briefcase"></i>' . get_string('mydashboard', 'theme_elegance'), new moodle_url('/my', array('id' => $USER->id)), get_string('mydashboard', 'theme_elegance')); } if (!empty($PAGE->theme->settings->enableprofile)) { $usermenu->add('<i class="fa fa-user"></i>' . get_string('viewprofile'), new moodle_url('/user/profile.php', array('id' => $USER->id)), get_string('viewprofile')); } if (!empty($PAGE->theme->settings->enableeditprofile)) { $usermenu->add('<i class="fa fa-cog"></i>' . get_string('editmyprofile'), new moodle_url('/user/edit.php', array('id' => $USER->id)), get_string('editmyprofile')); } if (!empty($PAGE->theme->settings->enableprivatefiles)) { $usermenu->add('<i class="fa fa-file"></i>' . get_string('privatefiles', 'block_private_files'), new moodle_url('/user/files.php', array('id' => $USER->id)), get_string('privatefiles', 'block_private_files')); } if (!empty($PAGE->theme->settings->enablebadges)) { $usermenu->add('<i class="fa fa-certificate"></i>' . get_string('badges'), new moodle_url('/badges/mybadges.php', array('id' => $USER->id)), get_string('badges')); } if (!empty($PAGE->theme->settings->enablecalendar)) { $usermenu->add('<i class="fa fa-calendar"></i>' . get_string('pluginname', 'block_calendar_month'), new moodle_url('/calendar/view.php', array('id' => $USER->id)), get_string('pluginname', 'block_calendar_month')); } // Add custom links to menu $customlinksnum = empty($PAGE->theme->settings->usermenulinks) ? false : $PAGE->theme->settings->usermenulinks; if ($customlinksnum != 0) { foreach (range(1, $customlinksnum) as $customlinksnumber) { $cli = "customlinkicon{$customlinksnumber}"; $cln = "customlinkname{$customlinksnumber}"; $clu = "customlinkurl{$customlinksnumber}"; if (!empty($PAGE->theme->settings->enablecalendar)) { $usermenu->add('<i class="fa fa-' . $PAGE->theme->settings->{$cli} . '"></i>' . $PAGE->theme->settings->{$cln}, new moodle_url($PAGE->theme->settings->{$clu}, array('id' => $USER->id)), $PAGE->theme->settings->{$cln}); } } } $usermenu->add('<i class="fa fa-lock"></i>' . get_string('logout'), new moodle_url('/login/logout.php', array('sesskey' => sesskey(), 'alt' => 'logout')), get_string('logout')); } else { $usermenu = $menu->add('<i class="fa fa-key"></i>' . get_string('login'), new moodle_url('/login/index.php'), get_string('login'), 10001); } } $content = '<ul class="nav navbar-nav navbar-right">'; foreach ($menu->get_children() as $item) { $content .= $this->render_custom_menu_item($item, 1); } return $content . '</ul>'; }
protected function render_custom_menu(custom_menu $menu) { global $CFG; require_once $CFG->dirroot . '/course/lib.php'; // TODO: eliminate this duplicated logic, it belongs in core, not // here. See MDL-39565. $addlangmenu = true; $langs = get_string_manager()->get_list_of_translations(); if (count($langs) < 2 or empty($CFG->langmenu) or $this->page->course != SITEID and !empty($this->page->course->lang)) { $addlangmenu = false; } if (!$menu->has_children() && $addlangmenu === false) { return ''; } if ($addlangmenu) { $strlang = get_string('language'); $currentlang = current_language(); if (isset($langs[$currentlang])) { $currentlang = $langs[$currentlang]; } else { $currentlang = $strlang; } $this->language = $menu->add($currentlang, new moodle_url('#'), $strlang, 10000); foreach ($langs as $langtype => $langname) { $this->language->add($langname, new moodle_url($this->page->url, array('lang' => $langtype)), $langname); } } // Add a login or logout link // if (isloggedin()) { // $branchlabel = get_string('logout'); // $branchurl = new moodle_url('/login/logout.php'); // } else { // $branchlabel = get_string('login'); // $branchurl = new moodle_url('/login/index.php'); // } // $branch = $menu->add($branchlabel, $branchurl, $branchlabel, -1); // // Add My Courses to the menu form http://docs.moodle.org/dev/Adding_courses_and_categories_to_the_custom_menu if (isloggedin() && !isguestuser() && ($mycourses = enrol_get_my_courses(NULL, 'visible DESC, fullname ASC'))) { //which does work $branchlabel = "My Moodle"; $branchurl = new moodle_url('/my'); $branchtitle = $branchlabel; $branchsort = 1000; // lower numbers = higher priority e.g. move this item to the left on the Custom Menu $branch = $menu->add($branchlabel, $branchurl, $branchtitle, $branchsort); $branch->add('Overview', new moodle_url('/my')); foreach ($mycourses as $mycourse) { $branch->add($mycourse->shortname, new moodle_url('/course/view.php', array('id' => $mycourse->id)), $mycourse->fullname); } } // Add a custom link to top navigation $branchlabel = "Categories"; $branchurl = new moodle_url('/course'); $branchtitle = "categories"; $branchsort = 2000; $branch = $menu->add($branchlabel, $branchurl, $branchtitle, $branchsort); $branch->add('All Categories', new moodle_url('/course')); $branch->add('Arts', new moodle_url('/course/index.php?categoryid=3')); $branch->add('Medicine', new moodle_url('/course/index.php?categoryid=31')); $branch->add('Science', new moodle_url('/course/index.php?categoryid=50')); $branch->add('Social Sciences', new moodle_url('/course/index.php?categoryid=60')); $branch->add('Interdisciplinary/Cross-Faculty', new moodle_url('/course/index.php?categoryid=28')); $branch->add('Services', new moodle_url('/course/index.php?categoryid=56')); $branch->add('Sandbox', new moodle_url('/course/index.php?categoryid=51')); // Add a custom link to top navigation $branchlabel = "Help"; $branchurl = new moodle_url('/'); $branchtitle = "help"; $branchsort = 3000; $branch = $menu->add($branchlabel, $branchurl, $branchtitle, $branchsort); $branch->add("Medical School Help Pages", new moodle_url('http://www2.warwick.ac.uk/fac/med/study/cpd/current/moodle'), "medschool_help_cat_nav"); //$branch->add("Physics Help Pages", new moodle_url('http://www2.warwick.ac.uk/fac/sci/physics/current/teach/module_pages/moodle'),"physics_help_cat_nav"); $branch->add("Life Sciences Help Pages", new moodle_url('http://www2.warwick.ac.uk/fac/sci/lifesci/intranet/staffpg/moodle'), "life_sciences_help_cat_nav"); $branch->add("Moodle Support Pages", new moodle_url('http://www2.warwick.ac.uk/services/its/servicessupport/academictechnology/our-services/moodle/support-for-moodle/helpcontacts/'), "moodle_help_nav"); // Add a custom link to top navigation //$branchlabel = '<i class="fa fa-link fa-lg"></i>'; $branchlabel = "Links"; $branchurl = new moodle_url('/'); $branchtitle = "links"; $branchsort = 5000; $branch = $menu->add($branchlabel, $branchurl, $branchtitle, $branchsort); $branch->add("Email", new moodle_url('http://go.warwick.ac.uk/mymail/'), "insite_link"); $branch->add("Insite", new moodle_url('http://www2.warwick.ac.uk/insite/'), "insite_link"); $branch->add("Mahara", new moodle_url('http://mahara.warwick.ac.uk/'), "mahara)link"); $branch->add("Start.Warwick", new moodle_url('/'), "start_warwick_link"); $branch->add("Tabula", new moodle_url('https://tabula.warwick.ac.uk/'), "tabula_link"); // Add a custom link to top navigation // $branchlabel = '<i class="fa fa-cog fa-lg"></i>'; // $branchurl = new moodle_url('/course/'); // $branchtitle = "settings"; // $branchsort = 6000; // // $branch = $menu->add($branchlabel, $branchurl, $branchtitle, $branchsort); // $branch->add('<i class="icon-user"></i>'.get_string('profile').' ',new moodle_url('/user/profile.php'),get_string('profile')); // $branch->add('<i class="fa fa-user"></i>'." View Profile", new moodle_url('/user/profile.php/'),"view_profile_link"); // $branch->add('<i class="fa fa-pencil-square-o"></i>'." Edit Profile", new moodle_url('/user/edit.php'),"edit_profile_link"); // $branch->add('<i class="fa fa-comments"></i>'." View My Forum Posts", new moodle_url('/mod/forum/user.php/'),"forumposts_link"); // $branch->add('<i class="fa fa-envelope"></i>'." View My Messages", new moodle_url('/message/index.php'),"view_messages_link"); // $branch->add('<i class="fa fa-bullhorn"></i>'." Notification Settings", new moodle_url('/message/edit.php'),"notification_settings_link");; // $branch->add('<i class="fa fa-sign-out"></i>'." Sign Out", new moodle_url('/login/logout.php'),"signout_link"); // // Add a custom settings icon link to top navigation // $branchlabel = '<i class="fa fa-arrows-h fa-lg"></i>'; // $branchurl = new moodle_url('/course/'); // $branchtitle = "maximise"; // $branchsort = 7000; // //$branch = $menu->add($branchlabel, $branchurl,$branchtitle, $branchsort); //$branch = $menu->add('<div id="icondiv">'.$branchlabel.'</div>', $branchurl, $branchtitle) ; $content = '<ul class="nav">'; foreach ($menu->get_children() as $item) { $content .= $this->render_custom_menu_item($item, 1); } return $content . '</ul>'; }
/** * Renders a custom menu object (located in outputcomponents.php) * * The custom menu this method override the render_custom_menu function * in outputrenderers.php * @staticvar int $menucount * @param custom_menu $menu * @return string */ protected function render_custom_menu(custom_menu $menu) { // Generate custom My Courses dropdown. $mycourses = $this->page->navigation->get('mycourses'); $mycoursetitle = $this->page->theme->settings->mycoursetitle; if (isloggedin() && $mycourses && $mycourses->has_children()) { $branchurl = new moodle_url('/my/index.php'); $branchsort = 10000; if ($mycoursetitle == 'module') { $branchlabel = get_string('mymodules', 'theme_rocket'); } else { if ($mycoursetitle == 'unit') { $branchlabel = get_string('myunits', 'theme_rocket'); } else { if ($mycoursetitle == 'class') { $branchlabel = get_string('myclasses', 'theme_rocket'); } else { $branchlabel = get_string('mycourses', 'theme_rocket'); } } } $branchtitle = $branchlabel; $branch = $menu->add($branchlabel, $branchurl, $branchtitle, $branchsort); foreach ($mycourses->children as $coursenode) { $branch->add($coursenode->get_content(), $coursenode->action, $coursenode->get_title()); } } else { if ($mycoursetitle == 'module') { $branchlabel = get_string('allmodules', 'theme_rocket'); } else { if ($mycoursetitle == 'unit') { $branchlabel = get_string('allunits', 'theme_rocket'); } else { if ($mycoursetitle == 'class') { $branchlabel = get_string('allclasses', 'theme_rocket'); } else { $branchlabel = get_string('allcourses', 'theme_rocket'); } } } $branchtitle = $branchlabel; $branchurl = new moodle_url('/course/index.php'); $branchsort = 10000; $branch = $menu->add($branchlabel, $branchurl, $branchtitle, $branchsort); } // If the menu has no children return an empty string. if (!$menu->has_children()) { return ''; } // Initialise this custom menu. $content = html_writer::start_tag('ul', array('class' => 'dropdown dropdown-horizontal')); // Render each child. foreach ($menu->get_children() as $item) { $content .= $this->render_custom_menu_item($item); } // Close the open tags. $content .= html_writer::end_tag('ul'); // Return the custom menu. return $content; }
/** * Adds a simple message menu to the page navbar. */ private function message_menu() { global $USER, $PAGE, $CFG; if (!isloggedin() || isguestuser()) { return false; } // Check to see if messaging is enabled. if (!$CFG->messaging) { return false; } // Changed from $OUTPUT -> bsrender because of bug when selecting this theme // for the first time. $bsrender = $PAGE->get_renderer('theme_elegance', 'core'); $menu = new custom_menu(); $messages = $this->get_user_messages(); $messagecount = 0; foreach ($messages as $message) { if (!$message->from) { // Workaround for issue #103. continue; } $messagecount++; } if ($messagecount == 0) { $messagemenutext = ' <i class="glyphicon glyphicon-inbox"></i>'; } else { $messagemenutext = ' <i class="glyphicon glyphicon-envelope"></i>'; } $messagemenu = $menu->add($messagemenutext, new moodle_url('/message/index.php', array('viewing' => 'recentconversations')), get_string('messages', 'message'), 9999); foreach ($messages as $message) { if (!$message->from) { // Workaround for issue #103. continue; } $senderpicture = new user_picture($message->from); $senderpicture->link = false; $senderpicture = $bsrender->render($senderpicture); $messagecontent = $senderpicture; $messagecontent .= html_writer::start_span('msg-body'); $messagecontent .= html_writer::start_span('msg-title'); $messagecontent .= html_writer::span($message->from->firstname . ': ', 'msg-sender'); $messagecontent .= $message->text; $messagecontent .= html_writer::end_span(); $messagecontent .= html_writer::start_span('msg-time'); $messagecontent .= html_writer::tag('i', '', array('class' => 'icon-time')); $messagecontent .= html_writer::span($message->date); $messagecontent .= html_writer::end_span(); $messageurl = new moodle_url('/message/index.php', array('user1' => $USER->id, 'user2' => $message->from->id)); $messagemenu->add($messagecontent, $messageurl, $message->text); } $content = ''; foreach ($menu->get_children() as $item) { $content .= $bsrender->render_custom_menu_item($item, 1); } return $content; }
/** * Renders a custom menu object (located in outputcomponents.php) * * The custom menu this method produces makes use of the foundation * top-bar element and requires specific markup and classes * * @staticvar int $menucount * @param custom_menu $menu * @return string */ protected function render_custom_menu(custom_menu $menu) { global $CFG, $OUTPUT, $USER, $PAGE; $site = get_site(); $sitename = $site->fullname; $siteurl = $CFG->wwwroot; if (right_to_left()) { $direction = array('left-side' => 'right', 'right-side' => 'left'); $dir = 'right'; } else { $direction = array('left-side' => 'left', 'right-side' => 'right'); $dir = ''; } // If the menu has no children return an empty string if (!$menu->has_children()) { return ''; } // Start the title area that contains the Site Name Menu icon $content = html_writer::start_tag('ul', array('class' => 'title-area ' . $dir)); $content .= html_writer::start_tag('li', array('class' => 'name')); $content .= html_writer::start_tag('h1'); $content .= html_writer::tag('a', $sitename, array('href' => $siteurl)); $content .= html_writer::end_tag('h1'); $content .= html_writer::end_tag('li'); $content .= html_writer::start_tag('li', array('class' => 'toggle-topbar menu-icon')); $content .= html_writer::start_tag('a', array('href' => '#')); $content .= html_writer::empty_tag('span'); $content .= html_writer::end_tag('a'); $content .= html_writer::end_tag('li'); $content .= html_writer::end_tag('ul'); // Start the custommenu items $content .= html_writer::start_tag('section', array('class' => 'top-bar-section')); $content .= html_writer::start_tag('ul', array('class' => $direction['left-side'])); foreach ($menu->get_children() as $item) { // Add dividers to top level items $content .= html_writer::empty_tag('li', array('class' => 'divider ' . $dir)); // Render each child $content .= $this->render_custom_menu_item($item); } $content .= html_writer::end_tag('ul'); // Start the right hand items $content .= html_writer::start_tag('ul', array('class' => $direction['right-side'])); // Render login_info() (if the theme allows it... if (empty($PAGE->layout_options['nologininfo'])) { $content .= $this->login_info(); } $content .= html_writer::end_tag('ul'); $content .= html_writer::end_tag('section'); // Return the custom menu return $content; }
protected function render_custom_menu(custom_menu $menu) { global $CFG, $PAGE, $OUTPUT, $COURSE; if (isloggedin() && !isguestuser()) { $branchtitle = get_string('home'); $branchlabel = '<i class="fa fa-home"></i> ' . $branchtitle; $branchurl = new moodle_url('/'); $branchsort = 9998; $branch = $menu->add($branchlabel, $branchurl, $branchtitle, $branchsort); $branchtitle = get_string('myhome'); $branchlabel = '<i class="fa fa-dashboard"></i> ' . $branchtitle; $branchurl = new moodle_url('/my/index.php'); $branchsort = 9999; $branch = $menu->add($branchlabel, $branchurl, $branchtitle, $branchsort); $mycoursetitle = "Events"; $branchtitle = "Events"; $branchlabel = '<i class="fa fa-calendar"></i> ' . $branchtitle; $branchurl = new moodle_url('/calendar/view.php'); $branchsort = 10000; $branch = $menu->add($branchlabel, $branchurl, $branchtitle, $branchsort); $mycoursetitle = "我的课程"; $branchtitle = "我的课程"; $branchlabel = '<i class="fa fa-briefcase"></i>' . $branchtitle; $branchurl = new moodle_url('/my/index.php'); $branchsort = 10001; $branch = $menu->add($branchlabel, $branchurl, $branchtitle, $branchsort); list($sortedcourses, $sitecourses, $totalcourses) = block_course_overview_get_sorted_courses(); if ($sortedcourses) { foreach ($sortedcourses as $course) { if ($course->visible) { $branch->add(format_string($course->fullname), new moodle_url('/course/view.php?id=' . $course->id), format_string($course->shortname)); } } } else { $noenrolments = get_string('noenrolments', 'theme_bcu'); $branch->add('<em>' . $noenrolments . '</em>', new moodle_url('/'), $noenrolments); } if (isset($COURSE->id) && $COURSE->id > 1) { $branchtitle = get_string('thiscourse', 'theme_bcu'); $branchlabel = '<i class="fa fa-sitemap"></i>' . $branchtitle; $branchurl = new moodle_url('#'); $branch = $menu->add($branchlabel, $branchurl, $branchtitle, 10002); $branchtitle = "People"; $branchlabel = '<i class="fa fa-users"></i>' . $branchtitle; $branchurl = new moodle_url('/user/index.php', array('id' => $PAGE->course->id)); $branch->add($branchlabel, $branchurl, $branchtitle, 100003); $branchtitle = "Grades"; $branchlabel = $OUTPUT->pix_icon('i/grades', '', '', array('class' => 'icon')) . $branchtitle; $branchurl = new moodle_url('/grade/report/index.php', array('id' => $PAGE->course->id)); $branch->add($branchlabel, $branchurl, $branchtitle, 100004); $data = theme_bcu_get_course_activities(); foreach ($data as $modname => $modfullname) { if ($modname === 'resources') { $icon = $OUTPUT->pix_icon('icon', '', 'mod_page', array('class' => 'icon')); $branch->add($icon . $modfullname, new moodle_url('/course/resources.php', array('id' => $PAGE->course->id))); } else { $icon = '<img src="' . $OUTPUT->pix_url('icon', $modname) . '" class="icon" alt="" />'; $branch->add($icon . $modfullname, new moodle_url('/mod/' . $modname . '/index.php', array('id' => $PAGE->course->id))); } } } if (!empty($PAGE->theme->settings->enablehelp)) { $mycoursetitle = "Help"; $branchtitle = "Help"; $branchlabel = '<i class="fa fa-life-ring"></i>' . $branchtitle; $branchurl = new moodle_url($PAGE->theme->settings->enablehelp); $branchsort = 10003; $branch = $menu->add($branchlabel, $branchurl, $branchtitle, $branchsort); } } // TODO: eliminate this duplicated logic, it belongs in core, not // here. See MDL-39565. $addlangmenu = true; $langs = get_string_manager()->get_list_of_translations(); if (count($langs) < 2 or empty($CFG->langmenu) or $this->page->course != SITEID and !empty($this->page->course->lang)) { $addlangmenu = false; } if (!$menu->has_children() && $addlangmenu === false) { return ''; } $content = '<ul class="nav">'; foreach ($menu->get_children() as $item) { $content .= $this->render_custom_menu_item($item, 1); } return $content . '</ul>'; }
protected function render_custom_menu(custom_menu $menu) { global $CFG; // TODO: eliminate this duplicated logic, it belongs in core, not // here. See MDL-39565. $addlangmenu = true; $langs = get_string_manager()->get_list_of_translations(); if (count($langs) < 2 or empty($CFG->langmenu) or $this->page->course != SITEID and !empty($this->page->course->lang)) { $addlangmenu = false; } if (!$menu->has_children() && $addlangmenu === false) { return ''; } $content = '<ul class="nav">'; foreach ($menu->get_children() as $item) { $content .= $this->render_custom_menu_item($item, 1); } return $content . '</ul>'; }
/** * Renders custom menu as a simple list. * Any nesting gets flattened. * * @return string */ protected function render_custom_menu(\custom_menu $menu) { if (!$menu->has_children()) { return ''; } $content = ''; foreach ($menu->get_children() as $item) { $content .= $this->render_custom_menu_item($item); } $class = 'list-unstyled'; $count = substr_count($content, '<li>'); if ($count > 11) { $class .= ' list-large'; } $content = html_writer::tag('ul', $content, array('class' => $class)); return $content; }
protected function render_custom_menu(custom_menu $menu) { global $COURSE, $PAGE, $CFG, $USER; $content = ''; foreach ($menu->get_children() as $item) { $content .= $this->render_custom_menu_item($item, 1); } $content .= ''; return $content; }
protected function render_custom_menu(custom_menu $menu) { global $CFG,$USER; // TODO: eliminate this duplicated logic, it belongs in core, not // here. See MDL-39565. $addlangmenu = true; $langs = get_string_manager()->get_list_of_translations(); if (count($langs) < 2 or empty($CFG->langmenu) or ($this->page->course != SITEID and !empty($this->page->course->lang))) { $addlangmenu = false; } if (!$menu->has_children() && $addlangmenu === false) { return ''; } if ($addlangmenu) { $language = $menu->add(get_string('language'), new moodle_url('#'), get_string('language'), 10000); foreach ($langs as $langtype => $langname) { $language->add($langname, new moodle_url($this->page->url, array('lang' => $langtype)), $langname); } } $content = '<ul class="nav">'; foreach ($menu->get_children() as $item) { $content .= $this->render_custom_menu_item($item, 1); } return $content; // ."<li class='dropdown open'><span id='quicklinks'><img src= $CFG->wwwroot/theme/co/pix/quicklinks.png /></span></li></ul>"; }
protected function render_user_menu(custom_menu $menu, $user) { global $USER, $DB, $SESSION; if (empty($user)) { $user = $USER; } $menuclass = 'guest'; if (isloggedin() && !isguestuser()) { $menuclass = 'loggedin'; $userpicture = new user_picture($user); $userpicture->link = false; $userpicture->size = 30; $picture = html_writer::tag('span', $this->render($userpicture), array('class' => 'picspan')); $name = fullname($user); $name = html_writer::tag('span', $name, array('class' => 'username hidden-sm')); $usermenu = $menu->add($name . $picture, new moodle_url('#'), fullname($user), 10001); $usermenu->add( $this->glyphicon('dashboard') . get_string('myhome'), new moodle_url('/my'), get_string('myhome') ); $usermenu->add( '#######', new moodle_url('/'), '#######' ); $usermenu->add( $this->glyphicon('user') . get_string('profile'), new moodle_url('/user/profile.php', array('id' => $user->id)), get_string('profile') ); $usermenu->add( $this->glyphicon('list-alt') . get_string('grades'), new moodle_url('/grade/report/overview/index.php'), get_string('grades') ); $usermenu->add( $this->glyphicon('inbox') . get_string('messages', 'message'), new moodle_url('/message/index.php'), get_string('messages', 'message') ); $usermenu->add( $this->glyphicon('cog') . get_string('preferences'), new moodle_url('/user/preferences.php'), get_string('preferences') ); $usermenu->add( '#######', new moodle_url('/'), '#######' ); $usermenu->add( $this->glyphicon('sign-out') . get_string('logout'), new moodle_url('/login/logout.php', array('sesskey' => sesskey(), 'alt' => 'logout')), get_string('logout') ); } else { $menu->add( $this->glyphicon('sign-in') . get_string('login'), new moodle_url('/login/index.php', array('alt' => get_string('login'))), get_string('login') ); } $content = html_writer::start_tag('ul', array('class' => 'nav pull-left usermenu ' . $menuclass, 'role' => 'menubar')); foreach ($menu->get_children() as $item) { $content .= $this->render_custom_menu_item($item, 1, 'pull-right'); } $content .= html_writer::end_tag('ul'); return $content; }
protected function render_user_menu(custom_menu $menu) { global $CFG, $USER, $DB; $addusermenu = true; $addlangmenu = true; $langs = get_string_manager()->get_list_of_translations(); if (count($langs) < 2 or empty($CFG->langmenu) or $this->page->course != SITEID and !empty($this->page->course->lang)) { $addlangmenu = false; } if ($addlangmenu) { $language = $menu->add(get_string('language'), new moodle_url('#'), get_string('language'), 10000); foreach ($langs as $langtype => $langname) { $language->add($langname, new moodle_url($this->page->url, array('lang' => $langtype)), $langname); } } if ($addusermenu) { if (isloggedin()) { $usermenu = $menu->add(fullname($USER), new moodle_url('#'), fullname($USER), 10001); $usermenu->add('<span class="glyphicon glyphicon-off"></span>' . get_string('logout'), new moodle_url('/login/logout.php', array('sesskey' => sesskey(), 'alt' => 'logout')), get_string('logout')); $usermenu->add('<span class="glyphicon glyphicon-user"></span>' . get_string('viewprofile'), new moodle_url('/user/profile.php', array('id' => $USER->id)), get_string('viewprofile')); $usermenu->add('<span class="glyphicon glyphicon-cog"></span>' . get_string('editmyprofile'), new moodle_url('/user/edit.php', array('id' => $USER->id)), get_string('editmyprofile')); } else { $usermenu = $menu->add(get_string('login'), new moodle_url('/login/index.php'), get_string('login'), 10001); } } $content = '<ul class="nav navbar-nav navbar-right">'; foreach ($menu->get_children() as $item) { $content .= $this->render_custom_menu_item($item, 1); } return $content . '</ul>'; }
protected function render_custom_menu(custom_menu $menu) { global $CFG; require_once $CFG->dirroot . '/course/lib.php'; // TODO: eliminate this duplicated logic, it belongs in core, not // here. See MDL-39565. $addlangmenu = true; $langs = get_string_manager()->get_list_of_translations(); if (count($langs) < 2 or empty($CFG->langmenu) or $this->page->course != SITEID and !empty($this->page->course->lang)) { $addlangmenu = false; } if (!$menu->has_children() && $addlangmenu === false) { return ''; } if ($addlangmenu) { $strlang = get_string('language'); $currentlang = current_language(); if (isset($langs[$currentlang])) { $currentlang = $langs[$currentlang]; } else { $currentlang = $strlang; } $this->language = $menu->add($currentlang, new moodle_url('#'), $strlang, 10000); foreach ($langs as $langtype => $langname) { $this->language->add($langname, new moodle_url($this->page->url, array('lang' => $langtype)), $langname); } } // Add a login or logout link // if (isloggedin()) { // $branchlabel = get_string('logout'); // $branchurl = new moodle_url('/login/logout.php'); // } else { // $branchlabel = get_string('login'); // $branchurl = new moodle_url('/login/index.php'); // } // $branch = $menu->add($branchlabel, $branchurl, $branchlabel, -1); // // Add My Courses to the menu form http://docs.moodle.org/dev/Adding_courses_and_categories_to_the_custom_menu if (isloggedin() && !isguestuser() && ($mycourses = enrol_get_my_courses(NULL, 'visible DESC, fullname ASC'))) { //which does work $branchlabel = get_string('mycourses'); $branchurl = new moodle_url('/course/index.php'); $branchtitle = $branchlabel; $branchsort = 8000; // lower numbers = higher priority e.g. move this item to the left on the Custom Menu $branch = $menu->add($branchlabel, $branchurl, $branchtitle, $branchsort); foreach ($mycourses as $mycourse) { $branch->add($mycourse->shortname, new moodle_url('/course/view.php', array('id' => $mycourse->id)), $mycourse->fullname); } } //****************************https://moodle.org/mod/forum/discuss.php?d=219352*************************************** //global $CFG; //require_once($CFG->dirroot.'/course/lib.php'); // //$branch = $menu->add(get_string('courses', 'theme_warwickclean'), null, null, 1); // //$categorytree = get_course_category_tree(); //foreach ($categorytree as $category) { //$this->add_category_to_custommenu($branch, $category); //} // //$this->render_mycourses_custom_menu($menu, 0.5) ; //return parent::render_custom_menu($menu); //} // //protected function add_category_to_custommenu(custom_menu_item $parent, stdClass $category) { //$branch = $parent->add($category->name, new moodle_url('/course/category.php', array('id' => $category->id))); //if (!empty($category->categories)) { //foreach ($category->categories as $subcategory) { //$this->add_category_to_custommenu($branch, $subcategory); //} //} //if (!empty($category->courses)) { //foreach ($category->courses as $course) { //$branch->add($course->shortname, new moodle_url('/course/view.php', array('id' => $course->id)), $course->fullname); //} //} //} // //protected function render_mycourses_custom_menu(custom_menu_item $menu, $position) { //this function adds the mycourses branch to the navbar. // // //if (isloggedin() && !isguestuser() && $mycourses = enrol_get_my_courses(NULL, 'visible DESC, fullname ASC')) { // //$branchlabel = get_string('mycourses') ; //$branchurl = new moodle_url('/course/index.php'); //$branchtitle = $branchlabel; //$branch = $menu->add($branchlabel, $branchurl, $branchtitle); // //foreach ($mycourses as $mycourse) { //$branch->add($mycourse->shortname, new moodle_url('/course/view.php', array('id' => $mycourse->id)), $mycourse->fullname); //} //} // //******************************************************************* // Add a custom link to top navigation $branchlabel = "Navigation"; $branchurl = new moodle_url('/courses.php'); $branch = $menu->add($branchlabel, $branchurl); $branch->add("Nothing Here Yet", new moodle_url('/'), "Nothing Here Yet"); // Add a custom link to top navigation $branchlabel = "Categories"; $branchurl = new moodle_url('/course'); $branch = $menu->add($branchlabel, $branchurl); $branch->add('All Categories', new moodle_url('/course')); $branch->add('Helix', new moodle_url('/course/index.php?categoryid=10')); $branch->add('Miscellaneous', new moodle_url('/course/index.php?categoryid=1')); $branch->add(' Medicine MBChB', new moodle_url('/course/index.php?categoryid=6')); $branch->add('Richard', new moodle_url('/course/index.php?categoryid=4')); $branch->add('Templates', new moodle_url('/course/index.php?categoryid=3')); // Add a custom link to top navigation $branchlabel = "Links"; $branchurl = new moodle_url('/courses.php'); $branch = $menu->add($branchlabel, $branchurl); $branch->add("Insite", new moodle_url('/'), "Insite"); $branch->add("Mahara", new moodle_url('/'), "Mahara"); $branch->add("Start.Warwick", new moodle_url('/'), "Tabula"); $branch->add("Tabula", new moodle_url('/'), "Tabula"); // Add a custom link to top navigation $branchlabel = "Help"; $branchurl = new moodle_url('/course/'); $branch = $menu->add($branchlabel, $branchurl); $branch->add("Help1", new moodle_url('/'), "Insite"); $branch->add("Help2", new moodle_url('/'), "Mahara"); // Add a custom link to top navigation $branchlabel = "Help Dept"; $branchurl = new moodle_url('/course/'); $branchtitle = "Chemistry"; $branchsort = 10000; $branch = $menu->add($branchlabel, $branchurl); $branch->add("Chem Help1", new moodle_url('/'), "Chem Help1"); $branch->add("Chem Help2", new moodle_url('/'), "Chem Help2"); // Add a custom link to top navigation $branchlabel = '<i class="fa fa-cog fa-lg"></i>'; $branchurl = new moodle_url('/course/'); $branchtitle = "settings"; $branch = $menu->add($branchlabel, $branchurl, $branchtitle); $branch->add('<i class="icon-user"></i>' . get_string('profile') . ' ', new moodle_url('/user/profile.php'), get_string('profile')); $branch->add('<i class="icon-calendar"></i>' . get_string('pluginname', 'block_calendar_month') . ' ', new moodle_url('/calendar/view.php'), get_string('pluginname', 'block_calendar_month')); $branch->add('<i class="icon-envelope"></i>' . get_string('pluginname', 'block_messages') . ' ', new moodle_url('/message/index.php'), get_string('pluginname', 'block_messages')); $branch->add('<i class="icon-certificate"></i>' . get_string('badges') . ' ', new moodle_url('/badges/mybadges.php'), get_string('badges')); $branch->add('<i class="icon-file"></i>' . get_string('privatefiles', 'block_private_files') . ' ', new moodle_url('/user/files.php'), get_string('privatefiles', 'block_private_files')); $branch->add('<i class="icon-signout"></i>' . get_string('logout') . ' ', new moodle_url('/login/logout.php'), get_string('logout')); // Add a custom settings icon link to top navigation $branchlabel = '<i class="fa fa-arrows-h fa-lg"></i>'; $branchurl = new moodle_url('/course/'); $branchtitle = "maximise"; $branch = $menu->add($branchlabel, $branchurl, $branchtitle); //$branch = $menu->add('<div id="icondiv">'.$branchlabel.'</div>', $branchurl, $branchtitle) ; $content = '<ul class="nav">'; foreach ($menu->get_children() as $item) { $content .= $this->render_custom_menu_item($item, 1); } return $content . '</ul>'; }
protected function render_user_menu(custom_menu $menu) { global $CFG, $USER, $DB; $addusermenu = true; $addlangmenu = true; $addmessagemenu = false; if (!isloggedin() || isguestuser()) { $addmessagemenu = false; } if ($addmessagemenu) { $messages = $this->get_user_messages(); $messagecount = count($messages); $messagemenu = $menu->add($messagecount . ' ' . get_string('messages', 'message'), new moodle_url('/message/index.php', array('viewing' => 'recentconversations')), get_string('messages', 'message'), 9999); foreach ($messages as $message) { if (!$message->from) { // Workaround for issue #103. continue; } $senderpicture = new user_picture($message->from); $senderpicture->link = false; $senderpicture = $this->render($senderpicture); $messagecontent = $senderpicture; $messagecontent .= html_writer::start_span('msg-body'); $messagecontent .= html_writer::start_span('msg-title'); $messagecontent .= html_writer::span($message->from->firstname . ': ', 'msg-sender'); $messagecontent .= $message->text; $messagecontent .= html_writer::end_span(); $messagecontent .= html_writer::start_span('msg-time'); $messagecontent .= html_writer::tag('i', '', array('class' => 'icon-time')); $messagecontent .= html_writer::span($message->date); $messagecontent .= html_writer::end_span(); $messageurl = new moodle_url('/message/index.php', array('user1' => $USER->id, 'user2' => $message->from->id)); $messagemenu->add($messagecontent, $messageurl, $message->state); } } $langs = get_string_manager()->get_list_of_translations(); if (count($langs) < 2 or empty($CFG->langmenu) or $this->page->course != SITEID and !empty($this->page->course->lang)) { $addlangmenu = false; } if ($addlangmenu) { $language = $menu->add(get_string('language'), new moodle_url('#'), get_string('language'), 10000); foreach ($langs as $langtype => $langname) { $language->add($langname, new moodle_url($this->page->url, array('lang' => $langtype)), $langname); } } if ($addusermenu) { if (isloggedin()) { $usermenu = $menu->add(fullname($USER), new moodle_url('#'), fullname($USER), 10001); $usermenu->add('<span class="glyphicon glyphicon-off"></span>' . get_string('logout'), new moodle_url('/login/logout.php', array('sesskey' => sesskey(), 'alt' => 'logout')), get_string('logout')); $usermenu->add('<span class="glyphicon glyphicon-user"></span>' . get_string('viewprofile'), new moodle_url('/user/profile.php', array('id' => $USER->id)), get_string('viewprofile')); $usermenu->add('<span class="glyphicon glyphicon-cog"></span>' . get_string('editmyprofile'), new moodle_url('/user/edit.php', array('id' => $USER->id)), get_string('editmyprofile')); } } $content = '<ul class="nav navbar-nav navbar-right">'; foreach ($menu->get_children() as $item) { $content .= $this->render_custom_menu_item($item, 1); } return $content . '</ul>'; }
private function message_menu() { global $OUTPUT, $USER; $menu = new custom_menu(); $messages = $this->get_user_messages(); $messagecount = 0; foreach ($messages as $message) { if (!$message->from) { // Workaround for issue #103. continue; } $messagecount++; } if ($messagecount == 0) { $messagemenutext = ' <i class="glyphicon glyphicon-inbox"></i>'; } else { $messagemenutext = ' <i class="glyphicon glyphicon-envelope"></i>'; } $messagemenu = $menu->add($messagemenutext, new moodle_url('/message/index.php', array('viewing' => 'recentconversations')), get_string('messages', 'message'), 9999); foreach ($messages as $message) { if (!$message->from) { // Workaround for issue #103. continue; } $senderpicture = new user_picture($message->from); $senderpicture->link = false; $senderpicture = $OUTPUT->render($senderpicture); $messagecontent = $senderpicture; $messagecontent .= html_writer::start_span('msg-body'); $messagecontent .= html_writer::start_span('msg-title'); $messagecontent .= html_writer::span($message->from->firstname . ': ', 'msg-sender'); $messagecontent .= $message->text; $messagecontent .= html_writer::end_span(); $messagecontent .= html_writer::start_span('msg-time'); $messagecontent .= html_writer::tag('i', '', array('class' => 'icon-time')); $messagecontent .= html_writer::span($message->date); $messagecontent .= html_writer::end_span(); $messageurl = new moodle_url('/message/index.php', array('user1' => $USER->id, 'user2' => $message->from->id)); $messagemenu->add($messagecontent, $messageurl, $message->text); } $content = ''; foreach ($menu->get_children() as $item) { $content .= $OUTPUT->render_custom_menu_item($item, 1); } return $content; }
public function test_multilang_support() { $definition = <<<EOF Start|http://school.info Info -English|http://school.info/en|Information in English|en -Deutsch|http://school.info/de|Informationen in deutscher Sprache|de,de_du,de_kids EOF; // the menu without multilang support $menu = new custom_menu($definition); $this->assertTrue($menu->has_children()); $this->assertEqual(2, count($menu->get_children())); $children = $menu->get_children(); $infomenu = array_pop($children); $this->assertTrue($infomenu->has_children()); $children = $infomenu->get_children(); $this->assertEqual(2, count($children)); $children = $infomenu->get_children(); $langspecinfo = array_shift($children); $this->assertEqual('Information in English', $langspecinfo->get_title()); // same menu for English language selected $menu = new custom_menu($definition, 'en'); $this->assertTrue($menu->has_children()); $this->assertEqual(2, count($menu->get_children())); $children = $menu->get_children(); $infomenu = array_pop($children); $this->assertTrue($infomenu->has_children()); $this->assertEqual(1, count($infomenu->get_children())); $children = $infomenu->get_children(); $langspecinfo = array_shift($children); $this->assertEqual('Information in English', $langspecinfo->get_title()); // same menu for German (de_du) language selected $menu = new custom_menu($definition, 'de_du'); $this->assertTrue($menu->has_children()); $this->assertEqual(2, count($menu->get_children())); $children = $menu->get_children(); $infomenu = array_pop($children); $this->assertTrue($infomenu->has_children()); $this->assertEqual(1, count($infomenu->get_children())); $children = $infomenu->get_children(); $langspecinfo = array_shift($children); $this->assertEqual('Informationen in deutscher Sprache', $langspecinfo->get_title()); // same menu for Czech language selected $menu = new custom_menu($definition, 'cs'); $this->assertTrue($menu->has_children()); $this->assertEqual(2, count($menu->get_children())); $children = $infomenu->get_children(); $infomenu = array_pop($children); $this->assertFalse($infomenu->has_children()); }
/** * Renders the custom_menu * @param custom_menu $menu * @return string $content */ protected function render_custom_menu(custom_menu $menu) { $content = '<ul class="nav">'; foreach ($menu->get_children() as $item) { $content .= $this->render_custom_menu_item($item, 1); } $content .= '</ul>'; return $content; }
/** * Converts a string into a structured array of custom_menu_items which can * then be added to a custom menu. * * Structure: * text|url|title|langs * The number of hyphens at the start determines the depth of the item. The * languages are optional, comma separated list of languages the line is for. * * Example structure: * First level first item|http://www.moodle.com/ * -Second level first item|http://www.moodle.com/partners/ * -Second level second item|http://www.moodle.com/hq/ * --Third level first item|http://www.moodle.com/jobs/ * -Second level third item|http://www.moodle.com/development/ * First level second item|http://www.moodle.com/feedback/ * First level third item * English only|http://moodle.com|English only item|en * German only|http://moodle.de|Deutsch|de,de_du,de_kids * * * @static * @param string $text the menu items definition * @param string $language the language code, null disables multilang support * @return array */ public static function convert_text_to_menu_nodes($text, $language = null) { $root = new custom_menu(); $lastitem = $root; $lastdepth = 0; $hiddenitems = array(); $lines = explode("\n", $text); foreach ($lines as $linenumber => $line) { $line = trim($line); if (strlen($line) == 0) { continue; } // Parse item settings. $itemtext = null; $itemurl = null; $itemtitle = null; $itemvisible = true; $settings = explode('|', $line); foreach ($settings as $i => $setting) { $setting = trim($setting); if (!empty($setting)) { switch ($i) { case 0: $itemtext = ltrim($setting, '-'); $itemtitle = $itemtext; break; case 1: $itemurl = new moodle_url($setting); break; case 2: $itemtitle = $setting; break; case 3: if (!empty($language)) { $itemlanguages = array_map('trim', explode(',', $setting)); $itemvisible &= in_array($language, $itemlanguages); } break; } } } // Get depth of new item. preg_match('/^(\\-*)/', $line, $match); $itemdepth = strlen($match[1]) + 1; // Find parent item for new item. while ($lastdepth - $itemdepth >= 0) { $lastitem = $lastitem->get_parent(); $lastdepth--; } $lastitem = $lastitem->add($itemtext, $itemurl, $itemtitle, $linenumber + 1); $lastdepth++; if (!$itemvisible) { $hiddenitems[] = $lastitem; } } foreach ($hiddenitems as $item) { $item->parent->remove_child($item); } return $root->get_children(); }
protected function render_custom_menu(custom_menu $menu) { global $CFG; require_once $CFG->dirroot . '/course/lib.php'; // TODO: eliminate this duplicated logic, it belongs in core, not // here. See MDL-39565. $addlangmenu = true; $langs = get_string_manager()->get_list_of_translations(); if (count($langs) < 2 or empty($CFG->langmenu) or $this->page->course != SITEID and !empty($this->page->course->lang)) { $addlangmenu = false; } if (!$menu->has_children() && $addlangmenu === false) { return ''; } if ($addlangmenu) { $strlang = get_string('language'); $currentlang = current_language(); if (isset($langs[$currentlang])) { $currentlang = $langs[$currentlang]; } else { $currentlang = $strlang; } $this->language = $menu->add($currentlang, new moodle_url('#'), $strlang, 10000); foreach ($langs as $langtype => $langname) { $this->language->add($langname, new moodle_url($this->page->url, array('lang' => $langtype)), $langname); } } // Add a login or logout link // if (isloggedin()) { // $branchlabel = get_string('logout'); // $branchurl = new moodle_url('/login/logout.php'); // } else { // $branchlabel = get_string('login'); // $branchurl = new moodle_url('/login/index.php'); // } // $branch = $menu->add($branchlabel, $branchurl, $branchlabel, -1); // // Add My Courses to the menu // if (isloggedin() && !isguestuser() && $mycourses = enrol_get_my_courses(NULL, 'visible DESC, fullname ASC')) { // $mycoursesmenu = $menu->add(get_string('mycourses'), new moodle_url('#'), get_string('mycourses'), 8000);// lower numbers = higher priority e.g. move this item to the left on the Custom Menu // foreach ($mycourses as $mycourse) { // $mycoursesmenu->add($mycourse->shortname, new moodle_url('/course/view.php', array('id' => $mycourse->id)), $mycourse->fullname); // } // } // Add My Courses to the menu form http://docs.moodle.org/dev/Adding_courses_and_categories_to_the_custom_menu if (isloggedin() && !isguestuser() && ($mycourses = enrol_get_my_courses(NULL, 'visible DESC, fullname ASC'))) { //which does work $branchlabel = get_string('mycourses'); $branchurl = new moodle_url('/course/index.php'); $branchtitle = $branchlabel; $branchsort = 8000; // lower numbers = higher priority e.g. move this item to the left on the Custom Menu $branch = $menu->add($branchlabel, $branchurl, $branchtitle, $branchsort); foreach ($mycourses as $mycourse) { $branch->add($mycourse->shortname, new moodle_url('/course/view.php', array('id' => $mycourse->id)), $mycourse->fullname); } } // Add a custom link to top navigation $branchlabel = "Navigation"; $branchurl = new moodle_url('/courses.php'); $branch = $menu->add($branchlabel, $branchurl); $branch->add('<i class="icon-user"></i>' . get_string('profile') . ' ', new moodle_url('/user/profile.php'), get_string('profile')); // Add a custom link to top navigation $branchlabel = "Categories"; $branchurl = new moodle_url('/courses'); $branch = $menu->add($branchlabel, $branchurl); // Add a custom link to top navigation $branchlabel = "Links"; $branchurl = new moodle_url('/courses.php'); $branch = $menu->add($branchlabel, $branchurl); // Add a custom link to top navigation $branchlabel = "Help"; $branchurl = new moodle_url('/course/'); $branch = $menu->add($branchlabel, $branchurl); // Add a custom link to top navigation $branchlabel = '<i class="fa fa-cog fa-lg"></i>'; $branchurl = new moodle_url('/course/'); //$branchtitle = get_string('mydashboard', 'theme_essential'); //$branchsort = 10000; $branch = $menu->add($branchlabel, $branchurl); $branch->add('<i class="icon-user"></i>' . get_string('profile') . ' ', new moodle_url('/user/profile.php'), get_string('profile')); $branch->add('<i class="icon-calendar"></i>' . get_string('pluginname', 'block_calendar_month') . ' ', new moodle_url('/calendar/view.php'), get_string('pluginname', 'block_calendar_month')); $branch->add('<i class="icon-envelope"></i>' . get_string('pluginname', 'block_messages') . ' ', new moodle_url('/message/index.php'), get_string('pluginname', 'block_messages')); $branch->add('<i class="icon-certificate"></i>' . get_string('badges') . ' ', new moodle_url('/badges/mybadges.php'), get_string('badges')); $branch->add('<i class="icon-file"></i>' . get_string('privatefiles', 'block_private_files') . ' ', new moodle_url('/user/files.php'), get_string('privatefiles', 'block_private_files')); $branch->add('<i class="icon-signout"></i>' . get_string('logout') . ' ', new moodle_url('/login/logout.php'), get_string('logout')); // Add a custom link to top navigation $branchlabel = '<i class="fa fa-arrows-h fa-lg"></i>'; $branchurl = new moodle_url('/course/'); $branchtitle = "Hide sidebars"; $branch = $menu->add($branchlabel, $branchurl, $branchtitle); $content = '<ul class="nav">'; foreach ($menu->get_children() as $item) { $content .= $this->render_custom_menu_item($item, 1); } return $content . '</ul>'; }