简体   繁体   中英

Moodle - Adding an element to the settings menu

I'm trying to develop a plugin in Moodle . One of the requirements is to add an element to the Settings Menu, in which I was able to achieve with the help of this guide

https://docs.moodle.org/dev/Local_plugins#Adding_an_element_to_the_settings_menu

And this is my code in local/myplugin/lib.php

<?php 



function local_myplugin_extends_settings_navigation($settingsnav, $context) {
        // question_extend_settings_navigation
    global $CFG, $PAGE;

    // Only add this settings item on non-site course pages.
    if (!$PAGE->course or $PAGE->course->id == 1) {
        return;
    }

    // Only let users with the appropriate capability see this settings item.
    /*if (!has_capability('moodle/backup:backupcourse', context_course::instance($PAGE->course->id))) {
        return;
    }*/

    if ($settingnode = $settingsnav->find('courseadmin', navigation_node::TYPE_COURSE)) {
        $strfoo = get_string('classrecord', 'local_myplugin');
        $url = new moodle_url('/course/classrecord.php', array('id' => $PAGE->course->id));
        $foonode = navigation_node::create(
            $strfoo,
            $url,
            navigation_node::NODETYPE_LEAF,
            'myplugin',
            'myplugin',
            new pix_icon('i/grades', $strfoo)
            );
        if ($PAGE->url->compare($url, URL_MATCH_BASE)) {
            $foonode->make_active();
        }

        $settingnode->add_node($foonode); 

    }
}

?>

I allowed the students to see the element "Class Record" in the settings menu

设置菜单下的班级记录元素

My concern is that how can I hide/show Class Record I added?

Any ideas would be great!

If you want only certain users to see the link, then create an appropriate capability in local/myplugin/db/ access.php , eg 'local/myplugin:viewclassrecord', defaulting to being assigned to the 'student' role. Then check for it in the function you have defined.

eg

if (!has_capability('local/myplugin:viewclassrecord', $context)) {
    return;
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM