1 | <?php
|
---|
2 |
|
---|
3 | include('includes/global.php');
|
---|
4 | include_once('img_level.php');
|
---|
5 |
|
---|
6 | ShowPage();
|
---|
7 |
|
---|
8 | function ShowMenu()
|
---|
9 | {
|
---|
10 | global $Config;
|
---|
11 |
|
---|
12 | echo('<h3>Volby pro správu</h3>');
|
---|
13 | echo('<a href="https://wowpreklad.zdechov.net/mysql/">Správa databáze</a><br/>'.
|
---|
14 | '<small>Rozhraní phpMyAdmin pro přímou správu databáze</small><br/><br/>');
|
---|
15 | echo('<a href="'.$Config['Web']['BaseURL'].'action.php?action=dbkit">DB opravy</a><br/>'.
|
---|
16 | '<small>Opravy databáze</small><br/><br/>');
|
---|
17 | echo('<a href="'.$Config['Web']['BaseURL'].'import/">Import textů</a><br/>'.
|
---|
18 | '<small>Načtení zdrojových textů do databáze</small><br/><br/>');
|
---|
19 | echo('<a href="'.$Config['Web']['BaseURL'].'log.php">Záznamy událostí</a><br/>'.
|
---|
20 | '<small>Procházení všech systémových záznamů akcí a událostí</small><br/><br/>');
|
---|
21 | echo('<a href="'.$Config['Web']['BaseURL'].'admin.php?action=img_level">Generování obrázků úrovní překladatelů</a><br/>'.
|
---|
22 | '<small>Ihned provede přegenerování všech obrázků úrovní překladatelů</small><br/><br/>');
|
---|
23 | echo('<a href="'.$Config['Web']['BaseURL'].'admin.php?action=delerrlog">Vymázání chybových záznamů</a><br/>'.
|
---|
24 | '<small>Provede vymazání všech chybových záznamů v logu</small><br/><br/>');
|
---|
25 | echo('<a href="'.$Config['Web']['BaseURL'].'admin.php?action=delolduser">Vymázání prázdných účtů</a><br/>'.
|
---|
26 | '<small>Vymaže všechny účty překladatelů bez překladů starší třech měsíců</small><br/><br/>');
|
---|
27 | }
|
---|
28 |
|
---|
29 | function DeleteOldUsers()
|
---|
30 | {
|
---|
31 | global $Database;
|
---|
32 |
|
---|
33 | $DbResult = $Database->SQLCommand('SELECT COUNT(*) FROM `user`');
|
---|
34 | $DbRow2 = mysql_fetch_row($DbResult);
|
---|
35 |
|
---|
36 | $Condition = ' WHERE (`TranslatedCount`= 0)'. // Without translated texts
|
---|
37 | ' AND (`ID` != 128)'. // Skip user Neznámý
|
---|
38 | ' AND (`LastLogin` < DATE_SUB(NOW(), INTERVAL 3 MONTH))'. // Time limit
|
---|
39 | ' AND (NOT EXISTS (SELECT `Id` FROM `Export` WHERE `user`.`ID` = `Export`.`User`))'. // Without exports
|
---|
40 | ' AND (NOT EXISTS (SELECT `ID` FROM `dictionary` WHERE `user`.`ID` = `dictionary`.`user`))'. // Without dictionary words
|
---|
41 | ' AND (NOT EXISTS (SELECT `Id` FROM `news` WHERE `user`.`ID` = `news`.`user`))'. // Without news
|
---|
42 | ' AND (NOT EXISTS (SELECT `ID` FROM `shoutbox` WHERE `user`.`user` = `shoutbox`.`user`))'. // Without shoutbox messages
|
---|
43 | '';
|
---|
44 | $DbResult = $Database->SQLCommand('SELECT COUNT(*) FROM `user`'.$Condition);
|
---|
45 | $DbRow = mysql_fetch_row($DbResult);
|
---|
46 | $Database->SQLCommand('DELETE FROM `user`'.$Condition);
|
---|
47 | echo('Smazáno '.$DbRow[0].' účtů ze všech '.$DbRow2[0].'<br/>');
|
---|
48 |
|
---|
49 | // Delete logs without user
|
---|
50 | $DbResult = $Database->SQLCommand('SELECT COUNT(*) FROM `log`');
|
---|
51 | $DbRow2 = mysql_fetch_row($DbResult);
|
---|
52 | $DbResult = $Database->SQLCommand('SELECT COUNT(*) FROM `log` WHERE (NOT EXISTS (SELECT `ID` FROM `user` WHERE `user`.`ID` = `log`.`user`)) AND (user != 0)');
|
---|
53 | $DbRow = mysql_fetch_row($DbResult);
|
---|
54 | $Database->SQLCommand('DELETE FROM `log` WHERE (NOT EXISTS (SELECT `ID` FROM `user` WHERE `user`.`ID` = `log`.`user`)) AND (user != 0)');
|
---|
55 | echo('Smazáno '.$DbRow[0].' položek logu ze všech '.$DbRow2[0].'<br/>');
|
---|
56 |
|
---|
57 | // Delete all teams without users
|
---|
58 | $DbResult = $Database->SQLCommand('SELECT COUNT(*) FROM `Team`');
|
---|
59 | $DbRow2 = mysql_fetch_row($DbResult);
|
---|
60 | $DbResult = $Database->SQLCommand('SELECT COUNT(*) FROM `Team` WHERE (SELECT COUNT(*) FROM `user` WHERE `user`.`Team` = `Team`.`Id`) = 0');
|
---|
61 | $DbRow = mysql_fetch_row($DbResult);
|
---|
62 | $Database->SQLCommand('DELETE FROM `Team` WHERE (SELECT COUNT(*) FROM `user` WHERE `user`.`team` = `Team`.`Id`) = 0');
|
---|
63 | echo('Smazáno '.$DbRow[0].' týmů ze všech '.$DbRow2[0].'<br/>');
|
---|
64 |
|
---|
65 | // Set new leader for teams where old leader went to other team
|
---|
66 | $Database->SQLCommand('UPDATE Team SET Leader=(SELECT Id FROM `user` WHERE user.Team=Team.Id ORDER BY user.RegistrationTime LIMIT 1) WHERE Leader NOT IN (SELECT ID FROM user WHERE user.Team=Team.Id);');
|
---|
67 | }
|
---|
68 |
|
---|
69 | if(Licence(LICENCE_ADMIN))
|
---|
70 | {
|
---|
71 | if(array_key_exists('action', $_GET))
|
---|
72 | {
|
---|
73 | if($_GET['action'] == 'img_level')
|
---|
74 | {
|
---|
75 | ImgLevelShow();
|
---|
76 | } else
|
---|
77 | if($_GET['action'] == 'delerrlog')
|
---|
78 | {
|
---|
79 | $DbResult = $Database->SQLCommand('SELECT COUNT(*) FROM `log` WHERE `type`=10');
|
---|
80 | $DbRow = mysql_fetch_row($DbResult);
|
---|
81 | $Database->SQLCommand('DELETE FROM `log` WHERE `type`=10');
|
---|
82 | echo('Smazáno všech '.$DbRow[0].' chybových záznamů.<br/>');
|
---|
83 | } else
|
---|
84 | if($_GET['action'] == 'delolduser') DeleteOldUsers();
|
---|
85 | else ShowMenu();
|
---|
86 | } else ShowMenu();
|
---|
87 | } else echo('Nemáte oprávnění');
|
---|
88 |
|
---|
89 | ShowFooter();
|
---|
90 |
|
---|
91 | ?>
|
---|