************************************************************************/
// Some security stuff...
-if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
-{
+if ((!defined('__SECURITY')) || (!IS_ADMIN())) {
$INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
require($INC);
+} elseif (!EXT_IS_ACTIVE("task")) {
+ ADD_FATAL(EXTENSION_PROBLEM_EXT_INACTIVE, "task");
+ return;
}
+
// Add description as navigation point
-ADD_DESCR("admin", basename(__FILE__));
+ADD_DESCR("admin", __FILE__);
$whereStatement = "";
if (empty($_GET['type'])) $_GET['type'] = "your";
switch ($_GET['type'])
{
case "your": // List only your own open (new) tasks
- $whereStatement = "assigned_admin='".GET_ADMIN_ID($_COOKIE['admin_login'])."' AND status='NEW' AND task_type != 'EXTENSION_UPDATE'";
+ $whereStatement = "assigned_admin='".GET_ADMIN_ID(get_session('admin_login'))."' AND status='NEW' AND task_type != 'EXTENSION_UPDATE'";
break;
case "updates": // List only updates assigned to you
- $whereStatement = "assigned_admin='".GET_ADMIN_ID($_COOKIE['admin_login'])."' AND status='NEW' AND task_type = 'EXTENSION_UPDATE'";
+ $whereStatement = "assigned_admin='".GET_ADMIN_ID(get_session('admin_login'))."' AND status='NEW' AND task_type = 'EXTENSION_UPDATE'";
break;
case "solved": // List only solved tasks assigned to you
- $whereStatement = "assigned_admin='".GET_ADMIN_ID($_COOKIE['admin_login'])."' AND status='SOLVED'";
+ $whereStatement = "assigned_admin='".GET_ADMIN_ID(get_session('admin_login'))."' AND status='SOLVED'";
break;
case "unassigned": // List unassigned (but not deleted) tasks
break;
case "closed": // List all closed
- $whereStatement = "assigned_admin='".GET_ADMIN_ID($_COOKIE['admin_login'])."' AND status='CLOSED'";
+ $whereStatement = "assigned_admin='".GET_ADMIN_ID(get_session('admin_login'))."' AND status='CLOSED'";
break;
default: // Unknown type
+ DEBUG_LOG(__FILE__, __LINE__, sprintf("Unknown task type %s detected.", $_GET['type']));
LOAD_TEMPLATE("admin_settings_saved", false, TASK_ADMIN_UNKNOWN_MODE_1.$_GET['type'].TASK_ADMIN_UNKNOWN_MODE_2);
break;
}
{
$SEL = 0;
if (isset($_POST['task'])) $SEL = SELECTION_COUNT($_POST['task']);
- if ((isset($_POST['assign'])) && ($SEL > 0))
- {
+ if ((isset($_POST['assign'])) && ($SEL > 0)) {
// Assign / do tasks
require_once(PATH."inc/modules/admin/overview-inc.php");
if (empty($dmy)) $dmy = "";
OUTPUT_SELECTED_TASKS($_POST, $dmy);
- }
- else
- {
+ } else {
// Start listing tasks matching selected filter
$result_tasks = SQL_QUERY("SELECT id, assigned_admin, userid, task_type, subject, text, task_created
FROM "._MYSQL_PREFIX."_task_system
WHERE ".$whereStatement."
ORDER BY userid DESC, task_type DESC, subject, task_created DESC", __FILE__, __LINE__);
- if (($SEL > 0) && (!IS_DEMO()))
- {
+ if (($SEL > 0) && (!IS_DEMO())) {
// Only unassign / delete tasks when there are selected tasks posted
- if (isset($_POST['unassign']))
- {
+ if (isset($_POST['unassign'])) {
// Unassign from tasks
- foreach ($_POST['task'] as $id=>$sel)
- {
- $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_task_system SET assigned_admin='0' WHERE id=%d AND assigned_admin='%s' LIMIT 1",
- array(bigintval($id), GET_ADMIN_ID($_COOKIE['admin_login'])), __FILE__, __LINE__);
+ foreach ($_POST['task'] as $id => $sel) {
+ $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_task_system SET assigned_admin=0 WHERE id=%s AND assigned_admin=%s LIMIT 1",
+ array(bigintval($id), GET_ADMIN_ID(get_session('admin_login'))), __FILE__, __LINE__);
}
- }
- elseif (isset($_POST['del']))
- {
+ } elseif (isset($_POST['del'])) {
// Delete tasks
- foreach ($_POST['task'] as $id=>$sel)
- {
- if ($_GET['type'] == "deleted")
- {
+ foreach ($_POST['task'] as $id => $sel) {
+ if ($_GET['type'] == "deleted") {
// Delete task immediately
- $result = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_task_system WHERE id=%d LIMIT 1",
+ $result = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_task_system WHERE id=%s LIMIT 1",
array(bigintval($id)),__FILE__, __LINE__);
- }
- else
- {
+ } else {
// Mark task as to be deleted (purged by autppurge extension)
- $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_task_system SET status='DELETED' WHERE id=%d LIMIT 1",
- array(bigintval($id)), __FILE__, __LINE__);
+ ADMIN_DELETE_TASK($id);
}
}
}
}
// There are uncompleted jobs!
- $eval = "\$type = ADMIN_OVERVIEW_TASK_".strtoupper($_GET['type'])."_TYPE;";
- eval($eval);
+ $type = constant('ADMIN_OVERVIEW_TASK_'.strtoupper($_GET['type']).'_TYPE');
LOAD_TEMPLATE("admin_overview_header_task", false, array(
'message' => $type,
'type' => $_GET['type']
$admin = "<FONT class=\"admin_note\">".ADMIN_ID_404_1.$admin.ADMIN_ID_404_2."</FONT>";
}
}
- $evl = "\$type_out = ADMIN_TASK_IS_".strtoupper($type).";";
- eval($evl);
+
+ // Get admin task
+ $type_out = constant('ADMIN_TASK_IS_'.strtoupper($type).'');
+
$type2 = substr($text, 0, strpos($text, ":"));
// Generate infos
switch ($type)
$infos = substr($subj, 1, strpos($subj, ":") - 1);
break;
}
- if ($uid > 0)
- {
+
+ // Member assigned with task?
+ if ($uid > 0) {
// Member found otherwise it's a system task
$uid = ADMIN_USER_PROFILE_LINK($uid);
- }
- else
- {
+ } else {
+ // Is a system task!
$uid = "<I>".ADMIN_IS_SYSTEM_TASK."</I>";
}
+
+ // Prepare content
$content = array(
'sw' => $SW,
'id' => $id,
'type' => $type_out,
'created' => MAKE_DATETIME($created, "2")
);
- LOAD_TEMPLATE("admin_list_task_rows", false, $content);
+
+ // Do we have an extension task?
+ if ($type == "EXTENSION") {
+ // Load extension row template
+ LOAD_TEMPLATE("admin_list_task_ext_rows", false, $content);
+ } else {
+ // Load default row template
+ LOAD_TEMPLATE("admin_list_task_rows", false, $content);
+ }
+
+ // Switch colors
$SW = 3 - $SW;
}