コード例 #1
0
 public function addreviewAction()
 {
     $id = $this->params()->fromRoute('id');
     $request = $this->getRequest();
     $session = new Container('frontend');
     if ($request) {
         $request->getPost('service_id') != '' ? $s_id = $request->getPost('service_id') : ($s_id = '');
     }
     $redirectUrl = "/practitioner/view/" . $id . "/?tab=review&review=1&s_id=" . $s_id;
     $api_url = $this->getServiceLocator()->get('config')['api_url']['value'];
     $model = new Practitioners();
     if (!empty($id) && $s_id != '') {
         $services_list = $model->getSpserviceslist($api_url, $id);
         $form = new ReviewForm($services_list);
         $review_model = new Review();
         $form->setInputFilter($review_model->getInputFilter());
         $form->setData($request->getPost());
         if ($form->isValid()) {
             $api = new Api();
             $data = array();
             $data['users_id'] = $id;
             $request->getPost('comments') != '' ? $data['comments'] = $request->getPost('comments') : ($data['comments'] = '');
             $data['created_date'] = date('Y-m-d h:i:s', time());
             $request->getPost('created_by') != '' ? $data['created_by'] = $request->getPost('created_by') : ($data['created_by'] = '');
             $data['status_id'] = '9';
             $request->getPost('service_id') != '' ? $data['service_id'] = $request->getPost('service_id') : ($data['service_id'] = '');
             $request->getPost('comment') != '' ? $data['comments'] = $request->getPost('comment') : ($data['comments'] = '');
             $data['created_by'] = $session->userid;
             $url = $api_url . "/api/feedback/";
             $res = $api->curl($url, $data, "POST");
             if ($res->getStatusCode() == 201) {
                 $this->flashMessenger()->addSuccessMessage('Your feedback has been submitted ... It will be displayed on frontend as soon as admin will aprove it');
                 return $this->redirect()->toUrl($redirectUrl);
             } else {
                 if ($res->getStatusCode() == 400) {
                     $result = json_decode($res->getBody(), true);
                     if (isset($result['__all__'])) {
                         $this->flashMessenger()->addErrorMessage('You have already submitted feedback for this practitioner for selected service');
                         return $this->redirect()->toUrl($redirectUrl);
                     }
                 }
                 $this->flashMessenger()->addErrorMessage('Error !! Your feedback has not been submitted');
                 return $this->redirect()->toUrl($redirectUrl);
             }
         } else {
             $messages = $form->getMessages();
             if (isset($messages['captcha']['badCaptcha'])) {
                 $this->flashMessenger()->addErrorMessage($messages['captcha']['badCaptcha']);
             } else {
                 $this->flashMessenger()->addErrorMessage($form->getMessages());
             }
             return $this->redirect()->toUrl($redirectUrl);
         }
     } else {
         return $this->redirect()->toUrl($redirectUrl);
     }
 }