| 
				
					| Икар | Отправлено: 13 декабря 2010 — 15:55   |  
					| 
  
 
  Newbie
 
  
 Покинул форум
 Сообщений всего: 31
 Дата рег-ции: Дек. 2010
 Репутация: 4
 
 
 
 
  
 | Установка: 
 1) Добавляем новый класс (и присваиваем этому классу заданный цвет, которым будут отображаться Боты - у меня желтый) в /templates/имя_стиля/style.css. Что следует добавить и в какое место - выделено полужирным шрифтом.
 
 style.css (Отобразить).admin, a:link.admin, a:visited.admin, a:active.admin, a:hover.admin {color: red;
 }
 .supmoder, a:link.supmoder, a:visited.supmoder, a:active.supmoder, a:hover.supmoder {
 color: blue;
 }
 .moder, a:link.moder, a:visited.moder, a:active.moder, a:hover.moder {
 color: green;
 }
 .robot, a:link.moder, a:visited.moder, a:active.moder, a:hover.moder {
 color: yellow;
 }
 
 2) language/russian/lang_front_all.php
 В нем находим, расшифроки Пользователей форума и добавляем новую расшифровку Бот (Что следует добавить и в какое место - выделено полужирным шрифтом.):
 
 Цитата:$this->LANG['Admin']			= 'Администратор';$this->LANG['Moderator']			= 'Модератор';
 $this->LANG['SuperModer']			= 'Супермодератор';
 $this->LANG['User'] 				= 'Пользователь';
 $this->LANG['Robot']				= 'Бот';
 
 в этом же файле находим расшифровки:
 
 
 CODE:$this->LANG['OnlineDataVSHide']		= ...$this->LANG['OnlineData']			= ...
 $this->LANG['TodayVisit']			= ...
 
 ремим их и вставляем за ними (для привода к стандартному виду отображения, читаем "удаляем их и вставляем..." Удаляем строки - начинающиеся у меня в примере с //):
 
 
 Цитата://$this->LANG['OnlineDataVSHide']	= 'За последние %d минут форум посетило: %d (гостей: %d, зарегистрированных: %d, скрытых: %d)';//$this->LANG['OnlineData']			= 'За последние %d минут форум посетило: %d (зарегистрированных: %d, гостей: %d)';
 //$this->LANG['TodayVisit']			= 'Сегодня форум посетили: %d (гостей: %d, зарегистрированных: %d%s)%s';
 $this->LANG['OnlineDataVSHide']		= 'За последние %d минут форум посетило: %d (ботов:%d, гостей: %d, зарегистрированных: %d, скрытых: %d)';
 $this->LANG['OnlineData']			= 'За последние %d минут форум посетило: %d (зарегистрированных: %d, гостей: %d, ботов:%d)';
 $this->LANG['TodayVisit']			= 'Сегодня форум посетили: %d (ботов: %d, гостей: %d, зарегистрированных: %d%s)%s';
 
 3) Только (для стиля Invision2), - в других стилях ЭТОТ ПУНКТ ПРОПУСКАЕМ!
 В templates/имя_стиля/board_body.tpl
 находим строку ниже (у меня 51 строка) и добавляем выделенный фрагмент:
 
 Цитата:<td class="row1">{$countonline}<br/><div>{$fm->_MembersOutput}</div><a href="tools.php?action=online" title="{$fm->LANG['ViewFullList']}"><b>{$fm->LANG['WhoOnline']}</b></a> [ <span class="admin">{$fm->LANG['Admin']}</span>, <span class="supmoder">{$fm->LANG['SuperModer']}</span>, <span class="moder">{$fm->LANG['Moderator']}</span>, <span class="robot">{$fm->LANG['Robot']}</span>, {$fm->LANG['User']} ]{$todayvisit}{$userstop}</td> 
 4) В index.php
 находим строки
 
 CODE:sprintf($fm->LANG['OnlineDataVSHide']...sprintf($fm->LANG['OnlineData']...
 ремарим их и вставляем за ними (для привода к стандартному виду отображения материала, читаем "удаляем их и вставляем...", строки подлежащие удалению начинаются //).
 
 CODE://sprintf($fm->LANG['OnlineDataVSHide'],$fm->exbb['membergone'],$fm->_OnlineTotal,$fm->_OnlineGuest,$fm->_Members,$fm->_Invisible):
 //sprintf($fm->LANG['OnlineData'],$fm->exbb['membergone'],$fm->_OnlineTotal,$fm->_Members,$fm->_OnlineGuest);
 sprintf($fm->LANG['OnlineDataVSHide'],$fm->exbb['membergone'],$fm->_OnlineTotal,$fm->_OnlineRobots,$fm->_OnlineGuest,$fm->_Members,$fm->_Invisible):
 sprintf($fm->LANG['OnlineData'],$fm->exbb['membergone'],$fm->_OnlineTotal,$fm->_Members,$fm->_OnlineGuest,$fm->_OnlineRobots);
 
 Далее находим переменную $online_last - ремарим и после неё вставляем (для привода к стандартному виду отображения материала, читаем "удаляем их и вставляем..., строки, подлежащие удалению, начинаются с //":
 
 CODE://$online_last = ... (там длинная строка)$online_last = $countonline . ' [ <span class="admin">'.$fm->LANG['Admin'].'</span>, <span class="supmoder">'.$fm->LANG['SuperModer'].'</span>, <span class="moder">'.$fm->LANG['Moderator'].'</span>, <span class="robot">'.$fm->LANG['Robot'].'</span> ]';
 
 
 в том же файле находим функцию today() (она в самом низу index.php должна быть) - ПОЛНОСТЬ ЕЁ РЕМАРИМ (в стандартном изложении материала - читай ПОЛНОСТЬЮ ЕЁ УДАЛЯЕМ) и заменяем на ту, что в спойлере.
 
 
 Спойлер (Отобразить)CODE:function today(&$todayvisit) {global $today, $fm;
 $robots = 0;
 $members = $hiddens = 0;
 $was = array();
 if (empty($today['members'])) $today['members'] = array();
 foreach ($today['members'] as $id => $member) {
 switch ($member['s']) {
 case 'ad':	$class = ' class="admin"';
 break;
 case 'sm':	$class = ' class="supmoder"';
 break;
 case 'mo':	$class = ' class="moder"';
 break;
 case 'ro':	$class = ' class="robot"';
 break;
 default:	$class = '';
 }
 
 if ($member['v']) {
 $hiddens++;
 if (defined('IS_ADMIN') || $id == $fm->user['id']) $member['n'] .= '*';
 else continue;
 }
 else
 {
 $members++;
 if ($member['s'] == 'ro') $robots++;
 }
 
 if ($member['s'] != 'ro')
 {$was[] = '<a href="profile.php?action=show&member='.$id.'"'.$class.'>'.$member['n'].'</a>';}
 else
 {$was[] = '<a title="Ip='.$id.'"'.$class.'>'.$member['n'].'</a>';}
 }
 
 $todayvisit = sprintf($fm->LANG['TodayVisit'], $today['guests'] + $members + $hiddens, $robots ,$today['guests'], $members - $robots,
 ($hiddens) ? sprintf($fm->LANG['HiddensOnline'], $hiddens) : '', ($was) ? '<br>'.implode(', ', $was) : '');
 }
 
 
 5) В файле /include/ fm.class.php ремим (в стандартном изложении материала читаем - удаляем) полностью и вставляем ниже функцию _OnlineLog из спойлера (все ремарки из функции в спойлере можно удалить)
 
 Текст _OnlineLog (Отобразить)CODE:/		/*_OnlineLog функция ведет учет on-line пользователей
 */
 function _OnlineLog($where,$privateID,$show = false) {
 global $statvisit, $today;
 
 $this->_IsSpider();
 $output 	= array();
 $expire		= $this->_Nowtime - ($this->exbb['membergone'] * 60);
 $agent		= $_SERVER['HTTP_USER_AGENT'];
 $sessid		= md5($this->_IP.$agent);//ID  в массиве онлайн
 $status = (!defined('IS_ADMIN') && $this->user['status'] != 'sm' && in_array($this->user['id'],$this->_Moderators) ) ? 'mo' : $this->user['status'];
 
 $visible = FALSE;
 if ($this->exbb['visiblemode'] === TRUE) {
 $visible = ($this->user['visible']===TRUE) ? TRUE:FALSE;
 }
 
 $onlinedata = $this->_Read2Write($fp_online,FM_ONLINE);
 
 // Advanced Visit Stats for ExBB FM 1.0 RC1 by yura3d
 $statvisit = $today = FALSE;
 if ($this->exbb['statvisit']) {
 $statvisit = $this->_Read('modules/statvisit/data/config.php');
 
 // Правка Николая Захаренкова
 //					if ($statvisit['day'] && !$this->_IsSpider) {
 if ($statvisit['day']) {
 $day = date('d', $this->_Nowtime);
 
 $today = $this->_Read2Write($fp_today, 'modules/statvisit/data/today.php');
 
 if (empty($today) || $today['day'] != $day) $today = array(
 'day'		=> $day,
 'members'	=> array(),
 'guests'	=> 0,
 );
 
 // Правка Николая Захаренкова
 //						if (!$this->user['id']  &&                      !isset($onlinedata[$sessid]) && empty($onlinedata[$sessid]['id']))
 if (!$this->user['id']  && !$this->_IsSpider && !isset($onlinedata[$sessid]) && empty($onlinedata[$sessid]['id']))
 $today['guests']++;
 
 // Правка Николая Захаренкова
 elseif ($this->_IsSpider) {
 $today['members'][$this->_IP] = array(
 'n'	=> $this->_IsSpider,
 's'	=> 'ro',
 'v'	=> $visible
 );
 }
 //конец правки	Николая Захаренкова
 
 elseif ($this->user['id']) {
 $today['members'][$this->user['id']] = array(
 'n'	=> $this->user['name'],
 's'	=> $this->user['status'],
 'v'	=> $visible
 );
 }
 
 $this->_Write($fp_today, $today);
 }
 }
 
 $onlinedata[$sessid]	= array(
 'ip'	=> $this->_IP,
 'n'		=> $this->user['name'],
 'id'	=> $this->user['id'],
 't'		=> $this->_Nowtime,
 'in'	=> $where,
 'pf'	=> $privateID,
 'st'	=> $status,
 'v'		=> $visible,
 'ua'	=> $_SERVER['HTTP_USER_AGENT'],
 'b'		=> $this->_IsSpider
 );
 
 foreach ($onlinedata as $id=>$info) {
 if ($expire > $info['t']) {
 // Решение проблемы актуальной даты последнего посещения
 // Если пользователь уходит без нажатия кнопки "Выход" то после сдыхания его сессии
 // мы обновим инфу в профиле о дате последнего посещения :)
 if (!empty($info['id']) && file_exists('members/'.$info['id'].'.php')) {
 $user = $this->_Read2Write($file, 'members/'.$info['id'].'.php');
 $user['last_visit'] = $info['t'];
 $this->_Write($file, $user);
 }
 
 unset($onlinedata[$id]);
 continue;
 }
 
 if ($info['id'] != 0 && $info['n'] == $this->user['name'] && $id != $sessid) {
 unset($onlinedata[$id]);
 continue;
 }
 
 $this->_OnlineIds[$info['id']] = 1;
 
 if ($show === TRUE) {
 switch ($info['id']) {
 case 0:
 //  Правка Николая Захаренкова
 //	$this->_OnlineGuest++;
 //	break 1;
 if (!empty($info['b'])){
 $info['id'] =  $this->_IP;
 $this->_OnlineIds[$info['id']] = 1;
 
 $info['n'] = $info['b'];
 $class = "robot";
 $output[] = '<a class="'.$class.'" title="'.$info['b'].'">'.$info['n'].'</a>';
 $this->_OnlineRobots++;
 break 1;
 }
 else
 {
 $this->_OnlineGuest++;
 break 1;
 }
 // конец правки Николая Захаренкова
 
 default:    if ($this->exbb['visiblemode'] && $info['v']=== TRUE){
 $this->_Invisible++;
 break 1;
 }
 
 
 
 switch ($info['st']) {
 case 'ad': 	$class = "admin"; break;
 case 'sm': 	$class = "supmoder"; break;
 case 'mo': 	$class = "moder"; break;
 case 'ro': 	$class = "robot"; break;
 default:	$class = "noclass"; break;
 }
 $output[] = '<a href="profile.php?action=show&member='.$info['id'].'" class="'.$class.'">'.$info['n'].'</a>';
 $this->_Members++;
 break 1;
 }
 }
 }
 
 $this->_OnlineTotal = sizeof($onlinedata);
 unset($this->_OnlineIds[0]);
 $this->_Write($fp_online,$onlinedata);
 
 $this->_Stats = $this->_Read2Write($fp_maxonline,FM_BOARDSTATS);
 if ($this->_OnlineTotal > $this->_Stats['max_online']) {
 $this->_Stats['max_online']	= $this->_OnlineTotal;
 $this->_Stats['max_time']	= $this->_Nowtime;
 $this->_Write($fp_maxonline,$this->_Stats);
 } else {
 $this->_Fclose($fp_maxonline);
 }
 
 if ($show === TRUE) {
 $this->_MembersOutput = implode ( ' » ', $output);
 unset($output);
 }
 
 return $onlinedata;
 }
 
 Что должно получиться в итоге:
 Прикреплено изображение
 
 
 (Отредактировано автором: 20 декабря 2010 — 11:59) |  
					|  |  |  
				
					| Икар | Отправлено: 13 декабря 2010 — 16:54   |  
					| 
  
 
  Newbie
 
  
 Покинул форум
 Сообщений всего: 31
 Дата рег-ции: Дек. 2010
 Репутация: 4
 
 
 
 
  
 | Дополнение "Ловля ботов поисковиков"  (дополнения и разъяснения) 
 Если список роботов мал...
 Кстати, все отлавливаемые боты перечислены в fm.class.php в функции
 
 
 function _IsSpider() (Отобразить)function _IsSpider() {$spiders = array (
 'Aport',
 'archive_org',
 'TurtleScanner',
 'Nutscrape',
 'WebSpeedReader',
 'StackRambler',
 'NetCaptor',
 'Bond',
 'Wget',
 'Space Bison',
 'msnbot',
 'Yahoo',
 'Mediapartners-Google',
 'Googlebot',
 'Yahoo-MMCrawler',
 'Google',
 'Slurp',
 'ZyBorg',
 'Gigabot',
 'Exabot',
 'Yandex',
 'WebAlta',
 'WebCrawler'
 );
 
 foreach ($spiders as $spidername){
 if (stristr($_SERVER['HTTP_USER_AGENT'], $spidername) !== FALSE){
 $this->_IsSpider = $spidername;
 break;
 }
 }
 return ;
 }
 
 Кому мало - можете дописать из этого списка :
 
 Список поисковиков (в нагрузку) (Отобразить)rambler googlebot aport yahoo msnbot turtle mail.ru omsktele yetibot picsearch sape.bot sape_context gigabot snapbot alexa.com megadownload.net askpeter.info igde.ru ask.com qwartabot yanga.co.uk scoutjet similarpages oozbot shrinktheweb.com aboutusbot followsite.com dataparksearch google-sitemaps appEngine-google feedfetcher-google liveinternet.ru xml-sitemaps.com agama metadatalabs.com h1.hrn.ru googlealert.com seo-rus.com yaDirectBot yandeG yandex yandexSomething Copyscape.com AdsBot-Google domaintools.com Nigma.ru bing.com dotnetdotcom 
 ВЫЛОЖИЛ Все измененные файлы от сегодняшнего 19 декабря 2010 (которые у меня сейчас на хостинге) - для просмотра, поскольку установка сложна!
 
 
 (Отредактировано автором: 20 декабря 2010 — 08:45) |  
					|  |  |  
				
					| Икар | Отправлено: 15 декабря 2010 — 11:21   |  
					| 
  
 
  Newbie
 
  
 Покинул форум
 Сообщений всего: 31
 Дата рег-ции: Дек. 2010
 Репутация: 4
 
 
 
 
  
 | Ответы на возникшие вопросы: 
 
 Umbr пишет:У меня вопросы по описанию установки: Икар пишет:1) Добавляем новый класс 
В какое место ставить? Строки текста показаны обычным шрифтом, что следует добавить и конкретно куда - выделено.
 
 
 Umbr пишет:
Цитата:3) (для стиля Invision2), - в других стилях этого НЕ СДЕЛАЕТЕ!  
Предыдущие стоки подходят или только те которые следуют дальше? Пункт 3) только для стиля Invision2, для других стилей - этот пункт пропускаем.
 
 
 Umbr пишет:Полностью "заремарить текст", это перед каждой строкой прописать // или достаточно ставить их перед определённым блоком? Можно ли всё оформить в классическом варианте: "найдите - замените"?
 Если Вам удобнее, то вместо "заремарьте" - читайте "удалите". Я текст ремарю, поскольку, возможно, когда-нибудь потребуется посмотреть - что было в классическои исполнении. Что конкретно ремарить - показано в кодах, в строках начинающихся с //.
 
 
 Umbr пишет:Это добавление "привлекает" роботов или просто фиксирует их вход?
 Фиксирует вход и отображает в списке входивших за сегодняшний день + показывает присутствие в реальном времени.
 
 
 ===========================================
 Прошу модераторов удалить все дальнейшие сообщения до конца темы.
 ===========================================
 (Отредактировано автором: 20 декабря 2010 — 09:06) |  
					|  |  |  
				
					| Икар | Отправлено: 15 декабря 2010 — 11:29   |  
					| 
  
 
  Newbie
 
  
 Покинул форум
 Сообщений всего: 31
 Дата рег-ции: Дек. 2010
 Репутация: 4
 
 
 
 
  
 | Как работает - смотрите форум в подписи. Сейчас посмотрел логи:
 
 Цитата:Googlebot	(1087+19	8.84 МБ	        14 Дек 2010 - 23:58)Yandex bot	(1859+158	8.50 МБ	14 Дек 2010 - 23:57)
 Думаю, что боты пробыли на сайте больше 3 минут (судя по загруженному объему), поэтому - похоже на правду...
 
 
 Но ещё очень сыро.
 Роботов хочу выделить в отдельную группу и отделить от гостей и пользователей, что бы была запись:
 
 
 Цитата:Сегодня форум посетили: 20 (гостей: 12, зарегистрированных: 6, роботов: 2)
 
 Как проверить - работает ли отображение робота в текущий момент, в строке:
 
 Цитата:За последние 15 минут форум посетило: или придется ждать 23.NN? Примерно в это время меня боты посещают ежедневно.
 (Добавление)
 Думаю, что ссылку надо бы изменить, а то при нажатии (на Яндекс бота) вылезает:
 
 Я же вместо ID пользователя записываю IP поисковика...
  естественно, что такого пользователя в системе нет. (Отредактировано автором: 15 декабря 2010 — 11:58) |  
					|  |  |  
				
					| Икар | Отправлено: 15 декабря 2010 — 13:56   |  
					| 
  
 
  Newbie
 
  
 Покинул форум
 Сообщений всего: 31
 Дата рег-ции: Дек. 2010
 Репутация: 4
 
 
 
 
  
 | nikk пишет:Икар пишет:Сегодня форум посетили: 20 (гостей: 12, зарегистрированных: 6, роботов: 2 
 А интересно,       если один и тот же  робот зайдет два-три раза  в течении суток,    он будет учитываться  как один робот или каждый раз как новый? 
 Цитата:// Правка Николая Захаренкова//						if (!$this->user['id']  &&                      !isset($onlinedata[$sessid]) && empty($onlinedata[$sessid]['id']))
 if (!$this->user['id']  && !$this->_IsSpider && !isset($onlinedata[$sessid]) && empty($onlinedata[$sessid]['id']))
 $today['guests']++;
 
 // Правка Николая Захаренкова
 elseif ($this->_IsSpider) {
 $today['members'][$this->_IP] = array(
 'n'	=> $this->_IsSpider,
 's'	=> 'ro',
 'v'	=> $visible
 );
 }
 //конец правки	Николая Захаренкова
 
 Гости получаются если на странице НЕ user['id'] и НЕ Spider и с сессиями порядок.
 Если на странице Spider, то полезай в массив today как робот. (сказанное - выделил)
 Т.е. идентификация по имени.
 (Добавление)
 
 
 Всё правильно - строка 709 в высланном мной файле:
 
 CODE:$output[] = '<a href="profile.php?action=show&member='.$info['id'].'" class="'.$class.'">'.$info['n'].'</a>'; 
 В $info['id'] я подставляю IP робота - поэтому так и и получается.
 Тут надо додумать - или сделать ссылку на статью какую-нибудь про поисковиков на своём сайте или ещё что...
 (Отредактировано автором: 15 декабря 2010 — 14:02) |  
					|  |  |  
				
					| Икар | Отправлено: 15 декабря 2010 — 14:17   |  
					| 
  
 
  Newbie
 
  
 Покинул форум
 Сообщений всего: 31
 Дата рег-ции: Дек. 2010
 Репутация: 4
 
 
 
 
  
 | nikk пишет:Икар пишет:Тут надо додумать - или сделать ссылку на статью какую-нибудь про поисковиков на своём сайте или ещё что... 
 а может вообще   не надо ссылку делать?      Ну был  робот на форуме и хорошо..  Сам факт   присутствует и ладно..   
 Ну да - к тому же IPшник засветился.
 Сделал себе так (в той самой строке 709):
 
 CODE:$output[] = '<a class="'.$class.'" title="'.$info['id'].'">'.$info['n'].'</a>'; 
 Теперь по идее - новый засвеченный бот не будет иметь переходной ссылки, а при наведении на него - будет в всплывающей ссылке высвечивать IP, откуда приходил.
 ====================================================
 ====================================================
 Теперь надо бы подумать про:
 
 1)
 Цитата:Сегодня форум посетили: 20 (гостей: 12, зарегистрированных: 6, роботов: 2) Куда сунуться что бы добавить эту незамысловатую надпись?
 
 2) Показ присутствия бота и в какой теме он шурстит.
 
 Какие предлжения? Предположения?
 (Отредактировано автором: 15 декабря 2010 — 14:43) |  
					|  |  |  
				
					| Икар | Отправлено: 15 декабря 2010 — 16:36   |  
					| 
  
 
  Newbie
 
  
 Покинул форум
 Сообщений всего: 31
 Дата рег-ции: Дек. 2010
 Репутация: 4
 
 
 
 
  
 | Отделяем Ботов от пользователей, для этого: 
 1) Добавляем новый класс (и присваиваем этому классу заданный цвет, которым будут отображаться Боты - у меня желтый) в /templates/[ваш шаблон]/style.css
 
 style.css (Отобразить).admin, a:link.admin, a:visited.admin, a:active.admin, a:hover.admin {color: red;
 }
 .supmoder, a:link.supmoder, a:visited.supmoder, a:active.supmoder, a:hover.supmoder {
 color: blue;
 }
 .moder, a:link.moder, a:visited.moder, a:active.moder, a:hover.moder {
 color: green;
 }
 .robot, a:link.moder, a:visited.moder, a:active.moder, a:hover.moder {
 color: yellow;
 }
 
 2) language\ russian\ lang_front_all.php
 В нем находим, расшифроки Пользователей форума и добавляем новую расшифровку Бот:
 
 Цитата:$this->LANG['Admin']				= 'Администратор';$this->LANG['Moderator']			= 'Модератор';
 $this->LANG['SuperModer']			= 'Супермодератор';
 $this->LANG['User'] 				= 'Пользователь';
 $this->LANG['Robot']				= 'Бот';
 
 в этом же файле находим расшифровки:
 
 CODE:$this->LANG['OnlineDataVSHide']		= ...$this->LANG['OnlineData']			= ...
 $this->LANG['TodayVisit']			= ...
 ремим их и вставляем за ними:
 
 CODE:$this->LANG['OnlineDataVSHide']		= 'За последние %d минут форум посетило: %d (ботов:%d, гостей: %d, зарегистрированных: %d, скрытых: %d)';$this->LANG['OnlineData']			= 'За последние %d минут форум посетило: %d (зарегистрированных: %d, гостей: %d, ботов:%d)';
 $this->LANG['TodayVisit']			= 'Сегодня форум посетили: %d (ботов: %d, гостей: %d, зарегистрированных: %d%s)%s';
 
 3) В templates\[ваш шаблон]\board_body.tpl
 находим перечисление категорий кользователей и вставляем выделенную расшифровку:
 
 Цитата:<span class="admin">{$fm->LANG['Admin']}</span>, <span class="supmoder">{$fm->LANG['SuperModer']}</span>,
 <span class="moder">{$fm->LANG['Moderator']}</span>,
 <span class="robot">{$fm->LANG['Robot']}</span>,
 
 Как искать?Ищите предыдущую строчку в поиске
 CODE:, если не найдено, то<span class="moder">{$fm->LANG['Moderator']}</span>, CODE:и после закрывающегося тега и запятой за ним (</span>,) вставляете выдененную строчку.$fm->LANG['Moderator'] 
 =========================================
 =========================================
 
 У сегодня найденных ботов не прописался класс поэтому им не добавился новый цвет, и они уже записаны в файле, где хранятся все посетившие форум. Завтра файл перезапишется... тогда посмотрим - будут ли ботики желтенькими? Если не пожелтеют - придется ещё немного копнуться в скриптах в поиске места присоединения класса.
 
 =========================================
 =========================================
 
 Кстати, все отлавливаемые боты перечислены в fm.class.php в функции
 
 
 function _IsSpider() (Отобразить)function _IsSpider() {$spiders = array (
 'Aport',
 'archive_org',
 'TurtleScanner',
 'Nutscrape',
 'WebSpeedReader',
 'StackRambler',
 'NetCaptor',
 'Bond',
 'Wget',
 'Space Bison',
 'msnbot',
 'Yahoo',
 'Mediapartners-Google',
 'Googlebot',
 'Yahoo-MMCrawler',
 'Google',
 'Slurp',
 'ZyBorg',
 'Gigabot',
 'Exabot',
 'Yandex',
 'WebAlta',
 'WebCrawler'
 );
 
 foreach ($spiders as $spidername){
 if (stristr($_SERVER['HTTP_USER_AGENT'], $spidername) !== FALSE){
 $this->_IsSpider = $spidername;
 break;
 }
 }
 return ;
 }
 
 Кому мало - можете дописать из этого списка
 
 Список поисковиков (в нагрузку) (Отобразить)rambler googlebot aport yahoo msnbot turtle mail.ru omsktele yetibot picsearch sape.bot sape_context gigabot snapbot alexa.com megadownload.net askpeter.info igde.ru ask.com qwartabot yanga.co.uk scoutjet similarpages oozbot shrinktheweb.com aboutusbot followsite.com dataparksearch google-sitemaps appEngine-google feedfetcher-google liveinternet.ru xml-sitemaps.com agama metadatalabs.com h1.hrn.ru googlealert.com seo-rus.com yaDirectBot yandeG yandex yandexSomething Copyscape.com AdsBot-Google domaintools.com Nigma.ru bing.com dotnetdotcom 
 =========================================
 =========================================
 
 
 
  Отметки делаю для себя, пока решение полностью не готово.Продолжу поиск решения позже!!!
 Текущий этап можно увидеть на форуме у меня в подписи
 (Отредактировано автором: 16 декабря 2010 — 15:28) |  
					|  |  |  
				
					| Икар | Отправлено: 15 декабря 2010 — 17:22   |  
					| 
  
 
  Newbie
 
  
 Покинул форум
 Сообщений всего: 31
 Дата рег-ции: Дек. 2010
 Репутация: 4
 
 
 
 
  
 | nikk пишет:Икар пишет:находим перечисление категорий кользователей и вставляем объявленную расшифровку: 
 подскажи,      где конкретно находятся  список категорий? 
 В \templates\[ваш шаблон]\board_body.tpl
 Поищи
 
 CODE:$fm->LANG['Moderator'] дальше - копируешь эту надпись и все теги в которых она закреплена, и вставляешь рядом, только вместо LANG['Moderator'] пишешь LANG['Robot'] и меняешь класс css c moder на robot.
 
 Вот вся строка полностью у меня (скопированное - подчеркнуто, вставленное и измененное - выделено):
 
 Цитата:<td class="row1">{$countonline}<br/><div>{$fm->_MembersOutput}</div><a href="tools.php?action=online" title="{$fm->LANG['ViewFullList']}"><b>{$fm->LANG['WhoOnline']}</b></a> [ <span class="admin">{$fm->LANG['Admin']}</span>, <span class="supmoder">{$fm->LANG['SuperModer']}</span>, <span class="moder">{$fm->LANG['Moderator']}</span>, <span class="robot">{$fm->LANG['Robot']}</span>, {$fm->LANG['User']} ]{$todayvisit}{$userstop}</td> (Отредактировано автором: 15 декабря 2010 — 17:49) |  
					|  |  |  |