]> git.mxchange.org Git - mailer.git/blobdiff - inc/extensions-functions.php
Moved all FILTER_FOO() filter functions to an own include directory:
[mailer.git] / inc / extensions-functions.php
index ed9ead0d9f8e0117ffcc188d579a595a97183c19..780ee2f8bc5c4130d8a412839da75c86b5c5d0ca 100644 (file)
@@ -142,6 +142,9 @@ function loadExtension ($ext_name, $ext_mode, $ext_ver = '0.0', $dry_run = false
                ));
        }
 
+       // Load extension's filter library if present
+       loadExtensionFilters($ext_name);
+
        // Extensions are not deprecated by default
        setExtensionDeprecated('N');
 
@@ -341,8 +344,8 @@ function registerExtension ($ext_name, $taskId, $dry_run = false, $logout = true
                if ($test === true) {
                        // "Dry-run-mode" activated?
                        if ((isExtensionDryRun() === false) && (!isExtensionOnRemovalList())) {
-                               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . getCurrentExtensionName());
                                // Init SQLs and transfer ext->generic
+                               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . getCurrentExtensionName());
                                initSqls();
                                setSqlsArray(getExtensionSqls());
 
@@ -352,8 +355,8 @@ function registerExtension ($ext_name, $taskId, $dry_run = false, $logout = true
                                // Register extension
                                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'insert=' . getCurrentExtensionName() . '/' . getCurrentExtensionVersion() . ' - INSERT!');
                                if (isExtensionInstalledAndNewer('sql_patches', '0.0.6')) {
-                                       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . getCurrentExtensionName() . ',always_active=' . getExtensionAlwaysActive() . ', ext_ver=' . getCurrentExtensionVersion() . 'ext_css=' . getExtensionHasCss());
                                        // New way, with CSS
+                                       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . getCurrentExtensionName() . ',always_active=' . getExtensionAlwaysActive() . ', 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(),
@@ -362,8 +365,8 @@ function registerExtension ($ext_name, $taskId, $dry_run = false, $logout = true
                                                        getExtensionHasCss()
                                                ), __FUNCTION__, __LINE__);
                                } else {
-                                       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . getCurrentExtensionName() . ',always_active=' . getExtensionAlwaysActive() . ', ext_ver=' . getCurrentExtensionVersion());
                                        // Old way, no CSS
+                                       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . getCurrentExtensionName() . ',always_active=' . getExtensionAlwaysActive() . ', ext_ver=' . getCurrentExtensionVersion());
                                        SQL_QUERY_ESC("INSERT INTO `{?_MYSQL_PREFIX?}_extensions` (`ext_name`, `ext_active`, `ext_version`) VALUES ('%s','%s','%s')",
                                                array(
                                                        getCurrentExtensionName(),
@@ -653,7 +656,9 @@ function getExtensionVersion ($ext_name, $force = false) {
 // 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
-       if ((!isAdmin()) || (empty($ext_name))) return false;
+       if ((!isAdmin()) || (empty($ext_name))) {
+               return false;
+       } // END - if
 
        // Set current SQL name
        setCurrentExtensionName($ext_name);
@@ -673,7 +678,7 @@ function updateExtension ($ext_name, $ext_ver, $dry_run = false) {
        initExtensionSqls();
 
        // Check if version is updated
-       //* DEBUG: */ debugOutput(getCurrentExtensionName().'/'.$ext_name.':'.getThisExtensionVersion().'/'.$ext_ver.'/'.intval(is_array($history)));
+       //* DEBUG: */ debugOutput(getCurrentExtensionName() . '/' . $ext_name . ':' . getThisExtensionVersion() . '/' . $ext_ver . '/' . intval(is_array($history)));
        if (((getThisExtensionVersion() != $ext_ver) || (isExtensionDryRun())) && (is_array($history))) {
                // Search for starting point
                $start = array_search($ext_ver, $history);
@@ -798,7 +803,7 @@ function addExtensionVerboseSqlTable ($title = '', $dashed = '', $switch = false
                        $OUT = loadTemplate('admin_extension_sql_table', true, $content);
                } else {
                        // No addional SQL commands to run
-                       $OUT = loadTemplate('admin_settings_saved', true, '{--ADMIN_NO_ADDITIONAL_SQLS--}');
+                       $OUT = displayMessage('{--ADMIN_NO_ADDITIONAL_SQLS--}', true);
                }
        } // END - if
 
@@ -1006,16 +1011,16 @@ function createNewExtensionTask ($ext_name) {
                $message = getMaskedMessage('ADMIN_EXTENSION_TEXT_FILE_MISSING', $ext_name);
 
                // Template file
-               $tpl = sprintf("%stemplates/%s/html/ext/ext_%s.tpl",
+               $FQFN = sprintf("%stemplates/%s/html/ext/ext_%s.tpl",
                        getPath(),
                        getLanguage(),
                        $ext_name
                );
 
                // Load text for task if found
-               if (isFileReadable($tpl)) {
-                       // Load extension's own text template (HTML!)
-                       $message = loadTemplate('ext_' . $ext_name, true);
+               if (isFileReadable($FQFN)) {
+                       // Load extension's description template (but do not compile the code)
+                       $message = loadTemplate('ext_' . $ext_name, true, array(), false);
                } else {
                        // Write this in debug.log as well
                        logDebugMessage(__FUNCTION__, __LINE__, $message);
@@ -1116,7 +1121,7 @@ function addExtensionNotes ($ext_ver) {
                                'notes' => '{--INITIAL_RELEASE--}'
                        );
                } else {
-                       // No update notes found!
+                       // No update notes found
                        $content = array(
                                'ver'   => $ext_ver,
                                'notes' => '{--NO_UPDATE_NOTES--}'
@@ -1288,7 +1293,7 @@ function isExtensionUpdateRunning ($ext_name) {
                foreach ($GLOBALS['ext_running_updates'] as $ext1=>$depends) {
                        // Is it found?
                        if (($ext1 == $ext_name) || ($isRunning === true)) {
-                               // Found!
+                               // found
                                logDebugMessage(__FUNCTION__, __LINE__, 'ext1=' . $ext1 . ',ext_name=' . $ext_name . ',isRunning=' . intval($isRunning));
                                $isRunning = true;
                                break;
@@ -1736,6 +1741,16 @@ function isExtensionFunctionFileReadable ($ext_name) {
        return ($GLOBALS['cache_array']['extension']['ext_func'][$ext_name] == 'Y');
 }
 
+// Adds a DROP TABLE statement if the requested tabled is there
+function addDropTableSql ($table) {
+       // Is the table there?
+       if (isSqlTableCreated($table)) {
+               // Then add it, non-existing tables can be ignored because it will
+               // happen with every newly installed extension.
+               addExtensionSql('DROP TABLE `{?_MYSQL_PREFIX?}_' . $table . '`');
+       } // END - if
+}
+
 // Adds an admin menu to the SQL queue of the menu entry is not found
 function addAdminMenuSql ($action, $what, $title, $descr, $sort) {
        // Now check if this menu is there