source: trunk/includes/global.php@ 138

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

Verzování češtiny pro clienta na pár kliknutí (Změna struktury), menší opravy generování levelu

File size: 11.4 KB
Line 
1<?php
2
3$ScriptStartTime = GetMicrotime();
4
5if(!isset($_SESSION)) session_start();
6
7// SQL injection hack protection
8foreach($_POST as $Index => $Item)
9{
10 if(is_array($_POST[$Index]))
11 foreach($_POST[$Index] as $Index2 => $Item2) $_POST[$Index][$Index2] = addslashes($Item2);
12 else $_POST[$Index] = addslashes($_POST[$Index]);
13}
14foreach($_GET as $Index => $Item) $_GET[$Index] = addslashes($_GET[$Index]);
15
16include('config.php');
17include_once('error.php');
18include('databaseconection.php');
19include('global_function.php');
20
21$Database = new Database($Config['Database']['Host'], $Config['Database']['User'], $Config['Database']['Password']);
22$Database->SQLCommand('SET NAMES '.$Config['Database']['Charset']);
23$Database->SelectDatabase($Config['Database']['Database']);
24
25$TranslationTree = GetTranslationTree();
26
27function GetMicrotime()
28{
29 list($Usec, $Sec) = explode(' ', microtime());
30 return ((float)$Usec + (float)$Sec);
31}
32
33function ShowShoutbox()
34{
35 global $Database;
36
37 echo('<strong>Shoutbox: </strong><a href="action.php?action=shoutbox">Vložit</a>
38 <div class="box">
39 <table>');
40 $ID = $Database->SQLCommand("SELECT * FROM shoutbox ORDER BY ID DESC LIMIT 10");
41 while($Line = mysql_fetch_assoc($ID))
42 echo('<tr><td><strong>'.$Line['user'].'</strong>: '.$Line['text'].'</td></tr>');
43 echo('</table></div>');
44}
45
46function ShowLoginBox()
47{
48 if(Licence(LICENCE_USER))
49 {
50 // echo 'Jste přihlášen jako: <b>'.$_SESSION['User'].'</b> <a href="index.php?Logout">Odhlásit</a>';
51 } else
52 {
53 echo('<strong>Přihlášení:</strong>
54 <form action="index.php" method="post">
55 <table>
56 <tr>
57 <td><input type="text" name="LoginUser" size="13" /></td>
58 </tr>
59 <tr>
60 <td><input type="password" name="LoginPass" size="13" /></td>
61 </tr>
62 <tr>
63 <th><input type="submit" value="Přihlásit" /></th>
64 </tr>
65 </table>
66 </form>');
67 }
68}
69
70function ShowMainMenu()
71{
72 global $TranslationTree, $Config;
73
74 $Menu = array
75 (
76 $Config['Web']['BaseURL'].'index.php' => array(LICENCE_ANONYMOUS, 'Hlavní stránka', 'Domů'),
77 'http://wow.zdechov.net/forum/viewforum.php?f=22' => array(LICENCE_ANONYMOUS, 'Diskuze na téma překládání', 'Fórum projektu'),
78 $Config['Web']['BaseURL'].'banners.php' => array(LICENCE_ANONYMOUS, 'Weby odkazující na tento projekt bennerem', 'Odkazují na nás'),
79 'javascript:void(0)' => array(LICENCE_ANONYMOUS, 'Slovník wow výrazů', 'Slovníček', 'javascript:window.open(\'dictionary.php\', \'Slovník\', \'width=400, height=390\'); return false;'),
80 $Config['Web']['BaseURL'].'statistic.php' => array(LICENCE_ANONYMOUS, 'Stav dokončení překládů', 'Stav dokončení'),
81 $Config['Web']['BaseURL'].'userlist.php' => array(LICENCE_ANONYMOUS, 'Seznam registrovaných uživatelů', 'Seznam uživatelů'),
82 $Config['Web']['BaseURL'].'team.php' => array(LICENCE_ANONYMOUS, 'Seznam překladatelských týmů', 'Seznam týmů'),
83 $Config['Web']['BaseURL'].'export/' => array(LICENCE_ANONYMOUS, 'Zde si můžete stáhnout přeložené texty', 'Stahování'),
84 $Config['Web']['BaseURL'].'registrace.php' => array(LICENCE_ANONYMOUS, 'Registrace uživatele pro překládání', 'Registrace'),
85 $Config['Web']['BaseURL'].'info.php' => array(LICENCE_ANONYMOUS, 'Informace k překladu hry', 'Informace'),
86 $Config['Web']['BaseURL'].'Options.php' => array(LICENCE_USER, 'Nastavení uživatele', 'Nastavení'),
87 $Config['Web']['BaseURL'].'index.php?Logout' => array(LICENCE_USER, 'Odhlášení ze systému', 'Odhlásit'),
88 $Config['Web']['BaseURL'].'log.php' => array(LICENCE_MODERATOR, 'Log dění (Pouze moderátor)', 'Záznamy'),
89 $Config['Web']['BaseURL'].'import/' => array(LICENCE_ADMIN, 'Načtení zdrojových textů do databáze (pouze admin)', 'Import textů'),
90 $Config['Web']['BaseURL'].'img_level.php?nothide' => array(LICENCE_ADMIN, 'Načtení levelů a generování obrázků (pouze admin)', 'Generování lvl'),
91 //'client_files/generate_SQL.php' => array(LICENCE_ADMIN, 'Generování clientských souborů (pouze admin)', 'Generování C.S.'),
92 'https://wow.zdechov.net/mysql/' => array(LICENCE_ADMIN, 'phpMyAdmin(pouze admin)', 'Správa databáze'),
93 );
94 //echo('Jste přihlášen jako: <strong>'.$_SESSION['User'].'</strong>
95
96
97 echo('<table class="page"><tr>
98 <td class="menu"><strong>Hlavní menu:</strong>
99 <div class="verticalmenu"><ul>');
100
101 foreach($Menu as $MenuTarget => $MenuItem)
102 {
103 if(isset($MenuItem[3])) $OnClick = ' onclick="'.$MenuItem[3].'"'; else $OnClick = '';
104 if(Licence($MenuItem[0])) echo('<li><a class="verticalmenua" title="'.$MenuItem[1].'" href="'.$MenuTarget.'"'.$OnClick.'>'.$MenuItem[2].'</a></li>');
105 }
106 echo('</ul></div>');
107
108 echo('<strong>Překladové skupiny:</strong><br /><div id="TranslationMenu">');
109 if(Licence(LICENCE_USER)) echo ('<a title="Všechny překlady, které jste přeložil" href="'.$Config['Web']['BaseURL'].'TranslationList.php?user='.$_SESSION['UserID'].'&amp;action=userall">Všechny moje texty</a><br />');
110 foreach($TranslationTree as $Group)
111 {
112 echo('<div id="menuitem-group'.$Group['Id'].'" onmousemove="show(\'group'.$Group['Id'].'\')" onmouseout="hide(\'group'.$Group['Id'].'\')">
113 <a href="TranslationList.php?group='.$Group['Id'].'&amp;action=filter">'.$Group['Name'].'</a></div>
114 <div id="group'.$Group['Id'].'" class="hidden-menu-item" onmousemove="show(\'group'.$Group['Id'].'\')" onmouseout="hide(\'group'.$Group['Id'].'\')">');
115 echo('&nbsp;<a title="Zde můžete začít překládat" href="'.$Config['Web']['BaseURL'].'TranslationList.php?group='.$Group['Id'].'&amp;action=notran">Nepřeložené</a><br />
116 &nbsp;<a title="Přeložené texty, můžete zde hlasovat, nebo opravovat překlady" href="'.$Config['Web']['BaseURL'].'TranslationList.php?group='.$Group['Id'].'&amp;action=Translate">Přeložené</a><br />');
117 if(Licence(LICENCE_USER))
118 {
119 echo('&nbsp;<a title="Nedokončené překlady" href="'.$Config['Web']['BaseURL'].'TranslationList.php?group='.$Group['Id'].'&amp;action=mydevelop">Rozepsané</a><br />
120 &nbsp;<a title="Všechny překlady, které jste přeložil" href="'.$Config['Web']['BaseURL'].'TranslationList.php?group='.$Group['Id'].'&amp;action=my">Vlastní</a><br />');
121 }
122 echo('&nbsp;<a title="Sestavit speciální filtr" href="'.$Config['Web']['BaseURL'].'TranslationList.php?group='.$Group['Id'].'&amp;action=filter">Filtr</a><br />');
123 echo('</div>');
124 }
125 echo ('</div>');
126}
127
128function ShowOnlineUserList()
129{
130 global $Database, $Moderators;
131
132 echo('Online uživatelé:<br />');
133 $ID = $Database->SQLCommand("SELECT user, GM, ID FROM `user` WHERE LastLogin >= Now() - 300");
134 while ($Line = mysql_fetch_assoc($ID))
135 {
136 if(Licence(LICENCE_MODERATOR)) $Name = '<a href="user.php?user='.$Line['ID'].'">'.$Line['user'].'</a>';
137 else $Name = $Line['user'];
138 if($Line['GM'] <> 0) $TextGM = ' ('.$Moderators[$Line['GM']].')';
139 else $TextGM = '';
140 echo('<strong>'.$Name.'</strong>'.$TextGM.'<br />');
141 }
142}
143
144function ShowPage()
145{
146 global $Config, $Database, $RSSChannels;
147
148 echo('<?xml version="1.0" encoding="'.$Config['Web']['Charset'].'"?>
149<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
150<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="cs" lang="cs">
151<head>'.
152'<meta http-equiv="content-type" content="application/xhtml+xml; charset=utf-8" />'.
153'<meta name="keywords" content="wow, quest, questy, preklad, mangos, překlad, překládání, přeložený, přeložení, čeština, world of warcraft, open source, free, addon" />'.
154'<meta name="description" content="Projekt překládání textů hry World of Warcraft" />'.
155'<meta name="robots" content="all" />'.
156'<link rel="stylesheet" href="'.$Config['Web']['BaseURL'].'style/style.css" type="text/css" media="all" />'.
157'<script type="text/javascript" src="'.$Config['Web']['BaseURL'].'style/global.js"></script>'.
158'<link rel="SHORTCUT ICON" href="'.$Config['Web']['BaseURL'].'images/favicon.ico" />');
159if(isset($RSSChannels))
160foreach($RSSChannels as $Channel)
161 echo(' <link rel="alternate" title="'.$Channel['Title'].'" href="'.$Channel['URL'].'" type="application/rss+xml" />');
162echo('<title>Projekt překládání textů WoW</title>
163</head>
164<body>
165<table id="bannertable"><tr>
166 <td id="banner1"></td>
167 <td id="banner"><div id="bannertitle">Projekt překládání textů WoW</div></td>
168 <td id="banner2"></td></tr>
169</table>
170');
171
172if(!array_key_exists('UserID', $_SESSION)) $_SESSION['UserID'] = '';
173if(!array_key_exists('User', $_SESSION)) $_SESSION['User'] = 'NotRegistred';
174if(!array_key_exists('Pass', $_SESSION)) $_SESSION['Pass'] = '';
175
176// Přihlášení
177if(array_key_exists('LoginUser', $_POST))
178{
179 $_SESSION['User'] = $_POST['LoginUser'];
180 $_SESSION['Pass'] = $_POST['LoginPass'];
181
182 $Line = mysql_fetch_array($Database->SQLCommand("SELECT * FROM user WHERE LOWER(user) = LOWER('".$_SESSION['User']."') AND pass = sha1('".$_SESSION['Pass']."')"));
183 if(!$Line)
184 {
185 echo('<script> alert("Jméno nebo heslo bylo zadáno špatně!"); </script>');
186 $_SESSION['UserID'] = '';
187 $_SESSION['User'] = '';
188 $_SESSION['Pass'] = '';
189 } else
190 {
191 $_SESSION['UserID'] = $Line['ID'];
192 $_SESSION['User'] = $Line['user'];
193 WriteLog('Login: '.$_SESSION['User'], 3);
194 }
195}
196
197//odhlášení
198if(array_key_exists('Logout', $_GET))
199{
200 WriteLog('Odhlášení', 3);
201 $_SESSION['User'] = '';
202 $_SESSION['Pass'] = '';
203 $_SESSION['UserID'] = '';
204}
205
206 //záznam o aktivitě
207 if(Licence(0)) $Database->SQLCommand("UPDATE user SET LastIP = '".$_SERVER['REMOTE_ADDR']."', LastLogin = now() WHERE ID = ".$_SESSION['UserID']);
208
209 ShowMainMenu();
210
211 echo('<br />');
212 ShowLoginBox();
213 echo('<br />');
214 ShowOnlineUserList();
215 echo('<br />');
216 ShowShoutBox();
217 echo('</td><td id="border-left"></td><td class="content">');
218}
219
220$UnitNames = array('B', 'kB', 'MB', 'GB', 'TB', 'PB', 'EB');
221
222function HumanSize($Value)
223{
224 global $UnitNames;
225
226 $UnitIndex = 0;
227 while($Value > 1024)
228 {
229 $Value = round($Value / 1024, 3);
230 $UnitIndex++;
231 }
232 return($Value.' '.$UnitNames[$UnitIndex]);
233}
234
235function ShowFooter()
236{
237 global $Database, $Config, $ScriptStartTime;
238
239 $ScriptGenerateDuration = round(GetMicrotime() - $ScriptStartTime, 2);
240 echo('</td>
241 </tr>
242 <tr>
243 <td colspan="3" class="page-bottom">Autoři: maron, chronos &nbsp; <a href="http://wowpreklad.zdechov.net/trac/wowpreklad/browser/trunk">Zdrojové soubory</a> &nbsp; ');
244 echo('<a href="http://counter.cnw.cz/"><img src="http://counter.cnw.cz/monika.cgi?wowpreklad&amp;5&amp;000000&amp;FFFFFF&amp;on" alt="CNW:Counter" /></a>
245 <script type="text/javascript">
246 <!--
247 document.write("<a href=\"http://counter.cnw.cz\" target=\"_parent\"><img src=\"http://counter.cnw.cz/trackit.cgi?wowpreklad&t3&" + escape(top.document.referrer) + "\" alt=\"CNW:Tracker\" border=\"0\" width=\"1\" height=\"1\"><\/a>");
248 // -->
249 </script>');
250
251 echo('</td></tr>');
252 if($Config['Web']['ShowRuntimeInfo'] == true) echo('<tr><td colspan="3" style="text-align: center;">Doba generování: '.$ScriptGenerateDuration.' s / '.ini_get('max_execution_time').' s &nbsp;&nbsp; Použitá paměť: '.HumanSize(memory_get_peak_usage(FALSE)).' / '.ini_get('memory_limit').'B</td></tr>');
253echo('</table>
254 </body>
255</html>');
256 $Database->Disconnect();
257}
258
259?>
Note: See TracBrowser for help on using the repository browser.