/** * update existing entry * * @param string $_folderId * @param string $_serverId * @param SimpleXMLElement $_data * @return Tinebase_Record_Abstract */ public function updateEntry($_folderId, $_serverId, SimpleXMLElement $_entry) { Tinebase_Core::getLogger()->info(__METHOD__ . '::' . __LINE__ . " CollectionId: {$_folderId} Id: {$_serverId}"); $xmlData = $_entry->children('uri:Email'); if (isset($xmlData->Read)) { if (Tinebase_Core::isLogLevel(Zend_Log::DEBUG)) { Tinebase_Core::getLogger()->debug(__METHOD__ . '::' . __LINE__ . " CollectionId: {$_folderId} Id: {$_serverId} set read flag: {$xmlData->Read}"); } if ((int) $xmlData->Read === 1) { Felamimail_Controller_Message_Flags::getInstance()->addFlags($_serverId, Zend_Mail_Storage::FLAG_SEEN); } else { Felamimail_Controller_Message_Flags::getInstance()->clearFlags($_serverId, Zend_Mail_Storage::FLAG_SEEN); } $message = $this->_contentController->get($_serverId); $message->timestamp = $this->_syncTimeStamp; $this->_contentController->update($message); } return; }
/** * (non-PHPdoc) * @see ActiveSync_Frontend_Abstract::updateEntry() */ public function updateEntry($folderId, $serverId, Syncroton_Model_IEntry $entry) { if (Tinebase_Core::isLogLevel(Zend_Log::INFO)) { Tinebase_Core::getLogger()->info(__METHOD__ . '::' . __LINE__ . " CollectionId: {$folderId} Id: {$serverId}"); } try { $message = $this->_contentController->get($serverId); } catch (Tinebase_Exception_NotFound $tenf) { if (Tinebase_Core::isLogLevel(Zend_Log::DEBUG)) { Tinebase_Core::getLogger()->debug(__METHOD__ . '::' . __LINE__ . ' ' . $tenf); } throw new Syncroton_Exception_NotFound($tenf->getMessage()); } if (isset($entry->read)) { if (Tinebase_Core::isLogLevel(Zend_Log::DEBUG)) { Tinebase_Core::getLogger()->debug(__METHOD__ . '::' . __LINE__ . " CollectionId: {$folderId} Id: {$serverId} set read flag: {$entry->read}"); } if ($entry->read == 1) { Felamimail_Controller_Message_Flags::getInstance()->addFlags($serverId, Zend_Mail_Storage::FLAG_SEEN); } else { Felamimail_Controller_Message_Flags::getInstance()->clearFlags($serverId, Zend_Mail_Storage::FLAG_SEEN); } } if (isset($entry->flag)) { if (Tinebase_Core::isLogLevel(Zend_Log::DEBUG)) { Tinebase_Core::getLogger()->debug(__METHOD__ . '::' . __LINE__ . " CollectionId: {$folderId} Id: {$serverId} set flagged flag: {$entry->flag->status}"); } if ($entry->flag->status == Syncroton_Model_EmailFlag::STATUS_ACTIVE) { Felamimail_Controller_Message_Flags::getInstance()->addFlags($serverId, Zend_Mail_Storage::FLAG_FLAGGED); } else { Felamimail_Controller_Message_Flags::getInstance()->clearFlags($serverId, Zend_Mail_Storage::FLAG_FLAGGED); } } $message->timestamp = $this->_syncTimeStamp; $this->_contentController->update($message); return; }