通过修改navigationlib.php文件来达到自定义导航的目的。
这个是简单的demo。
-
//这里我改成 这样 后面有一个配置文件 读取 导航菜单的数据
-
//moodle/lib/navigationlib.php 1261行 或者搜索 “// Remove any empty root nodes”
-
foreach ($this->rootnodes as $node) {
-
// Dont remove the home node
-
if ( $node->key !== ‘courses’ &&!in_array( $node->key , array(1,2,3,4,5,6,7,8,9)) ) {
-
$node->remove();
-
}
-
}
-
//moodle/lib/navigationlib.php 1068行 或者搜索 “$this->rootnodes[‘users’] = $this->add(get_string(‘users’), null, self::TYPE_ROOTNODE, null, ‘users’);”
-
-
// @添加几行代码
-
chmod( $CFG->dirroot . ‘/navigation.config.php’ , 0777);
-
$navigation_data = require( $CFG->dirroot . ‘/navigation.config.php’);
-
-
foreach ( $navigation_data as $key => $value) {
-
$this->rootnodes[$key] = $this->add( $value[‘text’] , null , self::TYPE_ROOTNODE , null , $key);
-
-
foreach( $value[‘branch’] as $url){
-
$this->rootnodes[$key]->add_node( navigation_node::create( $url[‘text’], new moodle_url( $url[‘url’]), self::NODETYPE_BRANCH, null, null, new pix_icon( $url[‘icon’] , ”) ));
-
}
-
}
-
-
-
-
//现在写个根目录下的配置文件 navigation.config.php
-
<?php
-
return array(
-
1 => array(
-
‘text’ => ‘学习中心’,
-
‘branch’ => array(
-
0 => array(
-
‘text’ => ‘我的课程’,
-
‘url’ => ‘/course/’,
-
‘icon’ => ‘i/db’,
-
),
-
1 => array(
-
‘text’ => ‘成绩’,
-
‘url’ => ‘/grades/’,
-
‘icon’ => ‘i/manual_item’,
-
),
-
2 => array(
-
‘text’ =>’问答’,
-
‘url’ =>’/quest/’,
-
‘icon’ =>’i/feedback’,
-
),
-
-
),
-
),
-
-
2 => array(
-
‘text’ => ‘账户管理’,
-
‘branch’ => array(
-
0 => array(
-
‘text’ =>’账户’,
-
‘url’ =>’/user/’,
-
‘icon’ =>’i/lock’,
-
),
-
-
1 => array(
-
‘text’ =>’订单’,
-
‘url’ =>’/order/’,
-
‘icon’ =>’i/payment’,
-
),
-
),
-
),
-
);
-
再刷新 moodle页面,导航就被修改成自己需要的样子了。因为moodle不带自定义功能,所以只能这样修改
复制代码
|