Commit 955477ae1e2814ba493bf96a0d9ff4dd81da2c5d

Authored by megan_w
1 parent 4726c175

Merged in from DEV trunk...

KTS-2708
"Refactor plugins registration and loading"
Fixed. Created a DB table containing all the dashlets, actions, etc. Reduced the number of calls required to load the plugins.

Committed By: Megan Watson
Reviewed By: Conrad Vermeulen


git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/STABLE/branches/3.4.5-Release-Branch@7701 c91229c3-7414-0410-bfa2-8a42b809f60b
config/dmsDefaults.php
... ... @@ -8,7 +8,7 @@
8 8 * License Version 1.1.2 ("License"); You may not use this file except in
9 9 * compliance with the License. You may obtain a copy of the License at
10 10 * http://www.knowledgetree.com/KPL
11   - *
  11 + *
12 12 * Software distributed under the License is distributed on an "AS IS"
13 13 * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.
14 14 * See the License for the specific language governing rights and
... ... @@ -19,9 +19,9 @@
19 19 * (ii) the KnowledgeTree copyright notice
20 20 * in the same form as they appear in the distribution. See the License for
21 21 * requirements.
22   - *
  22 + *
23 23 * The Original Code is: KnowledgeTree Open Source
24   - *
  24 + *
25 25 * The Initial Developer of the Original Code is The Jam Warehouse Software
26 26 * (Pty) Ltd, trading as KnowledgeTree.
27 27 * Portions created by The Jam Warehouse Software (Pty) Ltd are Copyright
... ... @@ -52,7 +52,7 @@ unset($microtime_simple);
52 52 if (!defined('KT_DIR')) {
53 53 $rootLoc = realpath(dirname(__FILE__) . '/..');
54 54 if (substr(PHP_OS, 0, 3) == 'WIN') {
55   - $rootLoc = str_replace('\\','/',$rootLoc);
  55 + $rootLoc = str_replace('\\','/',$rootLoc);
56 56 }
57 57 define('KT_DIR', $rootLoc);
58 58 }
... ... @@ -85,7 +85,7 @@ class KTInit {
85 85 global $default;
86 86 require_once(KT_LIB_DIR . '/Log.inc');
87 87 $oKTConfig =& KTConfig::getSingleton();
88   -
  88 +
89 89 if(!defined('APP_NAME')) {
90 90 define('APP_NAME', $oKTConfig->get('ui/appName', 'KnowledgeTree'));
91 91 }
... ... @@ -122,7 +122,7 @@ class KTInit {
122 122 $default->phpErrorLog =& Log::factory('composite');
123 123  
124 124 if ($default->phpErrorLogFile) {
125   - $fileLog =& Log::factory('file', $oKTConfig->get('urls/logDirectory') . '/php_error_log', 'KT', array(), $logLevel);
  125 + $fileLog =& Log::factory('file', $oKTConfig->get('urls/logDirectory') . '/php_error_log', 'KT', array(), $logLevel);
126 126 $default->phpErrorLog->addChild($fileLog);
127 127 }
128 128  
... ... @@ -195,9 +195,9 @@ class KTInit {
195 195  
196 196 // {{{ cleanGlobals()
197 197 function cleanGlobals () {
198   - /*
  198 + /*
199 199 * Borrowed from TikiWiki
200   - *
  200 + *
201 201 * Copyright (c) 2002-2004, Luis Argerich, Garland Foster,
202 202 * Eduardo Polidor, et. al.
203 203 */
... ... @@ -360,9 +360,9 @@ class KTInit {
360 360 return '';
361 361 }
362 362 // }}}
363   -
  363 +
364 364 // {{{ initConfig
365   - function initConfig() {
  365 + function initConfig() {
366 366 global $default;
367 367 $use_cache = false;
368 368 $store_cache = false;
... ... @@ -371,36 +371,36 @@ class KTInit {
371 371 $user = KTLegacyLog::running_user();
372 372 // handle vhosts.
373 373 $truehost = KTUtil::arrayGet($_SERVER, 'HTTP_HOST', 'default');
374   - $trueport = KTUtil::arrayGet($_SERVER, 'SERVER_PORT', '80');
  374 + $trueport = KTUtil::arrayGet($_SERVER, 'SERVER_PORT', '80');
375 375 $cache_file = trim(file_get_contents(KT_DIR . '/config/cache-path')) . '/configcache' . $user . $truehost . $trueport;
376   - if (!KTUtil::isAbsolutePath($cache_file)) { $cache_file = sprintf('%s/%s', KT_DIR, $cache_file); }
377   - $config_file = trim(file_get_contents(KT_DIR . '/config/config-path'));
  376 + if (!KTUtil::isAbsolutePath($cache_file)) { $cache_file = sprintf('%s/%s', KT_DIR, $cache_file); }
  377 + $config_file = trim(file_get_contents(KT_DIR . '/config/config-path'));
378 378 if (!KTUtil::isAbsolutePath($config_file)) { $config_file = sprintf('%s/%s', KT_DIR, $config_file); }
379   -
  379 +
380 380 $exists = file_exists($cache_file);
381 381 if ($exists) {
382 382 $cachestat = stat($cache_file);
383 383 $configstat = stat($config_file);
384 384 $tval = 9;
385   - // print sprintf("is %d > %d\n", $cachestat[$tval], $configstat[$tval]);
  385 + // print sprintf("is %d > %d\n", $cachestat[$tval], $configstat[$tval]);
386 386 if ($cachestat[$tval] > $configstat[$tval]) {
387 387 $use_cache = true;
388 388 }
389   - }
390   -
391   -
  389 + }
  390 +
  391 +
392 392 }
393   -
  393 +
394 394 if ($use_cache) {
395 395 $oKTConfig =& KTConfig::getSingleton();
396 396 $oKTConfig->loadCache($cache_file);
397   -
  397 +
398 398 foreach ($oKTConfig->flat as $k => $v) {
399 399 $default->$k = $oKTConfig->get($k);
400 400 }
401 401 } else {
402 402 $oKTConfig =& KTConfig::getSingleton();
403   -
  403 +
404 404 $oKTConfig->setdefaultns('ui', 'appName', 'KnowledgeTree');
405 405 $oKTConfig->setdefaultns('KnowledgeTree', 'fileSystemRoot', KT_DIR);
406 406 $oKTConfig->setdefaultns('KnowledgeTree', 'serverName', KTUtil::arrayGet($_SERVER, 'HTTP_HOST', 'localhost'));
... ... @@ -416,55 +416,55 @@ class KTInit {
416 416 $oKTConfig->setdefaultns('KnowledgeTree', 'pathInfoSupport', false);
417 417  
418 418 $oKTConfig->setdefaultns('dashboard', 'alwaysShowYCOD', true);
419   -
  419 +
420 420 $oKTConfig->setdefaultns('storage', 'manager', 'KTOnDiskHashedStorageManager');
421 421 $oKTConfig->setdefaultns('config', 'useDatabaseConfiguration', false);
422 422  
423   - $oKTConfig->setdefaultns('urls', 'tmpDirectory', '${varDirectory}/tmp');
  423 + $oKTConfig->setdefaultns('urls', 'tmpDirectory', '${varDirectory}/tmp');
424 424 $oKTConfig->setdefaultns('urls', 'stopwordsFile', '${fileSystemRoot}/config/stopwords.txt');
425   -
  425 +
426 426 $oKTConfig->setdefaultns('tweaks', 'browseToUnitFolder', false);
427 427 $oKTConfig->setdefaultns('tweaks', 'genericMetaDataRequired', true);
428 428 $oKTConfig->setdefaultns('tweaks', 'phpErrorLogFile', false);
429 429 $oKTConfig->setdefaultns('tweaks', 'developmentWindowLog', false);
430   - $oKTConfig->setdefaultns('tweaks', 'noisyBulkOperations', false);
431   -
  430 + $oKTConfig->setdefaultns('tweaks', 'noisyBulkOperations', false);
  431 +
432 432 $oKTConfig->setdefaultns('user_prefs', 'passwordLength', 6);
433 433 $oKTConfig->setdefaultns('user_prefs', 'restrictAdminPasswords', false);
434   -
  434 +
435 435 $oKTConfig->setdefaultns('session', 'allowAnonymousLogin', false);
436   -
  436 +
437 437 $oKTConfig->setdefaultns('ui', 'ieGIF', true);
438 438 $oKTConfig->setdefaultns('ui', 'alwaysShowAll', false);
439 439 $oKTConfig->setdefaultns('ui', 'condensedAdminUI', false);
440   -
  440 +
441 441 $oKTConfig->setdefaultns(null, 'logLevel', 'INFO');
442 442 $oKTConfig->setdefaultns('import', 'unzip', 'unzip');
443 443 $oKTConfig->setdefaultns('cache', 'cacheDirectory', '${varDirectory}/cache');
444 444 $oKTConfig->setdefaultns('cache', 'cacheEnabled', 'false');
445 445 $oKTConfig->setdefaultns('cache', 'proxyCacheDirectory', '${varDirectory}/proxies');
446 446 $oKTConfig->setdefaultns('cache', 'proxyCacheEnabled', 'true');
447   -
  447 +
448 448 $oKTConfig->setdefaultns('webservice', 'uploadDirectory', '${varDirectory}/uploads');
449 449 $oKTConfig->setdefaultns('webservice', 'downloadUrl', '${rootUrl}/ktwebservice/download.php');
450 450 $oKTConfig->setdefaultns('webservice', 'uploadExpiry', '30');
451 451 $oKTConfig->setdefaultns('webservice', 'downloadExpiry', '30');
452 452 $oKTConfig->setdefaultns('webservice', 'randomKeyText', 'bkdfjhg23yskjdhf2iu');
453   -
  453 +
454 454 $oKTConfig->setdefaultns('clientToolPolicies', 'explorerMetadataCapture', true);
455 455 $oKTConfig->setdefaultns('clientToolPolicies', 'officeMetadataCapture', true);
456 456  
457   -
  457 +
458 458 $res = $this->readConfig();
459 459 if (PEAR::isError($res)) { return $res; }
460   -
  460 +
461 461 $oKTConfig =& KTConfig::getSingleton();
462 462 @touch($cache_file);
463 463 if ($store_cache && is_writable($cache_file)) {
464 464 $oKTConfig->createCache($cache_file);
465 465 }
466   -
467   -
  466 +
  467 +
468 468 }
469 469 }
470 470 // }}}
... ... @@ -479,13 +479,13 @@ class KTInit {
479 479 } else {
480 480 $res = $oKTConfig->loadFile(sprintf('%s/%s', KT_DIR, $sConfigFile));
481 481 }
482   -
483   - if (PEAR::isError($res)) {
  482 +
  483 + if (PEAR::isError($res)) {
484 484 $this->handleInitError($res);
485 485 // returns only in checkup
486 486 return $res;
487   - }
488   -
  487 + }
  488 +
489 489 foreach (array_keys($oKTConfig->flat) as $k) {
490 490 $v = $oKTConfig->get($k);
491 491 if ($v === 'default') {
... ... @@ -493,7 +493,7 @@ class KTInit {
493 493 }
494 494 if ($v === 'false') {
495 495 $v = false;
496   -
  496 +
497 497 }
498 498 if ($v === 'true') {
499 499 $v = true;
... ... @@ -518,9 +518,9 @@ class KTInit {
518 518 exit(0);
519 519 }
520 520 $res = $oKTConfig->loadFile($sConfigFile);
521   - if (PEAR::isError($res)) {
  521 + if (PEAR::isError($res)) {
522 522 return $res;
523   - }
  523 + }
524 524 $_SESSION['userID'] = 1;
525 525 }
526 526 // }}}
... ... @@ -545,11 +545,11 @@ require_once(KT_LIB_DIR . '/ktentity.inc');
545 545  
546 546 require_once(KT_LIB_DIR . '/config/config.inc.php');
547 547  
548   -$KTInit->initConfig();
  548 +$KTInit->initConfig();
549 549 $KTInit->setupI18n();
550 550  
551 551 if ($GLOBALS['kt_test']) {
552   - $KTInit->initTesting();
  552 + $KTInit->initTesting();
553 553 }
554 554  
555 555 $oKTConfig =& KTConfig::getSingleton();
... ... @@ -586,7 +586,12 @@ require_once(KT_LIB_DIR . '/session/control.inc');
586 586 require_once(KT_LIB_DIR . '/plugins/pluginutil.inc.php');
587 587  
588 588 if ($checkup !== true) {
589   - KTPluginUtil::loadPlugins();
  589 + /* ** Get the page being loaded and load the plugins specific to the page ** */
  590 + $sScriptName = $GLOBALS['_SERVER']['SCRIPT_NAME'];
  591 + $sScript = basename($sScriptName);
  592 + $pos = strpos($sScript, '.');
  593 + $sType = substr($sScript, 0, $pos);
  594 + KTPluginUtil::loadPlugins($sType);
590 595 }
591 596  
592 597 if ($checkup !== true) {
... ...
lib/plugins/KTAdminNavigation.php
... ... @@ -6,7 +6,7 @@
6 6 * License Version 1.1.2 ("License"); You may not use this file except in
7 7 * compliance with the License. You may obtain a copy of the License at
8 8 * http://www.knowledgetree.com/KPL
9   - *
  9 + *
10 10 * Software distributed under the License is distributed on an "AS IS"
11 11 * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.
12 12 * See the License for the specific language governing rights and
... ... @@ -17,9 +17,9 @@
17 17 * (ii) the KnowledgeTree copyright notice
18 18 * in the same form as they appear in the distribution. See the License for
19 19 * requirements.
20   - *
  20 + *
21 21 * The Original Code is: KnowledgeTree Open Source
22   - *
  22 + *
23 23 * The Initial Developer of the Original Code is The Jam Warehouse Software
24 24 * (Pty) Ltd, trading as KnowledgeTree.
25 25 * Portions created by The Jam Warehouse Software (Pty) Ltd are Copyright
... ... @@ -52,18 +52,18 @@ class KTAdminNavigationRegistry {
52 52 "name" => $sName,
53 53 "class" => $sClass,
54 54 "title" => $sTitle,
55   - "description"=> $sDescription,
56   - "filepath" => $sDispatcherFilePath,
  55 + "description"=> $sDescription,
  56 + "filepath" => $sDispatcherFilePath,
57 57 "url" => $sURL,
58   - "fullname" => $sFullname);
  58 + "fullname" => $sFullname);
59 59 $this->aResources[$sFullname] = $aInfo;
60 60 // is this a toplevel item?
61 61 if ($sCategory != null) {
62   - if (!array_key_exists($sCategory, $this->aCategories)) {
63   - $this->registerCategory($sCategory, $sCategory, '');
  62 + if (!array_key_exists($sCategory, $this->aCategories)) {
  63 + $this->registerCategory($sCategory, $sCategory, '');
64 64 }
65 65 $this->aCategorisation[$sCategory][] = $aInfo;
66   - }
  66 + }
67 67 }
68 68  
69 69 function isRegistered($sName) {
... ... @@ -72,32 +72,32 @@ class KTAdminNavigationRegistry {
72 72 }
73 73 return false;
74 74 }
75   -
  75 +
76 76 function registerCategory($sName, $sTitle, $sDescription) {
77 77 $this->aCategories[$sName] = array("title" => $sTitle, "description" => $sDescription, "name" => $sName);
78 78 }
79 79 function getCategories() { return $this->aCategories; }
80 80 function getCategory($sCategory) { return $this->aCategories[$sCategory]; }
81 81 function getItemsForCategory($sCategory) { return $this->aCategorisation[$sCategory]; }
82   -
  82 +
83 83 function getDispatcher($sName) {
84 84 // FIXME this probably needs to use require_once mojo.
85 85 $aInfo = $this->aResources[$sName];
86 86 if ($aInfo["filepath"] !== null) { require_once($aInfo["filepath"]); }
87   - if ($aInfo["url"] !== null) {
  87 + if (!empty($aInfo["url"])) {
88 88 return new RedirectingDispatcher($aInfo["url"]);
89 89 }
90   - return new $aInfo["class"];
  90 + return new $aInfo["class"];
91 91 }
92 92 }
93 93  
94 94 class RedirectingDispatcher {
95 95 var $url = '';
96   -
  96 +
97 97 function RedirectingDispatcher($sURL) {
98 98 $this->url = $sURL;
99 99 }
100   -
  100 +
101 101 function dispatch() {
102 102 redirect($this->url);
103 103 }
... ...
lib/plugins/plugin.inc.php
... ... @@ -6,7 +6,7 @@
6 6 * License Version 1.1.2 ("License"); You may not use this file except in
7 7 * compliance with the License. You may obtain a copy of the License at
8 8 * http://www.knowledgetree.com/KPL
9   - *
  9 + *
10 10 * Software distributed under the License is distributed on an "AS IS"
11 11 * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.
12 12 * See the License for the specific language governing rights and
... ... @@ -17,9 +17,9 @@
17 17 * (ii) the KnowledgeTree copyright notice
18 18 * in the same form as they appear in the distribution. See the License for
19 19 * requirements.
20   - *
  20 + *
21 21 * The Original Code is: KnowledgeTree Open Source
22   - *
  22 + *
23 23 * The Initial Developer of the Original Code is The Jam Warehouse Software
24 24 * (Pty) Ltd, trading as KnowledgeTree.
25 25 * Portions created by The Jam Warehouse Software (Pty) Ltd are Copyright
... ... @@ -39,9 +39,9 @@ class KTPlugin {
39 39 var $iOrder = 0;
40 40 var $sFriendlyName = null;
41 41 var $sSQLDir = null;
42   -
  42 +
43 43 var $autoRegister = false;
44   -
  44 +
45 45 var $_aPortlets = array();
46 46 var $_aTriggers = array();
47 47 var $_aActions = array();
... ... @@ -55,14 +55,14 @@ class KTPlugin {
55 55 var $_aLanguage = array();
56 56 var $_aHelpLanguage = array();
57 57 var $_aWFTriggers = array();
58   - var $_aColumns = array();
59   - var $_aViews = array();
60   - var $_aNotificationHandlers = array();
61   - var $_aTemplateLocations = array();
62   - var $_aWidgets = array();
63   - var $_aValidators = array();
64   - var $_aCriteria = array();
65   - var $_aInterceptors = array();
  58 + var $_aColumns = array();
  59 + var $_aViews = array();
  60 + var $_aNotificationHandlers = array();
  61 + var $_aTemplateLocations = array();
  62 + var $_aWidgets = array();
  63 + var $_aValidators = array();
  64 + var $_aCriteria = array();
  65 + var $_aInterceptors = array();
66 66  
67 67 function KTPlugin($sFilename = null) {
68 68 $this->sFilename = $sFilename;
... ... @@ -75,27 +75,51 @@ class KTPlugin {
75 75 function registerPortlet($aLocation, $sPortletClassName, $sPortletNamespace, $sFilename = null) {
76 76 $sFilename = $this->_fixFilename($sFilename);
77 77 $this->_aPortlets[$sPortletNamespace] = array($aLocation, $sPortletClassName, $sPortletNamespace, $sFilename, $this->sNamespace);
  78 +
  79 + // Register helper in DB
  80 + if(is_array($aLocation)){
  81 + $sLocation = implode('_|', $aLocation);
  82 + }
  83 + $params = $sLocation.'|'.$sPortletClassName.'|'.$sPortletNamespace.'|'.$sFilename.'|'.$this->sNamespace;
  84 + $this->registerPluginHelper($sPortletNamespace, $sPortletClassName, $sFilename, $params, 'general', 'portlet');
78 85 }
79 86  
80 87 function registerTrigger($sAction, $sStage, $sTriggerClassName, $sTriggerNamespace, $sFilename = null) {
81 88 $sFilename = $this->_fixFilename($sFilename);
82 89 $this->_aTriggers[$sTriggerNamespace] = array($sAction, $sStage, $sTriggerClassName, $sTriggerNamespace, $sFilename, $this->sNamespace);
  90 +
  91 + // Register helper in DB
  92 + $params = $sAction.'|'.$sStage.'|'.$sTriggerClassName.'|'.$sTriggerNamespace.'|'.$sFilename.'|'.$this->sNamespace;
  93 + $this->registerPluginHelper($sTriggerNamespace, $sTriggerClassName, $sFilename, $params, 'general', 'trigger');
83 94 }
84 95  
85 96 function registerAction($sActionType, $sActionClassName, $sActionNamespace, $sFilename = null) {
86 97 $sFilename = $this->_fixFilename($sFilename);
87 98 $this->_aActions[$sActionNamespace] = array($sActionType, $sActionClassName, $sActionNamespace, $sFilename, $this->sNamespace);
  99 +
  100 + // Register helper in DB
  101 + $params = $sActionType.'|'.$sActionClassName.'|'.$sActionNamespace.'|'.$sFilename.'|'.$this->sNamespace;
  102 + $this->registerPluginHelper($sActionNamespace, $sActionClassName, $sFilename, $params, 'general', 'action');
88 103 }
89 104  
90 105 function registerPage($sWebPath, $sPageClassName, $sFilename = null) {
91 106 $sFilename = $this->_fixFilename($sFilename);
92 107 $sWebPath = sprintf("%s/%s", $this->sNamespace, $sWebPath);
  108 +
93 109 $this->_aPages[$sWebPath] = array($sWebPath, $sPageClassName, $sFilename, $this->sNamespace);
  110 +
  111 + // Register helper in DB
  112 + $params = $sWebPath.'|'.$sPageClassName.'|'.$sFilename.'|'.$this->sNamespace;
  113 + $this->registerPluginHelper($sWebPath, $sPageClassName, $sFilename, $params, 'general', 'page');
94 114 }
95   -
  115 +
96 116 function registerWorkflowTrigger($sNamespace, $sTriggerClassName, $sFilename = null) {
97 117 $sFilename = $this->_fixFilename($sFilename);
98 118 $this->_aWFTriggers[$sNamespace] = array($sNamespace, $sTriggerClassName, $sFilename);
  119 +
  120 + // Register helper in DB
  121 + $params = $sNamespace.'|'.$sTriggerClassName.'|'.$sFilename;
  122 + $this->registerPluginHelper($sNamespace, $sTriggerClassName, $sFilename, $params, 'general', 'workflow_trigger');
99 123 }
100 124  
101 125 function getPagePath($sPath) {
... ... @@ -114,27 +138,52 @@ class KTPlugin {
114 138 function registerAuthenticationProvider($sName, $sClass, $sNamespace, $sFilename = null) {
115 139 $sFilename = $this->_fixFilename($sFilename);
116 140 $this->_aAuthenticationProviders[$sNamespace] = array($sName, $sClass, $sNamespace, $sFilename, $this->sNamespace);
  141 +
  142 + // Register helper in DB
  143 + $params = $sName.'|'.$sClass.'|'.$sNamespace.'|'.$sFilename.'|'.$this->sNamespace;
  144 + $this->registerPluginHelper($sNamespace, $sClass, $sFilename, $params, 'general', 'authentication_provider');
117 145 }
118 146  
119   -//registerLocation($sName, $sClass, $sCategory, $sTitle, $sDescription, $sDispatcherFilePath = null, $sURL = null)
120 147 function registerAdminPage($sName, $sClass, $sCategory, $sTitle, $sDescription, $sFilename) {
121 148 $sFullname = $sCategory . '/' . $sName;
122 149 $sFilename = $this->_fixFilename($sFilename);
123 150 $this->_aAdminPages[$sFullname] = array($sName, $sClass, $sCategory, $sTitle, $sDescription, $sFilename, null, $this->sNamespace);
  151 +
  152 + // Register helper in DB
  153 + $params = $sName.'|'.$sClass.'|'.$sCategory.'|'.$sTitle.'|'.$sDescription.'|'.$sFilename.'|'.null.'|'.$this->sNamespace;
  154 + $this->registerPluginHelper($sFullname, $sClass, $sFilename, $params, 'general', 'admin_page');
124 155 }
125 156  
126 157 function registerAdminCategory($sPath, $sName, $sDescription) {
127 158 $this->_aAdminCategories[$sPath] = array($sPath, $sName, $sDescription);
  159 +
  160 + // Register helper in DB
  161 + $params = $sPath.'|'.$sName.'|'.$sDescription;
  162 + $this->registerPluginHelper($sPath, $sName, $sPath, $params, 'general', 'admin_category');
128 163 }
129   -
  164 +
  165 + /**
  166 + * Register a new dashlet
  167 + *
  168 + * @param string $sClassName
  169 + * @param string $sNamespace
  170 + * @param string $sFilename
  171 + */
130 172 function registerDashlet($sClassName, $sNamespace, $sFilename) {
131 173 $sFilename = $this->_fixFilename($sFilename);
132 174 $this->_aDashlets[$sNamespace] = array($sClassName, $sNamespace, $sFilename, $this->sNamespace);
  175 +
  176 + $params = $sClassName.'|'.$sNamespace.'|'.$sFilename.'|'.$this->sNamespace;
  177 + $this->registerPluginHelper($sNamespace, $sClassName, $sFilename, $params, 'dashboard', 'dashlet');
133 178 }
134 179  
135 180 function registeri18n($sDomain, $sPath) {
136 181 $sPath = $this->_fixFilename($sPath);
137 182 $this->_ai18n[$sDomain] = array($sDomain, $sPath);
  183 +
  184 + // Register helper in DB
  185 + $params = $sDomain.'|'.$sPath;
  186 + $this->registerPluginHelper($sDomain, $sDomain, $sPath, $params, 'general', 'i18n');
138 187 }
139 188  
140 189 function registeri18nLang($sDomain, $sLang, $sPath) {
... ... @@ -142,55 +191,150 @@ class KTPlugin {
142 191 $sPath = $this->_fixFilename($sPath);
143 192 }
144 193 $this->_ai18nLang["$sDomain/$sLang"] = array($sDomain, $sLang, $sPath);
  194 +
  195 + // Register helper in DB
  196 + $params = $sDomain.'|'.$sLang.'|'.$sPath;
  197 + $this->registerPluginHelper("$sDomain/$sLang", $sDomain, $sPath, $params, 'general', 'i18nlang');
145 198 }
146 199  
147 200 function registerLanguage($sLanguage, $sLanguageName) {
148 201 $this->_aLanguage[$sLanguage] = array($sLanguage, $sLanguageName);
  202 +
  203 + // Register helper in DB
  204 + $params = $sLanguage.'|'.$sLanguageName;
  205 + $this->registerPluginHelper($sLanguage, $sClassName, $sFilename, $params, 'general', 'language');
149 206 }
150   -
  207 +
151 208 function registerHelpLanguage($sPlugin, $sLanguage, $sBasedir) {
152 209 $this->_aHelpLanguage[$sLanguage] = array($sPlugin, $sLanguage, $sBasedir);
  210 +
  211 + // Register helper in DB
  212 + $params = $sPlugin.'|'.$sLanguage.'|'.$sBasedir;
  213 + $this->registerPluginHelper($sLanguage, $sClassName, $sFilename, $params, 'general', 'help_language');
153 214 }
154   -
  215 +
155 216 function registerColumn($sName, $sNamespace, $sClassName, $sFile) {
156 217 $sFile = $this->_fixFilename($sFile);
157 218 $this->_aColumns[$sNamespace] = array($sName, $sNamespace, $sClassName, $sFile);
158   - }
159   -
  219 +
  220 + // Register helper in DB
  221 + $params = $sName.'|'.$sNamespace.'|'.$sClassName.'|'.$sFile;
  222 + $this->registerPluginHelper($sNamespace, $sClassName, $sFile, $params, 'general', 'column');
  223 + }
  224 +
160 225 function registerView($sName, $sNamespace) {
161 226 $this->_aViews[$sNamespace] = array($sName, $sNamespace);
162   - }
  227 +
  228 + // Register helper in DB
  229 + $params = $sName.'|'.$sNamespace;
  230 + $this->registerPluginHelper($sNamespace, '', '', $params, 'general', 'view');
  231 + }
163 232  
164 233 function registerNotificationHandler($sName, $sNamespace, $sPath) {
165 234 $sPath = $this->_fixFilename($sPath);
166 235 $this->_aNotificationHandlers[$sNamespace] = array($sNamespace, $sName, $sPath);
167   - }
  236 +
  237 + // Register helper in DB
  238 + $params = $sNamespace.'|'.$sName.'|'.$sPath;
  239 + $this->registerPluginHelper($sNamespace, $sName, $sPath, $params, 'general', 'notification_handler');
  240 + }
168 241  
169 242 function registerTemplateLocation($sName, $sPath) {
170 243 $sPath = $this->_fixFilename($sPath);
171 244 $this->_aTemplateLocations[$sName] = array($sName, $sPath);
172   - }
173 245  
174   -
  246 + // Register helper in DB
  247 + $params = $sName.'|'.$sPath;
  248 + $this->registerPluginHelper($sName, $sName, $sPath, $params, 'general', 'template_location');
  249 + }
  250 +
  251 + /**
  252 + * Register a new widget
  253 + *
  254 + * @param unknown_type $sClassname
  255 + * @param unknown_type $sNamespace
  256 + * @param unknown_type $sPath
  257 + */
175 258 function registerWidget($sClassname, $sNamespace, $sPath) {
176 259 $sPath = $this->_fixFilename($sPath);
177 260 $this->_aWidgets[$sNamespace] = array($sClassname, $sNamespace, $sPath);
  261 +
  262 + // Register helper in DB
  263 + $params = $sClassname.'|'.$sNamespace.'|'.$sPath;
  264 + $this->registerPluginHelper($sNamespace, $sClassname, $sPath, $params, 'general', 'widget');
178 265 }
179   -
  266 +
180 267 function registerValidator($sClassname, $sNamespace, $sPath) {
181 268 $sPath = $this->_fixFilename($sPath);
182 269 $this->_aValidators[$sNamespace] = array($sClassname, $sNamespace, $sPath);
  270 +
  271 + // Register helper in DB
  272 + $params = $sClassname.'|'.$sNamespace.'|'.$sPath;
  273 + $this->registerPluginHelper($sNamespace, $sClassname, $sPath, $params, 'general', 'validator');
183 274 }
184 275  
185 276  
186 277 function registerCriterion($sClassName, $sNamespace, $sFilename = null, $aInitialize = null) {
187 278 $sFilename = $this->_fixFilename($sFilename);
188 279 $this->_aCriteria[$sNamespace] = array($sClassName, $sNamespace, $sFilename, $aInitialize);
  280 +
  281 + // Register helper in DB
  282 + if(is_array($aInitialize)){
  283 + $sInitialize = implode('_|', $aInitialize);
  284 + }
  285 +
  286 + $params = $sClassName.'|'.$sNamespace.'|'.$sFilename.'|'.$sInitialize;
  287 + $this->registerPluginHelper($sNamespace, $sClassName, $sFilename, $params, 'general', 'criterion');
189 288 }
190 289  
191 290 function registerInterceptor($sClassname, $sNamespace, $sPath = null) {
192 291 $sPath = $this->_fixFilename($sPath);
193 292 $this->_aInterceptors[$sNamespace] = array($sClassname, $sNamespace, $sPath);
  293 +
  294 + // Register helper in DB
  295 + $params = $sClassname.'|'.$sNamespace.'|'.$sPath;
  296 + $this->registerPluginHelper($sNamespace, $sClassname, $sPath, $params, 'general', 'interceptor');
  297 + }
  298 +
  299 + /* ** Refactor into another class ** */
  300 + /**
  301 + * Register the plugin in the DB
  302 + *
  303 + * @param unknown_type $sClassName
  304 + * @param unknown_type $path
  305 + * @param unknown_type $object
  306 + * @param unknown_type $type
  307 + */
  308 + function registerPluginHelper($sNamespace, $sClassName, $path, $object, $view, $type) {
  309 +
  310 + $sql = "SELECT * FROM plugin_helper WHERE namespace = '{$sNamespace}' AND classtype = '{$type}'";
  311 + $res = DBUtil::getOneResult($sql);
  312 +
  313 + $aValues = array();
  314 + $aValues['namespace'] = $sNamespace;
  315 + $aValues['plugin'] = (!empty($this->sNamespace)) ? $this->sNamespace : $sNamespace;
  316 + $aValues['classname'] = $sClassName;
  317 + $aValues['pathname'] = $path;
  318 + $aValues['object'] = $object;
  319 + $aValues['viewtype'] = $view;
  320 + $aValues['classtype'] = $type;
  321 +
  322 + // if record exists - update it.
  323 + if(!empty($res)){
  324 + $id = $res['id'];
  325 + $updateRes = DBUtil::autoUpdate('plugin_helper', $aValues, $id);
  326 + if(PEAR::isError($updateRes)){
  327 + return $updateRes;
  328 + }
  329 + return true;
  330 + }
  331 +
  332 + // Insert into DB
  333 + $res = DBUtil::autoInsert('plugin_helper', $aValues);
  334 + if(PEAR::isError($res)){
  335 + return $res;
  336 + }
  337 + return true;
194 338 }
195 339  
196 340 function _fixFilename($sFilename) {
... ... @@ -234,7 +378,120 @@ class KTPlugin {
234 378 return true;
235 379 }
236 380  
  381 + /**
  382 + * Load the actions, portlets, etc as part of the parent plugin
  383 + *
  384 + */
237 385 function load() {
  386 + // Get actions, portlets, etc, create arrays as part of plugin
  387 + $query = "SELECT * FROM plugin_helper h WHERE plugin = '{$this->sNamespace}'";
  388 + $aPluginHelpers = DBUtil::getResultArray($query);
  389 +
  390 + if(!empty($aPluginHelpers)){
  391 + foreach ($aPluginHelpers as $plugin) {
  392 + $sName = $plugin['namespace'];
  393 + $sParams = $plugin['object'];
  394 + $aParams = explode('|', $sParams);
  395 + $sClassType = $plugin['classtype'];
  396 +
  397 + switch ($sClassType) {
  398 + case 'portlet':
  399 + $aLocation = explode('_|', $aParams[0]);
  400 + $aParams[0] = $aLocation;
  401 + $this->_aPortlets[$sName] = $aParams;
  402 + break;
  403 +
  404 + case 'trigger':
  405 + $this->_aTriggers[$sName] = $aParams;
  406 + break;
  407 +
  408 + case 'action':
  409 + $this->_aActions[$sName] = $aParams;
  410 + break;
  411 +
  412 + case 'page':
  413 + $this->_aPages[$sName] = $aParams;
  414 + break;
  415 +
  416 + case 'authentication_provider':
  417 + $this->_aAuthenticationProviders[$sName] = $aParams;
  418 + break;
  419 +
  420 + case 'admin_category':
  421 + $this->_aAdminCategories[$sName] = $aParams;
  422 + break;
  423 +
  424 + case 'admin_page':
  425 + $this->_aAdminPages[$sName] = $aParams;
  426 + break;
  427 +
  428 + case 'dashlet':
  429 + $this->_aDashlets[$sName] = $aParams;
  430 + break;
  431 +
  432 + case 'i18n':
  433 + $this->_ai18n[$sName] = $aParams;
  434 + break;
  435 +
  436 + case 'i18nlang':
  437 + $this->_ai18nLang[$sName] = $aParams;
  438 + break;
  439 +
  440 + case 'language':
  441 + $this->_aLanguage[$sName] = $aParams;
  442 + break;
  443 +
  444 + case 'help_language':
  445 + $this->_aHelpLanguage[$sName] = $aParams;
  446 + break;
  447 +
  448 + case 'workflow_trigger':
  449 + $this->_aWFTriggers[$sName] = $aParams;
  450 + break;
  451 +
  452 + case 'column':
  453 + $this->_aColumns[$sName] = $aParams;
  454 + break;
  455 +
  456 + case 'view':
  457 + $this->_aViews[$sName] = $aParams;
  458 + break;
  459 +
  460 + case 'notification_handler':
  461 + $this->_aNotificationHandlers[$sName] = $aParams;
  462 + break;
  463 +
  464 + case 'template_location':
  465 + $this->_aTemplateLocations[$sName] = $aParams;
  466 + break;
  467 +
  468 + case 'criterion':
  469 + $aInit = explode('_|', $aParams[3]);
  470 + $aParams[3] = $aInit;
  471 + $this->_aCriteria[$sName] = $aParams;
  472 + break;
  473 +
  474 + case 'widget':
  475 + $this->_aWidgets[$sName] = $aParams;
  476 + break;
  477 +
  478 + case 'validator':
  479 + $this->_aValidators[$sName] = $aParams;
  480 + break;
  481 +
  482 + case 'interceptor':
  483 + $this->_aInterceptors[$sName] = $aParams;
  484 + break;
  485 + }
  486 + }
  487 + }
  488 + }
  489 +
  490 + /**
  491 + * Old load function
  492 + *
  493 + */
  494 + function load_old() {
238 495 if (!$this->isRegistered()) {
239 496 return;
240 497 }
... ... @@ -245,15 +502,15 @@ class KTPlugin {
245 502 require_once(KT_LIB_DIR . '/triggers/triggerregistry.inc.php');
246 503 require_once(KT_LIB_DIR . '/plugins/pageregistry.inc.php');
247 504 require_once(KT_LIB_DIR . '/authentication/authenticationproviderregistry.inc.php');
248   - require_once(KT_LIB_DIR . "/plugins/KTAdminNavigation.php");
249   - require_once(KT_LIB_DIR . "/dashboard/dashletregistry.inc.php");
250   - require_once(KT_LIB_DIR . "/i18n/i18nregistry.inc.php");
  505 + require_once(KT_LIB_DIR . "/plugins/KTAdminNavigation.php");
  506 + require_once(KT_LIB_DIR . "/dashboard/dashletregistry.inc.php");
  507 + require_once(KT_LIB_DIR . "/i18n/i18nregistry.inc.php");
251 508 require_once(KT_LIB_DIR . "/help/help.inc.php");
252 509 require_once(KT_LIB_DIR . "/workflow/workflowutil.inc.php");
253   - require_once(KT_LIB_DIR . "/widgets/widgetfactory.inc.php");
254   - require_once(KT_LIB_DIR . "/validation/validatorfactory.inc.php");
255   - require_once(KT_LIB_DIR . "/browse/columnregistry.inc.php");
256   - require_once(KT_LIB_DIR . "/browse/criteriaregistry.php");
  510 + require_once(KT_LIB_DIR . "/widgets/widgetfactory.inc.php");
  511 + require_once(KT_LIB_DIR . "/validation/validatorfactory.inc.php");
  512 + require_once(KT_LIB_DIR . "/browse/columnregistry.inc.php");
  513 + require_once(KT_LIB_DIR . "/browse/criteriaregistry.php");
257 514 require_once(KT_LIB_DIR . "/authentication/interceptorregistry.inc.php");
258 515  
259 516 $oPRegistry =& KTPortletRegistry::getSingleton();
... ... @@ -261,16 +518,16 @@ class KTPlugin {
261 518 $oARegistry =& KTActionRegistry::getSingleton();
262 519 $oPageRegistry =& KTPageRegistry::getSingleton();
263 520 $oAPRegistry =& KTAuthenticationProviderRegistry::getSingleton();
264   - $oAdminRegistry =& KTAdminNavigationRegistry::getSingleton();
  521 + $oAdminRegistry =& KTAdminNavigationRegistry::getSingleton();
265 522 $oDashletRegistry =& KTDashletRegistry::getSingleton();
266 523 $oi18nRegistry =& KTi18nRegistry::getSingleton();
267 524 $oKTHelpRegistry =& KTHelpRegistry::getSingleton();
268 525 $oWFTriggerRegistry =& KTWorkflowTriggerRegistry::getSingleton();
269   - $oColumnRegistry =& KTColumnRegistry::getSingleton();
  526 + $oColumnRegistry =& KTColumnRegistry::getSingleton();
270 527 $oNotificationHandlerRegistry =& KTNotificationRegistry::getSingleton();
271 528 $oTemplating =& KTTemplating::getSingleton();
272 529 $oWidgetFactory =& KTWidgetFactory::getSingleton();
273   - $oValidatorFactory =& KTValidatorFactory::getSingleton();
  530 + $oValidatorFactory =& KTValidatorFactory::getSingleton();
274 531 $oCriteriaRegistry =& KTCriteriaRegistry::getSingleton();
275 532 $oInterceptorRegistry =& KTInterceptorRegistry::getSingleton();
276 533  
... ... @@ -301,7 +558,7 @@ class KTPlugin {
301 558 foreach ($this->_aAdminPages as $k => $v) {
302 559 call_user_func_array(array(&$oAdminRegistry, 'registerLocation'), $v);
303 560 }
304   -
  561 +
305 562 foreach ($this->_aDashlets as $k => $v) {
306 563 call_user_func_array(array(&$oDashletRegistry, 'registerDashlet'), $v);
307 564 }
... ... @@ -317,38 +574,38 @@ class KTPlugin {
317 574 foreach ($this->_aLanguage as $k => $v) {
318 575 call_user_func_array(array(&$oi18nRegistry, 'registerLanguage'), $v);
319 576 }
320   -
  577 +
321 578 foreach ($this->_aHelpLanguage as $k => $v) {
322 579 call_user_func_array(array(&$oKTHelpRegistry, 'registerHelp'), $v);
323 580 }
324   -
  581 +
325 582 foreach ($this->_aWFTriggers as $k => $v) {
326 583 call_user_func_array(array(&$oWFTriggerRegistry, 'registerWorkflowTrigger'), $v);
327 584 }
328   -
  585 +
329 586 foreach ($this->_aColumns as $k => $v) {
330 587 call_user_func_array(array(&$oColumnRegistry, 'registerColumn'), $v);
331   - }
332   -
  588 + }
  589 +
333 590 foreach ($this->_aViews as $k => $v) {
334 591 call_user_func_array(array(&$oColumnRegistry, 'registerView'), $v);
335   - }
  592 + }
336 593  
337 594 foreach ($this->_aNotificationHandlers as $k => $v) {
338 595 call_user_func_array(array(&$oNotificationHandlerRegistry, 'registerNotificationHandler'), $v);
339   - }
  596 + }
340 597  
341 598 foreach ($this->_aTemplateLocations as $k => $v) {
342 599 call_user_func_array(array(&$oTemplating, 'addLocation'), $v);
343   - }
  600 + }
344 601  
345 602 foreach ($this->_aCriteria as $k => $v) {
346 603 call_user_func_array(array(&$oCriteriaRegistry, 'registerCriterion'), $v);
347   - }
348   -
  604 + }
  605 +
349 606 foreach ($this->_aWidgets as $k => $v) {
350 607 call_user_func_array(array(&$oWidgetFactory, 'registerWidget'), $v);
351   - }
  608 + }
352 609  
353 610 foreach ($this->_aValidators as $k => $v) {
354 611 call_user_func_array(array(&$oValidatorFactory, 'registerValidator'), $v);
... ... @@ -369,9 +626,9 @@ class KTPlugin {
369 626 }
370 627 return $sFilename;
371 628 }
372   -
  629 +
373 630 function upgradePlugin($iStart, $iEnd) {
374   - if (is_null($this->sSQLDir)) {
  631 + if (is_null($this->sSQLDir)) {
375 632 return $iEnd; // no db changes, must reach the "end".
376 633 }
377 634 global $default;
... ... @@ -382,7 +639,7 @@ class KTPlugin {
382 639 if (!file_exists($sqlfile)) {
383 640 continue; // skip it.
384 641 }
385   - $queries = SQLFile::sqlFromFile($sqlfile);
  642 + $queries = SQLFile::sqlFromFile($sqlfile);
386 643 $res = DBUtil::runQueries($queries, $default->_admindb);
387 644  
388 645 if (PEAR::isError($res)) {
... ... @@ -415,7 +672,7 @@ class KTPlugin {
415 672 'friendlyname' => $friendly_name,
416 673 ));
417 674 // FIXME we -really- need to raise an error here, somehow.
418   - return $oEntity;
  675 + return $oEntity;
419 676 } else {
420 677 $oEntity->updateFromArray(array(
421 678 'path' => $this->stripKtDir($this->sFilename),
... ...
lib/plugins/pluginregistry.inc.php
... ... @@ -6,7 +6,7 @@
6 6 * License Version 1.1.2 ("License"); You may not use this file except in
7 7 * compliance with the License. You may obtain a copy of the License at
8 8 * http://www.knowledgetree.com/KPL
9   - *
  9 + *
10 10 * Software distributed under the License is distributed on an "AS IS"
11 11 * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.
12 12 * See the License for the specific language governing rights and
... ... @@ -17,9 +17,9 @@
17 17 * (ii) the KnowledgeTree copyright notice
18 18 * in the same form as they appear in the distribution. See the License for
19 19 * requirements.
20   - *
  20 + *
21 21 * The Original Code is: KnowledgeTree Open Source
22   - *
  22 + *
23 23 * The Initial Developer of the Original Code is The Jam Warehouse Software
24 24 * (Pty) Ltd, trading as KnowledgeTree.
25 25 * Portions created by The Jam Warehouse Software (Pty) Ltd are Copyright
... ... @@ -40,8 +40,18 @@ class KTPluginRegistry {
40 40 return $GLOBALS['_KT_PLUGIN']['oKTPluginRegistry'];
41 41 }
42 42  
  43 + /**
  44 + * Register the plugin in the database
  45 + *
  46 + * @param unknown_type $sClassName
  47 + * @param unknown_type $sNamespace
  48 + * @param unknown_type $sFilename
  49 + */
43 50 function registerPlugin($sClassName, $sNamespace, $sFilename = null) {
44 51 $this->_aPluginDetails[$sNamespace] = array($sClassName, $sNamespace, $sFilename);
  52 +
  53 + $object = $sClassName.'|'.$sNamespace.'|'.$sFilename;
  54 + $res = KTPlugin::registerPluginHelper($sNamespace, $sClassName, $sFilename, $object, 'general', 'plugin');
45 55 }
46 56  
47 57 function &getPlugin($sNamespace) {
... ...
lib/plugins/pluginutil.inc.php
... ... @@ -6,7 +6,7 @@
6 6 * License Version 1.1.2 ("License"); You may not use this file except in
7 7 * compliance with the License. You may obtain a copy of the License at
8 8 * http://www.knowledgetree.com/KPL
9   - *
  9 + *
10 10 * Software distributed under the License is distributed on an "AS IS"
11 11 * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.
12 12 * See the License for the specific language governing rights and
... ... @@ -17,9 +17,9 @@
17 17 * (ii) the KnowledgeTree copyright notice
18 18 * in the same form as they appear in the distribution. See the License for
19 19 * requirements.
20   - *
  20 + *
21 21 * The Original Code is: KnowledgeTree Open Source
22   - *
  22 + *
23 23 * The Initial Developer of the Original Code is The Jam Warehouse Software
24 24 * (Pty) Ltd, trading as KnowledgeTree.
25 25 * Portions created by The Jam Warehouse Software (Pty) Ltd are Copyright
... ... @@ -59,69 +59,210 @@ class KTPluginResourceRegistry {
59 59 }
60 60  
61 61 class KTPluginUtil {
62   - function loadPlugins () {
63   - $sPluginCache = KT_DIR . '/var/plugin-cache';
64   - if (file_exists($sPluginCache)) {
65   - require_once(KT_LIB_DIR . "/plugins/plugin.inc.php");
66   - require_once(KT_LIB_DIR . '/actions/actionregistry.inc.php');
67   - require_once(KT_LIB_DIR . '/actions/portletregistry.inc.php');
68   - require_once(KT_LIB_DIR . '/triggers/triggerregistry.inc.php');
69   - require_once(KT_LIB_DIR . '/plugins/pageregistry.inc.php');
70   - require_once(KT_LIB_DIR . '/authentication/authenticationproviderregistry.inc.php');
71   - require_once(KT_LIB_DIR . "/plugins/KTAdminNavigation.php");
72   - require_once(KT_LIB_DIR . "/dashboard/dashletregistry.inc.php");
73   - require_once(KT_LIB_DIR . "/i18n/i18nregistry.inc.php");
74   - require_once(KT_LIB_DIR . "/help/help.inc.php");
75   - require_once(KT_LIB_DIR . "/browse/columnregistry.inc.php");
76   - require_once(KT_LIB_DIR . "/authentication/interceptorregistry.inc.php");
77   - require_once(KT_LIB_DIR . "/widgets/widgetfactory.inc.php");
78   - require_once(KT_LIB_DIR . "/validation/validatorfactory.inc.php");
79   - $GLOBALS['_KT_PLUGIN'] = unserialize(file_get_contents($sPluginCache));
80   - $GLOBALS['_KT_PLUGIN']['oKTPluginRegistry']->_aPlugins = array();
81   - return;
  62 + /**
  63 + * Load the plugins for the current page
  64 + *
  65 + * @param unknown_type $sType
  66 + */
  67 + function loadPlugins ($sType) {
  68 +
  69 + if($sType != 'dashboard'){
  70 + $sType = 'general';
82 71 }
83 72 $GLOBALS['_KT_PLUGIN'] = array();
84   - $aPlugins = KTPluginEntity::getList("disabled=0");
85   - if (count($aPlugins) === 0) {
  73 +
  74 + $aPlugins = array();
  75 + $aPluginHelpers = array();
  76 +
  77 + // Get the list of enabled plugins
  78 + $query = "SELECT * FROM plugin_helper h, plugins p
  79 + WHERE p.namespace = h.plugin AND p.disabled = 0 AND h.classtype='plugin'";
  80 + $aPluginHelpers = DBUtil::getResultArray($query);
  81 +
  82 + // Check that there are plugins and if not, register them
  83 + if (empty($aPluginHelpers)) {
86 84 KTPluginUtil::registerPlugins();
  85 +
  86 + $query = "SELECT * FROM plugin_helper h, plugins p
  87 + WHERE p.namespace = h.plugin AND p.disabled = 0 AND h.viewtype='{$sType}' AND h.classtype='plugin'";
  88 + $aPluginHelpers = DBUtil::getResultArray($query);
87 89 }
88   - $aPaths = array();
89   - $aPaths[] = KT_DIR . '/plugins/ktcore/KTCorePlugin.php';
90   - $aPaths[] = KT_DIR . '/plugins/ktcore/KTCoreLanguagePlugin.php';
91   - foreach ($aPlugins as $oPlugin) {
92   - if (!is_a($oPlugin, 'KTPluginEntity')) {
93   - print "<pre>";
94   - print "loadPlugins()\n";
95   - var_dump($aPlugins);
96   - exit(0);
97   - }
98   - $sPath = $oPlugin->getPath();
99   - if (!KTUtil::isAbsolutePath($sPath)) {
100   - $sPath = sprintf("%s/%s", KT_DIR, $sPath);
101   - }
102   - $aPaths[] = $sPath;
103   - }
104   - $aPaths = array_unique($aPaths);
105   - foreach ($aPaths as $sPath) {
106   - if (file_exists($sPath)) {
107   - require_once($sPath);
  90 +
  91 + // Create plugin objects
  92 + foreach ($aPluginHelpers as $aItem){
  93 + $classname = $aItem['classname'];
  94 + $path = $aItem['pathname'];
  95 +
  96 + if (!empty($path)) {
  97 + require_once($path);
108 98 }
  99 +
  100 + $oPlugin = new $classname($path);
  101 + $aPlugins[] = $oPlugin;
  102 + $oPlugin->load();
109 103 }
110   - $oRegistry =& KTPluginRegistry::getSingleton();
111   - $aPlugins =& $oRegistry->getPlugins();
112   - foreach ($aPlugins as $oPlugin) {
113   - if (!isset($aOrder[$oPlugin->iOrder])) {
114   - $aOrder[$oPlugin->iOrder] = array();
  104 +
  105 + // load plugin helpers into global space
  106 + $query = "SELECT h.* FROM plugin_helper h, plugins p
  107 + WHERE p.namespace = h.plugin AND p.disabled = 0 ";//WHERE viewtype='{$sType}'";
  108 + $aPluginList = DBUtil::getResultArray($query);
  109 + KTPluginUtil::load($aPluginList);
  110 +
  111 + // Load the template locations
  112 + $query = "SELECT * FROM plugin_helper h WHERE h.classtype='locations'";
  113 + $aLocations = DBUtil::getResultArray($query);
  114 + if(!empty($aLocations)){
  115 + $oTemplating =& KTTemplating::getSingleton();
  116 + foreach ($aLocations as $location){
  117 + $aParams = explode('|', $location['object']);
  118 + call_user_func_array(array(&$oTemplating, 'addLocation2'), $aParams);
115 119 }
116   - $aOrder[$oPlugin->iOrder][] = $oPlugin;
117 120 }
118   - ksort($aOrder, SORT_NUMERIC);
119   - foreach ($aOrder as $iOrder => $aOrderPlugins) {
120   - foreach ($aOrderPlugins as $oPlugin) {
121   - $oPlugin->load();
122   - }
  121 + return;
  122 + }
  123 +
  124 + /**
  125 + * Load the plugins into the global space
  126 + *
  127 + * @param array $aPlugins
  128 + */
  129 + function load($aPlugins) {
  130 + require_once(KT_LIB_DIR . '/actions/actionregistry.inc.php');
  131 + require_once(KT_LIB_DIR . '/actions/portletregistry.inc.php');
  132 + require_once(KT_LIB_DIR . '/triggers/triggerregistry.inc.php');
  133 + require_once(KT_LIB_DIR . '/plugins/pageregistry.inc.php');
  134 + require_once(KT_LIB_DIR . '/authentication/authenticationproviderregistry.inc.php');
  135 + require_once(KT_LIB_DIR . "/plugins/KTAdminNavigation.php");
  136 + require_once(KT_LIB_DIR . "/dashboard/dashletregistry.inc.php");
  137 + require_once(KT_LIB_DIR . "/i18n/i18nregistry.inc.php");
  138 + require_once(KT_LIB_DIR . "/help/help.inc.php");
  139 + require_once(KT_LIB_DIR . "/workflow/workflowutil.inc.php");
  140 + require_once(KT_LIB_DIR . "/widgets/widgetfactory.inc.php");
  141 + require_once(KT_LIB_DIR . "/validation/validatorfactory.inc.php");
  142 + require_once(KT_LIB_DIR . "/browse/columnregistry.inc.php");
  143 + require_once(KT_LIB_DIR . "/browse/criteriaregistry.php");
  144 + require_once(KT_LIB_DIR . "/authentication/interceptorregistry.inc.php");
  145 +
  146 + $oPRegistry =& KTPortletRegistry::getSingleton();
  147 + $oTRegistry =& KTTriggerRegistry::getSingleton();
  148 + $oARegistry =& KTActionRegistry::getSingleton();
  149 + $oPageRegistry =& KTPageRegistry::getSingleton();
  150 + $oAPRegistry =& KTAuthenticationProviderRegistry::getSingleton();
  151 + $oAdminRegistry =& KTAdminNavigationRegistry::getSingleton();
  152 + $oDashletRegistry =& KTDashletRegistry::getSingleton();
  153 + $oi18nRegistry =& KTi18nRegistry::getSingleton();
  154 + $oKTHelpRegistry =& KTHelpRegistry::getSingleton();
  155 + $oWFTriggerRegistry =& KTWorkflowTriggerRegistry::getSingleton();
  156 + $oColumnRegistry =& KTColumnRegistry::getSingleton();
  157 + $oNotificationHandlerRegistry =& KTNotificationRegistry::getSingleton();
  158 + $oTemplating =& KTTemplating::getSingleton();
  159 + $oWidgetFactory =& KTWidgetFactory::getSingleton();
  160 + $oValidatorFactory =& KTValidatorFactory::getSingleton();
  161 + $oCriteriaRegistry =& KTCriteriaRegistry::getSingleton();
  162 + $oInterceptorRegistry =& KTInterceptorRegistry::getSingleton();
  163 + $oKTPluginRegistry =& KTPluginRegistry::getSingleton();
  164 +
  165 + // Loop through the loaded plugins and register them
  166 + foreach ($aPlugins as $plugin){
  167 + $sName = $plugin['namespace'];
  168 + $sParams = $plugin['object'];
  169 + $aParams = explode('|', $sParams);
  170 + $sClassType = $plugin['classtype'];
  171 +
  172 + switch ($sClassType) {
  173 + case 'portlet':
  174 + $aLocation = explode('_|', $aParams[0]);
  175 + $aParams[0] = $aLocation;
  176 + call_user_func_array(array(&$oPRegistry, 'registerPortlet'), $aParams);
  177 + break;
  178 +
  179 + case 'trigger':
  180 + call_user_func_array(array(&$oTRegistry, 'registerTrigger'), $aParams);
  181 + break;
  182 +
  183 + case 'action':
  184 + call_user_func_array(array(&$oARegistry, 'registerAction'), $aParams);
  185 + break;
  186 +
  187 + case 'page':
  188 + call_user_func_array(array(&$oPageRegistry, 'registerPage'), $aParams);
  189 + break;
  190 +
  191 + case 'authentication_provider':
  192 + call_user_func_array(array(&$oAPRegistry, 'registerAuthenticationProvider'), $aParams);
  193 + break;
  194 +
  195 + case 'admin_category':
  196 + call_user_func_array(array(&$oAdminRegistry, 'registerCategory'), $aParams);
  197 + break;
  198 +
  199 + case 'admin_page':
  200 + call_user_func_array(array(&$oAdminRegistry, 'registerLocation'), $aParams);
  201 + break;
  202 +
  203 + case 'dashlet':
  204 + call_user_func_array(array(&$oDashletRegistry, 'registerDashlet'), $aParams);
  205 + break;
  206 +
  207 + case 'i18n':
  208 + call_user_func_array(array(&$oi18nRegistry, 'registeri18n'), $aParams);
  209 + break;
  210 +
  211 + case 'i18nlang':
  212 + call_user_func_array(array(&$oi18nRegistry, 'registeri18nLang'), $aParams);
  213 + break;
  214 +
  215 + case 'language':
  216 + call_user_func_array(array(&$oi18nRegistry, 'registerLanguage'), $aParams);
  217 + break;
  218 +
  219 + case 'help_language':
  220 + call_user_func_array(array(&$oKTHelpRegistry, 'registerHelp'), $aParams);
  221 + break;
  222 +
  223 + case 'workflow_trigger':
  224 + call_user_func_array(array(&$oWFTriggerRegistry, 'registerWorkflowTrigger'), $aParams);
  225 + break;
  226 +
  227 + case 'column':
  228 + call_user_func_array(array(&$oColumnRegistry, 'registerColumn'), $aParams);
  229 + break;
  230 +
  231 + case 'view':
  232 + call_user_func_array(array(&$oColumnRegistry, 'registerView'), $aParams);
  233 + break;
  234 +
  235 + case 'notification_handler':
  236 + call_user_func_array(array(&$oNotificationHandlerRegistry, 'registerNotificationHandler'), $aParams);
  237 + break;
  238 +
  239 + case 'template_location':
  240 + call_user_func_array(array(&$oTemplating, 'addLocation'), $aParams);
  241 + break;
  242 +
  243 + case 'criterion':
  244 + $aInit = explode('_|', $aParams[3]);
  245 + $aParams[3] = $aInit;
  246 + call_user_func_array(array(&$oCriteriaRegistry, 'registerCriterion'), $aParams);
  247 + break;
  248 +
  249 + case 'widget':
  250 + call_user_func_array(array(&$oWidgetFactory, 'registerWidget'), $aParams);
  251 + break;
  252 +
  253 + case 'validator':
  254 + call_user_func_array(array(&$oValidatorFactory, 'registerValidator'), $aParams);
  255 + break;
  256 +
  257 + case 'interceptor':
  258 + call_user_func_array(array(&$oInterceptorRegistry, 'registerInterceptor'), $aParams);
  259 + break;
  260 +
  261 + case 'plugin':
  262 + $oKTPluginRegistry->_aPluginDetails[$sName] = $aParams;
  263 + break;
  264 + }
123 265 }
124   - // file_put_contents($sPluginCache, serialize($GLOBALS['_KT_PLUGIN']));
125 266 }
126 267  
127 268 function registerPlugins () {
... ... @@ -214,7 +355,7 @@ class KTPluginUtil {
214 355 $oRegistry =& KTPluginResourceRegistry::getSingleton();
215 356 return $oRegistry->isRegistered($path);
216 357 }
217   -
  358 +
218 359 function registerResource($path) {
219 360 $oRegistry =& KTPluginResourceRegistry::getSingleton();
220 361 $oRegistry->registerResource($path);
... ... @@ -244,20 +385,20 @@ class KTPluginUtil {
244 385  
245 386 // utility function to detect if the plugin is loaded and active.
246 387 function pluginIsActive($sNamespace) {
247   -
248   -
249   -
  388 +
  389 +
  390 +
250 391 $oReg =& KTPluginRegistry::getSingleton();
251 392 $plugin = $oReg->getPlugin($sNamespace);
252   -
253   -
254   -
  393 +
  394 +
  395 +
255 396 if (is_null($plugin) || PEAR::isError($plugin)) { return false; } // no such plugin
256 397 else { // check if its active
257 398 $ent = KTPluginEntity::getByNamespace($sNamespace);
258 399  
259 400 if (PEAR::isError($ent)) { return false; }
260   -
  401 +
261 402 // we now can ask
262 403 return (!$ent->getDisabled());
263 404 }
... ...
lib/templating/kt3template.inc.php
... ... @@ -6,7 +6,7 @@
6 6 * License Version 1.1.2 ("License"); You may not use this file except in
7 7 * compliance with the License. You may obtain a copy of the License at
8 8 * http://www.knowledgetree.com/KPL
9   - *
  9 + *
10 10 * Software distributed under the License is distributed on an "AS IS"
11 11 * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.
12 12 * See the License for the specific language governing rights and
... ... @@ -17,9 +17,9 @@
17 17 * (ii) the KnowledgeTree copyright notice
18 18 * in the same form as they appear in the distribution. See the License for
19 19 * requirements.
20   - *
  20 + *
21 21 * The Original Code is: KnowledgeTree Open Source
22   - *
  22 + *
23 23 * The Initial Developer of the Original Code is The Jam Warehouse Software
24 24 * (Pty) Ltd, trading as KnowledgeTree.
25 25 * Portions created by The Jam Warehouse Software (Pty) Ltd are Copyright
... ... @@ -33,12 +33,12 @@
33 33 * KT3 Template Base
34 34 *
35 35 * Represents core UI logic, including how sub-components interact with
36   - * the overall page.
  36 + * the overall page.
37 37 *
38 38 * For the meaning of each of the variables and functions, see inline.
39 39 *
40 40 */
41   -
  41 +
42 42 require_once(KT_LIB_DIR . "/plugins/pluginregistry.inc.php");
43 43 require_once(KT_LIB_DIR . "/templating/templating.inc.php");
44 44 require_once(KT_LIB_DIR . "/session/control.inc");
... ... @@ -55,13 +55,13 @@ class KTPage {
55 55 var $theme_ie_only_css = Array();
56 56 var $js_standalone = Array();
57 57 var $css_standalone = Array();
58   -
  58 +
59 59 /** context-relevant information */
60 60 var $errStack = Array();
61 61 var $infoStack = Array();
62 62 var $portlets = Array();
63 63 var $show_portlets = true;
64   -
  64 +
65 65 /** miscellaneous items */
66 66 var $title = '';
67 67 var $systemName = APP_NAME;
... ... @@ -72,11 +72,11 @@ class KTPage {
72 72 var $menu = null;
73 73 var $userMenu = null;
74 74 var $helpPage = null;
75   -
  75 +
76 76 /** the "component". Used to set the page header (see documentation for explanation). */
77 77 var $componentLabel = 'Browse Documents';
78 78 var $componentClass = 'browse_collections';
79   -
  79 +
80 80 /** $contents is the center of the page. In KT < 3, this was CentralPayload. */
81 81 var $contents = '';
82 82  
... ... @@ -84,14 +84,14 @@ class KTPage {
84 84  
85 85 var $contentType = 'text/html';
86 86 var $charset = 'UTF-8';
87   -
  87 +
88 88 var $content_class;
89   -
  89 +
90 90 /* further initialisation */
91 91 function KTPage() {
92   - global $default;
  92 + global $default;
93 93 $oConfig = KTConfig::getSingleton();
94   -
  94 +
95 95 /* default css files initialisation */
96 96 $aCSS = Array(
97 97 "resources/css/kt-framing.css",
... ... @@ -99,7 +99,7 @@ class KTPage {
99 99 "resources/css/kt-headings.css"
100 100 );
101 101 $this->requireCSSResources($aCSS);
102   -
  102 +
103 103 if($oConfig->get('ui/morphEnabled') == '1'){
104 104 $morphTheme = $oConfig->get('ui/morphTo');
105 105 $this->requireThemeCSSResource('skins/kts_'.$oConfig->get('ui/morphTo').'/kt-morph.css');
... ... @@ -107,13 +107,13 @@ class KTPage {
107 107 }
108 108 // IE only
109 109 $this->requireCSSResource("resources/css/kt-ie-icons.css", true);
110   -
  110 +
111 111 /* default js files initialisation */
112 112 $aJS = Array();
113 113  
114 114 $aJS[] = 'thirdpartyjs/yui/yahoo/yahoo.js';
115 115 $aJS[] = 'thirdpartyjs/yui/utilities/utilities.js';
116   - /*
  116 + /*
117 117 $aJS[] = 'thirdpartyjs/MochiKit/MochiKit.js';
118 118 $aJS[] = 'thirdpartyjs/MochiKit/New.js';
119 119 $aJS[] = 'thirdpartyjs/MochiKit/DragAndDrop.js';
... ... @@ -127,58 +127,63 @@ class KTPage {
127 127 $aJS[] = 'thirdpartyjs/curvycorners/rounded_corners_lite.inc.js';
128 128 $aJS[] = 'resources/js/loader.js';
129 129 $aJS[] = 'thirdpartyjs/yui/tools/tools.js';
130   -
131 130  
132   -
  131 +
  132 +
133 133 //$aJS[] = 'thirdpartyjs/MochiKit/Iter.js';
134 134 //$aJS[] = 'thirdpartyjs/MochiKit/DOM.js';
135 135 //$aJS[] = 'thirdpartyjs/MochiKit/Logging.js';
136 136 //$aJS[] = 'thirdpartyjs/MochiKit/Async.js';
137   - //$aJS[] = 'thirdpartyjs/MochiKit/Signal.js';
  137 + //$aJS[] = 'thirdpartyjs/MochiKit/Signal.js';
138 138 //$aJS[] = 'thirdpartyjs/MochiKit/.js';
139 139 //$aJS[] = 'resources/js/translate.js';
140 140  
141 141 $this->requireJSResources($aJS);
142   -
  142 +
143 143 // this is horrid, but necessary.
144 144 $this->requireJSStandalone('addLoadEvent(partial(initDeleteProtection, "' . _kt('Are you sure you wish to delete this item?') . '"));');
145   -
  145 +
146 146 /* menu initialisation*/
147 147 // FIXME: how do we want to handle the menu?
148 148 $this->initMenu();
149   -
  149 +
150 150 /* portlet initialisation */
151 151 $this->show_portlets = true;
152 152 /* breadcrumbs */
153 153 }
154   -
  154 +
155 155 // initiliase the menu.
156 156 function initMenu() {
157   - // FIXME: we lost the getDefaultAction stuff - do we care?
158   - // note that key == action. this is _important_, since we crossmatch the breadcrumbs against this for "active"
159   - $this->menu = array("dashboard" => $this->_actionHelper(array("name" => _kt("Dashboard"), "action" => "dashboard", "active" => 0)),
  157 + // FIXME: we lost the getDefaultAction stuff - do we care?
  158 + // note that key == action. this is _important_, since we crossmatch the breadcrumbs against this for "active"
  159 + $this->menu = array();
  160 + $this->menu['dashboard'] = array('label' => _kt("Dashboard"), 'url' => 'dashboard.php');
  161 + $this->menu['browse'] = array('label' => _kt("Browse Documents"), 'url' => 'browse.php');
  162 + $this->menu['administration'] = array('label' => _kt("DMS Administration"), 'url' => 'admin.php');
  163 + /*
  164 + $this->menu = array("dashboard" => $this->_actionHelper(array("name" => _kt("Dashboard"), "action" => "dashboard", "active" => 0)),
160 165 "browse" => $this->_actionHelper(array("name" => _kt("Browse Documents"), "action" => "browse", "active" => 0)),
161 166 "administration" => $this->_actionHelper(array("name" => _kt("DMS Administration"), "action" => "administration", "active" => 0)),);
162   - }
163   -
164   -
165   - function setTitle($sTitle) {
166   - $this->title = $sTitle;
  167 + */
167 168 }
168 169  
169   - /* javascript handling */
  170 + function setTitle($sTitle) {
  171 + $this->title = $sTitle;
  172 + }
  173 +
  174 + /* javascript handling */
170 175 // require that the specified JS file is referenced.
171 176 function requireJSResource($sResourceURL) {
172   - $this->js_resources[$sResourceURL] = 1; // use the keys to prevent multiple copies.
  177 + $this->js_resources[$sResourceURL] = 1; // use the keys to prevent multiple copies.
173 178 }
174   -
  179 +
175 180 // require that the specified JS files are referenced.
176 181 function requireJSResources($aResourceURLs) {
177 182 foreach ($aResourceURLs as $sResourceURL) {
178 183 $this->js_resources[$sResourceURL] = 1;
179 184 }
180 185 }
181   -
  186 +
182 187 // list the distinct js resources.
183 188 function getJSResources() {
184 189 return array_keys($this->js_resources);
... ... @@ -191,7 +196,7 @@ class KTPage {
191 196 function getJSStandalone() {
192 197 return array_keys($this->js_standalone);
193 198 }
194   -
  199 +
195 200 /* css handling */
196 201 // require that the specified CSS file is referenced.
197 202 function requireCSSResource($sResourceURL, $ieOnly = false) {
... ... @@ -201,7 +206,7 @@ class KTPage {
201 206 $this->ie_only_css[$sResourceURL] = 1;
202 207 }
203 208 }
204   -
  209 +
205 210 // require that the specified CSS file is referenced.
206 211 function requireThemeCSSResource($sResourceURL, $ieOnly = false) {
207 212 if ($ieOnly !== true) {
... ... @@ -210,28 +215,28 @@ class KTPage {
210 215 $this->theme_ie_only_css[$sResourceURL] = 1;
211 216 }
212 217 }
213   -
  218 +
214 219 // require that the specified CSS files are referenced.
215 220 function requireCSSResources($aResourceURLs) {
216 221 foreach ($aResourceURLs as $sResourceURL) {
217 222 $this->css_resources[$sResourceURL] = 1;
218 223 }
219 224 }
220   -
  225 +
221 226 // list the distinct CSS resources.
222 227 function getCSSResources() {
223 228 return array_keys($this->css_resources);
224 229 }
225   -
  230 +
226 231 // list the distinct CSS resources.
227 232 function getThemeCSSResources() {
228 233 return array_keys($this->theme_css_resources);
229 234 }
230   -
  235 +
231 236 function getCSSResourcesForIE() {
232 237 return array_keys($this->ie_only_css);
233 238 }
234   -
  239 +
235 240 function getThemeCSSResourcesForIE() {
236 241 return array_keys($this->theme_ie_only_css);
237 242 }
... ... @@ -243,13 +248,13 @@ class KTPage {
243 248 function getCSSStandalone() {
244 249 return array_keys($this->css_standalone);
245 250 }
246   -
  251 +
247 252 function setPageContents($contents) { $this->contents = $contents; }
248 253 function setShowPortlets($bShow) { $this->show_portlets = $bShow; }
249   -
  254 +
250 255 /* set the breadcrumbs. the first item is the area name.
251 256 the rest are breadcrumbs. */
252   - function setBreadcrumbs($aBreadcrumbs) {
  257 + function setBreadcrumbs($aBreadcrumbs) {
253 258 $breadLength = count($aBreadcrumbs);
254 259 if ($breadLength != 0) {
255 260 $this->breadcrumbSection = $this->_actionhelper($aBreadcrumbs[0]);
... ... @@ -262,12 +267,12 @@ class KTPage {
262 267 $this->breadcrumbs = array_map(array(&$this, "_actionhelper"), array_slice($aBreadcrumbs, 1));
263 268 }
264 269 }
265   -
  270 +
266 271 function setBreadcrumbDetails($sBreadcrumbDetails) { $this->breadcrumbDetails = $sBreadcrumbDetails; }
267 272 function setUser($oUser) { $this->user = $oUser; }
268   -
269   - function setContentClass($sClass) { $this->content_class = $sClass; }
270   -
  273 +
  274 + function setContentClass($sClass) { $this->content_class = $sClass; }
  275 +
271 276 // FIXME refactor setSection to be generic, not an if-else.
272 277 // assume this is admin for now.
273 278 function setSection($sSection) {
... ... @@ -277,54 +282,54 @@ class KTPage {
277 282 $this->menu['administration']['active'] = 1;
278 283 } else if ($sSection == 'dashboard') {
279 284 $this->componentLabel = _kt('Dashboard');
280   - $this->componentClass = 'dashboard';
  285 + $this->componentClass = 'dashboard';
281 286 } else if ($sSection == 'browse') {
282 287 $this->componentLabel = _kt('Browse Documents');
283   - $this->componentClass = 'browse_collections';
  288 + $this->componentClass = 'browse_collections';
284 289 } else if ($sSection == 'view_details') {
285 290 $this->componentLabel = _kt('Document Details');
286   - $this->componentClass = 'document_details';
  291 + $this->componentClass = 'document_details';
287 292 } else if ($sSection == 'search') {
288 293 $this->componentLabel = _kt('Search');
289   - $this->componentClass = 'search';
  294 + $this->componentClass = 'search';
290 295 } else if ($sSection == 'preferences') {
291 296 $this->componentLabel = _kt('Preferences');
292   - $this->componentClass = 'preferences';
  297 + $this->componentClass = 'preferences';
293 298 } else {
294 299 $this->componentLabel = _kt('Dashboard');
295   - $this->componentClass = 'dashboard';
  300 + $this->componentClass = 'dashboard';
296 301 }
297 302  
298 303 }
299 304  
300 305 function addError($sError) { array_push($this->errStack, $sError); }
301 306 function addInfo($sInfo) { array_push($this->infoStack, $sInfo); }
302   -
  307 +
303 308 /** no-one cares what a portlet is, but it should be renderable, and have its ->title member set. */
304 309 function addPortlet($oPortlet) {
305 310 array_push($this->portlets, $oPortlet);
306 311 }
307   -
  312 +
308 313 /* LEGACY */
309 314 var $deprecationWarning = "Legacy UI API: ";
310 315 function setCentralPayload($sCentral) {
311 316 $this->contents = $sCentral;
312 317 $this->addError($this->deprecationWarning . "called <strong>setCentralPayload</strong>");
313 318 }
314   -
  319 +
315 320 function setOnloadJavascript($appendix) { $this->addError($this->deprecationWarning . "called <strong>setOnloadJavascript (no-act)</strong>"); }
316 321 function setDHtmlScrolling($appendix) { $this->addError($this->deprecationWarning . "called <strong>setDHTMLScrolling (no-act)</strong>"); }
317 322 function setFormAction($appendix) { $this->addError($this->deprecationWarning . "called <strong>setFormAction (no-act)</strong>"); }
318 323 function setSubmitMethod($appendix) { $this->addError($this->deprecationWarning . "called <strong>setSubmitMethod (no-act)</strong>"); }
319 324 function setHasRequiredFields($appendix) { $this->addError($this->deprecationWarning . "called <strong>setHasRequiredFields (no-act)</strong>"); }
320 325 function setAdditionalJavascript($appendix) { $this->addError($this->deprecationWarning . "called <strong>setAdditionalJavascript (no-act)</strong>"); }
321   -
  326 +
322 327 function hideSection() { $this->hide_section = true; }
323 328 function setSecondaryTitle($sSecondary) { $this->secondary_title = $sSecondary; }
324   -
  329 +
325 330 /* final render call. */
326 331 function render() {
327   - global $default;
  332 + global $default;
328 333 $oConfig = KTConfig::getSingleton();
329 334  
330 335 if (empty($this->contents)) {
... ... @@ -335,16 +340,16 @@ class KTPage {
335 340 $this->addError(_kt("This page did not produce any content"));
336 341 $this->contents = "";
337 342 }
338   -
  343 +
339 344 if (!is_string($this->contents)) {
340 345 $this->contents = $this->contents->render();
341 346 }
342   -
  347 +
343 348 // if we have no portlets, make the ui a tad nicer.
344 349 if (empty($this->portlets)) {
345 350 $this->show_portlets = false;
346 351 }
347   -
  352 +
348 353 if (empty($this->title)) {
349 354 if (!empty($this->breadcrumbDetails)) {
350 355 $this->title = $this->breadcrumbDetails;
... ... @@ -357,9 +362,9 @@ class KTPage {
357 362 $this->title = $this->componentLabel;
358 363 }
359 364 }
360   -
  365 +
361 366 $this->userMenu = array();
362   - if (!(PEAR::isError($this->user) || is_null($this->user) || $this->user->isAnonymous())) {
  367 + if (!(PEAR::isError($this->user) || is_null($this->user) || $this->user->isAnonymous())) {
363 368 if ($oConfig->get("user_prefs/restrictPreferences", false) && !Permission::userIsSystemAdministrator($this->user->getId())) {
364 369 $this->userMenu = array("logout" => $this->_actionHelper(array("name" => _kt("Logout"), "action" => "logout", "active" => 0)),);
365 370 } else {
... ... @@ -369,24 +374,24 @@ class KTPage {
369 374 }
370 375 } else {
371 376 $this->userMenu = array("login" => $this->_actionHelper(array("name" => _kt("Login"), "action" => "login")),);
372   - }
373   -
  377 + }
  378 +
374 379 // FIXME we need a more complete solution to navigation restriction
375 380 if (!is_null($this->menu['administration']) && !is_null($this->user)) {
376 381 if (!Permission::userIsSystemAdministrator($this->user->getId())) {
377 382 unset($this->menu['administration']);
378 383 }
379 384 }
380   -
  385 +
381 386 $sContentType = 'Content-type: ' . $this->contentType;
382 387 if(!empty($this->charset)) {
383 388 $sContentType .= '; charset=' . $this->charset;
384 389 };
385   -
  390 +
386 391  
387 392 header($sContentType);
388   -
389   - $oTemplating =& KTTemplating::getSingleton();
  393 +
  394 + $oTemplating =& KTTemplating::getSingleton();
390 395 $oTemplate = $oTemplating->loadTemplate($this->template);
391 396 $aTemplateData = array("page" => $this,
392 397 "systemversion" => $default->systemVersion,
... ... @@ -394,17 +399,17 @@ class KTPage {
394 399 if ($oConfig->get("ui/automaticRefresh", false)) {
395 400 $aTemplateData['refreshTimeout'] = (int)$oConfig->get("session/sessionTimeout") + 3;
396 401 }
397   -
  402 +
398 403 // unlike the rest of KT, we use echo here.
399 404 echo $oTemplate->render($aTemplateData);
400 405 }
401   -
  406 +
402 407  
403 408 /** heler functions */
404 409 // returns an array ("url", "label")
405 410 function _actionhelper($aActionTuple) {
406 411 $aTuple = Array("label" => $aActionTuple["name"]);
407   - if ($aActionTuple["action"]) {
  412 + if ($aActionTuple["action"]) {
408 413 $aTuple["url"] = generateControllerLink($aActionTuple["action"], $aActionTuple["query"]);
409 414 } else if ($aActionTuple["url"]) {
410 415 $sUrl = $aActionTuple["url"];
... ... @@ -418,22 +423,22 @@ class KTPage {
418 423 } else {
419 424 $aTuple["url"] = false;
420 425 }
421   -
  426 +
422 427 return $aTuple;
423 428 }
424   -
  429 +
425 430 function setHelp($sHelpPage) {
426 431 $this->helpPage = $sHelpPage;
427 432 }
428   -
  433 +
429 434 function getHelpURL() {
430   - if (empty($this->helpPage)) {
  435 + if (empty($this->helpPage)) {
431 436 return null;
432 437 }
433   -
434   - return KTUtil::ktLink('help.php',$this->helpPage);
  438 +
  439 + return KTUtil::ktLink('help.php',$this->helpPage);
435 440 }
436   -
  441 +
437 442 function getReqTime() {
438 443 $microtime_simple = explode(' ', microtime());
439 444 $finaltime = (float) $microtime_simple[1] + (float) $microtime_simple[0];
... ... @@ -449,7 +454,7 @@ class KTPage {
449 454 return;
450 455 }
451 456 }
452   -
  457 +
453 458 }
454 459  
455 460 ?>
... ...
lib/templating/templating.inc.php
... ... @@ -8,7 +8,7 @@
8 8 * License Version 1.1.2 ("License"); You may not use this file except in
9 9 * compliance with the License. You may obtain a copy of the License at
10 10 * http://www.knowledgetree.com/KPL
11   - *
  11 + *
12 12 * Software distributed under the License is distributed on an "AS IS"
13 13 * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.
14 14 * See the License for the specific language governing rights and
... ... @@ -19,9 +19,9 @@
19 19 * (ii) the KnowledgeTree copyright notice
20 20 * in the same form as they appear in the distribution. See the License for
21 21 * requirements.
22   - *
  22 + *
23 23 * The Original Code is: KnowledgeTree Open Source
24   - *
  24 + *
25 25 * The Initial Developer of the Original Code is The Jam Warehouse Software
26 26 * (Pty) Ltd, trading as KnowledgeTree.
27 27 * Portions created by The Jam Warehouse Software (Pty) Ltd are Copyright
... ... @@ -38,7 +38,7 @@ class KTTemplating {
38 38  
39 39 /** Location registry */
40 40 var $aLocationRegistry;
41   -
  41 +
42 42 // {{{ KTTemplating
43 43 function KTTemplating() {
44 44 $this->aTemplateRegistry = array(
... ... @@ -88,7 +88,7 @@ class KTTemplating {
88 88 return $this->_chooseTemplate($templatename, $aPossibilities);
89 89 }
90 90 // }}}
91   -
  91 +
92 92 // {{{ loadTemplate
93 93 /**
94 94 * Create an object that conforms to the template interface, using
... ... @@ -108,15 +108,32 @@ class KTTemplating {
108 108 if (!class_exists($sClass)) {
109 109 return PEAR::raiseError(_kt("Could not find template language"));
110 110 }
111   -
  111 +
112 112 $oTemplate =& new $sClass($sTemplatePath);
113 113 return $oTemplate;
114 114 }
115 115 // }}}
116 116  
117 117 // {{{ addLocation
  118 + /**
  119 + * Register a new location in the database
  120 + *
  121 + * @param unknown_type $descr
  122 + * @param unknown_type $loc
  123 + */
118 124 function addLocation ($descr, $loc) {
119 125 $this->aLocationRegistry[$descr] = $loc;
  126 + KTPlugin::registerPluginHelper($descr, $descr, $loc, $descr.'|'.$loc, 'general', 'locations');
  127 + }
  128 +
  129 + /**
  130 + * Add the template location to the location registry
  131 + *
  132 + * @param unknown_type $descr
  133 + * @param unknown_type $loc
  134 + */
  135 + function addLocation2 ($descr, $loc) {
  136 + $this->aLocationRegistry[$descr] = $loc;
120 137 }
121 138 // }}}
122 139  
... ...
sql/mysql/install/structure.sql
1 1 --
2 2 -- $Id$
3   ---
  3 +--
4 4 -- The contents of this file are subject to the KnowledgeTree Public
5 5 -- License Version 1.1.2 ("License"); You may not use this file except in
6 6 -- compliance with the License. You may obtain a copy of the License at
7 7 -- http://www.knowledgetree.com/KPL
8   ---
  8 +--
9 9 -- Software distributed under the License is distributed on an "AS IS"
10 10 -- basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.
11 11 -- See the License for the specific language governing rights and
... ... @@ -16,9 +16,9 @@
16 16 -- (ii) the KnowledgeTree copyright notice
17 17 -- in the same form as they appear in the distribution. See the License for
18 18 -- requirements.
19   ---
  19 +--
20 20 -- The Original Code is: KnowledgeTree Open Source
21   ---
  21 +--
22 22 -- The Initial Developer of the Original Code is The Jam Warehouse Software
23 23 -- (Pty) Ltd, trading as KnowledgeTree.
24 24 -- Portions created by The Jam Warehouse Software (Pty) Ltd are Copyright
... ... @@ -28,15 +28,15 @@
28 28 --
29 29  
30 30 SET FOREIGN_KEY_CHECKS=0;
31   ---
  31 +--
32 32 -- Database: `pristine`
33   ---
  33 +--
34 34  
35 35 -- --------------------------------------------------------
36 36  
37   ---
  37 +--
38 38 -- Table structure for table `active_sessions`
39   ---
  39 +--
40 40  
41 41 CREATE TABLE `active_sessions` (
42 42 `id` int(11) NOT NULL default '0',
... ... @@ -50,9 +50,9 @@ CREATE TABLE `active_sessions` (
50 50  
51 51 -- --------------------------------------------------------
52 52  
53   ---
  53 +--
54 54 -- Table structure for table `archive_restoration_request`
55   ---
  55 +--
56 56  
57 57 CREATE TABLE `archive_restoration_request` (
58 58 `id` int(11) NOT NULL default '0',
... ... @@ -65,9 +65,9 @@ CREATE TABLE `archive_restoration_request` (
65 65  
66 66 -- --------------------------------------------------------
67 67  
68   ---
  68 +--
69 69 -- Table structure for table `archiving_settings`
70   ---
  70 +--
71 71  
72 72 CREATE TABLE `archiving_settings` (
73 73 `id` int(11) NOT NULL default '0',
... ... @@ -80,9 +80,9 @@ CREATE TABLE `archiving_settings` (
80 80  
81 81 -- --------------------------------------------------------
82 82  
83   ---
  83 +--
84 84 -- Table structure for table `archiving_type_lookup`
85   ---
  85 +--
86 86  
87 87 CREATE TABLE `archiving_type_lookup` (
88 88 `id` int(11) NOT NULL default '0',
... ... @@ -92,9 +92,9 @@ CREATE TABLE `archiving_type_lookup` (
92 92  
93 93 -- --------------------------------------------------------
94 94  
95   ---
  95 +--
96 96 -- Table structure for table `authentication_sources`
97   ---
  97 +--
98 98  
99 99 CREATE TABLE `authentication_sources` (
100 100 `id` int(11) NOT NULL default '0',
... ... @@ -110,9 +110,9 @@ CREATE TABLE `authentication_sources` (
110 110  
111 111 -- --------------------------------------------------------
112 112  
113   ---
  113 +--
114 114 -- Table structure for table `column_entries`
115   ---
  115 +--
116 116  
117 117 CREATE TABLE `column_entries` (
118 118 `id` int(11) NOT NULL default '0',
... ... @@ -127,9 +127,9 @@ CREATE TABLE `column_entries` (
127 127  
128 128 -- --------------------------------------------------------
129 129  
130   ---
  130 +--
131 131 -- Table structure for table `comment_searchable_text`
132   ---
  132 +--
133 133  
134 134 CREATE TABLE `comment_searchable_text` (
135 135 `comment_id` int(11) NOT NULL default '0',
... ... @@ -141,9 +141,9 @@ CREATE TABLE `comment_searchable_text` (
141 141  
142 142 -- --------------------------------------------------------
143 143  
144   ---
  144 +--
145 145 -- Table structure for table `dashlet_disables`
146   ---
  146 +--
147 147  
148 148 CREATE TABLE `dashlet_disables` (
149 149 `id` int(11) NOT NULL default '0',
... ... @@ -156,9 +156,9 @@ CREATE TABLE `dashlet_disables` (
156 156  
157 157 -- --------------------------------------------------------
158 158  
159   ---
  159 +--
160 160 -- Table structure for table `data_types`
161   ---
  161 +--
162 162  
163 163 CREATE TABLE `data_types` (
164 164 `id` int(11) NOT NULL default '0',
... ... @@ -168,9 +168,9 @@ CREATE TABLE `data_types` (
168 168  
169 169 -- --------------------------------------------------------
170 170  
171   ---
  171 +--
172 172 -- Table structure for table `discussion_comments`
173   ---
  173 +--
174 174  
175 175 CREATE TABLE `discussion_comments` (
176 176 `id` int(11) NOT NULL default '0',
... ... @@ -185,9 +185,9 @@ CREATE TABLE `discussion_comments` (
185 185  
186 186 -- --------------------------------------------------------
187 187  
188   ---
  188 +--
189 189 -- Table structure for table `discussion_threads`
190   ---
  190 +--
191 191  
192 192 CREATE TABLE `discussion_threads` (
193 193 `id` int(11) NOT NULL default '0',
... ... @@ -205,9 +205,9 @@ CREATE TABLE `discussion_threads` (
205 205  
206 206 -- --------------------------------------------------------
207 207  
208   ---
  208 +--
209 209 -- Table structure for table `document_archiving_link`
210   ---
  210 +--
211 211  
212 212 CREATE TABLE `document_archiving_link` (
213 213 `id` int(11) NOT NULL default '0',
... ... @@ -218,9 +218,9 @@ CREATE TABLE `document_archiving_link` (
218 218  
219 219 -- --------------------------------------------------------
220 220  
221   ---
  221 +--
222 222 -- Table structure for table `document_content_version`
223   ---
  223 +--
224 224  
225 225 CREATE TABLE `document_content_version` (
226 226 `id` int(11) NOT NULL default '0',
... ... @@ -238,9 +238,9 @@ CREATE TABLE `document_content_version` (
238 238  
239 239 -- --------------------------------------------------------
240 240  
241   ---
  241 +--
242 242 -- Table structure for table `document_fields`
243   ---
  243 +--
244 244  
245 245 CREATE TABLE `document_fields` (
246 246 `id` int(11) NOT NULL default '0',
... ... @@ -258,9 +258,9 @@ CREATE TABLE `document_fields` (
258 258  
259 259 -- --------------------------------------------------------
260 260  
261   ---
  261 +--
262 262 -- Table structure for table `document_fields_link`
263   ---
  263 +--
264 264  
265 265 CREATE TABLE `document_fields_link` (
266 266 `id` int(11) NOT NULL default '0',
... ... @@ -274,9 +274,9 @@ CREATE TABLE `document_fields_link` (
274 274  
275 275 -- --------------------------------------------------------
276 276  
277   ---
  277 +--
278 278 -- Table structure for table `document_incomplete`
279   ---
  279 +--
280 280  
281 281 CREATE TABLE `document_incomplete` (
282 282 `id` int(10) unsigned NOT NULL default '0',
... ... @@ -287,9 +287,9 @@ CREATE TABLE `document_incomplete` (
287 287  
288 288 -- --------------------------------------------------------
289 289  
290   ---
  290 +--
291 291 -- Table structure for table `document_link`
292   ---
  292 +--
293 293  
294 294 CREATE TABLE `document_link` (
295 295 `id` int(11) NOT NULL default '0',
... ... @@ -301,9 +301,9 @@ CREATE TABLE `document_link` (
301 301  
302 302 -- --------------------------------------------------------
303 303  
304   ---
  304 +--
305 305 -- Table structure for table `document_link_types`
306   ---
  306 +--
307 307  
308 308 CREATE TABLE `document_link_types` (
309 309 `id` int(11) NOT NULL default '0',
... ... @@ -315,9 +315,9 @@ CREATE TABLE `document_link_types` (
315 315  
316 316 -- --------------------------------------------------------
317 317  
318   ---
  318 +--
319 319 -- Table structure for table `document_metadata_version`
320   ---
  320 +--
321 321  
322 322 CREATE TABLE `document_metadata_version` (
323 323 `id` int(11) NOT NULL default '0',
... ... @@ -345,9 +345,9 @@ CREATE TABLE `document_metadata_version` (
345 345  
346 346 -- --------------------------------------------------------
347 347  
348   ---
  348 +--
349 349 -- Table structure for table `document_role_allocations`
350   ---
  350 +--
351 351  
352 352 CREATE TABLE `document_role_allocations` (
353 353 `id` int(11) NOT NULL default '0',
... ... @@ -360,9 +360,9 @@ CREATE TABLE `document_role_allocations` (
360 360  
361 361 -- --------------------------------------------------------
362 362  
363   ---
  363 +--
364 364 -- Table structure for table `document_searchable_text`
365   ---
  365 +--
366 366  
367 367 CREATE TABLE `document_searchable_text` (
368 368 `document_id` int(11) default NULL,
... ... @@ -373,9 +373,9 @@ CREATE TABLE `document_searchable_text` (
373 373  
374 374 -- --------------------------------------------------------
375 375  
376   ---
  376 +--
377 377 -- Table structure for table `document_subscriptions`
378   ---
  378 +--
379 379  
380 380 CREATE TABLE `document_subscriptions` (
381 381 `id` int(11) NOT NULL default '0',
... ... @@ -387,9 +387,9 @@ CREATE TABLE `document_subscriptions` (
387 387  
388 388 -- --------------------------------------------------------
389 389  
390   ---
  390 +--
391 391 -- Table structure for table `document_text`
392   ---
  392 +--
393 393  
394 394 CREATE TABLE `document_text` (
395 395 `document_id` int(11) default NULL,
... ... @@ -400,9 +400,9 @@ CREATE TABLE `document_text` (
400 400  
401 401 -- --------------------------------------------------------
402 402  
403   ---
  403 +--
404 404 -- Table structure for table `document_transaction_text`
405   ---
  405 +--
406 406  
407 407 CREATE TABLE `document_transaction_text` (
408 408 `document_id` int(11) default NULL,
... ... @@ -413,9 +413,9 @@ CREATE TABLE `document_transaction_text` (
413 413  
414 414 -- --------------------------------------------------------
415 415  
416   ---
  416 +--
417 417 -- Table structure for table `document_transaction_types_lookup`
418   ---
  418 +--
419 419  
420 420 CREATE TABLE `document_transaction_types_lookup` (
421 421 `id` int(11) NOT NULL default '0',
... ... @@ -427,9 +427,9 @@ CREATE TABLE `document_transaction_types_lookup` (
427 427  
428 428 -- --------------------------------------------------------
429 429  
430   ---
  430 +--
431 431 -- Table structure for table `document_transactions`
432   ---
  432 +--
433 433  
434 434 CREATE TABLE `document_transactions` (
435 435 `id` int(11) NOT NULL default '0',
... ... @@ -451,9 +451,9 @@ CREATE TABLE `document_transactions` (
451 451  
452 452 -- --------------------------------------------------------
453 453  
454   ---
  454 +--
455 455 -- Table structure for table `document_type_fields_link`
456   ---
  456 +--
457 457  
458 458 CREATE TABLE `document_type_fields_link` (
459 459 `id` int(11) NOT NULL default '0',
... ... @@ -465,9 +465,9 @@ CREATE TABLE `document_type_fields_link` (
465 465  
466 466 -- --------------------------------------------------------
467 467  
468   ---
  468 +--
469 469 -- Table structure for table `document_type_fieldsets_link`
470   ---
  470 +--
471 471  
472 472 CREATE TABLE `document_type_fieldsets_link` (
473 473 `id` int(11) NOT NULL default '0',
... ... @@ -480,9 +480,9 @@ CREATE TABLE `document_type_fieldsets_link` (
480 480  
481 481 -- --------------------------------------------------------
482 482  
483   ---
  483 +--
484 484 -- Table structure for table `document_types_lookup`
485   ---
  485 +--
486 486  
487 487 CREATE TABLE `document_types_lookup` (
488 488 `id` int(11) NOT NULL default '0',
... ... @@ -495,9 +495,9 @@ CREATE TABLE `document_types_lookup` (
495 495  
496 496 -- --------------------------------------------------------
497 497  
498   ---
  498 +--
499 499 -- Table structure for table `documents`
500   ---
  500 +--
501 501  
502 502 CREATE TABLE `documents` (
503 503 `id` int(11) NOT NULL default '0',
... ... @@ -533,9 +533,9 @@ CREATE TABLE `documents` (
533 533  
534 534 -- --------------------------------------------------------
535 535  
536   ---
  536 +--
537 537 -- Table structure for table `field_behaviour_options`
538   ---
  538 +--
539 539  
540 540 CREATE TABLE `field_behaviour_options` (
541 541 `behaviour_id` int(11) NOT NULL default '0',
... ... @@ -548,9 +548,9 @@ CREATE TABLE `field_behaviour_options` (
548 548  
549 549 -- --------------------------------------------------------
550 550  
551   ---
  551 +--
552 552 -- Table structure for table `field_behaviours`
553   ---
  553 +--
554 554  
555 555 CREATE TABLE `field_behaviours` (
556 556 `id` int(11) NOT NULL default '0',
... ... @@ -564,9 +564,9 @@ CREATE TABLE `field_behaviours` (
564 564  
565 565 -- --------------------------------------------------------
566 566  
567   ---
  567 +--
568 568 -- Table structure for table `field_orders`
569   ---
  569 +--
570 570  
571 571 CREATE TABLE `field_orders` (
572 572 `parent_field_id` int(11) NOT NULL default '0',
... ... @@ -579,9 +579,9 @@ CREATE TABLE `field_orders` (
579 579  
580 580 -- --------------------------------------------------------
581 581  
582   ---
  582 +--
583 583 -- Table structure for table `field_value_instances`
584   ---
  584 +--
585 585  
586 586 CREATE TABLE `field_value_instances` (
587 587 `id` int(11) NOT NULL default '0',
... ... @@ -596,9 +596,9 @@ CREATE TABLE `field_value_instances` (
596 596  
597 597 -- --------------------------------------------------------
598 598  
599   ---
  599 +--
600 600 -- Table structure for table `fieldsets`
601   ---
  601 +--
602 602  
603 603 CREATE TABLE `fieldsets` (
604 604 `id` int(11) NOT NULL default '0',
... ... @@ -621,9 +621,9 @@ CREATE TABLE `fieldsets` (
621 621  
622 622 -- --------------------------------------------------------
623 623  
624   ---
  624 +--
625 625 -- Table structure for table `folder_doctypes_link`
626   ---
  626 +--
627 627  
628 628 CREATE TABLE `folder_doctypes_link` (
629 629 `id` int(11) NOT NULL default '0',
... ... @@ -636,9 +636,9 @@ CREATE TABLE `folder_doctypes_link` (
636 636  
637 637 -- --------------------------------------------------------
638 638  
639   ---
  639 +--
640 640 -- Table structure for table `folder_searchable_text`
641   ---
  641 +--
642 642  
643 643 CREATE TABLE `folder_searchable_text` (
644 644 `folder_id` int(11) NOT NULL default '0',
... ... @@ -650,9 +650,9 @@ CREATE TABLE `folder_searchable_text` (
650 650  
651 651 -- --------------------------------------------------------
652 652  
653   ---
  653 +--
654 654 -- Table structure for table `folder_subscriptions`
655   ---
  655 +--
656 656  
657 657 CREATE TABLE `folder_subscriptions` (
658 658 `id` int(11) NOT NULL default '0',
... ... @@ -664,9 +664,9 @@ CREATE TABLE `folder_subscriptions` (
664 664  
665 665 -- --------------------------------------------------------
666 666  
667   ---
  667 +--
668 668 -- Table structure for table `folder_transactions`
669   ---
  669 +--
670 670  
671 671 CREATE TABLE `folder_transactions` (
672 672 `id` int(11) NOT NULL default '0',
... ... @@ -686,9 +686,9 @@ CREATE TABLE `folder_transactions` (
686 686  
687 687 -- --------------------------------------------------------
688 688  
689   ---
  689 +--
690 690 -- Table structure for table `folder_workflow_map`
691   ---
  691 +--
692 692  
693 693 CREATE TABLE `folder_workflow_map` (
694 694 `folder_id` int(11) NOT NULL default '0',
... ... @@ -699,9 +699,9 @@ CREATE TABLE `folder_workflow_map` (
699 699  
700 700 -- --------------------------------------------------------
701 701  
702   ---
  702 +--
703 703 -- Table structure for table `folders`
704   ---
  704 +--
705 705  
706 706 CREATE TABLE `folders` (
707 707 `id` int(11) NOT NULL default '0',
... ... @@ -725,9 +725,9 @@ CREATE TABLE `folders` (
725 725  
726 726 -- --------------------------------------------------------
727 727  
728   ---
  728 +--
729 729 -- Table structure for table `folders_users_roles_link`
730   ---
  730 +--
731 731  
732 732 CREATE TABLE `folders_users_roles_link` (
733 733 `id` int(11) NOT NULL default '0',
... ... @@ -743,9 +743,9 @@ CREATE TABLE `folders_users_roles_link` (
743 743  
744 744 -- --------------------------------------------------------
745 745  
746   ---
  746 +--
747 747 -- Table structure for table `groups_groups_link`
748   ---
  748 +--
749 749  
750 750 CREATE TABLE `groups_groups_link` (
751 751 `id` int(11) NOT NULL default '0',
... ... @@ -758,9 +758,9 @@ CREATE TABLE `groups_groups_link` (
758 758  
759 759 -- --------------------------------------------------------
760 760  
761   ---
  761 +--
762 762 -- Table structure for table `groups_lookup`
763   ---
  763 +--
764 764  
765 765 CREATE TABLE `groups_lookup` (
766 766 `id` int(11) NOT NULL default '0',
... ... @@ -780,9 +780,9 @@ CREATE TABLE `groups_lookup` (
780 780  
781 781 -- --------------------------------------------------------
782 782  
783   ---
  783 +--
784 784 -- Table structure for table `help`
785   ---
  785 +--
786 786  
787 787 CREATE TABLE `help` (
788 788 `id` int(11) NOT NULL default '0',
... ... @@ -793,9 +793,9 @@ CREATE TABLE `help` (
793 793  
794 794 -- --------------------------------------------------------
795 795  
796   ---
  796 +--
797 797 -- Table structure for table `help_replacement`
798   ---
  798 +--
799 799  
800 800 CREATE TABLE `help_replacement` (
801 801 `id` int(11) NOT NULL default '0',
... ... @@ -807,9 +807,9 @@ CREATE TABLE `help_replacement` (
807 807  
808 808 -- --------------------------------------------------------
809 809  
810   ---
  810 +--
811 811 -- Table structure for table `interceptor_instances`
812   ---
  812 +--
813 813  
814 814 CREATE TABLE `interceptor_instances` (
815 815 `id` int(11) NOT NULL,
... ... @@ -822,9 +822,9 @@ CREATE TABLE `interceptor_instances` (
822 822  
823 823 -- --------------------------------------------------------
824 824  
825   ---
  825 +--
826 826 -- Table structure for table `links`
827   ---
  827 +--
828 828  
829 829 CREATE TABLE `links` (
830 830 `id` int(11) NOT NULL default '0',
... ... @@ -836,9 +836,9 @@ CREATE TABLE `links` (
836 836  
837 837 -- --------------------------------------------------------
838 838  
839   ---
  839 +--
840 840 -- Table structure for table `metadata_lookup`
841   ---
  841 +--
842 842  
843 843 CREATE TABLE `metadata_lookup` (
844 844 `id` int(11) NOT NULL default '0',
... ... @@ -854,9 +854,9 @@ CREATE TABLE `metadata_lookup` (
854 854  
855 855 -- --------------------------------------------------------
856 856  
857   ---
  857 +--
858 858 -- Table structure for table `metadata_lookup_tree`
859   ---
  859 +--
860 860  
861 861 CREATE TABLE `metadata_lookup_tree` (
862 862 `id` int(11) NOT NULL default '0',
... ... @@ -870,9 +870,9 @@ CREATE TABLE `metadata_lookup_tree` (
870 870  
871 871 -- --------------------------------------------------------
872 872  
873   ---
  873 +--
874 874 -- Table structure for table `mime_types`
875   ---
  875 +--
876 876  
877 877 CREATE TABLE `mime_types` (
878 878 `id` int(11) NOT NULL default '0',
... ... @@ -885,9 +885,9 @@ CREATE TABLE `mime_types` (
885 885  
886 886 -- --------------------------------------------------------
887 887  
888   ---
  888 +--
889 889 -- Table structure for table `news`
890   ---
  890 +--
891 891  
892 892 CREATE TABLE `news` (
893 893 `id` int(11) NOT NULL default '0',
... ... @@ -903,9 +903,9 @@ CREATE TABLE `news` (
903 903  
904 904 -- --------------------------------------------------------
905 905  
906   ---
  906 +--
907 907 -- Table structure for table `notifications`
908   ---
  908 +--
909 909  
910 910 CREATE TABLE `notifications` (
911 911 `id` int(11) NOT NULL default '0',
... ... @@ -925,9 +925,9 @@ CREATE TABLE `notifications` (
925 925  
926 926 -- --------------------------------------------------------
927 927  
928   ---
  928 +--
929 929 -- Table structure for table `organisations_lookup`
930   ---
  930 +--
931 931  
932 932 CREATE TABLE `organisations_lookup` (
933 933 `id` int(11) NOT NULL default '0',
... ... @@ -938,9 +938,9 @@ CREATE TABLE `organisations_lookup` (
938 938  
939 939 -- --------------------------------------------------------
940 940  
941   ---
  941 +--
942 942 -- Table structure for table `permission_assignments`
943   ---
  943 +--
944 944  
945 945 CREATE TABLE `permission_assignments` (
946 946 `id` int(11) NOT NULL default '0',
... ... @@ -956,9 +956,9 @@ CREATE TABLE `permission_assignments` (
956 956  
957 957 -- --------------------------------------------------------
958 958  
959   ---
  959 +--
960 960 -- Table structure for table `permission_descriptor_groups`
961   ---
  961 +--
962 962  
963 963 CREATE TABLE `permission_descriptor_groups` (
964 964 `descriptor_id` int(11) NOT NULL default '0',
... ... @@ -970,9 +970,9 @@ CREATE TABLE `permission_descriptor_groups` (
970 970  
971 971 -- --------------------------------------------------------
972 972  
973   ---
  973 +--
974 974 -- Table structure for table `permission_descriptor_roles`
975   ---
  975 +--
976 976  
977 977 CREATE TABLE `permission_descriptor_roles` (
978 978 `descriptor_id` int(11) NOT NULL default '0',
... ... @@ -984,9 +984,9 @@ CREATE TABLE `permission_descriptor_roles` (
984 984  
985 985 -- --------------------------------------------------------
986 986  
987   ---
  987 +--
988 988 -- Table structure for table `permission_descriptor_users`
989   ---
  989 +--
990 990  
991 991 CREATE TABLE `permission_descriptor_users` (
992 992 `descriptor_id` int(11) NOT NULL default '0',
... ... @@ -998,9 +998,9 @@ CREATE TABLE `permission_descriptor_users` (
998 998  
999 999 -- --------------------------------------------------------
1000 1000  
1001   ---
  1001 +--
1002 1002 -- Table structure for table `permission_descriptors`
1003   ---
  1003 +--
1004 1004  
1005 1005 CREATE TABLE `permission_descriptors` (
1006 1006 `id` int(11) NOT NULL default '0',
... ... @@ -1013,9 +1013,9 @@ CREATE TABLE `permission_descriptors` (
1013 1013  
1014 1014 -- --------------------------------------------------------
1015 1015  
1016   ---
  1016 +--
1017 1017 -- Table structure for table `permission_dynamic_assignments`
1018   ---
  1018 +--
1019 1019  
1020 1020 CREATE TABLE `permission_dynamic_assignments` (
1021 1021 `dynamic_condition_id` int(11) NOT NULL default '0',
... ... @@ -1026,9 +1026,9 @@ CREATE TABLE `permission_dynamic_assignments` (
1026 1026  
1027 1027 -- --------------------------------------------------------
1028 1028  
1029   ---
  1029 +--
1030 1030 -- Table structure for table `permission_dynamic_conditions`
1031   ---
  1031 +--
1032 1032  
1033 1033 CREATE TABLE `permission_dynamic_conditions` (
1034 1034 `id` int(11) NOT NULL default '0',
... ... @@ -1043,9 +1043,9 @@ CREATE TABLE `permission_dynamic_conditions` (
1043 1043  
1044 1044 -- --------------------------------------------------------
1045 1045  
1046   ---
  1046 +--
1047 1047 -- Table structure for table `permission_lookup_assignments`
1048   ---
  1048 +--
1049 1049  
1050 1050 CREATE TABLE `permission_lookup_assignments` (
1051 1051 `id` int(11) NOT NULL default '0',
... ... @@ -1061,9 +1061,9 @@ CREATE TABLE `permission_lookup_assignments` (
1061 1061  
1062 1062 -- --------------------------------------------------------
1063 1063  
1064   ---
  1064 +--
1065 1065 -- Table structure for table `permission_lookups`
1066   ---
  1066 +--
1067 1067  
1068 1068 CREATE TABLE `permission_lookups` (
1069 1069 `id` int(11) NOT NULL default '0',
... ... @@ -1072,9 +1072,9 @@ CREATE TABLE `permission_lookups` (
1072 1072  
1073 1073 -- --------------------------------------------------------
1074 1074  
1075   ---
  1075 +--
1076 1076 -- Table structure for table `permission_objects`
1077   ---
  1077 +--
1078 1078  
1079 1079 CREATE TABLE `permission_objects` (
1080 1080 `id` int(11) NOT NULL default '0',
... ... @@ -1083,9 +1083,9 @@ CREATE TABLE `permission_objects` (
1083 1083  
1084 1084 -- --------------------------------------------------------
1085 1085  
1086   ---
  1086 +--
1087 1087 -- Table structure for table `permissions`
1088   ---
  1088 +--
1089 1089  
1090 1090 CREATE TABLE `permissions` (
1091 1091 `id` int(11) NOT NULL default '0',
... ... @@ -1098,9 +1098,9 @@ CREATE TABLE `permissions` (
1098 1098  
1099 1099 -- --------------------------------------------------------
1100 1100  
1101   ---
  1101 +--
1102 1102 -- Table structure for table `plugins`
1103   ---
  1103 +--
1104 1104  
1105 1105 CREATE TABLE `plugins` (
1106 1106 `id` int(11) NOT NULL default '0',
... ... @@ -1117,9 +1117,30 @@ CREATE TABLE `plugins` (
1117 1117  
1118 1118 -- --------------------------------------------------------
1119 1119  
1120   ---
  1120 +--
  1121 +-- Table structure for table `plugin_helper`
  1122 +--
  1123 +
  1124 +CREATE TABLE `plugin_helper` (
  1125 + `id` INT NOT NULL default '0',
  1126 + `namespace` VARCHAR(120) NOT NULL,
  1127 + `plugin` VARCHAR(120) NOT NULL,
  1128 + `classname` VARCHAR(120),
  1129 + `pathname` VARCHAR(255),
  1130 + `object` VARCHAR(1000) NOT NULL,
  1131 + `classtype` VARCHAR(120) NOT NULL,
  1132 + `viewtype` ENUM('general', 'dashboard', 'plugin', 'folder', 'document', 'admindispatcher', 'dispatcher') NOT NULL default 'general',
  1133 + PRIMARY KEY (`id`),
  1134 + KEY `name` (`namespace`),
  1135 + KEY `parent` (`plugin`),
  1136 + KEY `view` (`viewtype`)
  1137 +) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  1138 +
  1139 +-- --------------------------------------------------------
  1140 +
  1141 +--
1121 1142 -- Table structure for table `role_allocations`
1122   ---
  1143 +--
1123 1144  
1124 1145 CREATE TABLE `role_allocations` (
1125 1146 `id` int(11) NOT NULL default '0',
... ... @@ -1132,9 +1153,9 @@ CREATE TABLE `role_allocations` (
1132 1153  
1133 1154 -- --------------------------------------------------------
1134 1155  
1135   ---
  1156 +--
1136 1157 -- Table structure for table `roles`
1137   ---
  1158 +--
1138 1159  
1139 1160 CREATE TABLE `roles` (
1140 1161 `id` int(11) NOT NULL default '0',
... ... @@ -1145,9 +1166,9 @@ CREATE TABLE `roles` (
1145 1166  
1146 1167 -- --------------------------------------------------------
1147 1168  
1148   ---
  1169 +--
1149 1170 -- Table structure for table `saved_searches`
1150   ---
  1171 +--
1151 1172  
1152 1173 CREATE TABLE `saved_searches` (
1153 1174 `id` int(11) NOT NULL default '0',
... ... @@ -1166,9 +1187,9 @@ CREATE TABLE `saved_searches` (
1166 1187  
1167 1188 -- --------------------------------------------------------
1168 1189  
1169   ---
  1190 +--
1170 1191 -- Table structure for table `search_document_user_link`
1171   ---
  1192 +--
1172 1193  
1173 1194 CREATE TABLE `search_document_user_link` (
1174 1195 `document_id` int(11) default NULL,
... ... @@ -1179,9 +1200,9 @@ CREATE TABLE `search_document_user_link` (
1179 1200  
1180 1201 -- --------------------------------------------------------
1181 1202  
1182   ---
  1203 +--
1183 1204 -- Table structure for table `status_lookup`
1184   ---
  1205 +--
1185 1206  
1186 1207 CREATE TABLE `status_lookup` (
1187 1208 `id` int(11) NOT NULL default '0',
... ... @@ -1191,9 +1212,9 @@ CREATE TABLE `status_lookup` (
1191 1212  
1192 1213 -- --------------------------------------------------------
1193 1214  
1194   ---
  1215 +--
1195 1216 -- Table structure for table `system_settings`
1196   ---
  1217 +--
1197 1218  
1198 1219 CREATE TABLE `system_settings` (
1199 1220 `id` int(11) NOT NULL default '0',
... ... @@ -1204,9 +1225,9 @@ CREATE TABLE `system_settings` (
1204 1225  
1205 1226 -- --------------------------------------------------------
1206 1227  
1207   ---
  1228 +--
1208 1229 -- Table structure for table `time_period`
1209   ---
  1230 +--
1210 1231  
1211 1232 CREATE TABLE `time_period` (
1212 1233 `id` int(11) NOT NULL default '0',
... ... @@ -1217,9 +1238,9 @@ CREATE TABLE `time_period` (
1217 1238  
1218 1239 -- --------------------------------------------------------
1219 1240  
1220   ---
  1241 +--
1221 1242 -- Table structure for table `time_unit_lookup`
1222   ---
  1243 +--
1223 1244  
1224 1245 CREATE TABLE `time_unit_lookup` (
1225 1246 `id` int(11) NOT NULL default '0',
... ... @@ -1229,9 +1250,9 @@ CREATE TABLE `time_unit_lookup` (
1229 1250  
1230 1251 -- --------------------------------------------------------
1231 1252  
1232   ---
  1253 +--
1233 1254 -- Table structure for table `trigger_selection`
1234   ---
  1255 +--
1235 1256  
1236 1257 CREATE TABLE `trigger_selection` (
1237 1258 `event_ns` varchar(255) NOT NULL default '',
... ... @@ -1242,9 +1263,9 @@ CREATE TABLE `trigger_selection` (
1242 1263  
1243 1264 -- --------------------------------------------------------
1244 1265  
1245   ---
  1266 +--
1246 1267 -- Table structure for table `type_workflow_map`
1247   ---
  1268 +--
1248 1269  
1249 1270 CREATE TABLE `type_workflow_map` (
1250 1271 `document_type_id` int(11) NOT NULL default '0',
... ... @@ -1255,9 +1276,9 @@ CREATE TABLE `type_workflow_map` (
1255 1276  
1256 1277 -- --------------------------------------------------------
1257 1278  
1258   ---
  1279 +--
1259 1280 -- Table structure for table `units_lookup`
1260   ---
  1281 +--
1261 1282  
1262 1283 CREATE TABLE `units_lookup` (
1263 1284 `id` int(11) NOT NULL default '0',
... ... @@ -1270,9 +1291,9 @@ CREATE TABLE `units_lookup` (
1270 1291  
1271 1292 -- --------------------------------------------------------
1272 1293  
1273   ---
  1294 +--
1274 1295 -- Table structure for table `units_organisations_link`
1275   ---
  1296 +--
1276 1297  
1277 1298 CREATE TABLE `units_organisations_link` (
1278 1299 `id` int(11) NOT NULL default '0',
... ... @@ -1285,9 +1306,9 @@ CREATE TABLE `units_organisations_link` (
1285 1306  
1286 1307 -- --------------------------------------------------------
1287 1308  
1288   ---
  1309 +--
1289 1310 -- Table structure for table `upgrades`
1290   ---
  1311 +--
1291 1312  
1292 1313 CREATE TABLE `upgrades` (
1293 1314 `id` int(10) unsigned NOT NULL default '0',
... ... @@ -1303,9 +1324,9 @@ CREATE TABLE `upgrades` (
1303 1324  
1304 1325 -- --------------------------------------------------------
1305 1326  
1306   ---
  1327 +--
1307 1328 -- Table structure for table `user_history`
1308   ---
  1329 +--
1309 1330  
1310 1331 CREATE TABLE `user_history` (
1311 1332 `id` int(11) NOT NULL,
... ... @@ -1323,9 +1344,9 @@ CREATE TABLE `user_history` (
1323 1344  
1324 1345 -- --------------------------------------------------------
1325 1346  
1326   ---
  1347 +--
1327 1348 -- Table structure for table `users`
1328   ---
  1349 +--
1329 1350  
1330 1351 CREATE TABLE `users` (
1331 1352 `id` int(11) NOT NULL default '0',
... ... @@ -1362,9 +1383,9 @@ CREATE TABLE `users` (
1362 1383  
1363 1384 -- --------------------------------------------------------
1364 1385  
1365   ---
  1386 +--
1366 1387 -- Table structure for table `users_groups_link`
1367   ---
  1388 +--
1368 1389  
1369 1390 CREATE TABLE `users_groups_link` (
1370 1391 `id` int(11) NOT NULL default '0',
... ... @@ -1377,9 +1398,9 @@ CREATE TABLE `users_groups_link` (
1377 1398  
1378 1399 -- --------------------------------------------------------
1379 1400  
1380   ---
  1401 +--
1381 1402 -- Table structure for table `workflow_actions`
1382   ---
  1403 +--
1383 1404  
1384 1405 CREATE TABLE `workflow_actions` (
1385 1406 `workflow_id` int(11) NOT NULL default '0',
... ... @@ -1390,9 +1411,9 @@ CREATE TABLE `workflow_actions` (
1390 1411  
1391 1412 -- --------------------------------------------------------
1392 1413  
1393   ---
  1414 +--
1394 1415 -- Table structure for table `workflow_documents`
1395   ---
  1416 +--
1396 1417  
1397 1418 CREATE TABLE `workflow_documents` (
1398 1419 `document_id` int(11) NOT NULL default '0',
... ... @@ -1405,9 +1426,9 @@ CREATE TABLE `workflow_documents` (
1405 1426  
1406 1427 -- --------------------------------------------------------
1407 1428  
1408   ---
  1429 +--
1409 1430 -- Table structure for table `workflow_state_actions`
1410   ---
  1431 +--
1411 1432  
1412 1433 CREATE TABLE `workflow_state_actions` (
1413 1434 `state_id` int(11) NOT NULL default '0',
... ... @@ -1418,9 +1439,9 @@ CREATE TABLE `workflow_state_actions` (
1418 1439  
1419 1440 -- --------------------------------------------------------
1420 1441  
1421   ---
  1442 +--
1422 1443 -- Table structure for table `workflow_state_disabled_actions`
1423   ---
  1444 +--
1424 1445  
1425 1446 CREATE TABLE `workflow_state_disabled_actions` (
1426 1447 `state_id` int(11) NOT NULL default '0',
... ... @@ -1431,9 +1452,9 @@ CREATE TABLE `workflow_state_disabled_actions` (
1431 1452  
1432 1453 -- --------------------------------------------------------
1433 1454  
1434   ---
  1455 +--
1435 1456 -- Table structure for table `workflow_state_permission_assignments`
1436   ---
  1457 +--
1437 1458  
1438 1459 CREATE TABLE `workflow_state_permission_assignments` (
1439 1460 `id` int(11) NOT NULL default '0',
... ... @@ -1448,9 +1469,9 @@ CREATE TABLE `workflow_state_permission_assignments` (
1448 1469  
1449 1470 -- --------------------------------------------------------
1450 1471  
1451   ---
  1472 +--
1452 1473 -- Table structure for table `workflow_state_transitions`
1453   ---
  1474 +--
1454 1475  
1455 1476 CREATE TABLE `workflow_state_transitions` (
1456 1477 `state_id` int(11) NOT NULL default '0',
... ... @@ -1459,9 +1480,9 @@ CREATE TABLE `workflow_state_transitions` (
1459 1480  
1460 1481 -- --------------------------------------------------------
1461 1482  
1462   ---
  1483 +--
1463 1484 -- Table structure for table `workflow_states`
1464   ---
  1485 +--
1465 1486  
1466 1487 CREATE TABLE `workflow_states` (
1467 1488 `id` int(11) NOT NULL default '0',
... ... @@ -1479,9 +1500,9 @@ CREATE TABLE `workflow_states` (
1479 1500  
1480 1501 -- --------------------------------------------------------
1481 1502  
1482   ---
  1503 +--
1483 1504 -- Table structure for table `workflow_transitions`
1484   ---
  1505 +--
1485 1506  
1486 1507 CREATE TABLE `workflow_transitions` (
1487 1508 `id` int(11) NOT NULL default '0',
... ... @@ -1506,9 +1527,9 @@ CREATE TABLE `workflow_transitions` (
1506 1527  
1507 1528 -- --------------------------------------------------------
1508 1529  
1509   ---
  1530 +--
1510 1531 -- Table structure for table `workflow_trigger_instances`
1511   ---
  1532 +--
1512 1533  
1513 1534 CREATE TABLE `workflow_trigger_instances` (
1514 1535 `id` int(10) unsigned NOT NULL default '0',
... ... @@ -1522,9 +1543,9 @@ CREATE TABLE `workflow_trigger_instances` (
1522 1543  
1523 1544 -- --------------------------------------------------------
1524 1545  
1525   ---
  1546 +--
1526 1547 -- Table structure for table `workflows`
1527   ---
  1548 +--
1528 1549  
1529 1550 CREATE TABLE `workflows` (
1530 1551 `id` int(11) NOT NULL default '0',
... ... @@ -1539,9 +1560,9 @@ CREATE TABLE `workflows` (
1539 1560  
1540 1561 -- --------------------------------------------------------
1541 1562  
1542   ---
  1563 +--
1543 1564 -- Table structure for table `zseq_active_sessions`
1544   ---
  1565 +--
1545 1566  
1546 1567 CREATE TABLE `zseq_active_sessions` (
1547 1568 `id` int(10) unsigned NOT NULL auto_increment,
... ... @@ -1550,9 +1571,9 @@ CREATE TABLE `zseq_active_sessions` (
1550 1571  
1551 1572 -- --------------------------------------------------------
1552 1573  
1553   ---
  1574 +--
1554 1575 -- Table structure for table `zseq_archive_restoration_request`
1555   ---
  1576 +--
1556 1577  
1557 1578 CREATE TABLE `zseq_archive_restoration_request` (
1558 1579 `id` int(10) unsigned NOT NULL auto_increment,
... ... @@ -1561,9 +1582,9 @@ CREATE TABLE `zseq_archive_restoration_request` (
1561 1582  
1562 1583 -- --------------------------------------------------------
1563 1584  
1564   ---
  1585 +--
1565 1586 -- Table structure for table `zseq_archiving_settings`
1566   ---
  1587 +--
1567 1588  
1568 1589 CREATE TABLE `zseq_archiving_settings` (
1569 1590 `id` int(10) unsigned NOT NULL auto_increment,
... ... @@ -1572,9 +1593,9 @@ CREATE TABLE `zseq_archiving_settings` (
1572 1593  
1573 1594 -- --------------------------------------------------------
1574 1595  
1575   ---
  1596 +--
1576 1597 -- Table structure for table `zseq_archiving_type_lookup`
1577   ---
  1598 +--
1578 1599  
1579 1600 CREATE TABLE `zseq_archiving_type_lookup` (
1580 1601 `id` int(10) unsigned NOT NULL auto_increment,
... ... @@ -1583,9 +1604,9 @@ CREATE TABLE `zseq_archiving_type_lookup` (
1583 1604  
1584 1605 -- --------------------------------------------------------
1585 1606  
1586   ---
  1607 +--
1587 1608 -- Table structure for table `zseq_authentication_sources`
1588   ---
  1609 +--
1589 1610  
1590 1611 CREATE TABLE `zseq_authentication_sources` (
1591 1612 `id` int(10) unsigned NOT NULL auto_increment,
... ... @@ -1594,9 +1615,9 @@ CREATE TABLE `zseq_authentication_sources` (
1594 1615  
1595 1616 -- --------------------------------------------------------
1596 1617  
1597   ---
  1618 +--
1598 1619 -- Table structure for table `zseq_browse_criteria`
1599   ---
  1620 +--
1600 1621  
1601 1622 CREATE TABLE `zseq_browse_criteria` (
1602 1623 `id` int(10) unsigned NOT NULL auto_increment,
... ... @@ -1605,9 +1626,9 @@ CREATE TABLE `zseq_browse_criteria` (
1605 1626  
1606 1627 -- --------------------------------------------------------
1607 1628  
1608   ---
  1629 +--
1609 1630 -- Table structure for table `zseq_column_entries`
1610   ---
  1631 +--
1611 1632  
1612 1633 CREATE TABLE `zseq_column_entries` (
1613 1634 `id` int(10) unsigned NOT NULL auto_increment,
... ... @@ -1616,9 +1637,9 @@ CREATE TABLE `zseq_column_entries` (
1616 1637  
1617 1638 -- --------------------------------------------------------
1618 1639  
1619   ---
  1640 +--
1620 1641 -- Table structure for table `zseq_dashlet_disables`
1621   ---
  1642 +--
1622 1643  
1623 1644 CREATE TABLE `zseq_dashlet_disables` (
1624 1645 `id` int(10) unsigned NOT NULL auto_increment,
... ... @@ -1627,9 +1648,9 @@ CREATE TABLE `zseq_dashlet_disables` (
1627 1648  
1628 1649 -- --------------------------------------------------------
1629 1650  
1630   ---
  1651 +--
1631 1652 -- Table structure for table `zseq_data_types`
1632   ---
  1653 +--
1633 1654  
1634 1655 CREATE TABLE `zseq_data_types` (
1635 1656 `id` int(10) unsigned NOT NULL auto_increment,
... ... @@ -1638,9 +1659,9 @@ CREATE TABLE `zseq_data_types` (
1638 1659  
1639 1660 -- --------------------------------------------------------
1640 1661  
1641   ---
  1662 +--
1642 1663 -- Table structure for table `zseq_dependant_document_instance`
1643   ---
  1664 +--
1644 1665  
1645 1666 CREATE TABLE `zseq_dependant_document_instance` (
1646 1667 `id` int(10) unsigned NOT NULL auto_increment,
... ... @@ -1649,9 +1670,9 @@ CREATE TABLE `zseq_dependant_document_instance` (
1649 1670  
1650 1671 -- --------------------------------------------------------
1651 1672  
1652   ---
  1673 +--
1653 1674 -- Table structure for table `zseq_dependant_document_template`
1654   ---
  1675 +--
1655 1676  
1656 1677 CREATE TABLE `zseq_dependant_document_template` (
1657 1678 `id` int(10) unsigned NOT NULL auto_increment,
... ... @@ -1660,9 +1681,9 @@ CREATE TABLE `zseq_dependant_document_template` (
1660 1681  
1661 1682 -- --------------------------------------------------------
1662 1683  
1663   ---
  1684 +--
1664 1685 -- Table structure for table `zseq_discussion_comments`
1665   ---
  1686 +--
1666 1687  
1667 1688 CREATE TABLE `zseq_discussion_comments` (
1668 1689 `id` int(10) unsigned NOT NULL auto_increment,
... ... @@ -1671,9 +1692,9 @@ CREATE TABLE `zseq_discussion_comments` (
1671 1692  
1672 1693 -- --------------------------------------------------------
1673 1694  
1674   ---
  1695 +--
1675 1696 -- Table structure for table `zseq_discussion_threads`
1676   ---
  1697 +--
1677 1698  
1678 1699 CREATE TABLE `zseq_discussion_threads` (
1679 1700 `id` int(10) unsigned NOT NULL auto_increment,
... ... @@ -1682,9 +1703,9 @@ CREATE TABLE `zseq_discussion_threads` (
1682 1703  
1683 1704 -- --------------------------------------------------------
1684 1705  
1685   ---
  1706 +--
1686 1707 -- Table structure for table `zseq_document_archiving_link`
1687   ---
  1708 +--
1688 1709  
1689 1710 CREATE TABLE `zseq_document_archiving_link` (
1690 1711 `id` int(10) unsigned NOT NULL auto_increment,
... ... @@ -1693,9 +1714,9 @@ CREATE TABLE `zseq_document_archiving_link` (
1693 1714  
1694 1715 -- --------------------------------------------------------
1695 1716  
1696   ---
  1717 +--
1697 1718 -- Table structure for table `zseq_document_content_version`
1698   ---
  1719 +--
1699 1720  
1700 1721 CREATE TABLE `zseq_document_content_version` (
1701 1722 `id` int(10) unsigned NOT NULL auto_increment,
... ... @@ -1704,9 +1725,9 @@ CREATE TABLE `zseq_document_content_version` (
1704 1725  
1705 1726 -- --------------------------------------------------------
1706 1727  
1707   ---
  1728 +--
1708 1729 -- Table structure for table `zseq_document_fields`
1709   ---
  1730 +--
1710 1731  
1711 1732 CREATE TABLE `zseq_document_fields` (
1712 1733 `id` int(10) unsigned NOT NULL auto_increment,
... ... @@ -1715,9 +1736,9 @@ CREATE TABLE `zseq_document_fields` (
1715 1736  
1716 1737 -- --------------------------------------------------------
1717 1738  
1718   ---
  1739 +--
1719 1740 -- Table structure for table `zseq_document_fields_link`
1720   ---
  1741 +--
1721 1742  
1722 1743 CREATE TABLE `zseq_document_fields_link` (
1723 1744 `id` int(10) unsigned NOT NULL auto_increment,
... ... @@ -1726,9 +1747,9 @@ CREATE TABLE `zseq_document_fields_link` (
1726 1747  
1727 1748 -- --------------------------------------------------------
1728 1749  
1729   ---
  1750 +--
1730 1751 -- Table structure for table `zseq_document_link`
1731   ---
  1752 +--
1732 1753  
1733 1754 CREATE TABLE `zseq_document_link` (
1734 1755 `id` int(10) unsigned NOT NULL auto_increment,
... ... @@ -1737,9 +1758,9 @@ CREATE TABLE `zseq_document_link` (
1737 1758  
1738 1759 -- --------------------------------------------------------
1739 1760  
1740   ---
  1761 +--
1741 1762 -- Table structure for table `zseq_document_link_types`
1742   ---
  1763 +--
1743 1764  
1744 1765 CREATE TABLE `zseq_document_link_types` (
1745 1766 `id` int(10) unsigned NOT NULL auto_increment,
... ... @@ -1748,9 +1769,9 @@ CREATE TABLE `zseq_document_link_types` (
1748 1769  
1749 1770 -- --------------------------------------------------------
1750 1771  
1751   ---
  1772 +--
1752 1773 -- Table structure for table `zseq_document_metadata_version`
1753   ---
  1774 +--
1754 1775  
1755 1776 CREATE TABLE `zseq_document_metadata_version` (
1756 1777 `id` int(10) unsigned NOT NULL auto_increment,
... ... @@ -1759,9 +1780,9 @@ CREATE TABLE `zseq_document_metadata_version` (
1759 1780  
1760 1781 -- --------------------------------------------------------
1761 1782  
1762   ---
  1783 +--
1763 1784 -- Table structure for table `zseq_document_role_allocations`
1764   ---
  1785 +--
1765 1786  
1766 1787 CREATE TABLE `zseq_document_role_allocations` (
1767 1788 `id` int(10) unsigned NOT NULL auto_increment,
... ... @@ -1770,9 +1791,9 @@ CREATE TABLE `zseq_document_role_allocations` (
1770 1791  
1771 1792 -- --------------------------------------------------------
1772 1793  
1773   ---
  1794 +--
1774 1795 -- Table structure for table `zseq_document_subscriptions`
1775   ---
  1796 +--
1776 1797  
1777 1798 CREATE TABLE `zseq_document_subscriptions` (
1778 1799 `id` int(10) unsigned NOT NULL auto_increment,
... ... @@ -1781,9 +1802,9 @@ CREATE TABLE `zseq_document_subscriptions` (
1781 1802  
1782 1803 -- --------------------------------------------------------
1783 1804  
1784   ---
  1805 +--
1785 1806 -- Table structure for table `zseq_document_transaction_types_lookup`
1786   ---
  1807 +--
1787 1808  
1788 1809 CREATE TABLE `zseq_document_transaction_types_lookup` (
1789 1810 `id` int(10) unsigned NOT NULL auto_increment,
... ... @@ -1792,9 +1813,9 @@ CREATE TABLE `zseq_document_transaction_types_lookup` (
1792 1813  
1793 1814 -- --------------------------------------------------------
1794 1815  
1795   ---
  1816 +--
1796 1817 -- Table structure for table `zseq_document_transactions`
1797   ---
  1818 +--
1798 1819  
1799 1820 CREATE TABLE `zseq_document_transactions` (
1800 1821 `id` int(10) unsigned NOT NULL auto_increment,
... ... @@ -1803,9 +1824,9 @@ CREATE TABLE `zseq_document_transactions` (
1803 1824  
1804 1825 -- --------------------------------------------------------
1805 1826  
1806   ---
  1827 +--
1807 1828 -- Table structure for table `zseq_document_type_fields_link`
1808   ---
  1829 +--
1809 1830  
1810 1831 CREATE TABLE `zseq_document_type_fields_link` (
1811 1832 `id` int(10) unsigned NOT NULL auto_increment,
... ... @@ -1814,9 +1835,9 @@ CREATE TABLE `zseq_document_type_fields_link` (
1814 1835  
1815 1836 -- --------------------------------------------------------
1816 1837  
1817   ---
  1838 +--
1818 1839 -- Table structure for table `zseq_document_type_fieldsets_link`
1819   ---
  1840 +--
1820 1841  
1821 1842 CREATE TABLE `zseq_document_type_fieldsets_link` (
1822 1843 `id` int(10) unsigned NOT NULL auto_increment,
... ... @@ -1825,9 +1846,9 @@ CREATE TABLE `zseq_document_type_fieldsets_link` (
1825 1846  
1826 1847 -- --------------------------------------------------------
1827 1848  
1828   ---
  1849 +--
1829 1850 -- Table structure for table `zseq_document_types_lookup`
1830   ---
  1851 +--
1831 1852  
1832 1853 CREATE TABLE `zseq_document_types_lookup` (
1833 1854 `id` int(10) unsigned NOT NULL auto_increment,
... ... @@ -1836,9 +1857,9 @@ CREATE TABLE `zseq_document_types_lookup` (
1836 1857  
1837 1858 -- --------------------------------------------------------
1838 1859  
1839   ---
  1860 +--
1840 1861 -- Table structure for table `zseq_documents`
1841   ---
  1862 +--
1842 1863  
1843 1864 CREATE TABLE `zseq_documents` (
1844 1865 `id` int(10) unsigned NOT NULL auto_increment,
... ... @@ -1847,9 +1868,9 @@ CREATE TABLE `zseq_documents` (
1847 1868  
1848 1869 -- --------------------------------------------------------
1849 1870  
1850   ---
  1871 +--
1851 1872 -- Table structure for table `zseq_field_behaviours`
1852   ---
  1873 +--
1853 1874  
1854 1875 CREATE TABLE `zseq_field_behaviours` (
1855 1876 `id` int(10) unsigned NOT NULL auto_increment,
... ... @@ -1858,9 +1879,9 @@ CREATE TABLE `zseq_field_behaviours` (
1858 1879  
1859 1880 -- --------------------------------------------------------
1860 1881  
1861   ---
  1882 +--
1862 1883 -- Table structure for table `zseq_field_value_instances`
1863   ---
  1884 +--
1864 1885  
1865 1886 CREATE TABLE `zseq_field_value_instances` (
1866 1887 `id` int(10) unsigned NOT NULL auto_increment,
... ... @@ -1869,9 +1890,9 @@ CREATE TABLE `zseq_field_value_instances` (
1869 1890  
1870 1891 -- --------------------------------------------------------
1871 1892  
1872   ---
  1893 +--
1873 1894 -- Table structure for table `zseq_fieldsets`
1874   ---
  1895 +--
1875 1896  
1876 1897 CREATE TABLE `zseq_fieldsets` (
1877 1898 `id` int(10) unsigned NOT NULL auto_increment,
... ... @@ -1880,9 +1901,9 @@ CREATE TABLE `zseq_fieldsets` (
1880 1901  
1881 1902 -- --------------------------------------------------------
1882 1903  
1883   ---
  1904 +--
1884 1905 -- Table structure for table `zseq_folder_doctypes_link`
1885   ---
  1906 +--
1886 1907  
1887 1908 CREATE TABLE `zseq_folder_doctypes_link` (
1888 1909 `id` int(10) unsigned NOT NULL auto_increment,
... ... @@ -1891,9 +1912,9 @@ CREATE TABLE `zseq_folder_doctypes_link` (
1891 1912  
1892 1913 -- --------------------------------------------------------
1893 1914  
1894   ---
  1915 +--
1895 1916 -- Table structure for table `zseq_folder_subscriptions`
1896   ---
  1917 +--
1897 1918  
1898 1919 CREATE TABLE `zseq_folder_subscriptions` (
1899 1920 `id` int(10) unsigned NOT NULL auto_increment,
... ... @@ -1902,9 +1923,9 @@ CREATE TABLE `zseq_folder_subscriptions` (
1902 1923  
1903 1924 -- --------------------------------------------------------
1904 1925  
1905   ---
  1926 +--
1906 1927 -- Table structure for table `zseq_folder_transactions`
1907   ---
  1928 +--
1908 1929  
1909 1930 CREATE TABLE `zseq_folder_transactions` (
1910 1931 `id` int(10) unsigned NOT NULL auto_increment,
... ... @@ -1913,9 +1934,9 @@ CREATE TABLE `zseq_folder_transactions` (
1913 1934  
1914 1935 -- --------------------------------------------------------
1915 1936  
1916   ---
  1937 +--
1917 1938 -- Table structure for table `zseq_folders`
1918   ---
  1939 +--
1919 1940  
1920 1941 CREATE TABLE `zseq_folders` (
1921 1942 `id` int(10) unsigned NOT NULL auto_increment,
... ... @@ -1924,9 +1945,9 @@ CREATE TABLE `zseq_folders` (
1924 1945  
1925 1946 -- --------------------------------------------------------
1926 1947  
1927   ---
  1948 +--
1928 1949 -- Table structure for table `zseq_folders_users_roles_link`
1929   ---
  1950 +--
1930 1951  
1931 1952 CREATE TABLE `zseq_folders_users_roles_link` (
1932 1953 `id` int(10) unsigned NOT NULL auto_increment,
... ... @@ -1935,9 +1956,9 @@ CREATE TABLE `zseq_folders_users_roles_link` (
1935 1956  
1936 1957 -- --------------------------------------------------------
1937 1958  
1938   ---
  1959 +--
1939 1960 -- Table structure for table `zseq_groups_groups_link`
1940   ---
  1961 +--
1941 1962  
1942 1963 CREATE TABLE `zseq_groups_groups_link` (
1943 1964 `id` int(10) unsigned NOT NULL auto_increment,
... ... @@ -1946,9 +1967,9 @@ CREATE TABLE `zseq_groups_groups_link` (
1946 1967  
1947 1968 -- --------------------------------------------------------
1948 1969  
1949   ---
  1970 +--
1950 1971 -- Table structure for table `zseq_groups_lookup`
1951   ---
  1972 +--
1952 1973  
1953 1974 CREATE TABLE `zseq_groups_lookup` (
1954 1975 `id` int(10) unsigned NOT NULL auto_increment,
... ... @@ -1957,9 +1978,9 @@ CREATE TABLE `zseq_groups_lookup` (
1957 1978  
1958 1979 -- --------------------------------------------------------
1959 1980  
1960   ---
  1981 +--
1961 1982 -- Table structure for table `zseq_help`
1962   ---
  1983 +--
1963 1984  
1964 1985 CREATE TABLE `zseq_help` (
1965 1986 `id` int(10) unsigned NOT NULL auto_increment,
... ... @@ -1968,9 +1989,9 @@ CREATE TABLE `zseq_help` (
1968 1989  
1969 1990 -- --------------------------------------------------------
1970 1991  
1971   ---
  1992 +--
1972 1993 -- Table structure for table `zseq_help_replacement`
1973   ---
  1994 +--
1974 1995  
1975 1996 CREATE TABLE `zseq_help_replacement` (
1976 1997 `id` int(10) unsigned NOT NULL auto_increment,
... ... @@ -1979,9 +2000,9 @@ CREATE TABLE `zseq_help_replacement` (
1979 2000  
1980 2001 -- --------------------------------------------------------
1981 2002  
1982   ---
  2003 +--
1983 2004 -- Table structure for table `zseq_interceptor_instances`
1984   ---
  2005 +--
1985 2006  
1986 2007 CREATE TABLE `zseq_interceptor_instances` (
1987 2008 `id` int(10) unsigned NOT NULL auto_increment,
... ... @@ -1990,9 +2011,9 @@ CREATE TABLE `zseq_interceptor_instances` (
1990 2011  
1991 2012 -- --------------------------------------------------------
1992 2013  
1993   ---
  2014 +--
1994 2015 -- Table structure for table `zseq_links`
1995   ---
  2016 +--
1996 2017  
1997 2018 CREATE TABLE `zseq_links` (
1998 2019 `id` int(10) unsigned NOT NULL auto_increment,
... ... @@ -2001,9 +2022,9 @@ CREATE TABLE `zseq_links` (
2001 2022  
2002 2023 -- --------------------------------------------------------
2003 2024  
2004   ---
  2025 +--
2005 2026 -- Table structure for table `zseq_metadata_lookup`
2006   ---
  2027 +--
2007 2028  
2008 2029 CREATE TABLE `zseq_metadata_lookup` (
2009 2030 `id` int(10) unsigned NOT NULL auto_increment,
... ... @@ -2012,9 +2033,9 @@ CREATE TABLE `zseq_metadata_lookup` (
2012 2033  
2013 2034 -- --------------------------------------------------------
2014 2035  
2015   ---
  2036 +--
2016 2037 -- Table structure for table `zseq_metadata_lookup_tree`
2017   ---
  2038 +--
2018 2039  
2019 2040 CREATE TABLE `zseq_metadata_lookup_tree` (
2020 2041 `id` int(10) unsigned NOT NULL auto_increment,
... ... @@ -2023,9 +2044,9 @@ CREATE TABLE `zseq_metadata_lookup_tree` (
2023 2044  
2024 2045 -- --------------------------------------------------------
2025 2046  
2026   ---
  2047 +--
2027 2048 -- Table structure for table `zseq_mime_types`
2028   ---
  2049 +--
2029 2050  
2030 2051 CREATE TABLE `zseq_mime_types` (
2031 2052 `id` int(10) unsigned NOT NULL auto_increment,
... ... @@ -2034,9 +2055,9 @@ CREATE TABLE `zseq_mime_types` (
2034 2055  
2035 2056 -- --------------------------------------------------------
2036 2057  
2037   ---
  2058 +--
2038 2059 -- Table structure for table `zseq_news`
2039   ---
  2060 +--
2040 2061  
2041 2062 CREATE TABLE `zseq_news` (
2042 2063 `id` int(10) unsigned NOT NULL auto_increment,
... ... @@ -2045,9 +2066,9 @@ CREATE TABLE `zseq_news` (
2045 2066  
2046 2067 -- --------------------------------------------------------
2047 2068  
2048   ---
  2069 +--
2049 2070 -- Table structure for table `zseq_notifications`
2050   ---
  2071 +--
2051 2072  
2052 2073 CREATE TABLE `zseq_notifications` (
2053 2074 `id` int(10) unsigned NOT NULL auto_increment,
... ... @@ -2056,9 +2077,9 @@ CREATE TABLE `zseq_notifications` (
2056 2077  
2057 2078 -- --------------------------------------------------------
2058 2079  
2059   ---
  2080 +--
2060 2081 -- Table structure for table `zseq_organisations_lookup`
2061   ---
  2082 +--
2062 2083  
2063 2084 CREATE TABLE `zseq_organisations_lookup` (
2064 2085 `id` int(10) unsigned NOT NULL auto_increment,
... ... @@ -2067,9 +2088,9 @@ CREATE TABLE `zseq_organisations_lookup` (
2067 2088  
2068 2089 -- --------------------------------------------------------
2069 2090  
2070   ---
  2091 +--
2071 2092 -- Table structure for table `zseq_permission_assignments`
2072   ---
  2093 +--
2073 2094  
2074 2095 CREATE TABLE `zseq_permission_assignments` (
2075 2096 `id` int(10) unsigned NOT NULL auto_increment,
... ... @@ -2078,9 +2099,9 @@ CREATE TABLE `zseq_permission_assignments` (
2078 2099  
2079 2100 -- --------------------------------------------------------
2080 2101  
2081   ---
  2102 +--
2082 2103 -- Table structure for table `zseq_permission_descriptors`
2083   ---
  2104 +--
2084 2105  
2085 2106 CREATE TABLE `zseq_permission_descriptors` (
2086 2107 `id` int(10) unsigned NOT NULL auto_increment,
... ... @@ -2089,9 +2110,9 @@ CREATE TABLE `zseq_permission_descriptors` (
2089 2110  
2090 2111 -- --------------------------------------------------------
2091 2112  
2092   ---
  2113 +--
2093 2114 -- Table structure for table `zseq_permission_dynamic_conditions`
2094   ---
  2115 +--
2095 2116  
2096 2117 CREATE TABLE `zseq_permission_dynamic_conditions` (
2097 2118 `id` int(10) unsigned NOT NULL auto_increment,
... ... @@ -2100,9 +2121,9 @@ CREATE TABLE `zseq_permission_dynamic_conditions` (
2100 2121  
2101 2122 -- --------------------------------------------------------
2102 2123  
2103   ---
  2124 +--
2104 2125 -- Table structure for table `zseq_permission_lookup_assignments`
2105   ---
  2126 +--
2106 2127  
2107 2128 CREATE TABLE `zseq_permission_lookup_assignments` (
2108 2129 `id` int(10) unsigned NOT NULL auto_increment,
... ... @@ -2111,9 +2132,9 @@ CREATE TABLE `zseq_permission_lookup_assignments` (
2111 2132  
2112 2133 -- --------------------------------------------------------
2113 2134  
2114   ---
  2135 +--
2115 2136 -- Table structure for table `zseq_permission_lookups`
2116   ---
  2137 +--
2117 2138  
2118 2139 CREATE TABLE `zseq_permission_lookups` (
2119 2140 `id` int(10) unsigned NOT NULL auto_increment,
... ... @@ -2122,9 +2143,9 @@ CREATE TABLE `zseq_permission_lookups` (
2122 2143  
2123 2144 -- --------------------------------------------------------
2124 2145  
2125   ---
  2146 +--
2126 2147 -- Table structure for table `zseq_permission_objects`
2127   ---
  2148 +--
2128 2149  
2129 2150 CREATE TABLE `zseq_permission_objects` (
2130 2151 `id` int(10) unsigned NOT NULL auto_increment,
... ... @@ -2133,9 +2154,9 @@ CREATE TABLE `zseq_permission_objects` (
2133 2154  
2134 2155 -- --------------------------------------------------------
2135 2156  
2136   ---
  2157 +--
2137 2158 -- Table structure for table `zseq_permissions`
2138   ---
  2159 +--
2139 2160  
2140 2161 CREATE TABLE `zseq_permissions` (
2141 2162 `id` int(10) unsigned NOT NULL auto_increment,
... ... @@ -2144,9 +2165,9 @@ CREATE TABLE `zseq_permissions` (
2144 2165  
2145 2166 -- --------------------------------------------------------
2146 2167  
2147   ---
  2168 +--
2148 2169 -- Table structure for table `zseq_plugins`
2149   ---
  2170 +--
2150 2171  
2151 2172 CREATE TABLE `zseq_plugins` (
2152 2173 `id` int(10) unsigned NOT NULL auto_increment,
... ... @@ -2155,9 +2176,20 @@ CREATE TABLE `zseq_plugins` (
2155 2176  
2156 2177 -- --------------------------------------------------------
2157 2178  
2158   ---
  2179 +--
  2180 +-- Table structure for table `zseq_plugin_helper`
  2181 +--
  2182 +
  2183 +CREATE TABLE `zseq_plugin_helper` (
  2184 + `id` int(10) unsigned NOT NULL auto_increment,
  2185 + PRIMARY KEY (`id`)
  2186 +) ENGINE=MyISAM DEFAULT CHARSET=latin1;
  2187 +
  2188 +-- --------------------------------------------------------
  2189 +
  2190 +--
2159 2191 -- Table structure for table `zseq_role_allocations`
2160   ---
  2192 +--
2161 2193  
2162 2194 CREATE TABLE `zseq_role_allocations` (
2163 2195 `id` int(10) unsigned NOT NULL auto_increment,
... ... @@ -2166,9 +2198,9 @@ CREATE TABLE `zseq_role_allocations` (
2166 2198  
2167 2199 -- --------------------------------------------------------
2168 2200  
2169   ---
  2201 +--
2170 2202 -- Table structure for table `zseq_roles`
2171   ---
  2203 +--
2172 2204  
2173 2205 CREATE TABLE `zseq_roles` (
2174 2206 `id` int(10) unsigned NOT NULL auto_increment,
... ... @@ -2177,9 +2209,9 @@ CREATE TABLE `zseq_roles` (
2177 2209  
2178 2210 -- --------------------------------------------------------
2179 2211  
2180   ---
  2212 +--
2181 2213 -- Table structure for table `zseq_saved_searches`
2182   ---
  2214 +--
2183 2215  
2184 2216 CREATE TABLE `zseq_saved_searches` (
2185 2217 `id` int(10) unsigned NOT NULL auto_increment,
... ... @@ -2188,9 +2220,9 @@ CREATE TABLE `zseq_saved_searches` (
2188 2220  
2189 2221 -- --------------------------------------------------------
2190 2222  
2191   ---
  2223 +--
2192 2224 -- Table structure for table `zseq_status_lookup`
2193   ---
  2225 +--
2194 2226  
2195 2227 CREATE TABLE `zseq_status_lookup` (
2196 2228 `id` int(10) unsigned NOT NULL auto_increment,
... ... @@ -2199,9 +2231,9 @@ CREATE TABLE `zseq_status_lookup` (
2199 2231  
2200 2232 -- --------------------------------------------------------
2201 2233  
2202   ---
  2234 +--
2203 2235 -- Table structure for table `zseq_system_settings`
2204   ---
  2236 +--
2205 2237  
2206 2238 CREATE TABLE `zseq_system_settings` (
2207 2239 `id` int(10) unsigned NOT NULL auto_increment,
... ... @@ -2210,9 +2242,9 @@ CREATE TABLE `zseq_system_settings` (
2210 2242  
2211 2243 -- --------------------------------------------------------
2212 2244  
2213   ---
  2245 +--
2214 2246 -- Table structure for table `zseq_time_period`
2215   ---
  2247 +--
2216 2248  
2217 2249 CREATE TABLE `zseq_time_period` (
2218 2250 `id` int(10) unsigned NOT NULL auto_increment,
... ... @@ -2221,9 +2253,9 @@ CREATE TABLE `zseq_time_period` (
2221 2253  
2222 2254 -- --------------------------------------------------------
2223 2255  
2224   ---
  2256 +--
2225 2257 -- Table structure for table `zseq_time_unit_lookup`
2226   ---
  2258 +--
2227 2259  
2228 2260 CREATE TABLE `zseq_time_unit_lookup` (
2229 2261 `id` int(10) unsigned NOT NULL auto_increment,
... ... @@ -2232,9 +2264,9 @@ CREATE TABLE `zseq_time_unit_lookup` (
2232 2264  
2233 2265 -- --------------------------------------------------------
2234 2266  
2235   ---
  2267 +--
2236 2268 -- Table structure for table `zseq_units_lookup`
2237   ---
  2269 +--
2238 2270  
2239 2271 CREATE TABLE `zseq_units_lookup` (
2240 2272 `id` int(10) unsigned NOT NULL auto_increment,
... ... @@ -2243,9 +2275,9 @@ CREATE TABLE `zseq_units_lookup` (
2243 2275  
2244 2276 -- --------------------------------------------------------
2245 2277  
2246   ---
  2278 +--
2247 2279 -- Table structure for table `zseq_units_organisations_link`
2248   ---
  2280 +--
2249 2281  
2250 2282 CREATE TABLE `zseq_units_organisations_link` (
2251 2283 `id` int(10) unsigned NOT NULL auto_increment,
... ... @@ -2254,9 +2286,9 @@ CREATE TABLE `zseq_units_organisations_link` (
2254 2286  
2255 2287 -- --------------------------------------------------------
2256 2288  
2257   ---
  2289 +--
2258 2290 -- Table structure for table `zseq_upgrades`
2259   ---
  2291 +--
2260 2292  
2261 2293 CREATE TABLE `zseq_upgrades` (
2262 2294 `id` int(10) unsigned NOT NULL auto_increment,
... ... @@ -2265,9 +2297,9 @@ CREATE TABLE `zseq_upgrades` (
2265 2297  
2266 2298 -- --------------------------------------------------------
2267 2299  
2268   ---
  2300 +--
2269 2301 -- Table structure for table `zseq_user_history`
2270   ---
  2302 +--
2271 2303  
2272 2304 CREATE TABLE `zseq_user_history` (
2273 2305 `id` int(10) unsigned NOT NULL auto_increment,
... ... @@ -2276,9 +2308,9 @@ CREATE TABLE `zseq_user_history` (
2276 2308  
2277 2309 -- --------------------------------------------------------
2278 2310  
2279   ---
  2311 +--
2280 2312 -- Table structure for table `zseq_users`
2281   ---
  2313 +--
2282 2314  
2283 2315 CREATE TABLE `zseq_users` (
2284 2316 `id` int(10) unsigned NOT NULL auto_increment,
... ... @@ -2287,9 +2319,9 @@ CREATE TABLE `zseq_users` (
2287 2319  
2288 2320 -- --------------------------------------------------------
2289 2321  
2290   ---
  2322 +--
2291 2323 -- Table structure for table `zseq_users_groups_link`
2292   ---
  2324 +--
2293 2325  
2294 2326 CREATE TABLE `zseq_users_groups_link` (
2295 2327 `id` int(10) unsigned NOT NULL auto_increment,
... ... @@ -2298,9 +2330,9 @@ CREATE TABLE `zseq_users_groups_link` (
2298 2330  
2299 2331 -- --------------------------------------------------------
2300 2332  
2301   ---
  2333 +--
2302 2334 -- Table structure for table `zseq_workflow_state_disabled_actions`
2303   ---
  2335 +--
2304 2336  
2305 2337 CREATE TABLE `zseq_workflow_state_disabled_actions` (
2306 2338 `id` int(10) unsigned NOT NULL auto_increment,
... ... @@ -2309,9 +2341,9 @@ CREATE TABLE `zseq_workflow_state_disabled_actions` (
2309 2341  
2310 2342 -- --------------------------------------------------------
2311 2343  
2312   ---
  2344 +--
2313 2345 -- Table structure for table `zseq_workflow_state_permission_assignments`
2314   ---
  2346 +--
2315 2347  
2316 2348 CREATE TABLE `zseq_workflow_state_permission_assignments` (
2317 2349 `id` int(10) unsigned NOT NULL auto_increment,
... ... @@ -2320,9 +2352,9 @@ CREATE TABLE `zseq_workflow_state_permission_assignments` (
2320 2352  
2321 2353 -- --------------------------------------------------------
2322 2354  
2323   ---
  2355 +--
2324 2356 -- Table structure for table `zseq_workflow_states`
2325   ---
  2357 +--
2326 2358  
2327 2359 CREATE TABLE `zseq_workflow_states` (
2328 2360 `id` int(10) unsigned NOT NULL auto_increment,
... ... @@ -2331,9 +2363,9 @@ CREATE TABLE `zseq_workflow_states` (
2331 2363  
2332 2364 -- --------------------------------------------------------
2333 2365  
2334   ---
  2366 +--
2335 2367 -- Table structure for table `zseq_workflow_transitions`
2336   ---
  2368 +--
2337 2369  
2338 2370 CREATE TABLE `zseq_workflow_transitions` (
2339 2371 `id` int(10) unsigned NOT NULL auto_increment,
... ... @@ -2342,9 +2374,9 @@ CREATE TABLE `zseq_workflow_transitions` (
2342 2374  
2343 2375 -- --------------------------------------------------------
2344 2376  
2345   ---
  2377 +--
2346 2378 -- Table structure for table `zseq_workflow_trigger_instances`
2347   ---
  2379 +--
2348 2380  
2349 2381 CREATE TABLE `zseq_workflow_trigger_instances` (
2350 2382 `id` int(10) unsigned NOT NULL auto_increment,
... ... @@ -2353,34 +2385,34 @@ CREATE TABLE `zseq_workflow_trigger_instances` (
2353 2385  
2354 2386 -- --------------------------------------------------------
2355 2387  
2356   ---
  2388 +--
2357 2389 -- Table structure for table `zseq_workflows`
2358   ---
  2390 +--
2359 2391  
2360 2392 CREATE TABLE `zseq_workflows` (
2361 2393 `id` int(10) unsigned NOT NULL auto_increment,
2362 2394 PRIMARY KEY (`id`)
2363 2395 ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
2364 2396  
2365   ---
  2397 +--
2366 2398 -- Constraints for dumped tables
2367   ---
  2399 +--
2368 2400  
2369   ---
  2401 +--
2370 2402 -- Constraints for table `document_fields`
2371   ---
  2403 +--
2372 2404 ALTER TABLE `document_fields`
2373 2405 ADD CONSTRAINT `document_fields_ibfk_1` FOREIGN KEY (`parent_fieldset`) REFERENCES `fieldsets` (`id`) ON DELETE CASCADE;
2374 2406  
2375   ---
  2407 +--
2376 2408 -- Constraints for table `document_fields_link`
2377   ---
  2409 +--
2378 2410 ALTER TABLE `document_fields_link`
2379 2411 ADD CONSTRAINT `document_fields_link_ibfk_2` FOREIGN KEY (`document_field_id`) REFERENCES `document_fields` (`id`) ON DELETE CASCADE;
2380 2412  
2381   ---
  2413 +--
2382 2414 -- Constraints for table `document_metadata_version`
2383   ---
  2415 +--
2384 2416 ALTER TABLE `document_metadata_version`
2385 2417 ADD CONSTRAINT `document_metadata_version_ibfk_4` FOREIGN KEY (`document_id`) REFERENCES `documents` (`id`) ON DELETE CASCADE,
2386 2418 ADD CONSTRAINT `document_metadata_version_ibfk_5` FOREIGN KEY (`document_type_id`) REFERENCES `document_types_lookup` (`id`),
... ... @@ -2389,163 +2421,163 @@ ALTER TABLE `document_metadata_version`
2389 2421 ADD CONSTRAINT `document_metadata_version_ibfk_8` FOREIGN KEY (`workflow_id`) REFERENCES `workflows` (`id`),
2390 2422 ADD CONSTRAINT `document_metadata_version_ibfk_9` FOREIGN KEY (`workflow_state_id`) REFERENCES `workflow_states` (`id`);
2391 2423  
2392   ---
  2424 +--
2393 2425 -- Constraints for table `document_type_fieldsets_link`
2394   ---
  2426 +--
2395 2427 ALTER TABLE `document_type_fieldsets_link`
2396 2428 ADD CONSTRAINT `document_type_fieldsets_link_ibfk_1` FOREIGN KEY (`document_type_id`) REFERENCES `document_types_lookup` (`id`) ON DELETE CASCADE,
2397 2429 ADD CONSTRAINT `document_type_fieldsets_link_ibfk_2` FOREIGN KEY (`fieldset_id`) REFERENCES `fieldsets` (`id`) ON DELETE CASCADE;
2398 2430  
2399   ---
  2431 +--
2400 2432 -- Constraints for table `field_behaviour_options`
2401   ---
  2433 +--
2402 2434 ALTER TABLE `field_behaviour_options`
2403 2435 ADD CONSTRAINT `field_behaviour_options_ibfk_1` FOREIGN KEY (`behaviour_id`) REFERENCES `field_behaviours` (`id`) ON DELETE CASCADE,
2404 2436 ADD CONSTRAINT `field_behaviour_options_ibfk_2` FOREIGN KEY (`field_id`) REFERENCES `document_fields` (`id`) ON DELETE CASCADE,
2405 2437 ADD CONSTRAINT `field_behaviour_options_ibfk_3` FOREIGN KEY (`instance_id`) REFERENCES `field_value_instances` (`id`) ON DELETE CASCADE;
2406 2438  
2407   ---
  2439 +--
2408 2440 -- Constraints for table `field_behaviours`
2409   ---
  2441 +--
2410 2442 ALTER TABLE `field_behaviours`
2411 2443 ADD CONSTRAINT `field_behaviours_ibfk_1` FOREIGN KEY (`field_id`) REFERENCES `document_fields` (`id`) ON DELETE CASCADE;
2412 2444  
2413   ---
  2445 +--
2414 2446 -- Constraints for table `field_orders`
2415   ---
  2447 +--
2416 2448 ALTER TABLE `field_orders`
2417 2449 ADD CONSTRAINT `field_orders_ibfk_1` FOREIGN KEY (`parent_field_id`) REFERENCES `document_fields` (`id`) ON DELETE CASCADE,
2418 2450 ADD CONSTRAINT `field_orders_ibfk_2` FOREIGN KEY (`child_field_id`) REFERENCES `document_fields` (`id`) ON DELETE CASCADE,
2419 2451 ADD CONSTRAINT `field_orders_ibfk_3` FOREIGN KEY (`fieldset_id`) REFERENCES `fieldsets` (`id`) ON DELETE CASCADE;
2420 2452  
2421   ---
  2453 +--
2422 2454 -- Constraints for table `field_value_instances`
2423   ---
  2455 +--
2424 2456 ALTER TABLE `field_value_instances`
2425 2457 ADD CONSTRAINT `field_value_instances_ibfk_1` FOREIGN KEY (`field_id`) REFERENCES `document_fields` (`id`) ON DELETE CASCADE,
2426 2458 ADD CONSTRAINT `field_value_instances_ibfk_2` FOREIGN KEY (`field_value_id`) REFERENCES `metadata_lookup` (`id`) ON DELETE CASCADE,
2427 2459 ADD CONSTRAINT `field_value_instances_ibfk_3` FOREIGN KEY (`behaviour_id`) REFERENCES `field_behaviours` (`id`) ON DELETE CASCADE;
2428 2460  
2429   ---
  2461 +--
2430 2462 -- Constraints for table `fieldsets`
2431   ---
  2463 +--
2432 2464 ALTER TABLE `fieldsets`
2433 2465 ADD CONSTRAINT `fieldsets_ibfk_1` FOREIGN KEY (`master_field`) REFERENCES `document_fields` (`id`) ON DELETE SET NULL;
2434 2466  
2435   ---
  2467 +--
2436 2468 -- Constraints for table `folder_transactions`
2437   ---
  2469 +--
2438 2470 ALTER TABLE `folder_transactions`
2439 2471 ADD CONSTRAINT `folder_transactions_ibfk_1` FOREIGN KEY (`folder_id`) REFERENCES `folders` (`id`) ON DELETE CASCADE,
2440 2472 ADD CONSTRAINT `folder_transactions_ibfk_2` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE;
2441 2473  
2442   ---
  2474 +--
2443 2475 -- Constraints for table `groups_groups_link`
2444   ---
  2476 +--
2445 2477 ALTER TABLE `groups_groups_link`
2446 2478 ADD CONSTRAINT `groups_groups_link_ibfk_1` FOREIGN KEY (`parent_group_id`) REFERENCES `groups_lookup` (`id`) ON DELETE CASCADE,
2447 2479 ADD CONSTRAINT `groups_groups_link_ibfk_2` FOREIGN KEY (`member_group_id`) REFERENCES `groups_lookup` (`id`) ON DELETE CASCADE;
2448 2480  
2449   ---
  2481 +--
2450 2482 -- Constraints for table `groups_lookup`
2451   ---
  2483 +--
2452 2484 ALTER TABLE `groups_lookup`
2453 2485 ADD CONSTRAINT `groups_lookup_ibfk_1` FOREIGN KEY (`unit_id`) REFERENCES `units_lookup` (`id`);
2454 2486  
2455   ---
  2487 +--
2456 2488 -- Constraints for table `permission_assignments`
2457   ---
  2489 +--
2458 2490 ALTER TABLE `permission_assignments`
2459 2491 ADD CONSTRAINT `permission_assignments_ibfk_1` FOREIGN KEY (`permission_id`) REFERENCES `permissions` (`id`) ON DELETE CASCADE,
2460 2492 ADD CONSTRAINT `permission_assignments_ibfk_2` FOREIGN KEY (`permission_object_id`) REFERENCES `permission_objects` (`id`) ON DELETE CASCADE,
2461 2493 ADD CONSTRAINT `permission_assignments_ibfk_3` FOREIGN KEY (`permission_descriptor_id`) REFERENCES `permission_descriptors` (`id`) ON DELETE CASCADE;
2462 2494  
2463   ---
  2495 +--
2464 2496 -- Constraints for table `permission_descriptor_groups`
2465   ---
  2497 +--
2466 2498 ALTER TABLE `permission_descriptor_groups`
2467 2499 ADD CONSTRAINT `permission_descriptor_groups_ibfk_1` FOREIGN KEY (`descriptor_id`) REFERENCES `permission_descriptors` (`id`) ON DELETE CASCADE,
2468 2500 ADD CONSTRAINT `permission_descriptor_groups_ibfk_2` FOREIGN KEY (`group_id`) REFERENCES `groups_lookup` (`id`) ON DELETE CASCADE;
2469 2501  
2470   ---
  2502 +--
2471 2503 -- Constraints for table `permission_descriptor_roles`
2472   ---
  2504 +--
2473 2505 ALTER TABLE `permission_descriptor_roles`
2474 2506 ADD CONSTRAINT `permission_descriptor_roles_ibfk_1` FOREIGN KEY (`descriptor_id`) REFERENCES `permission_descriptors` (`id`) ON DELETE CASCADE,
2475 2507 ADD CONSTRAINT `permission_descriptor_roles_ibfk_2` FOREIGN KEY (`role_id`) REFERENCES `roles` (`id`) ON DELETE CASCADE;
2476 2508  
2477   ---
  2509 +--
2478 2510 -- Constraints for table `permission_descriptor_users`
2479   ---
  2511 +--
2480 2512 ALTER TABLE `permission_descriptor_users`
2481 2513 ADD CONSTRAINT `permission_descriptor_users_ibfk_1` FOREIGN KEY (`descriptor_id`) REFERENCES `permission_descriptors` (`id`) ON DELETE CASCADE,
2482 2514 ADD CONSTRAINT `permission_descriptor_users_ibfk_2` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE;
2483 2515  
2484   ---
  2516 +--
2485 2517 -- Constraints for table `permission_dynamic_assignments`
2486   ---
  2518 +--
2487 2519 ALTER TABLE `permission_dynamic_assignments`
2488 2520 ADD CONSTRAINT `permission_dynamic_assignments_ibfk_2` FOREIGN KEY (`dynamic_condition_id`) REFERENCES `permission_dynamic_conditions` (`id`) ON DELETE CASCADE,
2489 2521 ADD CONSTRAINT `permission_dynamic_assignments_ibfk_3` FOREIGN KEY (`permission_id`) REFERENCES `permissions` (`id`) ON DELETE CASCADE;
2490 2522  
2491   ---
  2523 +--
2492 2524 -- Constraints for table `permission_dynamic_conditions`
2493   ---
  2525 +--
2494 2526 ALTER TABLE `permission_dynamic_conditions`
2495 2527 ADD CONSTRAINT `permission_dynamic_conditions_ibfk_1` FOREIGN KEY (`permission_object_id`) REFERENCES `permission_objects` (`id`) ON DELETE CASCADE,
2496 2528 ADD CONSTRAINT `permission_dynamic_conditions_ibfk_2` FOREIGN KEY (`group_id`) REFERENCES `groups_lookup` (`id`) ON DELETE CASCADE,
2497 2529 ADD CONSTRAINT `permission_dynamic_conditions_ibfk_3` FOREIGN KEY (`condition_id`) REFERENCES `saved_searches` (`id`) ON DELETE CASCADE;
2498 2530  
2499   ---
  2531 +--
2500 2532 -- Constraints for table `permission_lookup_assignments`
2501   ---
  2533 +--
2502 2534 ALTER TABLE `permission_lookup_assignments`
2503 2535 ADD CONSTRAINT `permission_lookup_assignments_ibfk_1` FOREIGN KEY (`permission_id`) REFERENCES `permissions` (`id`) ON DELETE CASCADE,
2504 2536 ADD CONSTRAINT `permission_lookup_assignments_ibfk_2` FOREIGN KEY (`permission_lookup_id`) REFERENCES `permission_lookups` (`id`) ON DELETE CASCADE,
2505 2537 ADD CONSTRAINT `permission_lookup_assignments_ibfk_3` FOREIGN KEY (`permission_descriptor_id`) REFERENCES `permission_descriptors` (`id`) ON DELETE CASCADE;
2506 2538  
2507   ---
  2539 +--
2508 2540 -- Constraints for table `saved_searches`
2509   ---
  2541 +--
2510 2542 ALTER TABLE `saved_searches`
2511 2543 ADD CONSTRAINT `saved_searches_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;
2512 2544  
2513   ---
  2545 +--
2514 2546 -- Constraints for table `user_history`
2515   ---
  2547 +--
2516 2548 ALTER TABLE `user_history`
2517 2549 ADD CONSTRAINT `user_history_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE;
2518 2550  
2519   ---
  2551 +--
2520 2552 -- Constraints for table `users`
2521   ---
  2553 +--
2522 2554 ALTER TABLE `users`
2523 2555 ADD CONSTRAINT `users_ibfk_1` FOREIGN KEY (`authentication_source_id`) REFERENCES `authentication_sources` (`id`) ON DELETE SET NULL;
2524 2556  
2525   ---
  2557 +--
2526 2558 -- Constraints for table `users_groups_link`
2527   ---
  2559 +--
2528 2560 ALTER TABLE `users_groups_link`
2529 2561 ADD CONSTRAINT `users_groups_link_ibfk_1` FOREIGN KEY (`group_id`) REFERENCES `groups_lookup` (`id`) ON DELETE CASCADE,
2530 2562 ADD CONSTRAINT `users_groups_link_ibfk_2` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE;
2531 2563  
2532   ---
  2564 +--
2533 2565 -- Constraints for table `workflow_state_permission_assignments`
2534   ---
  2566 +--
2535 2567 ALTER TABLE `workflow_state_permission_assignments`
2536 2568 ADD CONSTRAINT `workflow_state_permission_assignments_ibfk_7` FOREIGN KEY (`permission_id`) REFERENCES `permissions` (`id`) ON DELETE CASCADE,
2537 2569 ADD CONSTRAINT `workflow_state_permission_assignments_ibfk_8` FOREIGN KEY (`permission_descriptor_id`) REFERENCES `permission_descriptors` (`id`) ON DELETE CASCADE;
2538 2570  
2539   ---
  2571 +--
2540 2572 -- Constraints for table `workflow_states`
2541   ---
  2573 +--
2542 2574 ALTER TABLE `workflow_states`
2543 2575 ADD CONSTRAINT `workflow_states_ibfk_1` FOREIGN KEY (`workflow_id`) REFERENCES `workflows` (`id`),
2544 2576 ADD CONSTRAINT `workflow_states_ibfk_2` FOREIGN KEY (`inform_descriptor_id`) REFERENCES `permission_descriptors` (`id`) ON DELETE SET NULL;
2545 2577  
2546   ---
  2578 +--
2547 2579 -- Constraints for table `workflow_transitions`
2548   ---
  2580 +--
2549 2581 ALTER TABLE `workflow_transitions`
2550 2582 ADD CONSTRAINT `workflow_transitions_ibfk_45` FOREIGN KEY (`workflow_id`) REFERENCES `workflows` (`id`) ON DELETE CASCADE,
2551 2583 ADD CONSTRAINT `workflow_transitions_ibfk_46` FOREIGN KEY (`target_state_id`) REFERENCES `workflow_states` (`id`) ON DELETE CASCADE,
... ... @@ -2554,79 +2586,79 @@ ALTER TABLE `workflow_transitions`
2554 2586 ADD CONSTRAINT `workflow_transitions_ibfk_49` FOREIGN KEY (`guard_role_id`) REFERENCES `roles` (`id`) ON DELETE SET NULL,
2555 2587 ADD CONSTRAINT `workflow_transitions_ibfk_50` FOREIGN KEY (`guard_condition_id`) REFERENCES `saved_searches` (`id`) ON DELETE SET NULL;
2556 2588  
2557   ---
  2589 +--
2558 2590 -- Constraints for table `workflows`
2559   ---
  2591 +--
2560 2592 ALTER TABLE `workflows`
2561 2593 ADD CONSTRAINT `workflows_ibfk_1` FOREIGN KEY (`start_state_id`) REFERENCES `workflow_states` (`id`);
2562 2594  
2563 2595  
2564   -CREATE TABLE `plugin_rss`
  2596 +CREATE TABLE `plugin_rss`
2565 2597 ( `id` int(11) NOT NULL,
2566 2598 `user_id` int(11) NOT NULL,
2567 2599 `url` varchar(200) NOT NULL,
2568 2600 `title` varchar(20) NOT NULL,
2569   - PRIMARY KEY (`id`))
  2601 + PRIMARY KEY (`id`))
2570 2602 ENGINE=MyISAM DEFAULT CHARSET=utf8;
2571 2603  
2572   -CREATE TABLE `zseq_plugin_rss`
  2604 +CREATE TABLE `zseq_plugin_rss`
2573 2605 (
2574   - `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  2606 + `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
2575 2607 PRIMARY KEY (`id`)
2576 2608 ) ENGINE=MyISAM AUTO_INCREMENT=1;
2577 2609  
2578   -CREATE TABLE `tag_words` (
2579   - `id` int(10) NOT NULL,
2580   - `tag` varchar(100) default NULL,
  2610 +CREATE TABLE `tag_words` (
  2611 + `id` int(10) NOT NULL,
  2612 + `tag` varchar(100) default NULL,
2581 2613 PRIMARY KEY (`id`))
2582   -ENGINE=InnoDB DEFAULT CHARSET=utf8;
  2614 +ENGINE=InnoDB DEFAULT CHARSET=utf8;
2583 2615  
2584 2616 CREATE TABLE `document_tags` (
2585   - `document_id` int(10) NOT NULL,
2586   - `tag_id` int(10) NOT NULL,
  2617 + `document_id` int(10) NOT NULL,
  2618 + `tag_id` int(10) NOT NULL,
2587 2619 PRIMARY KEY (`document_id`,`tag_id`),
2588 2620 CONSTRAINT fk_document_tags_document_id FOREIGN KEY (document_id) REFERENCES documents(id) ON UPDATE CASCADE ON DELETE CASCADE,
2589 2621 CONSTRAINT fk_document_tags_tag_id FOREIGN KEY (tag_id) REFERENCES tag_words(id) ON UPDATE CASCADE ON DELETE CASCADE
2590 2622 )
2591 2623 ENGINE=InnoDB DEFAULT CHARSET=utf8;
2592 2624  
2593   -CREATE TABLE `zseq_document_tags` (
2594   - `id` int(10) NOT NULL auto_increment,
  2625 +CREATE TABLE `zseq_document_tags` (
  2626 + `id` int(10) NOT NULL auto_increment,
2595 2627 PRIMARY KEY (`id`))
2596 2628 ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
2597 2629  
2598   -CREATE TABLE `zseq_tag_words` (
2599   - `id` int(10) NOT NULL auto_increment,
  2630 +CREATE TABLE `zseq_tag_words` (
  2631 + `id` int(10) NOT NULL auto_increment,
2600 2632 PRIMARY KEY (`id`))
2601 2633 ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
2602 2634  
2603 2635 ALTER TABLE fieldsets ADD disabled tinyint not null default 0;
2604 2636  
2605   -CREATE TABLE `uploaded_files` (
2606   -`tempfilename` varchar(100) NOT NULL,
2607   -`filename` varchar(100) NOT NULL,
2608   -`userid` int(11) NOT NULL,
2609   -`uploaddate` timestamp NOT NULL,
2610   -`action` char(1) NOT NULL COMMENT 'A = Add, C = Checkin',
2611   -`document_id` int(11) default NULL
  2637 +CREATE TABLE `uploaded_files` (
  2638 +`tempfilename` varchar(100) NOT NULL,
  2639 +`filename` varchar(100) NOT NULL,
  2640 +`userid` int(11) NOT NULL,
  2641 +`uploaddate` timestamp NOT NULL,
  2642 +`action` char(1) NOT NULL COMMENT 'A = Add, C = Checkin',
  2643 +`document_id` int(11) default NULL
2612 2644 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
2613 2645  
2614   -CREATE TABLE `download_files` (
2615   -`document_id` int(10) unsigned NOT NULL,
2616   -`session` varchar(100) NOT NULL,
2617   -`download_date` timestamp NULL default CURRENT_TIMESTAMP,
2618   -`downloaded` int(10) unsigned NOT NULL default '0',
2619   -`filesize` int(10) unsigned NOT NULL,
2620   -`content_version` int(10) unsigned NOT NULL,
2621   -`hash` varchar(100) NOT NULL,
2622   -PRIMARY KEY (`document_id`,`session`)
  2646 +CREATE TABLE `download_files` (
  2647 +`document_id` int(10) unsigned NOT NULL,
  2648 +`session` varchar(100) NOT NULL,
  2649 +`download_date` timestamp NULL default CURRENT_TIMESTAMP,
  2650 +`downloaded` int(10) unsigned NOT NULL default '0',
  2651 +`filesize` int(10) unsigned NOT NULL,
  2652 +`content_version` int(10) unsigned NOT NULL,
  2653 +`hash` varchar(100) NOT NULL,
  2654 +PRIMARY KEY (`document_id`,`session`)
2623 2655 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
2624 2656  
2625 2657 CREATE TABLE `index_files` (
2626   -`document_id` int(10) unsigned NOT NULL,
2627   -`user_id` int(10) unsigned NOT NULL,
2628   -`indexdate` timestamp NOT NULL,
2629   -PRIMARY KEY (`document_id`)
2630   -) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  2658 +`document_id` int(10) unsigned NOT NULL,
  2659 +`user_id` int(10) unsigned NOT NULL,
  2660 +`indexdate` timestamp NOT NULL,
  2661 +PRIMARY KEY (`document_id`)
  2662 +) ENGINE=InnoDB DEFAULT CHARSET=utf8;
2631 2663  
2632 2664 SET FOREIGN_KEY_CHECKS=1;
... ...