Forum Replies Created
-
Sorry, I don’t know what could be the problem.
Just a quick note: in the same folder as the file thesis.php, you can put a file tarski.php and do some customizations there
The file loaded in that folder (I don’t remember the name right now) depends on the current parent theme.
I had a website using Thesis as theme. When BuddyPress was released, I wanted to have a matching Theme that would inherit all the functionality I already had.
That’s what this theme does.
The widgetized home page is a page template. You need to create a page, select the template in that page, and then configure your WP installation to show that page as a “static front page”.
If you are interested, I’ve released my Thesis integration.
https://buddypress.org/forums/topic/genealogies-theme-integrated-with-thesis
Yes, you need to buy Thesis.
But you can also modify this theme to suit another theme. I have a test installation using Tarski and it works ok.
You don’t need to customize/modify anything in Thesis.
It looks great! Thanks, Andy.
could you explain what it does
it’s a bp theme
what is the goal of it
to be a bp-theme, integrated with Thesis
and who’s developing it?
me
It will happen someday.
Hi,
Check out http://ryuuko.cl
It uses a horizontal user bar at the top. Feel free to see the markup and the css (it displays in place of the login form).
JJJ, the code that Xevo posted ( and I posted in another thread ) IS more effective and also is more correct, because you’re relying in that there’s no output before the signup_header action. Your code was the first thing I tried when I had the problem and, in fact, it didn’t work on my setup.
There are no conflicts because the init action is executed before, so the signup_header action won’t be called.
The signup_header hook is called inside wp_head, so the HTTP headers will be already sent and the redirect won’t be effective.
You can add it to your theme’s functions.php.
This is what I use in my forums:
function gs_bp_forums_add_allowed_tags( $allowedtags ) {
if ( bp_is_group_forum_topic() ) {
$allowedtags['img'] = array( 'src' => array() );
$allowedtags['del'] = array();
$allowedtags['p'] = array();
$allowedtags['br'] = array();
$allowedtags['cite'] = array();
$allowedtags['blockquote'] = array();
$allowedtags['h3'] = array();
$allowedtags['strong'] = array();
$allowedtags['em'] = array();
}
return $allowedtags;
}
add_action( 'plugins_loaded', 'gs_configure_forum_filters' );
function gs_configure_forum_filters() {
remove_filter( 'bp_get_the_topic_post_content', 'attribute_escape' );
remove_filter( 'bp_get_the_topic_post_content', 'convert_smilies' );
remove_filter( 'bp_get_the_topic_post_content', 'convert_chars' );
add_filter( 'edit_allowedtags', 'gs_bp_forums_add_allowed_tags' );
}I decided to release the theme. More news this weekend
Leave it alone. Most themes put a lot of functionality on functions.php. And, if the child theme has a functions file, both of them will be loaded.
I won’t release the theme because without Thesis it doesn’t work. I can customize it for a client and give it under a fee, under a GPL2 license.
My theme has only one file that calls Thesis functions, but Thesis-compatible markup is spreaded all over the template files. They don’t need a Thesis installation, but their markup requires Thesis’ CSS to look good.
In the short-term I want to make an “expansion pack”, with compatible markup with the Tarski Theme. This will be released publicly
You can’t have three themes loaded, only two: a parent and a child.
This is what I do. You can add this in your theme, in mu-plugins or in bp-custom:
function rk_signup_redirect() {
if (strpos($_SERVER['REQUEST_URI'], 'wp-signup.php') !== false ) {
$url = 'http://ryuuko.cl/register';
wp_redirect($url);
exit;
}
}
add_action('init', 'rk_signup_redirect');You should change the url to fit your needs, or use a redirect in .htaccess.
My approach is kind of weird.
First:
I needed a custom BP framework. So I started looking at the old Skeleton Theme. The first thing I noticed is that I didn’t want a fixed layout BP theme, so I removed all sidebars in each template file and wrapped the content inside a function.
This means that every template file of my BP theme was something like this:
<?php
/* my license ... GPL2 of course */
function this_file_content() {
?>
just the content of the page, without sidebars
<?php
}
my_layout_generator( 'this_file_content' );The magic is in my_layout_generator, which defines the html layout of each page. This includes sidebars and other stuff. The sidebars are fully widgetized, and I have custom widgets like “BP Options Bar” and “BP User Bar”, etc. Their content is also managed through actions.
my_layout_generator can mimic any WordPress theme, you just have to write the “skeleton layout” of your target theme.
Second:
This BP framework must be integrated with the WP theme. I setup the framework as child-theme and the original WP theme as parent theme.
Considering this, my_layout_generator has the following body (simplified from the original):
function my_layout_generator( $content_func = '' ) {
get_header();
?>
<div id="container">
<?php
if ( !empty( $content_func ) && is_callable( $content_func ) )
call_user_func( $content_func );
?>
</div>
<div id="sidebars">
<?php // your sidebars code ?>
</div>
<?php
get_footer();
}This uses the original theme headers and footers. I just need to provide the correct markup in the content!
There are other things to care about, like page title. Probably the header of the original theme uses wp_title instead of the BP title. Luckily, wp_title can be filtered! This is actual code from my framework:
add_filter( 'wp_title', 'gs_wp_title' );
// we need to put the current page title on the wp_title filter, so thesis will catch it
function gs_wp_title($title, $sep = '', $seplocation = '') {
if ( bp_is_blog_page() )
return $title;
global $bp;
if ( !empty( $bp->displayed_user->fullname ) ) {
$title = strip_tags( $bp->displayed_user->fullname . ' — ' . ucwords( $bp->current_component ) . ' — ' . $bp->bp_options_nav[$bp->current_component][$bp->current_action]['name'] );
} else if ( $bp->is_single_item ) {
$title = ucwords( $bp->current_component ) . ' — ' . $bp->bp_options_title;
} else if ( $bp->is_directory ) {
if ( !$bp->current_component )
$title = sprintf( __( '%s Directory', 'buddypress' ), ucwords( BP_MEMBERS_SLUG ) );
else
$title = sprintf( __( '%s Directory', 'buddypress' ), ucwords( $bp->current_component ) );
}
return $title;
}Now we have an integrated BP theme framework Mine is integrated with Thesis, I think other themes will be much easier to integrate because you can directly copy their layouts from their template files.
Here are a few screenshots of my integration (with a custom BP framework):
http://egraells.mirlo.cl/files/2009/09/bp-genealogies-preview-1.png
http://egraells.mirlo.cl/files/2009/09/bp-genealogies-preview-2.png
http://egraells.mirlo.cl/files/2009/09/bp-genealogies-preview-3.png
My custom framework initially was written from scratch, but since BP 1.1 I’ve borrowed a lot of code, styles and icons the bp-sn-parent
I prefer the other way around:
– The parent theme will be the original WP theme without modifications (or with light modifications in headers to add the BP navigation).
– The child theme will be the BP theme framework, but without the redundant files ( header, footer, archives, index, etc).
Why? Because some complex WP themes (specially frameworks) have a complex file structure, including internal PHP files with code that is loaded with something like:
load_template( TEMPLATEPATH . '/lib/theme_functions.php' );
TEMPLATEPATH points to the parent theme folder, which means that the included file won’t be found if the theme is a child theme.
If you use this setup, you won’t need to hack the WP theme.
Of course your BP theme will need to be modified to work, because it probably contains some load_template calls.
I tried this with the Thesis theme and it works really good.
Maybe if the user doesn’t belong to any groups, the new topic page could contain an error message. If the user belongs to one or more groups, the “forum” dropdown should list only those forums.