Пропустить

"Кто сейчас на форуме" - интеграция с сайтом.

Форум для авторов модов для phpBB 2.0.x.

"Кто сейчас на форуме" - интеграция с сайтом.

Сообщение YogSagot » 15.04.2006 0:46

Мне удалось у себя на сайте www.chepe.lv самолично прикрутить к hphbb такую фичу, что в списке "Кто сейчас на форуме" показываються не только и не столько посетители форума, но и вообще посетители всех (ну, пока еще не всех, но остальные в планах) страниц сайта, будь то новости, статьи, галлерея или ссылки.

Если кому интересно, могу поделиться кодом. Благо, он не так и сложен.
Аватара пользователя
YogSagot
phpBB 1.4.4
 
Сообщения: 98
Зарегистрирован: 15.04.2006 0:41
Откуда: Латвия, г.Даугавпилс
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение SugutorBatia » 15.04.2006 13:50

YogSagot
Мне интересно... Даш посмотреть?
http://batia.info
Быстрое решение проблемы с PhpBB3: Кодировки
Аватара пользователя
SugutorBatia
phpBB 2.0.2
 
Сообщения: 151
Зарегистрирован: 31.08.2005 12:23
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение YogSagot » 15.04.2006 14:15

phpbb/includes/constatns.php
define('SITE_INDEX', -20);
define('SITE_LINKS', -21);

По константе на каждую страницу. Константы именно такие, минусовые.

phpbb/language/lang_russian/lang_main.php
$lang['Viewing_site_index'] = 'Просмотр главной страницы сайта';
$lang['Viewing_site_links'] = 'Просмотр ссылок на сайте';


phpbb/viewonline.php
//Находим
case PAGE_FAQ:
        $location = $lang['Viewing_FAQ'];
        $location_url = "faq.$phpEx";
        break;
//После чего вставляем
case SITE_INDEX:
        $location = $lang['Viewing_site_index'];
        $location_url = '../index.php';
        break;
case SITE_LINKS:
        $location = $lang['Viewing_site_links'];
        $location_url = '../links.php';
        break;


Ну и последний штрих. В каждую страницу из тех, что должны быть видны в списке, в самое начало вставляеться код стандартной авторизации phpbb:
define('IN_PHPBB', true);
$phpbb_root_path = 'phpbb/';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);

//
// Start session management
//
$userdata = session_pagestart($user_ip, SITE_INDEX);
init_userprefs($userdata);
//
// End session management
//


У меня работало...
Аватара пользователя
YogSagot
phpBB 1.4.4
 
Сообщения: 98
Зарегистрирован: 15.04.2006 0:41
Откуда: Латвия, г.Даугавпилс
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение SugutorBatia » 15.04.2006 15:05

Спасибо, попробую :)
Результат расскажу позже.

Добавлено спустя 27 минут 3 секунды:

:cry: Это работает только если все эти файлы в корневой директории лежат, а если например http://mysite/text/page.php - то нифига оно не работает :( Потому что путь приходится прописывать либо абсалютный либо с "/" в начале пути. И тогда PHP не передает переменные :(((((
http://batia.info
Быстрое решение проблемы с PhpBB3: Кодировки
Аватара пользователя
SugutorBatia
phpBB 2.0.2
 
Сообщения: 151
Зарегистрирован: 31.08.2005 12:23
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение YogSagot » 15.04.2006 15:57

$location_url = '../page.php'; для страницы, что в подкаталоге, заменяешь на $location_url = '../text/page.php';

Ну а в коде самой страницы. $phpbb_root_path = 'phpbb/'; заменяешь на $phpbb_root_path = '../phpbb/';

И все должно работать.
Аватара пользователя
YogSagot
phpBB 1.4.4
 
Сообщения: 98
Зарегистрирован: 15.04.2006 0:41
Откуда: Латвия, г.Даугавпилс
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение SugutorBatia » 15.04.2006 16:15

