moodle架构分析---表现层的设计(二)

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, "

$langmenu

");

 

 

 

 

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

 

来源:http://www.goodu.info/gc/taxonomy/term/137

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值