The New BuddyPress Theme Architecture
August 24, 2009 in News
For the next version of BuddyPress there has been a fair amount of re-factoring work done. We’ve listened to your feedback from version 1.0 and made a number of internal changes that are going to make your lives as plugin developers and theme designers easier.
One of the biggest changes in BuddyPress 1.1 will be the way themes are built.
In version 1.0 BuddyPress required two themes to function. The first theme was a “WordPress home” theme that handled the blog and front page of your site. It was essentially a standard WordPress theme. The second was a “BuddyPress member” theme that would handle the display of pages generated by BuddyPress. There were many reasons for handling themes this way, but as time passed it was evident theming in this fashion was hurting the majority to help the minority.
In BuddyPress 1.1 there will be one single theme to handle everything. BuddyPress will ship with a social network framework theme that acts as a parent theme. The default theme will be a child theme based on this framework and contains only images and css. Building a new BuddyPress theme will be as simple as creating a child theme based on this framework. If you’re not familiar with child themes a quick google search will bring up lots of useful information.
This approach brings big benefits. When building a new theme you don’t need to re-create every template file. You can override specific template files where needed. Most importantly though, your theme will update automatically with the latest functionality when the framework theme is updated.
If you’ve already created a BuddyPress theme using the old system don’t worry, these themes will continue to work for at least the next couple of versions. You should find it fairly simple to convert your themes to the new system. The old default themes only took a few hours to convert over.
Using the framework theme is of course, just an option. You can still go ahead and create your own frameworks or mashups with a completely unique style or structure. As with WordPress themes, the possibilities are infinite.
If you’d like to get started with the new framework, I’d recommend running the trunk version of BuddyPress. The best way is to fetch this via Subversion, or you can download a zip of the current snapshot using the link at the bottom of this Trac browser page.
BuddyPress 1.1 is on track for a September release.
Update:: There seems to be confusion about using existing WordPress themes. You can still use any existing WordPress theme and copy over the extra templates from the framework theme. This will allow you to continue to use your current theme and also keep the same look and feel for BuddyPress features. You may need to make some some CSS adjustments.
Nicola Greco said on August 24, 2009
The BuddyPress Framework idea is awesome!
Cory Duncan said on August 24, 2009
Great step for BuddyPress. This actually works well for WordPress MU themes in general. We’ve been using this method at Substance for a while now and it has worked well.
Andrea_R said on August 24, 2009
I’ve been waitng and hoping for easier theming of members areas, so thanks.
Brian Gardner said on August 24, 2009
This is great news, as I was literally getting ready to code the (cough) second set of theme files that applied to members, etc.
David Lewis said on August 24, 2009
So the idea would be to, ideally, not touch the framework. And you would have enough control via CSS, template file overrides and custom.php to do pretty much anything without messing with the framework?
Andy Peatling said on August 24, 2009
@David Lewis: Yes, you would not touch the framework at all. You can edit anything in your child theme by overriding files on an individual basis.
Matt Wiebe said on August 24, 2009
This is a fantastic idea Andy. I think I’m definitely going to have to dig into BP properly now.
Lisa Sabin-Wilson said on August 24, 2009
This is great news – happy to see BuddyPress integrating frameworks and child themes. Brilliant!
Updating chapters as we speak
nanochrome said on August 24, 2009
Great idea about the theme framework, It would make theme dev a lot easier!
James said on August 24, 2009
I understand that you can override any css, etc, with the use of the child theme.
But what if I want to use any theme out there, and integrate buddypress into it. Will this be possible then?
shuritox said on August 24, 2009
Great news… and a pretty dam good idea! member theme creation is such an headache!
geminorum said on August 24, 2009
I hope, it’ll have a better support for RTL!
Gaetan said on August 24, 2009
That’s great Andy!! and it would be easier to custom…;-)
Jehzeel Laurente said on August 24, 2009
WOOOW! This is a wowwwww!!! I imagined this before, but now, it was so real! Thanks creating BuddyPress mate!
Andy Peatling said on August 24, 2009
@James You can simply copy the template files and not use the framework. I was thinking of also creating a “theme extension framework” at some point, that could be used to extend an existing theme with BuddyPress templates. Not sure if that will work though.
David Bisset said on August 25, 2009
This is great news – personally think the faster and easier GOOD themes are created, the more BuddyPress will gain momentum.
Philip M. Hofer (Frumph) said on August 25, 2009
Yay!
Re: copying the template files.
If everything was available to be edited via the single theme including all of the buddypress core pages that are displayed that is just plain awesome work.
Andy Peatling said on August 25, 2009
@Philip M. Hofer (Frumph): Yes, the new framework removes pretty much all of the hidden HTML in template tags and makes it easy to edit everything. There are also functions like bp_is_profile() bp_is_inbox() etc to isolate different pages.
Arx Poetica said on August 25, 2009
Congratulations on achieving even more awesome.
Arx Poetica said on August 25, 2009
Oh, and also, ditto to David Bisset’s comments, that is, I’ve also thought BP will get it’s fame when people build good themes. I’m working on it.
I know Lisa Sabin-Wilson is writing the book, but where is the documentation? I think that’s the other key to really making things happening, i.e., having very clear instructions on what does what and how to put BuddyPress together.
I’d be willing to help organize something, but I’ll need others.
Walter said on August 25, 2009
Being able to edit everything without touching the Framework is a huge thing for BP. It is just brilliant!!!
Doug Daulton said on August 25, 2009
@andy – This is really great news! One question … will we be able to create multiple child themes so members can select from them to customize their profile page ala MySpace or Ning? If so, will members be able to upload or link to their own CSS/images if desired?
If not, that does not diminish from this great news. It just gives me something to do once the new framework drops!
Haroun Kola said on August 25, 2009
Yay, that’s great news. I’ve stopped working with BuddyPress, wanting to learn WordPress first. Maybe I’ll dip my toes into it again
Александр said on August 25, 2009
Andy,
How it will be difficult to adapt an existing topic on the new format? Nobody warned about such major changes .. and whether there will be something abstract about the changes made? (for the most simple actions to change the order and the actual engine itself?) And, perhaps, an important question: in the next releases are anticipated major changes? well as the fruit of the same type social network – a very bad idea. Thanks in advance for answers!
swingJazz said on August 25, 2009
Buddypress is getting better and better. Thanks a lot Andy.
Tore said on August 25, 2009
Love the way this product evolves.
simonbennett said on August 25, 2009
Errr,
I’m seriously lost on this, has the themes folder structure changed then?
Or is it still “wp-content/themes/bphome”
and..
“wp-content/bp-themes/bpmember”
James said on August 25, 2009
simonbennett
if you’re using the latest trunk, move both the themes, bp-default and bp-sn-framework to the /themes directory
simonbennett said on August 25, 2009
Excellent, thanks James. That makes sense now.
: D
simonbennett said on August 25, 2009
This is scaring me! Can we go back to the old way please, lol.
Do I edit the theme in here “bp-sn-framework”?
What’s with all the other directories – “deprecated”, “bp-default”, etc.
I don’t suppose anyone has an “idiots guide” do they? If so, can they dumb it down some more and send it to me, lol.
simonbennett said on August 25, 2009
Aha… sussed it. It’s a doddle when once you get your head around it!
: P
Matt Kern said on August 25, 2009
This is good news. I actually came up with a way to share common files among the two themes but it was pretty kludgy. This will be a much better way to go.
Thanks Andy!
Juker said on August 25, 2009
I am running a WPMU/Buddypress/BBpress site with twelve (12) individual custom home themes for different types of bloggers to choose from and only one (1) common Buddypress member theme for everyone. – By design I don’t want or need any Buddypress home themes. – Are you sayin’ that I can copy my custom home themes into one common framework? – Or do I need to modify and create 12 iterations of the new framework to continue providing my original themes?- Having twelve frameworks might be OK if I can independantly skin the member side to match the look and feel of my custom home themes.
Did you fix the group avatar scaling problem? Everything else works fine with Buddypress except for the group avatars.
Thanks Andy
Andy Peatling said on August 25, 2009
Juker: Avatar handling has been re-written. Your situation is unique, but you should be able to make it work by trying the new setup. You can always keep your setup the same until you can get something worked out.
Doug Daulton said on August 25, 2009
Andy – This is great news! One question … will the new framework allow for the creation of multiple child themes that the member can select to customize their profile (like MySpace or Ning)?
Assuming this is the case, will members be able to upload/reference custom CSS and/or images?
If this is not the case, no worries. I’ll simply have a new project to work on.
Thanks,
Doug
Andy Peatling said on August 25, 2009
@Doug: Not the case, no.
Jfcarter said on August 25, 2009
Is there a sneak preview of the new theme so we can take a look? Or will it look the same as the current default BP theme?
D3pd said on August 26, 2009
Grazie un fratello molto…
Brainerd Mn Architect said on August 26, 2009
I love it!! Brilliant that there is no need to mess around with the templates. Great job.
Brainerd Architect said on August 26, 2009
A theme extension network would be awesome!! If my vote counts can I use it for that?
Great job!! It really is getting better and better.
Ralev Brand Design said on August 26, 2009
Waiting to see this in action !
I don’t wanna use another social network platform, but you need more to convince me.
The theme problem is just part of the solution…
We need gallery module, video module, sharing pics from the personal gallery module in the common group gallery module ( as in Facebook )..
I think better media integration is the thing that can move this idea to the next level…
Greets from Bulgaria !
studysols.com said on August 26, 2009
great …………………………….like it
Anna said on August 26, 2009
As far as I understand there will be one theme (that is customisable child theme) to rule all site – the main blog, the users blogs and profile sections etc. But will be preserved the ability to have different themes for useres to choose from for their particular blog?… or there only be one theme for all blogs in time without any option?
Anyway I’m going to try the new system right now…
Andy, thank you for posting this info
simonbennett said on August 26, 2009
Correct me if I’m wrong, but if I want to use a Premium WordPress theme for my homepage, do I have to somehow butcher and hack that theme into the bp-sn-framework?
James said on August 26, 2009
@simonbennett
I would also like to know this, trying to integrate it with Thesis isn’t as easy as it was before.
simonbennett said on August 26, 2009
I currently use Brian Gardner’s Church theme. Do I now have to hack that to bits and patch it together with the bp-sn-framework, or vice-versa?
Please tell me I’m being a pillock and all I have to do is drop the theme into a magical directory!
Surely, it would be absolutely crazy to move away from a system that allows “out-of-the-box” home themes to be used, and over to a system where you have to be a hardcore coder to customise it. This will eliminate tens of thousands of potential users in one foul swoop.
bbrian017 said on August 26, 2009
Congrats Andy!
I went and sold yaksocial which was based of your software but I do however intend on starting up another project.
I just love your stuff!
James said on August 26, 2009
@simonbennett
I’m facing the same issues that you are. I hope I’m just missing something.
simonbennett said on August 27, 2009
@James
Don’t know if it helps but I managed to get it working by just uploading the svn trunk to plugins/svn and renaming it “buddypress” after renaming the original directory to “buddypress-old”.
I have no idea why, but this left my main wordpress theme intact, but somehow loaded the new trunk version of buddypress in a sort of mish-mash of my bpmember theme and the admin bar from the “deprecated” directory.
Mad as hell I know, but hey, I’m trying my hardest here with very little feedback or support and I have 2,200 angry BP users on my site!!!
Victor Teixeira said on August 27, 2009
Andy, I think this new concept is the way to go.
The only thing not OK is that you must give a away for people to use common wordpress themes as their homepage.
Just give the ability for the admin blog to select a wordpress theme and that’s it.
It will override eh framework for the admin blog but not for the Social network (profiles,…)
The issues just started, see above.
This is WordPress and if I want to use a wordpress theme as my homepage theme I must be able to do so.
Victor Teixeira, Brasil
If I can’t use a wordpress theme then it’s not wordpress anymore.