+// Removes given extension from update denpency list
+function EXT_REMOVE_UPDATE_DEPENDS ($ext_name) {
+ // Look it up
+ $key = array_search($ext_name, EXT_GET_UPDATE_DEPENDS());
+
+ // Is it valid?
+ if ($key !== false) {
+ // Then remove it
+ unset($GLOBALS['ext_update_depends'][EXT_GET_CURR_NAME()][$key]);
+
+ // And sort the array
+ ksort($GLOBALS['ext_update_depends'][EXT_GET_CURR_NAME()]);
+ } // END - if
+}
+
+// Init iterator for update depencies
+function EXT_INIT_UPDATE_ITERATOR () {
+ //* DEBUG: */ DEBUG_LOG(__FUNCTION__, __LINE__, "currName=".EXT_GET_CURR_NAME());
+ $GLOBALS['ext_depend_iterator'][EXT_GET_CURR_NAME()] = 0;
+}
+
+// Getter for depency iterator
+function EXT_GET_UPDATE_ITERATOR () {
+ // Auto-init iterator
+ if (!isset($GLOBALS['ext_depend_iterator'][EXT_GET_CURR_NAME()])) EXT_INIT_UPDATE_ITERATOR();
+
+ // Return it
+ //* DEBUG: */ DEBUG_LOG(__FUNCTION__, __LINE__, "currName=".EXT_GET_CURR_NAME().'/'.$GLOBALS['ext_depend_iterator'][EXT_GET_CURR_NAME()]);
+ return $GLOBALS['ext_depend_iterator'][EXT_GET_CURR_NAME()];
+}
+
+// Increments the update iterator
+function EXT_INCREMENT_UPDATE_INTERATOR () {
+ //* DEBUG: */ DEBUG_LOG(__FUNCTION__, __LINE__, "currName=".EXT_GET_CURR_NAME());
+ $GLOBALS['ext_depend_iterator'][EXT_GET_CURR_NAME()]++;
+}
+
+// Setter for EXT_REPORTS_FAILURE flag
+function EXT_SET_REPORTS_FAILURE ($reportsFailure) {
+ $GLOBALS['ext_reports_failure'] = (bool) $reportsFailure;
+}
+
+// Getter for EXT_REPORTS_FAILURE flag
+function EXT_GET_REPORTS_FAILURE () {
+ return $GLOBALS['ext_reports_failure'];
+}
+
+// Setter for EXT_VER_HISTORY flag
+function EXT_SET_VER_HISTORY ($verHistory) {
+ $GLOBALS['ext_ver_history'] = (array) $verHistory;
+}
+
+// Getter for EXT_VER_HISTORY array
+function EXT_GET_VER_HISTORY () {
+ return $GLOBALS['ext_ver_history'];
+}
+
+// Setter for EXT_UPDATE_NOTES flag
+function EXT_SET_UPDATE_NOTES ($updateNotes) {
+ $GLOBALS['ext_update_notes'] = (string) $updateNotes;
+}
+
+// Getter for EXT_UPDATE_NOTES flag
+function EXT_GET_UPDATE_NOTES () {
+ return $GLOBALS['ext_update_notes'];
+}
+
+// Init extension notice
+function EXT_INIT_NOTES () {
+ $GLOBALS['ext_notes'] = '';
+}
+
+// Append extension notice
+function EXT_APPEND_NOTES ($notes) {
+ $GLOBALS['ext_notes'] .= (string) $notes;
+}
+
+// Getter for extension notes
+function EXT_GET_NOTES () {
+ return $GLOBALS['ext_notes'];
+}
+
+// Setter for current extension name
+function EXT_SET_CURR_NAME ($ext_name) {
+ $GLOBALS['curr_ext_name'] = (string) $ext_name;
+}
+
+// Getter for current extension name
+function EXT_GET_CURR_NAME () {
+ if (isset($GLOBALS['curr_ext_name'])) {
+ return $GLOBALS['curr_ext_name'];
+ } // END - if
+
+ // Not set!
+ debug_report_bug(__FUNCTION__.": curr_ext_name not initialized. Please execute INIT_EXT_SQLS() before calling this function.");
+}
+
+// Init SQLs array for current extension
+function INIT_EXT_SQLS () {
+ // Auto-init the array now...
+ if (!isset($GLOBALS['ext_sqls'][EXT_GET_CURR_NAME()])) {
+ $GLOBALS['ext_sqls'][EXT_GET_CURR_NAME()] = array();
+ } // END - if
+}
+
+// Adds SQLs to the SQLs array but "assigns" it with current extension name
+function ADD_EXT_SQL ($sql) {
+ $GLOBALS['ext_sqls'][EXT_GET_CURR_NAME()][] = $sql;
+}
+
+// Getter for SQLs array for current extension
+function GET_EXT_SQLS () {
+ // Output debug backtrace if not found (SHOULD NOT HAPPEN!)
+ if (!isset($GLOBALS['ext_sqls'][EXT_GET_CURR_NAME()])) {
+ // Not found, should not happen
+ debug_report_bug(sprintf("ext_sqls is empty, current extension: %s",
+ EXT_GET_CURR_NAME()
+ ));
+ } // END - if
+
+ // Return the array
+ return $GLOBALS['ext_sqls'][EXT_GET_CURR_NAME()];
+}
+
+// Removes SQLs for current extension
+function UNSET_EXT_SQLS () {
+ unset($GLOBALS['ext_sqls'][EXT_GET_CURR_NAME()]);
+}
+
+// Auto-initializes the removal list
+function EXT_INIT_REMOVAL_LIST () {
+ // Is the remove list there?
+ if (!isset($GLOBALS['ext_update_remove'])) {
+ // Then create it
+ $GLOBALS['ext_update_remove'] = array();
+ } // END - if
+}
+
+// Checks wether the current extension is on the removal list
+function EXT_IS_ON_REMOVAL_LIST () {
+ // Init removal list
+ EXT_INIT_REMOVAL_LIST();
+
+ // Is it there?
+ return (in_array(EXT_GET_CURR_NAME(), $GLOBALS['ext_update_remove']));
+}
+
+// Adds the current extension to the removal list
+function EXT_ADD_CURRENT_TO_REMOVAL_LIST () {
+ // Simply add it
+ $GLOBALS['ext_update_remove'][] = EXT_GET_CURR_NAME();
+}
+
+// Getter for removal list
+function EXT_GET_REMOVAL_LIST () {
+ // Return the removal list
+ return $GLOBALS['ext_update_remove'];
+}
+
+// Redirects if the provided extension is not installed
+function redirectOnUninstalledExtension ($ext_name) {
+ // So is the extension there?
+ if (!EXT_IS_ACTIVE($ext_name)) {
+ // Redirect to index
+ redirectToUrl('modules.php?module=index&msg=' . getCode('EXTENSION_PROBLEM') . '&ext=' . $ext_name);
+ } // END - if