A lot has been rewritten, ext-teams added, ext-forced continued:
[mailer.git] / inc / modules / member / what-stats.php
index 739b83a..2dd4cfb 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 /************************************************************************
- * MXChange v0.2.1                                    Start: 11/09/2003 *
- * ===============                              Last change: 04/21/2004 *
+ * Mailer v0.2.1-FINAL                                Start: 11/09/2003 *
+ * ===================                          Last change: 04/21/2004 *
  *                                                                      *
  * -------------------------------------------------------------------- *
  * File              : what-stats.php                                   *
  * $Date::                                                            $ *
  * $Tag:: 0.2.1-FINAL                                                 $ *
  * $Author::                                                          $ *
- * Needs to be in all Files and every File needs "svn propset           *
- * svn:keywords Date Revision" (autoprobset!) at least!!!!!!            *
  * -------------------------------------------------------------------- *
- * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * Copyright (c) 2003 - 2009 by Roland Haeder                           *
+ * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
  * For more information visit: http://www.mxchange.org                  *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), '/inc') + 4) . '/security.php';
-       require($INC);
-} elseif (!IS_MEMBER()) {
-       redirectToUrl('modules.php?module=index');
+       die();
+} elseif (!isMember()) {
+       redirectToIndexMemberOnlyModule();
 }
 
 // Add description as navigation point
-ADD_DESCR('member', __FILE__);
+addYouAreHereLink('member', __FILE__);
 
 // Init output
 $main_content = array();
 
 // Load waiting/pending orders
-$result = SQL_QUERY_ESC("SELECT id, cat_id, payment_id, subject, url, timestamp, target_send, data_type, zip
-FROM `{!_MYSQL_PREFIX!}_pool`
-WHERE sender=%s AND data_type != 'SEND'
-ORDER BY timestamp DESC",
-array(getUserId()), __FILE__, __LINE__);
+$result = SQL_QUERY_ESC("SELECT
+       `id`,`cat_id`,`payment_id`,`subject`,`url`,`timestamp`,`target_send`,`data_type`,`zip`
+FROM
+       `{?_MYSQL_PREFIX?}_pool`
+WHERE
+       `sender`=%s AND
+       `data_type` != 'SEND'
+ORDER BY
+       `timestamp` DESC",
+       array(getMemberId()), __FILE__, __LINE__);
 
 // Are there mails left in pool?
-if (SQL_NUMROWS($result) > 0) {
+if (!SQL_HASZERONUMS($result)) {
        // Load all orders
-       $OUT = ''; $SW = 2;
-       while ($data = SQL_FETCHARRAY($result)) {
-               // Is the ZIP code set? If not, set dashes
-               if (empty($data['zip'])) $data['zip'] =  '---';
-
+       $OUT = '';
+       while ($content = SQL_FETCHARRAY($result)) {
                // Prepare content for output
-               $content = array(
-                       'sw'    => $SW,
-                       'id'    => $data['id'],
-                       'cat'   => getCategory($data['cat_id']),
-                       'pay'   => getPaymentTitlePrice($data['payment_id']),
-                       'subj'  => COMPILE_CODE($data['subject']),
-                       'url'   => DEREFERER($data['url']),
-                       'stamp' => generateDateTime($data['timestamp'], '2'),
-                       'recs'  => $data['target_send'],
-                       'type'  => translatePoolType($data['data_type']),
-                       'zip'   => $data['zip']
-               );
+               $content['timestamp'] = generateDateTime($content['timestamp'], '2');
 
                // Load template
-               $OUT .= LOAD_TEMPLATE("member_pool_row", true, $content);
-
-               // Switch color
-               $SW = 3 - $SW;
+               $OUT .= loadTemplate('member_pool_row', true, $content);
        } // END - if
 
        // Load main template
-       $main_content['pool'] = LOAD_TEMPLATE("member_pool_table", true, $OUT);
+       $main_content['pool'] = loadTemplate('member_pool_table', true, $OUT);
 } else {
        // No mails in pool!
-       $main_content['pool'] = LOAD_TEMPLATE('admin_settings_saved', true, getMessage('MEMBER_NO_MAILS_IN_POOL'));
+       $main_content['pool'] = displayMessage('{--MEMBER_NO_MAILS_IN_POOL--}', true);
 }
 
 // Free result
 SQL_FREERESULT($result);
 
 // Load sent orders
-//                               0     1         2         3      4            5            6            7           8
-$result = SQL_QUERY_ESC("SELECT id, cat_id, payment_id, subject, url, timestamp_ordered, max_rec, timestamp_send, clicks
-FROM `{!_MYSQL_PREFIX!}_user_stats`
-WHERE userid=%s
-ORDER BY timestamp_ordered DESC",
-array(getUserId()), __FILE__, __LINE__);
-
-if (SQL_NUMROWS($result) > 0) {
+$result = SQL_QUERY_ESC("SELECT
+       `id`,`cat_id`,`payment_id`,`subject`,`url`,`timestamp_ordered`,`max_rec`,`timestamp_send`,`clicks`
+FROM
+       `{?_MYSQL_PREFIX?}_user_stats`
+WHERE
+       `userid`=%s
+ORDER BY
+       `timestamp_ordered` DESC",
+       array(getMemberId()), __FILE__, __LINE__);
+
+if (!SQL_HASZERONUMS($result)) {
        // Mail orders are in pool so we can display them
-       $OUT = ''; $SW = 2;
-       while ($data = SQL_FETCHROW($result)) {
+       $OUT = '';
+       while ($content = SQL_FETCHARRAY($result)) {
                // Prepare data for the template
-               $content = array(
-                       'sw'    => $SW,
-                       'cat'   => getCategory($data[1]),
-                       'pay'   => getPaymentTitlePrice($data[2]),
-                       'subj'  => COMPILE_CODE($data[3]),
-                       'url'   => DEREFERER($data[4]),
-                       'stamp' => generateDateTime($data[5], '2'),
-                       'recs'  => $data[6],
-                       'sent'  => generateDateTime($data[7], '2'),
-                       'clix'  => $data[8],
-                       'perc'  => COMPILE_CODE($data[8] / $data[6] * 100)."%",
-               );
+               $content['timestamp_ordered'] = generateDateTime($content['timestamp_ordered'], '2');
+               $content['timestamp_sent']    = generateDateTime($content['timestamp_send'], '2');
+
+               // Click rate
+               $content['click_rate'] = '0';
+
+               // Better protection against 'divison-by-zero'
+               if ($content['max_rec'] > 0) {
+                       $content['click_rate'] = ($content['clicks'] / $content['max_rec'] * 100);
+               } // END - if
 
                // Load row template and switch colors
-               $OUT .= LOAD_TEMPLATE("member_stats_row", true, $content);
-               $SW = 3 - $SW;
-       }
+               $OUT .= loadTemplate('member_stats_row', true, $content);
+       } // END - while
 
        // Load main template
-       $main_content['stats'] = LOAD_TEMPLATE("member_stats_table", true, $OUT);
+       $main_content['stats'] = loadTemplate('member_stats_table', true, $OUT);
 } else {
        // No mail orders fond
-       $main_content['stats'] = LOAD_TEMPLATE('admin_settings_saved', true, getMessage('MEMBER_NO_MAILS_IN_STATS'));
+       $main_content['stats'] = displayMessage('{--MEMBER_NO_MAILS_IN_STATS--}', true);
 }
 
 // Free result
 SQL_FREERESULT($result);
 
 // Load main template
-LOAD_TEMPLATE("member_stats_pool", false, $main_content);
+loadTemplate('member_stats_pool', false, $main_content);
 
-//
+// [EOF]
 ?>