songah 发表于 2011-5-24 10:24:24

CI做的一个调查系统

本帖最后由 songah 于 2011-5-24 10:40 编辑

用CI也算是有一段时间了,整了不少东西,但大多数都不知道丢哪里去了,最近做毕业论文,做了个在线的调查系统,和大家分享下。简单讲一下架构,在底层使用了ci的插件datamapper,构建对象关系模型,而整个网站ci实际上只处理了model和controller,View层完全有浏览器端JS的MVC处理了。又有了Datamapper构造底层的ORM,模型处理也不用我管了,就定义几个类就OK,非常方便。呵呵,到最后就整了几个controller,而且都还差不多,获得数据后直接生产JSON数据。或者说,这似乎更像是一个前端产品,和CI没啥太大的关系,也许我仅仅需要一个ORM处理数据就OK了。
不过想想,我觉得用PHP来处理view是在不方便,view中的html结构变化太剧烈了,而且这种变化经常是根据某个事件的发生而变化的,跟踪事件的变化而处理数据,这还是由JS完成好一些。我想,过段时间有机会,把CI的view层去掉,再强化一下ORM处理能力,这样的CI也许更适合我。
其中,还加上两个PHP5.3的函数,str_getcsv和json_decode,json_encode函数的兼容函数,这里json太重要了,所以必须加上这两个东东。
运行说明:首先默认控制器为users,在构造器中进行权限判断
$fn = $this->uri->segment(2);
if($fn != 'login' AND $fn != 'logout' AND $fn)
{

if(!$this->session->userdata('id') > 0 OR $this->session->userdata("type") != "research" )

{

$message = array('error' => '没有权限');

echo json_encode($message);

exit();

}
}

然后再index函数中加载视图
   $this->load->view('admin/research_index');

视图就一个简单的html定义,使用了minfy加载css,整个body下放一个div,初始化时显示加载中,然后其他的事情就交给js完成了。Backbone负责处理前端模型,所有的对模型的操作发送到edit函数中,所有集合操作发送到lists函数中。js都放在assets/js/app里

<!DOCTYPE HTML>
<html lang="zh-cn">
<head>
    <meta charset="UTF-8">
    <title></title>
    <link rel="stylesheet" href="min/?f=assets/css/common.css,assets/css/reset.css,assets/css/grids.css,assets/css/admin_base.css,assets/css/ui-Aristo/jquery-ui.css,assets/css/form_add.css,assets/css/table.css" />
    <script src="assets/js/sea.js" type="text/javascript" data-main="app/app"></script>
</head>
<body class="w866">
    <div class="wrap" id="wrap">
      <p class="loading-tips">加载中,请稍后,第一次加载可能需要时间稍长…</p>
    </div>
</body>
</html>

详细说明看这里:http://shepherdwind.com/?p=316
代码放github上:https://github.com/shepherdwind/peersay/.gitignore中说明了那些类库就没有放在代码中了,包括Ckeditor,ci的system,php minfy和ci的两个配置文件
Demo: http://shepherdwind.com/peersay/ 用户名:被试1,密码:beishi1(1-31都行,管理员界面就没得测试啦)



songah 发表于 2011-5-24 10:25:45

自个儿顶一下,发现CI论坛换装了,还没广告(也许是被我的adblock给block)了,看着舒服多了,发发贴祝贺一下:D

takayoshi003 发表于 2011-6-12 22:29:21

本帖最后由 takayoshi003 于 2011-6-12 22:31 编辑

登陸效果很特別, 是什麼插件來?
還有..沒有database 怎麼試...

wuzhoucm 发表于 2011-7-20 16:48:52

有没下载源码的地址啊

cssailing 发表于 2011-10-17 18:56:54

这个不错,楼主还是有研究的

abuluody 发表于 2011-10-17 20:14:54

mark:lol

songah 发表于 2012-4-29 10:08:31

wuzhoucm 发表于 2011-7-20 16:48 static/image/common/back.gif
有没下载源码的地址啊

好久没有上来了,源码在github上啊,可以下载的

songah 发表于 2012-4-29 10:09:27

takayoshi003 发表于 2011-6-12 22:29 static/image/common/back.gif
登陸效果很特別, 是什麼插件來?
還有..沒有database 怎麼試...

呵呵,登陆是用jquery来实现的,使用了一套jquery ui,那个效果是动画效果
页: [1]
查看完整版本: CI做的一个调查系统