예제 #1
0
 /**
  * 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;
 }