コード例 #1
0
 /**
  * Action - setstatus
  * set post ststus
  * 
  * Access to the action is possible in the following paths:
  * - /blogmanager/setstatus
  *
  * @return void
  */
 public function setstatusAction()
 {
     $username = $this->_identity->username;
     //--------------------------
     // Получим обьект сообщения
     $request = $this->getRequest();
     $post_id = (int) $request->getPost('id');
     $post = new Default_Model_DbTable_BlogPost($this->db);
     if (!$post->loadForUser($this->_identity->user_id, $post_id)) {
         $this->_redirect('/blogmanager');
     }
     $title = $post->profile->title;
     // URL to redirect back to
     $url = '/blogmanager/preview' . '?id=' . $post->getId();
     if ($request->getPost('edit')) {
         $this->_redirect('/blogmanager/edit' . '?id=' . $post->getId());
     } else {
         if ($request->getPost('publish')) {
             $post->sendLive();
             $post->save();
             $this->_flashMessenger->addMessage($this->Translate('Сообщение успешно опубликовано в блоге'));
             $message_log = "User-\"{$username}\" has successfully published a blog post-\"{$title}\"";
         } else {
             if ($request->getPost('unpublish')) {
                 $post->sendBackToDraft();
                 $post->save();
                 $this->_flashMessenger->addMessage($this->Translate('Сообщение переведено в состояние не опубликовано'));
                 $message_log = "User-\"{$username}\" set message-\"{$title}\" to the state is not published";
             } else {
                 if ($request->getPost('delete')) {
                     $post->delete();
                     // Preview page no longer exists for this page so go back to index
                     $url = '/blogmanager';
                     $this->_flashMessenger->addMessage($this->Translate('Сообщение удалено из блога'));
                     $message_log = "User-\"{$username}\" deletes a message-\"{$title}\" from the blog";
                 }
             }
         }
     }
     // Запомним в логе сообщений
     $this->_logMsg->post_set_status($message_log);
     $this->_redirect($url);
 }