/**
  * Validates email address
  *
  * @return boolean
  */
 protected function _validateEmail()
 {
     $validator = new Zend_Validate_EmailAddress();
     $msg = Sanmax_MessageStack::getInstance('SxCms_User');
     if (!$validator->isValid($this->_user->getEmail())) {
         $msg->addMessage('email', $validator->getMessages());
     }
     $exclude = array('field' => 'user_id', 'value' => (int) $this->_user->getId());
     $validator = new Zend_Validate_Db_NoRecordExists('User', 'email', $exclude);
     if (!$validator->isValid($this->_user->getEmail())) {
         $msg->addMessage('email', $validator->getMessages(), 'common');
     }
     return false == $msg->getMessages('email');
 }
 public function redirectsAction()
 {
     $redirectForm = new Application_Form_Redirect();
     $pageMapper = Application_Model_Mappers_PageMapper::getInstance();
     $redirectMapper = Application_Model_Mappers_RedirectMapper::getInstance();
     $redirectForm->setToasterPages($pageMapper->fetchIdUrlPairs());
     $redirectForm->setDefault('fromUrl', 'http://');
     if (!$this->getRequest()->isPost()) {
         $this->view->redirects = $redirectMapper->fetchRedirectMap();
     } else {
         if ($redirectForm->isValid($this->getRequest()->getParams())) {
             $data = $redirectForm->getValues();
             $redirect = new Application_Model_Models_Redirect();
             $fromUrlPath = Tools_System_Tools::getUrlPath($data['fromUrl']);
             $inDbValidator = new Zend_Validate_Db_NoRecordExists(array('table' => 'redirect', 'field' => 'from_url'));
             if (!$inDbValidator->isValid($fromUrlPath)) {
                 $this->_helper->response->fail(implode('<br />', $inDbValidator->getMessages()));
                 exit;
             }
             $redirect->setFromUrl(Tools_System_Tools::getUrlPath($data['fromUrl']));
             $redirect->setDomainFrom(Tools_System_Tools::getUrlScheme($data['fromUrl']) . '://' . Tools_System_Tools::getUrlHost($data['fromUrl']) . '/');
             if (intval($data['toUrl'])) {
                 $page = $pageMapper->find($data['toUrl']);
                 $redirect->setDomainTo($this->_helper->website->getUrl());
                 $redirect->setToUrl($page->getUrl());
                 $redirect->setPageId($page->getId());
             } else {
                 $urlValidator = new Validators_UrlRegex();
                 if (!$urlValidator->isValid($data['toUrl'])) {
                     $this->_helper->response->fail('External url <br />' . implode('<br />', $urlValidator->getMessages()));
                     exit;
                 }
                 $redirect->setDomainTo(Tools_System_Tools::getUrlScheme($data['toUrl']) . '://' . Tools_System_Tools::getUrlHost($data['toUrl']) . '/');
                 $redirect->setToUrl(Tools_System_Tools::getUrlPath($data['toUrl']));
                 $redirect->setPageId(null);
             }
             $redirectMapper->save($redirect);
             $this->_helper->cache->clean('toaster_301redirects', '301redirects');
             $this->_helper->response->success('Redirect saved');
         } else {
             $this->_helper->response->fail(Tools_Content_Tools::proccessFormMessagesIntoHtml($redirectForm->getMessages(), get_class($redirectForm)));
             exit;
         }
     }
     $this->view->helpSection = '301s';
     $this->view->form = $redirectForm;
 }
 public function registerAction()
 {
     if (Zend_Auth::getInstance()->hasIdentity()) {
         $this->_helper->redirector('index', 'index', 'default');
     }
     $form = new Application_Form_Register();
     $this->view->form = $form;
     $validator = new Zend_Validate_Db_NoRecordExists(array('table' => 'users', 'field' => 'email'));
     if ($this->getRequest()->isPost()) {
         $formData = $this->getRequest()->getPost();
         if ($form->isValid($formData)) {
             $email = $this->getRequest()->getPost('email');
             if ($validator->isValid($email)) {
                 $username = $this->getRequest()->getPost('login');
                 $password = $this->getRequest()->getPost('pass');
                 $date = time();
                 $user = new Application_Model_DbTable_User();
                 $result = $user->addUser($username, md5($password), $email, $date);
                 $message = "Вы успешно зарегистрировались на сайте Serializm.com.\r\nЛогин: " . $username . "\r\nПароль: " . $password . "\r\nС уважением, Администрация Serializm.com";
                 $transport = new Zend_Mail_Transport_Smtp();
                 Zend_Mail::setDefaultTransport($transport);
                 $mail = new Zend_Mail('utf-8');
                 $mail->setReplyTo('*****@*****.**', 'Администратор');
                 $mail->addHeader('MIME-Version', '1.0');
                 $mail->addHeader('Content-Transfer-Encoding', '8bit');
                 $mail->addHeader('X-Mailer:', 'PHP/' . phpversion());
                 $mail->setBodyText($message);
                 $mail->setFrom('*****@*****.**', 'Администратор');
                 $mail->addTo($email);
                 $mail->setSubject('Успешная регистрация на serializm.com');
                 $mail->send();
                 if ($result) {
                     $this->_helper->redirector('index', 'index', 'default');
                 }
             } else {
                 $this->view->errMessage = $validator->getMessages();
             }
         }
     }
 }
 public function newAction()
 {
     $request = $this->getRequest();
     if ($request->isPost()) {
         $validator = new Zend_Validate_Db_NoRecordExists(array('table' => 'pipeline_property', 'field' => 'sistem_name'));
         if ($validator->isValid(strtolower($request->getParam('newPropertySystemName')))) {
             $newProperty = $this->_createNewProperty();
             if (!is_null($newProperty) && $request->getParam('pipelineId') != 0) {
                 $newPropertyValue = $this->_createNewPropertyValue($newProperty->getId());
                 echo $this->_helper->json($this->_createDataHtml($newProperty, $newPropertyValue));
             }
         } else {
             // username is invalid; print the reason
             $messages = $validator->getMessages();
             foreach ($messages as $message) {
                 $message = '<tr><td colspan="3"><div class="alert alert-danger" role="alert"><button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>' . $message . '</div></td></tr>';
                 echo $this->_helper->json($message);
             }
         }
     }
 }