]> git.mxchange.org Git - mailer.git/commitdiff
New function introduced, fixes for extension installation:
authorRoland Häder <roland@mxchange.org>
Wed, 28 Nov 2012 16:32:34 +0000 (16:32 +0000)
committerRoland Häder <roland@mxchange.org>
Wed, 28 Nov 2012 16:32:34 +0000 (16:32 +0000)
- Function isTaskIdValid() introduced which checks whether the given task id is
  valid
- Fixed installation of extensions
- Wrapper functions for config table updates now don't check again (as the
  "inner" functions are already doing it)

inc/extensions-functions.php
inc/extensions/ext-beg.php
inc/libs/grade_functions.php
inc/mysql-connect.php

index 3a5696cd6b90a77e1472341537133274bb0162fb..59d0d5296cb2909d122b41b811fc7a8cbb784cd9 100644 (file)
@@ -200,9 +200,9 @@ function registerExtension ($ext_name, $taskId, $isDryRun = FALSE, $ignoreUpdate
 
        // When this extension is already in registration/update phase, all is fine
        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,taskId=' . $taskId . ',isDryRun=' . intval($isDryRun) . ',ignoreUpdates=' . intval($ignoreUpdates));
-               //* BUG: */ reportBug(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ',taskId=' . $taskId . ',isDryRun=' . intval($isDryRun) . ',ignoreUpdates=' . intval($ignoreUpdates) . ' - Please investigate!');
+               // Then abort here with 'true' because it is fine
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ' - already in registration/update phase, all fine,isDryRun=' . intval($isDryRun) . ',ignoreUpdates=' . intval($ignoreUpdates));
+               //* BUG: */ reportBug(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ',isDryRun=' . intval($isDryRun) . ',ignoreUpdates=' . intval($ignoreUpdates) . ' - Please investigate!');
                return TRUE;
        } // END - if
 
@@ -216,17 +216,17 @@ function registerExtension ($ext_name, $taskId, $isDryRun = FALSE, $ignoreUpdate
        } // END - if
 
        // Is the task id zero? Then we need to auto-fix it here
