if (isExtensionFunctionFileReadable($ext_name)) {
// Not yet loaded?
if ((($GLOBALS['cache_array']['extension']['ext_func'][$ext_name] == 'Y') || (!isset($GLOBALS['cache_array']['extension']['ext_func'][$ext_name]))) && (!isset($GLOBALS['ext_loaded']['funcs'][$ext_name]))) {
- // Construct FQFN for functions file
+ // Construct IFN for functions file
$funcsInclude = sprintf("inc/libs/%s_functions.php", $ext_name);
// Mark it as loaded
// Reset extension name
setCurrentExtensionName($ext_name);
- //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'currName=' . getCurrentExtensionName());
- //* DEBUG: */ debugOutput(getCurrentExtensionName().':<pre>' . print_r($test, true) . '</pre>');
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'currName=' . getCurrentExtensionName() . ',test=' . intval($test));
} // END - if
} elseif ($ext_ver != getCurrentExtensionVersion()) {
// Ok, update this extension now
setExtensionMode('register');
// Remains true if extension registration reports no failures
- //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'currName=' . getCurrentExtensionName());
- //* DEBUG: */ debugOutput(getCurrentExtensionName().':<pre>' . print_r($test, true) . '</pre>');
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'currName=' . getCurrentExtensionName() . ',test=' . intval($test));
$test = (($test === true) && (getExtensionReportsFailure() === false));
- //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'currName=' . getCurrentExtensionName());
- //* DEBUG: */ debugOutput(getCurrentExtensionName().':<pre>' . print_r($test, true) . '</pre>');
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'currName=' . getCurrentExtensionName() . ',test=' . intval($test));
// Does everthing before wents ok?
if ($test === true) {
), __FUNCTION__, __LINE__);
}
+ // Use the insert id as extension id and cache it for early usage
+ $GLOBALS['cache_array']['extension']['ext_id'][getCurrentExtensionName()] = SQL_INSERTID();
+
// Remove cache file(s) if extension is active
runFilterChain('post_extension_installed', array(
'pool' => 'extension',
// Re-init queries and notes
initExtensionSqls(true);
- initExtensionNotes();
+ initExtensionNotes(true);
// Mark it as installed
$GLOBALS['ext_is_installed'][getCurrentExtensionName()] = true;
} // END - if
// Return status code
- //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'currName=' . getCurrentExtensionName() . ',ext_name=' . $ext_name . ' - EXIT!');
- //* DEBUG: */ debugOutput(getCurrentExtensionName().':<pre>'.print_r($ret, true).'</pre>');
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'currName=' . getCurrentExtensionName() . ',ext_name=' . $ext_name . ',test=' . intval($test) . ' - EXIT!');
return $ret;
}
$sqlRan = false;
// Load extension in detected mode
- //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, ":ext_name[{$ext_id}]=".getCurrentExtensionName()."");
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name[' . $ext_id . ']=' . getCurrentExtensionName());
loadExtension(getCurrentExtensionName(), $load_mode, '', false);
// Init these SQLs
initSqls();
setSqlsArray(getExtensionSqls());
- //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, ":SQLs::count=".countSqls()."");
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'SQLs::count=' . countSqls());
if (isSqlsValid()) {
// Run SQL commands...
runFilterChain('run_sqls');
} // END - if
// Is this the sql_patches?
- //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, ": id=".$ext_id.",currName=".getCurrentExtensionName().",loadMode=".$load_mode);
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'id=' . $ext_id . ',currName=' . getCurrentExtensionName() . ',loadMode=' . $load_mode);
if ((getCurrentExtensionName() == 'sql_patches') && (($load_mode == 'register') || ($load_mode == 'remove'))) {
// Then redirect to logout
- //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, ": LOAD!");
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, ': LOAD!');
redirectToUrl('modules.php?module=admin&logout=1&' . $load_mode . '=sql_patches');
} // END - if
}
// Check cache
if (isset($GLOBALS['cache_array']['extension']['ext_active'][$ext_name])) {
// Load from cache
- //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, "CACHE! ext_name={$ext_name}");
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'CACHE! ext_name=' . $ext_name);
$data['ext_active'] = $GLOBALS['cache_array']['extension']['ext_active'][$ext_name];
// Count cache hits
// @TODO Extension is loaded, what next?
debug_report_bug(__FUNCTION__, __LINE__, 'LOADED:' . $ext_name);
} elseif (($ext_name == 'cache') || (!isExtensionInstalled('cache'))) {
- //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, "DB! ext_name={$ext_name}");
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'DB! ext_name=' . $ext_name);
// Load from database
$result = SQL_QUERY_ESC("SELECT `ext_active` FROM `{?_MYSQL_PREFIX?}_extensions` WHERE `ext_name`='%s' LIMIT 1",
array($ext_name), __FUNCTION__, __LINE__);
SQL_FREERESULT($result);
// Write cache array
- //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, "ext_name=".$ext_name."[DB]: ".$data['ext_active']."");
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . '[DB]: ' . $data['ext_active']);
$GLOBALS['cache_array']['extension']['ext_active'][$ext_name] = $data['ext_active'];
} else {
// Extension not active!
- //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, "ext_name=".$ext_name.": Not active!");
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ': Not active!');
$GLOBALS['cache_array']['extension']['ext_active'][$ext_name] = 'N';
}
// Debug message
- //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, "ext_name=".$ext_name.",active=".$data['ext_active']."");
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ',active=' . $data['ext_active']);
// Is this extension activated? (For admins we always have active extensions...)
return ($data['ext_active'] == 'Y');
// Extensions are all inactive during installation
if (isInstallationPhase()) return '';
- //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, ": ext_name=".$ext_name."");
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name);
// Is the cache written?
if (isset($GLOBALS['cache_array']['extension']['ext_version'][$ext_name])) {
} // END - if
// Return result
- //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, ": ret={$data['ext_version']}");
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_version=' . $data['ext_version']);
return $data['ext_version'];
}
} // END - if
// Is it not yet added?
- /* DEBUG:
+ /* Only for debugging!
if ((isset($updateDepends, $GLOBALS['ext_running_updates'][getCurrentExtensionName()])) && (in_array($updateDepends, getExtensionUpdatesRunning()))) {
// Double-adding isn't fine, too
debug_report_bug(__FUNCTION__, __LINE__, '() called twice: updateDepends=' . $updateDepends . ',currentExtension=' . getCurrentExtensionName());
// Setter for EXT_UPDATE_NOTES
function setExtensionUpdateNotes ($updateNotes, $ext_ver = '') {
// . '/' . getCurrentExtensionVersion()
- //* DEBUG: */ debug_report_bug(__FUNCTION__.':' . getCurrentExtensionName() . '/' . getExtensionMode() . '/' . $ext_ver . '=' . $updateNotes);
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'getCurrentExtensionName()=' . getCurrentExtensionName() . ',getExtensionMode()=' . getExtensionMode() . ',ext_ver=' . $ext_ver . ',updateNotes()=' . strlen($updateNotes));
if (empty($ext_ver)) {
$GLOBALS['ext_update_notes'][getCurrentExtensionName()][getCurrentExtensionVersion()] = (string) $updateNotes;
} else {
}
// Init extension notice
-function initExtensionNotes () {
+function initExtensionNotes ($force = false) {
// Is it already initialized?
- if (isset($GLOBALS['ext_notes'][getCurrentExtensionName()])) {
+ if (($force === false) && (isset($GLOBALS['ext_notes'][getCurrentExtensionName()]))) {
// This is mostly not wanted, so please report it
debug_report_bug(__FUNCTION__, __LINE__, 'ext_notes already set for extension ' . getCurrentExtensionName());
} // END - if
// Init SQLs array for current extension
function initExtensionSqls ($force = false) {
// Auto-init the array or if forced
- if ((!isset($GLOBALS['ext_sqls'][getCurrentExtensionName()])) || ($force === true)) {
+ if (($force === true) || (!isset($GLOBALS['ext_sqls'][getCurrentExtensionName()]))) {
// Set the array
$GLOBALS['ext_sqls'][getCurrentExtensionName()] = array();
// Filter for initialization of all extensions by loading them in 'init' mode
function FILTER_INIT_EXTENSIONS () {
// Do we have some entries?
- //* DEBUG */ print __FUNCTION__.': ENTRY!<br />';
+ //* DEBUG */ logDebugMessage(__FUNCTION__, __LINE__, 'ENTRY!');
if (isset($GLOBALS['cache_array']['extension']['ext_name'])) {
// Load all found extensions if found
- //* DEBUG */ print __FUNCTION__.': CACHE - START!<br />';
+ //* DEBUG */ logDebugMessage(__FUNCTION__, __LINE__, 'CACHE - START!');
foreach ($GLOBALS['cache_array']['extension']['ext_name'] as $key => $ext_name) {
// Load it
- //* DEBUG */ print __FUNCTION__.': '.$ext_name.' - START<br />';
+ //* DEBUG */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name='.$ext_name.' - START');
loadExtension($ext_name, 'init', getExtensionVersion($ext_name));
- //* DEBUG */ print __FUNCTION__.': '.$ext_name.' - END<br />';
+ //* DEBUG */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name='.$ext_name.' - END');
} // END - foreach
- //* DEBUG */ print __FUNCTION__.': CACHE - END!<br />';
+ //* DEBUG */ logDebugMessage(__FUNCTION__, __LINE__, 'CACHE - END!');
} // END - if
- //* DEBUG */ print __FUNCTION__.': EXIT!<br />';
+ //* DEBUG */ logDebugMessage(__FUNCTION__, __LINE__, 'EXIT!');
}
// Setter for extension mode
// Setter for dry-run
function enableExtensionDryRun ($dry_run = true) {
- //* DEBUG: */ debugOutput(__FUNCTION__.': '.getCurrentExtensionName().'='.intval($dry_run));
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'getCurrentExtensionName()='.getCurrentExtensionName().',dry='.intval($dry_run));
$GLOBALS['ext_dry_run'] = (bool) $dry_run;
}
// Checks if an extension's function file is readable
function isExtensionFunctionFileReadable ($ext_name) {
+ // Is cache there?
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name);
if (isset($GLOBALS['cache_array']['extension']['ext_func'][$ext_name])) {
// Just count cache hits
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ',ext_func=' . $GLOBALS['cache_array']['extension']['ext_func'][$ext_name] .' - CACHE!');
incrementStatsEntry('cache_hits');
} else {
- // Construct FQFN for functions file
+ // Construct IFN for functions file
$funcsInclude = sprintf("inc/libs/%s_functions.php", $ext_name);
// Is this include there?
if ((isFileReadable($funcsInclude)) && (!isset($GLOBALS['ext_loaded']['funcs'][$ext_name])) && (getExtensionMode() == 'test')) {
// Cache it!
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ',ext_func=Y - FOUND!');
$GLOBALS['cache_array']['extension']['ext_func'][$ext_name] = 'Y';
} else {
// Cache it!
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ',ext_func=N - NOT FOUND!');
$GLOBALS['cache_array']['extension']['ext_func'][$ext_name] = 'N';
}
}
// Return result
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ',ext_func=' . $GLOBALS['cache_array']['extension']['ext_func'][$ext_name]);
return ($GLOBALS['cache_array']['extension']['ext_func'][$ext_name] == 'Y');
}