Example #1
0
 protected function _waterfall($mod, $where = '', $order = "", $pagesize = 5)
 {
     import("ORG.Util.Page");
     $p = !empty($_GET['p']) ? intval($_GET['p']) : 1;
     $sp = !empty($_GET['sp']) ? intval($_GET['sp']) : 1;
     $ajax = !empty($_GET['ajax']) ? true : false;
     $sp > C('pin_wall_spage_max') && exit;
     $list_rows = C('pin_wall_spage_max') * C('pin_wall_spage_size');
     $s_list_rows = C('pin_wall_spage_size');
     $show_sp = 0;
     $count = $mod->where($where)->count();
     $count > $s_list_rows && ($show_sp = 1);
     $pager = new Page($count, $list_rows);
     $pager->setConfig('theme', '%first% %upPage% %linkPage% %downPage% %end%');
     $first_row = $pager->firstRow + $s_list_rows * ($sp - 1);
     $items_list = $mod->relation(true)->where($where)->limit($first_row . ',' . $s_list_rows)->order($order)->select();
     //print_r($mod->getLastSql());exit();
     $this->assign('page', $pager->show());
     $this->assign('p', $p);
     $this->assign('show_sp', $show_sp);
     $this->assign('sp', $sp);
     $_parse = '_parse_' . $mod->getModelName();
     if (method_exists($this, $_parse)) {
         eval('$items_list=$this->' . $_parse . '($items_list);');
     }
     $_before = '_before_' . ACTION_NAME;
     if (method_exists($this, $_before)) {
         eval('$items_list=$this->' . $_before . '($items_list);');
     }
     $this->assign('show_load', 1);
     //总数大于单页数才显示分页
     $this->assign('page_bar', $pager->fshow());
     //print_r($items_list);exit();
     $this->assign($mod->getModelName() . '_list', $items_list);
     if (IS_AJAX && $sp >= 2 || $ajax) {
         $resp = $this->fetch('public:ajax_' . $mod->getModelName() . '_list');
         //print_r();
         $data = array('isfull' => 1, 'html' => $resp);
         $this->ajaxReturn(1, '', $data);
     } else {
         $this->display();
     }
 }