]> git.mxchange.org Git - mailer.git/blobdiff - inc/extensions-functions.php
Always change column name
[mailer.git] / inc / extensions-functions.php
index d918bc5fd96efb9590aaed0e0a800ccab98075be..9aca9cf4141a34308c0e1864be12ac31ec312c21 100644 (file)
@@ -356,21 +356,21 @@ function registerExtension ($ext_name, $taskId, $dry_run = false, $logout = true
                                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'insert=' . getCurrentExtensionName() . '/' . getCurrentExtensionVersion() . ' - INSERT!');
                                if (isExtensionInstalledAndNewer('sql_patches', '0.0.6')) {
                                        // New way, with CSS
-                                       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . getCurrentExtensionName() . ',always_active=' . getExtensionAlwaysActive() . ', ext_ver=' . getCurrentExtensionVersion() . 'ext_css=' . getExtensionHasCss());
+                                       //* 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')",
                                                array(
                                                        getCurrentExtensionName(),
-                                                       getExtensionAlwaysActive(),
+                                                       getThisExtensionAlwaysActive(),
                                                        getCurrentExtensionVersion(),
                                                        getExtensionHasCss()
                                                ), __FUNCTION__, __LINE__);
                                } else {
                                        // Old way, no CSS
-                                       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . getCurrentExtensionName() . ',always_active=' . getExtensionAlwaysActive() . ', ext_ver=' . getCurrentExtensionVersion());
+                                       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . getCurrentExtensionName() . ',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(),
-                                                       getExtensionAlwaysActive(),
+                                                       getThisExtensionAlwaysActive(),
                                                        getCurrentExtensionVersion()
                                                ), __FUNCTION__, __LINE__);
                                }
@@ -1175,13 +1175,13 @@ function setExtensionAlwaysActive ($active) {
 }
 
 // Getter for EXT_ALWAYS_ACTIVE flag
-function getExtensionAlwaysActive () {
+function getThisExtensionAlwaysActive () {
        return $GLOBALS['ext_always_active'][getCurrentExtensionName()];
 }
 
 // Checks wether the current extension is always active
-function isExtensionAlwaysActive () {
-       return (getExtensionAlwaysActive() == 'Y');
+function isThisExtensionAlwaysActive () {
+       return (getThisExtensionAlwaysActive() == 'Y');
 }
 
 // Setter for EXT_VERSION flag
@@ -1741,13 +1741,28 @@ function isExtensionFunctionFileReadable ($ext_name) {
        return ($GLOBALS['cache_array']['extension']['ext_func'][$ext_name] == 'Y');
 }
 
+// Adds a CREATE TABLE statement if the requested table is not there
+function addCreateTableSql ($tableName, $sql) {
+       // Is the table not there?
+       if (!isSqlTableCreated($tableName)) {
+               // Is not found, so add it
+               addExtensionSql('CREATE TABLE `{?_MYSQL_PREFIX?}_' . $tableName . '` ' . $sql);
+       } else {
+               // Is already there, which should not happen
+               debug_report_bug(__FUNCTION__, __LINE__, 'The table ' . $tableName . ' is already created which should not happen.');
+       }
+}
+
 // Adds a DROP TABLE statement if the requested tabled is there
-function addDropTableSql ($table) {
+function addDropTableSql ($tableName) {
        // Is the table there?
-       if (isSqlTableCreated($table)) {
+       if (isSqlTableCreated($tableName)) {
                // Then add it, non-existing tables can be ignored because it will
                // happen with every newly installed extension.
-               addExtensionSql('DROP TABLE `{?_MYSQL_PREFIX?}_' . $table . '`');
+               addExtensionSql('DROP TABLE `{?_MYSQL_PREFIX?}_' . $tableName . '`');
+
+               // Mark it as gone
+               $GLOBALS['isSqlTableCreated'][$tableName] = false;
        } // END - if
 }
 
@@ -1883,8 +1898,39 @@ function addSponsorMenuSql ($action, $what, $title, $active, $sort) {
        }
 }
 
+// Add configuration entry if not found for actual extension
+function addConfigAddSql ($columnName, $columnSql) {
+       // Is the column there?
+       if (!isSqlTableColumnFound('{?_MYSQL_PREFIX?}_config', $columnName)) {
+               // Not found, so add it
+               addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `' . $columnName . '` ' . $columnSql);
+       } else {
+               // Add debug line
+               logDebugMessage(__FUNCTION__, __LINE__, 'Configuration entry ' . $columnName . ' already created. columnSql=' . $columnSql);
+       }
+}
+
+// Drop configuration entry if found for actual extension
+function addConfigDropSql ($columnName) {
+       // Is the column there?
+       if (isSqlTableColumnFound('{?_MYSQL_PREFIX?}_config', $columnName)) {
+               // Found, so add it
+               addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_config` DROP `' . $columnName . '`');
+       } else {
+               // Add debug line, debug_report_bug() would cause some extenion updates fail
+               logDebugMessage(__FUNCTION__, __LINE__, 'Configuration entry ' . $columnName . ' not found.');
+       }
+}
+
+// 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);
+}
+
 // Enables/disables productive mode for current extension (used only while
 // registration).
+// @TODO This should be rewrittten to allow, more development states, e.g. 'planing','alpha','beta','beta2','stable'
 function enableExtensionProductive ($isProductive = true) {
        // Log debug message
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, sprintf("ext_name=%s,isProductive=%d", getCurrentExtensionName(), intval($isProductive)));
@@ -1956,5 +2002,6 @@ function isExtensionLibraryLoaded ($ext_name) {
        // Is it there?
        return ((isset($GLOBALS['ext_loaded']['library'][$ext_name])) && ($GLOBALS['ext_loaded']['library'][$ext_name] === true));
 }
+
 // [EOF]
 ?>