public function manageformAction() { $formForm = new Application_Form_Form(); $formPageConversionMapper = Application_Model_Mappers_FormPageConversionMapper::getInstance(); $pageMapper = Application_Model_Mappers_PageMapper::getInstance(); if ($this->getRequest()->isPost()) { if ($formForm->isValid($this->getRequest()->getParams())) { $formPageConversionModel = new Application_Model_Models_FormPageConversion(); $formData = $this->getRequest()->getParams(); $form = new Application_Model_Models_Form($this->getRequest()->getParams()); $contactEmail = $form->getContactEmail(); $validEmail = $this->validateEmail($contactEmail); if (isset($validEmail['error'])) { $this->_helper->response->fail(Tools_Content_Tools::proccessFormMessagesIntoHtml(array('contactEmail' => $validEmail['error']), get_class($formForm))); } if (isset($formData['thankyouTemplate']) && $formData['thankyouTemplate'] != 'select') { $trackingPageUrl = $this->_createTrackingPage($formData['name'], $formData['thankyouTemplate']); } $this->_addConversionCode(); $formPageConversionModel->setFormName($formData['name']); $formPageConversionModel->setPageId($formData['pageId']); $formPageConversionModel->setConversionCode($formData['trackingCode']); $formPageConversionMapper->save($formPageConversionModel); Application_Model_Mappers_FormMapper::getInstance()->save($form); $this->_helper->cache->clean('', '', array(Widgets_Form_Form::WFORM_CACHE_TAG)); $this->_helper->response->success($this->_helper->language->translate('Form saved')); } else { $this->_helper->response->fail(Tools_Content_Tools::proccessFormMessagesIntoHtml($formForm->getMessages(), get_class($formForm))); } } $formName = filter_var($this->getRequest()->getParam('name'), FILTER_SANITIZE_STRING); $pageId = $this->getRequest()->getParam('pageId'); $trackingPageName = 'form-' . $formName . '-thank-you'; $trackingPageUrl = $this->_helper->page->filterUrl($trackingPageName); $trackingPageExist = $pageMapper->findByUrl($trackingPageUrl); if (!empty($trackingPageExist)) { $trackingPageResultUrl = $trackingPageUrl; } $form = Application_Model_Mappers_FormMapper::getInstance()->findByName($formName); $mailTemplates = Tools_Mail_Tools::getMailTemplatesHash(); $regularPageTemplates = Application_Model_Mappers_TemplateMapper::getInstance()->findByType(Application_Model_Models_Template::TYPE_REGULAR); $conversionCode = $formPageConversionMapper->getConversionCode($formName, $pageId); if (!empty($conversionCode)) { $formForm->getElement('trackingCode')->setValue($conversionCode[0]->getConversionCode()); } $formForm->getElement('name')->setValue($formName); $formForm->getElement('replyMailTemplate')->setMultioptions(array_merge(array(0 => 'select template'), $mailTemplates)); if ($form !== null) { $formForm->populate($form->toArray()); } $this->view->trackingPageUrl = $trackingPageResultUrl; $this->view->regularTemplates = $regularPageTemplates; $this->view->pageId = $pageId; $this->view->formForm = $formForm; $this->view->helpSection = 'editform'; }
protected function _sendTfeedbackformMailContact(Application_Model_Models_Form $form) { $emails = $this->_prepareEmail($form->getContactEmail()); $formDetails = $this->_cleanFormData($this->_options['data']); $this->_mailer->setMailToLabel($emails[0])->setMailTo($emails[0]); if (count($emails) > 1) { array_shift($emails); $this->_mailer->setMailBcc($emails); } $mailBody = '{form:details}'; $formDetailsHtml = ''; $formUrl = ''; if (isset($formDetails['formUrl'])) { $formUrl = $formDetails['formUrl']; unset($formDetails['formUrl']); } foreach ($formDetails as $name => $value) { if (!$value) { continue; } $formDetailsHtml .= $name . ': ' . (is_array($value) ? implode(', ', $value) : $value) . '<br />'; } $this->_entityParser->setDictionary(array('form:details' => $formDetailsHtml)); $mailBody = $this->_entityParser->parse($mailBody); if ($formUrl) { $mailBody .= '<div style="background:#eee;padding:10px;">' . $this->_translator->translate('This form was submitted from') . ': <a href="' . $formUrl . '">' . $formUrl . '</a></div>'; } if (isset($this->_options['attachment']) && is_array($this->_options['attachment']) && !empty($this->_options['attachment'])) { $this->_mailer->addAttachment($this->_options['attachment']); } $this->_mailer->setBody($mailBody); $this->_mailer->setSubject($this->_translator->translate('New') . ' ' . $form->getName() . ' ' . $this->_translator->translate('form submitted'))->setMailFromLabel($this->_translator->translate('Notifications @ ') . $this->_websiteHelper->getUrl())->setMailFrom($this->_configHelper->getConfig('adminEmail')); return $this->_mailer->send(); }