KTSubscriptions.php
4.16 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
<?php
$oKTActionRegistry =& KTActionRegistry::getSingleton();
$oPRegistry =& KTPortletRegistry::getSingleton();
class KTDocumentSubscriptionAction extends KTDocumentAction {
var $sName = 'ktcore.actions.document.subscription';
var $sDisplayName = 'Subscribe to document';
function getInfo() {
if (Subscription::exists($this->oUser->getID(), $this->oDocument->getID(), SubscriptionConstants::subscriptionType("DocumentSubscription"))) {
return null;
}
return parent::getInfo();
}
function do_main() {
$iSubscriptionType = SubscriptionConstants::subscriptionType("DocumentSubscription");
if (Subscription::exists($this->oUser->getId(), $this->oDocument->getId(), $iSubscriptionType)) {
$_SESSION['KTErrorMessage'][] = "You are already subscribed to that document";
} else {
$oSubscription = new Subscription($this->oUser->getId(), $this->oDocument->getId(), $iSubscriptionType);
$res = $oSubscription->create();
if ($res) {
$_SESSION['KTInfoMessage'][] = "You have been subscribed to this document";
} else {
$_SESSION['KTErrorMessage'][] = "There was a problem subscribing you to this document";
}
}
controllerRedirect('viewDocument', 'fDocumentId=' . $this->oDocument->getId());
exit(0);
}
}
$oKTActionRegistry->registerAction('subscriptionaction', 'KTDocumentSubscriptionAction', 'ktcore.actions.document.subscription');
class KTDocumentUnsubscriptionAction extends KTDocumentAction {
var $sName = 'ktcore.actions.document.unsubscription';
var $sDisplayName = 'Unsubscribe from document';
function getInfo() {
if (Subscription::exists($this->oUser->getID(), $this->oDocument->getID(), SubscriptionConstants::subscriptionType("DocumentSubscription"))) {
return parent::getInfo();
}
return null;
}
function do_main() {
$iSubscriptionType = SubscriptionConstants::subscriptionType("DocumentSubscription");
if (!Subscription::exists($this->oUser->getId(), $this->oDocument->getId(), $iSubscriptionType)) {
$_SESSION['KTErrorMessage'][] = "You were not subscribed to that document";
} else {
$oSubscription = & Subscription::getByIDs($this->oUser->getId(), $this->oDocument->getId(), $iSubscriptionType);
$res = $oSubscription->delete();
if ($res) {
$_SESSION['KTInfoMessage'][] = "You have been unsubscribed from this document";
} else {
$_SESSION['KTErrorMessage'][] = "There was a problem unsubscribing you from this document";
}
}
controllerRedirect('viewDocument', 'fDocumentId=' . $this->oDocument->getId());
exit(0);
}
}
$oKTActionRegistry->registerAction('subscriptionaction', 'KTDocumentUnsubscriptionAction', 'ktcore.actions.document.unsubscription');
class KTSubscriptionPortlet extends KTPortlet {
function KTSubscriptionPortlet() {
parent::KTPortlet("Subscriptions");
}
function render() {
if (!$this->oDispatcher->oDocument && !$this->oDispatcher->oFolder) {
return null;
}
if ($this->oDispatcher->oDocument) {
$oKTActionRegistry =& KTActionRegistry::getSingleton();
$actions = $oKTActionRegistry->getActions('subscriptionaction');
foreach ($actions as $aAction) {
list($sClassName, $sPath) = $aAction;
if (!empty($sPath)) {
// require_once(KT_DIR .
// Or something...
}
$oObject =& new $sClassName($this->oDispatcher->oDocument, $this->oDispatcher->oUser);
$this->actions[] = $oObject->getInfo();
}
}
$oTemplating = new KTTemplating;
$oTemplate = $oTemplating->loadTemplate("kt3/portlets/actions_portlet");
$aTemplateData = array(
"context" => $this,
);
return $oTemplate->render($aTemplateData);
}
}
$oPRegistry->registerPortlet('browse', 'KTSubscriptionPortlet', 'ktcore.portlets.subscription', '/plugins/ktcore/KTPortlets.php');