Понедельников НЕТ!
Регистрация или вход Регистрация или вход Избранное на этом сайте | Главная | Анкета | Рекомендовать | Обратная связь | В избранное | Сделать домашней
Скачать SSDForums
Скачать SSDForums 1.0.1 Скачать SSDForums 1.0.1
Скачать SSDForums 1.0.1 SP1 Скачать SSDForums 1.0.1 SP1
Скачать SSDForums 1.0.1 SP2 Скачать SSDForums 1.0.1 SP2
SSD Forums 1.0.1 SP3 only Slaed 3.5 Pro SSD Forums 1.0.1 SP3 only Slaed 3.5 Pro
SSD Forums 1.0.1 SP4-beta only Slaed 4.1 Pro SSD Forums 1.0.1 SP4-beta only Slaed 4.1 Pro
Jewelry Сase Team
Скачать Ruby Chat 0.1.1 Скачать Ruby Chat 0.1.1
Меню
Главная
Форум
Магазин цифровых товаров

Новости
Подписка на новости
Темы новостей
Добавить новость

Каталог файлов
Карта файлового архива
Публикации

Опросы
Анкета пользователя
Чат

BestMaker
Викторина
Архив новостей
Карманный оракул
Поиск по сайту с помощью Яндекс
Поиск по сайту с помощью Google
Фото дня
Для души
Погода на 3 дня
IndexCat
IndexTop
Map_Pages
Поиск по сайту









Подписка на новости
Ваше имя:
Ваш E-Mail:*
Секретный код:
Секретный код
Повторить:*
Интересное в сети

Sape — это система купли-продажи ссылок
с главных и внутренних страниц сайтов
Форум -> Обо всём... -> Пользователь онлаин
Пользователь онлаин
rocksmart Дата: 27.04.2008, в 16:15 | Сообщение №1
rocksmart
Старожил
Пользователь №: 261
Сообщений: 330

Как сделать в модуле Top_user напротив пользователя что бы показывало на сайте он или нет
Код
1
function ShowList() {
    global $prefix, $db, $module_name, $pagenum, $adirectory;
   
    TopUsers();
   list($grp_num) = $db->sql_fetchrow($db->sql_query("SELECT Count(id) FROM ".$prefix."_groups"));
   if ($grp_num == 0) {
      OpenTable();
      echo "<center><font class=\"option\"><b>"._TU_NOGROUPS."</b></font></center>";
      CloseTable();
   } else {
      $pagenum = intval($_GET['pagenum']) ? $_GET['pagenum'] : "1";
      $storynum = 50;
      $offset = ($pagenum-1) * $storynum;
      if ($pagenum) { $count = $offset+1; } else { $count = 1; }
      $offset = intval($offset);
      $storynum = intval($storynum);
      $result = $db->sql_query("SELECT user_name, user_website, user_avatar, user_regdate, user_from, user_points FROM ".$prefix."_users ORDER BY user_points DESC LIMIT $offset, $storynum");
      OpenTable();
      echo "<center><font class=\"option\">"._TU_TOPLIST."</font></center><br>"
      ."<script language=\"JavaScript\" type=\"text/javascript\" src=\"javascripts/SortTable.js\"></script>"
      ."<script language=\"JavaScript\" type=\"text/javascript\" src=\"javascripts/ShowPic.js\"></script>"
      ."<table width=\"100%\" border=\"0\" cellpadding=\"2\" cellspacing=\"1\" class=\"sort\" id=\"sort_id\"><tr>"
      ."<th>"._RANK."</th><th>"._TU_LOGIN."</th><th>"._TU_REG."</th><th>"._TU_WEBSITE."</th>"
      ."<th>"._TU_LOCALITYLANG."</th><th>"._TU_POINTS."</th><th>Online</th></tr>";
      while (list($pseudo, $website, $avatar, $regdate, $country, $score) = $db->sql_fetchrow($result)) {
         $avatar = ($avatar && file_exists("".$adirectory."/".$avatar."")) ? "".$adirectory."/".$avatar."" : "".$adirectory."/00.gif";
         echo "<tr class=\"bgcolor1\"><td height=\"20\" align=\"center\">$count</td>"
         ."<td height=\"20\" OnMouseOver=\"PicDivShow('".$avatar."');\" OnMouseOut=\"PicDivHide();\"><a href=\"index.php?name=Account&op=info&uname=$pseudo\" title=\""._TU_VIEWPROFIL."\">$pseudo</a></td>";
         preg_match("/([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})/", $regdate, $datetime);
         $user_regdate = "".$datetime[3].".".$datetime[2].".".$datetime[1]."";   
         echo "<td height=\"20\" align=\"center\">".$user_regdate."</td>"
         ."<td height=\"20\" align=\"center\">";
         if ($website == "") {
            echo "</td>";
         } else {
            echo "<a href=\"$website\" target=\"_blank\" title=\""._TU_VISITSITE."\"><img src=\"images/blocks/Home.gif\" border=\"0\" alt=\""._TU_VISITSITE."\"></a></td>";
         }
         echo "<td height=\"20\">".cutstr($country, 40)."</td>"
         ."<td height=\"20\" align=\"center\">$score</td>";
         $count++;
      if($f_user !=""){
if($uname!=""){echo"<td height=\"20\">на сайте</td>";}else{echo"<td height=\"20\"></td>";}
}
}      
echo "</tr></table>";
      CloseTable();
      list($numstories) = $db->sql_fetchrow($db->sql_query("SELECT Count(user_id) FROM ".$prefix."_users"));
      $numpages = ceil($numstories / $storynum);
      num_page($module_name, $numstories, $numpages, $storynum, "op=ShowList&");
   }
   foot();
}


