source: trunk/userlist.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: 3.4 KB
Line 
1<?php
2
3include('includes/global.php');
4
5$ItemsPerPage = 50;
6
7function WritePages($Address, $Table, $Where, $ItemsPerPage, $CurrentPage)
8{
9 global $Database;
10
11 $Line = mysql_fetch_row($Database->SQLCommand('SELECT count(*) FROM '.$Table.' '.$Where));
12 $ItemCount = floor($Line[0] / $ItemsPerPage);
13
14 echo('Počet položek: <strong>'.$Line[0].'</strong> &nbsp; Zobrazit stránku: ');
15
16 if($CurrentPage > $ItemCount) $CurrentPage = ($ItemCount / $ItemsPerPage) - 1;
17 for($Page = 1; $Page <= $ItemCount; $Page++)
18 {
19 if($CurrentPage == $Page) echo('<strong>'.$Page.'</strong> ');
20 else echo('<a href="'.$Address.$Page.'">'.$Page.'</a> ');
21 }
22}
23
24echo('<strong>Seznam uživatelů:</strong><br />');
25if(array_key_exists('Page', $_GET)) $_SESSION['Page'] = $_GET['Page'];
26else if(!array_key_exists('Page', $_SESSION)) $_SESSION['Page'] = 1;
27if(array_key_exists('Order', $_GET)) $_SESSION['Order'] = $_GET['Order'];
28else if(!array_key_exists('Order', $_SESSION)) $_SESSION['Order'] = 'user';
29if(array_key_exists('Desc', $_GET)) $_SESSION['Desc'] = $_GET['Desc'];
30else if(!array_key_exists('Desc', $_SESSION)) $_SESSION['Desc'] = '';
31WritePages('?Page=', 'user', '', $ItemsPerPage, $_SESSION['Page']);
32
33echo('<table class="BaseTable">');
34
35if(array_key_exists('Order', $_GET))
36{
37 $order = $_GET['Order'];
38 $desc = $_GET['Desc'];
39} else
40{
41 $order = 'NumberTranslate';
42 $desc = '';
43}
44
45if($desc == '') $desc = 'DESC'; else $desc = '';
46
47echo('<tr><th><a href="?Order=user&amp;Desc='.$desc.'">Jméno</a></th>
48 <th><a href="?Order=NumberTranslate&amp;Desc='.$desc.'" title="Počet přeložených textů">Přeložených</a></th>
49 <th><a href="?Order=Vote&amp;Desc='.$desc.'" title="Průměrná známka textů">Hodnocení</a></th>
50 <th><a href="?Order=GM&amp;Desc='.$desc.'">Oprávnění</a></th>
51 <th><a href="?Order=LastLogin&amp;Desc='.$desc.'">Poslední připojení</a></th></tr>');
52
53$Query = 'SELECT ID,user, LastLogin, GM, (';
54foreach($TranslationTree as $Group)
55 if($Group['TablePrefix'] != '')
56 $Query .= '(SELECT count(*) FROM `'.$Group['TablePrefix'].'` WHERE (User = user.ID) AND (Complete = 1) AND (Language <> 0)) + ';
57$Query .= '0) as NumberTranslate, (';
58foreach($TranslationTree as $Group)
59 if($Group['TablePrefix'] != '')
60 $Query .= 'IFNULL((SELECT sum(Vote) AS Vote FROM `'.$Group['TablePrefix'].'` WHERE (User = user.ID) AND (Complete = 1) AND (Language <> 0)), 0) + ';
61$Query .= '0) / (';
62foreach($TranslationTree as $Group)
63 if($Group['TablePrefix'] != '')
64 $Query .= '(SELECT count(Vote) AS Vote FROM `'.$Group['TablePrefix'].'` WHERE (User = user.ID) AND (Complete = 1) AND (Language <> 0)) + ';
65$Query .= '0) AS Vote FROM `user` ORDER BY '.$order.' '.$desc.' LIMIT '.($_SESSION['Page'] - 1) * $ItemsPerPage.','.$ItemsPerPage;
66$ID = $Database->SQLCommand($Query);
67while($Line = mysql_fetch_array($ID))
68{
69 if(Licence(LICENCE_MODERATOR))
70 $Name = '<a href="user.php?user='.$Line['ID'].'">'.$Line['user'].'</a>';
71 else $Name = $Line['user'];
72
73 echo('<tr><td>'.$Name.'</td>
74 <td style="text-align: center;">'.$Line['NumberTranslate'].'</td>
75 <td style="text-align: center;">'.substr($Line['Vote'], 0, 4).'</td>
76 <td>'.$Moderators[$Line['GM']].'</td>
77 <td>'.$Line['LastLogin'].'</td></tr>');
78}
79echo('</table>');
80WritePages('?Page=', 'user', '', $ItemsPerPage, $_SESSION['Page']);
81
82ShowFooter();
83
84?>
Note: See TracBrowser for help on using the repository browser.