Commit d7d8a1d25190c083ea4452d6ae673b718f48745b

Authored by Neil Blakey-Milner
1 parent 044fc9c8

Add a TEXT field for notification storage area in the notification

entity.

Make NotificationHandlers dispatchers, allowing the easy use of
redispatch and subdispatch, if needed.


git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@5663 c91229c3-7414-0410-bfa2-8a42b809f60b
lib/dashboard/Notification.inc.php
... ... @@ -38,6 +38,7 @@ require_once(KT_LIB_DIR . '/foldermanagement/Folder.inc');
38 38 require_once(KT_LIB_DIR . '/workflow/workflowutil.inc.php');
39 39  
40 40 require_once(KT_LIB_DIR . '/templating/templating.inc.php');
  41 +require_once(KT_LIB_DIR . '/dispatcher.inc.php');
41 42  
42 43 /**
43 44 * class Notification
... ... @@ -61,8 +62,11 @@ class KTNotification extends KTEntity {
61 62 // (i.e. you get very stupid subclassing semantics with up to 4 variables this way.
62 63 var $iData1;
63 64 var $iData2;
  65 + // sData1 and sData2 are 255-length character fields
64 66 var $sData1;
65 67 var $sData2;
  68 + // sText1 is a 65535-length text field
  69 + var $sText1;
66 70  
67 71 var $_bUsePearError = true;
68 72  
... ... @@ -81,6 +85,8 @@ class KTNotification extends KTEntity {
81 85 function setStrData1($sData1) { $this->sData1 = $sData1; }
82 86 function getStrData2() { return $this->sData2; }
83 87 function setStrData2($sData2) { $this->sData2 = $sData2; }
  88 + function getTextData1() { return $this->sText1; }
  89 + function setTextData1($mValue) { $this->sText1 = $mValue; }
84 90  
85 91 var $_aFieldToSelect = array(
86 92 "iId" => "id",
... ... @@ -92,35 +98,36 @@ class KTNotification extends KTEntity {
92 98 "iData2" => "data_int_2",
93 99 "sData1" => "data_str_1",
94 100 "sData2" => "data_str_2",
95   - );
  101 + "sText1" => "data_text_1",
  102 + );
96 103  
97 104 function _table () {
98 105 return KTUtil::getTableName('notifications');
99 106 }
100   -
101   - function render() {
102   - $notificationRegistry =& KTNotificationRegistry::getSingleton();
103   - $handler = $notificationRegistry->getHandler($this->sType);
104   -
105   - if (is_null($handler)) { return null; }
106   -
107   - return $handler->handleNotification($this);
108   - }
109   -
110   - function resolve() {
111   - $notificationRegistry =& KTNotificationRegistry::getSingleton();
112   - $handler = $notificationRegistry->getHandler($this->sType);
113   - return $handler->resolveNotification($this);
114   - }
  107 +
  108 + function render() {
  109 + $notificationRegistry =& KTNotificationRegistry::getSingleton();
  110 + $handler = $notificationRegistry->getHandler($this->sType);
  111 +
  112 + if (is_null($handler)) { return null; }
  113 +
  114 + return $handler->handleNotification($this);
  115 + }
  116 +
  117 + function &getHandler() {
  118 + $notificationRegistry =& KTNotificationRegistry::getSingleton();
  119 + $handler =& $notificationRegistry->getHandler($this->sType);
  120 + return $handler;
  121 + }
115 122  
116 123 // Static function
117 124 function &get($iId) { return KTEntityUtil::get('KTNotification', $iId); }
118 125 function &getList($sWhereClause = null, $aOptions = null ) {
119   - if(!is_array($aOptions)) $aOptions = array($aOptions);
120   - $aOptions['orderby'] = KTUtil::arrayGet($aOptions, 'orderby', 'creation_date DESC');
121   - return KTEntityUtil::getList2('KTNotification', $sWhereClause, $aOptions);
122   - }
123   -
  126 + if(!is_array($aOptions)) $aOptions = array($aOptions);
  127 + $aOptions['orderby'] = KTUtil::arrayGet($aOptions, 'orderby', 'creation_date DESC');
  128 + return KTEntityUtil::getList2('KTNotification', $sWhereClause, $aOptions);
  129 + }
  130 +
124 131 function &createFromArray($aOptions) { return KTEntityUtil::createFromArray('KTNotification', $aOptions); }
125 132  
126 133 }
... ... @@ -131,7 +138,7 @@ class KTNotification extends KTEntity {
131 138 $notificationRegistry =& KTNotificationRegistry::getSingleton();
132 139  
133 140 // abstract base-class for notification handler.
134   -class KTNotificationHandler {
  141 +class KTNotificationHandler extends KTStandardDispatcher {
135 142  
136 143 // FIXME rename this to renderNotification
137 144 // called to _render_ the notification.
... ... @@ -141,6 +148,10 @@ class KTNotificationHandler {
141 148 $aTemplateData = array("context" => $oKTNotification,);
142 149 return $oTemplate->render($aTemplateData);
143 150 }
  151 +
  152 + function do_main() {
  153 + $this->resolveNotification($this->notification);
  154 + }
144 155  
145 156 // called to resolve the notification (typically from /notify.php?id=xxxxx
146 157 function resolveNotification($oKTNotification) {
... ...