source: trunk/TranslationList.php@ 67

Last change on this file since 67 was 67, checked in by george, 16 years ago
  • Přidáno: RSS kanál pro logovací záznamy.
  • Přidáno: Stránkování seznamu logovacích záznamů.
  • Upraveno: Soubor global nyní nezobrazuje ihned záhlaví stránky, ale je nutné volat funkci ShowPage. V odkazovaných souborech se sjednotila inicializace databáze a dalších součástí do jednoho souboru.
File size: 16.2 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
45function WritePages($Address, $Where)
46{
47 global $Database, $TranslationItemPerPage, $Table;
48
49 $Line = mysql_fetch_row($Database->SQLCommand('SELECT count(*) FROM '.$Table.' '.$Where));
50 $CountLists = $Line[0] / $TranslationItemPerPage;
51
52 echo('Počet položek: <strong>'.$Line[0].'</strong><br />
53 Zobrazit stránku: ');
54
55 $limitx = 0;
56 for($i = 0; $i < $CountLists; ++$i)
57 {
58 $limity = $TranslationItemPerPage;
59 $limitx = $i * $limity;
60 $Page = $i + 1;
61 if($_SESSION['limitx'] == $limitx) echo('<strong>'.$Page.'</strong> ');
62 else echo('<a href="'.$Address.'&amp;limitx='.$limitx.'&amp;limity='.$limity.'">'.$Page.'</a> ');
63 }
64
65 if(!array_key_exists('limitx', $_SESSION)) $_SESSION['limitx'] = 0;
66 if($_SESSION['limitx'] > $limitx) $_SESSION['limitx'] = 0;
67}
68
69function WriteQuests($sql, $limit, $address)
70{
71 global $Database, $order, $desc, $TranslationTree, $GroupId, $Table;
72
73 // Check if order column exists
74 $Items = $TranslationTree[$GroupId]['Items'];
75 $I = 0;
76 while(($I < count($Items)) and ($Items[$I]['MangosColumn'] != $order)) $I++;
77 if($I >= count($Items)) $order = 'ID';
78
79 if($limit <> '') $limit = 'LIMIT '.$limit;
80
81 if($address <> 'selection')
82 {
83 if($order <> '') $order = 'ORDER BY '.$order;
84 if($desc <> 'desc') $desc = 'desc'; else $desc = '';
85 } else
86 {
87 $order = '';
88 $desc = '';
89 }
90
91 echo('<table border="1" cellpadding="2" cellspacing="0"><tr>
92 <th><a href="?group='.$GroupId.'&amp;action='.$address.'&amp;order=ID&amp;desc='.$desc.'">Pořadové číslo</a></th>
93 <th><a href="?group='.$GroupId.'&amp;action='.$address.'&amp;order=entry&amp;desc='.$desc.'">Identifikační číslo</a></th>
94 <th><a href="?group='.$GroupId.'&amp;action='.$address.'&amp;order='.$TranslationTree[$GroupId]['Items'][0]['Column'].'&amp;desc='.$desc.'">Název</a></th>');
95 if ($address == 'selection') echo('<th><a href="?group='.$GroupId.'&amp;action='.$address.'&amp;order=CountQuests&amp;desc='.$desc.'">Výskyt</a></th>');
96 else if($address <> 'notran') echo('<th><a href="?group='.$GroupId.'&amp;action='.$address.'&amp;order=user&amp;desc='.$desc.'">Uživatel</a></th>
97 <th><a href="?group='.$GroupId.'&amp;action='.$address.'&amp;order=vote&amp;desc='.$desc.'">Známka</a></th>
98 <th><a href="?group='.$GroupId.'&amp;action='.$address.'&amp;order=CountVote&amp;desc='.$desc.'">Počet hlasování</a></th>');
99 echo('</tr>');
100
101 //print_r($TranslationTree[$GroupId]['Items']);
102 $ID = $Database->SQLCommand($sql.' '.$order.' '.$desc.' '.$limit);
103 while($Line = mysql_fetch_assoc($ID))
104 {
105 //print_r($Line);
106 echo('<tr><td><a href="form.php?group='.$GroupId.'&amp;ID='.$Line['ID'].'">'.$Line['ID'].'</a></td>
107 <td>'.$Line['entry'].'</td>
108 <td>'.htmlspecialchars($Line[$TranslationTree[$GroupId]['Items'][0]['Column']]).'</td>');
109 if($address == 'selection') echo('<td>'.$Line['CountQuest'].'</td>');
110 else if($address <> 'notran') echo('<td>'.$Line['User'].'</td>
111 <td>'.substr($Line['Vote'], 0, 4).'</td>
112 <td>'.$Line['CountVote'].'</td>');
113 echo('</tr>');
114 }
115 echo('</table>');
116}
117
118if($Action == 'notran')
119{
120 echo('<a title="Zobrazit questy podle vlastního filtru" href="?group='.$GroupId.'&amp;action=filter">Filtr textů</a> ->
121 <a title="Zde můžete začít překládat" href="?group='.$GroupId.'&amp;action=selection">Nepřeložené texty</a> - >
122 <strong>Vypsání nepřeložených textů s limitem na stránku</strong><br /><br />');
123
124 WritePages('?group='.$GroupId.'&amp;action=notran', 'AS items WHERE items.Language = 0 AND
125 NOT EXISTS(SELECT 1 FROM '.$Table.' AS sub WHERE sub.Language <> 0 AND sub.entry = items.entry)');
126
127 WriteQuests('SELECT * FROM '.$Table.' AS items WHERE (items.Language = 0) AND
128 NOT EXISTS(SELECT 1 FROM '.$Table.' AS sub WHERE (sub.Language <> 0) AND (sub.entry = items.entry)) ', $_SESSION['limitx'].','.$_SESSION['limity'], 'notran');
129}
130
131if($Action == 'nocheck')
132{
133 echo('<a title="Zobrazit překlady podle vlasního filtru" href="?group='.$GroupId.'&amp;action=filter">Filtr překladů</a> ->
134 <a title="Zatím nezkontrolované texty" href="?group='.$GroupId.'&amp;action=nocheck">Nezkontrolované texty</a><br /><br />');
135
136 WritePages('?group='.$GroupId.'&amp;action=nocheck', ' WHERE Language <> 0 AND '.$Table.'.Complete = 1
137 AND NOT EXISTS(SELECT 1 FROM tag WHERE ID_user = '.$_SESSION['UserID'].' AND tag.type_translation = 1 AND tag.ID_translation = '.$Table.'.ID)');
138
139 WriteQuests('SELECT *, (SELECT user.user FROM user WHERE user.id = '.$Table.'.user) as User
140 FROM '.$Table.' WHERE Language <> 0 AND '.$Table.'.Complete = 1
141 AND NOT EXISTS(SELECT 1 FROM tag WHERE ID_user = '.$_SESSION['UserID'].' AND tag.type_translation = 1 AND tag.ID_translation = '.$Table.'.ID)', $_SESSION['limitx'].','.$_SESSION['limity'], 'nocheck');
142}
143
144if($Action == 'check')
145{
146 echo('<a title="Zobrazit překlady podle vlasního filtru" href="?group='.$GroupId.'&amp;action=filter">Filtr překladů</a> ->
147 <a title="Zkontrolované překlady" href="?group='.$GroupId.'&amp;action=check">Zkontrolované překlady</a><br /><br />');
148
149 WriteQuests('SELECT *, (SELECT user.user FROM user WHERE user.id = '.$Table.'.user) as User
150 FROM '.$Table.' WHERE Language <> 0 AND '.$Table.'.Complete = 1 AND
151 EXISTS(SELECT 1 FROM tag WHERE ID_user = '.$_SESSION['UserID'].' AND
152 tag.type_translation = 1 AND tag.ID_translation = '.$Table.'.ID)', $_SESSION['limitx'].','.$_SESSION['limity'], 'check');
153}
154
155if($Action == 'admin_check')
156{
157 echo('<a title="Zobrazit texty podle vlastního filtru" href="?group='.$GroupId.'&amp;action=filter">Filtr textů</a> ->
158 <a title="Zkontrolované texty" href="?group='.$GroupId.'&amp;action=admin_nocheck">Zkontrolované texty</a><br /><br />');
159
160 WritePages('?group='.$GroupId.'&amp;action=nocheck',' WHERE Language <> 0 AND '.$Table.'.Complete = 1 AND admin_check = 1');
161
162 WriteQuests('SELECT *, (SELECT user.user FROM user WHERE user.id = '.$Table.'.user) as User
163 FROM '.$Table.' WHERE (Language <> 0) AND ('.$Table.'.Complete = 1) AND (admin_check = 1)', $_SESSION['limitx'].','.$_SESSION['limity'], 'admin_check');
164}
165
166if($Action == 'admin_nocheck')
167{
168 echo('<a title="Zobrazit texty podle vlasního filtru" href="?group='.$GroupId.'&amp;action=filter">Filtr textů</a> ->
169 <a title="Zatím nezkontrolované questy" href="?group='.$GroupId.'&amp;action=admin_nocheck">Nezkontrolované texty</a><br /><br />');
170
171 WritePages('?group='.$GroupId.'&amp;action=nocheck', ' WHERE Language <> 0 AND '.$Table.'.Complete = 1 AND admin_check <> 1');
172
173 WriteQuests('SELECT *, (SELECT user.user FROM user WHERE user.id = '.$Table.'.user) as User
174 FROM '.$Table.' WHERE (Language <> 0) AND ('.$Table.'.Complete = 1) AND (admin_check <> 1)', $_SESSION['limitx'].','.$_SESSION['limity'], 'admin_nocheck');
175}
176
177if($Action == 'notvote')
178{
179 echo('<a title="Zobrazit texty podle vlastního filtru" href="?group='.$GroupId.'&amp;action=filter">Filtr textů</a> ->
180 <a title="Zatím neznámkované texty" href="?group='.$GroupId.'&amp;action=notvote">Neznámkované texty</a><br /><br />');
181
182 WritePages('?group='.$GroupId.'&amp;action=notvote', ' WHERE Language <> 0 AND '.$Table.'.Complete = 1 AND User <> '.$_SESSION['UserID'].' AND
183 NOT EXISTS(SELECT 1 FROM '.$Table.'_vote WHERE IDuser = '.$_SESSION['UserID'].' AND TextId= '.$Table.'.ID)');
184
185 WriteQuests('SELECT *, (SELECT user.user FROM user WHERE user.id = '.$Table.'.user) as User
186 FROM '.$Table.' WHERE Language <> 0 AND '.$Table.'.Complete = 1 AND User <> '.$_SESSION['UserID'].' AND
187 NOT EXISTS(SELECT 1 FROM '.$Table.'_vote WHERE IDuser = '.$_SESSION['UserID'].' AND TextId = '.$Table.'.ID)', $_SESSION['limitx'].','.$_SESSION['limity'], 'notvote');
188}
189
190if($Action == 'Translate')
191{
192 echo('<a title="Zobrazit překlady podle vlasního filtru" href="?group='.$GroupId.'&amp;action=filter">Filtr překladů</a> ->
193 <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 />');
194
195 WritePages('?group='.$GroupId.'&amp;action=Translate', 'WHERE '.$Table.'.Language <> 0 AND '.$Table.'.Complete = 1');
196
197 WriteQuests('SELECT *, (SELECT user.user FROM user WHERE user.id = '.$Table.'.user) as User FROM
198 '.$Table.' WHERE '.$Table.'.Language <> 0 AND '.$Table.'.Complete = 1', $_SESSION['limitx'].','.$_SESSION['limity'], 'Translate');
199}
200
201if(($Action == 'my') and Licence(LICENCE_USER))
202{
203 echo('<a title="Zobrazit texty podle vlastního filtru" href="?group='.$GroupId.'&amp;action=filter">Filtr textů</a> ->
204 <a title="Přeložené questy přilášeného uživatele" href="?group='.$GroupId.'&amp;action=my">Moje překlady</a><br /><br />');
205 WriteQuests('SELECT * FROM '.$Table.' Where user = '.$_SESSION['UserID'], '', 'my');
206}
207
208if(($Action == 'mydevelop') and Licence(LICENCE_USER))
209{
210 echo('<a title="Zobrazit texty podle vlastního filtru" href="?group='.$GroupId.'&amp;action=filter">Filtr textů</a> ->
211 <a title="Nedokončené texty" href="?group='.$GroupId.'&amp;action=mydevelop">Rozepsané překlady</a><br /><br />');
212 WriteQuests('SELECT * FROM '.$Table.' Where user = '.$_SESSION['UserID'].' AND Complete = 0', '', 'mydevelop');
213}
214
215if($Action == 'users')
216{
217 echo('<a title="Zobrazit texty podle vlastního filtru" href="?group='.$GroupId.'&amp;action=filter">Filtr textů</a> ->
218 <strong>Vypsání textů od určitých uživatelů</strong><br /><br />');
219 $users = @$_POST['users'];
220
221 $WhereUsers = '';
222
223 for($i = 0; $i < Count($users); $i++)
224 {
225 if($WhereUsers <> '') $WhereUsers .= ' OR User = '.$users[$i];
226 else $WhereUsers .= ' User = '.$users[$i];
227 }
228 WriteQuests('SELECT *, (SELECT user.user FROM user WHERE user.id = '.$Table.'.user) as User FROM '.$Table.' Where '.$WhereUsers, '', 'users');
229}
230
231if($Action == 'byvote')
232{
233 echo('<a title="Zobrazit texty podle vlastního filtru" href="?group='.$GroupId.'&amp;action=filter">Filtr textů</a> ->
234 <strong>Vypsání podle známky</strong><br /><br />');
235
236 $SingVote = $_POST['SingVote'];
237 $SingNumberVote = $_POST['SingNumberVote'];
238 $Vote = $_POST['Vote'];
239 $NumberVote = $_POST['NumberVote'];
240
241 WriteQuests('SELECT *, (SELECT user.user FROM user WHERE user.id = '.$Table.'.user) as User
242 FROM '.$Table.' WHERE Vote '.$SingVote.' '.$Vote.' AND CountVote '.$SingNumberVote.' '.$NumberVote, '', 'users');
243}
244
245if($Action == 'search')
246{
247 if(array_key_exists('search', $_GET)) $Search = $_GET['search'];
248 else $Search = $_POST['search'];
249
250 $sql = 'SELECT * FROM `'.$Table.'` WHERE `ID` LIKE "%'.$Search.'%"
251 OR `entry` LIKE "%'.$Search.'%"
252 OR `Language` LIKE "%'.$Search.'%"
253 OR `Vote` LIKE "%'.$Search.'%"
254 OR `User` LIKE "%'.$Search.'%"
255 OR `Complete` LIKE "%'.$Search.'%"';
256 foreach($TranslationTree[$GroupId]['Items'] as $Item)
257 {
258 if($Item['Column'] != '') $sql .= ' OR `'.$Item['Column'].'` LIKE "%'.$Search.'%"';
259 }
260
261 WriteQuests($sql, '', 'search='.$Search);
262}
263
264if($Action == 'searchentry')
265{
266 if(array_key_exists('ID', $_GET)) $Search = $_GET['ID'];
267 else $Search = $_POST['ID'];
268
269 $sql = 'SELECT *, (SELECT user.user FROM user WHERE user.id = '.$Table.'.user) as User FROM `'.$Table.'` WHERE `entry` LIKE "'.$Search.'"';
270
271 WriteQuests($sql, '', 'searchentry='.$Search);
272}
273
274if($Action == 'filter')
275{
276 echo('<a title="Zobrazit texty podle vlastního filtru" href="?group='.$GroupId.'&amp;action=filter">Filtr textů</a><br /><br /><br />');
277 echo('<table border="1" cellpadding="3" cellspacing="0">
278 <tr><th>Odkaz</th><th>Popis</th></tr>');
279 echo('<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>
280 <td>Přeložené texty, můžete zde hlasovat, nebo text opravovat</td></tr>');
281
282 if(Licence(LICENCE_USER))
283 {
284 echo('<tr><td><a title="Nedokončené texty" href="?group='.$GroupId.'&amp;action=mydevelop">Rozepsané texty</a></td>
285 <td>Nedokončené texty přihlášeného uživatele</td></tr>
286 <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>
287 <td>Přeložené texty přihlášeného uživatele</td></tr>
288 <tr><td><a title="Zatím neznámkované překlady" href="?group='.$GroupId.'&amp;action=notvote">Neznámkované překlady</a></td>
289 <td>Zatím neznámkované překlady</td></tr>');
290 echo('<tr><td><a title="Nezkontrolované překlady" href="?group='.$GroupId.'&amp;action=nocheck">Nezkontrolované překlady</a></td></tr>');
291 echo('<tr><td><a title="Zkontrolované překlady" href="?group='.$GroupId.'&amp;action=check">Zkontrolované překlady</a></td></tr>');
292 }
293
294 echo('<tr><td><form action="?group='.$GroupId.'&amp;action=users" method="post">
295 &nbsp;<select name="users[]" size="10" multiple>');
296
297 $ID = $Database->SQLCommand('SELECT user, ID FROM `user` WHERE
298 EXISTS(SELECT 1 FROM '.$Table.' WHERE user = user.ID) ORDER BY user');
299 if($ID)
300 while($Line = mysql_fetch_assoc($ID))
301 echo('<option value="'.$Line['ID'].'">'.$Line['user'].'</option>');
302
303 echo('</select><br />
304 <input type="submit" value="Vypsat"></form></td>
305 <td>Vypsat pouze od těchto uživatalů<br />
306 Vybrat více uživatelů můžete pomocí CTRL+click</td></tr>');
307
308 echo('<tr><td>
309 <form action="?group='.$GroupId.'&amp;action=byvote" method="post">
310 Počet hlasů: <br />
311 <input type="radio" name="SingNumberVote" value="=" checked="true" title="Rovná se &quot;=&quot;" />
312 <input type="radio" name="SingNumberVote" value=">" checked="true" title="Je větší než &quot;>&quot;" />
313 <input type="radio" name="SingNumberVote" value="<" checked="true" title="Je menší než &quot;<&quot;" />
314 <input type="text" name="NumberVote" value="3" size="1" /><br />
315 Známka: <br />
316 <input type="radio" name="SingVote" value="=" checked="true" title="Rovná se &quot;=&quot;" />
317 <input type="radio" name="SingVote" value=">" checked="true" title="Je větší než &quot;>&quot;" />
318 <input type="radio" name="SingVote" value="<" checked="true" title="Je menší než &quot;<&quot;" />
319 <input type="text" name="Vote" value="3" size="1" /><br />
320 <input type="submit" value="Vypsat"></form>
321 </td><td>Zobrazit podle známky</td></tr>');
322
323 echo('<tr><td><form action="?group='.$GroupId.'&amp;action=search" method="post">
324 <input type="text" name="search" size="8" />
325 <input type="submit" value="Hledat" />
326 </form>
327 </td><td>Vyhledat pomocí textu</td></tr>');
328
329 echo('<tr><td><form action="?group='.$GroupId.'&amp;action=searchentry" method="post">
330 <input type="text" name="ID" size="8" />
331 <input type="submit" value="Hledat" />
332 </form>
333 </td><td>Zobrazit podle ID textu v databázi MaNGOSu</td></tr>');
334
335 echo('</table>');
336 // WriteQuests("SELECT * FROM quests Where user = ".$_SESSION['UserID']." AND Complete = '0'", '', 'mydevelop');
337}
338
339 ShowFooter();
340?>
341
Note: See TracBrowser for help on using the repository browser.