YogSagot
нет, не работает так :(
Это потому что путь $phpbb_root_path = '../phpbb/'; содержит / перед началом.... поэтому значения переменных не передаются.
http://batia.info
Быстрое решение проблемы с PhpBB3: Кодировки
Аватара пользователя
SugutorBatia
phpBB 2.0.2
 
Сообщения: 151
Зарегистрирован: 31.08.2005 12:23
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение YogSagot » 15.04.2006 16:37

SugutorBatia писал(а):YogSagot
нет, не работает так :(
Это потому что путь $phpbb_root_path = '../phpbb/'; содержит / перед началом.... поэтому значения переменных не передаются.

Нипонял. При чем тут слэш и что значит "значения переменных не передаються"? :shock:
Аватара пользователя
YogSagot
phpBB 1.4.4
 
Сообщения: 98
Зарегистрирован: 15.04.2006 0:41
Откуда: Латвия, г.Даугавпилс
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение SugutorBatia » 15.04.2006 17:12

короче....

Смотри.
Есть файл например:
index_1.php, index_2.php и config.php

index_1.php
<?PHP
include"path-to/folder/config.php";
echo $var;
?>

index_2.php
<?PHP
include"/path-to/folder/config.php";
echo $var;
?>


config.php
<?PHP
$var = " значение переменной ";
?>



Так вот, если в браузере открыть файл index_1.php то на экран выведется:
значение переменной


А если в браузере открыть файл index_2.php то на экран выдаст ошибку:
Notice: Undefined variable: var in z:\home\domian.ru\www\index_2.php on line 2
http://batia.info
Быстрое решение проблемы с PhpBB3: Кодировки
Аватара пользователя
SugutorBatia
phpBB 2.0.2
 
Сообщения: 151
Зарегистрирован: 31.08.2005 12:23
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение YogSagot » 15.04.2006 18:01

Аватара пользователя
YogSagot
phpBB 1.4.4
 
Сообщения: 98
Зарегистрирован: 15.04.2006 0:41
Откуда: Латвия, г.Даугавпилс
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение SugutorBatia » 15.04.2006 18:51

гм... да вроде того... Но как решить это? неясно :(
http://batia.info
Быстрое решение проблемы с PhpBB3: Кодировки
Аватара пользователя
SugutorBatia
phpBB 2.0.2
 
Сообщения: 151
Зарегистрирован: 31.08.2005 12:23
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение MXM » 28.09.2006 10:48

YogSagot, хм... не нашел твою тему, когда искал ответ на свой вопрос, моя тема похожа на твою:
Страница со своим lang.

У меня вопрос: как образуются константы.
YogSagot писал(а):phpbb/includes/constatns.php
define('SITE_INDEX', -20);
define('SITE_LINKS', -21);
Почему именно минусовые, с каким шагом должны они отличаться друг от друга, с какого числа они должны начаться?
Аватара пользователя
MXM
phpBB 2.0.18
 
Сообщения: 555
Зарегистрирован: 17.08.2004 13:45
Откуда: Санкт-Петербург
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.

Сообщение YogSagot » 28.09.2006 18:29

MXM
Число больше нуля означает ID форума, на котором сидит пользователь. По этому константы минусовые. Всего в phpbb определено 12 родных констант от 0 до -11. Число -20 было взято просто так, с потолка.
Аватара пользователя
YogSagot
phpBB 1.4.4
 
Сообщения: 98
Зарегистрирован: 15.04.2006 0:41
Откуда: Латвия, г.Даугавпилс
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение MXM » 25.12.2006 11:18

YogSagot, можно еще вопросик:
Ситуация: пытаюсь вставить на созданную страницу: ссылку на прикрепленный файл из одной темы на форуме, вот к примеру, вставляю -
<a href="./download.php?id=40" target="_blank" class="genmed"><b>Скачать</b></a>
Делаю это так:
ОТКРЫВАЮ addpage_body.tpl и вставляю ссылку, ПОЛУЧАЮ:
<table width="100%" cellspacing="2" cellpadding="2" border="0" align="center">
        <tr>
                <td align="left" class="nav"><a href="{U_INDEX}" class="nav">{L_INDEX}</a></td>
        </tr>
</table>

<table class="forumline" width="100%" cellspacing="1" cellpadding="3" border="0" align="center">
        <tr>
                <th class="thHead">{L_ADDPAGE_TITLE}</th>
        </tr>
        <tr>
                <td class="row1">

                        <br />

<a href="./download.php?id=40" target="_blank" class="genmed"><b>Скачать</b></a></td>

</table>

<table width="100%" cellspacing="2" border="0" align="center">
        <tr>
                <td align="right" valign="top" nowrap="nowrap"><span class="gensmall">{S_TIMEZONE}</span>{JUMPBOX}</td> 
        </tr>
</table>
Но, почему-то не работает sid? Зарегистрированным пользователям скачать вложение с этой страницы нельзя? Подскажи, в чем может быть причина?

Вот код страницы addpage:
<?php

define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);

//
// Start session management
//
$userdata = session_pagestart($user_ip, PAGE_ADDPAGE);
init_userprefs($userdata);
//
// End session management
//

$lang_file = 'lang_addpage';

include($phpbb_root_path . 'language/lang_' . $board_config['default_lang'] . '/' . $lang_file . '.' . $phpEx);

//
// Generate page
//
$page_title = $lang['addpage'];
include($phpbb_root_path . 'includes/page_header.'.$phpEx);

$template->set_filenames(array(
        'body' => 'addpage_body.tpl')
);
make_jumpbox('viewforum.'.$phpEx);



$template->assign_vars(array(
        'L_ADDPAGE_TITLE' => $lang['addpage'])
);

$template->pparse('body');

include($phpbb_root_path . 'includes/page_tail.'.$phpEx);

?>
Аватара пользователя
MXM
phpBB 2.0.18
 
Сообщения: 555
Зарегистрирован: 17.08.2004 13:45
Откуда: Санкт-Петербург
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.

Сообщение YogSagot » 25.12.2006 19:38

MXM
Все внутренние ссылки должны пропускаться через функцию append_sid(); на стороне рнр скрипта, чего у тебя я как раз таки и не наблюдаю. Ну а так как ты подключал common.php (а ты не мог его не подключить), то эта функция тебе полностью доступна.
Аватара пользователя
YogSagot
phpBB 1.4.4
 
Сообщения: 98
Зарегистрирован: 15.04.2006 0:41
Откуда: Латвия, г.Даугавпилс
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение Lstasss » 26.12.2006 9:32

MXM, тебе нужно написать там не конкреиный адрес страницы, а переменную, как для других ссылок и в соответсвующем файле этой переменной присвоить значение. Иначе SIDа не будет...
обожаю строку "EoM" :D
http://nepopsisty.net/forum.php - форум НЕпопсистов :twisted:

Lstasss
phpBB 2.0.2
 
Сообщения: 167
Зарегистрирован: 27.09.2006 22:08
Откуда: Варшава (Польша) / Кишинёв (Молдова)
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

След.

Вернуться в Для авторов (phpBB 2.0.x)

 

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

Бессрочный конкурс phpBB-ориентированных материалов
FastVPS — надёжный и доступный хостинг для phpBB
Место для вашей рекламы