SlideController.php 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. <?php
  2. class SlideController extends AdminController{
  3. public function actionIndex()
  4. {
  5. $status_option = Slide::$status_option;
  6. $status = CommonFn::getComboboxData($status_option, 100, true, 100);
  7. $this->render('index', array(
  8. 'status' => $status
  9. ));
  10. }
  11. public function actionList()
  12. {
  13. $params = CommonFn::getPageParams();
  14. $status = intval(Yii::app()->request->getParam('status', 100));
  15. $criteria = new EMongoCriteria($params);
  16. if($status!=100){
  17. $criteria->status('==', $status);
  18. }
  19. $criteria->sort('order', EMongoCriteria::SORT_DESC);
  20. $cursor = Slide::model()->findAll($criteria);
  21. $rows = CommonFn::getRowsFromCursor($cursor);
  22. $total = $cursor->count();
  23. $parsedRows = Slide::model()->parse($rows);
  24. echo CommonFn::composeDatagridData($parsedRows, $total);
  25. }
  26. public function actionEdit(){
  27. $id = Yii::app()->request->getParam('id', '');
  28. $title = Yii::app()->request->getParam('title', '');
  29. $pic = Yii::app()->request->getParam('pic', '');
  30. $order = intval(Yii::app()->request->getParam('order',1));
  31. $status = intval(Yii::app()->request->getParam('status', 1));
  32. $type = Yii::app()->request->getParam('type', '');
  33. $obj = Yii::app()->request->getParam('obj', '');
  34. $city_info = Yii::app()->request->getParam('city_info', array());
  35. $start_time = intval(Yii::app()->request->getParam('start_time', 0));
  36. $end_time = intval(Yii::app()->request->getParam('end_time', 0));
  37. $cityArray = array();
  38. $zCity = new ZCityInfo();
  39. if(!$zCity->checkCity($city_info,$cityArray)){
  40. CommonFn::requestAjax(false, '请检查城市信息是否正确!');
  41. }
  42. if($status == 100){
  43. CommonFn::requestAjax(false, '必须指定状态!');
  44. }
  45. if(!$id){
  46. $slide = new Slide();
  47. $op = 'insert';
  48. }else{
  49. $op = 'update';
  50. $criteria = new EMongoCriteria();
  51. $criteria->_id = new MongoId($id);
  52. $slide = Slide::model()->find($criteria);
  53. if (empty($slide)){
  54. CommonFn::requestAjax(false, '不存在');
  55. }
  56. }
  57. if($start_time && $end_time && $start_time >= $end_time){
  58. CommonFn::requestAjax(false, '起始时间、结束时间选择有误');
  59. }
  60. if ($title == '' || mb_strlen($title, 'utf-8') < 2 ||mb_strlen($title, 'utf-8') > 40){
  61. CommonFn::requestAjax(false, '标题至少2个字,最多40个字');
  62. }
  63. if(!CommonFn::checkPicFormat($pic)){
  64. CommonFn::requestAjax(false, '图片地址错了');
  65. }
  66. if(!$type){
  67. CommonFn::requestAjax(false, '类型必选啊');
  68. }
  69. $status=$status>1?1:$status;
  70. if(!$type || $type == "100"){
  71. CommonFn::requestAjax(false, '必须指定类型!');
  72. }
  73. switch ($type) {
  74. case 'topic':
  75. $_type = 'Topic';
  76. $error = '帖子不存在';
  77. break;
  78. case 'group':
  79. $_type = 'Group';
  80. $error = '圈子不存在';
  81. break;
  82. case 'subject':
  83. $_type = 'Subject';
  84. $error = '话题不存在';
  85. break;
  86. case 'url':
  87. $_type = 'Url';
  88. $error = 'url不合法';
  89. break;
  90. default:
  91. CommonFn::requestAjax(false, '参数错误');
  92. break;
  93. }
  94. if(isset($_type) && $_type && $_type != 'Url'){
  95. $_obj = $_type::get(new MongoId($obj));
  96. $slide->obj = $_obj->_id;
  97. } else {
  98. if(!preg_match('/http:\/\/[\w.]+[\w\/]*[\w.]*\??[\w=&\+\%]*/is',$obj)){
  99. CommonFn::requestAjax(false, 'url填错了!');
  100. }else{
  101. $_obj = array("url"=>$obj);
  102. $slide->obj = $_obj;
  103. }
  104. }
  105. $slide->title = $title;
  106. $slide->pic = $pic;
  107. $slide->type = $type;
  108. $slide->order = $order;
  109. $slide->status = $status;
  110. $slide->start_time = $start_time;
  111. $slide->end_time = $end_time;
  112. $slide->city_info = $cityArray;
  113. // var_dump($slide->city_info);die();
  114. $arr_add = array('title','pic','type','order','status', 'obj','city_info','start_time','end_time');
  115. $success = $slide->save(true,$arr_add);
  116. CommonFn::requestAjax($success, '', array());
  117. }
  118. }