Example #1
1
/**
 * 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);
    }
}
Example #2
0
/**
 * 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', ''));
    }
}
Example #5
0
/**
 * 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');
 }
Example #11
0
/**
 * 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)));
    }
}
Example #12
0
/**
 * 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);
        }
    }
}