Ejemplo n.º 1
0
 /**
  * Create a new conversation
  */
 public function createAction()
 {
     $request = $this->getRequest();
     $id_user_to = $request->getParam('id_user_to');
     $lang = $this->lang;
     // first we check if user is logged, if not redir to login
     $auth = Zend_Auth::getInstance();
     if (!$auth->hasIdentity()) {
         //keep this url in zend session to redir after login
         $aNamespace = new Zend_Session_Namespace('Nolotiro');
         $aNamespace->redir = $lang . '/message/create/id_user_to/' . $id_user_to . '/subject/' . $request->getParam('subject');
         $this->_redirect($lang . '/auth/login');
     }
     // check sender and recipient are not the same
     if ($auth->getIdentity()->id == $id_user_to) {
         $this->_helper->_flashMessenger->addMessage($this->view->translate('You are not allowed to do that'));
         $this->_redirect('/' . $lang . '/woeid/' . $this->location . '/give');
     }
     $m_user = new Model_User();
     $object_user = $m_user->fetchUser($id_user_to);
     $this->view->user_to = $object_user->username;
     $f_message_create = new Form_MessageCreate();
     if ($this->getRequest()->isPost()) {
         if ($f_message_create->isValid($request->getPost())) {
             // collect the data from the user
             $f = new Zend_Filter_StripTags();
             $data['subject'] = $f->filter($this->_request->getPost('subject'));
             $data['body'] = $f->filter($this->_request->getPost('body'));
             if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
                 $data['ip'] = $_SERVER['HTTP_X_FORWARDED_FOR'];
             } elseif (isset($_SERVER['REMOTE_ADDR'])) {
                 $data['ip'] = $_SERVER['REMOTE_ADDR'];
             }
             //get this ad user owner
             $data['user_from'] = $auth->getIdentity()->id;
             $data['user_to'] = $id_user_to;
             //get the username of the sender
             $m_user = new Model_User();
             $username_from = $m_user->fetchUser($data['user_from'])->toArray();
             // Create a new thread
             $m_message = new Model_Message();
             $id = $m_message->createThread($data);
             $mail = new Zend_Mail('utf-8');
             $hostname = 'http://' . $this->getRequest()->getHttpHost();
             $data['body'] = $data['subject'] . '<br/>' . $data['body'] . '<br/>';
             $data['body'] .= $this->view->translate('Go to this url to reply this message:') . '<br/>' . '<a href="' . $hostname . '/' . $this->lang . '/message/received"> ' . $hostname . '/' . $this->lang . '/message/received</a>';
             $data['body'] .= '<br>---------<br/>';
             $data['body'] .= $this->view->translate('This is an automated notification. Please, don\'t reply  at this email address.');
             $mail->setBodyHtml($data['body']);
             $mail->setFrom('*****@*****.**', 'nolotiro.org');
             $mail->addTo($object_user->email);
             $mail->setSubject('[nolotiro.org] - ' . $this->view->translate('You have a new message from user') . ' ' . $username_from['username']);
             $mail->send();
             $this->_helper->_flashMessenger->addMessage($this->view->translate('Message sent successfully!'));
             $this->_redirect('/' . $this->lang . '/message/list');
         }
     } else {
         $data['subject'] = $this->_getParam('subject');
         $f_message_create->populate($data);
     }
     // assign the form to the view
     $this->view->form = $f_message_create;
 }