CMSMS v2.2.12
PHPBB v3.2.7
phpbb has some tutorials on how to get the user session and display it into a template:
Code: Select all
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : '../';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
$user->session_begin();
$auth->acl($user->data);
$user->setup();
global $template;
page_header('Login Bar');
$template->set_filenames(array(
'body' => 'top_bar.tpl',
));
//print_r($user->data);
page_footer();
The way i worked around this problem was getting the user's cookie and creating my own database query:
Code: Select all
$cookie = $_COOKIE["v2_btg_forum_sid"];
if( !$cookie ) exit;
$db = new conn_forum; //database connection to your forum
$db->connect();
$sql = "SELECT s.session_id, s.session_ip, s.session_user_id, u.user_type, u.username, u.user_last_privmsg FROM phpbb_sessions s
LEFT JOIN phpbb_users u ON s.session_user_id = u.user_id
WHERE session_id = '".$cookie."'";
$result=$db->query($sql);
while($row = mysqli_fetch_assoc($result)){
$privmsgs = privmsgs($db,$row['session_user_id']);
$session = array(
'session_id'=> $row['session_id'],
'session_user_id'=> $row['session_user_id'],
'username'=> $row['username'],
'session_ip'=> $row['session_ip'],
'pm_new' => $privmsgs['pm_new'],
'pm_unread' => $privmsgs['pm_unread'],
'user_type' => $row['user_type']
);
}
if($session['session_user_id'] > 1){
$tpl = $smarty->CreateTemplate($this->GetTemplateResource('login_bar.tpl'),null,null,$smarty);
$tpl->assign('session',$session);
$tpl->assign('U_PROFILE', 'https://'.FORUM_DOMAIN . '/ucp.php');
$tpl->assign('U_BOOKMARK', 'https://'.FORUM_DOMAIN . '/ucp.php?i=main&mode=bookmarks');
$tpl->assign('U_LOGIN_LOGOUT', 'https://'.FORUM_DOMAIN . '/ucp.php?mode=logout&sid='.$cookie);
$tpl->assign('U_PRIVATEMSGS', 'https://'.FORUM_DOMAIN . '/ucp.php?i=pm&folder=inbox');
if($session['pm_unread'] > 0) {
$tpl->assign('PRIVATE_MESSAGE_COUNT',$session['pm_unread']);
}
$tpl->display();
//echo json_encode($session);
}
function privmsgs($db,$uid){
$sql = "SELECT sum(pm_new) AS pm_new,sum(pm_unread) AS pm_unread FROM phpbb_privmsgs_to WHERE user_id = $uid";
$result=$db->query($sql);
while($row = mysqli_fetch_assoc($result)){
$array = array('pm_new'=> $row['pm_new'], 'pm_unread'=> $row['pm_unread']);
}
return $array;
}
This will provide you with the data, you then need to attache the login_bar.tpl template and process the variables.
Hope this helps.