惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Google DeepMind News
Google DeepMind News
WordPress大学
WordPress大学
S
SegmentFault 最新的问题
小众软件
小众软件
爱范儿
爱范儿
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
量子位
博客园_首页
T
Tailwind CSS Blog
The Cloudflare Blog
J
Java Code Geeks
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
U
Unit 42
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
人人都是产品经理
人人都是产品经理
N
Netflix TechBlog - Medium
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
腾讯CDC
P
Proofpoint News Feed
aimingoo的专栏
aimingoo的专栏
Recent Announcements
Recent Announcements
T
The Blog of Author Tim Ferriss
D
Docker
Microsoft Azure Blog
Microsoft Azure Blog

博客园 - 路者

几个开源Android Camera传输视频流例子 Moodle开发基础1 Moodle: 查询 / 更新 / 添加 / 删除 / 导出 用户 ($DB用法 构建Moodle开发环境 让moodle增加学号 通信对象System.ServiceModel.Channels.ServiceChannel 无法用于通信,因为其处于“出错”状态。 WCF传输List<object>时序列化问题 c# 类似于QQ表情弹出框功能的二种实现方法 asp.net类似于QQ表情弹出框功能的实现方法 仿QQ弹出窗口[转] 上海大学游戏设计07年硕士研究生招生考试大纲 海南 琼海 韵达快递 垃圾! 窗体显示中form1.Show()和form1.ShowDialog()的区别 集合概述 C#中的格式 同一解决方案内的多个项目之间如何引用? 什么是SDK? 每个开发人员现在应该下载的十种必备工具 关于asp.net中服务器应用程序不可用
Moodle二次开发(1)-- 微创新
路者 · 2017-05-26 · via 博客园 - 路者
 
博客园 | 首页 | 新随笔 | 联系 | 订阅 订阅 管理
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)

发表于 2017-05-26 12:05  路者  阅读(880)  评论()    收藏  举报