Exemplo n.º 1
0
 public function uploadImageAction()
 {
     $this->checkAuth();
     $request = $this->getRequest();
     if ($request->isPost()) {
         // File upload input
         $file = new FileInput('avatar');
         // Special File Input type
         $file->getValidatorChain()->attach(new Validator\File\UploadFile());
         $file->getFilterChain()->attach(new Filter\File\RenameUpload(array('target' => './public/files/users/avatar/origin/', 'use_upload_name' => true, 'randomize' => true)));
         // Merge $_POST and $_FILES data together
         $request = new Request();
         $postData = array_merge_recursive($request->getPost()->toArray(), $request->getFiles()->toArray());
         $inputFilter = new InputFilter();
         $inputFilter->add($file)->setData($postData);
         if ($inputFilter->isValid()) {
             // FileInput validators are run, but not the filters...
             $data = $inputFilter->getValues();
             // This is when the FileInput filters are run.
             $avatar = basename($data['avatar']['tmp_name']);
             $this->databaseService->updateAvatar($this->user->id, $avatar);
             $this->user->avatar = $avatar;
         } else {
             // error
         }
     }
     return $this->redirect()->toRoute('profile');
 }
Exemplo n.º 2
0
 /**
  *
  * 文件上传处理
  * @param Request $request
  * @return bool|string
  * @throws \Exception
  */
 public function upload(Request $request)
 {
     if (!$request instanceof Request) {
         throw new \Exception(BaseConst::UPLOAD_PARAMETER_ERROR_MSG, BaseConst::UPLOAD_PARAMETER_ERROR);
     }
     if (!$this->targetAbs) {
         $this->setTargetDir();
     }
     $files = $request->getFiles()->toArray();
     if (empty($files)) {
         throw new \Exception(BaseConst::UPLOAD_PARAMETER_ERROR_MSG, BaseConst::UPLOAD_PARAMETER_ERROR);
     }
     $transer = new \Zend\File\Transfer\Adapter\Http();
     $filters = array();
     $result = array();
     // 传输文件准备
     foreach ($files as $k => $v) {
         $tmp[] = $v['name'];
         $ext = strstr($v['name'], '.');
         $tmpName = strstr($v['name'], '.', true);
         $filters[] = new \Zend\Filter\File\Rename(array('target' => $this->targetAbs . md5($tmpName) . $ext, "randomize" => true));
         // 判断文件后缀是否合法
         if (!$this->checkAllowType($ext)) {
             throw new \Exception(BaseConst::UPLOAD_FILE_EXT_NOT_VALID_MSG, BaseConst::UPLOAD_FILE_EXT_NOT_VALID);
         }
     }
     // 传输文件
     $transer->setFilters($filters);
     $transer->receive($tmp);
     foreach ($files as $k => $v) {
         $fileInfo = $transer->getFileInfo($k);
         $data = array('name' => $fileInfo[$k]['name'], 'path' => $this->targetRel . $fileInfo[$k]['name'], 'type' => $fileInfo[$k]['type']);
         $ext = strstr($fileInfo[$k]['name'], '.');
         $tmpFileName = strstr($fileInfo[$k]['name'], '.', true);
         // 生成缩略图
         if ($this->ifThumb) {
             $thumbInfo = $this->makeThumb($this->targetAbs . $fileInfo[$k]['name'], $this->targetAbs . $tmpFileName . $this->thumbW . 'X' . $this->thumbH . $ext, $this->thumbW, $this->thumbH);
             $data['thumb'] = $thumbInfo;
         }
         // 加水印
         if ($this->ifWaterMark) {
             $this->makeWatermark($this->targetAbs . $fileInfo[$k]['name'], 6, '', $this->waterText, $_SERVER['DOCUMENT_ROOT'] . '/STXIHEI.TTF', $this->waterPct);
         }
         $result[] = $data;
     }
     if ($result) {
         return json_encode($result);
     } else {
         return false;
     }
 }
 public static function createFromRequest(BaseRequest $request)
 {
     $new = static::fromString($request->toString());
     $new->setQuery($request->getQuery());
     $new->setPost($request->getPost());
     $new->setCookies($request->getCookie());
     $new->setFiles($request->getFiles());
     $new->setServer($request->getServer());
     $new->setContent($request->getContent());
     $new->setEnv($request->getEnv());
     $headers = $request->getHeaders();
     $new->setHeaders($headers);
     return $new;
 }
