efront系统是一套开源的在线学习系统,是用PHP编写的,内含“考试”功能。该系统的开源的是社区版,虽然看上去功能强大,但使用起来却很不符合国情。为了让公司使用,先做了一次最简化的二次开发,由于是最简化的二次开发,对整个版本改动不大,就在此公开记录一下,后续的深层次的二次开发将不再公开,有兴趣的可和我私下讨论。

本次开发具体如下:

1. 管理员(由admin超级管理员创建的,后都简称为管理员)可创建和管理自己的用户组,且只能查看到自己创建的用户组

2. 管理员只能往用户组中添加自己创建的用户,且只能查看到自己创建的用户

3.添加考生设置功能,教师在创建考试后,可以指定由哪些用户组参加该次考试。该功能是由于efront的是以课程与用户组进行关联的,而某次考试又是附属于某次课程的,这样某课程下创建的考试就会被拥有该课程的所有用户组成员使用,针对该问题,开发了考生设置功能,让某次考试可以和用户组进行直接关联,这样可以控制粒度更细一些,但考虑到代码改动量较大,此开发的功能暂时取消。

4.激活用户组和课程的关联关系,在efront的系统中虽然有用户组与课程的关联功能,但同时也提供了用户与课程的关联功能,在用户实际登录后所能看到的课程列表却只是由“用户与课程的关联”在起作用。这样会导致管理员只有针对每个用户进行课程关联操作,才能完成对用户的课程设置,造成工作量加大,所以激活用户组和课程的关联关系后可以简化管理员的操作。激活的方式是改变原来的课程列表的SQL。

5.在完成了4的功能后,还达到了控制用户只能看到他所属组的授权的课程,使得学生选课功能可以正常使用。

6.管理员创建用户时,用户类型只能选择“学生”

7.隐藏首页的新用户注册功能

8.学生考试列表的过滤,每个学生只看到自己所属用户组的考试,该功能需配合功能3来完成,由于功能3暂时取消,此处可以通过每个用户组设置不同的课的方式来达到。

efront二次开发记要的更多相关文章

  1. Navisworks API 简单二次开发 (自定义工具条)

    在Navisworks软件运行的时候界面右侧有个工具条.比较方便.但是在二次开发的时候我不知道在Api那里调用.如果有网友知道请告诉我.谢谢. 我用就自己设置一个工具.界面比较丑!没有美工. 代码: ...

  2. [连载]《C#通讯(串口和网络)框架的设计与实现》- 12.二次开发及应用

    目       录 第十二章     二次开发及应用... 2 12.1        项目配制... 3 12.2        引用相关组件... 4 12.3        构建主程序... 5 ...

  3. OBS-Studio二次开发记录

    OBS-Studio 是一款跨平台的,开源的视频直播客户端软件. 公司需要对他进行二次开发,开发的目的是使用它的录屏功能. 开发的要求是:定制全新的界面,所见即所得,window系统兼容要好. 开发步 ...

  4. 小猪cms微信二次开发之怎样分页

    $db=D('Classify'); $zid=$db->where(array('id'=>$this->_GET('fid'),'token'=>$this->tok ...

  5. 承接 AutoCAD 二次开发 项目

    本人有多年的CAD开发经验,独立完成多个CAD二次开发项目.熟悉.net及Asp.net开发技术,和Lisp开发技术. 现在成立了工作室,独立承接CAD二次开发项目.结项后提供源码及开发文档,有需要的 ...

  6. 【工业串口和网络软件通讯平台(SuperIO)教程】七.二次开发服务驱动

    SuperIO相关资料下载:http://pan.baidu.com/s/1pJ7lZWf 1.1    服务接口的作用 围绕着设备驱动模块采集的数据,根据需求提供多种应用服务,例如:数据上传服务.数 ...

  7. 【工业串口和网络软件通讯平台(SuperIO)教程】三.二次开发流程

    1.1    二次开发流程图 1.2    引用相关组件 找到“开发包”,引用里边的相关组件.如下图: 1.3    开发设备驱动模块 1.3.1    开发发送协议驱动 继承SuperIO.Devi ...

  8. Civil 3D API二次开发学习指南

    Civil 3D构建于AutoCAD 和 Map 3D之上,在学习Civil 3D API二次开发之前,您至少需要了解AutoCAD API的二次开发,你可以参考AutoCAD .NET API二次开 ...

  9. visio二次开发——图纸解析之线段

    多写博客,其实还是蛮好的习惯的,当初大学的时候导师就叫我写,但是就是懒,大学的时候,谁不是魔兽或者LOL呢,是吧,哈哈哈. 好了,接着上一篇visio二次开发——图纸解析,我继续写. 摘要: (转发请 ...

随机推荐

  1. MVC小系列(十七)【自定义验证规则给下拉框】

    因为下拉框不支持验证,所以写一个attribute特性,让它继承ValidationAttributemvc的特性验证,很直接,无论是数据安全特性上还是页面表现上都不错,它的运行机制: 前台表单验证规 ...

  2. .NET垃圾回收机制 转

    在.NET Framework中,内存中的资源(即所有二进制信息的集合)分为"托管资源"和"非托管资源".托管资源必须接受.NET Framework的CLR( ...

  3. sql 常用操作脚本代码

    ,--运行fy_mh库[use] use fy_mh ,--查询 mh_dblj表 select * from mh_dblj ,--更新 某个字段(把表的某个字段下的所有的数据清空)[update ...

  4. onMouseDown onMouseUp onMouseMove(移动鼠标图像大小变化)

  5. Objective-C 中的方法回掉

    Objective-C 中的方法回掉  Objective-C 中的方法调用 OC 类似C+,避免不了的内部的各种通信手段,函数调用,变量传递等,避免不了各种回掉等. 一.class直接调用 或者 o ...

  6. phaser源码解析(三) Phaser.Utils类下isPlainObject方法

    /** * #这是一个对jQuery.isPlainObject(obj)稍加修改的方法. 一个 普通对象 obj.toString() => "[object Object]&quo ...

  7. 【BZOJ2793】【数学】[Poi2012]Vouchers

    Description 考虑正整数集合,现在有n组人依次来取数,假设第i组来了x人,他们每个取的数一定是x的倍数,并且是还剩下的最小的x个. 正整数中有m个数被标成了幸运数,问有哪些人取到了幸运数. ...

  8. 【ADO.NET】6、SQLHelper简单封装

    using System.Data.SqlClient;using System.Configuration;引用:System.Configuration 连接字符串放到配置文件中 新建一个类,写如 ...

  9. Scala - 处理时间(nscala-time - Joda Time的scala封装)

    GITHUB : https://github.com/nscala-time/nscala-time MAVEN : (注意选对scala版本) <dependency> <gro ...

  10. 深度优化LNMP之Nginx [2]

    深度优化LNMP之Nginx [2]   配置Nginx gzip 压缩实现性能优化 1.Nginx gzip压缩功能介绍        Nginx gzuo压缩模块提供了压缩文件内容的功能,用户请求 ...