Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members | Related Pages

base-inbox.inc.php

Go to the documentation of this file.
00001 <?
00009 class BaseInbox extends MyManager
00010 {
00016     public function __construct($class = 'Message')
00017     {
00018         parent::__construct($class);
00019     }
00020 
00024     public function initSearchPage()
00025     {
00026         $this->assertLogin();
00027         
00028         parent::initSearchPage();
00029 
00030         $this->pageTitle = 'Inbox';
00031     }
00032 
00038     public function getSearchParamXml()
00039     { 
00040         $xml = parent::getSearchParamXml();
00041 
00042         $xml .= <<<XML
00043             <param name="status">
00044                 <option value="read"/>
00045                 <option value="unread"/>
00046             </param>
00047 XML;
00048         return $xml;
00049     }
00050 
00056     protected function getSearchSelect($params)
00057     { 
00058         $sql = parent::getSearchSelect($params);
00059         
00060         $sql .= ", i.read ";
00061 
00062         return $sql;
00063     }
00064 
00070     protected function getSearchFrom($params)
00071     {
00072         $from = "FROM {$this->object->inboxTable} i\n";
00073         $from .= "INNER JOIN {$this->object->tableName} o\n";
00074         $from .= "ON o.id = i.message_id\n";
00075 
00076         return $from;
00077     }
00078 
00084     protected function getSearchWhere($params)
00085     {
00086         global $me;
00087         
00088         $where = parent::getSearchWhere($params);
00089         
00090         $where .= " AND i.user_id = '$me->id'\n";
00091 
00092         if ($params['status'] == 'unread')
00093             $where .= " AND i.read = 0 ";
00094         
00095         if ($params['status'] == 'read')
00096             $where .= " AND i.read = 1 ";
00097 
00098         return $where;
00099     }
00100 
00105     protected function getSortFieldsArray()
00106     {
00107         $data = parent::getSortFieldsArray();
00108 
00109         $data['read'] = 'Sort by read status';
00110 
00111         return $data;
00112     }
00113 
00119     protected function loadObjects($data)
00120     {
00121         $objs = parent::loadObjects($data);
00122 
00123         foreach ($data AS $row)
00124             $objs[$row['id']]->read = $row['read'];
00125 
00126         return $objs;
00127     }
00128 
00136     public function drawRows($rs)
00137     {
00138         if (count($rs))
00139         {
00140             echo "<form id=\"deleteAll\" method=\"post\" action=\"" . $this->getUrl(array('page' => 'delete')) . "\">\n";
00141             
00142             echo "<table class=\"InOutBox\">";
00143             $this->object->drawHeaderRow('inbox');
00144             foreach ($rs AS $ar)
00145             {
00146                 $on = !$on;
00147                 $ar->drawRow('inbox', $on);
00148             }
00149             echo "</table>";
00150 
00151             echo "<input type=\"submit\" name=\"submit\" value=\"Delete Selected\"/>\n";
00152             echo "</form>\n";
00153         }
00154     }
00155 
00161     public function getPagesXml()
00162     {
00163         $xml = parent::getPagesXml();
00164 
00165         $xml .= "<page name=\"delete\" description=\"delete inbox messages.\"/>\n";
00166 
00167         return $xml;
00168     }
00169 
00173     public function initDeletePage()
00174     {
00175         global $me;
00176         
00177         $this->pageTitle = 'Delete Inbox Messages';
00178 
00179         $this->assertLogin();
00180         
00181         if (!count($_POST['message']))
00182             throw new PageError('You must select at least 1 message to delete.');
00183         else
00184         {
00185             foreach ($_POST['message'] AS $messageId)
00186             {
00187                 dbExecute("
00188                     DELETE FROM {$this->object->inboxTable}
00189                     WHERE user_id = '$me->id'
00190                         AND message_id = '$messageId'
00191                 ");
00192             }
00193 
00194             Util::redirect($this->getUrl(".main"));
00195         }
00196     }
00197 
00201     public function drawDeletePage()
00202     {
00203         echo 'Messages deleted.';
00204     }
00205 }
00206 ?>

Generated on Fri Oct 27 12:26:40 2006 for BaseJumper by doxygen 1.3.9.1