/** * Adds module specific settings to the settings block. * * @param settings_navigation $settings The settings navigation object * @param stdClass $context The node context */ function local_loginas_extends_settings_navigation(settings_navigation $settings, $context) { global $DB, $CFG, $PAGE, $USER; // Course id and context. $courseid = !empty($PAGE->course->id) ? $PAGE->course->id : SITEID; $coursecontext = context_course::instance($courseid); // Must have the loginas capability. if (!has_capability('moodle/user:loginas', $coursecontext)) { return; } // Set the settings category. $loginas = $settings->add(get_string('loginas')); // Login as list by admin setting. if (is_siteadmin($USER)) { // Admin settings page. $url = new moodle_url('/admin/settings.php', array('section' => 'localsettingloginas')); $loginas->add(get_string('settings'), $url, $settings::TYPE_SETTING); // Users list. $loginasusers = array(); // Since 2.6, use all the required fields. $ufields = 'id, ' . get_all_user_name_fields(true); // Get users by id. if ($configuserids = get_config('local_loginas', 'loginasusers')) { $userids = explode(',', $configuserids); if ($users = $DB->get_records_list('user', 'id', $userids, '', $ufields)) { $loginasusers = $users; } } // Get users by username. if ($configusernames = get_config('local_loginas', 'loginasusernames')) { $usernames = explode(',', $configusernames); if ($users = $DB->get_records_list('user', 'username', $usernames, '', $ufields)) { $loginasusers = $loginasusers + $users; } } // Add action links for specified users. if ($loginasusers) { $params = array('id' => $courseid, 'sesskey' => sesskey()); foreach ($loginasusers as $userid => $lauser) { $url = new moodle_url('/course/loginas.php', $params); $url->param('user', $userid); $loginas->add(fullname($lauser, true), $url, $settings::TYPE_SETTING); } } } // Course users login as. if (!($configcourseusers = get_config('local_loginas', 'courseusers'))) { return; } $loggedinas = \core\session\manager::is_loggedinas(); if (!$loggedinas) { // Ajax link. $node = $loginas->add(get_string('courseusers', 'local_loginas'), 'javascript:void();', $settings::TYPE_SETTING); $node->add_class('local_loginas_setting_link'); local_loginas_require_js($PAGE); } }
/** * Display the LTI settings in the course settings block * For 2.3 and onwards * * @param settings_navigation $nav The settings navigatin object * @param stdclass $context Course context */ function local_ltiprovider_extend_settings_navigation(settings_navigation $nav, $context) { if ($context->contextlevel >= CONTEXT_COURSE and $branch = $nav->get('courseadmin') and has_capability('local/ltiprovider:view', $context)) { $ltiurl = new moodle_url('/local/ltiprovider/index.php', array('courseid' => $context->instanceid)); $branch->add(get_string('pluginname', 'local_ltiprovider'), $ltiurl, $nav::TYPE_CONTAINER, null, 'ltiprovider' . $context->instanceid); } }
/** * Hook to insert a link in settings navigation menu block * * @param settings_navigation $navigation * @param course_context $context * @return void */ function local_mass_enroll_extends_settings_navigation(settings_navigation $navigation, $context) { global $CFG; // If not in a course context, then leave. if ($context == null || $context->contextlevel != CONTEXT_COURSE) { return; } // Front page has a 'frontpagesettings' node, other courses will have 'courseadmin' node. if (null == ($courseadminnode = $navigation->get('courseadmin'))) { // Keeps us off the front page. return; } if (null == ($useradminnode = $courseadminnode->get('users'))) { return; } $config = get_config('local_mass_enroll'); if ((bool) $config->enablemassenrol) { if (has_capability('local/mass_enroll:enrol', $context)) { $url = new moodle_url($CFG->wwwroot . '/local/mass_enroll/mass_enroll.php', array('id' => $context->instanceid)); $useradminnode->add(get_string('mass_enroll', 'local_mass_enroll'), $url, navigation_node::TYPE_SETTING, null, 'massenrols', new pix_icon('i/admin', '')); } } if ((bool) $config->enablemassunenrol) { if (has_capability('local/mass_enroll:unenrol', $context)) { $url = new moodle_url($CFG->wwwroot . '/local/mass_enroll/mass_unenroll.php', array('id' => $context->instanceid)); $useradminnode->add(get_string('mass_unenroll', 'local_mass_enroll'), $url, navigation_node::TYPE_SETTING, null, 'massunenrols', new pix_icon('i/admin', '')); } } }
/** * Hook to insert a link in settings navigation menu block * * @param settings_navigation $navigation * @param course_context $context * @return void */ function local_mass_enroll_extends_settings_navigation(settings_navigation $navigation, $context) { global $CFG; // If not in a course context, then leave if ($context == null || $context->contextlevel != CONTEXT_COURSE) { return; } // When on front page there is 'frontpagesettings' node, other // courses will have 'courseadmin' node if (null == ($courseadmin_node = $navigation->get('courseadmin'))) { // Keeps us off the front page return; } if (null == ($useradmin_node = $courseadmin_node->get('users'))) { return; } // Add our links no need to patch core anymore !!!! if (empty($CFG->allow_mass_enroll_feature)) { return; } if (has_capability('local/mass_enroll:enrol', $context)) { $url = new moodle_url('/local/mass_enroll/mass_enroll.php', array('id' => $context->instanceid)); $useradmin_node->add(get_string('mass_enroll', 'local_mass_enroll'), $url, navigation_node::TYPE_SETTING, null, 'massenrols', new pix_icon('i/admin', '')); } if (has_capability('local/mass_enroll:unenrol', $context)) { $url = new moodle_url('/local/mass_enroll/mass_unenroll.php', array('id' => $context->instanceid)); $useradmin_node->add(get_string('mass_unenroll', 'local_mass_enroll'), $url, navigation_node::TYPE_SETTING, null, 'massunenrols', new pix_icon('i/admin', '')); } }
/** * Display the Moodec settings in the course settings block * For 2.3 and onwards * * @param settings_navigation $nav The settings navigation object * @param stdclass $context Course context */ function local_moodec_extends_settings_navigation(settings_navigation $nav, $context) { global $CFG; if ($context->contextlevel >= CONTEXT_COURSE and $branch = $nav->get('courseadmin') and has_capability('moodle/course:update', $context)) { $url = new moodle_url($CFG->wwwroot . '/local/moodec/settings/product.php', array('id' => $context->instanceid)); $branch->add(get_string('moodec_product_settings', 'local_moodec'), $url, $nav::TYPE_CONTAINER, null, 'moodec' . $context->instanceid, new pix_icon('i/settings', '')); } }
/** * If no category root exists creates it and returns it. Otherwise just returns the already created root. * @param settings_navigation $nav * @return navigation_node */ function category_get_root(settings_navigation &$nav) { static $categoryroot = null; if (!isset($categoryroot)) { $categoryroot = $nav->add(get_string('catadmin', 'local_contextadmin')); // Root Node. } return $categoryroot; }
function local_forum2pdf_extends_settings_navigation(settings_navigation $nav, context $context) { global $PAGE; // 教師にのみPDF出力を許可 if (!has_capability('moodle/course:manageactivities', $context)) { return; } //echo "<pre>"; var_dump($PAGE->cm->instance); echo "</pre>"; if ($PAGE->context->contextlevel == CONTEXT_MODULE && $PAGE->cm->modname === 'forum') { $pdflink = navigation_node::create(get_string('pdflink', 'local_forum2pdf')); $pdflink->key = 'forum2pdf'; $pdflink->action = new moodle_url('/local/forum2pdf/export.php', array('f' => $PAGE->cm->instance)); $modulesettings = $nav->get('modulesettings'); $modulesettings->add_node($pdflink); } }
function local_syncgroups_extends_settings_navigation(settings_navigation $nav, context $context = null) { global $PAGE; // Only add this settings item on non-site course pages. if (!$PAGE->course or $PAGE->course->id == 1) { return; } if ($coursenode = $nav->get('courseadmin')) { if ($usersnode = $coursenode->get('users')) { $str = get_string('pluginname', 'local_syncgroups'); $url = new moodle_url('/local/syncgroups/index.php', array('courseid' => $context->instanceid)); $node = navigation_node::create($str, $url, navigation_node::NODETYPE_LEAF, 'local_syncgroups', 'local_syncgroups'); if ($PAGE->url->compare($url, URL_MATCH_BASE)) { $node->make_active(); } $usersnode->add_node($node, 'override'); } } }
/** * Hook to insert a link in settings navigation menu block * * @param settings_navigation $navigation * @param course_context $context * @return void */ function local_userenrols_extend_settings_navigation(settings_navigation $navigation, $context) { // If not in a course context, then leave if ($context == null || $context->contextlevel != CONTEXT_COURSE) { return; } // When on front page there is 'frontpagesettings' node, other // courses will have 'courseadmin' node if (null == ($courseadmin_node = $navigation->get('courseadmin'))) { // Keeps us off the front page return; } if (null == ($useradmin_node = $courseadmin_node->get('users'))) { return; } // Add our links $useradmin_node->add(get_string('IMPORT_MENU_LONG', local_userenrols_plugin::PLUGIN_NAME), local_userenrols_plugin::get_plugin_url('import', $context->instanceid), navigation_node::TYPE_SETTING, get_string('IMPORT_MENU_SHORT', local_userenrols_plugin::PLUGIN_NAME), null, new pix_icon('i/import', 'import')); $useradmin_node->add(get_string('UNENROLL_MENU_LONG', local_userenrols_plugin::PLUGIN_NAME), local_userenrols_plugin::get_plugin_url('unenroll', $context->instanceid), navigation_node::TYPE_SETTING, get_string('UNENROLL_MENU_SHORT', local_userenrols_plugin::PLUGIN_NAME), null, new pix_icon('i/export', 'export')); $useradmin_node->add(get_string('ASSIGN_MENU_LONG', local_userenrols_plugin::PLUGIN_NAME), local_userenrols_plugin::get_plugin_url('assign', $context->instanceid), navigation_node::TYPE_SETTING, get_string('ASSIGN_MENU_SHORT', local_userenrols_plugin::PLUGIN_NAME), null, new pix_icon('t/move', 'assign')); }
public function __construct() { global $PAGE; parent::__construct($PAGE); $this->cache = new navigation_cache('unittest_nav'); }
/** * Extends the settings navigation with the emarking settings * * This function is called when the context for the page is a emarking module. This is not called by AJAX * so it is safe to rely on the $PAGE. * * @param settings_navigation $settingsnav * {@link settings_navigation} * @param navigation_node $emarkingnode * {@link navigation_node} */ function emarking_extend_settings_navigation(settings_navigation $settingsnav, $emarkingnode) { global $PAGE, $DB, $USER, $CFG; $course = $PAGE->course; // Course context is used as this can work outside of the module $context = $PAGE->context; /* if ($context instanceof context_course && isset($settingsnav) && $context->instanceid > 1 && is_siteadmin()) { $settingnode = $settingsnav->add(get_string('emarking', 'mod_emarking'), null, navigation_node::TYPE_CONTAINER); $thingnode = $settingnode->add(get_string('quizprinting', 'local_galyleo'), new moodle_url('/local/galyleo/quizzes.php', array( 'course' => $context->instanceid ))); } if ($context instanceof context_module && isset($settingsnav) && is_siteadmin()) { if ($contextcourse = $context->get_course_context(false)) { $settingnode = $settingsnav->add(get_string('galyleo', 'local_galyleo'), null, navigation_node::TYPE_CONTAINER); $thingnode = $settingnode->add(get_string('quizprinting', 'local_galyleo'), new moodle_url('/local/galyleo/quizzes.php', array( 'course' => $contextcourse->instanceid, 'quiz' => $context->instanceid ))); } } */ if (is_siteadmin($USER) || has_capability("mod/emarking:manageprinters", $context) && $CFG->emarking_enableprinting) { $settingnode = $settingsnav->add(get_string('emarkingprints', 'mod_emarking'), null, navigation_node::TYPE_CONTAINER); $thingnode = $settingnode->add(get_string('adminprints', 'mod_emarking'), new moodle_url("/mod/emarking/print/printers.php", array('sesskey' => $USER->sesskey))); $thingnode = $settingnode->add(get_string('permitsviewprinters', 'mod_emarking'), new moodle_url("mod/emarking/print/usersprinters.php", array('sesskey' => $USER->sesskey))); } }
/** * Display the LTI link in the course administration menu. * * @param settings_navigation $navigation The settings navigation object * @param stdClass $course The course * @param stdclass $context Course context */ function enrol_lti_extend_navigation_course($navigation, $course, $context) { // Check that the LTI plugin is enabled. if (enrol_is_enabled('lti')) { // Check that they can add an instance. $ltiplugin = enrol_get_plugin('lti'); if ($ltiplugin->can_add_instance($course->id)) { $url = new moodle_url('/enrol/lti/index.php', array('courseid' => $course->id)); $settingsnode = navigation_node::create(get_string('sharedexternaltools', 'enrol_lti'), $url, navigation_node::TYPE_SETTING, null, null, new pix_icon('i/settings', '')); $navigation->add_node($settingsnode); } } }