Commit d7d8a1d25190c083ea4452d6ae673b718f48745b
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
Showing
1 changed file
with
33 additions
and
22 deletions
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) { | ... | ... |