/** * 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; }
/** * 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; }