Вход Регистрация
Файл: Space race/admin/classes/functions.php
Строк: 210
<?php



include_once(dirname(dirname(dirname(__FILE__))) . '/classes/generic.class.php');

/* Number of rows per page. */
if ( !empty($_POST['showUsers']) )
    
$_SESSION['starrace']['users_page_limit'] = $_POST['showUsers'];

if ( !empty(
$_POST['showLevels']) )
    
$_SESSION['starrace']['levels_page_limit'] = $_POST['showLevels'];

/* Retrieve a user in table format */
function displayUsers($row) {

    global 
$generic;

    if(empty(
$row)) return false;

    
/* Admin user */
    
$admin in_array(1unserialize($row['user_level']))
             ? 
" <span class='label label-danger'>" _('Админ') . "</span>"
             
'';

    
/* Restricted user */
    
$restrict = !empty($row['restricted'])
                ? 
" <span class='label label-warning'>"._('Забанен')."</span>"
                
'';

    
/* Registered date */
    
$timestamp strtotime($row['timestamp']);
    
$reg_date  date('M d, Y'$timestamp) . ' ' _('-') . ' ' date('h:i a'$timestamp);

    
/* Last login */
    
$params    = array( ':user_id'=> $row['user_id'] );
    
$stmt      $generic->query("SELECT `timestamp` FROM `login_timestamps` WHERE `user_id` = :user_id ORDER BY `timestamp` DESC LIMIT 0,1"$params);
    
$timeRow   $stmt->fetch(PDO::FETCH_NUM);
    
$lastLogin = !empty($timeRow)
                 ? 
date('M d, Y'strtotime($timeRow[0])) . ' ' _('-') . ' ' date('h:i a'strtotime($timeRow[0]))
                 : 
'-';

    
/* Email address */
    
$email $row['email'];

    
/* Output */
    
?>
    <tr>
        <td><a href="users.php?uid=<?php echo $row['user_id']; ?>"><?php echo $generic->get_gravatar($emailtrue20'mm''g', array('style' => '1')); ?> <?php echo $row['username']; ?></a><?php echo $admin $restrict?></td>
        <td><?php echo $row['name']; ?></td>
        <td><?php echo $email?></td>
        <td><?php echo $reg_date?></td>
        <td><?php echo $lastLogin ?></td>
    </tr>
    <?php

}

/* List recently registered users */
function list_registered() {

    
$pagination pagination('login_users','ORDER BY timestamp DESC');
    global 
$generic$sql$query;

    
/** Check that at least one row was returned. */
    
$query $generic->query($sql);
    if(
$query->rowCount() > 0) {

    
/** Display table of recently registered users. */
    
?>
    <table class="table">
        <thead>
            <tr>
                <th>Логин</th>
                <th>Имя</th>
                <th>Email</th>
                <th>Дата регистрации</th>
                <th>Последний раз был</th>
            </tr>
        </thead>
        <tbody>
        <?php
        
while($row $query->fetch(PDO::FETCH_ASSOC))
            echo 
displayUsers($row);
        
?>
        </tbody>
    </table>

    <?php

    
echo $pagination;
    } else { echo 
_('Sorry, there are no recently registered users.'); }

}

/* Find users in the current level */
function in_level() {

    global 
$generic;

    if(!empty(
$_GET['lid'])) :

        
$lid $_GET['lid'];
        
$page = (!empty($_GET['page']) && $_GET['page'] > 0) ? (int) $_GET['page'] : 1;
        
$limit 10;
        
$StartIndex $limit*($page-1);

        
$sql "SELECT * FROM login_users";
        
$stmt $generic->query($sql);

        
$count 0;
        while(
$row $stmt->fetch(PDO::FETCH_ASSOC))
            if( 
array_intersect(array($lid),unserialize($row['user_level'])) ) $count++;

        if (
$count 1) {
            echo 
'<p>'._('No users found!').'</p>';
            return 
false;
        }

        
?>

        <table class="table">
            <thead>
                <tr>
                    <th>Логин</th>
                    <th>Имя</th>
                    <th>Email</th>
                    <th>Дата регистрации</th>
                    <th>Был</th>
                </tr>
            </thead>
            <tbody>

        <?php

        
/* Print out each user of this level */
        
$params = array( ':user_level' => "%:"$lid";%" );
        
$sql "SELECT * FROM login_users WHERE user_level LIKE :user_level ORDER BY timestamp DESC LIMIT $StartIndex,$limit";
        
$stmt $generic->query($sql$params);
        while (
$row $stmt->fetch(PDO::FETCH_ASSOC))
            echo 
displayUsers($row);

        
?>

            </tbody>
        </table>

        <?php

        
echo pagination('login_users','ORDER BY timestamp DESC',"$count");

    endif;

}

