"ezt_Session", "auth" => "ezt_Default_Auth")); // Set Skin include("./select-skin.php"); $q = new ezt_db; $t = new Template($selected_skin['path']); //$t->debug = 7; /* activate for full debugging */ $t->set_file("page", $selected_skin['ezt']); // touch user record for last login time $user_update['where'] = array("user_id" => $auth->auth['uid']); $user_update['user_last_login'] = "NOW()"; ezt_record($q, "ezt_users", $user_update, UPDATE); // ************************ // *** Update EZTicket // ************************ $argvs = array_merge($_POST, $_GET); if(!empty($argvs['updateticket'])) { if ($config['readonly'] == 1) error_message("System is in READ ONLY MODE! Please make your updates later."); $ticket_id = $argvs['updateticket']; // Check for bad data if (empty($argvs['owner'])) error_message("Please select an OWNER of this ticket!"); if (empty($argvs['category'])) error_message("Please select a CATEGORY of this ticket!"); if ($argvs['title'] == "CHANGE TITLE" || empty($argvs['title'])) error_message("Please give this ticket a TITLE!"); if ((ticket_status($q, $ticket_id) == CLOSED) && ($auth->auth['perm'] > ADMIN)) error_message("You don't have access to reopen a closed ticket!"); if (($argvs['status'] == CLOSED) && (ticket_creator($q, $ticket_id) != $auth->auth['uid']) && ($auth->auth['perm'] > ADMIN)) error_message("You don't have access to close this ticket! (send back to owner)"); // looking up user data $owner_user_rec = array_pop(lookup_record($q, sprintf("SELECT user_username FROM ezt_users WHERE user_id = %s", $argvs['owner']))); $updater_uid = $auth->auth['uid']; $updater_record = array_pop(lookup_record($q, sprintf("SELECT user_username FROM ezt_users WHERE user_id = %s", $auth->auth['uid']))); // Updating ticket record $new_ezt_ticket['where'] = array("ticket_id" => $ticket_id); $new_ezt_ticket['ticket_title'] = add_ticks(addslashes($argvs['title'])); $new_ezt_ticket['ticket_status'] = add_ticks($argvs['status']); $new_ezt_ticket['ticket_category'] = add_ticks($argvs['category']); $new_ezt_ticket['ticket_severity'] = add_ticks($argvs['severity']); $new_ezt_ticket['ticket_priority'] = add_ticks($argvs['priority']); $new_ezt_ticket['ticket_owner_id'] = add_ticks($argvs['owner']); $new_ezt_ticket['ticket_last_update'] = "NOW()"; $new_ezt_ticket['ticket_owner_username'] = add_ticks($owner_user_rec['user_username']); $new_ezt_ticket['ticket_updater_id'] = $updater_uid; $new_ezt_ticket['ticket_updater_username'] = add_ticks($updater_record['user_username']); if($argvs['currentsticky'] != $argvs['ticket_sticky']) { if($argvs['ticket_sticky'] == 1) { $new_ezt_ticket['ticket_sticky'] = "1"; $new_ezt_ticket['ticket_sticky_date'] = "NOW()"; } else $new_ezt_ticket['ticket_sticky'] = "0"; } else $new_ezt_ticket['ticket_sticky'] = $argvs['currentsticky']; ezt_record($q, "ezt_tickets", $new_ezt_ticket, UPDATE); // Map fields to Updates Database $new_ezt_update['update_user_id'] = $updater_uid; $new_ezt_update['update_username'] = add_ticks($updater_record['user_username']); $new_ezt_update['update_ip'] = add_ticks($_SERVER["REMOTE_ADDR"]); $new_ezt_update['update_owner_username'] = add_ticks($owner_user_rec['user_username']); $new_ezt_update['update_owner_id'] = add_ticks($argvs['owner']); $new_ezt_update['update_ticket_id'] = add_ticks($ticket_id); $new_ezt_update['update_status'] = add_ticks($argvs['status']); $new_ezt_update['update_severity'] = add_ticks($argvs['severity']); $new_ezt_update['update_priority'] = add_ticks($argvs['priority']); $new_ezt_update['update_category'] = add_ticks($argvs['category']); $new_ezt_update['update_text'] = add_ticks(addslashes($argvs['text'])); $new_ezt_update['update_date'] = "NOW()"; // Preform insert into ticket table $new_update_id = ezt_record($q, "ezt_updates", $new_ezt_update, INSERT); // Do paging stuff send_page($q, $ticket_id, $new_ezt_ticket); //javascript_redirect($config['baseurl'] . "/ezt.php?ticket=" . $ticket_id); javascript_redirect($argvs['return_url']); } else { // If this is not an update, set the ticket id via another way. $ticket_id = ( (!empty($argvs['ticket']) ) ? $argvs['ticket'] : "1" ); // ************************ // *** Generate EZTicket // ************************ $ticket_record = array_pop(lookup_record($q, sprintf("SELECT * FROM ezt_tickets WHERE ticket_id = %s", $ticket_id))); $ticket_updates = lookup_record($q, sprintf("SELECT update_id, update_user_id, DATE_FORMAT(update_date, '%%m-%%d-%%y, %%H:%%i:%%s') AS update_date_formatted, update_text, update_ip, update_category, update_status, update_owner_username, update_username, update_owner_id, update_priority, update_severity FROM ezt_updates WHERE update_ticket_id = %s ORDER BY update_date", $ticket_id)); $t->set_var(array( "TICKET_TITLE" => $ticket_record['ticket_title'], "TICKET_ID" => $ticket_record['ticket_id'], "TOTAL_UPDATES_DISPLAYED" => count($ticket_updates))); if($ticket_record['ticket_sticky'] == 1) $t->set_var(array( "STICKY_SELECTED" => "CHECKED")); $t->set_block("page", "ezt-update", "updates"); while ($element = array_shift($ticket_updates)) {; $element['update_status_html'] = ezt_status_html($element['update_status']); $element['update_username_html'] = $element['update_username']; $element['update_owner_username_html'] = $element['update_owner_username']; $element['update_text'] = wordwrap(phorum_bb_code($element['update_text']), $config['maxlength']); #$element['update_text'] = wordwrap($element['update_text'], $config['maxlength']); $t->set_var(upper_key($element)); $t->parse("updates", "ezt-update", true); } // // Fill in and select default owner // // Remove the update window, if we're not an admin, and the ticket is closed if (($ticket_record['ticket_status'] == CLOSED) && ($auth->auth['perm'] > ADMIN)) $t->set_block("page", "user-update-block", "userupdateblock"); // Remove the close status tag if we're not an admin, and not the creator if ((ticket_creator($q, $ticket_id) != $auth->auth['uid']) && ($auth->auth['perm'] > ADMIN)) $t->set_block("page", "status-close-tag", "statusclosetag"); // Set the creator text for the update window $t->set_var(array("TICKET_CREATOR_USERNAME" => $ticket_record['ticket_creator_username'])); // Users $user_list = lookup_record($q, "SELECT user_id, user_username FROM ezt_users ORDER BY user_username"); $t->set_block("page", "user-list", "users"); while ($element = array_shift($user_list)) {; if($ticket_record['ticket_owner_id'] == $element['user_id']) $element['OWNER_SELECTED'] = "SELECTED"; else $element['OWNER_SELECTED'] = ""; $t->set_var(upper_key($element)); $t->parse("users", "user-list", true); } // Categories $category_list = lookup_record($q, "SELECT category_id, category_name FROM ezt_category ORDER BY category_name"); $t->set_block("page", "category-list", "categories"); while ($element = array_shift($category_list)) {; if($ticket_record['ticket_category'] == $element['category_id']) $element['CATEGORY_SELECTED'] = "SELECTED"; else $element['CATEGORY_SELECTED'] = ""; $t->set_var(upper_key($element)); $t->parse("categories", "category-list", true); } // Severity $t->set_block("page", "severity-list", "severities"); foreach($severity_levels as $key => $sev) { if($ticket_record['ticket_severity'] == $sev) $t->set_var("SEVERITY_SELECTED", "SELECTED"); else $t->set_var("SEVERITY_SELECTED", ""); $t->set_var("SEVERITY", $sev); $t->parse("severities", "severity-list", true); } // Priority $t->set_block("page", "priority-list", "priorities"); foreach($priority_levels as $key => $sev) { if($ticket_record['ticket_priority'] == $sev) $t->set_var("PRIORITY_SELECTED", "SELECTED"); else $t->set_var("PRIORITY_SELECTED", ""); $t->set_var("PRIORITY", $sev); $t->parse("priorities", "priority-list", true); } switch($ticket_record['ticket_status']) { case OPEN: $t->set_var("OPEN_SELECTED", "SELECTED"); break; case DONE: $t->set_var("DONE_SELECTED", "SELECTED"); break; case CLOSED: $t->set_var("CLOSED_SELECTED", "SELECTED"); break; } $t->set_var("TICKET_STICKY", $ticket_record['ticket_sticky']); // // Get attchment info and insert into template // if($argvs['showdeleted']) { $t->set_var("SHOW_DELETED", sprintf("(don't show deleted)", $config['baseurl'], $ticket_id)); } else { $removedeleted = "AND att.attachment_removed = 'no'"; $t->set_var("SHOW_DELETED", sprintf("(show deleted)", $config['baseurl'], $ticket_id)); } $attachments = lookup_record($q, sprintf("SELECT att.attachment_id, att.attachment_filename, att.attachment_description, DATE_FORMAT(att.attachment_date, '(%%m-%%d-%%y, %%H:%%i:%%s)') AS attachment_date, att.attachment_size, att.attachment_removed, usr.user_username FROM ezt_attachments AS att LEFT JOIN ezt_users AS usr ON (att.attachment_user_id = usr.user_id) WHERE att.attachment_ticket_id = %s %s", $ticket_id, $removedeleted)); //print "
\n";
//print_r($argvs);
//print_r($attachments);

  if(!empty($attachments)) {
    $t->set_block("page", "ezt-attachment", "attachments");
    while ($element = array_shift($attachments)) {;
      $element['attachment_icon'] = $selected_skin['imageurl'] . "/" . $selected_skin['attachment_icon'];
      $element['attachment_url'] = sprintf("%s/attachment.php?attachment_id=%s", $config['baseurl'], $element['attachment_id']);
      if($element['attachment_removed'] == 'no') {
         $element['attachment_remove_url'] = sprintf("%s/attachment.php?remove=%s", $config['baseurl'], $element['attachment_id']);
         $element['attachment_remove_text'] = "Delete";
      } else {
        $element['attachment_remove_url'] = sprintf("%s/attachment.php?unremove=%s", $config['baseurl'], $element['attachment_id']);
        $element['attachment_remove_text'] = "Undelete";
      }
      $element['attachment_filename'] = trim($element['attachment_filename']);
      $element['attachment_description'] = trim($element['attachment_description']);
      if(empty($element['attachment_filename'])) $element['attachment_filename'] = "(no filename)";
      if(empty($element['attachment_description'])) $element['attachment_description'] = "(no description)";
      if(empty($element['user_username'])) $element['user_username'] = "(unknown)";
      $element['attachment_size'] = size_calc($element['attachment_size']);
      $t->set_var(upper_key($element));
      $t->parse("attachments", "ezt-attachment", true);
    }
  } else {
    $t->set_block("page", "ezt-attachment-block", "empty-attachments");
  }





//
// Output page
//

  $Page_name = sprintf("EZTicket (#%s - %s)", $ticket_record['ticket_id'], $ticket_record['ticket_title']);
  $headerout=makeheader($q, "$Page_name");
  $footerout=makefooter();

  $t->set_var(array("HEADER" => $headerout,
                    "FOOTER" => $footerout,
                    "EZTUPDATEJS" => $selected_skin['baseurl'] . "/" . $selected_skin['ezt-updatejs'],
                    "HTTP_REFERER" => $_SERVER['HTTP_REFERER'],
                    "BASEURL" => $config['baseurl']));
  $t->parse("pageout", "page");
  $output=$t->retp("pageout");
  if($config['templatedebug']) {
     $output .= "Undefied template variables in page:" . @implode(", ", $t->get_undefined("pageout"));
  }
  print $output;

}
  // Save data back to database.
  page_close()
?>