Moodle二次开发(1)-- 微创新

Moodle二次开发(1)-- 微创新

[复制链接]

Moodle版本:2.1

1、用户登录后导向到我的主页

在Moodle中遍寻不到这个设置,我记得在2.3版本好像有。没办法只有仔细了看了下代码。发现 login/index.php中有段代码比较合符要求。

  1. /// Go to my-moodle page instead of site homepage if defaulthomepage set to homepage_my
  2. if (!empty($CFG->defaulthomepage) && $CFG->defaulthomepage == HOMEPAGE_MY && !is_siteadmin() && !isguestuser()) {
  3. if ($urltogo == $CFG->wwwroot or $urltogo == $CFG->wwwroot.‘/‘ or $urltogo == $CFG->wwwroot.‘/index.php‘) {
  4. $urltogo = $CFG->wwwroot.‘/my/‘;
  5. }
  6. }

复制代码

其中“defaulthomepage”这个单词引起了我的注意,灵机一动,到数据库中配置表“mdl_config”中搜了下,居然发现了这个配置参数,默认值是0,将它修改成1。

登录后正常进入“我的主页”。功能实现。

2、普通用户在我的主页中无法返回网站首页

这个问题是上一个问题引起的,若使用管理员帐号登录,能正常回到首页,当是不能对首页再进行编辑;若是普通用户,根本就没有权限回首页了。悲催的规则,没搞明白是Moodle的bug,还是我没配置对。

处理的方式很简单,就是把“网站首页”先屏蔽吧。在lib目录下找到navigationlib.php,在函数initialise中有一段代码。

  1. if (get_home_page() == HOMEPAGE_SITE) {
  2. // The home element should be my moodle because the root element is the site
  3. if (isloggedin() && !isguestuser()) {  // Makes no sense if you aren‘t logged in
  4. $this->rootnodes[‘home‘] = $this->add(get_string(‘myhome‘), new moodle_url(‘/my/‘), self::TYPE_SETTING, null, ‘home‘);
  5. }
  6. } else {
  7. // The home element should be the site because the root node is my moodle
  8. $this->rootnodes[‘home‘] = $this->add(get_string(‘sitehome‘), new moodle_url(‘/‘), self::TYPE_SETTING, null, ‘home‘);
  9. if ($CFG->defaulthomepage == HOMEPAGE_MY) {
  10. // We need to stop automatic redirection
  11. $this->rootnodes[‘home‘]->action->param(‘redirect‘, ‘0‘);
  12. }
  13. }

复制代码

将else语句后面的屏蔽掉吧。算是解决一个问题,功能完成。

3、成员列表中,屏蔽按字母搜索

在课程中,有个成员列表,其中的按字母搜索比较的有趣。为了不让它妨碍使用的心情,决定把它先屏蔽掉。

在lib目录下,其中有个tablelib.php,其中有段代码。

  1. /**
  2. * This function is not part of the public api.
  3. */
  4. function print_initials_bar() {
  5. /* if ((!empty($this->sess->i_last) || !empty($this->sess->i_first) ||$this->use_initials)
  6. && isset($this->columns[‘fullname‘])) {
  7. $alpha  = explode(‘,‘, get_string(‘alphabet‘, ‘langconfig‘));
  8. // Bar of first initials
  9. if (!empty($this->sess->i_first)) {
  10. $ifirst = $this->sess->i_first;
  11. } else {
  12. $ifirst = ‘‘;
  13. }
  14. $this->print_one_initials_bar($alpha, $ifirst, ‘firstinitial‘,
  15. get_string(‘firstname‘), $this->request[TABLE_VAR_IFIRST]);
  16. // Bar of last initials
  17. if (!empty($this->sess->i_last)) {
  18. $ilast = $this->sess->i_last;
  19. } else {
  20. $ilast = ‘‘;
  21. }
  22. $this->print_one_initials_bar($alpha, $ilast, ‘lastinitial‘,
  23. get_string(‘lastname‘), $this->request[TABLE_VAR_ILAST]);
  24. }*/
  25. }

复制代码

如上屏蔽掉它里面的代码,再次刷新页面,功能完成。

4、屏蔽资源、活动中不要的选项

在课程中,添加活动或资源时,有很多选项,比如什么SCORM、IMS这些,平时基本不用,太专业了。如何把它屏蔽掉呢?

开始想法是改代码,后来发现一个好办法,就是把这些插件卸载掉。Moodle在这方面做得比较好,大部分东西都是插件的形式,不像我经常动不动就考虑改代码,改结构,差了不是一个档次啊。

卸载了相应插件后,还需要把对应目录全部删除,否则登录后无法正常访问,总是提示你插件安装不全,需要升级。

