]> git.mxchange.org Git - mailer.git/blobdiff - inc/functions.php
Comments fixed, ext-network continued, fix for mod stats:
[mailer.git] / inc / functions.php
index 2052e4af838925ea3679260c79f57d2d0d5e4329..d077a3c7a875919cf5f86af638de2b3b28272b8e 100644 (file)
@@ -439,7 +439,7 @@ function loadEmailTemplate ($template, $content = array(), $UID = '0') {
        //* DEBUG: */ outputHtml(__FUNCTION__."(<font color=\"#0000aa\">".__LINE__."</font>):UID={$UID},template={$template},content[]=".gettype($content).'<br />');
        if (($UID > 0) && (is_array($content))) {
                // If nickname extension is installed, fetch nickname as well
-               if (isNicknameUsed($UID)) {
+               if ((isExtensionActive('nickname')) && (isNicknameUsed($UID))) {
                        //* DEBUG: */ outputHtml(__FUNCTION__."(<font color=\"#0000aa\">".__LINE__."</font>):NICKNAME!<br />");
                        // Load by nickname
                        fetchUserData($UID, 'nickname');
@@ -997,16 +997,16 @@ function compileCode ($code, $simple = false, $constants = true, $full = true) {
        } // END - if
 
        // Start couting
-       $startCompile = explode(' ', microtime());
+       $startCompile = microtime(true);
 
        // Comile the code
        $code = compileRawCode($code, $simple, $constants, $full);
 
        // Get timing
-       $compiled = explode(' ', microtime());
+       $compiled = microtime(true);
 
        // Add timing
-       $code .= '<!-- Compilation time: ' . ((($compiled[1] + $compiled[0]) - ($startCompile[1] + $startCompile[0])) * 1000). 'ms //-->';
+       $code .= '<!-- Compilation time: ' . (($compiled - $startCompile) * 1000). 'ms //-->';
 
        // Return compiled code
        return $code;
@@ -1341,7 +1341,7 @@ function bigintval ($num, $castValue = true) {
 function generateImageOrCode ($img_code, $headerSent = true) {
        // Is the code size oversized or shouldn't we display it?
        if ((strlen($img_code) > 6) || (empty($img_code)) || (getConfig('code_length') == '0')) {
-               // Stop2 execution of function here because of over-sized code length
+               // Stop execution of function here because of over-sized code length
                debug_report_bug('img_code ' . $img_code .' has invalid length. img_code()=' . strlen($img_code) . ' code_length=' . getConfig('code_length'));
        } elseif ($headerSent === false) {
                // Return an HTML code here
@@ -1458,31 +1458,31 @@ function createTimeSelections ($timestamp, $prefix = '', $display = '', $align =
                $OUT .= "<tr>\n";
 
                if (ereg('Y', $display) || (empty($display))) {
-                       $OUT .= "  <td align=\"center\" class=\"timebox_column bottom2\"><div class=\"tiny\">{--_YEARS--}</strong></td>\n";
+                       $OUT .= "  <td align=\"center\" class=\"timebox_column bottom\"><div class=\"tiny\">{--_YEARS--}</strong></td>\n";
                }
 
                if (ereg('M', $display) || (empty($display))) {
-                       $OUT .= "  <td align=\"center\" class=\"timebox_column bottom2\"><div class=\"tiny\">{--_MONTHS--}</strong></td>\n";
+                       $OUT .= "  <td align=\"center\" class=\"timebox_column bottom\"><div class=\"tiny\">{--_MONTHS--}</strong></td>\n";
                }
 
                if (ereg('W', $display) || (empty($display))) {
-                       $OUT .= "  <td align=\"center\" class=\"timebox_column bottom2\"><div class=\"tiny\">{--_WEEKS--}</strong></td>\n";
+                       $OUT .= "  <td align=\"center\" class=\"timebox_column bottom\"><div class=\"tiny\">{--_WEEKS--}</strong></td>\n";
                }
 
                if (ereg('D', $display) || (empty($display))) {
-                       $OUT .= "  <td align=\"center\" class=\"timebox_column bottom2\"><div class=\"tiny\">{--_DAYS--}</strong></td>\n";
+                       $OUT .= "  <td align=\"center\" class=\"timebox_column bottom\"><div class=\"tiny\">{--_DAYS--}</strong></td>\n";
                }
 
                if (ereg('h', $display) || (empty($display))) {
-                       $OUT .= "  <td align=\"center\" class=\"timebox_column bottom2\"><div class=\"tiny\">{--_HOURS--}</strong></td>\n";
+                       $OUT .= "  <td align=\"center\" class=\"timebox_column bottom\"><div class=\"tiny\">{--_HOURS--}</strong></td>\n";
                }
 
                if (ereg('m', $display) || (empty($display))) {
-                       $OUT .= "  <td align=\"center\" class=\"timebox_column bottom2\"><div class=\"tiny\">{--_MINUTES--}</strong></td>\n";
+                       $OUT .= "  <td align=\"center\" class=\"timebox_column bottom\"><div class=\"tiny\">{--_MINUTES--}</strong></td>\n";
                }
 
                if (ereg('s', $display) || (empty($display))) {
-                       $OUT .= "  <td align=\"center\" class=\"timebox_column bottom2\"><div class=\"tiny\">{--_SECONDS--}</strong></td>\n";
+                       $OUT .= "  <td align=\"center\" class=\"timebox_column bottom\"><div class=\"tiny\">{--_SECONDS--}</strong></td>\n";
                }
 
                $OUT .= "</tr>\n";
@@ -1646,7 +1646,7 @@ function createFancyTime ($stamp) {
 function addEmailNavigation ($PAGES, $offset, $show_form, $colspan, $return=false) {
        $SEP = ''; $TOP = '';
        if ($show_form === false) {
-               $TOP = " top2";
+               $TOP = " top";
                $SEP = "<tr><td colspan=\"" . $colspan."\" class=\"seperator\">&nbsp;</td></tr>";
        }
 
@@ -1720,7 +1720,7 @@ function extractHostnameFromUrl (&$script) {
        if (substr(strtolower($script), 0, 7) == 'http://') {
                // But only if http:// is in front!
                $script = substr($script, (strlen($url) + 7));
-       } elseif (substr(strtolower($script), 0, 8) == "https://") {
+       } elseif (substr(strtolower($script), 0, 8) == 'https://') {
                // Does this work?!
                $script = substr($script, (strlen($url) + 8));
        }
@@ -2028,7 +2028,7 @@ function generateHash ($plainText, $salt = '') {
 
        // Do we miss an arry element here?
        if (!isConfigEntrySet('file_hash')) {
-               // Stop2 here
+               // Stop here
                debug_report_bug('Missing file_hash in ' . __FUNCTION__ . '.');
        } // END - if
 
@@ -2488,7 +2488,7 @@ function getActualVersion ($type = 'Revision') {
                                        $new = true;
                                } else {
                                        // Generate fake cache entry
-                                       foreach ($mapper as $map=>$idx) {
+                                       foreach ($mapper as $map => $idx) {
                                                $GLOBALS['cache_array']['revision'][$map][0] = $ins_vers[$idx];
                                        } // END - foreach
 
@@ -2638,7 +2638,7 @@ 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>" . 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\">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.";
@@ -2648,11 +2648,9 @@ function debug_report_bug ($message = '') {
        die($debug);
 }
 
-// Generates a ***weak*** seed (taken from de.php.net/mt_srand)
+// Generates a ***weak*** seed
 function generateSeed () {
-       list($usec, $sec) = explode(' ', microtime());
-       $microTime = (((float)$sec + (float)$usec)) * 100000;
-       return $microTime;
+       return microtime(true) * 100000;
 }
 
 // Converts a message code to a human-readable message
@@ -3166,7 +3164,7 @@ function determineReferalId () {
        } elseif ((isSessionVariableSet('refid')) && (getSession('refid') != 0)) {
                // Set session refid als global
                $GLOBALS['refid'] = bigintval(getSession('refid'));
-       } elseif ((isExtensionInstalledAndNewer('user', '0.3.4')) && (getConfig('select_user_zero_refid')) == 'Y') {
+       } elseif ((isExtensionInstalledAndNewer('user', '0.3.4')) && (getConfig('select_user_zero_refid') == 'Y')) {
                // Select a random user which has confirmed enougth mails
                $GLOBALS['refid'] = determineRandomReferalId();
        } elseif ((isExtensionInstalled('sql_patches')) && (getConfig('def_refid') > 0)) {
@@ -3183,7 +3181,7 @@ function determineReferalId () {
                $found = false;
 
                // Do we have nickname or userid set?
-               if (isNicknameUsed($GLOBALS['refid'])) {
+               if ((isExtensionActive('nickname')) && (isNicknameUsed($GLOBALS['refid']))) {
                        // Nickname in URL, so load the id
                        $found = fetchUserData($GLOBALS['refid'], 'nickname');
                } elseif ($GLOBALS['refid'] > 0) {
@@ -3227,7 +3225,7 @@ function shutdown () {
                addFatalMessage(__FILE__, __LINE__, getMessage('NO_DB_LINK_SHUTDOWN'));
        }
 
-       // Stop2 executing here
+       // Stop executing here
        exit;
 }
 
@@ -3707,6 +3705,116 @@ function escapeJavaScriptQuotes ($str) {
        return $str;
 }
 
+// Send out mails depending on the 'mod/modes' combination
+// @TODO Lame description for this function
+function sendModeMails ($mod, $modes) {
+       // Load hash
+       if (fetchUserData(getMemberId())) {
+               // Extract salt from cookie
+               $salt = substr(getSession('u_hash'), 0, -40);
+
+               // Now let's compare passwords
+               $hash = generatePassString(getUserData('password'));
+
+               // Does the hash match or should we change it?
+               if (($hash == getSession('u_hash')) || (postRequestElement('pass1') == postRequestElement('pass2'))) {
+                       // Load the data
+                       $content = getUserDataArray();
+
+                       // Translate gender
+                       $content['gender'] = translateGender($content['gender']);
+
+                       // Clear/init the content variable
+                       $content['message'] = '';
+
+                       // Which mail?
+                       // @TODO Move this in a filter
+                       switch ($mod) {
+                               case 'mydata':
+                                       foreach ($modes as $mode) {
+                                               switch ($mode) {
+                                                       case 'normal': break; // Do not add any special lines
+                                                       case 'email': // Email was changed!
+                                                               $content['message'] = getMessage('MEMBER_CHANGED_EMAIL').": ".postRequestElement('old_email')."\n";
+                                                               break;
+
+                                                       case 'pass': // Password was changed
+                                                               $content['message'] = getMessage('MEMBER_CHANGED_PASS')."\n";
+                                                               break;
+
+                                                       default:
+                                                               logDebugMessage(__FUNCTION__, __LINE__, sprintf("Unknown mode %s detected.", $mode));
+                                                               $content['message'] = getMessage('MEMBER_UNKNOWN_MODE') . ': ' . $mode . "\n\n";
+                                                               break;
+                                               } // END - switch
+                                       } // END - foreach
+
+                                       if (isExtensionActive('country')) {
+                                               // Replace code with description
+                                               $content['country'] = generateCountryInfo(postRequestElement('country_code'));
+                                       } // END - if
+
+                                       // Merge content with data from POST
+                                       $content = merge_array($content, postRequestArray());
+
+                                       // Load template
+                                       $message = loadEmailTemplate('member_mydata_notify', $content, getMemberId());
+
+                                       if (getConfig('admin_notify') == 'Y') {
+                                               // The admin needs to be notified about a profile change
+                                               $message_admin = 'admin_mydata_notify';
+                                               $sub_adm   = getMessage('ADMIN_CHANGED_DATA');
+                                       } else {
+                                               // No mail to admin
+                                               $message_admin = '';
+                                               $sub_adm   = '';
+                                       }
+
+                                       // Set subject lines
+                                       $sub_mem = getMessage('MEMBER_CHANGED_DATA');
+
+                                       // Output success message
+                                       $content = "<span class=\"member_done\">{--MYDATA_MAIL_SENT--}</span>";
+                                       break;
+
+                               default: // Unsupported module!
+                                       logDebugMessage(__FUNCTION__, __LINE__, sprintf("Unsupported module %s detected.", $mod));
+                                       $content = "<span class=\"member_failed\">{--UNKNOWN_MODULE--}</span>";
+                                       break;
+                       } // END - switch
+               } else {
+                       // Passwords mismatch
+                       $content = "<span class=\"member_failed\">{--MEMBER_PASSWORD_ERROR--}</span>";
+               }
+       } else {
+               // Could not load profile
+               $content = "<span class=\"member_failed\">{--MEMBER_CANNOT_LOAD_PROFILE--}</span>";
+       }
+
+       // Send email to user if required
+       if ((!empty($sub_mem)) && (!empty($message))) {
+               // Send member mail
+               sendEmail($content['email'], $sub_mem, $message);
+       } // END - if
+
+       // Send only if no other error has occured
+       if (empty($content)) {
+               if ((!empty($sub_adm)) && (!empty($message_admin))) {
+                       // Send admin mail
+                       sendAdminNotification($sub_adm, $message_admin, $content, getMemberId());
+               } elseif (getConfig('admin_notify') == 'Y') {
+                       // Cannot send mails to admin!
+                       $content = getMessage('CANNOT_SEND_ADMIN_MAILS');
+               } else {
+                       // No mail to admin
+                       $content = "<span class=\"member_done\">{--MYDATA_MAIL_SENT--}</span>";
+               }
+       } // END - if
+
+       // Load template
+       loadTemplate('admin_settings_saved', false, $content);
+}
+
 //////////////////////////////////////////////////
 // AUTOMATICALLY RE-GENERATED MISSING FUNCTIONS //
 //////////////////////////////////////////////////