([^\<]*)\<\/a\>/i');
$to = array("\\r\\n' + \r\n'", "$1", "$1");
return preg_replace($from, $to, $str);
} // END hesk_jsString()
function hesk_myCategories($what = 'category')
{
if (!empty($_SESSION['isadmin'])) {
return '1';
} else {
return " `" . hesk_dbEscape($what) . "` IN ('" . implode("','", array_map('intval', $_SESSION['categories'])) . "')";
}
} // END hesk_myCategories()
function hesk_okCategory($cat, $error = 1, $user_isadmin = false, $user_cat = false)
{
global $hesklang;
/* Checking for current user or someone else? */
if ($user_isadmin === false) {
$user_isadmin = $_SESSION['isadmin'];
}
if ($user_cat === false) {
$user_cat = $_SESSION['categories'];
}
/* Is admin? */
if ($user_isadmin) {
return true;
} /* Staff with access? */
elseif (in_array($cat, $user_cat)) {
return true;
} /* No access */
else {
if ($error) {
hesk_error($hesklang['not_authorized_tickets']);
} else {
return false;
}
}
} // END hesk_okCategory()
function hesk_checkPermission($feature, $showerror = 1)
{
global $hesklang;
/* Admins have full access to all features */
if (isset($_SESSION['isadmin']) && $_SESSION['isadmin']) {
return true;
}
/* Check other staff for permissions */
if (isset($_SESSION['heskprivileges']) && strpos($_SESSION['heskprivileges'], $feature) === false) {
if ($showerror) {
hesk_error($hesklang['no_permission'] . '
' . $hesklang['click_login'] . '');
} else {
return false;
}
} else {
return true;
}
} // END hesk_checkPermission()
function hesk_purge_cache($type = '', $expire_after_seconds = 0)
{
global $hesk_settings;
$cache_dir = dirname(dirname(__FILE__)).'/'.$hesk_settings['cache_dir'].'/';
if ( ! is_dir($cache_dir))
{
return false;
}
switch ($type)
{
case 'export':
$files = glob($cache_dir.'hesk_export_*', GLOB_NOSORT);
break;
case 'status':
$files = glob($cache_dir.'status_*', GLOB_NOSORT);
break;
case 'cf':
$files = glob($cache_dir.'cf_*', GLOB_NOSORT);
break;
case 'kb':
$files = array($cache_dir.'kb.cache.php');
break;
default:
hesk_rrmdir(trim($cache_dir, '/'), true);
return true;
}
if (is_array($files))
{
array_walk($files, 'hesk_unlink_callable', $expire_after_seconds);
}
return true;
} // END hesk_purge_cache()
function hesk_rrmdir($dir, $keep_top_level=false)
{
$files = $keep_top_level ? array_diff(scandir($dir), array('.','..','index.htm')) : array_diff(scandir($dir), array('.','..'));
foreach ($files as $file)
{
(is_dir("$dir/$file")) ? hesk_rrmdir("$dir/$file") : @unlink("$dir/$file");
}
return $keep_top_level ? true : @rmdir($dir);
} // END hesk_rrmdir()