Files
Kleeja/includes/adm/k_ban.php

107 lines
2.4 KiB
PHP
Raw Normal View History

2018-01-09 02:09:07 +03:00
<?php
/**
*
* @package adm
2020-04-11 22:45:48 +02:00
* @copyright (c) 2007 Kleeja.net
2018-01-09 02:09:07 +03:00
* @license ./docs/license.txt
*
*/
// not for directly open
2019-05-03 23:52:08 +03:00
if (! defined('IN_ADMIN'))
2018-01-09 02:09:07 +03:00
{
2019-05-03 23:52:08 +03:00
exit();
2018-01-09 02:09:07 +03:00
}
//for style ..
2019-05-25 00:30:55 +03:00
$stylee = 'admin_ban';
2019-05-18 20:55:28 +03:00
$H_FORM_KEYS_GET = kleeja_add_form_key_get('adm_ban_get');
2019-05-25 00:30:55 +03:00
$H_FORM_KEYS = kleeja_add_form_key('adm_ban');
2018-01-09 02:09:07 +03:00
2019-05-25 00:30:55 +03:00
$action = basename(ADMIN_PATH) . '?cp=' . basename(__file__, '.php');
$delete_item = basename(ADMIN_PATH) . '?cp=' . basename(__file__, '.php') . '&amp;' . $H_FORM_KEYS_GET . '&amp;case=del&amp;k=';
2019-05-18 20:55:28 +03:00
$new_item_action = basename(ADMIN_PATH) . '?cp=' . basename(__file__, '.php') . '&amp;case=new';
2018-01-09 02:09:07 +03:00
//
// Check form key
//
2019-05-25 00:30:55 +03:00
$case = g('case', 'str', 'view');
2019-05-18 20:55:28 +03:00
$update_ban_content = false;
2018-01-09 02:09:07 +03:00
2019-05-18 01:47:17 +03:00
$query = [
'SELECT' => 'ban',
'FROM' => "{$dbprefix}stats"
2019-05-03 23:52:08 +03:00
];
2018-01-09 02:09:07 +03:00
$result = $SQL->build($query);
2019-05-18 20:55:28 +03:00
$current_ban_data = $SQL->fetch_array($result);
$SQL->freeresult($result);
2022-08-21 11:19:29 +01:00
$banned_items = ! empty($current_ban_data['ban']) ? explode('|', $current_ban_data['ban']) : [];
2018-01-09 02:09:07 +03:00
2019-05-18 20:55:28 +03:00
$show_message = false;
2018-01-09 02:09:07 +03:00
2019-05-25 00:30:55 +03:00
if ($case == 'del' && ig('k'))
2018-01-09 02:09:07 +03:00
{
2019-05-18 20:55:28 +03:00
if (! kleeja_check_form_key_get('adm_ban_get'))
{
header('HTTP/1.0 401 Unauthorized');
kleeja_admin_err($lang['INVALID_GET_KEY'], $action);
}
$to_delete = g('k');
2019-05-25 00:30:55 +03:00
$banned_items = array_filter($banned_items, function($item) use ($to_delete, $lang, &$show_message) {
if (md5($item) == $to_delete)
{
2019-05-18 20:55:28 +03:00
$show_message = sprintf($lang['ITEM_DELETED'], $item);
return false;
}
return true;
});
$update_ban_content = $show_message;
}
2019-05-25 00:30:55 +03:00
if ($case == 'new')
2019-05-18 20:55:28 +03:00
{
if (! kleeja_check_form_key('adm_ban'))
{
kleeja_admin_err($lang['INVALID_FORM_KEY'], true, $lang['ERROR'], true, $action, 1);
}
$to_add = p('k', 'str', '');
2019-05-25 00:30:55 +03:00
if (! empty($to_add))
2019-05-18 20:55:28 +03:00
{
2019-05-25 00:30:55 +03:00
$banned_items[] = $to_add;
$show_message = $lang['BAN_UPDATED'];
2019-05-18 20:55:28 +03:00
$update_ban_content = true;
}
}
2019-05-25 00:30:55 +03:00
if ($update_ban_content)
2019-05-18 20:55:28 +03:00
{
$banned_items = array_filter($banned_items);
2018-01-09 02:09:07 +03:00
//update
2019-05-18 01:47:17 +03:00
$update_query = [
'UPDATE' => "{$dbprefix}stats",
2019-05-18 20:55:28 +03:00
'SET' => "ban='" . $SQL->escape(implode('|', $banned_items)) . "'"
2019-05-03 23:52:08 +03:00
];
2018-01-09 02:09:07 +03:00
$SQL->build($update_query);
2019-05-03 23:52:08 +03:00
if ($SQL->affected())
2018-01-09 02:09:07 +03:00
{
delete_cache('data_ban');
}
}
array_walk($banned_items, function (&$value, $key) {
2019-05-18 20:55:28 +03:00
$value = ['content' => $value, 'del_key' => md5($value), 'id' => $key+1];
});