예제 #1
0
 /**
  * Returns the message for the specified items id.
  */
 public function getEmailMessage($groupwareEmailItemsId, $userId)
 {
     $groupwareEmailItemsId = (int) $groupwareEmailItemsId;
     if ($groupwareEmailItemsId <= 0) {
         return 0;
     }
     $adapter = Conjoon_Db_Table::getDefaultAdapter();
     $select = $adapter->select()->from(array('items' => Conjoon_Db_Table::getTablePrefix() . 'groupware_email_items'), array('id', 'cc', 'bcc', 'reply_to', 'to', 'subject', 'from', 'date', 'content_text_plain AS body', '(1) AS is_plain_text', 'groupware_email_folders_id'))->join(array('folders_users' => Conjoon_Db_Table::getTablePrefix() . 'groupware_email_folders_users'), '`folders_users`.`groupware_email_folders_id` = `items`.`groupware_email_folders_id` ' . ' AND ' . $adapter->quoteInto('`folders_users`.`users_id`=?', $userId, 'INTEGER') . ' AND ' . $adapter->quoteInto('`folders_users`.`relationship`=?', 'owner', 'STRING'), array())->joinLeft(array('flag' => Conjoon_Db_Table::getTablePrefix() . 'groupware_email_items_flags'), '`flag`.`groupware_email_items_id` = `items`.`id`' . ' AND ' . $adapter->quoteInto('`flag`.`user_id`=?', $userId, 'INTEGER'), array('is_spam'))->where('items.id=?', $groupwareEmailItemsId);
     $row = $adapter->fetchRow($select);
     if (!$row) {
         return null;
     }
     /**
      * @see Conjoon_Modules_Groupware_Email_Folder_Model_Folder
      */
     require_once 'Conjoon/Modules/Groupware/Email/Folder/Model/Folder.php';
     $folderModel = new Conjoon_Modules_Groupware_Email_Folder_Model_Folder();
     // unique id. Underscore needed since this wil automatically get
     // camelized later on
     $row['u_id'] = $row['id'];
     $row['path'] = $folderModel->getPathForFolderId($row['groupware_email_folders_id']);
     return $row;
 }
예제 #2
0
 /**
  * Applies the folder path to the email items
  *
  * @param array $rows
  */
 public function applyPathToEmailItems(array $items)
 {
     $cachedFolderPaths =& $this->cachedFolderPaths;
     if (!$this->folderModel) {
         $this->folderModel = new Conjoon_Modules_Groupware_Email_Folder_Model_Folder();
     }
     for ($i = 0, $len = count($items); $i < $len; $i++) {
         $id = $items[$i]['groupware_email_folders_id'];
         if (!isset($cachedFolderPaths[$id])) {
             $path = $this->folderModel->getPathForFolderId($id);
             $cachedFolderPaths[$id] = $path;
         }
         $items[$i]['path'] = $cachedFolderPaths[$id];
     }
     return $items;
 }