• Home
  • Shell
    • Emacs
    • Perl
    • screen
    • sed
  • Ubuntu
    • VNC
  • Web Development
    • Javascript
    • Joomla
    • MySQL
    • osTicket
  • Windows
    • Gimp

osTicket> Mass ‘Ban & Delete’

Oct26
2010
Written by Scott Rowley

Ok, people…careful with this one!

This is for if you would like to allow for mass ban & delete from the Tickets tab.
First you need to add a new button to the main page.

include/staff/tickets.inc.php

<input class="button" type="submit" name="banDelete" value="Ban & Delete"
onClick=' return confirm("Are you ABSOLUTLEY CERTAIN this was spam?");'>

Then we need to add the functionality. Its easier here to replace a larger chunk so…

scp/tickets.php
Replace

if(!$errors) {
$count=count($_POST['tids']);
if(isset($_POST['reopen'])){
$i=0;
foreach($_POST['tids'] as $k=>$v) {
$t = new Ticket($v);
if($t && @$t->reopen()) $i++;
}
$msg="$i of $count selected tickets reopened";
}elseif(isset($_POST['close'])){
$i=0;
foreach($_POST['tids'] as $k=>$v) {
$t = new Ticket($v);
if($t && @$t->close()) $i++;
}
$msg="$i of $count selected tickets closed";
}elseif(isset($_POST['overdue'])){
$i=0;
foreach($_POST['tids'] as $k=>$v) {
$t = new Ticket($v);
if($t && !$t->isoverdue())
if($t->markOverdue()) $i++;
}
$msg="$i of $count selected tickets marked overdue";
}elseif(isset($_POST['delete'])){
$i=0;
foreach($_POST['tids'] as $k=>$v) {
$t = new Ticket($v);
if($t && @$t->delete()) $i++;
}
$msg="$i of $count selected tickets deleted";
}
}
break;

With

if(!$errors) {
$count=count($_POST['tids']);
if(isset($_POST['reopen'])){
$i=0;
foreach($_POST['tids'] as $k=>$v) {
$t = new Ticket($v);
if($t && @$t->reopen()) $i++;
}
$msg="$i of $count selected tickets reopened";
}elseif(isset($_POST['close'])){
$i=0;
foreach($_POST['tids'] as $k=>$v) {
$t = new Ticket($v);
if($t && @$t->close()) $i++;
}
$msg="$i of $count selected tickets closed";
}elseif(isset($_POST['overdue'])){
$i=0;
foreach($_POST['tids'] as $k=>$v) {
$t = new Ticket($v);
if($t && !$t->isoverdue())
if($t->markOverdue()) $i++;
}
$msg="$i of $count selected tickets marked overdue";
}elseif(isset($_POST['delete'])){
$i=0;
foreach($_POST['tids'] as $k=>$v) {
$t = new Ticket($v);
if($t && @$t->delete()) $i++;
}
$msg="$i of $count selected tickets deleted";
} // NOW MY CODE
elseif(isset($_POST['banDelete'])){
$i=0;
foreach($_POST['tids'] as $k=>$v)
{
$t = new Ticket($v);
if($t && @$t->delete())
{
if($beenBanned=$t->getEmail()){
if(Banlist::add($t->getEmail(),$thisuser->getName())){}
$msg .= "$beenBanned banned!<br />";}
$i++;
}
}
$msg .= "$i of $count selected tickets deleted <br />$i of $count emails banned.";
}}
break;

All of your effected tickets will now be deleted and the emails banned. You will also be alerted to the result so you can double check your email addresses and unban if necessary.

Posted in osTicket - Tagged ban, delete, mass, mod, modification, osTicket, ticket
« Emacs> Use % to jump to the matching parenthesis/brackets
» osTicket> Transfer/Assign with no comment

1 Comment

  1. Funky Sindhi's Gravatar Funky Sindhi
    June 14, 2014 at 12:37 am

    can we restrict email delete to admins only?

Corrections? Questions? Comments?

Find an error?
Everything work out great for you?
Have some feedback?
Like to see something added to the article?

PLEASE leave us a comment after the article and let us know how we are doing, or if something needs corrected, improved or clarified.

Thank you!
- The Management

Advertisement

Sudo Bash
By Geeks - For Geeks

Back to Top