[ Index ] |
PHP Cross Reference of moodle-2.8 |
[Summary view] [Print] [Text view]
1 <?php 2 // This file is part of Moodle - http://moodle.org/ 3 // 4 // Moodle is free software: you can redistribute it and/or modify 5 // it under the terms of the GNU General Public License as published by 6 // the Free Software Foundation, either version 3 of the License, or 7 // (at your option) any later version. 8 // 9 // Moodle is distributed in the hope that it will be useful, 10 // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 // GNU General Public License for more details. 13 // 14 // You should have received a copy of the GNU General Public License 15 // along with Moodle. If not, see <http://www.gnu.org/licenses/>. 16 17 /** 18 * Site main menu block. 19 * 20 * @package block_site_main_menu 21 * @copyright 1999 onwards Martin Dougiamas (http://dougiamas.com) 22 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 23 */ 24 25 class block_site_main_menu extends block_list { 26 function init() { 27 $this->title = get_string('pluginname', 'block_site_main_menu'); 28 } 29 30 function applicable_formats() { 31 return array('site' => true); 32 } 33 34 function get_content() { 35 global $USER, $CFG, $DB, $OUTPUT; 36 37 if ($this->content !== NULL) { 38 return $this->content; 39 } 40 41 $this->content = new stdClass(); 42 $this->content->items = array(); 43 $this->content->icons = array(); 44 $this->content->footer = ''; 45 46 if (empty($this->instance)) { 47 return $this->content; 48 } 49 50 $course = $this->page->course; 51 require_once($CFG->dirroot.'/course/lib.php'); 52 $context = context_course::instance($course->id); 53 $isediting = $this->page->user_is_editing() && has_capability('moodle/course:manageactivities', $context); 54 55 /// extra fast view mode 56 if (!$isediting) { 57 $modinfo = get_fast_modinfo($course); 58 if (!empty($modinfo->sections[0])) { 59 $options = array('overflowdiv'=>true); 60 foreach($modinfo->sections[0] as $cmid) { 61 $cm = $modinfo->cms[$cmid]; 62 if (!$cm->uservisible) { 63 continue; 64 } 65 66 $content = $cm->get_formatted_content(array('overflowdiv' => true, 'noclean' => true)); 67 $instancename = $cm->get_formatted_name(); 68 69 if (!($url = $cm->url)) { 70 $this->content->items[] = $content; 71 $this->content->icons[] = ''; 72 } else { 73 $linkcss = $cm->visible ? '' : ' class="dimmed" '; 74 //Accessibility: incidental image - should be empty Alt text 75 $icon = '<img src="' . $cm->get_icon_url() . '" class="icon" alt="" />'; 76 $this->content->items[] = '<a title="'.$cm->modplural.'" '.$linkcss.' '.$cm->extra. 77 ' href="' . $url . '">' . $icon . $instancename . '</a>'; 78 } 79 } 80 } 81 return $this->content; 82 } 83 84 // Slow & hacky editing mode. 85 /** @var core_course_renderer $courserenderer */ 86 $courserenderer = $this->page->get_renderer('core', 'course'); 87 $ismoving = ismoving($course->id); 88 course_create_sections_if_missing($course, 0); 89 $modinfo = get_fast_modinfo($course); 90 $section = $modinfo->get_section_info(0); 91 92 if ($ismoving) { 93 $strmovehere = get_string('movehere'); 94 $strmovefull = strip_tags(get_string('movefull', '', "'$USER->activitycopyname'")); 95 $strcancel= get_string('cancel'); 96 $stractivityclipboard = $USER->activitycopyname; 97 } else { 98 $strmove = get_string('move'); 99 } 100 $editbuttons = ''; 101 102 if ($ismoving) { 103 $this->content->icons[] = '<img src="'.$OUTPUT->pix_url('t/move') . '" class="iconsmall" alt="" />'; 104 $this->content->items[] = $USER->activitycopyname.' (<a href="'.$CFG->wwwroot.'/course/mod.php?cancelcopy=true&sesskey='.sesskey().'">'.$strcancel.'</a>)'; 105 } 106 107 if (!empty($modinfo->sections[0])) { 108 $options = array('overflowdiv'=>true); 109 foreach ($modinfo->sections[0] as $modnumber) { 110 $mod = $modinfo->cms[$modnumber]; 111 if (!$mod->uservisible) { 112 continue; 113 } 114 if (!$ismoving) { 115 $actions = course_get_cm_edit_actions($mod, -1); 116 117 // Prepend list of actions with the 'move' action. 118 $actions = array('move' => new action_menu_link_primary( 119 new moodle_url('/course/mod.php', array('sesskey' => sesskey(), 'copy' => $mod->id)), 120 new pix_icon('t/move', $strmove, 'moodle', array('class' => 'iconsmall', 'title' => '')), 121 $strmove 122 )) + $actions; 123 124 $editbuttons = html_writer::tag('div', 125 $courserenderer->course_section_cm_edit_actions($actions, $mod, array('donotenhance' => true)), 126 array('class' => 'buttons') 127 ); 128 } else { 129 $editbuttons = ''; 130 } 131 if ($mod->visible || has_capability('moodle/course:viewhiddenactivities', $mod->context)) { 132 if ($ismoving) { 133 if ($mod->id == $USER->activitycopy) { 134 continue; 135 } 136 $this->content->items[] = '<a title="'.$strmovefull.'" href="'.$CFG->wwwroot.'/course/mod.php?moveto='.$mod->id.'&sesskey='.sesskey().'">'. 137 '<img style="height:16px; width:80px; border:0px" src="'.$OUTPUT->pix_url('movehere') . '" alt="'.$strmovehere.'" /></a>'; 138 $this->content->icons[] = ''; 139 } 140 $content = $mod->get_formatted_content(array('overflowdiv' => true, 'noclean' => true)); 141 $instancename = $mod->get_formatted_name(); 142 $linkcss = $mod->visible ? '' : ' class="dimmed" '; 143 144 if (!($url = $mod->url)) { 145 $this->content->items[] = $content . $editbuttons; 146 $this->content->icons[] = ''; 147 } else { 148 //Accessibility: incidental image - should be empty Alt text 149 $icon = '<img src="' . $mod->get_icon_url() . '" class="icon" alt="" />'; 150 $this->content->items[] = '<a title="' . $mod->modfullname . '" ' . $linkcss . ' ' . $mod->extra . 151 ' href="' . $url . '">' . $icon . $instancename . '</a>' . $editbuttons; 152 } 153 } 154 } 155 } 156 157 if ($ismoving) { 158 $this->content->items[] = '<a title="'.$strmovefull.'" href="'.$CFG->wwwroot.'/course/mod.php?movetosection='.$section->id.'&sesskey='.sesskey().'">'. 159 '<img style="height:16px; width:80px; border:0px" src="'.$OUTPUT->pix_url('movehere') . '" alt="'.$strmovehere.'" /></a>'; 160 $this->content->icons[] = ''; 161 } 162 163 $this->content->footer = $courserenderer->course_section_add_cm_control($course, 164 0, null, array('inblock' => true)); 165 166 return $this->content; 167 } 168 } 169 170
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Fri Nov 28 20:29:05 2014 | Cross-referenced by PHPXref 0.7.1 |