// Is the extension already loaded?
//* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Loading extension ' . $ext_name . ', mode=' . getExtensionMode() . ', ver=' . getCurrentExtensionVersion());
- if ((isset($GLOBALS['ext_loaded']['ext'][$ext_name])) && (getExtensionMode() == 'init')) {
+ if ((isExtensionLoaded($ext_name)) && (getExtensionMode() == 'init')) {
// Debug message
logDebugMessage(__FUNCTION__, __LINE__, sprintf("Extension %s already loaded.", $ext_name));
// Do we have cache?
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]))) {
+ if ((($GLOBALS['cache_array']['extension']['ext_func'][$ext_name] == 'Y') || (!isset($GLOBALS['cache_array']['extension']['ext_func'][$ext_name]))) && (!isExtensionLibraryLoaded($ext_name))) {
// Construct IFN for functions file
$funcsInclude = sprintf("inc/libs/%s_functions.php", $ext_name);
// Mark it as loaded
- $GLOBALS['ext_loaded']['funcs'][$ext_name] = true;
+ markExtensionLibraryAsLoaded($ext_name);
// Download functions file
loadIncludeOnce($funcsInclude);
));
}
+ // Load extension's filter library if present
+ loadExtensionFilters($ext_name);
+
// Extensions are not deprecated by default
setExtensionDeprecated('N');
// Mark it as loaded in normal mode
if (getExtensionMode() == '') {
// Mark it now...
- $GLOBALS['ext_loaded']['ext'][$ext_name] = true;
+ markExtensionAsLoaded($ext_name);
} // END - if
// All fine!
if ($test === true) {
// "Dry-run-mode" activated?
if ((isExtensionDryRun() === false) && (!isExtensionOnRemovalList())) {
- //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . getCurrentExtensionName());
// Init SQLs and transfer ext->generic
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . getCurrentExtensionName());
initSqls();
setSqlsArray(getExtensionSqls());
// Register extension
//* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'insert=' . getCurrentExtensionName() . '/' . getCurrentExtensionVersion() . ' - INSERT!');
if (isExtensionInstalledAndNewer('sql_patches', '0.0.6')) {
- //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . getCurrentExtensionName() . ',always_active=' . getExtensionAlwaysActive() . ', ext_ver=' . getCurrentExtensionVersion() . 'ext_css=' . getExtensionHasCss());
// New way, with CSS
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . getCurrentExtensionName() . ',always_active=' . getThisExtensionAlwaysActive() . ', ext_ver=' . getCurrentExtensionVersion() . 'ext_css=' . getExtensionHasCss());
SQL_QUERY_ESC("INSERT INTO `{?_MYSQL_PREFIX?}_extensions` (`ext_name`, `ext_active`, `ext_version`,`ext_has_css`) VALUES ('%s','%s','%s','%s')",
array(
getCurrentExtensionName(),
- getExtensionAlwaysActive(),
+ getThisExtensionAlwaysActive(),
getCurrentExtensionVersion(),
getExtensionHasCss()
), __FUNCTION__, __LINE__);
} else {
- //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . getCurrentExtensionName() . ',always_active=' . getExtensionAlwaysActive() . ', ext_ver=' . getCurrentExtensionVersion());
// Old way, no CSS
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . getCurrentExtensionName() . ',always_active=' . getThisExtensionAlwaysActive() . ', ext_ver=' . getCurrentExtensionVersion());
SQL_QUERY_ESC("INSERT INTO `{?_MYSQL_PREFIX?}_extensions` (`ext_name`, `ext_active`, `ext_version`) VALUES ('%s','%s','%s')",
array(
getCurrentExtensionName(),
- getExtensionAlwaysActive(),
+ getThisExtensionAlwaysActive(),
getCurrentExtensionVersion()
), __FUNCTION__, __LINE__);
}
// Count cache hits
incrementStatsEntry('cache_hits');
- } elseif (isset($GLOBALS['ext_loaded'][$ext_name])) {
+ } elseif (isExtensionLoaded($ext_name)) {
// @TODO Extension is loaded, what next?
debug_report_bug(__FUNCTION__, __LINE__, 'LOADED:' . $ext_name);
} elseif (($ext_name == 'cache') || (!isExtensionInstalled('cache'))) {
// Updates a given extension with current extension version to latest version
function updateExtension ($ext_name, $ext_ver, $dry_run = false) {
// Only admins are allowed to update extensions
- if ((!isAdmin()) || (empty($ext_name))) return false;
+ if ((!isAdmin()) || (empty($ext_name))) {
+ return false;
+ } // END - if
// Set current SQL name
setCurrentExtensionName($ext_name);
initExtensionSqls();
// Check if version is updated
- //* DEBUG: */ debugOutput(getCurrentExtensionName().'/'.$ext_name.':'.getThisExtensionVersion().'/'.$ext_ver.'/'.intval(is_array($history)));
+ //* DEBUG: */ debugOutput(getCurrentExtensionName() . '/' . $ext_name . ':' . getThisExtensionVersion() . '/' . $ext_ver . '/' . intval(is_array($history)));
if (((getThisExtensionVersion() != $ext_ver) || (isExtensionDryRun())) && (is_array($history))) {
// Search for starting point
$start = array_search($ext_ver, $history);
$OUT = loadTemplate('admin_extension_sql_table', true, $content);
} else {
// No addional SQL commands to run
- $OUT = loadTemplate('admin_settings_saved', true, '{--ADMIN_NO_ADDITIONAL_SQLS--}');
+ $OUT = displayMessage('{--ADMIN_NO_ADDITIONAL_SQLS--}', true);
}
} // END - if
$message = getMaskedMessage('ADMIN_EXTENSION_TEXT_FILE_MISSING', $ext_name);
// Template file
- $tpl = sprintf("%stemplates/%s/html/ext/ext_%s.tpl",
+ $FQFN = sprintf("%stemplates/%s/html/ext/ext_%s.tpl",
getPath(),
getLanguage(),
$ext_name
);
// Load text for task if found
- if (isFileReadable($tpl)) {
- // Load extension's own text template (HTML!)
- $message = loadTemplate('ext_' . $ext_name, true);
+ if (isFileReadable($FQFN)) {
+ // Load extension's description template (but do not compile the code)
+ $message = loadTemplate('ext_' . $ext_name, true, array(), false);
} else {
// Write this in debug.log as well
logDebugMessage(__FUNCTION__, __LINE__, $message);
}
// Getter for EXT_ALWAYS_ACTIVE flag
-function getExtensionAlwaysActive () {
+function getThisExtensionAlwaysActive () {
return $GLOBALS['ext_always_active'][getCurrentExtensionName()];
}
// Checks wether the current extension is always active
-function isExtensionAlwaysActive () {
- return (getExtensionAlwaysActive() == 'Y');
+function isThisExtensionAlwaysActive () {
+ return (getThisExtensionAlwaysActive() == 'Y');
}
// Setter for EXT_VERSION flag
$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')) {
+ if ((isFileReadable($funcsInclude)) && (!isExtensionLibraryLoaded($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';
return $GLOBALS[__FUNCTION__][$ext_name];
}
+// Mark extension file as loaded
+function markExtensionAsLoaded ($ext_name) {
+ // Is it already loaded?
+ if (isExtensionLoaded($ext_name)) {
+ // Then abort here
+ debug_report_bug(__FUNCTION__, __LINE__, 'Extension ' . $ext_name . ' is already marked as loaded!');
+ } // END - if
+
+ // Mark it
+ $GLOBALS['ext_loaded']['ext_name'][$ext_name] = true;
+}
+
+// Determine wether the given extension is already loaded
+function isExtensionLoaded ($ext_name) {
+ // Is it there?
+ return ((isset($GLOBALS['ext_loaded']['ext_name'][$ext_name])) && ($GLOBALS['ext_loaded']['ext_name'][$ext_name] === true));
+}
+
+// Mark extension's library file as loaded
+function markExtensionLibraryAsLoaded ($ext_name) {
+ // Is it already loaded?
+ if (isExtensionLibraryLoaded($ext_name)) {
+ // Then abort here
+ debug_report_bug(__FUNCTION__, __LINE__, 'Extension library ' . $ext_name . ' is already marked as loaded!');
+ } // END - if
+
+ // Mark it
+ $GLOBALS['ext_loaded']['library'][$ext_name] = true;
+}
+
+// Determine wether the given extension's library is already loaded
+function isExtensionLibraryLoaded ($ext_name) {
+ // Is it there?
+ return ((isset($GLOBALS['ext_loaded']['library'][$ext_name])) && ($GLOBALS['ext_loaded']['library'][$ext_name] === true));
+}
// [EOF]
?>