Exemplo n.º 4
0
 public function testRetrievingASingleValueForParameters()
 {
     $request = new Request();
     $p = new \Zend\Stdlib\Parameters(array('foo' => 'bar'));
     $request->setQuery($p);
     $request->setPost($p);
     $request->setFiles($p);
     $request->setServer($p);
     $request->setEnv($p);
     $this->assertSame('bar', $request->getQuery('foo'));
     $this->assertSame('bar', $request->getPost('foo'));
     $this->assertSame('bar', $request->getFiles('foo'));
     $this->assertSame('bar', $request->getServer('foo'));
     $this->assertSame('bar', $request->getEnv('foo'));
     $headers = new Headers();
     $h = new GenericHeader('foo', 'bar');
     $headers->addHeader($h);
     $request->setHeaders($headers);
     $this->assertSame($headers, $request->getHeaders());
     $this->assertSame($h, $request->getHeaders()->get('foo'));
     $this->assertSame($h, $request->getHeader('foo'));
 }
 public function addfileAction()
 {
     $this->checkAuth();
     $request = $this->getRequest();
     if ($request->isPost()) {
         $file_attach = new FileAttachment();
         $file_attach->user_create = $this->auth->getIdentity()->id;
         $file_attach->date_create = date('Y-m-d H:i:s');
         $file_attach->last_date = $file_attach->date_create;
         $file_attach->last_user = $this->auth->getIdentity()->id;
         // info pay
         $file_attach->task_id = $request->getPost('task_id');
         $file_attach->permission_option = $request->getPost('permission_option');
         if ($this->isLevel2() != true) {
             $permission = $this->databaseService->getPermissionUser($file_attach->task_id, $file_attach->user_create);
             if ($permission == Config::FILE_PERMISSION_ERROR) {
                 return new JsonModel(array());
             }
             if ($permission == Config::FILE_PERMISSION_CUSTUMER) {
                 $file_attach->permission_option = Config::FILE_PERMISSION_CUSTUMER;
             }
             if ($permission == Config::FILE_PERMISSION_PROVIDER) {
                 $file_attach->permission_option = Config::FILE_PERMISSION_PROVIDER;
             }
         }
         // File upload input
         $file = new FileInput('file_name');
         // Special File Input type
         $file->getValidatorChain()->attach(new Validator\File\UploadFile());
         $file->getFilterChain()->attach(new Filter\File\RenameUpload(array('target' => '.' . Config::FILE_ATTACHMENT_PATH . $file_attach->task_id, 'use_upload_name' => true, 'randomize' => true)));
         if (!file_exists('.' . Config::FILE_ATTACHMENT_PATH . $file_attach->task_id)) {
             mkdir('.' . Config::FILE_ATTACHMENT_PATH . $file_attach->task_id, 0700, true);
         }
         // Merge $_POST and $_FILES data together
         $request = new Request();
         $postData = array_merge_recursive($request->getPost()->toArray(), $request->getFiles()->toArray());
         $inputFilter = new InputFilter();
         $inputFilter->add($file)->setData($postData);
         if ($inputFilter->isValid()) {
             // FileInput validators are run, but not the filters...
             $data = $inputFilter->getValues();
             // This is when the FileInput filters are run.
             $file_attach->real_name = basename($data['file_name']['tmp_name']);
             $file_attach->file_name = basename($data['file_name']['name']);
             $result = $this->databaseService->addFileAttachment($file_attach);
             $file_attach->id = $result->getGeneratedValue();
             $this->databaseService->addFileLog($this->auth->getIdentity()->id, $file_attach, Config::PAY_INFO_COMMON);
         }
     }
     return new JsonModel(array());
 }
 public function editAction()
 {
     $this->accessRights(17);
     //Accept Parent Module, Return Main Menu Lists with Active Menu Indicator
     $this->childModuleAccessRights(17, 'edit');
     //Accept Child Module ID & it's Actions: add, edit, view, disable
     //$msgs means message, it will show if data had been changed.
     $msgs = '';
     //get the id from parameter
     $id = (int) $this->params()->fromRoute('id', 0);
     if (!$id) {
         return $this->redirect()->toRoute('media_profile', array('action' => 'add', 'access_rights' => $this->getSubModuleAccessRights(17)));
     }
     try {
         $media_profile = $this->getMediaProfileTable()->getMediaProfile($this->serviceLocator(), $id);
         $media_profile_education = $this->getMediaProfileTable()->getMediaProfileEducation($this->serviceLocator(), $id);
         $media_profile_career = $this->getMediaProfileTable()->getMediaProfileCareer($this->serviceLocator(), $id);
     } catch (\Exception $ex) {
         return $this->redirect()->toRoute('media_profile', array('action' => 'index', 'access_rights' => $this->getSubModuleAccessRights(17)));
     }
     //instantiate the Media Profile's Form
     //populate the data
     $form_media_profile = new MediaProfileForm($this->serviceLocator());
     $form_media_profile->get('relation_id')->setAttribute('options', $this->optionRelations());
     $form_media_profile->get('additional_position_id[]')->setAttribute('options', $this->optionPositions());
     $form_media_profile->get('additional_beat_id[]')->setAttribute('options', $this->optionBeats());
     $form_media_profile->get('additional_section_id[]')->setAttribute('options', $this->optionSections());
     $form_media_profile->get('additional_radio_station_id[]')->setAttribute('options', $this->optionRadioStations());
     $form_media_profile->get('additional_tv_channel_id[]')->setAttribute('options', $this->optionTVChannels());
     $form_media_profile->get('additional_source_id[]')->setAttribute('options', $this->optionSources());
     $form_media_profile->get('submit')->setAttribute('value', 'Save');
     $form_media_profile->setData($media_profile);
     //remove inputfilter for select element due to conflict
     $formInputFilter = $form_media_profile->getInputFilter();
     $formInputFilter->remove('year[]');
     $formInputFilter->remove('educ_course[]');
     $formInputFilter->remove('educ_school[]');
     $formInputFilter->remove('additional_year[]');
     $formInputFilter->remove('additional_educ_course[]');
     $formInputFilter->remove('additional_educ_school[]');
     //remove inputfilter for select element due to conflict
     //CAREER
     $formInputFilter = $form_media_profile->getInputFilter();
     $formInputFilter->remove('from[]');
     $formInputFilter->remove('to[]');
     $formInputFilter->remove('position_id[]');
     $formInputFilter->remove('beat_id[]');
     $formInputFilter->remove('section_id[]');
     $formInputFilter->remove('source_id[]');
     $formInputFilter->remove('circulation[]');
     $formInputFilter->remove('other_affiliation[]');
     $formInputFilter->remove('additional_from[]');
     $formInputFilter->remove('additional_to[]');
     $formInputFilter->remove('additional_position_id[]');
     $formInputFilter->remove('additional_beat_id[]');
     $formInputFilter->remove('additional_section_id[]');
     $formInputFilter->remove('additional_source_id[]');
     $formInputFilter->remove('additional_circulation[]');
     $formInputFilter->remove('additional_other_affiliation[]');
     //check if the data request is post
     //update the data
     $request = $this->getRequest();
     if ($request->isPost()) {
         //prepare audit trail parameters
         $from = (array) $media_profile;
         $to = $this->getRequest()->getPost()->toArray();
         $diff = array_diff_assoc($to, $from);
         unset($diff['submit'], $diff['media_profles_id'], $diff['media_profile_careers_id'], $diff['media_profile_educations_id'], $diff['year'], $diff['educ_course'], $diff['educ_school'], $diff['additional_year'], $diff['additional_educ_course'], $diff['additional_educ_school'], $diff['from'], $diff['to'], $diff['media_profile_type'], $diff['position_id'], $diff['beat_id'], $diff['section_id'], $diff['circulation'], $diff['source_id'], $diff['other_affiliation'], $diff['additional_from'], $diff['additional_to'], $diff['additional_media_profile_type'], $diff['additional_position_id'], $diff['additional_beat_id'], $diff['additional_section_id'], $diff['additional_circulation'], $diff['additional_source_id'], $diff['additional_other_affiliation']);
         $changes = $this->prepare_modified_data($from, $to, $diff);
         //end audit trail parameters
         $media_profile = new MediaProfile();
         $post = array_merge_recursive($request->getPost()->toArray(), $request->getFiles()->toArray());
         $form_media_profile->setData($post);
         //uploading file
         $request = new Request();
         //request to get the file
         $files = $request->getFiles();
         //get the details of uploading file
         if ($files['photo']['name']) {
             $filter = new \Zend\Filter\File\Rename(array("target" => "./public/img/" . $files['photo']['name'], "overwrite" => true));
             $filter->filter($files['photo']);
             //resize image
             $imagine = $this->getImagineService();
             $size = new \Imagine\Image\Box(150, 150);
             $mode = \Imagine\Image\ImageInterface::THUMBNAIL_INSET;
             $image = $imagine->open('./public/img/' . $files['photo']['name']);
             $image->thumbnail($size, $mode)->save('./public/img/' . $files['photo']['name']);
             //resize image
             $imagine = $this->getImagineService();
             $image = $imagine->open('./public/img/' . $files['photo']['name']);
             $image->resize(new Box(150, 150))->save('./public/img/' . $files['photo']['name']);
         }
         $media_profile->exchangeArray($post);
         if (isset($_POST['year']) || isset($_POST['educ_course']) || isset($_POST['educ_school']) || isset($_POST['additional_year']) || isset($_POST['additional_educ_course']) || !empty($to) || isset($_POST['additional_educ_school'])) {
             $this->getMediaProfileTable()->saveProfileEducation($this->serviceLocator());
         }
         if (isset($_POST['from']) || isset($_POST['to']) || isset($_POST['media_profile_type']) || isset($_POST['position_id']) || isset($_POST['beat_id']) || isset($_POST['section_id']) || isset($_POST['source_id']) || isset($_POST['circulation']) || isset($_POST['other_affiliation']) || isset($_POST['additional_from']) || isset($_POST['additional_to']) || isset($_POST['additional_media_profile_type']) || isset($_POST['additional_position_id']) || isset($_POST['additional_beat_id']) || isset($_POST['additional_section_id']) || isset($_POST['additional_source_id']) || isset($_POST['additional_circulation']) || isset($_POST['additional_other_affiliation'])) {
             $this->getMediaProfileTable()->saveProfileCareer($this->serviceLocator());
         }
         $this->getMediaProfileTable()->saveMediaProfile($media_profile);
         $this->save_to_audit_trail($to['first_name'] . ' ' . $to['last_name'], $changes['pre'], $changes['post'], 'edit', 17);
         //flash message
         $this->flashMessenger()->addMessage(['content' => $request->getPost('first_name') . ' ' . $request->getPost('last_name') . ' Media profile updated!', 'type' => 'success']);
         return $this->redirect()->toRoute('media_profile');
     }
     //return the form after saving new article type.
     return new ViewModel(array('form_media_profile' => $form_media_profile, 'media_profile_id' => $id, 'access_rights' => $this->getSubModuleAccessRights(17), 'media_profile_education' => $media_profile_education, 'media_profile_career' => $media_profile_career, 'positions' => $this->getMediaProfileTable()->fetchPositions($this->serviceLocator()), 'beats' => $this->getMediaProfileTable()->fetchbeats($this->serviceLocator()), 'sections' => $this->getMediaProfileTable()->fetchSections($this->serviceLocator()), 'sources' => $this->getMediaProfileTable()->fetchSources($this->serviceLocator()), 'radio_stations' => $this->getMediaProfileTable()->fetchRadioStations($this->serviceLocator()), 'tv_channels' => $this->getMediaProfileTable()->fetchTVChannels($this->serviceLocator())));
 }
