Skip to:
Content

Changeset 6401


Ignore:
Timestamp:
10/13/12 07:00:54 (18 months ago)
Author:
r-a-y
Message:

Theme Compat:

  • Introduce BP_Registration_Theme_Compat class - Adds registration / activation template support to theme compat.
  • Remove headers in bp-legacy register.php and activate.php template files as this is now handled by the_title().
  • Fix notice during signup when the XProfile component was disabled
Location:
trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/bp-members/bp-members-screens.php

    r6397 r6401  
    161161            if ( 'none' != $active_signup ) { 
    162162 
    163                 // Let's compact any profile field info into usermeta 
    164                 $profile_field_ids = explode( ',', $_POST['signup_profile_field_ids'] ); 
    165  
    166                 // Loop through the posted fields formatting any datebox values then add to usermeta - @todo This logic should be shared with the same in xprofile_screen_edit_profile() 
    167                 foreach ( (array) $profile_field_ids as $field_id ) { 
    168                     if ( ! isset( $_POST['field_' . $field_id] ) ) { 
    169  
    170                         if ( ! empty( $_POST['field_' . $field_id . '_day'] ) && ! empty( $_POST['field_' . $field_id . '_month'] ) && ! empty( $_POST['field_' . $field_id . '_year'] ) ) { 
    171                             // Concatenate the values 
    172                             $date_value = $_POST['field_' . $field_id . '_day'] . ' ' . $_POST['field_' . $field_id . '_month'] . ' ' . $_POST['field_' . $field_id . '_year']; 
    173  
    174                             // Turn the concatenated value into a timestamp 
    175                             $_POST['field_' . $field_id] = date( 'Y-m-d H:i:s', strtotime( $date_value ) ); 
     163                // Make sure the extended profiles module is enabled 
     164                if ( bp_is_active( 'xprofile' ) ) { 
     165                    // Let's compact any profile field info into usermeta 
     166                    $profile_field_ids = explode( ',', $_POST['signup_profile_field_ids'] ); 
     167 
     168                    // Loop through the posted fields formatting any datebox values then add to usermeta - @todo This logic should be shared with the same in xprofile_screen_edit_profile() 
     169                    foreach ( (array) $profile_field_ids as $field_id ) { 
     170                        if ( ! isset( $_POST['field_' . $field_id] ) ) { 
     171 
     172                            if ( ! empty( $_POST['field_' . $field_id . '_day'] ) && ! empty( $_POST['field_' . $field_id . '_month'] ) && ! empty( $_POST['field_' . $field_id . '_year'] ) ) { 
     173                                // Concatenate the values 
     174                                $date_value = $_POST['field_' . $field_id . '_day'] . ' ' . $_POST['field_' . $field_id . '_month'] . ' ' . $_POST['field_' . $field_id . '_year']; 
     175 
     176                                // Turn the concatenated value into a timestamp 
     177                                $_POST['field_' . $field_id] = date( 'Y-m-d H:i:s', strtotime( $date_value ) ); 
     178                            } 
    176179                        } 
     180 
     181                        if ( !empty( $_POST['field_' . $field_id] ) ) 
     182                            $usermeta['field_' . $field_id] = $_POST['field_' . $field_id]; 
     183 
     184                        if ( !empty( $_POST['field_' . $field_id . '_visibility'] ) ) 
     185                            $usermeta['field_' . $field_id . '_visibility'] = $_POST['field_' . $field_id . '_visibility']; 
    177186                    } 
    178187 
    179                     if ( !empty( $_POST['field_' . $field_id] ) ) 
    180                         $usermeta['field_' . $field_id] = $_POST['field_' . $field_id]; 
    181                      
    182                     if ( !empty( $_POST['field_' . $field_id . '_visibility'] ) ) 
    183                         $usermeta['field_' . $field_id . '_visibility'] = $_POST['field_' . $field_id . '_visibility']; 
     188                    // Store the profile field ID's in usermeta 
     189                    $usermeta['profile_field_ids'] = $_POST['signup_profile_field_ids']; 
    184190                } 
    185  
    186                 // Store the profile field ID's in usermeta 
    187                 $usermeta['profile_field_ids'] = $_POST['signup_profile_field_ids']; 
    188191 
    189192                // Hash and store the password 
     
    204207                if ( is_wp_error( $wp_user_id ) ) { 
    205208                    $bp->signup->step = 'request-details'; 
    206                     bp_core_add_message( $wp_user_id->get_error_message(), 'error' );  
     209                    bp_core_add_message( $wp_user_id->get_error_message(), 'error' ); 
    207210                } else { 
    208211                    $bp->signup->step = 'completed-confirmation'; 
     
    371374} 
    372375new BP_Members_Theme_Compat(); 
     376 
     377/** 
     378 * The main theme compat class for BuddyPress Registration. 
     379 * 
     380 * This class sets up the necessary theme compatability actions to safely output 
     381 * registration template parts to the_title and the_content areas of a theme. 
     382 * 
     383 * @since BuddyPress (1.7) 
     384 */ 
     385class BP_Registration_Theme_Compat { 
     386 
     387    /** 
     388     * Setup the groups component theme compatibility 
     389     * 
     390     * @since BuddyPress (1.7) 
     391     */ 
     392    public function __construct() { 
     393        add_action( 'bp_setup_theme_compat', array( $this, 'is_registration' ) ); 
     394    } 
     395 
     396    /** 
     397     * Are we looking at either the registration or activation pages? 
     398     * 
     399     * @since BuddyPress (1.7) 
     400     */ 
     401    public function is_registration() { 
     402 
     403        // Bail if not looking at the registration or activation page 
     404        if ( ! bp_is_register_page() && ! bp_is_activation_page() ) { 
     405            return; 
     406        } 
     407 
     408        // Not a directory 
     409        bp_update_is_directory( false, 'register' ); 
     410 
     411        // Setup actions 
     412        add_action( 'bp_template_include_reset_dummy_post_data', array( $this, 'dummy_post'    ) ); 
     413        add_filter( 'bp_replace_the_content',                    array( $this, 'dummy_content' ) ); 
     414    } 
     415 
     416    /** Template ***********************************************************/ 
     417 
     418    /** 
     419     * Update the global $post with dummy data 
     420     * 
     421     * @since BuddyPress (1.7) 
     422     */ 
     423    public function dummy_post() { 
     424        // Registration page 
     425        if ( bp_is_register_page() ) { 
     426            $title = __( 'Create an Account', 'buddypress' ); 
     427 
     428            if ( 'completed-confirmation' == bp_get_current_signup_step() ) { 
     429                $title = __( 'Sign Up Complete!', 'buddypress' ); 
     430            } 
     431 
     432        // Activation page 
     433        } else { 
     434            $title = __( 'Activate your Account', 'buddypress' ); 
     435 
     436            if ( bp_account_was_activated() ) { 
     437                $title = __( 'Account Activated', 'buddypress' ); 
     438            } 
     439        } 
     440 
     441        $post_type = bp_is_register_page() ? 'bp_register' : 'bp_activate'; 
     442 
     443        bp_theme_compat_reset_post( array( 
     444            'ID'             => 0, 
     445            'post_title'     => $title, 
     446            'post_author'    => 0, 
     447            'post_date'      => 0, 
     448            'post_content'   => '', 
     449            'post_type'      => $post_type, 
     450            'post_status'    => 'publish', 
     451            'is_archive'     => true, 
     452            'comment_status' => 'closed' 
     453        ) ); 
     454    } 
     455 
     456    /** 
     457     * Filter the_content with either the register or activate templates. 
     458     * 
     459     * @since BuddyPress (1.7) 
     460     */ 
     461    public function dummy_content() { 
     462        if ( bp_is_register_page() ) { 
     463            bp_buffer_template_part( 'members/register' ); 
     464        } else { 
     465            bp_buffer_template_part( 'members/activate' ); 
     466        } 
     467    } 
     468} 
     469new BP_Registration_Theme_Compat(); 
  • trunk/bp-themes/bp-legacy/buddypress/members/activate.php

    r6284 r6401  
    66 
    77        <?php if ( bp_account_was_activated() ) : ?> 
    8  
    9             <h2 class="widgettitle"><?php _e( 'Account Activated', 'buddypress' ); ?></h2> 
    108 
    119            <?php do_action( 'bp_before_activate_content' ); ?> 
     
    1816 
    1917        <?php else : ?> 
    20  
    21             <h3><?php _e( 'Activate your Account', 'buddypress' ); ?></h3> 
    2218 
    2319            <?php do_action( 'bp_before_activate_content' ); ?> 
  • trunk/bp-themes/bp-legacy/buddypress/members/register.php

    r6284 r6401  
    1717 
    1818        <?php if ( 'request-details' == bp_get_current_signup_step() ) : ?> 
    19  
    20             <h2><?php _e( 'Create an Account', 'buddypress' ); ?></h2> 
    2119 
    2220            <?php do_action( 'template_notices' ); ?> 
     
    170168                                <p class="field-visibility-settings-notoggle" id="field-visibility-settings-toggle-<?php bp_the_profile_field_id() ?>"> 
    171169                                    <?php printf( __( 'This field can be seen by: <span class="current-visibility-level">%s</span>', 'buddypress' ), bp_get_the_profile_field_visibility_level_label() ) ?> 
    172                                 </p>             
     170                                </p> 
    173171                            <?php endif ?> 
    174172 
     
    247245        <?php if ( 'completed-confirmation' == bp_get_current_signup_step() ) : ?> 
    248246 
    249             <h2><?php _e( 'Sign Up Complete!', 'buddypress' ); ?></h2> 
    250  
    251247            <?php do_action( 'template_notices' ); ?> 
    252248            <?php do_action( 'bp_before_registration_confirmed' ); ?> 
Note: See TracChangeset for help on using the changeset viewer.