function 
user_levels() {

    
$pagination pagination('login_levels');

    global 
$sql$query$generic;

    
/* Check that at least one row was returned */
    
$stmt $generic->query($sql);
    if(
$stmt->rowCount() < 1) return false;

    
/* Manage levels */
    
?><table class='table'>
            <thead>
                <tr>
                    <th>Название</th>
                    <th>Уровень</th>
                    <th>Пользователей</th>
                    <th>Редирект</th>
                </tr>
            </thead>
            <tbody>

            <?php

                
while($row $stmt->fetch(PDO::FETCH_ASSOC)) :

                
/* Count of users in this level */
                
$lid $row['id'];
                
$params = array( ':user_level' => "%:"$lid";%" );
                
$query $generic->query("SELECT COUNT(user_level) as num FROM login_users WHERE user_level LIKE :user_level"$params);
                
$count $query->fetch(PDO::FETCH_ASSOC);
                
$count $count['num'];

                
/* Admin level? */
                
$admin = ($row['level_level'] == 1)
                          ? 
' <span class="label label-danger">*</span>'
                          
'';

                
/* Disabled level? */
                
$status = !empty($row['level_disabled'])
                          ? 
' <span class="label label-warning">'._('Disabled').'</span>'
                          
'';
            
?>

                <tr>
                    <td><a href="levels.php?lid=<?php echo $lid?>"><?php echo $row['level_name']; ?></a><?php echo $status?></td>
                    <td width="15%"><?php echo $row['level_level']; ?></td>
                    <td width="15%"><?php echo $count?></td>
                    <td><a href="<?php echo $row['redirect']; ?>"><?php echo $row['redirect']; ?></a></td>
                </tr>

            <?php endwhile; ?>
            </tbody>
            </table>

    <?php echo $pagination;

}

