Group Mods

  • Avatar Image
  • Avatar Image
  • Avatar Image

Support: Creating & Extending (Support Group)

Existing and new plugins/components and themes.

Details About the New Theme Architecture (40 posts)

Started 1 year ago by: Jeff Sayre

← Group Forum   Support Forums
  • Avatar Image Jeff Sayre said 1 year ago:

    With BuddyPress version 1.1–which will be officially released in the next several weeks–there will no longer be bhome and bpmember themes. Instead, BuddyPress will adopt the parent/child theme architecture that WP 2.7 made possible.

    Backwards compatibility will remain for a while for those that want/need to use the old theming architecture. To use the old theme architecture, you need to keep the /bp-themes/ directory. Place/keep your old member themes in there. BuddyPress should override the new theme architecture in favor of the old one if you have a /bp-themes/ directory. However, please note that support for the old theme architecture will eventually be phased out. You will eventually need to update your themes to a parent/child architecture.

    Furthermore, once version 1.1 of BuddyPress is released, the Skeleton Theme that is currently bundled with BuddyPress (up to version 1.0.3) will be discontinued.

    Learn more about parent/child themes in WordPress.

  • Avatar Image Erich73 said 1 year ago:

    absolutely great news ! I think this will make customizations easier ?

    Thanks a lot to all BP-developers !

  • Avatar Image mat_ said 1 year ago:

    Greeeeeat news… The one that i was waiting for :)
    So now, can i start using that new architcture ? how ? do i have to download the last build from the trac ?

    Thx !

  • Avatar Image Andre said 1 year ago:

    To clarify things in my mind, can you (Jeff, or anyone else) explain the implications of moving to BP parent/child themes for sites that do not currently use a bphome theme?

    Will it still be an option to use any WP blog theme (with BP widgets) for “home” in conjunction with the BP (child) member theme? Or will the “home” theme also have to be a child of the BP parent theme?

    And how would that even work, if the “home” theme (i.e. a good old fashioned blog theme) potentially has its very own parent theme? Can a child theme have two parents? Or is this completely irrelevant because the “home” theme stands on its own since it’s not relying on any BP hooks if it’s strictly using widgets?

    Please excuse my ignorance of WP parent/child themes. I wasn’t even aware of them until a few days ago.

  • Avatar Image Jeff Sayre said 1 year ago:

    @mat_

    So now, can i start using that new architcture ? how ? do i have to download the last build from the trac ?

    You have two options: install the latest trunk from SVN, or wait for version 1.1 to be released in the next few weeks.

    @Andre

    Will it still be an option to use any WP blog theme (with BP widgets) for “home” in conjunction with the BP (child) member theme?…And how would that even work, if the “home” theme (i.e. a good old fashioned blog theme) potentially has its very own parent theme? Can a child theme have two parents?

    Any well-designed WP theme can be used as a parent theme. Unlike with us humans, child themes can only have one parent theme. Of course, a given parent theme can have many child themes.

    Here’s a useful article on making child themes that goes into great detail. Especially look at the resources he provides at the bottom.

    Perhaps jjj can chime in here as he is the consummate theme designer–much more so than I.

  • Avatar Image John James Jacoby said 1 year ago:

    The way this works is actually really super easy and very, very awesome…

    There are a few different variations of ways to do this, and I can see some really imaginative uses of this method doing some really fantastic and super awesome things, so if you’re not already, I suggest you get excited…

    I think the way that most people will use this method is with the included BuddyPress Framework theme as a jumping off point. Think of it as the HTML and bare-bones styling to get your site’s root blog and BuddyPress profile/directory pages up and running. It includes all of the normal files you would expect from a typical WordPress theme (single.php, comments.php, page.php, index.php, home.php, attachments.php, etc…) plus it includes all of the theme files for BuddyPress registration pages and components in their own respective folders similar to what bp-member did.

    Currently, parent/child template relationships do NOT include the parent template’s style.css, so if you’re making a child theme, you will need to manually include the style.css of your parent theme with an @import rule, but it takes 2 seconds to type in so no big deal.

    So that means that your parent/child relationship is really only for .php files until you manually @import a CSS file from another directory.

    To answer your question about multiple parent themes, yes and no. :)
    Lets say we have three themes: bp-framework, bp-default, and bp-child.

    Each theme/template can only name off one parent, but that doesn’t stop the parent theme/template from having its own parent also. Example: bp-child could name bp-default as its parent, and bp-default could name bp-framework as its parent, and they will recursively overrule each other down the parent/parent/child ladder with the current template winning at the end.

    This works well in situations where you might not need a home.php for your child themes. Home.php is a WordPress file for hardcoding the landing page of your blog, and maybe child themes don’t need one. In that case, move home.php into a “bp-home” folder with a style.css that makes the bp-framework its parent and includes the parent style.css, assign bp-home as the theme for your root blog, and you’re done. This way the other blog themes won’t have a home.php for no reason.

    Because of this, it’s possible to have themes inherit from multiple other themes if you plan ahead in such a way that allows for this. My experience with this idea and creating my own framework is that it takes a little pre-production planning, but it pays off big time later on.

    The other crazy fluke is that parent themes don’t need to be active in the Site Admin area. This means that you could have child themes active for users to select without allowing them to select the parent theme, and still have the parent theme’s files be accessible to the child. This really gives you a better way to control the themes that users have access to and how they work with your custom framework to keep your header/footer/other files in sync.

    I personally can’t wait to see what some of the more popular WordPress theme guru’s are able to pull off with the next version of BuddyPress.

  • Avatar Image Erich73 said 1 year ago:

    1)
    I do have BP-version 1.0.1 running on a site and have made a few customizations so far (just CSS-changes and some images).
    So with the new template-structure: should I delete the current install completely and get the BP-version 1.1 installed ? I mean: what is the best way to upgrade to the 1.1-version when it will be released in the next few weeks ? I definitely want to have the new template-structure, so I guess I would need to set-up my website from scratch, right ?
    And: I am running the site in german-language only.

    2)
    will this new template-structure also make it easier to design a custom-template for the user-blogs ?
    Like I would like to have the user-blogs having the same CSS-style as my main pages ?
    I still have not been able to figure how to do this. I would like the user-blogs to have the same design in order to have a consistent website.
    Why is this not already the case at http://www.testbp.org ? Why is it still the original WordPress-design ? Is there a chance you create a plugin or something at which the Admin is able to select to chosse the design of the “User-Blogs” like choosing from “WordPress original design” or “TestBP.org design” ?

    3)
    is there a chance to have a “package install” which will have ONE package which will include all latest software: WordPress 2.8.x, BuddyPress 1.1 and BBPress ?
    I read many post where I see people having troubles integrating the BBPress-software into the system (even an experienced BP-expert had troubles).
    Is there a chance you will create a 1 Package download which will make it very easy for people to have a full website (like http://www.testbp.org) installed ?
    So literally 1 click-download will create a ready-made website, same like testbp.org ?

    4)
    a user-request to get invited into a “Private Group” is not possible being accepted. This does not work yet at my installation and I think this is a general bug.

    5)
    the wording of “Blog” and “Blogs” is confusing. In both english and german language.

    Many thanks,

  • Avatar Image Jason Giedymin said 1 year ago:

    @Erich73

    ==bugs==
    I suggest using trac for any bugs.

    ==user blogs & design==
    User blogs are run by MU. If you want to retain a ’similar’ design you could:

    draft a wp theme using similar colors etc…
    perhaps use a global footer or manually add in some sidebar widgets to force show some site-wide bp content
    flag this theme as the default
    flag this theme as the only theme ‘turned on’ via site-wide admin

    ==1 Package==
    I agree, yet also disagree on your suggestion.

    It wold be very efficient to have a turn-key bundle. It would surely make many people’s lives easier. However to do so now would be very difficult for the existing devs. Now it absolutely doesn’t stop anyone else from doing it however.

    Having a bundle offered by the .org sends the message that all apps are 1 wholly integrated unit. That will also require webserver, php, mysql integration for a turnkey solution (how many times do we see “i need help with X re-write”.) Also on support, this type of product would deserve a single forum, a single user group, plug-in pages, etc… At the moment It’s now quite there yet. As I understand it, this is a goal for the .org long term. Not to sure about the backend integration however.

    As you, I also see the many frustrations which users do experience. I try to help support the community as much as possible, may it be cross app integration, patches, other info, and in some cases monetary and personnel donations to many of the backends I just described.

    This is what makes open source great, it allows users such as yourself who come up with an idea which benefits the community to start working on it. I no doubt believe a project such as this would get support from various existing communities and users.

    Go for it!

  • Avatar Image David Lewis said 1 year ago:

    I think the only way you could have a 1-click option would be if… at some point… there were a buddypress.com like wordpress.com. That said… all of these projects are auttomatic projects… so maybe at some point in the future they will all merge into one product? Who knows.

  • Avatar Image James said 1 year ago:

    With the structure that is going to be implemented, does that mean you’ll have to use the “default” buddy press theme, and do your own customizations, or can you upload your own theme, and integrate the buddypress layout into it?

  • Avatar Image Jeff Sayre said 1 year ago:

    You can either use the default BuddyPress parent theme (which is actually called bp-sn-framework) and child theme, use the default parent theme with your own child theme, or use the parent theme to make your own, custom parent theme and then add your own custom child themes.

  • Avatar Image ipstenu said 1 year ago:

    Yipes! I tried trunk installing off SVN and it borked me with the old ‘cannot modify headers’ blarg.

    Darn it, I love child themes and can’t wait for this one!

  • Avatar Image Andy Peatling said 1 year ago:

    More instructions will come on the 1.1 release. Basically you can copy the default theme and make your changes. It’s still using the framework. Or, you can add a custom.css file to _inc/css/ in the default theme and add your custom styles if you like. You will need to uncomment the line in style.css.

  • Avatar Image John James Jacoby said 1 year ago:

    To summarize, the new theme structure includes a skeletal framework right away to start, that allows other themes to inherit the styling of BP HTML, CSS, and AJAX if you choose. It answers the age old “How do I get my child themes to look like my root theme?” question right off the bat. It also answers most of the “How do I port my existing theme to look like BP?” question too, but some adjustments will need to be made to make it look perfect. It also means that as new BP core features are developed, the BP default framework is updated as well, allowing your child themes to tap into the new HTML, CSS, and AJAX without any modifications to themselves. Neat eh?

    What this REALLY does (in my opinion) for theme authors, is it puts EVERYTHING that the WHOLE website will need to look and work correctly in 1 convenient theme folder; with the option of subdomains having their own template files override the root if you as a site admin so choose. You can inherit the header.php and footer.php, but change the single.php and category.php if you want to. Or say that one subdomain gets blue links, and the other gets orange; a few changes in the style.css and you’re set for that child theme.

    It’s just awesome and the anticipation of how people will use this is killing me. :)

  • Avatar Image Jeff Sayre said 1 year ago:

    Here is a link to Andy’s blog post about the new theming architecture.