A lot while() conditions rewritten to SQL_FETCHARRAY(), see bug #107, @TODO tags...
[mailer.git] / inc / modules / admin / what-list_rallyes.php
index 37d54c8fcaa23675d059ef57f7b265afb452ed66..9794b452293657ede6bf51c00277df100b708aba 100644 (file)
@@ -92,16 +92,22 @@ if (REQUEST_ISSET_GET(('rallye'))) {
        // Delete rallyes
        $SEL = SELECTION_COUNT(REQUEST_POST('sel'));
        if ($SEL > 0) {
+               // Init SQLs
+               INIT_SQLS();
+
                // Delete selected rallyes and all it's data
                foreach (REQUEST_POST('sel') as $id => $selected) {
                        // Remove selected rallye entirely...
-                       SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM `{!_MYSQL_PREFIX!}_rallye_data` WHERE id=%s LIMIT 1",
-                               array(bigintval($id)), __FILE__, __LINE__);
-                       SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM `{!_MYSQL_PREFIX!}_rallye_prices` WHERE rallye_id=%s",
-                               array(bigintval($id)), __FILE__, __LINE__);
-                       SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM `{!_MYSQL_PREFIX!}_rallye_users` WHERE rallye_id=%s",
-                               array(bigintval($id)), __FILE__, __LINE__);
-               }
+                       ADD_SQL(SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM `{!_MYSQL_PREFIX!}_rallye_data` WHERE id=%s LIMIT 1",
+                               array(bigintval($id)), __FILE__, __LINE__, false));
+                       ADD_SQL(SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM `{!_MYSQL_PREFIX!}_rallye_prices` WHERE rallye_id=%s",
+                               array(bigintval($id)), __FILE__, __LINE__, false));
+                       ADD_SQL(SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM `{!_MYSQL_PREFIX!}_rallye_users` WHERE rallye_id=%s",
+                               array(bigintval($id)), __FILE__, __LINE__, false));
+               } // END - foreach
+
+               // Run SQLS
+               runFilterChain('run_sqls');
 
                // Output message
                $MSG = getMessage('RALLYE_DELETED');
@@ -113,6 +119,9 @@ if (REQUEST_ISSET_GET(('rallye'))) {
        // Change rallye
        $SEL = SELECTION_COUNT(REQUEST_POST('title'));
        if ($SEL > 0) {
+               // Init SQLs
+               INIT_SQLS();
+
                // Change selected rallyes and all it's data
                foreach (REQUEST_POST('title') as $id => $title) {
                        // Secure ID number
@@ -123,7 +132,7 @@ if (REQUEST_ISSET_GET(('rallye'))) {
                        $END   = mktime(REQUEST_POST('end_hour', $id)  , REQUEST_POST('end_min', $id)  , REQUEST_POST('end_sec', $id)  , REQUEST_POST('end_month', $id)  , REQUEST_POST('end_day', $id)  , REQUEST_POST('end_year', $id)  );
 
                        // Update entry
-                       SQL_QUERY_ESC("UPDATE `{!_MYSQL_PREFIX!}_rallye_data` SET
+                       ADD_SQL(SQL_QUERY_ESC("UPDATE `{!_MYSQL_PREFIX!}_rallye_data` SET
 title='%s',
 descr='%s',
 template='%s',
@@ -141,9 +150,12 @@ WHERE id='".$id."' LIMIT 1",
                                        bigintval(REQUEST_POST('min_users', $id)),
                                        bigintval(REQUEST_POST('min_prices', $id)),
                                        $id
-                               ), __FILE__, __LINE__);
+                               ), __FILE__, __LINE__, false));
                }
 
+               // Run SQLS
+               runFilterChain('run_sqls');
+
                // Output message
                $MSG = getMessage('RALLYE_CHANGED');
        }
