]> git.mxchange.org Git - mailer.git/blobdiff - inc/functions.php
Possible fix
[mailer.git] / inc / functions.php
index 521a3fa7ba782f2ba231f30385f1186abcda4ba2..3ee5bdff81c5ef7e8ffa360d5047c56ca5987707 100644 (file)
@@ -77,7 +77,7 @@ function outputHtml ($htmlCode, $newLine = true) {
 
                                // The same as above... ^
                                outputRawCode($htmlCode);
-                               if ($newLine) print("\n");
+                               if ($newLine === true) print("\n");
                                break;
 
                        default:
@@ -2311,89 +2311,16 @@ function getCurrentTheme () {
        // The default theme is 'default'... ;-)
        $ret = 'default';
 
-       // Load default theme if not empty from configuration
-       if ((isConfigEntrySet('default_theme')) && (getConfig('default_theme') != '')) $ret = getConfig('default_theme');
-
-       if (!isSessionVariableSet('mxchange_theme')) {
-               // Set default theme
-               setTheme($ret);
-       } elseif ((isSessionVariableSet('mxchange_theme')) && (isExtensionInstalledAndNewer('sql_patches', '0.1.4'))) {
-               //die("<pre>".print_r($GLOBALS['cache_array']['themes'], true)."</pre>");
-               // Get theme from cookie
-               $ret = getSession('mxchange_theme');
-
-               // Is it valid?
-               if (getThemeId($ret) == '0') {
-                       // Fix it to default
-                       $ret = 'default';
-               } // END - if
-       } elseif ((!isInstalled()) && ((isInstalling()) || (getOutputMode() == true)) && ((isGetRequestElementSet('theme')) || (isPostRequestElementSet('theme')))) {
-               // Prepare FQFN for checking
-               $theme = sprintf("%stheme/%s/theme.php", getConfig('PATH'), getRequestElement('theme'));
-
-               // Installation mode active
-               if ((isGetRequestElementSet('theme')) && (isFileReadable($theme))) {
-                       // Set cookie from URL data
-                       setTheme(getRequestElement('theme'));
-               } elseif (isFileReadable(sprintf("%stheme/%s/theme.php", getConfig('PATH'), secureString(postRequestElement('theme'))))) {
-                       // Set cookie from posted data
-                       setTheme(secureString(postRequestElement('theme')));
-               }
-
-               // Set return value
-               $ret = getSession('mxchange_theme');
-       } else {
-               // Invalid design, reset cookie
-               setTheme($ret);
-       }
+       // Do we have ext-theme installed and active?
+       if (isExtensionActive('theme')) {
+               // Call inner method
+               $ret = getActualTheme();
+       } // END - if
 
        // Return theme value
        return $ret;
 }
 
-// Setter for theme in session
-function setTheme ($newTheme) {
-       setSession('mxchange_theme', $newTheme);
-}
-
-// Get id from theme
-// @TODO Try to move this to inc/libs/theme_functions.php
-function getThemeId ($name) {
-       // Is the extension 'theme' installed?
-       if (!isExtensionActive('theme')) {
-               // Then abort here
-               return 0;
-       } // END - if
-
-       // Default id
-       $id = '0';
-
-       // Is the cache entry there?
-       if (isset($GLOBALS['cache_array']['themes']['id'][$name])) {
-               // Get the version from cache
-               $id = $GLOBALS['cache_array']['themes']['id'][$name];
-
-               // Count up
-               incrementStatsEntry('cache_hits');
-       } elseif (isExtensionInstalledAndNewer('cache', '0.1.8')) {
-               // Check if current theme is already imported or not
-               $result = SQL_QUERY_ESC("SELECT `id` FROM `{?_MYSQL_PREFIX?}_themes` WHERE `theme_path`='%s' LIMIT 1",
-                       array($name), __FUNCTION__, __LINE__);
-
-               // Entry found?
-               if (SQL_NUMROWS($result) == 1) {
-                       // Fetch data
-                       list($id) = SQL_FETCHROW($result);
-               } // END - if
-
-               // Free result
-               SQL_FREERESULT($result);
-       }
-
-       // Return id
-       return $id;
-}
-
 // Generates an error code from given account status
 function generateErrorCodeFromUserStatus ($status='') {
        // If no status is provided, use the default, cached
@@ -2619,6 +2546,24 @@ function debug_get_printable_backtrace () {
        return $backtrace;
 }
 
+// A mail-able backtrace
+function debug_get_mailable_backtrace () {
+       // Init variable
+       $backtrace = '';
+
+       // Get and prepare backtrace for output
+       $backtraceArray = debug_backtrace();
+       foreach ($backtraceArray as $key => $trace) {
+               if (!isset($trace['file'])) $trace['file'] = __FUNCTION__;
+               if (!isset($trace['line'])) $trace['line'] = __LINE__;
+               if (!isset($trace['args'])) $trace['args'] = array();
+               $backtrace .= ($key+1) . '.:' . basename($trace['file']) . ':' . $trace['line'] . ', ' . $trace['function'] . '(' . count($trace['args']) . ")\n";
+       } // END - foreach
+
+       // Return the backtrace
+       return $backtrace;
+}
+
 // Output a debug backtrace to the user
 function debug_report_bug ($message = '') {
        // Is this already called?
@@ -2647,11 +2592,21 @@ function debug_report_bug ($message = '') {
        } // END - if
 
        // Add output
-       $debug .= "Please report this bug at <a title=\"Direct link to the bug-tracker\" href=\"http://bugs.mxchange.org\" rel=\"external\" target=\"_blank\">bugs.mxchange.org</a> and include the logfile from <strong>" . str_replace(getConfig('PATH'), '', getConfig('CACHE_PATH')) . "debug.log</strong> in your report (you can now attach files):<pre>";
+       $debug .= "Please report this bug at <a title=\"Direct link to the bug-tracker\" href=\"http://bugs.mxchange.org\" rel=\"external\" target=\"_blank\">http://bugs.mxchange.org</a> and include the logfile from <strong>" . str_replace(getConfig('PATH'), '', getConfig('CACHE_PATH')) . "debug.log</strong> in your report (you can now attach files):<pre>";
        $debug .= debug_get_printable_backtrace();
        $debug .= "</pre>\nRequest-URI: " . getRequestUri()."<br />\n";
        $debug .= "Thank you for finding bugs.";
 
+       // Prepare content
+       $content = array(
+               'message'     => trim($message),
+               'backtrace'   => trim(debug_get_mailable_backtrace()),
+               'request_uri' => trim(getRequestUri())
+       );
+
+       // Send email to webmaster
+       sendAdminNotification(getMessage('DEBUG_REPORT_BUG_SUBJECT'), 'admin_report_bug', $content);
+
        // And abort here
        // @TODO This cannot be rewritten to app_die(), try to find a solution for this.
        die($debug);
@@ -3382,7 +3337,7 @@ function generateExtensionInactiveNotInstalledMessage ($ext_name) {
 // Reads a directory recursively by default and searches for files not matching
 // an exclusion pattern. You can now keep the exclusion pattern empty for reading
 // a whole directory.
-function getArrayFromDirectory ($baseDir, $prefix, $fileIncludeDirs = false, $addBaseDir = true, $excludeArray = array(), $extension = '.php', $excludePattern = '@(\.|\.\.)$@', $recursive = true) {
+function getArrayFromDirectory ($baseDir, $prefix, $fileIncludeDirs = false, $addBaseDir = true, $excludeArray = array(), $extension = '.php', $excludePattern = '@(\.|\.\.)$@', $recursive = true, $suffix = '') {
        // Add default entries we should exclude
        $excludeArray[] = '.';
        $excludeArray[] = '..';
@@ -3434,6 +3389,10 @@ function getArrayFromDirectory ($baseDir, $prefix, $fileIncludeDirs = false, $ad
                        // Skip this file
                        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, "Invalid prefix in file " . $baseFile . ", prefix=" . $prefix);
                        continue;
+               } elseif ((!empty($suffix)) && (substr($baseFile, -(strlen($suffix . $extension)), (strlen($suffix . $extension))) != $suffix . $extension)) {
+                       // Skip wrong suffix as well
+                       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, "Invalid suffix in file " . $baseFile . ", suffix=" . $suffix);
+                       continue;
                } elseif (!isFileReadable($FQFN)) {
                        // Not readable so skip it
                        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, "File " . $FQFN . " is not readable!");
@@ -3476,7 +3435,7 @@ function getArrayFromDirectory ($baseDir, $prefix, $fileIncludeDirs = false, $ad
        closedir($dirPointer);
 
        // Sort array
-       asort($files);
+       sort($files);
 
        // Return array with include files
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, '- Left!');
@@ -3617,10 +3576,10 @@ function determinePageTitle () {
                $mode = '';
                if (getModule() == 'login') $mode = 'member';
                elseif (getModule() == 'index') $mode = 'guest';
-               if ((!empty($mode)) && (getConfig('enable_what_title') == 'Y')) $TITLE .= " ".trim(getConfig('title_middle'))." ".getModuleDescription($mode, getWhat());
+               if ((!empty($mode)) && (getConfig('enable_what_title') == 'Y')) $TITLE .= ' ' . trim(getConfig('title_middle')) . ' ' . getTitleFromMenu($mode, getWhat());
 
                // Add title decorations? (right)
-               if ((getConfig('enable_title_deco') == 'Y') && (getConfig('title_right') != '')) $TITLE .= " ".trim(getConfig('title_right'));
+               if ((getConfig('enable_title_deco') == 'Y') && (getConfig('title_right') != '')) $TITLE .= ' ' . trim(getConfig('title_right'));
 
                // Remember title in constant for the template
                $pageTitle = $TITLE;