Ejemplo n.º 1
0
 /**
  * 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;
 }
Ejemplo n.º 2
0
 /**
  * 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;
 }
Ejemplo n.º 3
0
 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>';
 }
 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;
 }
Ejemplo n.º 5
0
 /**
  * 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)
 {
     /*
      * This code replaces adds the current enrolled
      * courses to the custommenu.
      */
     $hasdisplaymycourses = empty($this->page->theme->settings->displaymycourses) ? false : $this->page->theme->settings->displaymycourses;
     if (isloggedin() && !isguestuser() && $hasdisplaymycourses) {
         $mycoursetitle = $this->page->theme->settings->mycoursetitle;
         if ($mycoursetitle == 'module') {
             $branchtitle = get_string('mymodules', 'theme_evolved');
         } else {
             if ($mycoursetitle == 'unit') {
                 $branchtitle = get_string('myunits', 'theme_evolved');
             } else {
                 if ($mycoursetitle == 'class') {
                     $branchtitle = get_string('myclasses', 'theme_evolved');
                 } else {
                     $branchtitle = get_string('mycourses', 'theme_evolved');
                 }
             }
         }
         $branchlabel = '<i class="fa fa-briefcase"></i>' . $branchtitle;
         $branchurl = new moodle_url('/my/index.php');
         $branchsort = 10000;
         $branch = $menu->add($branchlabel, $branchurl, $branchtitle, $branchsort);
         if ($courses = enrol_get_my_courses(NULL, 'fullname ASC')) {
             foreach ($courses 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_evolved');
             $branch->add('<em>' . $noenrolments . '</em>', new moodle_url('/'), $noenrolments);
         }
     }
     /*
      * This code replaces adds the My Dashboard
      * functionality to the custommenu.
      */
     $hasdisplaymydashboard = empty($this->page->theme->settings->displaymydashboard) ? false : $this->page->theme->settings->displaymydashboard;
     if (isloggedin() && !isguestuser() && $hasdisplaymydashboard) {
         $branchlabel = '<i class="fa fa-dashboard"></i>' . get_string('mydashboard', 'theme_evolved');
         $branchurl = new moodle_url('/my/index.php');
         $branchtitle = get_string('mydashboard', 'theme_evolved');
         $branchsort = 10000;
         $branch = $menu->add($branchlabel, $branchurl, $branchtitle, $branchsort);
         $branch->add(get_string('profile') . '</em>', new moodle_url('/user/profile.php'), get_string('profile'));
         $branch->add(get_string('pluginname', 'block_calendar_month') . '</em>', new moodle_url('/calendar/view.php'), get_string('pluginname', 'block_calendar_month'));
         $branch->add(get_string('pluginname', 'block_messages') . '</em>', new moodle_url('/message/index.php'), get_string('pluginname', 'block_messages'));
         $branch->add(get_string('badges') . '</em>', new moodle_url('/badges/mybadges.php'), get_string('badges'));
         $branch->add(get_string('privatefiles', 'block_private_files') . '</em>', new moodle_url('/user/files.php'), get_string('privatefiles', 'block_private_files'));
         $branch->add(get_string('logout') . '</em>', new moodle_url('/login/logout.php'), get_string('logout'));
     }
     return parent::render_custom_menu($menu);
 }
 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;
 }
Ejemplo n.º 8
0
 protected function render_custom_menu(custom_menu $menu)
 {
     global $CFG;
     require_once $CFG->dirroot . '/course/lib.php';
     //navigation mycourses is no supported since 2.4
     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;
         $branchsort = 8000;
         $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);
         }
     }
     $course_id = $this->page->course->id;
     if (isloggedin() && $course_id > 1) {
         $branchlabel = get_string('grades');
         $branchurl = new moodle_url('/grade/report/index.php?id=' . $this->page->course->id);
         $branchtitle = $branchlabel;
         $branchsort = 10000;
         $branch = $menu->add($branchlabel, $branchurl, $branchtitle, $branchsort);
     }
     return parent::render_custom_menu($menu);
 }
Ejemplo n.º 9
0
    /**
     * 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;
    }
 /**
  * Creates the custom menu
  *
  * @param string $definition the menu items definition in syntax required by {@link convert_text_to_menu_nodes()}
  * @param string $currentlanguage the current language code, null disables multilang support
  */
 public function __construct($definition = '', $currentlanguage = null)
 {
     $this->currentlanguage = $currentlanguage;
     parent::__construct('root');
     // Create virtual root element of the menu.
     if (!empty($definition)) {
         $this->override_children(self::convert_text_to_menu_nodes($definition, $currentlanguage));
     }
 }
