Strict Standards: Resource ID#18 used as offset, casting to integer (18) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#23 used as offset, casting to integer (23) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#25 used as offset, casting to integer (25) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#26 used as offset, casting to integer (26) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401
ТвойWeb :: Мод: Кто сейчас просматривает раздел/тему?
ТвойWeb ТвойWeb
Качественный Европейский хостинг
Форум для чайников
 Чат на форуме      Помощь      Поиск      Пользователи


 Страниц (1): [1]   

> Описание: Расширенная on-line статистика
yura3d
Отправлено: 18 Июня, 2008 - 06:00:31
Post Id


Super Member


Покинул форум
Сообщений всего: 624
Дата рег-ции: Июль 2007  
Откуда: Минск, Беларусь

Карма 17




Когда-то давно я писал подобный мод для ExBB 1.9.1, сейчас решил адаптировать его для ExBB FM 1.0 Beta. Мод позволяет выводить список пользователей, просматривающих определённую тему в данный момент. Скорее всего Вы уже видели подобную фишку в других форумах, теперь это доступно и в ExBB.

Примеры работы мода (скрины):




Для установки мода нужно произвести следующие изменения
Открываем файл include/fm.class.php и находим строки:
CODE:
if ($show === TRUE) {
$this->_MembersOutput = implode ( ' » ', $output);
unset($output);
}
return;

И заменяем их на эти:
CODE:
if ($show === TRUE) {
$this->_MembersOutput = implode ( ' » ', $output);
unset($output);
}
return $onlinedata;

Далее открываем файл topic.php и находим строку:
CODE:
if ($fm->exbb['karma'] === TRUE) { $fm->_LoadModuleLang('karma');}

И прямо под ней вставляем код:
CODE:
// Кто сейчас просматривает тему?
// Mod was written by yura3d for ExBB FM 1.0 Beta
$onlinedata = $fm->_OnlineLog($fm->LANG['TopicSee'].' <a href="topic.php?forum='.$forum_id.'&topic='.$topic_id.'"><b>'.$topic['name'].'</b></a> - <a href="forums.php?forum='.$forum_id.'"><b>'.$forumname.'</b></a>',$privateID);
$guests = $hiddens = $members = 0; $showonline = array(); $mems = "";
foreach ($onlinedata as $id => $online) {
eregi("forum=([[:alnum:]]+)&topic=([[:alnum:]]+)", $online['in'], $where);
if (($where[1] == $forum_id) and ($where[2] == $topic_id)) {
if (!$online['id']) $guests++;
else {
if (($fm->exbb['visiblemode']) and (!empty($online['v']))) $hiddens++;
else {
$members++;
$showonline[$online['id']] = array("n" => $online['n'], "st" => $online['st']);
}
}
}
}
foreach ($showonline as $id => $online) {
$class = "";
if (array_key_exists($id, $allforums[$forum_id]['moderator'])) $class = ' class="moder"';
if ($online['st'] == "ad") $class = ' class="admin"';
if ($online['st'] == "sm") $class = ' class="supmoder"';
$mems .= ' &raquo; <a href="profile.php?action=show&member='.$id.'"'.$class.'>'.$online['n'].'</a>';
}
$total = $guests + $members + $hiddens;
$hiddens = ($fm->exbb['visiblemode']) ? sprintf($fm->LANG['hiddens'], $hiddens) : "";
$showonline = sprintf($fm->LANG['topic_online'], $total, $guests, $members, $hiddens, $mems);
// Кто сейчас просматривает тему

Открываем файл language/russian/lang_front_forums.php и вставляем в него строки:
CODE:
$this->LANG['hiddens'] = ', скрытых: %d';
$this->LANG['topic_online'] = 'Сейчас эту тему просматривают: %d (гостей: %d, зарегистрированных: %d%s)%s';

Открываем файл templates/InvisionExBB/topic_body.tpl и находим строки:
CODE:
<tr>
<td>
{$topic_data}
</td>
</tr>
<tr>
<td class="postlinksbar" align="right"><strong>{$options}</strong></td>
</tr>

И прямо под ними вставляем:
CODE:
<tr>
<td class="row2" style="padding:6px">{$showonline}</td>
</tr>

На этом всё, мод установлен. В отличие от более ранних реализаций данный мод корректно работает с приватными форумами, в нём была добавлена совместимость со скрытым режимом пребывания на форуме.

Вы также можете сделать вывод списка пользователей, просматривающих определённый раздел (или читающих тему в нём). Подробности здесь
 
 Top
