Список пользователей онлайн на внешних страницах

У вас есть идея для расширения функциональности phpBB 3.0.x? Расскажите о ней здесь!
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Psytodelist
phpBB 1.2.0
Сообщения: 15
Стаж: 16 лет 6 месяцев

Список пользователей онлайн на внешних страницах

Сообщение Psytodelist »

Здравствуйте, уважаемые. :ugeek:
Я люблю возится с БД форума, но не могу реализовать одну вещь...
Стоит такая задача: нужно на внешней странице (не относящаяся к форуму)
реализовать вывод списка пользователей, которые в данный момент онлайн.
Тут как бы сложнее получается, чем просто выборка данных из БД... тут какие-то
сесии, не так ли? Все же меня интересует любая информация о том, как это сделать. :mrgreen:
Аватара пользователя
Izya
Former team member
Сообщения: 408
Стаж: 18 лет
Откуда: Абакан, Сибирь
Благодарил (а): 1 раз
Поблагодарили: 28 раз

Re: Список пользователей онлайн на внешних страницах

Сообщение Izya »

Открываешь файл includes/functions.php, смотришь функцию obtain_users_online(). Более точной и при этом сжатой информации не найти.
Изображение
Psytodelist
phpBB 1.2.0
Сообщения: 15
Стаж: 16 лет 6 месяцев

Re: Список пользователей онлайн на внешних страницах

Сообщение Psytodelist »

Я умоляю: можете показать пример?
Я уже что только не делал: создавал
в том каталоге пхп файл и подключал
к нему файл с функции, пробовал выводить
результат функции на экран, так ругалось на
эту строку: $result = $db->sql_query($sql);
Fatal error: Call to a member function sql_query() on a non-object in Z:\home\localhost\www\gid-auto\forum\includes\index.php on line 44
Очень нужен пример :roll:
Аватара пользователя
Izya
Former team member
Сообщения: 408
Стаж: 18 лет
Откуда: Абакан, Сибирь
Благодарил (а): 1 раз
Поблагодарили: 28 раз

Re: Список пользователей онлайн на внешних страницах

Сообщение Izya »

Правильно делало, что ругалось. Если ты хочешь использовать встроенные в phpBB функции работы с БД, то тебе придется подключить к своему скрипту соответствующий твоей СУБД файл из папки includes/db/, но лучше подключай сразу файл common.php, потому что если ты так и будешь пытаться втыкать функцию obtain_users_online() в ее первозданном виде, то у тебя полезут еще ошибки и про объект $user, и еще про что-нибудь.
Изображение
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3365
Стаж: 17 лет 6 месяцев
Благодарил (а): 37 раз
Поблагодарили: 1454 раза

Re: Список пользователей онлайн на внешних страницах

Сообщение Nekstati »

Вариант: посмотреть, как это сделано в Board3 Portal. Взять соответствующий блок портала, доделать его до полноценной странички (добавив сессию и генерацию страницы, по образцу index.php) и вставить куда надо через <iframe>. Шаблон тоже стянуть из портала.
Psytodelist
phpBB 1.2.0
Сообщения: 15
Стаж: 16 лет 6 месяцев

Re: Список пользователей онлайн на внешних страницах

Сообщение Psytodelist »

коммон подключил, уже ошибки не выводит и результаты не выводит.
Я просто еще не опытный. Может, кто-то все-же сможет написать пример?
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3365
Стаж: 17 лет 6 месяцев
Благодарил (а): 37 раз
Поблагодарили: 1454 раза

Re: Список пользователей онлайн на внешних страницах

Сообщение Nekstati »

Коммон подключил, а сессию запустил?
Пример —forum/index.php.
Psytodelist
phpBB 1.2.0
Сообщения: 15
Стаж: 16 лет 6 месяцев

Re: Список пользователей онлайн на внешних страницах

Сообщение Psytodelist »

Я в плане сессий не разбираюсь. Можете рассказать
в двух словах как её подключить?
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3365
Стаж: 17 лет 6 месяцев
Благодарил (а): 37 раз
Поблагодарили: 1454 раза

Re: Список пользователей онлайн на внешних страницах

Сообщение Nekstati »

Дык… Я ж говорю, смотрите пример… Там же всё по-русски по-английски написано…

Код: Выделить всё

// Start session management
Вот вам готовый скрипт:

Код: Выделить всё

<?php

define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);

// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup();

