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
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2019-05-03 23:52:08 +03:00
|
|
|
//turn time-limit off
|
2018-01-09 02:09:07 +03:00
|
|
|
@set_time_limit(0);
|
|
|
|
|
|
2019-05-03 23:52:08 +03:00
|
|
|
//get current case
|
2018-01-09 02:09:07 +03:00
|
|
|
$case = false;
|
2019-05-03 23:52:08 +03:00
|
|
|
|
|
|
|
|
if (ig('case'))
|
2018-01-09 02:09:07 +03:00
|
|
|
{
|
2019-05-03 23:52:08 +03:00
|
|
|
$case = g('case');
|
2018-01-09 02:09:07 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2019-05-03 23:52:08 +03:00
|
|
|
//set form ket
|
2018-01-09 02:09:07 +03:00
|
|
|
$GET_FORM_KEY = kleeja_add_form_key_get('REPAIR_FORM_KEY');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//check _GET Csrf token
|
2019-05-03 23:52:08 +03:00
|
|
|
if ($case && in_array($case, ['clearc', 'sync_files', 'sync_images', 'sync_users', 'tables', 'sync_sizes', 'status_file']))
|
2018-01-09 02:09:07 +03:00
|
|
|
{
|
2019-05-03 23:52:08 +03:00
|
|
|
if (! kleeja_check_form_key_get('REPAIR_FORM_KEY'))
|
|
|
|
|
{
|
|
|
|
|
kleeja_admin_err($lang['INVALID_GET_KEY'], true, $lang['ERROR'], true, basename(ADMIN_PATH), 2);
|
|
|
|
|
}
|
2018-01-09 02:09:07 +03:00
|
|
|
}
|
|
|
|
|
|
2019-05-26 21:31:18 +03:00
|
|
|
$text = '';
|
|
|
|
|
|
|
|
|
|
|
2019-05-03 23:52:08 +03:00
|
|
|
switch ($case):
|
2018-01-09 02:09:07 +03:00
|
|
|
|
2024-10-07 17:15:05 +01:00
|
|
|
default:
|
2018-01-09 02:09:07 +03:00
|
|
|
|
2024-10-07 17:15:05 +01:00
|
|
|
// Get real number from database right now
|
|
|
|
|
$all_files = get_actual_stats('files');
|
|
|
|
|
$all_images = get_actual_stats('imgs');
|
|
|
|
|
$all_users = get_actual_stats('users');
|
|
|
|
|
$all_sizes = readable_size(get_actual_stats('sizes'));
|
2018-01-09 02:09:07 +03:00
|
|
|
|
|
|
|
|
|
2024-10-07 17:15:05 +01:00
|
|
|
//links
|
|
|
|
|
$del_cache_link = basename(ADMIN_PATH) . '?cp=r_repair&case=clearc&' . $GET_FORM_KEY;
|
|
|
|
|
$resync_files_link = $config['siteurl'] . 'go.php?go=resync&case=sync_files';
|
|
|
|
|
$resync_images_link = $config['siteurl'] . 'go.php?go=resync&case=sync_images';
|
|
|
|
|
$resync_users_link = basename(ADMIN_PATH) . '?cp=r_repair&case=sync_users&' . $GET_FORM_KEY;
|
|
|
|
|
$resync_sizes_link = basename(ADMIN_PATH) . '?cp=r_repair&case=sync_sizes&' . $GET_FORM_KEY;
|
|
|
|
|
$repair_tables_link = basename(ADMIN_PATH) . '?cp=r_repair&case=tables&' . $GET_FORM_KEY;
|
2018-01-09 02:09:07 +03:00
|
|
|
|
2024-10-07 17:15:05 +01:00
|
|
|
$queue_cron_job_url = $config['siteurl'] . 'go.php?go=queue';
|
2018-01-09 02:09:07 +03:00
|
|
|
|
2024-10-07 17:15:05 +01:00
|
|
|
$stylee = 'admin_repair';
|
2018-01-09 02:09:07 +03:00
|
|
|
|
2024-10-07 17:15:05 +01:00
|
|
|
break;
|
2018-01-09 02:09:07 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
//
|
2024-10-07 17:15:05 +01:00
|
|
|
//fix tables ..
|
2018-01-09 02:09:07 +03:00
|
|
|
//
|
2024-10-07 17:15:05 +01:00
|
|
|
case 'tables':
|
2018-01-09 02:09:07 +03:00
|
|
|
|
2024-10-07 17:15:05 +01:00
|
|
|
$query = 'SHOW TABLE STATUS';
|
|
|
|
|
$result = $SQL->query($query);
|
2019-05-03 23:52:08 +03:00
|
|
|
|
2024-10-07 17:15:05 +01:00
|
|
|
while ($row=$SQL->fetch_array($result))
|
|
|
|
|
{
|
|
|
|
|
$queryf = 'REPAIR TABLE `' . $row['Name'] . '`';
|
|
|
|
|
$resultf = $SQL->query($queryf);
|
2019-05-03 23:52:08 +03:00
|
|
|
|
2024-10-07 17:15:05 +01:00
|
|
|
if ($resultf)
|
|
|
|
|
{
|
|
|
|
|
$text .= '<li>' . $lang['REPAIRE_TABLE'] . $row['Name'] . '</li>';
|
|
|
|
|
}
|
|
|
|
|
}
|
2019-05-03 23:52:08 +03:00
|
|
|
|
2024-10-07 17:15:05 +01:00
|
|
|
$SQL->freeresult($result);
|
2018-01-09 02:09:07 +03:00
|
|
|
|
2024-10-07 17:15:05 +01:00
|
|
|
$text .= '<script type="text/javascript"> setTimeout("get_kleeja_link(\'' . basename(ADMIN_PATH) . '?cp=r_repair' . '\');", 2000);</script>' . "\n";
|
|
|
|
|
$stylee = 'admin_info';
|
2018-01-09 02:09:07 +03:00
|
|
|
|
|
|
|
|
|
2024-10-07 17:15:05 +01:00
|
|
|
break;
|
2018-01-09 02:09:07 +03:00
|
|
|
|
|
|
|
|
//
|
2024-10-07 17:15:05 +01:00
|
|
|
//re-sync sizes ..
|
2018-01-09 02:09:07 +03:00
|
|
|
//
|
2024-10-07 17:15:05 +01:00
|
|
|
case 'sync_sizes':
|
2018-01-09 02:09:07 +03:00
|
|
|
|
|
|
|
|
|
2024-10-07 17:15:05 +01:00
|
|
|
$query_s = [
|
|
|
|
|
'SELECT' => 'size',
|
|
|
|
|
'FROM' => "{$dbprefix}files"
|
|
|
|
|
];
|
2018-01-09 02:09:07 +03:00
|
|
|
|
2024-10-07 17:15:05 +01:00
|
|
|
$result_s = $SQL->build($query_s);
|
2018-01-09 02:09:07 +03:00
|
|
|
|
2024-10-07 17:15:05 +01:00
|
|
|
$files_number = $files_sizes = 0;
|
2018-01-09 02:09:07 +03:00
|
|
|
|
2024-10-07 17:15:05 +01:00
|
|
|
while ($row=$SQL->fetch_array($result_s))
|
|
|
|
|
{
|
|
|
|
|
$files_number++;
|
|
|
|
|
$files_sizes = $files_sizes+$row['size'];
|
|
|
|
|
}
|
2018-01-09 02:09:07 +03:00
|
|
|
|
2024-10-07 17:15:05 +01:00
|
|
|
$SQL->freeresult($result_s);
|
2018-01-09 02:09:07 +03:00
|
|
|
|
2024-10-07 17:15:05 +01:00
|
|
|
$update_query = [
|
|
|
|
|
'UPDATE' => "{$dbprefix}stats",
|
|
|
|
|
'SET' => 'files=' . $files_number . ', sizes=' . $files_sizes
|
|
|
|
|
];
|
2018-01-09 02:09:07 +03:00
|
|
|
|
2024-10-07 17:15:05 +01:00
|
|
|
if ($SQL->build($update_query))
|
|
|
|
|
{
|
|
|
|
|
$text .= '<li>' . $lang['REPAIRE_F_STAT'] . '</li>';
|
|
|
|
|
}
|
2018-01-09 02:09:07 +03:00
|
|
|
|
2024-10-07 17:15:05 +01:00
|
|
|
delete_cache('data_stats');
|
2018-01-09 02:09:07 +03:00
|
|
|
|
2024-10-07 17:15:05 +01:00
|
|
|
$stylee = 'admin_info';
|
2018-01-09 02:09:07 +03:00
|
|
|
|
2024-10-07 17:15:05 +01:00
|
|
|
break;
|
2018-01-09 02:09:07 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
//
|
2024-10-07 17:15:05 +01:00
|
|
|
//re-sync total users number ..
|
2018-01-09 02:09:07 +03:00
|
|
|
//
|
2024-10-07 17:15:05 +01:00
|
|
|
case 'sync_users':
|
2018-01-09 02:09:07 +03:00
|
|
|
|
2024-10-07 17:15:05 +01:00
|
|
|
$query_w = [
|
|
|
|
|
'SELECT' => 'name',
|
|
|
|
|
'FROM' => "{$dbprefix}users"
|
|
|
|
|
];
|
2018-01-09 02:09:07 +03:00
|
|
|
|
2024-10-07 17:15:05 +01:00
|
|
|
$result_w = $SQL->build($query_w);
|
2019-05-03 23:52:08 +03:00
|
|
|
|
2024-10-07 17:15:05 +01:00
|
|
|
$user_number = 0;
|
|
|
|
|
while ($row=$SQL->fetch_array($result_w))
|
|
|
|
|
{
|
|
|
|
|
$user_number++;
|
|
|
|
|
}
|
2019-05-03 23:52:08 +03:00
|
|
|
|
2024-10-07 17:15:05 +01:00
|
|
|
$SQL->freeresult($result_w);
|
2018-01-09 02:09:07 +03:00
|
|
|
|
2024-10-07 17:15:05 +01:00
|
|
|
$update_query = [
|
|
|
|
|
'UPDATE' => "{$dbprefix}stats",
|
|
|
|
|
'SET' => 'users=' . $user_number
|
|
|
|
|
];
|
2018-01-09 02:09:07 +03:00
|
|
|
|
2024-10-07 17:15:05 +01:00
|
|
|
$result = $SQL->build($update_query);
|
2018-01-09 02:09:07 +03:00
|
|
|
|
2024-10-07 17:15:05 +01:00
|
|
|
delete_cache('data_stats');
|
|
|
|
|
$text = sprintf($lang['SYNCING'], $lang['USERS_ST']);
|
|
|
|
|
$text .= '<script type="text/javascript"> setTimeout("get_kleeja_link(\'' . basename(ADMIN_PATH) . '?cp=r_repair' . '\');", 2000);</script>' . "\n";
|
2018-01-09 02:09:07 +03:00
|
|
|
|
2024-10-07 17:15:05 +01:00
|
|
|
$stylee = 'admin_info';
|
2018-01-09 02:09:07 +03:00
|
|
|
|
|
|
|
|
|
2024-10-07 17:15:05 +01:00
|
|
|
break;
|
2018-01-09 02:09:07 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
//
|
2024-10-07 17:15:05 +01:00
|
|
|
//clear all cache ..
|
2018-01-09 02:09:07 +03:00
|
|
|
//
|
2024-10-07 17:15:05 +01:00
|
|
|
case 'clearc':
|
2018-01-09 02:09:07 +03:00
|
|
|
|
2024-10-07 17:15:05 +01:00
|
|
|
//clear cache
|
|
|
|
|
delete_cache('', true);
|
2018-01-09 02:09:07 +03:00
|
|
|
|
2024-10-07 17:15:05 +01:00
|
|
|
//show done, msg
|
|
|
|
|
$text .= '<li>' . $lang['REPAIRE_CACHE'] . '</li>';
|
|
|
|
|
$text .= '<script type="text/javascript"> setTimeout("get_kleeja_link(\'' . basename(ADMIN_PATH) . '?cp=r_repair' . '\');", 2000);</script>' . "\n";
|
2018-01-09 02:09:07 +03:00
|
|
|
|
2024-10-07 17:15:05 +01:00
|
|
|
$stylee = 'admin_info';
|
2018-01-09 02:09:07 +03:00
|
|
|
|
2024-10-07 17:15:05 +01:00
|
|
|
break;
|
2019-05-03 23:52:08 +03:00
|
|
|
|
2024-10-07 17:15:05 +01:00
|
|
|
//toggle admin start boxes
|
|
|
|
|
case 'toggle_start_box':
|
2019-05-03 23:52:08 +03:00
|
|
|
|
2024-10-07 17:15:05 +01:00
|
|
|
if (! kleeja_check_form_key_get('adm_start_actions'))
|
2019-05-03 23:52:08 +03:00
|
|
|
{
|
2024-10-07 17:15:05 +01:00
|
|
|
header('HTTP/1.1 405 Method Not Allowed');
|
|
|
|
|
$adminAjaxContent = $lang['INVALID_FORM_KEY'];
|
2019-05-03 23:52:08 +03:00
|
|
|
}
|
2024-10-07 17:15:05 +01:00
|
|
|
else
|
2019-05-03 23:52:08 +03:00
|
|
|
{
|
2024-10-07 17:15:05 +01:00
|
|
|
$items = explode(':', $config['hidden_start_boxes']);
|
|
|
|
|
$new_items = $items = array_filter($items);
|
|
|
|
|
|
|
|
|
|
$name = g('name');
|
|
|
|
|
$hide = g('toggle', 'int') == 1;
|
|
|
|
|
|
|
|
|
|
if (in_array($name, $items) && ! $hide)
|
|
|
|
|
{
|
|
|
|
|
$new_items = array_diff($items, [$name]);
|
|
|
|
|
}
|
|
|
|
|
elseif ($hide)
|
|
|
|
|
{
|
|
|
|
|
$new_items[] = $name;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if ($new_items != $items)
|
|
|
|
|
{
|
|
|
|
|
update_config('hidden_start_boxes', implode(':', $new_items));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$adminAjaxContent = $lang['CONFIGS_UPDATED'];
|
2019-05-03 23:52:08 +03:00
|
|
|
}
|
|
|
|
|
|
2024-10-07 17:15:05 +01:00
|
|
|
break;
|
2019-02-22 15:05:39 +03:00
|
|
|
|
2018-01-09 02:09:07 +03:00
|
|
|
endswitch;
|