-       if (((is_null($taskId)) || ($taskId == '0')) && (!isInstallationPhase())) {
+       if ((!isTaskIdValid($taskId)) && (!isInstallationPhase())) {
                // Try to find the task
                $taskId = determineExtensionTaskId(getCurrentExtensionName());
 
                // Still zero and not in dry-run?
-               if (((is_null($taskId)) || ($taskId == '0')) && (!isExtensionDryRun())) {
+               if ((!isTaskIdValid($taskId)) && (!isExtensionDryRun())) {
                        // Now try to create a new task
                        $taskId = createNewExtensionTask(getCurrentExtensionName());
 
                        // Is it still zero?
-                       if ((is_null($taskId)) || ($taskId == '0')) {
+                       if (!isTaskIdValid($taskId)) {
                                // Then request a bug report
                                reportBug(__FUNCTION__, __LINE__, sprintf("%s: task_id is still zero after determineExtensionTaskId/createNewExtensionTask(%s)",
                                        __FUNCTION__,
@@ -356,12 +356,15 @@ function registerExtension ($ext_name, $taskId, $isDryRun = FALSE, $ignoreUpdate
                                initSqls();
                                setSqlsArray(getExtensionSqls());
 
-                               // 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();
 
+                               // Mark it as NOT installed
+                               $GLOBALS['ext_is_installed'][$currentName] = FALSE;
+
+                               // Run installation pre-installation filters
+                               runFilterChain('pre_extension_installed', array('dry_run' => isExtensionDryRun(), 'ext_installing' => TRUE, 'enable_codes' => FALSE));
+
                                // Register extension
                                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'insert=' . $currentName . '/' . getCurrentExtensionVersion() . ' - INSERT!');
                                if (isExtensionInstalledAndNewer('sql_patches', '0.0.6')) {
@@ -389,12 +392,16 @@ function registerExtension ($ext_name, $taskId, $isDryRun = FALSE, $ignoreUpdate
                                 * Use the insert id as extension id and "cache" all data for
                                 * this extension for early usage.
                                 */
-                               copyCurrentExtensionDataToCacheArray($ext_name, SQL_INSERTID());
+                               copyExtensionDataToCacheArray($currentName, SQL_INSERTID());
 
                                // Mark it as installed
                                $GLOBALS['ext_is_installed'][$currentName] = TRUE;
 
-                               // Remove cache file(s) if extension is active
+                               /*
+                                * Run filter chain after extension has been "installed" which
+                                * means that the extension has been registered in 'extensions'
+                                * table and marked as "installed".
+                                */
                                runFilterChain('post_extension_installed', array(
                                        'pool'     => 'extension',
                                        'ext_name' => $currentName,
@@ -1035,7 +1042,7 @@ function createNewExtensionTask ($ext_name) {
 
        // Not installed and do we have created a task for the admin?
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ',taskId[' . gettype($taskId) . ']=' . $taskId);
-       if (((is_null($taskId)) || ($taskId == '0')) && (!isExtensionInstalled($ext_name))) {
+       if ((!isTaskIdValid($taskId)) && (!isExtensionInstalled($ext_name))) {
                // Set default message if ext-foo is missing
                $message = '{%message,ADMIN_EXTENSION_TEXT_FILE_MISSING=' . $ext_name . '%}';
 
@@ -1073,7 +1080,7 @@ function createExtensionDeactivationTask ($ext_name) {
 
        // Not installed and do we have created a task for the admin?
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ',taskId[' . gettype($taskId) . ']=' . $taskId);
-       if (((is_null($taskId)) || ($taskId == '0')) && (isExtensionInstalled($ext_name))) {
+       if ((!isTaskIdValid($taskId)) && (isExtensionInstalled($ext_name))) {
                // Task not created so add it
                $taskId = createNewTask($subject, SQL_ESCAPE(loadTemplate('task_EXTENSION_deactivated', TRUE, $ext_name)), 'EXTENSION_DEACTIVATION');
        } // END - if
@@ -2092,32 +2099,20 @@ function addExtensionDropTableIndexSql ($tableName, $indexName) {
 
 // Add configuration entry if not found for actual extension
 function addConfigAddSql ($columnName, $columnSql) {
-       // Is the column there?
-       if (!ifSqlTableColumnExists('{?_MYSQL_PREFIX?}_config', $columnName)) {
-               // Not found, so add it
-               addExtensionAddTableColumnSql('config', $columnName, $columnSql);
-       } elseif (isDebugModeEnabled()) {
-               // Add debug line
-               logDebugMessage(__FUNCTION__, __LINE__, 'Configuration entry ' . $columnName . ' already created. columnSql=' . $columnSql);
-       }
+       // Call inner function
+       addExtensionAddTableColumnSql('config', $columnName, $columnSql);
 }
 
 // Drop configuration entry if found for actual extension
 function addConfigDropSql ($columnName) {
-       // Is the column there?
-       if (ifSqlTableColumnExists('{?_MYSQL_PREFIX?}_config', $columnName)) {
-               // Found, so add it
-               addExtensionDropTableColumnSql('config', $columnName);
-       } elseif (isDebugModeEnabled()) {
-               // Add debug line, reportBug() would cause some extenion updates fail
-               logDebugMessage(__FUNCTION__, __LINE__, 'Configuration entry ' . $columnName . ' not found.');
-       }
+       // Call inner function
+       addExtensionDropTableColumnSql('config', $columnName);
 }
 
 // Change configuration entry for actual extension
 function addConfigChangeSql ($oldColumnName, $newColumnName, $columnSql) {
        // Add the SQL statement
-       addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_config` CHANGE `' . $oldColumnName . '` `' . $newColumnName . '` ' . $columnSql);
+       addExtensionChangeTableColumnSql('config', $oldColumnName, $newColumnName, $columnSql);
 }
 
 /**
@@ -2254,15 +2249,28 @@ function isExtensionLibraryLoaded ($ext_name) {
 // 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';
+       $GLOBALS['cache_array']['extension']['ext_id'][$ext_name]         = $ext_id;
+       $GLOBALS['cache_array']['extension']['ext_name'][$ext_id]         = $ext_name;
+       $GLOBALS['cache_array']['extension']['ext_version'][$ext_name]    = getCurrentExtensionVersion();
+       $GLOBALS['cache_array']['extension']['ext_active'][$ext_name]     = getThisExtensionAlwaysActive();
+       $GLOBALS['cache_array']['extension']['ext_lang'][$ext_name]       = convertBooleanToYesNo(isExtensionLanguageFileReadable($ext_name));
+       $GLOBALS['cache_array']['extension']['ext_func'][$ext_name]       = convertBooleanToYesNo(isExtensionFunctionFileReadable($ext_name));
+       $GLOBALS['cache_array']['extension']['ext_menu'][$ext_name]       = convertBooleanToYesNo(ifModuleHasMenu($ext_name));
+       $GLOBALS['cache_array']['extension']['ext_css'][$ext_name]        = convertBooleanToYesNo(getExtensionHasCss());
+       $GLOBALS['cache_array']['extension']['ext_deprecated'][$ext_name] = 'N';
+}
+
+// Checks if given task id is valid
+function isTaskIdValid ($taskId) {
+       // Is there cache?
+       if (!isset($GLOBALS[__FUNCTION__][$taskId])) {
+               // Determine it
+               $GLOBALS[__FUNCTION__][$taskId] = ((!is_null($taskId)) && ($taskId > 0));
+       } // END - if
+
+       // Return "cached" value
+       /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'taskId[' . gettype($taskId) . ']=' . intval($taskId) . ',isValid=' . intval($GLOBALS[__FUNCTION__][$taskId]));
+       return $GLOBALS[__FUNCTION__][$taskId];
 }
 
 // [EOF]
index 46d92eb28ab726e29a132a5ffd368ee6d182855d..8d6f332cd685aec24edac9af0508b8103ffb8691 100644 (file)
@@ -204,14 +204,14 @@ INDEX (`userid`)",
                                break;
 
                        case '0.1.7': // SQL queries for v0.1.7
-                               addConfigAddSql('beg_ral_en_notify', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
-                               addConfigAddSql('beg_ral_di_notify', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
+                               addConfigAddSql('beg_rallye_enable_notify', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
+                               addConfigAddSql('beg_rallye_disable_notify', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
                                addConfigAddSql('beg_new_mem_notify', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
                                addConfigAddSql('beg_notify_bonus', 'FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000');
                                addConfigAddSql('beg_notify_wait', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 30');
                                addExtensionAddTableColumnSql('user_data', 'beg_ral_notify', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0');
-                               addExtensionAddTableColumnSql('user_data', 'beg_ral_en_notify', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0');
-                               addExtensionAddTableColumnSql('user_data', 'beg_ral_di_notify', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0');
+                               addExtensionAddTableColumnSql('user_data', 'beg_rallye_enable_notify', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0');
+                               addExtensionAddTableColumnSql('user_data', 'beg_rallye_disable_notify', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0');
 
                                // Update notes (these will be set as task text!)
                                setExtensionUpdateNotes("Die Mitglieder k&ouml;nnen nun optional automatisch &uuml;ber eine aktivierte und/oder deaktivierte Bettel-Rallye informiert werden. Beide Benachrichtigungen k&ouml;nnen Sie unter <strong>Einstellungen --&gt; Bettel-Link/-rallye</strong> seperat ein- und ausschalten! Zudem ist eine Sperre gegen eingeloggte Mitglieder eingebaut, die das Klicken auf den eigenen Bettel-Link etwas erschweren soll.");
index 9b8fc2b4c7b8641231d3224be6c07408ce0c3e7c..ed7bb7f30f60b360f59fbc15cdebdff30056e2ef 100644 (file)
@@ -72,8 +72,8 @@ ORDER BY
                        // Load all entries
                        while ($grade = SQL_FETCHARRAY($result)) {
                                // Add it to arrays
-                               $gradeKeys[] = $grade['grade_id'];
-                               $gradeValues[] = $grade['grade_name'];
+                               array_push($gradeKeys  , $grade['grade_id']);
+                               array_push($gradeValues, $grade['grade_name']);
                        } // END - while
                } // END - if
 
index f94fdb8b409ce12ff6d7ac1aa687947ab4eb2476..e25d40dfc7aeb7f31643bc116e777d2ae3ffb1fe 100644 (file)
@@ -61,7 +61,7 @@ foreach ( array(
                'extensions') as $lib) {
 
        // Add it
-       $__functions[] = $lib . '-functions';
+       array_push($__functions, $lib . '-functions');
 } // END - foreach
 
 // Load more function libraries or includes