function 
pagination($table$args '',$total_pages '') {

    global 
$sql$query$generic;

    
/** Hashtags, a workaround for when switching pages and not being redirected to the tab. */
    
$hash  '';

    
/** Desired rows per page. */
    
$limit 10;

    
/* Setting the page limit and hash. */
    
if($table == 'login_levels') :
        
$hash '#level-control';
        if (!empty(
$_SESSION['starrace']['levels_page_limit']))
            
$limit $_SESSION['starrace']['levels_page_limit'];
    endif;

    if(
$table == 'login_users') :
        
$hash '#user-control';
        if (!empty(
$_SESSION['starrace']['users_page_limit']))
            
$limit $_SESSION['starrace']['users_page_limit'];
    endif;

    
/** The page number to retrieve. */
    
$page = (!empty($_GET['page']) && $_GET['page'] > 0) ? (int)$_GET['page'] : 1;

    if (!empty(
$_GET['info'])) {
        if (
$_GET['info'] != $table)
            
$page 1;
    }

    
$StartIndex $limit*($page-1);
    
$stages 3;

    
$sql "SELECT * FROM $table $args LIMIT $StartIndex$limit";
    
$query "SELECT COUNT(*) as num FROM $table $args";

    
$next $page 1$previous = ($page != 0) ? $page $page;

    if (empty(
$total_pages)) :
        
$stmt $generic->query($query);
        
$total_pages $stmt->fetch();
        
$total_pages $total_pages['num'];
    endif;
    
$lastPage ceil($total_pages/$limit);
    
$lastPage1 $lastPage 1;

    
$paginate '';
    if(
$lastPage 0) :

        
$paginate '<div class=""><ul class="pagination">';

        
// Previous.
        
$paginate .= ($page 1) ? '<li class="prev"><a href="?' http_build_query(array_merge($_GET, array('info' => $table"page" => "$previous"))) . $hash '">&larr; '._('Пред').'</a></li>' '<li class="prev disabled"><a href="#">&larr; '._('Пред').'</a></li>';

        if(
$lastPage + ($stages 2)) {
            for (
$counter 1$counter <= $lastPage$counter++)
                
$paginate .= ($counter == $page) ? "<li class='active'><a href='#'>$counter</a></li>" "<li><a href='?" http_build_query(array_merge($_GET, array('info' => $table"page" => "$counter"))) . "$hash'>$counter</a></li>";
        }
        elseif(
$lastPage + ($stages 2)) {

            
/** Hide end pages. */
            
if($page + ($stages 2)) {
                for (
$counter 1$counter + ($stages 2); $counter++)
                    
$paginate .= ($counter == $page) ? "<li class='active'><a href='#'>$counter</a></li>" "<li><a href='?" http_build_query(array_merge($_GET, array('info' => $table"page" => "$counter"))) . "$hash'>$counter</a></li>";

                
$paginate .= "
                            <li><a href='#'>&hellip;</a></li>
                            <li><a href='?" 
http_build_query(array_merge($_GET, array('info' => $table"page" => "$lastPage1"))) . "$hash'>$lastPage1</a></li>
                            <li><a href='?" 
http_build_query(array_merge($_GET, array('info' => $table"page" => "$lastPage"))) . "$hash'>$lastPage</a></li>
                            "
;
            }

            
/** Hide start & end pages. */
            
elseif($lastPage - ($stages 2) > $page && $page > ($stages 2)) {

                
$paginate .= "
                            <li><a href='?" 
http_build_query(array_merge($_GET, array('info' => $table"page" => "1"))) . "$hash'>1</a></li>
                            <li><a href='?" 
http_build_query(array_merge($_GET, array('info' => $table"page" => "2"))) . "$hash'>2</a></li>
                            <li><a href='#'>&hellip;</a></li>
                            "
;

                for (
$counter $page $stages$counter <= $page $stages$counter++)
                    
$paginate .= ($counter == $page) ? "<li class='active'><a href='#'>$counter</a></li>" "<li><a href='?" http_build_query(array_merge($_GET, array('info' => $table"page" => "$counter"))) . "$hash'>$counter</a></li>";

                
$paginate .= "
                            <li><a href='#'>&hellip;</a></li>
                            <li><a href='?" 
http_build_query(array_merge($_GET, array('info' => $table"page" => "$lastPage1"))) . "$hash'>$lastPage1</a></li>
                            <li><a href='?" 
http_build_query(array_merge($_GET, array('info' => $table"page" => "$lastPage1"))) . "$hash'>$lastPage</a></li>
                            "
;
            }

            
/** Hide start pages. */
            
else {

                
$paginate .= "
                            <li><a href='?" 
http_build_query(array_merge($_GET, array('info' => $table"page" => "1"))) . "$hash'>1</a></li>
                            <li><a href='?" 
http_build_query(array_merge($_GET, array('info' => $table"page" => "2"))) . "$hash'>2</a></li>
                            <li><a href='#'>&hellip;</a></li>
                            "
;
                for (
$counter $lastPage - (+ ($stages 2)); $counter <= $lastPage$counter++)
                    
$paginate .= ($counter == $page) ? "<li class='active'><a href='#'>$counter</a></li>" "<li><a href='?" http_build_query(array_merge($_GET, array('info' => $table"page" => "$counter"))) . "$hash'>$counter</a></li>";

            }
        }

        
/** Next button. */
        
$paginate .= ($lastPage != $page) ? '<li class="next"><a href="?' http_build_query(array_merge($_GET, array('info' => $table"page" => "$next"))) . $hash '">'._('След.').' &rarr;</a></li>' '<li class="next disabled"><a href="#">'._('След.').' &rarr;</a></li>';
        
$paginate .= '</ul></div>';

    endif;

    return 
$paginate;

}
Онлайн: 0
Реклама