Commit 3d6f733d807da15873481acf2671fa5432398b35

Authored by kevin_fourie
1 parent 5be44ee9

Merged in from DEV trunk...

KTC-445
"Problem with Workflow Triggers"
Fixed. On loading the plugins the relative paths are converted to full paths.

Committed by: Megan Watson
Reviewed by: Jonathan Byrne


git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/STABLE/trunk@8330 c91229c3-7414-0410-bfa2-8a42b809f60b
lib/plugins/pluginregistry.inc.php
@@ -69,7 +69,7 @@ class KTPluginRegistry { @@ -69,7 +69,7 @@ class KTPluginRegistry {
69 if (empty($aDetails)) { 69 if (empty($aDetails)) {
70 return null; 70 return null;
71 } 71 }
72 - $sFilename = KT_DIR.'/'.$aDetails[2]; 72 + $sFilename = (KTUtil::isAbsolutePath($aDetails[2])) ? $aDetails[2] : KT_DIR.'/'.$aDetails[2];
73 if (!empty($sFilename)) { 73 if (!empty($sFilename)) {
74 require_once($sFilename); 74 require_once($sFilename);
75 } 75 }
lib/plugins/pluginutil.inc.php
@@ -289,22 +289,37 @@ class KTPluginUtil { @@ -289,22 +289,37 @@ class KTPluginUtil {
289 if($aLocation != false){ 289 if($aLocation != false){
290 $aParams[0] = $aLocation; 290 $aParams[0] = $aLocation;
291 } 291 }
  292 + if(isset($aParams[3])){
  293 + $aParams[3] = KTPluginUtil::getFullPath($aParams[3]);
  294 + }
292 call_user_func_array(array(&$oPRegistry, 'registerPortlet'), $aParams); 295 call_user_func_array(array(&$oPRegistry, 'registerPortlet'), $aParams);
293 break; 296 break;
294 297
295 case 'trigger': 298 case 'trigger':
  299 + if(isset($aParams[4])){
  300 + $aParams[4] = KTPluginUtil::getFullPath($aParams[4]);
  301 + }
296 call_user_func_array(array(&$oTRegistry, 'registerTrigger'), $aParams); 302 call_user_func_array(array(&$oTRegistry, 'registerTrigger'), $aParams);
297 break; 303 break;
298 304
299 case 'action': 305 case 'action':
  306 + if(isset($aParams[3])){
  307 + $aParams[3] = KTPluginUtil::getFullPath($aParams[3]);
  308 + }
300 call_user_func_array(array(&$oARegistry, 'registerAction'), $aParams); 309 call_user_func_array(array(&$oARegistry, 'registerAction'), $aParams);
301 break; 310 break;
302 311
303 case 'page': 312 case 'page':
  313 + if(isset($aParams[2])){
  314 + $aParams[2] = KTPluginUtil::getFullPath($aParams[2]);
  315 + }
304 call_user_func_array(array(&$oPageRegistry, 'registerPage'), $aParams); 316 call_user_func_array(array(&$oPageRegistry, 'registerPage'), $aParams);
305 break; 317 break;
306 318
307 case 'authentication_provider': 319 case 'authentication_provider':
  320 + if(isset($aParams[3])){
  321 + $aParams[3] = KTPluginUtil::getFullPath($aParams[3]);
  322 + }
308 call_user_func_array(array(&$oAPRegistry, 'registerAuthenticationProvider'), $aParams); 323 call_user_func_array(array(&$oAPRegistry, 'registerAuthenticationProvider'), $aParams);
309 break; 324 break;
310 325
@@ -313,18 +328,30 @@ class KTPluginUtil { @@ -313,18 +328,30 @@ class KTPluginUtil {
313 break; 328 break;
314 329
315 case 'admin_page': 330 case 'admin_page':
  331 + if(isset($aParams[5])){
  332 + $aParams[5] = KTPluginUtil::getFullPath($aParams[5]);
  333 + }
316 call_user_func_array(array(&$oAdminRegistry, 'registerLocation'), $aParams); 334 call_user_func_array(array(&$oAdminRegistry, 'registerLocation'), $aParams);
317 break; 335 break;
318 336
319 case 'dashlet': 337 case 'dashlet':
  338 + if(isset($aParams[2])){
  339 + $aParams[2] = KTPluginUtil::getFullPath($aParams[2]);
  340 + }
320 call_user_func_array(array(&$oDashletRegistry, 'registerDashlet'), $aParams); 341 call_user_func_array(array(&$oDashletRegistry, 'registerDashlet'), $aParams);
321 break; 342 break;
322 343
323 case 'i18n': 344 case 'i18n':
  345 + if(isset($aParams[1])){
  346 + $aParams[1] = KTPluginUtil::getFullPath($aParams[1]);
  347 + }
324 call_user_func_array(array(&$oi18nRegistry, 'registeri18n'), $aParams); 348 call_user_func_array(array(&$oi18nRegistry, 'registeri18n'), $aParams);
325 break; 349 break;
326 350
327 case 'i18nlang': 351 case 'i18nlang':
  352 + if(isset($aParams[2]) && $aParams[2] != 'default'){
  353 + $aParams[2] = KTPluginUtil::getFullPath($aParams[2]);
  354 + }
328 call_user_func_array(array(&$oi18nRegistry, 'registeri18nLang'), $aParams); 355 call_user_func_array(array(&$oi18nRegistry, 'registeri18nLang'), $aParams);
329 break; 356 break;
330 357
@@ -333,14 +360,23 @@ class KTPluginUtil { @@ -333,14 +360,23 @@ class KTPluginUtil {
333 break; 360 break;
334 361
335 case 'help_language': 362 case 'help_language':
  363 + if(isset($aParams[2])){
  364 + $aParams[2] = KTPluginUtil::getFullPath($aParams[2]);
  365 + }
336 call_user_func_array(array(&$oKTHelpRegistry, 'registerHelp'), $aParams); 366 call_user_func_array(array(&$oKTHelpRegistry, 'registerHelp'), $aParams);
337 break; 367 break;
338 368
339 case 'workflow_trigger': 369 case 'workflow_trigger':
  370 + if(isset($aParams[2])){
  371 + $aParams[2] = KTPluginUtil::getFullPath($aParams[2]);
  372 + }
340 call_user_func_array(array(&$oWFTriggerRegistry, 'registerWorkflowTrigger'), $aParams); 373 call_user_func_array(array(&$oWFTriggerRegistry, 'registerWorkflowTrigger'), $aParams);
341 break; 374 break;
342 375
343 case 'column': 376 case 'column':
  377 + if(isset($aParams[3])){
  378 + $aParams[3] = KTPluginUtil::getFullPath($aParams[3]);
  379 + }
344 call_user_func_array(array(&$oColumnRegistry, 'registerColumn'), $aParams); 380 call_user_func_array(array(&$oColumnRegistry, 'registerColumn'), $aParams);
345 break; 381 break;
346 382
@@ -349,11 +385,17 @@ class KTPluginUtil { @@ -349,11 +385,17 @@ class KTPluginUtil {
349 break; 385 break;
350 386
351 case 'notification_handler': 387 case 'notification_handler':
  388 + if(isset($aParams[2])){
  389 + $aParams[2] = KTPluginUtil::getFullPath($aParams[2]);
  390 + }
352 call_user_func_array(array(&$oNotificationHandlerRegistry, 'registerNotificationHandler'), $aParams); 391 call_user_func_array(array(&$oNotificationHandlerRegistry, 'registerNotificationHandler'), $aParams);
353 break; 392 break;
354 393
355 case 'template_location': 394 case 'template_location':
356 - call_user_func_array(array(&$oTemplating, 'addLocation'), $aParams); 395 + if(isset($aParams[1])){
  396 + $aParams[1] = KTPluginUtil::getFullPath($aParams[1]);
  397 + }
  398 + call_user_func_array(array(&$oTemplating, 'addLocation2'), $aParams);
357 break; 399 break;
358 400
359 case 'criterion': 401 case 'criterion':
@@ -361,22 +403,37 @@ class KTPluginUtil { @@ -361,22 +403,37 @@ class KTPluginUtil {
361 if($aInit != false){ 403 if($aInit != false){
362 $aParams[3] = $aInit; 404 $aParams[3] = $aInit;
363 } 405 }
  406 + if(isset($aParams[2])){
  407 + $aParams[2] = KTPluginUtil::getFullPath($aParams[2]);
  408 + }
364 call_user_func_array(array(&$oCriteriaRegistry, 'registerCriterion'), $aParams); 409 call_user_func_array(array(&$oCriteriaRegistry, 'registerCriterion'), $aParams);
365 break; 410 break;
366 411
367 case 'widget': 412 case 'widget':
  413 + if(isset($aParams[2])){
  414 + $aParams[2] = KTPluginUtil::getFullPath($aParams[2]);
  415 + }
368 call_user_func_array(array(&$oWidgetFactory, 'registerWidget'), $aParams); 416 call_user_func_array(array(&$oWidgetFactory, 'registerWidget'), $aParams);
369 break; 417 break;
370 418
371 case 'validator': 419 case 'validator':
  420 + if(isset($aParams[2])){
  421 + $aParams[2] = KTPluginUtil::getFullPath($aParams[2]);
  422 + }
372 call_user_func_array(array(&$oValidatorFactory, 'registerValidator'), $aParams); 423 call_user_func_array(array(&$oValidatorFactory, 'registerValidator'), $aParams);
373 break; 424 break;
374 425
375 case 'interceptor': 426 case 'interceptor':
  427 + if(isset($aParams[2])){
  428 + $aParams[2] = KTPluginUtil::getFullPath($aParams[2]);
  429 + }
376 call_user_func_array(array(&$oInterceptorRegistry, 'registerInterceptor'), $aParams); 430 call_user_func_array(array(&$oInterceptorRegistry, 'registerInterceptor'), $aParams);
377 break; 431 break;
378 432
379 case 'plugin': 433 case 'plugin':
  434 + if(isset($aParams[2])){
  435 + $aParams[2] = KTPluginUtil::getFullPath($aParams[2]);
  436 + }
380 $oKTPluginRegistry->_aPluginDetails[$sName] = $aParams; 437 $oKTPluginRegistry->_aPluginDetails[$sName] = $aParams;
381 break; 438 break;
382 } 439 }
@@ -384,6 +441,20 @@ class KTPluginUtil { @@ -384,6 +441,20 @@ class KTPluginUtil {
384 } 441 }
385 442
386 /** 443 /**
  444 + * Get the absolute path
  445 + */
  446 + function getFullPath($sPath = '') {
  447 + if(empty($sPath)){
  448 + return '';
  449 + }
  450 + if($sPath[0] != '/'){
  451 + $sPath = '/'.$sPath;
  452 + }
  453 + $sPath = (KTUtil::isAbsolutePath($sPath)) ? $sPath : KT_DIR . $sPath;
  454 + return $sPath;
  455 + }
  456 +
  457 + /**
387 * This loads the plugins in the plugins folder. It searches for files ending with 'Plugin.php'. 458 * This loads the plugins in the plugins folder. It searches for files ending with 'Plugin.php'.
388 * This is called by the 'Re-read plugins' action in the web interface. 459 * This is called by the 'Re-read plugins' action in the web interface.
389 */ 460 */