_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Отредактированно rocksmart 27.04.2008 г. в 16:16:15
Sunvas Дата: 27.04.2008, в 16:22 | Сообщение №2
Sunvas
Профи
Пользователь №: 181
Сообщений: 552

Это вопрос или мод/хак?
rocksmart Дата: 27.04.2008, в 16:34 | Сообщение №3
rocksmart
Старожил
Пользователь №: 261
Сообщений: 330

надо сделать не могу сообразить
Код
1
$result = $db->sql_query("SELECT uname, guest, module, UNIX_TIMESTAMP(now())-time AS time FROM ".$prefix."_session ORDER BY uname");
while (list($uname, $guest, $module, $time) = $db->sql_fetchrow($result)) {

if($uname==$pseudo){$n="на сайте";}
elseif ($uname==0){$n="нет";}

}
echo "<td height=\"20\">$n</td>";


_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Отредактированно rocksmart 27.04.2008 г. в 16:35:20
Serg_pnz Дата: 27.04.2008, в 19:37 | Сообщение №4
Serg_pnz
Администратор
Пользователь №: 1
Сообщений: 2242

rocksmart, просто проверяй есть ли в таблице сессий запись про юзера. если есть, значит на сайте. (посмотри как в SSDF сделана проверка кто читает тему, а тебе надо просто наличие присутствия юзера в таблице)

Не все кальсоны с оторванными пуговицами - брюки. © Serg_pnz
"...даме водки? Это чистый спирт!" © кот Бегемот
rocksmart Дата: 28.04.2008, в 08:36 | Сообщение №5
rocksmart
Старожил
Пользователь №: 261
Сообщений: 330

