Solution Technologies
Управление сайтом без ограничений

Блог разработчиков XS2

Случай доброкачественного паразитарного сопряжения (XS2+PHPB3)

15.05 '2008 18:19arsenicum

arsenicum, phpbb, интеграция, форум

Многие разработчики на XS2 сталкивались с необходимостью сопряжения XS2 с форумом PHPBB и многие демонстрировали при этом чудеса смекалки. PHPBB не имеет никакого API для манипулирования пользователями из внешних приложений, что сильно усложняет интеграцию с ним. В этом посте мы приводим пример кошерного сопряжения с PHPBB.

При интеграции с XS2 часто встает задача синхронизации пользователей модуля XS2 users. Иными словами при создании новых объектов user необходимо создавать иденитичные аккаунты в PHPBB, при их удалении нужно синхронно удалять пользователей форума. Кроме того, часто необходимо выводить информацию о количестве личных сообщений или ранге пользователя PHPBB в шаблонах XS2. Изрядно попотев на кодом PHPBB мы написали простенький процессор, содержащий функции, которые позволяет информацию о пользователе, добавлять и удалять пользователей PHPBB. Вот он:

<?
define('IN_PHPBB', true);
//путь к форуму относительно корня сайта
$phpbb_root_path = 'forum/';
$phpEx = 'php';
include($phpbb_root_path . 'common.' . $phpEx);
include($phpbb_root_path . 'includes/functions_user.' . $phpEx);

//Функция возвращает информацию о PHPBB-юзере
function login_user($username,$password){
    global $auth,$user,$phpEx;
    $auth->login($username,$password); 
    return $user;
}

//это функция позволяет добавить нового пользователя
//при этом мы передаем в нее урл аватары, уже хранящейся в объекте user - в этом случае картинка не будет хранится на сервере два раза
function add_user($username, $password, $email, $avatar_url, $group_id=2){
    $user_id = user_add(array(
        'username'=>$username,
        'user_password'=>phpbb_hash($password),
        'group_id'=>$group_id,
        'user_type'=>USER_NORMAL,
        'user_email'=>$email
    ));
   
    if ($user_id && $avatar_url){
        $_REQUEST['remotelink']=$avatar_url; 
        $ar = avatar_process_user($error, array('user_id'=>$user_id));
        if(sizeof($error)>0 || !$av){
            return 0;  
        }
    }
    else{
        return 0;  
    }
    return $user_id;
}

//эта функция удаляет пользователя
function delete_user($user_id,$post_username=false){
    return user_delete('remove',$user_id,$post_username);
}
?>


Коментарий

Имя
Текст
Защита от неграмотных
 

Новости

25.06 '2008
26.03 '2008
11.01 '2008

Пресс-релизы

12.11 '2007
27.06 '2007

Наши клиенты

Наш сайт работает на XS2 уже 5 месяцев. XS2 представляется очень удобным для формирования контента сайта. Контент-менеджеры сайта с легкостью решают задачи, работая одновременно в интуитивно понятной оболочке.      

Анастасия Ильина, Исполнительный директор ООО «Подводный мир»www.podmir.ru
Copyright ©1998-2008 Солютекс. Все права защищены.
Этот сайт сделан в designLab | Работает на технологии XS2
Условия использования | О защите конфиденциальности