Moodle - 添加一个元素到设置菜单
Moodle - Adding an element to the settings menu
我正在尝试在 Moodle
中开发一个插件。其中一项要求是在 Settings
菜单中添加一个 element
,我可以在本指南的帮助下实现
https://docs.moodle.org/dev/Local_plugins#Adding_an_element_to_the_settings_menu
这是我在 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);
}
}
?>
我允许学生在设置菜单中看到元素"Class Record"
我的顾虑是我hide/showClass Record
我怎么加?
任何想法都会很棒!
如果您只希望某些用户看到 link,则在 local/myplugin/db/access.php 中创建适当的功能,例如'local/myplugin:viewclassrecord',默认分配给 'student' 角色。然后在你定义的函数中查看。
例如
if (!has_capability('local/myplugin:viewclassrecord', $context)) {
return;
}
我正在尝试在 Moodle
中开发一个插件。其中一项要求是在 Settings
菜单中添加一个 element
,我可以在本指南的帮助下实现
https://docs.moodle.org/dev/Local_plugins#Adding_an_element_to_the_settings_menu
这是我在 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);
}
}
?>
我允许学生在设置菜单中看到元素"Class Record"
我的顾虑是我hide/showClass Record
我怎么加?
任何想法都会很棒!
如果您只希望某些用户看到 link,则在 local/myplugin/db/access.php 中创建适当的功能,例如'local/myplugin:viewclassrecord',默认分配给 'student' 角色。然后在你定义的函数中查看。
例如
if (!has_capability('local/myplugin:viewclassrecord', $context)) {
return;
}