source: trunk/TranslationList.php@ 49

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