Старый 25.02.2008, 00:45   #1 (permalink)
Новичок
 
Регистрация: 24.02.2008
Сообщений: 13
Репутация: 15
По умолчанию phpBB 2 - интеграция

Документации по тому, как устроен этот форум и как в его интегрировать я не читал. Но по роду деятельности пришлось с ним столкнуться. И чтобы не забыть, что и как я в нем менял, сохранил это себе на комп. Выложу здесь, вдруг кому пригодится.

1. Дизайн. Без создания новых шаблонов. Просто прикрутить дизайн моего сайта к форуму. Меняем 2 файла шаблона в папке templates/subSilver - overall_header.tpl и overall_footer.tpl.

2. Внедрить свой php код в шаблон. Например вставить какую-нибудь баннеро-крутику:
В конце файла includes/page_header.php , там где идет наполнение массива темплейта. Добавляем в массив свою вставку, например в моем случае это была форма авторизации на сайте:
PHP код:
'RX_AUTH' => rx_auth_form(),//   rx added 
Здесь мы сказали движку, что если он встретит в шаблоне строку {RX_AUTH}, то заменить её на результат работы ф-ции rx_auth_form().
Перед этим массивом пишем нашу ф-цию:
PHP код:
function rx_auth_form(){
...
return 
"hello world";
}
Теперь добавляем встаку в шаблон (напрфайл templates/subSilver/overall_header.tplвставляем в нужном месте {RX_AUTH}. И всётеперь здесь будет выводится результат работы нашей ф-ции

3. Если будете что
-либо писать для форумато можно пользоваться слпеременными/функциями:
СООБЩЕНИЕ ОБ ОШИБКЕ
message_die
(GENERAL_MESSAGE"сообщение");
message_die(GENERAL_ERROR"сообщение");

РАСПОЗНАТЬ ПОЛЬЗОВАТЕЛЯ:
if(
$userdata['user_id'] == ANONYMOUS)  аноним
if($userdata['session_logged_in'])    вошедший

$userdata     данные пользователя
$lang        языковой файл
$template    массив темплейта
(замены)
redirect(append_sid("index.$phpEx"true)); переадресация с добавлением сессии


4. Некоторые ф
-циикоторые я использовал в форуме для интеграции с сайтом:
$bb_prefix-префикс таблиц

ЧИСТКА ФОРУМА ОТ МЕРТВЫХ ПОЛЬЗОВАТЕЛЕЙ
    $user_lastvisit
=31536000;//год. Сколько секунд назад был пользователь на сайте
    
$user_lastvisit2=889200;//неделя. В этот период можно оставлять 1 сообщение
    
$msg_count=2;// сколько сообщений оставил
    // Выбираем пользователей
    
$result=@mysql_query("SELECT user_id FROM `".$bb_prefix."_users` WHERE (user_lastvisit<$user_lastvisit)or(user_posts<$msg_count)");
    while(
$data=@mysql_fetch_array($result)){
        
$user_id=intval($data['user_id']);
        
$result2=@mysql_query("DELETE FROM `".$bb_prefix."_users` WHERE user_id=$user_id");
        
$result2=@mysql_query("SELECT group_id FROM `".$bb_prefix."_user_group` WHERE user_id=$user_id");
        
$data2=@mysql_fetch_array($result2);
        
$group_id=intval($data['group_id']);
        
$result2=@mysql_query("DELETE FROM `".$bb_prefix."_user_group` WHERE user_id=$user_id");
        
$result2=@mysql_query("DELETE FROM `".$bb_prefix."_groups` WHERE group_id=$group_id");
    }

---------------------------------------

// проверка существования логина
function rx_forum_check_username($username$bb_prefix='phpbb'){
    
$result=@mysql_query("SELECT * FROM `".$bb_prefix."_users` WHERE username='$username' LIMIT 1");
    return (@
mysql_num_rows($result))?true:false;
}

---------------------------------------

// добавить пользователя
function rx_forum_registration($login$pass$mail$bb_prefix='phpbb'){
    
$time=time();
    
$pass=md5($pass);

    
// ид пользователя
    
$result=@mysql_query("SELECT MAX(user_id) as max_user FROM `".$bb_prefix."_users`");
    
$data=@mysql_fetch_array($result);
    
$user_id=intval($data['max_user']);
    
$user_id++;

    
// ид группы
    
$result=@mysql_query("SELECT MAX(".$bb_prefix."_groups.group_id) as max_g1, MAX(".$bb_prefix."_user_group.group_id) as max_g2 FROM `".$bb_prefix."_user_group`, `".$bb_prefix."_groups`");
    
$data=@mysql_fetch_array($result);
    
$group_id=($data['max_g1']>$data['max_g2'])?$data['max_g1']:$data['max_g2'];
    
$group_id++;

    
// запись инфо о новом пользователе
    
$result=@mysql_query("INSERT INTO `".$bb_prefix."_users` (
    `user_id`, `user_active`, `username`, `user_password`, `user_session_time`, `user_session_page`, `user_lastvisit`, `user_regdate`, `user_level`, `user_posts`, `user_timezone`, `user_style`, `user_lang`, `user_dateformat`, `user_new_privmsg`, `user_unread_privmsg`, `user_last_privmsg`, `user_login_tries`, `user_last_login_try`, `user_emailtime`, `user_viewemail`, `user_attachsig`, `user_allowhtml`, `user_allowbbcode`, `user_allowsmile`, `user_allowavatar`, `user_allow_pm`, `user_allow_viewonline`, `user_notify`, `user_notify_pm`, `user_popup_pm`, `user_rank`, `user_avatar`, `user_avatar_type`, `user_email`, `user_icq`, `user_website`, `user_from`, `user_sig`, `user_sig_bbcode_uid`, `user_aim`, `user_yim`, `user_msnm`, `user_occ`, `user_interests`, `user_actkey`, `user_newpasswd`)
     VALUES ($user_id, 1, '$login', '$pass', 0, 0, 0, $time, 0, 0, 3.00, 1, 'russian', 'D M d, Y g:i a', 0, 0, 0, 0, 0, NULL, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, '', 0, '$mail', '', '', '', '', '', '', '', '', '', '', '', NULL)"
);
    
$result=@mysql_query("INSERT INTO `".$bb_prefix."_user_group` (`group_id`, `user_id`, `user_pending`) VALUES ($group_id, $user_id, 0)");
    
$result=@mysql_query("INSERT INTO `".$bb_prefix."_groups` (`group_id`, `group_type`, `group_name`, `group_description`, `group_moderator`, `group_single_user`) VALUES ($group_id, 1, '', 'Personal User', 0, 1)");


--------------------------------------------

Делал ещё "антифлуд" для него, но это уже другая тема. Слишком объемная.
Вобщем мало-ли кому пригодится вышеизложенное. Я ведь понимаю, когда заказчики требуют результат, а твоя задача вскрыть интернет, чтоб найти нужную инфу. Да как можно быстрей.

Последний раз редактировалось AleX; 25.02.2008 в 12:58.
RXcoder вне форума  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl this Post!Reddit! Wong this Post! Добавить в закладки Google
Ответить с цитированием
3 пользователя(ей) отблагодарили RXcoder за это сообщение:
AleX (25.02.2008), Devil (25.02.2008), Kurbatov (25.02.2008)
Ответ



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Интеграция Joomla + vBulletin Myhu Joomla 2 11.06.2008 04:06
PhpBB, что за зверь? Devil phpBB 21 29.05.2008 16:45
Интеграция с ASP.NET в IIS 6.0 и IIS 7.0 Kurbatov IIS 3 24.04.2008 22:05
phpBB 2.0.22 AleX phpBB 1 06.03.2008 20:34
Интеграция AnD1 Joomla 32 02.03.2008 17:45



Часовой пояс GMT +3, время: 03:18.
vBulletin® версия 7.6.1.
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Web Mastering By Devil Art