sergey44945
Отправлено: 18 Июня, 2008 - 07:09:15
Post Id



Full Member


Покинул форум
Сообщений всего: 165
Дата рег-ции: Нояб. 2007  

Карма 0




спасибо все гуд протестил Улыбка
 
 Top
yura3d
Отправлено: 18 Июня, 2008 - 07:21:50
Post Id


Super Member


Покинул форум
Сообщений всего: 624
Дата рег-ции: Июль 2007  
Откуда: Минск, Беларусь

Карма 17




Нашёл небольшой баг (он связан с цветом ника пользователя). Для исправлениия в файле topic.php найти код:
CODE:
if ($online['st'] == "ad") $class = ' class="admin"';
if ($online['st'] == "sm") $class = ' class="supmoder"';
if (array_key_exists($id, $allforums[$forum_id]['moderator'])) $class = ' class="moder"';

И заменить этим:
CODE:
if (array_key_exists($id, $allforums[$forum_id]['moderator'])) $class = ' class="moder"';
if ($online['st'] == "ad") $class = ' class="admin"';
if ($online['st'] == "sm") $class = ' class="supmoder"';

В первом сообщении этот прокол уже исправлен
 
 Top
Pauk
Отправлено: 18 Июня, 2008 - 08:23:11
Post Id



Full Mods 0.1.5


Покинул форум
Сообщений всего: 68
Дата рег-ции: Февр. 2007  

Карма 0




Привет yura3d, а для 0,15 подойдет?
 
 Top
yura3d
Отправлено: 19 Июня, 2008 - 17:03:20
Post Id


Super Member


Покинул форум
Сообщений всего: 624
Дата рег-ции: Июль 2007  
Откуда: Минск, Беларусь

Карма 17




Решил немного дополнить мод. Теперь также есть возможность выводить список пользователей, просматривающих определённый раздел (или читающих тему в нём). Для этого открываем файл forums.php и находим строку:
CODE:
$fm->_OnlineLog($fm->LANG['ViewForum']." <a href=\"forums.php?forum={$forum_id}\"><b>".$allforums[$forum_id]['name'].'</b></a>',$privateID);

И заменяем её этим кодом:
CODE:
// Кто сейчас просматривает форум?
// Mod was written by yura3d for ExBB FM 1.0 Beta
$onlinedata = $fm->_OnlineLog($fm->LANG['ViewForum']." <a href=\"forums.php?forum={$forum_id}\"><b>".$allforums[$forum_id]['name'].'</b></a>',$privateID);
$guests = $hiddens = $members = 0; $showonline = array(); $mems = "";
foreach ($onlinedata as $id => $online) {
eregi("forum=([[:alnum:]]+)", $online['in'], $where);
if ($where[1] == $forum_id) {
if (!$online['id']) $guests++;
else {
if (($fm->exbb['visiblemode']) and (!empty($online['v']))) $hiddens++;
else {
$members++;
$showonline[$online['id']] = array("n" => $online['n'], "st" => $online['st']);
}
}
}
}
foreach ($showonline as $id => $online) {
$class = "";
if (array_key_exists($id, $allforums[$forum_id]['moderator'])) $class = ' class="moder"';
if ($online['st'] == "ad") $class = ' class="admin"';
if ($online['st'] == "sm") $class = ' class="supmoder"';
$mems .= ' &raquo; <a href="profile.php?action=show&member='.$id.'"'.$class.'>'.$online['n'].'</a>';
}
$total = $guests + $members + $hiddens;
$hiddens = ($fm->exbb['visiblemode']) ? sprintf($fm->LANG['hiddens'], $hiddens) : "";
$showonline = sprintf($fm->LANG['forum_online'], $total, $guests, $members, $hiddens, $mems);
// Кто сейчас просматривает форум

Далее открываем файл templates/InvisionExBB/forum_body.tpl и находим код:
CODE:
<tr>
<td class="darkrow2" style="padding:6px" colspan="6">&nbsp;</td>
</tr>

И прямо под ним вставляем код:
CODE:
<tr>
<td class="row2" style="padding:6px" colspan="6">{$showonline}</td>
</tr>

И конечно главное не забыть вставить языковую переменную в файл language/russian/lang_front_forums.php:
CODE:
$this->LANG['forum_online'] = 'Сейчас этот форум просматривают: %d (гостей: %d, зарегистрированных: %d%s)%s';

