Skip to:
Content

BuddyPress.org


Ignore:
Timestamp:
12/04/2012 12:16:42 PM (12 years ago)
Author:
johnjamesjacoby
Message:

See #4671:

  • Round one changes...
  • Remove the cumbersome update wizard and associated CSS and images.
  • Copy "About" and "Credits" pages from bbPress.
  • First pass at default components array.
  • Deprecate some functions, consolidate others.
  • Introduce bp-core/admin/bp-core-actions.php to handle admin sub-actions.
  • More to do here (update script, testing, css/images, etc...)
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/bp-core/bp-core-admin.php

    r6422 r6558  
    2121class BP_Admin {
    2222
    23     /**
    24      * Instance of the setup wizard
    25      *
    26      * @since BuddyPress (1.6)
    27      * @var BP_Core_Setup_Wizard
    28      */
    29     public $wizard;
    30 
    3123    /** Directory *************************************************************/
    3224
     
    9890     */
    9991    private function includes() {
    100 
    101         // If in maintenance mode, only include updater and schema
    102         if ( bp_get_maintenance_mode() ) {
    103             require( $this->admin_dir . 'bp-core-schema.php' );
    104             require( $this->admin_dir . 'bp-core-update.php' );
    105 
    106         // No update needed so proceed with loading everything
    107         } else {
    108             require( $this->admin_dir . 'bp-core-settings.php'   );
    109             require( $this->admin_dir . 'bp-core-functions.php'  );
    110             require( $this->admin_dir . 'bp-core-components.php' );
    111             require( $this->admin_dir . 'bp-core-slugs.php'      );
    112         }
     92        require( $this->admin_dir . 'bp-core-actions.php'    );
     93        require( $this->admin_dir . 'bp-core-settings.php'   );
     94        require( $this->admin_dir . 'bp-core-functions.php'  );
     95        require( $this->admin_dir . 'bp-core-components.php' );
     96        require( $this->admin_dir . 'bp-core-slugs.php'      );
    11397    }
    11498
     
    124108    private function setup_actions() {
    125109
    126         // Start the wizard if in maintenance mode
    127         if ( bp_get_maintenance_mode() ) {
    128             add_action( bp_core_admin_hook(), array( $this, 'start_wizard' ), 2 );
    129         }
    130 
    131110        /** General Actions ***************************************************/
    132111
    133         // Attach the BuddyPress admin_init action to the WordPress admin_init action.
    134         add_action( 'admin_init',            array( $this, 'admin_init'  ) );
    135 
    136112        // Add some page specific output to the <head>
    137         add_action( 'admin_head',            array( $this, 'admin_head'  ) );
     113        add_action( 'bp_admin_head',            array( $this, 'admin_head'  ), 999 );
    138114
    139115        // Add menu item to settings menu
    140         add_action( bp_core_admin_hook(),    array( $this, 'admin_menus' ), 5 );
    141 
    142         // Add notice if an update is needed
    143         add_action( 'admin_notices',         array( $this, 'admin_notices' ) );
    144         add_action( 'network_admin_notices', array( $this, 'admin_notices' ) );
     116        add_action( bp_core_admin_hook(),       array( $this, 'admin_menus' ), 5 );
    145117
    146118        // Enqueue all admin JS and CSS
    147         add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_scripts'  ) );
     119        add_action( 'bp_admin_enqueue_scripts', array( $this, 'enqueue_scripts' ) );
    148120
    149121        /** BuddyPress Actions ************************************************/
    150122
    151123        // Add settings
    152         add_action( 'bp_admin_init',      array( $this, 'register_admin_settings' ) );
     124        add_action( 'bp_register_admin_settings', array( $this, 'register_admin_settings' ) );
    153125
    154126        /** Filters ***********************************************************/
    155127
    156128        // Add link to settings page
    157         add_filter( 'plugin_action_links', array( $this, 'add_settings_link' ), 10, 2 );
    158     }
    159 
    160     public function start_wizard() {
    161         $this->wizard = new BP_Core_Setup_Wizard;
     129        add_filter( 'plugin_action_links', array( $this, 'modify_plugin_action_links' ), 10, 2 );
    162130    }
    163131
     
    173141    public function admin_menus() {
    174142
    175         // In maintenance mode
    176         if ( bp_get_maintenance_mode() ) {
    177 
    178             if ( !current_user_can( 'manage_options' ) ) {
    179                 return;
    180             }
    181 
    182             if ( bp_get_maintenance_mode() == 'install' ) {
    183                 $status = __( 'BuddyPress Setup', 'buddypress' );
    184             } else {
    185                 $status = __( 'Update BuddyPress',  'buddypress' );
    186             }
    187 
    188             if ( bp_get_wizard() ) {
    189                 if ( ! is_multisite() || bp_is_multiblog_mode() ) {
    190                     $hook = add_dashboard_page( $status, $status, 'manage_options', 'bp-wizard', array( bp_get_wizard(), 'html' ) );
    191                 } else {
    192                     $hook = add_submenu_page( 'update-core.php', $status, $status, 'manage_options', 'bp-wizard', array( bp_get_wizard(), 'html' ) );
    193                 }
    194             }
    195 
    196         // Not in maintenance mode
    197         } else {
    198 
    199             // Bail if user cannot moderate
    200             if ( ! bp_current_user_can( 'manage_options' ) ) {
    201                 return;
    202             }
    203 
    204             $hooks = array();
    205             $page  = bp_core_do_network_admin()  ? 'settings.php' : 'options-general.php';
    206 
    207             // Changed in BP 1.6 . See bp_core_admin_backpat_menu()
    208             $hooks[] = add_menu_page(
    209                 __( 'BuddyPress', 'buddypress' ),
    210                 __( 'BuddyPress', 'buddypress' ),
    211                 'manage_options',
    212                 'bp-general-settings',
    213                 'bp_core_admin_backpat_menu',
    214                 'div'
    215             );
    216 
    217             $hooks[] = add_submenu_page(
    218                 'bp-general-settings',
    219                 __( 'BuddyPress Help', 'buddypress' ),
    220                 __( 'Help', 'buddypress' ),
    221                 'manage_options',
    222                 'bp-general-settings',
    223                 'bp_core_admin_backpat_page'
    224             );
    225 
    226             // Add the option pages
    227             $hooks[] = add_submenu_page(
    228                 $page,
    229                 __( 'BuddyPress Components', 'buddypress' ),
    230                 __( 'BuddyPress', 'buddypress' ),
    231                 'manage_options',
    232                 'bp-components',
    233                 'bp_core_admin_components_settings'
    234             );
    235 
    236             $hooks[] = add_submenu_page(
    237                 $page,
    238                 __( 'BuddyPress Pages', 'buddypress' ),
    239                 __( 'BuddyPress Pages', 'buddypress' ),
    240                 'manage_options',
    241                 'bp-page-settings',
    242                 'bp_core_admin_slugs_settings'
    243             );
    244 
    245             $hooks[] = add_submenu_page(
    246                 $page,
    247                 __( 'BuddyPress Settings', 'buddypress' ),
    248                 __( 'BuddyPress Settings', 'buddypress' ),
    249                 'manage_options',
    250                 'bp-settings',
    251                 'bp_core_admin_settings'
    252             );
    253 
    254             // Fudge the highlighted subnav item when on a BuddyPress admin page
    255             foreach( $hooks as $hook ) {
    256                 add_action( "admin_head-$hook", 'bp_core_modify_admin_menu_highlight' );
    257             }
     143        // Bail if user cannot moderate
     144        if ( ! bp_current_user_can( 'manage_options' ) )
     145            return;
     146
     147        // About
     148        add_dashboard_page(
     149            __( 'Welcome to BuddyPress',  'buddypress' ),
     150            __( 'Welcome to BuddyPress',  'buddypress' ),
     151            'manage_options',
     152            'bp-about',
     153            array( $this, 'about_screen' )
     154        );
     155
     156        // Credits
     157        add_dashboard_page(
     158            __( 'Welcome to BuddyPress',  'buddypress' ),
     159            __( 'Welcome to BuddyPress',  'buddypress' ),
     160            'manage_options',
     161            'bp-credits',
     162            array( $this, 'credits_screen' )
     163        );
     164
     165        $hooks = array();
     166        $page  = bp_core_do_network_admin()  ? 'settings.php' : 'options-general.php';
     167
     168        // Changed in BP 1.6 . See bp_core_admin_backpat_menu()
     169        $hooks[] = add_menu_page(
     170            __( 'BuddyPress', 'buddypress' ),
     171            __( 'BuddyPress', 'buddypress' ),
     172            'manage_options',
     173            'bp-general-settings',
     174            'bp_core_admin_backpat_menu',
     175            'div'
     176        );
     177
     178        $hooks[] = add_submenu_page(
     179            'bp-general-settings',
     180            __( 'BuddyPress Help', 'buddypress' ),
     181            __( 'Help', 'buddypress' ),
     182            'manage_options',
     183            'bp-general-settings',
     184            'bp_core_admin_backpat_page'
     185        );
     186
     187        // Add the option pages
     188        $hooks[] = add_submenu_page(
     189            $page,
     190            __( 'BuddyPress Components', 'buddypress' ),
     191            __( 'BuddyPress', 'buddypress' ),
     192            'manage_options',
     193            'bp-components',
     194            'bp_core_admin_components_settings'
     195        );
     196
     197        $hooks[] = add_submenu_page(
     198            $page,
     199            __( 'BuddyPress Pages', 'buddypress' ),
     200            __( 'BuddyPress Pages', 'buddypress' ),
     201            'manage_options',
     202            'bp-page-settings',
     203            'bp_core_admin_slugs_settings'
     204        );
     205
     206        $hooks[] = add_submenu_page(
     207            $page,
     208            __( 'BuddyPress Settings', 'buddypress' ),
     209            __( 'BuddyPress Settings', 'buddypress' ),
     210            'manage_options',
     211            'bp-settings',
     212            'bp_core_admin_settings'
     213        );
     214
     215        // Fudge the highlighted subnav item when on a BuddyPress admin page
     216        foreach( $hooks as $hook ) {
     217            add_action( "admin_head-$hook", 'bp_core_modify_admin_menu_highlight' );
    258218        }
    259219    }
     
    267227     * @uses add_settings_field() To add various settings fields
    268228     * @uses register_setting() To register various settings
    269      * @uses do_action() Calls 'bp_register_admin_settings'
    270229     */
    271230    public function register_admin_settings() {
     
    347306            }
    348307        }
    349 
    350         do_action( 'bp_register_admin_settings' );
    351308    }
    352309
     
    360317     * @return array Processed links
    361318     */
    362     public function add_settings_link( $links, $file ) {
    363         if ( buddypress()->basename == $file ) {
    364             $page = 'bp-components';
    365             $text = __( 'Settings', 'buddypress' );
    366             $url  = bp_core_do_network_admin() ? network_admin_url( 'settings.php' ) : admin_url( 'options-general.php' );
    367 
    368             // If we're in install mode then the link needs to show "Wizard" and link
    369             // to the wizard. Otherwise we can show the BuddyPress settings page link.
    370             if ( 'install' == bp_get_maintenance_mode() ) {
    371                 $page = 'bp-wizard';
    372                 $text = __( 'Setup Wizard', 'buddypress' );
    373                 $url  = bp_core_do_network_admin() ? network_admin_url( 'admin.php?page=' . $page ) : admin_url( 'index.php?page=' . $page );
    374             }
    375 
    376             $settings_link  = '<a href="' . add_query_arg( array( 'page' => $page ), $url ) . '">' . $text . '</a>';
    377 
    378             array_unshift( $links, $settings_link );
    379         }
    380 
    381         return $links;
    382     }
    383 
    384     /**
    385      * BuddyPress's dedicated admin init action
    386      *
    387      * @since BuddyPress (1.6)
    388      *
    389      * @uses do_action() Calls 'bp_admin_init'
    390      */
    391     public function admin_init() {
    392         do_action( 'bp_admin_init' );
     319    public function modify_plugin_action_links( $links, $file ) {
     320
     321        // Return normal links if not BuddyPress
     322        if ( plugin_basename( buddypress()->file ) != $file )
     323            return $links;
     324
     325        $page = 'bp-components';
     326        $text = __( 'Settings', 'buddypress' );
     327        $url  = bp_core_do_network_admin() ? network_admin_url( 'settings.php' ) : admin_url( 'options-general.php' );
     328
     329        // Add a few links to the existing links array
     330        return array_merge( $links, array(
     331            'settings' => '<a href="' . add_query_arg( array( 'page' => $page      ), $url                      ) . '">' . $text                               . '</a>',
     332            'about'    => '<a href="' . add_query_arg( array( 'page' => 'bp-about' ), admin_url( 'index.php'  ) ) . '">' . esc_html__( 'About', 'buddypress' ) . '</a>'
     333        ) );
    393334    }
    394335
     
    398339     * @since BuddyPress (1.6)
    399340     */
    400     public function admin_head() { }
     341    public function admin_head() {
     342        $settings_page  = bp_core_do_network_admin()  ? 'settings.php' : 'options-general.php';
     343
     344        // Settings pages
     345        remove_submenu_page( $settings_page, 'bb-forums-setup'  );
     346        remove_submenu_page( $settings_page, 'bp-page-settings' );
     347        remove_submenu_page( $settings_page, 'bp-settings'      );
     348
     349        // About and Credits pages
     350        remove_submenu_page( 'index.php', 'bp-about'   );
     351        remove_submenu_page( 'index.php', 'bp-credits' );
     352    }
    401353
    402354    /**
     
    412364        $file = apply_filters( 'bp_core_admin_common_css', $file );
    413365        wp_enqueue_style( 'bp-admin-common-css', $file, array(), bp_get_version() );
    414 
    415         // Extra bits for the installation wizard
    416         if ( bp_get_maintenance_mode() ) {
    417 
    418             // Styling
    419             $file = $this->css_url . "wizard{$min}.css";
    420             $file = apply_filters( 'bp_core_admin_wizard_css', $file );
    421             wp_enqueue_style( 'bp-admin-wizard-css', $file, array(), bp_get_version() );
    422 
    423             // JS
    424             $file = $this->js_url . "wizard{$min}.js";
    425             $file = apply_filters( 'bp_core_admin_wizard_js', $file );
    426             wp_enqueue_script( 'bp-admin-wizard-js', $file, array(), bp_get_version() );
    427 
    428             // We'll need the thickbox too
    429             wp_enqueue_script( 'thickbox' );
    430             wp_enqueue_style( 'thickbox' );
    431         }
    432 
    433         do_action( 'bp_admin_head' );
    434     }
    435 
    436     /**
    437      * Add any admin notices we might need, mostly for update or new installs
    438      *
    439      * @since BuddyPress (1.6)
    440      *
    441      * @global string $pagenow
    442      * @return If no notice is needed
    443      */
    444     public function admin_notices() {
    445         global $pagenow;
    446 
    447         // Bail if not in maintenance mode
    448         if ( ! bp_get_maintenance_mode() )
    449             return;
    450 
    451         // Bail if user cannot manage options
    452         if ( ! current_user_can( 'manage_options' ) )
    453             return;
    454 
    455         // Are we looking at a network?
    456         if ( bp_core_do_network_admin() ) {
    457 
    458             // Bail if looking at wizard page
    459             if ( ( 'admin.php' == $pagenow ) && ( !empty( $_GET['page'] ) && ( 'bp-wizard' == $_GET['page'] ) ) ) {
    460                 return;
    461             }
    462 
    463             // Set the url for the nag
    464             $url = network_admin_url( 'admin.php?page=bp-wizard' );
    465 
    466         // Single site
    467         } else {
    468 
    469             // Bail if looking at wizard page
    470             if ( ( 'index.php' == $pagenow ) && ( !empty( $_GET['page'] ) && ( 'bp-wizard' == $_GET['page'] ) ) ) {
    471                 return;
    472             }
    473 
    474             // Set the url for the nag
    475             $url = admin_url( 'index.php?page=bp-wizard' );
    476         }
    477 
    478         // What does the nag say?
    479         switch ( bp_get_maintenance_mode() ) {
    480 
    481             // Update text
    482             case 'update' :
    483                 $msg = sprintf( __( 'BuddyPress has been updated! Please run the <a href="%s">update wizard</a>.', 'buddypress' ), esc_url( $url ) );
    484                 break;
    485 
    486             // First install text
    487             case 'install' : default :
    488                 $msg = sprintf( __( 'BuddyPress was successfully activated! Please run the <a href="%s">installation wizard</a>.', 'buddypress' ), esc_url( $url ) );
    489                 break;
    490         } ?>
    491 
    492         <div class="update-nag"><?php echo $msg; ?></div>
     366    }
     367   
     368    /** About *****************************************************************/
     369
     370    /**
     371     * Output the about screen
     372     *
     373     * @since BuddyPress (1.7)
     374     */
     375    public function about_screen() {
     376
     377        list( $display_version ) = explode( '-', bp_get_version() ); ?>
     378
     379        <div class="wrap about-wrap">
     380            <h1><?php printf( __( 'Welcome to BuddyPress %s' ), $display_version ); ?></h1>
     381            <div class="about-text"><?php printf( __( 'Thank you for updating to the latest version! BuddyPress %s is ready to make your community a safer, faster, and better looking place to hang out!' ), $display_version ); ?></div>
     382            <div class="bp-badge"><?php printf( __( 'Version %s' ), $display_version ); ?></div>
     383
     384            <h2 class="nav-tab-wrapper">
     385                <a class="nav-tab nav-tab-active" href="<?php echo esc_url( bp_get_admin_url( add_query_arg( array( 'page' => 'bp-about' ), 'index.php' ) ) ); ?>">
     386                    <?php _e( 'What&#8217;s New' ); ?>
     387                </a><a class="nav-tab" href="<?php echo esc_url( bp_get_admin_url( add_query_arg( array( 'page' => 'bp-credits' ), 'index.php' ) ) ); ?>">
     388                    <?php _e( 'Credits' ); ?>
     389                </a>
     390            </h2>
     391
     392            <div class="changelog">
     393                <h3><?php _e( 'Some neat thing', 'buddypress' ); ?></h3>
     394
     395                <div class="feature-section">
     396                    <h4><?php _e( 'Whoa', 'buddypress' ); ?></h4>
     397                    <p><?php _e( 'Nice!', 'buddypress' ); ?></p>
     398
     399                    <h4><?php _e( 'Wow', 'buddypress' ); ?></h4>
     400                    <p><?php _e( 'Amazing!', 'buddypress' ); ?></p>
     401                </div>
     402            </div>
     403
     404            <div class="changelog">
     405                <h3><?php _e( 'Another neat thing', 'buddypress' ); ?></h3>
     406
     407                <div class="feature-section">
     408                    <h4><?php _e( 'No way', 'buddypress' ); ?></h4>
     409                    <p><?php _e( 'Yes way.', 'buddypress' ); ?></p>
     410                </div>
     411            </div>
     412
     413            <div class="changelog">
     414                <h3><?php _e( 'Under the Hood', 'buddypress' ); ?></h3>
     415
     416                <div class="feature-section three-col">
     417                    <div>
     418                        <h4><?php _e( 'One', 'buddypress' ); ?></h4>
     419                        <p><?php _e( 'Uh huh.', 'buddypress' ); ?></p>
     420
     421                        <h4><?php _e( 'Two', 'buddypress' ); ?></h4>
     422                        <p><?php _e( 'Yeah.', 'buddypress' ); ?></p>
     423                    </div>
     424
     425                    <div>
     426                        <h4><?php _e( 'Three', 'buddypress' ); ?></h4>
     427                        <p><?php _e( 'I hear ya.', 'buddypress' ); ?></p>
     428
     429                        <h4><?php _e( 'Four', 'buddypress' ); ?></h4>
     430                        <p><?php _e( 'Tell me more.', 'buddypress' ); ?></p>
     431                    </div>
     432
     433                    <div class="last-feature">
     434                        <h4><?php _e( 'Five', 'buddypress' ); ?></h4>
     435                        <p><?php _e( 'Well, shucks.', 'buddypress' ); ?></p>
     436
     437                        <h4><?php _e( 'Six', 'buddypress' ); ?></h4>
     438                        <p><?php _e( ' Whoopie!', 'buddypress' ); ?></p>
     439                    </div>
     440                </div>
     441            </div>
     442
     443            <div class="return-to-dashboard">
     444                <a href="<?php echo esc_url( bp_get_admin_url( add_query_arg( array( 'page' => 'buddypress' ), 'options-general.php' ) ) ); ?>"><?php _e( 'Go to Community Settings' ); ?></a>
     445            </div>
     446
     447        </div>
     448
     449        <?php
     450    }
     451
     452    /**
     453     * Output the credits screen
     454     *
     455     * Hardcoding this in here is pretty janky. It's fine for 2.2, but we'll
     456     * want to leverage api.wordpress.org eventually.
     457     *
     458     * @since BuddyPress (1.7)
     459     */
     460    public function credits_screen() {
     461
     462        list( $display_version ) = explode( '-', bp_get_version() ); ?>
     463
     464        <div class="wrap about-wrap">
     465            <h1><?php printf( __( 'Welcome to BuddyPress %s' ), $display_version ); ?></h1>
     466            <div class="about-text"><?php printf( __( 'Thank you for updating to the latest version! BuddyPress %s is ready to make your community a safer, faster, and better looking place to hang out!' ), $display_version ); ?></div>
     467            <div class="bp-badge"><?php printf( __( 'Version %s' ), $display_version ); ?></div>
     468
     469            <h2 class="nav-tab-wrapper">
     470                <a href="<?php echo esc_url( bp_get_admin_url( add_query_arg( array( 'page' => 'bp-about' ), 'index.php' ) ) ); ?>" class="nav-tab">
     471                    <?php _e( 'What&#8217;s New' ); ?>
     472                </a><a href="<?php echo esc_url( bp_get_admin_url( add_query_arg( array( 'page' => 'bp-credits' ), 'index.php' ) ) ); ?>" class="nav-tab nav-tab-active">
     473                    <?php _e( 'Credits' ); ?>
     474                </a>
     475            </h2>
     476
     477            <p class="about-description"><?php _e( 'BuddyPress is created by a worldwide network of friendly folks.', 'buddypress' ); ?></p>
     478
     479            <h4 class="wp-people-group"><?php _e( 'Project Leaders', 'buddypress' ); ?></h4>
     480            <ul class="wp-people-group " id="wp-people-group-project-leaders">
     481                <li class="wp-person" id="wp-person-apeatling">
     482                    <a href="http://profiles.wordpress.org/apeatling"><img src="http://0.gravatar.com/avatar/767fc9c115a1b989744c755db47feb60?s=60" class="gravatar" alt="Andy Peatling" /></a>
     483                    <a class="web" href="http://profiles.wordpress.org/apeatling">Andy Peatling</a>
     484                    <span class="title"><?php _e( 'Founding Developer', 'buddypress' ); ?></span>
     485                </li>
     486                <li class="wp-person" id="wp-person-johnjamesjacoby">
     487                    <a href="http://profiles.wordpress.org/johnjamesjacoby"><img src="http://0.gravatar.com/avatar/81ec16063d89b162d55efe72165c105f?s=60" class="gravatar" alt="John James Jacoby" /></a>
     488                    <a class="web" href="http://profiles.wordpress.org/johnjamesjacoby">John James Jacoby</a>
     489                    <span class="title"><?php _e( 'Project Lead', 'buddypress' ); ?></span>
     490                </li>
     491                <li class="wp-person" id="wp-person-boonebgorges">
     492                    <a href="http://profiles.wordpress.org/boonebgorges"><img src="http://0.gravatar.com/avatar/6a7c997edea340616bcc6d0fe03f65dd?s=60" class="gravatar" alt="Boone B. Gorges" /></a>
     493                    <a class="web" href="http://profiles.wordpress.org/boonebgorges">Boone B. Gorges</a>
     494                    <span class="title"><?php _e( 'Lead Developer', 'buddypress' ); ?></span>
     495                </li>
     496                <li class="wp-person" id="wp-person-djpaul">
     497                    <a href="http://profiles.wordpress.org/djpaul"><img src="http://0.gravatar.com/avatar/e341eca9e1a85dcae7127044301b4363?s=60" class="gravatar" alt="Paul Gibbs" /></a>
     498                    <a class="web" href="http://profiles.wordpress.org/djpaul">Paul Gibbs</a>
     499                    <span class="title"><?php _e( 'Lead Developer', 'buddypress' ); ?></span>
     500                </li>
     501            </ul>
     502
     503            <h4 class="wp-people-group"><?php _e( 'Contributing Developers', 'buddypress' ); ?></h4>
     504            <ul class="wp-people-group " id="wp-people-group-contributing-developers">
     505                <li class="wp-person" id="wp-person-jmdodd">
     506                    <a href="http://profiles.wordpress.org/jmdodd"><img src="http://0.gravatar.com/avatar/6a7c997edea340616bcc6d0fe03f65dd?s=60" class="gravatar" alt="Jennifer M. Dodd" /></a>
     507                    <a class="web" href="http://profiles.wordpress.org/jmdodd">Jennifer M. Dodd</a>
     508                    <span class="title"></span>
     509                </li>
     510                <li class="wp-person" id="wp-person-jaredatch">
     511                    <a href="http://profiles.wordpress.org/jaredatch"><img src="http://0.gravatar.com/avatar/e341eca9e1a85dcae7127044301b4363?s=60" class="gravatar" alt="Jared Atchison" /></a>
     512                    <a class="web" href="http://profiles.wordpress.org/jaredatch">Jared Atchison</a>
     513                    <span class="title"></span>
     514                </li>
     515                <li class="wp-person" id="wp-person-gautamgupta">
     516                    <a href="http://profiles.wordpress.org/gautamgupta"><img src="http://0.gravatar.com/avatar/b0810422cbe6e4eead4def5ae7a90b34?s=60" class="gravatar" alt="Gautam Gupta" /></a>
     517                    <a class="web" href="http://profiles.wordpress.org/gautamgupta">Gautam Gupta</a>
     518                    <span class="title"></span>
     519                </li>
     520            </ul>
     521
     522            <h4 class="wp-people-group"><?php _e( 'Codex Rockstars', 'buddypress' ); ?></h4>
     523            <ul class="wp-people-group " id="wp-people-group-codex-rockstars">
     524                <li class="wp-person" id="wp-person-masonjames">
     525                    <a href="http://profiles.wordpress.org/masonjames"><img src="http://0.gravatar.com/avatar/99dee4d5287d0f9e26ff72e7228d97ac?s=60" class="gravatar" alt="Mason James" /></a>
     526                    <a class="web" href="http://profiles.wordpress.org/masonjames">Mason James</a>
     527                    <span class="title"></span>
     528                </li>
     529                <li class="wp-person" id="wp-person-wordsforwp">
     530                    <a href="http://profiles.wordpress.org/wordsforwp"><img src="http://0.gravatar.com/avatar/5437119b446adad1af813c44944e6c9c?s=60" class="gravatar" alt="Siobhan McKeown" /></a>
     531                    <a class="web" href="http://profiles.wordpress.org/wordsforwp">Siobhan McKeown</a>
     532                    <span class="title"></span>
     533                </li>
     534                <li class="wp-person" id="wp-person-JarretC">
     535                    <a href="http://profiles.wordpress.org/JarretC"><img src="http://0.gravatar.com/avatar/e00501bf782b42d5db19ff75fca14f6a?s=60" class="gravatar" alt="Jarret Cade" /></a>
     536                    <a class="web" href="http://profiles.wordpress.org/JarretC">Jarret Cade</a>
     537                    <span class="title"></span>
     538                </li>
     539            </ul>
     540
     541            <h4 class="wp-people-group"><?php _e( 'Core Contributors to BuddyPress 1.7', 'buddypress' ); ?></h4>
     542            <p class="wp-credits-list">
     543                <a href="http://profiles.wordpress.org/alexvorn2">alexvorn2</a>,
     544                <a href="http://profiles.wordpress.org/anointed">anointed</a>,
     545                <a href="http://profiles.wordpress.org/chexee">chexee</a>,
     546                <a href="http://profiles.wordpress.org/cnorris23">cnorris23</a>,
     547                <a href="http://profiles.wordpress.org/DanielJuhl">DanielJuhl</a>,
     548                <a href="http://profiles.wordpress.org/daveshine">daveshine</a>,
     549                <a href="http://profiles.wordpress.org/dimadin">dimadin</a>,
     550                <a href="http://profiles.wordpress.org/gawain">gawain</a>,
     551                <a href="http://profiles.wordpress.org/iamzippy">iamzippy</a>,
     552                <a href="http://profiles.wordpress.org/isaacchapman">isaacchapman</a>,
     553                <a href="http://profiles.wordpress.org/jane">jane</a>,
     554                <a href="http://profiles.wordpress.org/jkudish">jkudish</a>,
     555                <a href="http://profiles.wordpress.org/mamaduka">mamaduka</a>,
     556                <a href="http://profiles.wordpress.org/mercime">mercime</a>,
     557                <a href="http://profiles.wordpress.org/mesayre">mesayre</a>,
     558                <a href="http://profiles.wordpress.org/mordauk">mordauk</a>,
     559                <a href="http://profiles.wordpress.org/MZAWeb">MZAWeb</a>,
     560                <a href="http://profiles.wordpress.org/netweb">netweb</a>,
     561                <a href="http://profiles.wordpress.org/nexia">nexia</a>,
     562                <a href="http://profiles.wordpress.org/Omicron7">Omicron7</a>,
     563                <a href="http://profiles.wordpress.org/otto42">otto42</a>,
     564                <a href="http://profiles.wordpress.org/pavelevap">pavelevap</a>,
     565                <a href="http://profiles.wordpress.org/plescheff">plescheff</a>,
     566                <a href="http://profiles.wordpress.org/scribu">scribu</a>,
     567                <a href="http://profiles.wordpress.org/sorich87">sorich87</a>,
     568                <a href="http://profiles.wordpress.org/SteveAtty">SteveAtty</a>,
     569                <a href="http://profiles.wordpress.org/tmoorewp">tmoorewp</a>,
     570                <a href="http://profiles.wordpress.org/tott">tott</a>,
     571                <a href="http://profiles.wordpress.org/tungdo">tungdo</a>,
     572                <a href="http://profiles.wordpress.org/vibol">vibol</a>,
     573                <a href="http://profiles.wordpress.org/wonderboymusic">wonderboymusic</a>,
     574                <a href="http://profiles.wordpress.org/westi">westi</a>,
     575                <a href="http://profiles.wordpress.org/xiosen">xiosen</a>,
     576            </p>
     577
     578            <div class="return-to-dashboard">
     579                <a href="<?php echo esc_url( bp_get_admin_url( add_query_arg( array( 'page' => 'buddypress' ), 'options-general.php' ) ) ); ?>"><?php _e( 'Go to Community Settings' ); ?></a>
     580            </div>
     581
     582        </div>
    493583
    494584        <?php
Note: See TracChangeset for help on using the changeset viewer.