bbPress - Version 2.1

Version Description

  • WordPress 3.4 compatibility
  • Deprecate $bbp global, use bbpress() singleton
  • Private forums now visible to registered users
  • Updated forum converter
  • Topic and reply edits now ran through Akismet
  • Fixed Akismet edit bug
  • Fixed Widgets nooping globals
  • Fixed translation load order
  • Fixed user-edit bugs
  • Fixed settings screen regressions
  • Improved post cache invalidation
  • Improved admin-side nonce checks
  • Improved admin settings API
  • Improved bbPress 1.1 converter
  • Improved BuddyPress integration
  • Improved Theme-Compatibility
  • Improved template coverage
  • Improved query performance
  • Improved breadcrumb behavior
  • Improved multisite integration
  • Improved code clarity
  • Improved RTL styling
  • Added 2x menu icons for HiDPI displays
  • Added fancy editor support
  • Added fallback theme picker
  • Added tools for importing, resetting, and removing
Download this release

Release Info

Developer johnjamesjacoby
Plugin Icon 128x128 bbPress
Version 2.1
Comparing to
See all releases

Code changes from version 2.1-rc4 to 2.1

bbp-admin/bbp-actions.php CHANGED
@@ -48,9 +48,9 @@ add_action( 'menu_order', 'bbp_admin_menu_order' );
48
  add_action( 'wpmu_new_blog', 'bbp_new_site', 10, 6 );
49
 
50
  // Hook on to admin_init
51
- add_action( 'bbp_admin_init', 'bbp_admin_forums', 9 );
52
- add_action( 'bbp_admin_init', 'bbp_admin_topics', 9 );
53
- add_action( 'bbp_admin_init', 'bbp_admin_replies', 9 );
54
  add_action( 'bbp_admin_init', 'bbp_setup_updater', 999 );
55
  add_action( 'bbp_admin_init', 'bbp_register_importers' );
56
  add_action( 'bbp_admin_init', 'bbp_register_admin_style' );
48
  add_action( 'wpmu_new_blog', 'bbp_new_site', 10, 6 );
49
 
50
  // Hook on to admin_init
51
+ add_action( 'bbp_admin_init', 'bbp_admin_forums' );
52
+ add_action( 'bbp_admin_init', 'bbp_admin_topics' );
53
+ add_action( 'bbp_admin_init', 'bbp_admin_replies' );
54
  add_action( 'bbp_admin_init', 'bbp_setup_updater', 999 );
55
  add_action( 'bbp_admin_init', 'bbp_register_importers' );
56
  add_action( 'bbp_admin_init', 'bbp_register_admin_style' );
bbp-admin/bbp-admin.php CHANGED
@@ -76,53 +76,17 @@ class BBP_Admin {
76
  }
77
 
78
  /**
79
- * Setup the admin hooks, actions and filters
80
  *
81
  * @since bbPress (r2646)
82
  * @access private
83
- *
84
- * @uses add_action() To add various actions
85
- * @uses add_filter() To add various filters
86
  */
87
- private function setup_actions() {
88
-
89
- /** General Actions ***************************************************/
90
-
91
- // Add menu item to settings menu
92
- add_action( 'bbp_admin_menu', array( $this, 'admin_menus' ) );
93
-
94
- // Add some general styling to the admin area
95
- add_action( 'bbp_admin_head', array( $this, 'admin_head' ) );
96
-
97
- // Add notice if not using a bbPress theme
98
- add_action( 'bbp_admin_notices', array( $this, 'activation_notice' ) );
99
-
100
- // Add green admin style
101
- add_action( 'bbp_register_admin_style', array( $this, 'register_admin_style' ) );
102
-
103
- // Add settings
104
- add_action( 'bbp_register_admin_settings', array( $this, 'register_admin_settings' ) );
105
-
106
- // Add menu item to settings menu
107
- add_action( 'bbp_activation', array( $this, 'new_install' ) );
108
-
109
- // Forums 'Right now' Dashboard widget
110
- add_action( 'wp_dashboard_setup', array( $this, 'dashboard_widget_right_now' ) );
111
-
112
- /** Filters ***********************************************************/
113
-
114
- // Add link to settings page
115
- add_filter( 'plugin_action_links', array( $this, 'add_settings_link' ), 10, 2 );
116
-
117
- /** Network Admin *****************************************************/
118
-
119
- // Add menu item to settings menu
120
- add_action( 'network_admin_menu', array( $this, 'network_admin_menus' ) );
121
-
122
- /** Dependencies ******************************************************/
123
-
124
- // Allow plugins to modify these actions
125
- do_action_ref_array( 'bbp_admin_loaded', array( &$this ) );
126
  }
127
 
128
  /**
@@ -143,17 +107,40 @@ class BBP_Admin {
143
  }
144
 
145
  /**
146
- * Admin globals
147
  *
148
  * @since bbPress (r2646)
149
  * @access private
 
 
 
150
  */
151
- private function setup_globals() {
152
- $bbp = bbpress();
153
- $this->admin_dir = trailingslashit( $bbp->plugin_dir . 'bbp-admin' ); // Admin url
154
- $this->admin_url = trailingslashit( $bbp->plugin_url . 'bbp-admin' ); // Admin url
155
- $this->images_url = trailingslashit( $this->admin_url . 'images' ); // Admin images URL
156
- $this->styles_url = trailingslashit( $this->admin_url . 'styles' ); // Admin styles URL
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
157
  }
158
 
159
  /**
@@ -538,16 +525,34 @@ class BBP_Admin {
538
  }
539
 
540
  /* Icon 32 */
 
 
 
 
 
 
 
 
541
  #icon-edit.icon32-posts-<?php echo $forum_class; ?> {
542
- background: url('<?php echo $icon32_url; ?>') no-repeat -4px 0px;
543
  }
544
 
545
  #icon-edit.icon32-posts-<?php echo $topic_class; ?> {
546
- background: url('<?php echo $icon32_url; ?>') no-repeat -4px -90px;
547
  }
548
 
549
  #icon-edit.icon32-posts-<?php echo $reply_class; ?> {
550
- background: url('<?php echo $icon32_url; ?>') no-repeat -4px -180px;
 
 
 
 
 
 
 
 
 
 
551
  }
552
 
553
  /* Menu */
@@ -642,6 +647,8 @@ class BBP_Admin {
642
  wp_admin_css_color( 'bbpress', __( 'Green', 'bbpress' ), $css_file, array( '#222222', '#006600', '#deece1', '#6eb469' ) );
643
  }
644
 
 
 
645
  /**
646
  * Update all bbPress forums across all sites
647
  *
76
  }
77
 
78
  /**
79
+ * Admin globals
80
  *
81
  * @since bbPress (r2646)
82
  * @access private
 
 
 
83
  */
84
+ private function setup_globals() {
85
+ $bbp = bbpress();
86
+ $this->admin_dir = trailingslashit( $bbp->plugin_dir . 'bbp-admin' ); // Admin path
87
+ $this->admin_url = trailingslashit( $bbp->plugin_url . 'bbp-admin' ); // Admin url
88
+ $this->images_url = trailingslashit( $this->admin_url . 'images' ); // Admin images URL
89
+ $this->styles_url = trailingslashit( $this->admin_url . 'styles' ); // Admin styles URL
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
90
  }
91
 
92
  /**
107
  }
108
 
109
  /**
110
+ * Setup the admin hooks, actions and filters
111
  *
112
  * @since bbPress (r2646)
113
  * @access private
114
+ *
115
+ * @uses add_action() To add various actions
116
+ * @uses add_filter() To add various filters
117
  */
118
+ private function setup_actions() {
119
+
120
+ /** General Actions ***************************************************/
121
+
122
+ add_action( 'bbp_admin_menu', array( $this, 'admin_menus' ) ); // Add menu item to settings menu
123
+ add_action( 'bbp_admin_head', array( $this, 'admin_head' ) ); // Add some general styling to the admin area
124
+ add_action( 'bbp_admin_notices', array( $this, 'activation_notice' ) ); // Add notice if not using a bbPress theme
125
+ add_action( 'bbp_register_admin_style', array( $this, 'register_admin_style' ) ); // Add green admin style
126
+ add_action( 'bbp_register_admin_settings', array( $this, 'register_admin_settings' ) ); // Add settings
127
+ add_action( 'bbp_activation', array( $this, 'new_install' ) ); // Add menu item to settings menu
128
+ add_action( 'wp_dashboard_setup', array( $this, 'dashboard_widget_right_now' ) ); // Forums 'Right now' Dashboard widget
129
+
130
+ /** Filters ***********************************************************/
131
+
132
+ // Add link to settings page
133
+ add_filter( 'plugin_action_links', array( $this, 'add_settings_link' ), 10, 2 );
134
+
135
+ /** Network Admin *****************************************************/
136
+
137
+ // Add menu item to settings menu
138
+ add_action( 'network_admin_menu', array( $this, 'network_admin_menus' ) );
139
+
140
+ /** Dependencies ******************************************************/
141
+
142
+ // Allow plugins to modify these actions
143
+ do_action_ref_array( 'bbp_admin_loaded', array( &$this ) );
144
  }
145
 
146
  /**
525
  }
526
 
527
  /* Icon 32 */
528
+ #icon-edit.icon32-posts-<?php echo $forum_class; ?>,
529
+ #icon-edit.icon32-posts-<?php echo $topic_class; ?>,
530
+ #icon-edit.icon32-posts-<?php echo $reply_class; ?> {
531
+ background: url('<?php echo $icon32_url; ?>');
532
+ background-repeat: no-repeat;
533
+ }
534
+
535
+ /* Icon Positions */
536
  #icon-edit.icon32-posts-<?php echo $forum_class; ?> {
537
+ background-position: -4px 0px;
538
  }
539
 
540
  #icon-edit.icon32-posts-<?php echo $topic_class; ?> {
541
+ background-position: -4px -90px;
542
  }
543
 
544
  #icon-edit.icon32-posts-<?php echo $reply_class; ?> {
545
+ background-position: -4px -180px;
546
+ }
547
+
548
+ /* Icon 32 2x */
549
+ @media only screen and (-webkit-min-device-pixel-ratio: 1.5) {
550
+ #icon-edit.icon32-posts-<?php echo $forum_class; ?>,
551
+ #icon-edit.icon32-posts-<?php echo $topic_class; ?>,
552
+ #icon-edit.icon32-posts-<?php echo $reply_class; ?> {
553
+ background-image: url('<?php echo $icon32_url_2x; ?>');
554
+ background-size: 45px 255px;
555
+ }
556
  }
557
 
558
  /* Menu */
647
  wp_admin_css_color( 'bbpress', __( 'Green', 'bbpress' ), $css_file, array( '#222222', '#006600', '#deece1', '#6eb469' ) );
648
  }
649
 
650
+ /** Updaters **************************************************************/
651
+
652
  /**
653
  * Update all bbPress forums across all sites
654
  *
bbp-admin/bbp-converter.php CHANGED
@@ -25,6 +25,26 @@ class BBP_Converter {
25
  * @uses BBP_Converter::setup_actions() Setup the actions
26
  */
27
  public function __construct() {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
28
  $this->setup_actions();
29
  }
30
 
@@ -42,9 +62,6 @@ class BBP_Converter {
42
  // Attach the bbConverter admin settings action to the WordPress admin init action.
43
  add_action( 'bbp_register_admin_settings', array( $this, 'register_admin_settings' ) );
44
 
45
- // Attach to the login process to aid in converting passwords to wordpress.
46
- add_action( 'login_form_login', array( $this, 'convert_pass' ) );
47
-
48
  // Attach to the admin ajax request to process cycles
49
  add_action( 'wp_ajax_bbconverter_process', array( $this, 'process_callback' ) );
50
  }
@@ -60,7 +77,7 @@ class BBP_Converter {
60
  public function register_admin_settings() {
61
 
62
  // Add the main section
63
- add_settings_section( 'bbpress_converter_main', __( 'Main Settings', 'bbpress' ), 'bbp_converter_setting_callback_main_section', 'bbpress_converter' );
64
 
65
  // System Select
66
  add_settings_field( '_bbp_converter_platform', __( 'Select Platform', 'bbpress' ), 'bbp_converter_setting_callback_platform', 'bbpress_converter', 'bbpress_converter_main' );
@@ -105,13 +122,13 @@ class BBP_Converter {
105
  add_settings_field( '_bbp_converter_convert_users', __( 'Convert Users', 'bbpress' ), 'bbp_converter_setting_callback_convert_users', 'bbpress_converter', 'bbpress_converter_opt' );
106
  register_setting ( 'bbpress_converter_opt', '_bbp_converter_convert_users', 'intval' );
107
 
108
- // Clean
109
- add_settings_field( '_bbp_converter_clean', __( 'Clean', 'bbpress' ), 'bbp_converter_setting_callback_clean', 'bbpress_converter', 'bbpress_converter_opt' );
110
- register_setting ( 'bbpress_converter_opt', '_bbp_converter_clean', 'intval' );
111
-
112
  // Restart
113
- add_settings_field( '_bbp_converter_restart', __( 'Restart', 'bbpress' ), 'bbp_converter_setting_callback_restart', 'bbpress_converter', 'bbpress_converter_opt' );
114
  register_setting ( 'bbpress_converter_opt', '_bbp_converter_restart', 'intval' );
 
 
 
 
115
  }
116
 
117
  /**
@@ -139,15 +156,18 @@ class BBP_Converter {
139
  background-color: #FFFFE0;
140
  border-color: #E6DB55;
141
  font-family: monospace;
 
142
  }
143
 
144
  div.bbp-converter-updated p {
145
  margin: 0.5em 0;
146
  padding: 2px;
 
 
147
  }
148
 
149
- div.bbp-converter-updated p strong.loading {
150
- padding: 2px 20px 2px 0;
151
  background-image: url('<?php echo admin_url(); ?>images/wpspin_light.gif');
152
  background-repeat: no-repeat;
153
  background-position: center right;
@@ -185,6 +205,8 @@ class BBP_Converter {
185
  }
186
 
187
  values['action'] = 'bbconverter_process';
 
 
188
  return values;
189
  }
190
 
@@ -194,7 +216,7 @@ class BBP_Converter {
194
  jQuery('#bbp-converter-start').hide();
195
  jQuery('#bbp-converter-stop').show();
196
  jQuery('#bbp-converter-progress').show();
197
- bbconverter_log( "Starting Conversion..." );
198
  bbconverter_run();
199
  }
200
  }
@@ -208,29 +230,26 @@ class BBP_Converter {
208
  }
209
 
210
  function bbconverter_stop() {
 
 
 
 
211
  bbconverter_is_running = false;
212
- jQuery('#bbp-converter-message strong').removeClass( 'loading' );
213
  }
214
 
215
  function bbconverter_success(response) {
216
  bbconverter_log(response);
217
 
218
- if ( response == 'Conversion Complete' || response.indexOf('error') > -1 ) {
219
- bbconverter_log('<b>Repair any missing information: <a href="<?php echo admin_url(); ?>tools.php?page=bbp-repair">Continue</a></b>');
220
- jQuery('#bbp-converter-start').show();
221
- jQuery('#bbp-converter-stop').hide();
222
- jQuery('#bbp-converter-progress').hide();
223
  bbconverter_stop();
224
- clearTimeout( bbconverter_run_timer );
225
  } else if( bbconverter_is_running ) { // keep going
226
  jQuery('#bbp-converter-progress').show();
227
  clearTimeout( bbconverter_run_timer );
228
  bbconverter_run_timer = setTimeout( 'bbconverter_run()', bbconverter_delay_time );
229
  } else {
230
- jQuery('#bbp-converter-start').show();
231
- jQuery('#bbp-converter-stop').hide();
232
- jQuery('#bbp-converter-progress').hide();
233
- clearTimeout( bbconverter_run_timer );
234
  }
235
  }
236
 
@@ -239,8 +258,8 @@ class BBP_Converter {
239
  jQuery('#bbp-converter-message').show();
240
  }
241
  if ( text ) {
242
- jQuery('#bbp-converter-message strong').removeClass( 'loading' );
243
- jQuery('#bbp-converter-message').prepend('<p><strong class="loading">' + text + '</strong></p>');
244
  }
245
  }
246
 
@@ -249,6 +268,26 @@ class BBP_Converter {
249
  <?php
250
  }
251
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
252
  /**
253
  * Callback processor
254
  *
@@ -256,6 +295,9 @@ class BBP_Converter {
256
  */
257
  public function process_callback() {
258
 
 
 
 
259
  if ( ! ini_get( 'safe_mode' ) ) {
260
  set_time_limit( 0 );
261
  ini_set( 'memory_limit', '256M' );
@@ -291,13 +333,13 @@ class BBP_Converter {
291
  if ( $converter->clean( $start ) ) {
292
  update_option( '_bbp_converter_step', $step + 1 );
293
  update_option( '_bbp_converter_start', 0 );
294
- $this->sync_table();
295
  if ( empty( $start ) ) {
296
- _e( 'No data to clean', 'bbpress' );
297
  }
298
  } else {
299
  update_option( '_bbp_converter_start', $max + 1 );
300
- printf( __( 'Deleting previously converted data (%1$s - %2$s)', 'bbpress' ), $min, $max );
301
  }
302
  } else {
303
  update_option( '_bbp_converter_step', $step + 1 );
@@ -313,11 +355,11 @@ class BBP_Converter {
313
  update_option( '_bbp_converter_step', $step + 1 );
314
  update_option( '_bbp_converter_start', 0 );
315
  if ( empty( $start ) ) {
316
- _e( 'No users to convert', 'bbpress' );
317
  }
318
  } else {
319
  update_option( '_bbp_converter_start', $max + 1 );
320
- printf( __( 'Converting users (%1$s - %2$s)', 'bbpress' ), $min, $max );
321
  }
322
  } else {
323
  update_option( '_bbp_converter_step', $step + 1 );
@@ -333,11 +375,11 @@ class BBP_Converter {
333
  update_option( '_bbp_converter_step', $step + 1 );
334
  update_option( '_bbp_converter_start', 0 );
335
  if ( empty( $start ) ) {
336
- _e( 'No passwords to clear', 'bbpress' );
337
  }
338
  } else {
339
  update_option( '_bbp_converter_start', $max + 1 );
340
- printf( __( 'Delete users wordpress default passwords (%1$s - %2$s)', 'bbpress' ), $min, $max );
341
  }
342
  } else {
343
  update_option( '_bbp_converter_step', $step + 1 );
@@ -352,59 +394,56 @@ class BBP_Converter {
352
  update_option( '_bbp_converter_step', $step + 1 );
353
  update_option( '_bbp_converter_start', 0 );
354
  if ( empty( $start ) ) {
355
- _e( 'No forums to convert', 'bbpress' );
356
  }
357
  } else {
358
  update_option( '_bbp_converter_start', $max + 1 );
359
- printf( __( 'Converting forums (%1$s - %2$s)', 'bbpress' ), $min, $max );
360
  }
361
 
362
  break;
363
 
364
  // STEP 5. Convert forum parents.
365
  case 5 :
366
-
367
  if ( $converter->convert_forum_parents( $start ) ) {
368
  update_option( '_bbp_converter_step', $step + 1 );
369
  update_option( '_bbp_converter_start', 0 );
370
  if ( empty( $start ) ) {
371
- _e( 'No forum parents to convert', 'bbpress' );
372
  }
373
  } else {
374
  update_option( '_bbp_converter_start', $max + 1 );
375
- printf( __( 'Calculating forum hierarchy (%1$s - %2$s)', 'bbpress' ), $min, $max );
376
  }
377
 
378
  break;
379
 
380
  // STEP 6. Convert topics.
381
  case 6 :
382
-
383
  if ( $converter->convert_topics( $start ) ) {
384
  update_option( '_bbp_converter_step', $step + 1 );
385
  update_option( '_bbp_converter_start', 0 );
386
  if ( empty( $start ) ) {
387
- _e( 'No topics to convert', 'bbpress' );
388
  }
389
  } else {
390
  update_option( '_bbp_converter_start', $max + 1 );
391
- printf( __( 'Converting topics (%1$s - %2$s)', 'bbpress' ), $min, $max );
392
  }
393
 
394
  break;
395
 
396
  // STEP 7. Convert tags.
397
  case 7 :
398
-
399
  if ( $converter->convert_tags( $start ) ) {
400
  update_option( '_bbp_converter_step', $step + 1 );
401
  update_option( '_bbp_converter_start', 0 );
402
  if ( empty( $start ) ) {
403
- _e( 'No tags to convert', 'bbpress' );
404
  }
405
  } else {
406
  update_option( '_bbp_converter_start', $max + 1 );
407
- printf( __( 'Converting topic tags (%1$s - %2$s)', 'bbpress' ), $min, $max );
408
  }
409
 
410
  break;
@@ -415,46 +454,23 @@ class BBP_Converter {
415
  update_option( '_bbp_converter_step', $step + 1 );
416
  update_option( '_bbp_converter_start', 0 );
417
  if ( empty( $start ) ) {
418
- _e( 'No replies to convert', 'bbpress' );
419
  }
420
  } else {
421
  update_option( '_bbp_converter_start', $max + 1 );
422
- printf( __( 'Converting replies (%1$s - %2$s)', 'bbpress' ), $min, $max );
423
  }
424
 
425
  break;
426
 
427
  default :
428
- delete_option( '_bbp_converter_step' );
429
  delete_option( '_bbp_converter_start' );
 
430
 
431
- _e( 'Conversion Complete', 'bbpress' );
432
 
433
  break;
434
-
435
- }
436
- }
437
-
438
- /**
439
- * Convert passwords from previous forum to wordpress.
440
- *
441
- * @since bbPress (r3813)
442
- * @global WPDB $wpdb
443
- */
444
- public function convert_pass() {
445
-
446
- $username = !empty( $_POST['log'] ) ? $_POST['log'] : '';
447
-
448
- if ( !empty( $username ) ) {
449
-
450
- global $wpdb;
451
-
452
- $row = $wpdb->get_row( "SELECT * FROM {$wpdb->users} INNER JOIN {$wpdb->usermeta} ON user_id = ID WHERE meta_key = '_bbp_converter_class' AND user_login = '{$username}' LIMIT 1" );
453
-
454
- if ( !empty( $row ) ) {
455
- $converter = bbp_new_converter( $row->meta_value );
456
- $converter->callback_pass( $username, $_POST['pwd'] );
457
- }
458
  }
459
  }
460
 
@@ -467,35 +483,32 @@ class BBP_Converter {
467
  global $wpdb;
468
 
469
  $table_name = $wpdb->prefix . 'bbp_converter_translator';
470
- if ( $wpdb->get_var( "SHOW TABLES LIKE '{$table_name}'" ) == $table_name ) {
471
  $wpdb->query( "DROP TABLE {$table_name}" );
472
- }
473
 
474
- if ( empty( $drop ) ) {
475
- require_once( ABSPATH . '/wp-admin/includes/upgrade.php' );
476
 
477
- if ( !empty( $wpdb->charset ) ) {
478
- $charset_collate = "DEFAULT CHARACTER SET $wpdb->charset";
479
- }
480
 
481
- if ( !empty( $wpdb->collate ) ) {
482
- $charset_collate .= " COLLATE $wpdb->collate";
483
- }
484
 
485
- /** Translator ****************************************************/
486
 
487
- $sql = "CREATE TABLE {$table_name} (
488
- meta_id mediumint(8) unsigned not null auto_increment,
489
- value_type varchar(25) null,
490
- value_id bigint(20) unsigned not null default '0',
491
- meta_key varchar(25) null,
492
- meta_value varchar(25) null,
493
- PRIMARY KEY (meta_id),
494
- KEY value_id (value_id),
495
- KEY meta_join (meta_key, meta_value) ) {$charset_collate};";
496
 
497
- dbDelta( $sql );
498
- }
499
  }
500
  }
501
 
@@ -812,8 +825,8 @@ abstract class BBP_Converter_Base {
812
  $forum_query = 'SELECT ' . implode( ',', $field_list ) . ' FROM ' . $this->opdb->prefix . $from_tablename . ' LIMIT ' . $start . ', ' . $this->max_rows;
813
  $forum_array = $this->opdb->get_results( $forum_query, ARRAY_A );
814
 
815
- // Output the query, for better debugging
816
- printf( __( '<span title="%s">View Query</span>%s', 'bbpress' ), esc_attr( $forum_query ), '<br />' );
817
 
818
  // Query returned some results
819
  if ( !empty( $forum_array ) ) {
@@ -957,13 +970,17 @@ abstract class BBP_Converter_Base {
957
  }
958
 
959
  public function convert_forum_parents( $start ) {
 
960
  $has_update = false;
961
 
962
- if ( !empty( $this->sync_table ) ) {
963
- $forum_array = $this->wpdb->get_results( 'SELECT value_id, meta_value FROM ' . $this->sync_table_name . ' WHERE meta_key = "_bbp_forum_parent_id" AND meta_value > 0 LIMIT ' . $start . ', ' . $this->max_rows );
964
- } else {
965
- $forum_array = $this->wpdb->get_results( 'SELECT post_id AS value_id, meta_value FROM ' . $this->wpdb->postmeta . ' WHERE meta_key = "_bbp_forum_parent_id" AND meta_value > 0 LIMIT ' . $start . ', ' . $this->max_rows );
966
- }
 
 
 
967
 
968
  foreach ( (array) $forum_array as $row ) {
969
  $parent_id = $this->callback_forumid( $row->meta_value );
@@ -978,19 +995,23 @@ abstract class BBP_Converter_Base {
978
  * This method deletes data from the wp database.
979
  */
980
  public function clean( $start ) {
 
981
  $start = 0;
982
  $has_delete = false;
983
 
984
  /** Delete bbconverter topics/forums/posts ****************************/
985
 
986
- if ( true === $this->sync_table ) {
987
- $bbconverter = $this->wpdb->get_results( 'SELECT value_id FROM ' . $this->sync_table_name . ' INNER JOIN ' . $this->wpdb->posts . ' ON(value_id = ID) WHERE meta_key LIKE "_bbp_%" AND value_type = "post" GROUP BY value_id ORDER BY value_id DESC LIMIT ' . $this->max_rows, ARRAY_A );
988
- } else {
989
- $bbconverter = $this->wpdb->get_results( 'SELECT post_id AS value_id FROM ' . $this->wpdb->postmeta . ' WHERE meta_key LIKE "_bbp_%" GROUP BY post_id ORDER BY post_id DESC LIMIT ' . $this->max_rows, ARRAY_A );
990
- }
991
 
992
- if ( !empty( $bbconverter ) ) {
993
- foreach ( (array) $bbconverter as $value ) {
 
 
 
 
994
  wp_delete_post( $value['value_id'], true );
995
  }
996
  $has_delete = true;
@@ -998,19 +1019,25 @@ abstract class BBP_Converter_Base {
998
 
999
  /** Delete bbconverter users ******************************************/
1000
 
1001
- if ( true === $this->sync_table ) {
1002
- $bbconverter = $this->wpdb->get_results( 'SELECT value_id FROM ' . $this->sync_table_name . ' INNER JOIN ' . $this->wpdb->users . ' ON(value_id = ID) WHERE meta_key = "_bbp_user_id" AND value_type = "user" LIMIT ' . $this->max_rows, ARRAY_A );
1003
- } else {
1004
- $bbconverter = $this->wpdb->get_results( 'SELECT user_id AS value_id FROM ' . $this->wpdb->usermeta . ' WHERE meta_key = "_bbp_user_id" LIMIT ' . $this->max_rows, ARRAY_A );
1005
- }
1006
 
1007
- if ( !empty( $bbconverter ) ) {
1008
- foreach ( $bbconverter as $value ) {
 
 
 
 
1009
  wp_delete_user( $value['value_id'] );
1010
  }
1011
  $has_delete = true;
1012
  }
1013
 
 
 
 
1014
  return ! $has_delete;
1015
  }
1016
 
@@ -1020,11 +1047,16 @@ abstract class BBP_Converter_Base {
1020
  * @param int Start row
1021
  */
1022
  public function clean_passwords( $start ) {
 
1023
  $has_delete = false;
1024
 
1025
  /** Delete bbconverter passwords **************************************/
1026
 
1027
- $bbconverter = $this->wpdb->get_results( 'SELECT user_id, meta_value FROM ' . $this->wpdb->usermeta . ' WHERE meta_key = "_bbp_password" LIMIT ' . $start . ', ' . $this->max_rows, ARRAY_A );
 
 
 
 
1028
  if ( !empty( $bbconverter ) ) {
1029
 
1030
  foreach ( $bbconverter as $value ) {
@@ -1037,6 +1069,7 @@ abstract class BBP_Converter_Base {
1037
  }
1038
  $has_delete = true;
1039
  }
 
1040
  return ! $has_delete;
1041
  }
1042
 
25
  * @uses BBP_Converter::setup_actions() Setup the actions
26
  */
27
  public function __construct() {
28
+
29
+ // Bail if request is not correct
30
+ switch ( strtoupper( $_SERVER['REQUEST_METHOD'] ) ) {
31
+
32
+ // Converter is converting
33
+ case 'POST' :
34
+ if ( ( empty( $_POST['action'] ) || ( 'bbconverter_process' != $_POST['action'] ) ) )
35
+ return;
36
+
37
+ break;
38
+
39
+ // Some other admin page
40
+ case 'GET' :
41
+ if ( ( empty( $_GET['page'] ) || ( 'bbp-converter' != $_GET['page'] ) ) )
42
+ return;
43
+
44
+ break;
45
+ }
46
+
47
+ // Proceed with the actions
48
  $this->setup_actions();
49
  }
50
 
62
  // Attach the bbConverter admin settings action to the WordPress admin init action.
63
  add_action( 'bbp_register_admin_settings', array( $this, 'register_admin_settings' ) );
64
 
 
 
 
65
  // Attach to the admin ajax request to process cycles
66
  add_action( 'wp_ajax_bbconverter_process', array( $this, 'process_callback' ) );
67
  }
77
  public function register_admin_settings() {
78
 
79
  // Add the main section
80
+ add_settings_section( 'bbpress_converter_main', __( 'Database Settings', 'bbpress' ), 'bbp_converter_setting_callback_main_section', 'bbpress_converter' );
81
 
82
  // System Select
83
  add_settings_field( '_bbp_converter_platform', __( 'Select Platform', 'bbpress' ), 'bbp_converter_setting_callback_platform', 'bbpress_converter', 'bbpress_converter_main' );
122
  add_settings_field( '_bbp_converter_convert_users', __( 'Convert Users', 'bbpress' ), 'bbp_converter_setting_callback_convert_users', 'bbpress_converter', 'bbpress_converter_opt' );
123
  register_setting ( 'bbpress_converter_opt', '_bbp_converter_convert_users', 'intval' );
124
 
 
 
 
 
125
  // Restart
126
+ add_settings_field( '_bbp_converter_restart', __( 'Start Over', 'bbpress' ), 'bbp_converter_setting_callback_restart', 'bbpress_converter', 'bbpress_converter_opt' );
127
  register_setting ( 'bbpress_converter_opt', '_bbp_converter_restart', 'intval' );
128
+
129
+ // Clean
130
+ add_settings_field( '_bbp_converter_clean', __( 'Purge Previous Import', 'bbpress' ), 'bbp_converter_setting_callback_clean', 'bbpress_converter', 'bbpress_converter_opt' );
131
+ register_setting ( 'bbpress_converter_opt', '_bbp_converter_clean', 'intval' );
132
  }
133
 
134
  /**
156
  background-color: #FFFFE0;
157
  border-color: #E6DB55;
158
  font-family: monospace;
159
+ font-weight: bold;
160
  }
161
 
162
  div.bbp-converter-updated p {
163
  margin: 0.5em 0;
164
  padding: 2px;
165
+ float: left;
166
+ clear: left;
167
  }
168
 
169
+ div.bbp-converter-updated p.loading {
170
+ padding: 2px 20px 2px 2px;
171
  background-image: url('<?php echo admin_url(); ?>images/wpspin_light.gif');
172
  background-repeat: no-repeat;
173
  background-position: center right;
205
  }
206
 
207
  values['action'] = 'bbconverter_process';
208
+ values['_ajax_nonce'] = '<?php echo wp_create_nonce( 'bbp_converter_process' ); ?>';
209
+
210
  return values;
211
  }
212
 
216
  jQuery('#bbp-converter-start').hide();
217
  jQuery('#bbp-converter-stop').show();
218
  jQuery('#bbp-converter-progress').show();
219
+ bbconverter_log( '<p class="loading"><?php _e( 'Starting Conversion', 'bbpress' ); ?></p>' );
220
  bbconverter_run();
221
  }
222
  }
230
  }
231
 
232
  function bbconverter_stop() {
233
+ jQuery('#bbp-converter-start').show();
234
+ jQuery('#bbp-converter-stop').hide();
235
+ jQuery('#bbp-converter-progress').hide();
236
+ jQuery('#bbp-converter-message p').removeClass( 'loading' );
237
  bbconverter_is_running = false;
238
+ clearTimeout( bbconverter_run_timer );
239
  }
240
 
241
  function bbconverter_success(response) {
242
  bbconverter_log(response);
243
 
244
+ if ( response == '<p class="loading"><?php _e( 'Conversion Complete', 'bbpress' ); ?></p>' || response.indexOf('error') > -1 ) {
245
+ bbconverter_log('<p>Repair any missing information: <a href="<?php echo admin_url(); ?>tools.php?page=bbp-repair">Continue</a></p>');
 
 
 
246
  bbconverter_stop();
 
247
  } else if( bbconverter_is_running ) { // keep going
248
  jQuery('#bbp-converter-progress').show();
249
  clearTimeout( bbconverter_run_timer );
250
  bbconverter_run_timer = setTimeout( 'bbconverter_run()', bbconverter_delay_time );
251
  } else {
252
+ bbconverter_stop();
 
 
 
253
  }
254
  }
255
 
258
  jQuery('#bbp-converter-message').show();
259
  }
260
  if ( text ) {
261
+ jQuery('#bbp-converter-message p').removeClass( 'loading' );
262
+ jQuery('#bbp-converter-message').prepend( text );
263
  }
264
  }
265
 
268
  <?php
269
  }
270
 
271
+ /**
272
+ * Wrap the converter output in paragraph tags, so styling can be applied
273
+ *
274
+ * @since bbPress (r4052)
275
+ *
276
+ * @param string $output
277
+ */
278
+ private static function converter_output( $output = '' ) {
279
+
280
+ // Get the last query
281
+ $before = '<p class="loading">';
282
+ $after = '</p>';
283
+ $query = get_option( '_bbp_converter_query' );
284
+
285
+ if ( ! empty( $query ) )
286
+ $before = '<p class="loading" title="' . esc_attr( $query ) . '">';
287
+
288
+ echo $before . $output . $after;
289
+ }
290
+
291
  /**
292
  * Callback processor
293
  *
295
  */
296
  public function process_callback() {
297
 
298
+ // Verify intent
299
+ check_ajax_referer( 'bbp_converter_process' );
300
+
301
  if ( ! ini_get( 'safe_mode' ) ) {
302
  set_time_limit( 0 );
303
  ini_set( 'memory_limit', '256M' );
333
  if ( $converter->clean( $start ) ) {
334
  update_option( '_bbp_converter_step', $step + 1 );
335
  update_option( '_bbp_converter_start', 0 );
336
+ $this->sync_table( true );
337
  if ( empty( $start ) ) {
338
+ $this->converter_output( __( 'No data to clean', 'bbpress' ) );
339
  }
340
  } else {
341
  update_option( '_bbp_converter_start', $max + 1 );
342
+ $this->converter_output( sprintf( __( 'Deleting previously converted data (%1$s - %2$s)', 'bbpress' ), $min, $max ) );
343
  }
344
  } else {
345
  update_option( '_bbp_converter_step', $step + 1 );
355
  update_option( '_bbp_converter_step', $step + 1 );
356
  update_option( '_bbp_converter_start', 0 );
357
  if ( empty( $start ) ) {
358
+ $this->converter_output( __( 'No users to convert', 'bbpress' ) );
359
  }
360
  } else {
361
  update_option( '_bbp_converter_start', $max + 1 );
362
+ $this->converter_output( sprintf( __( 'Converting users (%1$s - %2$s)', 'bbpress' ), $min, $max ) );
363
  }
364
  } else {
365
  update_option( '_bbp_converter_step', $step + 1 );
375
  update_option( '_bbp_converter_step', $step + 1 );
376
  update_option( '_bbp_converter_start', 0 );
377
  if ( empty( $start ) ) {
378
+ $this->converter_output( __( 'No passwords to clear', 'bbpress' ) );
379
  }
380
  } else {
381
  update_option( '_bbp_converter_start', $max + 1 );
382
+ $this->converter_output( sprintf( __( 'Delete users wordpress default passwords (%1$s - %2$s)', 'bbpress' ), $min, $max ) );
383
  }
384
  } else {
385
  update_option( '_bbp_converter_step', $step + 1 );
394
  update_option( '_bbp_converter_step', $step + 1 );
395
  update_option( '_bbp_converter_start', 0 );
396
  if ( empty( $start ) ) {
397
+ $this->converter_output( __( 'No forums to convert', 'bbpress' ) );
398
  }
399
  } else {
400
  update_option( '_bbp_converter_start', $max + 1 );
401
+ $this->converter_output( sprintf( __( 'Converting forums (%1$s - %2$s)', 'bbpress' ), $min, $max ) );
402
  }
403
 
404
  break;
405
 
406
  // STEP 5. Convert forum parents.
407
  case 5 :
 
408
  if ( $converter->convert_forum_parents( $start ) ) {
409
  update_option( '_bbp_converter_step', $step + 1 );
410
  update_option( '_bbp_converter_start', 0 );
411
  if ( empty( $start ) ) {
412
+ $this->converter_output( __( 'No forum parents to convert', 'bbpress' ) );
413
  }
414
  } else {
415
  update_option( '_bbp_converter_start', $max + 1 );
416
+ $this->converter_output( sprintf( __( 'Calculating forum hierarchy (%1$s - %2$s)', 'bbpress' ), $min, $max ) );
417
  }
418
 
419
  break;
420
 
421
  // STEP 6. Convert topics.
422
  case 6 :
 
423
  if ( $converter->convert_topics( $start ) ) {
424
  update_option( '_bbp_converter_step', $step + 1 );
425
  update_option( '_bbp_converter_start', 0 );
426
  if ( empty( $start ) ) {
427
+ $this->converter_output( __( 'No topics to convert', 'bbpress' ) );
428
  }
429
  } else {
430
  update_option( '_bbp_converter_start', $max + 1 );
431
+ $this->converter_output( sprintf( __( 'Converting topics (%1$s - %2$s)', 'bbpress' ), $min, $max ) );
432
  }
433
 
434
  break;
435
 
436
  // STEP 7. Convert tags.
437
  case 7 :
 
438
  if ( $converter->convert_tags( $start ) ) {
439
  update_option( '_bbp_converter_step', $step + 1 );
440
  update_option( '_bbp_converter_start', 0 );
441
  if ( empty( $start ) ) {
442
+ $this->converter_output( __( 'No tags to convert', 'bbpress' ) );
443
  }
444
  } else {
445
  update_option( '_bbp_converter_start', $max + 1 );
446
+ $this->converter_output( sprintf( __( 'Converting topic tags (%1$s - %2$s)', 'bbpress' ), $min, $max ) );
447
  }
448
 
449
  break;
454
  update_option( '_bbp_converter_step', $step + 1 );
455
  update_option( '_bbp_converter_start', 0 );
456
  if ( empty( $start ) ) {
457
+ $this->converter_output( __( 'No replies to convert', 'bbpress' ) );
458
  }
459
  } else {
460
  update_option( '_bbp_converter_start', $max + 1 );
461
+ $this->converter_output( sprintf( __( 'Converting replies (%1$s - %2$s)', 'bbpress' ), $min, $max ) );
462
  }
463
 
464
  break;
465
 
466
  default :
467
+ delete_option( '_bbp_converter_step' );
468
  delete_option( '_bbp_converter_start' );
469
+ delete_option( '_bbp_converter_query' );
470
 
471
+ $this->converter_output( __( 'Conversion Complete', 'bbpress' ) );
472
 
473
  break;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
474
  }
475
  }
476
 
483
  global $wpdb;
484
 
485
  $table_name = $wpdb->prefix . 'bbp_converter_translator';
486
+ if ( ! empty( $drop ) && $wpdb->get_var( "SHOW TABLES LIKE '{$table_name}'" ) == $table_name )
487
  $wpdb->query( "DROP TABLE {$table_name}" );
 
488
 
489
+ require_once( ABSPATH . '/wp-admin/includes/upgrade.php' );
 
490
 
491
+ if ( !empty( $wpdb->charset ) ) {
492
+ $charset_collate = "DEFAULT CHARACTER SET $wpdb->charset";
493
+ }
494
 
495
+ if ( !empty( $wpdb->collate ) ) {
496
+ $charset_collate .= " COLLATE $wpdb->collate";
497
+ }
498
 
499
+ /** Translator ****************************************************/
500
 
501
+ $sql = "CREATE TABLE {$table_name} (
502
+ meta_id mediumint(8) unsigned not null auto_increment,
503
+ value_type varchar(25) null,
504
+ value_id bigint(20) unsigned not null default '0',
505
+ meta_key varchar(25) null,
506
+ meta_value varchar(25) null,
507
+ PRIMARY KEY (meta_id),
508
+ KEY value_id (value_id),
509
+ KEY meta_join (meta_key, meta_value) ) {$charset_collate};";
510
 
511
+ dbDelta( $sql );
 
512
  }
513
  }
514
 
825
  $forum_query = 'SELECT ' . implode( ',', $field_list ) . ' FROM ' . $this->opdb->prefix . $from_tablename . ' LIMIT ' . $start . ', ' . $this->max_rows;
826
  $forum_array = $this->opdb->get_results( $forum_query, ARRAY_A );
827
 
828
+ // Set this query as the last one ran
829
+ update_option( '_bbp_converter_query', $forum_query );
830
 
831
  // Query returned some results
832
  if ( !empty( $forum_array ) ) {
970
  }
971
 
972
  public function convert_forum_parents( $start ) {
973
+
974
  $has_update = false;
975
 
976
+ if ( !empty( $this->sync_table ) )
977
+ $query = 'SELECT value_id, meta_value FROM ' . $this->sync_table_name . ' WHERE meta_key = "_bbp_forum_parent_id" AND meta_value > 0 LIMIT ' . $start . ', ' . $this->max_rows;
978
+ else
979
+ $query = 'SELECT post_id AS value_id, meta_value FROM ' . $this->wpdb->postmeta . ' WHERE meta_key = "_bbp_forum_parent_id" AND meta_value > 0 LIMIT ' . $start . ', ' . $this->max_rows;
980
+
981
+ update_option( '_bbp_converter_query', $query );
982
+
983
+ $forum_array = $this->wpdb->get_results( $query );
984
 
985
  foreach ( (array) $forum_array as $row ) {
986
  $parent_id = $this->callback_forumid( $row->meta_value );
995
  * This method deletes data from the wp database.
996
  */
997
  public function clean( $start ) {
998
+
999
  $start = 0;
1000
  $has_delete = false;
1001
 
1002
  /** Delete bbconverter topics/forums/posts ****************************/
1003
 
1004
+ if ( true === $this->sync_table )
1005
+ $query = 'SELECT value_id FROM ' . $this->sync_table_name . ' INNER JOIN ' . $this->wpdb->posts . ' ON(value_id = ID) WHERE meta_key LIKE "_bbp_%" AND value_type = "post" GROUP BY value_id ORDER BY value_id DESC LIMIT ' . $this->max_rows;
1006
+ else
1007
+ $query = 'SELECT post_id AS value_id FROM ' . $this->wpdb->postmeta . ' WHERE meta_key LIKE "_bbp_%" GROUP BY post_id ORDER BY post_id DESC LIMIT ' . $this->max_rows;
 
1008
 
1009
+ update_option( '_bbp_converter_query', $query );
1010
+
1011
+ $posts = $this->wpdb->get_results( $query, ARRAY_A );
1012
+
1013
+ if ( isset( $posts[0] ) && ! empty( $posts[0]['value_id'] ) ) {
1014
+ foreach ( (array) $posts as $value ) {
1015
  wp_delete_post( $value['value_id'], true );
1016
  }
1017
  $has_delete = true;
1019
 
1020
  /** Delete bbconverter users ******************************************/
1021
 
1022
+ if ( true === $this->sync_table )
1023
+ $query = 'SELECT value_id FROM ' . $this->sync_table_name . ' INNER JOIN ' . $this->wpdb->users . ' ON(value_id = ID) WHERE meta_key = "_bbp_user_id" AND value_type = "user" LIMIT ' . $this->max_rows;
1024
+ else
1025
+ $query = 'SELECT user_id AS value_id FROM ' . $this->wpdb->usermeta . ' WHERE meta_key = "_bbp_user_id" LIMIT ' . $this->max_rows;
 
1026
 
1027
+ update_option( '_bbp_converter_query', $query );
1028
+
1029
+ $users = $this->wpdb->get_results( $query, ARRAY_A );
1030
+
1031
+ if ( !empty( $users ) ) {
1032
+ foreach ( $users as $value ) {
1033
  wp_delete_user( $value['value_id'] );
1034
  }
1035
  $has_delete = true;
1036
  }
1037
 
1038
+ unset( $posts );
1039
+ unset( $users );
1040
+
1041
  return ! $has_delete;
1042
  }
1043
 
1047
  * @param int Start row
1048
  */
1049
  public function clean_passwords( $start ) {
1050
+
1051
  $has_delete = false;
1052
 
1053
  /** Delete bbconverter passwords **************************************/
1054
 
1055
+ $query = 'SELECT user_id, meta_value FROM ' . $this->wpdb->usermeta . ' WHERE meta_key = "_bbp_password" LIMIT ' . $start . ', ' . $this->max_rows;
1056
+ update_option( '_bbp_converter_query', $query );
1057
+
1058
+ $bbconverter = $this->wpdb->get_results( $query, ARRAY_A );
1059
+
1060
  if ( !empty( $bbconverter ) ) {
1061
 
1062
  foreach ( $bbconverter as $value ) {
1069
  }
1070
  $has_delete = true;
1071
  }
1072
+
1073
  return ! $has_delete;
1074
  }
1075
 
bbp-admin/bbp-forums.php CHANGED
@@ -25,7 +25,7 @@ class BBP_Forums_Admin {
25
  /**
26
  * @var The post type of this admin component
27
  */
28
- var $post_type = '';
29
 
30
  /** Functions *************************************************************/
31
 
@@ -38,7 +38,7 @@ class BBP_Forums_Admin {
38
  * @uses BBP_Forums_Admin::setup_actions() Setup the hooks and actions
39
  * @uses BBP_Forums_Admin::setup_help() Setup the help text
40
  */
41
- function __construct() {
42
  $this->setup_globals();
43
  $this->setup_actions();
44
  }
@@ -55,7 +55,7 @@ class BBP_Forums_Admin {
55
  * @uses bbp_get_topic_post_type() To get the topic post type
56
  * @uses bbp_get_reply_post_type() To get the reply post type
57
  */
58
- function setup_actions() {
59
 
60
  // Add some general styling to the admin area
61
  add_action( 'bbp_admin_head', array( $this, 'admin_head' ) );
@@ -79,15 +79,26 @@ class BBP_Forums_Admin {
79
  add_action( 'load-post-new.php', array( $this, 'new_help' ) );
80
  }
81
 
 
 
 
 
 
 
 
 
 
 
 
 
 
82
  /**
83
  * Admin globals
84
  *
85
  * @since bbPress (r2646)
86
  * @access private
87
  */
88
- function setup_globals() {
89
-
90
- // Setup the post type for this admin component
91
  $this->post_type = bbp_get_forum_post_type();
92
  }
93
 
@@ -101,19 +112,10 @@ class BBP_Forums_Admin {
101
  */
102
  public function edit_help() {
103
 
104
- $current_screen = get_current_screen();
105
- $post_type = !empty( $_REQUEST['post_type'] ) ? $_REQUEST['post_type'] : '';
106
-
107
- // Bail if current screen could not be found
108
- if ( empty( $current_screen ) )
109
- return;
110
-
111
- // Bail if not the forum post type
112
- if ( $post_type != $this->post_type )
113
- return;
114
 
115
  // Overview
116
- $current_screen->add_help_tab( array(
117
  'id' => 'overview',
118
  'title' => __( 'Overview', 'bbpress' ),
119
  'content' =>
@@ -121,7 +123,7 @@ class BBP_Forums_Admin {
121
  ) );
122
 
123
  // Screen Content
124
- $current_screen->add_help_tab( array(
125
  'id' => 'screen-content',
126
  'title' => __( 'Screen Content', 'bbpress' ),
127
  'content' =>
@@ -135,7 +137,7 @@ class BBP_Forums_Admin {
135
  ) );
136
 
137
  // Available Actions
138
- $current_screen->add_help_tab( array(
139
  'id' => 'action-links',
140
  'title' => __( 'Available Actions', 'bbpress' ),
141
  'content' =>
@@ -150,7 +152,7 @@ class BBP_Forums_Admin {
150
  ) );
151
 
152
  // Bulk Actions
153
- $current_screen->add_help_tab( array(
154
  'id' => 'bulk-actions',
155
  'title' => __( 'Bulk Actions', 'bbpress' ),
156
  'content' =>
@@ -159,7 +161,7 @@ class BBP_Forums_Admin {
159
  ) );
160
 
161
  // Help Sidebar
162
- $current_screen->set_help_sidebar(
163
  '<p><strong>' . __( 'For more information:', 'bbpress' ) . '</strong></p>' .
164
  '<p>' . __( '<a href="http://bbpress.org/documentation/" target="_blank">bbPress Documentation</a>', 'bbpress' ) . '</p>' .
165
  '<p>' . __( '<a href="http://bbpress.org/forums/" target="_blank">bbPress Support Forums</a>', 'bbpress' ) . '</p>'
@@ -174,26 +176,17 @@ class BBP_Forums_Admin {
174
  */
175
  public function new_help() {
176
 
177
- $current_screen = get_current_screen();
178
- $post_type = !empty( $_REQUEST['post_type'] ) ? $_REQUEST['post_type'] : '';
179
-
180
- // Bail if current screen could not be found
181
- if ( empty( $current_screen ) )
182
- return;
183
-
184
- // Bail if not the forum post type
185
- if ( $post_type != $this->post_type )
186
- return;
187
 
188
  $customize_display = '<p>' . __( 'The title field and the big forum editing Area are fixed in place, but you can reposition all the other boxes using drag and drop, and can minimize or expand them by clicking the title bar of each box. Use the Screen Options tab to unhide more boxes (Excerpt, Send Trackbacks, Custom Fields, Discussion, Slug, Author) or to choose a 1- or 2-column layout for this screen.', 'bbpress' ) . '</p>';
189
 
190
- $current_screen->add_help_tab( array(
191
  'id' => 'customize-display',
192
  'title' => __( 'Customizing This Display', 'bbpress' ),
193
  'content' => $customize_display,
194
  ) );
195
 
196
- $current_screen->add_help_tab( array(
197
  'id' => 'title-forum-editor',
198
  'title' => __( 'Title and Forum Editor', 'bbpress' ),
199
  'content' =>
@@ -211,7 +204,7 @@ class BBP_Forums_Admin {
211
  $publish_box .= '<p>' . __( '<strong>Featured Image</strong> - This allows you to associate an image with your forum without inserting it. This is usually useful only if your theme makes use of the featured image as a forum thumbnail on the home page, a custom header, etc.', 'bbpress' ) . '</p>';
212
  }
213
 
214
- $current_screen->add_help_tab( array(
215
  'id' => 'forum-attributes',
216
  'title' => __( 'Forum Attributes', 'bbpress' ),
217
  'content' =>
@@ -225,13 +218,13 @@ class BBP_Forums_Admin {
225
  '</ul>'
226
  ) );
227
 
228
- $current_screen->add_help_tab( array(
229
  'id' => 'publish-box',
230
  'title' => __( 'Publish Box', 'bbpress' ),
231
  'content' => $publish_box,
232
  ) );
233
 
234
- $current_screen->add_help_tab( array(
235
  'id' => 'discussion-settings',
236
  'title' => __( 'Discussion Settings', 'bbpress' ),
237
  'content' =>
@@ -239,7 +232,7 @@ class BBP_Forums_Admin {
239
  '<p>' . __( '<strong>Discussion</strong> - You can turn comments and pings on or off, and if there are comments on the forum, you can see them here and moderate them.', 'bbpress' ) . '</p>'
240
  ) );
241
 
242
- $current_screen->set_help_sidebar(
243
  '<p><strong>' . __( 'For more information:', 'bbpress' ) . '</strong></p>' .
244
  '<p>' . __( '<a href="http://bbpress.org/documentation/" target="_blank">bbPress Documentation</a>', 'bbpress' ) . '</p>' .
245
  '<p>' . __( '<a href="http://bbpress.org/forums/" target="_blank">bbPress Support Forums</a>', 'bbpress' ) . '</p>'
@@ -255,7 +248,10 @@ class BBP_Forums_Admin {
255
  * @uses add_meta_box() To add the metabox
256
  * @uses do_action() Calls 'bbp_forum_attributes_metabox'
257
  */
258
- function attributes_metabox() {
 
 
 
259
  add_meta_box (
260
  'bbp_forum_attributes',
261
  __( 'Forum Attributes', 'bbpress' ),
@@ -290,7 +286,9 @@ class BBP_Forums_Admin {
290
  * forum id
291
  * @return int Forum id
292
  */
293
- function attributes_metabox_save( $forum_id ) {
 
 
294
 
295
  // Bail if doing an autosave
296
  if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE )
@@ -308,10 +306,6 @@ class BBP_Forums_Admin {
308
  if ( !current_user_can( 'edit_forum', $forum_id ) )
309
  return $forum_id;
310
 
311
- // Bail if post_type is not a topic or reply
312
- if ( get_post_type( $forum_id ) != $this->post_type )
313
- return $forum_id;
314
-
315
  // Parent ID
316
  $parent_id = ( !empty( $_POST['parent_id'] ) && is_numeric( $_POST['parent_id'] ) ) ? (int) $_POST['parent_id'] : 0;
317
 
@@ -337,71 +331,71 @@ class BBP_Forums_Admin {
337
  * @uses sanitize_html_class() To sanitize the classes
338
  * @uses do_action() Calls 'bbp_admin_head'
339
  */
340
- function admin_head() {
341
-
342
- if ( get_post_type() == $this->post_type ) : ?>
343
-
344
- <style type="text/css" media="screen">
345
- /*<![CDATA[*/
346
-
347
- #misc-publishing-actions,
348
- #save-post {
349
- display: none;
350
- }
351
-
352
- strong.label {
353
- display: inline-block;
354
- width: 60px;
355
- }
356
-
357
- #bbp_forum_attributes hr {
358
- border-style: solid;
359
- border-width: 1px;
360
- border-color: #ccc #fff #fff #ccc;
361
- }
362
-
363
- .column-bbp_forum_topic_count,
364
- .column-bbp_forum_reply_count,
365
- .column-bbp_topic_reply_count,
366
- .column-bbp_topic_voice_count {
367
- width: 8% !important;
368
- }
369
-
370
- .column-author,
371
- .column-bbp_reply_author,
372
- .column-bbp_topic_author {
373
- width: 10% !important;
374
- }
375
-
376
- .column-bbp_topic_forum,
377
- .column-bbp_reply_forum,
378
- .column-bbp_reply_topic {
379
- width: 10% !important;
380
- }
381
-
382
- .column-bbp_forum_freshness,
383
- .column-bbp_topic_freshness {
384
- width: 10% !important;
385
- }
386
-
387
- .column-bbp_forum_created,
388
- .column-bbp_topic_created,
389
- .column-bbp_reply_created {
390
- width: 15% !important;
391
- }
392
-
393
- .status-closed {
394
- background-color: #eaeaea;
395
- }
396
-
397
- .status-spam {
398
- background-color: #faeaea;
399
- }
400
-
401
- /*]]>*/
402
- </style>
403
-
404
- <?php endif; ?>
405
 
406
  <?php
407
  }
@@ -416,7 +410,10 @@ class BBP_Forums_Admin {
416
  * the columns
417
  * @return array $columns bbPress forum columns
418
  */
419
- function column_headers( $columns ) {
 
 
 
420
  $columns = array (
421
  'cb' => '<input type="checkbox" />',
422
  'title' => __( 'Forum', 'bbpress' ),
@@ -447,7 +444,10 @@ class BBP_Forums_Admin {
447
  * @uses do_action() Calls 'bbp_admin_forums_column_data' with the
448
  * column and forum id
449
  */
450
- function column_data( $column, $forum_id ) {
 
 
 
451
  switch ( $column ) {
452
  case 'bbp_forum_topic_count' :
453
  bbp_forum_topic_count( $forum_id );
@@ -493,13 +493,14 @@ class BBP_Forums_Admin {
493
  * @uses the_content() To output forum description
494
  * @return array $actions Actions
495
  */
496
- function row_actions( $actions, $forum ) {
497
- if ( $forum->post_type == $this->post_type ) {
498
- unset( $actions['inline hide-if-no-js'] );
499
 
500
- // simple hack to show the forum description under the title
501
- bbp_forum_content( $forum->ID );
502
- }
 
503
 
504
  return $actions;
505
  }
@@ -510,7 +511,6 @@ class BBP_Forums_Admin {
510
  * @since bbPress (r3080)
511
  *
512
  * @global int $post_ID
513
- * @uses get_post_type()
514
  * @uses bbp_get_forum_permalink()
515
  * @uses wp_post_revision_title()
516
  * @uses esc_url()
@@ -520,11 +520,10 @@ class BBP_Forums_Admin {
520
  *
521
  * @return array
522
  */
523
- function updated_messages( $messages ) {
524
  global $post_ID;
525
 
526
- if ( get_post_type( $post_ID ) != $this->post_type )
527
- return $messages;
528
 
529
  // URL for the current forum
530
  $forum_url = bbp_get_forum_permalink( $post_ID );
@@ -582,6 +581,9 @@ endif; // class_exists check
582
  /**
583
  * Setup bbPress Forums Admin
584
  *
 
 
 
585
  * @since bbPress (r2596)
586
  *
587
  * @uses BBP_Forums_Admin
25
  /**
26
  * @var The post type of this admin component
27
  */
28
+ private $post_type = '';
29
 
30
  /** Functions *************************************************************/
31
 
38
  * @uses BBP_Forums_Admin::setup_actions() Setup the hooks and actions
39
  * @uses BBP_Forums_Admin::setup_help() Setup the help text
40
  */
41
+ public function __construct() {
42
  $this->setup_globals();
43
  $this->setup_actions();
44
  }
55
  * @uses bbp_get_topic_post_type() To get the topic post type
56
  * @uses bbp_get_reply_post_type() To get the reply post type
57
  */
58
+ private function setup_actions() {
59
 
60
  // Add some general styling to the admin area
61
  add_action( 'bbp_admin_head', array( $this, 'admin_head' ) );
79
  add_action( 'load-post-new.php', array( $this, 'new_help' ) );
80
  }
81
 
82
+ /**
83
+ * Should we bail out of this method?
84
+ *
85
+ * @since bbPress (r4067)
86
+ * @return boolean
87
+ */
88
+ private function bail() {
89
+ if ( $this->post_type != get_current_screen()->post_type )
90
+ return true;
91
+
92
+ return false;
93
+ }
94
+
95
  /**
96
  * Admin globals
97
  *
98
  * @since bbPress (r2646)
99
  * @access private
100
  */
101
+ private function setup_globals() {
 
 
102
  $this->post_type = bbp_get_forum_post_type();
103
  }
104
 
112
  */
113
  public function edit_help() {
114
 
115
+ if ( $this->bail() ) return;
 
 
 
 
 
 
 
 
 
116
 
117
  // Overview
118
+ get_current_screen()->add_help_tab( array(
119
  'id' => 'overview',
120
  'title' => __( 'Overview', 'bbpress' ),
121
  'content' =>
123
  ) );
124
 
125
  // Screen Content
126
+ get_current_screen()->add_help_tab( array(
127
  'id' => 'screen-content',
128
  'title' => __( 'Screen Content', 'bbpress' ),
129
  'content' =>
137
  ) );
138
 
139
  // Available Actions
140
+ get_current_screen()->add_help_tab( array(
141
  'id' => 'action-links',
142
  'title' => __( 'Available Actions', 'bbpress' ),
143
  'content' =>
152
  ) );
153
 
154
  // Bulk Actions
155
+ get_current_screen()->add_help_tab( array(
156
  'id' => 'bulk-actions',
157
  'title' => __( 'Bulk Actions', 'bbpress' ),
158
  'content' =>
161
  ) );
162
 
163
  // Help Sidebar
164
+ get_current_screen()->set_help_sidebar(
165
  '<p><strong>' . __( 'For more information:', 'bbpress' ) . '</strong></p>' .
166
  '<p>' . __( '<a href="http://bbpress.org/documentation/" target="_blank">bbPress Documentation</a>', 'bbpress' ) . '</p>' .
167
  '<p>' . __( '<a href="http://bbpress.org/forums/" target="_blank">bbPress Support Forums</a>', 'bbpress' ) . '</p>'
176
  */
177
  public function new_help() {
178
 
179
+ if ( $this->bail() ) return;
 
 
 
 
 
 
 
 
 
180
 
181
  $customize_display = '<p>' . __( 'The title field and the big forum editing Area are fixed in place, but you can reposition all the other boxes using drag and drop, and can minimize or expand them by clicking the title bar of each box. Use the Screen Options tab to unhide more boxes (Excerpt, Send Trackbacks, Custom Fields, Discussion, Slug, Author) or to choose a 1- or 2-column layout for this screen.', 'bbpress' ) . '</p>';
182
 
183
+ get_current_screen()->add_help_tab( array(
184
  'id' => 'customize-display',
185
  'title' => __( 'Customizing This Display', 'bbpress' ),
186
  'content' => $customize_display,
187
  ) );
188
 
189
+ get_current_screen()->add_help_tab( array(
190
  'id' => 'title-forum-editor',
191
  'title' => __( 'Title and Forum Editor', 'bbpress' ),
192
  'content' =>
204
  $publish_box .= '<p>' . __( '<strong>Featured Image</strong> - This allows you to associate an image with your forum without inserting it. This is usually useful only if your theme makes use of the featured image as a forum thumbnail on the home page, a custom header, etc.', 'bbpress' ) . '</p>';
205
  }
206
 
207
+ get_current_screen()->add_help_tab( array(
208
  'id' => 'forum-attributes',
209
  'title' => __( 'Forum Attributes', 'bbpress' ),
210
  'content' =>
218
  '</ul>'
219
  ) );
220
 
221
+ get_current_screen()->add_help_tab( array(
222
  'id' => 'publish-box',
223
  'title' => __( 'Publish Box', 'bbpress' ),
224
  'content' => $publish_box,
225
  ) );
226
 
227
+ get_current_screen()->add_help_tab( array(
228
  'id' => 'discussion-settings',
229
  'title' => __( 'Discussion Settings', 'bbpress' ),
230
  'content' =>
232
  '<p>' . __( '<strong>Discussion</strong> - You can turn comments and pings on or off, and if there are comments on the forum, you can see them here and moderate them.', 'bbpress' ) . '</p>'
233
  ) );
234
 
235
+ get_current_screen()->set_help_sidebar(
236
  '<p><strong>' . __( 'For more information:', 'bbpress' ) . '</strong></p>' .
237
  '<p>' . __( '<a href="http://bbpress.org/documentation/" target="_blank">bbPress Documentation</a>', 'bbpress' ) . '</p>' .
238
  '<p>' . __( '<a href="http://bbpress.org/forums/" target="_blank">bbPress Support Forums</a>', 'bbpress' ) . '</p>'
248
  * @uses add_meta_box() To add the metabox
249
  * @uses do_action() Calls 'bbp_forum_attributes_metabox'
250
  */
251
+ public function attributes_metabox() {
252
+
253
+ if ( $this->bail() ) return;
254
+
255
  add_meta_box (
256
  'bbp_forum_attributes',
257
  __( 'Forum Attributes', 'bbpress' ),
286
  * forum id
287
  * @return int Forum id
288
  */
289
+ public function attributes_metabox_save( $forum_id ) {
290
+
291
+ if ( $this->bail() ) return $forum_id;
292
 
293
  // Bail if doing an autosave
294
  if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE )
306
  if ( !current_user_can( 'edit_forum', $forum_id ) )
307
  return $forum_id;
308
 
 
 
 
 
309
  // Parent ID
310
  $parent_id = ( !empty( $_POST['parent_id'] ) && is_numeric( $_POST['parent_id'] ) ) ? (int) $_POST['parent_id'] : 0;
311
 
331
  * @uses sanitize_html_class() To sanitize the classes
332
  * @uses do_action() Calls 'bbp_admin_head'
333
  */
334
+ public function admin_head() {
335
+
336
+ if ( $this->bail() ) return;
337
+
338
+ ?>
339
+
340
+ <style type="text/css" media="screen">
341
+ /*<![CDATA[*/
342
+
343
+ #misc-publishing-actions,
344
+ #save-post {
345
+ display: none;
346
+ }
347
+
348
+ strong.label {
349
+ display: inline-block;
350
+ width: 60px;
351
+ }
352
+
353
+ #bbp_forum_attributes hr {
354
+ border-style: solid;
355
+ border-width: 1px;
356
+ border-color: #ccc #fff #fff #ccc;
357
+ }
358
+
359
+ .column-bbp_forum_topic_count,
360
+ .column-bbp_forum_reply_count,
361
+ .column-bbp_topic_reply_count,
362
+ .column-bbp_topic_voice_count {
363
+ width: 8% !important;
364
+ }
365
+
366
+ .column-author,
367
+ .column-bbp_reply_author,
368
+ .column-bbp_topic_author {
369
+ width: 10% !important;
370
+ }
371
+
372
+ .column-bbp_topic_forum,
373
+ .column-bbp_reply_forum,
374
+ .column-bbp_reply_topic {
375
+ width: 10% !important;
376
+ }
377
+
378
+ .column-bbp_forum_freshness,
379
+ .column-bbp_topic_freshness {
380
+ width: 10% !important;
381
+ }
382
+
383
+ .column-bbp_forum_created,
384
+ .column-bbp_topic_created,
385
+ .column-bbp_reply_created {
386
+ width: 15% !important;
387
+ }
388
+
389
+ .status-closed {
390
+ background-color: #eaeaea;
391
+ }
392
+
393
+ .status-spam {
394
+ background-color: #faeaea;
395
+ }
396
+
397
+ /*]]>*/
398
+ </style>
399
 
400
  <?php
401
  }
410
  * the columns
411
  * @return array $columns bbPress forum columns
412
  */
413
+ public function column_headers( $columns ) {
414
+
415
+ if ( $this->bail() ) return $columns;
416
+
417
  $columns = array (
418
  'cb' => '<input type="checkbox" />',
419
  'title' => __( 'Forum', 'bbpress' ),
444
  * @uses do_action() Calls 'bbp_admin_forums_column_data' with the
445
  * column and forum id
446
  */
447
+ public function column_data( $column, $forum_id ) {
448
+
449
+ if ( $this->bail() ) return;
450
+
451
  switch ( $column ) {
452
  case 'bbp_forum_topic_count' :
453
  bbp_forum_topic_count( $forum_id );
493
  * @uses the_content() To output forum description
494
  * @return array $actions Actions
495
  */
496
+ public function row_actions( $actions, $forum ) {
497
+
498
+ if ( $this->bail() ) return $actions;
499
 
500
+ unset( $actions['inline hide-if-no-js'] );
501
+
502
+ // simple hack to show the forum description under the title
503
+ bbp_forum_content( $forum->ID );
504
 
505
  return $actions;
506
  }
511
  * @since bbPress (r3080)
512
  *
513
  * @global int $post_ID
 
514
  * @uses bbp_get_forum_permalink()
515
  * @uses wp_post_revision_title()
516
  * @uses esc_url()
520
  *
521
  * @return array
522
  */
523
+ public function updated_messages( $messages ) {
524
  global $post_ID;
525
 
526
+ if ( $this->bail() ) return $messages;
 
527
 
528
  // URL for the current forum
529
  $forum_url = bbp_get_forum_permalink( $post_ID );
581
  /**
582
  * Setup bbPress Forums Admin
583
  *
584
+ * This is currently here to make hooking and unhooking of the admin UI easy.
585
+ * It could use dependency injection in the future, but for now this is easier.
586
+ *
587
  * @since bbPress (r2596)
588
  *
589
  * @uses BBP_Forums_Admin
bbp-admin/bbp-functions.php CHANGED
@@ -20,7 +20,7 @@ if ( !defined( 'ABSPATH' ) ) exit;
20
  function bbp_admin_separator() {
21
 
22
  // Prevent duplicate separators when no new menu items exist
23
- if ( !current_user_can( 'edit_replies' ) )
24
  return;
25
 
26
  // Prevent duplicate separators when no core menu items exist
@@ -40,8 +40,8 @@ function bbp_admin_separator() {
40
  * @param bool $menu_order Menu order
41
  * @return bool Always true
42
  */
43
- function bbp_admin_custom_menu_order( $menu_order ) {
44
- if ( !current_user_can( 'edit_replies' ) )
45
  return $menu_order;
46
 
47
  return true;
@@ -58,40 +58,40 @@ function bbp_admin_custom_menu_order( $menu_order ) {
58
  */
59
  function bbp_admin_menu_order( $menu_order ) {
60
 
 
 
 
 
61
  // Initialize our custom order array
62
  $bbp_menu_order = array();
63
 
64
- // Get the index of our custom separator
65
- $bbp_separator = array_search( 'separator-bbpress', $menu_order );
 
 
 
 
 
 
66
 
67
- // Forums
68
- if ( current_user_can( 'edit_forums' ) ) {
69
- $top_menu_type = bbp_get_forum_post_type();
70
 
71
- // Topics
72
- } elseif ( current_user_can( 'edit_topics' ) ) {
73
- $top_menu_type = bbp_get_topic_post_type();
74
 
75
- // Replies
76
- } elseif ( current_user_can( 'edit_replies' ) ) {
77
- $top_menu_type = bbp_get_reply_post_type();
 
 
 
78
 
79
- // Bail if there are no bbPress menus present
80
- } else {
81
- return;
82
- }
83
-
84
- // Loop through menu order and do some rearranging
85
- foreach ( $menu_order as $index => $item ) {
86
-
87
- // Current item is ours, so set our separator here
88
- if ( ( ( 'edit.php?post_type=' . $top_menu_type ) == $item ) ) {
89
- $bbp_menu_order[] = 'separator-bbpress';
90
- unset( $menu_order[$bbp_separator] );
91
- }
92
 
93
- // Skip our separator
94
- if ( !in_array( $item, array( 'separator-bbpress' ) ) ) {
95
  $bbp_menu_order[] = $item;
96
  }
97
  }
20
  function bbp_admin_separator() {
21
 
22
  // Prevent duplicate separators when no new menu items exist
23
+ if ( !current_user_can( 'edit_forums' ) && !current_user_can( 'edit_topics' ) && !current_user_can( 'edit_replies' ) )
24
  return;
25
 
26
  // Prevent duplicate separators when no core menu items exist
40
  * @param bool $menu_order Menu order
41
  * @return bool Always true
42
  */
43
+ function bbp_admin_custom_menu_order( $menu_order = false ) {
44
+ if ( !current_user_can( 'edit_forums' ) && !current_user_can( 'edit_topics' ) && !current_user_can( 'edit_replies' ) )
45
  return $menu_order;
46
 
47
  return true;
58
  */
59
  function bbp_admin_menu_order( $menu_order ) {
60
 
61
+ // Bail if user cannot see any top level bbPress menus
62
+ if ( empty( $menu_order ) || ( !current_user_can( 'edit_forums' ) && !current_user_can( 'edit_topics' ) && !current_user_can( 'edit_replies' ) ) )
63
+ return $menu_order;
64
+
65
  // Initialize our custom order array
66
  $bbp_menu_order = array();
67
 
68
+ // Menu values
69
+ $second_sep = 'separator2';
70
+ $custom_menus = array(
71
+ 'separator-bbpress', // Separator
72
+ 'edit.php?post_type=' . bbp_get_forum_post_type(), // Forums
73
+ 'edit.php?post_type=' . bbp_get_topic_post_type(), // Topics
74
+ 'edit.php?post_type=' . bbp_get_reply_post_type() // Replies
75
+ );
76
 
77
+ // Loop through menu order and do some rearranging
78
+ foreach ( $menu_order as $item ) {
 
79
 
80
+ // Position bbPress menus above appearance
81
+ if ( $second_sep == $item ) {
 
82
 
83
+ // Add our custom menus
84
+ foreach( $custom_menus as $custom_menu ) {
85
+ if ( array_search( $custom_menu, $menu_order ) ) {
86
+ $bbp_menu_order[] = $custom_menu;
87
+ }
88
+ }
89
 
90
+ // Add the appearance separator
91
+ $bbp_menu_order[] = $second_sep;
 
 
 
 
 
 
 
 
 
 
 
92
 
93
+ // Skip our menu items
94
+ } elseif ( ! in_array( $item, $custom_menus ) ) {
95
  $bbp_menu_order[] = $item;
96
  }
97
  }
bbp-admin/bbp-replies.php CHANGED
@@ -25,7 +25,7 @@ class BBP_Replies_Admin {
25
  /**
26
  * @var The post type of this admin component
27
  */
28
- var $post_type = '';
29
 
30
  /** Functions *************************************************************/
31
 
@@ -38,7 +38,7 @@ class BBP_Replies_Admin {
38
  * @uses BBP_Replies_Admin::setup_actions() Setup the hooks and actions
39
  * @uses BBP_Replies_Admin::setup_actions() Setup the help text
40
  */
41
- function __construct() {
42
  $this->setup_globals();
43
  $this->setup_actions();
44
  }
@@ -55,7 +55,7 @@ class BBP_Replies_Admin {
55
  * @uses bbp_get_topic_post_type() To get the topic post type
56
  * @uses bbp_get_reply_post_type() To get the reply post type
57
  */
58
- function setup_actions() {
59
 
60
  // Add some general styling to the admin area
61
  add_action( 'bbp_admin_head', array( $this, 'admin_head' ) );
@@ -75,7 +75,7 @@ class BBP_Replies_Admin {
75
  add_action( 'save_post', array( $this, 'reply_attributes_metabox_save' ) );
76
 
77
  // Check if there are any bbp_toggle_reply_* requests on admin_init, also have a message displayed
78
- add_action( 'bbp_admin_init', array( $this, 'toggle_reply' ) );
79
  add_action( 'admin_notices', array( $this, 'toggle_reply_notice' ) );
80
 
81
  // Anonymous metabox actions
@@ -91,15 +91,26 @@ class BBP_Replies_Admin {
91
  add_action( 'load-post-new.php', array( $this, 'new_help' ) );
92
  }
93
 
 
 
 
 
 
 
 
 
 
 
 
 
 
94
  /**
95
  * Admin globals
96
  *
97
  * @since bbPress (r2646)
98
  * @access private
99
  */
100
- function setup_globals() {
101
-
102
- // Setup the post type for this admin component
103
  $this->post_type = bbp_get_reply_post_type();
104
  }
105
 
@@ -113,19 +124,10 @@ class BBP_Replies_Admin {
113
  */
114
  public function edit_help() {
115
 
116
- $current_screen = get_current_screen();
117
- $post_type = !empty( $_REQUEST['post_type'] ) ? $_REQUEST['post_type'] : '';
118
-
119
- // Bail if current screen could not be found
120
- if ( empty( $current_screen ) )
121
- return;
122
-
123
- // Bail if not the reply post type
124
- if ( $post_type != $this->post_type )
125
- return;
126
 
127
  // Overview
128
- $current_screen->add_help_tab( array(
129
  'id' => 'overview',
130
  'title' => __( 'Overview', 'bbpress' ),
131
  'content' =>
@@ -133,7 +135,7 @@ class BBP_Replies_Admin {
133
  ) );
134
 
135
  // Screen Content
136
- $current_screen->add_help_tab( array(
137
  'id' => 'screen-content',
138
  'title' => __( 'Screen Content', 'bbpress' ),
139
  'content' =>
@@ -147,7 +149,7 @@ class BBP_Replies_Admin {
147
  ) );
148
 
149
  // Available Actions
150
- $current_screen->add_help_tab( array(
151
  'id' => 'action-links',
152
  'title' => __( 'Available Actions', 'bbpress' ),
153
  'content' =>
@@ -162,7 +164,7 @@ class BBP_Replies_Admin {
162
  ) );
163
 
164
  // Bulk Actions
165
- $current_screen->add_help_tab( array(
166
  'id' => 'bulk-actions',
167
  'title' => __( 'Bulk Actions', 'bbpress' ),
168
  'content' =>
@@ -171,7 +173,7 @@ class BBP_Replies_Admin {
171
  ) );
172
 
173
  // Help Sidebar
174
- $current_screen->set_help_sidebar(
175
  '<p><strong>' . __( 'For more information:', 'bbpress' ) . '</strong></p>' .
176
  '<p>' . __( '<a href="http://bbpress.org/documentation/" target="_blank">bbPress Documentation</a>', 'bbpress' ) . '</p>' .
177
  '<p>' . __( '<a href="http://bbpress.org/forums/" target="_blank">bbPress Support Forums</a>', 'bbpress' ) . '</p>'
@@ -186,26 +188,17 @@ class BBP_Replies_Admin {
186
  */
187
  public function new_help() {
188
 
189
- $current_screen = get_current_screen();
190
- $post_type = !empty( $_REQUEST['post_type'] ) ? $_REQUEST['post_type'] : '';
191
-
192
- // Bail if current screen could not be found
193
- if ( empty( $current_screen ) )
194
- return;
195
-
196
- // Bail if not the reply post type
197
- if ( $post_type != $this->post_type )
198
- return;
199
 
200
  $customize_display = '<p>' . __( 'The title field and the big reply editing Area are fixed in place, but you can reposition all the other boxes using drag and drop, and can minimize or expand them by clicking the title bar of each box. Use the Screen Options tab to unhide more boxes (Excerpt, Send Trackbacks, Custom Fields, Discussion, Slug, Author) or to choose a 1- or 2-column layout for this screen.', 'bbpress' ) . '</p>';
201
 
202
- $current_screen->add_help_tab( array(
203
  'id' => 'customize-display',
204
  'title' => __( 'Customizing This Display', 'bbpress' ),
205
  'content' => $customize_display,
206
  ) );
207
 
208
- $current_screen->add_help_tab( array(
209
  'id' => 'title-reply-editor',
210
  'title' => __( 'Title and Reply Editor', 'bbpress' ),
211
  'content' =>
@@ -223,7 +216,7 @@ class BBP_Replies_Admin {
223
  $publish_box .= '<p>' . __( '<strong>Featured Image</strong> - This allows you to associate an image with your reply without inserting it. This is usually useful only if your theme makes use of the featured image as a reply thumbnail on the home page, a custom header, etc.', 'bbpress' ) . '</p>';
224
  }
225
 
226
- $current_screen->add_help_tab( array(
227
  'id' => 'reply-attributes',
228
  'title' => __( 'Reply Attributes', 'bbpress' ),
229
  'content' =>
@@ -234,13 +227,13 @@ class BBP_Replies_Admin {
234
  '</ul>'
235
  ) );
236
 
237
- $current_screen->add_help_tab( array(
238
  'id' => 'publish-box',
239
  'title' => __( 'Publish Box', 'bbpress' ),
240
  'content' => $publish_box,
241
  ) );
242
 
243
- $current_screen->add_help_tab( array(
244
  'id' => 'discussion-settings',
245
  'title' => __( 'Discussion Settings', 'bbpress' ),
246
  'content' =>
@@ -248,7 +241,7 @@ class BBP_Replies_Admin {
248
  '<p>' . __( '<strong>Discussion</strong> - You can turn comments and pings on or off, and if there are comments on the reply, you can see them here and moderate them.', 'bbpress' ) . '</p>'
249
  ) );
250
 
251
- $current_screen->set_help_sidebar(
252
  '<p><strong>' . __( 'For more information:', 'bbpress' ) . '</strong></p>' .
253
  '<p>' . __( '<a href="http://bbpress.org/documentation/" target="_blank">bbPress Documentation</a>', 'bbpress' ) . '</p>' .
254
  '<p>' . __( '<a href="http://bbpress.org/forums/" target="_blank">bbPress Support Forums</a>', 'bbpress' ) . '</p>'
@@ -264,7 +257,10 @@ class BBP_Replies_Admin {
264
  * @uses add_meta_box() To add the metabox
265
  * @uses do_action() Calls 'bbp_reply_attributes_metabox'
266
  */
267
- function reply_attributes_metabox() {
 
 
 
268
  add_meta_box (
269
  'bbp_reply_attributes',
270
  __( 'Reply Attributes', 'bbpress' ),
@@ -289,7 +285,9 @@ class BBP_Replies_Admin {
289
  * reply id and parent id
290
  * @return int Parent id
291
  */
292
- function reply_attributes_metabox_save( $reply_id ) {
 
 
293
 
294
  // Bail if doing an autosave
295
  if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE )
@@ -307,10 +305,6 @@ class BBP_Replies_Admin {
307
  if ( empty( $_POST['bbp_reply_metabox'] ) || !wp_verify_nonce( $_POST['bbp_reply_metabox'], 'bbp_reply_metabox_save' ) )
308
  return $reply_id;
309
 
310
- // Bail if post_type is not a reply
311
- if ( get_post_type( $reply_id ) != $this->post_type )
312
- return $reply_id;
313
-
314
  // Current user cannot edit this reply
315
  if ( !current_user_can( 'edit_reply', $reply_id ) )
316
  return $reply_id;
@@ -343,10 +337,12 @@ class BBP_Replies_Admin {
343
  * @uses do_action() Calls 'bbp_author_metabox' with the topic/reply
344
  * id
345
  */
346
- function author_metabox() {
 
 
347
 
348
  // Bail if post_type is not a reply
349
- if ( ( empty( $_GET['action'] ) || ( 'edit' != $_GET['action'] ) ) || ( get_post_type() != $this->post_type ) )
350
  return;
351
 
352
  // Add the metabox
@@ -378,7 +374,9 @@ class BBP_Replies_Admin {
378
  * anonymous data
379
  * @return int Topic or reply id
380
  */
381
- function author_metabox_save( $post_id ) {
 
 
382
 
383
  // Bail if no post_id
384
  if ( empty( $post_id ) )
@@ -392,10 +390,6 @@ class BBP_Replies_Admin {
392
  if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE )
393
  return $post_id;
394
 
395
- // Bail if post_type is not a topic or reply
396
- if ( get_post_type( $post_id ) != $this->post_type )
397
- return;
398
-
399
  // Bail if user cannot edit replies or reply is not anonymous
400
  if ( !current_user_can( 'edit_reply', $post_id ) )
401
  return $post_id;
@@ -422,56 +416,57 @@ class BBP_Replies_Admin {
422
  * @uses sanitize_html_class() To sanitize the classes
423
  * @uses do_action() Calls 'bbp_admin_head'
424
  */
425
- function admin_head() {
426
-
427
- if ( get_post_type() == $this->post_type ) : ?>
428
 
429
- <style type="text/css" media="screen">
430
- /*<![CDATA[*/
431
 
432
- .column-bbp_forum_topic_count,
433
- .column-bbp_forum_reply_count,
434
- .column-bbp_topic_reply_count,
435
- .column-bbp_topic_voice_count {
436
- width: 8% !important;
437
- }
438
 
439
- .column-author,
440
- .column-bbp_reply_author,
441
- .column-bbp_topic_author {
442
- width: 10% !important;
443
- }
 
444
 
445
- .column-bbp_topic_forum,
446
- .column-bbp_reply_forum,
447
- .column-bbp_reply_topic {
448
- width: 10% !important;
449
- }
450
 
451
- .column-bbp_forum_freshness,
452
- .column-bbp_topic_freshness {
453
- width: 10% !important;
454
- }
 
455
 
456
- .column-bbp_forum_created,
457
- .column-bbp_topic_created,
458
- .column-bbp_reply_created {
459
- width: 15% !important;
460
- }
461
 
462
- .status-closed {
463
- background-color: #eaeaea;
464
- }
 
 
465
 
466
- .status-spam {
467
- background-color: #faeaea;
468
- }
469
 
470
- /*]]>*/
471
- </style>
 
472
 
473
- <?php endif;
 
474
 
 
475
  }
476
 
477
  /**
@@ -495,7 +490,9 @@ class BBP_Replies_Admin {
495
  * @uses add_query_arg() To add custom args to the url
496
  * @uses wp_safe_redirect() Redirect the page to custom url
497
  */
498
- function toggle_reply() {
 
 
499
 
500
  // Only proceed if GET is a reply toggle action
501
  if ( 'GET' == $_SERVER['REQUEST_METHOD'] && !empty( $_GET['action'] ) && in_array( $_GET['action'], array( 'bbp_toggle_reply_spam' ) ) && !empty( $_GET['reply_id'] ) ) {
@@ -555,7 +552,9 @@ class BBP_Replies_Admin {
555
  * @uses apply_filters() Calls 'bbp_toggle_reply_notice_admin' with
556
  * message, reply id, notice and is it a failure
557
  */
558
- function toggle_reply_notice() {
 
 
559
 
560
  // Only proceed if GET is a reply toggle action
561
  if ( 'GET' == $_SERVER['REQUEST_METHOD'] && !empty( $_GET['bbp_reply_toggle_notice'] ) && in_array( $_GET['bbp_reply_toggle_notice'], array( 'spammed', 'unspammed' ) ) && !empty( $_GET['reply_id'] ) ) {
@@ -607,7 +606,10 @@ class BBP_Replies_Admin {
607
  * the columns
608
  * @return array $columns bbPress reply columns
609
  */
610
- function replies_column_headers( $columns ) {
 
 
 
611
  $columns = array(
612
  'cb' => '<input type="checkbox" />',
613
  'title' => __( 'Title', 'bbpress' ),
@@ -648,7 +650,9 @@ class BBP_Replies_Admin {
648
  * @uses do_action() Calls 'bbp_admin_replies_column_data' with the
649
  * column and reply id
650
  */
651
- function replies_column_data( $column, $reply_id ) {
 
 
652
 
653
  // Get topic ID
654
  $topic_id = bbp_get_reply_topic_id( $reply_id );
@@ -758,44 +762,44 @@ class BBP_Replies_Admin {
758
  * @uses get_delete_post_link() To get the delete post link of the reply
759
  * @return array $actions Actions
760
  */
761
- function replies_row_actions( $actions, $reply ) {
762
-
763
- if ( bbp_get_reply_post_type() == $reply->post_type ) {
764
- unset( $actions['inline hide-if-no-js'] );
765
-
766
- // Reply view links to topic
767
- $actions['view'] = '<a href="' . bbp_get_reply_url( $reply->ID ) . '" title="' . esc_attr( sprintf( __( 'View &#8220;%s&#8221;', 'bbpress' ), bbp_get_reply_title( $reply->ID ) ) ) . '" rel="permalink">' . __( 'View', 'bbpress' ) . '</a>';
768
-
769
- // User cannot view replies in trash
770
- if ( ( bbp_get_trash_status_id() == $reply->post_status ) && !current_user_can( 'view_trash' ) )
771
- unset( $actions['view'] );
772
-
773
- // Only show the actions if the user is capable of viewing them
774
- if ( current_user_can( 'moderate', $reply->ID ) ) {
775
- if ( in_array( $reply->post_status, array( bbp_get_public_status_id(), bbp_get_spam_status_id() ) ) ) {
776
- $spam_uri = esc_url( wp_nonce_url( add_query_arg( array( 'reply_id' => $reply->ID, 'action' => 'bbp_toggle_reply_spam' ), remove_query_arg( array( 'bbp_reply_toggle_notice', 'reply_id', 'failed', 'super' ) ) ), 'spam-reply_' . $reply->ID ) );
777
- if ( bbp_is_reply_spam( $reply->ID ) ) {
778
- $actions['spam'] = '<a href="' . $spam_uri . '" title="' . esc_attr__( 'Mark the reply as not spam', 'bbpress' ) . '">' . __( 'Not spam', 'bbpress' ) . '</a>';
779
- } else {
780
- $actions['spam'] = '<a href="' . $spam_uri . '" title="' . esc_attr__( 'Mark this reply as spam', 'bbpress' ) . '">' . __( 'Spam', 'bbpress' ) . '</a>';
781
- }
782
  }
783
  }
 
784
 
785
- // Trash
786
- if ( current_user_can( 'delete_reply', $reply->ID ) ) {
787
- if ( bbp_get_trash_status_id() == $reply->post_status ) {
788
- $post_type_object = get_post_type_object( bbp_get_reply_post_type() );
789
- $actions['untrash'] = "<a title='" . esc_attr__( 'Restore this item from the Trash', 'bbpress' ) . "' href='" . add_query_arg( array( '_wp_http_referer' => add_query_arg( array( 'post_type' => bbp_get_reply_post_type() ), admin_url( 'edit.php' ) ) ), wp_nonce_url( admin_url( sprintf( $post_type_object->_edit_link . '&amp;action=untrash', $reply->ID ) ), 'untrash-' . $reply->post_type . '_' . $reply->ID ) ) . "'>" . __( 'Restore', 'bbpress' ) . "</a>";
790
- } elseif ( EMPTY_TRASH_DAYS ) {
791
- $actions['trash'] = "<a class='submitdelete' title='" . esc_attr__( 'Move this item to the Trash', 'bbpress' ) . "' href='" . add_query_arg( array( '_wp_http_referer' => add_query_arg( array( 'post_type' => bbp_get_reply_post_type() ), admin_url( 'edit.php' ) ) ), get_delete_post_link( $reply->ID ) ) . "'>" . __( 'Trash', 'bbpress' ) . "</a>";
792
- }
793
 
794
- if ( bbp_get_trash_status_id() == $reply->post_status || !EMPTY_TRASH_DAYS ) {
795
- $actions['delete'] = "<a class='submitdelete' title='" . esc_attr__( 'Delete this item permanently', 'bbpress' ) . "' href='" . add_query_arg( array( '_wp_http_referer' => add_query_arg( array( 'post_type' => bbp_get_reply_post_type() ), admin_url( 'edit.php' ) ) ), get_delete_post_link( $reply->ID, '', true ) ) . "'>" . __( 'Delete Permanently', 'bbpress' ) . "</a>";
796
- } elseif ( bbp_get_spam_status_id() == $reply->post_status ) {
797
- unset( $actions['trash'] );
798
- }
799
  }
800
  }
801
 
@@ -812,17 +816,9 @@ class BBP_Replies_Admin {
812
  * @uses bbp_dropdown() To generate a forum dropdown
813
  * @return bool False. If post type is not topic or reply
814
  */
815
- function filter_dropdown() {
816
-
817
- // Bail if not viewing the topics list
818
- if (
819
- // post_type exists in _GET
820
- empty( $_GET['post_type'] ) ||
821
 
822
- // post_type is reply or topic type
823
- ( $_GET['post_type'] != $this->post_type )
824
- )
825
- return;
826
 
827
  // Add Empty Spam button
828
  if ( !empty( $_GET['post_status'] ) && ( bbp_get_spam_status_id() == $_GET['post_status'] ) && current_user_can( 'moderate' ) ) {
@@ -852,26 +848,9 @@ class BBP_Replies_Admin {
852
  * @uses bbp_get_reply_post_type() To get the reply post type
853
  * @return array Processed Query Vars
854
  */
855
- function filter_post_rows( $query_vars ) {
856
- global $pagenow;
857
-
858
- // Avoid poisoning other requests
859
- if (
860
- // Only look in admin
861
- !is_admin() ||
862
-
863
- // Make sure the current page is for post rows
864
- ( 'edit.php' != $pagenow ) ||
865
-
866
- // Make sure we're looking for a post_type
867
- empty( $_GET['post_type'] ) ||
868
-
869
- // Make sure we're looking at bbPress topics
870
- ( $_GET['post_type'] != $this->post_type )
871
- )
872
 
873
- // We're in no shape to filter anything, so return
874
- return $query_vars;
875
 
876
  // Add post_parent query_var if one is present
877
  if ( !empty( $_GET['bbp_forum_id'] ) ) {
@@ -889,7 +868,6 @@ class BBP_Replies_Admin {
889
  * @since bbPress (r3080)
890
  *
891
  * @global int $post_ID
892
- * @uses get_post_type()
893
  * @uses bbp_get_topic_permalink()
894
  * @uses wp_post_revision_title()
895
  * @uses esc_url()
@@ -899,11 +877,10 @@ class BBP_Replies_Admin {
899
  *
900
  * @return array
901
  */
902
- function updated_messages( $messages ) {
903
  global $post_ID;
904
 
905
- if ( get_post_type( $post_ID ) != $this->post_type )
906
- return $messages;
907
 
908
  // URL for the current topic
909
  $topic_url = bbp_get_topic_permalink( bbp_get_reply_topic_id( $post_ID ) );
@@ -961,6 +938,9 @@ endif; // class_exists check
961
  /**
962
  * Setup bbPress Replies Admin
963
  *
 
 
 
964
  * @since bbPress (r2596)
965
  *
966
  * @uses BBP_Replies_Admin
25
  /**
26
  * @var The post type of this admin component
27
  */
28
+ private $post_type = '';
29
 
30
  /** Functions *************************************************************/
31
 
38
  * @uses BBP_Replies_Admin::setup_actions() Setup the hooks and actions
39
  * @uses BBP_Replies_Admin::setup_actions() Setup the help text
40
  */
41
+ public function __construct() {
42
  $this->setup_globals();
43
  $this->setup_actions();
44
  }
55
  * @uses bbp_get_topic_post_type() To get the topic post type
56
  * @uses bbp_get_reply_post_type() To get the reply post type
57
  */
58
+ private function setup_actions() {
59
 
60
  // Add some general styling to the admin area
61
  add_action( 'bbp_admin_head', array( $this, 'admin_head' ) );
75
  add_action( 'save_post', array( $this, 'reply_attributes_metabox_save' ) );
76
 
77
  // Check if there are any bbp_toggle_reply_* requests on admin_init, also have a message displayed
78
+ add_action( 'load-edit.php', array( $this, 'toggle_reply' ) );
79
  add_action( 'admin_notices', array( $this, 'toggle_reply_notice' ) );
80
 
81
  // Anonymous metabox actions
91
  add_action( 'load-post-new.php', array( $this, 'new_help' ) );
92
  }
93
 
94
+ /**
95
+ * Should we bail out of this method?
96
+ *
97
+ * @since bbPress (r4067)
98
+ * @return boolean
99
+ */
100
+ private function bail() {
101
+ if ( $this->post_type != get_current_screen()->post_type )
102
+ return true;
103
+
104
+ return false;
105
+ }
106
+
107
  /**
108
  * Admin globals
109
  *
110
  * @since bbPress (r2646)
111
  * @access private
112
  */
113
+ private function setup_globals() {
 
 
114
  $this->post_type = bbp_get_reply_post_type();
115
  }
116
 
124
  */
125
  public function edit_help() {
126
 
127
+ if ( $this->bail() ) return;
 
 
 
 
 
 
 
 
 
128
 
129
  // Overview
130
+ get_current_screen()->add_help_tab( array(
131
  'id' => 'overview',
132
  'title' => __( 'Overview', 'bbpress' ),
133
  'content' =>
135
  ) );
136
 
137
  // Screen Content
138
+ get_current_screen()->add_help_tab( array(
139
  'id' => 'screen-content',
140
  'title' => __( 'Screen Content', 'bbpress' ),
141
  'content' =>
149
  ) );
150
 
151
  // Available Actions
152
+ get_current_screen()->add_help_tab( array(
153
  'id' => 'action-links',
154
  'title' => __( 'Available Actions', 'bbpress' ),
155
  'content' =>
164
  ) );
165
 
166
  // Bulk Actions
167
+ get_current_screen()->add_help_tab( array(
168
  'id' => 'bulk-actions',
169
  'title' => __( 'Bulk Actions', 'bbpress' ),
170
  'content' =>
173
  ) );
174
 
175
  // Help Sidebar
176
+ get_current_screen()->set_help_sidebar(
177
  '<p><strong>' . __( 'For more information:', 'bbpress' ) . '</strong></p>' .
178
  '<p>' . __( '<a href="http://bbpress.org/documentation/" target="_blank">bbPress Documentation</a>', 'bbpress' ) . '</p>' .
179
  '<p>' . __( '<a href="http://bbpress.org/forums/" target="_blank">bbPress Support Forums</a>', 'bbpress' ) . '</p>'
188
  */
189
  public function new_help() {
190
 
191
+ if ( $this->bail() ) return;
 
 
 
 
 
 
 
 
 
192
 
193
  $customize_display = '<p>' . __( 'The title field and the big reply editing Area are fixed in place, but you can reposition all the other boxes using drag and drop, and can minimize or expand them by clicking the title bar of each box. Use the Screen Options tab to unhide more boxes (Excerpt, Send Trackbacks, Custom Fields, Discussion, Slug, Author) or to choose a 1- or 2-column layout for this screen.', 'bbpress' ) . '</p>';
194
 
195
+ get_current_screen()->add_help_tab( array(
196
  'id' => 'customize-display',
197
  'title' => __( 'Customizing This Display', 'bbpress' ),
198
  'content' => $customize_display,
199
  ) );
200
 
201
+ get_current_screen()->add_help_tab( array(
202
  'id' => 'title-reply-editor',
203
  'title' => __( 'Title and Reply Editor', 'bbpress' ),
204
  'content' =>
216
  $publish_box .= '<p>' . __( '<strong>Featured Image</strong> - This allows you to associate an image with your reply without inserting it. This is usually useful only if your theme makes use of the featured image as a reply thumbnail on the home page, a custom header, etc.', 'bbpress' ) . '</p>';
217
  }
218
 
219
+ get_current_screen()->add_help_tab( array(
220
  'id' => 'reply-attributes',
221
  'title' => __( 'Reply Attributes', 'bbpress' ),
222
  'content' =>
227
  '</ul>'
228
  ) );
229
 
230
+ get_current_screen()->add_help_tab( array(
231
  'id' => 'publish-box',
232
  'title' => __( 'Publish Box', 'bbpress' ),
233
  'content' => $publish_box,
234
  ) );
235
 
236
+ get_current_screen()->add_help_tab( array(
237
  'id' => 'discussion-settings',
238
  'title' => __( 'Discussion Settings', 'bbpress' ),
239
  'content' =>
241
  '<p>' . __( '<strong>Discussion</strong> - You can turn comments and pings on or off, and if there are comments on the reply, you can see them here and moderate them.', 'bbpress' ) . '</p>'
242
  ) );
243
 
244
+ get_current_screen()->set_help_sidebar(
245
  '<p><strong>' . __( 'For more information:', 'bbpress' ) . '</strong></p>' .
246
  '<p>' . __( '<a href="http://bbpress.org/documentation/" target="_blank">bbPress Documentation</a>', 'bbpress' ) . '</p>' .
247
  '<p>' . __( '<a href="http://bbpress.org/forums/" target="_blank">bbPress Support Forums</a>', 'bbpress' ) . '</p>'
257
  * @uses add_meta_box() To add the metabox
258
  * @uses do_action() Calls 'bbp_reply_attributes_metabox'
259
  */
260
+ public function reply_attributes_metabox() {
261
+
262
+ if ( $this->bail() ) return;
263
+
264
  add_meta_box (
265
  'bbp_reply_attributes',
266
  __( 'Reply Attributes', 'bbpress' ),
285
  * reply id and parent id
286
  * @return int Parent id
287
  */
288
+ public function reply_attributes_metabox_save( $reply_id ) {
289
+
290
+ if ( $this->bail() ) return $reply_id;
291
 
292
  // Bail if doing an autosave
293
  if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE )
305
  if ( empty( $_POST['bbp_reply_metabox'] ) || !wp_verify_nonce( $_POST['bbp_reply_metabox'], 'bbp_reply_metabox_save' ) )
306
  return $reply_id;
307
 
 
 
 
 
308
  // Current user cannot edit this reply
309
  if ( !current_user_can( 'edit_reply', $reply_id ) )
310
  return $reply_id;
337
  * @uses do_action() Calls 'bbp_author_metabox' with the topic/reply
338
  * id
339
  */
340
+ public function author_metabox() {
341
+
342
+ if ( $this->bail() ) return;
343
 
344
  // Bail if post_type is not a reply
345
+ if ( empty( $_GET['action'] ) || ( 'edit' != $_GET['action'] ) )
346
  return;
347
 
348
  // Add the metabox
374
  * anonymous data
375
  * @return int Topic or reply id
376
  */
377
+ public function author_metabox_save( $post_id ) {
378
+
379
+ if ( $this->bail() ) return $post_id;
380
 
381
  // Bail if no post_id
382
  if ( empty( $post_id ) )
390
  if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE )
391
  return $post_id;
392
 
 
 
 
 
393
  // Bail if user cannot edit replies or reply is not anonymous
394
  if ( !current_user_can( 'edit_reply', $post_id ) )
395
  return $post_id;
416
  * @uses sanitize_html_class() To sanitize the classes
417
  * @uses do_action() Calls 'bbp_admin_head'
418
  */
419
+ public function admin_head() {
420
+
421
+ if ( $this->bail() ) return;
422
 
423
+ ?>
 
424
 
425
+ <style type="text/css" media="screen">
426
+ /*<![CDATA[*/
 
 
 
 
427
 
428
+ .column-bbp_forum_topic_count,
429
+ .column-bbp_forum_reply_count,
430
+ .column-bbp_topic_reply_count,
431
+ .column-bbp_topic_voice_count {
432
+ width: 8% !important;
433
+ }
434
 
435
+ .column-author,
436
+ .column-bbp_reply_author,
437
+ .column-bbp_topic_author {
438
+ width: 10% !important;
439
+ }
440
 
441
+ .column-bbp_topic_forum,
442
+ .column-bbp_reply_forum,
443
+ .column-bbp_reply_topic {
444
+ width: 10% !important;
445
+ }
446
 
447
+ .column-bbp_forum_freshness,
448
+ .column-bbp_topic_freshness {
449
+ width: 10% !important;
450
+ }
 
451
 
452
+ .column-bbp_forum_created,
453
+ .column-bbp_topic_created,
454
+ .column-bbp_reply_created {
455
+ width: 15% !important;
456
+ }
457
 
458
+ .status-closed {
459
+ background-color: #eaeaea;
460
+ }
461
 
462
+ .status-spam {
463
+ background-color: #faeaea;
464
+ }
465
 
466
+ /*]]>*/
467
+ </style>
468
 
469
+ <?php
470
  }
471
 
472
  /**
490
  * @uses add_query_arg() To add custom args to the url
491
  * @uses wp_safe_redirect() Redirect the page to custom url
492
  */
493
+ public function toggle_reply() {
494
+
495
+ if ( $this->bail() ) return;
496
 
497
  // Only proceed if GET is a reply toggle action
498
  if ( 'GET' == $_SERVER['REQUEST_METHOD'] && !empty( $_GET['action'] ) && in_array( $_GET['action'], array( 'bbp_toggle_reply_spam' ) ) && !empty( $_GET['reply_id'] ) ) {
552
  * @uses apply_filters() Calls 'bbp_toggle_reply_notice_admin' with
553
  * message, reply id, notice and is it a failure
554
  */
555
+ public function toggle_reply_notice() {
556
+
557
+ if ( $this->bail() ) return;
558
 
559
  // Only proceed if GET is a reply toggle action
560
  if ( 'GET' == $_SERVER['REQUEST_METHOD'] && !empty( $_GET['bbp_reply_toggle_notice'] ) && in_array( $_GET['bbp_reply_toggle_notice'], array( 'spammed', 'unspammed' ) ) && !empty( $_GET['reply_id'] ) ) {
606
  * the columns
607
  * @return array $columns bbPress reply columns
608
  */
609
+ public function replies_column_headers( $columns ) {
610
+
611
+ if ( $this->bail() ) return $columns;
612
+
613
  $columns = array(
614
  'cb' => '<input type="checkbox" />',
615
  'title' => __( 'Title', 'bbpress' ),
650
  * @uses do_action() Calls 'bbp_admin_replies_column_data' with the
651
  * column and reply id
652
  */
653
+ public function replies_column_data( $column, $reply_id ) {
654
+
655
+ if ( $this->bail() ) return;
656
 
657
  // Get topic ID
658
  $topic_id = bbp_get_reply_topic_id( $reply_id );
762
  * @uses get_delete_post_link() To get the delete post link of the reply
763
  * @return array $actions Actions
764
  */
765
+ public function replies_row_actions( $actions, $reply ) {
766
+
767
+ if ( $this->bail() ) return $actions;
768
+
769
+ unset( $actions['inline hide-if-no-js'] );
770
+
771
+ // Reply view links to topic
772
+ $actions['view'] = '<a href="' . bbp_get_reply_url( $reply->ID ) . '" title="' . esc_attr( sprintf( __( 'View &#8220;%s&#8221;', 'bbpress' ), bbp_get_reply_title( $reply->ID ) ) ) . '" rel="permalink">' . __( 'View', 'bbpress' ) . '</a>';
773
+
774
+ // User cannot view replies in trash
775
+ if ( ( bbp_get_trash_status_id() == $reply->post_status ) && !current_user_can( 'view_trash' ) )
776
+ unset( $actions['view'] );
777
+
778
+ // Only show the actions if the user is capable of viewing them
779
+ if ( current_user_can( 'moderate', $reply->ID ) ) {
780
+ if ( in_array( $reply->post_status, array( bbp_get_public_status_id(), bbp_get_spam_status_id() ) ) ) {
781
+ $spam_uri = esc_url( wp_nonce_url( add_query_arg( array( 'reply_id' => $reply->ID, 'action' => 'bbp_toggle_reply_spam' ), remove_query_arg( array( 'bbp_reply_toggle_notice', 'reply_id', 'failed', 'super' ) ) ), 'spam-reply_' . $reply->ID ) );
782
+ if ( bbp_is_reply_spam( $reply->ID ) ) {
783
+ $actions['spam'] = '<a href="' . $spam_uri . '" title="' . esc_attr__( 'Mark the reply as not spam', 'bbpress' ) . '">' . __( 'Not spam', 'bbpress' ) . '</a>';
784
+ } else {
785
+ $actions['spam'] = '<a href="' . $spam_uri . '" title="' . esc_attr__( 'Mark this reply as spam', 'bbpress' ) . '">' . __( 'Spam', 'bbpress' ) . '</a>';
786
  }
787
  }
788
+ }
789
 
790
+ // Trash
791
+ if ( current_user_can( 'delete_reply', $reply->ID ) ) {
792
+ if ( bbp_get_trash_status_id() == $reply->post_status ) {
793
+ $post_type_object = get_post_type_object( bbp_get_reply_post_type() );
794
+ $actions['untrash'] = "<a title='" . esc_attr__( 'Restore this item from the Trash', 'bbpress' ) . "' href='" . add_query_arg( array( '_wp_http_referer' => add_query_arg( array( 'post_type' => bbp_get_reply_post_type() ), admin_url( 'edit.php' ) ) ), wp_nonce_url( admin_url( sprintf( $post_type_object->_edit_link . '&amp;action=untrash', $reply->ID ) ), 'untrash-' . $reply->post_type . '_' . $reply->ID ) ) . "'>" . __( 'Restore', 'bbpress' ) . "</a>";
795
+ } elseif ( EMPTY_TRASH_DAYS ) {
796
+ $actions['trash'] = "<a class='submitdelete' title='" . esc_attr__( 'Move this item to the Trash', 'bbpress' ) . "' href='" . add_query_arg( array( '_wp_http_referer' => add_query_arg( array( 'post_type' => bbp_get_reply_post_type() ), admin_url( 'edit.php' ) ) ), get_delete_post_link( $reply->ID ) ) . "'>" . __( 'Trash', 'bbpress' ) . "</a>";
797
+ }
798
 
799
+ if ( bbp_get_trash_status_id() == $reply->post_status || !EMPTY_TRASH_DAYS ) {
800
+ $actions['delete'] = "<a class='submitdelete' title='" . esc_attr__( 'Delete this item permanently', 'bbpress' ) . "' href='" . add_query_arg( array( '_wp_http_referer' => add_query_arg( array( 'post_type' => bbp_get_reply_post_type() ), admin_url( 'edit.php' ) ) ), get_delete_post_link( $reply->ID, '', true ) ) . "'>" . __( 'Delete Permanently', 'bbpress' ) . "</a>";
801
+ } elseif ( bbp_get_spam_status_id() == $reply->post_status ) {
802
+ unset( $actions['trash'] );
 
803
  }
804
  }
805
 
816
  * @uses bbp_dropdown() To generate a forum dropdown
817
  * @return bool False. If post type is not topic or reply
818
  */
819
+ public function filter_dropdown() {
 
 
 
 
 
820
 
821
+ if ( $this->bail() ) return;
 
 
 
822
 
823
  // Add Empty Spam button
824
  if ( !empty( $_GET['post_status'] ) && ( bbp_get_spam_status_id() == $_GET['post_status'] ) && current_user_can( 'moderate' ) ) {
848
  * @uses bbp_get_reply_post_type() To get the reply post type
849
  * @return array Processed Query Vars
850
  */
851
+ public function filter_post_rows( $query_vars ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
852
 
853
+ if ( $this->bail() ) return $query_vars;
 
854
 
855
  // Add post_parent query_var if one is present
856
  if ( !empty( $_GET['bbp_forum_id'] ) ) {
868
  * @since bbPress (r3080)
869
  *
870
  * @global int $post_ID
 
871
  * @uses bbp_get_topic_permalink()
872
  * @uses wp_post_revision_title()
873
  * @uses esc_url()
877
  *
878
  * @return array
879
  */
880
+ public function updated_messages( $messages ) {
881
  global $post_ID;
882
 
883
+ if ( $this->bail() ) return $messages;
 
884
 
885
  // URL for the current topic
886
  $topic_url = bbp_get_topic_permalink( bbp_get_reply_topic_id( $post_ID ) );
938
  /**
939
  * Setup bbPress Replies Admin
940
  *
941
+ * This is currently here to make hooking and unhooking of the admin UI easy.
942
+ * It could use dependency injection in the future, but for now this is easier.
943
+ *
944
  * @since bbPress (r2596)
945
  *
946
  * @uses BBP_Replies_Admin
bbp-admin/bbp-settings.php CHANGED
@@ -366,7 +366,7 @@ function bbp_admin_setting_callback_main_section() {
366
  function bbp_admin_setting_callback_editlock() {
367
  ?>
368
 
369
- <input name="_bbp_edit_lock" type="text" id="_bbp_edit_lock" value="<?php bbp_form_option( '_bbp_edit_lock', '5' ); ?>" class="small-text" />
370
  <label for="_bbp_edit_lock"><?php _e( 'minutes', 'bbpress' ); ?></label>
371
 
372
  <?php
@@ -382,7 +382,7 @@ function bbp_admin_setting_callback_editlock() {
382
  function bbp_admin_setting_callback_throttle() {
383
  ?>
384
 
385
- <input name="_bbp_throttle_time" type="text" id="_bbp_throttle_time" value="<?php bbp_form_option( '_bbp_throttle_time', '10' ); ?>" class="small-text" />
386
  <label for="_bbp_throttle_time"><?php _e( 'seconds', 'bbpress' ); ?></label>
387
 
388
  <?php
@@ -573,7 +573,7 @@ function bbp_admin_setting_callback_per_page_section() {
573
  function bbp_admin_setting_callback_topics_per_page() {
574
  ?>
575
 
576
- <input name="_bbp_topics_per_page" type="text" id="_bbp_topics_per_page" value="<?php bbp_form_option( '_bbp_topics_per_page', '15' ); ?>" class="small-text" />
577
  <label for="_bbp_topics_per_page"><?php _e( 'per page', 'bbpress' ); ?></label>
578
 
579
  <?php
@@ -589,7 +589,7 @@ function bbp_admin_setting_callback_topics_per_page() {
589
  function bbp_admin_setting_callback_replies_per_page() {
590
  ?>
591
 
592
- <input name="_bbp_replies_per_page" type="text" id="_bbp_replies_per_page" value="<?php bbp_form_option( '_bbp_replies_per_page', '15' ); ?>" class="small-text" />
593
  <label for="_bbp_replies_per_page"><?php _e( 'per page', 'bbpress' ); ?></label>
594
 
595
  <?php
@@ -620,7 +620,7 @@ function bbp_admin_setting_callback_per_rss_page_section() {
620
  function bbp_admin_setting_callback_topics_per_rss_page() {
621
  ?>
622
 
623
- <input name="_bbp_topics_per_rss_page" type="text" id="_bbp_topics_per_rss_page" value="<?php bbp_form_option( '_bbp_topics_per_rss_page', '25' ); ?>" class="small-text" />
624
  <label for="_bbp_topics_per_rss_page"><?php _e( 'per page', 'bbpress' ); ?></label>
625
 
626
  <?php
@@ -636,7 +636,7 @@ function bbp_admin_setting_callback_topics_per_rss_page() {
636
  function bbp_admin_setting_callback_replies_per_rss_page() {
637
  ?>
638
 
639
- <input name="_bbp_replies_per_rss_page" type="text" id="_bbp_replies_per_rss_page" value="<?php bbp_form_option( '_bbp_replies_per_rss_page', '25' ); ?>" class="small-text" />
640
  <label for="_bbp_replies_per_rss_page"><?php _e( 'per page', 'bbpress' ); ?></label>
641
 
642
  <?php
@@ -1030,7 +1030,7 @@ function bbp_converter_setting_callback_dbport() {
1030
  function bbp_converter_setting_callback_dbuser() {
1031
  ?>
1032
 
1033
- <input name="_bbp_converter_db_user" type="text" id="_bbp_converter_db_user" value="<?php bbp_form_option( '_bbp_converter_db_user', DB_USER ); ?>" class="medium-text" />
1034
  <label for="_bbp_converter_db_user"><?php _e( 'User for your database connection', 'bbpress' ); ?></label>
1035
 
1036
  <?php
@@ -1044,7 +1044,7 @@ function bbp_converter_setting_callback_dbuser() {
1044
  function bbp_converter_setting_callback_dbpass() {
1045
  ?>
1046
 
1047
- <input name="_bbp_converter_db_pass" type="password" id="_bbp_converter_db_pass" value="<?php bbp_form_option( '_bbp_converter_db_pass', DB_PASSWORD ); ?>" class="medium-text" />
1048
  <label for="_bbp_converter_db_pass"><?php _e( 'Password to access the database', 'bbpress' ); ?></label>
1049
 
1050
  <?php
@@ -1058,7 +1058,7 @@ function bbp_converter_setting_callback_dbpass() {
1058
  function bbp_converter_setting_callback_dbname() {
1059
  ?>
1060
 
1061
- <input name="_bbp_converter_db_name" type="text" id="_bbp_converter_db_name" value="<?php bbp_form_option( '_bbp_converter_db_name', DB_NAME ); ?>" class="medium-text" />
1062
  <label for="_bbp_converter_db_name"><?php _e( 'Name of the database with your old forum data', 'bbpress' ); ?></label>
1063
 
1064
  <?php
@@ -1072,7 +1072,7 @@ function bbp_converter_setting_callback_dbname() {
1072
  function bbp_converter_setting_callback_options_section() {
1073
  ?>
1074
 
1075
- <p><?php _e( 'Some optional parameters to help tune the convertion process.', 'bbpress' ); ?></p>
1076
 
1077
  <?php
1078
  }
@@ -1122,31 +1122,31 @@ function bbp_converter_setting_callback_delay_time() {
1122
  }
1123
 
1124
  /**
1125
- * Edit Clean setting field
1126
  *
1127
  * @since bbPress (r3813)
1128
  */
1129
- function bbp_converter_setting_callback_clean() {
1130
  ?>
1131
 
1132
- <input id="_bbp_converter_clean" name="_bbp_converter_clean" type="checkbox" id="_bbp_converter_clean" value="1" <?php checked( get_option( '_bbp_converter_clean', false ) ); ?> />
1133
- <label for="_bbp_converter_clean"><?php _e( 'Purge all information from a previously attempted import', 'bbpress' ); ?></label>
1134
- <p class="description"><?php _e( 'Use this if an import failed and you want to start over from scratch.', 'bbpress' ); ?></p>
1135
 
1136
  <?php
1137
  }
1138
 
1139
  /**
1140
- * Edit Restart setting field
1141
  *
1142
  * @since bbPress (r3813)
1143
  */
1144
- function bbp_converter_setting_callback_restart() {
1145
  ?>
1146
 
1147
- <input id="_bbp_converter_restart" name="_bbp_converter_restart" type="checkbox" id="_bbp_converter_restart" value="1" <?php checked( get_option( '_bbp_converter_restart', false ) ); ?> />
1148
- <label for="_bbp_converter_restart"><?php _e( 'Restart the conversion process', 'bbpress' ); ?></label>
1149
- <p class="description"><?php _e( 'The importer keeps track of where it left off in the event of failure.', 'bbpress' ); ?></p>
1150
 
1151
  <?php
1152
  }
366
  function bbp_admin_setting_callback_editlock() {
367
  ?>
368
 
369
+ <input name="_bbp_edit_lock" type="number" min="0" step="1" id="_bbp_edit_lock" value="<?php bbp_form_option( '_bbp_edit_lock', '5' ); ?>" class="small-text" />
370
  <label for="_bbp_edit_lock"><?php _e( 'minutes', 'bbpress' ); ?></label>
371
 
372
  <?php
382
  function bbp_admin_setting_callback_throttle() {
383
  ?>
384
 
385
+ <input name="_bbp_throttle_time" type="number" min="0" step="1" id="_bbp_throttle_time" value="<?php bbp_form_option( '_bbp_throttle_time', '10' ); ?>" class="small-text" />
386
  <label for="_bbp_throttle_time"><?php _e( 'seconds', 'bbpress' ); ?></label>
387
 
388
  <?php
573
  function bbp_admin_setting_callback_topics_per_page() {
574
  ?>
575
 
576
+ <input name="_bbp_topics_per_page" type="number" min="1" step="1" id="_bbp_topics_per_page" value="<?php bbp_form_option( '_bbp_topics_per_page', '15' ); ?>" class="small-text" />
577
  <label for="_bbp_topics_per_page"><?php _e( 'per page', 'bbpress' ); ?></label>
578
 
579
  <?php
589
  function bbp_admin_setting_callback_replies_per_page() {
590
  ?>
591
 
592
+ <input name="_bbp_replies_per_page" type="number" min="1" step="1" id="_bbp_replies_per_page" value="<?php bbp_form_option( '_bbp_replies_per_page', '15' ); ?>" class="small-text" />
593
  <label for="_bbp_replies_per_page"><?php _e( 'per page', 'bbpress' ); ?></label>
594
 
595
  <?php
620
  function bbp_admin_setting_callback_topics_per_rss_page() {
621
  ?>
622
 
623
+ <input name="_bbp_topics_per_rss_page" type="number" min="1" step="1" id="_bbp_topics_per_rss_page" value="<?php bbp_form_option( '_bbp_topics_per_rss_page', '25' ); ?>" class="small-text" />
624
  <label for="_bbp_topics_per_rss_page"><?php _e( 'per page', 'bbpress' ); ?></label>
625
 
626
  <?php
636
  function bbp_admin_setting_callback_replies_per_rss_page() {
637
  ?>
638
 
639
+ <input name="_bbp_replies_per_rss_page" type="number" min="1" step="1" id="_bbp_replies_per_rss_page" value="<?php bbp_form_option( '_bbp_replies_per_rss_page', '25' ); ?>" class="small-text" />
640
  <label for="_bbp_replies_per_rss_page"><?php _e( 'per page', 'bbpress' ); ?></label>
641
 
642
  <?php
1030
  function bbp_converter_setting_callback_dbuser() {
1031
  ?>
1032
 
1033
+ <input name="_bbp_converter_db_user" type="text" id="_bbp_converter_db_user" value="<?php bbp_form_option( '_bbp_converter_db_user' ); ?>" class="medium-text" />
1034
  <label for="_bbp_converter_db_user"><?php _e( 'User for your database connection', 'bbpress' ); ?></label>
1035
 
1036
  <?php
1044
  function bbp_converter_setting_callback_dbpass() {
1045
  ?>
1046
 
1047
+ <input name="_bbp_converter_db_pass" type="password" id="_bbp_converter_db_pass" value="<?php bbp_form_option( '_bbp_converter_db_pass' ); ?>" class="medium-text" />
1048
  <label for="_bbp_converter_db_pass"><?php _e( 'Password to access the database', 'bbpress' ); ?></label>
1049
 
1050
  <?php
1058
  function bbp_converter_setting_callback_dbname() {
1059
  ?>
1060
 
1061
+ <input name="_bbp_converter_db_name" type="text" id="_bbp_converter_db_name" value="<?php bbp_form_option( '_bbp_converter_db_name' ); ?>" class="medium-text" />
1062
  <label for="_bbp_converter_db_name"><?php _e( 'Name of the database with your old forum data', 'bbpress' ); ?></label>
1063
 
1064
  <?php
1072
  function bbp_converter_setting_callback_options_section() {
1073
  ?>
1074
 
1075
+ <p><?php _e( 'Some optional parameters to help tune the conversion process.', 'bbpress' ); ?></p>
1076
 
1077
  <?php
1078
  }
1122
  }
1123
 
1124
  /**
1125
+ * Edit Restart setting field
1126
  *
1127
  * @since bbPress (r3813)
1128
  */
1129
+ function bbp_converter_setting_callback_restart() {
1130
  ?>
1131
 
1132
+ <input id="_bbp_converter_restart" name="_bbp_converter_restart" type="checkbox" id="_bbp_converter_restart" value="1" <?php checked( get_option( '_bbp_converter_restart', false ) ); ?> />
1133
+ <label for="_bbp_converter_restart"><?php _e( 'Start a fresh conversion from the beginning', 'bbpress' ); ?></label>
1134
+ <p class="description"><?php _e( 'You should clean old conversion information before starting over.', 'bbpress' ); ?></p>
1135
 
1136
  <?php
1137
  }
1138
 
1139
  /**
1140
+ * Edit Clean setting field
1141
  *
1142
  * @since bbPress (r3813)
1143
  */
1144
+ function bbp_converter_setting_callback_clean() {
1145
  ?>
1146
 
1147
+ <input id="_bbp_converter_clean" name="_bbp_converter_clean" type="checkbox" id="_bbp_converter_clean" value="1" <?php checked( get_option( '_bbp_converter_clean', false ) ); ?> />
1148
+ <label for="_bbp_converter_clean"><?php _e( 'Purge all information from a previously attempted import', 'bbpress' ); ?></label>
1149
+ <p class="description"><?php _e( 'Use this if an import failed and you want to remove that incomplete data.', 'bbpress' ); ?></p>
1150
 
1151
  <?php
1152
  }
bbp-admin/bbp-topics.php CHANGED
@@ -25,7 +25,7 @@ class BBP_Topics_Admin {
25
  /**
26
  * @var The post type of this admin component
27
  */
28
- var $post_type = '';
29
 
30
  /** Functions *************************************************************/
31
 
@@ -38,7 +38,7 @@ class BBP_Topics_Admin {
38
  * @uses BBP_Topics_Admin::setup_actions() Setup the hooks and actions
39
  * @uses BBP_Topics_Admin::setup_help() Setup the help text
40
  */
41
- function __construct() {
42
  $this->setup_globals();
43
  $this->setup_actions();
44
  }
@@ -55,7 +55,7 @@ class BBP_Topics_Admin {
55
  * @uses bbp_get_topic_post_type() To get the topic post type
56
  * @uses bbp_get_reply_post_type() To get the reply post type
57
  */
58
- function setup_actions() {
59
 
60
  // Add some general styling to the admin area
61
  add_action( 'bbp_admin_head', array( $this, 'admin_head' ) );
@@ -75,7 +75,7 @@ class BBP_Topics_Admin {
75
  add_action( 'save_post', array( $this, 'attributes_metabox_save' ) );
76
 
77
  // Check if there are any bbp_toggle_topic_* requests on admin_init, also have a message displayed
78
- add_action( 'bbp_admin_init', array( $this, 'toggle_topic' ) );
79
  add_action( 'admin_notices', array( $this, 'toggle_topic_notice' ) );
80
 
81
  // Anonymous metabox actions
@@ -91,15 +91,26 @@ class BBP_Topics_Admin {
91
  add_action( 'load-post-new.php', array( $this, 'new_help' ) );
92
  }
93
 
 
 
 
 
 
 
 
 
 
 
 
 
 
94
  /**
95
  * Admin globals
96
  *
97
  * @since bbPress (r2646)
98
  * @access private
99
  */
100
- function setup_globals() {
101
-
102
- // Setup the post type for this admin component
103
  $this->post_type = bbp_get_topic_post_type();
104
  }
105
 
@@ -113,19 +124,10 @@ class BBP_Topics_Admin {
113
  */
114
  public function edit_help() {
115
 
116
- $current_screen = get_current_screen();
117
- $post_type = !empty( $_REQUEST['post_type'] ) ? $_REQUEST['post_type'] : '';
118
-
119
- // Bail if current screen could not be found
120
- if ( empty( $current_screen ) )
121
- return;
122
-
123
- // Bail if not the topic post type
124
- if ( $post_type != $this->post_type )
125
- return;
126
 
127
  // Overview
128
- $current_screen->add_help_tab( array(
129
  'id' => 'overview',
130
  'title' => __( 'Overview', 'bbpress' ),
131
  'content' =>
@@ -133,7 +135,7 @@ class BBP_Topics_Admin {
133
  ) );
134
 
135
  // Screen Content
136
- $current_screen->add_help_tab( array(
137
  'id' => 'screen-content',
138
  'title' => __( 'Screen Content', 'bbpress' ),
139
  'content' =>
@@ -147,7 +149,7 @@ class BBP_Topics_Admin {
147
  ) );
148
 
149
  // Available Actions
150
- $current_screen->add_help_tab( array(
151
  'id' => 'action-links',
152
  'title' => __( 'Available Actions', 'bbpress' ),
153
  'content' =>
@@ -162,7 +164,7 @@ class BBP_Topics_Admin {
162
  ) );
163
 
164
  // Bulk Actions
165
- $current_screen->add_help_tab( array(
166
  'id' => 'bulk-actions',
167
  'title' => __( 'Bulk Actions', 'bbpress' ),
168
  'content' =>
@@ -171,7 +173,7 @@ class BBP_Topics_Admin {
171
  ) );
172
 
173
  // Help Sidebar
174
- $current_screen->set_help_sidebar(
175
  '<p><strong>' . __( 'For more information:', 'bbpress' ) . '</strong></p>' .
176
  '<p>' . __( '<a href="http://bbpress.org/documentation/" target="_blank">bbPress Documentation</a>', 'bbpress' ) . '</p>' .
177
  '<p>' . __( '<a href="http://bbpress.org/forums/" target="_blank">bbPress Support Forums</a>', 'bbpress' ) . '</p>'
@@ -186,26 +188,17 @@ class BBP_Topics_Admin {
186
  */
187
  public function new_help() {
188
 
189
- $current_screen = get_current_screen();
190
- $post_type = !empty( $_REQUEST['post_type'] ) ? $_REQUEST['post_type'] : '';
191
-
192
- // Bail if current screen could not be found
193
- if ( empty( $current_screen ) )
194
- return;
195
-
196
- // Bail if not the topic post type
197
- if ( $post_type != $this->post_type )
198
- return;
199
 
200
  $customize_display = '<p>' . __( 'The title field and the big topic editing Area are fixed in place, but you can reposition all the other boxes using drag and drop, and can minimize or expand them by clicking the title bar of each box. Use the Screen Options tab to unhide more boxes (Excerpt, Send Trackbacks, Custom Fields, Discussion, Slug, Author) or to choose a 1- or 2-column layout for this screen.', 'bbpress' ) . '</p>';
201
 
202
- $current_screen->add_help_tab( array(
203
  'id' => 'customize-display',
204
  'title' => __( 'Customizing This Display', 'bbpress' ),
205
  'content' => $customize_display,
206
  ) );
207
 
208
- $current_screen->add_help_tab( array(
209
  'id' => 'title-topic-editor',
210
  'title' => __( 'Title and Topic Editor', 'bbpress' ),
211
  'content' =>
@@ -223,7 +216,7 @@ class BBP_Topics_Admin {
223
  $publish_box .= '<p>' . __( '<strong>Featured Image</strong> - This allows you to associate an image with your topic without inserting it. This is usually useful only if your theme makes use of the featured image as a topic thumbnail on the home page, a custom header, etc.', 'bbpress' ) . '</p>';
224
  }
225
 
226
- $current_screen->add_help_tab( array(
227
  'id' => 'topic-attributes',
228
  'title' => __( 'Topic Attributes', 'bbpress' ),
229
  'content' =>
@@ -234,13 +227,13 @@ class BBP_Topics_Admin {
234
  '</ul>'
235
  ) );
236
 
237
- $current_screen->add_help_tab( array(
238
  'id' => 'publish-box',
239
  'title' => __( 'Publish Box', 'bbpress' ),
240
  'content' => $publish_box,
241
  ) );
242
 
243
- $current_screen->add_help_tab( array(
244
  'id' => 'discussion-settings',
245
  'title' => __( 'Discussion Settings', 'bbpress' ),
246
  'content' =>
@@ -248,7 +241,7 @@ class BBP_Topics_Admin {
248
  '<p>' . __( '<strong>Discussion</strong> - You can turn comments and pings on or off, and if there are comments on the topic, you can see them here and moderate them.', 'bbpress' ) . '</p>'
249
  ) );
250
 
251
- $current_screen->set_help_sidebar(
252
  '<p><strong>' . __( 'For more information:', 'bbpress' ) . '</strong></p>' .
253
  '<p>' . __( '<a href="http://bbpress.org/documentation/" target="_blank">bbPress Documentation</a>', 'bbpress' ) . '</p>' .
254
  '<p>' . __( '<a href="http://bbpress.org/forums/" target="_blank">bbPress Support Forums</a>', 'bbpress' ) . '</p>'
@@ -264,7 +257,10 @@ class BBP_Topics_Admin {
264
  * @uses add_meta_box() To add the metabox
265
  * @uses do_action() Calls 'bbp_topic_attributes_metabox'
266
  */
267
- function attributes_metabox() {
 
 
 
268
  add_meta_box (
269
  'bbp_topic_attributes',
270
  __( 'Topic Attributes', 'bbpress' ),
@@ -289,8 +285,10 @@ class BBP_Topics_Admin {
289
  * topic id and parent id
290
  * @return int Parent id
291
  */
292
- function attributes_metabox_save( $topic_id ) {
293
 
 
 
294
  // Bail if doing an autosave
295
  if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE )
296
  return $topic_id;
@@ -303,10 +301,6 @@ class BBP_Topics_Admin {
303
  if ( empty( $_POST['bbp_topic_metabox'] ) || !wp_verify_nonce( $_POST['bbp_topic_metabox'], 'bbp_topic_metabox_save' ) )
304
  return $topic_id;
305
 
306
- // Bail if post_type is not a topic
307
- if ( get_post_type( $topic_id ) != $this->post_type )
308
- return $topic_id;
309
-
310
  // Bail if current user cannot edit this topic
311
  if ( !current_user_can( 'edit_topic', $topic_id ) )
312
  return $topic_id;
@@ -360,10 +354,12 @@ class BBP_Topics_Admin {
360
  * @uses do_action() Calls 'bbp_author_metabox' with the topic/reply
361
  * id
362
  */
363
- function author_metabox() {
 
 
364
 
365
  // Bail if post_type is not a topic
366
- if ( ( empty( $_GET['action'] ) || ( 'edit' != $_GET['action'] ) ) || ( get_post_type() != $this->post_type ) )
367
  return;
368
 
369
  // Add the metabox
@@ -395,7 +391,9 @@ class BBP_Topics_Admin {
395
  * anonymous data
396
  * @return int Topic or reply id
397
  */
398
- function author_metabox_save( $post_id ) {
 
 
399
 
400
  // Bail if no post_id
401
  if ( empty( $post_id ) )
@@ -409,10 +407,6 @@ class BBP_Topics_Admin {
409
  if ( 'POST' != strtoupper( $_SERVER['REQUEST_METHOD'] ) )
410
  return $post_id;
411
 
412
- // Bail if post_type is not a topic or reply
413
- if ( get_post_type( $post_id ) != $this->post_type )
414
- return;
415
-
416
  // Bail if user cannot edit replies
417
  if ( !current_user_can( 'edit_topic', $post_id ) )
418
  return $post_id;
@@ -439,56 +433,57 @@ class BBP_Topics_Admin {
439
  * @uses sanitize_html_class() To sanitize the classes
440
  * @uses do_action() Calls 'bbp_admin_head'
441
  */
442
- function admin_head() {
443
 
444
- if ( get_post_type() == $this->post_type ) : ?>
445
 
446
- <style type="text/css" media="screen">
447
- /*<![CDATA[*/
448
 
449
- .column-bbp_forum_topic_count,
450
- .column-bbp_forum_reply_count,
451
- .column-bbp_topic_reply_count,
452
- .column-bbp_topic_voice_count {
453
- width: 8% !important;
454
- }
455
 
456
- .column-author,
457
- .column-bbp_reply_author,
458
- .column-bbp_topic_author {
459
- width: 10% !important;
460
- }
 
461
 
462
- .column-bbp_topic_forum,
463
- .column-bbp_reply_forum,
464
- .column-bbp_reply_topic {
465
- width: 10% !important;
466
- }
467
 
468
- .column-bbp_forum_freshness,
469
- .column-bbp_topic_freshness {
470
- width: 10% !important;
471
- }
 
472
 
473
- .column-bbp_forum_created,
474
- .column-bbp_topic_created,
475
- .column-bbp_reply_created {
476
- width: 15% !important;
477
- }
478
 
479
- .status-closed {
480
- background-color: #eaeaea;
481
- }
 
 
482
 
483
- .status-spam {
484
- background-color: #faeaea;
485
- }
486
 
487
- /*]]>*/
488
- </style>
 
489
 
490
- <?php endif;
 
491
 
 
492
  }
493
 
494
  /**
@@ -520,7 +515,9 @@ class BBP_Topics_Admin {
520
  * @uses add_query_arg() To add custom args to the url
521
  * @uses wp_safe_redirect() Redirect the page to custom url
522
  */
523
- function toggle_topic() {
 
 
524
 
525
  // Only proceed if GET is a topic toggle action
526
  if ( 'GET' == $_SERVER['REQUEST_METHOD'] && !empty( $_GET['action'] ) && in_array( $_GET['action'], array( 'bbp_toggle_topic_close', 'bbp_toggle_topic_stick', 'bbp_toggle_topic_spam' ) ) && !empty( $_GET['topic_id'] ) ) {
@@ -599,7 +596,9 @@ class BBP_Topics_Admin {
599
  * @uses apply_filters() Calls 'bbp_toggle_topic_notice_admin' with
600
  * message, topic id, notice and is it a failure
601
  */
602
- function toggle_topic_notice() {
 
 
603
 
604
  // Only proceed if GET is a topic toggle action
605
  if ( 'GET' == $_SERVER['REQUEST_METHOD'] && !empty( $_GET['bbp_topic_toggle_notice'] ) && in_array( $_GET['bbp_topic_toggle_notice'], array( 'opened', 'closed', 'super_sticked', 'sticked', 'unsticked', 'spammed', 'unspammed' ) ) && !empty( $_GET['topic_id'] ) ) {
@@ -671,7 +670,10 @@ class BBP_Topics_Admin {
671
  * the columns
672
  * @return array $columns bbPress topic columns
673
  */
674
- function topics_column_headers( $columns ) {
 
 
 
675
  $columns = array(
676
  'cb' => '<input type="checkbox" />',
677
  'title' => __( 'Topics', 'bbpress' ),
@@ -713,6 +715,8 @@ class BBP_Topics_Admin {
713
  */
714
  function topics_column_data( $column, $topic_id ) {
715
 
 
 
716
  // Get topic forum ID
717
  $forum_id = bbp_get_topic_forum_id( $topic_id );
718
 
@@ -809,65 +813,65 @@ class BBP_Topics_Admin {
809
  * @uses get_delete_post_link() To get the delete post link of the topic
810
  * @return array $actions Actions
811
  */
812
- function topics_row_actions( $actions, $topic ) {
813
-
814
- if ( $topic->post_type == $this->post_type ) {
815
- unset( $actions['inline hide-if-no-js'] );
816
-
817
- // Show view link if it's not set, the topic is trashed and the user can view trashed topics
818
- if ( empty( $actions['view'] ) && ( bbp_get_trash_status_id() == $topic->post_status ) && current_user_can( 'view_trash' ) )
819
- $actions['view'] = '<a href="' . bbp_get_topic_permalink( $topic->ID ) . '" title="' . esc_attr( sprintf( __( 'View &#8220;%s&#8221;', 'bbpress' ), bbp_get_topic_title( $topic->ID ) ) ) . '" rel="permalink">' . __( 'View', 'bbpress' ) . '</a>';
820
-
821
- // Only show the actions if the user is capable of viewing them :)
822
- if ( current_user_can( 'moderate', $topic->ID ) ) {
823
-
824
- // Close
825
- // Show the 'close' and 'open' link on published and closed posts only
826
- if ( in_array( $topic->post_status, array( bbp_get_public_status_id(), bbp_get_closed_status_id() ) ) ) {
827
- $close_uri = esc_url( wp_nonce_url( add_query_arg( array( 'topic_id' => $topic->ID, 'action' => 'bbp_toggle_topic_close' ), remove_query_arg( array( 'bbp_topic_toggle_notice', 'topic_id', 'failed', 'super' ) ) ), 'close-topic_' . $topic->ID ) );
828
- if ( bbp_is_topic_open( $topic->ID ) )
829
- $actions['closed'] = '<a href="' . $close_uri . '" title="' . esc_attr__( 'Close this topic', 'bbpress' ) . '">' . _x( 'Close', 'Close a Topic', 'bbpress' ) . '</a>';
830
- else
831
- $actions['closed'] = '<a href="' . $close_uri . '" title="' . esc_attr__( 'Open this topic', 'bbpress' ) . '">' . _x( 'Open', 'Open a Topic', 'bbpress' ) . '</a>';
832
- }
833
 
834
- // Dont show sticky if topic links is spam or trash
835
- if ( !bbp_is_topic_spam( $topic->ID ) && !bbp_is_topic_trash( $topic->ID ) ) {
836
 
837
- // Sticky
838
- $stick_uri = esc_url( wp_nonce_url( add_query_arg( array( 'topic_id' => $topic->ID, 'action' => 'bbp_toggle_topic_stick' ), remove_query_arg( array( 'bbp_topic_toggle_notice', 'topic_id', 'failed', 'super' ) ) ), 'stick-topic_' . $topic->ID ) );
839
- if ( bbp_is_topic_sticky( $topic->ID ) ) {
840
- $actions['stick'] = '<a href="' . $stick_uri . '" title="' . esc_attr__( 'Unstick this topic', 'bbpress' ) . '">' . __( 'Unstick', 'bbpress' ) . '</a>';
841
- } else {
842
- $super_uri = esc_url( wp_nonce_url( add_query_arg( array( 'topic_id' => $topic->ID, 'action' => 'bbp_toggle_topic_stick', 'super' => '1' ), remove_query_arg( array( 'bbp_topic_toggle_notice', 'topic_id', 'failed', 'super' ) ) ), 'stick-topic_' . $topic->ID ) );
843
- $actions['stick'] = '<a href="' . $stick_uri . '" title="' . esc_attr__( 'Stick this topic to its forum', 'bbpress' ) . '">' . __( 'Stick', 'bbpress' ) . '</a> (<a href="' . $super_uri . '" title="' . esc_attr__( 'Stick this topic to front', 'bbpress' ) . '">' . __( 'to front', 'bbpress' ) . '</a>)';
844
- }
845
- }
846
 
847
- // Spam
848
- $spam_uri = esc_url( wp_nonce_url( add_query_arg( array( 'topic_id' => $topic->ID, 'action' => 'bbp_toggle_topic_spam' ), remove_query_arg( array( 'bbp_topic_toggle_notice', 'topic_id', 'failed', 'super' ) ) ), 'spam-topic_' . $topic->ID ) );
849
- if ( bbp_is_topic_spam( $topic->ID ) )
850
- $actions['spam'] = '<a href="' . $spam_uri . '" title="' . esc_attr__( 'Mark the topic as not spam', 'bbpress' ) . '">' . __( 'Not spam', 'bbpress' ) . '</a>';
851
- else
852
- $actions['spam'] = '<a href="' . $spam_uri . '" title="' . esc_attr__( 'Mark this topic as spam', 'bbpress' ) . '">' . __( 'Spam', 'bbpress' ) . '</a>';
853
 
 
 
 
 
 
 
 
 
 
 
 
854
  }
855
 
856
- // Do not show trash links for spam topics, or spam links for trashed topics
857
- if ( current_user_can( 'delete_topic', $topic->ID ) ) {
858
- if ( bbp_get_trash_status_id() == $topic->post_status ) {
859
- $post_type_object = get_post_type_object( bbp_get_topic_post_type() );
860
- $actions['untrash'] = "<a title='" . esc_attr__( 'Restore this item from the Trash', 'bbpress' ) . "' href='" . wp_nonce_url( add_query_arg( array( '_wp_http_referer' => add_query_arg( array( 'post_type' => bbp_get_topic_post_type() ), admin_url( 'edit.php' ) ) ), admin_url( sprintf( $post_type_object->_edit_link . '&amp;action=untrash', $topic->ID ) ) ), 'untrash-' . $topic->post_type . '_' . $topic->ID ) . "'>" . __( 'Restore', 'bbpress' ) . "</a>";
861
- } elseif ( EMPTY_TRASH_DAYS ) {
862
- $actions['trash'] = "<a class='submitdelete' title='" . esc_attr__( 'Move this item to the Trash', 'bbpress' ) . "' href='" . add_query_arg( array( '_wp_http_referer' => add_query_arg( array( 'post_type' => bbp_get_topic_post_type() ), admin_url( 'edit.php' ) ) ), get_delete_post_link( $topic->ID ) ) . "'>" . __( 'Trash', 'bbpress' ) . "</a>";
863
- }
864
 
865
- if ( bbp_get_trash_status_id() == $topic->post_status || !EMPTY_TRASH_DAYS ) {
866
- $actions['delete'] = "<a class='submitdelete' title='" . esc_attr__( 'Delete this item permanently', 'bbpress' ) . "' href='" . add_query_arg( array( '_wp_http_referer' => add_query_arg( array( 'post_type' => bbp_get_topic_post_type() ), admin_url( 'edit.php' ) ) ), get_delete_post_link( $topic->ID, '', true ) ) . "'>" . __( 'Delete Permanently', 'bbpress' ) . "</a>";
867
- } elseif ( bbp_get_spam_status_id() == $topic->post_status ) {
868
- unset( $actions['trash'] );
 
 
 
869
  }
870
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
871
  }
872
 
873
  return $actions;
@@ -883,17 +887,9 @@ class BBP_Topics_Admin {
883
  * @uses bbp_dropdown() To generate a forum dropdown
884
  * @return bool False. If post type is not topic or reply
885
  */
886
- function filter_dropdown() {
887
-
888
- // Bail if not viewing the topics list
889
- if (
890
- // post_type exists in _GET
891
- empty( $_GET['post_type'] ) ||
892
 
893
- // post_type is not topic type
894
- ( $_GET['post_type'] != $this->post_type )
895
- )
896
- return;
897
 
898
  // Add Empty Spam button
899
  if ( !empty( $_GET['post_status'] ) && ( bbp_get_spam_status_id() == $_GET['post_status'] ) && current_user_can( 'moderate' ) ) {
@@ -924,25 +920,8 @@ class BBP_Topics_Admin {
924
  * @return array Processed Query Vars
925
  */
926
  function filter_post_rows( $query_vars ) {
927
- global $pagenow;
928
-
929
- // Avoid poisoning other requests
930
- if (
931
- // Only look in admin
932
- !is_admin() ||
933
 
934
- // Make sure the current page is for post rows
935
- ( 'edit.php' != $pagenow ) ||
936
-
937
- // Make sure we're looking for a post_type
938
- empty( $_GET['post_type'] ) ||
939
-
940
- // Make sure we're looking at bbPress topics
941
- ( $_GET['post_type'] != $this->post_type )
942
- )
943
-
944
- // We're in no shape to filter anything, so return
945
- return $query_vars;
946
 
947
  // Add post_parent query_var if one is present
948
  if ( !empty( $_GET['bbp_forum_id'] ) ) {
@@ -960,7 +939,6 @@ class BBP_Topics_Admin {
960
  * @since bbPress (r3080)
961
  *
962
  * @global int $post_ID
963
- * @uses get_post_type()
964
  * @uses bbp_get_topic_permalink()
965
  * @uses wp_post_revision_title()
966
  * @uses esc_url()
@@ -970,11 +948,10 @@ class BBP_Topics_Admin {
970
  *
971
  * @return array
972
  */
973
- function updated_messages( $messages ) {
974
  global $post_ID;
975
 
976
- if ( get_post_type( $post_ID ) != $this->post_type )
977
- return $messages;
978
 
979
  // URL for the current topic
980
  $topic_url = bbp_get_topic_permalink( $post_ID );
@@ -1032,6 +1009,9 @@ endif; // class_exists check
1032
  /**
1033
  * Setup bbPress Topics Admin
1034
  *
 
 
 
1035
  * @since bbPress (r2596)
1036
  *
1037
  * @uses BBP_Forums_Admin
25
  /**
26
  * @var The post type of this admin component
27
  */
28
+ private $post_type = '';
29
 
30
  /** Functions *************************************************************/
31
 
38
  * @uses BBP_Topics_Admin::setup_actions() Setup the hooks and actions
39
  * @uses BBP_Topics_Admin::setup_help() Setup the help text
40
  */
41
+ public function __construct() {
42
  $this->setup_globals();
43
  $this->setup_actions();
44
  }
55
  * @uses bbp_get_topic_post_type() To get the topic post type
56
  * @uses bbp_get_reply_post_type() To get the reply post type
57
  */
58
+ private function setup_actions() {
59
 
60
  // Add some general styling to the admin area
61
  add_action( 'bbp_admin_head', array( $this, 'admin_head' ) );
75
  add_action( 'save_post', array( $this, 'attributes_metabox_save' ) );
76
 
77
  // Check if there are any bbp_toggle_topic_* requests on admin_init, also have a message displayed
78
+ add_action( 'load-edit.php', array( $this, 'toggle_topic' ) );
79
  add_action( 'admin_notices', array( $this, 'toggle_topic_notice' ) );
80
 
81
  // Anonymous metabox actions
91
  add_action( 'load-post-new.php', array( $this, 'new_help' ) );
92
  }
93
 
94
+ /**
95
+ * Should we bail out of this method?
96
+ *
97
+ * @since bbPress (r4067)
98
+ * @return boolean
99
+ */
100
+ private function bail() {
101
+ if ( $this->post_type != get_current_screen()->post_type )
102
+ return true;
103
+
104
+ return false;
105
+ }
106
+
107
  /**
108
  * Admin globals
109
  *
110
  * @since bbPress (r2646)
111
  * @access private
112
  */
113
+ private function setup_globals() {
 
 
114
  $this->post_type = bbp_get_topic_post_type();
115
  }
116
 
124
  */
125
  public function edit_help() {
126
 
127
+ if ( $this->bail() ) return;
 
 
 
 
 
 
 
 
 
128
 
129
  // Overview
130
+ get_current_screen()->add_help_tab( array(
131
  'id' => 'overview',
132
  'title' => __( 'Overview', 'bbpress' ),
133
  'content' =>
135
  ) );
136
 
137
  // Screen Content
138
+ get_current_screen()->add_help_tab( array(
139
  'id' => 'screen-content',
140
  'title' => __( 'Screen Content', 'bbpress' ),
141
  'content' =>
149
  ) );
150
 
151
  // Available Actions
152
+ get_current_screen()->add_help_tab( array(
153
  'id' => 'action-links',
154
  'title' => __( 'Available Actions', 'bbpress' ),
155
  'content' =>
164
  ) );
165
 
166
  // Bulk Actions
167
+ get_current_screen()->add_help_tab( array(
168
  'id' => 'bulk-actions',
169
  'title' => __( 'Bulk Actions', 'bbpress' ),
170
  'content' =>
173
  ) );
174
 
175
  // Help Sidebar
176
+ get_current_screen()->set_help_sidebar(
177
  '<p><strong>' . __( 'For more information:', 'bbpress' ) . '</strong></p>' .
178
  '<p>' . __( '<a href="http://bbpress.org/documentation/" target="_blank">bbPress Documentation</a>', 'bbpress' ) . '</p>' .
179
  '<p>' . __( '<a href="http://bbpress.org/forums/" target="_blank">bbPress Support Forums</a>', 'bbpress' ) . '</p>'
188
  */
189
  public function new_help() {
190
 
191
+ if ( $this->bail() ) return;
 
 
 
 
 
 
 
 
 
192
 
193
  $customize_display = '<p>' . __( 'The title field and the big topic editing Area are fixed in place, but you can reposition all the other boxes using drag and drop, and can minimize or expand them by clicking the title bar of each box. Use the Screen Options tab to unhide more boxes (Excerpt, Send Trackbacks, Custom Fields, Discussion, Slug, Author) or to choose a 1- or 2-column layout for this screen.', 'bbpress' ) . '</p>';
194
 
195
+ get_current_screen()->add_help_tab( array(
196
  'id' => 'customize-display',
197
  'title' => __( 'Customizing This Display', 'bbpress' ),
198
  'content' => $customize_display,
199
  ) );
200
 
201
+ get_current_screen()->add_help_tab( array(
202
  'id' => 'title-topic-editor',
203
  'title' => __( 'Title and Topic Editor', 'bbpress' ),
204
  'content' =>
216
  $publish_box .= '<p>' . __( '<strong>Featured Image</strong> - This allows you to associate an image with your topic without inserting it. This is usually useful only if your theme makes use of the featured image as a topic thumbnail on the home page, a custom header, etc.', 'bbpress' ) . '</p>';
217
  }
218
 
219
+ get_current_screen()->add_help_tab( array(
220
  'id' => 'topic-attributes',
221
  'title' => __( 'Topic Attributes', 'bbpress' ),
222
  'content' =>
227
  '</ul>'
228
  ) );
229
 
230
+ get_current_screen()->add_help_tab( array(
231
  'id' => 'publish-box',
232
  'title' => __( 'Publish Box', 'bbpress' ),
233
  'content' => $publish_box,
234
  ) );
235
 
236
+ get_current_screen()->add_help_tab( array(
237
  'id' => 'discussion-settings',
238
  'title' => __( 'Discussion Settings', 'bbpress' ),
239
  'content' =>
241
  '<p>' . __( '<strong>Discussion</strong> - You can turn comments and pings on or off, and if there are comments on the topic, you can see them here and moderate them.', 'bbpress' ) . '</p>'
242
  ) );
243
 
244
+ get_current_screen()->set_help_sidebar(
245
  '<p><strong>' . __( 'For more information:', 'bbpress' ) . '</strong></p>' .
246
  '<p>' . __( '<a href="http://bbpress.org/documentation/" target="_blank">bbPress Documentation</a>', 'bbpress' ) . '</p>' .
247
  '<p>' . __( '<a href="http://bbpress.org/forums/" target="_blank">bbPress Support Forums</a>', 'bbpress' ) . '</p>'
257
  * @uses add_meta_box() To add the metabox
258
  * @uses do_action() Calls 'bbp_topic_attributes_metabox'
259
  */
260
+ public function attributes_metabox() {
261
+
262
+ if ( $this->bail() ) return;
263
+
264
  add_meta_box (
265
  'bbp_topic_attributes',
266
  __( 'Topic Attributes', 'bbpress' ),
285
  * topic id and parent id
286
  * @return int Parent id
287
  */
288
+ public function attributes_metabox_save( $topic_id ) {
289
 
290
+ if ( $this->bail() ) return $topic_id;
291
+
292
  // Bail if doing an autosave
293
  if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE )
294
  return $topic_id;
301
  if ( empty( $_POST['bbp_topic_metabox'] ) || !wp_verify_nonce( $_POST['bbp_topic_metabox'], 'bbp_topic_metabox_save' ) )
302
  return $topic_id;
303
 
 
 
 
 
304
  // Bail if current user cannot edit this topic
305
  if ( !current_user_can( 'edit_topic', $topic_id ) )
306
  return $topic_id;
354
  * @uses do_action() Calls 'bbp_author_metabox' with the topic/reply
355
  * id
356
  */
357
+ public function author_metabox() {
358
+
359
+ if ( $this->bail() ) return;
360
 
361
  // Bail if post_type is not a topic
362
+ if ( empty( $_GET['action'] ) || ( 'edit' != $_GET['action'] ) )
363
  return;
364
 
365
  // Add the metabox
391
  * anonymous data
392
  * @return int Topic or reply id
393
  */
394
+ public function author_metabox_save( $post_id ) {
395
+
396
+ if ( $this->bail() ) return $post_id;
397
 
398
  // Bail if no post_id
399
  if ( empty( $post_id ) )
407
  if ( 'POST' != strtoupper( $_SERVER['REQUEST_METHOD'] ) )
408
  return $post_id;
409
 
 
 
 
 
410
  // Bail if user cannot edit replies
411
  if ( !current_user_can( 'edit_topic', $post_id ) )
412
  return $post_id;
433
  * @uses sanitize_html_class() To sanitize the classes
434
  * @uses do_action() Calls 'bbp_admin_head'
435
  */
436
+ public function admin_head() {
437
 
438
+ if ( $this->bail() ) return;
439
 
440
+ ?>
 
441
 
442
+ <style type="text/css" media="screen">
443
+ /*<![CDATA[*/
 
 
 
 
444
 
445
+ .column-bbp_forum_topic_count,
446
+ .column-bbp_forum_reply_count,
447
+ .column-bbp_topic_reply_count,
448
+ .column-bbp_topic_voice_count {
449
+ width: 8% !important;
450
+ }
451
 
452
+ .column-author,
453
+ .column-bbp_reply_author,
454
+ .column-bbp_topic_author {
455
+ width: 10% !important;
456
+ }
457
 
458
+ .column-bbp_topic_forum,
459
+ .column-bbp_reply_forum,
460
+ .column-bbp_reply_topic {
461
+ width: 10% !important;
462
+ }
463
 
464
+ .column-bbp_forum_freshness,
465
+ .column-bbp_topic_freshness {
466
+ width: 10% !important;
467
+ }
 
468
 
469
+ .column-bbp_forum_created,
470
+ .column-bbp_topic_created,
471
+ .column-bbp_reply_created {
472
+ width: 15% !important;
473
+ }
474
 
475
+ .status-closed {
476
+ background-color: #eaeaea;
477
+ }
478
 
479
+ .status-spam {
480
+ background-color: #faeaea;
481
+ }
482
 
483
+ /*]]>*/
484
+ </style>
485
 
486
+ <?php
487
  }
488
 
489
  /**
515
  * @uses add_query_arg() To add custom args to the url
516
  * @uses wp_safe_redirect() Redirect the page to custom url
517
  */
518
+ public function toggle_topic() {
519
+
520
+ if ( $this->bail() ) return;
521
 
522
  // Only proceed if GET is a topic toggle action
523
  if ( 'GET' == $_SERVER['REQUEST_METHOD'] && !empty( $_GET['action'] ) && in_array( $_GET['action'], array( 'bbp_toggle_topic_close', 'bbp_toggle_topic_stick', 'bbp_toggle_topic_spam' ) ) && !empty( $_GET['topic_id'] ) ) {
596
  * @uses apply_filters() Calls 'bbp_toggle_topic_notice_admin' with
597
  * message, topic id, notice and is it a failure
598
  */
599
+ public function toggle_topic_notice() {
600
+
601
+ if ( $this->bail() ) return;
602
 
603
  // Only proceed if GET is a topic toggle action
604
  if ( 'GET' == $_SERVER['REQUEST_METHOD'] && !empty( $_GET['bbp_topic_toggle_notice'] ) && in_array( $_GET['bbp_topic_toggle_notice'], array( 'opened', 'closed', 'super_sticked', 'sticked', 'unsticked', 'spammed', 'unspammed' ) ) && !empty( $_GET['topic_id'] ) ) {
670
  * the columns
671
  * @return array $columns bbPress topic columns
672
  */
673
+ public function topics_column_headers( $columns ) {
674
+
675
+ if ( $this->bail() ) return $columns;
676
+
677
  $columns = array(
678
  'cb' => '<input type="checkbox" />',
679
  'title' => __( 'Topics', 'bbpress' ),
715
  */
716
  function topics_column_data( $column, $topic_id ) {
717
 
718
+ if ( $this->bail() ) return;
719
+
720
  // Get topic forum ID
721
  $forum_id = bbp_get_topic_forum_id( $topic_id );
722
 
813
  * @uses get_delete_post_link() To get the delete post link of the topic
814
  * @return array $actions Actions
815
  */
816
+ public function topics_row_actions( $actions, $topic ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
817
 
818
+ if ( $this->bail() ) return $actions;
 
819
 
820
+ unset( $actions['inline hide-if-no-js'] );
 
 
 
 
 
 
 
 
821
 
822
+ // Show view link if it's not set, the topic is trashed and the user can view trashed topics
823
+ if ( empty( $actions['view'] ) && ( bbp_get_trash_status_id() == $topic->post_status ) && current_user_can( 'view_trash' ) )
824
+ $actions['view'] = '<a href="' . bbp_get_topic_permalink( $topic->ID ) . '" title="' . esc_attr( sprintf( __( 'View &#8220;%s&#8221;', 'bbpress' ), bbp_get_topic_title( $topic->ID ) ) ) . '" rel="permalink">' . __( 'View', 'bbpress' ) . '</a>';
 
 
 
825
 
826
+ // Only show the actions if the user is capable of viewing them :)
827
+ if ( current_user_can( 'moderate', $topic->ID ) ) {
828
+
829
+ // Close
830
+ // Show the 'close' and 'open' link on published and closed posts only
831
+ if ( in_array( $topic->post_status, array( bbp_get_public_status_id(), bbp_get_closed_status_id() ) ) ) {
832
+ $close_uri = esc_url( wp_nonce_url( add_query_arg( array( 'topic_id' => $topic->ID, 'action' => 'bbp_toggle_topic_close' ), remove_query_arg( array( 'bbp_topic_toggle_notice', 'topic_id', 'failed', 'super' ) ) ), 'close-topic_' . $topic->ID ) );
833
+ if ( bbp_is_topic_open( $topic->ID ) )
834
+ $actions['closed'] = '<a href="' . $close_uri . '" title="' . esc_attr__( 'Close this topic', 'bbpress' ) . '">' . _x( 'Close', 'Close a Topic', 'bbpress' ) . '</a>';
835
+ else
836
+ $actions['closed'] = '<a href="' . $close_uri . '" title="' . esc_attr__( 'Open this topic', 'bbpress' ) . '">' . _x( 'Open', 'Open a Topic', 'bbpress' ) . '</a>';
837
  }
838
 
839
+ // Dont show sticky if topic links is spam or trash
840
+ if ( !bbp_is_topic_spam( $topic->ID ) && !bbp_is_topic_trash( $topic->ID ) ) {
 
 
 
 
 
 
841
 
842
+ // Sticky
843
+ $stick_uri = esc_url( wp_nonce_url( add_query_arg( array( 'topic_id' => $topic->ID, 'action' => 'bbp_toggle_topic_stick' ), remove_query_arg( array( 'bbp_topic_toggle_notice', 'topic_id', 'failed', 'super' ) ) ), 'stick-topic_' . $topic->ID ) );
844
+ if ( bbp_is_topic_sticky( $topic->ID ) ) {
845
+ $actions['stick'] = '<a href="' . $stick_uri . '" title="' . esc_attr__( 'Unstick this topic', 'bbpress' ) . '">' . __( 'Unstick', 'bbpress' ) . '</a>';
846
+ } else {
847
+ $super_uri = esc_url( wp_nonce_url( add_query_arg( array( 'topic_id' => $topic->ID, 'action' => 'bbp_toggle_topic_stick', 'super' => '1' ), remove_query_arg( array( 'bbp_topic_toggle_notice', 'topic_id', 'failed', 'super' ) ) ), 'stick-topic_' . $topic->ID ) );
848
+ $actions['stick'] = '<a href="' . $stick_uri . '" title="' . esc_attr__( 'Stick this topic to its forum', 'bbpress' ) . '">' . __( 'Stick', 'bbpress' ) . '</a> (<a href="' . $super_uri . '" title="' . esc_attr__( 'Stick this topic to front', 'bbpress' ) . '">' . __( 'to front', 'bbpress' ) . '</a>)';
849
  }
850
  }
851
+
852
+ // Spam
853
+ $spam_uri = esc_url( wp_nonce_url( add_query_arg( array( 'topic_id' => $topic->ID, 'action' => 'bbp_toggle_topic_spam' ), remove_query_arg( array( 'bbp_topic_toggle_notice', 'topic_id', 'failed', 'super' ) ) ), 'spam-topic_' . $topic->ID ) );
854
+ if ( bbp_is_topic_spam( $topic->ID ) )
855
+ $actions['spam'] = '<a href="' . $spam_uri . '" title="' . esc_attr__( 'Mark the topic as not spam', 'bbpress' ) . '">' . __( 'Not spam', 'bbpress' ) . '</a>';
856
+ else
857
+ $actions['spam'] = '<a href="' . $spam_uri . '" title="' . esc_attr__( 'Mark this topic as spam', 'bbpress' ) . '">' . __( 'Spam', 'bbpress' ) . '</a>';
858
+
859
+ }
860
+
861
+ // Do not show trash links for spam topics, or spam links for trashed topics
862
+ if ( current_user_can( 'delete_topic', $topic->ID ) ) {
863
+ if ( bbp_get_trash_status_id() == $topic->post_status ) {
864
+ $post_type_object = get_post_type_object( bbp_get_topic_post_type() );
865
+ $actions['untrash'] = "<a title='" . esc_attr__( 'Restore this item from the Trash', 'bbpress' ) . "' href='" . wp_nonce_url( add_query_arg( array( '_wp_http_referer' => add_query_arg( array( 'post_type' => bbp_get_topic_post_type() ), admin_url( 'edit.php' ) ) ), admin_url( sprintf( $post_type_object->_edit_link . '&amp;action=untrash', $topic->ID ) ) ), 'untrash-' . $topic->post_type . '_' . $topic->ID ) . "'>" . __( 'Restore', 'bbpress' ) . "</a>";
866
+ } elseif ( EMPTY_TRASH_DAYS ) {
867
+ $actions['trash'] = "<a class='submitdelete' title='" . esc_attr__( 'Move this item to the Trash', 'bbpress' ) . "' href='" . add_query_arg( array( '_wp_http_referer' => add_query_arg( array( 'post_type' => bbp_get_topic_post_type() ), admin_url( 'edit.php' ) ) ), get_delete_post_link( $topic->ID ) ) . "'>" . __( 'Trash', 'bbpress' ) . "</a>";
868
+ }
869
+
870
+ if ( bbp_get_trash_status_id() == $topic->post_status || !EMPTY_TRASH_DAYS ) {
871
+ $actions['delete'] = "<a class='submitdelete' title='" . esc_attr__( 'Delete this item permanently', 'bbpress' ) . "' href='" . add_query_arg( array( '_wp_http_referer' => add_query_arg( array( 'post_type' => bbp_get_topic_post_type() ), admin_url( 'edit.php' ) ) ), get_delete_post_link( $topic->ID, '', true ) ) . "'>" . __( 'Delete Permanently', 'bbpress' ) . "</a>";
872
+ } elseif ( bbp_get_spam_status_id() == $topic->post_status ) {
873
+ unset( $actions['trash'] );
874
+ }
875
  }
876
 
877
  return $actions;
887
  * @uses bbp_dropdown() To generate a forum dropdown
888
  * @return bool False. If post type is not topic or reply
889
  */
890
+ public function filter_dropdown() {
 
 
 
 
 
891
 
892
+ if ( $this->bail() ) return;
 
 
 
893
 
894
  // Add Empty Spam button
895
  if ( !empty( $_GET['post_status'] ) && ( bbp_get_spam_status_id() == $_GET['post_status'] ) && current_user_can( 'moderate' ) ) {
920
  * @return array Processed Query Vars
921
  */
922
  function filter_post_rows( $query_vars ) {
 
 
 
 
 
 
923
 
924
+ if ( $this->bail() ) return $query_vars;
 
 
 
 
 
 
 
 
 
 
 
925
 
926
  // Add post_parent query_var if one is present
927
  if ( !empty( $_GET['bbp_forum_id'] ) ) {
939
  * @since bbPress (r3080)
940
  *
941
  * @global int $post_ID
 
942
  * @uses bbp_get_topic_permalink()
943
  * @uses wp_post_revision_title()
944
  * @uses esc_url()
948
  *
949
  * @return array
950
  */
951
+ public function updated_messages( $messages ) {
952
  global $post_ID;
953
 
954
+ if ( $this->bail() ) return $messages;
 
955
 
956
  // URL for the current topic
957
  $topic_url = bbp_get_topic_permalink( $post_ID );
1009
  /**
1010
  * Setup bbPress Topics Admin
1011
  *
1012
+ * This is currently here to make hooking and unhooking of the admin UI easy.
1013
+ * It could use dependency injection in the future, but for now this is easier.
1014
+ *
1015
  * @since bbPress (r2596)
1016
  *
1017
  * @uses BBP_Forums_Admin
bbp-admin/bbp-users.php CHANGED
@@ -99,14 +99,3 @@ class BBP_Users_Admin {
99
  function user_profile_forums( $profileuser ) { }
100
  }
101
  endif; // class exists
102
-
103
- /**
104
- * Setup bbPress Users Admin
105
- *
106
- * @since bbPress (r2596)
107
- *
108
- * @uses BBP_Replies_Admin
109
- */
110
- function bbp_users_admin() {
111
- bbpress()->admin->users = new BBP_Users_Admin();
112
- }
99
  function user_profile_forums( $profileuser ) { }
100
  }
101
  endif; // class exists
 
 
 
 
 
 
 
 
 
 
 
bbp-admin/images/icons32-2x.png ADDED
Binary file
bbp-includes/bbp-common-functions.php CHANGED
@@ -1470,6 +1470,7 @@ function bbp_request_feed_trap( $query_vars = array() ) {
1470
  $meta_query = array( array(
1471
  'key' => '_bbp_forum_id',
1472
  'value' => $forum_id,
 
1473
  'compare' => '='
1474
  ) );
1475
  }
@@ -1500,11 +1501,10 @@ function bbp_request_feed_trap( $query_vars = array() ) {
1500
  'author' => 0,
1501
  'feed' => true,
1502
  'post_type' => bbp_get_topic_post_type(),
1503
- 'post_parent' => 'any',
1504
  'post_status' => join( ',', array( bbp_get_public_status_id(), bbp_get_closed_status_id() ) ),
1505
  'posts_per_page' => bbp_get_topics_per_rss_page(),
1506
- 'order' => 'DESC',
1507
- 'meta_query' => $meta_query
1508
  );
1509
 
1510
  // Output the feed
@@ -1549,7 +1549,7 @@ function bbp_request_feed_trap( $query_vars = array() ) {
1549
  ) );
1550
 
1551
  // Output the feed
1552
- bbp_display_replies_feed_rss2();
1553
 
1554
  // All topics
1555
  } else {
1470
  $meta_query = array( array(
1471
  'key' => '_bbp_forum_id',
1472
  'value' => $forum_id,
1473
+ 'type' => 'numeric',
1474
  'compare' => '='
1475
  ) );
1476
  }
1501
  'author' => 0,
1502
  'feed' => true,
1503
  'post_type' => bbp_get_topic_post_type(),
1504
+ 'post_parent' => $forum_id,
1505
  'post_status' => join( ',', array( bbp_get_public_status_id(), bbp_get_closed_status_id() ) ),
1506
  'posts_per_page' => bbp_get_topics_per_rss_page(),
1507
+ 'order' => 'DESC'
 
1508
  );
1509
 
1510
  // Output the feed
1549
  ) );
1550
 
1551
  // Output the feed
1552
+ bbp_display_replies_feed_rss2( array( 'feed' => true ) );
1553
 
1554
  // All topics
1555
  } else {
bbp-includes/bbp-core-actions.php CHANGED
@@ -52,6 +52,7 @@ add_action( 'set_current_user', 'bbp_setup_current_user', 10 );
52
  add_action( 'setup_theme', 'bbp_setup_theme', 10 );
53
  add_action( 'after_setup_theme', 'bbp_after_setup_theme', 10 );
54
  add_action( 'template_redirect', 'bbp_template_redirect', 10 );
 
55
 
56
  /**
57
  * bbp_loaded - Attached to 'plugins_loaded' above
@@ -255,6 +256,9 @@ add_action( 'bbp_template_redirect', 'bbp_check_topic_edit', 10 );
255
  add_action( 'bbp_template_redirect', 'bbp_check_reply_edit', 10 );
256
  add_action( 'bbp_template_redirect', 'bbp_check_topic_tag_edit', 10 );
257
 
 
 
 
258
  /**
259
  * Requires and creates the BuddyPress extension, and adds component creation
260
  * action to bp_init hook. @see bbp_setup_buddypress_component()
@@ -490,6 +494,16 @@ function bbp_add_rewrite_tags() {
490
  do_action ( 'bbp_add_rewrite_tags' );
491
  }
492
 
 
 
 
 
 
 
 
 
 
 
493
  /** Final Action **************************************************************/
494
 
495
  /**
52
  add_action( 'setup_theme', 'bbp_setup_theme', 10 );
53
  add_action( 'after_setup_theme', 'bbp_after_setup_theme', 10 );
54
  add_action( 'template_redirect', 'bbp_template_redirect', 10 );
55
+ add_action( 'login_form_login', 'bbp_login_form_login', 10 );
56
 
57
  /**
58
  * bbp_loaded - Attached to 'plugins_loaded' above
256
  add_action( 'bbp_template_redirect', 'bbp_check_reply_edit', 10 );
257
  add_action( 'bbp_template_redirect', 'bbp_check_topic_tag_edit', 10 );
258
 
259
+ // Maybe convert the users password
260
+ add_action( 'bbp_login_form_login', 'bbp_user_maybe_convert_pass' );
261
+
262
  /**
263
  * Requires and creates the BuddyPress extension, and adds component creation
264
  * action to bp_init hook. @see bbp_setup_buddypress_component()
494
  do_action ( 'bbp_add_rewrite_tags' );
495
  }
496
 
497
+ /**
498
+ * Add the bbPress-specific login forum action
499
+ *
500
+ * @since bbPress (r2753)
501
+ * @uses do_action() Calls 'bbp_login_form_login'
502
+ */
503
+ function bbp_login_form_login() {
504
+ do_action ( 'bbp_login_form_login' );
505
+ }
506
+
507
  /** Final Action **************************************************************/
508
 
509
  /**
bbp-includes/bbp-core-caps.php CHANGED
@@ -187,7 +187,7 @@ function bbp_map_meta_caps( $caps, $cap, $user_id, $args ) {
187
  break;
188
 
189
  /** Publishing ********************************************************/
190
-
191
  case 'publish_forums' :
192
  case 'publish_topics' :
193
  case 'publish_replies' :
@@ -485,7 +485,7 @@ function bbp_get_caps_for_role( $role = '' ) {
485
 
486
  // bbPress Participant Role
487
  case bbp_get_participant_role() :
488
-
489
  // Any other role
490
  default :
491
 
@@ -654,7 +654,7 @@ function bbp_global_access_role_mask() {
654
 
655
  /**
656
  * Can the current user see a specific UI element?
657
- *
658
  * Used when registering post-types and taxonomies to decide if 'show_ui' should
659
  * be set to true or false. Also used for fine-grained control over which admin
660
  * sections are visible under what conditions.
187
  break;
188
 
189
  /** Publishing ********************************************************/
190
+
191
  case 'publish_forums' :
192
  case 'publish_topics' :
193
  case 'publish_replies' :
485
 
486
  // bbPress Participant Role
487
  case bbp_get_participant_role() :
488
+
489
  // Any other role
490
  default :
491
 
654
 
655
  /**
656
  * Can the current user see a specific UI element?
657
+ *
658
  * Used when registering post-types and taxonomies to decide if 'show_ui' should
659
  * be set to true or false. Also used for fine-grained control over which admin
660
  * sections are visible under what conditions.
bbp-includes/bbp-core-filters.php CHANGED
@@ -200,6 +200,9 @@ add_filter( 'bbp_pre_anonymous_post_author_website', 'wp_strip_all_tags', 10 )
200
  add_filter( 'bbp_pre_anonymous_post_author_website', 'esc_url_raw', 10 );
201
  add_filter( 'bbp_pre_anonymous_post_author_website', 'wp_filter_kses', 10 );
202
 
 
 
 
203
  /** Functions *****************************************************************/
204
 
205
  /**
200
  add_filter( 'bbp_pre_anonymous_post_author_website', 'esc_url_raw', 10 );
201
  add_filter( 'bbp_pre_anonymous_post_author_website', 'wp_filter_kses', 10 );
202
 
203
+ // Queries
204
+ add_filter( 'posts_request', '_bbp_has_replies_where', 10, 2 );
205
+
206
  /** Functions *****************************************************************/
207
 
208
  /**
bbp-includes/bbp-core-options.php CHANGED
@@ -29,31 +29,31 @@ function bbp_get_default_options() {
29
 
30
  /** Settings **********************************************************/
31
 
32
- '_bbp_edit_lock' => '5', // Lock post editing after 5 minutes
33
- '_bbp_throttle_time' => '10', // Throttle post time to 10 seconds
34
- '_bbp_enable_favorites' => true, // Favorites
35
- '_bbp_enable_subscriptions' => true, // Subscriptions
36
- '_bbp_allow_anonymous' => false, // Allow anonymous posting
37
- '_bbp_allow_global_access' => false, // Users from all sites can post
38
- '_bbp_use_wp_editor' => true, // Use the WordPress editor if available
39
- '_bbp_use_autoembed' => false, // Allow oEmbed in topics and replies
40
  '_bbp_theme_package_id' => 'default', // The ID for the current theme packag.
41
 
42
  /** Per Page **********************************************************/
43
 
44
- '_bbp_topics_per_page' => '15', // Topics per page
45
- '_bbp_replies_per_page' => '15', // Replies per page
46
- '_bbp_forums_per_page' => '50', // Forums per page
47
- '_bbp_topics_per_rss_page' => '25', // Topics per RSS page
48
- '_bbp_replies_per_rss_page' => '25', // Replies per RSS page
49
 
50
  /** Page For **********************************************************/
51
 
52
- '_bbp_page_for_forums' => '0', // Page for forums
53
- '_bbp_page_for_topics' => '0', // Page for forums
54
- '_bbp_page_for_login' => '0', // Page for login
55
- '_bbp_page_for_register' => '0', // Page for register
56
- '_bbp_page_for_lost_pass' => '0', // Page for lost-pass
57
 
58
  /** Archive Slugs *****************************************************/
59
 
@@ -62,7 +62,7 @@ function bbp_get_default_options() {
62
 
63
  /** Single Slugs ******************************************************/
64
 
65
- '_bbp_include_root' => true, // Include forum-archive before single slugs
66
  '_bbp_forum_slug' => 'forum', // Forum slug
67
  '_bbp_topic_slug' => 'topic', // Topic slug
68
  '_bbp_reply_slug' => 'reply', // Reply slug
@@ -75,7 +75,7 @@ function bbp_get_default_options() {
75
 
76
  /** Topics ************************************************************/
77
 
78
- '_bbp_title_max_length' => '80', // Title Max Length
79
  '_bbp_super_sticky_topics' => '', // Super stickies
80
 
81
  /** Forums ************************************************************/
@@ -85,12 +85,12 @@ function bbp_get_default_options() {
85
 
86
  /** BuddyPress ********************************************************/
87
 
88
- '_bbp_enable_group_forums' => true, // Enable BuddyPress Group Extension
89
- '_bbp_group_forums_root_id' => '0', // Group Forums parent forum id
90
 
91
  /** Akismet ***********************************************************/
92
 
93
- '_bbp_enable_akismet' => true // Users from all sites can post
94
 
95
  ) );
96
  }
@@ -164,14 +164,14 @@ function bbp_setup_option_filters() {
164
  * @param bool $value Optional. Default value false
165
  * @return mixed false if not overloaded, mixed if set
166
  */
167
- function bbp_pre_get_option( $value = false ) {
168
  $bbp = bbpress();
169
 
170
  // Remove the filter prefix
171
  $option = str_replace( 'pre_option_', '', current_filter() );
172
 
173
  // Check the options global for preset value
174
- if ( !empty( $bbp->options[$option] ) )
175
  $value = $bbp->options[$option];
176
 
177
  // Always return a value, even if false
@@ -188,7 +188,7 @@ function bbp_pre_get_option( $value = false ) {
188
  * @uses get_option() To get the favorites option
189
  * @return bool Is favorites enabled or not
190
  */
191
- function bbp_is_favorites_active( $default = true ) {
192
  return (bool) apply_filters( 'bbp_is_favorites_active', (bool) get_option( '_bbp_enable_favorites', $default ) );
193
  }
194
 
@@ -200,7 +200,7 @@ function bbp_is_favorites_active( $default = true ) {
200
  * @uses get_option() To get the subscriptions option
201
  * @return bool Is subscription enabled or not
202
  */
203
- function bbp_is_subscriptions_active( $default = true ) {
204
  return (bool) apply_filters( 'bbp_is_subscriptions_active', (bool) get_option( '_bbp_enable_subscriptions', $default ) );
205
  }
206
 
@@ -212,7 +212,7 @@ function bbp_is_subscriptions_active( $default = true ) {
212
  * @uses get_option() To get the allow revisions
213
  * @return bool Are revisions allowed?
214
  */
215
- function bbp_allow_revisions( $default = true ) {
216
  return (bool) apply_filters( 'bbp_allow_revisions', (bool) get_option( '_bbp_allow_revisions', $default ) );
217
  }
218
 
@@ -224,7 +224,7 @@ function bbp_allow_revisions( $default = true ) {
224
  * @uses get_option() To get the allow anonymous option
225
  * @return bool Is anonymous posting allowed?
226
  */
227
- function bbp_allow_anonymous( $default = false ) {
228
  return apply_filters( 'bbp_allow_anonymous', (bool) get_option( '_bbp_allow_anonymous', $default ) );
229
  }
230
 
@@ -236,7 +236,7 @@ function bbp_allow_anonymous( $default = false ) {
236
  * @uses get_option() To get the global access option
237
  * @return bool Is global access allowed?
238
  */
239
- function bbp_allow_global_access( $default = false ) {
240
  return (bool) apply_filters( 'bbp_allow_global_access', (bool) get_option( '_bbp_allow_global_access', $default ) );
241
  }
242
 
@@ -248,7 +248,7 @@ function bbp_allow_global_access( $default = false ) {
248
  * @uses get_option() To get the WP editor option
249
  * @return bool Use WP editor?
250
  */
251
- function bbp_use_wp_editor( $default = true ) {
252
  return (bool) apply_filters( 'bbp_use_wp_editor', (bool) get_option( '_bbp_use_wp_editor', $default ) );
253
  }
254
 
@@ -260,7 +260,7 @@ function bbp_use_wp_editor( $default = true ) {
260
  * @uses get_option() To get the oEmbed option
261
  * @return bool Use oEmbed?
262
  */
263
- function bbp_use_autoembed( $default = true ) {
264
  return (bool) apply_filters( 'bbp_use_autoembed', (bool) get_option( '_bbp_use_autoembed', $default ) );
265
  }
266
 
@@ -282,7 +282,7 @@ function bbp_get_theme_package_id( $default = 'default' ) {
282
  * @since bbPress (r3246)
283
  * @param $default bool Optional. Default value 80
284
  */
285
- function bbp_title_max_length( $default = '80' ) {
286
  echo bbp_get_title_max_length( $default );
287
  }
288
  /**
@@ -293,7 +293,7 @@ function bbp_title_max_length( $default = '80' ) {
293
  * @uses get_option() To get the maximum title length
294
  * @return int Is anonymous posting allowed?
295
  */
296
- function bbp_get_title_max_length( $default = '80' ) {
297
  return (int) apply_filters( 'bbp_get_title_max_length', (int) get_option( '_bbp_title_max_length', $default ) );
298
  }
299
 
@@ -301,9 +301,9 @@ function bbp_title_max_length( $default = '80' ) {
301
  * Output the grop forums root parent forum id
302
  *
303
  * @since bbPress (r3575)
304
- * @param $default bool Optional. Default value
305
  */
306
- function bbp_group_forums_root_id( $default = '0' ) {
307
  echo bbp_get_group_forums_root_id( $default );
308
  }
309
  /**
@@ -311,10 +311,10 @@ function bbp_group_forums_root_id( $default = '0' ) {
311
  *
312
  * @since bbPress (r3575)
313
  * @param $default bool Optional. Default value 0
314
- * @uses get_option() To get the maximum title length
315
- * @return int Is anonymous posting allowed?
316
  */
317
- function bbp_get_group_forums_root_id( $default = '0' ) {
318
  return (int) apply_filters( 'bbp_get_group_forums_root_id', (int) get_option( '_bbp_group_forums_root_id', $default ) );
319
  }
320
 
@@ -326,7 +326,7 @@ function bbp_group_forums_root_id( $default = '0' ) {
326
  * @uses get_option() To get the group forums option
327
  * @return bool Is group forums enabled or not
328
  */
329
- function bbp_is_group_forums_active( $default = true ) {
330
  return (bool) apply_filters( 'bbp_is_group_forums_active', (bool) get_option( '_bbp_enable_group_forums', $default ) );
331
  }
332
 
@@ -338,7 +338,7 @@ function bbp_is_group_forums_active( $default = true ) {
338
  * @uses get_option() To get the Akismet option
339
  * @return bool Is Akismet enabled or not
340
  */
341
- function bbp_is_akismet_active( $default = true ) {
342
  return (bool) apply_filters( 'bbp_is_akismet_active', (bool) get_option( '_bbp_enable_akismet', $default ) );
343
  }
344
 
@@ -358,9 +358,9 @@ function bbp_get_root_slug( $default = 'forums' ) {
358
  * Are we including the root slug in front of forum pages?
359
  *
360
  * @since bbPress (r3759)
361
- * @return string
362
  */
363
- function bbp_include_root_slug( $default = true ) {
364
  return (bool) apply_filters( 'bbp_include_root_slug', (bool) get_option( '_bbp_include_root', $default ) );
365
  }
366
 
29
 
30
  /** Settings **********************************************************/
31
 
32
+ '_bbp_edit_lock' => 5, // Lock post editing after 5 minutes
33
+ '_bbp_throttle_time' => 10, // Throttle post time to 10 seconds
34
+ '_bbp_enable_favorites' => 1, // Favorites
35
+ '_bbp_enable_subscriptions' => 1, // Subscriptions
36
+ '_bbp_allow_anonymous' => 0, // Allow anonymous posting
37
+ '_bbp_allow_global_access' => 0, // Users from all sites can post
38
+ '_bbp_use_wp_editor' => 1, // Use the WordPress editor if available
39
+ '_bbp_use_autoembed' => 0, // Allow oEmbed in topics and replies
40
  '_bbp_theme_package_id' => 'default', // The ID for the current theme packag.
41
 
42
  /** Per Page **********************************************************/
43
 
44
+ '_bbp_topics_per_page' => 15, // Topics per page
45
+ '_bbp_replies_per_page' => 15, // Replies per page
46
+ '_bbp_forums_per_page' => 50, // Forums per page
47
+ '_bbp_topics_per_rss_page' => 25, // Topics per RSS page
48
+ '_bbp_replies_per_rss_page' => 25, // Replies per RSS page
49
 
50
  /** Page For **********************************************************/
51
 
52
+ '_bbp_page_for_forums' => 0, // Page for forums
53
+ '_bbp_page_for_topics' => 0, // Page for forums
54
+ '_bbp_page_for_login' => 0, // Page for login
55
+ '_bbp_page_for_register' => 0, // Page for register
56
+ '_bbp_page_for_lost_pass' => 0, // Page for lost-pass
57
 
58
  /** Archive Slugs *****************************************************/
59
 
62
 
63
  /** Single Slugs ******************************************************/
64
 
65
+ '_bbp_include_root' => 1, // Include forum-archive before single slugs
66
  '_bbp_forum_slug' => 'forum', // Forum slug
67
  '_bbp_topic_slug' => 'topic', // Topic slug
68
  '_bbp_reply_slug' => 'reply', // Reply slug
75
 
76
  /** Topics ************************************************************/
77
 
78
+ '_bbp_title_max_length' => 80, // Title Max Length
79
  '_bbp_super_sticky_topics' => '', // Super stickies
80
 
81
  /** Forums ************************************************************/
85
 
86
  /** BuddyPress ********************************************************/
87
 
88
+ '_bbp_enable_group_forums' => 1, // Enable BuddyPress Group Extension
89
+ '_bbp_group_forums_root_id' => 0, // Group Forums parent forum id
90
 
91
  /** Akismet ***********************************************************/
92
 
93
+ '_bbp_enable_akismet' => 1 // Users from all sites can post
94
 
95
  ) );
96
  }
164
  * @param bool $value Optional. Default value false
165
  * @return mixed false if not overloaded, mixed if set
166
  */
167
+ function bbp_pre_get_option( $value = '' ) {
168
  $bbp = bbpress();
169
 
170
  // Remove the filter prefix
171
  $option = str_replace( 'pre_option_', '', current_filter() );
172
 
173
  // Check the options global for preset value
174
+ if ( isset( $bbp->options[$option] ) )
175
  $value = $bbp->options[$option];
176
 
177
  // Always return a value, even if false
188
  * @uses get_option() To get the favorites option
189
  * @return bool Is favorites enabled or not
190
  */
191
+ function bbp_is_favorites_active( $default = 1 ) {
192
  return (bool) apply_filters( 'bbp_is_favorites_active', (bool) get_option( '_bbp_enable_favorites', $default ) );
193
  }
194
 
200
  * @uses get_option() To get the subscriptions option
201
  * @return bool Is subscription enabled or not
202
  */
203
+ function bbp_is_subscriptions_active( $default = 1 ) {
204
  return (bool) apply_filters( 'bbp_is_subscriptions_active', (bool) get_option( '_bbp_enable_subscriptions', $default ) );
205
  }
206
 
212
  * @uses get_option() To get the allow revisions
213
  * @return bool Are revisions allowed?
214
  */
215
+ function bbp_allow_revisions( $default = 1 ) {
216
  return (bool) apply_filters( 'bbp_allow_revisions', (bool) get_option( '_bbp_allow_revisions', $default ) );
217
  }
218
 
224
  * @uses get_option() To get the allow anonymous option
225
  * @return bool Is anonymous posting allowed?
226
  */
227
+ function bbp_allow_anonymous( $default = 0 ) {
228
  return apply_filters( 'bbp_allow_anonymous', (bool) get_option( '_bbp_allow_anonymous', $default ) );
229
  }
230
 
236
  * @uses get_option() To get the global access option
237
  * @return bool Is global access allowed?
238
  */
239
+ function bbp_allow_global_access( $default = 0 ) {
240
  return (bool) apply_filters( 'bbp_allow_global_access', (bool) get_option( '_bbp_allow_global_access', $default ) );
241
  }
242
 
248
  * @uses get_option() To get the WP editor option
249
  * @return bool Use WP editor?
250
  */
251
+ function bbp_use_wp_editor( $default = 1 ) {
252
  return (bool) apply_filters( 'bbp_use_wp_editor', (bool) get_option( '_bbp_use_wp_editor', $default ) );
253
  }
254
 
260
  * @uses get_option() To get the oEmbed option
261
  * @return bool Use oEmbed?
262
  */
263
+ function bbp_use_autoembed( $default = 1 ) {
264
  return (bool) apply_filters( 'bbp_use_autoembed', (bool) get_option( '_bbp_use_autoembed', $default ) );
265
  }
266
 
282
  * @since bbPress (r3246)
283
  * @param $default bool Optional. Default value 80
284
  */
285
+ function bbp_title_max_length( $default = 80 ) {
286
  echo bbp_get_title_max_length( $default );
287
  }
288
  /**
293
  * @uses get_option() To get the maximum title length
294
  * @return int Is anonymous posting allowed?
295
  */
296
+ function bbp_get_title_max_length( $default = 80 ) {
297
  return (int) apply_filters( 'bbp_get_title_max_length', (int) get_option( '_bbp_title_max_length', $default ) );
298
  }
299
 
301
  * Output the grop forums root parent forum id
302
  *
303
  * @since bbPress (r3575)
304
+ * @param $default int Optional. Default value
305
  */
306
+ function bbp_group_forums_root_id( $default = 0 ) {
307
  echo bbp_get_group_forums_root_id( $default );
308
  }
309
  /**
311
  *
312
  * @since bbPress (r3575)
313
  * @param $default bool Optional. Default value 0
314
+ * @uses get_option() To get the root group forum ID
315
+ * @return int The post ID for the root forum
316
  */
317
+ function bbp_get_group_forums_root_id( $default = 0 ) {
318
  return (int) apply_filters( 'bbp_get_group_forums_root_id', (int) get_option( '_bbp_group_forums_root_id', $default ) );
319
  }
320
 
326
  * @uses get_option() To get the group forums option
327
  * @return bool Is group forums enabled or not
328
  */
329
+ function bbp_is_group_forums_active( $default = 1 ) {
330
  return (bool) apply_filters( 'bbp_is_group_forums_active', (bool) get_option( '_bbp_enable_group_forums', $default ) );
331
  }
332
 
338
  * @uses get_option() To get the Akismet option
339
  * @return bool Is Akismet enabled or not
340
  */
341
+ function bbp_is_akismet_active( $default = 1 ) {
342
  return (bool) apply_filters( 'bbp_is_akismet_active', (bool) get_option( '_bbp_enable_akismet', $default ) );
343
  }
344
 
358
  * Are we including the root slug in front of forum pages?
359
  *
360
  * @since bbPress (r3759)
361
+ * @return bool
362
  */
363
+ function bbp_include_root_slug( $default = 1 ) {
364
  return (bool) apply_filters( 'bbp_include_root_slug', (bool) get_option( '_bbp_include_root', $default ) );
365
  }
366
 
bbp-includes/bbp-core-shortcodes.php CHANGED
@@ -104,7 +104,7 @@ class BBP_Shortcodes {
104
  // Register
105
  'bbp-register' => array( $this, 'display_register' ),
106
 
107
- // LOst Password
108
  'bbp-lost-pass' => array( $this, 'display_lost_pass' ),
109
 
110
  ) );
@@ -376,11 +376,6 @@ class BBP_Shortcodes {
376
  $bbp->topic_query->post = get_post( $topic_id );
377
  }
378
 
379
- // Filter the query
380
- if ( ! bbp_is_single_topic() ) {
381
- add_filter( 'bbp_before_has_replies_parse_args', array( $this, 'display_topic_query' ) );
382
- }
383
-
384
  // Start output buffer
385
  $this->start( 'bbp_single_topic' );
386
 
@@ -751,24 +746,6 @@ class BBP_Shortcodes {
751
  return $args;
752
  }
753
 
754
- /**
755
- * Filter the query for the topic index
756
- *
757
- * @since bbPress (r3637)
758
- *
759
- * @param array $args
760
- * @return array
761
- */
762
- public function display_topic_query( $args = array() ) {
763
- $args['meta_query'] = array( array(
764
- 'key' => '_bbp_topic_id',
765
- 'value' => bbpress()->current_topic_id,
766
- 'compare' => '='
767
- ) );
768
-
769
- return $args;
770
- }
771
-
772
  /**
773
  * Filter the query for topic tags
774
  *
104
  // Register
105
  'bbp-register' => array( $this, 'display_register' ),
106
 
107
+ // Lost Password
108
  'bbp-lost-pass' => array( $this, 'display_lost_pass' ),
109
 
110
  ) );
376
  $bbp->topic_query->post = get_post( $topic_id );
377
  }
378
 
 
 
 
 
 
379
  // Start output buffer
380
  $this->start( 'bbp_single_topic' );
381
 
746
  return $args;
747
  }
748
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
749
  /**
750
  * Filter the query for topic tags
751
  *
bbp-includes/bbp-forum-functions.php CHANGED
@@ -1568,8 +1568,23 @@ function bbp_get_private_forum_ids() {
1568
  function bbp_exclude_forum_ids( $type = 'string' ) {
1569
 
1570
  // Setup arrays
1571
- $retval = $private = $hidden = $meta_query = $forum_ids = array();
1572
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1573
  // Exclude for everyone but super admins
1574
  if ( !is_super_admin() ) {
1575
 
@@ -1604,6 +1619,7 @@ function bbp_exclude_forum_ids( $type = 'string' ) {
1604
  $retval = array(
1605
  'key' => '_bbp_forum_id',
1606
  'value' => implode( ',', $forum_ids ),
 
1607
  'compare' => ( 1 < count( $forum_ids ) ) ? 'NOT IN' : '!='
1608
  );
1609
  break;
@@ -1682,9 +1698,6 @@ function bbp_pre_get_posts_exclude_forums( $posts_query ) {
1682
  // Replies
1683
  case bbp_get_reply_post_type() :
1684
 
1685
- // Topics and replies
1686
- case array( bbp_get_topic_post_type(), bbp_get_reply_post_type() ) :
1687
-
1688
  // Get forums to exclude
1689
  $forum_ids = bbp_exclude_forum_ids( 'meta_query' );
1690
 
@@ -1948,20 +1961,15 @@ function bbp_delete_forum_topics( $forum_id = 0 ) {
1948
 
1949
  // Validate forum ID
1950
  $forum_id = bbp_get_forum_id( $forum_id );
1951
-
1952
  if ( empty( $forum_id ) )
1953
  return;
1954
 
1955
  // Forum is being permanently deleted, so its topics gotta go too
1956
  if ( bbp_has_topics( array(
1957
  'post_type' => bbp_get_topic_post_type(),
 
1958
  'post_status' => 'any',
1959
- 'posts_per_page' => -1,
1960
- 'meta_query' => array( array(
1961
- 'key' => '_bbp_forum_id',
1962
- 'value' => $forum_id,
1963
- 'compare' => '='
1964
- ) )
1965
  ) ) ) {
1966
  while ( bbp_topics() ) {
1967
  bbp_the_topic();
@@ -1992,7 +2000,6 @@ function bbp_trash_forum_topics( $forum_id = 0 ) {
1992
 
1993
  // Validate forum ID
1994
  $forum_id = bbp_get_forum_id( $forum_id );
1995
-
1996
  if ( empty( $forum_id ) )
1997
  return;
1998
 
@@ -2006,13 +2013,9 @@ function bbp_trash_forum_topics( $forum_id = 0 ) {
2006
  // Forum is being trashed, so its topics are trashed too
2007
  if ( bbp_has_topics( array(
2008
  'post_type' => bbp_get_topic_post_type(),
 
2009
  'post_status' => $post_stati,
2010
- 'posts_per_page' => -1,
2011
- 'meta_query' => array( array(
2012
- 'key' => '_bbp_forum_id',
2013
- 'value' => $forum_id,
2014
- 'compare' => '='
2015
- ) )
2016
  ) ) ) {
2017
 
2018
  // Prevent debug notices
1568
  function bbp_exclude_forum_ids( $type = 'string' ) {
1569
 
1570
  // Setup arrays
1571
+ $private = $hidden = $meta_query = $forum_ids = array();
1572
 
1573
+ // Default return value
1574
+ switch ( $type ) {
1575
+ case 'string' :
1576
+ $retval = '';
1577
+ break;
1578
+
1579
+ case 'array' :
1580
+ $retval = array();
1581
+ break;
1582
+
1583
+ case 'meta_query' :
1584
+ $retval = array( array() ) ;
1585
+ break;
1586
+ }
1587
+
1588
  // Exclude for everyone but super admins
1589
  if ( !is_super_admin() ) {
1590
 
1619
  $retval = array(
1620
  'key' => '_bbp_forum_id',
1621
  'value' => implode( ',', $forum_ids ),
1622
+ 'type' => 'numeric',
1623
  'compare' => ( 1 < count( $forum_ids ) ) ? 'NOT IN' : '!='
1624
  );
1625
  break;
1698
  // Replies
1699
  case bbp_get_reply_post_type() :
1700
 
 
 
 
1701
  // Get forums to exclude
1702
  $forum_ids = bbp_exclude_forum_ids( 'meta_query' );
1703
 
1961
 
1962
  // Validate forum ID
1963
  $forum_id = bbp_get_forum_id( $forum_id );
 
1964
  if ( empty( $forum_id ) )
1965
  return;
1966
 
1967
  // Forum is being permanently deleted, so its topics gotta go too
1968
  if ( bbp_has_topics( array(
1969
  'post_type' => bbp_get_topic_post_type(),
1970
+ 'post_parent' => $forum_id,
1971
  'post_status' => 'any',
1972
+ 'posts_per_page' => -1
 
 
 
 
 
1973
  ) ) ) {
1974
  while ( bbp_topics() ) {
1975
  bbp_the_topic();
2000
 
2001
  // Validate forum ID
2002
  $forum_id = bbp_get_forum_id( $forum_id );
 
2003
  if ( empty( $forum_id ) )
2004
  return;
2005
 
2013
  // Forum is being trashed, so its topics are trashed too
2014
  if ( bbp_has_topics( array(
2015
  'post_type' => bbp_get_topic_post_type(),
2016
+ 'post_parent' => $forum_id,
2017
  'post_status' => $post_stati,
2018
+ 'posts_per_page' => -1
 
 
 
 
 
2019
  ) ) ) {
2020
 
2021
  // Prevent debug notices
bbp-includes/bbp-reply-functions.php CHANGED
@@ -1365,6 +1365,50 @@ function bbp_reply_content_autoembed() {
1365
  }
1366
  }
1367
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1368
  /** Feeds *********************************************************************/
1369
 
1370
  /**
1365
  }
1366
  }
1367
 
1368
+ /** Filters *******************************************************************/
1369
+
1370
+ /**
1371
+ * Used by bbp_has_replies() to add the topic to the posts
1372
+ *
1373
+ * This function filters the 'post_where' of the WP_Query, and changes the query
1374
+ * to include both the topic AND its children in the same loop.
1375
+ *
1376
+ * @since bbPress (r4058)
1377
+ *
1378
+ * @param string $where
1379
+ * @return string
1380
+ */
1381
+ function _bbp_has_replies_where( $where, $query ) {
1382
+
1383
+ // Bail if no post_parent to replace
1384
+ if ( ! is_numeric( $query->get( 'post_parent' ) ) )
1385
+ return $where;
1386
+
1387
+ // Bail if not a topic and reply query
1388
+ if ( array( bbp_get_topic_post_type(), bbp_get_reply_post_type() ) != $query->get( 'post_type' ) )
1389
+ return $where;
1390
+
1391
+ global $wpdb;
1392
+
1393
+ // Table name for posts
1394
+ $table_name = $wpdb->prefix . 'posts';
1395
+
1396
+ // Get the topic ID
1397
+ $topic_id = bbp_get_topic_id();
1398
+
1399
+ // The text we're searching for
1400
+ $search = "WHERE 1=1 AND {$table_name}.post_parent = {$topic_id}";
1401
+
1402
+ // The text to replace it with
1403
+ $replace = "FORCE INDEX (PRIMARY, post_parent) WHERE 1=1 AND ({$table_name}.ID = {$topic_id} OR {$table_name}.post_parent = {$topic_id})";
1404
+
1405
+ // Try to replace the search text with the replacement
1406
+ if ( $new_where = str_replace( $search, $replace, $where ) )
1407
+ $where = $new_where;
1408
+
1409
+ return $where;
1410
+ }
1411
+
1412
  /** Feeds *********************************************************************/
1413
 
1414
  /**
bbp-includes/bbp-reply-template.php CHANGED
@@ -66,35 +66,29 @@ function bbp_reply_post_type() {
66
  function bbp_has_replies( $args = '' ) {
67
  global $wp_rewrite;
68
 
69
- // Default status
70
- $default_status = join( ',', array( bbp_get_public_status_id(), bbp_get_closed_status_id() ) );
71
-
72
- // Skip topic_id if in the replies widget query
73
- $parent_args['meta_query'] = array( array(
74
- 'key' => '_bbp_topic_id',
75
- 'value' => bbp_get_topic_id(),
76
- 'compare' => '='
77
- ) );
78
-
79
  // What are the default allowed statuses (based on user caps)
80
  if ( bbp_get_view_all( 'edit_others_replies' ) )
81
- $default_status = join( ',', array( bbp_get_public_status_id(), bbp_get_closed_status_id(), bbp_get_spam_status_id(), bbp_get_trash_status_id() ) );
 
 
 
 
 
 
 
82
 
83
  // Default query args
84
  $default = array(
85
- 'post_type' => bbp_show_lead_topic() ? bbp_get_reply_post_type() : array( bbp_get_topic_post_type(), bbp_get_reply_post_type() ),
86
- 'orderby' => 'date', // 'author', 'date', 'title', 'modified', 'parent', rand',
87
- 'order' => 'ASC', // 'ASC', 'DESC'
88
- 'posts_per_page' => bbp_get_replies_per_page(), // Max number
89
- 'paged' => bbp_get_paged(), // Page Number
90
- 's' => !empty( $_REQUEST['rs'] ) ? $_REQUEST['rs'] : '', // Reply Search
91
- 'post_status' => $default_status // Post Status
 
92
  );
93
 
94
- // Merge the default args and parent args together
95
- if ( !empty( $parent_args ) )
96
- $default = array_merge( $parent_args, $default );
97
-
98
  // Set up topic variables
99
  $bbp_r = bbp_parse_args( $args, $default, 'has_replies' );
100
 
66
  function bbp_has_replies( $args = '' ) {
67
  global $wp_rewrite;
68
 
 
 
 
 
 
 
 
 
 
 
69
  // What are the default allowed statuses (based on user caps)
70
  if ( bbp_get_view_all( 'edit_others_replies' ) )
71
+ $default_post_status = join( ',', array( bbp_get_public_status_id(), bbp_get_closed_status_id(), bbp_get_spam_status_id(), bbp_get_trash_status_id() ) );
72
+ else
73
+ $default_post_status = join( ',', array( bbp_get_public_status_id(), bbp_get_closed_status_id() ) );
74
+
75
+ // Maybe Search
76
+ $default_reply_search = !empty( $_REQUEST['rs'] ) ? $_REQUEST['rs'] : false;
77
+ $default_post_parent = ( bbp_is_single_topic() ) ? bbp_get_topic_id() : 'any';
78
+ $default_post_type = ( bbp_is_single_topic() && bbp_show_lead_topic() ) ? bbp_get_reply_post_type() : array( bbp_get_topic_post_type(), bbp_get_reply_post_type() );
79
 
80
  // Default query args
81
  $default = array(
82
+ 'post_type' => $default_post_type, // Only replies
83
+ 'post_parent' => $default_post_parent, // Of this topic
84
+ 'post_status' => $default_post_status, // Of this status
85
+ 'posts_per_page' => bbp_get_replies_per_page(), // This many
86
+ 'paged' => bbp_get_paged(), // On this page
87
+ 'orderby' => 'date', // Sorted by date
88
+ 'order' => 'ASC', // Oldest to newest
89
+ 's' => $default_reply_search, // Maybe search
90
  );
91
 
 
 
 
 
92
  // Set up topic variables
93
  $bbp_r = bbp_parse_args( $args, $default, 'has_replies' );
94
 
bbp-includes/bbp-topic-functions.php CHANGED
@@ -2830,6 +2830,7 @@ function bbp_delete_topic( $topic_id = 0 ) {
2830
  do_action( 'bbp_delete_topic', $topic_id );
2831
 
2832
  // Topic is being permanently deleted, so its replies gotta go too
 
2833
  if ( bbp_has_replies( array(
2834
  'post_type' => bbp_get_reply_post_type(),
2835
  'post_status' => 'any',
@@ -2837,6 +2838,7 @@ function bbp_delete_topic( $topic_id = 0 ) {
2837
  'meta_query' => array( array(
2838
  'key' => '_bbp_topic_id',
2839
  'value' => $topic_id,
 
2840
  'compare' => '='
2841
  ) )
2842
  ) ) ) {
@@ -2874,6 +2876,7 @@ function bbp_trash_topic( $topic_id = 0 ) {
2874
  do_action( 'bbp_trash_topic', $topic_id );
2875
 
2876
  // Topic is being trashed, so its replies are trashed too
 
2877
  if ( bbp_has_replies( array(
2878
  'post_type' => bbp_get_reply_post_type(),
2879
  'post_status' => bbp_get_public_status_id(),
@@ -2881,6 +2884,7 @@ function bbp_trash_topic( $topic_id = 0 ) {
2881
  'meta_query' => array( array(
2882
  'key' => '_bbp_topic_id',
2883
  'value' => $topic_id,
 
2884
  'compare' => '='
2885
  ) )
2886
  ) ) ) {
2830
  do_action( 'bbp_delete_topic', $topic_id );
2831
 
2832
  // Topic is being permanently deleted, so its replies gotta go too
2833
+ // @todo remove meta query
2834
  if ( bbp_has_replies( array(
2835
  'post_type' => bbp_get_reply_post_type(),
2836
  'post_status' => 'any',
2838
  'meta_query' => array( array(
2839
  'key' => '_bbp_topic_id',
2840
  'value' => $topic_id,
2841
+ 'type' => 'numeric',
2842
  'compare' => '='
2843
  ) )
2844
  ) ) ) {
2876
  do_action( 'bbp_trash_topic', $topic_id );
2877
 
2878
  // Topic is being trashed, so its replies are trashed too
2879
+ // @todo remove meta query
2880
  if ( bbp_has_replies( array(
2881
  'post_type' => bbp_get_reply_post_type(),
2882
  'post_status' => bbp_get_public_status_id(),
2884
  'meta_query' => array( array(
2885
  'key' => '_bbp_topic_id',
2886
  'value' => $topic_id,
2887
+ 'type' => 'numeric',
2888
  'compare' => '='
2889
  ) )
2890
  ) ) ) {
bbp-includes/bbp-user-functions.php CHANGED
@@ -819,7 +819,7 @@ function bbp_subscriptions_handler() {
819
  // Redirect back from whence we came
820
  if ( bbp_is_subscriptions() ) {
821
  $redirect = bbp_get_subscriptions_permalink( $user_id );
822
- } elseif( bbp_is_single_user() ) {
823
  $redirect = bbp_get_user_profile_url();
824
  } elseif ( is_singular( bbp_get_topic_post_type() ) ) {
825
  $redirect = bbp_get_topic_permalink( $topic_id );
@@ -1436,3 +1436,38 @@ function bbp_check_user_edit() {
1436
  exit();
1437
  }
1438
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
819
  // Redirect back from whence we came
820
  if ( bbp_is_subscriptions() ) {
821
  $redirect = bbp_get_subscriptions_permalink( $user_id );
822
+ } elseif ( bbp_is_single_user() ) {
823
  $redirect = bbp_get_user_profile_url();
824
  } elseif ( is_singular( bbp_get_topic_post_type() ) ) {
825
  $redirect = bbp_get_topic_permalink( $topic_id );
1436
  exit();
1437
  }
1438
  }
1439
+
1440
+ /** Converter *****************************************************************/
1441
+
1442
+ /**
1443
+ * Convert passwords from previous platfrom encryption to WordPress encryption.
1444
+ *
1445
+ * @since bbPress (r3813)
1446
+ * @global WPDB $wpdb
1447
+ */
1448
+ function bbp_user_maybe_convert_pass() {
1449
+
1450
+ // Bail if no username
1451
+ $username = !empty( $_POST['log'] ) ? $_POST['log'] : '';
1452
+ if ( empty( $username ) )
1453
+ return;
1454
+
1455
+ global $wpdb;
1456
+
1457
+ // Bail if no user password to convert
1458
+ $row = $wpdb->get_row( "SELECT * FROM {$wpdb->users} INNER JOIN {$wpdb->usermeta} ON user_id = ID WHERE meta_key = '_bbp_converter_class' AND user_login = '{$username}' LIMIT 1" );
1459
+ if ( empty( $row ) || is_wp_error( $row ) )
1460
+ return;
1461
+
1462
+ // Convert password
1463
+ require_once( bbpress()->admin->admin_dir . 'bbp-converter.php' );
1464
+ require_once( bbpress()->admin->admin_dir . 'converters/' . $row->meta_value . '.php' );
1465
+
1466
+ // Create the converter
1467
+ $converter = bbp_new_converter( $row->meta_value );
1468
+
1469
+ // Try to call the conversion method
1470
+ if ( is_a( $converter, 'BBP_Converter_Base' ) && method_exists( $converter, 'callback_pass' ) ) {
1471
+ $converter->callback_pass( $username, $_POST['pwd'] );
1472
+ }
1473
+ }
bbp-languages/bbpress.pot CHANGED
@@ -2,9 +2,9 @@
2
  # This file is distributed under the same license as the bbPress package.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: bbPress 2.1-rc4\n"
6
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/bbpress\n"
7
- "POT-Creation-Date: 2012-07-02 01:04:39+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=UTF-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
@@ -12,35 +12,35 @@ msgstr ""
12
  "Last-Translator: JOHN JAMES JACOBY <jjj@bbpress.org>\n"
13
  "Language-Team: ENGLISH <jjj@bbpress.org>\n"
14
 
15
- #: bbp-admin/bbp-admin.php:176 bbp-admin/bbp-functions.php:191
16
  #: bbp-admin/bbp-tools.php:34
17
  msgid "Repair Forums"
18
  msgstr ""
19
 
20
- #: bbp-admin/bbp-admin.php:177
21
  msgid "Forum Repair"
22
  msgstr ""
23
 
24
- #: bbp-admin/bbp-admin.php:186 bbp-admin/bbp-functions.php:195
25
  #: bbp-admin/bbp-settings.php:1185
26
  msgid "Import Forums"
27
  msgstr ""
28
 
29
- #: bbp-admin/bbp-admin.php:187
30
  msgid "Forum Import"
31
  msgstr ""
32
 
33
- #: bbp-admin/bbp-admin.php:196 bbp-admin/bbp-functions.php:199
34
  #: bbp-admin/bbp-tools.php:806
35
  msgid "Reset Forums"
36
  msgstr ""
37
 
38
- #: bbp-admin/bbp-admin.php:197
39
  msgid "Forum Reset"
40
  msgstr ""
41
 
42
- #: bbp-admin/bbp-admin.php:211 bbp-admin/bbp-admin.php:212
43
- #: bbp-admin/bbp-admin.php:222 bbp-admin/bbp-admin.php:223
44
  #: bbp-includes/bbp-extend-buddypress.php:834
45
  #: bbp-includes/bbp-extend-buddypress.php:891
46
  #: bbp-includes/bbp-extend-buddypress.php:982
@@ -52,238 +52,237 @@ msgstr ""
52
  msgid "Forums"
53
  msgstr ""
54
 
55
- #: bbp-admin/bbp-admin.php:240 bbp-admin/bbp-admin.php:241
56
- #: bbp-admin/bbp-admin.php:725 bbp-admin/bbp-admin.php:801
57
  msgid "Update Forums"
58
  msgstr ""
59
 
60
- #: bbp-admin/bbp-admin.php:364
61
  msgid "Settings"
62
  msgstr ""
63
 
64
- #: bbp-admin/bbp-admin.php:379
65
  msgid "Right Now in Forums"
66
  msgstr ""
67
 
68
- #: bbp-admin/bbp-admin.php:642
69
  msgid "Green"
70
  msgstr ""
71
 
72
- #: bbp-admin/bbp-admin.php:661 bbp-admin/bbp-admin.php:699
73
  msgid "Update Forum"
74
  msgstr ""
75
 
76
- #: bbp-admin/bbp-admin.php:688 bbp-admin/bbp-admin.php:742
77
  msgid "All done!"
78
  msgstr ""
79
 
80
- #: bbp-admin/bbp-admin.php:689 bbp-admin/bbp-admin.php:743
81
  msgid "Go Back"
82
  msgstr ""
83
 
84
- #: bbp-admin/bbp-admin.php:698
85
  msgid ""
86
  "You can update your forum through this page. Hit the link below to update."
87
  msgstr ""
88
 
89
- #: bbp-admin/bbp-admin.php:770
90
  msgid ""
91
  "Warning! Problem updating %1$s. Your server may not be able to connect to "
92
  "sites running on it. Error message: <em>%2$s</em>"
93
  msgstr ""
94
 
95
- #: bbp-admin/bbp-admin.php:781
96
  msgid ""
97
  "If your browser doesn&#8217;t start loading the next page automatically, "
98
  "click this link:"
99
  msgstr ""
100
 
101
- #: bbp-admin/bbp-admin.php:782
102
  msgid "Next Forums"
103
  msgstr ""
104
 
105
- #: bbp-admin/bbp-admin.php:800
106
  msgid ""
107
  "You can update all the forums on your network through this page. It works by "
108
  "calling the update script of each site automatically. Hit the link below to "
109
  "update."
110
  msgstr ""
111
 
112
- #: bbp-admin/bbp-converter.php:63 bbp-admin/bbp-settings.php:24
113
- #: bbp-admin/bbp-settings.php:1233
114
- msgid "Main Settings"
115
  msgstr ""
116
 
117
- #: bbp-admin/bbp-converter.php:66
118
  msgid "Select Platform"
119
  msgstr ""
120
 
121
- #: bbp-admin/bbp-converter.php:70
122
  msgid "Database Server"
123
  msgstr ""
124
 
125
- #: bbp-admin/bbp-converter.php:74
126
  msgid "Database Port"
127
  msgstr ""
128
 
129
- #: bbp-admin/bbp-converter.php:78
130
  msgid "Database Name"
131
  msgstr ""
132
 
133
- #: bbp-admin/bbp-converter.php:82
134
  msgid "Database User"
135
  msgstr ""
136
 
137
- #: bbp-admin/bbp-converter.php:86
138
  msgid "Database Password"
139
  msgstr ""
140
 
141
- #: bbp-admin/bbp-converter.php:90
142
  msgid "Table Prefix"
143
  msgstr ""
144
 
145
- #: bbp-admin/bbp-converter.php:94
146
  msgid "Options"
147
  msgstr ""
148
 
149
- #: bbp-admin/bbp-converter.php:97
150
  msgid "Rows Limit"
151
  msgstr ""
152
 
153
- #: bbp-admin/bbp-converter.php:101
154
  msgid "Delay Time"
155
  msgstr ""
156
 
157
- #: bbp-admin/bbp-converter.php:105
158
  msgid "Convert Users"
159
  msgstr ""
160
 
161
- #: bbp-admin/bbp-converter.php:109
162
- msgid "Clean"
 
 
 
 
163
  msgstr ""
164
 
165
- #: bbp-admin/bbp-converter.php:113
166
- msgid "Restart"
 
 
 
 
167
  msgstr ""
168
 
169
- #: bbp-admin/bbp-converter.php:296
170
  msgid "No data to clean"
171
  msgstr ""
172
 
173
- #: bbp-admin/bbp-converter.php:300
174
  msgid "Deleting previously converted data (%1$s - %2$s)"
175
  msgstr ""
176
 
177
- #: bbp-admin/bbp-converter.php:316
178
  msgid "No users to convert"
179
  msgstr ""
180
 
181
- #: bbp-admin/bbp-converter.php:320
182
  msgid "Converting users (%1$s - %2$s)"
183
  msgstr ""
184
 
185
- #: bbp-admin/bbp-converter.php:336
186
  msgid "No passwords to clear"
187
  msgstr ""
188
 
189
- #: bbp-admin/bbp-converter.php:340
190
  msgid "Delete users wordpress default passwords (%1$s - %2$s)"
191
  msgstr ""
192
 
193
- #: bbp-admin/bbp-converter.php:355
194
  msgid "No forums to convert"
195
  msgstr ""
196
 
197
- #: bbp-admin/bbp-converter.php:359
198
  msgid "Converting forums (%1$s - %2$s)"
199
  msgstr ""
200
 
201
- #: bbp-admin/bbp-converter.php:371
202
  msgid "No forum parents to convert"
203
  msgstr ""
204
 
205
- #: bbp-admin/bbp-converter.php:375
206
  msgid "Calculating forum hierarchy (%1$s - %2$s)"
207
  msgstr ""
208
 
209
- #: bbp-admin/bbp-converter.php:387
210
  msgid "No topics to convert"
211
  msgstr ""
212
 
213
- #: bbp-admin/bbp-converter.php:391
214
  msgid "Converting topics (%1$s - %2$s)"
215
  msgstr ""
216
 
217
- #: bbp-admin/bbp-converter.php:403
218
  msgid "No tags to convert"
219
  msgstr ""
220
 
221
- #: bbp-admin/bbp-converter.php:407
222
  msgid "Converting topic tags (%1$s - %2$s)"
223
  msgstr ""
224
 
225
- #: bbp-admin/bbp-converter.php:418
226
  msgid "No replies to convert"
227
  msgstr ""
228
 
229
- #: bbp-admin/bbp-converter.php:422
230
  msgid "Converting replies (%1$s - %2$s)"
231
  msgstr ""
232
 
233
- #: bbp-admin/bbp-converter.php:431
234
- msgid "Conversion Complete"
235
- msgstr ""
236
-
237
- #: bbp-admin/bbp-converter.php:816
238
- msgid "<span title=\"%s\">View Query</span>%s"
239
- msgstr ""
240
-
241
- #: bbp-admin/bbp-forums.php:118 bbp-admin/bbp-replies.php:130
242
- #: bbp-admin/bbp-settings.php:1225 bbp-admin/bbp-topics.php:130
243
  msgid "Overview"
244
  msgstr ""
245
 
246
- #: bbp-admin/bbp-forums.php:120 bbp-admin/bbp-replies.php:132
247
- #: bbp-admin/bbp-topics.php:132
248
  msgid ""
249
  "This screen provides access to all of your replies. You can customize the "
250
  "display of this screen to suit your workflow."
251
  msgstr ""
252
 
253
- #: bbp-admin/bbp-forums.php:126 bbp-admin/bbp-replies.php:138
254
- #: bbp-admin/bbp-topics.php:138
255
  msgid "Screen Content"
256
  msgstr ""
257
 
258
- #: bbp-admin/bbp-forums.php:128 bbp-admin/bbp-replies.php:140
259
- #: bbp-admin/bbp-topics.php:140
260
  msgid ""
261
  "You can customize the display of this screen&#8217;s contents in a number of "
262
  "ways:"
263
  msgstr ""
264
 
265
- #: bbp-admin/bbp-forums.php:130 bbp-admin/bbp-replies.php:142
266
- #: bbp-admin/bbp-topics.php:142
267
  msgid ""
268
  "You can hide/display columns based on your needs and decide how many replies "
269
  "to list per screen using the Screen Options tab."
270
  msgstr ""
271
 
272
- #: bbp-admin/bbp-forums.php:131
273
  msgid ""
274
  "You can filter the list of replies by forum status using the text links in "
275
  "the upper left to show All, Published, Draft, or Trashed replies. The "
276
  "default view is to show all replies."
277
  msgstr ""
278
 
279
- #: bbp-admin/bbp-forums.php:132 bbp-admin/bbp-replies.php:144
280
- #: bbp-admin/bbp-topics.php:144
281
  msgid ""
282
  "You can view replies in a simple title list or with an excerpt. Choose the "
283
  "view you prefer by clicking on the icons at the top of the list on the right."
284
  msgstr ""
285
 
286
- #: bbp-admin/bbp-forums.php:133
287
  msgid ""
288
  "You can refine the list to show only replies in a specific category or from "
289
  "a specific month by using the dropdown menus above the replies list. Click "
@@ -291,88 +290,88 @@ msgid ""
291
  "by clicking on the forum author, category or tag in the replies list."
292
  msgstr ""
293
 
294
- #: bbp-admin/bbp-forums.php:140 bbp-admin/bbp-replies.php:152
295
- #: bbp-admin/bbp-topics.php:152
296
  msgid "Available Actions"
297
  msgstr ""
298
 
299
- #: bbp-admin/bbp-forums.php:142
300
  msgid ""
301
  "Hovering over a row in the replies list will display action links that allow "
302
  "you to manage your forum. You can perform the following actions:"
303
  msgstr ""
304
 
305
- #: bbp-admin/bbp-forums.php:144
306
  msgid ""
307
  "<strong>Edit</strong> takes you to the editing screen for that forum. You "
308
  "can also reach that screen by clicking on the forum title."
309
  msgstr ""
310
 
311
- #: bbp-admin/bbp-forums.php:146
312
  msgid ""
313
  "<strong>Trash</strong> removes your forum from this list and places it in "
314
  "the trash, from which you can permanently delete it."
315
  msgstr ""
316
 
317
- #: bbp-admin/bbp-forums.php:147
318
  msgid ""
319
  "<strong>Spam</strong> removes your forum from this list and places it in the "
320
  "spam queue, from which you can permanently delete it."
321
  msgstr ""
322
 
323
- #: bbp-admin/bbp-forums.php:148
324
  msgid ""
325
  "<strong>Preview</strong> will show you what your draft forum will look like "
326
  "if you publish it. View will take you to your live site to view the forum. "
327
  "Which link is available depends on your forum&#8217;s status."
328
  msgstr ""
329
 
330
- #: bbp-admin/bbp-forums.php:155 bbp-admin/bbp-replies.php:167
331
- #: bbp-admin/bbp-topics.php:167
332
  msgid "Bulk Actions"
333
  msgstr ""
334
 
335
- #: bbp-admin/bbp-forums.php:157 bbp-admin/bbp-replies.php:169
336
- #: bbp-admin/bbp-topics.php:169
337
  msgid ""
338
  "You can also edit or move multiple replies to the trash at once. Select the "
339
  "replies you want to act on using the checkboxes, then select the action you "
340
  "want to take from the Bulk Actions menu and click Apply."
341
  msgstr ""
342
 
343
- #: bbp-admin/bbp-forums.php:158
344
  msgid ""
345
  "When using Bulk Edit, you can change the metadata (categories, author, etc.) "
346
  "for all selected replies at once. To remove a forum from the grouping, just "
347
  "click the x next to its name in the Bulk Edit area that appears."
348
  msgstr ""
349
 
350
- #: bbp-admin/bbp-forums.php:163 bbp-admin/bbp-forums.php:243
351
- #: bbp-admin/bbp-replies.php:175 bbp-admin/bbp-replies.php:252
352
- #: bbp-admin/bbp-settings.php:1270 bbp-admin/bbp-topics.php:175
353
- #: bbp-admin/bbp-topics.php:252
354
  msgid "For more information:"
355
  msgstr ""
356
 
357
- #: bbp-admin/bbp-forums.php:164 bbp-admin/bbp-forums.php:244
358
- #: bbp-admin/bbp-replies.php:176 bbp-admin/bbp-replies.php:253
359
- #: bbp-admin/bbp-settings.php:1271 bbp-admin/bbp-topics.php:176
360
- #: bbp-admin/bbp-topics.php:253
361
  msgid ""
362
  "<a href=\"http://bbpress.org/documentation/\" target=\"_blank\">bbPress "
363
  "Documentation</a>"
364
  msgstr ""
365
 
366
- #: bbp-admin/bbp-forums.php:165 bbp-admin/bbp-forums.php:245
367
- #: bbp-admin/bbp-replies.php:177 bbp-admin/bbp-replies.php:254
368
- #: bbp-admin/bbp-settings.php:1272 bbp-admin/bbp-topics.php:177
369
- #: bbp-admin/bbp-topics.php:254
370
  msgid ""
371
  "<a href=\"http://bbpress.org/forums/\" target=\"_blank\">bbPress Support "
372
  "Forums</a>"
373
  msgstr ""
374
 
375
- #: bbp-admin/bbp-forums.php:188
376
  msgid ""
377
  "The title field and the big forum editing Area are fixed in place, but you "
378
  "can reposition all the other boxes using drag and drop, and can minimize or "
@@ -382,22 +381,22 @@ msgid ""
382
  "screen."
383
  msgstr ""
384
 
385
- #: bbp-admin/bbp-forums.php:192 bbp-admin/bbp-replies.php:204
386
- #: bbp-admin/bbp-topics.php:204
387
  msgid "Customizing This Display"
388
  msgstr ""
389
 
390
- #: bbp-admin/bbp-forums.php:198
391
  msgid "Title and Forum Editor"
392
  msgstr ""
393
 
394
- #: bbp-admin/bbp-forums.php:200
395
  msgid ""
396
  "<strong>Title</strong> - Enter a title for your forum. After you enter a "
397
  "title, you&#8217;ll see the permalink below, which you can edit."
398
  msgstr ""
399
 
400
- #: bbp-admin/bbp-forums.php:201
401
  msgid ""
402
  "<strong>Forum Editor</strong> - Enter the text for your forum. There are two "
403
  "modes of editing: Visual and HTML. Choose the mode by clicking on the "
@@ -411,7 +410,7 @@ msgid ""
411
  "over the top area. Exit Fullscreen back to the regular forum editor."
412
  msgstr ""
413
 
414
- #: bbp-admin/bbp-forums.php:204
415
  msgid ""
416
  "<strong>Publish</strong> - You can set the terms of publishing your forum in "
417
  "the Publish box. For Status, Visibility, and Publish (immediately), click on "
@@ -422,7 +421,7 @@ msgid ""
422
  "future or backdate a forum."
423
  msgstr ""
424
 
425
- #: bbp-admin/bbp-forums.php:207
426
  msgid ""
427
  "<strong>forum Format</strong> - This designates how your theme will display "
428
  "a specific forum. For example, you could have a <em>standard</em> blog forum "
@@ -433,7 +432,7 @@ msgid ""
433
  "formats."
434
  msgstr ""
435
 
436
- #: bbp-admin/bbp-forums.php:211
437
  msgid ""
438
  "<strong>Featured Image</strong> - This allows you to associate an image with "
439
  "your forum without inserting it. This is usually useful only if your theme "
@@ -441,55 +440,55 @@ msgid ""
441
  "custom header, etc."
442
  msgstr ""
443
 
444
- #: bbp-admin/bbp-forums.php:216 bbp-admin/bbp-forums.php:261
445
  msgid "Forum Attributes"
446
  msgstr ""
447
 
448
- #: bbp-admin/bbp-forums.php:218
449
  msgid "Select the attributes that your forum should have:"
450
  msgstr ""
451
 
452
- #: bbp-admin/bbp-forums.php:220
453
  msgid ""
454
  "<strong>Type</strong> indicates if the forum is a category or forum. "
455
  "Categories generally contain other forums."
456
  msgstr ""
457
 
458
- #: bbp-admin/bbp-forums.php:221
459
  msgid ""
460
  "<strong>Status</strong> allows you to close a forum to new topics and "
461
  "replies."
462
  msgstr ""
463
 
464
- #: bbp-admin/bbp-forums.php:222
465
  msgid ""
466
  "<strong>Visibility</strong> lets you pick the scope of each forum and what "
467
  "users are allowed to access it."
468
  msgstr ""
469
 
470
- #: bbp-admin/bbp-forums.php:223
471
  msgid ""
472
  "<strong>Parent</strong> dropdown determines the parent forum. Select the "
473
  "forum or category from the dropdown, or leave the default (No Parent) to "
474
  "create the forum at the root of your forums."
475
  msgstr ""
476
 
477
- #: bbp-admin/bbp-forums.php:224
478
  msgid "<strong>Order</strong> allows you to order your forums numerically."
479
  msgstr ""
480
 
481
- #: bbp-admin/bbp-forums.php:230 bbp-admin/bbp-replies.php:239
482
- #: bbp-admin/bbp-topics.php:239
483
  msgid "Publish Box"
484
  msgstr ""
485
 
486
- #: bbp-admin/bbp-forums.php:236 bbp-admin/bbp-replies.php:245
487
- #: bbp-admin/bbp-topics.php:245
488
  msgid "Discussion Settings"
489
  msgstr ""
490
 
491
- #: bbp-admin/bbp-forums.php:238 bbp-admin/bbp-replies.php:247
492
- #: bbp-admin/bbp-topics.php:247
493
  msgid ""
494
  "<strong>Send Trackbacks</strong> - Trackbacks are a way to notify legacy "
495
  "blog systems that you&#8217;ve linked to them. Enter the URL(s) you want to "
@@ -497,16 +496,16 @@ msgid ""
497
  "notified automatically using pingbacks, and this field is unnecessary."
498
  msgstr ""
499
 
500
- #: bbp-admin/bbp-forums.php:239
501
  msgid ""
502
  "<strong>Discussion</strong> - You can turn comments and pings on or off, and "
503
  "if there are comments on the forum, you can see them here and moderate them."
504
  msgstr ""
505
 
506
- #: bbp-admin/bbp-forums.php:422 bbp-admin/bbp-metaboxes.php:50
507
  #: bbp-admin/bbp-metaboxes.php:345 bbp-admin/bbp-metaboxes.php:348
508
  #: bbp-admin/bbp-metaboxes.php:396 bbp-admin/bbp-metaboxes.php:399
509
- #: bbp-admin/bbp-replies.php:614 bbp-admin/bbp-topics.php:678
510
  #: bbp-includes/bbp-extend-buddypress.php:1405
511
  #: bbp-includes/bbp-forum-template.php:2124
512
  #: bbp-theme-compat/bbpress/loop-forums.php:19
@@ -514,8 +513,8 @@ msgstr ""
514
  msgid "Forum"
515
  msgstr ""
516
 
517
- #: bbp-admin/bbp-forums.php:423 bbp-admin/bbp-settings.php:171
518
- #: bbp-admin/bbp-settings.php:192 bbp-admin/bbp-topics.php:677
519
  #: bbp-includes/bbp-extend-buddypress.php:432
520
  #: bbp-includes/bbp-extend-buddypress.php:1434
521
  #: bbp-includes/bbp-forum-template.php:2272
@@ -527,8 +526,8 @@ msgstr ""
527
  msgid "Topics"
528
  msgstr ""
529
 
530
- #: bbp-admin/bbp-forums.php:424 bbp-admin/bbp-settings.php:179
531
- #: bbp-admin/bbp-settings.php:200 bbp-admin/bbp-topics.php:679
532
  #: bbp-includes/bbp-extend-buddypress.php:433
533
  #: bbp-includes/bbp-forum-template.php:2336
534
  #: bbp-includes/bbp-theme-compatibility.php:493
@@ -547,19 +546,19 @@ msgstr ""
547
  msgid "Replies"
548
  msgstr ""
549
 
550
- #: bbp-admin/bbp-forums.php:425
551
  #: bbp-theme-compat/bbpress/content-single-topic-lead.php:18
552
  #: bbp-theme-compat/bbpress/content-single-topic-lead.php:90
553
  #: bbp-themes/bbp-twentyten/bbpress/content-single-topic-lead.php:17
554
  msgid "Creator"
555
  msgstr ""
556
 
557
- #: bbp-admin/bbp-forums.php:426 bbp-admin/bbp-replies.php:617
558
- #: bbp-admin/bbp-topics.php:682
559
  msgid "Created"
560
  msgstr ""
561
 
562
- #: bbp-admin/bbp-forums.php:427 bbp-admin/bbp-topics.php:683
563
  #: bbp-theme-compat/bbpress/loop-forums.php:22
564
  #: bbp-theme-compat/bbpress/loop-topics.php:22
565
  #: bbp-themes/bbp-twentyten/bbpress/loop-forums.php:21
@@ -567,8 +566,8 @@ msgstr ""
567
  msgid "Freshness"
568
  msgstr ""
569
 
570
- #: bbp-admin/bbp-forums.php:461 bbp-admin/bbp-replies.php:723
571
- #: bbp-admin/bbp-topics.php:760
572
  msgid "%1$s <br /> %2$s"
573
  msgstr ""
574
 
@@ -576,54 +575,54 @@ msgstr ""
576
  msgid "No Topics"
577
  msgstr ""
578
 
579
- #: bbp-admin/bbp-forums.php:540
580
  msgid "Forum updated. <a href=\"%s\">View forum</a>"
581
  msgstr ""
582
 
583
- #: bbp-admin/bbp-forums.php:543 bbp-admin/bbp-replies.php:922
584
- #: bbp-admin/bbp-topics.php:993
585
  msgid "Custom field updated."
586
  msgstr ""
587
 
588
- #: bbp-admin/bbp-forums.php:546 bbp-admin/bbp-replies.php:925
589
- #: bbp-admin/bbp-topics.php:996
590
  msgid "Custom field deleted."
591
  msgstr ""
592
 
593
- #: bbp-admin/bbp-forums.php:549
594
  msgid "Forum updated."
595
  msgstr ""
596
 
597
  #. translators: %s: date and time of the revision
598
- #: bbp-admin/bbp-forums.php:554
599
  msgid "Forum restored to revision from %s"
600
  msgstr ""
601
 
602
- #: bbp-admin/bbp-forums.php:558
603
  msgid "Forum created. <a href=\"%s\">View forum</a>"
604
  msgstr ""
605
 
606
- #: bbp-admin/bbp-forums.php:561
607
  msgid "Forum saved."
608
  msgstr ""
609
 
610
- #: bbp-admin/bbp-forums.php:564
611
  msgid "Forum submitted. <a target=\"_blank\" href=\"%s\">Preview forum</a>"
612
  msgstr ""
613
 
614
- #: bbp-admin/bbp-forums.php:567
615
  msgid ""
616
  "Forum scheduled for: <strong>%1$s</strong>. <a target=\"_blank\" href=\"%2$s"
617
  "\">Preview forum</a>"
618
  msgstr ""
619
 
620
  #. translators: Publish box date format, see http:php.net/date
621
- #: bbp-admin/bbp-forums.php:569 bbp-admin/bbp-replies.php:948
622
- #: bbp-admin/bbp-topics.php:1019
623
  msgid "M j, Y @ G:i"
624
  msgstr ""
625
 
626
- #: bbp-admin/bbp-forums.php:574
627
  msgid "Forum draft updated. <a target=\"_blank\" href=\"%s\">Preview forum</a>"
628
  msgstr ""
629
 
@@ -632,7 +631,7 @@ msgid "Discussion"
632
  msgstr ""
633
 
634
  #: bbp-admin/bbp-metaboxes.php:67 bbp-admin/bbp-metaboxes.php:421
635
- #: bbp-admin/bbp-metaboxes.php:424 bbp-admin/bbp-replies.php:615
636
  #: bbp-theme-compat/bbpress/content-single-topic-lead.php:22
637
  #: bbp-theme-compat/bbpress/content-single-topic-lead.php:94
638
  #: bbp-theme-compat/bbpress/loop-topics.php:19
@@ -724,7 +723,7 @@ msgstr ""
724
  msgid "Forum Order"
725
  msgstr ""
726
 
727
- #: bbp-admin/bbp-metaboxes.php:342 bbp-admin/bbp-topics.php:738
728
  msgid "(No Forum)"
729
  msgstr ""
730
 
@@ -766,14 +765,14 @@ msgstr ""
766
  msgid "IP Address"
767
  msgstr ""
768
 
769
- #: bbp-admin/bbp-replies.php:143
770
  msgid ""
771
  "You can filter the list of replies by reply status using the text links in "
772
  "the upper left to show All, Published, Draft, or Trashed replies. The "
773
  "default view is to show all replies."
774
  msgstr ""
775
 
776
- #: bbp-admin/bbp-replies.php:145
777
  msgid ""
778
  "You can refine the list to show only replies in a specific category or from "
779
  "a specific month by using the dropdown menus above the replies list. Click "
@@ -781,45 +780,45 @@ msgid ""
781
  "by clicking on the reply author, category or tag in the replies list."
782
  msgstr ""
783
 
784
- #: bbp-admin/bbp-replies.php:154
785
  msgid ""
786
  "Hovering over a row in the replies list will display action links that allow "
787
  "you to manage your reply. You can perform the following actions:"
788
  msgstr ""
789
 
790
- #: bbp-admin/bbp-replies.php:156
791
  msgid ""
792
  "<strong>Edit</strong> takes you to the editing screen for that reply. You "
793
  "can also reach that screen by clicking on the reply title."
794
  msgstr ""
795
 
796
- #: bbp-admin/bbp-replies.php:158
797
  msgid ""
798
  "<strong>Trash</strong> removes your reply from this list and places it in "
799
  "the trash, from which you can permanently delete it."
800
  msgstr ""
801
 
802
- #: bbp-admin/bbp-replies.php:159
803
  msgid ""
804
  "<strong>Spam</strong> removes your reply from this list and places it in the "
805
  "spam queue, from which you can permanently delete it."
806
  msgstr ""
807
 
808
- #: bbp-admin/bbp-replies.php:160
809
  msgid ""
810
  "<strong>Preview</strong> will show you what your draft reply will look like "
811
  "if you publish it. View will take you to your live site to view the reply. "
812
  "Which link is available depends on your reply&#8217;s status."
813
  msgstr ""
814
 
815
- #: bbp-admin/bbp-replies.php:170
816
  msgid ""
817
  "When using Bulk Edit, you can change the metadata (categories, author, etc.) "
818
  "for all selected replies at once. To remove a reply from the grouping, just "
819
  "click the x next to its name in the Bulk Edit area that appears."
820
  msgstr ""
821
 
822
- #: bbp-admin/bbp-replies.php:200
823
  msgid ""
824
  "The title field and the big reply editing Area are fixed in place, but you "
825
  "can reposition all the other boxes using drag and drop, and can minimize or "
@@ -829,17 +828,17 @@ msgid ""
829
  "screen."
830
  msgstr ""
831
 
832
- #: bbp-admin/bbp-replies.php:210
833
  msgid "Title and Reply Editor"
834
  msgstr ""
835
 
836
- #: bbp-admin/bbp-replies.php:212
837
  msgid ""
838
  "<strong>Title</strong> - Enter a title for your reply. After you enter a "
839
  "title, you&#8217;ll see the permalink below, which you can edit."
840
  msgstr ""
841
 
842
- #: bbp-admin/bbp-replies.php:213
843
  msgid ""
844
  "<strong>Reply Editor</strong> - Enter the text for your reply. There are two "
845
  "modes of editing: Visual and HTML. Choose the mode by clicking on the "
@@ -853,7 +852,7 @@ msgid ""
853
  "over the top area. Exit Fullscreen back to the regular reply editor."
854
  msgstr ""
855
 
856
- #: bbp-admin/bbp-replies.php:216
857
  msgid ""
858
  "<strong>Publish</strong> - You can set the terms of publishing your reply in "
859
  "the Publish box. For Status, Visibility, and Publish (immediately), click on "
@@ -864,7 +863,7 @@ msgid ""
864
  "future or backdate a reply."
865
  msgstr ""
866
 
867
- #: bbp-admin/bbp-replies.php:219
868
  msgid ""
869
  "<strong>reply Format</strong> - This designates how your theme will display "
870
  "a specific reply. For example, you could have a <em>standard</em> blog reply "
@@ -875,7 +874,7 @@ msgid ""
875
  "formats."
876
  msgstr ""
877
 
878
- #: bbp-admin/bbp-replies.php:223
879
  msgid ""
880
  "<strong>Featured Image</strong> - This allows you to associate an image with "
881
  "your reply without inserting it. This is usually useful only if your theme "
@@ -883,67 +882,67 @@ msgid ""
883
  "custom header, etc."
884
  msgstr ""
885
 
886
- #: bbp-admin/bbp-replies.php:228 bbp-admin/bbp-replies.php:270
887
  msgid "Reply Attributes"
888
  msgstr ""
889
 
890
- #: bbp-admin/bbp-replies.php:230
891
  msgid "Select the attributes that your reply should have:"
892
  msgstr ""
893
 
894
- #: bbp-admin/bbp-replies.php:232
895
  msgid ""
896
  "<strong>Forum</strong> dropdown determines the parent forum that the reply "
897
  "belongs to. Select the forum, or leave the default (Use Forum of Topic) to "
898
  "post the reply in forum of the topic."
899
  msgstr ""
900
 
901
- #: bbp-admin/bbp-replies.php:233
902
  msgid ""
903
  "<strong>Topic</strong> determines the parent topic that the reply belongs to."
904
  msgstr ""
905
 
906
- #: bbp-admin/bbp-replies.php:248
907
  msgid ""
908
  "<strong>Discussion</strong> - You can turn comments and pings on or off, and "
909
  "if there are comments on the reply, you can see them here and moderate them."
910
  msgstr ""
911
 
912
- #: bbp-admin/bbp-replies.php:355 bbp-admin/bbp-topics.php:372
913
  #: bbp-theme-compat/bbpress/form-anonymous.php:17
914
  #: bbp-themes/bbp-twentyten/bbpress/form-anonymous.php:17
915
  msgid "Author Information"
916
  msgstr ""
917
 
918
- #: bbp-admin/bbp-replies.php:510
919
  msgid "The reply was not found!"
920
  msgstr ""
921
 
922
- #: bbp-admin/bbp-replies.php:513 bbp-admin/bbp-topics.php:538
923
  msgid "You do not have the permission to do that!"
924
  msgstr ""
925
 
926
- #: bbp-admin/bbp-replies.php:579
927
  msgid "There was a problem marking the reply \"%1$s\" as spam."
928
  msgstr ""
929
 
930
- #: bbp-admin/bbp-replies.php:579
931
  msgid "Reply \"%1$s\" successfully marked as spam."
932
  msgstr ""
933
 
934
- #: bbp-admin/bbp-replies.php:583
935
  msgid "There was a problem unmarking the reply \"%1$s\" as spam."
936
  msgstr ""
937
 
938
- #: bbp-admin/bbp-replies.php:583
939
  msgid "Reply \"%1$s\" successfully unmarked as spam."
940
  msgstr ""
941
 
942
- #: bbp-admin/bbp-replies.php:613
943
  msgid "Title"
944
  msgstr ""
945
 
946
- #: bbp-admin/bbp-replies.php:616 bbp-admin/bbp-topics.php:681
947
  #: bbp-theme-compat/bbpress/loop-replies.php:18
948
  #: bbp-theme-compat/bbpress/loop-replies.php:52
949
  #: bbp-themes/bbp-twentyten/bbpress/loop-replies.php:17
@@ -952,122 +951,126 @@ msgstr ""
952
  msgid "Author"
953
  msgstr ""
954
 
955
- #: bbp-admin/bbp-replies.php:668 bbp-admin/bbp-replies.php:676
956
  msgid "No Topic"
957
  msgstr ""
958
 
959
- #: bbp-admin/bbp-replies.php:694 bbp-admin/bbp-replies.php:709
960
- #: bbp-admin/bbp-topics.php:731
961
  msgid "No Forum"
962
  msgstr ""
963
 
964
- #: bbp-admin/bbp-replies.php:700
965
  msgid "(Mismatch)"
966
  msgstr ""
967
 
968
- #: bbp-admin/bbp-replies.php:767 bbp-admin/bbp-topics.php:819
969
  msgid "View &#8220;%s&#8221;"
970
  msgstr ""
971
 
972
- #: bbp-admin/bbp-replies.php:767 bbp-admin/bbp-topics.php:819
973
  msgid "View"
974
  msgstr ""
975
 
976
- #: bbp-admin/bbp-replies.php:778
977
  msgid "Mark the reply as not spam"
978
  msgstr ""
979
 
980
- #: bbp-admin/bbp-replies.php:778 bbp-admin/bbp-topics.php:850
981
  msgid "Not spam"
982
  msgstr ""
983
 
984
- #: bbp-admin/bbp-replies.php:780
985
  msgid "Mark this reply as spam"
986
  msgstr ""
987
 
988
- #: bbp-admin/bbp-replies.php:780 bbp-admin/bbp-topics.php:852
989
- #: bbp-includes/bbp-reply-template.php:1651
990
  #: bbp-includes/bbp-topic-template.php:2559
991
  msgid "Spam"
992
  msgstr ""
993
 
994
- #: bbp-admin/bbp-replies.php:789 bbp-admin/bbp-topics.php:860
995
- #: bbp-includes/bbp-reply-template.php:1595
996
  #: bbp-includes/bbp-topic-template.php:2317
997
  msgid "Restore this item from the Trash"
998
  msgstr ""
999
 
1000
- #: bbp-admin/bbp-replies.php:789 bbp-admin/bbp-topics.php:860
1001
- #: bbp-includes/bbp-reply-template.php:1581
1002
  #: bbp-includes/bbp-topic-template.php:2303
1003
  msgid "Restore"
1004
  msgstr ""
1005
 
1006
- #: bbp-admin/bbp-replies.php:791 bbp-admin/bbp-topics.php:862
1007
- #: bbp-includes/bbp-reply-template.php:1597
1008
  #: bbp-includes/bbp-topic-template.php:2319
1009
  msgid "Move this item to the Trash"
1010
  msgstr ""
1011
 
1012
- #: bbp-admin/bbp-replies.php:791 bbp-admin/bbp-topics.php:862
1013
- #: bbp-includes/bbp-reply-template.php:1580
1014
  #: bbp-includes/bbp-topic-template.php:2302
1015
  msgid "Trash"
1016
  msgstr ""
1017
 
1018
- #: bbp-admin/bbp-replies.php:795 bbp-admin/bbp-topics.php:866
1019
- #: bbp-includes/bbp-reply-template.php:1601
1020
  #: bbp-includes/bbp-topic-template.php:2323
1021
  msgid "Delete this item permanently"
1022
  msgstr ""
1023
 
1024
- #: bbp-admin/bbp-replies.php:795 bbp-admin/bbp-topics.php:866
1025
  msgid "Delete Permanently"
1026
  msgstr ""
1027
 
1028
- #: bbp-admin/bbp-replies.php:830 bbp-admin/bbp-topics.php:901
1029
  msgid "Empty Spam"
1030
  msgstr ""
1031
 
1032
- #: bbp-admin/bbp-replies.php:840 bbp-admin/bbp-topics.php:911
1033
  msgid "In all forums"
1034
  msgstr ""
1035
 
1036
- #: bbp-admin/bbp-replies.php:919
1037
  msgid "Reply updated. <a href=\"%s\">View topic</a>"
1038
  msgstr ""
1039
 
1040
- #: bbp-admin/bbp-replies.php:928
1041
  msgid "Reply updated."
1042
  msgstr ""
1043
 
1044
  #. translators: %s: date and time of the revision
1045
- #: bbp-admin/bbp-replies.php:933
1046
  msgid "Reply restored to revision from %s"
1047
  msgstr ""
1048
 
1049
- #: bbp-admin/bbp-replies.php:937
1050
  msgid "Reply created. <a href=\"%s\">View topic</a>"
1051
  msgstr ""
1052
 
1053
- #: bbp-admin/bbp-replies.php:940
1054
  msgid "Reply saved."
1055
  msgstr ""
1056
 
1057
- #: bbp-admin/bbp-replies.php:943
1058
  msgid "Reply submitted. <a target=\"_blank\" href=\"%s\">Preview topic</a>"
1059
  msgstr ""
1060
 
1061
- #: bbp-admin/bbp-replies.php:946
1062
  msgid ""
1063
  "Reply scheduled for: <strong>%1$s</strong>. <a target=\"_blank\" href=\"%2$s"
1064
  "\">Preview topic</a>"
1065
  msgstr ""
1066
 
1067
- #: bbp-admin/bbp-replies.php:953
1068
  msgid "Reply draft updated. <a target=\"_blank\" href=\"%s\">Preview topic</a>"
1069
  msgstr ""
1070
 
 
 
 
 
1071
  #: bbp-admin/bbp-settings.php:29
1072
  msgid "Theme Packages"
1073
  msgstr ""
@@ -1339,7 +1342,7 @@ msgid "Name of the database with your old forum data"
1339
  msgstr ""
1340
 
1341
  #: bbp-admin/bbp-settings.php:1075
1342
- msgid "Some optional parameters to help tune the convertion process."
1343
  msgstr ""
1344
 
1345
  #: bbp-admin/bbp-settings.php:1089
@@ -1364,19 +1367,20 @@ msgid "Keep this high to prevent too-many-connection issues."
1364
  msgstr ""
1365
 
1366
  #: bbp-admin/bbp-settings.php:1133
1367
- msgid "Purge all information from a previously attempted import"
1368
  msgstr ""
1369
 
1370
  #: bbp-admin/bbp-settings.php:1134
1371
- msgid "Use this if an import failed and you want to start over from scratch."
1372
  msgstr ""
1373
 
1374
  #: bbp-admin/bbp-settings.php:1148
1375
- msgid "Restart the conversion process"
1376
  msgstr ""
1377
 
1378
  #: bbp-admin/bbp-settings.php:1149
1379
- msgid "The importer keeps track of where it left off in the event of failure."
 
1380
  msgstr ""
1381
 
1382
  #: bbp-admin/bbp-settings.php:1163
@@ -1718,12 +1722,12 @@ msgstr ""
1718
  msgid "All Forums"
1719
  msgstr ""
1720
 
1721
- #: bbp-admin/bbp-tools.php:816 bbp-includes/bbp-topic-functions.php:3111
1722
  #: bbpress.php:535
1723
  msgid "All Topics"
1724
  msgstr ""
1725
 
1726
- #: bbp-admin/bbp-tools.php:817 bbp-includes/bbp-reply-functions.php:1414
1727
  #: bbpress.php:592
1728
  msgid "All Replies"
1729
  msgstr ""
@@ -1800,14 +1804,14 @@ msgstr ""
1800
  msgid "Deleting Roles and Capabilities&hellip; %s"
1801
  msgstr ""
1802
 
1803
- #: bbp-admin/bbp-topics.php:143
1804
  msgid ""
1805
  "You can filter the list of replies by topic status using the text links in "
1806
  "the upper left to show All, Published, Draft, or Trashed replies. The "
1807
  "default view is to show all replies."
1808
  msgstr ""
1809
 
1810
- #: bbp-admin/bbp-topics.php:145
1811
  msgid ""
1812
  "You can refine the list to show only replies in a specific category or from "
1813
  "a specific month by using the dropdown menus above the replies list. Click "
@@ -1815,45 +1819,45 @@ msgid ""
1815
  "by clicking on the topic author, category or tag in the replies list."
1816
  msgstr ""
1817
 
1818
- #: bbp-admin/bbp-topics.php:154
1819
  msgid ""
1820
  "Hovering over a row in the replies list will display action links that allow "
1821
  "you to manage your topic. You can perform the following actions:"
1822
  msgstr ""
1823
 
1824
- #: bbp-admin/bbp-topics.php:156
1825
  msgid ""
1826
  "<strong>Edit</strong> takes you to the editing screen for that topic. You "
1827
  "can also reach that screen by clicking on the topic title."
1828
  msgstr ""
1829
 
1830
- #: bbp-admin/bbp-topics.php:158
1831
  msgid ""
1832
  "<strong>Trash</strong> removes your topic from this list and places it in "
1833
  "the trash, from which you can permanently delete it."
1834
  msgstr ""
1835
 
1836
- #: bbp-admin/bbp-topics.php:159
1837
  msgid ""
1838
  "<strong>Spam</strong> removes your topic from this list and places it in the "
1839
  "spam queue, from which you can permanently delete it."
1840
  msgstr ""
1841
 
1842
- #: bbp-admin/bbp-topics.php:160
1843
  msgid ""
1844
  "<strong>Preview</strong> will show you what your draft topic will look like "
1845
  "if you publish it. View will take you to your live site to view the topic. "
1846
  "Which link is available depends on your topic&#8217;s status."
1847
  msgstr ""
1848
 
1849
- #: bbp-admin/bbp-topics.php:170
1850
  msgid ""
1851
  "When using Bulk Edit, you can change the metadata (categories, author, etc.) "
1852
  "for all selected replies at once. To remove a topic from the grouping, just "
1853
  "click the x next to its name in the Bulk Edit area that appears."
1854
  msgstr ""
1855
 
1856
- #: bbp-admin/bbp-topics.php:200
1857
  msgid ""
1858
  "The title field and the big topic editing Area are fixed in place, but you "
1859
  "can reposition all the other boxes using drag and drop, and can minimize or "
@@ -1863,17 +1867,17 @@ msgid ""
1863
  "screen."
1864
  msgstr ""
1865
 
1866
- #: bbp-admin/bbp-topics.php:210
1867
  msgid "Title and Topic Editor"
1868
  msgstr ""
1869
 
1870
- #: bbp-admin/bbp-topics.php:212
1871
  msgid ""
1872
  "<strong>Title</strong> - Enter a title for your topic. After you enter a "
1873
  "title, you&#8217;ll see the permalink below, which you can edit."
1874
  msgstr ""
1875
 
1876
- #: bbp-admin/bbp-topics.php:213
1877
  msgid ""
1878
  "<strong>Topic Editor</strong> - Enter the text for your topic. There are two "
1879
  "modes of editing: Visual and HTML. Choose the mode by clicking on the "
@@ -1887,7 +1891,7 @@ msgid ""
1887
  "over the top area. Exit Fullscreen back to the regular topic editor."
1888
  msgstr ""
1889
 
1890
- #: bbp-admin/bbp-topics.php:216
1891
  msgid ""
1892
  "<strong>Publish</strong> - You can set the terms of publishing your topic in "
1893
  "the Publish box. For Status, Visibility, and Publish (immediately), click on "
@@ -1898,7 +1902,7 @@ msgid ""
1898
  "future or backdate a topic."
1899
  msgstr ""
1900
 
1901
- #: bbp-admin/bbp-topics.php:219
1902
  msgid ""
1903
  "<strong>topic Format</strong> - This designates how your theme will display "
1904
  "a specific topic. For example, you could have a <em>standard</em> blog topic "
@@ -1909,7 +1913,7 @@ msgid ""
1909
  "formats."
1910
  msgstr ""
1911
 
1912
- #: bbp-admin/bbp-topics.php:223
1913
  msgid ""
1914
  "<strong>Featured Image</strong> - This allows you to associate an image with "
1915
  "your topic without inserting it. This is usually useful only if your theme "
@@ -1917,22 +1921,22 @@ msgid ""
1917
  "custom header, etc."
1918
  msgstr ""
1919
 
1920
- #: bbp-admin/bbp-topics.php:228 bbp-admin/bbp-topics.php:270
1921
  msgid "Topic Attributes"
1922
  msgstr ""
1923
 
1924
- #: bbp-admin/bbp-topics.php:230
1925
  msgid "Select the attributes that your topic should have:"
1926
  msgstr ""
1927
 
1928
- #: bbp-admin/bbp-topics.php:232
1929
  msgid ""
1930
  "<strong>Forum</strong> dropdown determines the parent forum that the topic "
1931
  "belongs to. Select the forum or category from the dropdown, or leave the "
1932
  "default (No Forum) to post the topic without an assigned forum."
1933
  msgstr ""
1934
 
1935
- #: bbp-admin/bbp-topics.php:233
1936
  msgid ""
1937
  "<strong>Topic Type</strong> dropdown indicates the sticky status of the "
1938
  "topic. Selecting the super sticky option would stick the topic to the front "
@@ -1940,163 +1944,163 @@ msgid ""
1940
  "its respective forum. Selecting normal would not stick the topic anywhere."
1941
  msgstr ""
1942
 
1943
- #: bbp-admin/bbp-topics.php:248
1944
  msgid ""
1945
  "<strong>Discussion</strong> - You can turn comments and pings on or off, and "
1946
  "if there are comments on the topic, you can see them here and moderate them."
1947
  msgstr ""
1948
 
1949
- #: bbp-admin/bbp-topics.php:535
1950
  msgid "The topic was not found!"
1951
  msgstr ""
1952
 
1953
- #: bbp-admin/bbp-topics.php:623
1954
  msgid "There was a problem opening the topic \"%1$s\"."
1955
  msgstr ""
1956
 
1957
- #: bbp-admin/bbp-topics.php:623
1958
  msgid "Topic \"%1$s\" successfully opened."
1959
  msgstr ""
1960
 
1961
- #: bbp-admin/bbp-topics.php:627
1962
  msgid "There was a problem closing the topic \"%1$s\"."
1963
  msgstr ""
1964
 
1965
- #: bbp-admin/bbp-topics.php:627
1966
  msgid "Topic \"%1$s\" successfully closed."
1967
  msgstr ""
1968
 
1969
- #: bbp-admin/bbp-topics.php:631
1970
  msgid "There was a problem sticking the topic \"%1$s\" to front."
1971
  msgstr ""
1972
 
1973
- #: bbp-admin/bbp-topics.php:631
1974
  msgid "Topic \"%1$s\" successfully sticked to front."
1975
  msgstr ""
1976
 
1977
- #: bbp-admin/bbp-topics.php:635
1978
  msgid "There was a problem sticking the topic \"%1$s\"."
1979
  msgstr ""
1980
 
1981
- #: bbp-admin/bbp-topics.php:635
1982
  msgid "Topic \"%1$s\" successfully sticked."
1983
  msgstr ""
1984
 
1985
- #: bbp-admin/bbp-topics.php:639
1986
  msgid "There was a problem unsticking the topic \"%1$s\"."
1987
  msgstr ""
1988
 
1989
- #: bbp-admin/bbp-topics.php:639
1990
  msgid "Topic \"%1$s\" successfully unsticked."
1991
  msgstr ""
1992
 
1993
- #: bbp-admin/bbp-topics.php:643
1994
  msgid "There was a problem marking the topic \"%1$s\" as spam."
1995
  msgstr ""
1996
 
1997
- #: bbp-admin/bbp-topics.php:643
1998
  msgid "Topic \"%1$s\" successfully marked as spam."
1999
  msgstr ""
2000
 
2001
- #: bbp-admin/bbp-topics.php:647
2002
  msgid "There was a problem unmarking the topic \"%1$s\" as spam."
2003
  msgstr ""
2004
 
2005
- #: bbp-admin/bbp-topics.php:647
2006
  msgid "Topic \"%1$s\" successfully unmarked as spam."
2007
  msgstr ""
2008
 
2009
- #: bbp-admin/bbp-topics.php:680 bbp-theme-compat/bbpress/loop-topics.php:20
2010
  #: bbp-themes/bbp-twentyten/bbpress/loop-topics.php:18
2011
  msgid "Voices"
2012
  msgstr ""
2013
 
2014
- #: bbp-admin/bbp-topics.php:773 bbp-includes/bbp-topic-template.php:1761
2015
  msgid "No Replies"
2016
  msgstr ""
2017
 
2018
- #: bbp-admin/bbp-topics.php:829
2019
  msgid "Close this topic"
2020
  msgstr ""
2021
 
2022
- #: bbp-admin/bbp-topics.php:829
2023
  msgctxt "Close a Topic"
2024
  msgid "Close"
2025
  msgstr ""
2026
 
2027
- #: bbp-admin/bbp-topics.php:831
2028
  msgid "Open this topic"
2029
  msgstr ""
2030
 
2031
- #: bbp-admin/bbp-topics.php:831
2032
  msgctxt "Open a Topic"
2033
  msgid "Open"
2034
  msgstr ""
2035
 
2036
- #: bbp-admin/bbp-topics.php:840
2037
  msgid "Unstick this topic"
2038
  msgstr ""
2039
 
2040
- #: bbp-admin/bbp-topics.php:840 bbp-includes/bbp-topic-template.php:2433
2041
  msgid "Unstick"
2042
  msgstr ""
2043
 
2044
- #: bbp-admin/bbp-topics.php:843
2045
  msgid "Stick this topic to its forum"
2046
  msgstr ""
2047
 
2048
- #: bbp-admin/bbp-topics.php:843 bbp-includes/bbp-topic-template.php:2432
2049
  msgid "Stick"
2050
  msgstr ""
2051
 
2052
- #: bbp-admin/bbp-topics.php:843
2053
  msgid "Stick this topic to front"
2054
  msgstr ""
2055
 
2056
- #: bbp-admin/bbp-topics.php:843 bbp-includes/bbp-topic-template.php:2434
2057
  msgid "to front"
2058
  msgstr ""
2059
 
2060
- #: bbp-admin/bbp-topics.php:850
2061
  msgid "Mark the topic as not spam"
2062
  msgstr ""
2063
 
2064
- #: bbp-admin/bbp-topics.php:852
2065
  msgid "Mark this topic as spam"
2066
  msgstr ""
2067
 
2068
- #: bbp-admin/bbp-topics.php:990
2069
  msgid "Topic updated. <a href=\"%s\">View topic</a>"
2070
  msgstr ""
2071
 
2072
- #: bbp-admin/bbp-topics.php:999
2073
  msgid "Topic updated."
2074
  msgstr ""
2075
 
2076
  #. translators: %s: date and time of the revision
2077
- #: bbp-admin/bbp-topics.php:1004
2078
  msgid "Topic restored to revision from %s"
2079
  msgstr ""
2080
 
2081
- #: bbp-admin/bbp-topics.php:1008
2082
  msgid "Topic created. <a href=\"%s\">View topic</a>"
2083
  msgstr ""
2084
 
2085
- #: bbp-admin/bbp-topics.php:1011
2086
  msgid "Topic saved."
2087
  msgstr ""
2088
 
2089
- #: bbp-admin/bbp-topics.php:1014
2090
  msgid "Topic submitted. <a target=\"_blank\" href=\"%s\">Preview topic</a>"
2091
  msgstr ""
2092
 
2093
- #: bbp-admin/bbp-topics.php:1017
2094
  msgid ""
2095
  "Topic scheduled for: <strong>%1$s</strong>. <a target=\"_blank\" href=\"%2$s"
2096
  "\">Preview topic</a>"
2097
  msgstr ""
2098
 
2099
- #: bbp-admin/bbp-topics.php:1024
2100
  msgid "Topic draft updated. <a target=\"_blank\" href=\"%s\">Preview topic</a>"
2101
  msgstr ""
2102
 
@@ -2257,7 +2261,7 @@ msgid "Topic Tag: %s"
2257
  msgstr ""
2258
 
2259
  #: bbp-includes/bbp-common-template.php:1832
2260
- #: bbp-includes/bbp-reply-template.php:1460
2261
  #: bbp-includes/bbp-topic-template.php:2181 bbpress.php:481 bbpress.php:538
2262
  #: bbpress.php:595
2263
  msgid "Edit"
@@ -2845,42 +2849,42 @@ msgstr ""
2845
  msgid "<strong>ERROR</strong>: There was a problem deleting the reply!"
2846
  msgstr ""
2847
 
2848
- #: bbp-includes/bbp-reply-functions.php:1412
2849
  msgid "All Posts"
2850
  msgstr ""
2851
 
2852
- #: bbp-includes/bbp-reply-functions.php:1454
2853
- #: bbp-includes/bbp-topic-functions.php:3136
2854
  msgid "Replies: %s"
2855
  msgstr ""
2856
 
2857
- #: bbp-includes/bbp-reply-template.php:582
2858
  msgid "This reply was modified %1$s by %2$s. Reason: %3$s"
2859
  msgstr ""
2860
 
2861
- #: bbp-includes/bbp-reply-template.php:584
2862
  msgid "This reply was modified %1$s by %2$s."
2863
  msgstr ""
2864
 
2865
- #: bbp-includes/bbp-reply-template.php:865
2866
  #: bbp-includes/bbp-topic-template.php:1168
2867
  #: bbp-includes/bbp-user-template.php:162
2868
  msgid "Anonymous"
2869
  msgstr ""
2870
 
2871
- #: bbp-includes/bbp-reply-template.php:966
2872
  #: bbp-includes/bbp-topic-template.php:1273
2873
  #: bbp-includes/bbp-user-template.php:1194
2874
  msgid "View %s's profile"
2875
  msgstr ""
2876
 
2877
- #: bbp-includes/bbp-reply-template.php:966
2878
  #: bbp-includes/bbp-topic-template.php:1273
2879
  #: bbp-includes/bbp-user-template.php:1194
2880
  msgid "Visit %s's website"
2881
  msgstr ""
2882
 
2883
- #: bbp-includes/bbp-reply-template.php:1582
2884
  #: bbp-includes/bbp-topic-template.php:2304
2885
  #: bbp-theme-compat/bbpress/form-topic-tag.php:88
2886
  #: bbp-theme-compat/bbpress/form-topic-tag.php:101
@@ -2889,43 +2893,43 @@ msgstr ""
2889
  msgid "Delete"
2890
  msgstr ""
2891
 
2892
- #: bbp-includes/bbp-reply-template.php:1601
2893
  #: bbp-includes/bbp-topic-template.php:2323
2894
  msgid "Are you sure you want to delete that permanently?"
2895
  msgstr ""
2896
 
2897
- #: bbp-includes/bbp-reply-template.php:1652
2898
  #: bbp-includes/bbp-topic-template.php:2560
2899
  msgid "Unspam"
2900
  msgstr ""
2901
 
2902
- #: bbp-includes/bbp-reply-template.php:1715
2903
  msgid "Split"
2904
  msgstr ""
2905
 
2906
- #: bbp-includes/bbp-reply-template.php:1716
2907
  msgid "Split the topic from this reply"
2908
  msgstr ""
2909
 
2910
- #: bbp-includes/bbp-reply-template.php:1823
2911
  msgid "Viewing %1$s reply"
2912
  msgid_plural "Viewing %1$s replies"
2913
  msgstr[0] ""
2914
  msgstr[1] ""
2915
 
2916
- #: bbp-includes/bbp-reply-template.php:1827
2917
  msgid "Viewing %2$s replies (of %4$s total)"
2918
  msgid_plural "Viewing %1$s replies - %2$s through %3$s (of %4$s total)"
2919
  msgstr[0] ""
2920
  msgstr[1] ""
2921
 
2922
- #: bbp-includes/bbp-reply-template.php:1835
2923
  msgid "Viewing %1$s post"
2924
  msgid_plural "Viewing %1$s posts"
2925
  msgstr[0] ""
2926
  msgstr[1] ""
2927
 
2928
- #: bbp-includes/bbp-reply-template.php:1839
2929
  msgid "Viewing %2$s post (of %4$s total)"
2930
  msgid_plural "Viewing %1$s posts - %2$s through %3$s (of %4$s total)"
2931
  msgstr[0] ""
@@ -4348,9 +4352,9 @@ msgstr ""
4348
  msgid "bbPress"
4349
  msgstr ""
4350
 
4351
- #. #-#-#-#-# plugin.pot (bbPress 2.1-rc4) #-#-#-#-#
4352
  #. Plugin URI of the plugin/theme
4353
- #. #-#-#-#-# plugin.pot (bbPress 2.1-rc4) #-#-#-#-#
4354
  #. Author URI of the plugin/theme
4355
  msgid "http://bbpress.org"
4356
  msgstr ""
2
  # This file is distributed under the same license as the bbPress package.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: bbPress 2.1\n"
6
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/bbpress\n"
7
+ "POT-Creation-Date: 2012-07-08 11:08:18+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=UTF-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
12
  "Last-Translator: JOHN JAMES JACOBY <jjj@bbpress.org>\n"
13
  "Language-Team: ENGLISH <jjj@bbpress.org>\n"
14
 
15
+ #: bbp-admin/bbp-admin.php:163 bbp-admin/bbp-functions.php:191
16
  #: bbp-admin/bbp-tools.php:34
17
  msgid "Repair Forums"
18
  msgstr ""
19
 
20
+ #: bbp-admin/bbp-admin.php:164
21
  msgid "Forum Repair"
22
  msgstr ""
23
 
24
+ #: bbp-admin/bbp-admin.php:173 bbp-admin/bbp-functions.php:195
25
  #: bbp-admin/bbp-settings.php:1185
26
  msgid "Import Forums"
27
  msgstr ""
28
 
29
+ #: bbp-admin/bbp-admin.php:174
30
  msgid "Forum Import"
31
  msgstr ""
32
 
33
+ #: bbp-admin/bbp-admin.php:183 bbp-admin/bbp-functions.php:199
34
  #: bbp-admin/bbp-tools.php:806
35
  msgid "Reset Forums"
36
  msgstr ""
37
 
38
+ #: bbp-admin/bbp-admin.php:184
39
  msgid "Forum Reset"
40
  msgstr ""
41
 
42
+ #: bbp-admin/bbp-admin.php:198 bbp-admin/bbp-admin.php:199
43
+ #: bbp-admin/bbp-admin.php:209 bbp-admin/bbp-admin.php:210
44
  #: bbp-includes/bbp-extend-buddypress.php:834
45
  #: bbp-includes/bbp-extend-buddypress.php:891
46
  #: bbp-includes/bbp-extend-buddypress.php:982
52
  msgid "Forums"
53
  msgstr ""
54
 
55
+ #: bbp-admin/bbp-admin.php:227 bbp-admin/bbp-admin.php:228
56
+ #: bbp-admin/bbp-admin.php:732 bbp-admin/bbp-admin.php:808
57
  msgid "Update Forums"
58
  msgstr ""
59
 
60
+ #: bbp-admin/bbp-admin.php:351
61
  msgid "Settings"
62
  msgstr ""
63
 
64
+ #: bbp-admin/bbp-admin.php:366
65
  msgid "Right Now in Forums"
66
  msgstr ""
67
 
68
+ #: bbp-admin/bbp-admin.php:647
69
  msgid "Green"
70
  msgstr ""
71
 
72
+ #: bbp-admin/bbp-admin.php:668 bbp-admin/bbp-admin.php:706
73
  msgid "Update Forum"
74
  msgstr ""
75
 
76
+ #: bbp-admin/bbp-admin.php:695 bbp-admin/bbp-admin.php:749
77
  msgid "All done!"
78
  msgstr ""
79
 
80
+ #: bbp-admin/bbp-admin.php:696 bbp-admin/bbp-admin.php:750
81
  msgid "Go Back"
82
  msgstr ""
83
 
84
+ #: bbp-admin/bbp-admin.php:705
85
  msgid ""
86
  "You can update your forum through this page. Hit the link below to update."
87
  msgstr ""
88
 
89
+ #: bbp-admin/bbp-admin.php:777
90
  msgid ""
91
  "Warning! Problem updating %1$s. Your server may not be able to connect to "
92
  "sites running on it. Error message: <em>%2$s</em>"
93
  msgstr ""
94
 
95
+ #: bbp-admin/bbp-admin.php:788
96
  msgid ""
97
  "If your browser doesn&#8217;t start loading the next page automatically, "
98
  "click this link:"
99
  msgstr ""
100
 
101
+ #: bbp-admin/bbp-admin.php:789
102
  msgid "Next Forums"
103
  msgstr ""
104
 
105
+ #: bbp-admin/bbp-admin.php:807
106
  msgid ""
107
  "You can update all the forums on your network through this page. It works by "
108
  "calling the update script of each site automatically. Hit the link below to "
109
  "update."
110
  msgstr ""
111
 
112
+ #: bbp-admin/bbp-converter.php:80
113
+ msgid "Database Settings"
 
114
  msgstr ""
115
 
116
+ #: bbp-admin/bbp-converter.php:83
117
  msgid "Select Platform"
118
  msgstr ""
119
 
120
+ #: bbp-admin/bbp-converter.php:87
121
  msgid "Database Server"
122
  msgstr ""
123
 
124
+ #: bbp-admin/bbp-converter.php:91
125
  msgid "Database Port"
126
  msgstr ""
127
 
128
+ #: bbp-admin/bbp-converter.php:95
129
  msgid "Database Name"
130
  msgstr ""
131
 
132
+ #: bbp-admin/bbp-converter.php:99
133
  msgid "Database User"
134
  msgstr ""
135
 
136
+ #: bbp-admin/bbp-converter.php:103
137
  msgid "Database Password"
138
  msgstr ""
139
 
140
+ #: bbp-admin/bbp-converter.php:107
141
  msgid "Table Prefix"
142
  msgstr ""
143
 
144
+ #: bbp-admin/bbp-converter.php:111
145
  msgid "Options"
146
  msgstr ""
147
 
148
+ #: bbp-admin/bbp-converter.php:114
149
  msgid "Rows Limit"
150
  msgstr ""
151
 
152
+ #: bbp-admin/bbp-converter.php:118
153
  msgid "Delay Time"
154
  msgstr ""
155
 
156
+ #: bbp-admin/bbp-converter.php:122
157
  msgid "Convert Users"
158
  msgstr ""
159
 
160
+ #: bbp-admin/bbp-converter.php:126
161
+ msgid "Start Over"
162
+ msgstr ""
163
+
164
+ #: bbp-admin/bbp-converter.php:130
165
+ msgid "Purge Previous Import"
166
  msgstr ""
167
 
168
+ #: bbp-admin/bbp-converter.php:219
169
+ msgid "Starting Conversion"
170
+ msgstr ""
171
+
172
+ #: bbp-admin/bbp-converter.php:244 bbp-admin/bbp-converter.php:471
173
+ msgid "Conversion Complete"
174
  msgstr ""
175
 
176
+ #: bbp-admin/bbp-converter.php:338
177
  msgid "No data to clean"
178
  msgstr ""
179
 
180
+ #: bbp-admin/bbp-converter.php:342
181
  msgid "Deleting previously converted data (%1$s - %2$s)"
182
  msgstr ""
183
 
184
+ #: bbp-admin/bbp-converter.php:358
185
  msgid "No users to convert"
186
  msgstr ""
187
 
188
+ #: bbp-admin/bbp-converter.php:362
189
  msgid "Converting users (%1$s - %2$s)"
190
  msgstr ""
191
 
192
+ #: bbp-admin/bbp-converter.php:378
193
  msgid "No passwords to clear"
194
  msgstr ""
195
 
196
+ #: bbp-admin/bbp-converter.php:382
197
  msgid "Delete users wordpress default passwords (%1$s - %2$s)"
198
  msgstr ""
199
 
200
+ #: bbp-admin/bbp-converter.php:397
201
  msgid "No forums to convert"
202
  msgstr ""
203
 
204
+ #: bbp-admin/bbp-converter.php:401
205
  msgid "Converting forums (%1$s - %2$s)"
206
  msgstr ""
207
 
208
+ #: bbp-admin/bbp-converter.php:412
209
  msgid "No forum parents to convert"
210
  msgstr ""
211
 
212
+ #: bbp-admin/bbp-converter.php:416
213
  msgid "Calculating forum hierarchy (%1$s - %2$s)"
214
  msgstr ""
215
 
216
+ #: bbp-admin/bbp-converter.php:427
217
  msgid "No topics to convert"
218
  msgstr ""
219
 
220
+ #: bbp-admin/bbp-converter.php:431
221
  msgid "Converting topics (%1$s - %2$s)"
222
  msgstr ""
223
 
224
+ #: bbp-admin/bbp-converter.php:442
225
  msgid "No tags to convert"
226
  msgstr ""
227
 
228
+ #: bbp-admin/bbp-converter.php:446
229
  msgid "Converting topic tags (%1$s - %2$s)"
230
  msgstr ""
231
 
232
+ #: bbp-admin/bbp-converter.php:457
233
  msgid "No replies to convert"
234
  msgstr ""
235
 
236
+ #: bbp-admin/bbp-converter.php:461
237
  msgid "Converting replies (%1$s - %2$s)"
238
  msgstr ""
239
 
240
+ #: bbp-admin/bbp-forums.php:120 bbp-admin/bbp-replies.php:132
241
+ #: bbp-admin/bbp-settings.php:1225 bbp-admin/bbp-topics.php:132
 
 
 
 
 
 
 
 
242
  msgid "Overview"
243
  msgstr ""
244
 
245
+ #: bbp-admin/bbp-forums.php:122 bbp-admin/bbp-replies.php:134
246
+ #: bbp-admin/bbp-topics.php:134
247
  msgid ""
248
  "This screen provides access to all of your replies. You can customize the "
249
  "display of this screen to suit your workflow."
250
  msgstr ""
251
 
252
+ #: bbp-admin/bbp-forums.php:128 bbp-admin/bbp-replies.php:140
253
+ #: bbp-admin/bbp-topics.php:140
254
  msgid "Screen Content"
255
  msgstr ""
256
 
257
+ #: bbp-admin/bbp-forums.php:130 bbp-admin/bbp-replies.php:142
258
+ #: bbp-admin/bbp-topics.php:142
259
  msgid ""
260
  "You can customize the display of this screen&#8217;s contents in a number of "
261
  "ways:"
262
  msgstr ""
263
 
264
+ #: bbp-admin/bbp-forums.php:132 bbp-admin/bbp-replies.php:144
265
+ #: bbp-admin/bbp-topics.php:144
266
  msgid ""
267
  "You can hide/display columns based on your needs and decide how many replies "
268
  "to list per screen using the Screen Options tab."
269
  msgstr ""
270
 
271
+ #: bbp-admin/bbp-forums.php:133
272
  msgid ""
273
  "You can filter the list of replies by forum status using the text links in "
274
  "the upper left to show All, Published, Draft, or Trashed replies. The "
275
  "default view is to show all replies."
276
  msgstr ""
277
 
278
+ #: bbp-admin/bbp-forums.php:134 bbp-admin/bbp-replies.php:146
279
+ #: bbp-admin/bbp-topics.php:146
280
  msgid ""
281
  "You can view replies in a simple title list or with an excerpt. Choose the "
282
  "view you prefer by clicking on the icons at the top of the list on the right."
283
  msgstr ""
284
 
285
+ #: bbp-admin/bbp-forums.php:135
286
  msgid ""
287
  "You can refine the list to show only replies in a specific category or from "
288
  "a specific month by using the dropdown menus above the replies list. Click "
290
  "by clicking on the forum author, category or tag in the replies list."
291
  msgstr ""
292
 
293
+ #: bbp-admin/bbp-forums.php:142 bbp-admin/bbp-replies.php:154
294
+ #: bbp-admin/bbp-topics.php:154
295
  msgid "Available Actions"
296
  msgstr ""
297
 
298
+ #: bbp-admin/bbp-forums.php:144
299
  msgid ""
300
  "Hovering over a row in the replies list will display action links that allow "
301
  "you to manage your forum. You can perform the following actions:"
302
  msgstr ""
303
 
304
+ #: bbp-admin/bbp-forums.php:146
305
  msgid ""
306
  "<strong>Edit</strong> takes you to the editing screen for that forum. You "
307
  "can also reach that screen by clicking on the forum title."
308
  msgstr ""
309
 
310
+ #: bbp-admin/bbp-forums.php:148
311
  msgid ""
312
  "<strong>Trash</strong> removes your forum from this list and places it in "
313
  "the trash, from which you can permanently delete it."
314
  msgstr ""
315
 
316
+ #: bbp-admin/bbp-forums.php:149
317
  msgid ""
318
  "<strong>Spam</strong> removes your forum from this list and places it in the "
319
  "spam queue, from which you can permanently delete it."
320
  msgstr ""
321
 
322
+ #: bbp-admin/bbp-forums.php:150
323
  msgid ""
324
  "<strong>Preview</strong> will show you what your draft forum will look like "
325
  "if you publish it. View will take you to your live site to view the forum. "
326
  "Which link is available depends on your forum&#8217;s status."
327
  msgstr ""
328
 
329
+ #: bbp-admin/bbp-forums.php:157 bbp-admin/bbp-replies.php:169
330
+ #: bbp-admin/bbp-topics.php:169
331
  msgid "Bulk Actions"
332
  msgstr ""
333
 
334
+ #: bbp-admin/bbp-forums.php:159 bbp-admin/bbp-replies.php:171
335
+ #: bbp-admin/bbp-topics.php:171
336
  msgid ""
337
  "You can also edit or move multiple replies to the trash at once. Select the "
338
  "replies you want to act on using the checkboxes, then select the action you "
339
  "want to take from the Bulk Actions menu and click Apply."
340
  msgstr ""
341
 
342
+ #: bbp-admin/bbp-forums.php:160
343
  msgid ""
344
  "When using Bulk Edit, you can change the metadata (categories, author, etc.) "
345
  "for all selected replies at once. To remove a forum from the grouping, just "
346
  "click the x next to its name in the Bulk Edit area that appears."
347
  msgstr ""
348
 
349
+ #: bbp-admin/bbp-forums.php:165 bbp-admin/bbp-forums.php:236
350
+ #: bbp-admin/bbp-replies.php:177 bbp-admin/bbp-replies.php:245
351
+ #: bbp-admin/bbp-settings.php:1270 bbp-admin/bbp-topics.php:177
352
+ #: bbp-admin/bbp-topics.php:245
353
  msgid "For more information:"
354
  msgstr ""
355
 
356
+ #: bbp-admin/bbp-forums.php:166 bbp-admin/bbp-forums.php:237
357
+ #: bbp-admin/bbp-replies.php:178 bbp-admin/bbp-replies.php:246
358
+ #: bbp-admin/bbp-settings.php:1271 bbp-admin/bbp-topics.php:178
359
+ #: bbp-admin/bbp-topics.php:246
360
  msgid ""
361
  "<a href=\"http://bbpress.org/documentation/\" target=\"_blank\">bbPress "
362
  "Documentation</a>"
363
  msgstr ""
364
 
365
+ #: bbp-admin/bbp-forums.php:167 bbp-admin/bbp-forums.php:238
366
+ #: bbp-admin/bbp-replies.php:179 bbp-admin/bbp-replies.php:247
367
+ #: bbp-admin/bbp-settings.php:1272 bbp-admin/bbp-topics.php:179
368
+ #: bbp-admin/bbp-topics.php:247
369
  msgid ""
370
  "<a href=\"http://bbpress.org/forums/\" target=\"_blank\">bbPress Support "
371
  "Forums</a>"
372
  msgstr ""
373
 
374
+ #: bbp-admin/bbp-forums.php:181
375
  msgid ""
376
  "The title field and the big forum editing Area are fixed in place, but you "
377
  "can reposition all the other boxes using drag and drop, and can minimize or "
381
  "screen."
382
  msgstr ""
383
 
384
+ #: bbp-admin/bbp-forums.php:185 bbp-admin/bbp-replies.php:197
385
+ #: bbp-admin/bbp-topics.php:197
386
  msgid "Customizing This Display"
387
  msgstr ""
388
 
389
+ #: bbp-admin/bbp-forums.php:191
390
  msgid "Title and Forum Editor"
391
  msgstr ""
392
 
393
+ #: bbp-admin/bbp-forums.php:193
394
  msgid ""
395
  "<strong>Title</strong> - Enter a title for your forum. After you enter a "
396
  "title, you&#8217;ll see the permalink below, which you can edit."
397
  msgstr ""
398
 
399
+ #: bbp-admin/bbp-forums.php:194
400
  msgid ""
401
  "<strong>Forum Editor</strong> - Enter the text for your forum. There are two "
402
  "modes of editing: Visual and HTML. Choose the mode by clicking on the "
410
  "over the top area. Exit Fullscreen back to the regular forum editor."
411
  msgstr ""
412
 
413
+ #: bbp-admin/bbp-forums.php:197
414
  msgid ""
415
  "<strong>Publish</strong> - You can set the terms of publishing your forum in "
416
  "the Publish box. For Status, Visibility, and Publish (immediately), click on "
421
  "future or backdate a forum."
422
  msgstr ""
423
 
424
+ #: bbp-admin/bbp-forums.php:200
425
  msgid ""
426
  "<strong>forum Format</strong> - This designates how your theme will display "
427
  "a specific forum. For example, you could have a <em>standard</em> blog forum "
432
  "formats."
433
  msgstr ""
434
 
435
+ #: bbp-admin/bbp-forums.php:204
436
  msgid ""
437
  "<strong>Featured Image</strong> - This allows you to associate an image with "
438
  "your forum without inserting it. This is usually useful only if your theme "
440
  "custom header, etc."
441
  msgstr ""
442
 
443
+ #: bbp-admin/bbp-forums.php:209 bbp-admin/bbp-forums.php:257
444
  msgid "Forum Attributes"
445
  msgstr ""
446
 
447
+ #: bbp-admin/bbp-forums.php:211
448
  msgid "Select the attributes that your forum should have:"
449
  msgstr ""
450
 
451
+ #: bbp-admin/bbp-forums.php:213
452
  msgid ""
453
  "<strong>Type</strong> indicates if the forum is a category or forum. "
454
  "Categories generally contain other forums."
455
  msgstr ""
456
 
457
+ #: bbp-admin/bbp-forums.php:214
458
  msgid ""
459
  "<strong>Status</strong> allows you to close a forum to new topics and "
460
  "replies."
461
  msgstr ""
462
 
463
+ #: bbp-admin/bbp-forums.php:215
464
  msgid ""
465
  "<strong>Visibility</strong> lets you pick the scope of each forum and what "
466
  "users are allowed to access it."
467
  msgstr ""
468
 
469
+ #: bbp-admin/bbp-forums.php:216
470
  msgid ""
471
  "<strong>Parent</strong> dropdown determines the parent forum. Select the "
472
  "forum or category from the dropdown, or leave the default (No Parent) to "
473
  "create the forum at the root of your forums."
474
  msgstr ""
475
 
476
+ #: bbp-admin/bbp-forums.php:217
477
  msgid "<strong>Order</strong> allows you to order your forums numerically."
478
  msgstr ""
479
 
480
+ #: bbp-admin/bbp-forums.php:223 bbp-admin/bbp-replies.php:232
481
+ #: bbp-admin/bbp-topics.php:232
482
  msgid "Publish Box"
483
  msgstr ""
484
 
485
+ #: bbp-admin/bbp-forums.php:229 bbp-admin/bbp-replies.php:238
486
+ #: bbp-admin/bbp-topics.php:238
487
  msgid "Discussion Settings"
488
  msgstr ""
489
 
490
+ #: bbp-admin/bbp-forums.php:231 bbp-admin/bbp-replies.php:240
491
+ #: bbp-admin/bbp-topics.php:240
492
  msgid ""
493
  "<strong>Send Trackbacks</strong> - Trackbacks are a way to notify legacy "
494
  "blog systems that you&#8217;ve linked to them. Enter the URL(s) you want to "
496
  "notified automatically using pingbacks, and this field is unnecessary."
497
  msgstr ""
498
 
499
+ #: bbp-admin/bbp-forums.php:232
500
  msgid ""
501
  "<strong>Discussion</strong> - You can turn comments and pings on or off, and "
502
  "if there are comments on the forum, you can see them here and moderate them."
503
  msgstr ""
504
 
505
+ #: bbp-admin/bbp-forums.php:419 bbp-admin/bbp-metaboxes.php:50
506
  #: bbp-admin/bbp-metaboxes.php:345 bbp-admin/bbp-metaboxes.php:348
507
  #: bbp-admin/bbp-metaboxes.php:396 bbp-admin/bbp-metaboxes.php:399
508
+ #: bbp-admin/bbp-replies.php:616 bbp-admin/bbp-topics.php:680
509
  #: bbp-includes/bbp-extend-buddypress.php:1405
510
  #: bbp-includes/bbp-forum-template.php:2124
511
  #: bbp-theme-compat/bbpress/loop-forums.php:19
513
  msgid "Forum"
514
  msgstr ""
515
 
516
+ #: bbp-admin/bbp-forums.php:420 bbp-admin/bbp-settings.php:171
517
+ #: bbp-admin/bbp-settings.php:192 bbp-admin/bbp-topics.php:679
518
  #: bbp-includes/bbp-extend-buddypress.php:432
519
  #: bbp-includes/bbp-extend-buddypress.php:1434
520
  #: bbp-includes/bbp-forum-template.php:2272
526
  msgid "Topics"
527
  msgstr ""
528
 
529
+ #: bbp-admin/bbp-forums.php:421 bbp-admin/bbp-settings.php:179
530
+ #: bbp-admin/bbp-settings.php:200 bbp-admin/bbp-topics.php:681
531
  #: bbp-includes/bbp-extend-buddypress.php:433
532
  #: bbp-includes/bbp-forum-template.php:2336
533
  #: bbp-includes/bbp-theme-compatibility.php:493
546
  msgid "Replies"
547
  msgstr ""
548
 
549
+ #: bbp-admin/bbp-forums.php:422
550
  #: bbp-theme-compat/bbpress/content-single-topic-lead.php:18
551
  #: bbp-theme-compat/bbpress/content-single-topic-lead.php:90
552
  #: bbp-themes/bbp-twentyten/bbpress/content-single-topic-lead.php:17
553
  msgid "Creator"
554
  msgstr ""
555
 
556
+ #: bbp-admin/bbp-forums.php:423 bbp-admin/bbp-replies.php:619
557
+ #: bbp-admin/bbp-topics.php:684
558
  msgid "Created"
559
  msgstr ""
560
 
561
+ #: bbp-admin/bbp-forums.php:424 bbp-admin/bbp-topics.php:685
562
  #: bbp-theme-compat/bbpress/loop-forums.php:22
563
  #: bbp-theme-compat/bbpress/loop-topics.php:22
564
  #: bbp-themes/bbp-twentyten/bbpress/loop-forums.php:21
566
  msgid "Freshness"
567
  msgstr ""
568
 
569
+ #: bbp-admin/bbp-forums.php:461 bbp-admin/bbp-replies.php:727
570
+ #: bbp-admin/bbp-topics.php:764
571
  msgid "%1$s <br /> %2$s"
572
  msgstr ""
573
 
575
  msgid "No Topics"
576
  msgstr ""
577
 
578
+ #: bbp-admin/bbp-forums.php:539
579
  msgid "Forum updated. <a href=\"%s\">View forum</a>"
580
  msgstr ""
581
 
582
+ #: bbp-admin/bbp-forums.php:542 bbp-admin/bbp-replies.php:899
583
+ #: bbp-admin/bbp-topics.php:970
584
  msgid "Custom field updated."
585
  msgstr ""
586
 
587
+ #: bbp-admin/bbp-forums.php:545 bbp-admin/bbp-replies.php:902
588
+ #: bbp-admin/bbp-topics.php:973
589
  msgid "Custom field deleted."
590
  msgstr ""
591
 
592
+ #: bbp-admin/bbp-forums.php:548
593
  msgid "Forum updated."
594
  msgstr ""
595
 
596
  #. translators: %s: date and time of the revision
597
+ #: bbp-admin/bbp-forums.php:553
598
  msgid "Forum restored to revision from %s"
599
  msgstr ""
600
 
601
+ #: bbp-admin/bbp-forums.php:557
602
  msgid "Forum created. <a href=\"%s\">View forum</a>"
603
  msgstr ""
604
 
605
+ #: bbp-admin/bbp-forums.php:560
606
  msgid "Forum saved."
607
  msgstr ""
608
 
609
+ #: bbp-admin/bbp-forums.php:563
610
  msgid "Forum submitted. <a target=\"_blank\" href=\"%s\">Preview forum</a>"
611
  msgstr ""
612
 
613
+ #: bbp-admin/bbp-forums.php:566
614
  msgid ""
615
  "Forum scheduled for: <strong>%1$s</strong>. <a target=\"_blank\" href=\"%2$s"
616
  "\">Preview forum</a>"
617
  msgstr ""
618
 
619
  #. translators: Publish box date format, see http:php.net/date
620
+ #: bbp-admin/bbp-forums.php:568 bbp-admin/bbp-replies.php:925
621
+ #: bbp-admin/bbp-topics.php:996
622
  msgid "M j, Y @ G:i"
623
  msgstr ""
624
 
625
+ #: bbp-admin/bbp-forums.php:573
626
  msgid "Forum draft updated. <a target=\"_blank\" href=\"%s\">Preview forum</a>"
627
  msgstr ""
628
 
631
  msgstr ""
632
 
633
  #: bbp-admin/bbp-metaboxes.php:67 bbp-admin/bbp-metaboxes.php:421
634
+ #: bbp-admin/bbp-metaboxes.php:424 bbp-admin/bbp-replies.php:617
635
  #: bbp-theme-compat/bbpress/content-single-topic-lead.php:22
636
  #: bbp-theme-compat/bbpress/content-single-topic-lead.php:94
637
  #: bbp-theme-compat/bbpress/loop-topics.php:19
723
  msgid "Forum Order"
724
  msgstr ""
725
 
726
+ #: bbp-admin/bbp-metaboxes.php:342 bbp-admin/bbp-topics.php:742
727
  msgid "(No Forum)"
728
  msgstr ""
729
 
765
  msgid "IP Address"
766
  msgstr ""
767
 
768
+ #: bbp-admin/bbp-replies.php:145
769
  msgid ""
770
  "You can filter the list of replies by reply status using the text links in "
771
  "the upper left to show All, Published, Draft, or Trashed replies. The "
772
  "default view is to show all replies."
773
  msgstr ""
774
 
775
+ #: bbp-admin/bbp-replies.php:147
776
  msgid ""
777
  "You can refine the list to show only replies in a specific category or from "
778
  "a specific month by using the dropdown menus above the replies list. Click "
780
  "by clicking on the reply author, category or tag in the replies list."
781
  msgstr ""
782
 
783
+ #: bbp-admin/bbp-replies.php:156
784
  msgid ""
785
  "Hovering over a row in the replies list will display action links that allow "
786
  "you to manage your reply. You can perform the following actions:"
787
  msgstr ""
788
 
789
+ #: bbp-admin/bbp-replies.php:158
790
  msgid ""
791
  "<strong>Edit</strong> takes you to the editing screen for that reply. You "
792
  "can also reach that screen by clicking on the reply title."
793
  msgstr ""
794
 
795
+ #: bbp-admin/bbp-replies.php:160
796
  msgid ""
797
  "<strong>Trash</strong> removes your reply from this list and places it in "
798
  "the trash, from which you can permanently delete it."
799
  msgstr ""
800
 
801
+ #: bbp-admin/bbp-replies.php:161
802
  msgid ""
803
  "<strong>Spam</strong> removes your reply from this list and places it in the "
804
  "spam queue, from which you can permanently delete it."
805
  msgstr ""
806
 
807
+ #: bbp-admin/bbp-replies.php:162
808
  msgid ""
809
  "<strong>Preview</strong> will show you what your draft reply will look like "
810
  "if you publish it. View will take you to your live site to view the reply. "
811
  "Which link is available depends on your reply&#8217;s status."
812
  msgstr ""
813
 
814
+ #: bbp-admin/bbp-replies.php:172
815
  msgid ""
816
  "When using Bulk Edit, you can change the metadata (categories, author, etc.) "
817
  "for all selected replies at once. To remove a reply from the grouping, just "
818
  "click the x next to its name in the Bulk Edit area that appears."
819
  msgstr ""
820
 
821
+ #: bbp-admin/bbp-replies.php:193
822
  msgid ""
823
  "The title field and the big reply editing Area are fixed in place, but you "
824
  "can reposition all the other boxes using drag and drop, and can minimize or "
828
  "screen."
829
  msgstr ""
830
 
831
+ #: bbp-admin/bbp-replies.php:203
832
  msgid "Title and Reply Editor"
833
  msgstr ""
834
 
835
+ #: bbp-admin/bbp-replies.php:205
836
  msgid ""
837
  "<strong>Title</strong> - Enter a title for your reply. After you enter a "
838
  "title, you&#8217;ll see the permalink below, which you can edit."
839
  msgstr ""
840
 
841
+ #: bbp-admin/bbp-replies.php:206
842
  msgid ""
843
  "<strong>Reply Editor</strong> - Enter the text for your reply. There are two "
844
  "modes of editing: Visual and HTML. Choose the mode by clicking on the "
852
  "over the top area. Exit Fullscreen back to the regular reply editor."
853
  msgstr ""
854
 
855
+ #: bbp-admin/bbp-replies.php:209
856
  msgid ""
857
  "<strong>Publish</strong> - You can set the terms of publishing your reply in "
858
  "the Publish box. For Status, Visibility, and Publish (immediately), click on "
863
  "future or backdate a reply."
864
  msgstr ""
865
 
866
+ #: bbp-admin/bbp-replies.php:212
867
  msgid ""
868
  "<strong>reply Format</strong> - This designates how your theme will display "
869
  "a specific reply. For example, you could have a <em>standard</em> blog reply "
874
  "formats."
875
  msgstr ""
876
 
877
+ #: bbp-admin/bbp-replies.php:216
878
  msgid ""
879
  "<strong>Featured Image</strong> - This allows you to associate an image with "
880
  "your reply without inserting it. This is usually useful only if your theme "
882
  "custom header, etc."
883
  msgstr ""
884
 
885
+ #: bbp-admin/bbp-replies.php:221 bbp-admin/bbp-replies.php:266
886
  msgid "Reply Attributes"
887
  msgstr ""
888
 
889
+ #: bbp-admin/bbp-replies.php:223
890
  msgid "Select the attributes that your reply should have:"
891
  msgstr ""
892
 
893
+ #: bbp-admin/bbp-replies.php:225
894
  msgid ""
895
  "<strong>Forum</strong> dropdown determines the parent forum that the reply "
896
  "belongs to. Select the forum, or leave the default (Use Forum of Topic) to "
897
  "post the reply in forum of the topic."
898
  msgstr ""
899
 
900
+ #: bbp-admin/bbp-replies.php:226
901
  msgid ""
902
  "<strong>Topic</strong> determines the parent topic that the reply belongs to."
903
  msgstr ""
904
 
905
+ #: bbp-admin/bbp-replies.php:241
906
  msgid ""
907
  "<strong>Discussion</strong> - You can turn comments and pings on or off, and "
908
  "if there are comments on the reply, you can see them here and moderate them."
909
  msgstr ""
910
 
911
+ #: bbp-admin/bbp-replies.php:351 bbp-admin/bbp-topics.php:368
912
  #: bbp-theme-compat/bbpress/form-anonymous.php:17
913
  #: bbp-themes/bbp-twentyten/bbpress/form-anonymous.php:17
914
  msgid "Author Information"
915
  msgstr ""
916
 
917
+ #: bbp-admin/bbp-replies.php:507
918
  msgid "The reply was not found!"
919
  msgstr ""
920
 
921
+ #: bbp-admin/bbp-replies.php:510 bbp-admin/bbp-topics.php:535
922
  msgid "You do not have the permission to do that!"
923
  msgstr ""
924
 
925
+ #: bbp-admin/bbp-replies.php:578
926
  msgid "There was a problem marking the reply \"%1$s\" as spam."
927
  msgstr ""
928
 
929
+ #: bbp-admin/bbp-replies.php:578
930
  msgid "Reply \"%1$s\" successfully marked as spam."
931
  msgstr ""
932
 
933
+ #: bbp-admin/bbp-replies.php:582
934
  msgid "There was a problem unmarking the reply \"%1$s\" as spam."
935
  msgstr ""
936
 
937
+ #: bbp-admin/bbp-replies.php:582
938
  msgid "Reply \"%1$s\" successfully unmarked as spam."
939
  msgstr ""
940
 
941
+ #: bbp-admin/bbp-replies.php:615
942
  msgid "Title"
943
  msgstr ""
944
 
945
+ #: bbp-admin/bbp-replies.php:618 bbp-admin/bbp-topics.php:683
946
  #: bbp-theme-compat/bbpress/loop-replies.php:18
947
  #: bbp-theme-compat/bbpress/loop-replies.php:52
948
  #: bbp-themes/bbp-twentyten/bbpress/loop-replies.php:17
951
  msgid "Author"
952
  msgstr ""
953
 
954
+ #: bbp-admin/bbp-replies.php:672 bbp-admin/bbp-replies.php:680
955
  msgid "No Topic"
956
  msgstr ""
957
 
958
+ #: bbp-admin/bbp-replies.php:698 bbp-admin/bbp-replies.php:713
959
+ #: bbp-admin/bbp-topics.php:735
960
  msgid "No Forum"
961
  msgstr ""
962
 
963
+ #: bbp-admin/bbp-replies.php:704
964
  msgid "(Mismatch)"
965
  msgstr ""
966
 
967
+ #: bbp-admin/bbp-replies.php:772 bbp-admin/bbp-topics.php:824
968
  msgid "View &#8220;%s&#8221;"
969
  msgstr ""
970
 
971
+ #: bbp-admin/bbp-replies.php:772 bbp-admin/bbp-topics.php:824
972
  msgid "View"
973
  msgstr ""
974
 
975
+ #: bbp-admin/bbp-replies.php:783
976
  msgid "Mark the reply as not spam"
977
  msgstr ""
978
 
979
+ #: bbp-admin/bbp-replies.php:783 bbp-admin/bbp-topics.php:855
980
  msgid "Not spam"
981
  msgstr ""
982
 
983
+ #: bbp-admin/bbp-replies.php:785
984
  msgid "Mark this reply as spam"
985
  msgstr ""
986
 
987
+ #: bbp-admin/bbp-replies.php:785 bbp-admin/bbp-topics.php:857
988
+ #: bbp-includes/bbp-reply-template.php:1645
989
  #: bbp-includes/bbp-topic-template.php:2559
990
  msgid "Spam"
991
  msgstr ""
992
 
993
+ #: bbp-admin/bbp-replies.php:794 bbp-admin/bbp-topics.php:865
994
+ #: bbp-includes/bbp-reply-template.php:1589
995
  #: bbp-includes/bbp-topic-template.php:2317
996
  msgid "Restore this item from the Trash"
997
  msgstr ""
998
 
999
+ #: bbp-admin/bbp-replies.php:794 bbp-admin/bbp-topics.php:865
1000
+ #: bbp-includes/bbp-reply-template.php:1575
1001
  #: bbp-includes/bbp-topic-template.php:2303
1002
  msgid "Restore"
1003
  msgstr ""
1004
 
1005
+ #: bbp-admin/bbp-replies.php:796 bbp-admin/bbp-topics.php:867
1006
+ #: bbp-includes/bbp-reply-template.php:1591
1007
  #: bbp-includes/bbp-topic-template.php:2319
1008
  msgid "Move this item to the Trash"
1009
  msgstr ""
1010
 
1011
+ #: bbp-admin/bbp-replies.php:796 bbp-admin/bbp-topics.php:867
1012
+ #: bbp-includes/bbp-reply-template.php:1574
1013
  #: bbp-includes/bbp-topic-template.php:2302
1014
  msgid "Trash"
1015
  msgstr ""
1016
 
1017
+ #: bbp-admin/bbp-replies.php:800 bbp-admin/bbp-topics.php:871
1018
+ #: bbp-includes/bbp-reply-template.php:1595
1019
  #: bbp-includes/bbp-topic-template.php:2323
1020
  msgid "Delete this item permanently"
1021
  msgstr ""
1022
 
1023
+ #: bbp-admin/bbp-replies.php:800 bbp-admin/bbp-topics.php:871
1024
  msgid "Delete Permanently"
1025
  msgstr ""
1026
 
1027
+ #: bbp-admin/bbp-replies.php:826 bbp-admin/bbp-topics.php:897
1028
  msgid "Empty Spam"
1029
  msgstr ""
1030
 
1031
+ #: bbp-admin/bbp-replies.php:836 bbp-admin/bbp-topics.php:907
1032
  msgid "In all forums"
1033
  msgstr ""
1034
 
1035
+ #: bbp-admin/bbp-replies.php:896
1036
  msgid "Reply updated. <a href=\"%s\">View topic</a>"
1037
  msgstr ""
1038
 
1039
+ #: bbp-admin/bbp-replies.php:905
1040
  msgid "Reply updated."
1041
  msgstr ""
1042
 
1043
  #. translators: %s: date and time of the revision
1044
+ #: bbp-admin/bbp-replies.php:910
1045
  msgid "Reply restored to revision from %s"
1046
  msgstr ""
1047
 
1048
+ #: bbp-admin/bbp-replies.php:914
1049
  msgid "Reply created. <a href=\"%s\">View topic</a>"
1050
  msgstr ""
1051
 
1052
+ #: bbp-admin/bbp-replies.php:917
1053
  msgid "Reply saved."
1054
  msgstr ""
1055
 
1056
+ #: bbp-admin/bbp-replies.php:920
1057
  msgid "Reply submitted. <a target=\"_blank\" href=\"%s\">Preview topic</a>"
1058
  msgstr ""
1059
 
1060
+ #: bbp-admin/bbp-replies.php:923
1061
  msgid ""
1062
  "Reply scheduled for: <strong>%1$s</strong>. <a target=\"_blank\" href=\"%2$s"
1063
  "\">Preview topic</a>"
1064
  msgstr ""
1065
 
1066
+ #: bbp-admin/bbp-replies.php:930
1067
  msgid "Reply draft updated. <a target=\"_blank\" href=\"%s\">Preview topic</a>"
1068
  msgstr ""
1069
 
1070
+ #: bbp-admin/bbp-settings.php:24 bbp-admin/bbp-settings.php:1233
1071
+ msgid "Main Settings"
1072
+ msgstr ""
1073
+
1074
  #: bbp-admin/bbp-settings.php:29
1075
  msgid "Theme Packages"
1076
  msgstr ""
1342
  msgstr ""
1343
 
1344
  #: bbp-admin/bbp-settings.php:1075
1345
+ msgid "Some optional parameters to help tune the conversion process."
1346
  msgstr ""
1347
 
1348
  #: bbp-admin/bbp-settings.php:1089
1367
  msgstr ""
1368
 
1369
  #: bbp-admin/bbp-settings.php:1133
1370
+ msgid "Start a fresh conversion from the beginning"
1371
  msgstr ""
1372
 
1373
  #: bbp-admin/bbp-settings.php:1134
1374
+ msgid "You should clean old conversion information before starting over."
1375
  msgstr ""
1376
 
1377
  #: bbp-admin/bbp-settings.php:1148
1378
+ msgid "Purge all information from a previously attempted import"
1379
  msgstr ""
1380
 
1381
  #: bbp-admin/bbp-settings.php:1149
1382
+ msgid ""
1383
+ "Use this if an import failed and you want to remove that incomplete data."
1384
  msgstr ""
1385
 
1386
  #: bbp-admin/bbp-settings.php:1163
1722
  msgid "All Forums"
1723
  msgstr ""
1724
 
1725
+ #: bbp-admin/bbp-tools.php:816 bbp-includes/bbp-topic-functions.php:3115
1726
  #: bbpress.php:535
1727
  msgid "All Topics"
1728
  msgstr ""
1729
 
1730
+ #: bbp-admin/bbp-tools.php:817 bbp-includes/bbp-reply-functions.php:1458
1731
  #: bbpress.php:592
1732
  msgid "All Replies"
1733
  msgstr ""
1804
  msgid "Deleting Roles and Capabilities&hellip; %s"
1805
  msgstr ""
1806
 
1807
+ #: bbp-admin/bbp-topics.php:145
1808
  msgid ""
1809
  "You can filter the list of replies by topic status using the text links in "
1810
  "the upper left to show All, Published, Draft, or Trashed replies. The "
1811
  "default view is to show all replies."
1812
  msgstr ""
1813
 
1814
+ #: bbp-admin/bbp-topics.php:147
1815
  msgid ""
1816
  "You can refine the list to show only replies in a specific category or from "
1817
  "a specific month by using the dropdown menus above the replies list. Click "
1819
  "by clicking on the topic author, category or tag in the replies list."
1820
  msgstr ""
1821
 
1822
+ #: bbp-admin/bbp-topics.php:156
1823
  msgid ""
1824
  "Hovering over a row in the replies list will display action links that allow "
1825
  "you to manage your topic. You can perform the following actions:"
1826
  msgstr ""
1827
 
1828
+ #: bbp-admin/bbp-topics.php:158
1829
  msgid ""
1830
  "<strong>Edit</strong> takes you to the editing screen for that topic. You "
1831
  "can also reach that screen by clicking on the topic title."
1832
  msgstr ""
1833
 
1834
+ #: bbp-admin/bbp-topics.php:160
1835
  msgid ""
1836
  "<strong>Trash</strong> removes your topic from this list and places it in "
1837
  "the trash, from which you can permanently delete it."
1838
  msgstr ""
1839
 
1840
+ #: bbp-admin/bbp-topics.php:161
1841
  msgid ""
1842
  "<strong>Spam</strong> removes your topic from this list and places it in the "
1843
  "spam queue, from which you can permanently delete it."
1844
  msgstr ""
1845
 
1846
+ #: bbp-admin/bbp-topics.php:162
1847
  msgid ""
1848
  "<strong>Preview</strong> will show you what your draft topic will look like "
1849
  "if you publish it. View will take you to your live site to view the topic. "
1850
  "Which link is available depends on your topic&#8217;s status."
1851
  msgstr ""
1852
 
1853
+ #: bbp-admin/bbp-topics.php:172
1854
  msgid ""
1855
  "When using Bulk Edit, you can change the metadata (categories, author, etc.) "
1856
  "for all selected replies at once. To remove a topic from the grouping, just "
1857
  "click the x next to its name in the Bulk Edit area that appears."
1858
  msgstr ""
1859
 
1860
+ #: bbp-admin/bbp-topics.php:193
1861
  msgid ""
1862
  "The title field and the big topic editing Area are fixed in place, but you "
1863
  "can reposition all the other boxes using drag and drop, and can minimize or "
1867
  "screen."
1868
  msgstr ""
1869
 
1870
+ #: bbp-admin/bbp-topics.php:203
1871
  msgid "Title and Topic Editor"
1872
  msgstr ""
1873
 
1874
+ #: bbp-admin/bbp-topics.php:205
1875
  msgid ""
1876
  "<strong>Title</strong> - Enter a title for your topic. After you enter a "
1877
  "title, you&#8217;ll see the permalink below, which you can edit."
1878
  msgstr ""
1879
 
1880
+ #: bbp-admin/bbp-topics.php:206
1881
  msgid ""
1882
  "<strong>Topic Editor</strong> - Enter the text for your topic. There are two "
1883
  "modes of editing: Visual and HTML. Choose the mode by clicking on the "
1891
  "over the top area. Exit Fullscreen back to the regular topic editor."
1892
  msgstr ""
1893
 
1894
+ #: bbp-admin/bbp-topics.php:209
1895
  msgid ""
1896
  "<strong>Publish</strong> - You can set the terms of publishing your topic in "
1897
  "the Publish box. For Status, Visibility, and Publish (immediately), click on "
1902
  "future or backdate a topic."
1903
  msgstr ""
1904
 
1905
+ #: bbp-admin/bbp-topics.php:212
1906
  msgid ""
1907
  "<strong>topic Format</strong> - This designates how your theme will display "
1908
  "a specific topic. For example, you could have a <em>standard</em> blog topic "
1913
  "formats."
1914
  msgstr ""
1915
 
1916
+ #: bbp-admin/bbp-topics.php:216
1917
  msgid ""
1918
  "<strong>Featured Image</strong> - This allows you to associate an image with "
1919
  "your topic without inserting it. This is usually useful only if your theme "
1921
  "custom header, etc."
1922
  msgstr ""
1923
 
1924
+ #: bbp-admin/bbp-topics.php:221 bbp-admin/bbp-topics.php:266
1925
  msgid "Topic Attributes"
1926
  msgstr ""
1927
 
1928
+ #: bbp-admin/bbp-topics.php:223
1929
  msgid "Select the attributes that your topic should have:"
1930
  msgstr ""
1931
 
1932
+ #: bbp-admin/bbp-topics.php:225
1933
  msgid ""
1934
  "<strong>Forum</strong> dropdown determines the parent forum that the topic "
1935
  "belongs to. Select the forum or category from the dropdown, or leave the "
1936
  "default (No Forum) to post the topic without an assigned forum."
1937
  msgstr ""
1938
 
1939
+ #: bbp-admin/bbp-topics.php:226
1940
  msgid ""
1941
  "<strong>Topic Type</strong> dropdown indicates the sticky status of the "
1942
  "topic. Selecting the super sticky option would stick the topic to the front "
1944
  "its respective forum. Selecting normal would not stick the topic anywhere."
1945
  msgstr ""
1946
 
1947
+ #: bbp-admin/bbp-topics.php:241
1948
  msgid ""
1949
  "<strong>Discussion</strong> - You can turn comments and pings on or off, and "
1950
  "if there are comments on the topic, you can see them here and moderate them."
1951
  msgstr ""
1952
 
1953
+ #: bbp-admin/bbp-topics.php:532
1954
  msgid "The topic was not found!"
1955
  msgstr ""
1956
 
1957
+ #: bbp-admin/bbp-topics.php:622
1958
  msgid "There was a problem opening the topic \"%1$s\"."
1959
  msgstr ""
1960
 
1961
+ #: bbp-admin/bbp-topics.php:622
1962
  msgid "Topic \"%1$s\" successfully opened."
1963
  msgstr ""
1964
 
1965
+ #: bbp-admin/bbp-topics.php:626
1966
  msgid "There was a problem closing the topic \"%1$s\"."
1967
  msgstr ""
1968
 
1969
+ #: bbp-admin/bbp-topics.php:626
1970
  msgid "Topic \"%1$s\" successfully closed."
1971
  msgstr ""
1972
 
1973
+ #: bbp-admin/bbp-topics.php:630
1974
  msgid "There was a problem sticking the topic \"%1$s\" to front."
1975
  msgstr ""
1976
 
1977
+ #: bbp-admin/bbp-topics.php:630
1978
  msgid "Topic \"%1$s\" successfully sticked to front."
1979
  msgstr ""
1980
 
1981
+ #: bbp-admin/bbp-topics.php:634
1982
  msgid "There was a problem sticking the topic \"%1$s\"."
1983
  msgstr ""
1984
 
1985
+ #: bbp-admin/bbp-topics.php:634
1986
  msgid "Topic \"%1$s\" successfully sticked."
1987
  msgstr ""
1988
 
1989
+ #: bbp-admin/bbp-topics.php:638
1990
  msgid "There was a problem unsticking the topic \"%1$s\"."
1991
  msgstr ""
1992
 
1993
+ #: bbp-admin/bbp-topics.php:638
1994
  msgid "Topic \"%1$s\" successfully unsticked."
1995
  msgstr ""
1996
 
1997
+ #: bbp-admin/bbp-topics.php:642
1998
  msgid "There was a problem marking the topic \"%1$s\" as spam."
1999
  msgstr ""
2000
 
2001
+ #: bbp-admin/bbp-topics.php:642
2002
  msgid "Topic \"%1$s\" successfully marked as spam."
2003
  msgstr ""
2004
 
2005
+ #: bbp-admin/bbp-topics.php:646
2006
  msgid "There was a problem unmarking the topic \"%1$s\" as spam."
2007
  msgstr ""
2008
 
2009
+ #: bbp-admin/bbp-topics.php:646
2010
  msgid "Topic \"%1$s\" successfully unmarked as spam."
2011
  msgstr ""
2012
 
2013
+ #: bbp-admin/bbp-topics.php:682 bbp-theme-compat/bbpress/loop-topics.php:20
2014
  #: bbp-themes/bbp-twentyten/bbpress/loop-topics.php:18
2015
  msgid "Voices"
2016
  msgstr ""
2017
 
2018
+ #: bbp-admin/bbp-topics.php:777 bbp-includes/bbp-topic-template.php:1761
2019
  msgid "No Replies"
2020
  msgstr ""
2021
 
2022
+ #: bbp-admin/bbp-topics.php:834
2023
  msgid "Close this topic"
2024
  msgstr ""
2025
 
2026
+ #: bbp-admin/bbp-topics.php:834
2027
  msgctxt "Close a Topic"
2028
  msgid "Close"
2029
  msgstr ""
2030
 
2031
+ #: bbp-admin/bbp-topics.php:836
2032
  msgid "Open this topic"
2033
  msgstr ""
2034
 
2035
+ #: bbp-admin/bbp-topics.php:836
2036
  msgctxt "Open a Topic"
2037
  msgid "Open"
2038
  msgstr ""
2039
 
2040
+ #: bbp-admin/bbp-topics.php:845
2041
  msgid "Unstick this topic"
2042
  msgstr ""
2043
 
2044
+ #: bbp-admin/bbp-topics.php:845 bbp-includes/bbp-topic-template.php:2433
2045
  msgid "Unstick"
2046
  msgstr ""
2047
 
2048
+ #: bbp-admin/bbp-topics.php:848
2049
  msgid "Stick this topic to its forum"
2050
  msgstr ""
2051
 
2052
+ #: bbp-admin/bbp-topics.php:848 bbp-includes/bbp-topic-template.php:2432
2053
  msgid "Stick"
2054
  msgstr ""
2055
 
2056
+ #: bbp-admin/bbp-topics.php:848
2057
  msgid "Stick this topic to front"
2058
  msgstr ""
2059
 
2060
+ #: bbp-admin/bbp-topics.php:848 bbp-includes/bbp-topic-template.php:2434
2061
  msgid "to front"
2062
  msgstr ""
2063
 
2064
+ #: bbp-admin/bbp-topics.php:855
2065
  msgid "Mark the topic as not spam"
2066
  msgstr ""
2067
 
2068
+ #: bbp-admin/bbp-topics.php:857
2069
  msgid "Mark this topic as spam"
2070
  msgstr ""
2071
 
2072
+ #: bbp-admin/bbp-topics.php:967
2073
  msgid "Topic updated. <a href=\"%s\">View topic</a>"
2074
  msgstr ""
2075
 
2076
+ #: bbp-admin/bbp-topics.php:976
2077
  msgid "Topic updated."
2078
  msgstr ""
2079
 
2080
  #. translators: %s: date and time of the revision
2081
+ #: bbp-admin/bbp-topics.php:981
2082
  msgid "Topic restored to revision from %s"
2083
  msgstr ""
2084
 
2085
+ #: bbp-admin/bbp-topics.php:985
2086
  msgid "Topic created. <a href=\"%s\">View topic</a>"
2087
  msgstr ""
2088
 
2089
+ #: bbp-admin/bbp-topics.php:988
2090
  msgid "Topic saved."
2091
  msgstr ""
2092
 
2093
+ #: bbp-admin/bbp-topics.php:991
2094
  msgid "Topic submitted. <a target=\"_blank\" href=\"%s\">Preview topic</a>"
2095
  msgstr ""
2096
 
2097
+ #: bbp-admin/bbp-topics.php:994
2098
  msgid ""
2099
  "Topic scheduled for: <strong>%1$s</strong>. <a target=\"_blank\" href=\"%2$s"
2100
  "\">Preview topic</a>"
2101
  msgstr ""
2102
 
2103
+ #: bbp-admin/bbp-topics.php:1001
2104
  msgid "Topic draft updated. <a target=\"_blank\" href=\"%s\">Preview topic</a>"
2105
  msgstr ""
2106
 
2261
  msgstr ""
2262
 
2263
  #: bbp-includes/bbp-common-template.php:1832
2264
+ #: bbp-includes/bbp-reply-template.php:1454
2265
  #: bbp-includes/bbp-topic-template.php:2181 bbpress.php:481 bbpress.php:538
2266
  #: bbpress.php:595
2267
  msgid "Edit"
2849
  msgid "<strong>ERROR</strong>: There was a problem deleting the reply!"
2850
  msgstr ""
2851
 
2852
+ #: bbp-includes/bbp-reply-functions.php:1456
2853
  msgid "All Posts"
2854
  msgstr ""
2855
 
2856
+ #: bbp-includes/bbp-reply-functions.php:1498
2857
+ #: bbp-includes/bbp-topic-functions.php:3140
2858
  msgid "Replies: %s"
2859
  msgstr ""
2860
 
2861
+ #: bbp-includes/bbp-reply-template.php:576
2862
  msgid "This reply was modified %1$s by %2$s. Reason: %3$s"
2863
  msgstr ""
2864
 
2865
+ #: bbp-includes/bbp-reply-template.php:578
2866
  msgid "This reply was modified %1$s by %2$s."
2867
  msgstr ""
2868
 
2869
+ #: bbp-includes/bbp-reply-template.php:859
2870
  #: bbp-includes/bbp-topic-template.php:1168
2871
  #: bbp-includes/bbp-user-template.php:162
2872
  msgid "Anonymous"
2873
  msgstr ""
2874
 
2875
+ #: bbp-includes/bbp-reply-template.php:960
2876
  #: bbp-includes/bbp-topic-template.php:1273
2877
  #: bbp-includes/bbp-user-template.php:1194
2878
  msgid "View %s's profile"
2879
  msgstr ""
2880
 
2881
+ #: bbp-includes/bbp-reply-template.php:960
2882
  #: bbp-includes/bbp-topic-template.php:1273
2883
  #: bbp-includes/bbp-user-template.php:1194
2884
  msgid "Visit %s's website"
2885
  msgstr ""
2886
 
2887
+ #: bbp-includes/bbp-reply-template.php:1576
2888
  #: bbp-includes/bbp-topic-template.php:2304
2889
  #: bbp-theme-compat/bbpress/form-topic-tag.php:88
2890
  #: bbp-theme-compat/bbpress/form-topic-tag.php:101
2893
  msgid "Delete"
2894
  msgstr ""
2895
 
2896
+ #: bbp-includes/bbp-reply-template.php:1595
2897
  #: bbp-includes/bbp-topic-template.php:2323
2898
  msgid "Are you sure you want to delete that permanently?"
2899
  msgstr ""
2900
 
2901
+ #: bbp-includes/bbp-reply-template.php:1646
2902
  #: bbp-includes/bbp-topic-template.php:2560
2903
  msgid "Unspam"
2904
  msgstr ""
2905
 
2906
+ #: bbp-includes/bbp-reply-template.php:1709
2907
  msgid "Split"
2908
  msgstr ""
2909
 
2910
+ #: bbp-includes/bbp-reply-template.php:1710
2911
  msgid "Split the topic from this reply"
2912
  msgstr ""
2913
 
2914
+ #: bbp-includes/bbp-reply-template.php:1817
2915
  msgid "Viewing %1$s reply"
2916
  msgid_plural "Viewing %1$s replies"
2917
  msgstr[0] ""
2918
  msgstr[1] ""
2919
 
2920
+ #: bbp-includes/bbp-reply-template.php:1821
2921
  msgid "Viewing %2$s replies (of %4$s total)"
2922
  msgid_plural "Viewing %1$s replies - %2$s through %3$s (of %4$s total)"
2923
  msgstr[0] ""
2924
  msgstr[1] ""
2925
 
2926
+ #: bbp-includes/bbp-reply-template.php:1829
2927
  msgid "Viewing %1$s post"
2928
  msgid_plural "Viewing %1$s posts"
2929
  msgstr[0] ""
2930
  msgstr[1] ""
2931
 
2932
+ #: bbp-includes/bbp-reply-template.php:1833
2933
  msgid "Viewing %2$s post (of %4$s total)"
2934
  msgid_plural "Viewing %1$s posts - %2$s through %3$s (of %4$s total)"
2935
  msgstr[0] ""
4352
  msgid "bbPress"
4353
  msgstr ""
4354
 
4355
+ #. #-#-#-#-# plugin.pot (bbPress 2.1) #-#-#-#-#
4356
  #. Plugin URI of the plugin/theme
4357
+ #. #-#-#-#-# plugin.pot (bbPress 2.1) #-#-#-#-#
4358
  #. Author URI of the plugin/theme
4359
  msgid "http://bbpress.org"
4360
  msgstr ""
bbp-theme-compat/bbpress/content-single-forum.php CHANGED
@@ -37,7 +37,7 @@
37
 
38
  <?php bbp_get_template_part( 'form', 'topic' ); ?>
39
 
40
- <?php elseif( !bbp_is_forum_category() ) : ?>
41
 
42
  <?php bbp_get_template_part( 'feedback', 'no-topics' ); ?>
43
 
37
 
38
  <?php bbp_get_template_part( 'form', 'topic' ); ?>
39
 
40
+ <?php elseif ( !bbp_is_forum_category() ) : ?>
41
 
42
  <?php bbp_get_template_part( 'feedback', 'no-topics' ); ?>
43
 
bbp-themes/bbp-twentyten/bbpress/content-single-forum.php CHANGED
@@ -37,7 +37,7 @@
37
 
38
  <?php bbp_get_template_part( 'form', 'topic' ); ?>
39
 
40
- <?php elseif( !bbp_is_forum_category() ) : ?>
41
 
42
  <?php bbp_get_template_part( 'feedback', 'no-topics' ); ?>
43
 
37
 
38
  <?php bbp_get_template_part( 'form', 'topic' ); ?>
39
 
40
+ <?php elseif ( !bbp_is_forum_category() ) : ?>
41
 
42
  <?php bbp_get_template_part( 'feedback', 'no-topics' ); ?>
43
 
bbp-themes/bbp-twentyten/bbpress/content-single-topic.php CHANGED
@@ -39,6 +39,10 @@
39
 
40
  <?php bbp_get_template_part( 'pagination', 'replies' ); ?>
41
 
 
 
 
 
42
  <?php endif; ?>
43
 
44
  <?php bbp_get_template_part( 'form', 'reply' ); ?>
39
 
40
  <?php bbp_get_template_part( 'pagination', 'replies' ); ?>
41
 
42
+ <?php elseif ( bbporg_reply_search_query() ) : ?>
43
+
44
+ <?php bbp_get_template_part( 'feedback', 'no-replies' ); ?>
45
+
46
  <?php endif; ?>
47
 
48
  <?php bbp_get_template_part( 'form', 'reply' ); ?>
bbp-themes/bbp-twentyten/rtl.css CHANGED
@@ -3,7 +3,7 @@
3
  * Theme URI: http://bbpress.org
4
  * Description: Adds bbPress forums to the Twenty Ten theme
5
  * Author: WordPress and bbPress teams
6
- * Version: 1.1
7
  * Tags: bbpress, black, blue, white, two-columns, fixed-width, custom-header, custom-background, threaded-comments, sticky-post, translation-ready, microformats, rtl-language-support, editor-style
8
  * Template: twentyten
9
  *
3
  * Theme URI: http://bbpress.org
4
  * Description: Adds bbPress forums to the Twenty Ten theme
5
  * Author: WordPress and bbPress teams
6
+ * Version: 1.4
7
  * Tags: bbpress, black, blue, white, two-columns, fixed-width, custom-header, custom-background, threaded-comments, sticky-post, translation-ready, microformats, rtl-language-support, editor-style
8
  * Template: twentyten
9
  *
bbp-themes/bbp-twentyten/style.css CHANGED
@@ -3,7 +3,7 @@
3
  * Theme URI: http://bbpress.org
4
  * Description: Adds bbPress forums to the Twenty Ten theme
5
  * Author: WordPress and bbPress teams
6
- * Version: 1.2
7
  * Tags: bbpress, black, blue, white, two-columns, fixed-width, custom-header, custom-background, threaded-comments, sticky-post, translation-ready, microformats, rtl-language-support, editor-style
8
  * Template: twentyten
9
  *
3
  * Theme URI: http://bbpress.org
4
  * Description: Adds bbPress forums to the Twenty Ten theme
5
  * Author: WordPress and bbPress teams
6
+ * Version: 1.4
7
  * Tags: bbpress, black, blue, white, two-columns, fixed-width, custom-header, custom-background, threaded-comments, sticky-post, translation-ready, microformats, rtl-language-support, editor-style
8
  * Template: twentyten
9
  *
bbpress.php CHANGED
@@ -5,7 +5,7 @@
5
  *
6
  * bbPress is forum software with a twist from the creators of WordPress.
7
  *
8
- * $Id: bbpress.php 4043 2012-07-02 01:01:29Z johnjamesjacoby $
9
  *
10
  * @package bbPress
11
  * @subpackage Main
@@ -17,7 +17,7 @@
17
  * Description: bbPress is forum software with a twist from the creators of WordPress.
18
  * Author: The bbPress Community
19
  * Author URI: http://bbpress.org
20
- * Version: 2.1-rc4
21
  * Text Domain: bbpress
22
  * Domain Path: /bbp-languages/
23
  */
@@ -173,8 +173,8 @@ final class bbPress {
173
 
174
  /** Versions **********************************************************/
175
 
176
- $this->version = '2.1-rc4'; // bbPress version
177
- $this->db_version = '203'; // bbPress DB version
178
 
179
  /** Paths *************************************************************/
180
 
@@ -512,7 +512,7 @@ final class bbPress {
512
  'description' => __( 'bbPress Forums', 'bbpress' ),
513
  'capabilities' => bbp_get_forum_caps(),
514
  'capability_type' => array( 'forum', 'forums' ),
515
- 'menu_position' => 56,
516
  'has_archive' => bbp_get_root_slug(),
517
  'exclude_from_search' => true,
518
  'show_in_nav_menus' => true,
@@ -569,7 +569,7 @@ final class bbPress {
569
  'description' => __( 'bbPress Topics', 'bbpress' ),
570
  'capabilities' => bbp_get_topic_caps(),
571
  'capability_type' => array( 'topic', 'topics' ),
572
- 'menu_position' => 57,
573
  'has_archive' => bbp_get_topic_archive_slug(),
574
  'exclude_from_search' => true,
575
  'show_in_nav_menus' => false,
@@ -626,7 +626,7 @@ final class bbPress {
626
  'description' => __( 'bbPress Replies', 'bbpress' ),
627
  'capabilities' => bbp_get_reply_caps(),
628
  'capability_type' => array( 'reply', 'replies' ),
629
- 'menu_position' => 58,
630
  'exclude_from_search' => true,
631
  'has_archive' => false,
632
  'show_in_nav_menus' => false,
5
  *
6
  * bbPress is forum software with a twist from the creators of WordPress.
7
  *
8
+ * $Id: bbpress.php 4073 2012-07-08 11:06:00Z johnjamesjacoby $
9
  *
10
  * @package bbPress
11
  * @subpackage Main
17
  * Description: bbPress is forum software with a twist from the creators of WordPress.
18
  * Author: The bbPress Community
19
  * Author URI: http://bbpress.org
20
+ * Version: 2.1
21
  * Text Domain: bbpress
22
  * Domain Path: /bbp-languages/
23
  */
173
 
174
  /** Versions **********************************************************/
175
 
176
+ $this->version = '2.1'; // bbPress version
177
+ $this->db_version = '210'; // bbPress DB version
178
 
179
  /** Paths *************************************************************/
180
 
512
  'description' => __( 'bbPress Forums', 'bbpress' ),
513
  'capabilities' => bbp_get_forum_caps(),
514
  'capability_type' => array( 'forum', 'forums' ),
515
+ 'menu_position' => 555555,
516
  'has_archive' => bbp_get_root_slug(),
517
  'exclude_from_search' => true,
518
  'show_in_nav_menus' => true,
569
  'description' => __( 'bbPress Topics', 'bbpress' ),
570
  'capabilities' => bbp_get_topic_caps(),
571
  'capability_type' => array( 'topic', 'topics' ),
572
+ 'menu_position' => 555555,
573
  'has_archive' => bbp_get_topic_archive_slug(),
574
  'exclude_from_search' => true,
575
  'show_in_nav_menus' => false,
626
  'description' => __( 'bbPress Replies', 'bbpress' ),
627
  'capabilities' => bbp_get_reply_caps(),
628
  'capability_type' => array( 'reply', 'replies' ),
629
+ 'menu_position' => 555555,
630
  'exclude_from_search' => true,
631
  'has_archive' => false,
632
  'show_in_nav_menus' => false,
humans.txt CHANGED
@@ -36,10 +36,10 @@ Favorite Food: BBQ
36
  Name: John James Jacoby
37
  Title: Lead Developer
38
  Twitter: jjj
39
- Favorite Food: Pizza
40
 
41
  /* THANKS */
42
- Mike Adams, Gautam Gupta, Ben L, Justin Tadlock, cnorris23, anointed, andy, nacin
43
 
44
  /* META */
45
  Updated: 2011/05/29
36
  Name: John James Jacoby
37
  Title: Lead Developer
38
  Twitter: jjj
39
+ Favorite Food: Truffle Lasagna
40
 
41
  /* THANKS */
42
+ Mike Adams, Gautam Gupta, Ben L, Justin Tadlock, cnorris23, anointed, andy, nacin, netweb
43
 
44
  /* META */
45
  Updated: 2011/05/29
readme.txt CHANGED
@@ -1,13 +1,13 @@
1
  === bbPress ===
2
  Contributors: matt, johnjamesjacoby
3
- Tags: bbpress, forums, discussion, support, theme, buddypress, akismet, multisite
4
  Requires at least: 3.4
5
  Tested up to: 3.4
6
- Stable tag: 2.0.3
7
  License: GPLv2 or later
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
 
10
- bbPress is forum software with a twist from the creators of WordPress
11
 
12
  == Description ==
13
 
@@ -26,42 +26,33 @@ We're keeping things as small and light as possible while still allowing for gre
26
 
27
  == Changelog ==
28
 
29
- = 2.1-rc-4 =
30
- * Improved cache busting on creation
 
 
 
 
31
  * Fixed Akismet edit bug
32
  * Fixed Widgets nooping globals
33
  * Fixed translation load order
34
-
35
- = 2.1-rc-3 =
36
- * Improve nonce checks
37
- * Fixed user-edit bug
38
-
39
- = 2.1-rc-2 =
40
- * Fix settings screen regressions
41
- * Run topic and reply edits through Akismet
42
-
43
- = 2.1-rc-1 =
44
  * Improved post cache invalidation
 
45
  * Improved admin settings API
46
  * Improved bbPress 1.1 converter
47
- * Added 2x menu icons for HiDPI displays
48
-
49
- = 2.1-beta-1 =
50
  * Improved BuddyPress integration
51
  * Improved Theme-Compatibility
52
  * Improved template coverage
53
  * Improved query performance
54
  * Improved breadcrumb behavior
55
  * Improved multisite integration
56
- * Improved coding clarity
57
- * WordPress 3.4 compatibility
58
- * Deprecate $bbp global, use bbpress() singleton
59
- * Private forums now visible to registered users
60
- * Updated converter
61
- * RTL fixes
62
- * Add fancy editor support
63
- * Add fallback theme picker
64
- * Add tools for importing, resetting, and uninstalling
65
 
66
  = 2.0 =
67
  * Released on September 21, 2011
1
  === bbPress ===
2
  Contributors: matt, johnjamesjacoby
3
+ Tags: forums, discussion, support, theme, akismet, multisite
4
  Requires at least: 3.4
5
  Tested up to: 3.4
6
+ Stable tag: 2.1
7
  License: GPLv2 or later
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
 
10
+ bbPress is forum software, made the WordPress way
11
 
12
  == Description ==
13
 
26
 
27
  == Changelog ==
28
 
29
+ = 2.1 =
30
+ * WordPress 3.4 compatibility
31
+ * Deprecate $bbp global, use bbpress() singleton
32
+ * Private forums now visible to registered users
33
+ * Updated forum converter
34
+ * Topic and reply edits now ran through Akismet
35
  * Fixed Akismet edit bug
36
  * Fixed Widgets nooping globals
37
  * Fixed translation load order
38
+ * Fixed user-edit bugs
39
+ * Fixed settings screen regressions
 
 
 
 
 
 
 
 
40
  * Improved post cache invalidation
41
+ * Improved admin-side nonce checks
42
  * Improved admin settings API
43
  * Improved bbPress 1.1 converter
 
 
 
44
  * Improved BuddyPress integration
45
  * Improved Theme-Compatibility
46
  * Improved template coverage
47
  * Improved query performance
48
  * Improved breadcrumb behavior
49
  * Improved multisite integration
50
+ * Improved code clarity
51
+ * Improved RTL styling
52
+ * Added 2x menu icons for HiDPI displays
53
+ * Added fancy editor support
54
+ * Added fallback theme picker
55
+ * Added tools for importing, resetting, and removing
 
 
 
56
 
57
  = 2.0 =
58
  * Released on September 21, 2011