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,6 +12,7 @@ $oKTActionRegistry =& KTActionRegistry::getSingleton();
12 $oPRegistry =& KTPortletRegistry::getSingleton(); 12 $oPRegistry =& KTPortletRegistry::getSingleton();
13 $oTRegistry =& KTTriggerRegistry::getSingleton(); 13 $oTRegistry =& KTTriggerRegistry::getSingleton();
14 14
  15 +// {{{ KTDocumentSubscriptionAction
15 class KTDocumentSubscriptionAction extends KTDocumentAction { 16 class KTDocumentSubscriptionAction extends KTDocumentAction {
16 var $sName = 'ktcore.actions.document.subscription'; 17 var $sName = 'ktcore.actions.document.subscription';
17 var $sDisplayName = 'Subscribe to document'; 18 var $sDisplayName = 'Subscribe to document';
@@ -40,7 +41,9 @@ class KTDocumentSubscriptionAction extends KTDocumentAction { @@ -40,7 +41,9 @@ class KTDocumentSubscriptionAction extends KTDocumentAction {
40 } 41 }
41 } 42 }
42 $oKTActionRegistry->registerAction('subscriptionaction', 'KTDocumentSubscriptionAction', 'ktcore.actions.document.subscription'); 43 $oKTActionRegistry->registerAction('subscriptionaction', 'KTDocumentSubscriptionAction', 'ktcore.actions.document.subscription');
  44 +// }}}
43 45
  46 +// {{{ KTDocumentUnsubscriptionAction
44 class KTDocumentUnsubscriptionAction extends KTDocumentAction { 47 class KTDocumentUnsubscriptionAction extends KTDocumentAction {
45 var $sName = 'ktcore.actions.document.unsubscription'; 48 var $sName = 'ktcore.actions.document.unsubscription';
46 var $sDisplayName = 'Unsubscribe from document'; 49 var $sDisplayName = 'Unsubscribe from document';
@@ -69,7 +72,9 @@ class KTDocumentUnsubscriptionAction extends KTDocumentAction { @@ -69,7 +72,9 @@ class KTDocumentUnsubscriptionAction extends KTDocumentAction {
69 } 72 }
70 } 73 }
71 $oKTActionRegistry->registerAction('subscriptionaction', 'KTDocumentUnsubscriptionAction', 'ktcore.actions.document.unsubscription'); 74 $oKTActionRegistry->registerAction('subscriptionaction', 'KTDocumentUnsubscriptionAction', 'ktcore.actions.document.unsubscription');
  75 +// }}}
72 76
  77 +// {{{ KTSubscriptionPortlet
73 class KTSubscriptionPortlet extends KTPortlet { 78 class KTSubscriptionPortlet extends KTPortlet {
74 function KTSubscriptionPortlet() { 79 function KTSubscriptionPortlet() {
75 parent::KTPortlet("Subscriptions"); 80 parent::KTPortlet("Subscriptions");
@@ -102,7 +107,9 @@ class KTSubscriptionPortlet extends KTPortlet { @@ -102,7 +107,9 @@ class KTSubscriptionPortlet extends KTPortlet {
102 } 107 }
103 } 108 }
104 $oPRegistry->registerPortlet('browse', 'KTSubscriptionPortlet', 'ktcore.portlets.subscription', '/plugins/ktcore/KTPortlets.php'); 109 $oPRegistry->registerPortlet('browse', 'KTSubscriptionPortlet', 'ktcore.portlets.subscription', '/plugins/ktcore/KTPortlets.php');
  110 +// }}}
105 111
  112 +// {{{ KTCheckoutSubscriptionTrigger
106 class KTCheckoutSubscriptionTrigger { 113 class KTCheckoutSubscriptionTrigger {
107 var $aInfo = null; 114 var $aInfo = null;
108 function setInfo(&$aInfo) { 115 function setInfo(&$aInfo) {
@@ -121,4 +128,37 @@ class KTCheckoutSubscriptionTrigger { @@ -121,4 +128,37 @@ class KTCheckoutSubscriptionTrigger {
121 } 128 }
122 } 129 }
123 $oTRegistry->registerTrigger('checkout', 'postValidate', 'KTCheckoutSubscriptionTrigger', 'ktstandard.triggers.subscription.checkout'); 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 +// }}}