I've worked out the kinks for me and it's pretty simple. I used Hybrid News and these instructions are used after Hybrid News is up and running.
1. Add all BP1.2 beta default theme folders to the Hybrid News theme folder
2. Add a tag for "buddypress" in style.css for News
3. Add the following from BP's style.css to News' style.css
/***
* The BuddyPress default theme styles.
*/
@import url( _inc/css/default.css );
/***
* The admin bar styles.
*/
@import url( _inc/css/adminbar.css );
4. before all actions and filters in News' functions.php, make sure the following is in place:
/* Stop the theme from killing WordPress if BuddyPress is not enabled. */
if ( !class_exists( 'BP_Core_User' ) )
return false;
/**
* This is your child theme's functions.php file.
* You should make edits and add additional code above this point.
* Only change the functions below if you know what you're doing.
*/
/********************************************************/
/* Constant paths. */
define( 'HYBRID_NEWS', get_stylesheet_directory() );
define( 'HYBRID_NEWS_URL', get_stylesheet_directory_uri() );
/* BP-RELATED Load the AJAX functions for the theme */
require_once( HYBRID_NEWS . '/_inc/ajax.php' );
/* BP RELATED Load the javascript for the theme */
wp_enqueue_script( 'dtheme-ajax-js', HYBRID_NEWS_URL . '/_inc/global.js', array( 'jquery' ) );
/* For localization. */
load_theme_textdomain( 'news', HYBRID_NEWS );
/* Hybrid News theme settings. */
$news_settings = get_option( 'hybrid_news_theme_settings' );
/* Include admin files. */
if ( is_admin() )
require_once( HYBRID_NEWS . '/library/admin/theme-settings.php' );
5. After all the other code in functions.php add this from BP's functions.php
/* Make sure the blog index page shows under /[HOME_BLOG_SLUG] if enabled */
function bp_dtheme_show_home_blog() {
global $bp, $query_string, $paged;
if ( $bp->current_component == BP_HOME_BLOG_SLUG && ( !$bp->current_action || 'page' == $bp->current_action ) ) {
unset( $query_string );
if ( ( 'page' == $bp->current_action && $bp->action_variables[0] ) && false === strpos( $query_string, 'paged' ) ) {
$query_string .= '&paged=' . $bp->action_variables[0];
$paged = $bp->action_variables[0];
}
query_posts($query_string);
bp_core_load_template( 'index', true );
}
}
add_action( 'wp', 'bp_dtheme_show_home_blog', 2 );
function bp_dtheme_firstname( $name = false, $echo = false ) {
global $bp;
if ( !$name )
$name = $bp->loggedin_user->fullname;
$fullname = (array)explode( ' ', $name );
if ( $echo )
echo $fullname[0];
else
return $fullname[0];
}
function bp_dtheme_show_on_frontpage() {
$settings = get_option( 'hybrid_news_theme_settings' );
if ( empty( $settings['show_on_frontpage'] ) || 'blog' == $settings['show_on_frontpage'] )
return 'blog';
return 'activity';
}
/* Add words that we need to use in JS to the end of the page so they can be translated and still used. */
function bp_dtheme_js_terms() { ?>
<script type="text/javascript">
var bp_terms_my_favs = '<?php _e( "My Favorites", "buddypress" ) ?>';
var bp_terms_accepted = '<?php _e( "Accepted", "buddypress" ) ?>';
var bp_terms_rejected = '<?php _e( "Rejected", "buddypress" ) ?>';
var bp_terms_show_all_comments = '<?php _e( "Show all comments for this thread", "buddypress" ) ?>';
var bp_terms_show_all = '<?php _e( "Show all", "buddypress" ) ?>';
var bp_terms_comments = '<?php _e( "comments", "buddypress" ) ?>';
</script>
<?php
}
add_action( 'wp_footer', 'bp_dtheme_js_terms' );
That's it. But, the css files imported in step 3 need to be modified. I started by commenting out the body and header styles, but much more needs to be done.
Hope this helps. Thanks to davek and andrea_r for sending me files to play with so I could figure it out.