public function detailsAction() { $variables = array(); $query = $this->getServiceLocator()->get('wrapperQuery'); $pressModel = new \CMS\Model\Press($query); $newsId = $this->params('id'); $newsDetails = $pressModel->getMoreDetails($newsId); // if type is page .. so it will return null if (is_null($newsDetails)) { $url = $this->getEvent()->getRouter()->assemble(array('action' => 'resourceNotFound'), array('name' => 'resource_not_found')); $this->redirect()->toUrl($url); } $form = new \DefaultModule\Form\ContactUsForm(); $request = $this->getRequest(); //checking if we got a new post request if ($request->isPost()) { $data = $request->getPost()->toArray(); $inputFilter = $form->getInputFilter(); // adding custom value for ignored fields $url = ''; $data["subject"] = \Notifications\Service\MailSubjects::SEND_TO_FRIEND; $data["message"] = 'Check This out ' . $url; $data["name"] = ''; $form->setData($data); //ignored Fields $input = $inputFilter->get('name'); $input->setRequired(false); $input = $inputFilter->get('subject'); $input->setRequired(false); $input = $inputFilter->get('message'); $input->setRequired(false); // checking if the form is valid if ($form->isValid()) { $sTF = $this->getServiceLocator()->get('CMS\\Service\\STF'); $submissionResult = $sTF->submitMessage($data, $form); $variables['messages'] = $submissionResult['messages']; $variables['status'] = $submissionResult['status']; } } $variables['form'] = $this->getFormView($form); $variables['details'] = $newsDetails[0]; return new ViewModel($variables); }
/** * Submit contact us message * * @access public * @param array $data * @param DefaultModule\Form\ContactUsForm $form * @return boolean true if message is sent successfully * @throws \Exception To email is not set */ public function submitMessage($data, $form) { $submissionResult = array(); $forceFlush = APPLICATION_ENV == "production" ? false : true; $cachedSystemData = $this->systemCacheHandler->getCachedSystemData($forceFlush); $settings = $cachedSystemData[CacheHandler::SETTINGS_KEY]; $toArray = array(); if (array_key_exists(Settings::OPERATIONS_EMAIL, $settings) && array_key_exists(Settings::ADMIN_EMAIL, $settings)) { $toArray[] = $settings[Settings::OPERATIONS_EMAIL]; $toArray[] = $settings[Settings::ADMIN_EMAIL]; } if (count($toArray) == 0) { throw new \Exception("To email is not set"); } $mailArray = array('to' => $toArray, 'from' => $data['email'], 'templateName' => MailTempates::CONTACT_US_TEMPLATE, 'templateParameters' => array("data" => $data), 'subject' => MailSubjects::CONTACT_US_SUBJECT); $this->notification->notify($mailArray); $submissionResult[]['message'] = "Your message has been submitted successfully."; $submissionResult['messages'] = $submissionResult; $submissionResult['status'] = true; // clear form $form->setData(array('name' => '', 'subject' => '', 'message' => '', 'email' => '')); return $submissionResult; }