Menambahkan Nomor Pesan, Nama Pengirim, dan Durasi Waktu di Setiap Pesan Sistem osTicket

Di kedua versi osTicket, yaitu 1.6 RC4 dan 1.6 RC5 belum menyertakan nomor pesan, nama pengirim, dan durasi waktu dari setiap pesan di sebuah tiket. Itulah mengapa saya membuat modifikasi berikut. Hal ini penting bagi Anda sebagai staf atau admin dari sistem tiket yang Anda gunakan, jika Anda ingin mengetahui dengan cepat berapa lama waktu yang dibutuhkan untuk merespon antara satu pesan dengan pesan berikutnya di dalam sebuah nomor tiket. Apalagi, Anda juga menjadi dapat mengetahui berapa lama total waktu yang terdapat di dalam sebuah tiket yang statusnya masih terbuka ketika Anda menampilkan tiket tersebut.

Ikutilah petunjuk berikut ini.

  1. Buat sebuah file, copy-paste kode berikut ini ke file tadi, lalu letakkan file tersebut di dalam sub direktori \include\ dari Sistem osTicket Anda, dan simpan dengan nama class.duration.php
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    
    <?php
     
    /**************************************************************************/
    /* [MOD] Add #Post, SenderName, Time Duration in Each Message,            */ 
    /*       by Masino Sinaga, May 7, 2009                                    */ 
    /* Website: - http://www.masinosinaga.com                                 */
    /*          - http://osticket.masinosinaga.com                            */
    /**************************************************************************/
     
    class Duration {
     
    	var $begindate;
    	var $enddate;
     
      function Duration($parambegindate, $paramenddate) {
        $this->begindate = strtotime($parambegindate);
        $this->enddate = strtotime($paramenddate);
        $diff = intval($this->enddate) - intval($this->begindate);                 
        $diffday = intval(floor($diff/86400));
        $modday = ($diff%86400);
        $diffhour = intval(floor($modday/3600));
        $diffminute = intval(floor(($modday%3600)/60));
        $diffsecond = ($modday%60);
        return round($diffday)." Day(s), ".round($diffhour)." Hour(s), ".round($diffminute,0)." Minute(s), ".round($diffsecond,0)." Second(s).";
      }
    }
    ?>
  2. Buka file \scp\tickets.php, lalu cari kode ini:
    21
    
    require_once(INCLUDE_DIR.'class.banlist.php');

    setelah kode di atas, tambahkan kode berikut di bawah ini:

    22
    23
    24
    
    // MOD Show Post#, SenderName, and Duration on Each Message by Masino Sinaga, July 20, 2009
    require_once(INCLUDE_DIR.'class.duration.php');
    // MOD Show Post#, SenderName, and Duration on Each Message by Masino Sinaga, July 20, 2009
  3. Buka file \include\staff\viewticket.inc.php, lalu cari kode ini:
    274
    275
    276
    
            $msgres =db_query($sql);
            while ($msg_row = db_fetch_array($msgres)) {
                ?>

    timpa dengan:

    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    
          $msgres =db_query($sql);
          $i=1;
          while ($msg_row = db_fetch_array($msgres)) {  
            if ($i!=1) { 
              $dateend = $msg_row['created'];
            } else if ($i==1) {
              $datebegin = $msg_row['created'];
              $firstdate = $datebegin;
              $dateend = $msg_row['created'];
            }
            $lastdate = $dateend;                 
            $datediff = new Duration($datebegin,$dateend);
            $resultdiff=$datediff->Duration($datebegin,$dateend);
            $datebegin = $dateend;        
            ?>

    cari kode ini:

    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    300
    
    <table align="center" class="message" cellspacing="0" cellpadding="1" width="100%" border=0>
    <tr>
    <th><?=Format::db_daydatetime($msg_row['created'])?></th>
    </tr>
    <?if($msg_row['attachments']>0){ ?>
    <tr class="header">
    <td><?=$ticket->getAttachmentStr($msg_row['msg_id'],'M')?></td>
    </tr>
    <?}?>
    <tr>
    <td><?=Format::display($msg_row['message'])?>&nbsp;</td>
    </tr>
    </table>

    timpa dengan:

    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    300
    301
    302
    303
    304
    305
    
    <table align="center" class="message" cellspacing="0" cellpadding="1" width="100%" border=0>
    <tr>
    <th><?php echo "(#".$i.") "; echo Format::db_daydatetime($msg_row['created']); echo " - ".Format::htmlchars($ticket->getName()); ?></th>
    </tr>
    <?php if($msg_row['attachments']>0){ ?>
    <tr class="header">
    <td><?php echo $ticket->getAttachmentStr($msg_row['msg_id'],'M')?></td>
    </tr>
    <?php }?>
    <tr>
    <td>
              <?php echo Format::display($msg_row['message']); ?></td>
    </tr>
    <tr class="header">
    <td align="right"><?php echo "Duration: ".$resultdiff."
    ";    ?></td>
    </tr>
    </table>

    cari kode ini:

    305
    306
    307
    308
    309
    310
    311
    312
    313
    314
    315
    316
    317
    318
    319
    320
    321
    322
    323
    324
    325
    
                $resp =db_query($sql);
                while ($resp_row = db_fetch_array($resp)) {
                    $respID=$resp_row['response_id'];
                    ?>
    <table align="center" class="response" cellspacing="0" cellpadding="1" width="100%" border=0>
    <tr>
    <th><?=Format::db_daydatetime($resp_row['created'])?>&nbsp;-&nbsp;<?=$resp_row['staff_name']?></th>
    </tr>
    <?if($resp_row['attachments']>0){ ?>
    <tr class="header">
    <td><?=$ticket->getAttachmentStr($respID,'R')?></td>
    </tr>
    <?}?>
    <tr>
    <td> <?=Format::display($resp_row['response'])?></td>
    </tr>
    </table>
    <?}
                $msgid =$msg_row['msg_id'];
            }?></div>
    </div>

    timpa dengan:

    305
    306
    307
    308
    309
    310
    311
    312
    313
    314
    315
    316
    317
    318
    319
    320
    321
    322
    323
    324
    325
    326
    327
    328
    329
    330
    331
    332
    333
    334
    335
    336
    337
    338
    339
    340
    341
    342
    343
    344
    345
    346
    347
    348
    349
    350
    351
    352
    353
    354
    355
    356
    357
    358
    359
    360
    361
    362
    363
    
            $resp =db_query($sql);
            $j=1;
            while ($resp_row = db_fetch_array($resp)) {
              $i++;
              $respID=$resp_row['response_id'];
              $dateend = $resp_row['created']; 
              $lastdate = $dateend;          
              $datediff = new Duration($datebegin,$dateend);
              $resultdiff=$datediff->Duration($datebegin,$dateend);            
              ?>
    <table align="center" class="response" cellspacing="0" cellpadding="1" width="100%" border=0>
    <tr>
    <th><?php echo "(#".$i.") "; echo Format::db_daydatetime($resp_row['created'])?>&nbsp;-&nbsp;<?php echo $resp_row['staff_name']?></th>
    </tr>
    <?php if($resp_row['attachments']>0){ ?>
    <tr class="header">
    <td><?php echo $ticket->getAttachmentStr($respID,'R')?></td>
    </tr>
    <?php }?>
    <tr>
    <td><?php echo Format::display($resp_row['response']); ?></td>
    </tr>
    <tr class="header">
    <td align="right"><?php echo "Duration: ".$resultdiff."
    ";    ?></td>
    </tr>
    </table>
    <?php     
              $datebegin = $dateend;
              $j++;
            }
            $msgid =$msg_row['msg_id']; 
            $i++;
          } 
          $datediff = new Duration($firstdate,$lastdate);
          $resultdiff=$datediff->Duration($firstdate,$lastdate);    
          ?></div>
    </div>
    <?php 
      $totalpost = $i-1;
      if ($ticket->getStatus()=='open') {
        echo "
    <div align='right'>
    <b>Total: ".$totalpost." post(s), Duration: ".$resultdiff."</b></div>
    ";
        $lastdate = date("Y-m-d H:i:s"); //userdate();   //date("Y-m-d H:i:s");
        $datediff = new Duration($firstdate,$lastdate);
        $resultdiff=$datediff->Duration($firstdate,$lastdate);    
        echo "
    <div align='right'>
    <b>Ticket still opened, Total Duration: ".$resultdiff."</b></div>
    ";
      } else {
        echo "
    <div align='right'>
    <b>Total: ".$totalpost." post(s), Duration: ".$resultdiff."</b></div>
    ";
      }    
    ?>

