`
stevecj
  • 浏览: 105958 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

分页示例来自开源SNS

阅读更多
<?php

class MiniController extends Controller
{
        const PAGE_SIZE=20;
       
        public $is_me;

        public function actionIndex()
        {
                $uid = Yii::app()->user->id;
               
                $model = new Mini();
                 //初始化
                $criteria=new CDbCriteria;
                $criteria->select = "{{friend}}.fuid as uid,t.*";
                $criteria->order='id';
                $criteria->join = "left join {{friend}} on {{friend}}.fuid = t.uid ";
                $criteria->condition="{{friend}}.uid=:uid";
                $criteria->params=array(':uid'=>$uid);
                               
                $gid = Yii::app()->request->getQuery('gid');
                if(!empty($gid))
                {
                        $criteria->join .= " left join {{friend_belong_group}} on {{friend_belong_group}}.uid = {{friend}}.uid ";
                        $criteria->addCondition('gid='.$gid);
                }
               
                //取得数据总数,分页显示
                $total = $model->count($criteria);
                $pages=new CPagination($total);
                $pages->pageSize=self::PAGE_SIZE;
                $pages->applyLimit($criteria);
                //获取数据集
                $mini_list = $model->findAll($criteria);
                               
                $data = array(
                        'mini_list'=> $mini_list,
                        'pages'=> $pages,
                );

               
                $this->render('index',$data);
        }
       
        /**
         * 我的心情
         */
        public function actionMy()
        {
                $uid = Yii::app()->user->id;
               
                $model = new Mini();
                 //初始化
                $criteria=new CDbCriteria;
                $criteria->order='ctime DESC';
                $criteria->condition="uid=:uid";
                $criteria->params=array(':uid'=>$uid);
               
                $mini = $model->find($criteria);
               
                $smile = new Smile();
                $icon_list = $smile->getIconList();

                $date = Yii::app()->request->getQuery('date');
                if(!empty($date))
                {      
                        $criteria = $model->fileaway($date,$criteria);
                }
               
                //取得数据总数,分页显示
                $total = $model->count($criteria);
                $pages=new CPagination($total);
                $pages->pageSize=self::PAGE_SIZE;
                $pages->applyLimit($criteria);
                //获取数据集
                $mini_list = $model->with(array('reply'))->findAll($criteria);

                $data = array(
                        'mini_list'=> $mini_list,
                        'pages'=> $pages,
                        'mini'=> $mini,
                        'icon_list' =>$icon_list,
                );

                $this->render('my',$data);
        }
       
        /**
         * 我的心情
         */
        public function actionAll()
        {
                $uid = Yii::app()->user->id;
               
                $model = new Mini();
                 //初始化
                $criteria=new CDbCriteria;
                $criteria->order='ctime DESC';
                $date = Yii::app()->request->getQuery('date');
                if(!empty($date))
                {      
                        $criteria = $model->fileaway($date,$criteria);
                }
               
                //取得数据总数,分页显示
                $total = $model->count($criteria);
                $pages=new CPagination($total);
                $pages->pageSize=self::PAGE_SIZE;
                $pages->applyLimit($criteria);
                //获取数据集
                $mini_list = $model->findAll($criteria);
                               
                $data = array(
                        'mini_list'=> $mini_list,
                        'pages'=> $pages,
                );

                $this->render('my',$data);
        }
               
        /**
         * 好友的心情
         */
        public function actionFriends()
        {
                $uid = Yii::app()->request->getQuery('uid');
                $mid = Yii::app()->user->id;
               
                if($uid == $mid)
                {
                        $this->redirect(array('my'));
                }
               
                $model = new Mini();
                 //初始化
                $criteria=new CDbCriteria;
                $criteria->order='ctime DESC';
                $criteria->condition="uid=:uid";
                $criteria->params=array(':uid'=>$uid);

                $date = Yii::app()->request->getQuery('date');
                if(!empty($date))
                {      
                        $year = $date[0].$date[1].$date[2].$date[3];
                        $month = $date[4].$date[5];
                        $start = mktime(0,0,0,$month,1,$year);
                        $end   = mktime(0,0,0,$month+1,1,$year);
                        $condition = "$start < ctime AND ctime < $end";
                        $criteria->addCondition($condition);
                }
               
                //取得数据总数,分页显示
                $total = $model->count($criteria);
                $pages=new CPagination($total);
                $pages->pageSize=self::PAGE_SIZE;
                $pages->applyLimit($criteria);
                //获取数据集
                $mini_list = $model->findAll($criteria);
                               
                $data = array(
                        'mini_list'=> $mini_list,
                        'pages'=> $pages,
                );

               
                $this->render('my',$data);
        }      
       
        public function actionDoAddMini(){
                $content = Yii::app()->request->getPost('content');
                if( empty($content) ){
                        echo -1;
                        return false;
                }
                $model = new Mini();
                //TODO 检测空白输入
                $model->content = $content;
                $add = $model->save();

                if( $add ){
                        echo $model->replaceContent($content);
                }else{
                        echo -1;
                }
        }

        /**
         * doDeleteMini
         * 删除mini
         * @access public
         * @return void
         */
        public function doDeleteMini(  ){
                $id = Yii::app()->request->getPost('id');
                $model = new Mini();
                //TODO 检测空白输入
                $mini = $model->findByPk($id);

                if( $mini->delete()){
                        echo 1;
                }else{
                        echo -1;
                }
        }      
}
分享到:
评论

相关推荐

    MvcPager分页示例MVC2.0源码

    MvcPager分页示例MVC2.0源码 MvcPager分页示例MVC2.0 开发环境:VS2008SP1+MVC2.0+MSSQL2005 ASP.NET MvcPager 1.3版发布(2010-3-30) MvcPager分页控件是在ASP.NET MVC Web应用程序中实现分页功能的一系列扩展...

    Ajax无刷新分页示例源码2012419

    Ajax无刷新分页示例源码 程序介绍: 程序使用jquery方法提交请求,处理后将数据库绑定到页面中。 Ajax无刷新分页示例源码 程序介绍: 程序使用jquery方法提交请求,处理后将数据库绑定到页面中。 Ajax无...

    ecshop后台分页示例代码

    "ecshop后台分页示例代码"是针对ECShop后台进行分页功能实现的一个示例,下面我们将详细探讨这个主题。 首先,`article.php`是ECShop后台管理文章时的核心文件,其中包含了处理文章数据逻辑的部分。在这个示例中,...

    js真假分页示例

    "js真假分页示例"是关于如何使用JavaScript(特别是jQuery)实现无刷新分页的一个教程。这种技术允许用户在不重新加载整个页面的情况下浏览多页内容,提高用户体验并减少服务器负担。 "真假分页"的概念在前端开发中...

    JSP分页示例完整版

    本项目"JSP分页示例完整版"提供了一个完整的Java Server Pages (JSP) 分页解决方案,下面将详细介绍其关键知识点。 1. **JSP(Java Server Pages)**:JSP是Java平台上的服务器端脚本语言,用于创建动态web页面。...

    八套静态页数字分页示例

    "八套静态页数字分页示例"提供了八种不同的数字分页实现,这些示例对于网页开发者来说是非常宝贵的资源,能够帮助他们理解和学习如何在自己的项目中应用数字分页。 首先,我们来讨论“数字分页”的概念。数字分页...

    GridView高效分页示例

    "GridView高效分页示例"就是一种优化策略,它避免了使用存储过程,而是采用更直接和高效的方法。 首先,我们要理解传统分页的问题。在默认情况下,GridView会一次性获取所有记录,然后在客户端进行分页,这显然对...

    js分页示例,前台分页,客户端分页,分页机制,js分页

    本篇将深入探讨JavaScript实现分页的相关知识点,包括前台分页、客户端分页、分页机制以及相关的JavaScript代码示例。 首先,我们要理解什么是分页。在Web应用中,分页是将大量数据分成多个小部分(每部分通常称为...

    分页-表格示例

    "分页-表格示例"这个主题主要关注如何在表格中实现分页功能。 分页通常用于数据库查询结果、电子表格、论坛帖子等场景。表格是数据展示的常见方式,尤其当数据具有多列和多行时,分页可以使用户更容易地管理和查看...

    JSP AJAX分页示例程序.rar

    **JSP AJAX分页示例程序详解** 在Web开发中,分页是一种常见的用户界面功能,用于处理大量数据的展示,提高用户体验。JSP(JavaServer Pages)与AJAX(Asynchronous JavaScript and XML)结合使用,可以实现无刷新...

    分页示例.zip

    这个名为"分页示例.zip"的压缩包文件很可能包含了一个关于如何使用分页功能的实例,可能是通过JavaScript库jQuery实现的。下面将详细讨论分页的基本原理、jQuery分页插件以及在实际开发中的应用。 分页的基本原理...

    Pager-taglib页面分页示例

    Pager-taglib是由Java开发的开源项目,它提供了自定义的JSP标签来处理分页逻辑。开发者无需编写复杂的Java代码,只需在JSP页面中使用这些标签,就能轻松实现分页功能。这大大简化了前端与后端的交互,提高了开发效率...

    SQL2008查询分页示例

    SQL2008查询分页示例,用临时表,通过ROW_NUMBER()来分页

    MvcPager分页示例MVC2.0源码.zip

    开发者可以通过传入各种选项来自定义分页的样式和行为,如页码显示方式、链接样式、是否启用AJAX分页等。源码中的`_Layout.cshtml`和`Index.cshtml`文件将展示具体的实现方式。 在MvcPager的配置过程中,开发者还...

    三层Gridview分页示例源码20130227

    在这个"三层Gridview分页示例源码20130227"中,我们可以深入学习如何在Web应用中有效地实现分页功能。 首先,三层架构包括表现层(UI)、业务逻辑层(BLL)和数据访问层(DAL)。表现层主要负责与用户交互,业务...

    mypaper分页示例(仿拍拍分页)

    "mypaper分页示例(仿拍拍分页)"是一个专为Visual Studio 2005设计的项目,旨在提供一个优化的分页界面,模仿知名电商平台拍拍网的分页效果。这个项目包含了两个关键文件:TestMyPager和MyPagerControl,它们分别...

    dwr 分页示例(jsp)

    在这个"dwr分页示例(jsp)"中,我们将探讨如何利用DWR在JSP页面上实现动态的数据分页功能,这在大数据量展示时尤为重要。 首先,我们需要理解DWR的基本工作原理。DWR通过在客户端和服务器之间建立一个安全的通道,...

    flex3 分页示例

    Flex3是一种基于ActionScript3的开源框架,用于构建富互联网应用程序(RIA)。它提供了一整套组件库,包括用户界面元素、数据绑定和图形绘制工具,使得开发者可以创建交互性强、视觉效果丰富的Web应用。在Flex3中...

    pagination 分页示例 简洁版 注释 最新

    在“pagination 分页示例 简洁版 注释 最新”的标题和描述中,我们可以推测这是一个关于分页实现的简洁代码示例,可能包含了最新的优化或改进。下面我们将深入探讨分页的原理、实现方式以及相关的编程知识点。 1. *...

Global site tag (gtag.js) - Google Analytics