Copyright updated
[mailer.git] / 0.2.1 / inc / modules / admin / overview-inc.php
1 <?php\r
2 /************************************************************************\r
3  * MXChange v0.2.1                                    Start: 07/13/2004 *\r
4  * ===============                              Last change: 08/02/2004 *\r
5  *                                                                      *\r
6  * -------------------------------------------------------------------- *\r
7  * File              : overview-inc.php                                 *\r
8  * -------------------------------------------------------------------- *\r
9  * Short description : Output standard task management                  *\r
10  * -------------------------------------------------------------------- *\r
11  * Kurzbeschreibung  : Standart-Aufgaben-Management ausgeben            *\r
12  * -------------------------------------------------------------------- *\r
13  *                                                                      *\r
14  * -------------------------------------------------------------------- *\r
15  * Copyright (c) 2003 - 2008 by Roland Haeder                           *\r
16  * For more information visit: http://www.mxchange.org                  *\r
17  *                                                                      *\r
18  * This program is free software; you can redistribute it and/or modify *\r
19  * it under the terms of the GNU General Public License as published by *\r
20  * the Free Software Foundation; either version 2 of the License, or    *\r
21  * (at your option) any later version.                                  *\r
22  *                                                                      *\r
23  * This program is distributed in the hope that it will be useful,      *\r
24  * but WITHOUT ANY WARRANTY; without even the implied warranty of       *\r
25  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the        *\r
26  * GNU General Public License for more details.                         *\r
27  *                                                                      *\r
28  * You should have received a copy of the GNU General Public License    *\r
29  * along with this program; if not, write to the Free Software          *\r
30  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *\r
31  * MA  02110-1301  USA                                                  *\r
32  ************************************************************************/\r
33 \r
34 // Some security stuff...\r
35 if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))\r
36 {\r
37         $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4)."/security.php";\r
38         require($INC);\r
39 }\r
40 \r
41 function OUTPUT_STANDARD_OVERVIEW(&$result_tasks)\r
42 {\r
43         global $EXTENSIONS, $KEEP_ACTIVE;\r
44 \r
45         // First check for solved and not assigned tasks and assign them to current admin\r
46         $result_task = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_task_system SET assigned_admin='%s' WHERE assigned_admin < 1 AND status != 'NEW'",\r
47          array(GET_ADMIN_ID($_COOKIE['admin_login'])), __FILE__, __LINE__);\r
48 \r
49         // We currently don't want to install an extension so let's find out if we need...\r
50         $EXT_LOAD_MODE = "register"; $JOBS_DONE = true;\r
51 \r
52         // Open the extension directory\r
53         $handle = opendir(PATH."inc/extensions/") or mxchange_die("Cannot read extension directory!");\r
54         while ($file = readdir($handle)) {\r
55                 // Is this file an extension?\r
56                 if ((substr($file, 0, 4) == "ext-") && (substr($file, -4) == ".php")) {\r
57                         //* DEBUG: */ echo $file."<br />\n";\r
58                         // Possible newly installed extension found so we extract extension's name\r
59                         $ext = strtolower(substr($file, 4, -4)); // Keep always extension names on lower case!!!\r
60 \r
61                         // Check if extension is installed or not\r
62                         $ext_ver = "";\r
63                         if ((!is_array($EXTENSIONS['ext_version'])) || (empty($EXTENSIONS['ext_version'][$ext]))) {\r
64                                 // Load data from database\r
65                                 $result = SQL_QUERY_ESC("SELECT id, ext_version FROM "._MYSQL_PREFIX."_extensions WHERE ext_name='%s' LIMIT 1",\r
66                                  array($ext), __FILE__, __LINE__);\r
67                         } else {\r
68                                 // Load version from cache\r
69                                 if (!empty($EXTENSIONS['ext_version'][$ext])) {\r
70                                         // Extension is installed so we can get it's version number\r
71                                         $ext_ver = $EXTENSIONS['ext_version'][$ext];\r
72                                 } else {\r
73                                         // Extension is not installed so no version number was found\r
74                                         $ext_ver = "";\r
75                                 }\r
76 \r
77                                 // Disable load from database\r
78                                 $result = false;\r
79                         }\r
80 \r
81                         // Is the extension not yet installed?\r
82                         if ((SQL_NUMROWS($result) == 0) && (empty($ext_ver))) {\r
83                                 // Not installed and do we have created a task for the admin?\r
84                                 $ext_subj = "[".$ext.":] ".ADMIN_NEW_EXT_SUBJ;\r
85                                 //* DEBUG: */ echo $ext.":".$ext_ver."=";\r
86                                 $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_task_system WHERE subject='%s' LIMIT 1",\r
87                                  array($ext_subj), __FILE__, __LINE__);\r
88                                 //* DEBUG: */ echo SQL_NUMROWS($result)."<br />\n";\r
89                                 if ((SQL_NUMROWS($result) == 0) && (GET_EXT_VERSION($ext) == ""))\r
90                                 {\r
91                                         // Template file\r
92                                         $tpl = sprintf("%stemplates/%s/html/ext/ext_%s.tpl",\r
93                                                 PATH,\r
94                                                 GET_LANGUAGE(),\r
95                                                 $ext\r
96                                         );\r
97 \r
98                                         // Load text for task\r
99                                         if ((file_exists($tpl)) && (is_readable($tpl)))\r
100                                         {\r
101                                                 // Load extension's own text template (HTML!)\r
102                                                 $MSG = LOAD_TEMPLATE("ext_".$ext, true);\r
103                                         }\r
104                                          else\r
105                                         {\r
106                                                 // Load default message\r
107                                                 $MSG = LOAD_EMAIL_TEMPLATE("admin_new_ext","", 0);\r
108                                         }\r
109 \r
110                                         // Task not created so it's a brand-new extension which we need to register and create a task for!\r
111                                         $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_task_system (assigned_admin, userid, status, task_type, subject, text, task_created)\r
112 VALUES ('%s', '0', 'NEW', 'EXTENSION', '%s', '%s', UNIX_TIMESTAMP())",\r
113  array(\r
114         GET_ADMIN_ID($_COOKIE['admin_login']),\r
115         $ext_subj,\r
116         addslashes($MSG),\r
117 ),  __FILE__, __LINE__, true, false);\r
118                                 }\r
119 \r
120                                 // Free memory\r
121                                 SQL_FREERESULT($result);\r
122 \r
123                                 // We maybe want to install an extension so let's test-drive it...\r
124                                 include(PATH."inc/extensions/".$file);\r
125                         }\r
126                          else\r
127                         {\r
128                                 // Maybe we want to update?\r
129                                 if ((empty($EXTENSIONS['ext_version'][$ext])) && (SQL_NUMROWS($result) == 1))\r
130                                 {\r
131                                         list($dummy, $ext_ver) = SQL_FETCHROW($result);\r
132                                         SQL_FREERESULT($result);\r
133                                 }\r
134 \r
135                                 // Update extension\r
136                                 if (!empty($ext_ver)) EXTENSION_UPDATE($file, $ext, $ext_ver);\r
137 \r
138                                 if (!empty($KEEP_ACTIVE[$ext]))\r
139                                 {\r
140                                         // Maybe we want to keept the current extension active?\r
141                                         if (($KEEP_ACTIVE[$ext] == "Y") && (!EXT_IS_ACTIVE($ext, true, true)))\r
142                                         {\r
143                                                 // Reactivate this extension!\r
144                                                 $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_extensions SET ext_active='Y' WHERE ext_name='%s' LIMIT 1",\r
145                                                  array($ext), __FILE__, __LINE__);\r
146                                                 EXTENSION_RUN_SQLS(GET_EXT_ID($ext), "activate");\r
147                                         }\r
148                                 }\r
149                         }\r
150                 }\r
151         }\r
152 \r
153         // Close directory handle\r
154         closedir($handle);\r
155 \r
156         // At last - but not least - check for own and new unassigned tasks...\r
157         $result_tasks = SQL_QUERY_ESC("SELECT id, assigned_admin, userid, task_type, subject, text, task_created\r
158 FROM "._MYSQL_PREFIX."_task_system\r
159 WHERE assigned_admin='%s' OR (assigned_admin='0' AND status='NEW')\r
160 ORDER BY userid DESC, task_type DESC, subject, task_created DESC",\r
161          array(GET_ADMIN_ID($_COOKIE['admin_login'])), __FILE__, __LINE__);\r
162         if (SQL_NUMROWS($result_tasks) > 0)\r
163         {\r
164                 // New jobs found!\r
165                 $JOBS_DONE = false;\r
166         }\r
167 \r
168         return $JOBS_DONE;\r
169 }\r
170 //\r
171 function OUTPUT_SELECTED_TASKS($_POST, $result_tasks)\r
172 {\r
173         global $CONFIG, $NOTES;\r
174         if ((isset($_POST['assign'])) && (count($_POST['task']) > 0))\r
175         {\r
176                 // Assign / do tasks\r
177                 $OUT = ""; $SW = 2;\r
178                 foreach ($_POST['task'] as $id=>$sel)\r
179                 {\r
180                         $result_task = SQL_QUERY_ESC("SELECT id, userid, task_type, subject, text, task_created, status, assigned_admin FROM "._MYSQL_PREFIX."_task_system WHERE id=%d AND (assigned_admin='%s' OR (assigned_admin='0' AND status='NEW')) LIMIT 1",\r
181                          array(bigintval($id), GET_ADMIN_ID($_COOKIE['admin_login'])), __FILE__, __LINE__);\r
182                         if (SQL_NUMROWS($result_task) == 1)\r
183                         {\r
184                                 // Task is valid...\r
185                                 list($tid, $uid, $type, $subj, $text, $created, $status, $aid) = SQL_FETCHROW($result_task);\r
186                                 SQL_FREERESULT($result_task);\r
187                                 if ($aid == "0")\r
188                                 {\r
189                                         // Assgin current admin to unassgigned task\r
190                                         $result_assign = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_task_system SET assigned_admin='%s' WHERE id=%d LIMIT 1",\r
191                                          array(GET_ADMIN_ID($_COOKIE['admin_login']), bigintval($tid)), __FILE__, __LINE__);\r
192                                 }\r
193                                 $ADD = "";\r
194                                 if ($type == "SUPPORT_MEMBER")\r
195                                 {\r
196                                         $mode = substr($text, 0, strpos($text, ":"));\r
197                                         $text = substr($text, strpos($text, ":") + 1);\r
198                                         $ADD = "<LI>".ADMIN_TASK_SUPPORT_MODE.": <STRONG>".$mode."</STRONG></LI>";\r
199                                 }\r
200                                 if ($uid > 0)\r
201                                 {\r
202                                         $result_user = SQL_QUERY_ESC("SELECT sex, surname, family, email FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d LIMIT 1",\r
203                                          array(bigintval($uid)), __FILE__, __LINE__);\r
204                                         if (SQL_NUMROWS($result_user) == 1)\r
205                                         {\r
206                                                 list($sex, $sname, $fname, $email) = SQL_FETCHROW($result_user);\r
207                                                 SQL_FREERESULT($result_user);\r
208                                                 $ADD = "<LI>".ADMIN_MEMBER_UID.": <STRONG>".ADMIN_USER_PROFILE_LINK($uid)." (<A href=\"".CREATE_EMAIL_LINK($email, "user_data")."\">".TRANSLATE_SEX($sex)." ".$sname." ".$fname."</A>)</STRONG></LI>";\r
209                                         }\r
210                                 }\r
211 \r
212                                 // Compile and insert text from task into table template\r
213                                 $text = LOAD_TEMPLATE("admin_extensions_text", true, COMPILE_CODE($text));\r
214 \r
215                                 // Initialize variables (no title for SQL commands by default)\r
216                                 $ext_name = "";\r
217                                 $title = TASK_NO_TITLE;\r
218 \r
219                                 // Shall I list SQL commands assigned to an extension installation or update task?\r
220                                 if (((GET_EXT_VERSION("sql_patches") != "") && ($CONFIG['verbose_sql'] == "Y")) || (!EXT_IS_ACTIVE("sql_patches")))\r
221                                 {\r
222                                         $ext_name = substr($subj, 1, strpos($subj, ":") - 1);\r
223                                         if ($type == "EXTENSION")\r
224                                         {\r
225                                                 // Load SQL commands for registering\r
226                                                 $SQLs = EXTENSION_REGISTER($ext_name, $id, true);\r
227 \r
228                                                 // Add notes to text\r
229                                                 $text .= $NOTES;\r
230 \r
231                                                 // Set title\r
232                                                 $title = ADMIN_SQLS_EXECUTED_ON_REGISTER;\r
233                                         }\r
234                                          elseif ($type == "EXTENSION_UPDATE")\r
235                                         {\r
236                                                 // Load SQL commands for update (already done!)\r
237                                                 $ext_name = substr($ext_name, 7);\r
238                                                 $ext_name = substr($ext_name, 0, strpos($ext_name, "-"));\r
239                                                 $test = "[UPDATE-".$ext_name."-";\r
240                                                 $ext_ver = substr($subj, strlen($test));\r
241                                                 $ext_ver = substr($ext_ver, 0, strpos($ext_ver, ":"));\r
242 \r
243                                                 // Load SQLs from file\r
244                                                 $SQLs = EXTENSION_UPDATE("ext-".$ext_name.".php", $ext_name, $ext_ver, true);\r
245 \r
246                                                 // Add notes to text\r
247                                                 $text .= $NOTES;\r
248 \r
249                                                 // Set title\r
250                                                 $title = ADMIN_SQLS_EXECUTED_ON_UPDATE;\r
251                                         }\r
252                                          else\r
253                                         {\r
254                                                 // Remove extension's name\r
255                                                 $ext_name = "";\r
256                                         }\r
257 \r
258                                         // Add SQLs to a table\r
259                                         if (empty($SQLs)) $SQLs = array();\r
260                                         if (empty($title)) $title = "";\r
261                                         if ((!empty($ext_name)) && (GET_EXT_VERSION("sql_patches")) && ($CONFIG['verbose_sql'] == "Y")) {\r
262                                                 // Add verbose SQL table\r
263                                                 $text .= EXTENSION_VERBOSE_TABLE($SQLs, $title, " class=\"admin_table top2 left2 right2\"", true, "100%")."<BR>\n";\r
264                                         }\r
265                                 }\r
266                                  else\r
267                                 {\r
268                                         // Run SQL commands in dry mode but only return the notes\r
269                                         $SQLs = EXTENSION_UPDATE("ext-".$ext_name.".php", $ext_name, $ext_ver, true);\r
270                                         $text .= $NOTES;\r
271                                 }\r
272 \r
273                                 // Prepare array for the template\r
274                                 $content = array(\r
275                                         'sw'        => $SW,\r
276                                         'subj'      => $subj,\r
277                                         'add'       => $ADD,\r
278                                         'text'      => $text,\r
279                                         'created'   => MAKE_DATETIME($created, "1"),\r
280                                         'extension' => $ext_name\r
281                                 );\r
282 \r
283                                 // Load template\r
284                                 $OUT .= LOAD_TEMPLATE("admin_overview_row", true, $content);\r
285 \r
286                                 // Which task do we actually have here?\r
287                                 switch ($type)\r
288                                 {\r
289                                 case "EXTENSION": // Install new extensions\r
290                                         $ext_name = substr($subj, 1, strpos($subj, ":") - 1);\r
291                                         $result_lines = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_extensions WHERE ext_name='%s' LIMIT 1",\r
292                                          array($ext_name), __FILE__, __LINE__);\r
293                                         $lines = SQL_NUMROWS($result_lines);\r
294                                         SQL_FREERESULT($result_lines);\r
295                                         if ($lines == "0")\r
296                                         {\r
297                                                 // New extension found\r
298                                                 $OUT .= LOAD_TEMPLATE("admin_ext_reg_form", true, array(\r
299                                                         'id'       => bigintval($id),\r
300                                                         'ext_name' => $ext_name\r
301                                                 ));\r
302                                         }\r
303                                          else\r
304                                         {\r
305                                                 // Task is closed so nothing is todo\r
306                                                 $OUT .= "<FONT class=\"admin_failed\">".ADMIN_EXT_ALREADY_REGISTERED."</FONT>\n";\r
307 \r
308                                                 // Close task but not already closes or deleted or update tasks\r
309                                                 if (($status != "CLOSED") && ($status != "DELETED") && ($type != "EXTENSION_UPDATE"))\r
310                                                 {\r
311                                                         $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_task_system SET status='SOLVED' WHERE id=%d LIMIT 1",\r
312                                                          array(bigintval($tid)), __FILE__, __LINE__);\r
313                                                 }\r
314                                         }\r
315                                         break;\r
316 \r
317                                 case "EXTENSION_UPDATE":\r
318                                         // Extension updates are installed automatically\r
319                                         $OUT .= "<FONT class=\"admin_failed medium\">".ADMIN_EXTENSION_UPDATED."</FONT>\n";\r
320 \r
321                                         // Close task\r
322                                         if (($status != "CLOSED") && ($status != "DELETED"))\r
323                                         {\r
324                                                 $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_task_system SET status='SOLVED' WHERE id=%d LIMIT 1",\r
325                                                  array(bigintval($tid)), __FILE__, __LINE__);\r
326                                         }\r
327                                         break;\r
328 \r
329                                 case "SUPPORT_MEMBER": // Assign on member's support request\r
330                                         switch ($mode)\r
331                                         {\r
332                                         default: // Unknown support mode\r
333                                                 $OUT .= "<FONT class=\"admin_failed medium\">".ADMIN_UNKNOWN_SUPPORT_MODE_1.$mode.ADMIN_UNKNOWN_SUPPORT_MODE_2."</FONT>\n";\r
334                                                 break;\r
335                                         }\r
336                                         break;\r
337 \r
338                                 case "PAYOUT_REQUEST": // Payout requests\r
339                                         if (EXT_IS_ACTIVE("payout"))\r
340                                         {\r
341                                                 // Extension is installed so let him send a notification to the user\r
342                                                 $result_pay = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_user_payouts WHERE userid=%d AND payout_timestamp=%d LIMIT 1",\r
343                                                  array(bigintval($uid), bigintval($created)), __FILE__, __LINE__);\r
344                                                 list($pid) = SQL_FETCHROW($result_pay);\r
345                                                 SQL_FREERESULT($result_pay);\r
346 \r
347                                                 if ((!empty($pid)) && ($pid > 0))\r
348                                                 {\r
349                                                         // Payout ID can be obtained\r
350                                                         $content = array(\r
351                                                                 'pid' => $pid,\r
352                                                                 'tid' => $tid,\r
353                                                         );\r
354                                                         $OUT .= LOAD_TEMPLATE("admin_payout_overview_form", true, $content);\r
355                                                 }\r
356                                                  else\r
357                                                 {\r
358                                                         // Problem obtaining payout ID\r
359                                                         $OUT .= "<FONT class=\"admin_failed medium\">".PAYOUT_OBTAIN_ID_FAILED."</FONT>\n";\r
360                                                 }\r
361                                         }\r
362                                          else\r
363                                         {\r
364                                                 // Extension is not installed\r
365                                                 $OUT .= "<FONT class=\"admin_failed medium\">".ADMIN_PAYOUT_NOT_INSTALLED."</FONT>\n";\r
366                                         }\r
367                                         break;\r
368 \r
369                                 case "WERNIS_REQUEST": // Wernis requests\r
370                                         if (EXT_IS_ACTIVE("wernis"))\r
371                                         {\r
372                                                 // Extension is installed so let him send a notification to the user\r
373                                                 $result_pay = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_user_wernis WHERE userid=%d AND wernis_timestamp=%d LIMIT 1",\r
374                                                  array(bigintval($uid), bigintval($created)), __FILE__, __LINE__);\r
375                                                 list($pid) = SQL_FETCHROW($result_pay);\r
376                                                 SQL_FREERESULT($result_pay);\r
377 \r
378                                                 if ((!empty($pid)) && ($pid > 0))\r
379                                                 {\r
380                                                         // Payout ID can be obtained\r
381                                                         $content = array(\r
382                                                                 'pid' => $pid,\r
383                                                                 'tid' => $tid,\r
384                                                         );\r
385                                                         $OUT .= LOAD_TEMPLATE("admin_wernis_overview_form", true, $content);\r
386                                                 }\r
387                                                  else\r
388                                                 {\r
389                                                         // Problem obtaining wernis ID\r
390                                                         $OUT .= "<FONT class=\"admin_failed medium\">".WERNIS_OBTAIN_ID_FAILED."</FONT>\n";\r
391                                                 }\r
392                                         }\r
393                                          else\r
394                                         {\r
395                                                 // Extension is not installed\r
396                                                 $OUT .= "<FONT class=\"admin_failed medium\">".ADMIN_WERNIS_NOT_INSTALLED."</FONT>\n";\r
397                                         }\r
398                                         break;\r
399 \r
400                                 case "HOLIDAY_REQUEST": // Holiday requests\r
401                                         $OUT .= LOAD_TEMPLATE("admin_task_holiday", true, $uid);\r
402                                         break;\r
403 \r
404                                 case "NL_UNSUBSCRIBE": // Newsletter unsubscriptions\r
405                                         $result = SQL_QUERY_ESC("SELECT nl_timespan FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d LIMIT 1",\r
406                                          array(bigintval($uid)), __FILE__, __LINE__);\r
407                                         list($span) = SQL_FETCHROW($result);\r
408                                         SQL_FREERESULT($result);\r
409 \r
410                                         if ($span > 0)\r
411                                         {\r
412                                                 // Undone unscubscribe request\r
413                                                 $content = array(\r
414                                                         'uid' => $uid,\r
415                                                         'id'  => $tid\r
416                                                 );\r
417                                                 $OUT .= LOAD_TEMPLATE("admin_newsletter_tsk", true, $content);\r
418                                         }\r
419                                          else\r
420                                         {\r
421                                                 // Already unsubscribed\r
422                                                 $OUT .= "<FONT class=\"admin_failed medium\">".ADMIN_NL_UNSUBSCRIBE_ALREADY."</FONT>\n";\r
423                                         }\r
424                                         break;\r
425 \r
426                                 default: // Unknown task type\r
427                                         $OUT .= "<FONT class=\"admin_failed medium\">".ADMIN_UNKNOWN_TASK_TYPE_1.$type.ADMIN_UNKNOWN_TASK_TYPE_2.$id.ADMIN_UNKNOWN_TASK_TYPE_3."</FONT>\n";\r
428                                         break;\r
429                                 }\r
430                                 $OUT .= "  </TD>\r
431   <TD width=\"1%\" class=\"switch_sw".$SW." bottom2 right2\">&nbsp;</TD>\r
432 </TR>\n";\r
433                         }\r
434                         $SW = 3 - $SW;\r
435                 }\r
436                 define('__TASK_ROWS', $OUT);\r
437 \r
438                 // Load final template\r
439                 LOAD_TEMPLATE("admin_overview_list");\r
440         }\r
441          else\r
442         {\r
443                 if ((isset($_POST['task'])) && ((sizeof($_POST['task']) > 0) || ($_POST['task'][0] == "1")))\r
444                 {\r
445                         // Only unassign / delete tasks when there are selected tasks posted\r
446                         if (!empty($_POST['unassign']))\r
447                         {\r
448                                 // Unassign from tasks\r
449                                 foreach ($_POST['task'] as $id=>$sel)\r
450                                 {\r
451                                         $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_task_system SET assigned_admin='0' WHERE id=%d AND assigned_admin='%s' LIMIT 1",\r
452                                          array(bigintval($id), GET_ADMIN_ID($_COOKIE['admin_login'])), __FILE__, __LINE__);\r
453                                 }\r
454                         }\r
455                          elseif (isset($_POST['del']))\r
456                         {\r
457                                 // Delete tasks\r
458                                 foreach ($_POST['task'] as $id=>$sel)\r
459                                 {\r
460                                         $result = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_task_system WHERE id=%d AND (assigned_admin='%s' OR assigned_admin='0') LIMIT 1",\r
461                                          array(bigintval($id), GET_ADMIN_ID($_COOKIE['admin_login'])), __FILE__, __LINE__);\r
462                                 }\r
463                         }\r
464 \r
465                         // Update query\r
466                         $result_tasks = SQL_QUERY_ESC("SELECT id, assigned_admin, userid, task_type, subject, text, task_created FROM "._MYSQL_PREFIX."_task_system WHERE assigned_admin='%s' OR (assigned_admin='0' AND status='NEW') ORDER BY task_created DESC",\r
467                          array(GET_ADMIN_ID($_COOKIE['admin_login'])), __FILE__, __LINE__);\r
468                 }\r
469 \r
470                 // There are uncompleted jobs!\r
471                 LOAD_TEMPLATE("admin_overview_header");\r
472                 $SW = 2;\r
473                 while (list($id, $admin, $uid, $type, $subj, $text, $created) = SQL_FETCHROW($result_tasks))\r
474                 {\r
475                         $infos = "---";\r
476                         if ($admin == "0")\r
477                         {\r
478                                 // No admin currently is assigned\r
479                                 $admin = "<FONT class=\"admin_note\">".ADMIN_NO_ADMIN_ASSIGNED."</FONT>";\r
480                         }\r
481                          else\r
482                         {\r
483                                 // Load admin's data\r
484                                 $login = GET_ADMIN_LOGIN($admin);\r
485                                 if ($login != "***")\r
486                                 {\r
487                                         // Admin found\r
488                                         $admin = "<A href=\"".URL."/modules.php?module=admin&amp;what=admins_contct&amp;admin=".$admin."\">".$login."</A>";\r
489                                 }\r
490                                  else\r
491                                 {\r
492                                         // Maybe deleted?\r
493                                         $admin = "<FONT class=\"admin_note\">".ADMIN_ID_404_1.$admin.ADMIN_ID_404_2."</FONT>";\r
494                                 }\r
495                         }\r
496                         $evl = "\$type_out = ADMIN_TASK_IS_".strtoupper($type).";";\r
497                         eval($evl);\r
498                         $type2 = substr($text, 0, strpos($text, ":"));\r
499                         // Generate infos\r
500                         switch ($type)\r
501                         {\r
502                         case "EXTENSION":\r
503                         case "EXTENSION_UPDATE":\r
504                                 $infos = substr($subj, 1, strpos($subj, ":") - 1);\r
505                                 break;\r
506                         }\r
507                         if ($uid > 0)\r
508                         {\r
509                                 // Member found otherwise it's a system task\r
510                                 $uid = ADMIN_USER_PROFILE_LINK($uid);\r
511                         }\r
512                          else\r
513                         {\r
514                                 $uid = "<I>".ADMIN_IS_SYSTEM_TASK."</I>";\r
515                         }\r
516 \r
517                         $content = array(\r
518                                 'sw'      => $SW,\r
519                                 'id'      => $id,\r
520                                 'admin'   => $admin,\r
521                                 'infos'   => $infos,\r
522                                 'uid'     => $uid,\r
523                                 'type'    => $type_out,\r
524                                 'created' => MAKE_DATETIME($created, "2")\r
525                         );\r
526 \r
527                         LOAD_TEMPLATE("admin_overview_list_rows", false, $content);\r
528                         $SW = 3 - $SW;\r
529                 }\r
530                 // Free memory\r
531                 SQL_FREERESULT($result_tasks);\r
532 \r
533                 // Load footer template\r
534                 LOAD_TEMPLATE("admin_overview_footer");\r
535         }\r
536 }\r
537 //\r
538 ?>\r