moodle架构分析---表现层的设计(二)
  • 提交:天一
  • 时间:10-05-17 10:32
  • 更新:10-05-17 10:32

3、针对导航条的实现,一般是直接调用build_navigation函数即可。使用方法可以看下面一个例子。



$newaccount = get_string('newaccount');


$login      = get_string('login');



if (empty($CFG->langmenu)) {


    $langmenu = '';


} else {


    //获得语言列表


    $currlang = current_language();


    $langs    = get_list_of_languages();


    //生成语言下拉列表


    $langmenu = popup_form ("$CFG->wwwroot/login/signup.php?lang=", $langs, "chooselang", $currlang, "", "", "", true);


}



//定义导航数组


$navlinks = array();


$navlinks[] = array('name' => $login, 'link' => "index.php", 'type' => 'misc');


$navlinks[] = array('name' => $newaccount, 'link' => null, 'type' => 'misc');


// 这里可以添加更多的导航信息,省略


//生成导航


$navigation = build_navigation($navlinks);



这里需要注意的是,build_navigation函数并不直接把生成的html发送到浏览器中,而是作为返回值返回。



4、针对页面头部的实现,一般是直接调用print_header函数即可,即



print_header($newaccount, $newaccount, $navigation, $mform_signup->focus(), "", true, "<div class=\"langmenu\">$langmenu</div>");



这样,就把生成的头部文件发送到浏览器中了。print_header的实现,会根据系统的主题/皮肤,找到header.html,并进行处理。



ob_start();


include($CFG->header);   //$CFG->header = $CFG->themedir .'/'. $theme .'/header.html';


$output = ob_get_contents();


ob_end_clean();



更加详细请查看lib/weblib.php文件的实现。




5、针对页面底部的实现,一般是在业务逻辑的代码最后面,直接调用print_footer函数即可,即



print_footer();



print_footer的实现与print_header一样,都是借用php中的页面缓存机制来实现,这样能够在一定程度上提高系统的反应速度,增强用户体验。具体实现,这里就不再详述。

文章推荐

    Loading...

人气排行

    Loading...
[ 简体中文 ] [ 简改蓝 ] 管理模式
Copyright ©2005 - 2008 www.emoodle.org
Processed in 0.366(s) Powered by Hutula 1.0

浙ICP备08007391号-1