function EXTENSION_REGISTER ($ext_name, $id, $dry_run=false)
{
global $NOTES, $_CONFIG, $INC_POOL, $cacheInstance;
+
// We want to register an extension and registration status is by default "failed" (= false)
$EXT_LOAD_MODE = "register"; $ret = false; $SQLs = array();
$INC_POOL = array();
// This shall never do a non-admin user!
if (!IS_ADMIN()) return false;
+ // By default the language prefix is the extension's name
+ // @TODO: Do we really need this one anymore? Can't we just take $ext_name and done?
+ $EXT_LANG_PREFIX = $ext_name;
+
+ // By default we have no failtures
+ $EXT_REPORTS_FAILURE = false;
+
// Is this extension already installed?
if (EXT_IS_ACTIVE($ext_name)) return false;
$SQLs = array();
$test = false;
- // Backup language as well
- $LANG_BCK = $EXT_LANG_PREFIX;
- $EXT_ALWAYS_ACTIVE = "N";
-
// Load required extension also in update mode
$file = sprintf("%sinc/extensions/ext-%s.php", PATH, $EXT_UPDATE_DEPENDS);
// Check for required file
if (FILE_READABLE($file)) {
- // File exists so let's load it
+ // Bacup version number
$VER_BACKUP = $EXT_VERSION;
+
+ // Backup language as well
+ $LANG_BCK = $EXT_LANG_PREFIX;
+
+ // Save the Parrent $EXT_ALWAYS_ACTIVE for later!
+ $EXT_ALWAYS_ACTIVE_PARRENT = $EXT_ALWAYS_ACTIVE;
+
+ // Set EXT_ALWAYS_ACTIVE for update
$EXT_ALWAYS_ACTIVE = "N";
+
+ // File exists so let's load it
require($file);
- $EXT_VERSION = $VER_BACKUP;
// If versions mismatch update extension first
$ext_ver = GET_EXT_VERSION($EXT_UPDATE_DEPENDS);
// Nothing to register / update before...
$test = true;
}
+
+ // Restore version number
+ $EXT_VERSION = $VER_BACKUP;
+
+ // Restore language back
+ $EXT_LANG_PREFIX = $LANG_BCK;
+
+ // Restore $EXT_ALWAYS_ACTIVE with the value from parrent
+ $EXT_ALWAYS_ACTIVE = $EXT_ALWAYS_ACTIVE_PARRENT;
} else {
// Required file for update does not exists!
$test = true;
// Finally restore previous SQLs
$SQLs = $SQLs2; unset($SQLs2);
- $EXT_LANG_PREFIX = $LANG_BCK;
} else {
// Does not depend on an other extension
$test = true;
// Switch back to register mode
$EXT_LOAD_MODE = "register";
+ // Remains true if extension registration reports no failtures
+ $test = ($test && !$EXT_REPORTS_FAILURE);
+
// Does everthing before wents ok?
if ($test) {
// "Dry-run-mode" activated?
}
// Debug message
- //DEBUG_LOG(__FUNCTION__.": ext_name={$ext_name},active={$active}");
+ //* DEBUG: */ DEBUG_LOG(__FUNCTION__, __LINE__, " ext_name={$ext_name},active={$active}");
// Is this extension activated? (For admins we always have active extensions...)
return ($active == "Y");