@@ -154,38 +166,40 @@ if (REQUEST_ISSET_POST('edit')) {
        $SEL = SELECTION_COUNT(REQUEST_POST('sel'));
        if ($SEL > 0) {
                // Make all selected and deactivated rallyes editable
-               $SW = 2; $OUT = "";
+               $OUT = ""; $SW = 2;
                foreach (REQUEST_POST('sel') as $id => $selected) {
                        // Load rallye basic data
-                       $result = SQL_QUERY_ESC("SELECT title, descr, template, start_time, end_time, min_users, min_prices FROM `{!_MYSQL_PREFIX!}_rallye_data` WHERE id=%s LIMIT 1",
+                       $result = SQL_QUERY_ESC("SELECT title, descr, template, start_time, end_time, min_users, min_prices
+FROM `{!_MYSQL_PREFIX!}_rallye_data`
+WHERE `id`=%s
+LIMIT 1",
                                array(bigintval($id)), __FILE__, __LINE__);
-                       list($title, $descr, $templ, $start, $end, $min_users, $min_prices) = SQL_FETCHROW($result);
+                       // Fetch an array
+                       $content = SQL_FETCHARRAY($result);
+
+                       // Free result
                        SQL_FREERESULT($result);
 
                        // Starting day
-                       $content['s_sec']   = ADD_SELECTION("sec"  , date("s", $start), "start", $id);
-                       $content['s_min']   = ADD_SELECTION("min"  , date("i", $start), "start", $id);
-                       $content['s_hour']  = ADD_SELECTION("hour" , date("G", $start), "start", $id);
-                       $content['s_day']   = ADD_SELECTION("day"  , date("d", $start), "start", $id);
-                       $content['s_month'] = ADD_SELECTION("month", date("m", $start), "start", $id);
-                       $content['s_year']  = ADD_SELECTION("year" , date('Y', $start), "start", $id);
+                       $content['s_sec']   = ADD_SELECTION("sec"  , date("s", $content['start_time']), "start", $id);
+                       $content['s_min']   = ADD_SELECTION("min"  , date("i", $content['start_time']), "start", $id);
+                       $content['s_hour']  = ADD_SELECTION("hour" , date("G", $content['start_time']), "start", $id);
+                       $content['s_day']   = ADD_SELECTION("day"  , date("d", $content['start_time']), "start", $id);
+                       $content['s_month'] = ADD_SELECTION("month", date("m", $content['start_time']), "start", $id);
+                       $content['s_year']  = ADD_SELECTION("year" , date('Y', $content['start_time']), "start", $id);
 
                        // Ending day
-                       $content['e_sec']   = ADD_SELECTION("sec"  , date("s", $end)  , "end"  , $id);
-                       $content['e_min']   = ADD_SELECTION("min"  , date("i", $end)  , "end"  , $id);
-                       $content['e_hour']  = ADD_SELECTION("hour" , date("G", $end)  , "end"  , $id);
-                       $content['e_day']   = ADD_SELECTION("day"  , date("d", $end)  , "end"  , $id);
-                       $content['e_month'] = ADD_SELECTION("month", date("m", $end)  , "end"  , $id);
-                       $content['e_year']  = ADD_SELECTION("year" , date('Y', $end)  , "end"  , $id);
-
-                       // Remember over values
-                       $content['templ']      = RALLYE_TEMPLATE_SELECTION("templ[".$id."]", $templ);
+                       $content['e_sec']   = ADD_SELECTION("sec"  , date("s", $content['end_time'])  , "end"  , $id);
+                       $content['e_min']   = ADD_SELECTION("min"  , date("i", $content['end_time'])  , "end"  , $id);
+                       $content['e_hour']  = ADD_SELECTION("hour" , date("G", $content['end_time'])  , "end"  , $id);
+                       $content['e_day']   = ADD_SELECTION("day"  , date("d", $content['end_time'])  , "end"  , $id);
+                       $content['e_month'] = ADD_SELECTION("month", date("m", $content['end_time'])  , "end"  , $id);
+                       $content['e_year']  = ADD_SELECTION("year" , date('Y', $content['end_time'])  , "end"  , $id);
+
+                       // Remember other values
+                       $content['templ']      = RALLYE_TEMPLATE_SELECTION("templ[".$id."]", $content['template']);
                        $content['sw']         = $SW;
                        $content['id']         = $id;
-                       $content['title']      = $title;
-                       $content['descr']      = $descr;
-                       $content['min_users']  = $min_users;
-                       $content['min_prices'] = $min_prices;
 
                        // Output row
                        $OUT .= LOAD_TEMPLATE("admin_edit_rallyes_row", true, $content);
@@ -208,37 +222,46 @@ if (REQUEST_ISSET_POST('edit')) {
        $result = SQL_QUERY_ESC("SELECT userid, refs, curr_points FROM `{!_MYSQL_PREFIX!}_rallye_users` WHERE rallye_id=%s ORDER BY userid",
                array(bigintval(REQUEST_GET('rallye'))), __FILE__, __LINE__);
        if (SQL_NUMROWS($result) > 0) {
-               $SW = 2; $OUT = "";
+               $OUT = ""; $SW = 2;
+               // @TODO Rewrite this constant
                define('__RALLYE_VALUE', REQUEST_GET('rallye'));
-               while (list($uid, $old, $opoints) = SQL_FETCHROW($result)) {
+               while ($content = SQL_FETCHARRAY($result)) {
                        // Check for referal count
-                       $cnt = RALLYE_GET_REFCOUNT($uid, $old);
+                       $cnt = RALLYE_GET_REFCOUNT($content['userid'], $content['refs']);
+
+                       // Init variables
+                       $bl = "";
+                       $br = "";
 
                        // Output row
-                       $Bl = ""; $Br = "";
-                       if (($opoints > 0) && ($cnt > 0)) { $Bl = "<strong>"; $Br = "</strong>"; }
-                       if (($old > 0) || ($cnt > 0)) {
+                       if (($content['curr_points'] > 0) && ($cnt > 0)) { $bl = "<strong>"; $br = "</strong>"; }
+                       if (($content['refs'] > 0) || ($cnt > 0)) {
                                // Insert link to referal list
-                               //* DEBUG: */ echo "-".$uid."/".$cnt."/".$old."-<br />";
-                               $cnt = ADMIN_USER_PROFILE_LINK($uid, $cnt, "list_refs");
-                               $old = ADMIN_USER_PROFILE_LINK($uid, $old, "list_refs");
-                       }
+                               //* DEBUG: */ echo "-".$content['userid']."/".$cnt."/".$content['refs']."-<br />";
+                               $cnt = ADMIN_USER_PROFILE_LINK($content['userid'], $cnt, "list_refs");
+                               $content['refs'] = ADMIN_USER_PROFILE_LINK($content['userid'], $content['refs'], "list_refs");
+                       } // END - if
 
                        // Get user points
-                       $points = GET_TOTAL_DATA($uid, "user_points", "points", "userid", false, " AND ref_depth=1 LIMIT 1");
-                       //* DEBUG: */ echo basename(__FILE__).":uid={$uid},points={$points},opoints={$opoints}<br />\n";
+                       $points = GET_TOTAL_DATA($content['userid'], "user_points", "points", "userid", false, " AND ref_depth=1 LIMIT 1");
+                       //* DEBUG: */ echo basename(__FILE__).":uid={$content['userid']},points={$points},opoints={$content['curr_points']}<br />\n";
+
+                       // Prepare content
+                       // @TODO Rewritings: uid->userid,opoints->curr_points,old->refs in template
                        $content = array(
                                'sw'      => $SW ,
-                               'uid'     => $uid,
-                               'bold_l'  => $Bl ,
-                               'bold_r'  => $Br ,
-                               'old'     => $old,
+                               'uid'     => $content['userid'],
+                               'bold_l'  => $bl ,
+                               'bold_r'  => $br ,
+                               'old'     => $content['refs'],
                                'cnt'     => $cnt,
-                               'opoints' => TRANSLATE_COMMA($points - $opoints),
+                               'opoints' => TRANSLATE_COMMA($points - $content['curr_points']),
                        );
+
+                       // Load row template and switch color
                        $OUT .= LOAD_TEMPLATE("admin_list_rallye_usr_row", true, $content);
                        $SW = 3 - $SW;
-               }
+               } // END - while
 
                // Free memory
                SQL_FREERESULT($result);
@@ -255,67 +278,58 @@ if (REQUEST_ISSET_POST('edit')) {
        $result = SQL_QUERY("SELECT id, admin_id, title, descr, template, start_time, end_time, auto_add_new_user, is_active, send_notify, notified, min_users, min_prices
 FROM `{!_MYSQL_PREFIX!}_rallye_data`
 ORDER BY start_time DESC",
- __FILE__, __LINE__);
              __FILE__, __LINE__);
        if (SQL_NUMROWS($result) > 0) {
                // List found rallyes
-               $SW = 2; $OUT = "";
-               while (list($id, $aid, $title, $descr, $templ, $start, $end, $auto_add, $active, $notify, $notified, $min_users, $min_prices) = SQL_FETCHROW($result)) {
+               $OUT = ""; $SW = 2;
+               while ($content = SQL_FETCHARRAY($result)) {
                        // Load admin login
-                       $alogin = GET_ADMIN_LOGIN($aid);
-
-                       // Count assigned prices
-                       $result_prices = SQL_QUERY_ESC("SELECT id FROM `{!_MYSQL_PREFIX!}_rallye_prices` WHERE rallye_id=%s",
-                               array(bigintval($id)), __FILE__, __LINE__);
+                       $content['alogin'] = GET_ADMIN_LOGIN($content['admin_id']);
 
                        // Count joined userids
-                       $result_user = SQL_QUERY_ESC("SELECT id FROM `{!_MYSQL_PREFIX!}_rallye_users` WHERE rallye_id=%s",
-                               array($id), __FILE__, __LINE__);
-                       $joined = SQL_NUMROWS($result_user);
+                       $joined = GET_TOTAL_DATA($content['id'], "rallye_users", "id", "rallye_id", true);
 
                        // Did some users joined this rallye?
                        if ($joined > 0) {
                                // List joined users
-                               $joined = "<a href=\"{!URL!}/modules.php?module=admin&amp;what=list_rallyes&amp;sub=users&amp;rallye=".$id."\" title=\"".RALLYE_LIST_USERS."\">".$joined."</a>";
-                       }
+                               $joined = "<a href=\"{!URL!}/modules.php?module=admin&amp;what=list_rallyes&amp;sub=users&amp;rallye=".$content['id']."\" title=\"{--RALLYE_LIST_USERS_TITLE--}\">".$joined."</a>";
+                       } // END - if
 
                        // Alter some variables
-                       if (empty($alogin)) $alogin = "???";
-                       if (empty($templ))  $templ  = "---";
-                       if (empty($descr))  $descr  = "---";
+                       if (empty($content['alogin']))   $content['alogin']    = "???";
+                       if (empty($content['template'])) $content['template']  = "---";
+                       if (empty($content['descr']))    $content['descr']     = "---";
 
                        // Transfer data into array for the template
+                       // @TODO Rewritings: aid->admin_id in template
                        $content = array(
-                               'select'     => "<input type=\"checkbox\" name=\"sel[".$id."]\" class=\"admin_normal\" value=\"1\" />",
-                               'aid'        => $aid,
-                               'email_link' => CREATE_EMAIL_LINK($aid),
-                               'alogin'     => $alogin,
-                               'id'         => $id,
+                               'select'     => "<input type=\"checkbox\" name=\"sel[".$content['id']."]\" class=\"admin_normal\" value=\"1\" />",
+                               'aid'        => $content['admin_id'],
+                               'email_link' => CREATE_EMAIL_LINK($content['admin_id']),
+                               'alogin'     => $content['alogin'],
+                               'id'         => $content['id'],
                                'sw'         => $SW,
-                               'title'      => $title,
-                               'template'   => $templ,
+                               'title'      => $content['title'],
+                               'template'   => $content['template'],
                                'joined'     => $joined,
-                               'start_date' => MAKE_DATETIME($start, "2"),
-                               'end_date'   => MAKE_DATETIME($end  , "2"),
-                               'active_lnk' => TRANSLATE_YESNO($active),
-                               'notify_lnk' => TRANSLATE_YESNO($notify),
-                               'auto_lnk'   => TRANSLATE_YESNO($auto_add),
-                               'notified'   => TRANSLATE_YESNO($notified),
-                               'prices_cnt' => SQL_NUMROWS($result_prices),
-                               'descr'      => COMPILE_CODE($descr),
-                               'min_users'  => $min_users,
-                               'min_prices' => $min_prices,
+                               'start_date' => MAKE_DATETIME($content['start_time'], "2"),
+                               'end_date'   => MAKE_DATETIME($content['end_time']  , "2"),
+                               'active_lnk' => TRANSLATE_YESNO($content['is_active']),
+                               'notify_lnk' => TRANSLATE_YESNO($content['send_notify']),
+                               'auto_lnk'   => TRANSLATE_YESNO($content['auto_add_new_user']),
+                               'notified'   => TRANSLATE_YESNO($content['notified']),
+                               'prices_cnt' => GET_TOTAL_DATA($content['id'], "rallye_prices", "id", "rallye_id", true),
+                               'descr'      => COMPILE_CODE($content['descr']),
+                               'min_users'  => $content['min_users'],
+                               'min_prices' => $content['min_prices'],
                        );
 
-                       // Free memory
-                       SQL_FREERESULT($result_prices);
-                       SQL_FREERESULT($result_user);
-
                        // Is the rallye active or not?
-                       switch ($active)
+                       switch ($content['is_active'])
                        {
                        case "Y":
                                // Rallye is active so do not edit it!
-                               $content['select'] = "<div class=\"big\">".$id."</strong>";
+                               $content['select'] = "<div class=\"big\">".$content['id']."</div>";
                                $content['active_title'] = getMessage('RALLYE_DEACTIVATE_NOW');
                                $content['active'] = 0;
                                break;
@@ -327,7 +341,7 @@ ORDER BY start_time DESC",
                        }
 
                        // Notification to members?
-                       switch ($notify)
+                       switch ($content['send_notify'])
                        {
                        case "Y":
                                $content['notify_title'] = getMessage('RALLYE_STOP_NOTIFY_NOW');
@@ -341,7 +355,7 @@ ORDER BY start_time DESC",
                        }
 
                        // Auto-add of new joined members?
-                       switch ($auto_add)
+                       switch ($content['auto_add_new_user'])
                        {
                        case "Y":
                                $content['auto_title'] = getMessage('RALLYE_STOP_AUTO_ADD_NOW');