/** * 修改: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; } } }