2014-03-23 16:03:30 -04:00
< ? php
/*******************************************************************************
2015-09-12 00:46:46 -04:00
* Title : Help Desk Software HESK
* Version : 2.6 . 5 from 28 th August 2015
* Author : Klemen Stirn
* Website : http :// www . hesk . com
********************************************************************************
* COPYRIGHT AND TRADEMARK NOTICE
* Copyright 2005 - 2015 Klemen Stirn . All Rights Reserved .
* HESK is a registered trademark of Klemen Stirn .
* The HESK may be used and modified free of charge by anyone
* AS LONG AS COPYRIGHT NOTICES AND ALL THE COMMENTS REMAIN INTACT .
* By using this code you agree to indemnify Klemen Stirn from any
* liability that might arise from it ' s use .
* Selling the code for this program , in part or full , without prior
* written consent is expressly forbidden .
* Using this code , in part or full , to create derivate work ,
* new scripts or products is expressly forbidden . Obtain permission
* before redistributing this software over the Internet or in
* any other medium . In all cases copyright and header must remain intact .
* This Copyright is in full effect in any country that has International
* Trade Agreements with the United States of America or
* with the European Union .
* Removing any of the copyright notices without purchasing a license
* is expressly forbidden . To remove HESK copyright notice you must purchase
* a license for this script . For more information on how to obtain
* a license please visit the page below :
* https :// www . hesk . com / buy . php
*******************************************************************************/
define ( 'IN_SCRIPT' , 1 );
define ( 'HESK_PATH' , '../' );
2014-03-23 16:03:30 -04:00
/* Get all the required files and functions */
require ( HESK_PATH . 'hesk_settings.inc.php' );
require ( HESK_PATH . 'inc/common.inc.php' );
require ( HESK_PATH . 'inc/admin_functions.inc.php' );
hesk_load_database_functions ();
hesk_session_start ();
hesk_dbConnect ();
hesk_isLoggedIn ();
/* Check permissions for this feature */
hesk_checkPermission ( 'can_man_cat' );
2015-01-11 19:36:14 -05:00
// Possible priorities
$priorities = array (
2015-09-12 00:46:46 -04:00
3 => array ( 'value' => 3 , 'text' => $hesklang [ 'low' ], 'formatted' => $hesklang [ 'low' ]),
2 => array ( 'value' => 2 , 'text' => $hesklang [ 'medium' ], 'formatted' => '<font class="medium">' . $hesklang [ 'medium' ] . '</font>' ),
1 => array ( 'value' => 1 , 'text' => $hesklang [ 'high' ], 'formatted' => '<font class="important">' . $hesklang [ 'high' ] . '</font>' ),
0 => array ( 'value' => 0 , 'text' => $hesklang [ 'critical' ], 'formatted' => '<font class="critical">' . $hesklang [ 'critical' ] . '</font>' ),
2015-01-11 19:36:14 -05:00
);
2014-03-23 16:03:30 -04:00
/* What should we do? */
2015-09-12 00:46:46 -04:00
if ( $action = hesk_REQUEST ( 'a' )) {
if ( $action == 'linkcode' ) {
generate_link_code ();
} elseif ( defined ( 'HESK_DEMO' )) {
hesk_process_messages ( $hesklang [ 'ddemo' ], 'manage_categories.php' , 'NOTICE' );
} elseif ( $action == 'new' ) {
new_cat ();
} elseif ( $action == 'rename' ) {
rename_cat ();
} elseif ( $action == 'remove' ) {
remove ();
} elseif ( $action == 'order' ) {
order_cat ();
} elseif ( $action == 'autoassign' ) {
toggle_autoassign ();
} elseif ( $action == 'type' ) {
toggle_type ();
} elseif ( $action == 'priority' ) {
change_priority ();
} elseif ( $action == 'manager' ) {
change_manager ();
}
2014-03-23 16:03:30 -04:00
}
2015-09-03 21:58:05 -04:00
$modsForHesk_settings = mfh_getSettings ();
2014-03-23 16:03:30 -04:00
/* Print header */
require_once ( HESK_PATH . 'inc/headerAdmin.inc.php' );
/* Print main manage users page */
require_once ( HESK_PATH . 'inc/show_admin_nav.inc.php' );
?>
< script language = " Javascript " type = " text/javascript " ><!--
2015-09-12 00:46:46 -04:00
function confirm_delete () {
if ( confirm ( '<?php echo hesk_makeJsString($hesklang[' confirm_del_cat ']); ?>' )) {
return true ;
}
else {
return false ;
}
}
//-->
2014-03-23 16:03:30 -04:00
</ script >
2015-07-03 22:23:09 -04:00
< ? php
2015-09-12 00:46:46 -04:00
$orderBy = $modsForHesk_settings [ 'category_order_column' ];
$res = hesk_dbQuery ( " SELECT * FROM ` " . hesk_dbEscape ( $hesk_settings [ 'db_pfix' ]) . " categories` ORDER BY ` " . $orderBy . " ` ASC " );
$options = '' ;
while ( $mycat = hesk_dbFetchAssoc ( $res )) {
$options .= '<option value="' . $mycat [ 'id' ] . '" ' ;
$options .= ( isset ( $_SESSION [ 'selcat' ]) && $mycat [ 'id' ] == $_SESSION [ 'selcat' ]) ? ' selected="selected" ' : '' ;
$options .= '>' . $mycat [ 'name' ] . '</option>' ;
}
2014-03-23 16:03:30 -04:00
?>
2015-09-10 13:30:58 -04:00
< div class = " row move-down-20 " >
2014-08-09 16:06:02 -04:00
< div align = " left " class = " col-md-4 " >
< ul class = " nav nav-tabs " >
< li class = " active " >< a href = " #addCat " data - toggle = " tab " >< ? php echo $hesklang [ 'add_cat' ]; ?> </a></li>
< li >< a href = " #renameCat " data - toggle = " tab " >< ? php echo $hesklang [ 'ren_cat' ]; ?> </a></li>
2015-01-11 19:36:14 -05:00
< li >< a href = " #changePriority " data - toggle = " tab " >< ? php echo $hesklang [ 'ch_cat_pri' ]; ?> </a></li>
2014-08-09 16:06:02 -04:00
</ ul >
< div class = " tab-content summaryList tabPadding " >
< div class = " tab-pane fade in active " id = " addCat " >
<!-- CONTENT -->
< form action = " manage_categories.php " method = " post " role = " form " class = " form-horizontal " >
< h4 >< ? php echo $hesklang [ 'add_cat' ]; ?> </h4>
2015-09-12 00:46:46 -04:00
2014-08-09 16:06:02 -04:00
< div class = " footerWithBorder blankSpace " ></ div >
< div class = " form-group " >
2015-09-12 00:46:46 -04:00
< p class = " col-sm-4 control-label " style = " font-size: .87em " >
< b >< ? php echo $hesklang [ 'cat_name' ]; ?> :</b> (<?php echo $hesklang['max_chars']; ?>)</p>
2014-08-09 16:06:02 -04:00
< div class = " col-sm-8 " >
2015-09-12 00:46:46 -04:00
< input class = " form-control "
placeholder = " <?php echo htmlspecialchars( $hesklang['cat_name'] ); ?> " type = " text "
name = " name " size = " 40 " maxlength = " 40 "
2014-08-09 16:06:02 -04:00
< ? php
2015-09-12 00:46:46 -04:00
if ( isset ( $_SESSION [ 'catname' ])) {
echo ' value="' . hesk_input ( $_SESSION [ 'catname' ]) . '" ' ;
}
2014-08-09 16:06:02 -04:00
?>
2015-09-12 00:46:46 -04:00
/>
</ div >
2014-03-23 16:03:30 -04:00
</ div >
2015-01-11 19:36:14 -05:00
< div class = " form-group " >
2015-09-12 00:46:46 -04:00
< label for = " priority " class = " col-sm-4 control-label "
style = " font-size: .87em " >< ? php echo $hesklang [ 'def_pri' ]; ?> <a href="#"
onclick = " alert('<?php echo hesk_makeJsString( $hesklang['cat_pri'] ); ?>') " >< i
class = " fa fa-question-circle settingsquestionmark " ></ i > </ a > </ label >
2015-01-11 19:36:14 -05:00
< div class = " col-sm-8 " >
2015-09-12 00:46:46 -04:00
< select name = " priority " class = " form-control " >
< ? php
// Default priority: low
if ( ! isset ( $_SESSION [ 'cat_priority' ])) {
$_SESSION [ 'cat_priority' ] = 3 ;
}
// List possible priorities
foreach ( $priorities as $value => $info ) {
echo '<option value="' . $value . '"' . ( $_SESSION [ 'cat_priority' ] == $value ? ' selected="selected"' : '' ) . '>' . $info [ 'text' ] . '</option>' ;
}
?>
</ select ></ p >
2015-01-11 19:36:14 -05:00
</ div >
</ div >
2014-08-09 16:06:02 -04:00
< div class = " form-group " >
< label for = " options " class = " col-sm-4 control-label " >< ? php echo $hesklang [ 'opt' ]; ?> :</label>
2015-09-12 00:46:46 -04:00
2014-08-09 16:06:02 -04:00
< div class = " col-sm-8 " >
< ? php
2015-09-12 00:46:46 -04:00
if ( $hesk_settings [ 'autoassign' ]) {
2014-08-09 16:06:02 -04:00
?>
2015-09-12 00:46:46 -04:00
< div class = " checkbox " >
< label >< input type = " checkbox " name = " autoassign "
value = " Y " < ? php if ( ! isset ( $_SESSION [ 'cat_autoassign' ]) || $_SESSION [ 'cat_autoassign' ] == 1 ) {
echo 'checked="checked"' ;
} ?> /> <?php echo $hesklang['cat_aa']; ?></label><br/>
</ div >
2014-08-09 16:06:02 -04:00
< ? php
}
?>
< div class = " checkbox " >
2015-09-12 00:46:46 -04:00
< label >< input type = " checkbox " name = " type "
value = " Y " < ? php if ( isset ( $_SESSION [ 'cat_type' ]) && $_SESSION [ 'cat_type' ] == 1 ) {
echo 'checked="checked"' ;
} ?> /> <?php echo $hesklang['cat_type']; ?></label>
</ div >
</ div >
2014-03-23 16:03:30 -04:00
</ div >
2015-09-10 21:11:58 -04:00
< div class = " form-group text-center " >
2015-09-12 00:46:46 -04:00
< input type = " hidden " name = " a " value = " new " />
< input type = " hidden " name = " token " value = " <?php hesk_token_echo(); ?> " />
< input type = " submit " value = " <?php echo $hesklang['create_cat'] ; ?> " class = " btn btn-default " />
2014-08-09 16:06:02 -04:00
</ div >
</ form >
</ div >
< div class = " tab-pane fade " id = " renameCat " >
< form action = " manage_categories.php " method = " post " role = " form " class = " form-horizontal " >
< h4 >< ? php echo $hesklang [ 'ren_cat' ]; ?> </h4>
2015-09-12 00:46:46 -04:00
2014-08-09 16:06:02 -04:00
< div class = " footerWithBorder blankSpace " ></ div >
< div class = " form-group " >
< label for = " catid " class = " col-sm-4 control-label " >< ? php echo $hesklang [ 'oln' ]; ?> </label>
2015-09-12 00:46:46 -04:00
2014-08-09 16:06:02 -04:00
< div class = " col-sm-8 " >
< select class = " form-control " name = " catid " >< ? php echo $options ; ?> </select>
</ div >
</ div >
< div class = " form-group " >
< label for = " name " class = " col-sm-4 control-label " >< ? php echo $hesklang [ 'nen' ]; ?> </label>
2015-09-12 00:46:46 -04:00
2014-08-09 16:06:02 -04:00
< div class = " col-sm-8 " >
2015-09-12 00:46:46 -04:00
< input class = " form-control "
placeholder = " <?php echo htmlspecialchars( $hesklang['cat_name'] ); ?> " type = " text "
name = " name " size = " 40 " maxlength = " 40 " < ? php if ( isset ( $_SESSION [ 'catname2' ])) {
echo ' value="' . hesk_input ( $_SESSION [ 'catname2' ]) . '" ' ;
} ?> />
2014-08-09 16:06:02 -04:00
</ div >
</ div >
2015-09-10 21:11:58 -04:00
< div class = " form-group text-center " >
2015-09-12 00:46:46 -04:00
< input type = " hidden " name = " a " value = " rename " />
< input type = " hidden " name = " token " value = " <?php hesk_token_echo(); ?> " />
< input type = " submit " value = " <?php echo $hesklang['ren_cat'] ; ?> " class = " btn btn-default " />
2014-08-09 16:06:02 -04:00
</ div >
</ form >
</ div >
2015-01-11 19:36:14 -05:00
< div class = " tab-pane fade " id = " changePriority " >
< form action = " manage_categories.php " method = " post " role = " form " class = " form-horizontal " >
< h4 >< ? php echo $hesklang [ 'ch_cat_pri' ]; ?> </h4>
2015-09-12 00:46:46 -04:00
2015-01-14 21:10:48 -05:00
< div class = " footerWithBorder blankSpace " ></ div >
< div class = " form-group " >
< label for = " catid " class = " col-sm-4 control-label " >< ? php echo $hesklang [ 'category' ]; ?> </label>
2015-09-12 00:46:46 -04:00
2015-01-14 21:10:48 -05:00
< div class = " col-sm-8 " >
< select name = " catid " class = " form-control " >< ? php echo $options ; ?> </select>
</ div >
</ div >
< div class = " form-group " >
2015-09-12 00:46:46 -04:00
< label for = " priority "
class = " col-sm-4 control-label " >< ? php echo $hesklang [ 'priority' ]; ?> </label>
2015-01-14 21:10:48 -05:00
< div class = " col-sm-8 " >
< select name = " priority " class = " form-control " >
< ? php
// Default priority: low
2015-09-12 00:46:46 -04:00
if ( ! isset ( $_SESSION [ 'cat_ch_priority' ])) {
2015-01-14 21:10:48 -05:00
$_SESSION [ 'cat_ch_priority' ] = 3 ;
}
2015-01-11 19:36:14 -05:00
2015-01-14 21:10:48 -05:00
// List possible priorities
2015-09-12 00:46:46 -04:00
foreach ( $priorities as $value => $info ) {
echo '<option value="' . $value . '"' . ( $_SESSION [ 'cat_ch_priority' ] == $value ? ' selected="selected"' : '' ) . '>' . $info [ 'text' ] . '</option>' ;
2015-01-14 21:10:48 -05:00
}
?>
</ select >
</ div >
</ div >
< div class = " form-group " >
< div class = " col-sm-8 col-sm-offset-4 " >
2015-09-12 00:46:46 -04:00
< input type = " hidden " name = " a " value = " priority " />
< input type = " hidden " name = " token " value = " <?php hesk_token_echo(); ?> " />
2015-01-14 21:10:48 -05:00
< input type = " submit " value = " <?php echo $hesklang['ch_cat_pri'] ; ?> " class = " btn btn-default " >
</ div >
</ div >
2015-01-11 19:36:14 -05:00
</ form >
</ div >
2014-08-09 16:06:02 -04:00
</ div >
< script >
2015-09-12 00:46:46 -04:00
$ ( function () {
$ ( '#addCat a:last' ) . tab ( 'show' )
})
2014-08-09 16:06:02 -04:00
</ script >
</ div >
< div class = " col-md-8 " >
< ? php
2015-09-12 00:46:46 -04:00
/* This will handle error, success and notice messages */
hesk_handle_messages ();
2015-01-11 19:36:14 -05:00
2015-09-12 00:46:46 -04:00
if ( $hesk_settings [ 'cust_urgency' ]) {
hesk_show_notice ( $hesklang [ 'cat_pri_info' ] . ' ' . $hesklang [ 'cpri' ]);
}
2014-08-09 16:06:02 -04:00
?>
2015-09-12 00:46:46 -04:00
< h3 >< ? php echo $hesklang [ 'manage_cat' ]; ?> <a href="javascript:void(0)"
onclick = " javascript:alert('<?php echo hesk_makeJsString( $hesklang['cat_intro'] ); ?>') " >< i
class = " fa fa-question-circle settingsquestionmark " ></ i ></ a ></ h3 >
2014-08-09 16:06:02 -04:00
< div class = " footerWithBorder blankSpace " ></ div >
< table class = " table table-hover " >
< tr >
< th >< ? php echo $hesklang [ 'id' ]; ?> </th>
< th >< ? php echo $hesklang [ 'cat_name' ]; ?> </th>
2015-01-11 19:36:14 -05:00
< th >< ? php echo $hesklang [ 'priority' ]; ?> </th>
2015-01-14 21:10:48 -05:00
< th >< ? php echo $hesklang [ 'not' ]; ?> </th>
2014-08-09 16:06:02 -04:00
< th >< ? php echo $hesklang [ 'graph' ]; ?> </th>
2015-06-04 22:00:27 -04:00
< th >< ? php echo $hesklang [ 'manager' ] ?> </th>
2014-08-09 16:06:02 -04:00
< th >< ? php echo $hesklang [ 'opt' ]; ?> </th>
</ tr >
2014-03-23 16:03:30 -04:00
< ? php
2014-08-09 16:06:02 -04:00
/* Get number of tickets per category */
2015-09-12 00:46:46 -04:00
$tickets_all = array ();
2014-08-09 16:06:02 -04:00
$tickets_total = 0 ;
2015-09-12 00:46:46 -04:00
$res = hesk_dbQuery ( 'SELECT COUNT(*) AS `cnt`, `category` FROM `' . hesk_dbEscape ( $hesk_settings [ 'db_pfix' ]) . 'tickets` GROUP BY `category`' );
while ( $tmp = hesk_dbFetchAssoc ( $res )) {
2014-08-09 16:06:02 -04:00
$tickets_all [ $tmp [ 'category' ]] = $tmp [ 'cnt' ];
$tickets_total += $tmp [ 'cnt' ];
}
2014-03-23 16:03:30 -04:00
2014-08-09 16:06:02 -04:00
/* Get list of categories */
2015-09-12 00:46:46 -04:00
$res = hesk_dbQuery ( " SELECT * FROM ` " . hesk_dbEscape ( $hesk_settings [ 'db_pfix' ]) . " categories` ORDER BY ` " . $orderBy . " ` ASC " );
$usersRes = hesk_dbQuery ( " SELECT * FROM ` " . hesk_dbEscape ( $hesk_settings [ 'db_pfix' ]) . " users` WHERE `isadmin` = '0' ORDER BY `name` ASC " );
2015-06-04 22:00:27 -04:00
$users = array ();
while ( $userRow = hesk_dbFetchAssoc ( $usersRes )) {
array_push ( $users , $userRow );
}
2014-03-23 16:03:30 -04:00
2015-09-12 00:46:46 -04:00
$i = 1 ;
$j = 0 ;
2014-08-09 16:06:02 -04:00
$num = hesk_dbNumRows ( $res );
2015-09-12 00:46:46 -04:00
while ( $mycat = hesk_dbFetchAssoc ( $res )) {
2014-08-09 16:06:02 -04:00
$j ++ ;
2015-09-12 00:46:46 -04:00
if ( isset ( $_SESSION [ 'selcat2' ]) && $mycat [ 'id' ] == $_SESSION [ 'selcat2' ]) {
2014-08-09 16:06:02 -04:00
$color = 'admin_green' ;
unset ( $_SESSION [ 'selcat2' ]);
2015-09-12 00:46:46 -04:00
} else {
2014-08-09 16:06:02 -04:00
$color = $i ? 'admin_white' : 'admin_gray' ;
2014-03-23 16:03:30 -04:00
}
2015-09-12 00:46:46 -04:00
$tmp = $i ? 'White' : 'Blue' ;
$style = 'class="option' . $tmp . 'OFF" onmouseover="this.className=\'option' . $tmp . 'ON\'" onmouseout="this.className=\'option' . $tmp . 'OFF\'"' ;
$i = $i ? 0 : 1 ;
2014-03-23 16:03:30 -04:00
2014-08-09 16:06:02 -04:00
/* Number of tickets and graph width */
$all = isset ( $tickets_all [ $mycat [ 'id' ]]) ? $tickets_all [ $mycat [ 'id' ]] : 0 ;
$width_all = 0 ;
2015-09-12 00:46:46 -04:00
if ( $tickets_total && $all ) {
$width_all = round (( $all / $tickets_total ) * 100 );
2014-08-09 16:06:02 -04:00
}
2014-03-23 16:03:30 -04:00
2014-08-09 16:06:02 -04:00
/* Deleting category with ID 1 (default category) is not allowed */
2015-09-12 00:46:46 -04:00
if ( $mycat [ 'id' ] == 1 ) {
$remove_code = ' <img src="../img/blank.gif" width="16" height="16" alt="" style="padding:3px;border:none;" />' ;
} else {
$remove_code = ' <a href="manage_categories.php?a=remove&catid=' . $mycat [ 'id' ] . '&token=' . hesk_token_echo ( 0 ) . '" onclick="return confirm_delete();"><i class="fa fa-times icon-link red" data-toggle="tooltip" data-placement="top" title="' . $hesklang [ 'delete' ] . '"></i></a>' ;
2014-08-09 16:06:02 -04:00
}
2014-03-23 16:03:30 -04:00
2014-08-09 16:06:02 -04:00
/* Is category private or public? */
2015-09-12 00:46:46 -04:00
if ( $mycat [ 'type' ]) {
$type_code = '<a href="manage_categories.php?a=type&s=0&catid=' . $mycat [ 'id' ] . '&token=' . hesk_token_echo ( 0 ) . '"><span class="glyphicon glyphicon-user gray" data-toggle="tooltip" data-placement="top" title="' . $hesklang [ 'cat_private' ] . '"></span></a>' ;
} else {
$type_code = '<a href="manage_categories.php?a=type&s=1&catid=' . $mycat [ 'id' ] . '&token=' . hesk_token_echo ( 0 ) . '"><span class="glyphicon glyphicon-user blue" data-toggle="tooltip" data-placement="top" title="' . $hesklang [ 'cat_public' ] . '"></span></a>' ;
2014-08-09 16:06:02 -04:00
}
/* Is auto assign enabled? */
2015-09-12 00:46:46 -04:00
if ( $hesk_settings [ 'autoassign' ]) {
if ( $mycat [ 'autoassign' ]) {
$autoassign_code = '<a href="manage_categories.php?a=autoassign&s=0&catid=' . $mycat [ 'id' ] . '&token=' . hesk_token_echo ( 0 ) . '"><i class="fa fa-bolt icon-link orange" data-toggle="tooltip" data-placement="top" title="' . $hesklang [ 'aaon' ] . '"></i></a>' ;
} else {
$autoassign_code = '<a href="manage_categories.php?a=autoassign&s=1&catid=' . $mycat [ 'id' ] . '&token=' . hesk_token_echo ( 0 ) . '"><i class="fa fa-bolt icon-link gray" data-toggle="tooltip" data-placement="top" title="' . $hesklang [ 'aaoff' ] . '"></i></a>' ;
2014-03-23 16:03:30 -04:00
}
2015-09-12 00:46:46 -04:00
} else {
2014-08-09 16:06:02 -04:00
$autoassign_code = '' ;
}
2014-03-23 16:03:30 -04:00
2014-08-09 16:06:02 -04:00
echo '
< tr >
2015-09-12 00:46:46 -04:00
< td > ' . $mycat[' id '] . ' </ td >
< td > ' . $mycat[' name '] . ' </ td >
< td width = " 1 " style = " white-space: nowrap; " > ' . $priorities[$mycat[' priority ']][' formatted '] . ' </ td >
< td >< a href = " show_tickets.php?category=' . $mycat['id'] . '&s_all=1&s_my=1&s_ot=1&s_un=1 " alt = " ' . $hesklang['list_tickets_cat'] . ' " title = " ' . $hesklang['list_tickets_cat'] . ' " > ' . $all . ' </ a ></ td >
2014-08-09 16:06:02 -04:00
< td >
2015-09-12 00:46:46 -04:00
< div class = " progress " style = " width: 160px; margin-bottom: 0 " title = " ' . sprintf( $hesklang['perat'] , $width_all . '%') . ' " >
< div class = " progress-bar progress-bar-success " role = " progressbar " aria - valuenow = " 40 " aria - valuemin = " 0 " aria - valuemax = " 100 " style = " width: ' . $width_all . '% " >
2015-01-19 00:13:39 -05:00
< span class = " sr-only " > 40 % Complete ( success ) </ span >
</ div >
2014-08-09 16:06:02 -04:00
</ div >
</ td >
2015-09-12 00:46:46 -04:00
< td > ' . output_user_dropdown($mycat[' id '], $mycat[' manager '], $users) . ' </ td >
2014-08-09 16:06:02 -04:00
< td >
2015-09-12 00:46:46 -04:00
< a href = " Javascript:void(0) " onclick = " Javascript:hesk_window( \ 'manage_categories.php?a=linkcode&catid=' . $mycat['id'] . '&p=' . $mycat['type'] . ' \ ', \ '200 \ ', \ '500 \ ') " id = " tooltip " >< i class = " fa fa-code icon-link " style = " color: ' . ( $mycat['type'] ? 'gray' : 'green') . ' " data - toggle = " tooltip " data - placement = " top " title = " ' . $hesklang['geco'] . ' " ></ i ></ a >
2014-08-09 16:06:02 -04:00
' . $autoassign_code . '
' . $type_code . ' ' ;
2014-03-23 16:03:30 -04:00
2015-09-12 00:46:46 -04:00
if ( $orderBy != 'name' && $num > 1 ) {
if ( $j == 1 ) {
echo '<img src="../img/blank.gif" width="16" height="16" alt="" style="padding:3px;border:none;" /> <a href="manage_categories.php?a=order&catid=' . $mycat [ 'id' ] . '&move=15&token=' . hesk_token_echo ( 0 ) . '"><i class="fa fa-arrow-down icon-link green" data-toggle="tooltip" data-placement="top" title="' . $hesklang [ 'move_dn' ] . '"></i></a>' ;
} elseif ( $j == $num ) {
echo '<a href="manage_categories.php?a=order&catid=' . $mycat [ 'id' ] . '&move=-15&token=' . hesk_token_echo ( 0 ) . '"><i class="fa fa-arrow-up icon-link green" data-toggle="tooltip" data-placement="top" title="' . $hesklang [ 'move_up' ] . '"></i></a> <img src="../img/blank.gif" width="16" height="16" alt="" style="padding:3px;border:none;" />' ;
} else {
echo '
< a href = " manage_categories.php?a=order&catid=' . $mycat['id'] . '&move=-15&token=' . hesk_token_echo(0) . ' " >< i class = " fa fa-arrow-up icon-link green " data - toggle = " tooltip " data - placement = " top " title = " ' . $hesklang['move_up'] . ' " ></ i ></ a >
< a href = " manage_categories.php?a=order&catid=' . $mycat['id'] . '&move=15&token=' . hesk_token_echo(0) . ' " >< i class = " fa fa-arrow-down icon-link green " data - toggle = " tooltip " data - placement = " top " title = " ' . $hesklang['move_dn'] . ' " ></ i ></ a >& nbsp ;
2014-08-09 16:06:02 -04:00
' ;
2014-03-23 16:03:30 -04:00
}
2014-08-09 16:06:02 -04:00
}
2015-09-12 00:46:46 -04:00
echo $remove_code . ' </ td >
2014-08-09 16:06:02 -04:00
</ tr >
' ;
2014-03-23 16:03:30 -04:00
2014-08-09 16:06:02 -04:00
} // End while
?>
</ table >
2015-09-12 00:46:46 -04:00
</ div >
2014-03-23 16:03:30 -04:00
</ div >
< ? php
require_once ( HESK_PATH . 'inc/footer.inc.php' );
exit ();
/*** START FUNCTIONS ***/
2015-01-11 19:36:14 -05:00
function change_priority ()
{
global $hesk_settings , $hesklang , $priorities ;
/* A security check */
hesk_token_check ( 'POST' );
2015-09-12 00:46:46 -04:00
$_SERVER [ 'PHP_SELF' ] = 'manage_categories.php?catid=' . intval ( hesk_POST ( 'catid' ));
2015-01-11 19:36:14 -05:00
2015-09-12 00:46:46 -04:00
$catid = hesk_isNumber ( hesk_POST ( 'catid' ), $hesklang [ 'choose_cat_ren' ], $_SERVER [ 'PHP_SELF' ]);
2015-01-11 19:36:14 -05:00
$_SESSION [ 'selcat' ] = $catid ;
$_SESSION [ 'selcat2' ] = $catid ;
2015-09-12 00:46:46 -04:00
$priority = intval ( hesk_POST ( 'priority' , 3 ));
if ( ! array_key_exists ( $priority , $priorities )) {
2015-01-11 19:36:14 -05:00
$priority = 3 ;
}
2015-09-12 00:46:46 -04:00
hesk_dbQuery ( " UPDATE ` " . hesk_dbEscape ( $hesk_settings [ 'db_pfix' ]) . " categories` SET `priority`=' { $priority } ' WHERE `id`=' " . intval ( $catid ) . " ' LIMIT 1 " );
2015-01-11 19:36:14 -05:00
hesk_cleanSessionVars ( 'cat_ch_priority' );
2015-09-12 00:46:46 -04:00
hesk_process_messages ( $hesklang [ 'cat_pri_ch' ] . ' ' . $priorities [ $priority ][ 'formatted' ], $_SERVER [ 'PHP_SELF' ], 'SUCCESS' );
2015-01-11 19:36:14 -05:00
} // END change_priority()
2014-03-23 16:03:30 -04:00
function generate_link_code () {
global $hesk_settings , $hesklang ;
?>
<! DOCTYPE html PUBLIC " -//W3C//DTD XHTML; 1.0 Transitional//EN " " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd " >
< html xmlns = " http://www.w3.org/1999/xhtml " lang = " en " >
< head >
< title >< ? php echo $hesklang [ 'genl' ]; ?> </title>
< meta http - equiv = " Content-Type " content = " text/html;charset=<?php echo $hesklang['ENCODING'] ; ?> " />
< style type = " text/css " >
body
{
margin : 5 px 5 px ;
padding : 0 ;
background : #fff;
color : black ;
font : 68.8 %/ 1.5 Verdana , Geneva , Arial , Helvetica , sans - serif ;
}
p
{
color : black ;
font - family : Verdana , Geneva , Arial , Helvetica , sans - serif ;
font - size : 1.0 em ;
}
h3
{
color : #AF0000;
font - family : Verdana , Geneva , Arial , Helvetica , sans - serif ;
font - weight : bold ;
font - size : 1.0 em ;
}
</ style >
</ head >
< body >
2015-09-10 21:11:58 -04:00
< div class = " text-center " >
2014-03-23 16:03:30 -04:00
< h3 >< ? php echo $hesklang [ 'genl' ]; ?> </h3>
< ? php
if ( ! empty ( $_GET [ 'p' ]) )
{
echo '<p> <br />' . $hesklang [ 'cpric' ] . '<br /> </p>' ;
}
else
{
?>
< p >< i >< ? php echo $hesklang [ 'genl2' ]; ?> </i></p>
< textarea rows = " 3 " cols = " 50 " onfocus = " this.select() " >< ? php echo $hesk_settings [ 'hesk_url' ] . '/index.php?a=add&catid=' . intval ( hesk_GET ( 'catid' ) ); ?> </textarea>
< ? php
}
?>
< p align = " center " >< a href = " # " onclick = " Javascript:window.close() " >< ? php echo $hesklang [ 'cwin' ]; ?> </a></p>
</ div >
</ body >
</ html >
< ? php
exit ();
}
function new_cat ()
{
2015-09-12 00:46:46 -04:00
global $hesk_settings , $hesklang ;
2014-03-23 16:03:30 -04:00
2015-09-12 00:46:46 -04:00
/* A security check */
hesk_token_check ( 'POST' );
2014-03-23 16:03:30 -04:00
/* Options */
$_SESSION [ 'cat_autoassign' ] = hesk_POST ( 'autoassign' ) == 'Y' ? 1 : 0 ;
$_SESSION [ 'cat_type' ] = hesk_POST ( 'type' ) == 'Y' ? 1 : 0 ;
2015-01-11 19:36:14 -05:00
// Default priority
2015-09-12 00:46:46 -04:00
$_SESSION [ 'cat_priority' ] = intval ( hesk_POST ( 'priority' , 3 ));
if ( $_SESSION [ 'cat_priority' ] < 0 || $_SESSION [ 'cat_priority' ] > 3 ) {
2015-01-11 19:36:14 -05:00
$_SESSION [ 'cat_priority' ] = 3 ;
}
2014-03-23 16:03:30 -04:00
/* Category name */
2015-09-12 00:46:46 -04:00
$catname = hesk_input ( hesk_POST ( 'name' ), $hesklang [ 'enter_cat_name' ], 'manage_categories.php' );
2014-03-23 16:03:30 -04:00
/* Do we already have a category with this name? */
2015-09-12 00:46:46 -04:00
$res = hesk_dbQuery ( " SELECT `id` FROM ` " . hesk_dbEscape ( $hesk_settings [ 'db_pfix' ]) . " categories` WHERE `name` LIKE ' " . hesk_dbEscape ( hesk_dbLike ( $catname )) . " ' LIMIT 1 " );
if ( hesk_dbNumRows ( $res ) != 0 ) {
$_SESSION [ 'catname' ] = $catname ;
hesk_process_messages ( $hesklang [ 'cndupl' ], 'manage_categories.php' );
2014-03-23 16:03:30 -04:00
}
2015-09-12 00:46:46 -04:00
/* Get the latest cat_order */
$res = hesk_dbQuery ( " SELECT `cat_order` FROM ` " . hesk_dbEscape ( $hesk_settings [ 'db_pfix' ]) . " categories` ORDER BY `cat_order` DESC LIMIT 1 " );
$row = hesk_dbFetchRow ( $res );
$my_order = $row [ 0 ] + 10 ;
2014-03-23 16:03:30 -04:00
2015-09-12 00:46:46 -04:00
hesk_dbQuery ( " INSERT INTO ` " . hesk_dbEscape ( $hesk_settings [ 'db_pfix' ]) . " categories` (`name`,`cat_order`,`autoassign`,`type`, `priority`) VALUES (' " . hesk_dbEscape ( $catname ) . " ',' " . intval ( $my_order ) . " ',' " . intval ( $_SESSION [ 'cat_autoassign' ]) . " ',' " . intval ( $_SESSION [ 'cat_type' ]) . " ',' { $_SESSION [ 'cat_priority' ] } ') " );
2014-03-23 16:03:30 -04:00
hesk_cleanSessionVars ( 'catname' );
hesk_cleanSessionVars ( 'cat_autoassign' );
hesk_cleanSessionVars ( 'cat_type' );
2015-01-11 19:36:14 -05:00
hesk_cleanSessionVars ( 'cat_priority' );
2014-03-23 16:03:30 -04:00
$_SESSION [ 'selcat2' ] = hesk_dbInsertID ();
2015-09-12 00:46:46 -04:00
hesk_process_messages ( sprintf ( $hesklang [ 'cat_name_added' ], '<i>' . stripslashes ( $catname ) . '</i>' ), 'manage_categories.php' , 'SUCCESS' );
2014-03-23 16:03:30 -04:00
} // End new_cat()
function rename_cat ()
{
2015-09-12 00:46:46 -04:00
global $hesk_settings , $hesklang ;
2014-03-23 16:03:30 -04:00
2015-09-12 00:46:46 -04:00
/* A security check */
hesk_token_check ( 'POST' );
2014-03-23 16:03:30 -04:00
2015-09-12 00:46:46 -04:00
$_SERVER [ 'PHP_SELF' ] = 'manage_categories.php?catid=' . intval ( hesk_POST ( 'catid' ));
2014-03-23 16:03:30 -04:00
2015-09-12 00:46:46 -04:00
$catid = hesk_isNumber ( hesk_POST ( 'catid' ), $hesklang [ 'choose_cat_ren' ], $_SERVER [ 'PHP_SELF' ]);
$_SESSION [ 'selcat' ] = $catid ;
2014-03-23 16:03:30 -04:00
$_SESSION [ 'selcat2' ] = $catid ;
2015-09-12 00:46:46 -04:00
$catname = hesk_input ( hesk_POST ( 'name' ), $hesklang [ 'cat_ren_name' ], $_SERVER [ 'PHP_SELF' ]);
2014-03-23 16:03:30 -04:00
$_SESSION [ 'catname2' ] = $catname ;
2015-09-12 00:46:46 -04:00
$res = hesk_dbQuery ( " SELECT `id` FROM ` " . hesk_dbEscape ( $hesk_settings [ 'db_pfix' ]) . " categories` WHERE `name` LIKE ' " . hesk_dbEscape ( hesk_dbLike ( $catname )) . " ' LIMIT 1 " );
if ( hesk_dbNumRows ( $res ) != 0 ) {
$old = hesk_dbFetchAssoc ( $res );
if ( $old [ 'id' ] == $catid ) {
hesk_process_messages ( $hesklang [ 'noch' ], $_SERVER [ 'PHP_SELF' ], 'NOTICE' );
} else {
hesk_process_messages ( $hesklang [ 'cndupl' ], $_SERVER [ 'PHP_SELF' ]);
2014-03-23 16:03:30 -04:00
}
}
2015-09-12 00:46:46 -04:00
hesk_dbQuery ( " UPDATE ` " . hesk_dbEscape ( $hesk_settings [ 'db_pfix' ]) . " categories` SET `name`=' " . hesk_dbEscape ( $catname ) . " ' WHERE `id`=' " . intval ( $catid ) . " ' LIMIT 1 " );
2014-03-23 16:03:30 -04:00
unset ( $_SESSION [ 'selcat' ]);
unset ( $_SESSION [ 'catname2' ]);
2015-09-12 00:46:46 -04:00
hesk_process_messages ( $hesklang [ 'cat_renamed_to' ] . ' <i>' . stripslashes ( $catname ) . '</i>' , $_SERVER [ 'PHP_SELF' ], 'SUCCESS' );
2014-03-23 16:03:30 -04:00
} // End rename_cat()
function remove ()
{
2015-09-12 00:46:46 -04:00
global $hesk_settings , $hesklang ;
2014-03-23 16:03:30 -04:00
2015-09-12 00:46:46 -04:00
/* A security check */
hesk_token_check ();
2014-03-23 16:03:30 -04:00
$_SERVER [ 'PHP_SELF' ] = 'manage_categories.php' ;
2015-09-12 00:46:46 -04:00
$mycat = intval ( hesk_GET ( 'catid' )) or hesk_error ( $hesklang [ 'no_cat_id' ]);
if ( $mycat == 1 ) {
hesk_process_messages ( $hesklang [ 'cant_del_default_cat' ], $_SERVER [ 'PHP_SELF' ]);
2014-03-23 16:03:30 -04:00
}
2015-09-12 00:46:46 -04:00
hesk_dbQuery ( " DELETE FROM ` " . hesk_dbEscape ( $hesk_settings [ 'db_pfix' ]) . " categories` WHERE `id`=' " . intval ( $mycat ) . " ' LIMIT 1 " );
if ( hesk_dbAffectedRows () != 1 ) {
hesk_error ( " $hesklang[int_error] : $hesklang[cat_not_found] . " );
2014-03-23 16:03:30 -04:00
}
2015-09-12 00:46:46 -04:00
hesk_dbQuery ( " UPDATE ` " . hesk_dbEscape ( $hesk_settings [ 'db_pfix' ]) . " tickets` SET `category`=1 WHERE `category`=' " . intval ( $mycat ) . " ' " );
2014-03-23 16:03:30 -04:00
2015-09-12 00:46:46 -04:00
hesk_process_messages ( $hesklang [ 'cat_removed_db' ], $_SERVER [ 'PHP_SELF' ], 'SUCCESS' );
2014-03-23 16:03:30 -04:00
} // End remove()
function order_cat ()
{
2015-09-12 00:46:46 -04:00
global $hesk_settings , $hesklang ;
2014-03-23 16:03:30 -04:00
2015-09-12 00:46:46 -04:00
/* A security check */
hesk_token_check ();
2014-03-23 16:03:30 -04:00
2015-09-12 00:46:46 -04:00
$catid = intval ( hesk_GET ( 'catid' )) or hesk_error ( $hesklang [ 'cat_move_id' ]);
$_SESSION [ 'selcat2' ] = $catid ;
2014-03-23 16:03:30 -04:00
2015-09-12 00:46:46 -04:00
$cat_move = intval ( hesk_GET ( 'move' ));
2014-03-23 16:03:30 -04:00
2015-09-12 00:46:46 -04:00
hesk_dbQuery ( " UPDATE ` " . hesk_dbEscape ( $hesk_settings [ 'db_pfix' ]) . " categories` SET `cat_order`=`cat_order`+ " . intval ( $cat_move ) . " WHERE `id`=' " . intval ( $catid ) . " ' LIMIT 1 " );
if ( hesk_dbAffectedRows () != 1 ) {
hesk_error ( " $hesklang[int_error] : $hesklang[cat_not_found] . " );
2014-03-23 16:03:30 -04:00
}
2015-09-12 00:46:46 -04:00
/* Update all category fields with new order */
$res = hesk_dbQuery ( " SELECT `id` FROM ` " . hesk_dbEscape ( $hesk_settings [ 'db_pfix' ]) . " categories` ORDER BY `cat_order` ASC " );
2014-03-23 16:03:30 -04:00
2015-09-12 00:46:46 -04:00
$i = 10 ;
while ( $mycat = hesk_dbFetchAssoc ( $res )) {
hesk_dbQuery ( " UPDATE ` " . hesk_dbEscape ( $hesk_settings [ 'db_pfix' ]) . " categories` SET `cat_order`= " . intval ( $i ) . " WHERE `id`=' " . intval ( $mycat [ 'id' ]) . " ' LIMIT 1 " );
$i += 10 ;
}
2014-03-23 16:03:30 -04:00
header ( 'Location: manage_categories.php' );
exit ();
} // End order_cat()
function toggle_autoassign ()
{
2015-09-12 00:46:46 -04:00
global $hesk_settings , $hesklang ;
2014-03-23 16:03:30 -04:00
2015-09-12 00:46:46 -04:00
/* A security check */
hesk_token_check ();
2014-03-23 16:03:30 -04:00
2015-09-12 00:46:46 -04:00
$catid = intval ( hesk_GET ( 'catid' )) or hesk_error ( $hesklang [ 'cat_move_id' ]);
$_SESSION [ 'selcat2' ] = $catid ;
2014-03-23 16:03:30 -04:00
2015-09-12 00:46:46 -04:00
if ( intval ( hesk_GET ( 's' ))) {
$autoassign = 1 ;
2014-03-23 16:03:30 -04:00
$tmp = $hesklang [ 'caaon' ];
2015-09-12 00:46:46 -04:00
} else {
2014-03-23 16:03:30 -04:00
$autoassign = 0 ;
$tmp = $hesklang [ 'caaoff' ];
}
2015-09-12 00:46:46 -04:00
/* Update auto-assign settings */
$res = hesk_dbQuery ( " UPDATE ` " . hesk_dbEscape ( $hesk_settings [ 'db_pfix' ]) . " categories` SET `autoassign`=' " . intval ( $autoassign ) . " ' WHERE `id`=' " . intval ( $catid ) . " ' LIMIT 1 " );
if ( hesk_dbAffectedRows () != 1 ) {
hesk_process_messages ( $hesklang [ 'int_error' ] . ': ' . $hesklang [ 'cat_not_found' ], './manage_categories.php' );
2014-03-23 16:03:30 -04:00
}
2015-09-12 00:46:46 -04:00
hesk_process_messages ( $tmp , './manage_categories.php' , 'SUCCESS' );
2014-03-23 16:03:30 -04:00
} // End toggle_autoassign()
function toggle_type ()
{
2015-09-12 00:46:46 -04:00
global $hesk_settings , $hesklang ;
2014-03-23 16:03:30 -04:00
2015-09-12 00:46:46 -04:00
/* A security check */
hesk_token_check ();
2014-03-23 16:03:30 -04:00
2015-09-12 00:46:46 -04:00
$catid = intval ( hesk_GET ( 'catid' )) or hesk_error ( $hesklang [ 'cat_move_id' ]);
$_SESSION [ 'selcat2' ] = $catid ;
2014-03-23 16:03:30 -04:00
2015-09-12 00:46:46 -04:00
if ( intval ( hesk_GET ( 's' ))) {
$type = 1 ;
2014-03-23 16:03:30 -04:00
$tmp = $hesklang [ 'cpriv' ];
2015-09-12 00:46:46 -04:00
} else {
2014-03-23 16:03:30 -04:00
$type = 0 ;
$tmp = $hesklang [ 'cpub' ];
}
2015-09-12 00:46:46 -04:00
/* Update auto-assign settings */
hesk_dbQuery ( " UPDATE ` " . hesk_dbEscape ( $hesk_settings [ 'db_pfix' ]) . " categories` SET `type`=' { $type } ' WHERE `id`=' " . intval ( $catid ) . " ' LIMIT 1 " );
if ( hesk_dbAffectedRows () != 1 ) {
hesk_process_messages ( $hesklang [ 'int_error' ] . ': ' . $hesklang [ 'cat_not_found' ], './manage_categories.php' );
2014-03-23 16:03:30 -04:00
}
2015-09-12 00:46:46 -04:00
hesk_process_messages ( $tmp , './manage_categories.php' , 'SUCCESS' );
2014-03-23 16:03:30 -04:00
} // End toggle_type()
2015-06-04 22:00:27 -04:00
2015-09-12 00:46:46 -04:00
function output_user_dropdown ( $catId , $selectId , $userArray )
{
2015-06-04 22:00:27 -04:00
global $hesklang ;
2015-06-07 20:31:13 -04:00
if ( ! hesk_checkPermission ( 'can_set_manager' , 0 )) {
foreach ( $userArray as $user ) {
if ( $user [ 'id' ] == $selectId ) {
2015-09-12 00:46:46 -04:00
return '<p>' . $user [ 'name' ] . '</p>' ;
2015-06-07 20:31:13 -04:00
}
}
2015-09-12 00:46:46 -04:00
return '<p>' . $hesklang [ 'no_manager' ] . '</p>' ;
2015-06-07 20:31:13 -04:00
} else {
$dropdownMarkup = ' < select class = " form-control input-sm " name = " managerid " >
2015-09-12 00:46:46 -04:00
< option value = " 0 " > ' . $hesklang[' no_manager '] . ' </ option > ' ;
2015-06-07 20:31:13 -04:00
foreach ( $userArray as $user ) {
$select = $selectId == $user [ 'id' ] ? 'selected' : '' ;
2015-09-12 00:46:46 -04:00
$dropdownMarkup .= '<option value="' . $user [ 'id' ] . '" ' . $select . '>' . $user [ 'name' ] . '</option>' ;
2015-06-07 20:31:13 -04:00
}
$dropdownMarkup .= '</select>' ;
2015-06-04 22:00:27 -04:00
2015-09-12 00:46:46 -04:00
return '<form role="form" id="manager_form_' . $catId . '" action="manage_categories.php" method="post" class="form-inline" onchange="document.getElementById(\'manager_form_' . $catId . ' \ ' ) . submit (); " >
2015-06-04 22:00:27 -04:00
< input type = " hidden " name = " a " value = " manager " >
2015-09-12 00:46:46 -04:00
< input type = " hidden " name = " catid " value = " ' . $catId . ' " >
' . $dropdownMarkup . '
2015-06-04 22:00:27 -04:00
</ form > ' ;
2015-06-07 20:31:13 -04:00
}
2015-06-04 22:00:27 -04:00
}
2015-09-12 00:46:46 -04:00
function change_manager ()
{
2015-06-04 22:00:27 -04:00
global $hesklang , $hesk_settings ;
$catid = hesk_POST ( 'catid' );
$newManagerId = hesk_POST ( 'managerid' );
2015-09-12 00:46:46 -04:00
hesk_dbQuery ( 'UPDATE `' . hesk_dbEscape ( $hesk_settings [ 'db_pfix' ]) . 'categories` SET `manager` = ' . intval ( $newManagerId ) . ' WHERE `id` = ' . intval ( $catid ));
if ( hesk_dbAffectedRows () != 1 ) {
hesk_process_messages ( $hesklang [ 'int_error' ] . ': ' . $hesklang [ 'cat_not_found' ], './manage_categories.php' );
2015-06-04 22:00:27 -04:00
}
2015-06-07 01:41:20 -04:00
if ( $newManagerId == 0 ) {
// There is no new manager.
return ;
}
// Add the category to the user's categories list, if not already present
2015-09-12 00:46:46 -04:00
$currentCatRs = hesk_dbQuery ( 'SELECT `categories` FROM `' . hesk_dbEscape ( $hesk_settings [ 'db_pfix' ]) . 'users` WHERE `id` = ' . intval ( $newManagerId ));
2015-06-07 01:41:20 -04:00
$currentCategories = hesk_dbFetchAssoc ( $currentCatRs );
$categories = explode ( ',' , $currentCategories [ 'categories' ]);
if ( ! in_array ( $catid , $categories )) {
2015-09-12 00:46:46 -04:00
hesk_dbQuery ( 'UPDATE `' . hesk_dbEscape ( $hesk_settings [ 'db_pfix' ]) . 'users` SET `categories` = \'' . $currentCategories [ 'categories' ] . ',' . $catid . '\' WHERE `id` = ' . intval ( $newManagerId ));
2015-06-07 01:41:20 -04:00
}
2015-06-04 22:00:27 -04:00
2015-09-12 00:46:46 -04:00
hesk_process_messages ( $hesklang [ 'manager_updated' ], './manage_categories.php' , 'SUCCESS' );
2015-06-04 22:00:27 -04:00
}
2015-09-12 00:46:46 -04:00
2014-03-23 16:03:30 -04:00
?>