Moodle 站点管理自定义链接

Moodle site administration custom links

我想将自定义 link 添加到顶级站点管理文件夹中,如下所示:

站点管理
- 我的习惯 link 1
- 我的习惯 link 2
.. 然后是标准的 moodle
- 通知
- 等等...

到目前为止,我能够将自定义 link 添加到主导航块和管理块内部,但在站点管理文件夹中没有 way.Right 现在我正在从设置中获取菜单项with $settings = get_config('local_custom_links');

如果你想在块管理中添加 links,它会完美地工作..,但是如果有人成功地将 links 添加到站点管理文件夹,请帮忙。
这是我的代码:

function local_custom_links_extend_settings_navigation(settings_navigation $nav, context $context) {

    $settings = get_config('local_custom_links');
    if (!empty($settings->menuitems_site_administration) && $settings->enable_site_administration) {
        $menu = new custom_menu($settings->menuitems_site_administration, current_language());
        if ($menu->has_children()) {
            foreach ($menu->get_children() as $item) {
                custom_links_settings_item($item, 0, null, $nav);
            }
        }
    }

}

function custom_links_settings_item(custom_menu_item $menunode, $parent, $pmasternode, settings_navigation $nav) {

    global $PAGE, $CFG;

    static $submenucount = 0;

    if ($menunode->has_children()) {
        $submenucount++;
        $url = $CFG->wwwroot;
        if ($menunode->get_url() !== null) {
            $url = new moodle_url($menunode->get_url());
        } else {
            $url = null;
        }
        if ($parent > 0) {
            $masternode = $pmasternode->add($menunode->get_text(), $url, navigation_node::TYPE_CONTAINER);
        } else {
            $masternode = $nav->add($menunode->get_text(), $url, navigation_node::TYPE_CONTAINER);
        }
        foreach ($menunode->get_children() as $menunode) {
            lambda_custom_links_custom_menu_item($menunode, $submenucount, $masternode, $nav);
        }
    }
}

使用此

在您的 /local/custom_links 文件夹中创建一个 settings.php 文件
defined('MOODLE_INTERNAL') || die;

if ($hassiteconfig) {
    $ADMIN->add(
            'root', // Root is the top menu.
            new admin_externalpage(
                'local_custom_links', // Unique name.
                get_string('pluginmenu', 'local_custom_links'), // Human name.
                new moodle_url('/local/custom_links/index.php'), // Link.
               'local/custom_links:manage' // Capability if any.
           )
    );
}

我成功添加了一个包含少量自定义链接的文件夹,现在我需要弄清楚如何将它放在网站管理的顶部:

$ADMIN->add('root', new admin_category('local_custom_links', 'Platform'));
$ADMIN->add('local_custom_links', new admin_settingpage('local_custom_link_1', 'navigation 1',
            $CFG->wwwroot.'/local/settings/navigation.php'));
$ADMIN->add('local_custom_links', new admin_externalpage('local_custom_link_2', 'navigation 2',
            $CFG->wwwroot.'/local/settings/navigation.php'));
$ADMIN->add('local_custom_links', new admin_externalpage('local_custom_link_3', 'navigation 3',
            $CFG->wwwroot.'/local/settings/navigation.php'));
$ADMIN->add('local_custom_links', new admin_externalpage('local_custom_link_4', 'navigation 4',
            $CFG->wwwroot.'/local/settings/navigation.php'));
$ADMIN->add('local_custom_links', new admin_externalpage('local_custom_link_5', 'navigation 5',
            $CFG->wwwroot.'/local/settings/navigation.php'));