]> git.mxchange.org Git - mailer.git/blobdiff - inc/functions.php
Typo fixed
[mailer.git] / inc / functions.php
index cb7e4c1536d2528fafaada603fbc3b0723db18d1..049a0c58178fb5061742363a671ba4b3a9ae1c54 100644 (file)
@@ -51,16 +51,17 @@ function IS_INC_WRITEABLE($inc) {
        $fp = @fopen($fqfn, 'a');
        if ($inc == "dummy") {
                // Remove dummy file
-               @fclose($fp);
-               return @unlink($fqfn);
+               fclose($fp);
+               return unlink($fqfn);
        } else {
                // Close all other files
-               return @fclose($fp);
+               return fclose($fp);
        }
 }
 
 // Open a table (you may want to add some header stuff here)
-function OPEN_TABLE($PERCENT = "", $CLASS = "", $ALIGN="left", $VALIGN="", $td_only=false) {
+// @DEPRECATED
+function OPEN_TABLE ($PERCENT = "", $CLASS = "", $ALIGN="left", $VALIGN="", $td_only=false) {
        global $table_cnt;
 
        // Count tables so we can generate CSS classes for every table... :-)
@@ -88,14 +89,15 @@ function OPEN_TABLE($PERCENT = "", $CLASS = "", $ALIGN="left", $VALIGN="", $td_o
 }
 
 // Close a table (you may want to add some footer stuff here)
-function CLOSE_TABLE($ADD="") {
+// @DEPRECATED
+function CLOSE_TABLE( $ADD="") {
        OUTPUT_HTML("  </TD>\n</TR>");
        if (!empty($ADD)) OUTPUT_HTML($ADD);
        OUTPUT_HTML("</TABLE>");
 }
 
 // Output HTML code directly or "render" it. You addionally switch the new-line character off
-function OUTPUT_HTML($HTML, $NEW_LINE = true) {
+function OUTPUT_HTML ($HTML, $NEW_LINE = true) {
        // Some global variables
        global $OUTPUT, $footer, $CSS;
 
@@ -137,6 +139,18 @@ function OUTPUT_HTML($HTML, $NEW_LINE = true) {
                        break;
                }
        } elseif ((_OB_CACHING == "on") && ($footer == 1)) {
+               // Headers already sent?
+               if (headers_sent()) {
+                       // Log this error
+                       DEBUG_LOG(__FUNCTION__, __LINE__, "Headers already sent! We need debug backtrace here.");
+
+                       // Output debug trace
+                       print("<stron>Headers are already sent!</strong><br />\n");
+                       print("Please report this error at <a href=\"http://bugs.mxchange.org\" rel=\"external\" target=\"_blank\">bugs.mxchange.org</a>:<pre>");
+                       debug_print_backtrace();
+                       die("</pre>Thank you for your help finding bugs.");
+               } // END - if
+
                // Output cached HTML code
                $OUTPUT = ob_get_contents();
 
@@ -233,11 +247,7 @@ function LOAD_TEMPLATE($template, $return=false, $content=array()) {
        $template = strtolower($template);
 
        // Count the template load
-       if (getConfig('num_templates') == null) {
-               $_CONFIG['num_templates'] = 1;
-       } else {
-               $_CONFIG['num_templates']++;
-       }
+       incrementConfigEntry('num_templates');
 
        // Prepare IP number and User Agent
        $REMOTE_ADDR     = GET_REMOTE_ADDR();
@@ -339,10 +349,10 @@ function LOAD_TEMPLATE($template, $return=false, $content=array()) {
        // Now does the final template exists?
        if (FILE_READABLE($file)) {
                // The local file does exists so we load it. :)
-               $tmpl_file = implode("", file($file));
+               $tmpl_file = READ_FILE($file);
 
                // Replace ' to our own chars to preventing them being quoted
-               while (strpos($tmpl_file, "\'") !== false) { $tmpl_file = str_replace("\'", '{QUOT}', $tmpl_file); }
+               while (strpos($tmpl_file, "'") !== false) { $tmpl_file = str_replace("'", '{QUOT}', $tmpl_file); }
 
                // Do we have to compile the code?
                $ret = "";
@@ -458,15 +468,12 @@ function SEND_EMAIL($TO, $SUBJECT, $MSG, $HTML = "N", $FROM = "") {
        if (empty($HTML)) $HTML = "N";
        if (isBooleanConstantAndTrue('DEBUG_MODE')) {
                // In debug mode we want to display the mail instead of sending it away so we can debug this part
-               echo "<pre>
+               print("<pre>
 ".htmlentities(trim($FROM))."
 To      : ".$TO."
 Subject : ".$SUBJECT."
 Message : ".$MSG."
-</pre>\n";
-
-               // Log the mail away
-               if (defined('DEBUG_MAIL')) DEBUG_LOG(__FUNCTION__, __LINE__, "to={$TO},subject={$SUBJECT},msg={$MSG}");
+</pre>\n");
        } elseif (($HTML == "Y") && (EXT_IS_ACTIVE("html_mail"))) {
                // Send mail as HTML away
                SEND_HTML_EMAIL($TO, $SUBJECT, $MSG, $FROM);
@@ -533,8 +540,8 @@ function SEND_RAW_EMAIL ($to, $subject, $msg, $from) {
 //
 
 // Generate a password in a specified length or use default password length
-function GEN_PASS($LEN = 0) {
-       global $_CONFIG;
+function GEN_PASS ($LEN = 0) {
+       // Auto-fix invalid length of zero
        if ($LEN == 0) $LEN = getConfig('pass_len');
 
        // Initialize array with all allowed chars
@@ -643,7 +650,7 @@ function DEREFERER ($URL) {
        // Don't de-refer our own links!
        if (substr($URL, 0, strlen(URL)) != URL) {
                // De-refer this link
-               $URL = URL."/modules.php?module=loader&amp;url=".urlencode(base64_encode(gzcompress($URL)));
+               $URL = "modules.php?module=loader&amp;url=".urlencode(base64_encode(gzcompress($URL)));
        } // END - if
 
        // Return link
@@ -750,18 +757,16 @@ function GET_LANGUAGE() {
        return $ret;
 }
 //
-function SET_LANGUAGE($lang) {
-       global $_CONFIG;
-
+function SET_LANGUAGE ($lang) {
        // Accept only first 2 chars!
        $lang = substr(SQL_ESCAPE(strip_tags($lang)), 0, 2);
 
        // Set cookie
-       set_session("mx_lang", $lang);
+       set_session('mx_lang', $lang);
 }
 //
 function LOAD_EMAIL_TEMPLATE($template, $content=array(), $UID="0") {
-       global $DATA, $_CONFIG, $REPLACER;
+       global $DATA, $REPLACER, $_CONFIG;
 
        // Make sure all template names are lowercase!
        $template = strtolower($template);
@@ -878,7 +883,7 @@ function LOAD_EMAIL_TEMPLATE($template, $content=array(), $UID="0") {
        $newContent = "";
        if (FILE_READABLE($file)) {
                // The local file does exists so we load it. :)
-               $tmpl_file = implode("", file($file));
+               $tmpl_file = READ_FILE($file);
                $tmpl_file = addslashes($tmpl_file);
 
                // Run code
@@ -926,7 +931,7 @@ function MAKE_TIME($H, $M, $S, $stamp) {
 }
 //
 function LOAD_URL($URL, $addUrlData=true) {
-       global $CSS, $_CONFIG, $footer;
+       global $CSS, $footer;
 
        // Compile out URI codes
        $URL = COMPILE_CODE($URL);
@@ -934,10 +939,15 @@ function LOAD_URL($URL, $addUrlData=true) {
        // Check if http(s):// is there
        if ((substr($URL, 0, 7) != "http://") && (substr($URL, 0, 8) != "https://")) {
                // Make all URLs full-qualified
-               $URL = URL."/".$URL;
+               $URL = "".$URL;
        }
 
        // Get output buffer
+       /*
+       print "<pre>";
+       debug_print_backtrace();
+       die("</pre>");
+       */
        $OUTPUT = ob_get_contents();
 
        // Clear it only if there is content
@@ -949,7 +959,7 @@ function LOAD_URL($URL, $addUrlData=true) {
        if (((!defined('__COOKIES')) || (!__COOKIES)) && ($addUrlData)) $URL = ADD_URL_DATA($URL);
 
        // Probe for bot from search engine
-       if ((eregi("spider", GET_USER_AGENT())) || (eregi("bot", GET_USER_AGENT())) || (eregi("spider", GET_USER_AGENT()))) {
+       if ((eregi("spider", GET_USER_AGENT())) || (eregi("bot", GET_USER_AGENT()))) {
                // Search engine bot detected so let's rewrite many chars for the link
                $URL = htmlentities(strip_tags($URL), ENT_QUOTES);
 
@@ -1003,7 +1013,7 @@ function COMPILE_CODE($code, $simple = false, $constants = true, $full = true) {
        } // END - foreach
 
        // But shall I keep simple quotes for later use?
-       if ($simple) $code = str_replace("\'", '{QUOT}', $code);
+       if ($simple) $code = str_replace("'", '{QUOT}', $code);
 
        // Find $content[bla][blub] entries
        @preg_match_all('/\$(content|DATA)((\[([a-zA-Z0-9-_]+)\])*)/', $code, $matches);
@@ -1108,7 +1118,7 @@ function array_pk_sort(&$array, $a_sort, $primary_key = 0, $order = -1, $nums =
 }
 //
 function ADD_SELECTION($type, $DEFAULT, $prefix="", $id="0") {
-       global $MONTH_DESCR, $_CONFIG;
+       global $MONTH_DESCR;
        $OUT = "";
 
        if ($type == "yn") {
@@ -1236,8 +1246,6 @@ function TRANSLATE_YESNO($yn)
 // Optional   : $DATA
 //
 function GEN_RANDOM_CODE($length, $code, $uid, $DATA="") {
-       global $_CONFIG;
-
        // Fix missing _MAX constant
        if (!defined('_MAX')) define('_MAX', 15235);
 
@@ -1257,7 +1265,6 @@ function GEN_RANDOM_CODE($length, $code, $uid, $DATA="") {
        // Add more additional data
        if (isSessionVariableSet('u_hash'))                     $data .= ":".get_session('u_hash');
        if (isset($GLOBALS['userid']))                          $data .= ":".$GLOBALS['userid'];
-       if (isSessionVariableSet('lifetime'))           $data .= ":".get_session('lifetime');
        if (isSessionVariableSet('mxchange_theme'))     $data .= ":".get_session('mxchange_theme');
        if (isSessionVariableSet('mx_lang'))            $data .= ":".GET_LANGUAGE();
        if (isset($GLOBALS['refid']))                           $data .= ":".$GLOBALS['refid'];
@@ -1312,8 +1319,6 @@ function bigintval($num, $castValue = true) {
 }
 // Insert the code in $img_code into jpeg or PNG image
 function GENERATE_IMAGE($img_code, $header=true) {
-       global $_CONFIG;
-
        if ((strlen($img_code) > 6) || (empty($img_code)) || (getConfig('code_length') == 0)) {
                // Stop execution of function here because of over-sized code length
                return;
@@ -1363,8 +1368,6 @@ function GENERATE_IMAGE($img_code, $header=true) {
 }
 // Create selection box or array of splitted timestamp
 function CREATE_TIME_SELECTIONS ($timestamp, $prefix="", $display="", $align="center", $return_array=false) {
-       global $_CONFIG;
-
        // Calculate 2-seconds timestamp
        $stamp = round($timestamp);
        //* DEBUG: */ print("*".$stamp."/".$timestamp."*<br />");
@@ -1556,8 +1559,8 @@ function CREATE_TIME_SELECTIONS ($timestamp, $prefix="", $display="", $align="ce
        return $OUT;
 }
 //
-function CREATE_TIMESTAMP_FROM_SELECTIONS($prefix, $POST) {
-       global $_CONFIG;
+function CREATE_TIMESTAMP_FROM_SELECTIONS ($prefix, $POST) {
+       // Initial return value
        $ret = 0;
 
        // Do we have a leap year?
@@ -1599,11 +1602,11 @@ function SEND_ADMIN_EMAILS_PRO($subj, $template, $content, $UID) {
 
        // Check which admin shall receive this mail
        $result = SQL_QUERY_ESC("SELECT DISTINCT admin_id FROM "._MYSQL_PREFIX."_admins_mails WHERE mail_template='%s' ORDER BY admin_id",
-        array($template), __FILE__, __LINE__);
+               array($template), __FILE__, __LINE__);
        if (SQL_NUMROWS($result) == 0) {
                // Create new entry (to all admins)
-               $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_admins_mails (admin_id, mail_template) VALUES (0, '%s')",
-                array($template), __FILE__, __LINE__);
+               SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_admins_mails (admin_id, mail_template) VALUES (0, '%s')",
+                       array($template), __FILE__, __LINE__);
        } else {
                // Load admin IDs...
                $aids = array();
@@ -1817,8 +1820,6 @@ function POST_URL ($script, $postData) {
 
 // Sends a raw request to another host
 function SEND_RAW_REQUEST ($host, $request) {
-       global $_CONFIG;
-
        // Initialize array
        $response = array("", "", "");
 
@@ -2028,7 +2029,7 @@ function CREATE_EMAIL_LINK ($email, $table = "admins") {
 }
 // Generate a hash for extra-security for all passwords
 function generateHash ($plainText, $salt = "") {
-       global $_CONFIG, $_SERVER;
+       global $_SERVER;
 
        // Is the required extension "sql_patches" there and a salt is not given?
        if (((EXT_VERSION_IS_OLDER("sql_patches", "0.3.6")) || (!EXT_IS_ACTIVE("sql_patches"))) && (empty($salt))) {
@@ -2080,8 +2081,6 @@ function generateHash ($plainText, $salt = "") {
 }
 //
 function scrambleString($str) {
-       global $_CONFIG;
-
        // Init
        $scrambled = "";
 
@@ -2113,7 +2112,6 @@ function scrambleString($str) {
 }
 //
 function descrambleString($str) {
-       global $_CONFIG;
        // Scramble only 40 chars long strings
        if (strlen($str) != 40) return $str;
 
@@ -2161,8 +2159,8 @@ function genScrambleString($len) {
 }
 // Append data like session ID or referal ID to the given URL which would
 // normally be stored in cookies
-function ADD_URL_DATA($URL) {
-       global $_CONFIG;
+function ADD_URL_DATA ($URL) {
+       // Init add
        $ADD = "";
 
        // Determine URL binder
@@ -2197,8 +2195,6 @@ function ADD_URL_DATA($URL) {
 }
 // Generate an PGP-like encrypted hash of given hash for e.g. cookies
 function generatePassString($passHash) {
-       global $_CONFIG;
-
        // Return vanilla password hash
        $ret = $passHash;
 
@@ -2266,8 +2262,6 @@ function mxchange_die ($msg) {
 
 // Display parsing time and number of SQL queries in footer
 function DISPLAY_PARSING_TIME_FOOTER() {
-       global $_CONFIG;
-
        // Is the timer started?
        if (!isset($GLOBALS['startTime'])) {
                // Abort here
@@ -2384,6 +2378,7 @@ function get_session ($var) {
        // Return the value
        return $value;
 }
+
 // Send notification to admin
 function SEND_ADMIN_NOTIFICATION($subject, $templateName, $content=array(), $uid="0") {
        if (GET_EXT_VERSION("admins") >= "0.4.1") {
@@ -2395,11 +2390,16 @@ function SEND_ADMIN_NOTIFICATION($subject, $templateName, $content=array(), $uid
                SEND_ADMIN_EMAILS($subject, $msg);
        }
 }
+
 // Destroy user session
 function destroy_user_session () {
+       // Reset userid
+       $GLOBALS['userid'] = 0;
+
        // Remove all user data from session
-       return ((set_session("userid", "")) && (set_session("u_hash", "")) && (set_session("lifetime", "")));
+       return ((set_session('userid', "")) && (set_session('u_hash', "")));
 }
+
 // Merges an array together but only if both are arrays
 function merge_array ($array1, $array2) {
        // Are both an array?
@@ -2416,6 +2416,7 @@ function merge_array ($array1, $array2) {
        debug_print_backtrace();
        die("</pre>");
 }
+
 // Debug message logger
 function DEBUG_LOG ($file, $line, $message, $force=true) {
        // Is debug mode enabled?
@@ -2426,6 +2427,7 @@ function DEBUG_LOG ($file, $line, $message, $force=true) {
                fclose($fp);
        } // END - if
 }
+
 // Reads a directory with PHP files in and gets only files back
 function GET_DIR_AS_ARRAY ($baseDir, $prefix) {
        $INCs = array();
@@ -2470,8 +2472,6 @@ function GET_DIR_AS_ARRAY ($baseDir, $prefix) {
 }
 // Load more reset scripts
 function RESET_ADD_INCLUDES () {
-       global $_CONFIG;
-
        // Is the reset set or old sql_patches?
        if ((!defined('__DAILY_RESET')) || (EXT_VERSION_IS_OLDER("sql_patches", "0.4.5"))) {
                // Then abort here
@@ -2602,6 +2602,7 @@ function REVERT_COMMA ($str) {
        // Return float
        return $float;
 }
+
 // Handle menu-depending failed logins and return the rendered content
 function HANDLE_LOGIN_FAILTURES ($accessLevel) {
        // Default output is empty ;-)
@@ -2630,9 +2631,10 @@ function HANDLE_LOGIN_FAILTURES ($accessLevel) {
        // Return rendered content
        return $OUT;
 }
+
 // Rebuild cache
 function REBUILD_CACHE ($cache, $inc="") {
-       global $cacheInstance, $_CONFIG, $CSS;
+       global $cacheInstance, $CSS;
 
        // Shall I remove the cache file?
        if ((EXT_IS_ACTIVE("cache")) && (is_object($cacheInstance))) {
@@ -2659,6 +2661,7 @@ function REBUILD_CACHE ($cache, $inc="") {
                } // END - if
        } // END - if
 }
+
 // Purge admin menu cache
 function CACHE_PURGE_ADMIN_MENU ($id=0, $action="", $what="", $str="") {
        global $cacheInstance;
@@ -2677,8 +2680,9 @@ function CACHE_PURGE_ADMIN_MENU ($id=0, $action="", $what="", $str="") {
        }
 
        // Experiemental feature!
-       trigger_error("You have to delete the admin_*.cache files by yourself at this point.");
+       trigger_error("<strong>Experimental feature:</strong> You have to delete the admin_*.cache files by yourself at this point.");
 }
+
 // Translates the "pool type" into human-readable
 function TRANSLATE_POOL_TYPE ($type) {
        // Default type is unknown
@@ -2696,6 +2700,7 @@ function TRANSLATE_POOL_TYPE ($type) {
        // Return "translation"
        return $translated;
 }
+
 // "Getter" for remote IP number
 function GET_REMOTE_ADDR () {
        // Get remote ip from environment
@@ -2789,7 +2794,7 @@ function ADD_NEW_BONUS_MAIL ($data, $mode="", $output=true) {
 }
 // Determines referal id and sets it
 function DETERMINE_REFID () {
-       global $_CONFIG, $CLICK, $_SERVER;
+       global $CLICK, $_SERVER;
 
        // Check if refid is set
        if ((!empty($_GET['user'])) && ($CLICK == 1) && (basename($_SERVER['PHP_SELF']) == "click.php")) {
@@ -2890,10 +2895,155 @@ function getMessage ($messageId) {
        return $return;
 }
 
+// Get current theme name
+function GET_CURR_THEME() {
+       global $INC_POOL, $CSS, $cacheArray;
+
+       // The default theme is 'default'... ;-)
+       $ret = "default";
+
+       // Load default theme if not empty from configuration
+       if (getConfig('default_theme') != "") $ret = getConfig('default_theme');
+
+       if (!isSessionVariableSet('mxchange_theme')) {
+               // Set default theme
+               set_session('mxchange_theme', $ret);
+       } elseif ((isSessionVariableSet('mxchange_theme')) && (GET_EXT_VERSION("sql_patches") >= "0.1.4")) {
+               //die("<pre>".print_r($cacheArray['themes'], true)."</pre>");
+               // Get theme from cookie
+               $ret = get_session('mxchange_theme');
+
+               // Is it valid?
+               if (THEME_GET_ID($ret) == 0) {
+                       // Fix it to default
+                       $ret = "default";
+               } // END - if
+       } elseif ((!isBooleanConstantAndTrue('mxchange_installed')) && ((isBooleanConstantAndTrue('mxchange_installing')) || ($CSS == true)) && ((!empty($_GET['theme'])) || (!empty($_POST['theme'])))) {
+               // Prepare FQFN for checking
+               $theme = sprintf("%stheme/%s/theme.php", PATH, SQL_ESCAPE($_GET['theme']));
+
+               // Installation mode active
+               if ((!empty($_GET['theme'])) && (FILE_READABLE($theme))) {
+                       // Set cookie from URL data
+                       set_session('mxchange_theme', SQL_ESCAPE($_GET['theme']));
+               } elseif (FILE_READABLE(sprintf("%stheme/%s/theme.php", PATH, SQL_ESCAPE($_POST['theme'])))) {
+                       // Set cookie from posted data
+                       set_session('mxchange_theme', SQL_ESCAPE($_POST['theme']));
+               }
+
+               // Set return value
+               $ret = get_session('mxchange_theme');
+       } else {
+               // Invalid design, reset cookie
+               set_session('mxchange_theme', $ret);
+       }
+
+       // Add (maybe) found theme.php file to inclusion list
+       $theme = sprintf("%stheme/%s/theme.php", PATH, SQL_ESCAPE($ret));
+
+       // Try to load the requested include file
+       if (FILE_READABLE($theme)) $INC_POOL[] = $theme;
+
+       // Return theme value
+       return $ret;
+}
+
+// Get id from theme
+function THEME_GET_ID ($name) {
+       global $cacheArray;
+
+       // Is the extension "theme" installed?
+       if (!EXT_IS_ACTIVE("theme")) {
+               // Then abort here
+               return 0;
+       } // END - if
+
+       // Default id
+       $id = 0;
+
+       // Is the cache entry there?
+       if (isset($cacheArray['themes']['id'][$name])) {
+               // Get the version from cache
+               $id = $cacheArray['themes']['id'][$name];
+
+               // Count up
+               incrementConfigEntry('cache_hits');
+       } elseif (GET_EXT_VERSION("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), __FILE__, __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;
+}
+
+// Increment or init with given value or 1 as default the given config entry
+function incrementConfigEntry ($configEntry, $value=1) {
+       global $_CONFIG;
+
+       // Increment it if set or init it with 1
+       if (getConfig($configEntry) > 0) {
+               $_CONFIG[$configEntry] += $value;
+       } else {
+               $_CONFIG[$configEntry] = $value;
+       }
+}
+
+// Read a given file
+function READ_FILE ($FQFN, $sqlPrepare = false) {
+       // Load the file
+       if (function_exists('file_get_contents')) {
+               // Use new function
+               $content = file_get_contents($FQFN);
+       } else {
+               // Fall-back to implode-file chain
+               $content = implode("", file($FQFN));
+       }
+
+       // Prepare SQL queries?
+       if ($sqlPrepare === true) {
+               // Remove some unwanted chars
+               $content = str_replace("\r", "", $content);
+               $content = str_replace("\n\n", "\n", $content);
+       } // END - if
+
+       // Return the content
+       return $content;
+}
+
+// Generates an error code from given account status
+function GEN_ERROR_CODE_FROM_ACCOUNT_STATUS ($status) {
+       // Default error code if unknown account status
+       $ERROR = CODE_UNKNOWN_STATUS;
+
+       // Generate constant name
+       $constantName = sprintf("CODE_ID_%s", $status);
+
+       // Is the constant there?
+       if (defined($constantName)) {
+               // Then get it!
+               $ERROR = constant($constantName);
+       } else {
+               // Unknown status
+               DEBUG_LOG(__FUNCTION__, __LINE__, sprintf("Unknown error status %s detected.", $status));
+       }
+
+       // Return error code
+       return $ERROR;
+}
+
 //////////////////////////////////////////////////
-//                                              //
 // AUTOMATICALLY RE-GENERATED MISSING FUNCTIONS //
-//                                              //
 //////////////////////////////////////////////////
 //
 if (!function_exists('html_entity_decode')) {
@@ -2905,5 +3055,5 @@ if (!function_exists('html_entity_decode')) {
        }
 } // END - if
 
-//
+// [EOF]
 ?>