Устанавливаем код sape/xap на phpbb/phpbb plus

Опубликовано января 20, 2008 
в рубрике CMS

Несмотря на то, что в сети можно найти кучу материала на эту тему, я решил объединить все, что я знаю по этому поводу в своей статье. Кстати про phpbb plus я в свое время никакого материала не нашел. Слава Богу, что там все идентично и поэтому установка кода для phpbb и phpbb plus не будет отличаться. Итак, приступим...

1. Подготовительные действия.
Чтобы все заработало как надо, необходимо в первую очередь установить специальный мод Guest Sessions Mod, который уберет идентификационные сессии для гостей, которые нам не нужны (кстати и для индексации сайта так лучше будет).

Открываем includes/sessions.php
1.1 Ищем:
$sql = "UPDATE " . SESSIONS_TABLE . «
SET session_user_id = $user_id, session_start = $current_time, session_time = $current_time, session_page = $page_id, session_logged_in = $login, session_admin = $admin
WHERE session_id = '» . $session_id . «'
AND session_ip = '$user_ip'»;

Заменяем на:
$sql_ip = $user_id == ANONYMOUS ? « AND session_ip = '$user_ip'» : '';
$sql = "UPDATE " . SESSIONS_TABLE . «
SET session_ip = '$user_ip', session_start = $current_time, session_time = $current_time, session_page = $page_id, session_logged_in = $login, session_admin = $admin
WHERE session_id = '» . $session_id . «' $sql_ip
AND session_user_id = '$user_id'»;

1.2 Ищем:
$SID = 'sid=' . $session_id;
Заменяем на:
$SID = $user_id > 0 ? 'sid=' . $session_id : '';

1.3 Ищем:
$SID = ($sessionmethod == SESSION_METHOD_GET || defined ('IN_ADMIN')) ? 'sid=' . $session_id : '';
Заменяем на:
$SID = $userdata['user_id'] > 0 ? (($sessionmethod == SESSION_METHOD_GET || defined ('IN_ADMIN')) ? 'sid=' . $session_id : '') : '';

1.4 Ищем:
//
// If we reach here then no (valid) session exists. So we'll create a new one,
Перед эти пишем:
elseif (empty ($sessiondata))
{
// try to login guest
$sql = "SELECT u.*, s.*
FROM " . SESSIONS_TABLE . " s, " . USERS_TABLE . " u
WHERE s.session_ip = '$user_ip'
AND s.session_user_id = " . ANONYMOUS . «
AND u.user_id = s.session_user_id
LIMIT 0, 1»;
if ( !($result = $db->sql_query ($sql)) )
{
message_die (CRITICAL_ERROR, 'Error doing DB query userdata row fetch', '', __LINE__, __FILE__, $sql);
}

$userdata = $db->sql_fetchrow ($result);

if ( isset ($userdata['user_id']) )
{
if ( $current_time — $userdata['session_time'] > 60 )
{
$sql = "UPDATE " . SESSIONS_TABLE . «
SET session_time = $current_time, session_start = $current_time, session_page = 0
WHERE session_id = '» . $userdata['session_id'] . «'»;
if ( !$db->sql_query ($sql) )
{
message_die (CRITICAL_ERROR, 'Error updating sessions table', '', __LINE__, __FILE__, $sql);
}
}
return $userdata;
}
}

На этом подготовительный этап завершен и можно устанавливать сам код SAPE или XAP.

2. SAPE.

2.1 Открываем includes/page_tail.php

2.1.1 Ищем:
if ( !defined ('IN_PHPBB') )
{
die ('Hacking attempt');
}

Перед этим пишем:
//
// sape
//
function sapelinks ()
{
define ('_SAPE_USER', 'ваш идентификатор');
require_once ($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php');
$sape = new SAPE_client ();
$output = $sape->return_links ();
return $output;
}

2.1.2 Ищем:
$template->pparse ('overall_footer');
Перед этим пишем:
//
// sape

//
$template->assign_vars (array (
'SAPELINKS' => sapelinks ()
));

Открываем templates/используемый_стиль/overall_footer.tpl
2.2.1 Там, где нужно вывести ссылки, пишем:
{SAPELINKS}

Таким образом, код SAPE установлен. Теперь устанавливаем код XAP, тем более, что процесс установки ничем не отличается.

3. XAP.

3.1 Открываем includes/page_tail.php

3.1.1 Ищем:

if ( !defined ('IN_PHPBB') )
{
die ('Hacking attempt'); }

Перед этим пишем:
function xap_links ()
{
$cache_dir = '/folder/'; // имя Вашей папки папки вместо folder!

include_once ($_SERVER['DOCUMENT_ROOT'] . $cache_dir . 'tnx.php');
$tnx = new TNX_n ('your_login', $cache_dir); // ваш логин в системе
// echo $tnx->show_link (1); // выводим первую ссылку
// echo $tnx->show_link (1); // выводим вторую ссылку, желательно в другом месте страницы, ниже
// echo $tnx->show_link (1); // выводим третью ссылку, желательно в другом месте страницы, ниже
// echo $tnx->show_link (); // выводим оставшиеся, желательно в другом месте страницы, ниже
$output = $tnx->show_link ();
return $output;
}

3.1.2 Ищем:
$template->pparse ('overall_footer');
Перед этим пишем:
$template->assign_vars (array (
'XAP_LINKS' => xap_links ()
));

Открываем templates/используемый_стиль/overall_footer.tpl
3.2.1 Там, где нужно вывести ссылки, пишем:
{XAP_LINKS}

На этом все! Код SAPE или XAP установлен на Вашем форуме phpbb/phpbb plus!

Скачать Guest Sessions Mod

Похожие записи

Комментарии

5 комментариев to “Устанавливаем код sape/xap на phpbb/phpbb plus”

  1. lanastio on марта 8, 2008 21:02

    Приветствую всех участников форума!

    Я уже 7 дней читаю этот форум, и вот решила зарегистрироваться...

    Также хотела бы отметить, что домен [i]www.ravadir.ru[/i] очень подходит для форума

  2. admin on марта 9, 2008 17:05

    Что-то я Вас не понял... 🙂

    Что читаете, форум на phpbb?

  3. stocklock on марта 22, 2008 8:33

    Это спам! У меня тоже самое сообщение точь в точь на форуме висит, на форуме всего 3 темы, а она читает 7 дней. Только смысла этого спама невижу.

  4. admin on марта 22, 2008 11:22

    Да, смысла совсем нет. Ну что поделать, человек так развлекается...в БАН его! 🙂

  5. Ser on января 9, 2010 18:36

    Блин так и не установил сапу на форум. Что-то не выходит.

Оставить комментарий




Это не спам.
сделано dimoning.ru

Разработка 24 design studio