Zombi Опубликовано 6 Июля 2003 Жалоба Поделиться Опубликовано 6 Июля 2003 Всем привет.У кого есть этот хак Who Was Online? Или может кто знает где можно его найти?Помогите плиз Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
theIggs Опубликовано 6 Июля 2003 Жалоба Поделиться Опубликовано 6 Июля 2003 http://www.nvkz.net/thrashmp3/hack/OnlineToday.zipЭто полный. Краткий - на forum.ru-board.com в соответствующей теме. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Matrix Опубликовано 6 Июля 2003 Жалоба Поделиться Опубликовано 6 Июля 2003 не... этот не ставь - замучаешься /* *-------------------------------------------- * "Who Was Online Mod" * for Invision Power Board v 1.1 (rewritten) * *-------------------------------------------- */ /* *-------------------------------------------- * 1. Откройте: * sources/Admin/ad_settings.php *-------------------------------------------- */ // Найдите: ,'show_birthdays', // ЗАМЕНИТЕ на: ,'show_birthdays','show_wwo', // Найдите: $ADMIN->html .= $SKIN->add_td_row( array( "<b>Show Birthdays?</b>" , $SKIN->form_yes_no( "show_birthdays", $INFO['show_birthdays'] ) ) ); // Add above: $ADMIN->html .= $SKIN->add_td_row( array( "<b>Показывать, кто был на форуме сегодня?</b>" , $SKIN->form_yes_no( "show_wwo", $INFO['show_wwo'] ) ) ); /* *-------------------------------------------- * 2. Откройте * sources/Boards.php *-------------------------------------------- */ // Найдите: $stats_html .= $this->html->ActiveUsers($active, $ibforums->vars['au_cutoff']); // Ниже добавляем: //-- wwo begin if ($ibforums->vars['show_wwo']) { // timestamp von heute null uhr ermitteln $today = date("m,d,Y"); $todayStamp = mktime(0,0,0,$today); // zwei variablen, usernamen und anzahl werden wir nutzen $todayActive = ""; $todayActiveCounter = 0; $DB->query("SELECT m.id, m.name, g.suffix, g.prefix FROM ibf_members m LEFT JOIN ibf_groups g ON (g.g_id=m.mgroup) WHERE last_activity >= '$todayStamp' ORDER BY m.name"); while ($result = $DB->fetch_row() ){ $todayActive .= "<span class='highlight'>></span><a href='{$ibforums->vars['board_url']}/index.{$ibforums->vars['php_ext']}?s={$ibforums->session_id}&act=Profile&MID={$result['id']}'>{$result['prefix']}{$result['name']}{$result['suffix']}</a> "; $todayActiveCounter++; } if($todayActiveCounter==0){ $todayActiveText = "</i>За сегодня не было но идного зарегистрированного пользователя</i>"; } if($todayActiveCounter==1){ $todayActiveText = "<i><b>1</b> пользователь был сегодня на форуме</i>"; } if($todayActiveCounter > 1){ $todayActiveText = "</i><b>".$todayActiveCounter."</b> пользователей было сегодня на форуме</i>"; } $stats_html .= $this->html->whoWasOnline($todayActiveText, $todayActive); } //-- wwo end /* *-------------------------------------------- * 3. Откройте * skin/s*/skin_boards.php * (если у вас несколько скинов, то проведите такую же операцию с каждым из них) *-------------------------------------------- */ function whoWasOnline($todayActiveText, $todayActive) { global $ibforums; return <<<EOF <tr> <td class='category' colspan='2'>Посетители сегодня:</td> </tr> <tr> <td width="5%" class='forum1'><{F_ACTIVE}></td> <td class='forum2' width='95%'>$todayActiveText<br>$todayActive</td> </tr> EOF; } /* *-------------------------------------------- * 4. Зайдите в админцентр: * Skins & Templates >> Manage HTML Templates >> Template Tools >> выберете нужный скин и нажмите "Run tool" * *-------------------------------------------- */ /* *-------------------------------------------- * 5. Настройка: * Активируйте модификацию в админцентре * Board Settings >> CPU Saving >> Показывать, кто был на форуме сегодня?. *-------------------------------------------- */ Готово Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
B.X Опубликовано 8 Июля 2003 Жалоба Поделиться Опубликовано 8 Июля 2003 Как сделать, чтобы он гостей показывал тоже? А еще лучше, не за день, а за несколько и еще лучше, чтобы все это куда-нибудь записывалось. У меня что-то подобное есть, но это не так совершенно. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
theIggs Опубликовано 8 Июля 2003 Жалоба Поделиться Опубликовано 8 Июля 2003 B.X А еще лучше, не за день, а за несколько и еще лучше, чтобы все это куда-нибудь записывалось.Ты оригинал ставил или урезанную версию? Оригинал логи ведёт, вроде.А гостей как, по IP что ль вылавливать? В любом случае, это будет несовершенно, т.к. могут ходить с одного IP или с одного прокси... и вообще, зачем это?.. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
B.X Опубликовано 8 Июля 2003 Жалоба Поделиться Опубликовано 8 Июля 2003 Просто хочу статистику смотреть. Но точную. Кто, откуда и куда. А вообще у меня не этот хак. Пойди по ссылке посмотри, что он делает. Он записывает все в лог, а я потом вывожу ее оттуда. Да по IP гостей. Гости голосовать могут по IP, значит и в статистике могут быть тоже по IP. У меня IBF Logger, а код мне подсказали на этом сайте.// IBF Logger 1.1 (from ibresource.ru) // Open index.php // Find: //----------------------------------------------- // NO USER EDITABLE SECTIONS BELOW //----------------------------------------------- error_reporting (E_ERROR | E_WARNING | E_PARSE); set_magic_quotes_runtime(0); // Add below: $logfile = "/home/your path/html/log/log.txt"; // Change this to the full/reletive path of the text file you wish to log to // Get the Variables $user_date = date("j.m.Y - H:i"); $user_ip = $_SERVER['REMOTE_ADDR']; $user_pg = $_SERVER['PHP_SELF']; $user_ref = $_SERVER['HTTP_REFERER']; $user_agent = $_SERVER['HTTP_USER_AGENT']; $maxwidth = "640"; $space_a = "<tr><td class=row1>"; $space = "</td><td class=row1>"; $space_div = "</td><td class=row1><DIV style='width: 301; overflow-x: auto; overflow-y: visible;'>"; $space_divend = "</div></td><td class=row1>"; $space_ip = "Guest [<a href={$ibforums->vars['board_url']}/forum/index.php?s=&act=modcp&CODE=ip&incoming="; // if your board only www.you_site.com delete forum $space_href = ">"; $space_hren = "</a>] "; $space_signa = "<span class=signature>"; $space_ah = "[<a href="; $space_center = "<center>"; $space_d = "</td></tr>"; // Put them together $access_log = $space_a.$space_ip.$user_ip.$space_href.$user_ip.$space_hren.$space_signa.$user_agent.$space_div.$space_ah.$user_ref.$space_href.$user_ref.$space_hren.$space_divend.$space_center.$user_date.$space.$user_pg.$space_d; // Write to file $fh = fopen($logfile, "a"); fwrite ($fh, "$access_log\n"); fclose ($fh); // Upload... // Open Skin/s*/skin_online.php // Find: function Page_end($links) { global $ibforums; return <<<EOF <!-- End content Table --> // Add below (if on includes mod): <% INCLUDE "{$ibforums->vars['board_url']}/html/log/log.txt" %> // // Is necessary Includes mod by WhiningHal /// /// Find file sources/functions.php /// at the beginning after <?php and copyright insert these lines (between ///) /// function include_hack_handler($buf) { global $include_temp_str; $include_temp_str.=$buf; return ""; } /// /// In sources/functions.php find this line: $text = preg_replace( "/(<|<)% (BOARD HEADER|CSS|JAVASCRIPT|TITLE|BOARD|STATS|GENERATOR|COPYRIGHT|NAVIGATION) %(>|>)/i", "<% \\2 %>", $text ); /// Replace it with $text = preg_replace( "/(<|<)% (BOARD HEADER|CSS|JAVASCRIPT|TITLE|BOARD|STATS|GENERATOR|COPYRIGHT|NAVIGATION|INCLUDE \"\\S*?\") %(>|>)/i", "<% \\2 %>", $text ); /// /// ///In file sources/functions.php find function do_output($output_array) { global $DB, $Debug, $skin_universal, $ibforums; /// replace with function do_output($output_array) { global $DB, $Debug, $skin_universal, $ibforums, $include_temp_str; /// /// ///In file sources/functions.php after $ibforums->skin['template'] = str_replace( "<% NAVIGATION %>" , $nav , $ibforums->skin['template']); /// insert this // // Include tag hack // $incmatches=array(); while (preg_match("\x3C\% INCLUDE \"(\S*?)\" \%\x3E",$ibforums->skin['template'],$incmatches)>0) { $include_temp_str=""; ob_start('include_hack_handler'); include($incmatches[1]); ob_end_flush(); $ibforums->skin['template'] = str_replace("<".$incmatches[0].">",$include_temp_str,$ibforums->skin['template']); $incmatches=array(); } /// Now you can use this directive in board wrapper: <% INCLUDE "http://www.yourdomain.com/test.html" %> You can include any valid PHP or HTML file this way. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
StasM Опубликовано 10 Июля 2003 Жалоба Поделиться Опубликовано 10 Июля 2003 а это для 1.2 подойдет? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Matrix Опубликовано 10 Июля 2003 Жалоба Поделиться Опубликовано 10 Июля 2003 нет Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
B.X Опубликовано 9 Августа 2003 Жалоба Поделиться Опубликовано 9 Августа 2003 Этот IBF Logger? Почему не подойдет? Должен. Там же чистый пхп.Единственное, что может не работать так это хак include. Но логи можно смотреть и без него. Так вот. А вопрос мой всё тот же. Я поставил себе "CPU Saving --> Cut off for active user display in minutes -->784" То есть 784 минуты. Но он гад всё равно не больше часа показывает. Где это изменить, никто не подскажет?Надо, чтобы показывал без ограничений (сколько указал, столько и показывает). Подозреваю, что где-то в Online.phpНо я там всё облазил ничего похожего нет. Кто знает? Подскажите, пожалуйста, если не трудно... Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
theIggs Опубликовано 9 Августа 2003 Жалоба Поделиться Опубликовано 9 Августа 2003 Насколько я понимаю, это в functions.php, там где DELETE FROM ibf_sessions WHERE running_time бла-бла-бла. Сессии вроде один час хранятся, а "Кто в онлайн" берёт данные именно из ibf_sessions. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
B.X Опубликовано 9 Августа 2003 Жалоба Поделиться Опубликовано 9 Августа 2003 Да. Нашёл. Спасибо.А что означает цифра 3600 там?INFO['session_expiration'] = $INFO['session_expiration'] ? (time() - $INFO['session_expiration']) : (time() - 3600); $DB->query( "DELETE FROM ibf_sessions WHERE running_time < {$INFO['session_expiration']} or ip_address='".$this->ip_address."'".$extra); И на что её поменять, чтобы было 1 неделя, скажем...На 3600000? Или там какие-то правила написания этих цифр есть? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
theIggs Опубликовано 9 Августа 2003 Жалоба Поделиться Опубликовано 9 Августа 2003 B.X Это секунды. 3600 - через один час сессии удаляются. Чтоб была неделя - 7*24*3600. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
B.X Опубликовано 9 Августа 2003 Жалоба Поделиться Опубликовано 9 Августа 2003 Спасибо. Вот только там, в functions.php есть два отрезка,где упоминается ibf-sessions. В двух и менять? //--------------------------------- // Remove the defunct sessions //--------------------------------- $INFO['session_expiration'] = $INFO['session_expiration'] ? (time() - $INFO['session_expiration']) : (time() - 3600); $DB->query( "DELETE FROM ibf_sessions WHERE running_time < {$INFO['session_expiration']} or member_id='".$this->member['id']."'"); $this->session_id = md5( uniqid(microtime()) ); И второй: // Remove the defunct sessions //--------------------------------- if ( ($this->session_dead_id != 0) and ( ! empty($this->session_dead_id) ) ) { $extra = " or id='".$this->session_dead_id."'"; } else { $extra = ""; } $INFO['session_expiration'] = $INFO['session_expiration'] ? (time() - $INFO['session_expiration']) : (time() - 3600); $DB->query( "DELETE FROM ibf_sessions WHERE running_time < {$INFO['session_expiration']} or ip_address='".$this->ip_address."'".$extra); $this->session_id = md5( uniqid(microtime()) ); И вот подозрительный код какой-то: // Insert the new session //--------------------------------- $DB->query("INSERT INTO ibf_sessions (id, member_name, member_id, ip_address, browser, running_time, location, login_type, member_group) ". "VALUES ('".$this->session_id."', '".$this->member['name']."', '".$this->member['id']."', '".$this->ip_address."', '".$this->user_agent."', '".$this->time_now."', ". "',,', '".$ibforums->input['Privacy']."', ".$this->member['mgroup'].")"); // If this is a member, update their last visit times, etc. if (time() - $this->member['last_activity'] > 300)он случайно мешать не будет? Своими обновлениями? Добавлено:Поменял в обоих. Не работает. Прямо жаль. В базе ничего менять не надо? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Наташенька610 Опубликовано 15 Августа 2004 Жалоба Поделиться Опубликовано 15 Августа 2004 приветик а этот полный хак подойдет под версию final 1.3? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Fastserg Опубликовано 15 Августа 2004 Жалоба Поделиться Опубликовано 15 Августа 2004 Наташенька610 Не подойдет. Называется мод Who Was OnlineКто был в онлайне за целый день!Who Was Online Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Наташенька610 Опубликовано 17 Августа 2004 Жалоба Поделиться Опубликовано 17 Августа 2004 Fastserg спасибо Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.