source: trunk/admin.php@ 353

Last change on this file since 353 was 353, checked in by george, 15 years ago
  • Opraveno: U exportů v tabulce výpisu překladatelů také používat přímo sloupec počtu překladů TranslatedCount.
  • Opraveno: Nemazat překladatele, kteří mají vytvořen nějaký export.
File size: 4.6 KB
Line 
1<?php
2
3include('includes/global.php');
4include_once('img_level.php');
5
6ShowPage();
7
8function 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
29function 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
69if(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
89ShowFooter();
90
91?>
Note: See TracBrowser for help on using the repository browser.