source: trunk/action.php@ 212

Last change on this file since 212 was 212, checked in by maron, 16 years ago

DB oprava sloupce Take a ShortCut

File size: 7.7 KB
Line 
1<?php
2
3include('includes/global.php');
4
5ShowPage();
6
7if(array_key_exists('group', $_GET)) $GroupId = $_GET['group']; else $GroupId = 1;
8$Table = $TranslationTree[$GroupId]['TablePrefix'];
9if(array_key_exists('action', $_GET)) $Action = $_GET['action']; else $Action = '';
10
11if(($Action == 'search'))
12{
13 if(array_key_exists('search', $_GET)) $Search = $_GET['search'];
14 else $Search = $_POST['search'];
15
16 echo('<table class="BaseTable"><tr><th>Skupina</th><th>Výsledků</th></tr>');
17 foreach($TranslationTree as $Group) {
18 $Table = $Group['TablePrefix'];
19
20 $sql = 'SELECT count(*) FROM `'.$Table.'` WHERE `ID` LIKE "%'.$Search.'%"
21 OR `entry` LIKE "%'.$Search.'%"
22 OR `User` LIKE "%'.$Search.'%"
23 OR `Complete` LIKE "%'.$Search.'%"';
24 foreach($Group['Items'] as $Item) {
25 if($Item['Column'] != '') $sql .= ' OR `'.$Item['Column'].'` LIKE "%'.$Search.'%"';
26 }
27 $Line = mysql_fetch_row($Database->SQLCommand($sql));
28 echo('<tr><td><a href="TranslationList.php?group='.$Group['Id'].'&amp;action=search&amp;search='.$Search.'">'.$Group['Name'].'</a></td><td>'.$Line[0].'</td></tr>');
29 }
30
31 $Line = mysql_fetch_row($Database->SQLCommand('SELECT count(*) FROM `user` WHERE `user` LIKE "%'.$Search.'%"'));
32 echo('<tr><td><a href="userlist.php?search='.$Search.'">Uživatelé</a></td><td>'.$Line[0].'</td></tr>');
33 $Line = mysql_fetch_row($Database->SQLCommand('SELECT count(*) FROM `team` WHERE `name` LIKE "%'.$Search.'%" OR `description` LIKE "%'.$Search.'%"'));
34 echo('<tr><td><a href="team.php?search='.$Search.'">Týmy</a></td><td>'.$Line[0].'</td></tr>');
35 $Line = mysql_fetch_row($Database->SQLCommand('SELECT count(*) FROM `verseclient` WHERE `text` LIKE "%'.$Search.'%"'));
36 echo('<tr><td><a href="download.php?addon">Čeština pro klienta</a></td><td>'.$Line[0].'</td></tr>');
37 echo('<tr><td><a href="aowow/?search='.$Search.'">Vyhledávací databáze AoWoW</a></td></tr>');
38 $Line = mysql_fetch_row($Database->SQLCommand('SELECT count(*) FROM `dictionary` WHERE (`Text` LIKE "%'.$Search.'%" OR `Description` LIKE "%'.$Search.'%") AND Language = 1'));
39 echo('<tr><td><a href="dictionary.php?search='.$Search.'">Slovníček</a></td><td>'.$Line[0].'</td></tr>');
40
41 echo('</table>');
42}
43
44
45if(($Action == 'dbkit') and Licence(LICENCE_ADMIN))
46{
47 echo ('<form action="?action=dbkit" method="post">');
48 echo('Najít: <input type="text" name="find" /><br />');
49 echo('Nahradit: <input type="text" name="replace" /><br />');
50 echo('<input type="submit" value="Najít/nahradit" /><br />');
51 echo('</form><br />');
52 echo ('<a href="?action=dbkit&amp;Take">Opravit data v sloupci Take</a><br />');
53 echo ('<a href="?action=dbkit&amp;ShortCut">Opravit data v sloupci ShortCut</a><br />');
54
55 if (array_key_exists('find',$_POST)) {
56 echo ('Začínám nahrazovat: <br />');
57 $find = $_POST['find'];
58 $replace = $_POST['replace'];
59
60 foreach($TranslationTree as $Group) {
61 $Table = $Group['TablePrefix'];
62 echo ($Table.' ');
63
64 $sql = 'SELECT * FROM '.$Table.' WHERE (Language <> 0) AND (';
65 foreach($Group['Items'] as $Item) {
66 if($Item['Column'] != '') $sql .= '`'.$Item['Column'].'` LIKE "%'.$find.'%" OR ';
67 }
68 $sql = substr($sql,0,strlen($sql)-4);
69 $sql .= ')';
70
71 $ID = $Database->SQLCommand($sql);
72 while ($Line = mysql_fetch_assoc($ID)) {
73 $sql = 'UPDATE '.$Table.' SET ';
74 foreach($Group['Items'] as $Item) {
75 $Column_text = addslashes(str_replace($find,$replace,$Line[$Item['Column']]));
76 $sql .= ' '.$Item['Column'].' = "'.$Column_text.'",';
77 }
78 $sql = substr($sql,0,strlen($sql)-1);
79 $sql .= ' WHERE ID = '.$Line['ID'];
80 $Database->SQLCommand($sql);
81 echo ('.');
82 }
83
84 echo (' <strong>Hotovo</strong> <br />');
85 if (mysql_num_rows($ID) > 0) {
86 WriteLog('Použita oprava DB ovlivněno '.mysql_num_rows($ID).' řádků z tabulky '.$Table.', "'.$find.'" nahrazeno za "'.$replace.'"', 4);
87 echo (' Použita oprava DB ovlivněno '.mysql_num_rows($ID).' řádků z tabulky '.$Table.', "'.$find.'" nahrazeno za "'.$replace.'"<br />');
88 }
89 }
90 }
91
92 //oprava dat v sloupci Take
93 if (array_key_exists('Take',$_GET)) {
94 echo ('Začínám opravovat Take: <br />');
95
96 foreach($TranslationTree as $Group) {
97 $Table = $Group['TablePrefix'];
98 echo ($Table.' ');
99
100 $sql = 'SELECT ID,entry as entry_tran, (SELECT ID FROM '.$Table.' WHERE Language = 0 AND entry = entry_tran LIMIT 1) as ID_orig FROM '.$Table.' WHERE (Language <> 0) AND (Take = 0)';
101
102 $ID = $Database->SQLCommand($sql);
103 while ($Line = mysql_fetch_assoc($ID)) {
104 $sql = 'UPDATE '.$Table.' SET Take = '.$Line['ID_orig'].' WHERE ID = '.$Line['ID'];
105 $Database->SQLCommand($sql);
106 echo ('.');
107 }
108
109 echo (' <strong>Hotovo</strong> <br />');
110 if (mysql_num_rows($ID) > 0) {
111 WriteLog('Použita oprava DB na sloupec Take '.mysql_num_rows($ID).' řádků z tabulky '.$Table, 4);
112 echo (' Použita oprava DB na sloupec Take '.mysql_num_rows($ID).' řádků z tabulky '.$Table.'<br />');
113 }
114 }
115 }
116 //oprava dat ShortCut
117 if (array_key_exists('ShortCut',$_GET)) {
118 echo ('Začínám opravovat Take: <br />');
119
120
121 $Tables = array ('global_strings','glue_strings');
122
123 foreach($Tables as $Table) {
124 echo ($Table.' ');
125 $sql = 'SELECT gs_orig.ID,
126gs_tran.entry,
127gs_tran.ShortCut as ShortCut_tran,
128gs_orig.ShortCut as ShortCut_orig
129FROM '.$Table.' as gs_tran
130JOIN '.$Table.' as gs_orig ON gs_orig.entry = gs_tran.entry
131WHERE gs_tran.Language <> 0 AND gs_tran.ShortCut <> gs_orig.ShortCut';
132
133 $ID = $Database->SQLCommand($sql);
134 while ($Line = mysql_fetch_assoc($ID)) {
135 $sql = 'UPDATE '.$Table.' SET ShortCut = '.$Line['ShortCut_orig'].' WHERE ID = '.$Line['ID'];
136 $Database->SQLCommand($sql);
137 echo ('.');
138 }
139
140 echo (' <strong>Hotovo</strong> <br />');
141 if (mysql_num_rows($ID) > 0) {
142 WriteLog('Použita oprava DB na sloupec ShortCut '.mysql_num_rows($ID).' řádků z tabulky '.$Table, 4);
143 echo (' Použita oprava DB na sloupec ShortCut '.mysql_num_rows($ID).' řádků z tabulky '.$Table.'<br />');
144 }
145 }
146 }
147}
148
149
150if(($Action == 'delete') and Licence(LICENCE_MODERATOR))
151{
152 $TextID = $_GET['ID'];
153 $Database->SQLCommand('DELETE FROM '.$Table.' WHERE ID = '.$TextID.' AND Language <> 0');
154 echo('Překlad byl smazán!');
155 WriteLog('Překlad byl smazán! <a href="form.php?group='.$GroupID.'&amp;ID='.$TextID.'">'.$TextID.'</a>', 4);
156}
157
158if($Action == 'shoutbox')
159{
160 if(array_key_exists('shoutbox', $_GET)) $shoutbox = $_GET['shoutbox'];
161 else $shoutbox = '';
162 if($shoutbox == '')
163 {
164 echo('<form action="action.php?action=shoutbox&amp;shoutbox=1" method="post"><fieldset><legend>Nová zpráva shoutboxu</legend>
165 Uživatel: ');
166 if(Licence(LICENCE_USER)) echo('<b>'.$_SESSION['User'].'</b><br />');
167 else echo('<input type="text" name="user" /><br />');
168 echo('Text zprávy: <br>
169 <textarea onkeydown="ResizeTextArea(this)" name="text" cols="40"></textarea> <br />
170 <input type="submit" value="Odeslat" /><br /></fieldset>
171 </form>');
172 } else
173 {
174 if(Licence(LICENCE_USER)) $user = $_SESSION['User'];
175 else die('Pro vkládaní musíte byt registrováni!');
176 $text = $_POST['text'];
177 $Database->SQLCommand("INSERT INTO `shoutbox` ( `user` , `text` , `date` , `IP` )
178 VALUES ( '$user', '$text', now(), '".$_SERVER['REMOTE_ADDR']."');");
179 echo('Zpráva vložena!<br>Budete přesměrováni...');
180 echo('
181 <script type="text/javascript" language="JavaScript" charset="utf-8">
182 setTimeout("parent.location.href=\'index.php\'",1000)
183 </script>');
184 }
185}
186
187ShowFooter();
188
189?>
190
Note: See TracBrowser for help on using the repository browser.