Ejemplo n.º 11
0
 protected function render_custom_menu(custom_menu $menu)
 {
     global $CFG;
     $hasdisplaymycourses = theme_lambda_get_setting('mycourses_dropdown');
     if (isloggedin() && !isguestuser() && $hasdisplaymycourses) {
         $branchlabel = get_string('mycourses');
         $branchurl = new moodle_url('#');
         $branchtitle = $branchlabel;
         $branchsort = 10000;
         $branch = $menu->add($branchlabel, $branchurl, $branchtitle, $branchsort);
         if ($mycourses = enrol_get_my_courses(NULL, 'visible DESC, fullname ASC')) {
             foreach ($mycourses as $mycourse) {
                 $branch->add($mycourse->shortname, new moodle_url('/course/view.php', array('id' => $mycourse->id)), $mycourse->fullname);
             }
         } else {
             $hometext = get_string('myhome');
             $homelabel = $hometext;
             $branch->add($homelabel, new moodle_url('/my/index.php'), $hometext);
         }
     }
     return parent::render_custom_menu($menu);
 }
Ejemplo n.º 12
0
 protected function render_custom_menu(custom_menu $menu)
 {
     /*
      * This code replaces adds the current enrolled
      * courses to the custommenu.
      */
     $hasdisplaymycourses = empty($this->page->theme->settings->displaymycourses) ? false : $this->page->theme->settings->displaymycourses;
     if (isloggedin() && !isguestuser() && $hasdisplaymycourses) {
         $mycoursetitle = $this->page->theme->settings->mycoursetitle;
         if ($mycoursetitle == 'module') {
             $branchtitle = get_string('mymodules', 'theme_evolved');
         } else {
             if ($mycoursetitle == 'unit') {
                 $branchtitle = get_string('myunits', 'theme_evolved');
             } else {
                 if ($mycoursetitle == 'class') {
                     $branchtitle = get_string('myclasses', 'theme_evolved');
                 } else {
                     $branchtitle = get_string('mycourses', 'theme_evolved');
                 }
             }
         }
         $branchlabel = '<i class="fa fa-briefcase"></i>' . $branchtitle;
         $branchurl = new moodle_url('/my/index.php');
         $branchsort = 10000;
         $branch = $menu->add($branchlabel, $branchurl, $branchtitle, $branchsort);
         if ($courses = enrol_get_my_courses(NULL, 'fullname ASC')) {
             foreach ($courses 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_evolved');
             $branch->add('<em>' . $noenrolments . '</em>', new moodle_url('/'), $noenrolments);
         }
     }
     return parent::render_custom_menu($menu);
 }
Ejemplo n.º 13
0
 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>';
 }
Ejemplo n.º 14
0
 /**
  * Outputs the goto bottom menu.
  * @return custom_menu object
  */
 public function custom_menu_goto_bottom()
 {
     $html = '';
     if ($this->page->pagelayout == 'course' || $this->page->pagelayout == 'incourse' || $this->page->pagelayout == 'admin') {
         // Go to bottom.
         $menu = new custom_menu();
         $gotobottom = html_writer::tag('i', '', array('class' => 'fa fa-arrow-circle-o-down'));
         $menu->add($gotobottom, new moodle_url('#region-main'), get_string('gotobottom', 'theme_essential'));
         $html = $this->render_custom_menu($menu);
     }
     return $html;
 }