// Get users online list
$l_online_users = $online_userlist = $l_online_record = '';
$online_users = obtain_users_online(0);
$user_online_strings = obtain_users_online_string($online_users, 0);

$l_online_users = $user_online_strings['l_online_users'];

$online_userlist = $user_online_strings['online_userlist'];

$l_online_record = sprintf($user->lang['RECORD_ONLINE_USERS'], $config['record_online_users'], $user->format_date($config['record_online_date']));

// Output
echo $l_online_users;
echo '<br />' . $l_online_record;
echo '<br /><br />' . $online_userlist;

?>
Psytodelist
phpBB 1.2.0
Сообщения: 15
Стаж: 16 лет 6 месяцев

Re: Список пользователей онлайн на внешних страницах

Сообщение Psytodelist »

Простите, что я такой дурак.
Спасибо за то, что продолжаете следить за темой.
Тема очень интересная для меня, но я все никак не могу
понять в чем проблема:

Файл index.php в папке forum/includes/

Код: Выделить всё

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Документ без названия</title>
</head>

<body>

<?php
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include("../common.php");
include("../config.php");

// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup();

// Get users online list
$l_online_users = $online_userlist = $l_online_record = '';
$online_users = obtain_users_online(0);
$user_online_strings = obtain_users_online_string($online_users, 0);

$l_online_users = $user_online_strings['l_online_users'];

$online_userlist = $user_online_strings['online_userlist'];

$l_online_record = sprintf($user->lang['RECORD_ONLINE_USERS'], $config['record_online_users'], $user->format_date($config['record_online_date']));

// Output
echo $l_online_users;
echo '<br />' . $l_online_record;
echo '<br /><br />' . $online_userlist;

?>
</body>
</html>
Ругается:
The config.php file could not be found.
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3365
Стаж: 17 лет 6 месяцев
Благодарил (а): 37 раз
Поблагодарили: 1454 раза

Re: Список пользователей онлайн на внешних страницах

Сообщение Nekstati »

Указывайте верные пути.

Код: Выделить всё

$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : '../';
Psytodelist
phpBB 1.2.0
Сообщения: 15
Стаж: 16 лет 6 месяцев

Re: Список пользователей онлайн на внешних страницах

Сообщение Psytodelist »

Nekstati, работает! Ура! Ура! Ура! Я счастлив!
Правда вот только перед списком понаписывало:
Сейчас посетителей на форуме: 1, из них зарегистрированных: 1, гостей: 0
Больше всего посетителей (2) на форуме было 14 мар 2010, 18:51

Зарегистрированные пользователи:
Хотя кодировка стоит крилическая. Может, это где-то в модульных файлах?
Только вот беда - не знаю где править...
Супер... IPB втопку... 8-)
Nekstati, я с Вами дружу :D
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3365
Стаж: 17 лет 6 месяцев
Благодарил (а): 37 раз
Поблагодарили: 1454 раза

Re: Список пользователей онлайн на внешних страницах

Сообщение Nekstati »

Ну вы в браузере попереключайте кодировку, чтобы узнать, что там написано. Вообще-то для phpBB стандарт — UTF-8.
IPB втопку
А вот с этим согласна на 100%.
Psytodelist
phpBB 1.2.0
Сообщения: 15
Стаж: 16 лет 6 месяцев

Re: Список пользователей онлайн на внешних страницах

Сообщение Psytodelist »

И еще один вопросик:
Как видоизменить подключение файла "коммон",
если я, скажем, буду делать подобный файл, но уже в корневой своего
сайта, а не в каталоге /forum/ :?: Больше ничего корректировать в коде не нужно?

Добавлено спустя 4 минуты 9 секунд:
И еще: что я могу дать в замен
вам за Вашу помощь? Пока прибыли нет в виде вебманны,
но я полезен во многом... и на баннеры покликать
и порегестрироватся где... или в фотошопе чего навоять...
или сверстать чего. Обращайтесь, если что: ICQ#: 642-848-229
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3365
Стаж: 17 лет 6 месяцев
Благодарил (а): 37 раз
Поблагодарили: 1454 раза

Re: Список пользователей онлайн на внешних страницах

Сообщение Nekstati »

Изменять нужно одну строку: PHPBB_ROOT_PATH : './forum/'
Спасибо за предложение. В другой раз.

Вернуться в «Запросы модов для phpBB 3.0.x»