Страниц (3): « 1 [2] 3 »
Найдено сообщений: 31 |
Икар |
Отправлено: 16 декабря 2010 — 16:40 • Тема: Дополнение: Определение пауков поисковиков • Форум: Модификации и дополнения |
Ответов: 91 Просмотров: 0
|
Всю установку прописал в первых сообщениях!!!
Читаем и изменяем всё оттуда!!!
(Добавление)
nikk пишет:Икар сделал все как ты сказал, но теперь пропало Цитата:Сегодня форум посетили: ! Че делать-то??
nikk у тебя там таблица сломалась - ты тронул какой-то из тегов: <td> или <th> или <tr>...
Возвращай назад - надеюсь, копия-то есть? |
Икар |
Отправлено: 16 декабря 2010 — 09:26 • Тема: Дополнение: Определение пауков поисковиков • Форум: Модификации и дополнения |
Ответов: 91 Просмотров: 0
|
4) В index.php
находим строки
CODE:sprintf($fm->LANG['OnlineDataVSHide']...
sprintf($fm->LANG['OnlineData']...
ремарим их и вставляем за ними:
CODE:sprintf($fm->LANG['OnlineDataVSHide'],$fm->exbb['membergone'],$fm->_OnlineTotal,$_OnlineRobots,$fm->_OnlineGuest,$fm->_Members,$fm->_Invisible):
sprintf($fm->LANG['OnlineData'],$fm->exbb['membergone'],$fm->_OnlineTotal,$fm->_Members,$fm->_OnlineGuest,$_OnlineRobots);
=======================================
********************************************
=======================================
Далее:
Находим переменную $online_last - ремарим и после неё вставляем:
CODE:$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> ]';
=======================================
********************************************
=======================================
Далее:
находим функцию todey() (она в самом низу 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) : '');
}
|
Икар |
Отправлено: 15 декабря 2010 — 17:22 • Тема: Дополнение: Определение пауков поисковиков • Форум: Модификации и дополнения |
Ответов: 91 Просмотров: 0
|
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 — 16:36 • Тема: Дополнение: Определение пауков поисковиков • Форум: Модификации и дополнения |
Ответов: 91 Просмотров: 0
|
Отделяем Ботов от пользователей, для этого:
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:$fm->LANG['Moderator'] и после закрывающегося тега и запятой за ним (</span>,) вставляете выдененную строчку.
=========================================
=========================================
У сегодня найденных ботов не прописался класс поэтому им не добавился новый цвет, и они уже записаны в файле, где хранятся все посетившие форум. Завтра файл перезапишется... тогда посмотрим - будут ли ботики желтенькими? Если не пожелтеют - придется ещё немного копнуться в скриптах в поиске места присоединения класса.
=========================================
=========================================
Кстати, все отлавливаемые боты перечислены в 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
=========================================
=========================================
Отметки делаю для себя, пока решение полностью не готово.
Продолжу поиск решения позже!!!
Текущий этап можно увидеть на форуме у меня в подписи |
Икар |
Отправлено: 15 декабря 2010 — 14:17 • Тема: Дополнение: Определение пауков поисковиков • Форум: Модификации и дополнения |
Ответов: 91 Просмотров: 0
|
nikk пишет:Икар пишет:Тут надо додумать - или сделать ссылку на статью какую-нибудь про поисковиков на своём сайте или ещё что...
а может вообще не надо ссылку делать? Ну был робот на форуме и хорошо.. Сам факт присутствует и ладно..
Ну да - к тому же IPшник засветился.
Сделал себе так (в той самой строке 709):
CODE:$output[] = '<a class="'.$class.'" title="'.$info['id'].'">'.$info['n'].'</a>';
Теперь по идее - новый засвеченный бот не будет иметь переходной ссылки, а при наведении на него - будет в всплывающей ссылке высвечивать IP, откуда приходил.
====================================================
====================================================
Теперь надо бы подумать про:
1) Цитата:Сегодня форум посетили: 20 (гостей: 12, зарегистрированных: 6, роботов: 2)
Куда сунуться что бы добавить эту незамысловатую надпись?
2) Показ присутствия бота и в какой теме он шурстит.
Какие предлжения? Предположения? |
Икар |
Отправлено: 15 декабря 2010 — 13:56 • Тема: Дополнение: Определение пауков поисковиков • Форум: Модификации и дополнения |
Ответов: 91 Просмотров: 0
|
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 — 11:29 • Тема: Дополнение: Определение пауков поисковиков • Форум: Модификации и дополнения |
Ответов: 91 Просмотров: 0
|
Как работает - смотрите форум в подписи.
Сейчас посмотрел логи:
Цитата: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:21 • Тема: Дополнение: Определение пауков поисковиков • Форум: Модификации и дополнения |
Ответов: 91 Просмотров: 0
|
Ответы на возникшие вопросы:
Umbr пишет:У меня вопросы по описанию установки:
Икар пишет:1) Добавляем новый класс
В какое место ставить?
Строки текста показаны обычным шрифтом, что следует добавить и конкретно куда - выделено.
Umbr пишет:
Цитата:3) (для стиля Invision2), - в других стилях этого НЕ СДЕЛАЕТЕ!
Предыдущие стоки подходят или только те которые следуют дальше?
Пункт 3) только для стиля Invision2, для других стилей - этот пункт пропускаем.
Umbr пишет:
Полностью "заремарить текст", это перед каждой строкой прописать // или достаточно ставить их перед определённым блоком? Можно ли всё оформить в классическом варианте: "найдите - замените"?
Если Вам удобнее, то вместо "заремарьте" - читайте "удалите". Я текст ремарю, поскольку, возможно, когда-нибудь потребуется посмотреть - что было в классическои исполнении. Что конкретно ремарить - показано в кодах, в строках начинающихся с //.
Umbr пишет:
Это добавление "привлекает" роботов или просто фиксирует их вход?
Фиксирует вход и отображает в списке входивших за сегодняшний день + показывает присутствие в реальном времени.
===========================================
Прошу модераторов удалить все дальнейшие сообщения до конца темы.
=========================================== |
Икар |
Отправлено: 13 декабря 2010 — 16:54 • Тема: Дополнение: Определение пауков поисковиков • Форум: Модификации и дополнения |
Ответов: 91 Просмотров: 0
|
Дополнение "Ловля ботов поисковиков" (дополнения и разъяснения)
Если список роботов мал...
Кстати, все отлавливаемые боты перечислены в 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 (которые у меня сейчас на хостинге) - для просмотра, поскольку установка сложна! |
Икар |
Отправлено: 13 декабря 2010 — 15:55 • Тема: Дополнение: Определение пауков поисковиков • Форум: Модификации и дополнения |
Ответов: 91 Просмотров: 0
|
Установка:
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;
}
Что должно получиться в итоге: |
Икар |
Отправлено: 13 декабря 2010 — 14:54 • Тема: Раздел для администрации форума НЕ РАБОТАЕТ • Форум: Решение проблем |
Ответов: 3 Просмотров: 0
|
Дядя Митя пишет:Икар, Если доверяете этим людям то просто пропишите их модераторами в этом разделе.
Так и сделал. Попросил - без фанатизма...
Ясно. Значит морочка серьёзная. |
Икар |
Отправлено: 13 декабря 2010 — 00:14 • Тема: Раздел для администрации форума НЕ РАБОТАЕТ • Форум: Решение проблем |
Ответов: 3 Просмотров: 0
|
Икар пишет:Создал раздел в котором указал, что:
Только администраторы и модераторы могут просматривать этот раздел.
Только администраторы и модераторы могут создавать новые темы в этом разделе.
Только администраторы и модераторы могут отвечать на сообщения в этом разделе.
... и тут оказалось, что обычные Модераторы - в заданную касту "Администраторов и модераторов" не входят. В неё входят Адмиинстраторы и Супер админы.
НЕСПРАВЕДЛИВО!!! )))
Если баг (может я чего недопонимаю), то прошу пофиксить.
Внял вашим замечаниям! Исправился и всё исправил, а так же объяснил причину.
А по моему вопросу что-нибудь скажете? |
Икар |
Отправлено: 9 декабря 2010 — 20:38 • Тема: Раздел для администрации форума НЕ РАБОТАЕТ • Форум: Решение проблем |
Ответов: 3 Просмотров: 0
|
Создал раздел в котором указал, что:
Только администраторы и модераторы могут просматривать этот раздел.
Только администраторы и модераторы могут создавать новые темы в этом разделе.
Только администраторы и модераторы могут отвечать на сообщения в этом разделе.
... и тут оказалось, что обычные Модераторы - в заданную касту "Администраторов и модераторов" не входят. В неё входят Адмиинстраторы и Супер админы.
НЕСПРАВЕДЛИВО!!! )))
Если баг (может я чего недопонимаю), то прошу пофиксить. |
Икар |
Отправлено: 7 декабря 2010 — 09:06 • Тема: Ваш хостер • Форум: Хостинг |
Ответов: 54 Просмотров: 0
|
Я перешел на beget.ru
Хостинг нравится!!! В год 1200 при возможно размещения 5 сайтов с 1ГБ диска. |
|
Страниц (3): « 1 [2] 3 »
|