Skip to:
Content

bbPress.org


Ignore:
Timestamp:
12/06/2010 03:18:19 AM (15 years ago)
Author:
johnjamesjacoby
Message:

First pass at user profiles and front-end user editing. Fixes #1364 props GautamGupta via Google Code-in. Split bbp-template.php into smaller files. Rename 'profile-' pages to 'user-'. (This is the Ultra Magnus of changesets.)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/plugin/bbpress.php

    r2679 r2688  
    4040    var $reply_slug;
    4141    var $topic_tag_slug;
     42    var $user_slug;
    4243
    4344    // Absolute Paths
     
    5455    var $current_topic_id;
    5556    var $current_reply_id;
     57
     58    // User objects
     59    var $current_user;
     60    var $displayed_user;
     61
     62    // Query objects
     63    var $forum_query;
     64    var $topic_query;
     65    var $reply_query;
    5666
    5767    /**
     
    101111        $this->reply_slug     = apply_filters( 'bbp_reply_slug',     'reply'     );
    102112        $this->topic_tag_slug = apply_filters( 'bbp_topic_tag_slug', 'topic-tag' );
     113        $this->user_slug      = apply_filters( 'bbp_user_slug',      'user'   );
    103114    }
    104115
     
    120131        require_once ( $this->plugin_dir . '/bbp-includes/bbp-widgets.php'   );
    121132        require_once ( $this->plugin_dir . '/bbp-includes/bbp-users.php'     );
    122         require_once ( $this->plugin_dir . '/bbp-includes/bbp-template.php'  );
     133
     134        // Load template files
     135        require_once ( $this->plugin_dir . '/bbp-includes/bbp-general-template.php'  );
     136        require_once ( $this->plugin_dir . '/bbp-includes/bbp-forum-template.php'  );
     137        require_once ( $this->plugin_dir . '/bbp-includes/bbp-topic-template.php'  );
     138        require_once ( $this->plugin_dir . '/bbp-includes/bbp-reply-template.php'  );
     139        require_once ( $this->plugin_dir . '/bbp-includes/bbp-user-template.php'  );
    123140
    124141        // Quick admin check and load if needed
     
    148165        // Load textdomain
    149166        add_action( 'bbp_load_textdomain',          array ( $this, 'register_textdomain'      ), 10, 2 );
     167
     168        // Add the %bbp_user% rewrite tag
     169        add_action( 'bbp_add_user_rewrite_tag',     array ( $this, 'add_user_rewrite_tag'     ), 10, 2 );
     170
     171        // Generate rewrite rules, particularly for /profile/%bbp_user%/ pages
     172        add_action( 'bbp_generate_rewrite_rules',   array ( $this, 'generate_rewrite_rules'   ), 10, 2 );
    150173    }
    151174
     
    403426        );
    404427    }
     428
     429    /**
     430     * add_user_rewrite_tag ()
     431     *
     432     * Add the %bbp_user% rewrite tag
     433     *
     434     * @since bbPress (r2688)
     435     * @uses add_rewrite_tag
     436     */
     437    function add_user_rewrite_tag () {
     438        add_rewrite_tag( '%bbp_user%',         '([^/]+)'  );
     439        add_rewrite_tag( '%bbp_edit_profile%', '([1]{1})' );
     440    }
     441
     442    /**
     443     * generate_rewrite_rules ()
     444     *
     445     * Generate rewrite rules for /profile/%bbp_user%/ pages
     446     *
     447     * @since bbPress (r2688)
     448     *
     449     * @param object $wp_rewrite
     450     */
     451    function generate_rewrite_rules ( $wp_rewrite ) {
     452        $user_rules = array(
     453            // @todo - feeds
     454            //$this->user_slug . '/([^/]+)/(feed|rdf|rss|rss2|atom)/?$'      => 'index.php?bbp_user=' . $wp_rewrite->preg_index( 1 ) . '&feed='  . $wp_rewrite->preg_index( 2 ),
     455            //$this->user_slug . '/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?bbp_user=' . $wp_rewrite->preg_index( 1 ) . '&feed='  . $wp_rewrite->preg_index( 2 ),
     456            $this->user_slug . '/([^/]+)/edit/?$'                          => 'index.php?bbp_user=' . $wp_rewrite->preg_index( 1 ) . '&bbp_edit_profile=1',
     457            $this->user_slug . '/([^/]+)/page/?([0-9]{1,})/?$'             => 'index.php?bbp_user=' . $wp_rewrite->preg_index( 1 ) . '&paged=' . $wp_rewrite->preg_index( 2 ),
     458            $this->user_slug . '/([^/]+)/?$'                               => 'index.php?bbp_user=' . $wp_rewrite->preg_index( 1 )
     459        );
     460
     461        $wp_rewrite->rules = array_merge( $user_rules, $wp_rewrite->rules );
     462    }
    405463}
    406464
Note: See TracChangeset for help on using the changeset viewer.