(转自:http://blog.csdn.net/36/article/details/8185606)

时间: 2024-08-27 19:43:58

Moodle二次开发(1)-- 微创新的相关文章

微控工具xp模块-开发版[微信(wechat)二次开发模块]

http://repo.xposed.info/module/com.easy.wtool 微控工具xp模块-开发版[微信(wechat)二次开发模块] 基于xposed框架的微信二次开发模块,方便开发者用微信做一些扩展功能(如微信群发.多群直播等...) 目前支持功能: 发文本消息 发图片消息 发语音消息 发视频消息 获取微信好友列表 群列表 支持群发消息 支持消息转发(目前支持文本.图片.语音.视频.图文消息转发) 群管理功能(建群.加人.踢人.设置公告.改群名.退群.解散群) [注:本模块

微擎人人商城二次开发01

刚开始工作就接触微擎人人商城的二次开发,折腾了很久下面总结下我所学到的: 首先是安装包ewei_shopv2: 将后端ewei_shopv2文件夹上传至微赞微擎Addons目录 文件夹介绍 路由:http://*******/web/index.php?c=site&a=entry&m=ewei_shopv2&do=web&r=agency.productc = site :a = entry表示后台模块m 表示具体哪个模块do 要执行的site类中的doWeb***方法r

从游戏开发到产品创新

[慕客访谈]阿当技术漫谈之(二):从游戏开发到产品创新       本期人物:阿当 前端工程师         背景介绍:   在上一期对资深Web技术专家阿当的访谈中,他详细解读了前端发展的三个阶段.在知识深度与广度方面的二八原则以及如何做好敏捷开发(相关阅读:阿当技术漫谈之(一):从前端领域到敏捷开发),本期访谈中他将继续和大家分享技术驱动创新.学习技巧以及职业建议等,从具体的读书技巧到保持自身竞争力,相信仍然会让你受益匪浅.       导读:         ◎挑战游戏开发       

微信公众号二次开发(二)-注册新浪SAE

新浪SAE:Sina App Engine是新浪提供的云服务,对个人提供免费的Web应用/业务开发托管.运行平台.我们就用它来作为我们的开发服务器测试环境. 注册新浪云http://sinacloud.com/ 创建SAE应用,使用PHP作为开发语言 填写运营者身份信息 进入后台 在后台查看总揽 该服务器我们就将利用它作为我们的二次开发服务器进行配置. 欢迎微信扫一扫或搜索关注我的"Windows自动化运维"公众号,我会每天定期发布Windows自动化运维的相关知识供大家讨论研究. 本

shopnc二次开发(一)

---恢复内容开始--- 以前没有怎么接触过shopnc,感觉界面挺漂亮的,不过后来自己需要开发一个电商系统,就顺便参考了下,感觉构架垃圾的一塌糊涂.不过平时做这个系统二次开发的业务比较多,所以简单的总结下. shopnc有三款产品,b2b2c,c2c和o2o,用的同一个mvc框架和相同的开发规范,所以了解了其中一个,其他两款产品也就算理解了. shopnc使用的自己开发的mvc框架,粗略的看了下,还是比较简单的. 先从文件结构说起 ├─admin│ ├─config│ ├─control│ ├

【课程分享】深入浅出微信公众平台实战开发(微网站、LBS云、Api接口调用、服务号高级接口)

深入浅出微信公众平台实战开发(微网站.LBS云.Api接口调用.服务号高级接口) 课程下载地址:链接:http://pan.baidu.com/share/link?shareid=2214724072&uk=3611155194 密码:glvc 一.本课程是怎么样的一门课程(全面介绍) 1.1.课程的背景 微信公众平台的火热程度已经不用多言,无论是个人还是企业,政府还是商家,都已经开始搭建微信公众平台,微信的作用已经被各界人士认可.微信公众平台的技术需求市场缺口巨大. 1.2.课程内容简介 本

运用Java对微信公众平台二次开发技术——开发者模式接入

当初我在这碰到了很多问题,市面上以及网络上的资料特别少,所以当初碰了很多壁,所以现在跟大家分享一下,如何用Java,对微信公众平台进行二次开发. 一.开发预备知识: 最基本的JavaSE与JavaWeb知识:JSP/Servlet/JDBC/EL 二.开发环境 Eclipse EE JDK 1.7(用JDK1.8会报错!用JDK1.8会报错!用JDK1.8会报错!用JDK1.8会报错!重要的事情说4遍,当初被坑了,愣是不知道错在哪,检查了无数遍代码,就是不知道哪里错了) 三.注册微信号 http

微信二次开发准备工作

1.了解微信是什么? 2.微信能做什么? 3.微信有什么? 4.微信为什么要做二次开发? 前面三个问题,我就不多说了,我相信大部分人都知道 对于第四个问题呢,在很多应用上,有很多的需求在微信上不能达到预期效果或者需要扩展一些什么需要等等,这个时候则需要做二次开发,当然这二次开发是需要一些成本的,如一些服务器资源,很多开发人员都看过腾信的api,或多或少都有些了解吧 准备工作 1.申请域名或者独立服务器,或者外网映射 2.申请微信号,开发者号(服务号,订阅号,企业号) 3.开发工具eclipse或

基于java的微信公众号二次开发视频教程

详情请交流  QQ  709639943 00.基于java的微信公众号二次开发视频教程 00.leetcode 算法 面试 00.北风网 零基础到数据(大数据)分析专家-首席分析师 00.快速上手JMeter 00.Jmeter 00.2017年Java web开发工程师成长之路 00.R语言速成实战 00.R语言数据分析实战 00.Python+Django+Ansible Playbook自动化运维项目实战 00.Java深入微服务原理改造房产销售平台 00.Python3入门机器学习 经