Commit 4d4ec005880646449103a76c10920558664a0402

Authored by nbm
1 parent 7addd52a

Add a subscription trigger on the delete action.


git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@4070 c91229c3-7414-0410-bfa2-8a42b809f60b
plugins/ktstandard/KTSubscriptions.php
... ... @@ -12,6 +12,7 @@ $oKTActionRegistry =& KTActionRegistry::getSingleton();
12 12 $oPRegistry =& KTPortletRegistry::getSingleton();
13 13 $oTRegistry =& KTTriggerRegistry::getSingleton();
14 14  
  15 +// {{{ KTDocumentSubscriptionAction
15 16 class KTDocumentSubscriptionAction extends KTDocumentAction {
16 17 var $sName = 'ktcore.actions.document.subscription';
17 18 var $sDisplayName = 'Subscribe to document';
... ... @@ -40,7 +41,9 @@ class KTDocumentSubscriptionAction extends KTDocumentAction {
40 41 }
41 42 }
42 43 $oKTActionRegistry->registerAction('subscriptionaction', 'KTDocumentSubscriptionAction', 'ktcore.actions.document.subscription');
  44 +// }}}
43 45  
  46 +// {{{ KTDocumentUnsubscriptionAction
44 47 class KTDocumentUnsubscriptionAction extends KTDocumentAction {
45 48 var $sName = 'ktcore.actions.document.unsubscription';
46 49 var $sDisplayName = 'Unsubscribe from document';
... ... @@ -69,7 +72,9 @@ class KTDocumentUnsubscriptionAction extends KTDocumentAction {
69 72 }
70 73 }
71 74 $oKTActionRegistry->registerAction('subscriptionaction', 'KTDocumentUnsubscriptionAction', 'ktcore.actions.document.unsubscription');
  75 +// }}}
72 76  
  77 +// {{{ KTSubscriptionPortlet
73 78 class KTSubscriptionPortlet extends KTPortlet {
74 79 function KTSubscriptionPortlet() {
75 80 parent::KTPortlet("Subscriptions");
... ... @@ -102,7 +107,9 @@ class KTSubscriptionPortlet extends KTPortlet {
102 107 }
103 108 }
104 109 $oPRegistry->registerPortlet('browse', 'KTSubscriptionPortlet', 'ktcore.portlets.subscription', '/plugins/ktcore/KTPortlets.php');
  110 +// }}}
105 111  
  112 +// {{{ KTCheckoutSubscriptionTrigger
106 113 class KTCheckoutSubscriptionTrigger {
107 114 var $aInfo = null;
108 115 function setInfo(&$aInfo) {
... ... @@ -121,4 +128,37 @@ class KTCheckoutSubscriptionTrigger {
121 128 }
122 129 }
123 130 $oTRegistry->registerTrigger('checkout', 'postValidate', 'KTCheckoutSubscriptionTrigger', 'ktstandard.triggers.subscription.checkout');
  131 +// }}}
124 132  
  133 +// {{{ KTDeleteSubscriptionTrigger
  134 +class KTDeleteSubscriptionTrigger {
  135 + var $aInfo = null;
  136 + function setInfo(&$aInfo) {
  137 + $this->aInfo =& $aInfo;
  138 + }
  139 +
  140 + function postValidate() {
  141 + global $default;
  142 + $oDocument =& $this->aInfo["document"];
  143 +
  144 + // fire subscription alerts for the deleted document
  145 + $count = SubscriptionEngine::fireSubscription($oDocument->getId(),
  146 + SubscriptionConstants::subscriptionAlertType("RemoveSubscribedDocument"),
  147 + SubscriptionConstants::subscriptionType("DocumentSubscription"),
  148 + array(
  149 + "folderID" => $oDocument->getFolderID(),
  150 + "removedDocumentName" => $oDocument->getName(),
  151 + "folderName" => Folder::getFolderDisplayPath($oDocument->getFolderID()),
  152 + ));
  153 + $default->log->info("deleteDocumentBL.php fired $count subscription alerts for removed document " . $oDocument->getName());
  154 +
  155 + // remove all document subscriptions for this document
  156 + if (SubscriptionManager::removeSubscriptions($oDocument->getId(), SubscriptionConstants::subscriptionType("DocumentSubscription"))) {
  157 + $default->log->info("deleteDocumentBL.php removed all subscriptions for this document");
  158 + } else {
  159 + $default->log->error("deleteDocumentBL.php couldn't remove document subscriptions");
  160 + }
  161 + }
  162 +}
  163 +$oTRegistry->registerTrigger('checkout', 'postValidate', 'KTDeleteSubscriptionTrigger', 'ktstandard.triggers.subscription.delete');
  164 +// }}}
... ...