From a8c5ce54fcc19ce26b57b5c2afe4dc0ab3c28226 Mon Sep 17 00:00:00 2001 From: kevin_fourie Date: Fri, 11 Jan 2008 15:24:09 +0000 Subject: [PATCH] Merged in from DEV trunk... --- lib/plugins/plugin.inc.php | 25 ++++++++++++++++++++++--- plugins/ktstandard/workflow/FolderAssociator.php | 12 +++++++++++- plugins/ktstandard/workflow/TypeAssociator.php | 28 +++++++++++++++++++++++----- 3 files changed, 56 insertions(+), 9 deletions(-) diff --git a/lib/plugins/plugin.inc.php b/lib/plugins/plugin.inc.php index 9fedc34..5119c3d 100644 --- a/lib/plugins/plugin.inc.php +++ b/lib/plugins/plugin.inc.php @@ -307,7 +307,7 @@ class KTPlugin { */ function registerPluginHelper($sNamespace, $sClassName, $path, $object, $view, $type) { - $sql = "SELECT * FROM plugin_helper WHERE namespace = '{$sNamespace}' AND classtype = '{$type}'"; + $sql = "SELECT id FROM plugin_helper WHERE namespace = '{$sNamespace}' AND classtype = '{$type}'"; $res = DBUtil::getOneResult($sql); $aValues = array(); @@ -337,6 +337,13 @@ class KTPlugin { return true; } + function deRegisterPluginHelper($sNamespace, $sClass) { + $aWhere['namespace'] = $sNamespace; + $aWhere['classtype'] = $sClass; + $res = DBUtil::whereDelete('plugin_helper', $aWhere); + return $res; + } + function _fixFilename($sFilename) { if (empty($sFilename)) { $sFilename = $this->sFilename; @@ -383,6 +390,13 @@ class KTPlugin { * */ function load() { + // Include any required resources, javascript files, etc + $res = $this->run_setup(); + + if(!$res){ + return false; + } + // Get actions, portlets, etc, create arrays as part of plugin $query = "SELECT * FROM plugin_helper h WHERE plugin = '{$this->sNamespace}'"; $aPluginHelpers = DBUtil::getResultArray($query); @@ -397,7 +411,7 @@ class KTPlugin { switch ($sClassType) { case 'portlet': $aLocation = unserialize($aParams[0]); - if($aLocation !== false){ + if($aLocation != false){ $aParams[0] = $aLocation; } @@ -470,7 +484,7 @@ class KTPlugin { case 'criterion': $aInit = unserialize($aParams[3]); - if($aInit !== false){ + if($aInit != false){ $aParams[3] = $aInit; } @@ -491,6 +505,7 @@ class KTPlugin { } } } + return true; } /** @@ -626,6 +641,10 @@ class KTPlugin { return; } + function run_setup() { + return true; + } + function stripKtDir($sFilename) { if (strpos($sFilename, KT_DIR) === 0 ||strpos($sFilename, realpath(KT_DIR)) === 0) { return substr($sFilename, strlen(KT_DIR) + 1); diff --git a/plugins/ktstandard/workflow/FolderAssociator.php b/plugins/ktstandard/workflow/FolderAssociator.php index 4b2fbda..9b350ad 100644 --- a/plugins/ktstandard/workflow/FolderAssociator.php +++ b/plugins/ktstandard/workflow/FolderAssociator.php @@ -48,7 +48,14 @@ class KTFolderWorkflowAssociationPlugin extends KTPlugin { function setup() { $this->registerTrigger('workflow', 'objectModification', 'FolderWorkflowAssociator', 'ktstandard.triggers.workflowassociation.folder.handler'); + } + /** + * Method to setup the plugin on rendering it + * + * @return unknown + */ + function run_setup() { $sQuery = 'SELECT selection_ns FROM ' . KTUtil::getTableName('trigger_selection'); $sQuery .= ' WHERE event_ns = ?'; $aParams = array('ktstandard.workflowassociation.handler'); @@ -57,8 +64,11 @@ class KTFolderWorkflowAssociationPlugin extends KTPlugin { if ($res == 'ktstandard.triggers.workflowassociation.folder.handler') { $this->registerAction('folderaction', 'FolderWorkflowAssignmentFolderAction', 'ktstandard.workflowassociation.folder.action'); - } + }else{ + $this->deRegisterPluginHelper('ktstandard.workflowassociation.folder.action', 'action'); } + return true; + } } class FolderWorkflowAssociator extends KTWorkflowAssociationHandler { diff --git a/plugins/ktstandard/workflow/TypeAssociator.php b/plugins/ktstandard/workflow/TypeAssociator.php index f29d976..8e25ee6 100644 --- a/plugins/ktstandard/workflow/TypeAssociator.php +++ b/plugins/ktstandard/workflow/TypeAssociator.php @@ -44,19 +44,28 @@ class KTDocTypeWorkflowAssociationPlugin extends KTPlugin { function setup() { $this->registerTrigger('workflow', 'objectModification', 'DocumentTypeWorkflowAssociator', 'ktstandard.triggers.workflowassociation.documenttype.handler'); + $this->registeri18n('knowledgeTree', KT_DIR . '/i18n'); + } + /** + * Method to setup the plugin on rendering it + * + * @return unknown + */ + function run_setup() { $sQuery = 'SELECT selection_ns FROM ' . KTUtil::getTableName('trigger_selection'); - $sQuery .= ' WHERE event_ns = ?'; - $aParams = array('ktstandard.workflowassociation.handler'); - $res = DBUtil::getOneResultKey(array($sQuery, $aParams), 'selection_ns'); + $sQuery .= ' WHERE event_ns = ?'; + $aParams = array('ktstandard.workflowassociation.handler'); + $res = DBUtil::getOneResultKey(array($sQuery, $aParams), 'selection_ns'); if ($res == 'ktstandard.triggers.workflowassociation.documenttype.handler') { $this->registerAdminPage('workflow_type_allocation', 'WorkflowTypeAllocationDispatcher', 'documents', _kt('Workflow Allocation by Document Types'), _kt('This installation assigns workflows by Document Type. Configure this process here.'), __FILE__); - $this->registeri18n('knowledgeTree', KT_DIR . '/i18n'); + }else{ + $this->deRegisterPluginHelper('documents/workflow_type_allocation', 'admin_page'); } - + return true; } } @@ -101,6 +110,15 @@ class WorkflowTypeAllocationDispatcher extends KTAdminDispatcher { $res = parent::check(); if (!$res) { return false; } + $sQuery = 'SELECT selection_ns FROM ' . KTUtil::getTableName('trigger_selection'); + $sQuery .= ' WHERE event_ns = ?'; + $aParams = array('ktstandard.workflowassociation.handler'); + $res = DBUtil::getOneResultKey(array($sQuery, $aParams), 'selection_ns'); + + if ($res != 'ktstandard.triggers.workflowassociation.documenttype.handler') { + return false; + } + $this->aBreadcrumbs[] = array('url' => $_SERVER['PHP_SELF'], 'name'=> _kt('Workflow Allocation by Document Types')); return true; -- libgit2 0.21.4