Exemplo n.º 7
0
 public function saveNewsDetail(AdapterInterface $adapter, News $news)
 {
     //media outfits
     //1 = online
     //4 = print local
     //5 = print national
     //6 = radio
     //7 = tv
     $news_header_id = $_POST['news_header_id'];
     $media_outfit_id = $_POST['media_outfit_id'];
     $news_detail_id = $_POST['news_detail_id'];
     if ($news_header_id == '') {
         //insert new online news
         if ($media_outfit_id == 1) {
             $article_type_id = $_POST['article_type_id'] == '' ? null : $_POST['article_type_id'];
             $section_id = $_POST['section_id'] == '' ? null : $_POST['section_id'];
             $page = $_POST['page'];
             $source_id = $_POST['source_id'] == '' ? null : $_POST['source_id'];
             $initiated_by = $_POST['initiated_by'] == '' ? null : $_POST['initiated_by'];
             $media_profile_id = $_POST['media_profile_id'] == '' ? null : $_POST['media_profile_id'];
             $section_editor_id = $_POST['section_editor_id'] == '' ? null : $_POST['section_editor_id'];
             $attachment = '';
             $request = new Request();
             //request to get the file
             $files = $request->getFiles();
             //get the details of uploading file
             if ($news->attachments['name']) {
                 $request = new Request();
                 //request to get the file
                 $files = $request->getFiles();
                 //get the details of uploading file
                 $file = pathinfo($files['attachments']['name']);
                 $filename = str_replace(" ", ".", uniqid() . '.' . $file['extension']);
                 $this->saveAttachment($files, $filename);
                 $attachment = $filename;
             }
             $sub_kind = !isset($_POST['sub_kind']) ? -1 : $_POST['sub_kind'];
             //insert new News detail
             $this->adapter = $adapter;
             $sql = "INSERT INTO news_details (`article_type_id`,`section_id`, `page`, `source_id`, `section_editor_id`, `initiated_by`, `media_profile_id`, `attachment`, `sub_kind`) VALUES (?,?,?,?,?,?,?,?,?);SELECT news_details_id FROM news_details WHERE news_details_id=LAST_INSERT_ID();";
             $statement = $this->adapter->createStatement($sql, array($article_type_id, $section_id, $page, $source_id, $section_editor_id, $initiated_by, $media_profile_id, $attachment, $sub_kind));
             $result = $statement->execute();
         } else {
             if ($media_outfit_id == 4) {
                 //insert new print local
                 $article_type_id = $_POST['article_type_id'] == '' ? null : $_POST['article_type_id'];
                 $section_id = $_POST['section_id'] == '' ? null : $_POST['section_id'];
                 $page = $_POST['page'] == '' ? null : $_POST['page'];
                 $source_id = $_POST['source_id'] == '' ? null : $_POST['source_id'];
                 $section_editor_id = $_POST['section_editor_id'] == '' ? null : $_POST['section_editor_id'];
                 $initiated_by = $_POST['initiated_by'] == '' ? null : $_POST['initiated_by'];
                 $media_profile_id = $_POST['media_profile_id'] == '' ? null : $_POST['media_profile_id'];
                 $geography = $_POST['geography'] == '' ? null : $_POST['geography'];
                 $region = $_POST['region'] == '' ? null : $_POST['region'];
                 $province = $_POST['province'] == '' ? null : $_POST['province'];
                 $attachment = '';
                 if ($news->attachments['name']) {
                     $request = new Request();
                     //request to get the file
                     $files = $request->getFiles();
                     //get the details of uploading file
                     $file = pathinfo($files['attachments']['name']);
                     $filename = str_replace(" ", ".", uniqid() . '.' . $file['extension']);
                     $this->saveAttachment($files, $filename);
                     $attachment = $filename;
                 }
                 $this->adapter = $adapter;
                 $sql = "INSERT INTO news_details (`article_type_id`,`section_id`, `page`, `source_id`, `section_editor_id`, `initiated_by`, `media_profile_id`, `attachment`, `geography`, `region`, `province`) VALUES (?,?,?,?,?,?,?,?,?,?,?)";
                 $statement = $this->adapter->createStatement($sql, array($article_type_id, $section_id, $page, $source_id, $section_editor_id, $initiated_by, $media_profile_id, $attachment, $geography, $region, $province));
                 $result = $statement->execute();
             } else {
                 if ($media_outfit_id == 5) {
                     //insert new print national
                     $article_type_id = $_POST['article_type_id'] == '' ? null : $_POST['article_type_id'];
                     $section_id = $_POST['section_id'] == '' ? null : $_POST['section_id'];
                     $page = $_POST['page'] == '' ? null : $_POST['page'];
                     $source_id = $_POST['source_id'] == '' ? null : $_POST['source_id'];
                     $initiated_by = $_POST['initiated_by'] == '' ? null : $_POST['initiated_by'];
                     $media_profile_id = $_POST['media_profile_id'] == '' ? null : $_POST['media_profile_id'];
                     $section_editor_id = $_POST['section_editor_id'] == '' ? null : $_POST['section_editor_id'];
                     $attachment = '';
                     if ($news->attachments['name']) {
                         $request = new Request();
                         //request to get the file
                         $files = $request->getFiles();
                         //get the details of uploading file
                         $file = pathinfo($files['attachments']['name']);
                         $filename = str_replace(" ", ".", uniqid() . '.' . $file['extension']);
                         $this->saveAttachment($files, $filename);
                         $attachment = $filename;
                     }
                     //save print local
                     $this->adapter = $adapter;
                     $sql = "INSERT INTO news_details (`article_type_id`,`section_id`, `page`, `source_id`, `section_editor_id`, `initiated_by`, `media_profile_id`, `attachment`) VALUES (?,?,?,?,?,?,?,?)";
                     $statement = $this->adapter->createStatement($sql, array($article_type_id, $section_id, $page, $source_id, $section_editor_id, $initiated_by, $media_profile_id, $attachment));
                     $result = $statement->execute();
                 } else {
                     if ($media_outfit_id == 6) {
                         //insert new radio
                         $radio_program_id = $_POST['radio_program_id'] == '' ? null : $_POST['radio_program_id'];
                         $radio_station_id = $_POST['radio_station_id'] == '' ? null : $_POST['radio_station_id'];
                         $media_profile_id = $_POST['media_profile_id'] == '' ? null : $_POST['media_profile_id'];
                         $section_editor_id = $_POST['section_editor_id'] == '' ? null : $_POST['section_editor_id'];
                         $time_slot = $_POST['time_slot'] == '' ? null : $_POST['time_slot'];
                         $issue = $_POST['issue'] == '' ? null : $_POST['issue'];
                         $spokesperson = $_POST['spokesperson'] == '' ? null : $_POST['spokesperson'];
                         $link = $_POST['link'] == '' ? null : $_POST['link'];
                         $remarks = $_POST['remarks'] == '' ? null : $_POST['remarks'];
                         $this->adapter = $adapter;
                         $sql = "INSERT INTO news_details (`radio_program_id`,`radio_station_id`, `section_editor_id`, `media_profile_id`, `time_slot`, `issue`, `spokesperson`,`link`, `remarks`) VALUES (?,?,?,?,?,?,?,?,?)";
                         $statement = $this->adapter->createStatement($sql, array($radio_program_id, $radio_station_id, $section_editor_id, $media_profile_id, $time_slot, $issue, $spokesperson, $link, $remarks));
                         $result = $statement->execute();
                     } else {
                         if ($media_outfit_id == 7) {
                             //insert new tv
                             $program_title = $_POST['program_title'] == '' ? null : $_POST['program_title'];
                             $media_profile_id = $_POST['media_profile_id'] == '' ? null : $_POST['media_profile_id'];
                             $tv_channel_id = $_POST['tv_channel_id'] == '' ? null : $_POST['tv_channel_id'];
                             $time_slot = $_POST['time_slot'] == '' ? null : $_POST['time_slot'];
                             $issue = $_POST['issue'] == '' ? null : $_POST['issue'];
                             $spokesperson = $_POST['spokesperson'] == '' ? null : $_POST['spokesperson'];
                             $link = $_POST['link'] == '' ? null : $_POST['link'];
                             $remarks = $_POST['remarks'] == '' ? null : $_POST['remarks'];
                             //save print local
                             $this->adapter = $adapter;
                             $sql = "INSERT INTO news_details (`media_profile_id`, `program_title`, `tv_channel_id`, `time_slot`, `issue`, `spokesperson`,`link`, `remarks`) VALUES (?,?,?,?,?,?,?,?)";
                             $statement = $this->adapter->createStatement($sql, array($media_profile_id, $program_title, $tv_channel_id, $time_slot, $issue, $spokesperson, $link, $remarks));
                             $result = $statement->execute();
                         }
                     }
                 }
             }
         }
     } else {
         //update specific online news
         if ($media_outfit_id == 1) {
             $this->adapter = $adapter;
             $article_type_id = $_POST['article_type_id'] == '' ? null : $_POST['article_type_id'];
             $section_id = $_POST['section_id'] == '' ? null : $_POST['section_id'];
             $page = $_POST['page'];
             $source_id = $_POST['source_id'] == '' ? null : $_POST['source_id'];
             $initiated_by = $_POST['initiated_by'] == '' ? null : $_POST['initiated_by'];
             $media_profile_id = $_POST['media_profile_id'] == '' ? null : $_POST['media_profile_id'];
             $section_editor_id = $_POST['section_editor_id'] == '' ? null : $_POST['section_editor_id'];
             $sub_kind = !isset($_POST['sub_kind']) ? -1 : $_POST['sub_kind'];
             $request = new Request();
             //request to get the file
             $files = $request->getFiles();
             //get the details of uploading file
             if ($files['attachments']['name']) {
                 $request = new Request();
                 //request to get the file
                 $files = $request->getFiles();
                 //get the details of uploading file
                 $file = pathinfo($files['attachments']['name']);
                 $filename = str_replace(" ", ".", uniqid() . '.' . $file['extension']);
                 $this->saveAttachment($files, $filename);
                 $attachment = $filename;
                 $sql = "UPDATE news_details SET `article_type_id` = ?, `section_id` = ?, `page` = ?, `source_id` = ?, `section_editor_id` = ?, `initiated_by` = ?, `media_profile_id` = ?, `attachment` = ?, `sub_kind` = ? WHERE `news_details_id` = ?";
                 $statement = $this->adapter->createStatement($sql, array($article_type_id, $section_id, $page, $source_id, $section_editor_id, $initiated_by, $media_profile_id, $attachment, $sub_kind, $news_detail_id));
                 $result = $statement->execute();
             } else {
                 $sql = "UPDATE news_details SET `article_type_id` = ?, `section_id` = ?, `page` = ?, `source_id` = ?, `section_editor_id` = ?, `initiated_by` = ?, `media_profile_id` = ?, `sub_kind` = ? WHERE `news_details_id` = ?";
                 $statement = $this->adapter->createStatement($sql, array($article_type_id, $section_id, $page, $source_id, $section_editor_id, $initiated_by, $media_profile_id, $sub_kind, $news_detail_id));
                 $result = $statement->execute();
             }
         } else {
             if ($media_outfit_id == 4) {
                 //update specific print local
                 $this->adapter = $adapter;
                 $article_type_id = $_POST['article_type_id'] == '' ? null : $_POST['article_type_id'];
                 $section_id = $_POST['section_id'] == '' ? null : $_POST['section_id'];
                 $page = $_POST['page'] == '' ? null : $_POST['page'];
                 $source_id = $_POST['source_id'] == '' ? null : $_POST['source_id'];
                 $initiated_by = $_POST['initiated_by'] == '' ? null : $_POST['initiated_by'];
                 $media_profile_id = $_POST['media_profile_id'] == '' ? null : $_POST['media_profile_id'];
                 $section_editor_id = $_POST['section_editor_id'] == '' ? null : $_POST['section_editor_id'];
                 $geography = $_POST['geography'] == '' ? null : $_POST['geography'];
                 $region = $_POST['region'] == '' ? null : $_POST['region'];
                 $province = $_POST['province'] == '' ? null : $_POST['province'];
                 $request = new Request();
                 //request to get the file
                 $files = $request->getFiles();
                 //get the details of uploading file
                 if ($files['attachments']['name']) {
                     $request = new Request();
                     //request to get the file
                     $files = $request->getFiles();
                     //get the details of uploading file
                     $file = pathinfo($files['attachments']['name']);
                     $filename = str_replace(" ", ".", uniqid() . '.' . $file['extension']);
                     $this->saveAttachment($files, $filename);
                     $attachment = $filename;
                     $sql = "UPDATE news_details SET `article_type_id` = ?, `section_id` = ?, `page` = ?, `source_id` = ?, `section_editor_id` = ?, `initiated_by` = ?, `media_profile_id` = ?, `attachment` = ?, `geography` = ?, `region` = ?, `province` = ? WHERE `news_details_id` = ?";
                     $statement = $this->adapter->createStatement($sql, array($article_type_id, $section_id, $page, $source_id, $section_editor_id, $initiated_by, $media_profile_id, $attachment, $geography, $region, $province, $news_detail_id));
                     $result = $statement->execute();
                 } else {
                     $sql = "UPDATE news_details SET `article_type_id` = ?, `section_id` = ?, `page` = ?, `source_id` = ?, `section_editor_id` = ?, `initiated_by` = ?, `media_profile_id` = ?, `geography` = ?, `region` = ?, `province` = ? WHERE `news_details_id` = ?";
                     $statement = $this->adapter->createStatement($sql, array($article_type_id, $section_id, $page, $source_id, $section_editor_id, $initiated_by, $media_profile_id, $geography, $region, $province, $news_detail_id));
                     $result = $statement->execute();
                 }
             } else {
                 if ($media_outfit_id == 5) {
                     //update specific print national news
                     $this->adapter = $adapter;
                     $article_type_id = $_POST['article_type_id'] == '' ? null : $_POST['article_type_id'];
                     $section_id = $_POST['section_id'] == '' ? null : $_POST['section_id'];
                     $page = $_POST['page'] == '' ? null : $_POST['page'];
                     $source_id = $_POST['source_id'] == '' ? null : $_POST['source_id'];
                     $initiated_by = $_POST['initiated_by'] == '' ? null : $_POST['initiated_by'];
                     $media_profile_id = $_POST['media_profile_id'] == '' ? null : $_POST['media_profile_id'];
                     $section_editor_id = $_POST['section_editor_id'] == '' ? null : $_POST['section_editor_id'];
                     $request = new Request();
                     //request to get the file
                     $files = $request->getFiles();
                     //get the details of uploading file
                     if ($files['attachments']['name']) {
                         $request = new Request();
                         //request to get the file
                         $files = $request->getFiles();
                         //get the details of uploading file
                         $file = pathinfo($files['attachments']['name']);
                         $filename = str_replace(" ", ".", uniqid() . '.' . $file['extension']);
                         $this->saveAttachment($files, $filename);
                         $attachment = $filename;
                         $sql = "UPDATE news_details SET `article_type_id` = ?, `section_id` = ?, `page` = ?, `source_id` = ?, `section_editor_id` = ?, `initiated_by` = ?, `media_profile_id` = ?, `attachment` = ? WHERE `news_details_id` = ?";
                         $statement = $this->adapter->createStatement($sql, array($article_type_id, $section_id, $page, $source_id, $section_editor_id, $initiated_by, $media_profile_id, $attachment, $news_detail_id));
                     } else {
                         $sql = "UPDATE news_details SET `article_type_id` = ?, `section_id` = ?, `page` = ?, `source_id` = ?, `section_editor_id` = ?, `initiated_by` = ?, `media_profile_id` = ? WHERE `news_details_id` = ?";
                         $statement = $this->adapter->createStatement($sql, array($article_type_id, $section_id, $page, $source_id, $section_editor_id, $initiated_by, $media_profile_id, $news_detail_id));
                     }
                     $result = $statement->execute();
                 } else {
                     if ($media_outfit_id == 6) {
                         //update specific radio news
                         $this->adapter = $adapter;
                         $radio_program_id = $_POST['radio_program_id'] == '' ? null : $_POST['radio_program_id'];
                         $radio_station_id = $_POST['radio_station_id'] == '' ? null : $_POST['radio_station_id'];
                         $media_profile_id = $_POST['media_profile_id'] == '' ? null : $_POST['media_profile_id'];
                         $section_editor_id = $_POST['section_editor_id'] == '' ? null : $_POST['section_editor_id'];
                         $time_slot = $_POST['time_slot'] == '' ? null : $_POST['time_slot'];
                         $issue = $_POST['issue'] == '' ? null : $_POST['issue'];
                         $spokesperson = $_POST['spokesperson'] == '' ? null : $_POST['spokesperson'];
                         $link = $_POST['link'] == '' ? null : $_POST['link'];
                         $remarks = $_POST['remarks'] == '' ? null : $_POST['remarks'];
                         $sql = "UPDATE news_details SET `radio_program_id` = ?, `radio_station_id` = ?, `section_editor_id` = ?, `media_profile_id` = ?, `time_slot` = ?, `issue` = ?, `spokesperson` = ?, `link` = ?, `remarks` = ? WHERE `news_details_id` = ? ";
                         $statement = $this->adapter->createStatement($sql, array($radio_program_id, $radio_station_id, $section_editor_id, $media_profile_id, $time_slot, $issue, $spokesperson, $link, $remarks, $news_detail_id));
                         $result = $statement->execute();
                     } else {
                         if ($media_outfit_id == 7) {
                             //update specific tv
                             $this->adapter = $adapter;
                             $program_title = $_POST['program_title'] == '' ? null : $_POST['program_title'];
                             $media_profile_id = $_POST['media_profile_id'] == '' ? null : $_POST['media_profile_id'];
                             $tv_channel_id = $_POST['tv_channel_id'] == '' ? null : $_POST['tv_channel_id'];
                             $time_slot = $_POST['time_slot'] == '' ? null : $_POST['time_slot'];
                             $issue = $_POST['issue'] == '' ? null : $_POST['issue'];
                             $spokesperson = $_POST['spokesperson'] == '' ? null : $_POST['spokesperson'];
                             $link = $_POST['link'] == '' ? null : $_POST['link'];
                             $remarks = $_POST['remarks'] == '' ? null : $_POST['remarks'];
                             $sql = "UPDATE news_details SET `media_profile_id` = ?, `program_title` = ?, `tv_channel_id` = ?, `time_slot` = ?, `issue` = ?, `spokesperson` = ?,`link` = ?, `remarks` = ? WHERE `news_details_id` = ? ";
                             $statement = $this->adapter->createStatement($sql, array($media_profile_id, $program_title, $tv_channel_id, $time_slot, $issue, $spokesperson, $link, $remarks, $news_detail_id));
                             $result = $statement->execute();
                         }
                     }
                 }
             }
         }
     }
     return $result->getGeneratedValue();
 }
 /**
  * Handles a given form for the add and edit action
  * @return array Array for the view, containing the form and maybe id and errors
  */
 private function handleForm(Request &$request, NewsCategoryForm &$form, NewsCategory &$nc, $id = 0)
 {
     $form->setInputFilter($nc->getInputFilter());
     $post = array_merge_recursive($request->getPost()->toArray(), $request->getFiles()->toArray());
     $form->setData($post);
     if ($form->isValid()) {
         $nc->exchangeArray($post);
         $old = $this->getNewsCategoryTable()->getNewsCategoryBy(['id' => $id]);
         if ($this->getNewsCategoryTable()->getNewsCategoryBy(['name' => $nc->getName()]) && ($id === 0 || $nc->getName() !== $old->getName())) {
             $errors['name'] = ['exists' => 'A category with this name already exists'];
             $form->get('name')->setMessages($errors);
             if (!$id) {
                 return ['form' => $form, 'errors' => $errors];
             }
             return ['form' => $form, 'errors' => $errors, 'id' => $id];
         }
         $size = new Size(['min' => 20, 'max' => 20000]);
         $adapter = new Http();
         $adapter->setValidators([$size], $post['path']);
         //Only throw error if a new category is created. New Categories need an image
         if (!$adapter->isValid() && $id === 0) {
             $errors = $adapter->getMessages();
             return ['form' => $form, 'errors' => $errors];
         }
         $dir = getcwd() . '/public/news_cat/';
         //A file was given, so it will be saved on the server
         if ($adapter->isValid()) {
             if (!file_exists($dir)) {
                 mkdir($dir);
             }
             $pic = $post['path'];
             $file = file_get_contents($pic['tmp_name']);
             file_put_contents($dir . $nc->getName() . '.png', $file);
         } else {
             //No new file was given, so update the filename to the new name
             rename($dir . $old->getName() . '.png', $dir . $nc->getName() . '.png');
         }
         $this->getNewsCategoryTable()->saveNewsCategory($nc);
         return $this->redirect()->toRoute('newscategory');
     }
     $errors = $form->getMessages();
     if ($id) {
         return ['form' => $form, 'errors' => $errors, 'id' => $id];
     }
     return ['form' => $form, 'errors' => $errors];
 }