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. .NET垃圾回收机制 转

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

  2. 巧谈 GCD

    转载自:http://www.jianshu.com/p/665261814e24 谈到iOS多线程,一般都会谈到四种方式:pthread.NSThread.GCD和NSOperation.其中,苹果 ...

  3. struts2标签学习笔记(一)

    struts2所有标签都定义在一个s标签库里.虽然struts2把所有的标签都定义在URI为"/struts-tags"空间下,但依然可以对struts2标签进行简单的分类. 1. ...

  4. SqlServer Alter Table 语句的用法

    更改 字段的数据类型 Alter Table TB_ITM_ITEM alter column is_timing int NULL; 新增字段: alter table WeiboSmartCate ...

  5. SDL实现限制帧速

    很多人都在SDL_PollEvent和SDL_WaitEvent之间纠结.前者会带来更好的帧数表现,但是CPU占用极大,可以直接吃掉一个核心.后者则基本不占用CPU,但是帧数会受到影响.有没有办法使两 ...

  6. node.js 小爬虫 imooc 2016.03.06

    爬虫目标:获取http://www.imooc.com/learn/348网页中的章节标题和视频信息. var http = require('http'); var cheerio = requir ...

  7. rpm命令详解

    http://www.rpm.org/max-rpm/s1-rpm-install-additional-options.html#S2-RPM-INSTALL-REPLACEFILES-OPTION ...

  8. 网站开发常用jQuery插件总结(12)固定元素插件scrolltofixed

    这个插件在前段时间用过一次,当时是改一个网站.要求顶部的菜单栏随着滚动条的滚动而固定.也大体写了一下,不过在文章中也只是提了一下,文章地址:jQuery插件固定元素位置. 在这篇文章中,再进行总结一下 ...

  9. PL/SQL学习(六)触发器

    原文参考:http://plsql-tutorial.com/ 创建语法: CREATE [OR REPLACE ] TRIGGER trigger_name {BEFORE | AFTER | IN ...

  10. mac下Apache + MySql + PHP网站开发

    最近接了个小活,做一个使用PHP语言和MySql数据库的动态网站.之前做过类型的网站,是在windows系统下做的,开发环境使用的是 AppServ 的PHP开发套件.现在有了我的大MAC,所以找了M ...