]> git.mxchange.org Git - mailer.git/blobdiff - inc/modules/admin/admin-inc.php
New extension added, more EL-rewrites, naming-convention applied:
[mailer.git] / inc / modules / admin / admin-inc.php
index 7817289f93aff946bc218780962e996755c29d6a..14d8cbb14434a691c74f0bd5586860554c61bc74 100644 (file)
@@ -124,7 +124,7 @@ function ifAdminCookiesAreValid ($adminLogin, $passHash) {
        if ($adminHash != '-1') {
                // Now, we need to encode the password in the same way the one is encoded in database
                $testHash = encodeHashForCookie($adminHash);
-               //* DEBUG: */ outputHtml('adminLogin='.$adminLogin.',<br />passHash='.$passHash.',<br />adminHash='.$adminHash.',<br />testHash='.$testHash.'<br />');
+               //* DEBUG: */ debugOutput('adminLogin=' . $adminLogin . ',passHash='.$passHash.',adminHash='.$adminHash.',testHash='.$testHash);
 
                // If they both match, the login data is valid
                if ($testHash == $passHash) {
@@ -137,7 +137,7 @@ function ifAdminCookiesAreValid ($adminLogin, $passHash) {
        } // END - if
 
        // Return status
-       //* DEBUG: */ outputHtml('ret='.$ret);
+       //* DEBUG: */ debugOutput('ret='.$ret);
        return $ret;
 }
 
@@ -146,7 +146,7 @@ function doAdminAction () {
        // Get default what
        $what = getWhat();
 
-       //* DEBUG: */ outputHtml(__LINE__.'*'.$what.'/'.getModule().'/'.getAction().'/'.getWhat().'*<br />');
+       //* DEBUG: */ debugOutput(__LINE__.'*'.$what.'/'.getModule().'/'.getAction().'/'.getWhat().'*');
 
        // Remove any spaces from variable
        if (empty($what)) {
@@ -253,7 +253,7 @@ ORDER BY
                $OUT .= '<ul class="admin_menu_main">';
                // @TODO Rewrite this to $content = SQL_FETCHARRAY()
                while (list($menu, $title, $descr) = SQL_FETCHROW($result_main)) {
-                       if (isExtensionInstalledAndActive('admins', '0.2.0')) {
+                       if (isExtensionInstalledAndNewer('admins', '0.2.0')) {
                                $ACL = adminsCheckAdminAcl($menu, '');
                        } else {
                                // @TODO ACL is 'allow'... hmmm
@@ -720,7 +720,7 @@ function adminChangeActivationStatus ($IDs, $table, $row, $idRow = 'id') {
 }
 
 // Send mails for del/edit/lock build modes
-function sendAdminBuildMails ($mode, $table, $content, $id, $subjectPart = '') {
+function sendAdminBuildMails ($mode, $table, $content, $id, $subjectPart = '', $userid = 'userid') {
        // Default subject is the subject part
        $subject = $subjectPart;
 
@@ -731,7 +731,7 @@ function sendAdminBuildMails ($mode, $table, $content, $id, $subjectPart = '') {
        } // END - if
 
        // Is the raw userid set?
-       if (postRequestParameter('userid_raw', $id) > 0) {
+       if (postRequestParameter($userid, $id) > 0) {
                // Generate subject
                $subjectLine = getMessage('MEMBER_'.strtoupper($subject).'_'.strtoupper($table).'_SUBJECT');
 
@@ -743,7 +743,7 @@ function sendAdminBuildMails ($mode, $table, $content, $id, $subjectPart = '') {
                }
 
                // Send email out
-               sendEmail(postRequestParameter('userid_raw', $id), $subjectLine, $mail);
+               sendEmail(postRequestParameter($userid, $id), $subjectLine, $mail);
        } // END - if
 
        // Generate subject
@@ -751,14 +751,14 @@ function sendAdminBuildMails ($mode, $table, $content, $id, $subjectPart = '') {
 
        // Send admin notification out
        if (!empty($subjectPart)) {
-               sendAdminNotification($subjectLine, 'admin_' . $mode . '_' . strtolower($subjectPart) . '_' . $table, $content, postRequestParameter('userid_raw', $id));
+               sendAdminNotification($subjectLine, 'admin_' . $mode . '_' . strtolower($subjectPart) . '_' . $table, $content, postRequestParameter($userid, $id));
        } else {
-               sendAdminNotification($subjectLine, 'admin_' . $mode . '_' . $table, $content, postRequestParameter('userid_raw', $id));
+               sendAdminNotification($subjectLine, 'admin_' . $mode . '_' . $table, $content, postRequestParameter($userid, $id));
        }
 }
 
 // Build a special template list
-function adminListBuilder ($listType, $IDs, $table, $columns, $filterFunctions, $extraValues, $idColumn, $userIdColumn) {
+function adminListBuilder ($listType, $IDs, $table, $columns, $filterFunctions, $extraValues, $idColumn, $userIdColumn, $userid = 'userid') {
        $OUT = ''; $SW = 2;
 
        // "Walk" through all entries
@@ -780,20 +780,21 @@ function adminListBuilder ($listType, $IDs, $table, $columns, $filterFunctions,
                                $idx = array_search($key, $columns, true);
 
                                // Do we have a userid?
-                               if ($key == 'userid') {
+                               if ($key == $userIdColumn) {
                                        // Add it again as raw id
-                                       $content['userid_raw'] = bigintval($value);
+                                       $content[$userIdColumn] = bigintval($value);
+                                       $content[$userIdColumn . '_raw'] = $content[$userIdColumn];
                                } // END - if
 
                                // If the key matches the idColumn variable, we need to temporary remember it
-                               //* DEBUG: */ print 'key=' . $key . ',idColumn=' . $idColumn . ',value=' . $value . '<br />';
+                               //* DEBUG: */ debugOutput('key=' . $key . ',idColumn=' . $idColumn . ',value=' . $value);
                                if ($key == $idColumn) {
                                        // Found, so remember it
                                        $GLOBALS['admin_list_builder_id_value'] = $value;
                                } // END - if
 
                                // Handle the call in external function
-                               //* DEBUG: */ print 'key=' . $key . ',fucntion=' . $filterFunctions[$idx] . ',value=' . $value . '<br />';
+                               //* DEBUG: */ debugOutput('key=' . $key . ',fucntion=' . $filterFunctions[$idx] . ',value=' . $value);
                                $content[$key] = handleExtraValues($filterFunctions[$idx], $value, $extraValues[$idx]);
                        } // END - foreach
 
@@ -824,7 +825,7 @@ function adminListBuilder ($listType, $IDs, $table, $columns, $filterFunctions,
 }
 
 // Change status of "build" list
-function adminBuilderStatusHandler ($mode, $IDs, $table, $columns, $filterFunctions, $extraValues, $idColumn, $userIdColumn, $statusArray) {
+function adminBuilderStatusHandler ($mode, $IDs, $table, $columns, $filterFunctions, $extraValues, $idColumn, $userIdColumn, $statusArray, $userid = 'userid') {
        // All valid entries? (We hope so here!)
        if ((is_array($IDs)) && (count($IDs) > 0) && (count($columns) == count($filterFunctions)) && (count($columns) == count($extraValues)) && (count($statusArray) > 0)) {
                // "Walk" through all entries
@@ -861,7 +862,7 @@ function adminBuilderStatusHandler ($mode, $IDs, $table, $columns, $filterFuncti
                                        } // END - if
                                } elseif (isset($content[$column])) {
                                        // Unfinished!
-                                       app_die(__FUNCTION__, __LINE__, ":UNFINISHED: id={$id}/{$column}[".gettype($statusInfo)."] = {$content[$column]}");
+                                       debug_report_bug(__FUNCTION__, __LINE__, ":UNFINISHED: id={$id}/{$column}[".gettype($statusInfo)."] = {$content[$column]}");
                                }
                        } // END - foreach
 
@@ -871,7 +872,7 @@ function adminBuilderStatusHandler ($mode, $IDs, $table, $columns, $filterFuncti
                                logDebugMessage(__FUNCTION__, __LINE__, 'Found entry: ' . $key);
 
                                // Skip id, raw userid and 'do_$mode'
-                               if (!in_array($key, array($idColumn, 'userid_raw', ('do_' . $mode)))) {
+                               if (!in_array($key, array($idColumn, $userid, ('do_' . $mode)))) {
                                        // Are there brackets () at the end?
                                        if (substr($entries[$id], -2, 2) == '()') {
                                                // Direct SQL command found
@@ -913,22 +914,26 @@ function adminBuilderStatusHandler ($mode, $IDs, $table, $columns, $filterFuncti
 }
 
 // Delete rows by given id numbers
-function adminDeleteEntriesConfirm ($IDs, $table, $columns=array(), $filterFunctions=array(), $extraValues=array(), $deleteNow=false, $idColumn='id', $userIdColumn='userid') {
+function adminDeleteEntriesConfirm ($IDs, $table, $columns = array(), $filterFunctions = array(), $extraValues = array(), $deleteNow = false, $idColumn = 'id', $userIdColumn = 'userid', $userid = 'userid') {
        // All valid entries? (We hope so here!)
        if ((is_array($IDs)) && (count($IDs) > 0) && (count($columns) == count($filterFunctions)) && (count($columns) == count($extraValues))) {
                // Shall we delete here or list for deletion?
                if ($deleteNow === true) {
                        // The base SQL command:
-                       $sql = "DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_%s` WHERE %s IN (%s)";
+                       $sql = "DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_%s` WHERE `%s` IN (%s)";
 
                        // Delete them all
                        $idList = '';
                        foreach ($IDs as $id => $sel) {
                                // Is there a userid?
-                               if (isPostRequestParameterSet('userid_raw', $id)) {
+                               if (isPostRequestParameterSet($userid, $id)) {
                                        // Load all data from that id
-                                       $result = SQL_QUERY_ESC("SELECT * FROM `{?_MYSQL_PREFIX?}_%s` WHERE %s=%s LIMIT 1",
-                                       array($table, $idColumn, $id), __FUNCTION__, __LINE__);
+                                       $result = SQL_QUERY_ESC("SELECT * FROM `{?_MYSQL_PREFIX?}_%s` WHERE `%s`=%s LIMIT 1",
+                                               array(
+                                                       $table,
+                                                       $idColumn,
+                                                       $id
+                                               ), __FUNCTION__, __LINE__);
 
                                        // Fetch the data
                                        $content = SQL_FETCHARRAY($result);
@@ -945,7 +950,7 @@ function adminDeleteEntriesConfirm ($IDs, $table, $columns=array(), $filterFunct
                        } // END - foreach
 
                        // Run the query
-                       SQL_QUERY($sql, array($table, $idColumn, substr($idList, 0, -1)), __FUNCTION__, __LINE__);
+                       SQL_QUERY_ESC($sql, array($table, $idColumn, substr($idList, 0, -1)), __FUNCTION__, __LINE__);
 
                        // Was this fine?
                        if (SQL_AFFECTEDROWS() == count($IDs)) {
@@ -963,7 +968,7 @@ function adminDeleteEntriesConfirm ($IDs, $table, $columns=array(), $filterFunct
 }
 
 // Edit rows by given id numbers
-function adminEditEntriesConfirm ($IDs, $table, $columns=array(), $filterFunctions=array(), $extraValues=array(), $editNow=false, $idColumn='id', $userIdColumn='userid') {
+function adminEditEntriesConfirm ($IDs, $table, $columns = array(), $filterFunctions = array(), $extraValues = array(), $editNow = false, $idColumn = 'id', $userIdColumn = 'userid', $userid = 'userid') {
        // All valid entries? (We hope so here!)
        if ((is_array($IDs)) && (count($IDs) > 0) && (count($columns) == count($filterFunctions)) && (count($columns) == count($extraValues))) {
                // Shall we change here or list for editing?
@@ -980,7 +985,7 @@ function adminEditEntriesConfirm ($IDs, $table, $columns=array(), $filterFunctio
                                );
                                foreach (postRequestArray() as $key => $entries) {
                                        // Skip raw userid which is always invalid
-                                       if ($key == 'userid_raw') {
+                                       if ($key == $userid) {
                                                // Continue with next field
                                                continue;
                                        } // END - if
@@ -1201,7 +1206,7 @@ function adminUpdateTaskData ($id, $row, $data) {
        // Is the id not set, then we need a backtrace here... :(
        if ($id <= 0) {
                // Initiate backtrace
-               debug_report_bug(sprintf("id is invalid: %s. row=%s, data=%s",
+               debug_report_bug(__FUNCTION__, __LINE__, sprintf("id is invalid: %s. row=%s, data=%s",
                        $id,
                        $row,
                        $data
@@ -1268,7 +1273,7 @@ function generateAdminLink ($adminId) {
                                $adminLink = '<a href="' . generateEmailLink(getAdminEmail($adminId), 'admins') . '" title="{--ADMIN_CONTACT_LINK_TITLE--}">' . $login . '</a>';
                        } else {
                                // Extension not found
-                               $adminLink = getMaskedMessage('EXTENSION_PROBLEM_NOT_INSTALLED', 'admins');
+                               $adminLink = getMaskedMessage('EXTENSION_PROBLEM_EXTENSION_NOT_INSTALLED', 'admins');
                        }
                } else {
                        // Maybe deleted?
@@ -1348,5 +1353,82 @@ function doVerifyExpertSettings () {
        return $return;
 }
 
+// Generate link to unconfirmed mails for admin
+function generateUnconfirmedAdminLink ($id, $unconfirmed, $type = 'bid') {
+       // Init output
+       $OUT = $unconfirmed;
+
+       // Do we have unconfirmed mails?
+       if ($unconfirmed > 0) {
+               // Add link to list_unconfirmed what-file
+               $OUT = '<a href="{%url=modules.php?module=admin&amp;what=list_unconfirmed&amp;' . $type . '=' . $id . '%}">' . translateComma($unconfirmed) . '</a>';
+       } // END - if
+
+       // Return it
+       return $OUT;
+}
+
+// Generates a navigation row for listing emails
+function addEmailNavigation ($numPages, $offset, $show_form, $colspan, $return=false) {
+       // Don't do anything if $numPages is 1
+       if ($numPages == 1) {
+               // Abort here with empty content
+               return '';
+       } // END - if
+
+       $TOP = '';
+       if ($show_form === false) {
+               $TOP = ' top';
+       } // END - if
+
+       $NAV = '';
+       for ($page = 1; $page <= $numPages; $page++) {
+               // Is the page currently selected or shall we generate a link to it?
+               if (($page == getRequestParameter('page')) || ((!isGetRequestParameterSet('page')) && ($page == 1))) {
+                       // Is currently selected, so only highlight it
+                       $NAV .= '<strong>-';
+               } else {
+                       // Open anchor tag and add base URL
+                       $NAV .= '<a href="{%url=modules.php?module=admin&amp;what=' . getWhat() . '&amp;page=' . $page . '&amp;offset=' . $offset;
+
+                       // Add userid when we shall show all mails from a single member
+                       if ((isGetRequestParameterSet('userid')) && (bigintval(getRequestParameter('userid')) > 0)) $NAV .= '&amp;userid=' . bigintval(getRequestParameter('userid'));
+
+                       // Close open anchor tag
+                       $NAV .= '%}">';
+               }
+               $NAV .= $page;
+               if (($page == getRequestParameter('page')) || ((!isGetRequestParameterSet('page')) && ($page == 1))) {
+                       // Is currently selected, so only highlight it
+                       $NAV .= '-</strong>';
+               } else {
+                       // Close anchor tag
+                       $NAV .= '</a>';
+               }
+
+               // Add seperator if we have not yet reached total pages
+               if ($page < $numPages) {
+                       // Add it
+                       $NAV .= '|';
+               } // END - if
+       } // END - for
+
+       // Define constants only once
+       $content['nav']  = $NAV;
+       $content['span'] = $colspan;
+       $content['top']  = $TOP;
+
+       // Load navigation template
+       $OUT = loadTemplate('admin_email_nav_row', true, $content);
+
+       if ($return === true) {
+               // Return generated HTML-Code
+               return $OUT;
+       } else {
+               // Output HTML-Code
+               outputHtml($OUT);
+       }
+}
+
 // [EOF]
 ?>