Пример #1
0
 public function contactAction()
 {
     $translate = Zend_Registry::get('Zend_Translate');
     $this->view->form = $form = new Core_Form_Contact();
     if (!$this->getRequest()->isPost()) {
         return;
     }
     if (!$form->isValid($this->getRequest()->getPost())) {
         return;
     }
     // Success! Process
     // Mail gets logged into database, so perform try/catch in this Controller
     $db = Engine_Db_Table::getDefaultAdapter();
     $db->beginTransaction();
     try {
         // the contact form is emailed to the first SuperAdmin by default
         $users_table = Engine_Api::_()->getDbtable('users', 'user');
         $users_select = $users_table->select()->where('level_id = ?', 1)->where('enabled >= ?', 1);
         $super_admin = $users_table->fetchRow($users_select);
         $viewer = Engine_Api::_()->user()->getViewer();
         $values = $form->getValues();
         // Check for error report
         $error_report = '';
         $name = $this->_getParam('name');
         $loc = $this->_getParam('loc');
         $time = $this->_getParam('time');
         if ($name && $loc && $time) {
             $error_report .= "\r\n";
             $error_report .= "\r\n";
             $error_report .= "-------------------------------------";
             $error_report .= "\r\n";
             $error_report .= $this->view->translate('The following information about an error was included with this message:');
             $error_report .= "\r\n";
             $error_report .= $this->view->translate('Exception: ') . base64_decode(urldecode($name));
             $error_report .= "\r\n";
             $error_report .= $this->view->translate('Location: ') . base64_decode(urldecode($loc));
             $error_report .= "\r\n";
             $error_report .= $this->view->translate('Time: ') . date('c', base64_decode(urldecode($time)));
             $error_report .= "\r\n";
         }
         // Make params
         $mail_settings = array('host' => $_SERVER['HTTP_HOST'], 'email' => $super_admin->email, 'date' => time(), 'recipient_title' => $super_admin->getTitle(), 'recipient_link' => $super_admin->getHref(), 'recipient_photo' => $super_admin->getPhotoUrl('thumb.icon'), 'sender_title' => $values['name'], 'sender_email' => $values['email'], 'message' => $values['body'], 'error_report' => $error_report);
         if ($viewer && $viewer->getIdentity()) {
             $mail_settings['sender_title'] .= ' (' . $viewer->getTitle() . ')';
             $mail_settings['sender_email'] .= ' (' . $viewer->email . ')';
             $mail_settings['sender_link'] = $viewer->getHref();
         }
         // send email
         Engine_Api::_()->getApi('mail', 'core')->sendSystem($super_admin->email, 'core_contact', $mail_settings);
         // if the above did not throw an exception, it succeeded
         $db->commit();
         $this->view->status = true;
         $this->view->message = $translate->_('Thank you for contacting us!');
     } catch (Zend_Mail_Transport_Exception $e) {
         $db->rollBack();
         throw $e;
     }
 }
 public function indexAction()
 {
     $this->view->form = $form = new Core_Form_Contact();
     $form->setAction(Zend_Controller_Front::getInstance()->getRouter()->assemble(array('module' => 'core', 'controller' => 'help', 'action' => 'contact'), 'default', true));
 }