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, "
");
这样,就把生成的头部文件发送到浏览器中了。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中的页面缓存机制来实现,这样能够在一定程度上提高系统的反应速度,增强用户体验。具体实现,这里就不再详述。