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