Перейти к контенту

Рекомендуемые сообщения

Собственно сабж. Стоит Рус. Модиф. IPB 1.3 от Игорька М. Статус Offline/online в темах есть, необходимо добавить такую штуку и в PM сообщения, когда читаешь письмо, чтобы в колонке слева(от письма) присутствовал статус. Заранее благодарен за любую помощь.

 

Жду... :D

Ссылка на комментарий
Поделиться на других сайтах

У меня так делает кстати, но у меня свой мод Online/Offline и для 1.2.

файл sources/Messenger.php, function view_msg()

 

$DB->query("SELECT g.*, m.* ".
"FROM ibf_members m, ibf_groups g WHERE id='".$msg['from_id']."' and g.g_id=m.mgroup");

 

заменил на

 

$DB->query("SELECT g.*, m.*[b], s.member_name[/b]  ".
"FROM ibf_members m, ibf_groups g [b]LEFT JOIN ibf_sessions s ON (m.id=s.member_id)[/b] WHERE id='".$msg['from_id']."' and g.g_id=m.mgroup");

 

затем ниже строчка

$member = $DB->fetch_row();

 

После нее добавлял:

                 if ($member['member_name'])
                {
                    $member['member_status']= "<font color=blue>Online</font>";
                }
                else
                {
                     $member['member_status']= "Offline";
                }

 

Затем идем в Skin/s#/skin_msg.php, function Render_msg($data)

После

<span class='postdetails'>

добавил

{$data['member']['member_status']}<br>

 

У меня вообще там все по другому из-за языковой поддержки для названий груп и мода настроек что отображать при просмотре сообщений. И то что я здесь написал не проверял, но должно работать... Так что бэкапы файлов сделай :D

 

И блок кода

                 if ($member['member_name'])
               {
                   $member['member_status']= "[b]<font color=blue>Online</font>[/b]";
               }
               else
               {
                    $member['member_status']= "[b]Offline[/b]";
               }

надо отредактировать под дизайн твоего мода Оффлайн/онлайн

Ссылка на комментарий
Поделиться на других сайтах

Всё отлично, только вот тут ошибка:

$DB->query("SELECT g.*, m.*, s.member_name  ".

"FROM ibf_members m, ibf_groups g LEFT JOIN ibf_sessions s ON (m.id=s.member_id) WHERE m.id='".$msg['from_id']."' and g.g_id=m.mgroup");

Спасибо :D

Ссылка на комментарий
Поделиться на других сайтах

2Hostem

Никогда не замечал при таком моде, что у тебя сообщения сдваиваются? :D

Ссылка на комментарий
Поделиться на других сайтах

Ой! Не было в ПМках, но в другом месте было, что ники два раза выводились (при запросе к ibf_sessions).

 

Но там же мы одну строку возвращаем :D

                 $member = $DB->fetch_row();  

 

Не циклически:

 while ( $member = $DB->fetch_row())

 

А было бы весело ;).

 

Можно еще в конце запроса LIMIT 1 добавить :)

 

Еще вспомнил, что они (пользователи из ibf_sessions) не постоянно удаляются, поэтому надо еще условие ограничения по времени делать.

 

перед "$DB->query..."

добавить

$cut_off = ($ibforums->vars['au_cutoff'] != "") ? $ibforums->vars['au_cutoff'] * 60 : 900;

$time = time() - $cut_off;

 

И в запросе добавить ограничение вот так:

$DB->query("SELECT g.*, m.*, s.member_name  ".
"FROM ibf_members m, ibf_groups g LEFT JOIN ibf_sessions s ON (m.id=s.member_id [b]and s.running_time > $time[/b]) WHERE m.id='".$msg['from_id']."' and g.g_id=m.mgroup");

Ссылка на комментарий
Поделиться на других сайтах

Ну ладно, с PM ты вывернулся :D

 

а начёт offline/online в Topics у тебя таже сделано? ;)

Ссылка на комментарий
Поделиться на других сайтах

Нет, не так же ;).

 

Там расширил запрос "кто просматривает топик" исключив where in_topic={$this->topic['tid']}

Есть ли пользователь в онлайне определяется логическим масивом

$cached[ $result['member_id'] ] = 1;

а генерация списка пользователей которые смотрят тему фильтруется условием "if ($this->topic['tid']==$result['in_topic'])"

 

Лишние данные правда обрабатываются. :D

 

Зато можно будет ввести еще IP-online / offline. Для админов, чтобы было видно статус у гостей и пользователей которые не авторизировались, но просматривают форум.

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.