» » » Бегущая строка с фотками пользователей.

Бегущая строка с фотками пользователей.

Когда-то, давным-давно, я выкладывал простейший скрипт реализации бегущей строки.
Сегодня мы слегка "усложним" :) данный скрипт и пусть в бегущей строке у нас "бегут" сами пользователи с их фотками.
На какой странице "заставить" их бежать, решать вам.

Для этого:
1. в php файле ставим код:

// BEGIN CONSTRUCTING BROWSE QUERY
  $browse_query = "SELECT se_users.user_id, se_users.user_username, se_users.user_fname, se_users.user_lname, se_users.user_photo FROM se_profilevalues LEFT JOIN se_users ON se_profilevalues.profilevalue_user_id=se_users.user_id LEFT JOIN se_levels ON se_levels.level_id=se_users.user_level_id WHERE se_users.user_verified='1' AND se_users.user_enabled='1' AND (se_users.user_search='1' OR se_levels.level_profile_search='0')";

  
  // GET USERS
  $online_users_array = online_users();
  $users = $database->database_query($browse_query);
  while($user_info = $database->database_fetch_assoc($users))
  {
    $browse_user = new se_user();
    $browse_user->user_info['user_id'] = $user_info['user_id'];
    $browse_user->user_info['user_username'] = $user_info['user_username'];
    $browse_user->user_info['user_fname'] = $user_info['user_fname'];
    $browse_user->user_info['user_lname'] = $user_info['user_lname'];
    $browse_user->user_info['user_photo'] = $user_info['user_photo'];
    $browse_user->user_displayname();
    
    if(in_array($browse_user->user_info['user_username'], $online_users_array[2])) { $browse_user->is_online = 1; } else { $browse_user->is_online = 0; }
    
    $user_array[] = $browse_user;
  }



в самом конце этого же php файла добавляем:


$smarty->assign('users', $user_array);
$smarty->assign('total_users', $total_users);
$smarty->assign('user_withphoto', $user_withphoto);



2. В tpl файле ставим в нужное место:

<marquee>
{section name=user_loop loop=$users max=100}
     [url=http://&#039;{$url-]url_create('profile',$users[user_loop]->user_info.user_username)}'>[img]'{$users[user_loop]-[/img]user_photo('./images/nophoto.gif', TRUE)}' class='photo' width='60' height='60' border='0'[/url]
{/section}

&nbsp;&nbsp;&nbsp;...&nbsp;и еще [b]{$total_members}[/b] пользователей!
  </marquee>



Прошу обратить внимание на строку {section name=user_loop loop=$users max=100}
Чем больше значение "max" тем более долгий запрос будет выполняться к базе. 10-20 самое оптимальное.

3. Аналогичным образом делаем для новеньких:


<marquee>
{if !empty($signups)}
      {section name=signups_loop loop=$signups max=40}
        {if !empty($signups[signups_loop])}
[url=http://&#039;{$url-]url_create("profile",$signups[signups_loop]->user_info.user_username)}'>[img]'{$signups[signups_loop]-[/img]user_photo("./images/nophoto.gif", TRUE)}' class='photo' width='60' height='60' border='0' alt='{$signups[signups_loop]->user_displayname|truncate:15:"...":true}' title='{$signups[signups_loop]->user_displayname|truncate:15:"...":true}' />[/url]
        {/if}
      {/section}
    {else}
      {lang_print id=667}
    {/if}
  </marquee>



4. Для последних зарегистрированных на сайте:

<marquee>
{if !empty($logins)}
{section name=login_loop loop=$logins max=20}      
        {if !empty($logins[login_loop])}
      [url=http://&#039;{$url-]url_create("profile",$logins[login_loop]->user_info.user_username)}'>[img]'{$logins[login_loop]-[/img]user_photo("./images/nophoto.gif", TRUE)}' class='photo' width='60' height='60' border='0' alt='{$logins[login_loop]->user_displayname|truncate:15:"...":true}' title='{$logins[login_loop]->user_displayname|truncate:15:"...":true}' />[/url]
        {/if}
      {if (~$smarty.section.login_loop.index & 1) && $smarty.section.login_loop.last}</tr>{/if}
     {/section}
    {else}
      {lang_print id=672}
    {/if}
  </marquee>



Теперь, свою бегущую строку вы можете оформить так, как вам надо (задать направление,цвет фона и т.д. и т.п) ознакомившись со значениями, которые я указал в этой теме...
Удачи!

Обсуждение на форуме...

Другие публикации по теме:

Комментарии