Serg_pnz, где можно почитать как запросы делать к базе, а то любое написание новой функции упираеться в базу(в этом я ни черта не понимаю)
Вот твой запрос на форуме
Код
1
$result3 = $db->sql_query("SELECT t1.uname, t1.guest, t1.url, t2.user_id, t2.user_name, t3.user_moder FROM ".$prefix."_session AS t1, ".$prefix."_users AS t2, ".$prefix."_forums_users AS t3 WHERE t1.uname = t2.user_name AND t2.user_id = t3.user_id AND t1.url Like '/index.php?name=$module_name&op=showtopic&id=$tid%' AND t1.guest !=1");
if ($db->sql_numrows($result3) > 0) {
   echo "<tr><td class=\"bgcolor1\" colspan=\"2\">"._TREAD.": ";
   $data = $db->sql_fetchrowset($result3);
   for($i = 0, $c = $db->sql_numrows($result3); $i < $c; $i++) {
      if ($data[$i]['guest'] == 2 && $data[$i]['user_moder'] == 2) {
         $utitle = _AUTHOR;
         $spanstyle = "style=\"color: red;\"";
      } elseif ($data[$i]['guest'] == 0) {
         $utitle = _USER;   
         $spanstyle = "";      
      }
      echo "<a href=\"index.php?name=Account&op=".check_uinf()."=".$data[$i][0]."\"><span ".$spanstyle." title=\"".$utitle."\">".$data[$i][0]."</span></a>";
      if(($i+1) != $c) {
         echo ", ";
      }
rocksmart Дата: 28.04.2008, в 12:35 | Сообщение №6
rocksmart
Старожил
Пользователь №: 261
Сообщений: 330

Serg_pnz, вот написал из твоего кода теперь показывает только почему то показывает что все не в онлаине
Код
1
$result = $db->sql_query("SELECT  t1.user_name, t1.user_website, t1.user_avatar, t1.user_regdate, t1.user_from, t1.user_points, t2.uname FROM ".$prefix."_session AS t2 , ".$prefix."_users AS t1  ORDER BY t1.user_points=user_points DESC LIMIT $offset, $storynum");
      OpenTable();
      echo "<center><font class=\"option\">"._TU_TOPLIST."</font></center><br>"
      ."<script language=\"JavaScript\" type=\"text/javascript\" src=\"javascripts/SortTable.js\"></script>"
      ."<script language=\"JavaScript\" type=\"text/javascript\" src=\"javascripts/ShowPic.js\"></script>"
      ."<table width=\"100%\" border=\"0\" cellpadding=\"2\" cellspacing=\"1\" class=\"sort\" id=\"sort_id\"><tr>"
      ."<th>"._RANK."</th><th>"._TU_LOGIN."</th><th>"._TU_REG."</th><th>"._TU_WEBSITE."</th>"
      ."<th>"._TU_LOCALITYLANG."</th><th>"._TU_POINTS."</th><th>Online</th></tr>";
      while (list($pseudo, $website, $avatar, $regdate, $country, $score,$name) = $db->sql_fetchrow($result)) {
      $avatar = ($avatar && file_exists("".$adirectory."/".$avatar."")) ? "".$adirectory."/".$avatar."" : "".$adirectory."/00.gif";
         echo "<tr class=\"bgcolor1\"><td height=\"20\" align=\"center\">$count</td>"
         ."<td height=\"20\" OnMouseOver=\"PicDivShow('".$avatar."');\" OnMouseOut=\"PicDivHide();\"><a href=\"index.php?name=Account&op=info&uname=$pseudo\" title=\""._TU_VIEWPROFIL."\">$pseudo</a></td>";
         preg_match("/([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})/", $regdate, $datetime);
         $user_regdate = "".$datetime[3].".".$datetime[2].".".$datetime[1]."";   
         echo "<td height=\"20\" align=\"center\">".$user_regdate."</td>"
         ."<td height=\"20\" align=\"center\">";
         if ($website == "") {
            echo "</td>";
         } else {
            echo "<a href=\"$website\" target=\"_blank\" title=\""._TU_VISITSITE."\"><img src=\"images/blocks/Home.gif\" border=\"0\" alt=\""._TU_VISITSITE."\"></a></td>";
         }
         if($pseudo==$name){$n="онлайн";}elseif($name== 0){$n="offline";}
      echo "<td height=\"20\">".cutstr($country, 40)."</td>"
      ."<td height=\"20\" align=\"center\">$score</td>"
         ."<td height=\"20\">$n</td>";
         $count++;
      
      }


_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Отредактированно rocksmart 28.04.2008 г. в 12:50:02


Прикрепленные файлы:
148.75 KB
rocksmart Дата: 28.04.2008, в 14:29 | Сообщение №7
rocksmart
Старожил
Пользователь №: 261
Сообщений: 330

Меня забыли - дайте совет
Serg_pnz Дата: 28.04.2008, в 15:17 | Сообщение №8
Serg_pnz
Администратор
Пользователь №: 1
Сообщений: 2242

rocksmart, всё, что ты написал - в топку. Неоптимально. /*это моё "имхо"*/

Короче перед выводом списка пользователей делаем массив
Код
1
$result = $db->sql_query("SELECT uname FROM ".$prefix."_session WHERE guest=1");
while(list($uname) = $db->sql_fetchrow($result)) {
   $mass1[$uname] = 1;
}


теперь, если $mass1[имя_при_построении_списка]==1, то юзер на сайте

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Отредактированно Serg_pnz 28.04.2008 г. в 15:19:00

Не все кальсоны с оторванными пуговицами - брюки. © Serg_pnz
"...даме водки? Это чистый спирт!" © кот Бегемот
rocksmart Дата: 28.04.2008, в 17:07 | Сообщение №9
rocksmart
Старожил
Пользователь №: 261
Сообщений: 330

Да что то не выводит(да и хрен с ним)Тупо весь день потерял.
Я решил сделать при просмотре профиля в модуле Account чтобы выводило онлаин и вставил после этого
Код
1
echo "</td></tr><tr><td>"._INTERESTS.":</td><td>";
         if ($userinfo['user_interests'] != "") {
            echo "".$userinfo['user_interests']."";
         } else {
            echo "<i>"._NO_INFO."</i>";
         }
         echo "</td></tr><tr><td>"._SIGNATURE.":</td><td>";
         if (bb_decode($userinfo['user_sig']) != "") {
            echo "".bb_decode($userinfo['user_sig'])."";
         } else {
            echo "<i>"._NO_INFO."</i>";
         }


вот это
Код
1
$result = $db->sql_query("SELECT uname, guest, module, UNIX_TIMESTAMP(now())-time AS time FROM ".$prefix."_session ORDER BY uname");
while (list($uname, $guest, $module, $time) = $db->sql_fetchrow($result)) {
if ($uname == "".$user_name."") {
echo "<font class=\"option\">Online</font>";
} else {echo "";}}

Вроде показывает нормально.
По идее есть ведь блок ,но я стараюсь много блоков не выводить на страницу. Долго грузиться

Прикрепленные файлы:
150.43 KB

Вы не можете ответить в тему анонимно, пожалуйста, войдите или зарегистрируйтесь!


Реклама
Главная | Форум | Новости | Подписка на новости | Темы новостей | Добавить новость | Каталог файлов | Карта файлового архива | Публикации | Опросы | Анкета пользователя | Чат | BestMaker | Викторина | Архив новостей | Карманный оракул | Поиск по сайту с помощью Яндекс | Поиск по сайту с помощью Google | Фото дня | Для души | Погода на 3 дня | IndexCat | IndexTop | Map_Pages | Весь Оракул

Rambler's Top100

Генерация страницы: 0.352 сек. и 17 запросов к базе данных за 0.022 сек.
Web site engine code is Copyright © 2006 by SLAED CMS. All rights reserved.