нужно поставить Сапу на пхбб форум.

D
На сайте с 11.02.2006
Offline
110
724

есть спецы ? :)

разумеется за умеренную плату :)

Design добавил 15.12.2008 в 18:53

спасибо :D уже разобрался вот по этой статейке :idea:

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}

Design добавил 15.12.2008 в 18:54

все потестил, работает :idea:пользуйтесь кому нада :)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий