manageSubscriptionsBL.php
3.38 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
<?php
require_once("../../../../config/dmsDefaults.php");
require_once("$default->fileSystemRoot/lib/subscriptions/Subscription.inc");
require_once("$default->fileSystemRoot/lib/subscriptions/SubscriptionManager.inc");
require_once("$default->fileSystemRoot/lib/visualpatterns/PatternCustom.inc");
require_once("subscriptionUI.inc");
require_once("$default->fileSystemRoot/presentation/Html.inc");
/**
* $Id$
*
* Manages subscriptions- displays all current subscriptions and allows
* multiple unsubscribes.
*
* Licensed under the GNU GPL. For full terms see the file DOCS/COPYING.
*
* @version $Revision$
* @author Michael Joseph <michael@jamwarehouse.com>, Jam Warehouse (Pty) Ltd, South Africa
* @package presentation.lookAndFeel.knowledgeTree.subscriptions
*/
// -------------------------------
// page start
// -------------------------------
// only if we have a valid session
if (checkSession()) {
$oPatternCustom = & new PatternCustom();
if (isset($fFolderSubscriptionIDs) || isset($fDocumentSubscriptionIDs)) {
// we've got subscriptions to remove,
$aFolderSubscriptions = array();
$aDocumentSubscriptions = array();
for ($i = 0; $i < count($fFolderSubscriptionIDs); $i++) {
$aFolderSubscriptions[] = & Subscription::get($fFolderSubscriptionIDs[$i], SubscriptionConstants::subscriptionType("FolderSubscription"));
}
for ($i = 0; $i < count($fDocumentSubscriptionIDs); $i++) {
$aDocumentSubscriptions[] = & Subscription::get($fDocumentSubscriptionIDs[$i], SubscriptionConstants::subscriptionType("DocumentSubscription"));
}
if (isset($fConfirmed)) {
// remove subscriptions
$oSubscriptions = array_merge($aFolderSubscriptions, $aDocumentSubscriptions);
$sErrorMessage = "";
for ($i = 0; $i < count($oSubscriptions); $i++) {
if ($oSubscriptions[$i]->delete()) {
$default->log->info("manageSubscriptionBL.php removed subscription for userID=$iUserID, subType=$iSubscriptionType, id=$iExternalID");
} else {
// error removing subscription
$default->log->error("manageSubscriptionBL.php error removing subscription=" . $oSubscriptions[$i]);
// add to error message
if (strlen($sErrorMessage) > 0) {
$sErrorMessage .= ", ";
}
$sErrorMessage .= $oSubscriptions[$i]->getContentDisplayPath();
}
}
if (strlen($sErrorMessage) > 0) {
$oPatternCustom->setHtml(renderErrorPage("There were errors removing the following subscriptions: $sErrorMessage"));
} else {
// display the manage subscriptions page
$oPatternCustom->setHtml(renderManagePage());
}
} else {
// display confirmation page
$oPatternCustom->setHtml(renderMultipleRemoveConfirmationPage($aFolderSubscriptions, $aDocumentSubscriptions));
}
} else {
// display the manage subscriptions page
$oPatternCustom->setHtml(renderManagePage());
}
require_once("../../../webpageTemplate.inc");
$main->setCentralPayload($oPatternCustom);
$main->setFormAction($_SERVER["PHP_SELF"]);
$main->render();
}
?>