Skip to:
Content
Pages
Categories
Search
Top
Bottom

Lost in the theming process of bbpress 2.0.2


  • Millen
    Participant

    @millen

    I have run into some problems while theming bbp-twenty ten on my site. BBpress is installed, The forum fits within my custom theme after changing the template files. But some CSS does not seem to stick and my forum got issues with padding/margins and width or height at many places.

    Some guidance would be much appreciated!

    Here is my forum: http://www.fruitpickingjobs.com.au/forums

    I started with copying all files from bbp-twenty ten folder to my own wp theme folder. I have also changed all template files so the forum fits within my theme with sidebar.

    I have also added nesecery code to functions.php

    like instructed here: http://www.youtube.com/watch?v=lB2Oodx2GJw

    This is how my functions.php file looks like:

    // bbpress functions below this line

    add_theme_support( ‘bbpress’ );

    /**

    * Functions of bbPress’s Twenty Ten theme

    *

    * @package bbPress

    * @subpackage BBP_Twenty_Ten

    * @since Twenty Ten 1.1

    */

    // Exit if accessed directly

    if ( !defined( ‘ABSPATH’ ) ) exit;

    /** Theme Setup ***************************************************************/

    if ( !class_exists( ‘BBP_Twenty_Ten’ ) ) :

    /**

    * Loads bbPress Twenty Ten Theme functionality

    *

    * Usually functions.php contains a few functions wrapped in function_exisits()

    * checks. Since bbp-twenty-ten is intended to be used both as a child theme and

    * for Theme Compatibility, we’ve moved everything into one convenient class

    * that can be copied or extended.

    *

    * See @link BBP_Theme_Compat() for more.

    *

    * @since bbPress (r3277)

    *

    * @package bbPress

    * @subpackage BBP_Twenty_Ten

    */

    class BBP_Twenty_Ten extends BBP_Theme_Compat {

    /** Functions *************************************************************/

    /**

    * The main bbPress (Twenty Ten) Loader

    *

    * @since bbPress (r3277)

    *

    * @uses BBP_Twenty_Ten::setup_globals()

    * @uses BBP_Twenty_Ten::setup_actions()

    */

    public function __construct() {

    $this->setup_globals();

    $this->setup_actions();

    }

    /**

    * Component global variables

    *

    * @since bbPress (r2626)

    * @access private

    *

    * @uses plugin_dir_path() To generate bbPress plugin path

    * @uses plugin_dir_url() To generate bbPress plugin url

    * @uses apply_filters() Calls various filters

    */

    private function setup_globals() {

    global $bbp;

    // Theme name to help identify if it’s been extended

    $this->name = ‘bbPress (Twenty Ten)’;

    // Version of theme in YYYMMDD format

    $this->version = ’20110921′;

    // Setup the theme path

    $this->dir = $bbp->themes_dir . ‘/bbp-twentyten’;

    // Setup the theme URL

    $this->url = $bbp->themes_url . ‘/bbp-twentyten’;

    }

    /**

    * Setup the theme hooks

    *

    * @since bbPress (r3277)

    * @access private

    *

    * @uses add_filter() To add various filters

    * @uses add_action() To add various actions

    */

    private function setup_actions() {

    // Add theme support for bbPress

    add_action( ‘after_setup_theme’, array( $this, ‘add_theme_support’ ) );

    // Enqueue theme CSS

    add_action( ‘bbp_enqueue_scripts’, array( $this, ‘enqueue_styles’ ) );

    // Enqueue theme JS

    add_action( ‘bbp_enqueue_scripts’, array( $this, ‘enqueue_scripts’ ) );

    // Enqueue theme script localization

    add_filter( ‘bbp_enqueue_scripts’, array( $this, ‘localize_topic_script’ ) );

    // Output some extra JS in the <head>

    add_action( ‘bbp_head’, array( $this, ‘head_scripts’ ) );

    // Handles the ajax favorite/unfavorite

    add_action( ‘wp_ajax_dim-favorite’, array( $this, ‘ajax_favorite’ ) );

    // Handles the ajax subscribe/unsubscribe

    add_action( ‘wp_ajax_dim-subscription’, array( $this, ‘ajax_subscription’ ) );

    }

    /**

    * Sets up theme support for bbPress

    *

    * Because this theme comes bundled with bbPress template files, we add it

    * to the list of things this theme supports. Note that the function

    * “add_theme_support()” does not /enable/ theme support, but is instead an

    * API for telling WordPress what it can already do on its own.

    *

    * If you’re looking to add bbPress support into your own custom theme, you’ll

    * want to make sure it includes all of the template files for bbPress, and then

    * use: add_theme_support( ‘bbpress’ ); in your functions.php.

    *

    * @since bbPress (r2652)

    */

    public function add_theme_support() {

    add_theme_support( ‘bbpress’ );

    }

    /**

    * Load the theme CSS

    *

    * @since bbPress (r2652)

    *

    * @uses wp_enqueue_style() To enqueue the styles

    */

    public function enqueue_styles() {

    // Right to left

    if ( is_rtl() ) {

    // TwentyTen

    wp_enqueue_style( ‘twentyten’, get_template_directory_uri() . ‘/style.css’, ”, $this->version, ‘screen’ );

    wp_enqueue_style( ‘twentyten-rtl’, get_template_directory_uri() . ‘/rtl.css’, ‘twentyten’, $this->version, ‘screen’ );

    // bbPress specific

    wp_enqueue_style( ‘bbp-twentyten-bbpress’, get_stylesheet_directory_uri() . ‘/css/bbpress-rtl.css’, ‘twentyten-rtl’, $this->version, ‘screen’ );

    // Left to right

    } else {

    // TwentyTen

    wp_enqueue_style( ‘twentyten’, get_template_directory_uri() . ‘/style.css’, ”, $this->version, ‘screen’ );

    // bbPress specific

    wp_enqueue_style( ‘bbp-twentyten-bbpress’, get_stylesheet_directory_uri() . ‘/css/bbpress.css’, ‘twentyten’, $this->version, ‘screen’ );

    }

    }

    /**

    * Enqueue the required Javascript files

    *

    * @since bbPress (r2652)

    *

    * @uses bbp_is_single_topic() To check if it’s the topic page

    * @uses get_stylesheet_directory_uri() To get the stylesheet directory uri

    * @uses bbp_is_single_user_edit() To check if it’s the profile edit page

    * @uses wp_enqueue_script() To enqueue the scripts

    */

    public function enqueue_scripts() {

    if ( bbp_is_single_topic() )

    wp_enqueue_script( ‘bbp_topic’, get_stylesheet_directory_uri() . ‘/js/topic.js’, array( ‘wp-lists’ ), $this->version );

    if ( bbp_is_single_user_edit() )

    wp_enqueue_script( ‘user-profile’ );

    }

    /**

    * Put some scripts in the header, like AJAX url for wp-lists

    *

    * @since bbPress (r2652)

    *

    * @uses bbp_is_single_topic() To check if it’s the topic page

    * @uses admin_url() To get the admin url

    * @uses bbp_is_single_user_edit() To check if it’s the profile edit page

    */

    public function head_scripts() {

    if ( bbp_is_single_topic() ) : ?>

    <script type=’text/javascript’>

    /* <![CDATA[ */

    var ajaxurl = '<?php echo admin_url( 'admin-ajax.php' ); ?>';

    /* ]]> */

    </script>

    <?php elseif ( bbp_is_single_user_edit() ) : ?>

    <script type=”text/javascript” charset=”utf-8″>

    if ( window.location.hash == ‘#password’ ) {

    document.getElementById(‘pass1′).focus();

    }

    </script>

    <?php

    endif;

    }

    /**

    * Load localizations for topic script

    *

    * These localizations require information that may not be loaded even by init.

    *

    * @since bbPress (r2652)

    *

    * @uses bbp_is_single_topic() To check if it’s the topic page

    * @uses is_user_logged_in() To check if user is logged in

    * @uses bbp_get_current_user_id() To get the current user id

    * @uses bbp_get_topic_id() To get the topic id

    * @uses bbp_get_favorites_permalink() To get the favorites permalink

    * @uses bbp_is_user_favorite() To check if the topic is in user’s favorites

    * @uses bbp_is_subscriptions_active() To check if the subscriptions are active

    * @uses bbp_is_user_subscribed() To check if the user is subscribed to topic

    * @uses bbp_get_topic_permalink() To get the topic permalink

    * @uses wp_localize_script() To localize the script

    */

    public function localize_topic_script() {

    // Bail if not viewing a single topic

    if ( !bbp_is_single_topic() )

    return;

    // Bail if user is not logged in

    if ( !is_user_logged_in() )

    return;

    $user_id = bbp_get_current_user_id();

    $localizations = array(

    ‘currentUserId’ => $user_id,

    ‘topicId’ => bbp_get_topic_id(),

    );

    // Favorites

    if ( bbp_is_favorites_active() ) {

    $localizations = 1;

    $localizations = bbp_get_favorites_permalink( $user_id );

    $localizations = (int) bbp_is_user_favorite( $user_id );

    $localizations = __( ‘favorites’, ‘bbpress’ );

    $localizations = __( ‘?’, ‘bbpress’ );

    $localizations = __( ‘This topic is one of your %favLinkYes% [%favDel%]‘, ‘bbpress’ );

    $localizations = __( ‘%favAdd% (%favLinkNo%)’, ‘bbpress’ );

    $localizations = __( ‘×’, ‘bbpress’ );

    $localizations = __( ‘Add this topic to your favorites’, ‘bbpress’ );

    } else {

    $localizations = 0;

    }

    // Subscriptions

    if ( bbp_is_subscriptions_active() ) {

    $localizations = 1;

    $localizations = (int) bbp_is_user_subscribed( $user_id );

    $localizations = __( ‘Subscribe’, ‘bbpress’ );

    $localizations = __( ‘Unsubscribe’, ‘bbpress’ );

    $localizations = bbp_get_topic_permalink();

    } else {

    $localizations = 0;

    }

    wp_localize_script( ‘bbp_topic’, ‘bbpTopicJS’, $localizations );

    }

    /**

    * Add or remove a topic from a user’s favorites

    *

    * @since bbPress (r2652)

    *

    * @uses bbp_get_current_user_id() To get the current user id

    * @uses current_user_can() To check if the current user can edit the user

    * @uses bbp_get_topic() To get the topic

    * @uses check_ajax_referer() To verify the nonce & check the referer

    * @uses bbp_is_user_favorite() To check if the topic is user’s favorite

    * @uses bbp_remove_user_favorite() To remove the topic from user’s favorites

    * @uses bbp_add_user_favorite() To add the topic from user’s favorites

    */

    public function ajax_favorite() {

    $user_id = bbp_get_current_user_id();

    $id = intval( $_POST );

    if ( !current_user_can( ‘edit_user’, $user_id ) )

    die( ‘-1′ );

    if ( !$topic = bbp_get_topic( $id ) )

    die( ’0′ );

    check_ajax_referer( ‘toggle-favorite_’ . $topic->ID );

    if ( bbp_is_user_favorite( $user_id, $topic->ID ) ) {

    if ( bbp_remove_user_favorite( $user_id, $topic->ID ) ) {

    die( ’1′ );

    }

    } else {

    if ( bbp_add_user_favorite( $user_id, $topic->ID ) ) {

    die( ’1′ );

    }

    }

    die( ’0′ );

    }

    /**

    * Subscribe/Unsubscribe a user from a topic

    *

    * @since bbPress (r2668)

    *

    * @uses bbp_is_subscriptions_active() To check if the subscriptions are active

    * @uses bbp_get_current_user_id() To get the current user id

    * @uses current_user_can() To check if the current user can edit the user

    * @uses bbp_get_topic() To get the topic

    * @uses check_ajax_referer() To verify the nonce & check the referer

    * @uses bbp_is_user_subscribed() To check if the topic is in user’s

    * subscriptions

    * @uses bbp_remove_user_subscriptions() To remove the topic from user’s

    * subscriptions

    * @uses bbp_add_user_subscriptions() To add the topic from user’s subscriptions

    */

    public function ajax_subscription() {

    if ( !bbp_is_subscriptions_active() )

    return;

    $user_id = bbp_get_current_user_id();

    $id = intval( $_POST );

    if ( !current_user_can( ‘edit_user’, $user_id ) )

    die( ‘-1′ );

    if ( !$topic = bbp_get_topic( $id ) )

    die( ’0′ );

    check_ajax_referer( ‘toggle-subscription_’ . $topic->ID );

    if ( bbp_is_user_subscribed( $user_id, $topic->ID ) ) {

    if ( bbp_remove_user_subscription( $user_id, $topic->ID ) ) {

    die( ’1′ );

    }

    } else {

    if ( bbp_add_user_subscription( $user_id, $topic->ID ) ) {

    die( ’1′ );

    }

    }

    die( ’0′ );

    }

    }

    /**

    * Instantiate a new BBP_Twenty_Ten class inside the $bbp global. It is

    * responsible for hooking itself into WordPress where apprpriate.

    */

    if ( ‘bbPress’ == get_class( $bbp ) ) {

    $bbp->theme_compat->theme = new BBP_Twenty_Ten();

    }

    endif;

    ?>

