return true;
}
-// Registeres an extension and possible update depencies
-function registerExtension ($ext_name, $taskId, $dry_run = false) {
+// Registers an extension and possible update dependencies
+function registerExtension ($ext_name, $taskId, $dry_run = false, $ignoreUpdates = false) {
// Set current extension name
//* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ',task_id=' . $taskId . ',dry_run=' . intval($dry_run) . ' - ENTERED!');
setCurrentExtensionName($ext_name);
} // END - if
// When this extension is already in registration/update phase, all is fine
- if ((isExtensionRegistrationRunning($ext_name)) || (isExtensionUpdateRunning($ext_name))) {
+ if ((isExtensionRegistrationRunning($ext_name)) || ((isExtensionUpdateRunning($ext_name)) && ($ignoreUpdates === false))) {
// Then abort here with 'true' becaus it is fine
- //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ' - already in registration/update phase, all fine.');
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ' - already in registration/update phase, all fine,taskId=' . $taskId . ',dry_run=' . intval($dry_run) . ',ignoreUpdates=' . intval($ignoreUpdates));
+ ///* BUG: */ debug_report_bug(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ',taskId=' . $taskId . ',dry_run=' . intval($dry_run) . ',ignoreUpdates=' . intval($ignoreUpdates) . ' - Please investigate!');
return true;
} // END - if
// Init variables
$ret = false;
- $test = false;
+ $processResult = false;
initIncludePool('extension');
// By default we have no failures
- setExtensionReportsFailure(false);
+ enableExtensionReportingFailure();
// Does this extension exists?
//* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'currName=' . getCurrentExtensionName());
// Extension version set? If empty the extension is not registered
if (empty($ext_ver)) {
// Extension not registered so far so first load task's id...
- $task = determineExtensionTaskId($ext_update);
+ $taskId = determineExtensionTaskId($ext_update);
// Entry found?
- if ($task > 0) {
+ if ($taskId > 0) {
// Try to register the extension
- //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'currName=' . getCurrentExtensionName() . ':ext_update=' . $ext_update . ',taskId=' . $task);
- $test = registerExtension($ext_update, $task, isExtensionDryRun(), false);
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'currName=' . getCurrentExtensionName() . ',ext_update=' . $ext_update . ',taskId=' . $taskId . ',isExtensionDryRun()=' . isExtensionDryRun());
+ $processResult = registerExtension($ext_update, $taskId, isExtensionDryRun(), true);
// Reset extension name
setCurrentExtensionName($ext_name);
- //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'currName=' . getCurrentExtensionName() . ',test=' . intval($test));
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'currName=' . getCurrentExtensionName() . ',ext_update=' . $ext_update . ',processResult=' . intval($processResult));
} // END - if
} elseif ($ext_ver != getCurrentExtensionVersion()) {
// Ok, update this extension now
//* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'currName=' . getCurrentExtensionName() . ',currVer=' . getCurrentExtensionVersion());
// All okay!
- $test = true;
+ $processResult = true;
} else {
// Nothing to register / update before...
- $test = true;
+ $processResult = true;
}
} else {
// Required file for update does not exists!
- $test = true;
+ $processResult = true;
// But this is fine for the first time...
}
// Is there no update?
if (countExtensionUpdateDependencies(getCurrentExtensionName()) == 0) {
// Then test is passed!
- $test = true;
+ $processResult = true;
} // END - if
// Switch back to register mode
setExtensionMode('register');
// Remains true if extension registration reports no failures
- //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'currName=' . getCurrentExtensionName() . ',test=' . intval($test));
- $test = (($test === true) && (getExtensionReportsFailure() === false));
- //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'currName=' . getCurrentExtensionName() . ',test=' . intval($test));
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'currName=' . getCurrentExtensionName() . ',processResult=' . intval($processResult));
+ $processResult = (($processResult === true) && (isExtensionReportingFailure() === false));
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'currName=' . getCurrentExtensionName() . ',processResult=' . intval($processResult));
// Does everthing before wents ok?
- if ($test === true) {
+ if ($processResult === true) {
// "Dry-run-mode" activated?
if ((isExtensionDryRun() === false) && (!isExtensionOnRemovalList())) {
// Init SQLs and transfer ext->generic
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());
- SQL_QUERY_ESC("INSERT INTO `{?_MYSQL_PREFIX?}_extensions` (`ext_name`, `ext_active`, `ext_version`,`ext_has_css`) VALUES ('%s','%s','%s','%s')",
+ SQL_QUERY_ESC("INSERT INTO `{?_MYSQL_PREFIX?}_extensions` (`ext_name`, `ext_active`, `ext_version`, `ext_has_css`) VALUES ('%s','%s','%s','%s')",
array(
getCurrentExtensionName(),
getThisExtensionAlwaysActive(),
$ret = false;
}
} elseif (($taskId > 0) && (getCurrentExtensionName() != '')) {
- //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'currName=' . getCurrentExtensionName());
// Remove task from system when id and extension's name is valid
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'currName=' . getCurrentExtensionName());
SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_task_system` WHERE `id`=%s AND `status`='NEW' LIMIT 1",
array(bigintval($taskId)), __FUNCTION__, __LINE__);
}
// Return status code
- //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'currName=' . getCurrentExtensionName() . ',ext_name=' . $ext_name . ',test=' . intval($test) . ' - EXIT!');
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'currName=' . getCurrentExtensionName() . ',ext_name=' . $ext_name . ',processResult=' . intval($processResult) . ' - EXIT!');
return $ret;
}
// @TODO Change from ext_id to ext_name (not just even the variable! ;-) )
function doExtensionSqls ($ext_id, $load_mode) {
// This shall never do a non-admin user!
- if (!isAdmin()) return false;
+ if (!isAdmin()) {
+ return false;
+ } // END - if
// Get extension's name
$ext_name = getExtensionName($ext_id);
// Check wether the given extension is installed
function isExtensionInstalled ($ext_name) {
// We don't like empty extension names here
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ' - ENTERED!');
if (empty($ext_name)) {
// Please fix them all
debug_report_bug(__FUNCTION__, __LINE__, 'ext_name is empty.');
// Check if there is a cache entry
if (isset($GLOBALS['ext_is_installed'][$ext_name])) {
// Use cache built from below queries
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ' - CACHE!');
$isInstalled = $GLOBALS['ext_is_installed'][$ext_name];
} elseif (isset($GLOBALS['cache_array']['extension']['ext_id'][$ext_name])) {
// Found!
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ' - FOUND!');
$isInstalled = true;
// Count cache hits
incrementStatsEntry('cache_hits');
} elseif ((isInstallationPhase())) {
// Extensions are all inactive/not installed during installation
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ' - installion phase');
} else {
// Look in database
$ext_id = getExtensionId($ext_name);
- // Log debug message
- //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Extension ' . $ext_name . ' has ext_id=' . $ext_id);
-
// Do we have a record?
$isInstalled = ($ext_id > 0);
+ // Log debug message
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ',ext_id=' . $ext_id . ',isInstalled=' . intval($isInstalled));
+
// Is it installed, then cache the entry
if ($isInstalled === true) {
// Dummy call (get is okay here)
}
// Return status
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ',isInstalled=' . intval($isInstalled) . ' - EXIT!');
return $isInstalled;
}
//* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ' - Checking cache ...');
if (isset($GLOBALS['cache_array']['extension']['ext_version'][$ext_name])) {
// Load data from cache
- //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ': CACHE!');
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ' - CACHE!');
$data['ext_version'] = $GLOBALS['cache_array']['extension']['ext_version'][$ext_name];
// Count cache hits
if (SQL_NUMROWS($result) == 1) {
// Load entry
$data = SQL_FETCHARRAY($result);
+
+ // Set cache
+ $GLOBALS['cache_array']['extension']['ext_version'][$ext_name] = $data['ext_version'];
} elseif (isDebugModeEnabled()) {
- // Not found, please report all
- debug_report_bug(__FUNCTION__, __LINE__, sprintf(": Cannot find extension %s in database!", $ext_name));
+ // Not found, may happen while an extension is uninstalled
+ logDebugMessage(__FUNCTION__, __LINE__, sprintf("Cannot find extension %s in database!", $ext_name));
}
// Free result
SQL_FREERESULT($result);
-
- // Set cache
- $GLOBALS['cache_array']['extension']['ext_version'][$ext_name] = $data['ext_version'];
}
// Extension version should not be invalid
// 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
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ',ext_ver=' . $ext_ver . ',dry_run=' . intval($dry_run) . ' - ENTERED!');
if ((!isAdmin()) || (empty($ext_name))) {
- return false;
+ // Called as non-admin or empty extension
+ debug_report_bug(__FUNCTION__, __LINE__, 'Called as non-admin (isAdmin()=' . intval(isAdmin()) . '), or empty extension name. ext_name=' . $ext_name);
} // END - if
// Set current SQL name
setCurrentExtensionName($ext_name);
+ // Is this extension update already running?
+ if ((isExtensionUpdateRunning($ext_name)) && ($dry_run === false)) {
+ // This is fine but needs logging ATM
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ' - already in update phase, all fine.');
+ ///* BUG: */ debug_report_bug(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ' - already in update phase, please investigate!');
+ return true;
+ } // END - if
+
// Init arrays
initExtensionSqls();
initExtensionNotes();
initExtensionSqls();
// Check if version is updated
- //* DEBUG: */ debugOutput(getCurrentExtensionName() . '/' . $ext_name . ':' . getThisExtensionVersion() . '/' . $ext_ver . '/' . intval(is_array($history)));
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, getCurrentExtensionName() . '/' . $ext_name . ':' . getThisExtensionVersion() . '/' . $ext_ver . '/' . intval(is_array($history)));
if (((getThisExtensionVersion() != $ext_ver) || (isExtensionDryRun())) && (is_array($history))) {
// Search for starting point (-1 for making 0.0 -> 0.0.0 switch work)
$start = -1;
// Is the extension there?
if (isExtensionInstalled($ext_depend)) {
// Update another extension first!
- $test = updateExtension($ext_depend, getExtensionVersion($ext_depend), isExtensionDryRun());
+ $processResult = updateExtension($ext_depend, getExtensionVersion($ext_depend), isExtensionDryRun());
} else {
// Register new extension
- $test = registerExtension($ext_depend, 0, isExtensionDryRun(), false);
+ $processResult = registerExtension($ext_depend, 0, isExtensionDryRun());
}
} // END - if
} // END - foreach
- // Set extension version here
- setCurrentExtensionVersion($ext_ver);
-
// Set name back
setCurrentExtensionName($ext_name);
+
+ // Set extension version here
+ setCurrentExtensionVersion($ext_ver);
} // END - if
// Add notes
runFilterChain('extension_update', getCurrentExtensionName());
} // END - if
} // END - if
+
+ //* DEBUG: */logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ',ext_ver=' . $ext_ver . ',dry_run=' . intval($dry_run) . ' - EXIT!');
}
// Output verbose SQL table for extension
incrementStatsEntry('cache_hits');
} else {
// Load from database
- $result = SQL_QUERY_ESC("SELECT `id` AS ext_id FROM `{?_MYSQL_PREFIX?}_extensions` WHERE `ext_name`='%s' LIMIT 1",
+ $result = SQL_QUERY_ESC("SELECT `id` AS `ext_id` FROM `{?_MYSQL_PREFIX?}_extensions` WHERE `ext_name`='%s' LIMIT 1",
array($ext_name), __FUNCTION__, __LINE__);
// Is the entry there?
// Not installed and do we have created a task for the admin?
if (($taskId == '0') && (!isExtensionInstalled($ext_name))) {
// Set default message if ext-foo is missing
- $message = getMaskedMessage('ADMIN_EXTENSION_TEXT_FILE_MISSING', $ext_name);
+ $message = '{%message,ADMIN_EXTENSION_TEXT_FILE_MISSING=' . $ext_name . '%}';
// Template file
$FQFN = sprintf("%stemplates/%s/html/ext/ext_%s.tpl",
// Is do we have verbose output enabled?
if ((!isExtensionActive('sql_patches')) || (isVerboseSqlEnabled())) {
// Update notes found?
- if (isExtensionUpdateNoteSet($ext_ver)) {
+ if ((isExtensionUpdateNoteSet($ext_ver)) && ($ext_ver != '0.0.0')) {
// Update notes found
$content = array(
'ver' => $ext_ver,
// Is it not yet added?
if ((isset($updateDepends, $GLOBALS['ext_running_updates'][getCurrentExtensionName()])) && (in_array($updateDepends, getExtensionUpdatesRunning()))) {
/*
- * Double-adding isn't fine, too. This may mean that
- * addExtensionDependency() was called outside the switch() command in
- * the extension's file which requires fixing.
+ * Double-adding happens when the extension and an update of the same
+ * extension requires the same other extension again.
*/
- debug_report_bug(__FUNCTION__, __LINE__, 'updateDepends=' . $updateDepends . ',extensionMode=' . getExtensionMode() . ',currentExtension=' . getCurrentExtensionName() . ' - CALLED TWICE!');
+ logDebugMessage(__FUNCTION__, __LINE__, 'updateDepends=' . $updateDepends . ',extensionMode=' . getExtensionMode() . ',currentExtension=' . getCurrentExtensionName() . ' - called twice.');
+ return;
} // END - if
// Add it to the list of extension update depencies map
// Checks wether an update is already running for given extension
function isExtensionUpdateRunning ($ext_name) {
// Current and given extensions means whole array
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'currentExtension=' . getCurrentExtensionName() . ',ext_name=' . $ext_name . ' - ENTERED!');
if ($ext_name == getCurrentExtensionName()) {
// Default is not found
$isRunning = false;
// Walk through whole array
foreach ($GLOBALS['ext_running_updates'] as $ext1=>$depends) {
// Is it found?
- if (($ext1 == $ext_name) || ($isRunning === true)) {
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext1=' . $ext1 . ',ext_name=' . $ext_name . ',depends=' . print_r($depends, true));
+ if (($ext1 == $ext_name) || (in_array($ext_name, $depends))) {
// Found
$isRunning = true;
- logDebugMessage(__FUNCTION__, __LINE__, 'ext1=' . $ext1 . ',ext_name=' . $ext_name . ',isRunning=' . intval($isRunning));
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext1=' . $ext1 . ',ext_name=' . $ext_name . ',isRunning=true - ADDED!');
break;
} // END - if
} // END - foreach
// Return result
- //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'currentExtension=' . getCurrentExtensionName() . ',ext_name=' . $ext_name . ', isRunning=' . intval($isRunning));
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'currentExtension=' . getCurrentExtensionName() . ',ext_name=' . $ext_name . ', isRunning=' . intval($isRunning) . ' - ALT-EXIT!');
return $isRunning;
} // END - if
$isRunning = ((isExtensionUpdateDependenciesInitialized()) && (in_array($ext_name, getExtensionRunningUpdates())));
// Return it
- //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'currentExtension=' . getCurrentExtensionName() . ',ext_name=' . $ext_name . ', isRunning=' . intval($isRunning));
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'currentExtension=' . getCurrentExtensionName() . ',ext_name=' . $ext_name . ', isRunning=' . intval($isRunning) . ' - EXIT!');
return $isRunning;
}
// Getter for EXT_UPDATE_DEPENDS flag
function getExtensionUpdateDependencies () {
- //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, "currName=".getCurrentExtensionName());
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'currName=' . getCurrentExtensionName());
return $GLOBALS['ext_update_depends'][getCurrentExtensionName()];
}
// Getter for next iterator depency
function getExtensionUpdateDependenciesIterator () {
- //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, "currName=".getCurrentExtensionName());
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'currName=' . getCurrentExtensionName());
return ($GLOBALS['ext_update_depends'][getCurrentExtensionName()][getExtensionUpdateIterator()]);
}
// Counter for extension update depencies
function countExtensionUpdateDependencies () {
- //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, "currName=".getCurrentExtensionName());
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'currName=' . getCurrentExtensionName());
return count($GLOBALS['ext_update_depends'][getCurrentExtensionName()]);
}
// Init iterator for update depencies
function initExtensionUpdateIterator () {
- //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, "currName=".getCurrentExtensionName());
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'currName=' . getCurrentExtensionName());
$GLOBALS['ext_depend_iterator'][getCurrentExtensionName()] = '0';
}
if (!isset($GLOBALS['ext_depend_iterator'][getCurrentExtensionName()])) initExtensionUpdateIterator();
// Return it
- //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, "currName=".getCurrentExtensionName().'/'.$GLOBALS['ext_depend_iterator'][getCurrentExtensionName()]);
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'currName=' . getCurrentExtensionName().'/'.$GLOBALS['ext_depend_iterator'][getCurrentExtensionName()]);
return $GLOBALS['ext_depend_iterator'][getCurrentExtensionName()];
}
// Increments the update iterator
function incrementExtensionUpdateIterator () {
- //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, "currName=".getCurrentExtensionName());
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'currName=' . getCurrentExtensionName());
$GLOBALS['ext_depend_iterator'][getCurrentExtensionName()]++;
}
// Setter for EXT_REPORTS_FAILURE flag
-function setExtensionReportsFailure ($reportsFailure) {
+function enableExtensionReportingFailure ($reportsFailure = false) {
$GLOBALS['ext_reports_failure'] = (bool) $reportsFailure;
}
// Getter for EXT_REPORTS_FAILURE flag
-function getExtensionReportsFailure () {
+function isExtensionReportingFailure () {
return $GLOBALS['ext_reports_failure'];
}
} // END - if
}
} // END - foreach
+
+ // Remove from other caches as well
+ unset($GLOBALS['ext_is_installed'][$ext_name]);
+ unset($GLOBALS['loaded_extension'][$ext_name]);
}
// "Getter" for 'extension has a CSS file' (with same name, of course)
function getExtensionHasCss () {
- // Default is no CSS
- $hasCss = 'N';
-
- // Construct FQFN for check
- $FQFN = sprintf("%stheme/%s/css/%s.css",
- getPath(),
- getCurrentTheme(),
- getCurrentExtensionName()
- );
+ // Do we have cache?
+ if (!isset($GLOBALS[__FUNCTION__][getCurrentExtensionName()][getCurrentTheme()])) {
+ // Construct FQFN for check
+ $FQFN = sprintf("%stheme/%s/css/%s.css",
+ getPath(),
+ getCurrentTheme(),
+ getCurrentExtensionName()
+ );
- // Is it there?
- if (isFileReadable($FQFN)) {
- // Readable, so it is there...
- $hasCss = 'Y';
+ // Is it there?
+ $GLOBALS[__FUNCTION__][getCurrentExtensionName()][getCurrentTheme()] = convertBooleanToYesNo(isFileReadable($FQFN));
} // END - if
// Return it
- return $hasCss;
+ return $GLOBALS[__FUNCTION__][getCurrentExtensionName()][getCurrentTheme()];
}
// Checks wether the given extension has a language file
// Count cache hits
incrementStatsEntry('cache_hits');
} else {
- // Not readable is default
- $readable = 'N';
-
- // Is the language file readable for this extension?
- if (isLanguageIncludeReadable($ext_name)) {
- // Readable
- $readable = 'Y';
- } // END - if
-
- // Put it in cache
- $GLOBALS['cache_array']['extension']['ext_lang'][$ext_name] = $readable;
+ // Determine it and put it in cache
+ $GLOBALS['cache_array']['extension']['ext_lang'][$ext_name] = convertBooleanToYesNo(isLanguageIncludeReadable($ext_name));
}
// Return result
$funcsInclude = sprintf("inc/libs/%s_functions.php", $ext_name);
// Is this include there?
- 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';
- } 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';
- }
+ $isIncludeFound = ((isFileReadable($funcsInclude)) && (!isExtensionLibraryLoaded($ext_name)) && (getExtensionMode() == 'test'));
+
+ // And put in cache, converted
+ $GLOBALS['cache_array']['extension']['ext_func'][$ext_name] = convertBooleanToYesNo($isIncludeFound);
}
// Return result
}
// Adds a CREATE TABLE statement if the requested table is not there
-function addCreateTableSql ($tableName, $sql) {
+function addCreateTableSql ($tableName, $sql, $comment) {
// Is the table not there?
if (!isSqlTableCreated($tableName)) {
// Is not found, so add it
- addExtensionSql('CREATE TABLE `{?_MYSQL_PREFIX?}_' . $tableName . '` ' . $sql);
+ addExtensionSql('CREATE TABLE
+ `{?_MYSQL_PREFIX?}_' . $tableName . '` (' . $sql . ')
+ENGINE = {?_TABLE_TYPE?}
+CHARACTER SET utf8
+COLLATE utf8_general_ci
+COMMENT ' . "'" . $comment . "'");
} else {
// Is already there, which should not happen
debug_report_bug(__FUNCTION__, __LINE__, 'The table ' . $tableName . ' is already created which should not happen.');
// Is what null?
if (is_null($what)) {
// Add main menu
- $sql = sprintf("INSERT INTO `{?_MYSQL_PREFIX?}_admin_menu` (`action`,`what`,`title`,`descr`,`sort`) VALUES('%s',NULL,'%s','%s',%s)",
+ $sql = sprintf("INSERT INTO `{?_MYSQL_PREFIX?}_admin_menu` (`action`, `what`, `title`, `descr`, `sort`) VALUES ('%s',NULL,'%s','%s',%s)",
$action,
$title,
$descr,
);
} else {
// Add sub menu
- $sql = sprintf("INSERT INTO `{?_MYSQL_PREFIX?}_admin_menu` (`action`,`what`,`title`,`descr`,`sort`) VALUES('%s','%s','%s','%s',%s)",
+ $sql = sprintf("INSERT INTO `{?_MYSQL_PREFIX?}_admin_menu` (`action`, `what`, `title`, `descr`, `sort`) VALUES ('%s','%s','%s','%s',%s)",
$action,
$what,
$title,
}
// Adds a guest menu to the SQL queue if the menu entry is not found
-function addGuestMenuSql ($action, $what, $title, $visible, $locked, $sort) {
+function addGuestMenuSql ($action, $what, $title, $sort) {
// Now check if this menu is there
if (!isMenuActionValid('guest', $action, $what)) {
// Is what null?
if (is_null($what)) {
// Add main menu
- $sql = sprintf("INSERT INTO `{?_MYSQL_PREFIX?}_guest_menu` (`action`,`what`,`title`,`visible`,`locked`,`sort`) VALUES('%s',NULL,'%s','%s','%s',%s)",
+ $sql = sprintf("INSERT INTO `{?_MYSQL_PREFIX?}_guest_menu` (`action`, `what`, `title`, `visible`, `locked`, `sort`) VALUES ('%s',NULL,'%s','N','Y',%s)",
$action,
$title,
- $visible,
- $locked,
bigintval($sort)
);
} else {
// Add sub menu
- $sql = sprintf("INSERT INTO `{?_MYSQL_PREFIX?}_guest_menu` (`action`,`what`,`title`,`visible`,`locked`,`sort`) VALUES('%s','%s','%s','%s','%s',%s)",
+ $sql = sprintf("INSERT INTO `{?_MYSQL_PREFIX?}_guest_menu` (`action`, `what`, `title`, `visible`, `locked`, `sort`) VALUES ('%s','%s','%s','N','Y',%s)",
$action,
$what,
$title,
- $visible,
- $locked,
bigintval($sort)
);
}
addExtensionSql($sql);
} elseif (isDebugModeEnabled()) {
// Double menus should be located and fixed!
- logDebugMessage(__FUNCTION__, __LINE__, sprintf("Double guest menu action=%s,what=%s,title=%s,locked=%s,visible=%s detected.", $action, $what, $title, $locked, $visible));
+ logDebugMessage(__FUNCTION__, __LINE__, sprintf("Double guest menu action=%s,what=%s,title=%s detected.", $action, $what, $title));
}
}
// Adds a member menu to the SQL queue if the menu entry is not found
-function addMemberMenuSql ($action, $what, $title, $visible, $locked, $sort) {
+function addMemberMenuSql ($action, $what, $title, $sort) {
// Now check if this menu is there
if (!isMenuActionValid('member', $action, $what)) {
// Is what null?
if (is_null($what)) {
// Add main menu
- $sql = sprintf("INSERT INTO `{?_MYSQL_PREFIX?}_member_menu` (`action`,`what`,`title`,`visible`,`locked`,`sort`) VALUES('%s',NULL,'%s','%s','%s',%s)",
+ $sql = sprintf("INSERT INTO `{?_MYSQL_PREFIX?}_member_menu` (`action`, `what`, `title`, `visible`, `locked`, `sort`) VALUES ('%s',NULL,'%s','N','Y',%s)",
$action,
$title,
- $visible,
- $locked,
bigintval($sort)
);
} else {
// Add sub menu
- $sql = sprintf("INSERT INTO `{?_MYSQL_PREFIX?}_member_menu` (`action`,`what`,`title`,`visible`,`locked`,`sort`) VALUES('%s','%s','%s','%s','%s',%s)",
+ $sql = sprintf("INSERT INTO `{?_MYSQL_PREFIX?}_member_menu` (`action`, `what`, `title`, `visible`, `locked`, `sort`) VALUES ('%s','%s','%s','N','Y',%s)",
$action,
$what,
$title,
- $visible,
- $locked,
bigintval($sort)
);
}
addExtensionSql($sql);
} elseif (isDebugModeEnabled()) {
// Double menus should be located and fixed!
- logDebugMessage(__FUNCTION__, __LINE__, sprintf("Double member menu action=%s,what=%s,title=%s,visivle=%s,locked=%s detected.", $action, $what, $title, $visible, $locked));
+ logDebugMessage(__FUNCTION__, __LINE__, sprintf("Double member menu action=%s,what=%s,title=%s detected.", $action, $what, $title));
}
}
// Is what null?
if (is_null($what)) {
// Add main menu
- $sql = sprintf("INSERT INTO `{?_MYSQL_PREFIX?}_sponsor_menu` (`action`,`what`,`title`,`active`,`sort`) VALUES('%s',NULL,'%s','%s',%s)",
+ $sql = sprintf("INSERT INTO `{?_MYSQL_PREFIX?}_sponsor_menu` (`action`, `what`, `title`, `active`, `sort`) VALUES ('%s',NULL,'%s','%s',%s)",
$action,
$title,
$active,
);
} else {
// Add sub menu
- $sql = sprintf("INSERT INTO `{?_MYSQL_PREFIX?}_sponsor_menu` (`action`,`what`,`title`,`active`,`sort`) VALUES('%s','%s','%s','%s',%s)",
+ $sql = sprintf("INSERT INTO `{?_MYSQL_PREFIX?}_sponsor_menu` (`action`, `what`, `title`, `active`, `sort`) VALUES ('%s','%s','%s','%s',%s)",
$action,
$what,
$title,