/**
  * Executes sendMessage action
  *
  * @param sfWebRequest $request A request object
  */
 public function executeSendToFriend(sfWebRequest $request)
 {
     $this->forwardIf($request->isSmartphone(), 'message', 'smtList');
     if ($params = $request->getParameter('message')) {
         $sendMemberId = $params['send_member_id'];
         $this->message = Doctrine::getTable('SendMessageData')->find($params['id']);
         $this->forward404Unless($this->isDraftOwner());
     } else {
         if ($request->getParameter('id')) {
             $sendMemberId = $request->getParameter('id');
             $this->message = new SendMessageData();
         } else {
             $this->forward404();
         }
     }
     $this->forward404If($sendMemberId == $this->getUser()->getMemberId());
     $this->form = new SendMessageForm($this->message, array('send_member_id' => $sendMemberId));
     $this->sendMember = Doctrine::getTable('Member')->find($sendMemberId);
     $this->forward404Unless($this->sendMember);
     if ($request->isMethod(sfWebRequest::POST)) {
         if (!$request->getParameter('is_draft')) {
             $relation = Doctrine::getTable('MemberRelationship')->retrieveByFromAndTo($sendMemberId, $this->getUser()->getMemberId());
             if ($relation && $relation->getIsAccessBlock()) {
                 $this->getUser()->setFlash('error', 'Cannot send the message.');
                 $this->redirect('@sendList');
             }
         }
         $params = $request->getParameter('message');
         $this->form->bind($request->getParameter($this->form->getName()), $request->getFiles($this->form->getName()));
         if ($this->form->isValid()) {
             $this->message = $this->form->save();
             if ($this->message->getIsSend()) {
                 opMessagePluginUtil::sendNotification($this->getUser()->getMember(), $this->sendMember, $this->message->getId());
                 $this->getUser()->setFlash('notice', 'The message was sent successfully.');
                 $this->redirect('@sendList');
             } else {
                 $this->getUser()->setFlash('notice', 'The message was saved successfully.');
                 $this->redirect('@draftList');
             }
         }
     }
     return sfView::INPUT;
 }