+ $out = LOAD_TEMPLATE('admin_ext_notes', true, $content);
+ } // END - if
+
+ // Add the notes
+ EXT_APPEND_NOTES($out);
+}
+
+// Getter for CSS files array
+function EXT_GET_CSS_FILES () {
+ // By default no additional CSS files are found
+ $cssFiles = array();
+
+ // Is the array there?
+ if (isset($GLOBALS['css_files'])) {
+ // Then use it
+ $cssFiles = $GLOBALS['css_files'];
+ } // END - if
+
+ // Return array
+ return $cssFiles;
+}
+
+// Init CSS files array
+function EXT_INIT_CSS_FILES () {
+ // Simply init it
+ $GLOBALS['css_files'] = array();
+}
+
+// Add new entry
+function EXT_ADD_CSS_FILE ($file) {
+ // Is the array there?
+ if (!isset($GLOBALS['css_files'])) {
+ // Then auto-init them
+ EXT_INIT_CSS_FILES();
+ } // END - if
+
+ // Add the entry
+ $GLOBALS['css_files'][] = $file;
+}
+
+// Setter for EXT_ALWAYS_ACTIVE flag
+function EXT_SET_ALWAYS_ACTIVE ($active) {
+ $GLOBALS['ext_always_active'][EXT_GET_CURR_NAME()] = (string) $active;
+}
+
+// Getter for EXT_ALWAYS_ACTIVE flag
+function EXT_GET_ALWAYS_ACTIVE () {
+ return $GLOBALS['ext_always_active'][EXT_GET_CURR_NAME()];
+}
+
+// Setter for EXT_VERSION flag
+function EXT_SET_VERSION ($version) {
+ $GLOBALS['ext_version'][EXT_GET_CURR_NAME()] = (string) $version;
+}
+
+// Getter for EXT_VERSION flag
+function EXT_GET_VERSION () {
+ return $GLOBALS['ext_version'][EXT_GET_CURR_NAME()];
+}
+
+// Setter for EXT_DEPRECATED flag
+function EXT_SET_DEPRECATED ($deprecated) {
+ $GLOBALS['ext_deprecated'][EXT_GET_CURR_NAME()] = (string) $deprecated;
+}
+
+// Getter for EXT_DEPRECATED flag
+function EXT_GET_DEPRECATED () {
+ return $GLOBALS['ext_deprecated'][EXT_GET_CURR_NAME()];
+}
+
+// Setter for EXT_UPDATE_DEPENDS flag
+function EXT_ADD_UPDATE_DEPENDS ($updateDepends) {
+ // Is the update depency empty? (NEED TO BE FIXED!)
+ if (empty($updateDepends)) {
+ // Please report this bug!
+ debug_report_bug("updateDepends is left empty!");
+ } // END - if
+
+ // Is it not yet added?
+ if (!in_array($updateDepends, $GLOBALS['ext_running_updates'])) {
+ //* DEBUG */ DEBUG_LOG(__FUNCTION__, __LINE__, "currName=".EXT_GET_CURR_NAME().'/'.$updateDepends);
+ // Add it to the list of extension update depencies map
+ $GLOBALS['ext_update_depends'][EXT_GET_CURR_NAME()][] = (string) $updateDepends;
+
+ // Remember it in the list of running updates
+ $GLOBALS['ext_running_updates'][] = $updateDepends;
+ } // END - if
+}
+
+// Checks wether the given extension registration is in progress
+function EXT_IS_REGISTER_RUNNING ($ext_name) {
+ return ((isset($GLOBALS['ext_register_running'])) && (in_array($ext_name, $GLOBALS['ext_register_running'])));
+}
+
+// Init EXT_UPDATE_DEPENDS flag
+function EXT_INIT_UPDATE_DEPENDS () {
+ //* DEBUG: */ DEBUG_LOG(__FUNCTION__, __LINE__, "currName=".EXT_GET_CURR_NAME());
+
+ // Init update depency map automatically if not found
+ if (!EXT_IS_UPDATE_DEPENDS_INIT()) {
+ //* DEBUG: */ DEBUG_LOG(__FUNCTION__, __LINE__, "currName=".EXT_GET_CURR_NAME()." - INIT!");
+ $GLOBALS['ext_update_depends'][EXT_GET_CURR_NAME()] = array();
+ } // END - if
+
+ // Init running updates array
+ EXT_INIT_RUNNING_UPDATES();
+}
+
+// Adds an extension as "registration in progress"
+function EXT_ADD_RUNNING_REGISTRATION ($ext_name) {
+ // Is it running?
+ if (!EXT_IS_REGISTER_RUNNING($ext_name)) {
+ // Then add it!
+ $GLOBALS['ext_register_running'][] = $ext_name;
+ } // END - if
+}
+
+// Checks wether EXT_UPDATE_DEPENDS is initialized
+function EXT_IS_UPDATE_DEPENDS_INIT () {
+ //* DEBUG: */ DEBUG_LOG(__FUNCTION__, __LINE__, "currName=".EXT_GET_CURR_NAME());
+ return (isset($GLOBALS['ext_update_depends'][EXT_GET_CURR_NAME()]));
+}
+
+// Initializes the list of running updates
+function EXT_INIT_RUNNING_UPDATES () {
+ // Auto-init ext_running_updates
+ if (!isset($GLOBALS['ext_running_updates'])) {
+ $GLOBALS['ext_running_updates'] = array();
+ $GLOBALS['ext_register_running'] = array();
+ } // END - if
+}
+
+// Getter for EXT_UPDATE_DEPENDS flag
+function EXT_GET_UPDATE_DEPENDS () {
+ //* DEBUG: */ DEBUG_LOG(__FUNCTION__, __LINE__, "currName=".EXT_GET_CURR_NAME());
+ return $GLOBALS['ext_update_depends'][EXT_GET_CURR_NAME()];
+}
+
+// Getter for next iterator depency
+function EXT_GET_ITERATOR_UPDATE_DEPENDS () {
+ //* DEBUG: */ DEBUG_LOG(__FUNCTION__, __LINE__, "currName=".EXT_GET_CURR_NAME());
+ return ($GLOBALS['ext_update_depends'][EXT_GET_CURR_NAME()][EXT_GET_UPDATE_ITERATOR()]);
+}
+
+// Counter for extension update depencies
+function EXT_COUNT_UPDATE_DEPENDS () {
+ //* DEBUG: */ DEBUG_LOG(__FUNCTION__, __LINE__, "currName=".EXT_GET_CURR_NAME());
+ return count($GLOBALS['ext_update_depends'][EXT_GET_CURR_NAME()]);
+}
+
+// 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()]);