Seseorang bertanya di Forum Diskusi osTicket mengenai bagaimana cara menonaktifkan setting fitur tutup tiket saat membalas di sisi staf pada Sistem osTicket. Karena belum ada yang membuatnya, maka saya langsung membuat modifikasi tersebut, sekalian pada fitur tutup tiket pada saat mengirim catatan internal. Modifikasi ini akan mengubah tabel department dengan menambahkan dua field baru untuk menyimpan setting close ticket on reply dan close ticket on post internal note. Oleh karena itu, Anda sekarang dapat menetapkan apakah ingin mengaktifkan atau menonaktifkan kedua setting tadi untuk departement tertentu untuk menampilkan atau menyembunyikan pilihan tadi pada halaman viewticket di sisi staf.
-
Pertama sekali, ubah tabel ost_department dengan menggunakan skrip SQL berikut. Harap diperhatikan bahwa ost_ adalah nama awalan tabel. Awalan ini bisa saja berbeda dengan awalan tabel yang Anda gunakan. Jika berbeda, silahkan sesuaikan sendiri, dan harap maklum karenanya!
ALTER TABLE ost_department ADD COLUMN `can_close_on_reply` tinyint(1) default 1 NOT NULL, ADD COLUMN `can_close_on_internal_note` tinyint(1) default 1 NOT NULL;
-
Buka file \include\staff\dept.inc.php, dan cari kode ini:
112
<tr class="header"><td colspan=2>Autoresponders</td></tr>
sebelum baris tersebut, tambahkan kode berikut ini:
111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129
<!-- MOD Can Close on Reply and Internal Note, by Masino Sinaga, Nov 4, 2009 --> <tr class="header"><td colspan=2>Close Ticket</td></tr> <tr class="subheader"><td colspan=2> Close Ticket will give the ability to department members (staff and manager) whether they can close the ticket on reply and on post internal note or not. </td> </tr> <tr><th>Can Close on Reply:</th> <td> <input type="radio" name="can_close_on_reply" value="1" <?=$info['can_close_on_reply']?'checked':''?> />Enable <input type="radio" name="can_close_on_reply" value="0" <?=!$info['can_close_on_reply']?'checked':''?> />Disable </td> </tr> <tr><th>Can Close on Internal Note:</th> <td> <input type="radio" name="can_close_on_internal_note" value="1" <?=$info['can_close_on_internal_note']?'checked':''?> />Enable <input type="radio" name="can_close_on_internal_note" value="0" <?=!$info['can_close_on_internal_note']?'checked':''?> />Disable </td> </tr> <!-- MOD Can Close on Reply and Internal Note, by Masino Sinaga, Nov 4, 2009 --> -
Buka file \include\class.dept.php, dan cari kode ini:
92 93 94
function canAppendSignature() { return ($this->signature && $this->row['can_append_signature'])?true:false; }
setelah baris terakhir kode tadi, tambahkan kode berikut ini:
96 97 98 99 100 101 102 103 104
// MOD Can Close on Reply and Internal Note, by Masino Sinaga, Nov 4, 2009 function canCloseOnReply() { return $this->row['can_close_on_reply']?true:false; } function canCloseOnInternalNote() { return $this->row['can_close_on_internal_note']?true:false; } // MOD Can Close on Reply and Internal Note, by Masino Sinaga, Nov 4, 2009
Cari lagi kode yang ini:
247
',can_append_signature='.db_input(isset($_POST['can_append_signature'])?1:0);
lalu timpa dengan kode berikut:
247 248 249
',can_append_signature='.db_input(isset($_POST['can_append_signature'])?1:0). ',can_close_on_reply='.db_input($_POST['can_close_on_reply']). // MOD Can Close on Reply, by Masino Sinaga, Nov 4, 2009 ',can_close_on_internal_note='.db_input($_POST['can_close_on_internal_note']); // MOD Can Close on Internal Note, by Masino Sinaga, Nov 4, 2009
-
Buka file \include\staff\viewticket.inc.php, dan cari kode ini:
328 329 330 331
<div style="margin-top: 3px;"> <label for="ticket_status"><b>Ticket Status:</b></label> <? $checked=isset($info['ticket_status'])?'checked':''; //Staff must explicitly check the box to change status..sebelum baris pertama dari kode tadi, tambahkan kode berikut:
327
<?php if ($dept->canCloseOnReply()) { // MOD Can Close for Dept basis, by Masino Sinaga, Nov 4, 2009 ?>
Cari kode yang ini:
337 338 339
<input type="checkbox" name="ticket_status" value="Reopen" <?=$checked?> > Reopen on Reply <?}?> </div>
setelah baris terakhir dari kode tersebut, tambahkan kode ini:
340
<?php } ?>
Cari lagi kode ini:
369 370 371 372
<? //When the ticket is assigned Allow assignee, admin or ANY dept manager to close it if(!$ticket->isAssigned() || $thisuser->isadmin() || $thisuser->isManager() || $thisuser->getId()==$ticket->getStaffId()) { ?>
setelah baris terakhir dari kode tersebut, tambahkan kode berikut:
373
<?php if ($dept->canCloseOnInternalNote()) { // MOD Can Close for Dept basis, by Masino Sinaga, Nov 4, 2009 ?>
Terakhir, cari lagi kode yang ini:
381 382 383
<input type="checkbox" name="ticket_status" value="Reopen" <?=$checked?> > Reopen Ticket <?}?> </div>
setelah baris terakhir dari kode tadi, tambahkan kode berikut:
384
<?php } ?>
Selamat menikmati kode yang indah!

Komentar Terakhir