На этом установку можно считать завершённой Улыбка

Pauk пишет:
Привет yura3d, а для 0,15 подойдет?

Нет
 
 Top
WHITE_DRAGON
Отправлено: 20 Июня, 2008 - 02:45:47
Post Id



Newbie


Покинул форум
Сообщений всего: 11
Дата рег-ции: Июнь 2008  
Откуда: Минск

Карма 0




yura3d

Спасибо!!! Улыбка Улыбка Улыбка Классный мод!!! Улыбка Улыбка Улыбка

PC: Я смотрю Ты неплохо разбираешся в php; не мог бы ты подсказать в каких файлах надо править чтобы добавить вторуюю домашнюю страничку в инфе пользователя; и помочь мне с новостями - очень надо: http://tvoyweb.ru/forums/topic.p...5&topic=1252
 
 Top
Ninguno
Отправлено: 27 Июня, 2008 - 06:54:33
Post Id



Newbie


Покинул форум
Сообщений всего: 46
Дата рег-ции: Июль 2007  
Откуда: оттуда

Карма 0




yura3d пишет:
Pauk пишет:
Привет yura3d, а для 0,15 подойдет?

Нет
Обидно Недовольство, огорчение
 
 Top
defenderyk
Отправлено: 04 Сентября, 2008 - 16:43:26
Post Id


Super Member


Покинул форум
Сообщений всего: 709
Дата рег-ции: Окт. 2007  
Откуда: Россия

Карма 3




хм...чтож я его сразу то не заметил) спс.

а нельзя тогда сразу сделать, чтобы выводить, на главной к каждому разделу: сколько человек просматривают раздел или тему?

(Отредактировано автором: 04 Сентября, 2008 - 20:15:27)

 
 Top
yura3d
Отправлено: 05 Сентября, 2008 - 14:27:12
Post Id


Super Member


Покинул форум
Сообщений всего: 624
Дата рег-ции: Июль 2007  
Откуда: Минск, Беларусь

Карма 17




defenderyk пишет:
а нельзя тогда сразу сделать, чтобы выводить, на главной к каждому разделу: сколько человек просматривают раздел или тему?

Попробуем. Для начала открываем файл include/fm.class.php, находим строку:
CODE:
var $_FilePointers = array();

И прямо под ней вставляем:
CODE:
var $gde = array();

Затем в этом же файле ищем строку:
CODE:
if ($show === TRUE) {

И прямо под ней вставляем:
CODE:
eregi("forum=([[:alnum:]]+)", $info['in'], $gde);
if ($gde = intval($gde[1])) {
if (!isset($this->gde[$gde])) $this->gde[$gde] = 0;
$this->gde[$gde]++;
}

Теперь мучаем index.php. Находим строку:
CODE:
$fm->_OnlineLog($fm->LANG['BoardMain'],FALSE,TRUE);

Вырезаем её из того места, где она стояла, и ставим её прямо под строкой:
CODE:
$news_data = GetNews();

Далее в этом же файле находим строку:
CODE:
$forumname = '<a href="forums.php?forum='.$id.'">'.$forum['name'].'</a>';

И прямо под ней вставляем:
CODE:
$gde = (isset($fm->gde[$id])) ? "(".sprintf($fm->LANG['Viewing'], $fm->gde[$id]).")" : "";

Открываем файл language/russian/lang_front_all.php и вставляем в него языковую переменную:
CODE:
$this->LANG['Viewing'] = 'Просматривают: %d';

Открываем файл templates/ваш_скин/board_data.tpl, находим переменную $forumname и добавляем к ней переменную $gde:
CODE:
<b>{$forumname}</b> {$gde}


На этом всё
 
 Top
defenderyk
Отправлено: 05 Сентября, 2008 - 16:48:24
Post Id


Super Member


Покинул форум
Сообщений всего: 709
Дата рег-ции: Окт. 2007  
Откуда: Россия

Карма 3




СПС) ты что наизусть уже движок выучил Растерялся Хотя наверно, если переделываешь на мускул...

(Отредактировано автором: 05 Сентября, 2008 - 17:11:48)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0, скрытых: 0)
« Моды, хаки, скины и дополнения »


Все гости форума могут просматривать этот раздел.
Только администраторы и модераторы могут создавать новые темы в этом разделе.
Только администраторы и модераторы могут отвечать на сообщения в этом разделе.
 



Форум на AlfaSpace.NET


Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®

[Script Execution time: 1.8903]     [ Gzipped ]