Ejemplo n.º 15
0
 /**
  * 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;
 }
Ejemplo n.º 16
0
 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_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, $USER;
     /*
      * This code replaces adds the current enrolled
      * courses to the custommenu.
      */
     $hasdisplaymycourses = empty($this->page->theme->settings->displaymycourses) ? false : $this->page->theme->settings->displaymycourses;
     if (isloggedin() && !isguestuser() && $hasdisplaymycourses) {
         $mycoursetitle = $this->page->theme->settings->mycoursetitle;
         if ($mycoursetitle == 'module') {
             $branchtitle = get_string('mymodules', 'theme_essential');
         } else {
             if ($mycoursetitle == 'unit') {
                 $branchtitle = get_string('myunits', 'theme_essential');
             } else {
                 if ($mycoursetitle == 'class') {
                     $branchtitle = get_string('myclasses', 'theme_essential');
                 } else {
                     $branchtitle = get_string('mycourses', 'theme_essential');
                 }
             }
         }
         $branchlabel = '<i class="fa fa-briefcase"></i>' . $branchtitle;
         $branchurl = new moodle_url('/my/index.php');
         $branchsort = 10000;
         $branch = $menu->add($branchlabel, $branchurl, $branchtitle, $branchsort);
         if ($courses = enrol_get_my_courses(NULL, 'fullname ASC')) {
             foreach ($courses 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_essential');
             $branch->add('<em>' . $noenrolments . '</em>', new moodle_url('/'), $noenrolments);
         }
     }
     /*
      * This code replaces adds the My Dashboard
      * functionality to the custommenu.
      */
     $hasdisplaymydashboard = empty($this->page->theme->settings->displaymydashboard) ? false : $this->page->theme->settings->displaymydashboard;
     if (isloggedin() && !isguestuser() && $hasdisplaymydashboard) {
         $branchlabel = '<i class="fa fa-dashboard"></i>' . get_string('mydashboard', 'theme_essential');
         $branchurl = new moodle_url('/my/index.php');
         $branchtitle = get_string('mydashboard', 'theme_essential');
         $branchsort = 10000;
         $branch = $menu->add($branchlabel, $branchurl, $branchtitle, $branchsort);
         $branch->add('<em><i class="fa fa-user"></i>' . get_string('profile') . '</em>', new moodle_url('/user/profile.php'), get_string('profile'));
         $branch->add('<em><i class="fa fa-calendar"></i>' . get_string('pluginname', 'block_calendar_month') . '</em>', new moodle_url('/calendar/view.php'), get_string('pluginname', 'block_calendar_month'));
         // Check if messaging is enabled.
         if (!empty($CFG->messaging)) {
             $branch->add('<em><i class="fa fa-envelope"></i>' . get_string('pluginname', 'block_messages') . '</em>', new moodle_url('/message/index.php'), get_string('pluginname', 'block_messages'));
         }
         // Check if badges are enabled.
         if (!empty($CFG->enablebadges)) {
             $branch->add('<em><i class="fa fa-certificate"></i>' . get_string('badges') . '</em>', new moodle_url('/badges/mybadges.php'), get_string('badges'));
         }
         $branch->add('<em><i class="fa fa-file"></i>' . get_string('privatefiles', 'block_private_files') . '</em>', new moodle_url('/user/files.php'), get_string('privatefiles', 'block_private_files'));
         $branch->add('<i class="fa fa-list-alt"></i>' . get_string('forumposts', 'mod_forum'), new moodle_url('/mod/forum/user.php?id=' . $USER->id));
         $branch->add('<i class="fa fa-list"></i>' . get_string('discussions', 'mod_forum'), new moodle_url('/mod/forum/user.php?id=' . $USER->id . '&mode=discussions'));
         $branch->add('<em><i class="fa fa-sign-out"></i>' . get_string('logout') . '</em>', new moodle_url('/login/logout.php'), get_string('logout'));
     }
     /*
      * This code adds the Theme colors selector to the custommenu.
      */
     if (isloggedin() && !isguestuser()) {
         $alternativethemes = array();
         foreach (range(1, 3) as $alternativethemenumber) {
             if (!empty($this->page->theme->settings->{'enablealternativethemecolors' . $alternativethemenumber})) {
                 $alternativethemes[] = $alternativethemenumber;
             }
         }
         if (!empty($alternativethemes)) {
             $branchtitle = get_string('themecolors', 'theme_essential');
             $branchlabel = '<i class="fa fa-th-large"></i>' . $branchtitle;
             $branchurl = new moodle_url('/my/index.php');
             $branchsort = 11000;
             $branch = $menu->add($branchlabel, $branchurl, $branchtitle, $branchsort);
             $defaultthemecolorslabel = get_string('defaultcolors', 'theme_essential');
             $branch->add('<i class="fa fa-square colours-default"></i>' . $defaultthemecolorslabel, new moodle_url($this->page->url, array('essentialcolours' => 'default')), $defaultthemecolorslabel);
             foreach ($alternativethemes as $alternativethemenumber) {
                 if (!empty($this->page->theme->settings->{'alternativethemename' . $alternativethemenumber})) {
                     $alternativethemeslabel = $this->page->theme->settings->{'alternativethemename' . $alternativethemenumber};
                 } else {
                     $alternativethemeslabel = get_string('alternativecolors', 'theme_essential', $alternativethemenumber);
                 }
                 $branch->add('<i class="fa fa-square colours-alternative' . $alternativethemenumber . '"></i>' . $alternativethemeslabel, new moodle_url($this->page->url, array('essentialcolours' => 'alternative' . $alternativethemenumber)), $alternativethemeslabel);
             }
         }
     }
     return parent::render_custom_menu($menu);
 }
Ejemplo n.º 19
0
 /**
  * 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 $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>';
 }
Ejemplo n.º 21
0
 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>';
 }
Ejemplo n.º 22
0
 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;
     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>';
 }
Ejemplo n.º 24
0
    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;
    }
Ejemplo n.º 25
0
    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>";
    }
Ejemplo n.º 26
0
 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>';
 }
Ejemplo n.º 27
0
    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());
    }
Ejemplo n.º 28
0
 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;
 }
Ejemplo n.º 29
0
 /**
  * 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)
 {
     foreach ($menu->get_children() as $item) {
         $items[] = $this->render_custom_menu_item($item);
     }
     if (isset($items)) {
         return html::ul('nav', $items);
     } else {
         return '';
     }
 }