source: trunk/TranslationList.php@ 221

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

Oprava zobrazování statistiky v obrázku, Oprava seznamu nepřeložených textů

File size: 16.9 KB
Line 
1<?php
2
3include('includes/global.php');
4
5ShowPage();
6
7$TranslationItemPerPage = 200;
8if(array_key_exists('group', $_GET)) $GroupId = $_GET['group'] * 1; else $GroupId = 1;
9$DbResult = $Database->SQLCommand('SELECT Id FROM `group` WHERE `Id`='.$GroupId);
10if(mysql_num_rows($DbResult) == 0)
11{
12 echo('Neexistující id překladové skupiny.');
13 ShowFooter();
14 die();
15}
16$Table = $TranslationTree[$GroupId]['TablePrefix'];
17if(array_key_exists('action', $_GET)) $Action = $_GET['action']; else $Action = '';
18
19if(array_key_exists('order', $_GET))
20{
21 $order = $_GET['order'];
22 $desc = $_GET['desc'];
23 $_SESSION['order'] = $_GET['order'];
24 $_SESSION['desc'] = $_GET['desc'];
25} else
26{
27 if (isset($_SESSION['order']))
28 {
29 $order = $_SESSION['order'];
30 $desc = $_SESSION['desc'];
31 } else
32 {
33 $order = '';
34 $desc = 'desc';
35 }
36}
37
38if(array_key_exists('limitx', $_GET))
39{
40 $_SESSION['limitx'] = $_GET['limitx'];
41 $_SESSION['limity'] = $_GET['limity'];
42} else
43{
44 if(isset($_SESSION['limitx']) == false)
45 {
46 $_SESSION['limitx'] = '0';
47 $_SESSION['limity'] = $TranslationItemPerPage;
48 }
49}
50
51if(($Action != 'userall') and ($Action != 'grouplist'))
52 echo('Skupina: <strong>'.$TranslationTree[$GroupId]['Name'].'</strong><br />');
53
54function WritePages($Address, $Where)
55{
56 global $Database, $TranslationItemPerPage, $Table;
57
58 $Line = mysql_fetch_row($Database->SQLCommand('SELECT count(*) FROM '.$Table.' '.$Where));
59 $CountLists = $Line[0] / $TranslationItemPerPage;
60
61 echo('Počet položek: <strong>'.$Line[0].'</strong><br />
62 Zobrazit stránku: ');
63
64 $limitx = 0;
65 for($i = 0; $i < $CountLists; ++$i)
66 {
67 $limity = $TranslationItemPerPage;
68 $limitx = $i * $limity;
69 $Page = $i + 1;
70 if($_SESSION['limitx'] == $limitx) echo('<strong>'.$Page.'</strong> ');
71 else echo('<a href="'.$Address.'&amp;limitx='.$limitx.'&amp;limity='.$limity.'">'.$Page.'</a> ');
72 }
73
74 if(!array_key_exists('limitx', $_SESSION)) $_SESSION['limitx'] = 0;
75 if($_SESSION['limitx'] > $limitx) $_SESSION['limitx'] = 0;
76}
77
78function WriteQuests($sql, $limit, $address)
79{
80 global $Database, $order, $desc, $TranslationTree, $GroupId, $Table;
81
82 // Check if order column exists
83 $Items = $TranslationTree[$GroupId]['Items'];
84 $I = 0;
85 while(($I < count($Items)) and ($Items[$I]['MangosColumn'] != $order)) $I++;
86 if($I >= count($Items)) $order = 'ID';
87
88 if($limit <> '') $limit = 'LIMIT '.$limit;
89
90 if($address <> 'selection')
91 {
92 if($order <> '') $order = 'ORDER BY '.$order;
93 if($desc <> 'desc') $desc = 'desc'; else $desc = '';
94 } else
95 {
96 $order = '';
97 $desc = '';
98 }
99
100 echo('<table class="BaseTable"><tr>
101 <th><a href="?group='.$GroupId.'&amp;action='.$address.'&amp;order=ID&amp;desc='.$desc.'">Pořadové číslo</a></th>
102 <th><a href="?group='.$GroupId.'&amp;action='.$address.'&amp;order=entry&amp;desc='.$desc.'">Identifikační číslo</a></th>
103 <th><a href="?group='.$GroupId.'&amp;action='.$address.'&amp;order='.$TranslationTree[$GroupId]['Items'][0]['Column'].'&amp;desc='.$desc.'">Název</a></th>');
104 if ($address == 'selection') echo('<th><a href="?group='.$GroupId.'&amp;action='.$address.'&amp;order=CountQuests&amp;desc='.$desc.'">Výskyt</a></th>');
105 else if($address <> 'notran') echo('<th><a href="?group='.$GroupId.'&amp;action='.$address.'&amp;order=user&amp;desc='.$desc.'">Uživatel</a></th>');
106 echo('</tr>');
107
108 //print_r($TranslationTree[$GroupId]['Items']);
109 $ID = $Database->SQLCommand($sql.' '.$order.' '.$desc.' '.$limit);
110 while($Line = mysql_fetch_assoc($ID))
111 {
112 //print_r($Line);
113 echo('<tr><td><a href="form.php?group='.$GroupId.'&amp;ID='.$Line['ID'].'">'.$Line['ID'].'</a></td>
114 <td>'.$Line['entry'].'</td>
115 <td>'.htmlspecialchars($Line[$TranslationTree[$GroupId]['Items'][0]['Column']]).'</td>');
116 if($address == 'selection') echo('<td>'.$Line['CountQuest'].'</td>');
117 else if($address <> 'notran') echo('<td>'.$Line['User'].'</td>');
118 echo('</tr>');
119 }
120 echo('</table>');
121}
122
123if($Action == 'notran')
124{
125 echo('<a title="Zobrazit texty podle vlastního filtru" href="?group='.$GroupId.'&amp;action=filter">Filtr textů</a> ->
126 <a title="Zde můžete začít překládat" href="?group='.$GroupId.'&amp;action=selection">Nepřeložené texty</a> - >
127 <strong>Vypsání nepřeložených textů s limitem na stránku</strong><br /><br />');
128
129 WritePages('?group='.$GroupId.'&amp;action=notran', 'AS items WHERE items.Language = 0 AND
130 NOT EXISTS(SELECT 1 FROM '.$Table.' AS sub WHERE sub.Language <> 0 AND sub.entry = items.entry AND VersionEnd = "'.GetBuildNumber($Config['Web']['GameVersion']).'") AND VersionEnd = "'.GetBuildNumber($Config['Web']['GameVersion']).'"');
131
132 WriteQuests('SELECT * FROM '.$Table.' AS items WHERE (items.Language = 0) AND
133 NOT EXISTS(SELECT 1 FROM '.$Table.' AS sub WHERE (sub.Language <> 0) AND (sub.entry = items.entry) AND VersionEnd = "'.GetBuildNumber($Config['Web']['GameVersion']).'") AND VersionEnd = "'.GetBuildNumber($Config['Web']['GameVersion']).'"', $_SESSION['limitx'].','.$_SESSION['limity'], 'notran');
134} else
135if($Action == 'nocomplete')
136{
137 echo('<a title="Zobrazit texty podle vlastního filtru" href="?group='.$GroupId.'&amp;action=filter">Filtr textů</a> ->
138 <a title="Zde můžete začít překládat" href="?group='.$GroupId.'&amp;action=selection">nedokončené texty</a> - >
139 <strong>Vypsání nedokončených textů s limitem na stránku</strong><br /><br />');
140
141 WritePages('?group='.$GroupId.'&amp;action=notran', 'AS items WHERE items.Language = 0 AND
142 NOT EXISTS(SELECT 1 FROM '.$Table.' AS sub WHERE (sub.Language <> 0) AND (sub.entry = items.entry) AND (sub.Complete = 1) AND VersionEnd = "'.GetBuildNumber($Config['Web']['GameVersion']).'") AND
143 EXISTS(SELECT 1 FROM '.$Table.' AS sub WHERE sub.Language <> 0 AND sub.entry = items.entry AND (sub.Complete = 0) AND VersionEnd = "'.GetBuildNumber($Config['Web']['GameVersion']).'") AND VersionEnd = "'.GetBuildNumber($Config['Web']['GameVersion']).'"');
144
145 WriteQuests('SELECT * FROM '.$Table.' AS items WHERE (items.Language = 0) AND
146 NOT EXISTS(SELECT 1 FROM '.$Table.' AS sub WHERE (sub.Language <> 0) AND (sub.entry = items.entry) AND (sub.Complete = 1) AND VersionEnd = "'.GetBuildNumber($Config['Web']['GameVersion']).'") AND
147 EXISTS(SELECT 1 FROM '.$Table.' AS sub WHERE (sub.Language <> 0) AND (sub.entry = items.entry) AND (sub.Complete = 0) AND VersionEnd = "'.GetBuildNumber($Config['Web']['GameVersion']).'") AND VersionEnd = "'.GetBuildNumber($Config['Web']['GameVersion']).'"', $_SESSION['limitx'].','.$_SESSION['limity'], 'nocomplete');
148} else
149if($Action == 'Translate')
150{
151 echo('<a title="Zobrazit překlady podle vlasního filtru" href="?group='.$GroupId.'&amp;action=filter">Filtr překladů</a> ->
152 <a title="Přeložené texty, můžete zde hlasovat, nebo opravovat texty" href="?group='.$GroupId.'&amp;action=Translate">Přeložené texty</a><br /><br />');
153
154 WritePages('?group='.$GroupId.'&amp;action=Translate', 'WHERE '.$Table.'.Language <> 0 AND '.$Table.'.Complete = 1');
155
156 WriteQuests('SELECT *, (SELECT user.user FROM user WHERE user.id = '.$Table.'.user) as User FROM
157 '.$Table.' WHERE '.$Table.'.Language <> 0 AND '.$Table.'.Complete = 1', $_SESSION['limitx'].','.$_SESSION['limity'], 'Translate');
158} else
159if(($Action == 'my') and Licence(LICENCE_USER))
160{
161 echo('<a title="Zobrazit texty podle vlastního filtru" href="?group='.$GroupId.'&amp;action=filter">Filtr textů</a> ->
162 <a title="Přeložené questy přilášeného uživatele" href="?group='.$GroupId.'&amp;action=my">Moje překlady</a><br /><br />');
163 WriteQuests('SELECT *, (SELECT user.user FROM user WHERE user.id = '.$Table.'.user) as User FROM '.$Table.' Where user = '.$_SESSION['UserID'], '', 'my');
164} else
165if(($Action == 'mydevelop') and Licence(LICENCE_USER))
166{
167 echo('<a title="Zobrazit texty podle vlastního filtru" href="?group='.$GroupId.'&amp;action=filter">Filtr textů</a> ->
168 <a title="Nedokončené texty" href="?group='.$GroupId.'&amp;action=mydevelop">Rozepsané překlady</a><br /><br />');
169 WriteQuests('SELECT *, (SELECT user.user FROM user WHERE user.id = '.$Table.'.user) as User FROM '.$Table.' Where user = '.$_SESSION['UserID'].' AND Complete = 0', '', 'mydevelop');
170} else
171if($Action == 'users')
172{
173 echo('<a title="Zobrazit texty podle vlastního filtru" href="?group='.$GroupId.'&amp;action=filter">Filtr textů</a> ->
174 <strong>Vypsání textů od určitých uživatelů</strong><br /><br />');
175 $users = @$_POST['users'];
176
177 $WhereUsers = '';
178
179 for($i = 0; $i < Count($users); $i++)
180 {
181 if($WhereUsers <> '') $WhereUsers .= ' OR User = '.$users[$i];
182 else $WhereUsers .= ' User = '.$users[$i];
183 }
184 WriteQuests('SELECT *, (SELECT user.user FROM user WHERE user.id = '.$Table.'.user) as User FROM '.$Table.' Where '.$WhereUsers, '', 'users');
185} else
186if($Action == 'userall')
187{
188 $ID = $Database->SQLCommand('SELECT user FROM user WHERE id = '.$_GET['user']);
189 $Line = mysql_fetch_row($ID);
190 echo('<a title="Zobrazit texty podle vlastního filtru" href="?group='.$GroupId.'&amp;action=filter">Filtr textů</a>'.
191 ' -> <strong>Počty překladů uživatele '.$Line[0].': </strong><br /><br />');
192
193 echo('<table class="BaseTable"><tr><th>Skupina</th><th>Překladů</th></tr>');
194 $Total = 0;
195 foreach($TranslationTree as $Group)
196 if($Group['TablePrefix'] != '')
197 {
198 if(array_key_exists('not', $_GET)) {
199 $sql = 'SELECT COUNT(*) FROM '.$Group['TablePrefix'].' WHERE Complete = 0 AND user='.$_GET['user'];
200 $ID = $Database->SQLCommand($sql);
201 $Line = mysql_fetch_row($ID);
202 $GroupId = $Group['Id'];
203 echo('<tr><td><a href="?group='.$GroupId.'&amp;action=userid&amp;not&amp;user='.$_GET['user'].'">'.$Group['Name'].'</a></td><td>'.$Line[0].'</td></tr>');
204 $Total += $Line[0];
205 } else {
206 $sql = 'SELECT COUNT(*) FROM '.$Group['TablePrefix'].' WHERE user='.$_GET['user'];
207 $ID = $Database->SQLCommand($sql);
208 $Line = mysql_fetch_row($ID);
209 $GroupId = $Group['Id'];
210 echo('<tr><td><a href="?group='.$GroupId.'&amp;action=userid&amp;user='.$_GET['user'].'">'.$Group['Name'].'</a></td><td>'.$Line[0].'</td></tr>');
211 $Total += $Line[0];
212 }
213 }
214 echo('<tr><td><strong>Celkem</strong></td><td><strong>'.$Total.'</strong></td></tr>');
215 echo('</table>');
216} else
217if($Action == 'grouplist')
218{
219 echo('<h3>Seznam překladových skupin</h3>');
220 echo('<table class="BaseTable"><tr><th>Jméno</th><th>Zdroj pro import</th><th>Formáty exportu</th></tr>');
221 $Total = 0;
222 foreach($TranslationTree as $Group)
223 if($Group['TablePrefix'] != '')
224 {
225 $Export = 'XML';
226 $Import = '';
227 if($Group['MangosTable'] != '')
228 {
229 $Export .= ', SQL';
230 $Import = 'SQL '.$Group['MangosDatabase'].'.'.$Group['MangosTable'];
231 }
232 if($Group['DBCFileName'] != '')
233 {
234 $Export .= ', DBC';
235 $Import = $Group['DBCFileName'].'.dbc';
236 }
237 if($Group['LuaFileName'] != '')
238 {
239 $Export .= ', Lua';
240 $Import = $Group['LuaMPQFolder'].'/'.$Group['LuaFileName'].'.lua';
241 }
242 foreach($Group['Items'] as $Item)
243 if(($Item['AddonFileName'] != '') and (substr($Export, -5) != 'Addon'))
244 {
245 $Export .= ', Addon';
246 }
247 echo('<tr><td><a href="?group='.$Group['Id'].'&amp;action=filter">'.$Group['Name'].'</a></td><td>'.$Import.'</td><td>'.$Export.'</td></tr>');
248 }
249 echo('</table>');
250} else
251if($Action == 'userid')
252{
253 if(array_key_exists('user', $_GET))
254 {
255 $ID = $Database->SQLCommand('SELECT user FROM user WHERE id = '.($_GET['user'] * 1));
256 if(mysql_num_rows($ID) > 0)
257 {
258 $Line = mysql_fetch_row($ID);
259 echo('<a title="Zobrazit texty podle vlastního filtru" href="?group='.$GroupId.'&amp;action=filter">Filtr textů</a> -> '.
260 '<strong>Vypis překladů uživatele '.$Line[0].': </strong><br /><br />');
261 if(array_key_exists('not', $_GET))
262 WriteQuests('SELECT *, (SELECT user.user FROM user WHERE user.id = '.$Table.'.user) as User FROM '.$Table.' Where Complete = 0 AND user = '.$_GET['user'], '', 'userid');
263 else WriteQuests('SELECT *, (SELECT user.user FROM user WHERE user.id = '.$Table.'.user) as User FROM '.$Table.' Where user = '.$_GET['user'], '', 'userid');
264 } else echo('Nebyl nalezen uživatel se zadaným id');
265 } else echo('Je nutno zadat id uživatele.');
266} else
267if($Action == 'search')
268{
269 if(array_key_exists('search', $_GET)) $Search = $_GET['search'];
270 else $Search = $_POST['search'];
271
272 $sql = 'SELECT *, (SELECT user.user FROM user WHERE user.id = '.$Table.'.user) as User FROM `'.$Table.'` WHERE `ID` LIKE "%'.$Search.'%"
273 OR `entry` LIKE "%'.$Search.'%"
274 OR `Language` LIKE "%'.$Search.'%"
275 OR `User` LIKE "%'.$Search.'%"
276 OR `Complete` LIKE "%'.$Search.'%"';
277 foreach($TranslationTree[$GroupId]['Items'] as $Item)
278 {
279 if($Item['Column'] != '') $sql .= ' OR `'.$Item['Column'].'` LIKE "%'.$Search.'%"';
280 }
281
282 WriteQuests($sql, '', 'search='.$Search);
283} else
284if($Action == 'searchentry')
285{
286 if(array_key_exists('ID', $_GET)) $Search = $_GET['ID'];
287 else $Search = $_POST['ID'];
288
289 $sql = 'SELECT *, (SELECT user.user FROM user WHERE user.id = '.$Table.'.user) as User FROM `'.$Table.'` WHERE `entry` LIKE "'.$Search.'"';
290
291 WriteQuests($sql, '', 'searchentry='.$Search);
292} else
293if($Action == 'all')
294{
295 echo('<a title="Zobrazit texty podle vlastního filtru" href="?group='.$GroupId.'&amp;action=filter">Filtr textů</a> ->
296 <a title="Zde můžete začít překládat" href="?group='.$GroupId.'&amp;action=selection">Nepřeložené texty</a> - >
297 <strong>Výpis všech textů s limitem na stránku</strong><br /><br />');
298
299 WritePages('?group='.$GroupId.'&amp;action=all', ' AS items WHERE (items.Language = 0)');
300
301 WriteQuests('SELECT * FROM '.$Table.' AS items WHERE (items.Language = 0)', $_SESSION['limitx'].','.$_SESSION['limity'], 'all');
302} else
303if($Action == 'filter')
304{
305 echo('<a title="Zobrazit texty podle vlastního filtru" href="?group='.$GroupId.'&amp;action=filter">Filtr textů</a><br /><br /><br />'.
306 '<table class="BaseTable"><tr><th>Odkaz</th><th>Popis</th></tr>'.
307 '<tr><td><a title="Všechny dostupné texty ve skupině" href="?group='.$GroupId.'&amp;action=all">Všechny texty</a></td>'.
308 '<td>Zobrazit všechny dostupné texty ve skupině.</td></tr>'.
309 '<tr><td><a title="Přeložené texty, můžete zde hlasovat, nebo text opravovat" href="?group='.$GroupId.'&amp;action=Translate">Přeložené texty</a></td>'.
310 '<td>Zobrazit pouze již přeložené texty.</td></tr>'.
311 '<tr><td><a title="Nepřeložené texty" href="?group='.$GroupId.'&amp;action=notran">Nepřeložené texty</a></td>'.
312 '<td>Dosud nepřeložené texty, které je potřeba přeložit.</td></tr>'.
313 '<tr><td><a title="Nedokončené texty" href="?group='.$GroupId.'&amp;action=nocomplete">Nedokončené texty</a></td>'.
314 '<td>Texty označené jako rozpracované.</td></tr>');
315
316 if(Licence(LICENCE_USER))
317 {
318 echo('<tr><td><a title="Nedokončené texty" href="?group='.$GroupId.'&amp;action=mydevelop">Rozepsané texty</a></td>
319 <td>Nedokončené texty přihlášeného uživatele</td></tr>
320 <tr><td><a title="Přeložené texty přihlášeného uživatele" href="?group='.$GroupId.'&amp;action=my">Moje překlady</a></td>
321 <td>Přeložené texty přihlášeného uživatele</td></tr>');
322 }
323
324 echo('<tr><td><form action="?group='.$GroupId.'&amp;action=users" method="post"><div>'.
325 '<select name="users[]" size="10" multiple="multiple">');
326
327 $ID = $Database->SQLCommand('SELECT user, ID FROM `user` WHERE
328 EXISTS(SELECT 1 FROM '.$Table.' WHERE user = user.ID) ORDER BY user');
329 if($ID)
330 while($Line = mysql_fetch_assoc($ID))
331 echo('<option value="'.$Line['ID'].'">'.$Line['user'].'</option>');
332
333 echo('</select><br />
334 <input type="submit" value="Vypsat" /></div></form></td>
335 <td>Vypsat pouze od těchto uživatalů<br />
336 Vybrat více uživatelů můžete pomocí CTRL+click</td></tr>');
337
338 echo('<tr><td><form action="?group='.$GroupId.'&amp;action=search" method="post"><div>'.
339 '<input type="text" name="search" size="8" />'.
340 '<input type="submit" value="Hledat" />'.
341 '</div></form>'.
342 '</td><td>Vyhledat pomocí textu</td></tr>');
343
344 echo('<tr><td><form action="?group='.$GroupId.'&amp;action=searchentry" method="post"><div>'.
345 '<input type="text" name="ID" size="8" />'.
346 '<input type="submit" value="Hledat" />'.
347 '</div></form>'.
348 '</td><td>Zobrazit podle ID textu v databázi MaNGOSu</td></tr>');
349
350 echo('</table>');
351 // WriteQuests("SELECT * FROM quests Where user = ".$_SESSION['UserID']." AND Complete = '0'", '', 'mydevelop');
352}
353
354 ShowFooter();
355?>
356
Note: See TracBrowser for help on using the repository browser.