如何在 moodle lms 中向特定用户显示导航栏选项?
How to show navigation bar options to specific users in moodle lms?
下面是我在 Moodle LMS 帐户的导航抽屉中显示额外选项的代码。
function local_report_extend_navigation(global_navigation $navigation)
{
$main_node = $navigation->add(get_string('pluginname', 'local_report'), '/local/report/');
$main_node->nodetype = 1;
$main_node->collapse = false;
$main_node->force_open = true;
$main_node->isexpandable = false;
$main_node->showinflatnavigation = true;
// $main_node->icon = new pix_icon('i/settings', get_string('pluginname', 'local_report'));
$main_node->icon = new pix_icon('i/files', get_string('pluginname', 'local_report'));
}
它的输出是:
This is the navigation-drawer. I want to show the Reports option to only admin, teacher and manager
谁能告诉我如何做到这一点?
您需要在本地插件中创建一个功能。在local/report/db/access.php
$capabilities = array(
'local/report:canview' => array(
'captype' => 'read',
'contextlevel' => CONTEXT_SYSTEM,
'archetypes' => array(
'manager' => CAP_ALLOW,
'teacher' => CAP_ALLOW,
'editingteacher' => CAP_ALLOW,
),
),
);
然后在你的函数中使用类似这样的东西。
if (!has_capability('local/report:canview', \context_system::instance())) {
return;
}
下面是我在 Moodle LMS 帐户的导航抽屉中显示额外选项的代码。
function local_report_extend_navigation(global_navigation $navigation)
{
$main_node = $navigation->add(get_string('pluginname', 'local_report'), '/local/report/');
$main_node->nodetype = 1;
$main_node->collapse = false;
$main_node->force_open = true;
$main_node->isexpandable = false;
$main_node->showinflatnavigation = true;
// $main_node->icon = new pix_icon('i/settings', get_string('pluginname', 'local_report'));
$main_node->icon = new pix_icon('i/files', get_string('pluginname', 'local_report'));
} 它的输出是: This is the navigation-drawer. I want to show the Reports option to only admin, teacher and manager
谁能告诉我如何做到这一点?
您需要在本地插件中创建一个功能。在local/report/db/access.php
$capabilities = array(
'local/report:canview' => array(
'captype' => 'read',
'contextlevel' => CONTEXT_SYSTEM,
'archetypes' => array(
'manager' => CAP_ALLOW,
'teacher' => CAP_ALLOW,
'editingteacher' => CAP_ALLOW,
),
),
);
然后在你的函数中使用类似这样的东西。
if (!has_capability('local/report:canview', \context_system::instance())) {
return;
}