Skip to content

Commit

Permalink
Check that a plugin is loaded when accessing its pages
Browse files Browse the repository at this point in the history
A plugin can be registered yet fail to load for example due to unmet
dependencies.

Fixes #17359
  • Loading branch information
dregad committed Jun 2, 2014
1 parent 05f1037 commit 61118a1
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 0 deletions.
1 change: 1 addition & 0 deletions core/constant_inc.php
Expand Up @@ -383,6 +383,7 @@
define( 'ERROR_PLUGIN_UPGRADE_FAILED', 2503 );
define( 'ERROR_PLUGIN_INSTALL_FAILED', 2504 );
define( 'ERROR_PLUGIN_UPGRADE_NEEDED', 2505 );
define( 'ERROR_PLUGIN_NOT_LOADED', 2506 );
define( 'ERROR_PLUGIN_GENERIC', 2599 );

# ERROR_COLUMNS_*
Expand Down
1 change: 1 addition & 0 deletions lang/strings_english.txt
Expand Up @@ -1668,6 +1668,7 @@ $MANTIS_ERROR[ERROR_TAG_ALREADY_ATTACHED] = 'That tag already attached to that i
$MANTIS_ERROR[ERROR_TOKEN_NOT_FOUND] = 'Token could not be found.';
$MANTIS_ERROR[ERROR_EVENT_UNDECLARED] = 'Event "%1$s" has not yet been declared.';
$MANTIS_ERROR[ERROR_PLUGIN_NOT_REGISTERED] = 'Plugin is not registered with MantisBT.';
$MANTIS_ERROR[ERROR_PLUGIN_NOT_LOADED] = 'Plugin is not loaded, make sure its dependencies are met.';
$MANTIS_ERROR[ERROR_PLUGIN_ALREADY_INSTALLED] = 'Plugin is already installed.';
$MANTIS_ERROR[ERROR_PLUGIN_PAGE_NOT_FOUND] = 'Plugin page not found.';
$MANTIS_ERROR[ERROR_PLUGIN_INSTALL_FAILED] = 'Plugin installation failed: %1$s.';
Expand Down
5 changes: 5 additions & 0 deletions plugin.php
Expand Up @@ -50,6 +50,11 @@
trigger_error( ERROR_PLUGIN_NOT_REGISTERED, ERROR );
}

# Plugin can be registered but fail to load e.g. due to unmet dependencies
if( !plugin_is_loaded( $t_basename ) ) {
trigger_error( ERROR_PLUGIN_NOT_LOADED, ERROR );
}

$t_page = $t_plugin_path.$t_basename.DIRECTORY_SEPARATOR.
'pages'.DIRECTORY_SEPARATOR.$t_action.'.php';

Expand Down

0 comments on commit 61118a1

Please sign in to comment.