} // END - if
// Load extension's own language file if not in test mode
- if ((getExtensionMode() != 'test') && (ifExtensionHasLanguageFile($ext_name))) {
+ if ((getExtensionMode() != 'test') && (isExtensionLanguageFileReadable($ext_name))) {
// Load it
loadLanguageFile($ext_name);
} // END - if
// Run installation pre-installation filters
runFilterChain('pre_extension_installed', array('dry_run' => isExtensionDryRun(), 'ext_installing' => TRUE, 'enable_codes' => FALSE));
+ // Copy current name to save calls
+ $currentName = getCurrentExtensionName();
+
// Register extension
- //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'insert=' . getCurrentExtensionName() . '/' . getCurrentExtensionVersion() . ' - INSERT!');
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'insert=' . $currentName . '/' . getCurrentExtensionVersion() . ' - INSERT!');
if (isExtensionInstalledAndNewer('sql_patches', '0.0.6')) {
// New way, with CSS
- //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . getCurrentExtensionName() . ',always_active=' . getThisExtensionAlwaysActive() . ', ext_ver=' . getCurrentExtensionVersion() . 'ext_css=' . getExtensionHasCss());
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $currentName . ',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(),
+ $currentName,
getThisExtensionAlwaysActive(),
getCurrentExtensionVersion(),
getExtensionHasCss()
), __FUNCTION__, __LINE__);
} else {
// Old way, no CSS
- //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . getCurrentExtensionName() . ',always_active=' . getThisExtensionAlwaysActive() . ', ext_ver=' . getCurrentExtensionVersion());
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $currentName . ',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(),
+ $currentName,
getThisExtensionAlwaysActive(),
getCurrentExtensionVersion()
), __FUNCTION__, __LINE__);
}
- // Use the insert id as extension id and cache it for early usage
- $GLOBALS['cache_array']['extension']['ext_id'][getCurrentExtensionName()] = SQL_INSERTID();
- $GLOBALS['cache_array']['extension']['ext_name'][SQL_INSERTID()] = getCurrentExtensionName();
+ /*
+ * Use the insert id as extension id and "cache" all data for
+ * this extension for early usage.
+ */
+ copyCurrentExtensionDataToCacheArray($ext_name, SQL_INSERTID());
// Mark it as installed
- $GLOBALS['ext_is_installed'][getCurrentExtensionName()] = TRUE;
+ $GLOBALS['ext_is_installed'][$currentName] = TRUE;
// Remove cache file(s) if extension is active
runFilterChain('post_extension_installed', array(
'pool' => 'extension',
- 'ext_name' => getCurrentExtensionName(),
+ 'ext_name' => $currentName,
'task_id' => $taskId
));
return $GLOBALS[__FUNCTION__][getCurrentExtensionName()][getCurrentTheme()];
}
-// Checks whether the given extension has a language file
-function ifExtensionHasLanguageFile ($ext_name) {
+// Checks whether the given extension's language file is readable
+function isExtensionLanguageFileReadable ($ext_name) {
// Is there cache?
if (isset($GLOBALS['cache_array']['extension']['ext_lang'][$ext_name])) {
// Count cache hits
return ((isset($GLOBALS['ext_loaded']['library'][$ext_name])) && ($GLOBALS['ext_loaded']['library'][$ext_name] === TRUE));
}
+// Copies the given extension's data to cache_array (USE THIS ONLY IN REGISTRATION PHASE!)
+function copyExtensionDataToCacheArray ($ext_name, $ext_id) {
+ // Copy all data
+ $GLOBALS['cache_array']['extension']['ext_id'][$currentName] = $ext_id;
+ $GLOBALS['cache_array']['extension']['ext_name'][$ext_id] = $currentName;
+ $GLOBALS['cache_array']['extension']['ext_version'][$currentName] = getCurrentExtensionVersion();
+ $GLOBALS['cache_array']['extension']['ext_active'][$currentName] = getThisExtensionAlwaysActive();
+ $GLOBALS['cache_array']['extension']['ext_lang'][$currentName] = convertBooleanToYesNo(isExtensionLanguageFileReadable($currentName));
+ $GLOBALS['cache_array']['extension']['ext_func'][$currentName] = convertBooleanToYesNo(isExtensionFunctionFileReadable($currentName));
+ $GLOBALS['cache_array']['extension']['ext_menu'][$currentName] = convertBooleanToYesNo(ifModuleHasMenu($currentName));
+ $GLOBALS['cache_array']['extension']['ext_css'][$currentName] = convertBooleanToYesNo(getExtensionHasCss());
+ $GLOBALS['cache_array']['extension']['ext_deprecated'][$currentName] = 'N';
+}
+
// [EOF]
?>