I started looking into it and have it working the way I wanted it. Heres how I did it if anyone else is interested:
in /bridge/phpbb.inc.php find:
// Prefix and names for the database tables
define('PHPBB_TABLE_PREFIX', 'lrbb_'); // The prefix used for the DB tables
define('PHPBB_USER_TABLE', 'users'); // The members table
define('PHPBB_SESSION_TABLE', 'sessions'); // The session table
define('PHPBB_GROUP_TABLE', 'groups'); // The groups table
define('PHPBB_UGROUP_TABLE', 'user_group'); // The group/user table
after add:
define('PHPBB_THEME_TABLE', 'themes');
find:
// Retrieve the groups the user is a member of
$sql = "SELECT (ug.group_id + 5) as group_id " . "FROM " . $UDB_DB_NAME_PREFIX . PHPBB_TABLE_PREFIX . PHPBB_UGROUP_TABLE . " as ug " . "LEFT JOIN " . $UDB_DB_NAME_PREFIX . PHPBB_TABLE_PREFIX . PHPBB_GROUP_TABLE . " as g ON ug.group_id = g.group_id " . "WHERE user_id = " . USER_ID . " AND user_pending = 0 AND group_single_user = 0";
$result = db_query($sql, $UDB_DB_LINK_ID);
while ($row = mysql_fetch_array($result)) {
array_push($USER_DATA['groups'], $row['group_id']);
}
mysql_free_result($result);
$user_group_set = '(' . implode(',', $USER_DATA['groups']) . ')';
// Default group data
$USER_DATA['group_quota'] = 1;
$USER_DATA['can_rate_pictures'] = 0;
$USER_DATA['can_send_ecards'] = 0;
$USER_DATA['can_post_comments'] = 0;
$USER_DATA['can_upload_pictures'] = 0;
$USER_DATA['can_create_albums'] = 0;
$USER_DATA['pub_upl_need_approval'] = 1;
$USER_DATA['priv_upl_need_approval'] = 1;
$USER_DATA['upload_form_config'] = 0;
$USER_DATA['num_file_upload'] = 0;
$USER_DATA['num_URI_upload'] = 0;
$USER_DATA['custom_user_upload'] = 0;
$USER_DATA = array_merge($USER_DATA, cpgGetUserData($USER_DATA['groups'][0], $USER_DATA['groups'], PHPBB_GUEST_GROUP));
define('USER_GROUP', '');
define('USER_GROUP_SET', $user_group_set);
define('USER_IS_ADMIN', ($USER_DATA['user_level'] == 1));
define('USER_CAN_SEND_ECARDS', (int)$USER_DATA['can_send_ecards']);
define('USER_CAN_RATE_PICTURES', (int)$USER_DATA['can_rate_pictures']);
define('USER_CAN_POST_COMMENTS', (int)$USER_DATA['can_post_comments']);
define('USER_CAN_UPLOAD_PICTURES', (int)$USER_DATA['can_upload_pictures']);
define('USER_CAN_CREATE_ALBUMS', (int)$USER_DATA['can_create_albums']);
define('USER_UPLOAD_FORM', (int)$USER_DATA['upload_form_config']);
define('CUSTOMIZE_UPLOAD_FORM', (int)$USER_DATA['custom_user_upload']);
define('NUM_FILE_BOXES', (int)$USER_DATA['num_file_upload']);
define('NUM_URI_BOXES', (int)$USER_DATA['num_URI_upload']);
} else {
$USER_DATA = cpgGetUserData(PHPBB_GUEST_GROUP, array(), PHPBB_GUEST_GROUP);
define('USER_ID', 0);
define('USER_NAME', 'Anonymous');
define('USER_GROUP_SET', '(' . PHPBB_GUEST_GROUP . ')');
define('USER_IS_ADMIN', 0);
define('USER_CAN_SEND_ECARDS', (int)$USER_DATA['can_send_ecards']);
define('USER_CAN_RATE_PICTURES', (int)$USER_DATA['can_rate_pictures']);
define('USER_CAN_POST_COMMENTS', (int)$USER_DATA['can_post_comments']);
define('USER_CAN_UPLOAD_PICTURES', (int)$USER_DATA['can_upload_pictures']);
define('USER_CAN_CREATE_ALBUMS', 0);
define('USER_UPLOAD_FORM', (int)$USER_DATA['upload_form_config']);
define('CUSTOMIZE_UPLOAD_FORM', (int)$USER_DATA['custom_user_upload']);
define('NUM_FILE_BOXES', (int)$USER_DATA['num_file_upload']);
define('NUM_URI_BOXES', (int)$USER_DATA['num_URI_upload']);
mysql_free_result($result);
}
}
after add:
//phpbb users theme
function udb_userstyle($uid)
{
global $UDB_DB_LINK_ID, $UDB_DB_NAME_PREFIX;
$sql = "SELECT template_name as theme" . " FROM " . $UDB_DB_NAME_PREFIX . PHPBB_TABLE_PREFIX . PHPBB_USER_TABLE . ", ". $UDB_DB_NAME_PREFIX . PHPBB_TABLE_PREFIX . PHPBB_THEME_TABLE . " " . "WHERE user_id='$uid' AND themes_id=user_style";
$result = db_query($sql, $UDB_DB_LINK_ID);
if (mysql_num_rows($result)) {
$row = mysql_fetch_array($result);
mysql_free_result($result);
return $row['theme'];
} else {
return 'classic';
}
}
in /include/init.inc.php find:
// Load theme file
if (isset($USER['theme']) && !strstr($USER['theme'], '/') && is_dir('themes/' . $USER['theme'])) {
$CONFIG['theme'] = strtr($USER['theme'], '$/\\:*?"\'<>|`', '____________');
} else {
unset($USER['theme']);
}
replace with:
// Load theme file
if (defined('UDB_INTEGRATION') && isset($USER_DATA['user_id']) && empty($HTTP_GET_VARS['theme'])) {
$CONFIG['theme'] = udb_userstyle((int)$USER_DATA['user_id']);
unset($USER['theme']);
} else {
if (isset($USER['theme']) && !strstr($USER['theme'], '/') && is_dir('themes/' . $USER['theme'])) {
$CONFIG['theme'] = strtr($USER['theme'], '$/\\:*?"\'<>|`', '____________');
} else {
unset($USER['theme']);
}
}
So now when a user is logged in, cpg will use the same theme as phpbb. As long as the phpbb templates dirs and the cpg themes dirs have the same names (ex.. (phpbb2 dir)/templates/mytheme1 and (cpg dir)/themes/mytheme1), if the dir doesn't exsist, cpg defaults to classic.
Should work with other bb's, you'll just need to modify the right bridge file and modify the sql statement.