]> git.mxchange.org Git - mailer.git/blobdiff - inc/functions.php
Refback will be payed now (user cannot setup currently)
[mailer.git] / inc / functions.php
index 3cdcf706954d99018397dba1f6d6ee480f3508cd..3dcee7a5cce4ea43680c3ae67ac6ee7f27ff18a3 100644 (file)
@@ -134,7 +134,7 @@ function OUTPUT_HTML($HTML, $NEW_LINE = true) {
                ob_end_clean();
 
                // Extension "rewrite" installed?
-               if ((EXT_IS_ACTIVE("rewrite", true)) && (function_exists('REWRITE_LINKS')) && ($CSS != "1") && ($CSS != "-1")) {
+               if ((EXT_IS_ACTIVE("rewrite")) && (function_exists('REWRITE_LINKS')) && ($CSS != "1") && ($CSS != "-1")) {
                        $OUTPUT = REWRITE_LINKS($OUTPUT);
                } // END - if
 
@@ -157,7 +157,7 @@ function OUTPUT_HTML($HTML, $NEW_LINE = true) {
                OUTPUT_RAW($OUTPUT);
        } elseif ((OUTPUT_MODE == "render") && (!empty($OUTPUT))) {
                // Rewrite links when rewrite extension is active
-               if ((EXT_IS_ACTIVE("rewrite", true)) && (function_exists('REWRITE_LINKS')) && ($CSS != "1") && ($CSS != "-1")) {
+               if ((EXT_IS_ACTIVE("rewrite")) && (function_exists('REWRITE_LINKS')) && ($CSS != "1") && ($CSS != "-1")) {
                        $OUTPUT = REWRITE_LINKS($OUTPUT);
                } // END - if
 
@@ -420,7 +420,10 @@ To      : ".$TO."
 Subject : ".$SUBJECT."
 Message : ".$MSG."
 </pre>\n";
-       } elseif (($HTML == "Y") && (EXT_IS_ACTIVE("html_mail", true))) {
+
+               // Log the mail away
+               if (defined('DEBUG_MAIL')) DEBUG_LOG(__FUNCTION__.":to={$TO},subject={$SUBJECT},msg={$MSG}");
+       } elseif (($HTML == "Y") && (EXT_IS_ACTIVE("html_mail"))) {
                // Send mail as HTML away
                SEND_HTML_EMAIL($TO, $SUBJECT, $MSG, $FROM);
        } elseif (!empty($TO)) {
@@ -704,13 +707,13 @@ function LOAD_EMAIL_TEMPLATE($template, $content=array(), $UID="0") {
        $REMOTE_ADDR     = getenv('REMOTE_ADDR');
        $HTTP_USER_AGENT = getenv('HTTP_USER_AGENT');
 
+       // Default admin
        $ADMIN = MAIN_TITLE;
-       if (isSessionVariableSet('admin_login')) {
+
+       // Is the admin logged in?
+       if (IS_ADMIN()) {
                // Load Admin data
-               $result = SQL_QUERY_ESC("SELECT email FROM "._MYSQL_PREFIX."_admins WHERE login='%s' LIMIT 1",
-                       array(get_session('admin_login')), __FILE__, __LINE__);
-               list($ADMIN) = SQL_FETCHROW($result);
-               SQL_FREERESULT($result);
+               $ADMIN = GET_ADMIN_EMAIL(get_session('admin_login'));
        } // END - if
 
        // Neutral email address is default
@@ -744,7 +747,7 @@ function LOAD_EMAIL_TEMPLATE($template, $content=array(), $UID="0") {
                                array(bigintval($UID)), __FILE__, __LINE__);
                } else {
                        //* DEBUG: */ echo __FUNCTION__.":NO-NICK!<br />\n";
-                       // Load normal data
+                       /// Load normal data
                        $result = SQL_QUERY_ESC("SELECT surname, family, gender, email FROM "._MYSQL_PREFIX."_user_data WHERE userid=%s LIMIT 1",
                                array(bigintval($UID)), __FILE__, __LINE__);
                }
@@ -811,7 +814,7 @@ function LOAD_EMAIL_TEMPLATE($template, $content=array(), $UID="0") {
 
                // Run code
                $tmpl_file = "\$newContent=html_entity_decode(\"".COMPILE_CODE($tmpl_file)."\");";
-               eval($tmpl_file);
+               @eval($tmpl_file);
        } elseif (!empty($template)) {
                // Template file not found!
                $newContent = TEMPLATE_404.": ".$template."<br />
@@ -831,7 +834,8 @@ function LOAD_EMAIL_TEMPLATE($template, $content=array(), $UID="0") {
        // Is there some content?
        if (empty($newContent)) {
                // Compiling failed
-               $newContent = "Compiler error for template {$template}!";
+               $newContent = "Compiler error for template {$template}!\nUncompiled content:\n".$tmpl_file;
+               if (function_exists('error_get_last')) $newContent .= "\n--------------------------------------\nDebug:\n".print_r(error_get_last(), true)."--------------------------------------\nPlease don't alter these informations!\nThanx.";
        } // END - if
 
        // Return compiled content
@@ -897,6 +901,15 @@ function LOAD_URL($URL, $addUrlData=true) {
 //
 function COMPILE_CODE($code, $simple = false, $constants = true, $full = true) {
        global $SEC_CHARS, $URL_CHARS;
+       // Is the code a string?
+       if (!is_string($code)) {
+               // Abort here with backtrace
+               DEBUG_LOG(__FUNCTION__.": code is not string!");
+               print "<pre>";
+               debug_print_backtrace();
+               die("</pre>");
+       } // END - if
+
        $ARRAY = $SEC_CHARS;
 
        // Select smaller set of chars to replace when we e.g. want to compile URLs
@@ -911,13 +924,13 @@ function COMPILE_CODE($code, $simple = false, $constants = true, $full = true) {
                // BEFORE 0.2.1 : Not used
                // WITH 0.2.1+  : Data constants
                $code = str_replace('{!','".', str_replace("!}", '."', $code));
-       }
+       } // END - if
 
        // Compile QUOT and other non-HTML codes
        foreach ($ARRAY['to'] as $k => $to) {
                // Do the reversed thing as in inc/libs/security_functions.php
                $code = str_replace($to, $ARRAY['from'][$k], $code);
-       }
+       } // END - foreach
 
        // But shall I keep simple quotes for later use?
        if ($simple) $code = str_replace("\'", '{QUOT}', $code);
@@ -930,22 +943,43 @@ function COMPILE_CODE($code, $simple = false, $constants = true, $full = true) {
                // Replace all matches
                $matchesFound = array();
                foreach ($matches[0] as $key => $match) {
-                       // Avoid replacing matches multiple times
-                       if (!isset($matchesFound[$match])) {
-                               // Not yet replaced!
-                               $code = str_replace($match, "\".".$match.".\"", $code);
-                               $matchesFound[$match] = 1;
-                       } // END - if
+                       // Fuzzy look has failed by default
+                       $fuzzyFound = false;
+
+                       // Fuzzy look on match if already found
+                       foreach ($matchesFound as $found => $set) {
+                               // Get test part
+                               $test = substr($found, 0, strlen($match));
+
+                               // Does this entry exist?
+                               //* DEBUG: */ echo __FUNCTION__.":found={$found},match={$match},set={$set}<br />\n";
+                               if ($test == $match) {
+                                       // Match found!
+                                       //* DEBUG: */ echo __FUNCTION__.":fuzzyFound!<br />\n";
+                                       $fuzzyFound = true;
+                                       break;
+                               } // END - if
+                       } // END - foreach
+
+                       // Skip this entry?
+                       if ($fuzzyFound) continue;
 
                        // Take all string elements
-                       if ((is_string($matches[4][$key])) && (!isset($matchesFound[$key."_".$matches[4][$key]]))) {
+                       if ((is_string($matches[4][$key])) && (!isset($matchesFound[$match])) && (!isset($matchesFound[$key."_".$matches[4][$key]]))) {
                                // Replace it in the code
+                               //* DEBUG: */ echo __FUNCTION__.":key={$key},match={$match}<br />\n";
                                $newMatch = str_replace("[".$matches[4][$key]."]", "['".$matches[4][$key]."']", $match);
-                               $code = str_replace($match, $newMatch, $code);
+                               $code = str_replace($match, "\".".$newMatch.".\"", $code);
                                $matchesFound[$key."_".$matches[4][$key]] = 1;
-                       } // END - if
-               }
-       }
+                               $matchesFound[$match] = 1;
+                       } elseif (!isset($matchesFound[$match])) {
+                               // Not yet replaced!
+                               //* DEBUG: */ echo __FUNCTION__.":match={$match}<br />\n";
+                               $code = str_replace($match, "\".".$match.".\"", $code);
+                               $matchesFound[$match] = 1;
+                       }
+               } // END - foreach
+       } // END - if
 
        // Return compiled code
        return $code;
@@ -1886,7 +1920,7 @@ function CREATE_EMAIL_LINK($email, $table="admins") {
        if ((EXT_IS_ACTIVE("admins")) && ($table == "admins")) {
                // Create email link for contacting admin in guest area
                $EMAIL = ADMINS_CREATE_EMAIL_LINK($email);
-       } elseif ((EXT_IS_ACTIVE("user", true)) && (GET_EXT_VERSION("user") >= "0.3.3") && ($table == "user_data")) {
+       } elseif ((EXT_IS_ACTIVE("user")) && (GET_EXT_VERSION("user") >= "0.3.3") && ($table == "user_data")) {
                // Create email link for contacting a member within admin area (or later in other areas, too?)
                $EMAIL = USER_CREATE_EMAIL_LINK($email);
        } elseif ((EXT_IS_ACTIVE("sponsor")) && ($table == "sponsor_data")) {
@@ -1905,7 +1939,7 @@ function generateHash ($plainText, $salt = "") {
        global $_CONFIG, $_SERVER;
 
        // Is the required extension "sql_patches" there and a salt is not given?
-       if (((EXT_VERSION_IS_OLDER("sql_patches", "0.3.6")) || (GET_EXT_VERSION("sql_patches") == "")) && (empty($salt))) {
+       if (((EXT_VERSION_IS_OLDER("sql_patches", "0.3.6")) || (!EXT_IS_ACTIVE("sql_patches"))) && (empty($salt))) {
                // Extension sql_patches is missing/outdated so we return the plain text
                return $plainText;
        } // END - if
@@ -1919,7 +1953,7 @@ function generateHash ($plainText, $salt = "") {
        } // END - if
 
        // When the salt is empty build a new one, else use the first x configured characters as the salt
-       if ($salt == "") {
+       if (empty($salt)) {
                // Build server string
                $server = $_SERVER['PHP_SELF'].":".getenv('HTTP_USER_AGENT').":".getenv('SERVER_SOFTWARE').":".getenv('REMOTE_ADDR').":".":".filemtime(PATH."inc/databases.php");
 
@@ -2311,7 +2345,7 @@ function GET_DIR_AS_ARRAY ($baseDir, $prefix) {
 
                // Is this a valid reset file?
                //* DEBUG: */ echo __FUNCTION__.":baseDir={$baseDir},prefix={$prefix},baseFile={$baseFile}<br />\n";
-               if ((is_file($file)) && (is_readable($file)) && (substr($baseFile, 0, strlen($prefix)) == $prefix) && (substr($baseFile, -4, 4) == ".php")) {
+               if ((FILE_READABLE($file)) && (substr($baseFile, 0, strlen($prefix)) == $prefix) && (substr($baseFile, -4, 4) == ".php")) {
                        // Remove both for extension name
                        $extName = substr($baseFile, strlen($prefix), -4);
 
@@ -2507,8 +2541,17 @@ function REBUILD_CACHE ($cache, $inc="") {
 
                        // Include file given?
                        if (!empty($inc)) {
-                               // And rebuild it from scratch
-                               require_once(PATH."inc/loader/load_cache-".$inc.".php");
+                               // Construct FQFN
+                               $fqfn = sprintf("%sinc/loader/load_cache-%s.php", PATH, $inc);
+
+                               // Is the include there?
+                               if (FILE_READABLE($fqfn)) {
+                                       // And rebuild it from scratch
+                                       require_once($fqfn);
+                               } else {
+                                       // Include not found!
+                                       DEBUG_LOG(__FUNCTION__.":Include {$inc} not found. cache={$cache}");
+                               }
                        } // END - if
                } // END - if
        } // END - if