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 + -
显示快捷键?