龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > php编程 >

php moodle2.4 DIY 导航block的实例

时间:2014-08-19 16:14来源:网络整理 作者:网络 点击:
分享到:
moodle2.4 DIY 导航block的实例 通过修改navigationlib.php文件来达到自定义导航的目的。这个是简单的demo。[代码片段(68行)]

通过修改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不带自定义功能,所以只能这样修改
//该片段来自于http://outofmemory.cn
精彩图集

赞助商链接