source: trunk/includes/global.php@ 57

Last change on this file since 57 was 57, checked in by george, 16 years ago
  • Upraveno: Stránka statistika rozdělena na stránky Stav dokončení a Seznam uživatelů.
  • Přidáno: Stránkování seznamu uživatelů.
  • Opraveno: Přidány indexy do tabulek překladů pro sloupce Complete a Language. Díky tomu se výrazně zrychlilo zobrazení seznamu uživatelů.
File size: 8.4 KB
Line 
1<?php
2
3session_start();
4
5// SQL injection hack protection
6foreach($_POST as $Index => $Item)
7{
8 if(is_array($_POST[$Index]))
9 foreach($_POST[$Index] as $Index2 => $Item2) $_POST[$Index][$Index2] = addslashes($Item2);
10 else $_POST[$Index] = addslashes($_POST[$Index]);
11}
12foreach($_GET as $Index => $Item) $_GET[$Index] = addslashes($_GET[$Index]);
13
14include('config.php');
15include('databaseconection.php');
16include('global_function.php');
17
18$Database = new Database($Config['Database']['Host'], $Config['Database']['User'], $Config['Database']['Password']);
19$Database->SQLCommand('SET NAMES '.$Config['Database']['Charset']);
20$Database->SelectDatabase($Config['Database']['Database']);
21
22$TranslationTree = GetTranslationTree();
23
24function ShowShoutbox()
25{
26 global $Database;
27
28 echo('<strong>Shoutbox: </strong><a href="action.php?action=shoutbox">Vložit</a>
29 <div class="box">
30 <table>');
31 $ID = $Database->SQLCommand("SELECT * FROM shoutbox ORDER BY ID DESC LIMIT 10");
32 while($Line = mysql_fetch_assoc($ID))
33 echo('<tr><td><strong>'.$Line['user'].'</strong>: '.$Line['text'].'</td></tr>');
34 echo('</table></div>');
35}
36
37function ShowLoginBox()
38{
39 if(Licence(LICENCE_USER))
40 {
41 // echo 'Jste přihlášen jako: <b>'.$_SESSION['User'].'</b> <a href="index.php?Logout">Odhlásit</a>';
42 } else
43 {
44 echo('<strong>Přihlášení:</strong><br />
45 <form action="index.php" method="post">
46 <table>
47 <tr>
48 <td><input type="text" name="LoginUser" size="13" /></td>
49 </tr>
50 <tr>
51 <td><input type="password" name="LoginPass" size="13" /></td>
52 </tr>
53 <tr>
54 <th><input type="submit" value="Přihlásit" /></th>
55 </tr>
56 </table>
57 </form>');
58 }
59}
60
61function ShowMainMenu()
62{
63 global $TranslationTree;
64
65 $Menu = array
66 (
67 'index.php' => array(LICENCE_ANONYMOUS, 'Hlavní stránka', 'Domů'),
68 'http://wow.zdechov.net/forum/viewforum.php?f=22' => array(LICENCE_ANONYMOUS, 'Diskuze na téma překládání', 'Fórum projektu'),
69 'banners.php' => array(LICENCE_ANONYMOUS, 'Weby odkazující na tento projekt bennerem', 'Odkazují na nás'),
70 'javascript:void(0)' => array(LICENCE_ANONYMOUS, 'Slovník wow výrazů', 'Slovníček', 'javascript:window.open(\'dictionary.php\', \'Slovník\', \'width=400, height=412\'); return false;'),
71 'statistic.php' => array(LICENCE_ANONYMOUS, 'Stav dokončení překládů', 'Stav dokončení'),
72 'userlist.php' => array(LICENCE_ANONYMOUS, 'Seznam registrovaných uživatelů', 'Seznam uživatelů'),
73 'download.php' => array(LICENCE_ANONYMOUS, 'Zde si můžete stáhnout přeložené texty', 'Stahování'),
74 'registrace.php' => array(LICENCE_ANONYMOUS, 'Registrace uživatele pro překládání', 'Registrace'),
75 'Options.php' => array(LICENCE_USER, 'Nastavení uživatele', 'Nastavení'),
76 'index.php?Logout' => array(LICENCE_USER, 'Odhlášení ze systému', 'Odhlásit'),
77 'log.php' => array(LICENCE_MODERATOR, 'Log dění (Pouze moderátor)', 'Záznamy'),
78 'fill_database.php' => array(LICENCE_ADMIN, 'Načtení questů do database (pouze admin)', 'Import textů z MaNGOSu'),
79 //'client_files/generate_SQL.php' => array(LICENCE_ADMIN, 'Generování clientských souborů (pouze admin)', 'Generování C.S.'),
80 'https://wow.zdechov.net/mysql/' => array(LICENCE_ADMIN, 'phpMyAdmin(pouze admin)', 'Správa databáze'),
81 );
82 //echo('Jste přihlášen jako: <strong>'.$_SESSION['User'].'</strong>
83
84
85 echo('<table class="page"><tr><td class="menu"><strong>Hlavní menu:</strong><br />');
86 foreach($Menu as $MenuTarget => $MenuItem)
87 {
88 if(isset($MenuItem[3])) $OnClick = ' onclick="'.$MenuItem[3].'"'; else $OnClick = '';
89 if(Licence($MenuItem[0])) echo('<a title="'.$MenuItem[1].'" href="'.$MenuTarget.'"'.$OnClick.'>'.$MenuItem[2].'</a><br />');
90 }
91 echo('<br />');
92
93 echo('<strong>Překladové skupiny:</strong><br />');
94 foreach($TranslationTree as $Group)
95 {
96 echo('<div id="menuitem-group'.$Group['Id'].'" onmousemove="show(\'group'.$Group['Id'].'\')" onmouseout="hide(\'group'.$Group['Id'].'\')">
97 <a href="TranslationList.php?group='.$Group['Id'].'&amp;action=filter">'.$Group['Name'].'</a></div>
98 <div id="group'.$Group['Id'].'" class="hidden-menu-item" onmousemove="show(\'group'.$Group['Id'].'\')" onmouseout="hide(\'group'.$Group['Id'].'\')">');
99 echo('&nbsp;<a title="Zde můžete začít překládat" href="TranslationList.php?group='.$Group['Id'].'&amp;action=notran">Nepřeložené</a><br />
100 &nbsp;<a title="Přeložené texty, můžete zde hlasovat, nebo opravovat překlady" href="TranslationList.php?group='.$Group['Id'].'&amp;action=Translate">Přeložené</a><br />');
101 if(Licence(LICENCE_USER))
102 {
103 echo('&nbsp;<a title="Nedokončené překlady" href="TranslationList.php?group='.$Group['Id'].'&amp;action=mydevelop">Rozepsané</a><br />
104 &nbsp;<a title="Všechny překlady, které jste přeložil" href="TranslationList.php?group='.$Group['Id'].'&amp;action=my">Vlastní</a><br />
105 &nbsp;<a title="Překlad, které bych měl oznámkovat" href="TranslationList.php?group='.$Group['Id'].'&amp;action=notvote">Neznámkované</a><br />');
106 }
107 if(Licence(LICENCE_ADMIN))
108 {
109 echo('&nbsp;<a title="Nezkontrolované překlady" href="TranslationList.php?group='.$Group['Id'].'&amp;action=nocheck">Nezkontrolované</a><br />');
110 echo('&nbsp;<a title="Zkontrolované překlady" href="TranslationList.php?group='.$Group['Id'].'&amp;action=check">Zkontrolované</a><br />');
111 }
112 echo('&nbsp;<a title="Sestavit speciální filtr" href="TranslationList.php?group='.$Group['Id'].'&amp;action=filter">Filtr</a><br />');
113 echo('</div>');
114 }
115}
116
117function ShowOnlineUserList()
118{
119 global $Database, $Moderators;
120
121 echo('Online uživatelé:<br />');
122 $ID = $Database->SQLCommand("SELECT user, GM, ID FROM `user` WHERE LastLogin >= Now() - 300");
123 while ($Line = mysql_fetch_assoc($ID))
124 {
125 if(Licence(LICENCE_MODERATOR)) $Name = '<a href="user.php?user='.$Line['ID'].'">'.$Line['user'].'</a>';
126 else $Name = $Line['user'];
127 if($Line['GM'] <> 0) $TextGM = ' ('.$Moderators[$Line['GM']].')';
128 else $TextGM = '';
129 echo('<strong>'.$Name.'</strong>'.$TextGM.'<br />');
130 }
131}
132
133function ShowPage()
134{
135 global $Config, $Database;
136
137 echo('<?xml version="1.0" encoding="'.$Config['Web']['Charset'].'"?>
138<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
139<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
140<head>
141<meta http-equiv="content-type" content="text/html; charset=utf-8" />
142<link rel="stylesheet" href="'.$Config['Web']['BaseURL'].'style.css" type="text/css" media="all" />
143<script type="text/javascript" src="'.$Config['Web']['BaseURL'].'global.js"></script>
144<link rel="SHORTCUT ICON" href="'.$Config['Web']['BaseURL'].'images/favicon.ico" />
145<title>Projekt překládání textů WoW</title>
146</head>
147<body>');
148
149// přihlášení
150if(array_key_exists('LoginUser', $_POST))
151{
152 $_SESSION['User'] = $_POST['LoginUser'];
153 $_SESSION['Pass'] = $_POST['LoginPass'];
154
155 $Line = mysql_fetch_array($Database->SQLCommand("SELECT * FROM user WHERE LOWER(user) = LOWER('".$_SESSION['User']."') AND pass = '".$_SESSION['Pass']."'"));
156 if(!$Line)
157 {
158 echo('<script> alert("Jméno nebo heslo bylo zadáno špatně!"); </script>');
159 $_SESSION['UserID'] = '';
160 $_SESSION['User'] = '';
161 $_SESSION['Pass'] = '';
162 } else
163 {
164 $_SESSION['UserID'] = $Line['ID'];
165 $_SESSION['User'] = $Line['user'];
166 WriteLog('Login: '.$_SESSION['User'], 3);
167 }
168}
169
170//odhlášení
171if(array_key_exists('Logout', $_GET))
172{
173 WriteLog('Odhlášení', 3);
174 $_SESSION['User'] = '';
175 $_SESSION['Pass'] = '';
176 $_SESSION['UserID'] = '';
177}
178
179 //záznam o aktivitě
180 if(Licence(0)) $Database->SQLCommand("UPDATE user SET LastIP = '".$_SERVER['REMOTE_ADDR']."', LastLogin = now() WHERE ID = ".$_SESSION['UserID']);
181
182 ShowMainMenu();
183
184 echo('<br />');
185 ShowLoginBox();
186 echo('<br />');
187 ShowOnlineUserList();
188 echo('<br />');
189 ShowShoutBox();
190 echo('</td><td class="content">');
191}
192
193ShowPage();
194
195function ShowFooter()
196{
197 global $Database;
198
199 echo('</td>
200 </tr>
201 <tr>
202 <td colspan="2" class="page-bottom">Autoři: maron (maron2@centrum.cz), chronos');
203echo(' </td></tr>
204 </table>
205 </body>
206</html>');
207 $Database->Disconnect();
208}
209
210?>
Note: See TracBrowser for help on using the repository browser.