Viewing 7 replies - 1 through 7 (of 7 total)

  • Millen
    Participant

    @millen

    I might have been a bit unclear with what my question’s was…

    Is there something wrong with the code I added to my functions.php file?

    Is this the reason why some of my css simply wont stick?

    Should the css be added/edited in my-theme/css/bbpress.css?

    Or should I copy all the css form my-theme/css/bbpress.css to my own themes style.css?

    I’m having a hard time finding any sort of documentation on how to do this. If anyone got some information or links on how I can continue from here I would be very glad.

    Thanks guys!


    Millen
    Participant

    @millen

    Is my questions stupid or why is no one answering?

    I’m not asking for help on how to learn CSS I know that perfectly fine. I would just like to be pointed to some documentation or information on how to mkae it possible to theme bbpress. Maybe someone personally got this very same problem and could help me out with some hints.

    Thanks again!


    Millen
    Participant

    @millen

    Someone?

    It looks OK to me but I rarely mess with stuff like this.

    If your site is still under development, you may consider upgrade bbPress to 2.1 (currently in testing). It has some new theming features and auto-detection in place.

    In 2.1 it should automatically find those files without needing to put anything in your functions.php.

    If you do choose to try 2.1, since it is “beta” at the moment make sure and back up everything first just to be safe.


    Millen
    Participant

    @millen

    Jaredatch I might wait since I just checked the development tracker ( http://bbpress.trac.wordpress.org/roadmap ) and realized that 2.1 is 99% finished.

    Maybe we can see a finished release this week?

    Just having started looking at all the how-to’s on dealing with modifying bbpress’ look and feel, I’m really questioning that YouTube link’s method.

    He copied a bunch of files into the existing theme’s folder rather than making a child theme folder. After that, he copied a ton of code from one functions.php to WP’s function.php…

    Sorry, but that just looks really rickety of a setup if you ask me, and I barely know anything about this yet.

    Yes, that’s all about to be out-of-date when 2.1 is finalized, see http://bbpress.org/forums/topic/bbpress-21-theme-compatibility

Viewing 7 replies - 1 through 7 (of 7 total)

You must be logged in to reply to this topic.