用户
 找回密码
 入住 CI 中国社区
搜索
查看: 5398|回复: 7
收起左侧

[其它 Other] CI做的一个调查系统

[复制链接]
发表于 2011-5-24 10:24:24 | 显示全部楼层 |阅读模式
本帖最后由 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,在构造器中进行权限判断
PHP复制代码
$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();
 
}
}
[color=rgb(0, 0, 0)][size=12px][color=#444444]
复制代码

然后再index函数中加载视图
PHP复制代码
[/size][/color]
[color=rgb(0, 0, 0)][size=12px]   $this->load->view('admin/research_index');
 
复制代码

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

<!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都行,管理员界面就没得测试啦)



 楼主| 发表于 2011-5-24 10:25:45 | 显示全部楼层
自个儿顶一下,发现CI论坛换装了,还没广告(也许是被我的adblock给block)了,看着舒服多了,发发贴祝贺一下
发表于 2011-6-12 22:29:21 | 显示全部楼层
本帖最后由 takayoshi003 于 2011-6-12 22:31 编辑

登陸效果很特別, 是什麼插件來?
還有..沒有database 怎麼試...
发表于 2011-7-20 16:48:52 | 显示全部楼层
有没下载源码的地址啊
发表于 2011-10-17 18:56:54 | 显示全部楼层
这个不错,楼主还是有研究的
发表于 2011-10-17 20:14:54 | 显示全部楼层
mark
 楼主| 发表于 2012-4-29 10:08:31 | 显示全部楼层
wuzhoucm 发表于 2011-7-20 16:48
有没下载源码的地址啊

好久没有上来了,源码在github上啊,可以下载的
 楼主| 发表于 2012-4-29 10:09:27 | 显示全部楼层
takayoshi003 发表于 2011-6-12 22:29
登陸效果很特別, 是什麼插件來?
還有..沒有database 怎麼試...

呵呵,登陆是用jquery来实现的,使用了一套jquery ui,那个效果是动画效果

本版积分规则