Ejemplo n.º 1
0
 /**
  * 修改:banner
  * @date: 2016年1月8日 
  * @author: chenxiaolin
  */
 public function bannerEditAction()
 {
     $this->setLeftNav('bannerEdit');
     $req = $this->request;
     if (!$req->isPost()) {
         $id = $req->getQuery('banner_id');
         $info = OmBanner::findFirst("banner_id = {$id}");
         $bannerData = json_decode($info->banner_data, true);
         $handleData = json_decode($bannerData['link_data'], true);
         //处理banner_data字段数据
         if ($bannerData['link_type'] == 'url') {
             $data = ['data' => $handleData['link']];
         } elseif ($bannerData['link_type'] == 'none') {
             $data = ['data' => ''];
         } else {
             $data = ['data' => $handleData['id']];
         }
         $this->view->setVar('info', $info);
         $this->view->setVar('bannerData', $bannerData);
         $this->view->setVar('data', $data);
         $this->view->setVar('openCity', $this->openCityList());
         return;
     } else {
         $response = new ResponseResult();
         $response->callback = $req->getPost('callback', null, 'parent.setFormResult');
         $response->callbackJavascriptTag = true;
         $id = $req->getPost('banner_id');
         $banner_name = $req->getPost('banner_name');
         $handle_type = $req->getPost('handle_type');
         $handle_data = $req->getPost('handle_data');
         $data = OmBanner::findFirst("banner_id = {$id}");
         //判断空数据
         if (empty($banner_name) || empty($handle_type)) {
             $response->sendError(ResponseResultStatus::PARAM_CANNOT_EMPTY, '参数异常!');
             return $response;
         }
         if ($handle_type != 'none' && empty($handle_data)) {
             $response->sendError(ResponseResultStatus::PARAM_CANNOT_EMPTY, '填写处理数据!');
             return $response;
         }
         //判断Url是否合法
         if ($handle_type == 'url' && !Util::CheckUrl($handle_data)) {
             $response->sendError(ResponseResultStatus::PARAM_CANNOT_EMPTY, 'Url不合法!');
             return $response;
         }
         //不跳转
         if ($handle_type == 'none') {
             $handle_data = '';
         }
         //内部打开网页
         if ($handle_type == 'url') {
             $handle_data_arr = ['link' => $handle_data];
         }
         //跳转详情
         if ($handle_type != 'none' && $handle_type != 'url') {
             $handle_data_arr = ['id' => $handle_data];
         }
         //上传封面
         if ($_FILES['banner_cover']['name'] != '') {
             //封面不为空
             $uploadFile = new UploadPic();
             $uploadFile->request = $req;
             $cover = $uploadFile->bannerPics();
             if ($cover == false || !is_array($cover) || count($cover) == 0 || $cover[0] == false) {
                 if ($_FILES['banner_cover']['error'] == 1) {
                     $response->sendError(ResponseResultStatus::UPLOAD_FILE_ERROR, '封面大小不能超过1M!');
                 } else {
                     $response->sendError(ResponseResultStatus::UPLOAD_FILE_ERROR, '封面必须上传!');
                 }
                 return $response;
             }
             $arr = ['url' => $cover[0], 'link_type' => $handle_type, 'link_data' => json_encode($handle_data)];
         } else {
             //封面为空
             $banner_datas = json_decode($data->banner_data, true);
             $arr = ['url' => $banner_datas['url'], 'link_type' => $handle_type, 'link_data' => json_encode($handle_data_arr)];
         }
         $data->banner_name = $banner_name;
         $data->banner_data = json_encode($arr);
         $data->banner_update_time = date('Y-m-d H:i:m');
         if ($data->save()) {
             $response->sendResult('ok');
             return $response;
         }
     }
 }