Что изменить в снипете что бы считались только зарегестрирвоанные пользователи

Главные вкладки

Аватар пользователя iNFerNo iNFerNo 16 декабря 2010 в 11:18
<?php
    $new_user_days = 7; // Количество дней с момента регистрации, которые пользователь считается новичком
    $max_users = 1000; // Максимальное количество отображаемых пользователей
    $profile_birthday = 'profile_birthday'; // поле профиля отвечающего за дату рождения

    $output = '';

          // Count users active within the defined period.
          $interval = time() - variable_get('user_block_seconds_online', 900);

          // Perform database queries to gather online user lists.  We use s.timestamp
          // rather than u.access because it is much faster.
          $anonymous_count = sess_count($interval);
          $authenticated_users = db_query('
SELECT
      u.uid,
      u.name,
      u.access
    FROM
      {users} u
    WHERE
      u.uid <> 0
    AND
      u.uid <> 1
    AND
      u.access > %d
    AND
      u.status = 1
    ORDER BY u.access DESC'
,
    (time() - 900)
  );

          $authenticated_count = 0;
          $max_users = variable_get('user_block_max_list_count', 10);
          $items = array();
          while ($account = db_fetch_object($authenticated_users)) {
            if ($max_users > 0) {
              $items[] = $account;
              $max_users--;
            }
            $authenticated_count++;
          }

          // Format the output with proper grammar.
          if ($anonymous_count == 1 && $authenticated_count == 1) {
            $output = t('There is currently %members and %visitors online.',
            array('%members' => format_plural($authenticated_count, '1 user', 'count users'),
            '%visitors' => format_plural($anonymous_count, '1 guest', 'count guests')));
          }
          else {
            $output = t('There are currently %members and %visitors online.', array('%members' => format_plural($authenticated_count, '1 user', 'count users'), '%visitors' => format_plural($anonymous_count, '1 guest', 'count guests')));
          }

          // Display a list of currently online users.

          $max_users = variable_get('user_block_max_list_count', 10);
          if ($authenticated_count && $max_users)
 {
            $output .= theme('user_list', $items, t('Online users'));
          }

    // Список новичков
    $output .= '<div id="my_block_users_new">'."\n";
    $new_user_result = db_query('SELECT u.uid, u.name, u.created FROM {users} u WHERE u.status != 0 AND u.access != 0 AND u.uid != 1 AND u.created >= '.mktime(0, 0, 0, date('m'), date('d') - $new_user_days, date('Y')).' ORDER BY u.created DESC');
    $mu = $max_users;
    if ($mu-- && $account = db_fetch_object($new_user_result)) {
        //if (db_result($new_user_result) > 1) {
        if (mysqli_num_rows($new_user_result) > 1) {
            $output .= 'Приветствуем новых пользователей: <br/>';
        } else {
           $output .= 'Приветствуем нового пользователя: ';
        }
        $output .= theme('username', $account);
        while ($mu-- && $account = db_fetch_object($new_user_result)) {
            $output .= ', '.theme('username', $account);
        }
        $output .= '.';
    }
    if ($new_user->uid && $new_user) {
    }
    $output .= '</div>'."\n";

    // Максимальное нашествие online пользователей
    $output .= '<div id="my_block_users_maximum">'."\n";
    $umax = variable_get('user_online_max', array('count' => 0, 'date' => '0'));
    if ($umax['count'] == 0 || $umax['count'] <= ($authenticated_count + $anonymous_count)) {
        $umax['count'] = $authenticated_count + $anonymous_count;
        $umax['date'] = time();
        variable_set('user_online_max', $umax);
    }
    $output .= 'Рекорд одновременного пребывания <strong>'.$umax['count'].'</strong>, это было <span class="date">'.format_date($umax['date'], 'custom', 'd.m.Y в H:i', NULL).'</span>.';
    $output .= '</div>'."\n";

    // Список пользователей, празднующих сегодня день рождения
    $output .= '<div id="my_block_users_birthday">'."\n";
    $the_month = date('n');
    $the_day = date('d');
    $currentdayline = 'a:3:{s:3:"day";s:'.($the_day > 9 ? 2 : 1).':"'.$the_day.'";s:5:"month";s:'.($the_month > 9 ? 2 : 1).':"'.$the_month.'"';
    $ifbirthday_users = db_query_range('SELECT DISTINCT pv.uid FROM {profile_values} pv INNER JOIN {profile_fields} pf ON pv.fid = pf.fid WHERE pf.name = "'.$profile_birthday.'" AND pv.value LIKE "%s%%"', $currentdayline,0,1);
    $birthday_users = db_query('SELECT DISTINCT u.uid, u.name FROM {users} u INNER JOIN {profile_values} pv ON u.uid = pv.uid INNER JOIN {profile_fields} pf ON pv.fid = pf.fid WHERE pf.name = "'.$profile_birthday.'" AND pv.value LIKE "%s%%" ORDER BY u.uid DESC', $currentdayline);
    $birthday_count = db_result($ifbirthday_users);
    if ($birthday_count) {
        $output .= 'Поздравляем с Днём рождения: ';
        $mu = $max_users;
        if ($mu-- && $account = db_fetch_object($birthday_users)) {
         $output .= ''.theme('username', $account);
          while ($mu-- && $account = db_fetch_object($birthday_users)) {
              $output .= ', '.theme('username', $account);
          }
            $output .= '.';
       }
    }
    $output .= '</div>'."\n";

    // Вывод блока
    print $output;
?>

<br/>

Подскажите что подредактировать что бы выводилось

вместо (например):

Сейчас на сайте 1 пользователь и 6 гостей.
Пользователи на сайте

    * iNFerNo

Приветствуем новых пользователей:
Дмитриев Сергей, Dramma, skitels, Seiver, Валентина, mad, Natalia102, Tod, corballis771, nemka, Gorshnev.
Рекорд одновременного пребывания 187, это было 24.11.2010 в 14:22.

это

Сейчас на сайте 1 пользователь

Пользователи на сайте

    * iNFerNo

Приветствуем новых пользователей:
Дмитриев Сергей, Dramma, skitels, Seiver, Валентина, mad, Natalia102, Tod, corballis771, nemka, Gorshnev.

Рекорд одновременного пребывания ПОЛЬЗОВАТЕЛЕЙ 187, это было 24.11.2010 в 14:22.

Комментарии

Аватар пользователя iNFerNo iNFerNo 16 декабря 2010 в 11:20

Видимо так надо

// Максимальное нашествие online пользователей
    $output .= '<div id="my_block_users_maximum">'."\n";
    $umax = variable_get('user_online_max', array('count' => 0, 'date' => '0'));
    if ($umax['count'] == 0 || $umax['count'] <= ($authenticated_count)) {
        $umax['count'] = $authenticated_count;
        $umax['date'] = time();
        variable_set('user_online_max', $umax);
    }
    $output .= 'Рекорд одновременного пребывания <strong>'.$umax['count'].'</strong>, это было <span class="date">'.format_date($umax['date'], 'custom', 'd.m.Y в H:i', NULL).'</span>.';
    $output .= '</div>'."\n";
Аватар пользователя iNFerNo iNFerNo 16 декабря 2010 в 11:24

Что-то не работает... видимо в переменной .$umax сидит значение какое то...

а как в таком случае разделить

Одновременный рекорд

Пользователей - Столько-то
Гостей - Столько-то