ktsubscriptions.php.svn-base
来自「PHP 知识管理系统(基于树结构的知识管理系统), 英文原版的PHP源码。」· SVN-BASE 代码 · 共 625 行 · 第 1/2 页
SVN-BASE
625 行
var $aInfo = null; function setInfo(&$aInfo) { $this->aInfo =& $aInfo; } 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->CheckoutDocument($oDocument, $oFolder); }}// }}}// {{{ KTCheckoutSubscriptionTriggerclass KTEditSubscriptionTrigger { var $aInfo = null; function setInfo(&$aInfo) { $this->aInfo =& $aInfo; } 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); }}// }}}// {{{ KTDeleteSubscriptionTriggerclass KTDeleteSubscriptionTrigger { var $aInfo = null; function setInfo(&$aInfo) { $this->aInfo =& $aInfo; } function postValidate() { global $default; $oDocument =& $this->aInfo["document"]; // fire subscription alerts for the deleted document // fire subscription alerts for the checked in document $oSubscriptionEvent = new SubscriptionEvent(); $oFolder = Folder::get($oDocument->getFolderID()); // $oSubscriptionEvent->RemoveDocument($oDocument, $oFolder); }}// }}}// {{{ KTDocumentMoveSubscriptionTriggerclass KTDocumentMoveSubscriptionTrigger { var $aInfo = null; function setInfo(&$aInfo) { $this->aInfo =& $aInfo; } function postValidate() { global $default; $oDocument =& $this->aInfo["document"]; $oOldFolder =& $this->aInfo["old_folder"]; $oNewFolder =& $this->aInfo["new_folder"]; // fire subscription alerts for the checked in document $oSubscriptionEvent = new SubscriptionEvent(); $oSubscriptionEvent->MoveDocument($oDocument, $oNewFolder, $oNewFolder); }}// }}}// {{{ KTArchiveSubscriptionTriggerclass KTArchiveSubscriptionTrigger { var $aInfo = null; function setInfo(&$aInfo) { $this->aInfo =& $aInfo; } function postValidate() { global $default; $oDocument =& $this->aInfo["document"]; // fire subscription alerts for the checked in document $oSubscriptionEvent = new SubscriptionEvent(); $oFolder = Folder::get($oDocument->getFolderID()); $oSubscriptionEvent->ArchivedDocument($oDocument, $oFolder); }}// }}}class KTDiscussionSubscriptionTrigger { var $aInfo = null; function setInfo(&$aInfo) { $this->aInfo =& $aInfo; } function postValidate() { $oDocument =& $this->aInfo["document"]; $oSubscriptionEvent = new SubscriptionEvent(); $oFolder = Folder::get($oDocument->getFolderID()); $oSubscriptionEvent->DiscussDocument($oDocument, $oFolder); $indexer = Indexer::get(); $indexer->index($oDocument, 'D'); }}// }}}// {{{ KTFolderSubscriptionActionclass KTFolderSubscriptionAction extends KTFolderAction { var $sName = 'ktstandard.subscription.foldersubscription'; function getDisplayName() { return _kt('Subscribe to folder'); } function getInfo() { $aInfo = parent::getInfo(); if (Subscription::exists($this->oUser->getID(), $this->oFolder->getID(), SubscriptionEvent::subTypes('Folder'))) { // KTFolderUnsubscriptionAction will display instead. $aInfo['active'] = 'no'; } // return the url to the action for subfolders - display the Subscribe link, on clicking, display the include subfolders link. $aInfo['subaction'] = _kt('Subscribe to folder and <br>subfolders'); return $aInfo; } function do_ajax() { $this->subscribe(); } function do_add_subfolders() { $this->subscribe(true); } function subscribe($incSubFolders = false) { $iSubscriptionType = SubscriptionEvent::subTypes('Folder'); if (Subscription::exists($this->oUser->getId(), $this->oFolder->getId(), $iSubscriptionType)) { $str = _kt('You are already subscribed to this folder'); } else { $oSubscription = new Subscription($this->oUser->getId(), $this->oFolder->getId(), $iSubscriptionType); if($incSubFolders){ $oSubscription->setWithSubFolders(true); } $res = $oSubscription->create(); if ($res) { if($incSubFolders){ $str = _kt('You have been subscribed to this folder and its subfolders'); }else{ $str = _kt('You have been subscribed to this folder'); } } else { $str = _kt('There was a problem subscribing you to this folder'); } } echo wrapString($str); exit(0); } function do_main() { $iSubscriptionType = SubscriptionEvent::subTypes('Folder'); if (Subscription::exists($this->oUser->getId(), $this->oFolder->getId(), $iSubscriptionType)) { $_SESSION['KTErrorMessage'][] = _kt("You are already subscribed to this folder"); } else { $oSubscription = new Subscription($this->oUser->getId(), $this->oFolder->getId(), $iSubscriptionType); $res = $oSubscription->create(); if ($res) { $_SESSION['KTInfoMessage'][] = _kt("You have been subscribed to this folder"); } else { $_SESSION['KTErrorMessage'][] = _kt("There was a problem subscribing you to this folder"); } } controllerRedirect('browse', 'fFolderId=' . $this->oFolder->getId()); exit(0); }}// }}}// {{{ KTFolderUnsubscriptionActionclass KTFolderUnsubscriptionAction extends KTFolderAction { var $sName = 'ktstandard.subscription.folderunsubscription'; function getDisplayName() { return _kt('Unsubscribe from folder'); } function getInfo() { $aInfo = parent::getInfo(); if (!Subscription::exists($this->oUser->getID(), $this->oFolder->getID(), SubscriptionEvent::subTypes('Folder'))) { $aInfo['active'] = 'no'; } return $aInfo; } function do_ajax() { $iSubscriptionType = SubscriptionEvent::subTypes('Folder'); if (!Subscription::exists($this->oUser->getId(), $this->oFolder->getId(), $iSubscriptionType)) { $str = _kt('You were not subscribed to that folder'); } else { $oSubscription = & Subscription::getByIDs($this->oUser->getId(), $this->oFolder->getId(), $iSubscriptionType); $res = $oSubscription->delete(); if ($res) { $str = _kt('You have been unsubscribed from this folder'); } else { $str = _kt('There was a problem unsubscribing you from this folder'); } } echo wrapString($str); exit(0); } function do_main() { $iSubscriptionType = SubscriptionEvent::subTypes('Folder'); if (!Subscription::exists($this->oUser->getId(), $this->oFolder->getId(), $iSubscriptionType)) { $_SESSION['KTErrorMessage'][] = _kt("You were not subscribed to that folder"); } else { $oSubscription = & Subscription::getByIDs($this->oUser->getId(), $this->oFolder->getId(), $iSubscriptionType); $res = $oSubscription->delete(); if ($res) { $_SESSION['KTInfoMessage'][] = _kt("You have been unsubscribed from this folder"); } else { $_SESSION['KTErrorMessage'][] = _kt("There was a problem unsubscribing you from this folder"); } } controllerRedirect('browse', 'fFolderId=' . $this->oFolder->getId()); exit(0); }}// }}}// {{{ KTSubscriptionManagePageclass KTSubscriptionManagePage extends KTStandardDispatcher { function do_main() { $this->aBreadcrumbs[] = array("name" => _kt("Subscription Management")); $aFolderSubscriptions = SubscriptionManager::retrieveUserSubscriptions( $this->oUser->getId(), SubscriptionEvent::subTypes('Folder')); $aDocumentSubscriptions = SubscriptionManager::retrieveUserSubscriptions( $this->oUser->getId(), SubscriptionEvent::subTypes('Document')); $bNoSubscriptions = ((count($aFolderSubscriptions) == 0) && (count($aDocumentSubscriptions) == 0)) ? true : false; $oTemplate = $this->oValidator->validateTemplate('ktstandard/subscriptions/manage'); $aTemplateData = array( 'aFolderSubscriptions' => $aFolderSubscriptions, 'aDocumentSubscriptions' => $aDocumentSubscriptions, ); return $oTemplate->render($aTemplateData); } function do_removeSubscriptions() { $foldersubscriptions = KTUtil::arrayGet($_REQUEST, 'foldersubscriptions'); $documentsubscriptions = KTUtil::arrayGet($_REQUEST, 'documentsubscriptions'); if (empty($foldersubscriptions) && empty($documentsubscriptions)) { $this->errorRedirectToMain(_kt('No subscriptions were chosen')); } $iSuccesses = 0; $iFailures = 0; if (!empty($foldersubscriptions)) { foreach ($foldersubscriptions as $iSubscriptionId) { $oSubscription = Subscription::get($iSubscriptionId, SubscriptionEvent::subTypes('Folder')); if ($oSubscription) { $oSubscription->delete(); $iSuccesses++; } else { $iFailures++; } } } if (!empty($documentsubscriptions)) { foreach ($documentsubscriptions as $iSubscriptionId) { $oSubscription = Subscription::get($iSubscriptionId, SubscriptionEvent::subTypes('Document')); if ($oSubscription) { $oSubscription->delete(); $iSuccesses++; } else { $iFailures++; } } } $sMessage = _kt("Subscriptions removed") . ": "; if ($iFailures) { $sMessage .= sprintf(_kt('%d successful, %d failures'), $iSuccesses, $iFailures); } else { $sMessage .= sprintf('%d', $iSuccesses); } $this->successRedirectToMain($sMessage); exit(0); }}// }}}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?