Sekarang Anda dapat melihat nomor pesan, nama pengirim, dan durasi waktu di setiap pesan di bagian sejarah dari sebuah nomor tiket. Anda juga dapat melihat di bagian bawah dari sejarah tiket, total durasi waktu dari tiket tersebut. Paling tidak, hal ini dapat membantu Anda untuk mengetahui total waktu khususnya untuk tiket yang masih terbuka, sehingga Anda dapat mengambil langkah lebih lanjut terhadap tiket tadi.

Nomor Pos, Nama Pengirim, dan Durasi Waktu di Setiap Pos pada osTicket

Share

763 kali dibacaCetak Artikel Ini Cetak Artikel Ini

Komentar

  1. Bayu mengatakan:

    info yang bermanfaat walau saya masih awam, saya liat osticket tidak ada captcha ya? web anda : http://osticket.masinosinaga.com kok bisa ada capcthanya? apakah ada tutorial cara menambahkan captcha di osticket? dan pilihan bhs indonesia, jika atidak keberatan mohon infoka ke email sy, thanks banget bantuannya…
    semoga web ini semakin berguna… maju terus opensource indonesia…

  2. Masino Sinaga mengatakan:

    Halo mas Bayu,

    Untuk menambahkan captcha di osTicket System, sudah saya tambahkan artikelnya beberapa menit yang lalu. Silahkan langsung ke sini: http://www.openscriptsolution.com/2009/09/11/how-to-add-captcha-security-code-in-osticket-system-1-6-rc5/

    Semoga dapat membantu.

  3. Bayu mengatakan:

    thanks mas, sangat membantu sy yg sedang belajar…

  4. Masino Sinaga mengatakan:

    Sama-sama mas. Sering-sering saja mampir ke sini. Setiap hari pasti ada saja ilmu baru yang saya share, termasuk mengenai osTicket.

  5. s16pt mengatakan:

    can this function use with http://www.openscriptsolution.com/2009/11/08/add-auto-staff-time-sheet-feature-into-osticket-v1-6-rc5/ ? I need these 2 function to be enabled.

  6. Masino Sinaga mengatakan:

    @s16pt

    Yes, it can. I had tried implemented both MODs and everything seemed okay.

Lacakbalik

  1. [...] Add Post Number, Sender Name, and Time Duration in Each Message of … [...]

Utarakan pikiran Anda

*


*