A lot while() conditions rewritten to SQL_FETCHARRAY(), see bug #107, @TODO tags...
[mailer.git] / inc / libs / task_functions.php
1 <?php
2 /************************************************************************
3  * MXChange v0.2.1                                    Start: 08/03/2004 *
4  * ================                             Last change: 11/19/2005 *
5  *                                                                      *
6  * -------------------------------------------------------------------- *
7  * File              : task_functions.php                               *
8  * -------------------------------------------------------------------- *
9  * Short description : Special task functions                           *
10  * -------------------------------------------------------------------- *
11  * Kurzbeschreibung  : Spezielle task-Funktionen                        *
12  * -------------------------------------------------------------------- *
13  *                                                                      *
14  * -------------------------------------------------------------------- *
15  * Copyright (c) 2003 - 2008 by Roland Haeder                           *
16  * For more information visit: http://www.mxchange.org                  *
17  *                                                                      *
18  * This program is free software; you can redistribute it and/or modify *
19  * it under the terms of the GNU General Public License as published by *
20  * the Free Software Foundation; either version 2 of the License, or    *
21  * (at your option) any later version.                                  *
22  *                                                                      *
23  * This program is distributed in the hope that it will be useful,      *
24  * but WITHOUT ANY WARRANTY; without even the implied warranty of       *
25  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the        *
26  * GNU General Public License for more details.                         *
27  *                                                                      *
28  * You should have received a copy of the GNU General Public License    *
29  * along with this program; if not, write to the Free Software          *
30  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
31  * MA  02110-1301  USA                                                  *
32  ************************************************************************/
33
34 // Some security stuff...
35 if (!defined('__SECURITY')) {
36         $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
37         require($INC);
38 }
39
40 //
41 // The advanced overview shows detailed informations to your exchange script:
42 //  - Unconfirmed / locked accounts
43 //  - Mails waiting to be approved
44 //  - Open tasks
45 //  - Your own tasks
46 //  - ...
47 //
48 // @TODO Move all extension-dependent queries into filters
49 function OUTPUT_ADVANCED_OVERVIEW (&$result_main) {
50         // Init variables/arrays
51         $EXTRAS = "";
52         $OUT = "";
53         $WHATs = array();
54         $DESCRs = array();
55         $TITLEs = array();
56
57         // Chheck for new extensions and updates
58         $JOBS_DONE = OUTPUT_STANDARD_OVERVIEW($result_main);
59
60         // Init SQLs
61         INIT_SQLS();
62
63         if (!$JOBS_DONE) {
64                 // New extensions or updates found
65                 $value = GET_TOTAL_DATA(GET_CURRENT_ADMIN_ID(), "task_system", "id", "assigned_admin", true, " AND `status`='NEW' AND task_type='EXTENSION_UPDATE'");
66
67                 if ($value > 0) {
68                         define('__TASK_UPDATE_VALUE', "<a href=\"{!URL!}/modules.php?module=admin&amp;what=list_task&amp;type=updates\">".$value."</a>");
69                 } else {
70                         define('__TASK_UPDATE_VALUE', "0");
71                 }
72         } else {
73                 define('__TASK_UPDATE_VALUE', "0");
74         }
75
76         //
77         // First check for all account status seperately
78         //
79         // Confirmed accounts
80         $value = GET_TOTAL_DATA("CONFIRMED", "user_data", "userid", "status", true);
81
82         if ($value > 0) {
83                 define('__CONFIRMED_VALUE', "<a href=\"{!URL!}/modules.php?module=admin&amp;what=list_user&amp;status=confirmed\">".$value."</a>");
84         } else {
85                 define('__CONFIRMED_VALUE', "0");
86         }
87
88         // Unconfirmed accounts
89         $value = GET_TOTAL_DATA("UNCONFIRMED", "user_data", "userid", "status", true);
90
91         if ($value > 0) {
92                 define('__UNCONFIRMED_VALUE', "<a href=\"{!URL!}/modules.php?module=admin&amp;what=chk_regs\">".$value."</a>");
93         } else {
94                 define('__UNCONFIRMED_VALUE', "0");
95         }
96
97         // And locked accounts
98         $value = GET_TOTAL_DATA("LOCKED", "user_data", "userid", "status", true);
99
100         if ($value > 0) {
101                 define('__LOCKED_VALUE', "<a href=\"{!URL!}/modules.php?module=admin&amp;what=list_user&amp;status=locked\">".$value."</a>");
102         } else {
103                 define('__LOCKED_VALUE', "0");
104         }
105
106         //
107         // Unassigned tasks
108         //
109         $value = GET_TOTAL_DATA("0", "task_system", "id", "assigned_admin", true, " AND `status` != 'DELETED'");
110
111         if ($value > 0) {
112                 define('__TASK_NEW_VALUE', "<a href=\"{!URL!}/modules.php?module=admin&amp;what=list_task&amp;type=unassigned\">".$value."</a>");
113         } else {
114                 define('__TASK_NEW_VALUE', "0");
115         }
116
117         //
118         // Closed tasks
119         //
120         $value = GET_TOTAL_DATA("CLOSED", "task_system", "id", "status", true);
121
122         if ($value > 0) {
123                 define('__TASK_CLOSED_VALUE', "<a href=\"{!URL!}/modules.php?module=admin&amp;what=list_task&amp;type=closed\">".$value."</a>");
124         } else {
125                 define('__TASK_CLOSED_VALUE', "0");
126         }
127
128         //
129         // Deleted tasks
130         //
131         $value = GET_TOTAL_DATA("DELETED", "task_system", "id", "status", true);
132
133         if ($value > 0) {
134                 define('__TASK_DELETED_VALUE', "<a href=\"{!URL!}/modules.php?module=admin&amp;what=list_task&amp;type=deleted\">".$value."</a>");
135         } else {
136                 define('__TASK_DELETED_VALUE', "0");
137         }
138
139         //
140         // Solved tasks
141         //
142         $value = GET_TOTAL_DATA("SOLVED", "task_system", "id", "status", true, sprintf(" AND assigned_admin=%s", GET_CURRENT_ADMIN_ID()));
143
144         if ($value > 0) {
145                 define('__TASK_SOLVED_VALUE', "<a href=\"{!URL!}/modules.php?module=admin&amp;what=list_task&amp;type=solved\">".$value."</a>");
146         } else {
147                 define('__TASK_SOLVED_VALUE', "0");
148         }
149
150         //
151         // Your tasks
152         //
153         $value = GET_TOTAL_DATA(GET_CURRENT_ADMIN_ID(), "task_system", "id", "assigned_admin", true, " AND status = 'NEW' AND task_type != 'EXTENSION_UPDATE'");
154
155         if ($value > 0) {
156                 define('__TASK_YOUR_VALUE', "<a href=\"{!URL!}/modules.php?module=admin&amp;what=list_task\">".$value."</a>");
157         } else {
158                 define('__TASK_YOUR_VALUE', "0");
159         }
160
161         //
162         // Mails waiting to be approved
163         //
164         $value = GET_TOTAL_DATA("ADMIN", "pool", "id", "data_type", true);
165
166         if ($value > 0) {
167                 define('__MAIL_ADMIN_VALUE', "<a href=\"{!URL!}/modules.php?module=admin&amp;what=unlock_emails\">".$value."</a>");
168         } else {
169                 define('__MAIL_ADMIN_VALUE', "0");
170         }
171
172         //
173         // Unfinished mail orders
174         //
175         $value = GET_TOTAL_DATA("TEMP", "pool", "id", "data_type", true);
176
177         if ($value > 0) {
178                 define('__MAIL_TEMP_VALUE', "<a href=\"{!URL!}/modules.php?module=admin&amp;what=email_details\">".$value."</a>");
179         } else {
180                 define('__MAIL_TEMP_VALUE', "0");
181         }
182
183         //
184         // Sent mail orders
185         //
186         $value = GET_TOTAL_DATA("SEND", "pool", "id", "data_type", true);
187
188         if ($value > 0) {
189                 define('__MAIL_SEND_VALUE', "<a href=\"{!URL!}/modules.php?module=admin&amp;what=email_archiv\">".$value."</a>");
190         } else {
191                 define('__MAIL_SEND_VALUE', "0");
192         }
193
194         //
195         // Autopurged mails
196         //
197         if (EXT_IS_ACTIVE("autopurge")) {
198                 // Get auto-purged mails
199                 $value = GET_TOTAL_DATA("DELETED", "pool", "id", "data_type", true);
200
201                 if ($value > 0) {
202                         define('__MAIL_DELETED_VALUE', "<a href=\"{!URL!}/modules.php?module=admin&amp;what=email_details\">".$value."</a>");
203                 } else {
204                         define('__MAIL_DELETED_VALUE', "0");
205                 }
206
207                 //
208                 // Autopurged bonus mails
209                 //
210                 if (GET_EXT_VERSION("bonus") >= "0.1.8") {
211                         // Get auto-purged bonus mails
212                         $value = GET_TOTAL_DATA("DELETED", "bonus", "id", "data_type", true);
213
214                         if ($value > 0) {
215                                 define('__MAIL_BONUS_AP_VALUE', "<a href=\"{!URL!}/modules.php?module=admin&amp;what=email_details\">".$value."</a>");
216                         } else {
217                                 define('__MAIL_BONUS_AP_VALUE', "0");
218                         }
219                 } elseif (EXT_IS_ACTIVE("bonus")) {
220                         define('__MAIL_BONUS_AP_VALUE', sprintf(getMessage('ADMIN_EXT_BONUS_OUTDATED', "0.1.8")));
221                 } else {
222                         define('__MAIL_BONUS_AP_VALUE', "<span class=\"admin_note\">{--ADMIN_EXT_BONUS_404--}</span>");
223                 }
224         } else {
225                 define('__MAIL_BONUS_AP_VALUE', "<span class=\"admin_note\">{--ADMIN_EXT_AUTOPURGE_404--}</span>");
226                 define('__MAIL_DELETED_VALUE', "<span class=\"admin_note\">{--ADMIN_EXT_AUTOPURGE_404--}</span>");
227         }
228
229         //
230         // Sent bonus mails
231         //
232         if (GET_EXT_VERSION("bonus") >= "0.1.8") {
233                 // Get sent bonus mails (but not notifications)
234                 $value = GET_TOTAL_DATA("SEND", "bonus", "id", "data_type", true, " AND is_notify='N'");
235
236                 if ($value > 0) {
237                         define('__MAIL_BONUS_SEND_VALUE', "<a href=\"{!URL!}/modules.php?module=admin&amp;what=email_details\">".$value."</a>");
238                 } else {
239                         define('__MAIL_BONUS_SEND_VALUE', "0");
240                 }
241         } elseif (EXT_IS_ACTIVE("bonus")) {
242                 define('__MAIL_BONUS_SEND_VALUE', sprintf(getMessage('ADMIN_EXT_BONUS_OUTDATED', "0.1.8")));
243         } else {
244                 define('__MAIL_BONUS_SEND_VALUE', getMessage('ADMIN_EXT_BONUS_404'));
245         }
246
247         if (EXT_IS_ACTIVE("autopurge")) {
248                 // Start finding them...
249                 $since = getConfig('ap_inactive_since');
250                 $EXCLUDE_LIST = "";
251                 if (getConfig('def_refid') > 0) {
252                         $EXCLUDE_LIST = " AND d.userid != ".getConfig('def_refid')."";
253                 } // END - if
254
255                 // Check for more extensions
256                 // @TODO These can be rewritten to filter
257                 if (EXT_IS_ACTIVE("beg"))                  $EXCLUDE_LIST .= " AND d.userid != ".getConfig('beg_uid')."";
258                 if (EXT_IS_ACTIVE("bonus"))                $EXCLUDE_LIST .= " AND d.userid != ".getConfig('bonus_uid')."";
259                 if (EXT_IS_ACTIVE("doubler"))              $EXCLUDE_LIST .= " AND d.userid != ".getConfig('doubler_uid')."";
260                 if (GET_EXT_VERSION("holiday") >= "0.1.3") $EXCLUDE_LIST .= " AND d.holiday_active='N'";
261
262                 // Check for all accounts
263                 ADD_SQL("SELECT DISTINCT d.userid, d.email, d.last_online
264 FROM `{!_MYSQL_PREFIX!}_user_data` AS d
265 WHERE d.`status`='CONFIRMED' AND d.joined < (UNIX_TIMESTAMP() - ".$since.") AND d.last_online < (UNIX_TIMESTAMP() - ".$since.") AND d.ap_notified < (UNIX_TIMESTAMP() - ".$since.")
266 ".$EXCLUDE_LIST."
267 ORDER BY d.userid");
268                 $WHATs[]  = "list_autopurge";
269                 $DESCRs[] = getMessage('ADMIN_TASK_INACTIVE_AUTOPURGE');
270                 $TITLEs[] = getMessage('ADMIN_TASK_INACTIVE_AUTOPURGE_TITLE');
271         }
272
273         if (GET_EXT_VERSION("sql_patches") >= "0.3.4") {
274                 // Check for accounts without referal
275                 ADD_SQL("SELECT userid FROM `{!_MYSQL_PREFIX!}_user_data` WHERE refid='0' ORDER BY userid");
276                 $DESCRs[] = getMessage('ADMIN_TASK_LIST_ACCOUNT_NOREF');
277                 $TITLEs[] = getMessage('ADMIN_TASK_LIST_ACCOUNT_NOREF_TITLE');
278                 $WHATs[]  = "list_user&amp;mode=norefs";
279         }
280
281         if (EXT_IS_ACTIVE("payout")) {
282                 // List new payout requests
283                 ADD_SQL("SELECT userid FROM `{!_MYSQL_PREFIX!}_user_payouts` WHERE `status`='NEW' ORDER BY userid");
284                 $WHATs[]  = "list_payouts";
285                 $DESCRs[] = getMessage('ADMIN_TASK_LIST_PAYOUTS_WAITING');
286                 $TITLEs[] = getMessage('ADMIN_TASK_LIST_PAYOUTS_WAITING_TITLE');
287                 ADD_SQL("SELECT userid FROM `{!_MYSQL_PREFIX!}_user_payouts` ORDER BY userid");
288                 $WHATs[]  = "list_payouts";
289                 $DESCRs[] = getMessage('ADMIN_TASK_LIST_PAYOUTS_ALL');
290                 $TITLEs[] = getMessage('ADMIN_TASK_LIST_PAYOUTS_ALL_TITLE');
291         }
292
293         if (EXT_IS_ACTIVE("wernis")) {
294                 // List new wernis requests
295                 ADD_SQL("SELECT userid FROM `{!_MYSQL_PREFIX!}_user_wernis` ORDER BY userid");
296                 $WHATs[]  = "list_wernis";
297                 $DESCRs[] = getMessage('ADMIN_TASK_LIST_WERNIS_ALL');
298                 $TITLEs[] = getMessage('ADMIN_TASK_LIST_WERNIS_ALL_TITLE');
299         }
300
301         if (EXT_IS_ACTIVE("primera")) {
302                 // List new primera requests
303                 ADD_SQL("SELECT userid FROM `{!_MYSQL_PREFIX!}_user_primera` ORDER BY userid");
304                 $WHATs[]  = "list_primera";
305                 $DESCRs[] = getMessage('ADMIN_TASK_LIST_PRIMERA_ALL');
306                 $TITLEs[] = getMessage('ADMIN_TASK_LIST_PRIMERA_ALL_TITLE');
307         }
308
309         if (EXT_IS_ACTIVE("holiday")) {
310                 // List holiday requests
311                 ADD_SQL("SELECT userid FROM `{!_MYSQL_PREFIX!}_user_holidays` ORDER BY userid");
312                 $WHATs[]  = "list_holiday";
313                 $DESCRs[] = getMessage('ADMIN_TASK_LIST_HOLIDAYS');
314                 $TITLEs[] = getMessage('ADMIN_TASK_LIST_HOLIDAYS_TITLE');
315         }
316
317         if (GET_EXT_VERSION("bonus") >= "0.8.7") {
318                 // List all notifications
319                 ADD_SQL("SELECT id FROM `{!_MYSQL_PREFIX!}_bonus` WHERE is_notify='Y' ORDER BY timestamp DESC");
320                 $WHATs[]  = "list_notifications";
321                 $DESCRs[] = getMessage('ADMIN_TASK_LIST_NOTIFICATIONS');
322                 $TITLEs[] = getMessage('ADMIN_TASK_LIST_NOTIFICATIONS_TITLE');
323         } // END - if
324
325         if (GET_EXT_VERSION("bonus") >= "0.2.3") {
326                 // Active rallye
327                 if (GET_EXT_VERSION("bonus") >= "0.6.9") {
328                         // Add more bonus points here
329                         $USE = "(0";
330                         if (getConfig('bonus_click_yn') == "Y") $USE .= " + turbo_bonus";
331                         if (getConfig('bonus_login_yn') == "Y") $USE .= " + login_bonus";
332                         if (getConfig('bonus_order_yn') == "Y") $USE .= " + bonus_order";
333                         if (getConfig('bonus_stats_yn') == "Y") $USE .= " + bonus_stats";
334                         if (getConfig('bonus_ref_yn')   == "Y") $USE .= " + bonus_ref";
335                         $USE .= ")";
336                 } else {
337                         // Old version ???
338                         $USE = "turbo_bonus";
339                 }
340
341                 // Autopurge installed?
342                 $lastOnline = "";
343                 if ((EXT_IS_ACTIVE("autopurge")) && (getConfig('autopurge_inactive') == "Y") && (getConfig('ap_inactive_since') > 0)) {
344                         // Use last online timestamp to keep inactive members away from here
345                         $lastOnline   = sprintf(" AND last_online >= (UNIX_TIMESTAMP() - %s)", getConfig('ap_inactive_since'));
346                 }
347
348                 ADD_SQL("SELECT ".$USE." AS points
349 FROM `{!_MYSQL_PREFIX!}_user_data`
350 WHERE `status`='CONFIRMED' AND ".$USE.">0".$lastOnline."
351 ORDER BY points DESC, userid");
352                 $WHATs[]  = "list_bonus";
353                 $DESCRs[] = getMessage('ADMIN_TASK_LIST_BONUS');
354                 $TITLEs[] = getMessage('ADMIN_TASK_LIST_BONUS_TITLE');
355         }
356
357         if (GET_EXT_VERSION("beg") >= "0.1.2") {
358                 // Begging rallye
359
360                 // Autopurge installed?
361                 $lastOnline = "";
362                 if ((EXT_IS_ACTIVE("autopurge")) && (getConfig('autopurge_inactive') == "Y") && (getConfig('ap_inactive_since') > 0)) {
363                         // Use last online timestamp to keep inactive members away from here
364                         $lastOnline   = sprintf(" AND last_online >= (UNIX_TIMESTAMP() - %s)", getConfig('ap_inactive_since'));
365                 }
366
367                 ADD_SQL("SELECT userid FROM `{!_MYSQL_PREFIX!}_user_data`
368 WHERE `status`='CONFIRMED' AND beg_points>0".$lastOnline."
369 ORDER BY beg_points DESC, userid");
370                 $WHATs[]  = "list_beg";
371                 $DESCRs[] = getMessage('ADMIN_TASK_LIST_BEG');
372                 $TITLEs[] = getMessage('ADMIN_TASK_LIST_BEG_TITLE');
373         }
374
375         if (EXT_IS_ACTIVE("doubler")) {
376                 // List waiting payouts
377                 ADD_SQL("SELECT id FROM `{!_MYSQL_PREFIX!}_doubler` WHERE completed='N' ORDER BY `id`");
378                 $WHATs[]  = "list_doubler&amp;mode=waiting&amp;select=all";
379                 $DESCRs[] = getMessage('ADMIN_TASK_LIST_DOUBLER_WAITING');
380                 $TITLEs[] = getMessage('ADMIN_TASK_LIST_DOUBLER_WAITING_TITLE');
381                 ADD_SQL("SELECT id FROM `{!_MYSQL_PREFIX!}_doubler` ORDER BY `id`");
382                 $WHATs[]  = "list_doubler";
383                 $DESCRs[] = getMessage('ADMIN_TASK_LIST_DOUBLER_ALL');
384                 $TITLEs[] = getMessage('ADMIN_TASK_LIST_DOUBLER_ALL_TITLE');
385         }
386
387         //
388         // All referal banner
389         //
390         ADD_SQL("SELECT id FROM `{!_MYSQL_PREFIX!}_refbanner` ORDER BY `id`");
391         $WHATs[] = "refbanner";
392         $DESCRs[] = getMessage('ADMIN_TASK_LIST_REFBANNER_ALL');
393         $TITLEs[] = getMessage('ADMIN_TASK_LIST_REFBANNER_ALL_TITLE');
394
395         //
396         // All activated referal banner
397         //
398         ADD_SQL("SELECT id FROM `{!_MYSQL_PREFIX!}_refbanner` WHERE `visible`='Y' ORDER BY `id`");
399         $WHATs[] = "refbanner";
400         $DESCRs[] = getMessage('ADMIN_TASK_LIST_REFBANNER_ACTIVE');
401         $TITLEs[] = getMessage('ADMIN_TASK_LIST_REFBANNER_ACTIVE_TITLE');
402
403         //
404         // All extensions
405         //
406         ADD_SQL("SELECT id FROM `{!_MYSQL_PREFIX!}_extensions` ORDER BY `id`");
407         $WHATs[] = "extensions";
408         $DESCRs[] = getMessage('ADMIN_TASK_LIST_EXTENSIONS_ALL');
409         $TITLEs[] = getMessage('ADMIN_TASK_LIST_EXTENSIONS_ALL_TITLE');
410
411         //
412         // All activated extensions
413         //
414         ADD_SQL("SELECT id FROM `{!_MYSQL_PREFIX!}_extensions` WHERE ext_active='Y' ORDER BY `id`");
415         $WHATs[]  = "extensions&amp;active=Y";
416         $DESCRs[] = getMessage('ADMIN_TASK_LIST_EXTENSIONS_ACTIVE');
417         $TITLEs[] = getMessage('ADMIN_TASK_LIST_EXTENSIONS_ACTIVE_TITLE');
418
419         if (EXT_IS_ACTIVE("engine")) {
420                 // List all export accounts
421                 ADD_SQL("SELECT id FROM `{!_MYSQL_PREFIX!}_engine_accounts` ORDER BY `id`");
422                 $WHATs[]  = "list_engine";
423                 $DESCRs[] = getMessage('ADMIN_TASK_LIST_ENGINE');
424                 $TITLEs[] = getMessage('ADMIN_TASK_LIST_ENGINE_TITLE');
425
426                 // List all pending accounts
427                 ADD_SQL("SELECT id FROM `{!_MYSQL_PREFIX!}_engine_accounts` WHERE `status`='UNCONFIRMED' ORDER BY `id`");
428                 $WHATs[]  = "unlock_engine";
429                 $DESCRs[] = getMessage('ADMIN_TASK_UNLOCK_ENGINE');
430                 $TITLEs[] = getMessage('ADMIN_TASK_UNLOCK_ENGINE_TITLE');
431
432                 // List all safes
433                 ADD_SQL("SELECT id FROM `{!_MYSQL_PREFIX!}_engine_safe` ORDER BY `id`");
434                 $WHATs[]  = "list_engine&amp;mode=safe";
435                 $DESCRs[] = getMessage('ADMIN_TASK_LIST_ENGINE_SAFES');
436                 $TITLEs[] = getMessage('ADMIN_TASK_LIST_ENGINE_SAFES_TITLE');
437
438                 // List all export URLs
439                 ADD_SQL("SELECT id FROM `{!_MYSQL_PREFIX!}_engine_urls` ORDER BY `id`");
440                 $WHATs[]  = "engine_urls";
441                 $DESCRs[] = getMessage('ADMIN_TASK_LIST_ENGINE_URLS');
442                 $TITLEs[] = getMessage('ADMIN_TASK_LIST_ENGINE_URLS_TITLE');
443         }
444
445         if (EXT_IS_ACTIVE("sponsor")) {
446                 // List all sponsors
447                 ADD_SQL("SELECT id FROM `{!_MYSQL_PREFIX!}_sponsor_data` ORDER BY `id`");
448                 $WHATs[]  = "list_sponsor";
449                 $DESCRs[] = getMessage('ADMIN_TASK_LIST_SPONSOR');
450                 $TITLEs[] = getMessage('ADMIN_TASK_LIST_SPONSOR_TITLE');
451
452                 // List confirmed sponsor accounts
453                 ADD_SQL("SELECT id FROM `{!_MYSQL_PREFIX!}_sponsor_data` WHERE `status`='CONFIRMED' ORDER BY `id`");
454                 $WHATs[]  = "list_sponsor";
455                 $DESCRs[] = getMessage('ADMIN_TASK_LIST_SPONSOR_CONFIRMED');
456                 $TITLEs[] = getMessage('ADMIN_TASK_LIST_SPONSOR_CONFIRMED_TITLE');
457
458                 // List unconfirmed sponsor accounts
459                 ADD_SQL("SELECT id FROM `{!_MYSQL_PREFIX!}_sponsor_data` WHERE `status`='UNCONFIRMED' ORDER BY `id`");
460                 $WHATs[]  = "list_sponsor";
461                 $DESCRs[] = getMessage('ADMIN_TASK_LIST_SPONSOR_UNCONFIRMED');
462                 $TITLEs[] = getMessage('ADMIN_TASK_LIST_SPONSOR_UNCONFIRMED_TITLE');
463
464                 // List locked sponsor accounts
465                 ADD_SQL("SELECT id FROM `{!_MYSQL_PREFIX!}_sponsor_data` WHERE `status`='LOCKED' ORDER BY `id`");
466                 $WHATs[]  = "list_sponsor";
467                 $DESCRs[] = getMessage('ADMIN_TASK_LIST_SPONSOR_LOCKED');
468                 $TITLEs[] = getMessage('ADMIN_TASK_LIST_SPONSOR_LOCKED_TITLE');
469
470                 // List waiting sponsor accounts to be approved
471                 ADD_SQL("SELECT id FROM `{!_MYSQL_PREFIX!}_sponsor_data` WHERE `status`='PENDING' ORDER BY `id`");
472                 $WHATs[]  = "unlock_sponsor";
473                 $DESCRs[] = getMessage('ADMIN_TASK_LIST_SPONSOR_PENDING');
474                 $TITLEs[] = getMessage('ADMIN_TASK_LIST_SPONSOR_PENDING_TITLE');
475
476                 // Waiting payments
477                 ADD_SQL("SELECT id FROM `{!_MYSQL_PREFIX!}_sponsor_orders` WHERE pay_`status`='PENDING' ORDER BY `id`");
478                 $WHATs[]  = "list_sponsor_pays";
479                 $DESCRs[] = getMessage('ADMIN_TASK_LIST_SPONSOR_ORDERS');
480                 $TITLEs[] = getMessage('ADMIN_TASK_LIST_SPONSOR_ORDERS_TITLE');
481         }
482
483         if (EXT_IS_ACTIVE("country")) {
484                 // List country codes
485                 ADD_SQL("SELECT id FROM `{!_MYSQL_PREFIX!}_countries` ORDER BY `id`");
486                 $WHATs[]  = "list_country";
487                 $DESCRs[] = getMessage('ADMIN_TASK_LIST_COUNTRY');
488                 $TITLEs[] = getMessage('ADMIN_TASK_LIST_COUNTRY_TITLE');
489         }
490
491         if (EXT_IS_ACTIVE("theme")) {
492                 // List all themes
493                 ADD_SQL("SELECT id FROM `{!_MYSQL_PREFIX!}_themes` ORDER BY `id`");
494                 $WHATs[]  = "theme_edit";
495                 $DESCRs[] = getMessage('ADMIN_TASK_LIST_THEME_ALL');
496                 $TITLEs[] = getMessage('ADMIN_TASK_LIST_THEME_ALL_TITLE');
497
498                 // List active themes
499                 ADD_SQL("SELECT id FROM `{!_MYSQL_PREFIX!}_themes` WHERE theme_active='Y' ORDER BY `id`");
500                 $WHATs[]  = "theme_edit";
501                 $DESCRs[] = getMessage('ADMIN_TASK_LIST_THEME_ACTIVE');
502                 $TITLEs[] = getMessage('ADMIN_TASK_LIST_THEME_ACTIVE_TITLE');
503         }
504
505         if (EXT_IS_ACTIVE("admins")) {
506                 // List all administrator logins
507                 ADD_SQL("SELECT id FROM `{!_MYSQL_PREFIX!}_admins` ORDER BY `id`");
508                 $WHATs[]  = "admins_edit";
509                 $DESCRs[] = getMessage('ADMIN_TASK_LIST_ADMINS_ALL');
510                 $TITLEs[] = getMessage('ADMIN_TASK_LIST_ADMINS_ALL_TITLE');
511         }
512
513         if (EXT_IS_ACTIVE("surfbar")) {
514                 // List all URLs in surfbar
515                 ADD_SQL("SELECT id FROM `{!_MYSQL_PREFIX!}_surfbar_urls` ORDER BY `id`");
516                 $WHATs[]  = "list_surfbar_urls";
517                 $DESCRs[] = getMessage('ADMIN_TASK_LIST_SURFBAR_URLS_ALL');
518                 $TITLEs[] = getMessage('ADMIN_TASK_LIST_SURFBAR_URLS_ALL_TITLE');
519
520                 // List all pending URLs in surfbar
521                 ADD_SQL("SELECT id FROM `{!_MYSQL_PREFIX!}_surfbar_urls` WHERE `status`='PENDING' ORDER BY `id`");
522                 $WHATs[]  = "unlock_surfbar_urls";
523                 $DESCRs[] = getMessage('ADMIN_TASK_LIST_SURFBAR_URLS_PENDING');
524                 $TITLEs[] = getMessage('ADMIN_TASK_LIST_SURFBAR_URLS_PENDING_TITLE');
525         }
526
527         // Generate extra overview rows
528         $EXTRAS .= TASK_CREATE_EXTRA_ROWS($WHATs, $DESCRs, $TITLEs);
529
530         // If empty just keep a forced-space left for CSS issues
531         if (empty($EXTRAS)) $EXTRAS = "&nbsp;";
532
533         // Add compiled string to constant for final template
534         define('__OVERVIEW_EXTRA_TABLE', $EXTRAS);
535
536         // Simply load the template... :-)
537         LOAD_TEMPLATE("admin_overview_task");
538 }
539
540 //
541 function TASK_CREATE_EXTRA_ROWS ($WHATs, $DESCRs, $TITLEs) {
542         // Init variables
543         $OUT = ""; $SW = 2;
544
545         // Sadly this cannot be rewritten to a filter... :(
546         foreach (GET_SQLS() as $key => $sql) {
547                 // Run SQL command, get line numbers and free memory
548                 $result = SQL_QUERY($sql, __FUNCTION__, __LINE__);
549
550                 // Get rows
551                 $value = SQL_NUMROWS($result);
552
553                 // Free result
554                 SQL_FREERESULT($result);
555
556                 // Prepare array for output
557                 $content = array(
558                         'row_descr' => $DESCRs[$key],
559                         'row_sw'    => $SW,
560                         'bottom'    => "",
561                 );
562
563                 // Rewrite CSS class if not last entry is reached
564                 if ($key < (COUNT_SQLS() - 1)) $content['bottom'] = "bottom2";
565
566                 if (($value > 0) && (!empty($WHATs[$key]))) {
567                         if (empty($TITLEs[$key])) $TITLEs[$key] = getMessage('ADMIN_TASK_UNKNOWN_LIST_TITLE');
568                         $content['row_link'] = "<a href=\"{!URL!}/modules.php?module=admin&amp;what=".$WHATs[$key]."\" title=\"".$TITLEs[$key]."\">".$value."</a>";
569                 } else {
570                         $content['row_link'] = 0;
571                 }
572
573                 // And insert the final string into extras template
574                 $OUT .= LOAD_TEMPLATE("admin_overview_task_rows", true, $content);
575
576                 // Switch color
577                 $SW = 3 - $SW;
578         } // END - if
579
580         // Return output in the template
581         return LOAD_TEMPLATE("admin_overview_task_extras", true, $OUT);
582 }
583
584 //
585 ?>