コード例 #1
0
 function postValidate()
 {
     global $default;
     $oDocument =& $this->aInfo["document"];
     // fire subscription alerts for the checked out document
     // fire subscription alerts for the checked in document
     $oSubscriptionEvent = new SubscriptionEvent();
     $oFolder = Folder::get($oDocument->getFolderID());
     $oSubscriptionEvent->ModifyDocument($oDocument, $oFolder);
 }
コード例 #2
0
 function rename($oDocument, $sNewFilename, $oUser)
 {
     $oStorage =& KTStorageManagerUtil::getSingleton();
     $oKTConfig = KTConfig::getSingleton();
     $updateVersion = $oKTConfig->get('tweaks/incrementVersionOnRename', true);
     $iPreviousMetadataVersion = $oDocument->getMetadataVersionId();
     $oOldContentVersion = $oDocument->_oDocumentContentVersion;
     if ($updateVersion) {
         $bSuccess = $oDocument->startNewContentVersion($oUser);
         if (PEAR::isError($bSuccess)) {
             return $bSuccess;
         }
         KTDocumentUtil::copyMetadata($oDocument, $iPreviousMetadataVersion);
     }
     $res = $oStorage->renameDocument($oDocument, $oOldContentVersion, $sNewFilename);
     if (!$res) {
         return PEAR::raiseError(_kt('An error occurred while storing the new file'));
     }
     $oDocument->setLastModifiedDate(getCurrentDateTime());
     $oDocument->setModifiedUserId($oUser->getId());
     if ($updateVersion) {
         // Update version number
         $oDocument->setMinorVersionNumber($oDocument->getMinorVersionNumber() + 1);
     }
     $oDocument->_oDocumentContentVersion->setFilename($sNewFilename);
     $sType = KTMime::getMimeTypeFromFile($sNewFilename);
     $iMimeTypeId = KTMime::getMimeTypeID($sType, $sNewFilename);
     $oDocument->setMimeTypeId($iMimeTypeId);
     $bSuccess = $oDocument->update();
     if ($bSuccess !== true) {
         if (PEAR::isError($bSuccess)) {
             return $bSuccess;
         }
         return PEAR::raiseError(_kt('An error occurred while storing this document in the database'));
     }
     // create the document transaction record
     $oDocumentTransaction = new DocumentTransaction($oDocument, _kt('Document renamed'), 'ktcore.transactions.update');
     $oDocumentTransaction->create();
     $oKTTriggerRegistry = KTTriggerRegistry::getSingleton();
     $aTriggers = $oKTTriggerRegistry->getTriggers('renameDocument', 'postValidate');
     foreach ($aTriggers as $aTrigger) {
         $sTrigger = $aTrigger[0];
         $oTrigger = new $sTrigger();
         $aInfo = array('document' => $oDocument);
         $oTrigger->setInfo($aInfo);
         $ret = $oTrigger->postValidate();
         if (PEAR::isError($ret)) {
             return $ret;
         }
     }
     // fire subscription alerts for the checked in document
     $oSubscriptionEvent = new SubscriptionEvent();
     $oFolder = Folder::get($oDocument->getFolderID());
     $oSubscriptionEvent->ModifyDocument($oDocument, $oFolder);
     return true;
 }