efront二次开发记要
efront系统是一套开源的在线学习系统,是用PHP编写的,内含“考试”功能。该系统的开源的是社区版,虽然看上去功能强大,但使用起来却很不符合国情。为了让公司使用,先做了一次最简化的二次开发,由于是最简化的二次开发,对整个版本改动不大,就在此公开记录一下,后续的深层次的二次开发将不再公开,有兴趣的可和我私下讨论。
本次开发具体如下:
1. 管理员(由admin超级管理员创建的,后都简称为管理员)可创建和管理自己的用户组,且只能查看到自己创建的用户组
2. 管理员只能往用户组中添加自己创建的用户,且只能查看到自己创建的用户
3.添加考生设置功能,教师在创建考试后,可以指定由哪些用户组参加该次考试。该功能是由于efront的是以课程与用户组进行关联的,而某次考试又是附属于某次课程的,这样某课程下创建的考试就会被拥有该课程的所有用户组成员使用,针对该问题,开发了考生设置功能,让某次考试可以和用户组进行直接关联,这样可以控制粒度更细一些,但考虑到代码改动量较大,此开发的功能暂时取消。
4.激活用户组和课程的关联关系,在efront的系统中虽然有用户组与课程的关联功能,但同时也提供了用户与课程的关联功能,在用户实际登录后所能看到的课程列表却只是由“用户与课程的关联”在起作用。这样会导致管理员只有针对每个用户进行课程关联操作,才能完成对用户的课程设置,造成工作量加大,所以激活用户组和课程的关联关系后可以简化管理员的操作。激活的方式是改变原来的课程列表的SQL。
5.在完成了4的功能后,还达到了控制用户只能看到他所属组的授权的课程,使得学生选课功能可以正常使用。
6.管理员创建用户时,用户类型只能选择“学生”
7.隐藏首页的新用户注册功能
8.学生考试列表的过滤,每个学生只看到自己所属用户组的考试,该功能需配合功能3来完成,由于功能3暂时取消,此处可以通过每个用户组设置不同的课的方式来达到。
efront二次开发记要的更多相关文章
- Navisworks API 简单二次开发 (自定义工具条)
在Navisworks软件运行的时候界面右侧有个工具条.比较方便.但是在二次开发的时候我不知道在Api那里调用.如果有网友知道请告诉我.谢谢. 我用就自己设置一个工具.界面比较丑!没有美工. 代码: ...
- [连载]《C#通讯(串口和网络)框架的设计与实现》- 12.二次开发及应用
目 录 第十二章 二次开发及应用... 2 12.1 项目配制... 3 12.2 引用相关组件... 4 12.3 构建主程序... 5 ...
- OBS-Studio二次开发记录
OBS-Studio 是一款跨平台的,开源的视频直播客户端软件. 公司需要对他进行二次开发,开发的目的是使用它的录屏功能. 开发的要求是:定制全新的界面,所见即所得,window系统兼容要好. 开发步 ...
- 小猪cms微信二次开发之怎样分页
$db=D('Classify'); $zid=$db->where(array('id'=>$this->_GET('fid'),'token'=>$this->tok ...
- 承接 AutoCAD 二次开发 项目
本人有多年的CAD开发经验,独立完成多个CAD二次开发项目.熟悉.net及Asp.net开发技术,和Lisp开发技术. 现在成立了工作室,独立承接CAD二次开发项目.结项后提供源码及开发文档,有需要的 ...
- 【工业串口和网络软件通讯平台(SuperIO)教程】七.二次开发服务驱动
SuperIO相关资料下载:http://pan.baidu.com/s/1pJ7lZWf 1.1 服务接口的作用 围绕着设备驱动模块采集的数据,根据需求提供多种应用服务,例如:数据上传服务.数 ...
- 【工业串口和网络软件通讯平台(SuperIO)教程】三.二次开发流程
1.1 二次开发流程图 1.2 引用相关组件 找到“开发包”,引用里边的相关组件.如下图: 1.3 开发设备驱动模块 1.3.1 开发发送协议驱动 继承SuperIO.Devi ...
- Civil 3D API二次开发学习指南
Civil 3D构建于AutoCAD 和 Map 3D之上,在学习Civil 3D API二次开发之前,您至少需要了解AutoCAD API的二次开发,你可以参考AutoCAD .NET API二次开 ...
- visio二次开发——图纸解析之线段
多写博客,其实还是蛮好的习惯的,当初大学的时候导师就叫我写,但是就是懒,大学的时候,谁不是魔兽或者LOL呢,是吧,哈哈哈. 好了,接着上一篇visio二次开发——图纸解析,我继续写. 摘要: (转发请 ...
随机推荐
- 封装一个ISortable接口
using System;/// <summary>/// 排序规范/// </summary>/// <typeparam name="T"> ...
- Oracle 数据库(oracle Database)Select 多表关联查询方式
Oracle数据库中Select语句语法及介绍 SELECT [ ALL | DISTINCT ] <字段表达式1[,<字段表达式2[,…] FROM <表名1>,<表名 ...
- Visual C++ 打印编程技术-编程基础-获取打印机
标准方法是用: EnumPrinters() 函数获取 #define PRINTER_ENUM_DEFAULT 0x00000001 #define PRINTER_ENUM_LOCAL 0x000 ...
- linux/windows系统oracle数据库简单冷备同步
linux/windows系统oracle数据库简单冷备同步 我们有一个财务系统比较看重财务数据的安全性,同时我们拥有两套系统,一个生产环境(linux),一个应急备份环境(windows).备份环境 ...
- iOS lanchImage 和icon的设置
1 icon的设置 打开项目中的Assets.xcassets 这里边有一个icon 首先需要有icon 的尺寸 尺寸如下: 29*29 2x 29*29 3x 40*40 2x 40* ...
- use mkisofs 重新打包beini,tinycore linux
mkisofs -r -J -V Beini-Custom -v --boot-info-table --boot-load-size 4 -b boot/isolinux/isolinux.bin ...
- Headfirst设计模式的C++实现——命令模式(Command)
先看如果不用命令模式的实现: light.h #ifndef _LIGHT_H_ #define _LIGHT_H #include <iostream> class LIGHT { pu ...
- 高性能网络I/O框架-netmap源码分析
from:http://blog.chinaunix.net/uid-23629988-id-3594118.html 博主这篇文章写的很好 感觉很有借签意义 值得阅读 高性能网络I/O框架-netm ...
- WinForm聊天室
前几天开始学Socket编程,跟着老师一点一点的做.最后做了一个WinForm版的小聊天室.这个聊天室的客户端和服务端都只是在本机上运行. 这里我首先和大家谈谈我对聊天室的一点理解,聊天室其实是服务端 ...
- (转载)delphi中获取汉字的拼音首字母
delphi中获取汉字的拼音首字母1.py: array[216..247] of string = ({216}'CJWGNSPGCGNESYPB' + 'TYYZDXYKYGTDJNMJ' + ' ...