Commit 3d6f733d807da15873481acf2671fa5432398b35
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
Showing
2 changed files
with
73 additions
and
2 deletions
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 | */ | ... | ... |