source: trunk/TranslationList.php@ 192

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

Zobrazení všech mých rozepsaných

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