source: trunk/TranslationList.php@ 96

Last change on this file since 96 was 96, checked in by george, 16 years ago
  • Přidáno: Zobrazení aktuální překladové skupiny ve výpise překladů.
File size: 12.5 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
45echo('Skupina: <strong>'.$TranslationTree[$GroupId]['Name'].'</strong><br />');
46
47function WritePages($Address, $Where)
48{
49 global $Database, $TranslationItemPerPage, $Table;
50
51 $Line = mysql_fetch_row($Database->SQLCommand('SELECT count(*) FROM '.$Table.' '.$Where));
52 $CountLists = $Line[0] / $TranslationItemPerPage;
53
54 echo('Počet položek: <strong>'.$Line[0].'</strong><br />
55 Zobrazit stránku: ');
56
57 $limitx = 0;
58 for($i = 0; $i < $CountLists; ++$i)
59 {
60 $limity = $TranslationItemPerPage;
61 $limitx = $i * $limity;
62 $Page = $i + 1;
63 if($_SESSION['limitx'] == $limitx) echo('<strong>'.$Page.'</strong> ');
64 else echo('<a href="'.$Address.'&amp;limitx='.$limitx.'&amp;limity='.$limity.'">'.$Page.'</a> ');
65 }
66
67 if(!array_key_exists('limitx', $_SESSION)) $_SESSION['limitx'] = 0;
68 if($_SESSION['limitx'] > $limitx) $_SESSION['limitx'] = 0;
69}
70
71function WriteQuests($sql, $limit, $address)
72{
73 global $Database, $order, $desc, $TranslationTree, $GroupId, $Table;
74
75 // Check if order column exists
76 $Items = $TranslationTree[$GroupId]['Items'];
77 $I = 0;
78 while(($I < count($Items)) and ($Items[$I]['MangosColumn'] != $order)) $I++;
79 if($I >= count($Items)) $order = 'ID';
80
81 if($limit <> '') $limit = 'LIMIT '.$limit;
82
83 if($address <> 'selection')
84 {
85 if($order <> '') $order = 'ORDER BY '.$order;
86 if($desc <> 'desc') $desc = 'desc'; else $desc = '';
87 } else
88 {
89 $order = '';
90 $desc = '';
91 }
92
93 echo('<table border="1" cellpadding="2" cellspacing="0"><tr>
94 <th><a href="?group='.$GroupId.'&amp;action='.$address.'&amp;order=ID&amp;desc='.$desc.'">Pořadové číslo</a></th>
95 <th><a href="?group='.$GroupId.'&amp;action='.$address.'&amp;order=entry&amp;desc='.$desc.'">Identifikační číslo</a></th>
96 <th><a href="?group='.$GroupId.'&amp;action='.$address.'&amp;order='.$TranslationTree[$GroupId]['Items'][0]['Column'].'&amp;desc='.$desc.'">Název</a></th>');
97 if ($address == 'selection') echo('<th><a href="?group='.$GroupId.'&amp;action='.$address.'&amp;order=CountQuests&amp;desc='.$desc.'">Výskyt</a></th>');
98 else if($address <> 'notran') echo('<th><a href="?group='.$GroupId.'&amp;action='.$address.'&amp;order=user&amp;desc='.$desc.'">Uživatel</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 echo('</tr>');
112 }
113 echo('</table>');
114}
115
116if($Action == 'notran')
117{
118 echo('<a title="Zobrazit texty podle vlastního filtru" href="?group='.$GroupId.'&amp;action=filter">Filtr textů</a> ->
119 <a title="Zde můžete začít překládat" href="?group='.$GroupId.'&amp;action=selection">Nepřeložené texty</a> - >
120 <strong>Vypsání nepřeložených textů s limitem na stránku</strong><br /><br />');
121
122 WritePages('?group='.$GroupId.'&amp;action=notran', 'AS items WHERE items.Language = 0 AND
123 NOT EXISTS(SELECT 1 FROM '.$Table.' AS sub WHERE sub.Language <> 0 AND sub.entry = items.entry)');
124
125 WriteQuests('SELECT * FROM '.$Table.' AS items WHERE (items.Language = 0) AND
126 NOT EXISTS(SELECT 1 FROM '.$Table.' AS sub WHERE (sub.Language <> 0) AND (sub.entry = items.entry)) ', $_SESSION['limitx'].','.$_SESSION['limity'], 'notran');
127}
128
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}
143
144if($Action == 'Translate')
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="Přeložené texty, můžete zde hlasovat, nebo opravovat texty" href="?group='.$GroupId.'&amp;action=Translate">Přeložené texty</a><br /><br />');
148
149 WritePages('?group='.$GroupId.'&amp;action=Translate', 'WHERE '.$Table.'.Language <> 0 AND '.$Table.'.Complete = 1');
150
151 WriteQuests('SELECT *, (SELECT user.user FROM user WHERE user.id = '.$Table.'.user) as User FROM
152 '.$Table.' WHERE '.$Table.'.Language <> 0 AND '.$Table.'.Complete = 1', $_SESSION['limitx'].','.$_SESSION['limity'], 'Translate');
153}
154
155if(($Action == 'my') and Licence(LICENCE_USER))
156{
157 echo('<a title="Zobrazit texty podle vlastního filtru" href="?group='.$GroupId.'&amp;action=filter">Filtr textů</a> ->
158 <a title="Přeložené questy přilášeného uživatele" href="?group='.$GroupId.'&amp;action=my">Moje překlady</a><br /><br />');
159 WriteQuests('SELECT *, (SELECT user.user FROM user WHERE user.id = '.$Table.'.user) as User FROM '.$Table.' Where user = '.$_SESSION['UserID'], '', 'my');
160}
161
162if(($Action == 'mydevelop') and Licence(LICENCE_USER))
163{
164 echo('<a title="Zobrazit texty podle vlastního filtru" href="?group='.$GroupId.'&amp;action=filter">Filtr textů</a> ->
165 <a title="Nedokončené texty" href="?group='.$GroupId.'&amp;action=mydevelop">Rozepsané překlady</a><br /><br />');
166 WriteQuests('SELECT *, (SELECT user.user FROM user WHERE user.id = '.$Table.'.user) as User FROM '.$Table.' Where user = '.$_SESSION['UserID'].' AND Complete = 0', '', 'mydevelop');
167}
168
169if($Action == 'users')
170{
171 echo('<a title="Zobrazit texty podle vlastního filtru" href="?group='.$GroupId.'&amp;action=filter">Filtr textů</a> ->
172 <strong>Vypsání textů od určitých uživatelů</strong><br /><br />');
173 $users = @$_POST['users'];
174
175 $WhereUsers = '';
176
177 for($i = 0; $i < Count($users); $i++)
178 {
179 if($WhereUsers <> '') $WhereUsers .= ' OR User = '.$users[$i];
180 else $WhereUsers .= ' User = '.$users[$i];
181 }
182 WriteQuests('SELECT *, (SELECT user.user FROM user WHERE user.id = '.$Table.'.user) as User FROM '.$Table.' Where '.$WhereUsers, '', 'users');
183}
184
185if($Action == 'userall')
186{
187 $user = $_GET['user'];
188 echo('<a title="Zobrazit texty podle vlastního filtru" href="?group='.$GroupId.'&amp;action=filter">Filtr textů</a> ->
189 <strong>Vypsání všech textů od uživatele: </strong><br /><br />');
190
191 $WhereUser = ' User = '.$user;
192 foreach($TranslationTree as $Group) {
193 if($Group['TablePrefix'] != '') {
194 $sql = 'SELECT *, (SELECT user.user FROM user WHERE user.id = '.$Group['TablePrefix'].'.user) as User FROM '.$Group['TablePrefix'].' Where '.$WhereUser;
195 $ID = $Database->SQLCommand($sql);
196 $Line = mysql_fetch_row($ID);
197 if ($Line) {
198 $GroupId = $Group['Id'];
199 echo ('<br />Texty: <b>'.$Group['Name'].'</b>');
200 WriteQuests($sql, '', 'userall');
201 }
202 }
203 }
204}
205
206if($Action == 'search')
207{
208 if(array_key_exists('search', $_GET)) $Search = $_GET['search'];
209 else $Search = $_POST['search'];
210
211 $sql = 'SELECT *, (SELECT user.user FROM user WHERE user.id = '.$Table.'.user) as User FROM `'.$Table.'` WHERE `ID` LIKE "%'.$Search.'%"
212 OR `entry` LIKE "%'.$Search.'%"
213 OR `Language` LIKE "%'.$Search.'%"
214 OR `User` LIKE "%'.$Search.'%"
215 OR `Complete` LIKE "%'.$Search.'%"';
216 foreach($TranslationTree[$GroupId]['Items'] as $Item)
217 {
218 if($Item['Column'] != '') $sql .= ' OR `'.$Item['Column'].'` LIKE "%'.$Search.'%"';
219 }
220
221 WriteQuests($sql, '', 'search='.$Search);
222}
223
224if($Action == 'searchentry')
225{
226 if(array_key_exists('ID', $_GET)) $Search = $_GET['ID'];
227 else $Search = $_POST['ID'];
228
229 $sql = 'SELECT *, (SELECT user.user FROM user WHERE user.id = '.$Table.'.user) as User FROM `'.$Table.'` WHERE `entry` LIKE "'.$Search.'"';
230
231 WriteQuests($sql, '', 'searchentry='.$Search);
232}
233
234if($Action == 'filter')
235{
236 echo('<a title="Zobrazit texty podle vlastního filtru" href="?group='.$GroupId.'&amp;action=filter">Filtr textů</a><br /><br /><br />');
237 echo('<table border="1" cellpadding="3" cellspacing="0">
238 <tr><th>Odkaz</th><th>Popis</th></tr>');
239 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>
240 <td>Přeložené texty, můžete zde hlasovat, nebo text opravovat</td></tr>');
241 echo('<tr><td><a title="Nepřeložené texty" href="?group='.$GroupId.'&amp;action=notran">Nepřeložené texty</a></td>
242 <td>Nepřeložené texty, zde můžete překládat</td></tr>');
243 echo('<tr><td><a title="Nedokončené texty" href="?group='.$GroupId.'&amp;action=nocomplete">Nedokončené texty</a></td>
244 <td>Texty, které nemají hotovou verzi, ale již na nich někdo pracuje</td></tr>');
245
246 if(Licence(LICENCE_USER))
247 {
248 echo('<tr><td><a title="Nedokončené texty" href="?group='.$GroupId.'&amp;action=mydevelop">Rozepsané texty</a></td>
249 <td>Nedokončené texty přihlášeného uživatele</td></tr>
250 <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>
251 <td>Přeložené texty přihlášeného uživatele</td></tr>');
252 }
253
254 echo('<tr><td><form action="?group='.$GroupId.'&amp;action=users" method="post">
255 &nbsp;<select name="users[]" size="10" multiple>');
256
257 $ID = $Database->SQLCommand('SELECT user, ID FROM `user` WHERE
258 EXISTS(SELECT 1 FROM '.$Table.' WHERE user = user.ID) ORDER BY user');
259 if($ID)
260 while($Line = mysql_fetch_assoc($ID))
261 echo('<option value="'.$Line['ID'].'">'.$Line['user'].'</option>');
262
263 echo('</select><br />
264 <input type="submit" value="Vypsat"></form></td>
265 <td>Vypsat pouze od těchto uživatalů<br />
266 Vybrat více uživatelů můžete pomocí CTRL+click</td></tr>');
267
268 echo('<tr><td><form action="?group='.$GroupId.'&amp;action=search" method="post">
269 <input type="text" name="search" size="8" />
270 <input type="submit" value="Hledat" />
271 </form>
272 </td><td>Vyhledat pomocí textu</td></tr>');
273
274 echo('<tr><td><form action="?group='.$GroupId.'&amp;action=searchentry" method="post">
275 <input type="text" name="ID" size="8" />
276 <input type="submit" value="Hledat" />
277 </form>
278 </td><td>Zobrazit podle ID textu v databázi MaNGOSu</td></tr>');
279
280 echo('</table>');
281 // WriteQuests("SELECT * FROM quests Where user = ".$_SESSION['UserID']." AND Complete = '0'", '', 'mydevelop');
282}
283
284 ShowFooter();
285?>
286
Note: See TracBrowser for help on using the repository browser.