distribute() публичный Метод

Send new posts to a distribution email address for a wider audience
public distribute ( integer $message_id )
$message_id integer Identifier of message to be distributed
Пример #1
0
 /**
  * Approves one or more ids.
  *
  * @param string $action  Whether to 'approve' or 'delete' messages.
  * @param array $ids      Array of message IDs.
  *
  * @throws Agora_Exception
  */
 public function moderate($action, $ids)
 {
     switch ($action) {
         case 'approve':
             /* Get message thread to expire cache */
             $sql = 'SELECT message_thread FROM ' . $this->_threads_table . ' WHERE message_id IN (' . implode(',', $ids) . ')';
             try {
                 $threads = $this->_db->selectValues($sql);
             } catch (Horde_Db_Exception $e) {
                 throw new Agora_Exception($e->getMessage());
             }
             $this->_updateCacheState($threads);
             $sql = 'UPDATE ' . $this->_threads_table . ' SET approved = 1' . ' WHERE message_id IN (' . implode(',', $ids) . ')';
             try {
                 $this->_db->execute($sql);
             } catch (Horde_Db_Exception $e) {
                 throw new Agora_Exception($e->getMessage());
             }
             /* Save original forum_id for later resetting */
             $orig_forum_id = $this->_forum_id;
             foreach ($ids as $message_id) {
                 /* Update cached message and thread counts */
                 $message = $this->getMessage($message_id);
                 $this->_forum_id = $message['forum_id'];
                 /* Update cached last poster */
                 $this->_lastInForum($this->_forum_id);
                 $this->_forumSequence($this->_forum_id, 'message', '+');
                 if (!empty($message['parents'])) {
                     $this->_sequence($message['message_thread'], '+');
                     $this->_lastInThread($message['message_thread'], $message_id, $message['message_author'], $_SERVER['REQUEST_TIME']);
                 } else {
                     $this->_forumSequence($this->_forum_id, 'thread', '+');
                 }
                 /* Send the new post to the distribution address */
                 Agora::distribute($message_id);
             }
             /* Restore original forum ID */
             $this->_forum_id = $orig_forum_id;
             break;
         case 'delete':
             foreach ($ids as $id) {
                 $this->deleteMessage($id);
             }
             break;
     }
 }