Changeset 6558 for trunk/bp-core/bp-core-admin.php
- Timestamp:
- 12/04/2012 12:16:42 PM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/bp-core/bp-core-admin.php
r6422 r6558 21 21 class BP_Admin { 22 22 23 /**24 * Instance of the setup wizard25 *26 * @since BuddyPress (1.6)27 * @var BP_Core_Setup_Wizard28 */29 public $wizard;30 31 23 /** Directory *************************************************************/ 32 24 … … 98 90 */ 99 91 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' ); 113 97 } 114 98 … … 124 108 private function setup_actions() { 125 109 126 // Start the wizard if in maintenance mode127 if ( bp_get_maintenance_mode() ) {128 add_action( bp_core_admin_hook(), array( $this, 'start_wizard' ), 2 );129 }130 131 110 /** General Actions ***************************************************/ 132 111 133 // Attach the BuddyPress admin_init action to the WordPress admin_init action.134 add_action( 'admin_init', array( $this, 'admin_init' ) );135 136 112 // 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 ); 138 114 139 115 // 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 ); 145 117 146 118 // 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' ) ); 148 120 149 121 /** BuddyPress Actions ************************************************/ 150 122 151 123 // 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' ) ); 153 125 154 126 /** Filters ***********************************************************/ 155 127 156 128 // 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 ); 162 130 } 163 131 … … 173 141 public function admin_menus() { 174 142 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' ); 258 218 } 259 219 } … … 267 227 * @uses add_settings_field() To add various settings fields 268 228 * @uses register_setting() To register various settings 269 * @uses do_action() Calls 'bp_register_admin_settings'270 229 */ 271 230 public function register_admin_settings() { … … 347 306 } 348 307 } 349 350 do_action( 'bp_register_admin_settings' );351 308 } 352 309 … … 360 317 * @return array Processed links 361 318 */ 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 ) ); 393 334 } 394 335 … … 398 339 * @since BuddyPress (1.6) 399 340 */ 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 } 401 353 402 354 /** … … 412 364 $file = apply_filters( 'bp_core_admin_common_css', $file ); 413 365 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’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’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> 493 583 494 584 <?php
Note: See TracChangeset
for help on using the changeset viewer.