bbPress - Version 2.6-rc-3

Version Description

Download this release

Release Info

Developer johnjamesjacoby
Plugin Icon 128x128 bbPress
Version 2.6-rc-3
Comparing to
See all releases

Code changes from version 2.6-rc-1 to 2.6-rc-3

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 6510 2017-06-09 15:17:02Z 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 Contributors
19
  * Author URI: https://bbpress.org
20
- * Version: 2.6-rc-1
21
  * Text Domain: bbpress
22
  * Domain Path: /languages/
23
  * License: GPLv2 or later (license.txt)
@@ -204,8 +204,8 @@ final class bbPress {
204
 
205
  /** Versions **********************************************************/
206
 
207
- $this->version = '2.6-rc-6509';
208
- $this->db_version = '261';
209
 
210
  /** Paths *************************************************************/
211
 
5
  *
6
  * bbPress is forum software with a twist from the creators of WordPress.
7
  *
8
+ * $Id: bbpress.php 6535 2017-06-12 21:54:07Z 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 Contributors
19
  * Author URI: https://bbpress.org
20
+ * Version: 2.6-rc-3
21
  * Text Domain: bbpress
22
  * Domain Path: /languages/
23
  * License: GPLv2 or later (license.txt)
204
 
205
  /** Versions **********************************************************/
206
 
207
+ $this->version = '2.6-rc-6535';
208
+ $this->db_version = '262';
209
 
210
  /** Paths *************************************************************/
211
 
bbpress.pot CHANGED
@@ -2,9 +2,9 @@
2
  # This file is distributed under the GPLv2 or later (license.txt).
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: bbPress 2.6-rc-1\n"
6
  "Report-Msgid-Bugs-To: https://bbpress.trac.wordpress.org\n"
7
- "POT-Creation-Date: 2017-06-09 15:27:38+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=utf-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
@@ -46,11 +46,11 @@ msgid "bbPress Item Count"
46
  msgstr ""
47
 
48
  #: includes/admin/actions.php:158 includes/admin/forums.php:581
49
- #: includes/admin/settings.php:256 includes/admin/settings.php:277
50
  #: includes/admin/tools/common.php:302 includes/admin/topics.php:888
51
  #: includes/extend/buddypress/activity.php:204
52
  #: includes/extend/buddypress/activity.php:409
53
- #: includes/forums/template.php:2919 includes/topics/template.php:51
54
  #: includes/topics/template.php:52
55
  #: templates/default/bbpress/content-statistics.php:30
56
  #: templates/default/bbpress/loop-forums.php:21
@@ -58,13 +58,13 @@ msgid "Topics"
58
  msgstr ""
59
 
60
  #: includes/admin/actions.php:163 includes/admin/actions.php:175
61
- #: includes/admin/forums.php:582 includes/admin/settings.php:264
62
- #: includes/admin/settings.php:285 includes/admin/tools/common.php:305
63
  #: includes/admin/topics.php:406 includes/admin/topics.php:890
64
  #: includes/core/theme-compat.php:691
65
  #: includes/extend/buddypress/activity.php:214
66
  #: includes/extend/buddypress/activity.php:410
67
- #: includes/forums/template.php:2984 includes/replies/template.php:51
68
  #: includes/replies/template.php:52
69
  #: templates/default/bbpress/content-statistics.php:35
70
  #: templates/default/bbpress/loop-forums.php:23
@@ -77,7 +77,7 @@ msgstr ""
77
  #: includes/admin/actions.php:170 includes/admin/actions.php:182
78
  #: includes/admin/forums.php:580 includes/admin/metaboxes.php:97
79
  #: includes/admin/metaboxes.php:425 includes/admin/metaboxes.php:492
80
- #: includes/admin/replies.php:684 includes/admin/settings.php:327
81
  #: includes/admin/topics.php:889 includes/extend/buddypress/groups.php:50
82
  #: includes/extend/buddypress/groups.php:51 includes/forums/template.php:54
83
  #: templates/default/bbpress/loop-forums.php:20
@@ -86,7 +86,7 @@ msgstr ""
86
 
87
  #: includes/admin/actions.php:187 includes/admin/metaboxes.php:114
88
  #: includes/admin/metaboxes.php:519 includes/admin/replies.php:685
89
- #: includes/admin/settings.php:335 includes/topics/template.php:53
90
  #: templates/default/bbpress/content-single-topic-lead.php:23
91
  #: templates/default/bbpress/content-single-topic-lead.php:91
92
  #: templates/default/bbpress/loop-topics.php:18
@@ -96,7 +96,7 @@ msgstr ""
96
  #: includes/admin/admin.php:242 includes/admin/admin.php:243
97
  #: includes/admin/admin.php:252 includes/admin/admin.php:253
98
  #: includes/admin/tools/common.php:299 includes/admin/tools.php:30
99
- #: includes/admin/users.php:97 includes/common/widgets.php:682
100
  #: includes/extend/buddypress/loader.php:42
101
  #: includes/extend/buddypress/loader.php:179
102
  #: includes/extend/buddypress/loader.php:301
@@ -113,70 +113,70 @@ msgstr ""
113
 
114
  #: includes/admin/admin.php:289 includes/admin/admin.php:290
115
  #: includes/admin/admin.php:313 includes/admin/admin.php:314
116
- #: includes/admin/admin.php:1047 includes/admin/admin.php:1144
117
  msgid "Update Forums"
118
  msgstr ""
119
 
120
- #: includes/admin/admin.php:529
121
  msgid "Settings"
122
  msgstr ""
123
 
124
- #: includes/admin/admin.php:534
125
  msgid "About"
126
  msgstr ""
127
 
128
- #: includes/admin/admin.php:553
129
  msgid "About bbPress"
130
  msgstr ""
131
 
132
- #: includes/admin/admin.php:723 includes/admin/admin.php:760
133
  msgid "%s - %s"
134
  msgstr ""
135
 
136
- #: includes/admin/admin.php:778 includes/admin/admin.php:855
137
  msgid "Welcome to bbPress %s"
138
  msgstr ""
139
 
140
- #: includes/admin/admin.php:779 includes/admin/admin.php:856
141
  msgid ""
142
  "Thank you for updating! bbPress %s is sweet and savory, contains no "
143
  "artificial flavors or preservatives, is environmentally friendly, and is a "
144
  "great compliment to your site."
145
  msgstr ""
146
 
147
- #: includes/admin/admin.php:784 includes/admin/admin.php:861
148
  msgid "What’s New"
149
  msgstr ""
150
 
151
- #: includes/admin/admin.php:786 includes/admin/admin.php:863
152
  msgid "Credits"
153
  msgstr ""
154
 
155
- #: includes/admin/admin.php:791
156
  msgid "Forum Subscriptions"
157
  msgstr ""
158
 
159
- #: includes/admin/admin.php:795
160
  msgid "Subscribe to Forums"
161
  msgstr ""
162
 
163
- #: includes/admin/admin.php:796
164
  msgid "Now your users can subscribe to new topics in specific forums."
165
  msgstr ""
166
 
167
- #: includes/admin/admin.php:800
168
  msgid "Manage Subscriptions"
169
  msgstr ""
170
 
171
- #: includes/admin/admin.php:801
172
  msgid "Your users can manage all of their subscriptions in one convenient location."
173
  msgstr ""
174
 
175
- #: includes/admin/admin.php:807
176
  msgid "Converters"
177
  msgstr ""
178
 
179
- #: includes/admin/admin.php:811
180
  msgid ""
181
  "We’re all abuzz about the hive of new importers, AEF, Drupal, FluxBB, "
182
  "Kunena Forums for Joomla, MyBB, Phorum, PHPFox, PHPWind, PunBB, SMF, "
@@ -185,363 +185,319 @@ msgid ""
185
  "now gone if you need to remove imported users."
186
  msgstr ""
187
 
188
- #: includes/admin/admin.php:817
189
  msgid "Theme Compatibility"
190
  msgstr ""
191
 
192
- #: includes/admin/admin.php:818
193
  msgid "Better handling of styles and scripts in the template stack."
194
  msgstr ""
195
 
196
- #: includes/admin/admin.php:822
197
  msgid "Polyglot support"
198
  msgstr ""
199
 
200
- #: includes/admin/admin.php:823
201
  msgid "bbPress fully supports automatic translation updates."
202
  msgstr ""
203
 
204
- #: includes/admin/admin.php:827
205
  msgid "User capabilities"
206
  msgstr ""
207
 
208
- #: includes/admin/admin.php:828
209
  msgid "Roles and capabilities have been swept through, cleaned up, and simplified."
210
  msgstr ""
211
 
212
- #: includes/admin/admin.php:834 includes/admin/admin.php:977
213
  msgid "Go to Forum Settings"
214
  msgstr ""
215
 
216
- #: includes/admin/admin.php:867
217
  msgid "bbPress is created by a worldwide swarm of busy, busy bees."
218
  msgstr ""
219
 
220
- #: includes/admin/admin.php:869
221
  msgid "Project Leaders"
222
  msgstr ""
223
 
224
- #: includes/admin/admin.php:873
225
  msgid "Founding Developer"
226
  msgstr ""
227
 
228
- #: includes/admin/admin.php:877
229
  msgid "Lead Developer"
230
  msgstr ""
231
 
232
- #: includes/admin/admin.php:881 includes/admin/admin.php:905
233
  msgid "Feature Developer"
234
  msgstr ""
235
 
236
- #: includes/admin/admin.php:885
237
  msgid "Converter Specialist"
238
  msgstr ""
239
 
240
- #: includes/admin/admin.php:889
241
  msgid "Contributing Developers"
242
  msgstr ""
243
 
244
- #: includes/admin/admin.php:893 includes/admin/admin.php:897
245
  msgid "Core Developer"
246
  msgstr ""
247
 
248
- #: includes/admin/admin.php:901
249
  msgid "Project Emeriti"
250
  msgstr ""
251
 
252
- #: includes/admin/admin.php:909
253
  msgid "Integration Testing"
254
  msgstr ""
255
 
256
- #: includes/admin/admin.php:913
257
  msgid "Core Contributors to bbPress 2.6"
258
  msgstr ""
259
 
260
- #: includes/admin/admin.php:1001 includes/admin/admin.php:1023
261
  msgid "Update Forum"
262
  msgstr ""
263
 
264
- #: includes/admin/admin.php:1012 includes/admin/admin.php:1064
265
  msgid "All done!"
266
  msgstr ""
267
 
268
- #: includes/admin/admin.php:1013 includes/admin/admin.php:1065
269
  msgid "Go Back"
270
  msgstr ""
271
 
272
- #: includes/admin/admin.php:1022
273
  msgid "You can update your forum through this page. Hit the link below to update."
274
  msgstr ""
275
 
276
- #: includes/admin/admin.php:1099
277
  msgid ""
278
  "Warning! Problem updating %1$s. Your server may not be able to connect to "
279
  "sites running on it. Error message: %2$s"
280
  msgstr ""
281
 
282
- #: includes/admin/admin.php:1124
283
  msgid ""
284
  "If your browser doesn’t start loading the next page automatically, "
285
  "click this link:"
286
  msgstr ""
287
 
288
- #: includes/admin/admin.php:1125
289
  msgid "Next Forums"
290
  msgstr ""
291
 
292
- #: includes/admin/admin.php:1143
293
  msgid ""
294
  "You can update all the forums on your network through this page. It works "
295
  "by calling the update script of each site automatically. Hit the link below "
296
  "to update."
297
  msgstr ""
298
 
299
- #: includes/admin/classes/class-bbp-converter-base.php:158
300
  msgid "Database connection failed."
301
  msgstr ""
302
 
303
- #: includes/admin/classes/class-bbp-converter.php:88
304
- #: includes/admin/tools/help.php:111
305
- msgid "Database Settings"
306
- msgstr ""
307
-
308
- #: includes/admin/classes/class-bbp-converter.php:91
309
- msgid "Select Platform"
310
- msgstr ""
311
-
312
- #: includes/admin/classes/class-bbp-converter.php:95
313
- msgid "Database Server"
314
- msgstr ""
315
-
316
- #: includes/admin/classes/class-bbp-converter.php:99
317
- msgid "Database Port"
318
- msgstr ""
319
-
320
- #: includes/admin/classes/class-bbp-converter.php:103
321
- msgid "Database Name"
322
- msgstr ""
323
-
324
- #: includes/admin/classes/class-bbp-converter.php:107
325
- msgid "Database User"
326
- msgstr ""
327
-
328
- #: includes/admin/classes/class-bbp-converter.php:111
329
- msgid "Database Password"
330
- msgstr ""
331
-
332
- #: includes/admin/classes/class-bbp-converter.php:115
333
- msgid "Table Prefix"
334
- msgstr ""
335
-
336
- #: includes/admin/classes/class-bbp-converter.php:119
337
- msgid "Options"
338
- msgstr ""
339
-
340
- #: includes/admin/classes/class-bbp-converter.php:122
341
- msgid "Rows Limit"
342
- msgstr ""
343
-
344
- #: includes/admin/classes/class-bbp-converter.php:126
345
- msgid "Delay Time"
346
- msgstr ""
347
-
348
- #: includes/admin/classes/class-bbp-converter.php:130
349
- msgid "Convert Users"
350
- msgstr ""
351
-
352
- #: includes/admin/classes/class-bbp-converter.php:134
353
- msgid "Start Over"
354
- msgstr ""
355
-
356
- #: includes/admin/classes/class-bbp-converter.php:138
357
- msgid "Purge Previous Import"
358
- msgstr ""
359
-
360
- #: includes/admin/classes/class-bbp-converter.php:176
361
- #: includes/admin/settings.php:1669
362
  msgid "Start"
363
  msgstr ""
364
 
365
- #: includes/admin/classes/class-bbp-converter.php:177
366
- #: includes/admin/classes/class-bbp-converter.php:184
367
- #: includes/admin/settings.php:1668
368
  msgid "Continue"
369
  msgstr ""
370
 
371
- #: includes/admin/classes/class-bbp-converter.php:180
372
  msgid "Starting Import"
373
  msgstr ""
374
 
375
- #: includes/admin/classes/class-bbp-converter.php:181
376
  msgid "Continuing Import"
377
  msgstr ""
378
 
379
- #: includes/admin/classes/class-bbp-converter.php:184
380
  msgid "Repair any missing information: %s"
381
  msgstr ""
382
 
383
- #: includes/admin/classes/class-bbp-converter.php:185
384
- #: includes/admin/classes/class-bbp-converter.php:631
385
  msgid "Import Finished"
386
  msgstr ""
387
 
388
- #: includes/admin/classes/class-bbp-converter.php:186
389
  msgid "Import Stopped (by User)"
390
  msgstr ""
391
 
392
- #: includes/admin/classes/class-bbp-converter.php:187
393
  msgid "Database Connection Failed"
394
  msgstr ""
395
 
396
- #: includes/admin/classes/class-bbp-converter.php:188
397
  msgid "Import Halted (Error)"
398
  msgstr ""
399
 
400
- #: includes/admin/classes/class-bbp-converter.php:364
 
 
 
 
 
 
 
 
 
 
 
 
 
401
  msgid "Recreating sync-table"
402
  msgstr ""
403
 
404
- #: includes/admin/classes/class-bbp-converter.php:367
405
  msgid "Deleting previously converted data (%1$s - %2$s)"
406
  msgstr ""
407
 
408
- #: includes/admin/classes/class-bbp-converter.php:371
409
  msgid "Skipping sync-table clean-up"
410
  msgstr ""
411
 
412
- #: includes/admin/classes/class-bbp-converter.php:385
413
  msgid "No users to import"
414
  msgstr ""
415
 
416
- #: includes/admin/classes/class-bbp-converter.php:389
417
  msgid "Converting users (%1$s - %2$s)"
418
  msgstr ""
419
 
420
- #: includes/admin/classes/class-bbp-converter.php:393
421
  msgid "Skipping user clean-up"
422
  msgstr ""
423
 
424
- #: includes/admin/classes/class-bbp-converter.php:405
425
  msgid "No passwords to clear"
426
  msgstr ""
427
 
428
- #: includes/admin/classes/class-bbp-converter.php:409
429
  msgid "Delete users WordPress default passwords (%1$s - %2$s)"
430
  msgstr ""
431
 
432
- #: includes/admin/classes/class-bbp-converter.php:413
433
  msgid "Skipping password clean-up"
434
  msgstr ""
435
 
436
- #: includes/admin/classes/class-bbp-converter.php:424
437
  msgid "No forums to import"
438
  msgstr ""
439
 
440
- #: includes/admin/classes/class-bbp-converter.php:428
441
  msgid "Converting forums (%1$s - %2$s)"
442
  msgstr ""
443
 
444
- #: includes/admin/classes/class-bbp-converter.php:439
445
  msgid "No forum parents to import"
446
  msgstr ""
447
 
448
- #: includes/admin/classes/class-bbp-converter.php:443
449
  msgid "Calculating forum hierarchy (%1$s - %2$s)"
450
  msgstr ""
451
 
452
- #: includes/admin/classes/class-bbp-converter.php:454
453
  msgid "No forum subscriptions to import"
454
  msgstr ""
455
 
456
- #: includes/admin/classes/class-bbp-converter.php:458
457
  msgid "Converting forum subscriptions (%1$s - %2$s)"
458
  msgstr ""
459
 
460
- #: includes/admin/classes/class-bbp-converter.php:469
461
  msgid "No topics to import"
462
  msgstr ""
463
 
464
- #: includes/admin/classes/class-bbp-converter.php:473
465
  msgid "Converting topics (%1$s - %2$s)"
466
  msgstr ""
467
 
468
- #: includes/admin/classes/class-bbp-converter.php:484
469
  msgid "No anonymous topic authors to import"
470
  msgstr ""
471
 
472
- #: includes/admin/classes/class-bbp-converter.php:488
473
  msgid "Converting anonymous topic authors (%1$s - %2$s)"
474
  msgstr ""
475
 
476
- #: includes/admin/classes/class-bbp-converter.php:499
477
  msgid "No stickies to stick"
478
  msgstr ""
479
 
480
- #: includes/admin/classes/class-bbp-converter.php:503
481
  msgid "Calculating topic stickies (%1$s - %2$s)"
482
  msgstr ""
483
 
484
- #: includes/admin/classes/class-bbp-converter.php:514
485
  msgid "No super stickies to stick"
486
  msgstr ""
487
 
488
- #: includes/admin/classes/class-bbp-converter.php:518
489
  msgid "Calculating topic super stickies (%1$s - %2$s)"
490
  msgstr ""
491
 
492
- #: includes/admin/classes/class-bbp-converter.php:529
493
  msgid "No closed topics to close"
494
  msgstr ""
495
 
496
- #: includes/admin/classes/class-bbp-converter.php:533
497
  msgid "Calculating closed topics (%1$s - %2$s)"
498
  msgstr ""
499
 
500
- #: includes/admin/classes/class-bbp-converter.php:544
501
  msgid "No topic tags to import"
502
  msgstr ""
503
 
504
- #: includes/admin/classes/class-bbp-converter.php:548
505
  msgid "Converting topic tags (%1$s - %2$s)"
506
  msgstr ""
507
 
508
- #: includes/admin/classes/class-bbp-converter.php:559
509
  msgid "No topic subscriptions to import"
510
  msgstr ""
511
 
512
- #: includes/admin/classes/class-bbp-converter.php:563
513
  msgid "Converting topic subscriptions (%1$s - %2$s)"
514
  msgstr ""
515
 
516
- #: includes/admin/classes/class-bbp-converter.php:574
517
  msgid "No favorites to import"
518
  msgstr ""
519
 
520
- #: includes/admin/classes/class-bbp-converter.php:578
521
  msgid "Converting favorites (%1$s - %2$s)"
522
  msgstr ""
523
 
524
- #: includes/admin/classes/class-bbp-converter.php:589
525
  msgid "No replies to import"
526
  msgstr ""
527
 
528
- #: includes/admin/classes/class-bbp-converter.php:593
529
  msgid "Converting replies (%1$s - %2$s)"
530
  msgstr ""
531
 
532
- #: includes/admin/classes/class-bbp-converter.php:604
533
  msgid "No anonymous reply authors to import"
534
  msgstr ""
535
 
536
- #: includes/admin/classes/class-bbp-converter.php:608
537
  msgid "Converting anonymous reply authors (%1$s - %2$s)"
538
  msgstr ""
539
 
540
- #: includes/admin/classes/class-bbp-converter.php:619
541
  msgid "No threaded replies to import"
542
  msgstr ""
543
 
544
- #: includes/admin/classes/class-bbp-converter.php:623
545
  msgid "Calculating threaded replies parents (%1$s - %2$s)"
546
  msgstr ""
547
 
@@ -569,26 +525,26 @@ msgstr ""
569
  #: includes/admin/classes/class-bbp-topic-replies-list-table.php:88
570
  #: includes/admin/replies.php:246 includes/admin/replies.php:868
571
  #: includes/admin/topics.php:251 includes/admin/topics.php:1082
572
- #: includes/replies/template.php:2258 includes/topics/template.php:3162
573
  msgid "Spam"
574
  msgstr ""
575
 
576
  #: includes/admin/classes/class-bbp-topic-replies-list-table.php:89
577
  #: includes/admin/replies.php:881 includes/admin/topics.php:1094
578
- #: includes/replies/template.php:2178 includes/topics/template.php:2824
579
  msgid "Trash"
580
  msgstr ""
581
 
582
  #: includes/admin/classes/class-bbp-topic-replies-list-table.php:141
583
  #: includes/admin/replies.php:844 includes/admin/topics.php:1038
584
- #: includes/admin/topics.php:1051
585
  msgid "View"
586
  msgstr ""
587
 
588
  #: includes/admin/classes/class-bbp-topic-replies-list-table.php:146
589
  #: includes/common/template.php:2460 includes/forums/template.php:58
590
  #: includes/replies/template.php:57 includes/replies/template.php:2046
591
- #: includes/topics/template.php:57 includes/topics/template.php:2694
592
  #: templates/default/bbpress/user-details.php:74
593
  msgid "Edit"
594
  msgstr ""
@@ -598,7 +554,7 @@ msgid "No replies to this topic."
598
  msgstr ""
599
 
600
  #: includes/admin/forums.php:113 includes/admin/replies.php:124
601
- #: includes/admin/settings.php:1738 includes/admin/tools/help.php:102
602
  #: includes/admin/topics.php:128
603
  msgid "Overview"
604
  msgstr ""
@@ -674,7 +630,7 @@ msgstr ""
674
 
675
  #: includes/admin/forums.php:147 includes/admin/replies.php:162
676
  #: includes/admin/tools/repair.php:52 includes/admin/tools/repair.php:148
677
- #: includes/admin/tools/upgrades.php:49 includes/admin/tools/upgrades.php:145
678
  #: includes/admin/topics.php:168
679
  msgid "Bulk Actions"
680
  msgstr ""
@@ -695,7 +651,7 @@ msgstr ""
695
 
696
  #: includes/admin/forums.php:155 includes/admin/forums.php:213
697
  #: includes/admin/replies.php:170 includes/admin/replies.php:226
698
- #: includes/admin/settings.php:1804 includes/admin/tools/help.php:45
699
  #: includes/admin/tools/help.php:76 includes/admin/tools/help.php:137
700
  #: includes/admin/topics.php:176 includes/admin/topics.php:231
701
  msgid "For more information:"
@@ -703,7 +659,7 @@ msgstr ""
703
 
704
  #: includes/admin/forums.php:156 includes/admin/forums.php:214
705
  #: includes/admin/replies.php:171 includes/admin/replies.php:227
706
- #: includes/admin/settings.php:1805 includes/admin/tools/help.php:46
707
  #: includes/admin/tools/help.php:77 includes/admin/tools/help.php:138
708
  #: includes/admin/topics.php:177 includes/admin/topics.php:232
709
  msgid ""
@@ -713,7 +669,7 @@ msgstr ""
713
 
714
  #: includes/admin/forums.php:157 includes/admin/forums.php:215
715
  #: includes/admin/replies.php:172 includes/admin/replies.php:228
716
- #: includes/admin/settings.php:1806 includes/admin/tools/help.php:47
717
  #: includes/admin/tools/help.php:78 includes/admin/tools/help.php:139
718
  #: includes/admin/topics.php:178 includes/admin/topics.php:233
719
  msgid ""
@@ -822,13 +778,13 @@ msgstr ""
822
  msgid "Publish Box"
823
  msgstr ""
824
 
825
- #: includes/admin/forums.php:258 includes/admin/settings.php:192
826
  #: includes/admin/tools/reset.php:44
827
  msgid "Forum Moderators"
828
  msgstr ""
829
 
830
- #: includes/admin/forums.php:290 includes/admin/settings.php:168
831
- #: includes/admin/settings.php:412 includes/admin/tools/common.php:317
832
  #: includes/admin/topics.php:502 includes/extend/buddypress/loader.php:250
833
  #: templates/default/bbpress/user-details.php:67
834
  msgid "Subscriptions"
@@ -984,8 +940,8 @@ msgid_plural "Replies"
984
  msgstr[0] ""
985
  msgstr[1] ""
986
 
987
- #: includes/admin/metaboxes.php:150 includes/admin/settings.php:343
988
- #: includes/topics/template.php:3741
989
  msgid "Topic Tag"
990
  msgid_plural "Topic Tags"
991
  msgstr[0] ""
@@ -1047,7 +1003,7 @@ msgstr ""
1047
  msgid "Forum Parent"
1048
  msgstr ""
1049
 
1050
- #: includes/admin/metaboxes.php:359 includes/admin/settings.php:1343
1051
  #: templates/default/bbpress/form-forum.php:144
1052
  msgid "— No parent —"
1053
  msgstr ""
@@ -1329,7 +1285,7 @@ msgid "<strong>Reply To</strong> determines the threading of the reply."
1329
  msgstr ""
1330
 
1331
  #: includes/admin/replies.php:244 includes/admin/topics.php:249
1332
- #: includes/replies/template.php:2259 includes/topics/template.php:3163
1333
  msgid "Unspam"
1334
  msgstr ""
1335
 
@@ -1448,22 +1404,22 @@ msgid "Mark this reply as spam"
1448
  msgstr ""
1449
 
1450
  #: includes/admin/replies.php:879 includes/admin/topics.php:1092
1451
- #: includes/replies/template.php:2196 includes/topics/template.php:2841
1452
  msgid "Restore this item from the Trash"
1453
  msgstr ""
1454
 
1455
  #: includes/admin/replies.php:879 includes/admin/topics.php:1092
1456
- #: includes/replies/template.php:2179 includes/topics/template.php:2825
1457
  msgid "Restore"
1458
  msgstr ""
1459
 
1460
  #: includes/admin/replies.php:881 includes/admin/topics.php:1094
1461
- #: includes/replies/template.php:2200 includes/topics/template.php:2843
1462
  msgid "Move this item to the Trash"
1463
  msgstr ""
1464
 
1465
  #: includes/admin/replies.php:885 includes/admin/topics.php:1098
1466
- #: includes/replies/template.php:2205 includes/topics/template.php:2847
1467
  msgid "Delete this item permanently"
1468
  msgstr ""
1469
 
@@ -1519,74 +1475,82 @@ msgstr ""
1519
  msgid "Reply draft updated."
1520
  msgstr ""
1521
 
1522
- #: includes/admin/settings.php:27
1523
  msgid "Forum User Settings"
1524
  msgstr ""
1525
 
1526
- #: includes/admin/settings.php:32
1527
  msgid "Forum Features"
1528
  msgstr ""
1529
 
1530
- #: includes/admin/settings.php:37
1531
  msgid "Forum Theme Packages"
1532
  msgstr ""
1533
 
1534
- #: includes/admin/settings.php:42
1535
  msgid "Topics and Replies Per Page"
1536
  msgstr ""
1537
 
1538
- #: includes/admin/settings.php:47
1539
  msgid "Topics and Replies Per RSS Page"
1540
  msgstr ""
1541
 
1542
- #: includes/admin/settings.php:52
1543
  msgid "Forum Root Slug"
1544
  msgstr ""
1545
 
1546
- #: includes/admin/settings.php:57
1547
  msgid "Forum Single Slugs"
1548
  msgstr ""
1549
 
1550
- #: includes/admin/settings.php:62
1551
  msgid "Forum User Slugs"
1552
  msgstr ""
1553
 
1554
- #: includes/admin/settings.php:67
1555
  msgid "Forum Integration for BuddyPress"
1556
  msgstr ""
1557
 
1558
- #: includes/admin/settings.php:72
1559
  msgid "Forum Integration for Akismet"
1560
  msgstr ""
1561
 
1562
- #: includes/admin/settings.php:103
 
 
 
 
 
 
 
 
1563
  msgid "Roles"
1564
  msgstr ""
1565
 
1566
- #: includes/admin/settings.php:117
1567
  msgid "Flooding"
1568
  msgstr ""
1569
 
1570
- #: includes/admin/settings.php:131
1571
  msgid "Editing"
1572
  msgstr ""
1573
 
1574
- #: includes/admin/settings.php:139 includes/replies/template.php:1197
1575
- #: includes/topics/template.php:1502 includes/users/template.php:404
1576
  msgid "Anonymous"
1577
  msgstr ""
1578
 
1579
- #: includes/admin/settings.php:152 includes/admin/settings.php:1899
1580
  msgid "Revisions"
1581
  msgstr ""
1582
 
1583
- #: includes/admin/settings.php:160 includes/admin/tools/common.php:314
1584
  #: includes/admin/topics.php:470 includes/extend/buddypress/loader.php:237
1585
  #: templates/default/bbpress/user-details.php:57
1586
  msgid "Favorites"
1587
  msgstr ""
1588
 
1589
- #: includes/admin/settings.php:176 includes/admin/settings.php:420
1590
  #: includes/admin/tools/common.php:320 includes/admin/topics.php:438
1591
  #: includes/extend/buddypress/loader.php:224
1592
  #: includes/extend/buddypress/loader.php:326
@@ -1594,516 +1558,564 @@ msgstr ""
1594
  msgid "Engagements"
1595
  msgstr ""
1596
 
1597
- #: includes/admin/settings.php:184
1598
  msgid "Topic tags"
1599
  msgstr ""
1600
 
1601
- #: includes/admin/settings.php:200 includes/admin/settings.php:367
1602
  #: includes/common/template.php:2575 includes/search/template.php:232
1603
  #: templates/default/bbpress/form-search.php:20
1604
  msgid "Search"
1605
  msgstr ""
1606
 
1607
- #: includes/admin/settings.php:208
1608
  msgid "Post Formatting"
1609
  msgstr ""
1610
 
1611
- #: includes/admin/settings.php:216
1612
  msgid "Auto-embed links"
1613
  msgstr ""
1614
 
1615
- #: includes/admin/settings.php:224
1616
  msgid "Reply Threading"
1617
  msgstr ""
1618
 
1619
- #: includes/admin/settings.php:243
1620
  msgid "Current Package"
1621
  msgstr ""
1622
 
1623
- #: includes/admin/settings.php:298
1624
  msgid "Forum Root"
1625
  msgstr ""
1626
 
1627
- #: includes/admin/settings.php:306
1628
  msgid "Forum Prefix"
1629
  msgstr ""
1630
 
1631
- #: includes/admin/settings.php:314
1632
  msgid "Forum root should show"
1633
  msgstr ""
1634
 
1635
- #: includes/admin/settings.php:351
1636
  msgid "Topic View"
1637
  msgstr ""
1638
 
1639
- #: includes/admin/settings.php:380
1640
  msgid "User Base"
1641
  msgstr ""
1642
 
1643
- #: includes/admin/settings.php:388 includes/extend/buddypress/loader.php:201
1644
  #: includes/extend/buddypress/loader.php:309
1645
  #: templates/default/bbpress/user-details.php:36
1646
  msgid "Topics Started"
1647
  msgstr ""
1648
 
1649
- #: includes/admin/settings.php:396 includes/extend/buddypress/loader.php:212
1650
  #: includes/extend/buddypress/loader.php:317
1651
  #: templates/default/bbpress/user-details.php:42
1652
  msgid "Replies Created"
1653
  msgstr ""
1654
 
1655
- #: includes/admin/settings.php:404 includes/extend/buddypress/loader.php:336
1656
  msgid "Favorite Topics"
1657
  msgstr ""
1658
 
1659
- #: includes/admin/settings.php:433 includes/admin/tools/upgrades.php:323
1660
  #: includes/extend/buddypress/functions.php:366
1661
  msgid "Group Forums"
1662
  msgstr ""
1663
 
1664
- #: includes/admin/settings.php:441
1665
  msgid "Primary Forum"
1666
  msgstr ""
1667
 
1668
- #: includes/admin/settings.php:454
1669
  msgid "Use Akismet"
1670
  msgstr ""
1671
 
1672
- #: includes/admin/settings.php:507
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1673
  msgid "Setting time limits and other user posting capabilities"
1674
  msgstr ""
1675
 
1676
- #: includes/admin/settings.php:533
1677
  msgid "Allow users to edit their content for %s minutes after posting"
1678
  msgstr ""
1679
 
1680
- #: includes/admin/settings.php:535
1681
  msgid "If checked, setting to \"0 minutes\" allows editing forever."
1682
  msgstr ""
1683
 
1684
- #: includes/admin/settings.php:560
1685
  msgid "Allow flood protection by throttling users for %s seconds after posting"
1686
  msgstr ""
1687
 
1688
- #: includes/admin/settings.php:562
1689
  msgid "Use this to discourage users from spamming your forums."
1690
  msgstr ""
1691
 
1692
- #: includes/admin/settings.php:578
1693
  msgid "Allow guest users without accounts to create topics and replies"
1694
  msgstr ""
1695
 
1696
- #: includes/admin/settings.php:579
1697
  msgid "Works best on intranets or paired with antispam measures like Akismet."
1698
  msgstr ""
1699
 
1700
- #: includes/admin/settings.php:614
1701
  msgid "Automatically give registered visitors the %s forum role"
1702
  msgstr ""
1703
 
1704
- #: includes/admin/settings.php:616
1705
  msgid "Uncheck this to manually assign all user access to your forums."
1706
  msgstr ""
1707
 
1708
- #: includes/admin/settings.php:631
1709
  msgid "Forum features that can be toggled on and off"
1710
  msgstr ""
1711
 
1712
- #: includes/admin/settings.php:647
1713
  msgid "Allow users to mark topics as favorites"
1714
  msgstr ""
1715
 
1716
- #: includes/admin/settings.php:663
1717
  msgid "Allow users to subscribe to forums and topics"
1718
  msgstr ""
1719
 
1720
- #: includes/admin/settings.php:679
1721
  msgid "Allow tracking of topics each user engages in"
1722
  msgstr ""
1723
 
1724
- #: includes/admin/settings.php:695
1725
  msgid "Allow topics to have tags"
1726
  msgstr ""
1727
 
1728
- #: includes/admin/settings.php:711
1729
  msgid "Allow forums to have dedicated moderators"
1730
  msgstr ""
1731
 
1732
- #: includes/admin/settings.php:727
1733
  msgid "Allow forum wide search"
1734
  msgstr ""
1735
 
1736
- #: includes/admin/settings.php:766
1737
  msgid "Enable threaded (nested) replies %s levels deep"
1738
  msgstr ""
1739
 
1740
- #: includes/admin/settings.php:783
1741
  msgid "Allow topic and reply revision logging"
1742
  msgstr ""
1743
 
1744
- #: includes/admin/settings.php:799
1745
  msgid "Add toolbar & buttons to textareas to help with HTML formatting"
1746
  msgstr ""
1747
 
1748
- #: includes/admin/settings.php:812
1749
  msgid "How your forum content is displayed within your existing theme."
1750
  msgstr ""
1751
 
1752
- #: includes/admin/settings.php:842
1753
  msgid "will serve all bbPress templates"
1754
  msgstr ""
1755
 
1756
- #: includes/admin/settings.php:846
1757
  msgid "No template packages available."
1758
  msgstr ""
1759
 
1760
- #: includes/admin/settings.php:862
1761
  msgid ""
1762
  "Embed media (YouTube, Twitter, Flickr, etc...) directly into topics and "
1763
  "replies"
1764
  msgstr ""
1765
 
1766
- #: includes/admin/settings.php:877
1767
  msgid "How many topics and replies to show per page"
1768
  msgstr ""
1769
 
1770
- #: includes/admin/settings.php:893 includes/admin/settings.php:909
1771
- #: includes/admin/settings.php:940 includes/admin/settings.php:956
1772
  msgid "per page"
1773
  msgstr ""
1774
 
1775
- #: includes/admin/settings.php:924
1776
  msgid "How many topics and replies to show per RSS page"
1777
  msgstr ""
1778
 
1779
- #: includes/admin/settings.php:975
1780
  msgid ""
1781
  "Customize your Forums root. Partner with a WordPress Page and use "
1782
  "Shortcodes for more flexibility."
1783
  msgstr ""
1784
 
1785
- #: includes/admin/settings.php:1008
1786
  msgid "Prefix all forum content with the Forum Root slug (Recommended)"
1787
  msgstr ""
1788
 
1789
- #: includes/admin/settings.php:1028
1790
  msgid "Forum Index"
1791
  msgstr ""
1792
 
1793
- #: includes/admin/settings.php:1031
1794
  msgid "Topics by Last Post"
1795
  msgstr ""
1796
 
1797
- #: includes/admin/settings.php:1053
1798
  msgid "This setting will be ignored because %s was found in your theme."
1799
  msgstr ""
1800
 
1801
- #: includes/admin/settings.php:1068
1802
  msgid "Customize your user profile slugs."
1803
  msgstr ""
1804
 
1805
- #: includes/admin/settings.php:1185
1806
  msgid "Custom slugs for single forums, topics, replies, tags, views, and search."
1807
  msgstr ""
1808
 
1809
- #: includes/admin/settings.php:1303
1810
  msgid "Configure how Forum settings for BuddyPress"
1811
  msgstr ""
1812
 
1813
- #: includes/admin/settings.php:1319
1814
  msgid "Allow BuddyPress Groups to have their own forums"
1815
  msgstr ""
1816
 
1817
- #: includes/admin/settings.php:1365
1818
  msgid "create a new one"
1819
  msgstr ""
1820
 
1821
- #: includes/admin/settings.php:1366
1822
  msgid "Use %s to contain your group forums, or %s"
1823
  msgstr ""
1824
 
1825
- #: includes/admin/settings.php:1368
1826
  msgid "Use %s to contain your group forums"
1827
  msgstr ""
1828
 
1829
- #: includes/admin/settings.php:1373
1830
  msgid "Changing this will not move existing forums."
1831
  msgstr ""
1832
 
1833
- #: includes/admin/settings.php:1388
1834
  msgid "Forum settings for Akismet"
1835
  msgstr ""
1836
 
1837
- #: includes/admin/settings.php:1405
1838
  msgid "Allow Akismet to actively prevent forum spam."
1839
  msgstr ""
1840
 
1841
- #: includes/admin/settings.php:1424
1842
  msgid "Forums Settings"
1843
  msgstr ""
1844
 
1845
- #: includes/admin/settings.php:1434
1846
  #: templates/default/bbpress/form-user-edit.php:173
1847
  msgid "Save Changes"
1848
  msgstr ""
1849
 
1850
- #: includes/admin/settings.php:1453
1851
  msgid ""
1852
  "Information about your previous forums database so that they can be "
1853
  "converted. <strong>Backup your database before proceeding.</strong>"
1854
  msgstr ""
1855
 
1856
- #: includes/admin/settings.php:1475
1857
  msgid "is the previous forum software"
1858
  msgstr ""
1859
 
1860
- #: includes/admin/settings.php:1489
1861
  msgid "Use default \"localhost\" if on the same server, otherwise IP or hostname"
1862
  msgstr ""
1863
 
1864
- #: includes/admin/settings.php:1503
1865
  msgid "Use default \"3306\" if unsure"
1866
  msgstr ""
1867
 
1868
- #: includes/admin/settings.php:1517
1869
  msgid "User to acces the database"
1870
  msgstr ""
1871
 
1872
- #: includes/admin/settings.php:1531
1873
  msgid "Password of the above database user"
1874
  msgstr ""
1875
 
1876
- #: includes/admin/settings.php:1545
1877
  msgid "Name of the database with your old forum data"
1878
  msgstr ""
1879
 
1880
- #: includes/admin/settings.php:1558
1881
  msgid "Some optional parameters to help tune the conversion process."
1882
  msgstr ""
1883
 
1884
- #: includes/admin/settings.php:1572
1885
  msgid "(If converting from BuddyPress Forums, use \"wp_bb_\" or your custom prefix)"
1886
  msgstr ""
1887
 
1888
- #: includes/admin/settings.php:1586
1889
  msgid "rows to process at a time"
1890
  msgstr ""
1891
 
1892
- #: includes/admin/settings.php:1587
1893
  msgid "Keep this low if you experience out-of-memory issues."
1894
  msgstr ""
1895
 
1896
- #: includes/admin/settings.php:1601
1897
  msgid "second(s) delay between each group of rows"
1898
  msgstr ""
1899
 
1900
- #: includes/admin/settings.php:1602
1901
  msgid "Keep this high to prevent too-many-connection issues."
1902
  msgstr ""
1903
 
1904
- #: includes/admin/settings.php:1616
1905
  msgid "Start a fresh conversion from the beginning"
1906
  msgstr ""
1907
 
1908
- #: includes/admin/settings.php:1617
1909
  msgid "You should clean old conversion information before starting over."
1910
  msgstr ""
1911
 
1912
- #: includes/admin/settings.php:1631
1913
  msgid "Purge all information from a previously attempted import"
1914
  msgstr ""
1915
 
1916
- #: includes/admin/settings.php:1632
1917
  msgid "Use this if an import failed and you want to remove that incomplete data."
1918
  msgstr ""
1919
 
1920
- #: includes/admin/settings.php:1646
1921
  msgid "Attempt to import user accounts from previous forums"
1922
  msgstr ""
1923
 
1924
- #: includes/admin/settings.php:1647
1925
  msgid ""
1926
  "Non-bbPress passwords cannot be automatically converted. They will be "
1927
  "converted as each user logs in."
1928
  msgstr ""
1929
 
1930
- #: includes/admin/settings.php:1673
1931
  msgid "Previously stopped at step %d of %d"
1932
  msgstr ""
1933
 
1934
- #: includes/admin/settings.php:1674
1935
  msgid "Ready to go."
1936
  msgstr ""
1937
 
1938
- #: includes/admin/settings.php:1677 includes/admin/tools/repair.php:33
1939
- #: includes/admin/tools/reset.php:26 includes/admin/tools/upgrades.php:30
1940
  msgid "Forum Tools"
1941
  msgstr ""
1942
 
1943
- #: includes/admin/settings.php:1679 includes/admin/tools.php:485
1944
  msgid "Import Forums"
1945
  msgstr ""
1946
 
1947
- #: includes/admin/settings.php:1689
1948
  msgid "Stop"
1949
  msgstr ""
1950
 
1951
- #: includes/admin/settings.php:1699
1952
  msgid "Toggle panel: Import Status"
1953
  msgstr ""
1954
 
1955
- #: includes/admin/settings.php:1702
1956
  msgid "Import Monitor"
1957
  msgstr ""
1958
 
1959
- #: includes/admin/settings.php:1739
1960
  msgid "This screen provides access to all of the Forums settings."
1961
  msgstr ""
1962
 
1963
- #: includes/admin/settings.php:1740 includes/admin/tools/help.php:104
1964
  msgid ""
1965
  "Please see the additional help tabs for more information on each individual "
1966
  "section."
1967
  msgstr ""
1968
 
1969
- #: includes/admin/settings.php:1746
1970
  msgid "Main Settings"
1971
  msgstr ""
1972
 
1973
- #: includes/admin/settings.php:1747
1974
  msgid "The \"Main Settings\" section includes a number of options:"
1975
  msgstr ""
1976
 
1977
- #: includes/admin/settings.php:1750
1978
  msgid ""
1979
  "You can choose to lock a post after a certain number of minutes. \"Locking "
1980
  "post editing\" will prevent the author from editing some amount of time "
1981
  "after saving a post."
1982
  msgstr ""
1983
 
1984
- #: includes/admin/settings.php:1751
1985
  msgid ""
1986
  "\"Throttle time\" is the amount of time required between posts from a "
1987
  "single author. The higher the throttle time, the longer a user will need to "
1988
  "wait between posting to the forum."
1989
  msgstr ""
1990
 
1991
- #: includes/admin/settings.php:1752
1992
  msgid ""
1993
  "Favorites are a way for users to save and later return to topics they "
1994
  "favor. This is enabled by default."
1995
  msgstr ""
1996
 
1997
- #: includes/admin/settings.php:1753
1998
  msgid ""
1999
  "Subscriptions allow users to subscribe for notifications to topics that "
2000
  "interest them. This is enabled by default."
2001
  msgstr ""
2002
 
2003
- #: includes/admin/settings.php:1754
2004
  msgid ""
2005
  "Topic-Tags allow users to filter topics between forums. This is enabled by "
2006
  "default."
2007
  msgstr ""
2008
 
2009
- #: includes/admin/settings.php:1755
2010
  msgid ""
2011
  "\"Anonymous Posting\" allows guest users who do not have accounts on your "
2012
  "site to both create topics as well as replies."
2013
  msgstr ""
2014
 
2015
- #: includes/admin/settings.php:1756
2016
  msgid ""
2017
  "The Fancy Editor brings the luxury of the Visual editor and HTML editor "
2018
  "from the traditional WordPress dashboard into your theme."
2019
  msgstr ""
2020
 
2021
- #: includes/admin/settings.php:1757
2022
  msgid ""
2023
  "Auto-embed will embed the media content from a URL directly into the "
2024
  "replies. For example: links to Flickr and YouTube."
2025
  msgstr ""
2026
 
2027
- #: includes/admin/settings.php:1760
2028
  msgid ""
2029
  "You must click the Save Changes button at the bottom of the screen for new "
2030
  "settings to take effect."
2031
  msgstr ""
2032
 
2033
- #: includes/admin/settings.php:1766
2034
  msgid "Theme Packages"
2035
  msgstr ""
2036
 
2037
- #: includes/admin/settings.php:1767
2038
  msgid ""
2039
  "The \"Theme Packages\" section allows you to choose which theme package "
2040
  "should be used."
2041
  msgstr ""
2042
 
2043
- #: includes/admin/settings.php:1770
2044
  msgid "The \"bbPress Default\" package is installed by default."
2045
  msgstr ""
2046
 
2047
- #: includes/admin/settings.php:1771
2048
  msgid "Some themes may choose to ignore this setting entirely."
2049
  msgstr ""
2050
 
2051
- #: includes/admin/settings.php:1772
2052
  msgid "Packages can be stacked to allow for intelligent fallbacks."
2053
  msgstr ""
2054
 
2055
- #: includes/admin/settings.php:1780
2056
  msgid "Per Page"
2057
  msgstr ""
2058
 
2059
- #: includes/admin/settings.php:1781
2060
  msgid ""
2061
  "The \"Per Page\" section allows you to control the number of topics and "
2062
  "replies appear on each page."
2063
  msgstr ""
2064
 
2065
- #: includes/admin/settings.php:1783
2066
  msgid ""
2067
  "This is comparable to the WordPress \"Reading Settings\" page, where you "
2068
  "can set the number of posts that should show on blog pages and in feeds."
2069
  msgstr ""
2070
 
2071
- #: includes/admin/settings.php:1784
2072
  msgid ""
2073
  "These are broken up into two separate groups: one for what appears in your "
2074
  "theme, another for RSS feeds."
2075
  msgstr ""
2076
 
2077
- #: includes/admin/settings.php:1792
2078
  msgid "Slugs"
2079
  msgstr ""
2080
 
2081
- #: includes/admin/settings.php:1793
2082
  msgid ""
2083
  "The \"Slugs\" section allows you to control the permalink structure for "
2084
  "your forums."
2085
  msgstr ""
2086
 
2087
- #: includes/admin/settings.php:1795
2088
  msgid ""
2089
  "\"Archive Slugs\" are used as the \"root\" for your forums and topics. If "
2090
  "you combine these values with existing page slugs, bbPress will attempt to "
2091
  "output the most correct title and content."
2092
  msgstr ""
2093
 
2094
- #: includes/admin/settings.php:1796
2095
  msgid ""
2096
  "\"Single Slugs\" are used as a prefix when viewing an individual forum, "
2097
  "topic, reply, user, or view."
2098
  msgstr ""
2099
 
2100
- #: includes/admin/settings.php:1797
2101
  msgid ""
2102
  "In the event of a slug collision with WordPress or BuddyPress, a warning "
2103
  "will appear next to the problem slug(s)."
2104
  msgstr ""
2105
 
2106
- #: includes/admin/settings.php:1897
2107
  #: templates/default/bbpress/loop-forums.php:24
2108
  #: templates/default/bbpress/loop-replies.php:21
2109
  #: templates/default/bbpress/loop-replies.php:47
@@ -2111,63 +2123,63 @@ msgstr ""
2111
  msgid "Posts"
2112
  msgstr ""
2113
 
2114
- #: includes/admin/settings.php:1898
2115
  msgid "Pages"
2116
  msgstr ""
2117
 
2118
- #: includes/admin/settings.php:1900
2119
  msgid "Attachments"
2120
  msgstr ""
2121
 
2122
- #: includes/admin/settings.php:1901
2123
  msgid "Menus"
2124
  msgstr ""
2125
 
2126
- #: includes/admin/settings.php:1904
2127
  msgid "Tag base"
2128
  msgstr ""
2129
 
2130
- #: includes/admin/settings.php:1907
2131
  msgid "Category base"
2132
  msgstr ""
2133
 
2134
- #: includes/admin/settings.php:1912
2135
  msgid "Forums base"
2136
  msgstr ""
2137
 
2138
- #: includes/admin/settings.php:1915
2139
  msgid "Topics base"
2140
  msgstr ""
2141
 
2142
- #: includes/admin/settings.php:1918
2143
  msgid "Forum slug"
2144
  msgstr ""
2145
 
2146
- #: includes/admin/settings.php:1921
2147
  msgid "Topic slug"
2148
  msgstr ""
2149
 
2150
- #: includes/admin/settings.php:1924
2151
  msgid "Reply slug"
2152
  msgstr ""
2153
 
2154
- #: includes/admin/settings.php:1927
2155
  msgid "User base"
2156
  msgstr ""
2157
 
2158
- #: includes/admin/settings.php:1930
2159
  msgid "View base"
2160
  msgstr ""
2161
 
2162
- #: includes/admin/settings.php:1933
2163
  msgid "Topic tag slug"
2164
  msgstr ""
2165
 
2166
- #: includes/admin/settings.php:1945
2167
  msgid "%s page"
2168
  msgstr ""
2169
 
2170
- #: includes/admin/settings.php:1968
2171
  msgid "Possible %1$s conflict: %2$s"
2172
  msgstr ""
2173
 
@@ -2211,7 +2223,7 @@ msgstr ""
2211
  msgid "Users"
2212
  msgstr ""
2213
 
2214
- #: includes/admin/tools/common.php:308 includes/topics/template.php:3740
2215
  #: templates/default/bbpress/content-statistics.php:40
2216
  msgid "Topic Tags"
2217
  msgstr ""
@@ -2336,53 +2348,53 @@ msgid ""
2336
  msgstr ""
2337
 
2338
  #: includes/admin/tools/repair.php:50 includes/admin/tools/repair.php:146
2339
- #: includes/admin/tools/upgrades.php:47 includes/admin/tools/upgrades.php:143
2340
  msgid "Select bulk action"
2341
  msgstr ""
2342
 
2343
  #: includes/admin/tools/repair.php:53 includes/admin/tools/repair.php:94
2344
- #: includes/admin/tools/repair.php:149 includes/admin/tools/upgrades.php:50
2345
- #: includes/admin/tools/upgrades.php:91 includes/admin/tools/upgrades.php:146
2346
  msgid "Run"
2347
  msgstr ""
2348
 
2349
  #: includes/admin/tools/repair.php:55 includes/admin/tools/repair.php:151
2350
- #: includes/admin/tools/upgrades.php:52 includes/admin/tools/upgrades.php:148
2351
  msgid "Apply"
2352
  msgstr ""
2353
 
2354
  #: includes/admin/tools/repair.php:69 includes/admin/tools/repair.php:134
2355
- #: includes/admin/tools/upgrades.php:66 includes/admin/tools/upgrades.php:131
2356
  msgid "Select All"
2357
  msgstr ""
2358
 
2359
  #: includes/admin/tools/repair.php:73 includes/admin/tools/repair.php:90
2360
- #: includes/admin/tools/repair.php:138 includes/admin/tools/upgrades.php:70
2361
- #: includes/admin/tools/upgrades.php:87 includes/admin/tools/upgrades.php:135
2362
  msgid "Description"
2363
  msgstr ""
2364
 
2365
  #: includes/admin/tools/repair.php:74 includes/admin/tools/repair.php:101
2366
- #: includes/admin/tools/repair.php:139 includes/admin/tools/upgrades.php:71
2367
- #: includes/admin/tools/upgrades.php:98 includes/admin/tools/upgrades.php:136
2368
  msgid "Components"
2369
  msgstr ""
2370
 
2371
  #: includes/admin/tools/repair.php:75 includes/admin/tools/repair.php:108
2372
- #: includes/admin/tools/repair.php:140 includes/admin/tools/upgrades.php:72
2373
- #: includes/admin/tools/upgrades.php:105 includes/admin/tools/upgrades.php:137
2374
  msgid "Overhead"
2375
  msgstr ""
2376
 
2377
- #: includes/admin/tools/repair.php:94 includes/admin/tools/upgrades.php:91
2378
  msgid "Run %s"
2379
  msgstr ""
2380
 
2381
- #: includes/admin/tools/repair.php:98 includes/admin/tools/upgrades.php:95
2382
  msgid "Show more details"
2383
  msgstr ""
2384
 
2385
- #: includes/admin/tools/repair.php:123 includes/admin/tools/upgrades.php:120
2386
  msgid "No repair tools match this criteria."
2387
  msgstr ""
2388
 
@@ -2397,9 +2409,9 @@ msgstr ""
2397
  #: includes/admin/tools/repair.php:566 includes/admin/tools/repair.php:637
2398
  #: includes/admin/tools/repair.php:706 includes/admin/tools/repair.php:781
2399
  #: includes/admin/tools/repair.php:838 includes/admin/tools/repair.php:966
2400
- #: includes/admin/tools/repair.php:1079 includes/admin/tools/repair.php:1103
2401
- #: includes/admin/tools/repair.php:1158 includes/admin/tools/reset.php:108
2402
- #: includes/admin/tools/upgrades.php:240
2403
  msgid "Failed!"
2404
  msgstr ""
2405
 
@@ -2409,9 +2421,9 @@ msgstr ""
2409
  #: includes/admin/tools/repair.php:495 includes/admin/tools/repair.php:547
2410
  #: includes/admin/tools/repair.php:618 includes/admin/tools/repair.php:687
2411
  #: includes/admin/tools/repair.php:756 includes/admin/tools/repair.php:944
2412
- #: includes/admin/tools/repair.php:1009 includes/admin/tools/repair.php:1083
2413
- #: includes/admin/tools/repair.php:1139 includes/admin/tools/repair.php:1194
2414
- #: includes/admin/tools/repair.php:1251
2415
  msgid "Complete!"
2416
  msgstr ""
2417
 
@@ -2478,37 +2490,37 @@ msgstr ""
2478
  msgid "Repairing the sticky topic to the parent forum relationships&hellip; %s"
2479
  msgstr ""
2480
 
2481
- #: includes/admin/tools/repair.php:1033
2482
  msgid "Repairing closed topics&hellip; %s"
2483
  msgstr ""
2484
 
2485
- #: includes/admin/tools/repair.php:1034
2486
  msgid "No closed topics to repair."
2487
  msgstr ""
2488
 
2489
- #: includes/admin/tools/repair.php:1061
2490
  msgid "Complete! %d closed topic repaired."
2491
  msgid_plural "Complete! %d closed topics repaired."
2492
  msgstr[0] ""
2493
  msgstr[1] ""
2494
 
2495
- #: includes/admin/tools/repair.php:1075
2496
- msgid "Recalculating forum visibility &hellip; %s"
2497
  msgstr ""
2498
 
2499
- #: includes/admin/tools/repair.php:1102
2500
- msgid "Recalculating the forum for each post &hellip; %s"
2501
  msgstr ""
2502
 
2503
- #: includes/admin/tools/repair.php:1157
2504
- msgid "Recalculating the topic for each post &hellip; %s"
2505
  msgstr ""
2506
 
2507
- #: includes/admin/tools/repair.php:1212
2508
- msgid "Recalculating reply menu order &hellip; %s"
2509
  msgstr ""
2510
 
2511
- #: includes/admin/tools/repair.php:1213
2512
  msgid "No reply positions to recalculate."
2513
  msgstr ""
2514
 
@@ -2526,7 +2538,7 @@ msgstr ""
2526
  msgid "All Forums"
2527
  msgstr ""
2528
 
2529
- #: includes/admin/tools/reset.php:37 includes/topics/functions.php:4174
2530
  #: includes/topics/template.php:54
2531
  msgid "All Topics"
2532
  msgstr ""
@@ -2645,118 +2657,118 @@ msgstr ""
2645
  msgid "Deleting Roles and Capabilities&hellip; %s"
2646
  msgstr ""
2647
 
2648
- #: includes/admin/tools/upgrades.php:31 includes/admin/tools.php:476
2649
  msgid "Upgrade Forums"
2650
  msgstr ""
2651
 
2652
- #: includes/admin/tools/upgrades.php:33
2653
  msgid ""
2654
  "As bbPress improves, occasionally database upgrades are required but some "
2655
  "forums are too large to upgrade automatically. Use the tools below to "
2656
  "manually run upgrade routines."
2657
  msgstr ""
2658
 
2659
- #: includes/admin/tools/upgrades.php:34
2660
  msgid ""
2661
  "Some of these tools create substantial database overhead. Use caution when "
2662
  "running more than 1 upgrade at a time."
2663
  msgstr ""
2664
 
2665
- #: includes/admin/tools/upgrades.php:168
2666
- msgid "Upgrading user engagements &hellip; %s"
2667
  msgstr ""
2668
 
2669
- #: includes/admin/tools/upgrades.php:169
2670
  msgid "No engagements to upgrade."
2671
  msgstr ""
2672
 
2673
- #: includes/admin/tools/upgrades.php:200
2674
  msgid "Complete! %d engagements upgraded."
2675
  msgid_plural "Complete! %d engagements upgraded."
2676
  msgstr[0] ""
2677
  msgstr[1] ""
2678
 
2679
- #: includes/admin/tools/upgrades.php:219
2680
  msgid "Upgrading BuddyPress group-forum relationships&hellip; %s"
2681
  msgstr ""
2682
 
2683
- #: includes/admin/tools/upgrades.php:324
2684
  msgid "group-forums"
2685
  msgstr ""
2686
 
2687
- #: includes/admin/tools/upgrades.php:340
2688
  msgid "Complete! %s groups updated; %s forums updated; %s forum statuses synced."
2689
  msgstr ""
2690
 
2691
- #: includes/admin/tools/upgrades.php:355
2692
- msgid "Upgrading user favorites &hellip; %s"
2693
  msgstr ""
2694
 
2695
- #: includes/admin/tools/upgrades.php:356
2696
  msgid "No favorites to upgrade."
2697
  msgstr ""
2698
 
2699
- #: includes/admin/tools/upgrades.php:394
2700
  msgid "Complete! %d favorite upgraded."
2701
  msgid_plural "Complete! %d favorites upgraded."
2702
  msgstr[0] ""
2703
  msgstr[1] ""
2704
 
2705
- #: includes/admin/tools/upgrades.php:410
2706
- msgid "Upgrading user topic subscriptions &hellip; %s"
2707
  msgstr ""
2708
 
2709
- #: includes/admin/tools/upgrades.php:411
2710
  msgid "No topic subscriptions to upgrade."
2711
  msgstr ""
2712
 
2713
- #: includes/admin/tools/upgrades.php:449 includes/admin/tools/upgrades.php:586
2714
  msgid "Complete! %d topic subscription upgraded."
2715
  msgid_plural "Complete! %d topic subscriptions upgraded."
2716
  msgstr[0] ""
2717
  msgstr[1] ""
2718
 
2719
- #: includes/admin/tools/upgrades.php:465
2720
- msgid "Upgrading user forum subscriptions &hellip; %s"
2721
  msgstr ""
2722
 
2723
- #: includes/admin/tools/upgrades.php:466
2724
  msgid "No forum subscriptions to upgrade."
2725
  msgstr ""
2726
 
2727
- #: includes/admin/tools/upgrades.php:504 includes/admin/tools/upgrades.php:627
2728
  msgid "Complete! %d forum subscription upgraded."
2729
  msgid_plural "Complete! %d forum subscriptions upgraded."
2730
  msgstr[0] ""
2731
  msgstr[1] ""
2732
 
2733
- #: includes/admin/tools/upgrades.php:520
2734
- msgid "Remove favorites from usermeta &hellip; %s"
2735
  msgstr ""
2736
 
2737
- #: includes/admin/tools/upgrades.php:521
2738
  msgid "No favorites to remove."
2739
  msgstr ""
2740
 
2741
- #: includes/admin/tools/upgrades.php:545
2742
  msgid "Complete! %d favorites upgraded."
2743
  msgid_plural "Complete! %d favorites upgraded."
2744
  msgstr[0] ""
2745
  msgstr[1] ""
2746
 
2747
- #: includes/admin/tools/upgrades.php:561
2748
- msgid "Remove topic subscriptions from usermeta &hellip; %s"
2749
  msgstr ""
2750
 
2751
- #: includes/admin/tools/upgrades.php:562
2752
  msgid "No topic subscriptions to remove."
2753
  msgstr ""
2754
 
2755
- #: includes/admin/tools/upgrades.php:602
2756
- msgid "Remove forum subscriptions from usermeta &hellip; %s"
2757
  msgstr ""
2758
 
2759
- #: includes/admin/tools/upgrades.php:603
2760
  msgid "No forum subscriptions to remove."
2761
  msgstr ""
2762
 
@@ -3160,7 +3172,7 @@ msgstr ""
3160
  msgid "Voices"
3161
  msgstr ""
3162
 
3163
- #: includes/admin/topics.php:985 includes/topics/template.php:2253
3164
  msgid "No Replies"
3165
  msgstr ""
3166
 
@@ -3184,7 +3196,7 @@ msgstr ""
3184
  msgid "Unstick this topic"
3185
  msgstr ""
3186
 
3187
- #: includes/admin/topics.php:1070 includes/topics/template.php:3028
3188
  msgid "Unstick"
3189
  msgstr ""
3190
 
@@ -3192,7 +3204,7 @@ msgstr ""
3192
  msgid "Stick this topic to its forum"
3193
  msgstr ""
3194
 
3195
- #: includes/admin/topics.php:1073 includes/topics/template.php:3027
3196
  msgid "Stick"
3197
  msgstr ""
3198
 
@@ -3200,7 +3212,7 @@ msgstr ""
3200
  msgid "Stick this topic to front"
3201
  msgstr ""
3202
 
3203
- #: includes/admin/topics.php:1073 includes/topics/template.php:3029
3204
  msgid "(to front)"
3205
  msgstr ""
3206
 
@@ -3241,25 +3253,25 @@ msgstr ""
3241
  msgid "Topic draft updated."
3242
  msgstr ""
3243
 
3244
- #: includes/admin/users.php:102 includes/admin/users.php:263
3245
  #: templates/default/bbpress/form-user-roles.php:23
3246
  msgid "Forum Role"
3247
  msgstr ""
3248
 
3249
- #: includes/admin/users.php:111 includes/admin/users.php:115
3250
  #: includes/users/template.php:1676
3251
  msgid "&mdash; No role for these forums &mdash;"
3252
  msgstr ""
3253
 
3254
- #: includes/admin/users.php:168 includes/admin/users.php:170
3255
  msgid "Change forum role to&hellip;"
3256
  msgstr ""
3257
 
3258
- #: includes/admin/users.php:174
3259
  msgid "Change"
3260
  msgstr ""
3261
 
3262
- #: includes/admin/users.php:262
3263
  msgid "Site Role"
3264
  msgstr ""
3265
 
@@ -3823,12 +3835,12 @@ msgstr ""
3823
  #: includes/extend/buddypress/notifications.php:195
3824
  #: includes/forums/functions.php:136 includes/forums/functions.php:424
3825
  #: includes/replies/functions.php:161 includes/replies/functions.php:562
3826
- #: includes/replies/functions.php:1355 includes/topics/functions.php:141
3827
- #: includes/topics/functions.php:528 includes/topics/functions.php:1217
3828
- #: includes/topics/functions.php:1530 includes/topics/functions.php:1886
3829
- #: includes/topics/functions.php:1926 includes/topics/functions.php:1984
3830
- #: includes/users/engagements.php:530 includes/users/engagements.php:1201
3831
- #: includes/users/engagements.php:1311 includes/users/functions.php:233
3832
  #: includes/users/functions.php:239 includes/users/functions.php:429
3833
  msgid "<strong>ERROR</strong>: Are you sure you wanted to do that?"
3834
  msgstr ""
@@ -3997,67 +4009,67 @@ msgstr ""
3997
  msgid "Parent Forum:"
3998
  msgstr ""
3999
 
4000
- #: includes/forums/template.php:901 includes/topics/template.php:2009
4001
  #: includes/users/template.php:1362
4002
  msgid "Subscribe"
4003
  msgstr ""
4004
 
4005
- #: includes/forums/template.php:902 includes/topics/template.php:2010
4006
  #: includes/users/template.php:1363
4007
  msgid "Unsubscribe"
4008
  msgstr ""
4009
 
4010
- #: includes/forums/template.php:1321 includes/forums/template.php:2183
4011
  msgid "%s topic"
4012
  msgid_plural "%s topics"
4013
  msgstr[0] ""
4014
  msgstr[1] ""
4015
 
4016
- #: includes/forums/template.php:1336 includes/topics/template.php:2306
4017
  msgid "(+%s hidden)"
4018
  msgid_plural "(+%s hidden)"
4019
  msgstr[0] ""
4020
  msgstr[1] ""
4021
 
4022
- #: includes/forums/template.php:2172 includes/topics/template.php:2291
4023
  msgid "%s reply"
4024
  msgid_plural "%s replies"
4025
  msgstr[0] ""
4026
  msgstr[1] ""
4027
 
4028
- #: includes/forums/template.php:2192
4029
- msgid "This category contains %1$s and %2$s, and was last updated by %3$s %4$s."
4030
  msgstr ""
4031
 
4032
- #: includes/forums/template.php:2194
4033
- msgid "This forum contains %1$s and %2$s, and was last updated by %3$s %4$s."
4034
  msgstr ""
4035
 
4036
- #: includes/forums/template.php:2200
4037
- msgid "This category contains %1$s, and was last updated by %2$s %3$s."
4038
  msgstr ""
4039
 
4040
- #: includes/forums/template.php:2202
4041
- msgid "This forum contains %1$s, and was last updated by %2$s %3$s."
4042
  msgstr ""
4043
 
4044
- #: includes/forums/template.php:2212
4045
- msgid "This category contains %1$s and %2$s."
4046
  msgstr ""
4047
 
4048
- #: includes/forums/template.php:2214
4049
- msgid "This forum contains %1$s and %2$s."
4050
  msgstr ""
4051
 
4052
- #: includes/forums/template.php:2222
4053
- msgid "This category contains %1$s."
4054
  msgstr ""
4055
 
4056
- #: includes/forums/template.php:2224
4057
- msgid "This forum contains %1$s."
4058
  msgstr ""
4059
 
4060
- #: includes/forums/template.php:2228
4061
  msgid "This forum is empty."
4062
  msgstr ""
4063
 
@@ -4163,87 +4175,87 @@ msgstr ""
4163
  msgid "<strong>ERROR</strong>: Your reply cannot be edited at this time."
4164
  msgstr ""
4165
 
4166
- #: includes/replies/functions.php:1331
4167
  msgid "<strong>ERROR</strong>: A reply ID is required"
4168
  msgstr ""
4169
 
4170
- #: includes/replies/functions.php:1340
4171
  msgid "<strong>ERROR</strong>: The reply you want to move was not found."
4172
  msgstr ""
4173
 
4174
- #: includes/replies/functions.php:1350
4175
  msgid "<strong>ERROR</strong>: The topic you want to move from was not found."
4176
  msgstr ""
4177
 
4178
- #: includes/replies/functions.php:1361 includes/topics/functions.php:1228
4179
- #: includes/topics/functions.php:1536
4180
  msgid "<strong>ERROR</strong>: You do not have permission to edit the source topic."
4181
  msgstr ""
4182
 
4183
- #: includes/replies/functions.php:1371
4184
  msgid "<strong>ERROR</strong>: You need to choose a valid move option."
4185
  msgstr ""
4186
 
4187
- #: includes/replies/functions.php:1384 includes/topics/functions.php:1559
4188
  msgid "<strong>ERROR</strong>: A topic ID is required."
4189
  msgstr ""
4190
 
4191
- #: includes/replies/functions.php:1394
4192
  msgid "<strong>ERROR</strong>: The topic you want to move to was not found."
4193
  msgstr ""
4194
 
4195
- #: includes/replies/functions.php:1399 includes/topics/functions.php:1248
4196
- #: includes/topics/functions.php:1574
4197
  msgid ""
4198
  "<strong>ERROR</strong>: You do not have permission to edit the destination "
4199
  "topic."
4200
  msgstr ""
4201
 
4202
- #: includes/replies/functions.php:1453 includes/topics/functions.php:1612
4203
  msgid ""
4204
  "<strong>ERROR</strong>: There was a problem converting the reply into the "
4205
  "topic. Please try again."
4206
  msgstr ""
4207
 
4208
- #: includes/replies/functions.php:1458 includes/topics/functions.php:1617
4209
  msgid ""
4210
  "<strong>ERROR</strong>: You do not have permission to create new topics. "
4211
  "The reply could not be converted into a topic."
4212
  msgstr ""
4213
 
4214
- #: includes/replies/functions.php:1630
4215
  msgid "<strong>ERROR:</strong> This reply could not be found or no longer exists."
4216
  msgstr ""
4217
 
4218
- #: includes/replies/functions.php:1636 includes/topics/functions.php:2194
4219
  msgid "<strong>ERROR:</strong> You do not have permission to do that."
4220
  msgstr ""
4221
 
4222
- #: includes/replies/functions.php:1712
4223
  msgid "<strong>ERROR</strong>: There was a problem approving the reply."
4224
  msgstr ""
4225
 
4226
- #: includes/replies/functions.php:1712
4227
  msgid "<strong>ERROR</strong>: There was a problem unapproving the reply."
4228
  msgstr ""
4229
 
4230
- #: includes/replies/functions.php:1723
4231
  msgid "<strong>ERROR</strong>: There was a problem unmarking the reply as spam."
4232
  msgstr ""
4233
 
4234
- #: includes/replies/functions.php:1723
4235
  msgid "<strong>ERROR</strong>: There was a problem marking the reply as spam."
4236
  msgstr ""
4237
 
4238
- #: includes/replies/functions.php:1738
4239
  msgid "<strong>ERROR</strong>: There was a problem trashing the reply."
4240
  msgstr ""
4241
 
4242
- #: includes/replies/functions.php:1746
4243
  msgid "<strong>ERROR</strong>: There was a problem untrashing the reply."
4244
  msgstr ""
4245
 
4246
- #: includes/replies/functions.php:1754
4247
  msgid "<strong>ERROR</strong>: There was a problem deleting the reply."
4248
  msgstr ""
4249
 
@@ -4251,7 +4263,7 @@ msgstr ""
4251
  msgid "All Posts"
4252
  msgstr ""
4253
 
4254
- #: includes/replies/functions.php:2341 includes/topics/functions.php:4218
4255
  msgid "Replies: %s"
4256
  msgstr ""
4257
 
@@ -4312,12 +4324,12 @@ msgstr ""
4312
  msgid "This reply was modified %1$s by %2$s."
4313
  msgstr ""
4314
 
4315
- #: includes/replies/template.php:1313 includes/topics/template.php:1619
4316
  #: includes/users/template.php:2175
4317
  msgid "View %s's profile"
4318
  msgstr ""
4319
 
4320
- #: includes/replies/template.php:1313 includes/topics/template.php:1619
4321
  #: includes/users/template.php:2175
4322
  msgid "Visit %s's website"
4323
  msgstr ""
@@ -4326,13 +4338,13 @@ msgstr ""
4326
  msgid "Cancel"
4327
  msgstr ""
4328
 
4329
- #: includes/replies/template.php:2180 includes/topics/template.php:2826
4330
  #: templates/default/bbpress/form-topic-tag.php:100
4331
  #: templates/default/bbpress/form-topic-tag.php:117
4332
  msgid "Delete"
4333
  msgstr ""
4334
 
4335
- #: includes/replies/template.php:2205 includes/topics/template.php:2847
4336
  msgid "Are you sure you want to delete that permanently?"
4337
  msgstr ""
4338
 
@@ -4446,7 +4458,7 @@ msgstr ""
4446
  msgid "<strong>ERROR</strong>: The topic was not created."
4447
  msgstr ""
4448
 
4449
- #: includes/topics/functions.php:490 includes/topics/functions.php:1210
4450
  msgid "<strong>ERROR</strong>: Topic ID not found."
4451
  msgstr ""
4452
 
@@ -4468,123 +4480,123 @@ msgstr ""
4468
  msgid "<strong>ERROR</strong>: Your topic cannot be edited at this time."
4469
  msgstr ""
4470
 
4471
- #: includes/topics/functions.php:1222
4472
  msgid "<strong>ERROR</strong>: The topic you want to merge was not found."
4473
  msgstr ""
4474
 
4475
- #: includes/topics/functions.php:1236
4476
  msgid "<strong>ERROR</strong>: Destination topic ID not found."
4477
  msgstr ""
4478
 
4479
- #: includes/topics/functions.php:1243
4480
  msgid "<strong>ERROR</strong>: The topic you want to merge to was not found."
4481
  msgstr ""
4482
 
4483
- #: includes/topics/functions.php:1506
4484
  msgid "<strong>ERROR</strong>: A reply ID is required."
4485
  msgstr ""
4486
 
4487
- #: includes/topics/functions.php:1515
4488
  msgid "<strong>ERROR</strong>: The reply you want to split from was not found."
4489
  msgstr ""
4490
 
4491
- #: includes/topics/functions.php:1525
4492
  msgid "<strong>ERROR</strong>: The topic you want to split was not found."
4493
  msgstr ""
4494
 
4495
- #: includes/topics/functions.php:1546
4496
  msgid "<strong>ERROR</strong>: You need to choose a valid split option."
4497
  msgstr ""
4498
 
4499
- #: includes/topics/functions.php:1569
4500
  msgid "<strong>ERROR</strong>: The topic you want to split to was not found."
4501
  msgstr ""
4502
 
4503
- #: includes/topics/functions.php:1874
4504
  msgid ""
4505
  "<strong>ERROR</strong>: The following problem(s) have been found while "
4506
  "getting the tag: %s"
4507
  msgstr ""
4508
 
4509
- #: includes/topics/functions.php:1892 includes/topics/functions.php:1932
4510
  msgid "<strong>ERROR</strong>: You do not have permission to edit the topic tags."
4511
  msgstr ""
4512
 
4513
- #: includes/topics/functions.php:1898 includes/topics/functions.php:1938
4514
  msgid "<strong>ERROR</strong>: You need to enter a tag name."
4515
  msgstr ""
4516
 
4517
- #: includes/topics/functions.php:1909
4518
  msgid ""
4519
  "<strong>ERROR</strong>: The following problem(s) have been found while "
4520
  "updating the tag: %s"
4521
  msgstr ""
4522
 
4523
- #: includes/topics/functions.php:1949 includes/topics/functions.php:1967
4524
  msgid ""
4525
  "<strong>ERROR</strong>: The following problem(s) have been found while "
4526
  "merging the tags: %s"
4527
  msgstr ""
4528
 
4529
- #: includes/topics/functions.php:1958
4530
  msgid "<strong>ERROR</strong>: The tags which are being merged can not be the same."
4531
  msgstr ""
4532
 
4533
- #: includes/topics/functions.php:1990
4534
  msgid "<strong>ERROR</strong>: You do not have permission to delete the topic tags."
4535
  msgstr ""
4536
 
4537
- #: includes/topics/functions.php:1999
4538
  msgid ""
4539
  "<strong>ERROR</strong>: The following problem(s) have been found while "
4540
  "deleting the tag: %s"
4541
  msgstr ""
4542
 
4543
- #: includes/topics/functions.php:2188
4544
  msgid "<strong>ERROR:</strong> This topic could not be found or no longer exists."
4545
  msgstr ""
4546
 
4547
- #: includes/topics/functions.php:2278
4548
  msgid "<strong>ERROR</strong>: There was a problem approving the topic."
4549
  msgstr ""
4550
 
4551
- #: includes/topics/functions.php:2279
4552
  msgid "<strong>ERROR</strong>: There was a problem unapproving the topic."
4553
  msgstr ""
4554
 
4555
- #: includes/topics/functions.php:2296
4556
  msgid "<strong>ERROR</strong>: There was a problem closing the topic."
4557
  msgstr ""
4558
 
4559
- #: includes/topics/functions.php:2297
4560
  msgid "<strong>ERROR</strong>: There was a problem opening the topic."
4561
  msgstr ""
4562
 
4563
- #: includes/topics/functions.php:2315
4564
  msgid "<strong>ERROR</strong>: There was a problem unsticking the topic."
4565
  msgstr ""
4566
 
4567
- #: includes/topics/functions.php:2316
4568
  msgid "<strong>ERROR</strong>: There was a problem sticking the topic."
4569
  msgstr ""
4570
 
4571
- #: includes/topics/functions.php:2334
4572
  msgid "<strong>ERROR</strong>: There was a problem unmarking the topic as spam."
4573
  msgstr ""
4574
 
4575
- #: includes/topics/functions.php:2335
4576
  msgid "<strong>ERROR</strong>: There was a problem marking the topic as spam."
4577
  msgstr ""
4578
 
4579
- #: includes/topics/functions.php:2348
4580
  msgid "<strong>ERROR</strong>: There was a problem trashing the topic."
4581
  msgstr ""
4582
 
4583
- #: includes/topics/functions.php:2359
4584
  msgid "<strong>ERROR</strong>: There was a problem untrashing the topic."
4585
  msgstr ""
4586
 
4587
- #: includes/topics/functions.php:2368
4588
  msgid "<strong>ERROR</strong>: There was a problem deleting the topic."
4589
  msgstr ""
4590
 
@@ -4640,171 +4652,171 @@ msgstr ""
4640
  msgid "This topic was modified %1$s by %2$s."
4641
  msgstr ""
4642
 
4643
- #: includes/topics/template.php:2063 includes/users/template.php:1159
4644
  msgid "Favorite"
4645
  msgstr ""
4646
 
4647
- #: includes/topics/template.php:2064 includes/users/template.php:1160
4648
  msgid "Unfavorite"
4649
  msgstr ""
4650
 
4651
- #: includes/topics/template.php:2493
4652
  msgid "Tagged:"
4653
  msgstr ""
4654
 
4655
- #: includes/topics/template.php:3102
4656
  #: templates/default/bbpress/form-topic-tag.php:69
4657
  #: templates/default/bbpress/form-topic-tag.php:85
4658
  msgid "Merge"
4659
  msgstr ""
4660
 
4661
- #: includes/topics/template.php:3340
4662
  msgid "Viewing %1$s topic"
4663
  msgid_plural "Viewing %1$s topics"
4664
  msgstr[0] ""
4665
  msgstr[1] ""
4666
 
4667
- #: includes/topics/template.php:3344
4668
  msgid "Viewing topic %2$s (of %4$s total)"
4669
  msgid_plural "Viewing %1$s topics - %2$s through %3$s (of %4$s total)"
4670
  msgstr[0] ""
4671
  msgstr[1] ""
4672
 
4673
- #: includes/topics/template.php:3407
4674
  msgid "This topic is marked as spam."
4675
  msgstr ""
4676
 
4677
- #: includes/topics/template.php:3412
4678
  msgid "This topic is in the trash."
4679
  msgstr ""
4680
 
4681
- #: includes/topics/template.php:3676
4682
  msgid "%s voice"
4683
  msgid_plural "%s voices"
4684
  msgstr[0] ""
4685
  msgstr[1] ""
4686
 
4687
- #: includes/topics/template.php:3682
4688
- msgid "This topic contains %1$s, has %2$s, and was last updated by %3$s %4$s."
4689
  msgstr ""
4690
 
4691
- #: includes/topics/template.php:3686
4692
- msgid "This topic contains %1$s and has %2$s."
4693
  msgstr ""
4694
 
4695
- #: includes/topics/template.php:3690
4696
  msgid "This topic has no replies."
4697
  msgstr ""
4698
 
4699
- #: includes/topics/template.php:3742
4700
  msgid "Search Tags"
4701
  msgstr ""
4702
 
4703
- #: includes/topics/template.php:3743
4704
  msgid "Popular Tags"
4705
  msgstr ""
4706
 
4707
- #: includes/topics/template.php:3744
4708
  msgid "All Tags"
4709
  msgstr ""
4710
 
4711
- #: includes/topics/template.php:3745
4712
  msgid "Edit Tag"
4713
  msgstr ""
4714
 
4715
- #: includes/topics/template.php:3746
4716
  msgid "Update Tag"
4717
  msgstr ""
4718
 
4719
- #: includes/topics/template.php:3747
4720
  msgid "Add New Tag"
4721
  msgstr ""
4722
 
4723
- #: includes/topics/template.php:3748
4724
  msgid "New Tag Name"
4725
  msgstr ""
4726
 
4727
- #: includes/topics/template.php:3749
4728
  msgid "View Topic Tag"
4729
  msgstr ""
4730
 
4731
- #: includes/topics/template.php:3750
4732
  msgid "View Topic Tags"
4733
  msgstr ""
4734
 
4735
- #: includes/topics/template.php:3751
4736
  msgid "Topic tags list"
4737
  msgstr ""
4738
 
4739
- #: includes/topics/template.php:3752
4740
  msgid "Topic tags list navigation"
4741
  msgstr ""
4742
 
4743
- #: includes/topics/template.php:3753
4744
  msgid "Separate topic tags with commas"
4745
  msgstr ""
4746
 
4747
- #: includes/topics/template.php:4452
4748
  msgid "Nobody"
4749
  msgstr ""
4750
 
4751
- #: includes/topics/template.php:4456
4752
  msgid "%1$s is currently editing this topic."
4753
  msgstr ""
4754
 
4755
- #: includes/users/engagements.php:526
4756
  msgid ""
4757
  "<strong>ERROR</strong>: No topic was found. Which topic are you "
4758
  "marking/unmarking as favorite?"
4759
  msgstr ""
4760
 
4761
- #: includes/users/engagements.php:534
4762
  msgid ""
4763
  "<strong>ERROR</strong>: You do not have permission to edit favorites for "
4764
  "that user!."
4765
  msgstr ""
4766
 
4767
- #: includes/users/engagements.php:575
4768
  msgid ""
4769
  "<strong>ERROR</strong>: There was a problem removing that topic from "
4770
  "favorites."
4771
  msgstr ""
4772
 
4773
- #: includes/users/engagements.php:577
4774
  msgid "<strong>ERROR</strong>: There was a problem favoriting that topic."
4775
  msgstr ""
4776
 
4777
- #: includes/users/engagements.php:1197
4778
  msgid ""
4779
  "<strong>ERROR</strong>: No forum was found. Which forum are you "
4780
  "subscribing/unsubscribing to?"
4781
  msgstr ""
4782
 
4783
- #: includes/users/engagements.php:1205 includes/users/engagements.php:1315
4784
  msgid ""
4785
  "<strong>ERROR</strong>: You do not have permission to edit favorites of "
4786
  "that user."
4787
  msgstr ""
4788
 
4789
- #: includes/users/engagements.php:1246
4790
  msgid "<strong>ERROR</strong>: There was a problem unsubscribing from that forum."
4791
  msgstr ""
4792
 
4793
- #: includes/users/engagements.php:1248
4794
  msgid "<strong>ERROR</strong>: There was a problem subscribing to that forum."
4795
  msgstr ""
4796
 
4797
- #: includes/users/engagements.php:1307
4798
  msgid ""
4799
  "<strong>ERROR</strong>: No topic was found. Which topic are you "
4800
  "subscribing/unsubscribing to?"
4801
  msgstr ""
4802
 
4803
- #: includes/users/engagements.php:1356
4804
  msgid "<strong>ERROR</strong>: There was a problem unsubscribing from that topic."
4805
  msgstr ""
4806
 
4807
- #: includes/users/engagements.php:1358
4808
  msgid "<strong>ERROR</strong>: There was a problem subscribing to that topic."
4809
  msgstr ""
4810
 
@@ -5702,12 +5714,12 @@ msgid_plural "Hidden <span class=\"count\">(%s)</span>"
5702
  msgstr[0] ""
5703
  msgstr[1] ""
5704
 
5705
- #: includes/admin/admin.php:658
5706
  msgctxt "admin color scheme"
5707
  msgid "Mint"
5708
  msgstr ""
5709
 
5710
- #: includes/admin/admin.php:667
5711
  msgctxt "admin color scheme"
5712
  msgid "Evergreen"
5713
  msgstr ""
@@ -5732,7 +5744,7 @@ msgctxt "Approve reply"
5732
  msgid "Approve"
5733
  msgstr ""
5734
 
5735
- #: includes/admin/settings.php:359 includes/replies/template.php:53
5736
  msgctxt "noun"
5737
  msgid "Reply"
5738
  msgstr ""
@@ -5826,57 +5838,57 @@ msgctxt "group admin edit screen"
5826
  msgid "Discussion Forum"
5827
  msgstr ""
5828
 
5829
- #: includes/forums/functions.php:2022
5830
  msgctxt "Open the forum"
5831
  msgid "Open"
5832
  msgstr ""
5833
 
5834
- #: includes/forums/functions.php:2023
5835
  msgctxt "Close the forum"
5836
  msgid "Closed"
5837
  msgstr ""
5838
 
5839
- #: includes/forums/functions.php:2040
5840
  msgctxt "Forum accepts new topics"
5841
  msgid "Forum"
5842
  msgstr ""
5843
 
5844
- #: includes/forums/functions.php:2041
5845
  msgctxt "Forum is a category"
5846
  msgid "Category"
5847
  msgstr ""
5848
 
5849
- #: includes/forums/functions.php:2058
5850
  msgctxt "Make forum public"
5851
  msgid "Public"
5852
  msgstr ""
5853
 
5854
- #: includes/forums/functions.php:2059
5855
  msgctxt "Make forum private"
5856
  msgid "Private"
5857
  msgstr ""
5858
 
5859
- #: includes/forums/functions.php:2060
5860
  msgctxt "Make forum hidden"
5861
  msgid "Hidden"
5862
  msgstr ""
5863
 
5864
- #: includes/replies/functions.php:1786
5865
  msgctxt "Publish the reply"
5866
  msgid "Publish"
5867
  msgstr ""
5868
 
5869
- #: includes/replies/functions.php:1787
5870
  msgctxt "Spam the reply"
5871
  msgid "Spam"
5872
  msgstr ""
5873
 
5874
- #: includes/replies/functions.php:1788
5875
  msgctxt "Trash the reply"
5876
  msgid "Trash"
5877
  msgstr ""
5878
 
5879
- #: includes/replies/functions.php:1789
5880
  msgctxt "Mark reply as pending"
5881
  msgid "Pending"
5882
  msgstr ""
@@ -5886,7 +5898,7 @@ msgctxt "date at time"
5886
  msgid "%1$s at %2$s"
5887
  msgstr ""
5888
 
5889
- #: includes/replies/template.php:1742 includes/topics/template.php:3213
5890
  msgctxt "verb"
5891
  msgid "Reply"
5892
  msgstr ""
@@ -5906,57 +5918,57 @@ msgctxt "Default reply to dropdown text"
5906
  msgid "None"
5907
  msgstr ""
5908
 
5909
- #: includes/topics/functions.php:2034 includes/topics/template.php:2900
5910
  msgctxt "Open the topic"
5911
  msgid "Open"
5912
  msgstr ""
5913
 
5914
- #: includes/topics/functions.php:2035
5915
  msgctxt "Close the topic"
5916
  msgid "Closed"
5917
  msgstr ""
5918
 
5919
- #: includes/topics/template.php:2899
5920
  msgctxt "Close the topic"
5921
  msgid "Close"
5922
  msgstr ""
5923
 
5924
- #: includes/topics/functions.php:2036
5925
  msgctxt "Spam the topic"
5926
  msgid "Spam"
5927
  msgstr ""
5928
 
5929
- #: includes/topics/functions.php:2037
5930
  msgctxt "Trash the topic"
5931
  msgid "Trash"
5932
  msgstr ""
5933
 
5934
- #: includes/topics/functions.php:2038
5935
  msgctxt "Mark topic as pending"
5936
  msgid "Pending"
5937
  msgstr ""
5938
 
5939
- #: includes/topics/functions.php:2055
5940
  msgctxt "Unstick a topic"
5941
  msgid "Normal"
5942
  msgstr ""
5943
 
5944
- #: includes/topics/functions.php:2056
5945
  msgctxt "Make topic sticky"
5946
  msgid "Sticky"
5947
  msgstr ""
5948
 
5949
- #: includes/topics/functions.php:2057
5950
  msgctxt "Make topic super sticky"
5951
  msgid "Super Sticky"
5952
  msgstr ""
5953
 
5954
- #: includes/topics/template.php:2963
5955
  msgctxt "Approve the topic"
5956
  msgid "Approve"
5957
  msgstr ""
5958
 
5959
- #: includes/topics/template.php:2964
5960
  msgctxt "Unapprove the topic"
5961
  msgid "Unapprove"
5962
  msgstr ""
2
  # This file is distributed under the GPLv2 or later (license.txt).
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: bbPress 2.6-rc-3\n"
6
  "Report-Msgid-Bugs-To: https://bbpress.trac.wordpress.org\n"
7
+ "POT-Creation-Date: 2017-06-12 21:55:44+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=utf-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
46
  msgstr ""
47
 
48
  #: includes/admin/actions.php:158 includes/admin/forums.php:581
49
+ #: includes/admin/settings.php:272 includes/admin/settings.php:293
50
  #: includes/admin/tools/common.php:302 includes/admin/topics.php:888
51
  #: includes/extend/buddypress/activity.php:204
52
  #: includes/extend/buddypress/activity.php:409
53
+ #: includes/forums/template.php:2912 includes/topics/template.php:51
54
  #: includes/topics/template.php:52
55
  #: templates/default/bbpress/content-statistics.php:30
56
  #: templates/default/bbpress/loop-forums.php:21
58
  msgstr ""
59
 
60
  #: includes/admin/actions.php:163 includes/admin/actions.php:175
61
+ #: includes/admin/forums.php:582 includes/admin/settings.php:280
62
+ #: includes/admin/settings.php:301 includes/admin/tools/common.php:305
63
  #: includes/admin/topics.php:406 includes/admin/topics.php:890
64
  #: includes/core/theme-compat.php:691
65
  #: includes/extend/buddypress/activity.php:214
66
  #: includes/extend/buddypress/activity.php:410
67
+ #: includes/forums/template.php:2977 includes/replies/template.php:51
68
  #: includes/replies/template.php:52
69
  #: templates/default/bbpress/content-statistics.php:35
70
  #: templates/default/bbpress/loop-forums.php:23
77
  #: includes/admin/actions.php:170 includes/admin/actions.php:182
78
  #: includes/admin/forums.php:580 includes/admin/metaboxes.php:97
79
  #: includes/admin/metaboxes.php:425 includes/admin/metaboxes.php:492
80
+ #: includes/admin/replies.php:684 includes/admin/settings.php:343
81
  #: includes/admin/topics.php:889 includes/extend/buddypress/groups.php:50
82
  #: includes/extend/buddypress/groups.php:51 includes/forums/template.php:54
83
  #: templates/default/bbpress/loop-forums.php:20
86
 
87
  #: includes/admin/actions.php:187 includes/admin/metaboxes.php:114
88
  #: includes/admin/metaboxes.php:519 includes/admin/replies.php:685
89
+ #: includes/admin/settings.php:351 includes/topics/template.php:53
90
  #: templates/default/bbpress/content-single-topic-lead.php:23
91
  #: templates/default/bbpress/content-single-topic-lead.php:91
92
  #: templates/default/bbpress/loop-topics.php:18
96
  #: includes/admin/admin.php:242 includes/admin/admin.php:243
97
  #: includes/admin/admin.php:252 includes/admin/admin.php:253
98
  #: includes/admin/tools/common.php:299 includes/admin/tools.php:30
99
+ #: includes/admin/users.php:98 includes/common/widgets.php:682
100
  #: includes/extend/buddypress/loader.php:42
101
  #: includes/extend/buddypress/loader.php:179
102
  #: includes/extend/buddypress/loader.php:301
113
 
114
  #: includes/admin/admin.php:289 includes/admin/admin.php:290
115
  #: includes/admin/admin.php:313 includes/admin/admin.php:314
116
+ #: includes/admin/admin.php:1053 includes/admin/admin.php:1150
117
  msgid "Update Forums"
118
  msgstr ""
119
 
120
+ #: includes/admin/admin.php:535
121
  msgid "Settings"
122
  msgstr ""
123
 
124
+ #: includes/admin/admin.php:540
125
  msgid "About"
126
  msgstr ""
127
 
128
+ #: includes/admin/admin.php:559
129
  msgid "About bbPress"
130
  msgstr ""
131
 
132
+ #: includes/admin/admin.php:729 includes/admin/admin.php:766
133
  msgid "%s - %s"
134
  msgstr ""
135
 
136
+ #: includes/admin/admin.php:784 includes/admin/admin.php:861
137
  msgid "Welcome to bbPress %s"
138
  msgstr ""
139
 
140
+ #: includes/admin/admin.php:785 includes/admin/admin.php:862
141
  msgid ""
142
  "Thank you for updating! bbPress %s is sweet and savory, contains no "
143
  "artificial flavors or preservatives, is environmentally friendly, and is a "
144
  "great compliment to your site."
145
  msgstr ""
146
 
147
+ #: includes/admin/admin.php:790 includes/admin/admin.php:867
148
  msgid "What&#8217;s New"
149
  msgstr ""
150
 
151
+ #: includes/admin/admin.php:792 includes/admin/admin.php:869
152
  msgid "Credits"
153
  msgstr ""
154
 
155
+ #: includes/admin/admin.php:797
156
  msgid "Forum Subscriptions"
157
  msgstr ""
158
 
159
+ #: includes/admin/admin.php:801
160
  msgid "Subscribe to Forums"
161
  msgstr ""
162
 
163
+ #: includes/admin/admin.php:802
164
  msgid "Now your users can subscribe to new topics in specific forums."
165
  msgstr ""
166
 
167
+ #: includes/admin/admin.php:806
168
  msgid "Manage Subscriptions"
169
  msgstr ""
170
 
171
+ #: includes/admin/admin.php:807
172
  msgid "Your users can manage all of their subscriptions in one convenient location."
173
  msgstr ""
174
 
175
+ #: includes/admin/admin.php:813
176
  msgid "Converters"
177
  msgstr ""
178
 
179
+ #: includes/admin/admin.php:817
180
  msgid ""
181
  "We&#8217;re all abuzz about the hive of new importers, AEF, Drupal, FluxBB, "
182
  "Kunena Forums for Joomla, MyBB, Phorum, PHPFox, PHPWind, PunBB, SMF, "
185
  "now gone if you need to remove imported users."
186
  msgstr ""
187
 
188
+ #: includes/admin/admin.php:823
189
  msgid "Theme Compatibility"
190
  msgstr ""
191
 
192
+ #: includes/admin/admin.php:824
193
  msgid "Better handling of styles and scripts in the template stack."
194
  msgstr ""
195
 
196
+ #: includes/admin/admin.php:828
197
  msgid "Polyglot support"
198
  msgstr ""
199
 
200
+ #: includes/admin/admin.php:829
201
  msgid "bbPress fully supports automatic translation updates."
202
  msgstr ""
203
 
204
+ #: includes/admin/admin.php:833
205
  msgid "User capabilities"
206
  msgstr ""
207
 
208
+ #: includes/admin/admin.php:834
209
  msgid "Roles and capabilities have been swept through, cleaned up, and simplified."
210
  msgstr ""
211
 
212
+ #: includes/admin/admin.php:840 includes/admin/admin.php:983
213
  msgid "Go to Forum Settings"
214
  msgstr ""
215
 
216
+ #: includes/admin/admin.php:873
217
  msgid "bbPress is created by a worldwide swarm of busy, busy bees."
218
  msgstr ""
219
 
220
+ #: includes/admin/admin.php:875
221
  msgid "Project Leaders"
222
  msgstr ""
223
 
224
+ #: includes/admin/admin.php:879
225
  msgid "Founding Developer"
226
  msgstr ""
227
 
228
+ #: includes/admin/admin.php:883
229
  msgid "Lead Developer"
230
  msgstr ""
231
 
232
+ #: includes/admin/admin.php:887 includes/admin/admin.php:911
233
  msgid "Feature Developer"
234
  msgstr ""
235
 
236
+ #: includes/admin/admin.php:891
237
  msgid "Converter Specialist"
238
  msgstr ""
239
 
240
+ #: includes/admin/admin.php:895
241
  msgid "Contributing Developers"
242
  msgstr ""
243
 
244
+ #: includes/admin/admin.php:899 includes/admin/admin.php:903
245
  msgid "Core Developer"
246
  msgstr ""
247
 
248
+ #: includes/admin/admin.php:907
249
  msgid "Project Emeriti"
250
  msgstr ""
251
 
252
+ #: includes/admin/admin.php:915
253
  msgid "Integration Testing"
254
  msgstr ""
255
 
256
+ #: includes/admin/admin.php:919
257
  msgid "Core Contributors to bbPress 2.6"
258
  msgstr ""
259
 
260
+ #: includes/admin/admin.php:1007 includes/admin/admin.php:1029
261
  msgid "Update Forum"
262
  msgstr ""
263
 
264
+ #: includes/admin/admin.php:1018 includes/admin/admin.php:1070
265
  msgid "All done!"
266
  msgstr ""
267
 
268
+ #: includes/admin/admin.php:1019 includes/admin/admin.php:1071
269
  msgid "Go Back"
270
  msgstr ""
271
 
272
+ #: includes/admin/admin.php:1028
273
  msgid "You can update your forum through this page. Hit the link below to update."
274
  msgstr ""
275
 
276
+ #: includes/admin/admin.php:1105
277
  msgid ""
278
  "Warning! Problem updating %1$s. Your server may not be able to connect to "
279
  "sites running on it. Error message: %2$s"
280
  msgstr ""
281
 
282
+ #: includes/admin/admin.php:1130
283
  msgid ""
284
  "If your browser doesn&#8217;t start loading the next page automatically, "
285
  "click this link:"
286
  msgstr ""
287
 
288
+ #: includes/admin/admin.php:1131
289
  msgid "Next Forums"
290
  msgstr ""
291
 
292
+ #: includes/admin/admin.php:1149
293
  msgid ""
294
  "You can update all the forums on your network through this page. It works "
295
  "by calling the update script of each site automatically. Hit the link below "
296
  "to update."
297
  msgstr ""
298
 
299
+ #: includes/admin/classes/class-bbp-converter-base.php:135
300
  msgid "Database connection failed."
301
  msgstr ""
302
 
303
+ #: includes/admin/classes/class-bbp-converter.php:113
304
+ #: includes/admin/settings.php:1794
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
305
  msgid "Start"
306
  msgstr ""
307
 
308
+ #: includes/admin/classes/class-bbp-converter.php:114
309
+ #: includes/admin/classes/class-bbp-converter.php:121
310
+ #: includes/admin/settings.php:1793
311
  msgid "Continue"
312
  msgstr ""
313
 
314
+ #: includes/admin/classes/class-bbp-converter.php:117
315
  msgid "Starting Import"
316
  msgstr ""
317
 
318
+ #: includes/admin/classes/class-bbp-converter.php:118
319
  msgid "Continuing Import"
320
  msgstr ""
321
 
322
+ #: includes/admin/classes/class-bbp-converter.php:121
323
  msgid "Repair any missing information: %s"
324
  msgstr ""
325
 
326
+ #: includes/admin/classes/class-bbp-converter.php:122
327
+ #: includes/admin/classes/class-bbp-converter.php:785
328
  msgid "Import Finished"
329
  msgstr ""
330
 
331
+ #: includes/admin/classes/class-bbp-converter.php:123
332
  msgid "Import Stopped (by User)"
333
  msgstr ""
334
 
335
+ #: includes/admin/classes/class-bbp-converter.php:124
336
  msgid "Database Connection Failed"
337
  msgstr ""
338
 
339
+ #: includes/admin/classes/class-bbp-converter.php:125
340
  msgid "Import Halted (Error)"
341
  msgstr ""
342
 
343
+ #: includes/admin/classes/class-bbp-converter.php:128
344
+ #: includes/admin/settings.php:1835
345
+ msgid "Timer: Stopped"
346
+ msgstr ""
347
+
348
+ #: includes/admin/classes/class-bbp-converter.php:129
349
+ msgid "Timer: Waiting..."
350
+ msgstr ""
351
+
352
+ #: includes/admin/classes/class-bbp-converter.php:130
353
+ msgid "Timer: %s"
354
+ msgstr ""
355
+
356
+ #: includes/admin/classes/class-bbp-converter.php:467
357
  msgid "Recreating sync-table"
358
  msgstr ""
359
 
360
+ #: includes/admin/classes/class-bbp-converter.php:470
361
  msgid "Deleting previously converted data (%1$s - %2$s)"
362
  msgstr ""
363
 
364
+ #: includes/admin/classes/class-bbp-converter.php:474
365
  msgid "Skipping sync-table clean-up"
366
  msgstr ""
367
 
368
+ #: includes/admin/classes/class-bbp-converter.php:491
369
  msgid "No users to import"
370
  msgstr ""
371
 
372
+ #: includes/admin/classes/class-bbp-converter.php:495
373
  msgid "Converting users (%1$s - %2$s)"
374
  msgstr ""
375
 
376
+ #: includes/admin/classes/class-bbp-converter.php:499
377
  msgid "Skipping user clean-up"
378
  msgstr ""
379
 
380
+ #: includes/admin/classes/class-bbp-converter.php:514
381
  msgid "No passwords to clear"
382
  msgstr ""
383
 
384
+ #: includes/admin/classes/class-bbp-converter.php:518
385
  msgid "Delete users WordPress default passwords (%1$s - %2$s)"
386
  msgstr ""
387
 
388
+ #: includes/admin/classes/class-bbp-converter.php:522
389
  msgid "Skipping password clean-up"
390
  msgstr ""
391
 
392
+ #: includes/admin/classes/class-bbp-converter.php:536
393
  msgid "No forums to import"
394
  msgstr ""
395
 
396
+ #: includes/admin/classes/class-bbp-converter.php:540
397
  msgid "Converting forums (%1$s - %2$s)"
398
  msgstr ""
399
 
400
+ #: includes/admin/classes/class-bbp-converter.php:554
401
  msgid "No forum parents to import"
402
  msgstr ""
403
 
404
+ #: includes/admin/classes/class-bbp-converter.php:558
405
  msgid "Calculating forum hierarchy (%1$s - %2$s)"
406
  msgstr ""
407
 
408
+ #: includes/admin/classes/class-bbp-converter.php:572
409
  msgid "No forum subscriptions to import"
410
  msgstr ""
411
 
412
+ #: includes/admin/classes/class-bbp-converter.php:576
413
  msgid "Converting forum subscriptions (%1$s - %2$s)"
414
  msgstr ""
415
 
416
+ #: includes/admin/classes/class-bbp-converter.php:590
417
  msgid "No topics to import"
418
  msgstr ""
419
 
420
+ #: includes/admin/classes/class-bbp-converter.php:594
421
  msgid "Converting topics (%1$s - %2$s)"
422
  msgstr ""
423
 
424
+ #: includes/admin/classes/class-bbp-converter.php:608
425
  msgid "No anonymous topic authors to import"
426
  msgstr ""
427
 
428
+ #: includes/admin/classes/class-bbp-converter.php:612
429
  msgid "Converting anonymous topic authors (%1$s - %2$s)"
430
  msgstr ""
431
 
432
+ #: includes/admin/classes/class-bbp-converter.php:626
433
  msgid "No stickies to stick"
434
  msgstr ""
435
 
436
+ #: includes/admin/classes/class-bbp-converter.php:630
437
  msgid "Calculating topic stickies (%1$s - %2$s)"
438
  msgstr ""
439
 
440
+ #: includes/admin/classes/class-bbp-converter.php:644
441
  msgid "No super stickies to stick"
442
  msgstr ""
443
 
444
+ #: includes/admin/classes/class-bbp-converter.php:648
445
  msgid "Calculating topic super stickies (%1$s - %2$s)"
446
  msgstr ""
447
 
448
+ #: includes/admin/classes/class-bbp-converter.php:662
449
  msgid "No closed topics to close"
450
  msgstr ""
451
 
452
+ #: includes/admin/classes/class-bbp-converter.php:666
453
  msgid "Calculating closed topics (%1$s - %2$s)"
454
  msgstr ""
455
 
456
+ #: includes/admin/classes/class-bbp-converter.php:680
457
  msgid "No topic tags to import"
458
  msgstr ""
459
 
460
+ #: includes/admin/classes/class-bbp-converter.php:684
461
  msgid "Converting topic tags (%1$s - %2$s)"
462
  msgstr ""
463
 
464
+ #: includes/admin/classes/class-bbp-converter.php:698
465
  msgid "No topic subscriptions to import"
466
  msgstr ""
467
 
468
+ #: includes/admin/classes/class-bbp-converter.php:702
469
  msgid "Converting topic subscriptions (%1$s - %2$s)"
470
  msgstr ""
471
 
472
+ #: includes/admin/classes/class-bbp-converter.php:716
473
  msgid "No favorites to import"
474
  msgstr ""
475
 
476
+ #: includes/admin/classes/class-bbp-converter.php:720
477
  msgid "Converting favorites (%1$s - %2$s)"
478
  msgstr ""
479
 
480
+ #: includes/admin/classes/class-bbp-converter.php:734
481
  msgid "No replies to import"
482
  msgstr ""
483
 
484
+ #: includes/admin/classes/class-bbp-converter.php:738
485
  msgid "Converting replies (%1$s - %2$s)"
486
  msgstr ""
487
 
488
+ #: includes/admin/classes/class-bbp-converter.php:752
489
  msgid "No anonymous reply authors to import"
490
  msgstr ""
491
 
492
+ #: includes/admin/classes/class-bbp-converter.php:756
493
  msgid "Converting anonymous reply authors (%1$s - %2$s)"
494
  msgstr ""
495
 
496
+ #: includes/admin/classes/class-bbp-converter.php:770
497
  msgid "No threaded replies to import"
498
  msgstr ""
499
 
500
+ #: includes/admin/classes/class-bbp-converter.php:774
501
  msgid "Calculating threaded replies parents (%1$s - %2$s)"
502
  msgstr ""
503
 
525
  #: includes/admin/classes/class-bbp-topic-replies-list-table.php:88
526
  #: includes/admin/replies.php:246 includes/admin/replies.php:868
527
  #: includes/admin/topics.php:251 includes/admin/topics.php:1082
528
+ #: includes/replies/template.php:2258 includes/topics/template.php:3175
529
  msgid "Spam"
530
  msgstr ""
531
 
532
  #: includes/admin/classes/class-bbp-topic-replies-list-table.php:89
533
  #: includes/admin/replies.php:881 includes/admin/topics.php:1094
534
+ #: includes/replies/template.php:2178 includes/topics/template.php:2837
535
  msgid "Trash"
536
  msgstr ""
537
 
538
  #: includes/admin/classes/class-bbp-topic-replies-list-table.php:141
539
  #: includes/admin/replies.php:844 includes/admin/topics.php:1038
540
+ #: includes/admin/topics.php:1051 includes/admin/users.php:269
541
  msgid "View"
542
  msgstr ""
543
 
544
  #: includes/admin/classes/class-bbp-topic-replies-list-table.php:146
545
  #: includes/common/template.php:2460 includes/forums/template.php:58
546
  #: includes/replies/template.php:57 includes/replies/template.php:2046
547
+ #: includes/topics/template.php:57 includes/topics/template.php:2707
548
  #: templates/default/bbpress/user-details.php:74
549
  msgid "Edit"
550
  msgstr ""
554
  msgstr ""
555
 
556
  #: includes/admin/forums.php:113 includes/admin/replies.php:124
557
+ #: includes/admin/settings.php:1870 includes/admin/tools/help.php:102
558
  #: includes/admin/topics.php:128
559
  msgid "Overview"
560
  msgstr ""
630
 
631
  #: includes/admin/forums.php:147 includes/admin/replies.php:162
632
  #: includes/admin/tools/repair.php:52 includes/admin/tools/repair.php:148
633
+ #: includes/admin/tools/upgrade.php:49 includes/admin/tools/upgrade.php:145
634
  #: includes/admin/topics.php:168
635
  msgid "Bulk Actions"
636
  msgstr ""
651
 
652
  #: includes/admin/forums.php:155 includes/admin/forums.php:213
653
  #: includes/admin/replies.php:170 includes/admin/replies.php:226
654
+ #: includes/admin/settings.php:1936 includes/admin/tools/help.php:45
655
  #: includes/admin/tools/help.php:76 includes/admin/tools/help.php:137
656
  #: includes/admin/topics.php:176 includes/admin/topics.php:231
657
  msgid "For more information:"
659
 
660
  #: includes/admin/forums.php:156 includes/admin/forums.php:214
661
  #: includes/admin/replies.php:171 includes/admin/replies.php:227
662
+ #: includes/admin/settings.php:1937 includes/admin/tools/help.php:46
663
  #: includes/admin/tools/help.php:77 includes/admin/tools/help.php:138
664
  #: includes/admin/topics.php:177 includes/admin/topics.php:232
665
  msgid ""
669
 
670
  #: includes/admin/forums.php:157 includes/admin/forums.php:215
671
  #: includes/admin/replies.php:172 includes/admin/replies.php:228
672
+ #: includes/admin/settings.php:1938 includes/admin/tools/help.php:47
673
  #: includes/admin/tools/help.php:78 includes/admin/tools/help.php:139
674
  #: includes/admin/topics.php:178 includes/admin/topics.php:233
675
  msgid ""
778
  msgid "Publish Box"
779
  msgstr ""
780
 
781
+ #: includes/admin/forums.php:258 includes/admin/settings.php:208
782
  #: includes/admin/tools/reset.php:44
783
  msgid "Forum Moderators"
784
  msgstr ""
785
 
786
+ #: includes/admin/forums.php:290 includes/admin/settings.php:184
787
+ #: includes/admin/settings.php:428 includes/admin/tools/common.php:317
788
  #: includes/admin/topics.php:502 includes/extend/buddypress/loader.php:250
789
  #: templates/default/bbpress/user-details.php:67
790
  msgid "Subscriptions"
940
  msgstr[0] ""
941
  msgstr[1] ""
942
 
943
+ #: includes/admin/metaboxes.php:150 includes/admin/settings.php:359
944
+ #: includes/topics/template.php:3754
945
  msgid "Topic Tag"
946
  msgid_plural "Topic Tags"
947
  msgstr[0] ""
1003
  msgid "Forum Parent"
1004
  msgstr ""
1005
 
1006
+ #: includes/admin/metaboxes.php:359 includes/admin/settings.php:1465
1007
  #: templates/default/bbpress/form-forum.php:144
1008
  msgid "&mdash; No parent &mdash;"
1009
  msgstr ""
1285
  msgstr ""
1286
 
1287
  #: includes/admin/replies.php:244 includes/admin/topics.php:249
1288
+ #: includes/replies/template.php:2259 includes/topics/template.php:3176
1289
  msgid "Unspam"
1290
  msgstr ""
1291
 
1404
  msgstr ""
1405
 
1406
  #: includes/admin/replies.php:879 includes/admin/topics.php:1092
1407
+ #: includes/replies/template.php:2196 includes/topics/template.php:2854
1408
  msgid "Restore this item from the Trash"
1409
  msgstr ""
1410
 
1411
  #: includes/admin/replies.php:879 includes/admin/topics.php:1092
1412
+ #: includes/replies/template.php:2179 includes/topics/template.php:2838
1413
  msgid "Restore"
1414
  msgstr ""
1415
 
1416
  #: includes/admin/replies.php:881 includes/admin/topics.php:1094
1417
+ #: includes/replies/template.php:2200 includes/topics/template.php:2856
1418
  msgid "Move this item to the Trash"
1419
  msgstr ""
1420
 
1421
  #: includes/admin/replies.php:885 includes/admin/topics.php:1098
1422
+ #: includes/replies/template.php:2205 includes/topics/template.php:2860
1423
  msgid "Delete this item permanently"
1424
  msgstr ""
1425
 
1475
  msgid "Reply draft updated."
1476
  msgstr ""
1477
 
1478
+ #: includes/admin/settings.php:29
1479
  msgid "Forum User Settings"
1480
  msgstr ""
1481
 
1482
+ #: includes/admin/settings.php:34
1483
  msgid "Forum Features"
1484
  msgstr ""
1485
 
1486
+ #: includes/admin/settings.php:39
1487
  msgid "Forum Theme Packages"
1488
  msgstr ""
1489
 
1490
+ #: includes/admin/settings.php:44
1491
  msgid "Topics and Replies Per Page"
1492
  msgstr ""
1493
 
1494
+ #: includes/admin/settings.php:49
1495
  msgid "Topics and Replies Per RSS Page"
1496
  msgstr ""
1497
 
1498
+ #: includes/admin/settings.php:54
1499
  msgid "Forum Root Slug"
1500
  msgstr ""
1501
 
1502
+ #: includes/admin/settings.php:59
1503
  msgid "Forum Single Slugs"
1504
  msgstr ""
1505
 
1506
+ #: includes/admin/settings.php:64
1507
  msgid "Forum User Slugs"
1508
  msgstr ""
1509
 
1510
+ #: includes/admin/settings.php:71
1511
  msgid "Forum Integration for BuddyPress"
1512
  msgstr ""
1513
 
1514
+ #: includes/admin/settings.php:76
1515
  msgid "Forum Integration for Akismet"
1516
  msgstr ""
1517
 
1518
+ #: includes/admin/settings.php:83 includes/admin/tools/help.php:111
1519
+ msgid "Database Settings"
1520
+ msgstr ""
1521
+
1522
+ #: includes/admin/settings.php:88
1523
+ msgid "Options"
1524
+ msgstr ""
1525
+
1526
+ #: includes/admin/settings.php:119
1527
  msgid "Roles"
1528
  msgstr ""
1529
 
1530
+ #: includes/admin/settings.php:133
1531
  msgid "Flooding"
1532
  msgstr ""
1533
 
1534
+ #: includes/admin/settings.php:147
1535
  msgid "Editing"
1536
  msgstr ""
1537
 
1538
+ #: includes/admin/settings.php:155 includes/replies/template.php:1197
1539
+ #: includes/topics/template.php:1505 includes/users/template.php:404
1540
  msgid "Anonymous"
1541
  msgstr ""
1542
 
1543
+ #: includes/admin/settings.php:168 includes/admin/settings.php:2031
1544
  msgid "Revisions"
1545
  msgstr ""
1546
 
1547
+ #: includes/admin/settings.php:176 includes/admin/tools/common.php:314
1548
  #: includes/admin/topics.php:470 includes/extend/buddypress/loader.php:237
1549
  #: templates/default/bbpress/user-details.php:57
1550
  msgid "Favorites"
1551
  msgstr ""
1552
 
1553
+ #: includes/admin/settings.php:192 includes/admin/settings.php:436
1554
  #: includes/admin/tools/common.php:320 includes/admin/topics.php:438
1555
  #: includes/extend/buddypress/loader.php:224
1556
  #: includes/extend/buddypress/loader.php:326
1558
  msgid "Engagements"
1559
  msgstr ""
1560
 
1561
+ #: includes/admin/settings.php:200
1562
  msgid "Topic tags"
1563
  msgstr ""
1564
 
1565
+ #: includes/admin/settings.php:216 includes/admin/settings.php:383
1566
  #: includes/common/template.php:2575 includes/search/template.php:232
1567
  #: templates/default/bbpress/form-search.php:20
1568
  msgid "Search"
1569
  msgstr ""
1570
 
1571
+ #: includes/admin/settings.php:224
1572
  msgid "Post Formatting"
1573
  msgstr ""
1574
 
1575
+ #: includes/admin/settings.php:232
1576
  msgid "Auto-embed links"
1577
  msgstr ""
1578
 
1579
+ #: includes/admin/settings.php:240
1580
  msgid "Reply Threading"
1581
  msgstr ""
1582
 
1583
+ #: includes/admin/settings.php:259
1584
  msgid "Current Package"
1585
  msgstr ""
1586
 
1587
+ #: includes/admin/settings.php:314
1588
  msgid "Forum Root"
1589
  msgstr ""
1590
 
1591
+ #: includes/admin/settings.php:322
1592
  msgid "Forum Prefix"
1593
  msgstr ""
1594
 
1595
+ #: includes/admin/settings.php:330
1596
  msgid "Forum root should show"
1597
  msgstr ""
1598
 
1599
+ #: includes/admin/settings.php:367
1600
  msgid "Topic View"
1601
  msgstr ""
1602
 
1603
+ #: includes/admin/settings.php:396
1604
  msgid "User Base"
1605
  msgstr ""
1606
 
1607
+ #: includes/admin/settings.php:404 includes/extend/buddypress/loader.php:201
1608
  #: includes/extend/buddypress/loader.php:309
1609
  #: templates/default/bbpress/user-details.php:36
1610
  msgid "Topics Started"
1611
  msgstr ""
1612
 
1613
+ #: includes/admin/settings.php:412 includes/extend/buddypress/loader.php:212
1614
  #: includes/extend/buddypress/loader.php:317
1615
  #: templates/default/bbpress/user-details.php:42
1616
  msgid "Replies Created"
1617
  msgstr ""
1618
 
1619
+ #: includes/admin/settings.php:420 includes/extend/buddypress/loader.php:336
1620
  msgid "Favorite Topics"
1621
  msgstr ""
1622
 
1623
+ #: includes/admin/settings.php:449 includes/admin/tools/upgrade.php:325
1624
  #: includes/extend/buddypress/functions.php:366
1625
  msgid "Group Forums"
1626
  msgstr ""
1627
 
1628
+ #: includes/admin/settings.php:457
1629
  msgid "Primary Forum"
1630
  msgstr ""
1631
 
1632
+ #: includes/admin/settings.php:470
1633
  msgid "Use Akismet"
1634
  msgstr ""
1635
 
1636
+ #: includes/admin/settings.php:484
1637
+ msgid "Select Platform"
1638
+ msgstr ""
1639
+
1640
+ #: includes/admin/settings.php:492
1641
+ msgid "Database Server"
1642
+ msgstr ""
1643
+
1644
+ #: includes/admin/settings.php:500
1645
+ msgid "Database Port"
1646
+ msgstr ""
1647
+
1648
+ #: includes/admin/settings.php:508
1649
+ msgid "Database Name"
1650
+ msgstr ""
1651
+
1652
+ #: includes/admin/settings.php:516
1653
+ msgid "Database User"
1654
+ msgstr ""
1655
+
1656
+ #: includes/admin/settings.php:524
1657
+ msgid "Database Password"
1658
+ msgstr ""
1659
+
1660
+ #: includes/admin/settings.php:532
1661
+ msgid "Table Prefix"
1662
+ msgstr ""
1663
+
1664
+ #: includes/admin/settings.php:544
1665
+ msgid "Rows Limit"
1666
+ msgstr ""
1667
+
1668
+ #: includes/admin/settings.php:552
1669
+ msgid "Delay Time"
1670
+ msgstr ""
1671
+
1672
+ #: includes/admin/settings.php:560
1673
+ msgid "Convert Users"
1674
+ msgstr ""
1675
+
1676
+ #: includes/admin/settings.php:568
1677
+ msgid "Start Over"
1678
+ msgstr ""
1679
+
1680
+ #: includes/admin/settings.php:576
1681
+ msgid "Purge Previous Import"
1682
+ msgstr ""
1683
+
1684
+ #: includes/admin/settings.php:629
1685
  msgid "Setting time limits and other user posting capabilities"
1686
  msgstr ""
1687
 
1688
+ #: includes/admin/settings.php:655
1689
  msgid "Allow users to edit their content for %s minutes after posting"
1690
  msgstr ""
1691
 
1692
+ #: includes/admin/settings.php:657
1693
  msgid "If checked, setting to \"0 minutes\" allows editing forever."
1694
  msgstr ""
1695
 
1696
+ #: includes/admin/settings.php:682
1697
  msgid "Allow flood protection by throttling users for %s seconds after posting"
1698
  msgstr ""
1699
 
1700
+ #: includes/admin/settings.php:684
1701
  msgid "Use this to discourage users from spamming your forums."
1702
  msgstr ""
1703
 
1704
+ #: includes/admin/settings.php:700
1705
  msgid "Allow guest users without accounts to create topics and replies"
1706
  msgstr ""
1707
 
1708
+ #: includes/admin/settings.php:701
1709
  msgid "Works best on intranets or paired with antispam measures like Akismet."
1710
  msgstr ""
1711
 
1712
+ #: includes/admin/settings.php:736
1713
  msgid "Automatically give registered visitors the %s forum role"
1714
  msgstr ""
1715
 
1716
+ #: includes/admin/settings.php:738
1717
  msgid "Uncheck this to manually assign all user access to your forums."
1718
  msgstr ""
1719
 
1720
+ #: includes/admin/settings.php:753
1721
  msgid "Forum features that can be toggled on and off"
1722
  msgstr ""
1723
 
1724
+ #: includes/admin/settings.php:769
1725
  msgid "Allow users to mark topics as favorites"
1726
  msgstr ""
1727
 
1728
+ #: includes/admin/settings.php:785
1729
  msgid "Allow users to subscribe to forums and topics"
1730
  msgstr ""
1731
 
1732
+ #: includes/admin/settings.php:801
1733
  msgid "Allow tracking of topics each user engages in"
1734
  msgstr ""
1735
 
1736
+ #: includes/admin/settings.php:817
1737
  msgid "Allow topics to have tags"
1738
  msgstr ""
1739
 
1740
+ #: includes/admin/settings.php:833
1741
  msgid "Allow forums to have dedicated moderators"
1742
  msgstr ""
1743
 
1744
+ #: includes/admin/settings.php:849
1745
  msgid "Allow forum wide search"
1746
  msgstr ""
1747
 
1748
+ #: includes/admin/settings.php:888
1749
  msgid "Enable threaded (nested) replies %s levels deep"
1750
  msgstr ""
1751
 
1752
+ #: includes/admin/settings.php:905
1753
  msgid "Allow topic and reply revision logging"
1754
  msgstr ""
1755
 
1756
+ #: includes/admin/settings.php:921
1757
  msgid "Add toolbar & buttons to textareas to help with HTML formatting"
1758
  msgstr ""
1759
 
1760
+ #: includes/admin/settings.php:934
1761
  msgid "How your forum content is displayed within your existing theme."
1762
  msgstr ""
1763
 
1764
+ #: includes/admin/settings.php:964
1765
  msgid "will serve all bbPress templates"
1766
  msgstr ""
1767
 
1768
+ #: includes/admin/settings.php:968
1769
  msgid "No template packages available."
1770
  msgstr ""
1771
 
1772
+ #: includes/admin/settings.php:984
1773
  msgid ""
1774
  "Embed media (YouTube, Twitter, Flickr, etc...) directly into topics and "
1775
  "replies"
1776
  msgstr ""
1777
 
1778
+ #: includes/admin/settings.php:999
1779
  msgid "How many topics and replies to show per page"
1780
  msgstr ""
1781
 
1782
+ #: includes/admin/settings.php:1015 includes/admin/settings.php:1031
1783
+ #: includes/admin/settings.php:1062 includes/admin/settings.php:1078
1784
  msgid "per page"
1785
  msgstr ""
1786
 
1787
+ #: includes/admin/settings.php:1046
1788
  msgid "How many topics and replies to show per RSS page"
1789
  msgstr ""
1790
 
1791
+ #: includes/admin/settings.php:1097
1792
  msgid ""
1793
  "Customize your Forums root. Partner with a WordPress Page and use "
1794
  "Shortcodes for more flexibility."
1795
  msgstr ""
1796
 
1797
+ #: includes/admin/settings.php:1130
1798
  msgid "Prefix all forum content with the Forum Root slug (Recommended)"
1799
  msgstr ""
1800
 
1801
+ #: includes/admin/settings.php:1150
1802
  msgid "Forum Index"
1803
  msgstr ""
1804
 
1805
+ #: includes/admin/settings.php:1153
1806
  msgid "Topics by Last Post"
1807
  msgstr ""
1808
 
1809
+ #: includes/admin/settings.php:1175
1810
  msgid "This setting will be ignored because %s was found in your theme."
1811
  msgstr ""
1812
 
1813
+ #: includes/admin/settings.php:1190
1814
  msgid "Customize your user profile slugs."
1815
  msgstr ""
1816
 
1817
+ #: includes/admin/settings.php:1307
1818
  msgid "Custom slugs for single forums, topics, replies, tags, views, and search."
1819
  msgstr ""
1820
 
1821
+ #: includes/admin/settings.php:1425
1822
  msgid "Configure how Forum settings for BuddyPress"
1823
  msgstr ""
1824
 
1825
+ #: includes/admin/settings.php:1441
1826
  msgid "Allow BuddyPress Groups to have their own forums"
1827
  msgstr ""
1828
 
1829
+ #: includes/admin/settings.php:1487
1830
  msgid "create a new one"
1831
  msgstr ""
1832
 
1833
+ #: includes/admin/settings.php:1488
1834
  msgid "Use %s to contain your group forums, or %s"
1835
  msgstr ""
1836
 
1837
+ #: includes/admin/settings.php:1490
1838
  msgid "Use %s to contain your group forums"
1839
  msgstr ""
1840
 
1841
+ #: includes/admin/settings.php:1495
1842
  msgid "Changing this will not move existing forums."
1843
  msgstr ""
1844
 
1845
+ #: includes/admin/settings.php:1510
1846
  msgid "Forum settings for Akismet"
1847
  msgstr ""
1848
 
1849
+ #: includes/admin/settings.php:1527
1850
  msgid "Allow Akismet to actively prevent forum spam."
1851
  msgstr ""
1852
 
1853
+ #: includes/admin/settings.php:1546
1854
  msgid "Forums Settings"
1855
  msgstr ""
1856
 
1857
+ #: includes/admin/settings.php:1556
1858
  #: templates/default/bbpress/form-user-edit.php:173
1859
  msgid "Save Changes"
1860
  msgstr ""
1861
 
1862
+ #: includes/admin/settings.php:1575
1863
  msgid ""
1864
  "Information about your previous forums database so that they can be "
1865
  "converted. <strong>Backup your database before proceeding.</strong>"
1866
  msgstr ""
1867
 
1868
+ #: includes/admin/settings.php:1598
1869
  msgid "is the previous forum software"
1870
  msgstr ""
1871
 
1872
+ #: includes/admin/settings.php:1612
1873
  msgid "Use default \"localhost\" if on the same server, otherwise IP or hostname"
1874
  msgstr ""
1875
 
1876
+ #: includes/admin/settings.php:1626
1877
  msgid "Use default \"3306\" if unsure"
1878
  msgstr ""
1879
 
1880
+ #: includes/admin/settings.php:1640
1881
  msgid "User to acces the database"
1882
  msgstr ""
1883
 
1884
+ #: includes/admin/settings.php:1654
1885
  msgid "Password of the above database user"
1886
  msgstr ""
1887
 
1888
+ #: includes/admin/settings.php:1668
1889
  msgid "Name of the database with your old forum data"
1890
  msgstr ""
1891
 
1892
+ #: includes/admin/settings.php:1681
1893
  msgid "Some optional parameters to help tune the conversion process."
1894
  msgstr ""
1895
 
1896
+ #: includes/admin/settings.php:1695
1897
  msgid "(If converting from BuddyPress Forums, use \"wp_bb_\" or your custom prefix)"
1898
  msgstr ""
1899
 
1900
+ #: includes/admin/settings.php:1709
1901
  msgid "rows to process at a time"
1902
  msgstr ""
1903
 
1904
+ #: includes/admin/settings.php:1710
1905
  msgid "Keep this low if you experience out-of-memory issues."
1906
  msgstr ""
1907
 
1908
+ #: includes/admin/settings.php:1724
1909
  msgid "second(s) delay between each group of rows"
1910
  msgstr ""
1911
 
1912
+ #: includes/admin/settings.php:1725
1913
  msgid "Keep this high to prevent too-many-connection issues."
1914
  msgstr ""
1915
 
1916
+ #: includes/admin/settings.php:1739
1917
  msgid "Start a fresh conversion from the beginning"
1918
  msgstr ""
1919
 
1920
+ #: includes/admin/settings.php:1740
1921
  msgid "You should clean old conversion information before starting over."
1922
  msgstr ""
1923
 
1924
+ #: includes/admin/settings.php:1754
1925
  msgid "Purge all information from a previously attempted import"
1926
  msgstr ""
1927
 
1928
+ #: includes/admin/settings.php:1755
1929
  msgid "Use this if an import failed and you want to remove that incomplete data."
1930
  msgstr ""
1931
 
1932
+ #: includes/admin/settings.php:1769
1933
  msgid "Attempt to import user accounts from previous forums"
1934
  msgstr ""
1935
 
1936
+ #: includes/admin/settings.php:1770
1937
  msgid ""
1938
  "Non-bbPress passwords cannot be automatically converted. They will be "
1939
  "converted as each user logs in."
1940
  msgstr ""
1941
 
1942
+ #: includes/admin/settings.php:1798
1943
  msgid "Previously stopped at step %d of %d"
1944
  msgstr ""
1945
 
1946
+ #: includes/admin/settings.php:1799
1947
  msgid "Ready to go."
1948
  msgstr ""
1949
 
1950
+ #: includes/admin/settings.php:1802 includes/admin/tools/repair.php:33
1951
+ #: includes/admin/tools/reset.php:26 includes/admin/tools/upgrade.php:30
1952
  msgid "Forum Tools"
1953
  msgstr ""
1954
 
1955
+ #: includes/admin/settings.php:1804 includes/admin/tools.php:485
1956
  msgid "Import Forums"
1957
  msgstr ""
1958
 
1959
+ #: includes/admin/settings.php:1818
1960
  msgid "Stop"
1961
  msgstr ""
1962
 
1963
+ #: includes/admin/settings.php:1828
1964
  msgid "Toggle panel: Import Status"
1965
  msgstr ""
1966
 
1967
+ #: includes/admin/settings.php:1832
1968
  msgid "Import Monitor"
1969
  msgstr ""
1970
 
1971
+ #: includes/admin/settings.php:1871
1972
  msgid "This screen provides access to all of the Forums settings."
1973
  msgstr ""
1974
 
1975
+ #: includes/admin/settings.php:1872 includes/admin/tools/help.php:104
1976
  msgid ""
1977
  "Please see the additional help tabs for more information on each individual "
1978
  "section."
1979
  msgstr ""
1980
 
1981
+ #: includes/admin/settings.php:1878
1982
  msgid "Main Settings"
1983
  msgstr ""
1984
 
1985
+ #: includes/admin/settings.php:1879
1986
  msgid "The \"Main Settings\" section includes a number of options:"
1987
  msgstr ""
1988
 
1989
+ #: includes/admin/settings.php:1882
1990
  msgid ""
1991
  "You can choose to lock a post after a certain number of minutes. \"Locking "
1992
  "post editing\" will prevent the author from editing some amount of time "
1993
  "after saving a post."
1994
  msgstr ""
1995
 
1996
+ #: includes/admin/settings.php:1883
1997
  msgid ""
1998
  "\"Throttle time\" is the amount of time required between posts from a "
1999
  "single author. The higher the throttle time, the longer a user will need to "
2000
  "wait between posting to the forum."
2001
  msgstr ""
2002
 
2003
+ #: includes/admin/settings.php:1884
2004
  msgid ""
2005
  "Favorites are a way for users to save and later return to topics they "
2006
  "favor. This is enabled by default."
2007
  msgstr ""
2008
 
2009
+ #: includes/admin/settings.php:1885
2010
  msgid ""
2011
  "Subscriptions allow users to subscribe for notifications to topics that "
2012
  "interest them. This is enabled by default."
2013
  msgstr ""
2014
 
2015
+ #: includes/admin/settings.php:1886
2016
  msgid ""
2017
  "Topic-Tags allow users to filter topics between forums. This is enabled by "
2018
  "default."
2019
  msgstr ""
2020
 
2021
+ #: includes/admin/settings.php:1887
2022
  msgid ""
2023
  "\"Anonymous Posting\" allows guest users who do not have accounts on your "
2024
  "site to both create topics as well as replies."
2025
  msgstr ""
2026
 
2027
+ #: includes/admin/settings.php:1888
2028
  msgid ""
2029
  "The Fancy Editor brings the luxury of the Visual editor and HTML editor "
2030
  "from the traditional WordPress dashboard into your theme."
2031
  msgstr ""
2032
 
2033
+ #: includes/admin/settings.php:1889
2034
  msgid ""
2035
  "Auto-embed will embed the media content from a URL directly into the "
2036
  "replies. For example: links to Flickr and YouTube."
2037
  msgstr ""
2038
 
2039
+ #: includes/admin/settings.php:1892
2040
  msgid ""
2041
  "You must click the Save Changes button at the bottom of the screen for new "
2042
  "settings to take effect."
2043
  msgstr ""
2044
 
2045
+ #: includes/admin/settings.php:1898
2046
  msgid "Theme Packages"
2047
  msgstr ""
2048
 
2049
+ #: includes/admin/settings.php:1899
2050
  msgid ""
2051
  "The \"Theme Packages\" section allows you to choose which theme package "
2052
  "should be used."
2053
  msgstr ""
2054
 
2055
+ #: includes/admin/settings.php:1902
2056
  msgid "The \"bbPress Default\" package is installed by default."
2057
  msgstr ""
2058
 
2059
+ #: includes/admin/settings.php:1903
2060
  msgid "Some themes may choose to ignore this setting entirely."
2061
  msgstr ""
2062
 
2063
+ #: includes/admin/settings.php:1904
2064
  msgid "Packages can be stacked to allow for intelligent fallbacks."
2065
  msgstr ""
2066
 
2067
+ #: includes/admin/settings.php:1912
2068
  msgid "Per Page"
2069
  msgstr ""
2070
 
2071
+ #: includes/admin/settings.php:1913
2072
  msgid ""
2073
  "The \"Per Page\" section allows you to control the number of topics and "
2074
  "replies appear on each page."
2075
  msgstr ""
2076
 
2077
+ #: includes/admin/settings.php:1915
2078
  msgid ""
2079
  "This is comparable to the WordPress \"Reading Settings\" page, where you "
2080
  "can set the number of posts that should show on blog pages and in feeds."
2081
  msgstr ""
2082
 
2083
+ #: includes/admin/settings.php:1916
2084
  msgid ""
2085
  "These are broken up into two separate groups: one for what appears in your "
2086
  "theme, another for RSS feeds."
2087
  msgstr ""
2088
 
2089
+ #: includes/admin/settings.php:1924
2090
  msgid "Slugs"
2091
  msgstr ""
2092
 
2093
+ #: includes/admin/settings.php:1925
2094
  msgid ""
2095
  "The \"Slugs\" section allows you to control the permalink structure for "
2096
  "your forums."
2097
  msgstr ""
2098
 
2099
+ #: includes/admin/settings.php:1927
2100
  msgid ""
2101
  "\"Archive Slugs\" are used as the \"root\" for your forums and topics. If "
2102
  "you combine these values with existing page slugs, bbPress will attempt to "
2103
  "output the most correct title and content."
2104
  msgstr ""
2105
 
2106
+ #: includes/admin/settings.php:1928
2107
  msgid ""
2108
  "\"Single Slugs\" are used as a prefix when viewing an individual forum, "
2109
  "topic, reply, user, or view."
2110
  msgstr ""
2111
 
2112
+ #: includes/admin/settings.php:1929
2113
  msgid ""
2114
  "In the event of a slug collision with WordPress or BuddyPress, a warning "
2115
  "will appear next to the problem slug(s)."
2116
  msgstr ""
2117
 
2118
+ #: includes/admin/settings.php:2029
2119
  #: templates/default/bbpress/loop-forums.php:24
2120
  #: templates/default/bbpress/loop-replies.php:21
2121
  #: templates/default/bbpress/loop-replies.php:47
2123
  msgid "Posts"
2124
  msgstr ""
2125
 
2126
+ #: includes/admin/settings.php:2030
2127
  msgid "Pages"
2128
  msgstr ""
2129
 
2130
+ #: includes/admin/settings.php:2032
2131
  msgid "Attachments"
2132
  msgstr ""
2133
 
2134
+ #: includes/admin/settings.php:2033
2135
  msgid "Menus"
2136
  msgstr ""
2137
 
2138
+ #: includes/admin/settings.php:2036
2139
  msgid "Tag base"
2140
  msgstr ""
2141
 
2142
+ #: includes/admin/settings.php:2039
2143
  msgid "Category base"
2144
  msgstr ""
2145
 
2146
+ #: includes/admin/settings.php:2044
2147
  msgid "Forums base"
2148
  msgstr ""
2149
 
2150
+ #: includes/admin/settings.php:2047
2151
  msgid "Topics base"
2152
  msgstr ""
2153
 
2154
+ #: includes/admin/settings.php:2050
2155
  msgid "Forum slug"
2156
  msgstr ""
2157
 
2158
+ #: includes/admin/settings.php:2053
2159
  msgid "Topic slug"
2160
  msgstr ""
2161
 
2162
+ #: includes/admin/settings.php:2056
2163
  msgid "Reply slug"
2164
  msgstr ""
2165
 
2166
+ #: includes/admin/settings.php:2059
2167
  msgid "User base"
2168
  msgstr ""
2169
 
2170
+ #: includes/admin/settings.php:2062
2171
  msgid "View base"
2172
  msgstr ""
2173
 
2174
+ #: includes/admin/settings.php:2065
2175
  msgid "Topic tag slug"
2176
  msgstr ""
2177
 
2178
+ #: includes/admin/settings.php:2077
2179
  msgid "%s page"
2180
  msgstr ""
2181
 
2182
+ #: includes/admin/settings.php:2100
2183
  msgid "Possible %1$s conflict: %2$s"
2184
  msgstr ""
2185
 
2223
  msgid "Users"
2224
  msgstr ""
2225
 
2226
+ #: includes/admin/tools/common.php:308 includes/topics/template.php:3753
2227
  #: templates/default/bbpress/content-statistics.php:40
2228
  msgid "Topic Tags"
2229
  msgstr ""
2348
  msgstr ""
2349
 
2350
  #: includes/admin/tools/repair.php:50 includes/admin/tools/repair.php:146
2351
+ #: includes/admin/tools/upgrade.php:47 includes/admin/tools/upgrade.php:143
2352
  msgid "Select bulk action"
2353
  msgstr ""
2354
 
2355
  #: includes/admin/tools/repair.php:53 includes/admin/tools/repair.php:94
2356
+ #: includes/admin/tools/repair.php:149 includes/admin/tools/upgrade.php:50
2357
+ #: includes/admin/tools/upgrade.php:91 includes/admin/tools/upgrade.php:146
2358
  msgid "Run"
2359
  msgstr ""
2360
 
2361
  #: includes/admin/tools/repair.php:55 includes/admin/tools/repair.php:151
2362
+ #: includes/admin/tools/upgrade.php:52 includes/admin/tools/upgrade.php:148
2363
  msgid "Apply"
2364
  msgstr ""
2365
 
2366
  #: includes/admin/tools/repair.php:69 includes/admin/tools/repair.php:134
2367
+ #: includes/admin/tools/upgrade.php:66 includes/admin/tools/upgrade.php:131
2368
  msgid "Select All"
2369
  msgstr ""
2370
 
2371
  #: includes/admin/tools/repair.php:73 includes/admin/tools/repair.php:90
2372
+ #: includes/admin/tools/repair.php:138 includes/admin/tools/upgrade.php:70
2373
+ #: includes/admin/tools/upgrade.php:87 includes/admin/tools/upgrade.php:135
2374
  msgid "Description"
2375
  msgstr ""
2376
 
2377
  #: includes/admin/tools/repair.php:74 includes/admin/tools/repair.php:101
2378
+ #: includes/admin/tools/repair.php:139 includes/admin/tools/upgrade.php:71
2379
+ #: includes/admin/tools/upgrade.php:98 includes/admin/tools/upgrade.php:136
2380
  msgid "Components"
2381
  msgstr ""
2382
 
2383
  #: includes/admin/tools/repair.php:75 includes/admin/tools/repair.php:108
2384
+ #: includes/admin/tools/repair.php:140 includes/admin/tools/upgrade.php:72
2385
+ #: includes/admin/tools/upgrade.php:105 includes/admin/tools/upgrade.php:137
2386
  msgid "Overhead"
2387
  msgstr ""
2388
 
2389
+ #: includes/admin/tools/repair.php:94 includes/admin/tools/upgrade.php:91
2390
  msgid "Run %s"
2391
  msgstr ""
2392
 
2393
+ #: includes/admin/tools/repair.php:98 includes/admin/tools/upgrade.php:95
2394
  msgid "Show more details"
2395
  msgstr ""
2396
 
2397
+ #: includes/admin/tools/repair.php:123 includes/admin/tools/upgrade.php:120
2398
  msgid "No repair tools match this criteria."
2399
  msgstr ""
2400
 
2409
  #: includes/admin/tools/repair.php:566 includes/admin/tools/repair.php:637
2410
  #: includes/admin/tools/repair.php:706 includes/admin/tools/repair.php:781
2411
  #: includes/admin/tools/repair.php:838 includes/admin/tools/repair.php:966
2412
+ #: includes/admin/tools/repair.php:1084 includes/admin/tools/repair.php:1108
2413
+ #: includes/admin/tools/repair.php:1163 includes/admin/tools/reset.php:108
2414
+ #: includes/admin/tools/upgrade.php:242
2415
  msgid "Failed!"
2416
  msgstr ""
2417
 
2421
  #: includes/admin/tools/repair.php:495 includes/admin/tools/repair.php:547
2422
  #: includes/admin/tools/repair.php:618 includes/admin/tools/repair.php:687
2423
  #: includes/admin/tools/repair.php:756 includes/admin/tools/repair.php:944
2424
+ #: includes/admin/tools/repair.php:1011 includes/admin/tools/repair.php:1088
2425
+ #: includes/admin/tools/repair.php:1144 includes/admin/tools/repair.php:1199
2426
+ #: includes/admin/tools/repair.php:1256
2427
  msgid "Complete!"
2428
  msgstr ""
2429
 
2490
  msgid "Repairing the sticky topic to the parent forum relationships&hellip; %s"
2491
  msgstr ""
2492
 
2493
+ #: includes/admin/tools/repair.php:1035
2494
  msgid "Repairing closed topics&hellip; %s"
2495
  msgstr ""
2496
 
2497
+ #: includes/admin/tools/repair.php:1036
2498
  msgid "No closed topics to repair."
2499
  msgstr ""
2500
 
2501
+ #: includes/admin/tools/repair.php:1066
2502
  msgid "Complete! %d closed topic repaired."
2503
  msgid_plural "Complete! %d closed topics repaired."
2504
  msgstr[0] ""
2505
  msgstr[1] ""
2506
 
2507
+ #: includes/admin/tools/repair.php:1080
2508
+ msgid "Recalculating forum visibility&hellip; %s"
2509
  msgstr ""
2510
 
2511
+ #: includes/admin/tools/repair.php:1107
2512
+ msgid "Recalculating the forum for each post&hellip; %s"
2513
  msgstr ""
2514
 
2515
+ #: includes/admin/tools/repair.php:1162
2516
+ msgid "Recalculating the topic for each post&hellip; %s"
2517
  msgstr ""
2518
 
2519
+ #: includes/admin/tools/repair.php:1217
2520
+ msgid "Recalculating reply menu order&hellip; %s"
2521
  msgstr ""
2522
 
2523
+ #: includes/admin/tools/repair.php:1218
2524
  msgid "No reply positions to recalculate."
2525
  msgstr ""
2526
 
2538
  msgid "All Forums"
2539
  msgstr ""
2540
 
2541
+ #: includes/admin/tools/reset.php:37 includes/topics/functions.php:4130
2542
  #: includes/topics/template.php:54
2543
  msgid "All Topics"
2544
  msgstr ""
2657
  msgid "Deleting Roles and Capabilities&hellip; %s"
2658
  msgstr ""
2659
 
2660
+ #: includes/admin/tools/upgrade.php:31 includes/admin/tools.php:476
2661
  msgid "Upgrade Forums"
2662
  msgstr ""
2663
 
2664
+ #: includes/admin/tools/upgrade.php:33
2665
  msgid ""
2666
  "As bbPress improves, occasionally database upgrades are required but some "
2667
  "forums are too large to upgrade automatically. Use the tools below to "
2668
  "manually run upgrade routines."
2669
  msgstr ""
2670
 
2671
+ #: includes/admin/tools/upgrade.php:34
2672
  msgid ""
2673
  "Some of these tools create substantial database overhead. Use caution when "
2674
  "running more than 1 upgrade at a time."
2675
  msgstr ""
2676
 
2677
+ #: includes/admin/tools/upgrade.php:168
2678
+ msgid "Upgrading user engagements&hellip; %s"
2679
  msgstr ""
2680
 
2681
+ #: includes/admin/tools/upgrade.php:169
2682
  msgid "No engagements to upgrade."
2683
  msgstr ""
2684
 
2685
+ #: includes/admin/tools/upgrade.php:202
2686
  msgid "Complete! %d engagements upgraded."
2687
  msgid_plural "Complete! %d engagements upgraded."
2688
  msgstr[0] ""
2689
  msgstr[1] ""
2690
 
2691
+ #: includes/admin/tools/upgrade.php:221
2692
  msgid "Upgrading BuddyPress group-forum relationships&hellip; %s"
2693
  msgstr ""
2694
 
2695
+ #: includes/admin/tools/upgrade.php:326
2696
  msgid "group-forums"
2697
  msgstr ""
2698
 
2699
+ #: includes/admin/tools/upgrade.php:342
2700
  msgid "Complete! %s groups updated; %s forums updated; %s forum statuses synced."
2701
  msgstr ""
2702
 
2703
+ #: includes/admin/tools/upgrade.php:357
2704
+ msgid "Upgrading user favorites&hellip; %s"
2705
  msgstr ""
2706
 
2707
+ #: includes/admin/tools/upgrade.php:358
2708
  msgid "No favorites to upgrade."
2709
  msgstr ""
2710
 
2711
+ #: includes/admin/tools/upgrade.php:401
2712
  msgid "Complete! %d favorite upgraded."
2713
  msgid_plural "Complete! %d favorites upgraded."
2714
  msgstr[0] ""
2715
  msgstr[1] ""
2716
 
2717
+ #: includes/admin/tools/upgrade.php:417
2718
+ msgid "Upgrading user topic subscriptions&hellip; %s"
2719
  msgstr ""
2720
 
2721
+ #: includes/admin/tools/upgrade.php:418
2722
  msgid "No topic subscriptions to upgrade."
2723
  msgstr ""
2724
 
2725
+ #: includes/admin/tools/upgrade.php:461 includes/admin/tools/upgrade.php:613
2726
  msgid "Complete! %d topic subscription upgraded."
2727
  msgid_plural "Complete! %d topic subscriptions upgraded."
2728
  msgstr[0] ""
2729
  msgstr[1] ""
2730
 
2731
+ #: includes/admin/tools/upgrade.php:477
2732
+ msgid "Upgrading user forum subscriptions&hellip; %s"
2733
  msgstr ""
2734
 
2735
+ #: includes/admin/tools/upgrade.php:478
2736
  msgid "No forum subscriptions to upgrade."
2737
  msgstr ""
2738
 
2739
+ #: includes/admin/tools/upgrade.php:521 includes/admin/tools/upgrade.php:658
2740
  msgid "Complete! %d forum subscription upgraded."
2741
  msgid_plural "Complete! %d forum subscriptions upgraded."
2742
  msgstr[0] ""
2743
  msgstr[1] ""
2744
 
2745
+ #: includes/admin/tools/upgrade.php:537
2746
+ msgid "Remove favorites from usermeta&hellip; %s"
2747
  msgstr ""
2748
 
2749
+ #: includes/admin/tools/upgrade.php:538
2750
  msgid "No favorites to remove."
2751
  msgstr ""
2752
 
2753
+ #: includes/admin/tools/upgrade.php:568
2754
  msgid "Complete! %d favorites upgraded."
2755
  msgid_plural "Complete! %d favorites upgraded."
2756
  msgstr[0] ""
2757
  msgstr[1] ""
2758
 
2759
+ #: includes/admin/tools/upgrade.php:584
2760
+ msgid "Remove topic subscriptions from usermeta&hellip; %s"
2761
  msgstr ""
2762
 
2763
+ #: includes/admin/tools/upgrade.php:585
2764
  msgid "No topic subscriptions to remove."
2765
  msgstr ""
2766
 
2767
+ #: includes/admin/tools/upgrade.php:629
2768
+ msgid "Remove forum subscriptions from usermeta&hellip; %s"
2769
  msgstr ""
2770
 
2771
+ #: includes/admin/tools/upgrade.php:630
2772
  msgid "No forum subscriptions to remove."
2773
  msgstr ""
2774
 
3172
  msgid "Voices"
3173
  msgstr ""
3174
 
3175
+ #: includes/admin/topics.php:985 includes/topics/template.php:2266
3176
  msgid "No Replies"
3177
  msgstr ""
3178
 
3196
  msgid "Unstick this topic"
3197
  msgstr ""
3198
 
3199
+ #: includes/admin/topics.php:1070 includes/topics/template.php:3041
3200
  msgid "Unstick"
3201
  msgstr ""
3202
 
3204
  msgid "Stick this topic to its forum"
3205
  msgstr ""
3206
 
3207
+ #: includes/admin/topics.php:1073 includes/topics/template.php:3040
3208
  msgid "Stick"
3209
  msgstr ""
3210
 
3212
  msgid "Stick this topic to front"
3213
  msgstr ""
3214
 
3215
+ #: includes/admin/topics.php:1073 includes/topics/template.php:3042
3216
  msgid "(to front)"
3217
  msgstr ""
3218
 
3253
  msgid "Topic draft updated."
3254
  msgstr ""
3255
 
3256
+ #: includes/admin/users.php:103 includes/admin/users.php:286
3257
  #: templates/default/bbpress/form-user-roles.php:23
3258
  msgid "Forum Role"
3259
  msgstr ""
3260
 
3261
+ #: includes/admin/users.php:112 includes/admin/users.php:116
3262
  #: includes/users/template.php:1676
3263
  msgid "&mdash; No role for these forums &mdash;"
3264
  msgstr ""
3265
 
3266
+ #: includes/admin/users.php:169 includes/admin/users.php:171
3267
  msgid "Change forum role to&hellip;"
3268
  msgstr ""
3269
 
3270
+ #: includes/admin/users.php:175
3271
  msgid "Change"
3272
  msgstr ""
3273
 
3274
+ #: includes/admin/users.php:285
3275
  msgid "Site Role"
3276
  msgstr ""
3277
 
3835
  #: includes/extend/buddypress/notifications.php:195
3836
  #: includes/forums/functions.php:136 includes/forums/functions.php:424
3837
  #: includes/replies/functions.php:161 includes/replies/functions.php:562
3838
+ #: includes/replies/functions.php:1349 includes/topics/functions.php:141
3839
+ #: includes/topics/functions.php:528 includes/topics/functions.php:1211
3840
+ #: includes/topics/functions.php:1524 includes/topics/functions.php:1880
3841
+ #: includes/topics/functions.php:1920 includes/topics/functions.php:1978
3842
+ #: includes/users/engagements.php:722 includes/users/engagements.php:1393
3843
+ #: includes/users/engagements.php:1503 includes/users/functions.php:233
3844
  #: includes/users/functions.php:239 includes/users/functions.php:429
3845
  msgid "<strong>ERROR</strong>: Are you sure you wanted to do that?"
3846
  msgstr ""
4009
  msgid "Parent Forum:"
4010
  msgstr ""
4011
 
4012
+ #: includes/forums/template.php:911 includes/topics/template.php:2022
4013
  #: includes/users/template.php:1362
4014
  msgid "Subscribe"
4015
  msgstr ""
4016
 
4017
+ #: includes/forums/template.php:912 includes/topics/template.php:2023
4018
  #: includes/users/template.php:1363
4019
  msgid "Unsubscribe"
4020
  msgstr ""
4021
 
4022
+ #: includes/forums/template.php:1331 includes/forums/template.php:2193
4023
  msgid "%s topic"
4024
  msgid_plural "%s topics"
4025
  msgstr[0] ""
4026
  msgstr[1] ""
4027
 
4028
+ #: includes/forums/template.php:1346 includes/topics/template.php:2319
4029
  msgid "(+%s hidden)"
4030
  msgid_plural "(+%s hidden)"
4031
  msgstr[0] ""
4032
  msgstr[1] ""
4033
 
4034
+ #: includes/forums/template.php:2182 includes/topics/template.php:2304
4035
  msgid "%s reply"
4036
  msgid_plural "%s replies"
4037
  msgstr[0] ""
4038
  msgstr[1] ""
4039
 
4040
+ #: includes/forums/template.php:2202
4041
+ msgid "This category has %1$s, %2$s, and was last updated %3$s by %4$s."
4042
  msgstr ""
4043
 
4044
+ #: includes/forums/template.php:2203
4045
+ msgid "This forum has %1$s, %2$s, and was last updated %3$s by %4$s."
4046
  msgstr ""
4047
 
4048
+ #: includes/forums/template.php:2208
4049
+ msgid "This category has %1$s, and was last updated %2$s by %3$s."
4050
  msgstr ""
4051
 
4052
+ #: includes/forums/template.php:2209
4053
+ msgid "This forum has %1$s, and was last updated %2$s by %3$s."
4054
  msgstr ""
4055
 
4056
+ #: includes/forums/template.php:2215
4057
+ msgid "This category has %1$s and %2$s."
4058
  msgstr ""
4059
 
4060
+ #: includes/forums/template.php:2216
4061
+ msgid "This forum has %1$s and %2$s."
4062
  msgstr ""
4063
 
4064
+ #: includes/forums/template.php:2221
4065
+ msgid "This category has %1$s."
4066
  msgstr ""
4067
 
4068
+ #: includes/forums/template.php:2222
4069
+ msgid "This forum has %1$s."
4070
  msgstr ""
4071
 
4072
+ #: includes/forums/template.php:2226
4073
  msgid "This forum is empty."
4074
  msgstr ""
4075
 
4175
  msgid "<strong>ERROR</strong>: Your reply cannot be edited at this time."
4176
  msgstr ""
4177
 
4178
+ #: includes/replies/functions.php:1325
4179
  msgid "<strong>ERROR</strong>: A reply ID is required"
4180
  msgstr ""
4181
 
4182
+ #: includes/replies/functions.php:1334
4183
  msgid "<strong>ERROR</strong>: The reply you want to move was not found."
4184
  msgstr ""
4185
 
4186
+ #: includes/replies/functions.php:1344
4187
  msgid "<strong>ERROR</strong>: The topic you want to move from was not found."
4188
  msgstr ""
4189
 
4190
+ #: includes/replies/functions.php:1355 includes/topics/functions.php:1222
4191
+ #: includes/topics/functions.php:1530
4192
  msgid "<strong>ERROR</strong>: You do not have permission to edit the source topic."
4193
  msgstr ""
4194
 
4195
+ #: includes/replies/functions.php:1365
4196
  msgid "<strong>ERROR</strong>: You need to choose a valid move option."
4197
  msgstr ""
4198
 
4199
+ #: includes/replies/functions.php:1378 includes/topics/functions.php:1553
4200
  msgid "<strong>ERROR</strong>: A topic ID is required."
4201
  msgstr ""
4202
 
4203
+ #: includes/replies/functions.php:1388
4204
  msgid "<strong>ERROR</strong>: The topic you want to move to was not found."
4205
  msgstr ""
4206
 
4207
+ #: includes/replies/functions.php:1393 includes/topics/functions.php:1242
4208
+ #: includes/topics/functions.php:1568
4209
  msgid ""
4210
  "<strong>ERROR</strong>: You do not have permission to edit the destination "
4211
  "topic."
4212
  msgstr ""
4213
 
4214
+ #: includes/replies/functions.php:1447 includes/topics/functions.php:1606
4215
  msgid ""
4216
  "<strong>ERROR</strong>: There was a problem converting the reply into the "
4217
  "topic. Please try again."
4218
  msgstr ""
4219
 
4220
+ #: includes/replies/functions.php:1452 includes/topics/functions.php:1611
4221
  msgid ""
4222
  "<strong>ERROR</strong>: You do not have permission to create new topics. "
4223
  "The reply could not be converted into a topic."
4224
  msgstr ""
4225
 
4226
+ #: includes/replies/functions.php:1624
4227
  msgid "<strong>ERROR:</strong> This reply could not be found or no longer exists."
4228
  msgstr ""
4229
 
4230
+ #: includes/replies/functions.php:1630 includes/topics/functions.php:2188
4231
  msgid "<strong>ERROR:</strong> You do not have permission to do that."
4232
  msgstr ""
4233
 
4234
+ #: includes/replies/functions.php:1706
4235
  msgid "<strong>ERROR</strong>: There was a problem approving the reply."
4236
  msgstr ""
4237
 
4238
+ #: includes/replies/functions.php:1706
4239
  msgid "<strong>ERROR</strong>: There was a problem unapproving the reply."
4240
  msgstr ""
4241
 
4242
+ #: includes/replies/functions.php:1717
4243
  msgid "<strong>ERROR</strong>: There was a problem unmarking the reply as spam."
4244
  msgstr ""
4245
 
4246
+ #: includes/replies/functions.php:1717
4247
  msgid "<strong>ERROR</strong>: There was a problem marking the reply as spam."
4248
  msgstr ""
4249
 
4250
+ #: includes/replies/functions.php:1732
4251
  msgid "<strong>ERROR</strong>: There was a problem trashing the reply."
4252
  msgstr ""
4253
 
4254
+ #: includes/replies/functions.php:1740
4255
  msgid "<strong>ERROR</strong>: There was a problem untrashing the reply."
4256
  msgstr ""
4257
 
4258
+ #: includes/replies/functions.php:1748
4259
  msgid "<strong>ERROR</strong>: There was a problem deleting the reply."
4260
  msgstr ""
4261
 
4263
  msgid "All Posts"
4264
  msgstr ""
4265
 
4266
+ #: includes/replies/functions.php:2341 includes/topics/functions.php:4174
4267
  msgid "Replies: %s"
4268
  msgstr ""
4269
 
4324
  msgid "This reply was modified %1$s by %2$s."
4325
  msgstr ""
4326
 
4327
+ #: includes/replies/template.php:1313 includes/topics/template.php:1622
4328
  #: includes/users/template.php:2175
4329
  msgid "View %s's profile"
4330
  msgstr ""
4331
 
4332
+ #: includes/replies/template.php:1313 includes/topics/template.php:1622
4333
  #: includes/users/template.php:2175
4334
  msgid "Visit %s's website"
4335
  msgstr ""
4338
  msgid "Cancel"
4339
  msgstr ""
4340
 
4341
+ #: includes/replies/template.php:2180 includes/topics/template.php:2839
4342
  #: templates/default/bbpress/form-topic-tag.php:100
4343
  #: templates/default/bbpress/form-topic-tag.php:117
4344
  msgid "Delete"
4345
  msgstr ""
4346
 
4347
+ #: includes/replies/template.php:2205 includes/topics/template.php:2860
4348
  msgid "Are you sure you want to delete that permanently?"
4349
  msgstr ""
4350
 
4458
  msgid "<strong>ERROR</strong>: The topic was not created."
4459
  msgstr ""
4460
 
4461
+ #: includes/topics/functions.php:490 includes/topics/functions.php:1204
4462
  msgid "<strong>ERROR</strong>: Topic ID not found."
4463
  msgstr ""
4464
 
4480
  msgid "<strong>ERROR</strong>: Your topic cannot be edited at this time."
4481
  msgstr ""
4482
 
4483
+ #: includes/topics/functions.php:1216
4484
  msgid "<strong>ERROR</strong>: The topic you want to merge was not found."
4485
  msgstr ""
4486
 
4487
+ #: includes/topics/functions.php:1230
4488
  msgid "<strong>ERROR</strong>: Destination topic ID not found."
4489
  msgstr ""
4490
 
4491
+ #: includes/topics/functions.php:1237
4492
  msgid "<strong>ERROR</strong>: The topic you want to merge to was not found."
4493
  msgstr ""
4494
 
4495
+ #: includes/topics/functions.php:1500
4496
  msgid "<strong>ERROR</strong>: A reply ID is required."
4497
  msgstr ""
4498
 
4499
+ #: includes/topics/functions.php:1509
4500
  msgid "<strong>ERROR</strong>: The reply you want to split from was not found."
4501
  msgstr ""
4502
 
4503
+ #: includes/topics/functions.php:1519
4504
  msgid "<strong>ERROR</strong>: The topic you want to split was not found."
4505
  msgstr ""
4506
 
4507
+ #: includes/topics/functions.php:1540
4508
  msgid "<strong>ERROR</strong>: You need to choose a valid split option."
4509
  msgstr ""
4510
 
4511
+ #: includes/topics/functions.php:1563
4512
  msgid "<strong>ERROR</strong>: The topic you want to split to was not found."
4513
  msgstr ""
4514
 
4515
+ #: includes/topics/functions.php:1868
4516
  msgid ""
4517
  "<strong>ERROR</strong>: The following problem(s) have been found while "
4518
  "getting the tag: %s"
4519
  msgstr ""
4520
 
4521
+ #: includes/topics/functions.php:1886 includes/topics/functions.php:1926
4522
  msgid "<strong>ERROR</strong>: You do not have permission to edit the topic tags."
4523
  msgstr ""
4524
 
4525
+ #: includes/topics/functions.php:1892 includes/topics/functions.php:1932
4526
  msgid "<strong>ERROR</strong>: You need to enter a tag name."
4527
  msgstr ""
4528
 
4529
+ #: includes/topics/functions.php:1903
4530
  msgid ""
4531
  "<strong>ERROR</strong>: The following problem(s) have been found while "
4532
  "updating the tag: %s"
4533
  msgstr ""
4534
 
4535
+ #: includes/topics/functions.php:1943 includes/topics/functions.php:1961
4536
  msgid ""
4537
  "<strong>ERROR</strong>: The following problem(s) have been found while "
4538
  "merging the tags: %s"
4539
  msgstr ""
4540
 
4541
+ #: includes/topics/functions.php:1952
4542
  msgid "<strong>ERROR</strong>: The tags which are being merged can not be the same."
4543
  msgstr ""
4544
 
4545
+ #: includes/topics/functions.php:1984
4546
  msgid "<strong>ERROR</strong>: You do not have permission to delete the topic tags."
4547
  msgstr ""
4548
 
4549
+ #: includes/topics/functions.php:1993
4550
  msgid ""
4551
  "<strong>ERROR</strong>: The following problem(s) have been found while "
4552
  "deleting the tag: %s"
4553
  msgstr ""
4554
 
4555
+ #: includes/topics/functions.php:2182
4556
  msgid "<strong>ERROR:</strong> This topic could not be found or no longer exists."
4557
  msgstr ""
4558
 
4559
+ #: includes/topics/functions.php:2272
4560
  msgid "<strong>ERROR</strong>: There was a problem approving the topic."
4561
  msgstr ""
4562
 
4563
+ #: includes/topics/functions.php:2273
4564
  msgid "<strong>ERROR</strong>: There was a problem unapproving the topic."
4565
  msgstr ""
4566
 
4567
+ #: includes/topics/functions.php:2290
4568
  msgid "<strong>ERROR</strong>: There was a problem closing the topic."
4569
  msgstr ""
4570
 
4571
+ #: includes/topics/functions.php:2291
4572
  msgid "<strong>ERROR</strong>: There was a problem opening the topic."
4573
  msgstr ""
4574
 
4575
+ #: includes/topics/functions.php:2309
4576
  msgid "<strong>ERROR</strong>: There was a problem unsticking the topic."
4577
  msgstr ""
4578
 
4579
+ #: includes/topics/functions.php:2310
4580
  msgid "<strong>ERROR</strong>: There was a problem sticking the topic."
4581
  msgstr ""
4582
 
4583
+ #: includes/topics/functions.php:2328
4584
  msgid "<strong>ERROR</strong>: There was a problem unmarking the topic as spam."
4585
  msgstr ""
4586
 
4587
+ #: includes/topics/functions.php:2329
4588
  msgid "<strong>ERROR</strong>: There was a problem marking the topic as spam."
4589
  msgstr ""
4590
 
4591
+ #: includes/topics/functions.php:2342
4592
  msgid "<strong>ERROR</strong>: There was a problem trashing the topic."
4593
  msgstr ""
4594
 
4595
+ #: includes/topics/functions.php:2353
4596
  msgid "<strong>ERROR</strong>: There was a problem untrashing the topic."
4597
  msgstr ""
4598
 
4599
+ #: includes/topics/functions.php:2362
4600
  msgid "<strong>ERROR</strong>: There was a problem deleting the topic."
4601
  msgstr ""
4602
 
4652
  msgid "This topic was modified %1$s by %2$s."
4653
  msgstr ""
4654
 
4655
+ #: includes/topics/template.php:2076 includes/users/template.php:1159
4656
  msgid "Favorite"
4657
  msgstr ""
4658
 
4659
+ #: includes/topics/template.php:2077 includes/users/template.php:1160
4660
  msgid "Unfavorite"
4661
  msgstr ""
4662
 
4663
+ #: includes/topics/template.php:2506
4664
  msgid "Tagged:"
4665
  msgstr ""
4666
 
4667
+ #: includes/topics/template.php:3115
4668
  #: templates/default/bbpress/form-topic-tag.php:69
4669
  #: templates/default/bbpress/form-topic-tag.php:85
4670
  msgid "Merge"
4671
  msgstr ""
4672
 
4673
+ #: includes/topics/template.php:3353
4674
  msgid "Viewing %1$s topic"
4675
  msgid_plural "Viewing %1$s topics"
4676
  msgstr[0] ""
4677
  msgstr[1] ""
4678
 
4679
+ #: includes/topics/template.php:3357
4680
  msgid "Viewing topic %2$s (of %4$s total)"
4681
  msgid_plural "Viewing %1$s topics - %2$s through %3$s (of %4$s total)"
4682
  msgstr[0] ""
4683
  msgstr[1] ""
4684
 
4685
+ #: includes/topics/template.php:3420
4686
  msgid "This topic is marked as spam."
4687
  msgstr ""
4688
 
4689
+ #: includes/topics/template.php:3425
4690
  msgid "This topic is in the trash."
4691
  msgstr ""
4692
 
4693
+ #: includes/topics/template.php:3689
4694
  msgid "%s voice"
4695
  msgid_plural "%s voices"
4696
  msgstr[0] ""
4697
  msgstr[1] ""
4698
 
4699
+ #: includes/topics/template.php:3695
4700
+ msgid "This topic has %1$s, %2$s, and was last updated %3$s by %4$s."
4701
  msgstr ""
4702
 
4703
+ #: includes/topics/template.php:3699
4704
+ msgid "This topic has %1$s and %2$s."
4705
  msgstr ""
4706
 
4707
+ #: includes/topics/template.php:3703
4708
  msgid "This topic has no replies."
4709
  msgstr ""
4710
 
4711
+ #: includes/topics/template.php:3755
4712
  msgid "Search Tags"
4713
  msgstr ""
4714
 
4715
+ #: includes/topics/template.php:3756
4716
  msgid "Popular Tags"
4717
  msgstr ""
4718
 
4719
+ #: includes/topics/template.php:3757
4720
  msgid "All Tags"
4721
  msgstr ""
4722
 
4723
+ #: includes/topics/template.php:3758
4724
  msgid "Edit Tag"
4725
  msgstr ""
4726
 
4727
+ #: includes/topics/template.php:3759
4728
  msgid "Update Tag"
4729
  msgstr ""
4730
 
4731
+ #: includes/topics/template.php:3760
4732
  msgid "Add New Tag"
4733
  msgstr ""
4734
 
4735
+ #: includes/topics/template.php:3761
4736
  msgid "New Tag Name"
4737
  msgstr ""
4738
 
4739
+ #: includes/topics/template.php:3762
4740
  msgid "View Topic Tag"
4741
  msgstr ""
4742
 
4743
+ #: includes/topics/template.php:3763
4744
  msgid "View Topic Tags"
4745
  msgstr ""
4746
 
4747
+ #: includes/topics/template.php:3764
4748
  msgid "Topic tags list"
4749
  msgstr ""
4750
 
4751
+ #: includes/topics/template.php:3765
4752
  msgid "Topic tags list navigation"
4753
  msgstr ""
4754
 
4755
+ #: includes/topics/template.php:3766
4756
  msgid "Separate topic tags with commas"
4757
  msgstr ""
4758
 
4759
+ #: includes/topics/template.php:4465
4760
  msgid "Nobody"
4761
  msgstr ""
4762
 
4763
+ #: includes/topics/template.php:4469
4764
  msgid "%1$s is currently editing this topic."
4765
  msgstr ""
4766
 
4767
+ #: includes/users/engagements.php:718
4768
  msgid ""
4769
  "<strong>ERROR</strong>: No topic was found. Which topic are you "
4770
  "marking/unmarking as favorite?"
4771
  msgstr ""
4772
 
4773
+ #: includes/users/engagements.php:726
4774
  msgid ""
4775
  "<strong>ERROR</strong>: You do not have permission to edit favorites for "
4776
  "that user!."
4777
  msgstr ""
4778
 
4779
+ #: includes/users/engagements.php:767
4780
  msgid ""
4781
  "<strong>ERROR</strong>: There was a problem removing that topic from "
4782
  "favorites."
4783
  msgstr ""
4784
 
4785
+ #: includes/users/engagements.php:769
4786
  msgid "<strong>ERROR</strong>: There was a problem favoriting that topic."
4787
  msgstr ""
4788
 
4789
+ #: includes/users/engagements.php:1389
4790
  msgid ""
4791
  "<strong>ERROR</strong>: No forum was found. Which forum are you "
4792
  "subscribing/unsubscribing to?"
4793
  msgstr ""
4794
 
4795
+ #: includes/users/engagements.php:1397 includes/users/engagements.php:1507
4796
  msgid ""
4797
  "<strong>ERROR</strong>: You do not have permission to edit favorites of "
4798
  "that user."
4799
  msgstr ""
4800
 
4801
+ #: includes/users/engagements.php:1438
4802
  msgid "<strong>ERROR</strong>: There was a problem unsubscribing from that forum."
4803
  msgstr ""
4804
 
4805
+ #: includes/users/engagements.php:1440
4806
  msgid "<strong>ERROR</strong>: There was a problem subscribing to that forum."
4807
  msgstr ""
4808
 
4809
+ #: includes/users/engagements.php:1499
4810
  msgid ""
4811
  "<strong>ERROR</strong>: No topic was found. Which topic are you "
4812
  "subscribing/unsubscribing to?"
4813
  msgstr ""
4814
 
4815
+ #: includes/users/engagements.php:1548
4816
  msgid "<strong>ERROR</strong>: There was a problem unsubscribing from that topic."
4817
  msgstr ""
4818
 
4819
+ #: includes/users/engagements.php:1550
4820
  msgid "<strong>ERROR</strong>: There was a problem subscribing to that topic."
4821
  msgstr ""
4822
 
5714
  msgstr[0] ""
5715
  msgstr[1] ""
5716
 
5717
+ #: includes/admin/admin.php:664
5718
  msgctxt "admin color scheme"
5719
  msgid "Mint"
5720
  msgstr ""
5721
 
5722
+ #: includes/admin/admin.php:673
5723
  msgctxt "admin color scheme"
5724
  msgid "Evergreen"
5725
  msgstr ""
5744
  msgid "Approve"
5745
  msgstr ""
5746
 
5747
+ #: includes/admin/settings.php:375 includes/replies/template.php:53
5748
  msgctxt "noun"
5749
  msgid "Reply"
5750
  msgstr ""
5838
  msgid "Discussion Forum"
5839
  msgstr ""
5840
 
5841
+ #: includes/forums/functions.php:2016
5842
  msgctxt "Open the forum"
5843
  msgid "Open"
5844
  msgstr ""
5845
 
5846
+ #: includes/forums/functions.php:2017
5847
  msgctxt "Close the forum"
5848
  msgid "Closed"
5849
  msgstr ""
5850
 
5851
+ #: includes/forums/functions.php:2034
5852
  msgctxt "Forum accepts new topics"
5853
  msgid "Forum"
5854
  msgstr ""
5855
 
5856
+ #: includes/forums/functions.php:2035
5857
  msgctxt "Forum is a category"
5858
  msgid "Category"
5859
  msgstr ""
5860
 
5861
+ #: includes/forums/functions.php:2052
5862
  msgctxt "Make forum public"
5863
  msgid "Public"
5864
  msgstr ""
5865
 
5866
+ #: includes/forums/functions.php:2053
5867
  msgctxt "Make forum private"
5868
  msgid "Private"
5869
  msgstr ""
5870
 
5871
+ #: includes/forums/functions.php:2054
5872
  msgctxt "Make forum hidden"
5873
  msgid "Hidden"
5874
  msgstr ""
5875
 
5876
+ #: includes/replies/functions.php:1780
5877
  msgctxt "Publish the reply"
5878
  msgid "Publish"
5879
  msgstr ""
5880
 
5881
+ #: includes/replies/functions.php:1781
5882
  msgctxt "Spam the reply"
5883
  msgid "Spam"
5884
  msgstr ""
5885
 
5886
+ #: includes/replies/functions.php:1782
5887
  msgctxt "Trash the reply"
5888
  msgid "Trash"
5889
  msgstr ""
5890
 
5891
+ #: includes/replies/functions.php:1783
5892
  msgctxt "Mark reply as pending"
5893
  msgid "Pending"
5894
  msgstr ""
5898
  msgid "%1$s at %2$s"
5899
  msgstr ""
5900
 
5901
+ #: includes/replies/template.php:1742 includes/topics/template.php:3226
5902
  msgctxt "verb"
5903
  msgid "Reply"
5904
  msgstr ""
5918
  msgid "None"
5919
  msgstr ""
5920
 
5921
+ #: includes/topics/functions.php:2028 includes/topics/template.php:2913
5922
  msgctxt "Open the topic"
5923
  msgid "Open"
5924
  msgstr ""
5925
 
5926
+ #: includes/topics/functions.php:2029
5927
  msgctxt "Close the topic"
5928
  msgid "Closed"
5929
  msgstr ""
5930
 
5931
+ #: includes/topics/template.php:2912
5932
  msgctxt "Close the topic"
5933
  msgid "Close"
5934
  msgstr ""
5935
 
5936
+ #: includes/topics/functions.php:2030
5937
  msgctxt "Spam the topic"
5938
  msgid "Spam"
5939
  msgstr ""
5940
 
5941
+ #: includes/topics/functions.php:2031
5942
  msgctxt "Trash the topic"
5943
  msgid "Trash"
5944
  msgstr ""
5945
 
5946
+ #: includes/topics/functions.php:2032
5947
  msgctxt "Mark topic as pending"
5948
  msgid "Pending"
5949
  msgstr ""
5950
 
5951
+ #: includes/topics/functions.php:2049
5952
  msgctxt "Unstick a topic"
5953
  msgid "Normal"
5954
  msgstr ""
5955
 
5956
+ #: includes/topics/functions.php:2050
5957
  msgctxt "Make topic sticky"
5958
  msgid "Sticky"
5959
  msgstr ""
5960
 
5961
+ #: includes/topics/functions.php:2051
5962
  msgctxt "Make topic super sticky"
5963
  msgid "Super Sticky"
5964
  msgstr ""
5965
 
5966
+ #: includes/topics/template.php:2976
5967
  msgctxt "Approve the topic"
5968
  msgid "Approve"
5969
  msgstr ""
5970
 
5971
+ #: includes/topics/template.php:2977
5972
  msgctxt "Unapprove the topic"
5973
  msgid "Unapprove"
5974
  msgstr ""
includes/admin/admin.php CHANGED
@@ -123,7 +123,7 @@ class BBP_Admin {
123
  require $this->admin_dir . 'tools/common.php';
124
  require $this->admin_dir . 'tools/converter.php';
125
  require $this->admin_dir . 'tools/repair.php';
126
- require $this->admin_dir . 'tools/upgrades.php';
127
  require $this->admin_dir . 'tools/reset.php';
128
  require $this->admin_dir . 'tools/help.php';
129
 
@@ -368,8 +368,8 @@ class BBP_Admin {
368
  continue;
369
  }
370
 
371
- // Toggle the section if core integration is on
372
- if ( ( 'deep' === $settings_integration ) && ! empty( $section['page'] ) ) {
373
  $page = $section['page'];
374
  } else {
375
  $page = 'bbpress';
@@ -411,27 +411,7 @@ class BBP_Admin {
411
  // What capability is being checked?
412
  switch ( $cap ) {
413
 
414
- // BuddyPress
415
- case 'bbp_settings_buddypress' :
416
- if ( ( is_plugin_active( 'buddypress/bp-loader.php' ) && defined( 'BP_VERSION' ) && bp_is_root_blog() ) && is_super_admin() ) {
417
- $caps = array( bbpress()->admin->minimum_capability );
418
- } else {
419
- $caps = array( 'do_not_allow' );
420
- }
421
-
422
- break;
423
-
424
- // Akismet
425
- case 'bbp_settings_akismet' :
426
- if ( ( is_plugin_active( 'akismet/akismet.php' ) && defined( 'AKISMET_VERSION' ) ) && is_super_admin() ) {
427
- $caps = array( bbpress()->admin->minimum_capability );
428
- } else {
429
- $caps = array( 'do_not_allow' );
430
- }
431
-
432
- break;
433
-
434
- // bbPress
435
  case 'bbp_about_page' : // About and Credits
436
  case 'bbp_tools_page' : // Tools Page
437
  case 'bbp_tools_repair_page' : // Tools - Repair Page
@@ -439,6 +419,12 @@ class BBP_Admin {
439
  case 'bbp_tools_import_page' : // Tools - Import Page
440
  case 'bbp_tools_reset_page' : // Tools - Reset Page
441
  case 'bbp_settings_page' : // Settings Page
 
 
 
 
 
 
442
  case 'bbp_settings_users' : // Settings - Users
443
  case 'bbp_settings_features' : // Settings - Features
444
  case 'bbp_settings_theme_compat' : // Settings - Theme compat
@@ -449,6 +435,26 @@ class BBP_Admin {
449
  case 'bbp_settings_per_rss_page' : // Settings - Per RSS page
450
  $caps = array( bbpress()->admin->minimum_capability );
451
  break;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
452
  }
453
 
454
  // Filter & return
@@ -563,7 +569,7 @@ class BBP_Admin {
563
  */
564
  public function enqueue_scripts() {
565
 
566
- // Enqueue suggest for forum/topic/reply autocmopletes
567
  wp_enqueue_script( 'suggest' );
568
 
569
  // Minified
123
  require $this->admin_dir . 'tools/common.php';
124
  require $this->admin_dir . 'tools/converter.php';
125
  require $this->admin_dir . 'tools/repair.php';
126
+ require $this->admin_dir . 'tools/upgrade.php';
127
  require $this->admin_dir . 'tools/reset.php';
128
  require $this->admin_dir . 'tools/help.php';
129
 
368
  continue;
369
  }
370
 
371
+ // Overload the converter page
372
+ if ( ! empty( $section['page'] ) && ( ( 'converter' === $section['page'] ) || ( 'deep' === $settings_integration ) ) ) {
373
  $page = $section['page'];
374
  } else {
375
  $page = 'bbpress';
411
  // What capability is being checked?
412
  switch ( $cap ) {
413
 
414
+ // Pages
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
415
  case 'bbp_about_page' : // About and Credits
416
  case 'bbp_tools_page' : // Tools Page
417
  case 'bbp_tools_repair_page' : // Tools - Repair Page
419
  case 'bbp_tools_import_page' : // Tools - Import Page
420
  case 'bbp_tools_reset_page' : // Tools - Reset Page
421
  case 'bbp_settings_page' : // Settings Page
422
+
423
+ // Converter Sections
424
+ case 'bbp_converter_connection' : // Converter - Connection
425
+ case 'bbp_converter_options' : // Converter - Options
426
+
427
+ // Settings Sections
428
  case 'bbp_settings_users' : // Settings - Users
429
  case 'bbp_settings_features' : // Settings - Features
430
  case 'bbp_settings_theme_compat' : // Settings - Theme compat
435
  case 'bbp_settings_per_rss_page' : // Settings - Per RSS page
436
  $caps = array( bbpress()->admin->minimum_capability );
437
  break;
438
+
439
+ // Extend - BuddyPress
440
+ case 'bbp_settings_buddypress' :
441
+ if ( ( is_plugin_active( 'buddypress/bp-loader.php' ) && defined( 'BP_VERSION' ) && bp_is_root_blog() ) && is_super_admin() ) {
442
+ $caps = array( bbpress()->admin->minimum_capability );
443
+ } else {
444
+ $caps = array( 'do_not_allow' );
445
+ }
446
+
447
+ break;
448
+
449
+ // Extend - Akismet
450
+ case 'bbp_settings_akismet' :
451
+ if ( ( is_plugin_active( 'akismet/akismet.php' ) && defined( 'AKISMET_VERSION' ) ) && is_super_admin() ) {
452
+ $caps = array( bbpress()->admin->minimum_capability );
453
+ } else {
454
+ $caps = array( 'do_not_allow' );
455
+ }
456
+
457
+ break;
458
  }
459
 
460
  // Filter & return
569
  */
570
  public function enqueue_scripts() {
571
 
572
+ // Enqueue suggest for forum/topic/reply autocompletes
573
  wp_enqueue_script( 'suggest' );
574
 
575
  // Minified
includes/admin/assets/css/admin-rtl.css CHANGED
@@ -360,3 +360,12 @@ div.bbp-converter-log .step {
360
  #bbp-converter-stop {
361
  display: none;
362
  }
 
 
 
 
 
 
 
 
 
360
  #bbp-converter-stop {
361
  display: none;
362
  }
363
+
364
+ #bbp-converter-timer {
365
+ position: absolute;
366
+ left: 10px;
367
+ top: 4px;
368
+ padding: 5px;
369
+ border: 1px solid #ddd;
370
+ background-color: #fafafa;
371
+ }
includes/admin/assets/css/admin-rtl.min.css CHANGED
@@ -1 +1 @@
1
- #poststuff #bbp_forum_attributes select#parent_id,#poststuff #bbp_reply_attributes select#bbp_forum_id,#poststuff #bbp_reply_attributes select#bbp_reply_to,#poststuff #bbp_topic_attributes select#parent_id{max-width:170px}.bbp-badge{font:400 150px/1 dashicons!important;color:#000;display:inline-block}.bbp-badge:before{content:"\f451"}.about-wrap .bbp-badge{position:absolute;top:0;left:0}body.rtl .about-wrap .bbp-badge{left:auto;right:0}#adminmenu #menu-posts-forum .wp-menu-image:before,#dashboard_right_now a.bbp-glance-forums:before,th .bbp_forums_column:before{content:"\f449"}#adminmenu #menu-posts-topic .wp-menu-image:before,#dashboard_right_now a.bbp-glance-topics:before,th .bbp_topics_column:before{content:"\f450"}#adminmenu #menu-posts-reply .wp-menu-image:before,#dashboard_right_now a.bbp-glance-replies:before,th .bbp_replies_column:before{content:"\f451"}#dashboard_right_now a.bbp-glance-topic-tags:before{content:"\f323"}th .bbp_forums_column,th .bbp_replies_column,th .bbp_topics_column{height:16px;width:16px}th .bbp_forums_column:before,th .bbp_replies_column:before,th .bbp_topics_column:before{font:400 20px/.5 dashicons;speak:none;display:inline-block;padding:0;top:4px;right:-4px;position:relative;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important;color:#444}#bbp-dashboard-right-now .table,#bbp-dashboard-right-now .versions,#bbp-dashboard-right-now p.sub{margin:-12px}#bbp-dashboard-right-now .inside{font-size:12px;padding-top:20px;margin-bottom:0}#bbp-dashboard-right-now p.sub{padding:5px 0 15px;color:#8f8f8f;font-size:14px;position:absolute;top:-17px;right:15px}body.rtl #bbp-dashboard-right-now p.sub{left:15px;right:0}#bbp-dashboard-right-now .table{margin:0;padding:0;position:relative}#bbp-dashboard-right-now .table_content{float:right;border-top:#ececec 1px solid;width:45%}body.rtl #bbp-dashboard-right-now .table_content{float:left}#bbp-dashboard-right-now .table_discussion{float:left;border-top:#ececec 1px solid;width:45%}body.rtl #bbp-dashboard-right-now .table_discussion{float:right}#bbp-dashboard-right-now table td{padding:3px 0;white-space:nowrap}#bbp-dashboard-right-now table tr.first td{border-top:none}#bbp-dashboard-right-now td.b{padding-left:6px;text-align:left;font-family:Georgia,"Times New Roman","Bitstream Charter",Times,serif;font-size:14px;width:1%}body.rtl #bbp-dashboard-right-now td.b{padding-right:6px;padding-left:0}#bbp-dashboard-right-now td.b a{font-size:18px}#bbp-dashboard-right-now td.b a:hover{color:#d54e21}#bbp-dashboard-right-now .t{font-size:12px;padding-left:12px;padding-top:6px;color:#777}body.rtl #bbp-dashboard-right-now .t{padding-right:12px;padding-left:0}#bbp-dashboard-right-now .t a{white-space:nowrap}#bbp-dashboard-right-now .spam{color:red}#bbp-dashboard-right-now .waiting{color:#e66f00}#bbp-dashboard-right-now .approved{color:#0f0}#bbp-dashboard-right-now .versions{padding:6px 10px 12px;clear:both}#bbp-dashboard-right-now .versions .b{font-weight:700}#bbp-dashboard-right-now a.button{float:left;clear:left;position:relative;top:-5px}body.rtl #bbp-dashboard-right-now a.button{float:right;clear:right}body.post-type-forum #minor-publishing,body.post-type-forum #save-post{display:none}body.post-type-forum strong.label,body.post-type-reply strong.label,body.post-type-topic strong.label{display:inline-block;width:60px}.column-bbp_forum_reply_count,.column-bbp_forum_topic_count,.column-bbp_topic_reply_count,.column-bbp_topic_voice_count{width:8%!important}.column-author,.column-bbp_forum_mods,.column-bbp_reply_author,.column-bbp_topic_author{width:10%!important}.column-bbp_reply_forum,.column-bbp_reply_topic,.column-bbp_topic_forum{width:10%!important}.column-bbp_forum_freshness,.column-bbp_topic_freshness{width:10%!important}.column-bbp_forum_created,.column-bbp_reply_created,.column-bbp_topic_created{width:15%!important}.column-bbp_forum_topic_author,.column-bbp_topic_reply_author{width:25%!important}.column-bbp_forum_topic_author .avatar,.column-bbp_topic_reply_author .avatar{float:right;margin-left:10px}#bbp_moderators{width:100%}#bbp_forum_attributes hr{border-style:solid;border-width:1px;border-color:#ccc #ccc #fff #fff}#the-list .status-closed{background-color:#f5f5f5}#the-list .status-closed:nth-child(odd){background-color:#f0f0f0}#the-list .status-spam{background-color:#fee}#the-list .status-spam:nth-child(odd){background-color:#fdd}#the-list .status-pending{background-color:#fff2e8}#the-list .status-pending:nth-child(odd){background-color:#fff7f1}#the-list .status-closed td,#the-list .status-spam td{color:#999}#bbp_topic_engagements_metabox .avatar,#bbp_topic_favorites_metabox .avatar,#bbp_topic_subscriptions_metabox .avatar{margin:3px}#bbp-converter-monitor .inside{margin-bottom:0}div.bbp-converter-log,div.bbp-converter-warning{padding:5px 5px 5px 0}div.bbp-converter-log.started{height:300px;overflow:auto}div.bbp-converter-log p{margin:0;padding:2px}div.bbp-converter-log p:only-child{float:none;margin-bottom:0}div.bbp-converter-log div{padding:10px;margin:5px;background:#f4f4f4;border:1px solid #ddd}div.bbp-converter-log div code{margin-top:5px;display:block}div.bbp-converter-log .step{text-align:left;font-weight:600}#bbp-converter-stop{display:none}
1
+ #poststuff #bbp_forum_attributes select#parent_id,#poststuff #bbp_reply_attributes select#bbp_forum_id,#poststuff #bbp_reply_attributes select#bbp_reply_to,#poststuff #bbp_topic_attributes select#parent_id{max-width:170px}.bbp-badge{font:400 150px/1 dashicons!important;color:#000;display:inline-block}.bbp-badge:before{content:"\f451"}.about-wrap .bbp-badge{position:absolute;top:0;left:0}body.rtl .about-wrap .bbp-badge{left:auto;right:0}#adminmenu #menu-posts-forum .wp-menu-image:before,#dashboard_right_now a.bbp-glance-forums:before,th .bbp_forums_column:before{content:"\f449"}#adminmenu #menu-posts-topic .wp-menu-image:before,#dashboard_right_now a.bbp-glance-topics:before,th .bbp_topics_column:before{content:"\f450"}#adminmenu #menu-posts-reply .wp-menu-image:before,#dashboard_right_now a.bbp-glance-replies:before,th .bbp_replies_column:before{content:"\f451"}#dashboard_right_now a.bbp-glance-topic-tags:before{content:"\f323"}th .bbp_forums_column,th .bbp_replies_column,th .bbp_topics_column{height:16px;width:16px}th .bbp_forums_column:before,th .bbp_replies_column:before,th .bbp_topics_column:before{font:400 20px/.5 dashicons;speak:none;display:inline-block;padding:0;top:4px;right:-4px;position:relative;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important;color:#444}#bbp-dashboard-right-now .table,#bbp-dashboard-right-now .versions,#bbp-dashboard-right-now p.sub{margin:-12px}#bbp-dashboard-right-now .inside{font-size:12px;padding-top:20px;margin-bottom:0}#bbp-dashboard-right-now p.sub{padding:5px 0 15px;color:#8f8f8f;font-size:14px;position:absolute;top:-17px;right:15px}body.rtl #bbp-dashboard-right-now p.sub{left:15px;right:0}#bbp-dashboard-right-now .table{margin:0;padding:0;position:relative}#bbp-dashboard-right-now .table_content{float:right;border-top:#ececec 1px solid;width:45%}body.rtl #bbp-dashboard-right-now .table_content{float:left}#bbp-dashboard-right-now .table_discussion{float:left;border-top:#ececec 1px solid;width:45%}body.rtl #bbp-dashboard-right-now .table_discussion{float:right}#bbp-dashboard-right-now table td{padding:3px 0;white-space:nowrap}#bbp-dashboard-right-now table tr.first td{border-top:none}#bbp-dashboard-right-now td.b{padding-left:6px;text-align:left;font-family:Georgia,"Times New Roman","Bitstream Charter",Times,serif;font-size:14px;width:1%}body.rtl #bbp-dashboard-right-now td.b{padding-right:6px;padding-left:0}#bbp-dashboard-right-now td.b a{font-size:18px}#bbp-dashboard-right-now td.b a:hover{color:#d54e21}#bbp-dashboard-right-now .t{font-size:12px;padding-left:12px;padding-top:6px;color:#777}body.rtl #bbp-dashboard-right-now .t{padding-right:12px;padding-left:0}#bbp-dashboard-right-now .t a{white-space:nowrap}#bbp-dashboard-right-now .spam{color:red}#bbp-dashboard-right-now .waiting{color:#e66f00}#bbp-dashboard-right-now .approved{color:#0f0}#bbp-dashboard-right-now .versions{padding:6px 10px 12px;clear:both}#bbp-dashboard-right-now .versions .b{font-weight:700}#bbp-dashboard-right-now a.button{float:left;clear:left;position:relative;top:-5px}body.rtl #bbp-dashboard-right-now a.button{float:right;clear:right}body.post-type-forum #minor-publishing,body.post-type-forum #save-post{display:none}body.post-type-forum strong.label,body.post-type-reply strong.label,body.post-type-topic strong.label{display:inline-block;width:60px}.column-bbp_forum_reply_count,.column-bbp_forum_topic_count,.column-bbp_topic_reply_count,.column-bbp_topic_voice_count{width:8%!important}.column-author,.column-bbp_forum_mods,.column-bbp_reply_author,.column-bbp_topic_author{width:10%!important}.column-bbp_reply_forum,.column-bbp_reply_topic,.column-bbp_topic_forum{width:10%!important}.column-bbp_forum_freshness,.column-bbp_topic_freshness{width:10%!important}.column-bbp_forum_created,.column-bbp_reply_created,.column-bbp_topic_created{width:15%!important}.column-bbp_forum_topic_author,.column-bbp_topic_reply_author{width:25%!important}.column-bbp_forum_topic_author .avatar,.column-bbp_topic_reply_author .avatar{float:right;margin-left:10px}#bbp_moderators{width:100%}#bbp_forum_attributes hr{border-style:solid;border-width:1px;border-color:#ccc #ccc #fff #fff}#the-list .status-closed{background-color:#f5f5f5}#the-list .status-closed:nth-child(odd){background-color:#f0f0f0}#the-list .status-spam{background-color:#fee}#the-list .status-spam:nth-child(odd){background-color:#fdd}#the-list .status-pending{background-color:#fff2e8}#the-list .status-pending:nth-child(odd){background-color:#fff7f1}#the-list .status-closed td,#the-list .status-spam td{color:#999}#bbp_topic_engagements_metabox .avatar,#bbp_topic_favorites_metabox .avatar,#bbp_topic_subscriptions_metabox .avatar{margin:3px}#bbp-converter-monitor .inside{margin-bottom:0}div.bbp-converter-log,div.bbp-converter-warning{padding:5px 5px 5px 0}div.bbp-converter-log.started{height:300px;overflow:auto}div.bbp-converter-log p{margin:0;padding:2px}div.bbp-converter-log p:only-child{float:none;margin-bottom:0}div.bbp-converter-log div{padding:10px;margin:5px;background:#f4f4f4;border:1px solid #ddd}div.bbp-converter-log div code{margin-top:5px;display:block}div.bbp-converter-log .step{text-align:left;font-weight:600}#bbp-converter-stop{display:none}#bbp-converter-timer{position:absolute;left:10px;top:4px;padding:5px;border:1px solid #ddd;background-color:#fafafa}
includes/admin/assets/css/admin.css CHANGED
@@ -360,3 +360,12 @@ div.bbp-converter-log .step {
360
  #bbp-converter-stop {
361
  display: none;
362
  }
 
 
 
 
 
 
 
 
 
360
  #bbp-converter-stop {
361
  display: none;
362
  }
363
+
364
+ #bbp-converter-timer {
365
+ position: absolute;
366
+ right: 10px;
367
+ top: 4px;
368
+ padding: 5px;
369
+ border: 1px solid #ddd;
370
+ background-color: #fafafa;
371
+ }
includes/admin/assets/css/admin.min.css CHANGED
@@ -1 +1 @@
1
- #poststuff #bbp_forum_attributes select#parent_id,#poststuff #bbp_reply_attributes select#bbp_forum_id,#poststuff #bbp_reply_attributes select#bbp_reply_to,#poststuff #bbp_topic_attributes select#parent_id{max-width:170px}.bbp-badge{font:400 150px/1 dashicons!important;color:#000;display:inline-block}.bbp-badge:before{content:"\f451"}.about-wrap .bbp-badge{position:absolute;top:0;right:0}body.rtl .about-wrap .bbp-badge{right:auto;left:0}#adminmenu #menu-posts-forum .wp-menu-image:before,#dashboard_right_now a.bbp-glance-forums:before,th .bbp_forums_column:before{content:"\f449"}#adminmenu #menu-posts-topic .wp-menu-image:before,#dashboard_right_now a.bbp-glance-topics:before,th .bbp_topics_column:before{content:"\f450"}#adminmenu #menu-posts-reply .wp-menu-image:before,#dashboard_right_now a.bbp-glance-replies:before,th .bbp_replies_column:before{content:"\f451"}#dashboard_right_now a.bbp-glance-topic-tags:before{content:"\f323"}th .bbp_forums_column,th .bbp_replies_column,th .bbp_topics_column{height:16px;width:16px}th .bbp_forums_column:before,th .bbp_replies_column:before,th .bbp_topics_column:before{font:400 20px/.5 dashicons;speak:none;display:inline-block;padding:0;top:4px;left:-4px;position:relative;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important;color:#444}#bbp-dashboard-right-now .table,#bbp-dashboard-right-now .versions,#bbp-dashboard-right-now p.sub{margin:-12px}#bbp-dashboard-right-now .inside{font-size:12px;padding-top:20px;margin-bottom:0}#bbp-dashboard-right-now p.sub{padding:5px 0 15px;color:#8f8f8f;font-size:14px;position:absolute;top:-17px;left:15px}body.rtl #bbp-dashboard-right-now p.sub{right:15px;left:0}#bbp-dashboard-right-now .table{margin:0;padding:0;position:relative}#bbp-dashboard-right-now .table_content{float:left;border-top:#ececec 1px solid;width:45%}body.rtl #bbp-dashboard-right-now .table_content{float:right}#bbp-dashboard-right-now .table_discussion{float:right;border-top:#ececec 1px solid;width:45%}body.rtl #bbp-dashboard-right-now .table_discussion{float:left}#bbp-dashboard-right-now table td{padding:3px 0;white-space:nowrap}#bbp-dashboard-right-now table tr.first td{border-top:none}#bbp-dashboard-right-now td.b{padding-right:6px;text-align:right;font-family:Georgia,"Times New Roman","Bitstream Charter",Times,serif;font-size:14px;width:1%}body.rtl #bbp-dashboard-right-now td.b{padding-left:6px;padding-right:0}#bbp-dashboard-right-now td.b a{font-size:18px}#bbp-dashboard-right-now td.b a:hover{color:#d54e21}#bbp-dashboard-right-now .t{font-size:12px;padding-right:12px;padding-top:6px;color:#777}body.rtl #bbp-dashboard-right-now .t{padding-left:12px;padding-right:0}#bbp-dashboard-right-now .t a{white-space:nowrap}#bbp-dashboard-right-now .spam{color:red}#bbp-dashboard-right-now .waiting{color:#e66f00}#bbp-dashboard-right-now .approved{color:#0f0}#bbp-dashboard-right-now .versions{padding:6px 10px 12px;clear:both}#bbp-dashboard-right-now .versions .b{font-weight:700}#bbp-dashboard-right-now a.button{float:right;clear:right;position:relative;top:-5px}body.rtl #bbp-dashboard-right-now a.button{float:left;clear:left}body.post-type-forum #minor-publishing,body.post-type-forum #save-post{display:none}body.post-type-forum strong.label,body.post-type-reply strong.label,body.post-type-topic strong.label{display:inline-block;width:60px}.column-bbp_forum_reply_count,.column-bbp_forum_topic_count,.column-bbp_topic_reply_count,.column-bbp_topic_voice_count{width:8%!important}.column-author,.column-bbp_forum_mods,.column-bbp_reply_author,.column-bbp_topic_author{width:10%!important}.column-bbp_reply_forum,.column-bbp_reply_topic,.column-bbp_topic_forum{width:10%!important}.column-bbp_forum_freshness,.column-bbp_topic_freshness{width:10%!important}.column-bbp_forum_created,.column-bbp_reply_created,.column-bbp_topic_created{width:15%!important}.column-bbp_forum_topic_author,.column-bbp_topic_reply_author{width:25%!important}.column-bbp_forum_topic_author .avatar,.column-bbp_topic_reply_author .avatar{float:left;margin-right:10px}#bbp_moderators{width:100%}#bbp_forum_attributes hr{border-style:solid;border-width:1px;border-color:#ccc #fff #fff #ccc}#the-list .status-closed{background-color:#f5f5f5}#the-list .status-closed:nth-child(odd){background-color:#f0f0f0}#the-list .status-spam{background-color:#fee}#the-list .status-spam:nth-child(odd){background-color:#fdd}#the-list .status-pending{background-color:#fff2e8}#the-list .status-pending:nth-child(odd){background-color:#fff7f1}#the-list .status-closed td,#the-list .status-spam td{color:#999}#bbp_topic_engagements_metabox .avatar,#bbp_topic_favorites_metabox .avatar,#bbp_topic_subscriptions_metabox .avatar{margin:3px}#bbp-converter-monitor .inside{margin-bottom:0}div.bbp-converter-log,div.bbp-converter-warning{padding:5px 0 5px 5px}div.bbp-converter-log.started{height:300px;overflow:auto}div.bbp-converter-log p{margin:0;padding:2px}div.bbp-converter-log p:only-child{float:none;margin-bottom:0}div.bbp-converter-log div{padding:10px;margin:5px;background:#f4f4f4;border:1px solid #ddd}div.bbp-converter-log div code{margin-top:5px;display:block}div.bbp-converter-log .step{text-align:right;font-weight:600}#bbp-converter-stop{display:none}
1
+ #poststuff #bbp_forum_attributes select#parent_id,#poststuff #bbp_reply_attributes select#bbp_forum_id,#poststuff #bbp_reply_attributes select#bbp_reply_to,#poststuff #bbp_topic_attributes select#parent_id{max-width:170px}.bbp-badge{font:400 150px/1 dashicons!important;color:#000;display:inline-block}.bbp-badge:before{content:"\f451"}.about-wrap .bbp-badge{position:absolute;top:0;right:0}body.rtl .about-wrap .bbp-badge{right:auto;left:0}#adminmenu #menu-posts-forum .wp-menu-image:before,#dashboard_right_now a.bbp-glance-forums:before,th .bbp_forums_column:before{content:"\f449"}#adminmenu #menu-posts-topic .wp-menu-image:before,#dashboard_right_now a.bbp-glance-topics:before,th .bbp_topics_column:before{content:"\f450"}#adminmenu #menu-posts-reply .wp-menu-image:before,#dashboard_right_now a.bbp-glance-replies:before,th .bbp_replies_column:before{content:"\f451"}#dashboard_right_now a.bbp-glance-topic-tags:before{content:"\f323"}th .bbp_forums_column,th .bbp_replies_column,th .bbp_topics_column{height:16px;width:16px}th .bbp_forums_column:before,th .bbp_replies_column:before,th .bbp_topics_column:before{font:400 20px/.5 dashicons;speak:none;display:inline-block;padding:0;top:4px;left:-4px;position:relative;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important;color:#444}#bbp-dashboard-right-now .table,#bbp-dashboard-right-now .versions,#bbp-dashboard-right-now p.sub{margin:-12px}#bbp-dashboard-right-now .inside{font-size:12px;padding-top:20px;margin-bottom:0}#bbp-dashboard-right-now p.sub{padding:5px 0 15px;color:#8f8f8f;font-size:14px;position:absolute;top:-17px;left:15px}body.rtl #bbp-dashboard-right-now p.sub{right:15px;left:0}#bbp-dashboard-right-now .table{margin:0;padding:0;position:relative}#bbp-dashboard-right-now .table_content{float:left;border-top:#ececec 1px solid;width:45%}body.rtl #bbp-dashboard-right-now .table_content{float:right}#bbp-dashboard-right-now .table_discussion{float:right;border-top:#ececec 1px solid;width:45%}body.rtl #bbp-dashboard-right-now .table_discussion{float:left}#bbp-dashboard-right-now table td{padding:3px 0;white-space:nowrap}#bbp-dashboard-right-now table tr.first td{border-top:none}#bbp-dashboard-right-now td.b{padding-right:6px;text-align:right;font-family:Georgia,"Times New Roman","Bitstream Charter",Times,serif;font-size:14px;width:1%}body.rtl #bbp-dashboard-right-now td.b{padding-left:6px;padding-right:0}#bbp-dashboard-right-now td.b a{font-size:18px}#bbp-dashboard-right-now td.b a:hover{color:#d54e21}#bbp-dashboard-right-now .t{font-size:12px;padding-right:12px;padding-top:6px;color:#777}body.rtl #bbp-dashboard-right-now .t{padding-left:12px;padding-right:0}#bbp-dashboard-right-now .t a{white-space:nowrap}#bbp-dashboard-right-now .spam{color:red}#bbp-dashboard-right-now .waiting{color:#e66f00}#bbp-dashboard-right-now .approved{color:#0f0}#bbp-dashboard-right-now .versions{padding:6px 10px 12px;clear:both}#bbp-dashboard-right-now .versions .b{font-weight:700}#bbp-dashboard-right-now a.button{float:right;clear:right;position:relative;top:-5px}body.rtl #bbp-dashboard-right-now a.button{float:left;clear:left}body.post-type-forum #minor-publishing,body.post-type-forum #save-post{display:none}body.post-type-forum strong.label,body.post-type-reply strong.label,body.post-type-topic strong.label{display:inline-block;width:60px}.column-bbp_forum_reply_count,.column-bbp_forum_topic_count,.column-bbp_topic_reply_count,.column-bbp_topic_voice_count{width:8%!important}.column-author,.column-bbp_forum_mods,.column-bbp_reply_author,.column-bbp_topic_author{width:10%!important}.column-bbp_reply_forum,.column-bbp_reply_topic,.column-bbp_topic_forum{width:10%!important}.column-bbp_forum_freshness,.column-bbp_topic_freshness{width:10%!important}.column-bbp_forum_created,.column-bbp_reply_created,.column-bbp_topic_created{width:15%!important}.column-bbp_forum_topic_author,.column-bbp_topic_reply_author{width:25%!important}.column-bbp_forum_topic_author .avatar,.column-bbp_topic_reply_author .avatar{float:left;margin-right:10px}#bbp_moderators{width:100%}#bbp_forum_attributes hr{border-style:solid;border-width:1px;border-color:#ccc #fff #fff #ccc}#the-list .status-closed{background-color:#f5f5f5}#the-list .status-closed:nth-child(odd){background-color:#f0f0f0}#the-list .status-spam{background-color:#fee}#the-list .status-spam:nth-child(odd){background-color:#fdd}#the-list .status-pending{background-color:#fff2e8}#the-list .status-pending:nth-child(odd){background-color:#fff7f1}#the-list .status-closed td,#the-list .status-spam td{color:#999}#bbp_topic_engagements_metabox .avatar,#bbp_topic_favorites_metabox .avatar,#bbp_topic_subscriptions_metabox .avatar{margin:3px}#bbp-converter-monitor .inside{margin-bottom:0}div.bbp-converter-log,div.bbp-converter-warning{padding:5px 0 5px 5px}div.bbp-converter-log.started{height:300px;overflow:auto}div.bbp-converter-log p{margin:0;padding:2px}div.bbp-converter-log p:only-child{float:none;margin-bottom:0}div.bbp-converter-log div{padding:10px;margin:5px;background:#f4f4f4;border:1px solid #ddd}div.bbp-converter-log div code{margin-top:5px;display:block}div.bbp-converter-log .step{text-align:right;font-weight:600}#bbp-converter-stop{display:none}#bbp-converter-timer{position:absolute;right:10px;top:4px;padding:5px;border:1px solid #ddd;background-color:#fafafa}
includes/admin/assets/js/converter.js CHANGED
@@ -8,7 +8,11 @@ jQuery( document ).ready( function ( $ ) {
8
  stop = $( '#bbp-converter-stop' ),
9
  start = $( '#bbp-converter-start' ),
10
  restart = $( '#_bbp_converter_restart' ),
11
- settings = $( '#bbp-converter-settings' );
 
 
 
 
12
 
13
  /**
14
  * Start button click
@@ -183,7 +187,10 @@ jQuery( document ).ready( function ( $ ) {
183
  return;
184
  }
185
 
186
- $.post( ajaxurl, bbp_converter_settings(), function( response ) {
 
 
 
187
 
188
  if ( 'bbp_converter_db_connection_failed' === response ) {
189
  bbp_converter_error_db();
@@ -202,6 +209,8 @@ jQuery( document ).ready( function ( $ ) {
202
  * @returns {void}
203
  */
204
  function bbp_converter_next() {
 
 
205
  clearTimeout( BBP_Converter.running );
206
 
207
  BBP_Converter.running = setTimeout( function() {
@@ -222,6 +231,7 @@ jQuery( document ).ready( function ( $ ) {
222
  function bbp_converter_stop( button, log ) {
223
  start.val( button ).show();
224
  stop.hide();
 
225
 
226
  if ( log ) {
227
  bbp_converter_log( log );
@@ -232,6 +242,31 @@ jQuery( document ).ready( function ( $ ) {
232
  BBP_Converter.running = false;
233
  }
234
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
235
  /**
236
  * Prepend some text to the import monitor
237
  *
8
  stop = $( '#bbp-converter-stop' ),
9
  start = $( '#bbp-converter-start' ),
10
  restart = $( '#_bbp_converter_restart' ),
11
+ timer = $( '#bbp-converter-timer' ),
12
+ settings = $( '#bbp-converter-settings' ),
13
+
14
+ // Prefetch the settings
15
+ options = bbp_converter_settings();
16
 
17
  /**
18
  * Start button click
187
  return;
188
  }
189
 
190
+ // Check if the settings have changed
191
+ options = bbp_converter_settings();
192
+
193
+ $.post( ajaxurl, options, function( response ) {
194
 
195
  if ( 'bbp_converter_db_connection_failed' === response ) {
196
  bbp_converter_error_db();
209
  * @returns {void}
210
  */
211
  function bbp_converter_next() {
212
+ bbp_converter_timer();
213
+
214
  clearTimeout( BBP_Converter.running );
215
 
216
  BBP_Converter.running = setTimeout( function() {
231
  function bbp_converter_stop( button, log ) {
232
  start.val( button ).show();
233
  stop.hide();
234
+ timer.text( BBP_Converter.strings.timer_stopped );
235
 
236
  if ( log ) {
237
  bbp_converter_log( log );
242
  BBP_Converter.running = false;
243
  }
244
 
245
+ /**
246
+ * Update the timer
247
+ *
248
+ * @since 2.6.0 bbPress (r6513)
249
+ *
250
+ * @returns {void}
251
+ */
252
+ function bbp_converter_timer() {
253
+ var remaining = BBP_Converter.delay / 1000;
254
+
255
+ timer.text( BBP_Converter.strings.timer_counting.replace( '%s', remaining ) );
256
+
257
+ clearInterval( BBP_Converter.timer );
258
+
259
+ BBP_Converter.timer = setInterval( function() {
260
+ remaining--;
261
+ timer.text( BBP_Converter.strings.timer_counting.replace( '%s', remaining ) );
262
+
263
+ if ( remaining <= 0 ) {
264
+ clearInterval( BBP_Converter.timer );
265
+ timer.text( BBP_Converter.strings.timer_waiting );
266
+ }
267
+ }, 1000 );
268
+ }
269
+
270
  /**
271
  * Prepend some text to the import monitor
272
  *
includes/admin/assets/js/converter.min.js CHANGED
@@ -1,3 +1,3 @@
1
  /*! This file is automatically generated. */
2
 
3
- jQuery(document).ready(function(r){"use strict";function e(){BBP_Converter.running||(a.addClass("started"),p.hide(),b.show(),v(BBP_Converter.started?BBP_Converter.strings.start_continue:BBP_Converter.strings.start_start),c()),BBP_Converter.started=!0}function t(){u(BBP_Converter.strings.button_continue,BBP_Converter.strings.import_stopped_user)}function n(){u(BBP_Converter.strings.button_start,BBP_Converter.strings.import_error_db)}function o(){u(BBP_Converter.strings.button_continue,BBP_Converter.strings.import_error_halt)}function i(){u(BBP_Converter.strings.button_start,BBP_Converter.strings.import_comelete),BBP_Converter.started=!1}function _(r){v(r),r===BBP_Converter.strings.import_complete?i():BBP_Converter.running?c():BBP_Converter.halt&&o()}function s(){var e={};return r.each(P.serializeArray(),function(r,t){e[t.name]=t.value}),e._bbp_converter_restart&&C.removeAttr("checked"),e._bbp_converter_delay_time&&(BBP_Converter.delay=1e3*e._bbp_converter_delay_time),e.action="bbp_converter_process",e._ajax_nonce=BBP_Converter.ajax_nonce,e}function B(){BBP_Converter.running&&r.post(ajaxurl,s(),function(r){"bbp_converter_db_connection_failed"!==r?_(r.substring(0,r.length-1)):n()})}function c(){clearTimeout(BBP_Converter.running),BBP_Converter.running=setTimeout(function(){B()},BBP_Converter.delay)}function u(r,e){p.val(r).show(),b.hide(),e&&v(e),clearTimeout(BBP_Converter.running),BBP_Converter.running=!1}function v(r){"<div"!==r.substring(0,3)&&(r="<p>"+r+"</p>"),a.prepend(r)}var a=r("#bbp-converter-message"),b=r("#bbp-converter-stop"),p=r("#bbp-converter-start"),C=r("#_bbp_converter_restart"),P=r("#bbp-converter-settings");p.on("click",function(r){e(),r.preventDefault()}),r(b).on("click",function(r){t(),r.preventDefault()})});
1
  /*! This file is automatically generated. */
2
 
3
+ jQuery(document).ready(function(e){"use strict";function r(){BBP_Converter.running||(C.addClass("started"),p.hide(),P.show(),u(BBP_Converter.started?BBP_Converter.strings.start_continue:BBP_Converter.strings.start_start),c()),BBP_Converter.started=!0}function t(){v(BBP_Converter.strings.button_continue,BBP_Converter.strings.import_stopped_user)}function n(){v(BBP_Converter.strings.button_start,BBP_Converter.strings.import_error_db)}function o(){v(BBP_Converter.strings.button_continue,BBP_Converter.strings.import_error_halt)}function i(){v(BBP_Converter.strings.button_start,BBP_Converter.strings.import_comelete),BBP_Converter.started=!1}function _(e){u(e),e===BBP_Converter.strings.import_complete?i():BBP_Converter.running?c():BBP_Converter.halt&&o()}function s(){var r={};return e.each(l.serializeArray(),function(e,t){r[t.name]=t.value}),r._bbp_converter_restart&&b.removeAttr("checked"),r._bbp_converter_delay_time&&(BBP_Converter.delay=1e3*r._bbp_converter_delay_time),r.action="bbp_converter_process",r._ajax_nonce=BBP_Converter.ajax_nonce,r}function B(){BBP_Converter.running&&(m=s(),e.post(ajaxurl,m,function(e){"bbp_converter_db_connection_failed"!==e?_(e.substring(0,e.length-1)):n()}))}function c(){a(),clearTimeout(BBP_Converter.running),BBP_Converter.running=setTimeout(function(){B()},BBP_Converter.delay)}function v(e,r){p.val(e).show(),P.hide(),g.text(BBP_Converter.strings.timer_stopped),r&&u(r),clearTimeout(BBP_Converter.running),BBP_Converter.running=!1}function a(){var e=BBP_Converter.delay/1e3;g.text(BBP_Converter.strings.timer_counting.replace("%s",e)),clearInterval(BBP_Converter.timer),BBP_Converter.timer=setInterval(function(){e--,g.text(BBP_Converter.strings.timer_counting.replace("%s",e)),e<=0&&(clearInterval(BBP_Converter.timer),g.text(BBP_Converter.strings.timer_waiting))},1e3)}function u(e){"<div"!==e.substring(0,3)&&(e="<p>"+e+"</p>"),C.prepend(e)}var C=e("#bbp-converter-message"),P=e("#bbp-converter-stop"),p=e("#bbp-converter-start"),b=e("#_bbp_converter_restart"),g=e("#bbp-converter-timer"),l=e("#bbp-converter-settings"),m=s();p.on("click",function(e){r(),e.preventDefault()}),e(P).on("click",function(e){t(),e.preventDefault()})});
includes/admin/classes/class-bbp-converter-base.php CHANGED
@@ -67,7 +67,7 @@ abstract class BBP_Converter_Base {
67
  /**
68
  * @var str This is the charset for your wp database.
69
  */
70
- public $charset;
71
 
72
  /**
73
  * @var boolean Sync table available.
@@ -77,7 +77,7 @@ abstract class BBP_Converter_Base {
77
  /**
78
  * @var str Sync table name.
79
  */
80
- public $sync_table_name;
81
 
82
  /**
83
  * @var bool Whether users should be converted or not. Default false.
@@ -102,56 +102,33 @@ abstract class BBP_Converter_Base {
102
 
103
  /** Sanitize Options **************************************************/
104
 
105
- $this->convert_users = ! empty( $_POST['_bbp_converter_convert_users'] )
106
- ? true
107
- : false;
108
 
109
  /** Sanitize Connection ***********************************************/
110
 
111
- $db_user = ! empty( $_POST['_bbp_converter_db_user'] )
112
- ? sanitize_text_field( $_POST['_bbp_converter_db_user'] )
113
- : DB_USER;
114
-
115
- $db_pass = ! empty( $_POST['_bbp_converter_db_pass'] )
116
- ? sanitize_text_field( $_POST['_bbp_converter_db_pass'] )
117
- : DB_PASSWORD;
118
-
119
- $db_name = ! empty( $_POST['_bbp_converter_db_name'] )
120
- ? sanitize_text_field( $_POST['_bbp_converter_db_name'] )
121
- : DB_NAME;
122
-
123
- $db_port = ! empty( $_POST['_bbp_converter_db_port'] )
124
- ? (int) sanitize_text_field( $_POST['_bbp_converter_db_port'] )
125
- : '';
126
-
127
- $db_server = ! empty( $_POST['_bbp_converter_db_server'] )
128
- ? sanitize_text_field( $_POST['_bbp_converter_db_server'] )
129
- : DB_HOST;
130
-
131
- $db_prefix = ! empty( $_POST['_bbp_converter_db_prefix'] )
132
- ? sanitize_text_field( $_POST['_bbp_converter_db_prefix'] )
133
- : '';
134
-
135
- $db_rows = ! empty( $_POST['_bbp_converter_rows'] )
136
- ? (int) $_POST['_bbp_converter_rows']
137
- : 100;
138
 
139
  // Maybe add port to server
140
- if ( ! empty( $db_port ) && ! empty( $db_server ) && ! strstr( $db_server, ':' ) ) {
141
- $db_server = $db_server . ':' . $db_port;
142
  }
143
 
144
  /** Get database connections ******************************************/
145
 
146
  // Setup WordPress Database
147
- $this->wpdb = bbp_db();
148
- $this->max_rows = $db_rows;
149
 
150
  // Control WPDB db_connect() bailing
151
  define( 'WP_SETUP_CONFIG', true );
152
 
153
  // Setup old forum Database
154
- $this->opdb = new wpdb( $db_user, $db_pass, $db_name, $db_server );
155
 
156
  // Connection failed
157
  if ( ! $this->opdb->db_connect( false ) ) {
@@ -171,20 +148,16 @@ abstract class BBP_Converter_Base {
171
  * Syncing
172
  */
173
  $this->sync_table_name = $this->wpdb->prefix . 'bbp_converter_translator';
174
- if ( $this->wpdb->get_var( "SHOW TABLES LIKE '" . $this->sync_table_name . "'" ) === $this->sync_table_name ) {
175
- $this->sync_table = true;
176
- } else {
177
- $this->sync_table = false;
178
- }
179
 
180
  /**
181
  * Character set
182
  */
183
- if ( empty( $this->wpdb->charset ) ) {
184
- $this->charset = 'UTF8';
185
- } else {
186
- $this->charset = $this->wpdb->charset;
187
- }
188
 
189
  /**
190
  * Default mapping.
67
  /**
68
  * @var str This is the charset for your wp database.
69
  */
70
+ public $charset = '';
71
 
72
  /**
73
  * @var boolean Sync table available.
77
  /**
78
  * @var str Sync table name.
79
  */
80
+ public $sync_table_name = '';
81
 
82
  /**
83
  * @var bool Whether users should be converted or not. Default false.
102
 
103
  /** Sanitize Options **************************************************/
104
 
105
+ $this->convert_users = (bool) get_option( '_bbp_converter_convert_users', false );
106
+ $this->max_rows = (int) get_option( '_bbp_converter_rows', 100 );
 
107
 
108
  /** Sanitize Connection ***********************************************/
109
 
110
+ $db_user = get_option( '_bbp_converter_db_user', DB_USER );
111
+ $db_pass = get_option( '_bbp_converter_db_pass', DB_PASSWORD );
112
+ $db_name = get_option( '_bbp_converter_db_name', DB_NAME );
113
+ $db_host = get_option( '_bbp_converter_db_server', DB_HOST );
114
+ $db_port = get_option( '_bbp_converter_db_port', '' );
115
+ $db_prefix = get_option( '_bbp_converter_db_prefix', '' );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
116
 
117
  // Maybe add port to server
118
+ if ( ! empty( $db_port ) && ! empty( $db_host ) && ! strstr( $db_host, ':' ) ) {
119
+ $db_host = $db_host . ':' . $db_port;
120
  }
121
 
122
  /** Get database connections ******************************************/
123
 
124
  // Setup WordPress Database
125
+ $this->wpdb = bbp_db();
 
126
 
127
  // Control WPDB db_connect() bailing
128
  define( 'WP_SETUP_CONFIG', true );
129
 
130
  // Setup old forum Database
131
+ $this->opdb = new wpdb( $db_user, $db_pass, $db_name, $db_host );
132
 
133
  // Connection failed
134
  if ( ! $this->opdb->db_connect( false ) ) {
148
  * Syncing
149
  */
150
  $this->sync_table_name = $this->wpdb->prefix . 'bbp_converter_translator';
151
+ $this->sync_table = $this->sync_table_name === $this->wpdb->get_var( "SHOW TABLES LIKE '{$this->sync_table_name}'" )
152
+ ? true
153
+ : false;
 
 
154
 
155
  /**
156
  * Character set
157
  */
158
+ $this->charset = ! empty( $this->wpdb->charset )
159
+ ? $this->wpdb->charset
160
+ : 'UTF8';
 
 
161
 
162
  /**
163
  * Default mapping.
includes/admin/classes/class-bbp-converter.php CHANGED
@@ -42,6 +42,11 @@ class BBP_Converter {
42
  */
43
  public $converter = null;
44
 
 
 
 
 
 
45
  /**
46
  * The main bbPress Converter loader
47
  *
@@ -66,79 +71,10 @@ class BBP_Converter {
66
  // Attach to the admin head with our ajax requests cycle and css
67
  add_action( 'admin_head-tools_page_bbp-converter', array( $this, 'admin_head' ) );
68
 
69
- // Attach the bbConverter admin settings action to the WordPress admin init action.
70
- add_action( 'load-tools_page_bbp-converter', array( $this, 'register_admin_settings' ) );
71
-
72
  // Attach to the admin ajax request to process cycles
73
  add_action( 'wp_ajax_bbp_converter_process', array( $this, 'process_callback' ) );
74
  }
75
 
76
- /**
77
- * Register the settings
78
- *
79
- * @since 2.1.0 bbPress (r3813)
80
- *
81
- * @uses add_settings_section() To add our own settings section
82
- * @uses add_settings_field() To add various settings fields
83
- * @uses register_setting() To register various settings
84
- */
85
- public function register_admin_settings() {
86
-
87
- // Add the main section
88
- add_settings_section( 'bbpress_converter_main', esc_html__( 'Database Settings', 'bbpress' ), 'bbp_converter_setting_callback_main_section', 'bbpress_converter' );
89
-
90
- // System Select
91
- add_settings_field( '_bbp_converter_platform', esc_html__( 'Select Platform', 'bbpress' ), 'bbp_converter_setting_callback_platform', 'bbpress_converter', 'bbpress_converter_main' );
92
- register_setting ( 'bbpress_converter_main', '_bbp_converter_platform', 'sanitize_title' );
93
-
94
- // Database Server
95
- add_settings_field( '_bbp_converter_db_server', esc_html__( 'Database Server', 'bbpress' ), 'bbp_converter_setting_callback_dbserver', 'bbpress_converter', 'bbpress_converter_main' );
96
- register_setting ( 'bbpress_converter_main', '_bbp_converter_db_server', 'sanitize_title' );
97
-
98
- // Database Server Port
99
- add_settings_field( '_bbp_converter_db_port', esc_html__( 'Database Port', 'bbpress' ), 'bbp_converter_setting_callback_dbport', 'bbpress_converter', 'bbpress_converter_main' );
100
- register_setting ( 'bbpress_converter_main', '_bbp_converter_db_port', 'sanitize_title' );
101
-
102
- // Database Name
103
- add_settings_field( '_bbp_converter_db_name', esc_html__( 'Database Name', 'bbpress' ), 'bbp_converter_setting_callback_dbname', 'bbpress_converter', 'bbpress_converter_main' );
104
- register_setting ( 'bbpress_converter_main', '_bbp_converter_db_name', 'sanitize_title' );
105
-
106
- // Database User
107
- add_settings_field( '_bbp_converter_db_user', esc_html__( 'Database User', 'bbpress' ), 'bbp_converter_setting_callback_dbuser', 'bbpress_converter', 'bbpress_converter_main' );
108
- register_setting ( 'bbpress_converter_main', '_bbp_converter_db_user', 'sanitize_title' );
109
-
110
- // Database Pass
111
- add_settings_field( '_bbp_converter_db_pass', esc_html__( 'Database Password', 'bbpress' ), 'bbp_converter_setting_callback_dbpass', 'bbpress_converter', 'bbpress_converter_main' );
112
- register_setting ( 'bbpress_converter_main', '_bbp_converter_db_pass', 'sanitize_title' );
113
-
114
- // Database Prefix
115
- add_settings_field( '_bbp_converter_db_prefix', esc_html__( 'Table Prefix', 'bbpress' ), 'bbp_converter_setting_callback_dbprefix', 'bbpress_converter', 'bbpress_converter_main' );
116
- register_setting ( 'bbpress_converter_main', '_bbp_converter_db_prefix', 'sanitize_title' );
117
-
118
- // Add the options section
119
- add_settings_section( 'bbpress_converter_opt', esc_html__( 'Options', 'bbpress' ), 'bbp_converter_setting_callback_options_section', 'bbpress_converter' );
120
-
121
- // Rows Limit
122
- add_settings_field( '_bbp_converter_rows', esc_html__( 'Rows Limit', 'bbpress' ), 'bbp_converter_setting_callback_rows', 'bbpress_converter', 'bbpress_converter_opt' );
123
- register_setting ( 'bbpress_converter_opt', '_bbp_converter_rows', 'intval' );
124
-
125
- // Delay Time
126
- add_settings_field( '_bbp_converter_delay_time', esc_html__( 'Delay Time', 'bbpress' ), 'bbp_converter_setting_callback_delay_time', 'bbpress_converter', 'bbpress_converter_opt' );
127
- register_setting ( 'bbpress_converter_opt', '_bbp_converter_delay_time', 'intval' );
128
-
129
- // Convert Users ?
130
- add_settings_field( '_bbp_converter_convert_users', esc_html__( 'Convert Users', 'bbpress' ), 'bbp_converter_setting_callback_convert_users', 'bbpress_converter', 'bbpress_converter_opt' );
131
- register_setting ( 'bbpress_converter_opt', '_bbp_converter_convert_users', 'intval' );
132
-
133
- // Restart
134
- add_settings_field( '_bbp_converter_restart', esc_html__( 'Start Over', 'bbpress' ), 'bbp_converter_setting_callback_restart', 'bbpress_converter', 'bbpress_converter_opt' );
135
- register_setting ( 'bbpress_converter_opt', '_bbp_converter_restart', 'intval' );
136
-
137
- // Clean
138
- add_settings_field( '_bbp_converter_clean', esc_html__( 'Purge Previous Import', 'bbpress' ), 'bbp_converter_setting_callback_clean', 'bbpress_converter', 'bbpress_converter_opt' );
139
- register_setting ( 'bbpress_converter_opt', '_bbp_converter_clean', 'intval' );
140
- }
141
-
142
  /**
143
  * Admin scripts
144
  *
@@ -156,7 +92,7 @@ class BBP_Converter {
156
  // Enqueue scripts
157
  wp_enqueue_script( 'postbox' );
158
  wp_enqueue_script( 'dashboard' );
159
- wp_enqueue_script( 'bbp-converter', $bbp->admin->js_url . 'converter' . $suffix . '.js', array( 'jquery', 'postbox' ), $bbp->asset_version );
160
 
161
  // Localize JS
162
  wp_localize_script( 'bbp-converter', 'BBP_Converter', array(
@@ -164,10 +100,11 @@ class BBP_Converter {
164
  // Vars
165
  'ajax_nonce' => wp_create_nonce( 'bbp_converter_process' ),
166
  'halt' => (bool) defined( 'WP_DEBUG_DISPLAY' ) && WP_DEBUG_DISPLAY,
167
- 'started' => (bool) get_option( '_bbp_converter_step', false ),
 
168
  'running' => false,
169
  'complete' => false,
170
- 'delay' => 0,
171
 
172
  // Strings
173
  'strings' => array(
@@ -186,6 +123,11 @@ class BBP_Converter {
186
  'import_stopped_user' => esc_html__( 'Import Stopped (by User)', 'bbpress' ),
187
  'import_error_db' => esc_html__( 'Database Connection Failed', 'bbpress' ),
188
  'import_error_halt' => esc_html__( 'Import Halted (Error)', 'bbpress' ),
 
 
 
 
 
189
  )
190
  ) );
191
  }
@@ -256,14 +198,83 @@ class BBP_Converter {
256
 
257
  // Save step and count so that it can be restarted.
258
  if ( ! get_option( '_bbp_converter_step' ) || ! empty( $_POST['_bbp_converter_restart'] ) ) {
259
- update_option( '_bbp_converter_step', 0 );
260
- update_option( '_bbp_converter_start', 0 );
261
-
262
- $this->step = 0;
263
  $this->start = 0;
264
  }
265
  }
266
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
267
  /**
268
  * Setup converter options
269
  *
@@ -271,23 +282,17 @@ class BBP_Converter {
271
  */
272
  private function setup_options() {
273
 
274
- // Get starting point
275
- $this->step = (int) get_option( '_bbp_converter_step', 1 );
276
- $this->min = (int) get_option( '_bbp_converter_start', 0 );
277
-
278
- // Number of rows
279
- $this->rows = ! empty( $_POST['_bbp_converter_rows'] )
280
- ? (int) $_POST['_bbp_converter_rows']
281
- : 100;
282
 
283
  // Get boundaries
284
  $this->max = ( $this->min + $this->rows ) - 1;
285
  $this->start = $this->min;
286
 
287
  // Look for platform
288
- $platform = ! empty( $_POST['_bbp_converter_platform' ] )
289
- ? sanitize_text_field( $_POST['_bbp_converter_platform' ] )
290
- : get_option( '_bbp_converter_platform' );
291
 
292
  // Maybe include the appropriate converter.
293
  if ( ! empty( $platform ) ) {
@@ -353,293 +358,441 @@ class BBP_Converter {
353
 
354
  switch ( $this->step ) {
355
 
356
- // STEP 1. Clean all tables.
357
  case 1 :
358
- if ( ! empty( $_POST['_bbp_converter_clean'] ) ) {
359
- if ( $this->converter->clean( $this->start ) ) {
360
- $this->sync_table( true );
361
- $this->bump_step();
362
-
363
- if ( empty( $this->start ) ) {
364
- $this->converter_output( esc_html__( 'Recreating sync-table', 'bbpress' ) );
365
- }
366
- } else {
367
- $this->converter_output( sprintf( esc_html__( 'Deleting previously converted data (%1$s - %2$s)', 'bbpress' ), $this->min, $this->max ) );
368
- $this->bump_start();
369
- }
370
- } else {
371
- $this->converter_output( esc_html__( 'Skipping sync-table clean-up', 'bbpress' ) );
372
- $this->sync_table( false );
373
- $this->bump_step();
374
- }
375
-
376
  break;
377
 
378
- // STEP 2. Convert users.
379
  case 2 :
380
- if ( true === $this->converter->convert_users ) {
381
- if ( $this->converter->convert_users( $this->start ) ) {
382
- $this->bump_step();
383
-
384
- if ( empty( $this->start ) ) {
385
- $this->converter_output( esc_html__( 'No users to import', 'bbpress' ) );
386
- }
387
- } else {
388
- $this->bump_start();
389
- $this->converter_output( sprintf( esc_html__( 'Converting users (%1$s - %2$s)', 'bbpress' ), $this->min, $this->max ) );
390
- }
391
- } else {
392
- $this->bump_step();
393
- $this->converter_output( esc_html__( 'Skipping user clean-up', 'bbpress' ) );
394
- }
395
-
396
  break;
397
 
398
- // STEP 3. Clean passwords.
399
  case 3 :
400
- if ( true === $this->converter->convert_users ) {
401
- if ( $this->converter->clean_passwords( $this->start ) ) {
402
- $this->bump_step();
403
-
404
- if ( empty( $this->start ) ) {
405
- $this->converter_output( esc_html__( 'No passwords to clear', 'bbpress' ) );
406
- }
407
- } else {
408
- $this->bump_start();
409
- $this->converter_output( sprintf( esc_html__( 'Delete users WordPress default passwords (%1$s - %2$s)', 'bbpress' ), $this->min, $this->max ) );
410
- }
411
- } else {
412
- $this->bump_step();
413
- $this->converter_output( esc_html__( 'Skipping password clean-up', 'bbpress' ) );
414
- }
415
-
416
  break;
417
 
418
- // STEP 4. Convert forums.
419
  case 4 :
420
- if ( $this->converter->convert_forums( $this->start ) ) {
421
- $this->bump_step();
422
-
423
- if ( empty( $this->start ) ) {
424
- $this->converter_output( esc_html__( 'No forums to import', 'bbpress' ) );
425
- }
426
- } else {
427
- $this->bump_start();
428
- $this->converter_output( sprintf( esc_html__( 'Converting forums (%1$s - %2$s)', 'bbpress' ), $this->min, $this->max ) );
429
- }
430
-
431
  break;
432
 
433
- // STEP 5. Convert forum parents.
434
  case 5 :
435
- if ( $this->converter->convert_forum_parents( $this->start ) ) {
436
- $this->bump_step();
437
-
438
- if ( empty( $this->start ) ) {
439
- $this->converter_output( esc_html__( 'No forum parents to import', 'bbpress' ) );
440
- }
441
- } else {
442
- $this->bump_start();
443
- $this->converter_output( sprintf( esc_html__( 'Calculating forum hierarchy (%1$s - %2$s)', 'bbpress' ), $this->min, $this->max ) );
444
- }
445
-
446
  break;
447
 
448
- // STEP 6. Convert forum subscriptions.
449
  case 6 :
450
- if ( $this->converter->convert_forum_subscriptions( $this->start ) ) {
451
- $this->bump_step();
452
-
453
- if ( empty( $this->start ) ) {
454
- $this->converter_output( esc_html__( 'No forum subscriptions to import', 'bbpress' ) );
455
- }
456
- } else {
457
- $this->bump_start();
458
- $this->converter_output( sprintf( esc_html__( 'Converting forum subscriptions (%1$s - %2$s)', 'bbpress' ), $this->min, $this->max ) );
459
- }
460
-
461
  break;
462
 
463
- // STEP 7. Convert topics.
464
  case 7 :
465
- if ( $this->converter->convert_topics( $this->start ) ) {
466
- $this->bump_step();
467
-
468
- if ( empty( $this->start ) ) {
469
- $this->converter_output( esc_html__( 'No topics to import', 'bbpress' ) );
470
- }
471
- } else {
472
- $this->bump_start();
473
- $this->converter_output( sprintf( esc_html__( 'Converting topics (%1$s - %2$s)', 'bbpress' ), $this->min, $this->max ) );
474
- }
475
-
476
  break;
477
 
478
- // STEP 8. Convert anonymous topic authors.
479
  case 8 :
480
- if ( $this->converter->convert_anonymous_topic_authors( $this->start ) ) {
481
- $this->bump_step();
482
-
483
- if ( empty( $this->start ) ) {
484
- $this->converter_output( esc_html__( 'No anonymous topic authors to import', 'bbpress' ) );
485
- }
486
- } else {
487
- $this->bump_start();
488
- $this->converter_output( sprintf( esc_html__( 'Converting anonymous topic authors (%1$s - %2$s)', 'bbpress' ), $this->min, $this->max ) );
489
- }
490
-
491
  break;
492
 
493
- // STEP 9. Stick topics.
494
  case 9 :
495
- if ( $this->converter->convert_topic_stickies( $this->start ) ) {
496
- $this->bump_step();
497
-
498
- if ( empty( $this->start ) ) {
499
- $this->converter_output( esc_html__( 'No stickies to stick', 'bbpress' ) );
500
- }
501
- } else {
502
- $this->bump_start();
503
- $this->converter_output( sprintf( esc_html__( 'Calculating topic stickies (%1$s - %2$s)', 'bbpress' ), $this->min, $this->max ) );
504
- }
505
-
506
  break;
507
 
508
- // STEP 10. Stick to front topics (Super Sicky).
509
  case 10 :
510
- if ( $this->converter->convert_topic_super_stickies( $this->start ) ) {
511
- $this->bump_step();
512
-
513
- if ( empty( $this->start ) ) {
514
- $this->converter_output( esc_html__( 'No super stickies to stick', 'bbpress' ) );
515
- }
516
- } else {
517
- $this->bump_start();
518
- $this->converter_output( sprintf( esc_html__( 'Calculating topic super stickies (%1$s - %2$s)', 'bbpress' ), $this->min, $this->max ) );
519
- }
520
-
521
  break;
522
 
523
- // STEP 11. Closed topics.
524
  case 11 :
525
- if ( $this->converter->convert_topic_closed_topics( $this->start ) ) {
526
- $this->bump_step();
527
-
528
- if ( empty( $this->start ) ) {
529
- $this->converter_output( esc_html__( 'No closed topics to close', 'bbpress' ) );
530
- }
531
- } else {
532
- $this->bump_start();
533
- $this->converter_output( sprintf( esc_html__( 'Calculating closed topics (%1$s - %2$s)', 'bbpress' ), $this->min, $this->max ) );
534
- }
535
-
536
  break;
537
 
538
- // STEP 12. Convert topic tags.
539
  case 12 :
540
- if ( $this->converter->convert_tags( $this->start ) ) {
541
- $this->bump_step();
542
-
543
- if ( empty( $this->start ) ) {
544
- $this->converter_output( esc_html__( 'No topic tags to import', 'bbpress' ) );
545
- }
546
- } else {
547
- $this->bump_start();
548
- $this->converter_output( sprintf( esc_html__( 'Converting topic tags (%1$s - %2$s)', 'bbpress' ), $this->min, $this->max ) );
549
- }
550
-
551
  break;
552
 
553
- // STEP 13. Convert topic subscriptions.
554
  case 13 :
555
- if ( $this->converter->convert_topic_subscriptions( $this->start ) ) {
556
- $this->bump_step();
557
-
558
- if ( empty( $this->start ) ) {
559
- $this->converter_output( esc_html__( 'No topic subscriptions to import', 'bbpress' ) );
560
- }
561
- } else {
562
- $this->bump_start();
563
- $this->converter_output( sprintf( esc_html__( 'Converting topic subscriptions (%1$s - %2$s)', 'bbpress' ), $this->min, $this->max ) );
564
- }
565
-
566
  break;
567
 
568
- // STEP 14. Convert topic favorites.
569
  case 14 :
570
- if ( $this->converter->convert_favorites( $this->start ) ) {
571
- $this->bump_step();
572
-
573
- if ( empty( $this->start ) ) {
574
- $this->converter_output( esc_html__( 'No favorites to import', 'bbpress' ) );
575
- }
576
- } else {
577
- $this->bump_start();
578
- $this->converter_output( sprintf( esc_html__( 'Converting favorites (%1$s - %2$s)', 'bbpress' ), $this->min, $this->max ) );
579
- }
580
-
581
  break;
582
 
583
- // STEP 15. Convert replies.
584
  case 15 :
585
- if ( $this->converter->convert_replies( $this->start ) ) {
586
- $this->bump_step();
587
-
588
- if ( empty( $this->start ) ) {
589
- $this->converter_output( esc_html__( 'No replies to import', 'bbpress' ) );
590
- }
591
- } else {
592
- $this->bump_start();
593
- $this->converter_output( sprintf( esc_html__( 'Converting replies (%1$s - %2$s)', 'bbpress' ), $this->min, $this->max ) );
594
- }
595
-
596
  break;
597
 
598
- // STEP 16. Convert anonymous reply authors.
599
  case 16 :
600
- if ( $this->converter->convert_anonymous_reply_authors( $this->start ) ) {
601
- $this->bump_step();
602
-
603
- if ( empty( $this->start ) ) {
604
- $this->converter_output( esc_html__( 'No anonymous reply authors to import', 'bbpress' ) );
605
- }
606
- } else {
607
- $this->bump_start();
608
- $this->converter_output( sprintf( esc_html__( 'Converting anonymous reply authors (%1$s - %2$s)', 'bbpress' ), $this->min, $this->max ) );
609
- }
610
-
611
  break;
612
 
613
- // STEP 17. Convert threaded replies parents.
614
  case 17 :
615
- if ( $this->converter->convert_reply_to_parents( $this->start ) ) {
616
- $this->bump_step();
617
-
618
- if ( empty( $this->start ) ) {
619
- $this->converter_output( esc_html__( 'No threaded replies to import', 'bbpress' ) );
620
- }
621
- } else {
622
- $this->bump_start();
623
- $this->converter_output( sprintf( esc_html__( 'Calculating threaded replies parents (%1$s - %2$s)', 'bbpress' ), $this->min, $this->max ) );
624
- }
625
-
626
  break;
627
 
628
  // Done
629
  default :
630
- $this->reset();
631
- $this->converter_output( esc_html__( 'Import Finished', 'bbpress' ) );
632
-
633
  break;
634
  }
635
  }
636
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
637
  /**
638
  * Create Tables for fast syncing
639
  *
640
  * @since 2.1.0 bbPress (r3813)
641
  */
642
- public function sync_table( $drop = false ) {
643
 
644
  // Setup DB
645
  $bbp_db = bbp_db();
42
  */
43
  public $converter = null;
44
 
45
+ /**
46
+ * @var int Maximum number of converter steps
47
+ */
48
+ public $max_steps = 17;
49
+
50
  /**
51
  * The main bbPress Converter loader
52
  *
71
  // Attach to the admin head with our ajax requests cycle and css
72
  add_action( 'admin_head-tools_page_bbp-converter', array( $this, 'admin_head' ) );
73
 
 
 
 
74
  // Attach to the admin ajax request to process cycles
75
  add_action( 'wp_ajax_bbp_converter_process', array( $this, 'process_callback' ) );
76
  }
77
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
78
  /**
79
  * Admin scripts
80
  *
92
  // Enqueue scripts
93
  wp_enqueue_script( 'postbox' );
94
  wp_enqueue_script( 'dashboard' );
95
+ wp_enqueue_script( 'bbp-converter', $bbp->admin->js_url . 'converter' . $suffix . '.js', array( 'jquery', 'postbox' ), $bbp->version );
96
 
97
  // Localize JS
98
  wp_localize_script( 'bbp-converter', 'BBP_Converter', array(
100
  // Vars
101
  'ajax_nonce' => wp_create_nonce( 'bbp_converter_process' ),
102
  'halt' => (bool) defined( 'WP_DEBUG_DISPLAY' ) && WP_DEBUG_DISPLAY,
103
+ 'started' => (bool) get_option( '_bbp_converter_step', false ),
104
+ 'delay' => (int) get_option( '_bbp_converter_delay_time', 1 ),
105
  'running' => false,
106
  'complete' => false,
107
+ 'timer' => false,
108
 
109
  // Strings
110
  'strings' => array(
123
  'import_stopped_user' => esc_html__( 'Import Stopped (by User)', 'bbpress' ),
124
  'import_error_db' => esc_html__( 'Database Connection Failed', 'bbpress' ),
125
  'import_error_halt' => esc_html__( 'Import Halted (Error)', 'bbpress' ),
126
+
127
+ // Timer
128
+ 'timer_stopped' => esc_html__( 'Timer: Stopped', 'bbpress' ),
129
+ 'timer_waiting' => esc_html__( 'Timer: Waiting...', 'bbpress' ),
130
+ 'timer_counting' => esc_html__( 'Timer: %s', 'bbpress' )
131
  )
132
  ) );
133
  }
198
 
199
  // Save step and count so that it can be restarted.
200
  if ( ! get_option( '_bbp_converter_step' ) || ! empty( $_POST['_bbp_converter_restart'] ) ) {
201
+ $this->maybe_update_options();
202
+ $this->step = 1;
 
 
203
  $this->start = 0;
204
  }
205
  }
206
 
207
+ private function maybe_update_options() {
208
+
209
+ // Get the default options & values
210
+ $defaults = bbp_get_default_options();
211
+
212
+ // Default options
213
+ $options = array(
214
+
215
+ // Step & Start
216
+ '_bbp_converter_step' => 1,
217
+ '_bbp_converter_start' => 0,
218
+
219
+ // Rows
220
+ '_bbp_converter_rows' => ! empty( $_POST['_bbp_converter_rows'] )
221
+ ? (int) $_POST['_bbp_converter_rows']
222
+ : 0,
223
+
224
+ // Platform
225
+ '_bbp_converter_platform' => ! empty( $_POST['_bbp_converter_platform' ] )
226
+ ? sanitize_text_field( $_POST['_bbp_converter_platform' ] )
227
+ : '',
228
+
229
+ // Convert Users
230
+ '_bbp_converter_convert_users' => ! empty( $_POST['_bbp_converter_convert_users'] )
231
+ ? (bool) $_POST['_bbp_converter_convert_users']
232
+ : false,
233
+
234
+ // DB User
235
+ '_bbp_converter_db_user' => ! empty( $_POST['_bbp_converter_db_user'] )
236
+ ? sanitize_text_field( $_POST['_bbp_converter_db_user'] )
237
+ : '',
238
+
239
+ // DB Password
240
+ '_bbp_converter_db_pass' => ! empty( $_POST['_bbp_converter_db_pass'] )
241
+ ? sanitize_text_field( $_POST['_bbp_converter_db_pass'] )
242
+ : '',
243
+
244
+ // DB Name
245
+ '_bbp_converter_db_name' => ! empty( $_POST['_bbp_converter_db_name'] )
246
+ ? sanitize_text_field( $_POST['_bbp_converter_db_name'] )
247
+ : '',
248
+
249
+ // DB Server
250
+ '_bbp_converter_db_server' => ! empty( $_POST['_bbp_converter_db_server'] )
251
+ ? sanitize_text_field( $_POST['_bbp_converter_db_server'] )
252
+ : '',
253
+
254
+ // DB Port
255
+ '_bbp_converter_db_port' => ! empty( $_POST['_bbp_converter_db_port'] )
256
+ ? (int) sanitize_text_field( $_POST['_bbp_converter_db_port'] )
257
+ : '',
258
+
259
+ // DB Table Prefix
260
+ '_bbp_converter_db_prefix' => ! empty( $_POST['_bbp_converter_db_prefix'] )
261
+ ? sanitize_text_field( $_POST['_bbp_converter_db_prefix'] )
262
+ : ''
263
+ );
264
+
265
+ // Update/delete options
266
+ foreach ( $options as $key => $value ) {
267
+
268
+ // Default
269
+ $default = $defaults[ $key ];
270
+
271
+ // Update or save
272
+ ! empty( $value ) && ( $default !== $value )
273
+ ? update_option( $key, $value )
274
+ : delete_option( $key );
275
+ }
276
+ }
277
+
278
  /**
279
  * Setup converter options
280
  *
282
  */
283
  private function setup_options() {
284
 
285
+ // Get starting point & rows
286
+ $this->step = (int) get_option( '_bbp_converter_step', 1 );
287
+ $this->min = (int) get_option( '_bbp_converter_start', 0 );
288
+ $this->rows = (int) get_option( '_bbp_converter_rows', 100 );
 
 
 
 
289
 
290
  // Get boundaries
291
  $this->max = ( $this->min + $this->rows ) - 1;
292
  $this->start = $this->min;
293
 
294
  // Look for platform
295
+ $platform = get_option( '_bbp_converter_platform' );
 
 
296
 
297
  // Maybe include the appropriate converter.
298
  if ( ! empty( $platform ) ) {
358
 
359
  switch ( $this->step ) {
360
 
361
+ // Clean all tables.
362
  case 1 :
363
+ $this->step_sync_table();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
364
  break;
365
 
366
+ // Convert users.
367
  case 2 :
368
+ $this->step_users();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
369
  break;
370
 
371
+ // Clean passwords.
372
  case 3 :
373
+ $this->step_passwords();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
374
  break;
375
 
376
+ // Convert forums.
377
  case 4 :
378
+ $this->step_forums();
 
 
 
 
 
 
 
 
 
 
379
  break;
380
 
381
+ // Convert forum parents.
382
  case 5 :
383
+ $this->step_forum_hierarchy();
 
 
 
 
 
 
 
 
 
 
384
  break;
385
 
386
+ // Convert forum subscriptions.
387
  case 6 :
388
+ $this->step_forum_subscriptions();
 
 
 
 
 
 
 
 
 
 
389
  break;
390
 
391
+ // Convert topics.
392
  case 7 :
393
+ $this->step_topics();
 
 
 
 
 
 
 
 
 
 
394
  break;
395
 
396
+ // Convert topic authors.
397
  case 8 :
398
+ $this->step_topics_authors();
 
 
 
 
 
 
 
 
 
 
399
  break;
400
 
401
+ // Sticky topics.
402
  case 9 :
403
+ $this->step_stickies();
 
 
 
 
 
 
 
 
 
 
404
  break;
405
 
406
+ // Stick to front topics (Super Sicky).
407
  case 10 :
408
+ $this->step_super_stickies();
 
 
 
 
 
 
 
 
 
 
409
  break;
410
 
411
+ // Closed topics.
412
  case 11 :
413
+ $this->step_closed_topics();
 
 
 
 
 
 
 
 
 
 
414
  break;
415
 
416
+ // Convert topic tags.
417
  case 12 :
418
+ $this->step_topic_tags();
 
 
 
 
 
 
 
 
 
 
419
  break;
420
 
421
+ // Convert topic subscriptions.
422
  case 13 :
423
+ $this->step_topic_subscriptions();
 
 
 
 
 
 
 
 
 
 
424
  break;
425
 
426
+ // Convert topic favorites.
427
  case 14 :
428
+ $this->step_topic_favorites();
 
 
 
 
 
 
 
 
 
 
429
  break;
430
 
431
+ // Convert replies.
432
  case 15 :
433
+ $this->step_replies();
 
 
 
 
 
 
 
 
 
 
434
  break;
435
 
436
+ // Convert reply authors.
437
  case 16 :
438
+ $this->step_reply_authors();
 
 
 
 
 
 
 
 
 
 
439
  break;
440
 
441
+ // Convert threaded reply hierarchy.
442
  case 17 :
443
+ $this->step_reply_hierarchy();
 
 
 
 
 
 
 
 
 
 
444
  break;
445
 
446
  // Done
447
  default :
448
+ $this->step_done();
 
 
449
  break;
450
  }
451
  }
452
 
453
+ /** Steps *****************************************************************/
454
+
455
+ /**
456
+ * Clean the sync table
457
+ *
458
+ * @since 2.6.0 bbPress (r6513)
459
+ */
460
+ private function step_sync_table() {
461
+ if ( ! empty( $_POST['_bbp_converter_clean'] ) ) {
462
+ if ( $this->converter->clean( $this->start ) ) {
463
+ $this->sync_table( true );
464
+ $this->bump_step();
465
+
466
+ if ( empty( $this->start ) ) {
467
+ $this->converter_output( esc_html__( 'Recreating sync-table', 'bbpress' ) );
468
+ }
469
+ } else {
470
+ $this->converter_output( sprintf( esc_html__( 'Deleting previously converted data (%1$s - %2$s)', 'bbpress' ), $this->min, $this->max ) );
471
+ $this->bump_start();
472
+ }
473
+ } else {
474
+ $this->converter_output( esc_html__( 'Skipping sync-table clean-up', 'bbpress' ) );
475
+ $this->sync_table( false );
476
+ $this->bump_step();
477
+ }
478
+ }
479
+
480
+ /**
481
+ * Maybe convert users
482
+ *
483
+ * @since 2.6.0 bbPress (r6513)
484
+ */
485
+ private function step_users() {
486
+ if ( true === $this->converter->convert_users ) {
487
+ if ( $this->converter->convert_users( $this->start ) ) {
488
+ $this->bump_step();
489
+
490
+ if ( empty( $this->start ) ) {
491
+ $this->converter_output( esc_html__( 'No users to import', 'bbpress' ) );
492
+ }
493
+ } else {
494
+ $this->bump_start();
495
+ $this->converter_output( sprintf( esc_html__( 'Converting users (%1$s - %2$s)', 'bbpress' ), $this->min, $this->max ) );
496
+ }
497
+ } else {
498
+ $this->bump_step();
499
+ $this->converter_output( esc_html__( 'Skipping user clean-up', 'bbpress' ) );
500
+ }
501
+ }
502
+
503
+ /**
504
+ * Maybe clean up passwords
505
+ *
506
+ * @since 2.6.0 bbPress (r6513)
507
+ */
508
+ private function step_passwords() {
509
+ if ( true === $this->converter->convert_users ) {
510
+ if ( $this->converter->clean_passwords( $this->start ) ) {
511
+ $this->bump_step();
512
+
513
+ if ( empty( $this->start ) ) {
514
+ $this->converter_output( esc_html__( 'No passwords to clear', 'bbpress' ) );
515
+ }
516
+ } else {
517
+ $this->bump_start();
518
+ $this->converter_output( sprintf( esc_html__( 'Delete users WordPress default passwords (%1$s - %2$s)', 'bbpress' ), $this->min, $this->max ) );
519
+ }
520
+ } else {
521
+ $this->bump_step();
522
+ $this->converter_output( esc_html__( 'Skipping password clean-up', 'bbpress' ) );
523
+ }
524
+ }
525
+
526
+ /**
527
+ * Maybe convert forums
528
+ *
529
+ * @since 2.6.0 bbPress (r6513)
530
+ */
531
+ private function step_forums() {
532
+ if ( $this->converter->convert_forums( $this->start ) ) {
533
+ $this->bump_step();
534
+
535
+ if ( empty( $this->start ) ) {
536
+ $this->converter_output( esc_html__( 'No forums to import', 'bbpress' ) );
537
+ }
538
+ } else {
539
+ $this->bump_start();
540
+ $this->converter_output( sprintf( esc_html__( 'Converting forums (%1$s - %2$s)', 'bbpress' ), $this->min, $this->max ) );
541
+ }
542
+ }
543
+
544
+ /**
545
+ * Maybe walk the forum hierarchy
546
+ *
547
+ * @since 2.6.0 bbPress (r6513)
548
+ */
549
+ private function step_forum_hierarchy() {
550
+ if ( $this->converter->convert_forum_parents( $this->start ) ) {
551
+ $this->bump_step();
552
+
553
+ if ( empty( $this->start ) ) {
554
+ $this->converter_output( esc_html__( 'No forum parents to import', 'bbpress' ) );
555
+ }
556
+ } else {
557
+ $this->bump_start();
558
+ $this->converter_output( sprintf( esc_html__( 'Calculating forum hierarchy (%1$s - %2$s)', 'bbpress' ), $this->min, $this->max ) );
559
+ }
560
+ }
561
+
562
+ /**
563
+ * Maybe convert forum subscriptions
564
+ *
565
+ * @since 2.6.0 bbPress (r6513)
566
+ */
567
+ private function step_forum_subscriptions() {
568
+ if ( $this->converter->convert_forum_subscriptions( $this->start ) ) {
569
+ $this->bump_step();
570
+
571
+ if ( empty( $this->start ) ) {
572
+ $this->converter_output( esc_html__( 'No forum subscriptions to import', 'bbpress' ) );
573
+ }
574
+ } else {
575
+ $this->bump_start();
576
+ $this->converter_output( sprintf( esc_html__( 'Converting forum subscriptions (%1$s - %2$s)', 'bbpress' ), $this->min, $this->max ) );
577
+ }
578
+ }
579
+
580
+ /**
581
+ * Maybe convert topics
582
+ *
583
+ * @since 2.6.0 bbPress (r6513)
584
+ */
585
+ private function step_topics() {
586
+ if ( $this->converter->convert_topics( $this->start ) ) {
587
+ $this->bump_step();
588
+
589
+ if ( empty( $this->start ) ) {
590
+ $this->converter_output( esc_html__( 'No topics to import', 'bbpress' ) );
591
+ }
592
+ } else {
593
+ $this->bump_start();
594
+ $this->converter_output( sprintf( esc_html__( 'Converting topics (%1$s - %2$s)', 'bbpress' ), $this->min, $this->max ) );
595
+ }
596
+ }
597
+
598
+ /**
599
+ * Maybe convert topic authors (anonymous)
600
+ *
601
+ * @since 2.6.0 bbPress (r6513)
602
+ */
603
+ private function step_topics_authors() {
604
+ if ( $this->converter->convert_anonymous_topic_authors( $this->start ) ) {
605
+ $this->bump_step();
606
+
607
+ if ( empty( $this->start ) ) {
608
+ $this->converter_output( esc_html__( 'No anonymous topic authors to import', 'bbpress' ) );
609
+ }
610
+ } else {
611
+ $this->bump_start();
612
+ $this->converter_output( sprintf( esc_html__( 'Converting anonymous topic authors (%1$s - %2$s)', 'bbpress' ), $this->min, $this->max ) );
613
+ }
614
+ }
615
+
616
+ /**
617
+ * Maybe convert sticky topics (not super stickies)
618
+ *
619
+ * @since 2.6.0 bbPress (r6513)
620
+ */
621
+ private function step_stickies() {
622
+ if ( $this->converter->convert_topic_stickies( $this->start ) ) {
623
+ $this->bump_step();
624
+
625
+ if ( empty( $this->start ) ) {
626
+ $this->converter_output( esc_html__( 'No stickies to stick', 'bbpress' ) );
627
+ }
628
+ } else {
629
+ $this->bump_start();
630
+ $this->converter_output( sprintf( esc_html__( 'Calculating topic stickies (%1$s - %2$s)', 'bbpress' ), $this->min, $this->max ) );
631
+ }
632
+ }
633
+
634
+ /**
635
+ * Maybe convert super-sticky topics (not per-forum)
636
+ *
637
+ * @since 2.6.0 bbPress (r6513)
638
+ */
639
+ private function step_super_stickies() {
640
+ if ( $this->converter->convert_topic_super_stickies( $this->start ) ) {
641
+ $this->bump_step();
642
+
643
+ if ( empty( $this->start ) ) {
644
+ $this->converter_output( esc_html__( 'No super stickies to stick', 'bbpress' ) );
645
+ }
646
+ } else {
647
+ $this->bump_start();
648
+ $this->converter_output( sprintf( esc_html__( 'Calculating topic super stickies (%1$s - %2$s)', 'bbpress' ), $this->min, $this->max ) );
649
+ }
650
+ }
651
+
652
+ /**
653
+ * Maybe close converted topics
654
+ *
655
+ * @since 2.6.0 bbPress (r6513)
656
+ */
657
+ private function step_closed_topics() {
658
+ if ( $this->converter->convert_topic_closed_topics( $this->start ) ) {
659
+ $this->bump_step();
660
+
661
+ if ( empty( $this->start ) ) {
662
+ $this->converter_output( esc_html__( 'No closed topics to close', 'bbpress' ) );
663
+ }
664
+ } else {
665
+ $this->bump_start();
666
+ $this->converter_output( sprintf( esc_html__( 'Calculating closed topics (%1$s - %2$s)', 'bbpress' ), $this->min, $this->max ) );
667
+ }
668
+ }
669
+
670
+ /**
671
+ * Maybe convert topic tags
672
+ *
673
+ * @since 2.6.0 bbPress (r6513)
674
+ */
675
+ private function step_topic_tags() {
676
+ if ( $this->converter->convert_tags( $this->start ) ) {
677
+ $this->bump_step();
678
+
679
+ if ( empty( $this->start ) ) {
680
+ $this->converter_output( esc_html__( 'No topic tags to import', 'bbpress' ) );
681
+ }
682
+ } else {
683
+ $this->bump_start();
684
+ $this->converter_output( sprintf( esc_html__( 'Converting topic tags (%1$s - %2$s)', 'bbpress' ), $this->min, $this->max ) );
685
+ }
686
+ }
687
+
688
+ /**
689
+ * Maybe convert topic subscriptions
690
+ *
691
+ * @since 2.6.0 bbPress (r6513)
692
+ */
693
+ private function step_topic_subscriptions() {
694
+ if ( $this->converter->convert_topic_subscriptions( $this->start ) ) {
695
+ $this->bump_step();
696
+
697
+ if ( empty( $this->start ) ) {
698
+ $this->converter_output( esc_html__( 'No topic subscriptions to import', 'bbpress' ) );
699
+ }
700
+ } else {
701
+ $this->bump_start();
702
+ $this->converter_output( sprintf( esc_html__( 'Converting topic subscriptions (%1$s - %2$s)', 'bbpress' ), $this->min, $this->max ) );
703
+ }
704
+ }
705
+
706
+ /**
707
+ * Maybe convert topic favorites
708
+ *
709
+ * @since 2.6.0 bbPress (r6513)
710
+ */
711
+ private function step_topic_favorites() {
712
+ if ( $this->converter->convert_favorites( $this->start ) ) {
713
+ $this->bump_step();
714
+
715
+ if ( empty( $this->start ) ) {
716
+ $this->converter_output( esc_html__( 'No favorites to import', 'bbpress' ) );
717
+ }
718
+ } else {
719
+ $this->bump_start();
720
+ $this->converter_output( sprintf( esc_html__( 'Converting favorites (%1$s - %2$s)', 'bbpress' ), $this->min, $this->max ) );
721
+ }
722
+ }
723
+
724
+ /**
725
+ * Maybe convert replies
726
+ *
727
+ * @since 2.6.0 bbPress (r6513)
728
+ */
729
+ private function step_replies() {
730
+ if ( $this->converter->convert_replies( $this->start ) ) {
731
+ $this->bump_step();
732
+
733
+ if ( empty( $this->start ) ) {
734
+ $this->converter_output( esc_html__( 'No replies to import', 'bbpress' ) );
735
+ }
736
+ } else {
737
+ $this->bump_start();
738
+ $this->converter_output( sprintf( esc_html__( 'Converting replies (%1$s - %2$s)', 'bbpress' ), $this->min, $this->max ) );
739
+ }
740
+ }
741
+
742
+ /**
743
+ * Maybe convert reply authors (anonymous)
744
+ *
745
+ * @since 2.6.0 bbPress (r6513)
746
+ */
747
+ private function step_reply_authors() {
748
+ if ( $this->converter->convert_anonymous_reply_authors( $this->start ) ) {
749
+ $this->bump_step();
750
+
751
+ if ( empty( $this->start ) ) {
752
+ $this->converter_output( esc_html__( 'No anonymous reply authors to import', 'bbpress' ) );
753
+ }
754
+ } else {
755
+ $this->bump_start();
756
+ $this->converter_output( sprintf( esc_html__( 'Converting anonymous reply authors (%1$s - %2$s)', 'bbpress' ), $this->min, $this->max ) );
757
+ }
758
+ }
759
+
760
+ /**
761
+ * Maybe convert the threaded reply hierarchy
762
+ *
763
+ * @since 2.6.0 bbPress (r6513)
764
+ */
765
+ private function step_reply_hierarchy() {
766
+ if ( $this->converter->convert_reply_to_parents( $this->start ) ) {
767
+ $this->bump_step();
768
+
769
+ if ( empty( $this->start ) ) {
770
+ $this->converter_output( esc_html__( 'No threaded replies to import', 'bbpress' ) );
771
+ }
772
+ } else {
773
+ $this->bump_start();
774
+ $this->converter_output( sprintf( esc_html__( 'Calculating threaded replies parents (%1$s - %2$s)', 'bbpress' ), $this->min, $this->max ) );
775
+ }
776
+ }
777
+
778
+ /**
779
+ * Done!
780
+ *
781
+ * @since 2.6.0 bbPress (r6513)
782
+ */
783
+ private function step_done() {
784
+ $this->reset();
785
+ $this->converter_output( esc_html__( 'Import Finished', 'bbpress' ) );
786
+ }
787
+
788
+ /** Helper Table **********************************************************/
789
+
790
  /**
791
  * Create Tables for fast syncing
792
  *
793
  * @since 2.1.0 bbPress (r3813)
794
  */
795
+ public static function sync_table( $drop = false ) {
796
 
797
  // Setup DB
798
  $bbp_db = bbp_db();
includes/admin/settings.php CHANGED
@@ -23,6 +23,8 @@ function bbp_admin_get_settings_sections() {
23
 
24
  // Filter & return
25
  return (array) apply_filters( 'bbp_admin_get_settings_sections', array(
 
 
26
  'bbp_settings_users' => array(
27
  'title' => esc_html__( 'Forum User Settings', 'bbpress' ),
28
  'callback' => 'bbp_admin_setting_callback_user_section',
@@ -63,6 +65,8 @@ function bbp_admin_get_settings_sections() {
63
  'callback' => 'bbp_admin_setting_callback_user_slug_section',
64
  'page' => 'permalink',
65
  ),
 
 
66
  'bbp_settings_buddypress' => array(
67
  'title' => esc_html__( 'Forum Integration for BuddyPress', 'bbpress' ),
68
  'callback' => 'bbp_admin_setting_callback_buddypress_section',
@@ -72,6 +76,18 @@ function bbp_admin_get_settings_sections() {
72
  'title' => esc_html__( 'Forum Integration for Akismet', 'bbpress' ),
73
  'callback' => 'bbp_admin_setting_callback_akismet_section',
74
  'page' => 'discussion'
 
 
 
 
 
 
 
 
 
 
 
 
75
  )
76
  ) );
77
  }
@@ -456,6 +472,112 @@ function bbp_admin_get_settings_fields() {
456
  'sanitize_callback' => 'intval',
457
  'args' => array()
458
  )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
459
  )
460
  ) );
461
  }
@@ -1315,7 +1437,7 @@ function bbp_admin_setting_callback_buddypress_section() {
1315
  function bbp_admin_setting_callback_group_forums() {
1316
  ?>
1317
 
1318
- <input name="_bbp_enable_group_forums" id="_bbp_enable_group_forums" type="checkbox" value="1" <?php checked( bbp_is_group_forums_active( true ) ); bbp_maybe_admin_setting_disabled( '_bbp_enable_group_forums' ); ?> />
1319
  <label for="_bbp_enable_group_forums"><?php esc_html_e( 'Allow BuddyPress Groups to have their own forums', 'bbpress' ); ?></label>
1320
 
1321
  <?php
@@ -1401,7 +1523,7 @@ function bbp_admin_setting_callback_akismet_section() {
1401
  function bbp_admin_setting_callback_akismet() {
1402
  ?>
1403
 
1404
- <input name="_bbp_enable_akismet" id="_bbp_enable_akismet" type="checkbox" value="1" <?php checked( bbp_is_akismet_active( true ) ); bbp_maybe_admin_setting_disabled( '_bbp_enable_akismet' ); ?> />
1405
  <label for="_bbp_enable_akismet"><?php esc_html_e( 'Allow Akismet to actively prevent forum spam.', 'bbpress' ); ?></label>
1406
 
1407
  <?php
@@ -1463,12 +1585,13 @@ function bbp_converter_setting_callback_main_section() {
1463
  function bbp_converter_setting_callback_platform() {
1464
 
1465
  // Converters
 
1466
  $converters = bbp_get_converters();
1467
  $options = '';
1468
 
1469
  // Put options together
1470
  foreach ( $converters as $name => $file ) {
1471
- $options .= '<option value="' . esc_attr( $name ) . '">' . esc_html( $name ) . '</option>';
1472
  } ?>
1473
 
1474
  <select name="_bbp_converter_platform" id="_bbp_converter_platform"><?php echo $options ?></select>
@@ -1485,7 +1608,7 @@ function bbp_converter_setting_callback_platform() {
1485
  function bbp_converter_setting_callback_dbserver() {
1486
  ?>
1487
 
1488
- <input name="_bbp_converter_db_server" id="_bbp_converter_db_server" type="text" class="code" value="<?php bbp_form_option( '_bbp_converter_db_server', 'localhost' ); ?>" class="medium-text" />
1489
  <label for="_bbp_converter_db_server"><?php esc_html_e( 'Use default "localhost" if on the same server, otherwise IP or hostname', 'bbpress' ); ?></label>
1490
 
1491
  <?php
@@ -1499,7 +1622,7 @@ function bbp_converter_setting_callback_dbserver() {
1499
  function bbp_converter_setting_callback_dbport() {
1500
  ?>
1501
 
1502
- <input name="_bbp_converter_db_port" id="_bbp_converter_db_port" type="text" class="code" value="<?php bbp_form_option( '_bbp_converter_db_port', '3306' ); ?>" class="small-text" />
1503
  <label for="_bbp_converter_db_port"><?php esc_html_e( 'Use default "3306" if unsure', 'bbpress' ); ?></label>
1504
 
1505
  <?php
@@ -1513,7 +1636,7 @@ function bbp_converter_setting_callback_dbport() {
1513
  function bbp_converter_setting_callback_dbuser() {
1514
  ?>
1515
 
1516
- <input name="_bbp_converter_db_user" id="_bbp_converter_db_user" type="text" class="code" value="<?php bbp_form_option( '_bbp_converter_db_user' ); ?>" class="medium-text" />
1517
  <label for="_bbp_converter_db_user"><?php esc_html_e( 'User to acces the database', 'bbpress' ); ?></label>
1518
 
1519
  <?php
@@ -1527,7 +1650,7 @@ function bbp_converter_setting_callback_dbuser() {
1527
  function bbp_converter_setting_callback_dbpass() {
1528
  ?>
1529
 
1530
- <input name="_bbp_converter_db_pass" id="_bbp_converter_db_pass" type="password" class="code" value="<?php bbp_form_option( '_bbp_converter_db_pass' ); ?>" class="medium-text" autocomplete="off" />
1531
  <label for="_bbp_converter_db_pass"><?php esc_html_e( 'Password of the above database user', 'bbpress' ); ?></label>
1532
 
1533
  <?php
@@ -1541,7 +1664,7 @@ function bbp_converter_setting_callback_dbpass() {
1541
  function bbp_converter_setting_callback_dbname() {
1542
  ?>
1543
 
1544
- <input name="_bbp_converter_db_name" id="_bbp_converter_db_name" type="text" class="code" value="<?php bbp_form_option( '_bbp_converter_db_name' ); ?>" class="medium-text" />
1545
  <label for="_bbp_converter_db_name"><?php esc_html_e( 'Name of the database with your old forum data', 'bbpress' ); ?></label>
1546
 
1547
  <?php
@@ -1568,7 +1691,7 @@ function bbp_converter_setting_callback_options_section() {
1568
  function bbp_converter_setting_callback_dbprefix() {
1569
  ?>
1570
 
1571
- <input name="_bbp_converter_db_prefix" id="_bbp_converter_db_prefix" type="text" class="code" value="<?php bbp_form_option( '_bbp_converter_db_prefix' ); ?>" class="medium-text" />
1572
  <label for="_bbp_converter_db_prefix"><?php esc_html_e( '(If converting from BuddyPress Forums, use "wp_bb_" or your custom prefix)', 'bbpress' ); ?></label>
1573
 
1574
  <?php
@@ -1582,7 +1705,7 @@ function bbp_converter_setting_callback_dbprefix() {
1582
  function bbp_converter_setting_callback_rows() {
1583
  ?>
1584
 
1585
- <input name="_bbp_converter_rows" id="_bbp_converter_rows" type="number" min="1" max="5000" value="<?php bbp_form_option( '_bbp_converter_rows', '100' ); ?>" class="small-text" />
1586
  <label for="_bbp_converter_rows"><?php esc_html_e( 'rows to process at a time', 'bbpress' ); ?></label>
1587
  <p class="description"><?php esc_html_e( 'Keep this low if you experience out-of-memory issues.', 'bbpress' ); ?></p>
1588
 
@@ -1597,7 +1720,7 @@ function bbp_converter_setting_callback_rows() {
1597
  function bbp_converter_setting_callback_delay_time() {
1598
  ?>
1599
 
1600
- <input name="_bbp_converter_delay_time" id="_bbp_converter_delay_time" type="number" min="1" max="3600" value="<?php bbp_form_option( '_bbp_converter_delay_time', '1' ); ?>" class="small-text" />
1601
  <label for="_bbp_converter_delay_time"><?php esc_html_e( 'second(s) delay between each group of rows', 'bbpress' ); ?></label>
1602
  <p class="description"><?php esc_html_e( 'Keep this high to prevent too-many-connection issues.', 'bbpress' ); ?></p>
1603
 
@@ -1642,7 +1765,7 @@ function bbp_converter_setting_callback_clean() {
1642
  function bbp_converter_setting_callback_convert_users() {
1643
  ?>
1644
 
1645
- <input name="_bbp_converter_convert_users" id="_bbp_converter_convert_users" type="checkbox" value="1" <?php checked( get_option( '_bbp_converter_convert_users', false ) ); ?> />
1646
  <label for="_bbp_converter_convert_users"><?php esc_html_e( 'Attempt to import user accounts from previous forums', 'bbpress' ); ?></label>
1647
  <p class="description"><?php esc_html_e( 'Non-bbPress passwords cannot be automatically converted. They will be converted as each user logs in.', 'bbpress' ); ?></p>
1648
 
@@ -1654,14 +1777,16 @@ function bbp_converter_setting_callback_convert_users() {
1654
  /**
1655
  * The main settings page
1656
  *
 
 
1657
  * @uses settings_fields() To output the hidden fields for the form
1658
  * @uses do_settings_sections() To output the settings sections
1659
  */
1660
  function bbp_converter_settings_page() {
1661
 
1662
  // Status
1663
- $step = (int) get_option( '_bbp_converter_step', 0 );
1664
- $max = 17; // Filter?
1665
 
1666
  // Starting or continuing?
1667
  $start_text = ! empty( $step )
@@ -1678,11 +1803,15 @@ function bbp_converter_settings_page() {
1678
  <hr class="wp-header-end">
1679
  <h2 class="nav-tab-wrapper"><?php bbp_tools_admin_tabs( esc_html__( 'Import Forums', 'bbpress' ) ); ?></h2>
1680
 
1681
- <form action="#" method="post" id="bbp-converter-settings">
 
 
 
1682
 
1683
- <?php settings_fields( 'bbpress_converter' ); ?>
 
1684
 
1685
- <?php do_settings_sections( 'bbpress_converter' ); ?>
1686
 
1687
  <p class="submit">
1688
  <input type="button" name="submit" class="button-primary" id="bbp-converter-start" value="<?php echo esc_attr( $start_text ); ?>" />
@@ -1699,8 +1828,11 @@ function bbp_converter_settings_page() {
1699
  <span class="screen-reader-text"><?php esc_html_e( 'Toggle panel: Import Status', 'bbpress' ); ?></span>
1700
  <span class="toggle-indicator" aria-hidden="true"></span>
1701
  </button>
1702
- <h2 class="hndle ui-sortable-handle"><span><?php esc_html_e( 'Import Monitor', 'bbpress' ); ?></span></h2>
 
 
1703
  <div class="inside">
 
1704
  <div id="bbp-converter-message" class="bbp-converter-log">
1705
  <p><?php echo esc_html( $status_text ); ?></p>
1706
  </div>
23
 
24
  // Filter & return
25
  return (array) apply_filters( 'bbp_admin_get_settings_sections', array(
26
+
27
+ // Settings
28
  'bbp_settings_users' => array(
29
  'title' => esc_html__( 'Forum User Settings', 'bbpress' ),
30
  'callback' => 'bbp_admin_setting_callback_user_section',
65
  'callback' => 'bbp_admin_setting_callback_user_slug_section',
66
  'page' => 'permalink',
67
  ),
68
+
69
+ // Extend
70
  'bbp_settings_buddypress' => array(
71
  'title' => esc_html__( 'Forum Integration for BuddyPress', 'bbpress' ),
72
  'callback' => 'bbp_admin_setting_callback_buddypress_section',
76
  'title' => esc_html__( 'Forum Integration for Akismet', 'bbpress' ),
77
  'callback' => 'bbp_admin_setting_callback_akismet_section',
78
  'page' => 'discussion'
79
+ ),
80
+
81
+ // Converter
82
+ 'bbp_converter_connection' => array(
83
+ 'title' => esc_html__( 'Database Settings', 'bbpress' ),
84
+ 'callback' => 'bbp_converter_setting_callback_main_section',
85
+ 'page' => 'converter'
86
+ ),
87
+ 'bbp_converter_options' => array(
88
+ 'title' => esc_html__( 'Options', 'bbpress' ),
89
+ 'callback' => 'bbp_converter_setting_callback_options_section',
90
+ 'page' => 'converter'
91
  )
92
  ) );
93
  }
472
  'sanitize_callback' => 'intval',
473
  'args' => array()
474
  )
475
+ ),
476
+
477
+ /** Converter Page ****************************************************/
478
+
479
+ // Connection
480
+ 'bbp_converter_connection' => array(
481
+
482
+ // System Select
483
+ '_bbp_converter_platform' => array(
484
+ 'title' => esc_html__( 'Select Platform', 'bbpress' ),
485
+ 'callback' => 'bbp_converter_setting_callback_platform',
486
+ 'sanitize_callback' => 'sanitize_text_field',
487
+ 'args' => array()
488
+ ),
489
+
490
+ // Database Server
491
+ '_bbp_converter_db_server' => array(
492
+ 'title' => esc_html__( 'Database Server', 'bbpress' ),
493
+ 'callback' => 'bbp_converter_setting_callback_dbserver',
494
+ 'sanitize_callback' => 'sanitize_text_field',
495
+ 'args' => array()
496
+ ),
497
+
498
+ // Database Server Port
499
+ '_bbp_converter_db_port' => array(
500
+ 'title' => esc_html__( 'Database Port', 'bbpress' ),
501
+ 'callback' => 'bbp_converter_setting_callback_dbport',
502
+ 'sanitize_callback' => 'intval',
503
+ 'args' => array()
504
+ ),
505
+
506
+ // Database Name
507
+ '_bbp_converter_db_name' => array(
508
+ 'title' => esc_html__( 'Database Name', 'bbpress' ),
509
+ 'callback' => 'bbp_converter_setting_callback_dbname',
510
+ 'sanitize_callback' => 'sanitize_text_field',
511
+ 'args' => array()
512
+ ),
513
+
514
+ // Database User
515
+ '_bbp_converter_db_user' => array(
516
+ 'title' => esc_html__( 'Database User', 'bbpress' ),
517
+ 'callback' => 'bbp_converter_setting_callback_dbuser',
518
+ 'sanitize_callback' => 'sanitize_text_field',
519
+ 'args' => array()
520
+ ),
521
+
522
+ // Database User
523
+ '_bbp_converter_db_pass' => array(
524
+ 'title' => esc_html__( 'Database Password', 'bbpress' ),
525
+ 'callback' => 'bbp_converter_setting_callback_dbpass',
526
+ 'sanitize_callback' => 'sanitize_text_field',
527
+ 'args' => array()
528
+ ),
529
+
530
+ // Database User
531
+ '_bbp_converter_db_prefix' => array(
532
+ 'title' => esc_html__( 'Table Prefix', 'bbpress' ),
533
+ 'callback' => 'bbp_converter_setting_callback_dbprefix',
534
+ 'sanitize_callback' => 'sanitize_text_field',
535
+ 'args' => array()
536
+ )
537
+ ),
538
+
539
+ // Options
540
+ 'bbp_converter_options' => array(
541
+
542
+ // Rows Limit
543
+ '_bbp_converter_rows' => array(
544
+ 'title' => esc_html__( 'Rows Limit', 'bbpress' ),
545
+ 'callback' => 'bbp_converter_setting_callback_rows',
546
+ 'sanitize_callback' => 'intval',
547
+ 'args' => array()
548
+ ),
549
+
550
+ // Delay Time
551
+ '_bbp_converter_delay_time' => array(
552
+ 'title' => esc_html__( 'Delay Time', 'bbpress' ),
553
+ 'callback' => 'bbp_converter_setting_callback_delay_time',
554
+ 'sanitize_callback' => 'intval',
555
+ 'args' => array()
556
+ ),
557
+
558
+ // Convert Users
559
+ '_bbp_converter_convert_users' => array(
560
+ 'title' => esc_html__( 'Convert Users', 'bbpress' ),
561
+ 'callback' => 'bbp_converter_setting_callback_convert_users',
562
+ 'sanitize_callback' => 'intval',
563
+ 'args' => array()
564
+ ),
565
+
566
+ // Restart
567
+ '_bbp_converter_restart' => array(
568
+ 'title' => esc_html__( 'Start Over', 'bbpress' ),
569
+ 'callback' => 'bbp_converter_setting_callback_restart',
570
+ 'sanitize_callback' => 'intval',
571
+ 'args' => array()
572
+ ),
573
+
574
+ // Clean
575
+ '_bbp_converter_clean' => array(
576
+ 'title' => esc_html__( 'Purge Previous Import', 'bbpress' ),
577
+ 'callback' => 'bbp_converter_setting_callback_clean',
578
+ 'sanitize_callback' => 'intval',
579
+ 'args' => array()
580
+ )
581
  )
582
  ) );
583
  }
1437
  function bbp_admin_setting_callback_group_forums() {
1438
  ?>
1439
 
1440
+ <input name="_bbp_enable_group_forums" id="_bbp_enable_group_forums" type="checkbox" value="1" <?php checked( bbp_is_group_forums_active( true ) ); bbp_maybe_admin_setting_disabled( '_bbp_enable_group_forums' ); ?> />
1441
  <label for="_bbp_enable_group_forums"><?php esc_html_e( 'Allow BuddyPress Groups to have their own forums', 'bbpress' ); ?></label>
1442
 
1443
  <?php
1523
  function bbp_admin_setting_callback_akismet() {
1524
  ?>
1525
 
1526
+ <input name="_bbp_enable_akismet" id="_bbp_enable_akismet" type="checkbox" value="1" <?php checked( bbp_is_akismet_active( true ) ); bbp_maybe_admin_setting_disabled( '_bbp_enable_akismet' ); ?> />
1527
  <label for="_bbp_enable_akismet"><?php esc_html_e( 'Allow Akismet to actively prevent forum spam.', 'bbpress' ); ?></label>
1528
 
1529
  <?php
1585
  function bbp_converter_setting_callback_platform() {
1586
 
1587
  // Converters
1588
+ $current = get_option( '_bbp_converter_platform' );
1589
  $converters = bbp_get_converters();
1590
  $options = '';
1591
 
1592
  // Put options together
1593
  foreach ( $converters as $name => $file ) {
1594
+ $options .= '<option value="' . esc_attr( $name ) . '"' . selected( $name, $current, false ) . '>' . esc_html( $name ) . '</option>';
1595
  } ?>
1596
 
1597
  <select name="_bbp_converter_platform" id="_bbp_converter_platform"><?php echo $options ?></select>
1608
  function bbp_converter_setting_callback_dbserver() {
1609
  ?>
1610
 
1611
+ <input name="_bbp_converter_db_server" id="_bbp_converter_db_server" type="text" class="code" value="<?php bbp_form_option( '_bbp_converter_db_server', 'localhost' ); ?>" <?php bbp_maybe_admin_setting_disabled( '_bbp_converter_db_server' ); ?> />
1612
  <label for="_bbp_converter_db_server"><?php esc_html_e( 'Use default "localhost" if on the same server, otherwise IP or hostname', 'bbpress' ); ?></label>
1613
 
1614
  <?php
1622
  function bbp_converter_setting_callback_dbport() {
1623
  ?>
1624
 
1625
+ <input name="_bbp_converter_db_port" id="_bbp_converter_db_port" type="text" class="code" value="<?php bbp_form_option( '_bbp_converter_db_port', '3306' ); ?>" <?php bbp_maybe_admin_setting_disabled( '_bbp_converter_db_port' ); ?> />
1626
  <label for="_bbp_converter_db_port"><?php esc_html_e( 'Use default "3306" if unsure', 'bbpress' ); ?></label>
1627
 
1628
  <?php
1636
  function bbp_converter_setting_callback_dbuser() {
1637
  ?>
1638
 
1639
+ <input name="_bbp_converter_db_user" id="_bbp_converter_db_user" type="text" class="code" value="<?php bbp_form_option( '_bbp_converter_db_user' ); ?>" <?php bbp_maybe_admin_setting_disabled( '_bbp_converter_db_user' ); ?> />
1640
  <label for="_bbp_converter_db_user"><?php esc_html_e( 'User to acces the database', 'bbpress' ); ?></label>
1641
 
1642
  <?php
1650
  function bbp_converter_setting_callback_dbpass() {
1651
  ?>
1652
 
1653
+ <input name="_bbp_converter_db_pass" id="_bbp_converter_db_pass" type="password" class="code" value="<?php bbp_form_option( '_bbp_converter_db_pass' ); ?>" autocomplete="off" <?php bbp_maybe_admin_setting_disabled( '_bbp_converter_db_pass' ); ?> />
1654
  <label for="_bbp_converter_db_pass"><?php esc_html_e( 'Password of the above database user', 'bbpress' ); ?></label>
1655
 
1656
  <?php
1664
  function bbp_converter_setting_callback_dbname() {
1665
  ?>
1666
 
1667
+ <input name="_bbp_converter_db_name" id="_bbp_converter_db_name" type="text" class="code" value="<?php bbp_form_option( '_bbp_converter_db_name' ); ?>" <?php bbp_maybe_admin_setting_disabled( '_bbp_converter_db_name' ); ?> />
1668
  <label for="_bbp_converter_db_name"><?php esc_html_e( 'Name of the database with your old forum data', 'bbpress' ); ?></label>
1669
 
1670
  <?php
1691
  function bbp_converter_setting_callback_dbprefix() {
1692
  ?>
1693
 
1694
+ <input name="_bbp_converter_db_prefix" id="_bbp_converter_db_prefix" type="text" class="code" value="<?php bbp_form_option( '_bbp_converter_db_prefix' ); ?>" <?php bbp_maybe_admin_setting_disabled( '_bbp_converter_db_prefix' ); ?> />
1695
  <label for="_bbp_converter_db_prefix"><?php esc_html_e( '(If converting from BuddyPress Forums, use "wp_bb_" or your custom prefix)', 'bbpress' ); ?></label>
1696
 
1697
  <?php
1705
  function bbp_converter_setting_callback_rows() {
1706
  ?>
1707
 
1708
+ <input name="_bbp_converter_rows" id="_bbp_converter_rows" type="number" min="1" max="5000" value="<?php bbp_form_option( '_bbp_converter_rows', '100' ); ?>" <?php bbp_maybe_admin_setting_disabled( '_bbp_converter_rows' ); ?> />
1709
  <label for="_bbp_converter_rows"><?php esc_html_e( 'rows to process at a time', 'bbpress' ); ?></label>
1710
  <p class="description"><?php esc_html_e( 'Keep this low if you experience out-of-memory issues.', 'bbpress' ); ?></p>
1711
 
1720
  function bbp_converter_setting_callback_delay_time() {
1721
  ?>
1722
 
1723
+ <input name="_bbp_converter_delay_time" id="_bbp_converter_delay_time" type="number" min="2" max="3600" value="<?php bbp_form_option( '_bbp_converter_delay_time', '2' ); ?>" <?php bbp_maybe_admin_setting_disabled( '_bbp_converter_delay_time' ); ?> />
1724
  <label for="_bbp_converter_delay_time"><?php esc_html_e( 'second(s) delay between each group of rows', 'bbpress' ); ?></label>
1725
  <p class="description"><?php esc_html_e( 'Keep this high to prevent too-many-connection issues.', 'bbpress' ); ?></p>
1726
 
1765
  function bbp_converter_setting_callback_convert_users() {
1766
  ?>
1767
 
1768
+ <input name="_bbp_converter_convert_users" id="_bbp_converter_convert_users" type="checkbox" value="1" <?php checked( get_option( '_bbp_converter_convert_users', false ) ); ?> <?php bbp_maybe_admin_setting_disabled( '_bbp_converter_convert_users' ); ?> />
1769
  <label for="_bbp_converter_convert_users"><?php esc_html_e( 'Attempt to import user accounts from previous forums', 'bbpress' ); ?></label>
1770
  <p class="description"><?php esc_html_e( 'Non-bbPress passwords cannot be automatically converted. They will be converted as each user logs in.', 'bbpress' ); ?></p>
1771
 
1777
  /**
1778
  * The main settings page
1779
  *
1780
+ * @since 2.1.0 bbPress (r3186)
1781
+ *
1782
  * @uses settings_fields() To output the hidden fields for the form
1783
  * @uses do_settings_sections() To output the settings sections
1784
  */
1785
  function bbp_converter_settings_page() {
1786
 
1787
  // Status
1788
+ $step = (int) get_option( '_bbp_converter_step', 0 );
1789
+ $max = (int) bbpress()->admin->converter->max_steps;
1790
 
1791
  // Starting or continuing?
1792
  $start_text = ! empty( $step )
1803
  <hr class="wp-header-end">
1804
  <h2 class="nav-tab-wrapper"><?php bbp_tools_admin_tabs( esc_html__( 'Import Forums', 'bbpress' ) ); ?></h2>
1805
 
1806
+ <form action="#" method="post" id="bbp-converter-settings"><?php
1807
+
1808
+ // Fields
1809
+ settings_fields( 'converter' );
1810
 
1811
+ // Sections
1812
+ do_settings_sections( 'converter' );
1813
 
1814
+ ?>
1815
 
1816
  <p class="submit">
1817
  <input type="button" name="submit" class="button-primary" id="bbp-converter-start" value="<?php echo esc_attr( $start_text ); ?>" />
1828
  <span class="screen-reader-text"><?php esc_html_e( 'Toggle panel: Import Status', 'bbpress' ); ?></span>
1829
  <span class="toggle-indicator" aria-hidden="true"></span>
1830
  </button>
1831
+ <h2 class="hndle ui-sortable-handle">
1832
+ <span><?php esc_html_e( 'Import Monitor', 'bbpress' ); ?></span>
1833
+ </h2>
1834
  <div class="inside">
1835
+ <div id="bbp-converter-timer"><?php esc_html_e( 'Timer: Stopped', 'bbpress' ); ?></div>
1836
  <div id="bbp-converter-message" class="bbp-converter-log">
1837
  <p><?php echo esc_html( $status_text ); ?></p>
1838
  </div>
includes/admin/tools/repair.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
 
3
  /**
4
- * bbPress Admin Repairs Page
5
  *
6
  * @package bbPress
7
  * @subpackage Administration
@@ -31,7 +31,7 @@ function bbp_admin_repair_page() {
31
 
32
  <div class="wrap">
33
  <h1><?php esc_html_e( 'Forum Tools', 'bbpress' ); ?></h1>
34
- <h2 class="nav-tab-wrapper"><?php bbp_tools_admin_tabs( __( 'Repair Forums', 'bbpress' ) ); ?></h2>
35
 
36
  <p><?php esc_html_e( 'bbPress keeps track of relationships between forums, topics, replies, topic-tags, favorites, subscriptions, and users. Occasionally these relationships become out of sync, most often after an import or migration. Use the tools below to manually recalculate these relationships.', 'bbpress' ); ?></p>
37
  <p class="description"><?php esc_html_e( 'Some of these tools create substantial database overhead. Use caution when running more than 1 repair at a time.', 'bbpress' ); ?></p>
@@ -174,8 +174,8 @@ function bbp_admin_repair_topic_reply_count() {
174
 
175
  // Define variables
176
  $bbp_db = bbp_db();
177
- $statement = __( 'Counting the number of replies in each topic&hellip; %s', 'bbpress' );
178
- $result = __( 'Failed!', 'bbpress' );
179
 
180
  // Post types and status
181
  $tpt = bbp_get_topic_post_type();
@@ -209,7 +209,7 @@ function bbp_admin_repair_topic_reply_count() {
209
  return array( 2, sprintf( $statement, $result ) );
210
  }
211
 
212
- return array( 0, sprintf( $statement, __( 'Complete!', 'bbpress' ) ) );
213
  }
214
 
215
  /**
@@ -229,8 +229,8 @@ function bbp_admin_repair_topic_voice_count() {
229
 
230
  // Define variables
231
  $bbp_db = bbp_db();
232
- $statement = __( 'Counting the number of voices in each topic&hellip; %s', 'bbpress' );
233
- $result = __( 'Failed!', 'bbpress' );
234
 
235
  $sql_delete = "DELETE FROM {$bbp_db->postmeta} WHERE meta_key IN ('_bbp_voice_count', '_bbp_engagement')";
236
  if ( is_wp_error( $bbp_db->query( $sql_delete ) ) ) {
@@ -267,7 +267,7 @@ function bbp_admin_repair_topic_voice_count() {
267
  return array( 3, sprintf( $statement, $result ) );
268
  }
269
 
270
- return array( 0, sprintf( $statement, __( 'Complete!', 'bbpress' ) ) );
271
  }
272
 
273
  /**
@@ -287,8 +287,8 @@ function bbp_admin_repair_topic_hidden_reply_count() {
287
 
288
  // Define variables
289
  $bbp_db = bbp_db();
290
- $statement = __( 'Counting the number of pending, spammed, and trashed replies in each topic&hellip; %s', 'bbpress' );
291
- $result = __( 'Failed!', 'bbpress' );
292
 
293
  $sql_delete = "DELETE FROM `{$bbp_db->postmeta}` WHERE `meta_key` = '_bbp_reply_count_hidden'";
294
  if ( is_wp_error( $bbp_db->query( $sql_delete ) ) ) {
@@ -306,7 +306,7 @@ function bbp_admin_repair_topic_hidden_reply_count() {
306
  return array( 2, sprintf( $statement, $result ) );
307
  }
308
 
309
- return array( 0, sprintf( $statement, __( 'Complete!', 'bbpress' ) ) );
310
  }
311
 
312
  /**
@@ -325,8 +325,8 @@ function bbp_admin_repair_forum_topic_count() {
325
 
326
  // Define variables
327
  $bbp_db = bbp_db();
328
- $statement = __( 'Counting the number of topics in each forum&hellip; %s', 'bbpress' );
329
- $result = __( 'Failed!', 'bbpress' );
330
 
331
  $sql_delete = "DELETE FROM {$bbp_db->postmeta} WHERE meta_key IN ( '_bbp_topic_count', '_bbp_total_topic_count', '_bbp_topic_count_hidden' )";
332
  if ( is_wp_error( $bbp_db->query( $sql_delete ) ) ) {
@@ -343,7 +343,7 @@ function bbp_admin_repair_forum_topic_count() {
343
  return array( 2, sprintf( $statement, $result ) );
344
  }
345
 
346
- return array( 0, sprintf( $statement, __( 'Complete!', 'bbpress' ) ) );
347
  }
348
 
349
  /**
@@ -363,8 +363,8 @@ function bbp_admin_repair_forum_topic_count() {
363
  function bbp_admin_repair_topic_tag_count() {
364
 
365
  // Define variables
366
- $statement = __( 'Counting the number of topics in each topic-tag&hellip; %s', 'bbpress' );
367
- $result = __( 'Failed!', 'bbpress' );
368
  $tax_id = bbp_get_topic_tag_tax_id();
369
  $terms = get_terms( $tax_id, array( 'hide_empty' => false ) );
370
  $tt_ids = wp_list_pluck( $terms, 'term_taxonomy_id' );
@@ -394,7 +394,7 @@ function bbp_admin_repair_topic_tag_count() {
394
  // Bust the cache
395
  clean_term_cache( $ints, '', false );
396
 
397
- return array( 0, sprintf( $statement, __( 'Complete!', 'bbpress' ) ) );
398
  }
399
 
400
  /**
@@ -413,8 +413,8 @@ function bbp_admin_repair_forum_reply_count() {
413
 
414
  // Define variables
415
  $bbp_db = bbp_db();
416
- $statement = __( 'Counting the number of replies in each forum&hellip; %s', 'bbpress' );
417
- $result = __( 'Failed!', 'bbpress' );
418
 
419
  // Post type
420
  $fpt = bbp_get_forum_post_type();
@@ -440,7 +440,7 @@ function bbp_admin_repair_forum_reply_count() {
440
  return array( 2, sprintf( $statement, $result ) );
441
  }
442
 
443
- return array( 0, sprintf( $statement, __( 'Complete!', 'bbpress' ) ) );
444
  }
445
 
446
  /**
@@ -458,8 +458,8 @@ function bbp_admin_repair_user_topic_count() {
458
 
459
  // Define variables
460
  $bbp_db = bbp_db();
461
- $statement = __( 'Counting the number of topics each user has created&hellip; %s', 'bbpress' );
462
- $result = __( 'Failed!', 'bbpress' );
463
 
464
  $sql_select = "SELECT `post_author`, COUNT(DISTINCT `ID`) as `_count` FROM `{$bbp_db->posts}` WHERE `post_type` = '" . bbp_get_topic_post_type() . "' AND `post_status` = '" . bbp_get_public_status_id() . "' GROUP BY `post_author`";
465
  $insert_rows = $bbp_db->get_results( $sql_select );
@@ -492,7 +492,7 @@ function bbp_admin_repair_user_topic_count() {
492
  }
493
  }
494
 
495
- return array( 0, sprintf( $statement, __( 'Complete!', 'bbpress' ) ) );
496
  }
497
 
498
  /**
@@ -510,8 +510,8 @@ function bbp_admin_repair_user_reply_count() {
510
 
511
  // Define variables
512
  $bbp_db = bbp_db();
513
- $statement = __( 'Counting the number of topics to which each user has replied&hellip; %s', 'bbpress' );
514
- $result = __( 'Failed!', 'bbpress' );
515
 
516
  $sql_select = "SELECT `post_author`, COUNT(DISTINCT `ID`) as `_count` FROM `{$bbp_db->posts}` WHERE `post_type` = '" . bbp_get_reply_post_type() . "' AND `post_status` = '" . bbp_get_public_status_id() . "' GROUP BY `post_author`";
517
  $insert_rows = $bbp_db->get_results( $sql_select );
@@ -544,7 +544,7 @@ function bbp_admin_repair_user_reply_count() {
544
  }
545
  }
546
 
547
- return array( 0, sprintf( $statement, __( 'Complete!', 'bbpress' ) ) );
548
  }
549
 
550
  /**
@@ -562,8 +562,8 @@ function bbp_admin_repair_user_favorites() {
562
 
563
  // Define variables
564
  $bbp_db = bbp_db();
565
- $statement = __( 'Removing unpublished topics from user favorites&hellip; %s', 'bbpress' );
566
- $result = __( 'Failed!', 'bbpress' );
567
 
568
  // Query for users with favorites
569
  $key = $bbp_db->prefix . '_bbp_favorites';
@@ -598,7 +598,7 @@ function bbp_admin_repair_user_favorites() {
598
  }
599
 
600
  if ( !count( $values ) ) {
601
- $result = __( 'Nothing to remove!', 'bbpress' );
602
  return array( 0, sprintf( $statement, $result ) );
603
  }
604
 
@@ -615,7 +615,7 @@ function bbp_admin_repair_user_favorites() {
615
  }
616
  }
617
 
618
- return array( 0, sprintf( $statement, __( 'Complete!', 'bbpress' ) ) );
619
  }
620
 
621
  /**
@@ -633,8 +633,8 @@ function bbp_admin_repair_user_topic_subscriptions() {
633
 
634
  // Define variables
635
  $bbp_db = bbp_db();
636
- $statement = __( 'Removing trashed topics from user subscriptions&hellip; %s', 'bbpress' );
637
- $result = __( 'Failed!', 'bbpress' );
638
 
639
  $key = $bbp_db->prefix . '_bbp_subscriptions';
640
  $users = $bbp_db->get_results( "SELECT `user_id`, `meta_value` AS `subscriptions` FROM `{$bbp_db->usermeta}` WHERE `meta_key` = '{$key}'" );
@@ -667,7 +667,7 @@ function bbp_admin_repair_user_topic_subscriptions() {
667
  }
668
 
669
  if ( !count( $values ) ) {
670
- $result = __( 'Nothing to remove!', 'bbpress' );
671
  return array( 0, sprintf( $statement, $result ) );
672
  }
673
 
@@ -684,7 +684,7 @@ function bbp_admin_repair_user_topic_subscriptions() {
684
  }
685
  }
686
 
687
- return array( 0, sprintf( $statement, __( 'Complete!', 'bbpress' ) ) );
688
  }
689
 
690
  /**
@@ -702,8 +702,8 @@ function bbp_admin_repair_user_forum_subscriptions() {
702
 
703
  // Define variables
704
  $bbp_db = bbp_db();
705
- $statement = __( 'Removing trashed forums from user subscriptions&hellip; %s', 'bbpress' );
706
- $result = __( 'Failed!', 'bbpress' );
707
 
708
  $key = $bbp_db->prefix . '_bbp_forum_subscriptions';
709
  $users = $bbp_db->get_results( "SELECT `user_id`, `meta_value` AS `subscriptions` FROM `{$bbp_db->usermeta}` WHERE `meta_key` = '{$key}'" );
@@ -736,7 +736,7 @@ function bbp_admin_repair_user_forum_subscriptions() {
736
  }
737
 
738
  if ( !count( $values ) ) {
739
- $result = __( 'Nothing to remove!', 'bbpress' );
740
  return array( 0, sprintf( $statement, $result ) );
741
  }
742
 
@@ -753,7 +753,7 @@ function bbp_admin_repair_user_forum_subscriptions() {
753
  }
754
  }
755
 
756
- return array( 0, sprintf( $statement, __( 'Complete!', 'bbpress' ) ) );
757
  }
758
 
759
  /**
@@ -771,14 +771,14 @@ function bbp_admin_repair_user_forum_subscriptions() {
771
  */
772
  function bbp_admin_repair_user_roles() {
773
 
774
- $statement = __( 'Remapping forum role for each user on this site&hellip; %s', 'bbpress' );
775
  $changed = 0;
776
  $role_map = bbp_get_user_role_map();
777
  $default_role = bbp_get_default_role();
778
 
779
  // Bail if no role map exists
780
  if ( empty( $role_map ) ) {
781
- return array( 1, sprintf( $statement, __( 'Failed!', 'bbpress' ) ) );
782
  }
783
 
784
  // Iterate through each role...
@@ -810,13 +810,13 @@ function bbp_admin_repair_user_roles() {
810
  }
811
  }
812
 
813
- $result = sprintf( __( 'Complete! %s users updated.', 'bbpress' ), bbp_number_format( $changed ) );
814
 
815
  return array( 0, sprintf( $statement, $result ) );
816
  }
817
 
818
  /**
819
- * Recaches the last post in every topic and forum
820
  *
821
  * @since 2.0.0 bbPress (r3040)
822
  *
@@ -826,7 +826,7 @@ function bbp_admin_repair_user_roles() {
826
  * @uses bbp_get_topic_post_type() To get the topic post type
827
  * @uses bbp_get_reply_post_type() To get the reply post type
828
  * @uses bbp_get_public_status_id() To get the public status id
829
- * @uses bbp_is_forum_category() To check if the forum is a ategory
830
  * @uses bbp_update_forum() To update the forums forum id
831
  * @return array An array of the status code and the message
832
  */
@@ -834,8 +834,8 @@ function bbp_admin_repair_freshness() {
834
 
835
  // Define variables
836
  $bbp_db = bbp_db();
837
- $statement = __( 'Recomputing latest post in every topic and forum&hellip; %s', 'bbpress' );
838
- $result = __( 'Failed!', 'bbpress' );
839
 
840
  // First, delete everything.
841
  if ( is_wp_error( $bbp_db->query( "DELETE FROM `{$bbp_db->postmeta}` WHERE `meta_key` IN ( '_bbp_last_reply_id', '_bbp_last_topic_id', '_bbp_last_active_id', '_bbp_last_active_time' )" ) ) ) {
@@ -941,11 +941,11 @@ function bbp_admin_repair_freshness() {
941
  }
942
 
943
  // Complete results
944
- return array( 0, sprintf( $statement, __( 'Complete!', 'bbpress' ) ) );
945
  }
946
 
947
  /**
948
- * Repairs the relationship of sticky topics to the actual parent forum
949
  *
950
  * @since 2.3.0 bbPress (r4695)
951
  *
@@ -962,8 +962,8 @@ function bbp_admin_repair_sticky() {
962
 
963
  // Define variables
964
  $bbp_db = bbp_db();
965
- $statement = __( 'Repairing the sticky topic to the parent forum relationships&hellip; %s', 'bbpress' );
966
- $result = __( 'Failed!', 'bbpress' );
967
 
968
  $forums = $bbp_db->get_col( "SELECT ID FROM `{$bbp_db->posts}` WHERE `post_type` = '" . bbp_get_forum_post_type() . "'" );
969
 
@@ -993,27 +993,29 @@ function bbp_admin_repair_sticky() {
993
 
994
  // If the topic is not a super sticky, and the forum ID does not
995
  // match the topic's forum ID, unset the forum's sticky meta.
996
- if ( ! bbp_is_topic_super_sticky( $topic_id ) && $forum_id !== bbp_get_topic_forum_id( $topic_id ) ) {
997
  unset( $forum_stickies[ $forum_id ][ $id ] );
998
  }
999
  }
1000
 
1001
  // Get sticky topic ID's, or use empty string
1002
- $stickers = empty( $forum_stickies[ $forum_id ] ) ? '' : array_values( $forum_stickies[ $forum_id ] );
 
 
1003
 
1004
  // Update the forum's sticky topics meta
1005
  update_post_meta( $forum_id, '_bbp_sticky_topics', $stickers );
1006
  }
1007
 
1008
  // Complete results
1009
- return array( 0, sprintf( $statement, __( 'Complete!', 'bbpress' ) ) );
1010
  }
1011
 
1012
  /**
1013
  * Repair closed topics
1014
  *
1015
- * Closed topics that are missing the postmeta "_bbp_status" key value "publish"
1016
- * result in unexpected behaviour, primarily this would have only occured if you
1017
  * had imported forums from another forum package previous to bbPress v2.6,
1018
  * https://bbpress.trac.wordpress.org/ticket/2577
1019
  *
@@ -1030,11 +1032,14 @@ function bbp_admin_repair_closed_topics() {
1030
 
1031
  // Define variables
1032
  $bbp_db = bbp_db();
1033
- $statement = __( 'Repairing closed topics&hellip; %s', 'bbpress' );
1034
- $result = __( 'No closed topics to repair.', 'bbpress' );
1035
  $changed = 0;
1036
 
1037
- $closed_topics = $bbp_db->get_col( "SELECT ID FROM `{$bbp_db->posts}` WHERE `post_type` = '" . bbp_get_topic_post_type() . "' AND `post_status` = 'closed'" );
 
 
 
1038
 
1039
  // Bail if no closed topics found
1040
  if ( empty( $closed_topics ) || is_wp_error( $closed_topics ) ) {
@@ -1064,7 +1069,7 @@ function bbp_admin_repair_closed_topics() {
1064
  }
1065
 
1066
  /**
1067
- * Recaches the private and hidden forums
1068
  *
1069
  * @since 2.2.0 bbPress (r4104)
1070
  *
@@ -1072,20 +1077,20 @@ function bbp_admin_repair_closed_topics() {
1072
  * @return array An array of the status code and the message
1073
  */
1074
  function bbp_admin_repair_forum_visibility() {
1075
- $statement = __( 'Recalculating forum visibility &hellip; %s', 'bbpress' );
1076
 
1077
  // Bail if queries returned errors
1078
  if ( ! bbp_repair_forum_visibility() ) {
1079
- return array( 2, sprintf( $statement, __( 'Failed!', 'bbpress' ) ) );
1080
 
1081
  // Complete results
1082
  } else {
1083
- return array( 0, sprintf( $statement, __( 'Complete!', 'bbpress' ) ) );
1084
  }
1085
  }
1086
 
1087
  /**
1088
- * Recaches the parent forum meta for each topic and reply
1089
  *
1090
  * @since 2.1.0 bbPress (r3876)
1091
  *
@@ -1099,8 +1104,8 @@ function bbp_admin_repair_forum_meta() {
1099
 
1100
  // Define variables
1101
  $bbp_db = bbp_db();
1102
- $statement = __( 'Recalculating the forum for each post &hellip; %s', 'bbpress' );
1103
- $result = __( 'Failed!', 'bbpress' );
1104
 
1105
  // First, delete everything.
1106
  if ( is_wp_error( $bbp_db->query( "DELETE FROM `{$bbp_db->postmeta}` WHERE `meta_key` = '_bbp_forum_id'" ) ) ) {
@@ -1136,11 +1141,11 @@ function bbp_admin_repair_forum_meta() {
1136
  }
1137
 
1138
  // Complete results
1139
- return array( 0, sprintf( $statement, __( 'Complete!', 'bbpress' ) ) );
1140
  }
1141
 
1142
  /**
1143
- * Recaches the topic for each post
1144
  *
1145
  * @since 2.1.0 bbPress (r3876)
1146
  *
@@ -1154,8 +1159,8 @@ function bbp_admin_repair_topic_meta() {
1154
 
1155
  // Define variables
1156
  $bbp_db = bbp_db();
1157
- $statement = __( 'Recalculating the topic for each post &hellip; %s', 'bbpress' );
1158
- $result = __( 'Failed!', 'bbpress' );
1159
 
1160
  // First, delete everything.
1161
  if ( is_wp_error( $bbp_db->query( "DELETE FROM `{$bbp_db->postmeta}` WHERE `meta_key` = '_bbp_topic_id'" ) ) ) {
@@ -1191,7 +1196,7 @@ function bbp_admin_repair_topic_meta() {
1191
  }
1192
 
1193
  // Complete results
1194
- return array( 0, sprintf( $statement, __( 'Complete!', 'bbpress' ) ) );
1195
  }
1196
 
1197
  /**
@@ -1209,8 +1214,8 @@ function bbp_admin_repair_reply_menu_order() {
1209
 
1210
  // Define variables
1211
  $bbp_db = bbp_db();
1212
- $statement = __( 'Recalculating reply menu order &hellip; %s', 'bbpress' );
1213
- $result = __( 'No reply positions to recalculate.', 'bbpress' );
1214
 
1215
  // Delete cases where `_bbp_reply_to` was accidentally set to itself
1216
  if ( is_wp_error( $bbp_db->query( "DELETE FROM `{$bbp_db->postmeta}` WHERE `meta_key` = '_bbp_reply_to' AND `post_id` = `meta_value`" ) ) ) {
@@ -1248,5 +1253,5 @@ function bbp_admin_repair_reply_menu_order() {
1248
  // Flush the cache; things are about to get ugly.
1249
  wp_cache_flush();
1250
 
1251
- return array( 0, sprintf( $statement, __( 'Complete!', 'bbpress' ) ) );
1252
  }
1
  <?php
2
 
3
  /**
4
+ * bbPress Admin Repair Page
5
  *
6
  * @package bbPress
7
  * @subpackage Administration
31
 
32
  <div class="wrap">
33
  <h1><?php esc_html_e( 'Forum Tools', 'bbpress' ); ?></h1>
34
+ <h2 class="nav-tab-wrapper"><?php bbp_tools_admin_tabs( esc_html__( 'Repair Forums', 'bbpress' ) ); ?></h2>
35
 
36
  <p><?php esc_html_e( 'bbPress keeps track of relationships between forums, topics, replies, topic-tags, favorites, subscriptions, and users. Occasionally these relationships become out of sync, most often after an import or migration. Use the tools below to manually recalculate these relationships.', 'bbpress' ); ?></p>
37
  <p class="description"><?php esc_html_e( 'Some of these tools create substantial database overhead. Use caution when running more than 1 repair at a time.', 'bbpress' ); ?></p>
174
 
175
  // Define variables
176
  $bbp_db = bbp_db();
177
+ $statement = esc_html__( 'Counting the number of replies in each topic&hellip; %s', 'bbpress' );
178
+ $result = esc_html__( 'Failed!', 'bbpress' );
179
 
180
  // Post types and status
181
  $tpt = bbp_get_topic_post_type();
209
  return array( 2, sprintf( $statement, $result ) );
210
  }
211
 
212
+ return array( 0, sprintf( $statement, esc_html__( 'Complete!', 'bbpress' ) ) );
213
  }
214
 
215
  /**
229
 
230
  // Define variables
231
  $bbp_db = bbp_db();
232
+ $statement = esc_html__( 'Counting the number of voices in each topic&hellip; %s', 'bbpress' );
233
+ $result = esc_html__( 'Failed!', 'bbpress' );
234
 
235
  $sql_delete = "DELETE FROM {$bbp_db->postmeta} WHERE meta_key IN ('_bbp_voice_count', '_bbp_engagement')";
236
  if ( is_wp_error( $bbp_db->query( $sql_delete ) ) ) {
267
  return array( 3, sprintf( $statement, $result ) );
268
  }
269
 
270
+ return array( 0, sprintf( $statement, esc_html__( 'Complete!', 'bbpress' ) ) );
271
  }
272
 
273
  /**
287
 
288
  // Define variables
289
  $bbp_db = bbp_db();
290
+ $statement = esc_html__( 'Counting the number of pending, spammed, and trashed replies in each topic&hellip; %s', 'bbpress' );
291
+ $result = esc_html__( 'Failed!', 'bbpress' );
292
 
293
  $sql_delete = "DELETE FROM `{$bbp_db->postmeta}` WHERE `meta_key` = '_bbp_reply_count_hidden'";
294
  if ( is_wp_error( $bbp_db->query( $sql_delete ) ) ) {
306
  return array( 2, sprintf( $statement, $result ) );
307
  }
308
 
309
+ return array( 0, sprintf( $statement, esc_html__( 'Complete!', 'bbpress' ) ) );
310
  }
311
 
312
  /**
325
 
326
  // Define variables
327
  $bbp_db = bbp_db();
328
+ $statement = esc_html__( 'Counting the number of topics in each forum&hellip; %s', 'bbpress' );
329
+ $result = esc_html__( 'Failed!', 'bbpress' );
330
 
331
  $sql_delete = "DELETE FROM {$bbp_db->postmeta} WHERE meta_key IN ( '_bbp_topic_count', '_bbp_total_topic_count', '_bbp_topic_count_hidden' )";
332
  if ( is_wp_error( $bbp_db->query( $sql_delete ) ) ) {
343
  return array( 2, sprintf( $statement, $result ) );
344
  }
345
 
346
+ return array( 0, sprintf( $statement, esc_html__( 'Complete!', 'bbpress' ) ) );
347
  }
348
 
349
  /**
363
  function bbp_admin_repair_topic_tag_count() {
364
 
365
  // Define variables
366
+ $statement = esc_html__( 'Counting the number of topics in each topic-tag&hellip; %s', 'bbpress' );
367
+ $result = esc_html__( 'Failed!', 'bbpress' );
368
  $tax_id = bbp_get_topic_tag_tax_id();
369
  $terms = get_terms( $tax_id, array( 'hide_empty' => false ) );
370
  $tt_ids = wp_list_pluck( $terms, 'term_taxonomy_id' );
394
  // Bust the cache
395
  clean_term_cache( $ints, '', false );
396
 
397
+ return array( 0, sprintf( $statement, esc_html__( 'Complete!', 'bbpress' ) ) );
398
  }
399
 
400
  /**
413
 
414
  // Define variables
415
  $bbp_db = bbp_db();
416
+ $statement = esc_html__( 'Counting the number of replies in each forum&hellip; %s', 'bbpress' );
417
+ $result = esc_html__( 'Failed!', 'bbpress' );
418
 
419
  // Post type
420
  $fpt = bbp_get_forum_post_type();
440
  return array( 2, sprintf( $statement, $result ) );
441
  }
442
 
443
+ return array( 0, sprintf( $statement, esc_html__( 'Complete!', 'bbpress' ) ) );
444
  }
445
 
446
  /**
458
 
459
  // Define variables
460
  $bbp_db = bbp_db();
461
+ $statement = esc_html__( 'Counting the number of topics each user has created&hellip; %s', 'bbpress' );
462
+ $result = esc_html__( 'Failed!', 'bbpress' );
463
 
464
  $sql_select = "SELECT `post_author`, COUNT(DISTINCT `ID`) as `_count` FROM `{$bbp_db->posts}` WHERE `post_type` = '" . bbp_get_topic_post_type() . "' AND `post_status` = '" . bbp_get_public_status_id() . "' GROUP BY `post_author`";
465
  $insert_rows = $bbp_db->get_results( $sql_select );
492
  }
493
  }
494
 
495
+ return array( 0, sprintf( $statement, esc_html__( 'Complete!', 'bbpress' ) ) );
496
  }
497
 
498
  /**
510
 
511
  // Define variables
512
  $bbp_db = bbp_db();
513
+ $statement = esc_html__( 'Counting the number of topics to which each user has replied&hellip; %s', 'bbpress' );
514
+ $result = esc_html__( 'Failed!', 'bbpress' );
515
 
516
  $sql_select = "SELECT `post_author`, COUNT(DISTINCT `ID`) as `_count` FROM `{$bbp_db->posts}` WHERE `post_type` = '" . bbp_get_reply_post_type() . "' AND `post_status` = '" . bbp_get_public_status_id() . "' GROUP BY `post_author`";
517
  $insert_rows = $bbp_db->get_results( $sql_select );
544
  }
545
  }
546
 
547
+ return array( 0, sprintf( $statement, esc_html__( 'Complete!', 'bbpress' ) ) );
548
  }
549
 
550
  /**
562
 
563
  // Define variables
564
  $bbp_db = bbp_db();
565
+ $statement = esc_html__( 'Removing unpublished topics from user favorites&hellip; %s', 'bbpress' );
566
+ $result = esc_html__( 'Failed!', 'bbpress' );
567
 
568
  // Query for users with favorites
569
  $key = $bbp_db->prefix . '_bbp_favorites';
598
  }
599
 
600
  if ( !count( $values ) ) {
601
+ $result = esc_html__( 'Nothing to remove!', 'bbpress' );
602
  return array( 0, sprintf( $statement, $result ) );
603
  }
604
 
615
  }
616
  }
617
 
618
+ return array( 0, sprintf( $statement, esc_html__( 'Complete!', 'bbpress' ) ) );
619
  }
620
 
621
  /**
633
 
634
  // Define variables
635
  $bbp_db = bbp_db();
636
+ $statement = esc_html__( 'Removing trashed topics from user subscriptions&hellip; %s', 'bbpress' );
637
+ $result = esc_html__( 'Failed!', 'bbpress' );
638
 
639
  $key = $bbp_db->prefix . '_bbp_subscriptions';
640
  $users = $bbp_db->get_results( "SELECT `user_id`, `meta_value` AS `subscriptions` FROM `{$bbp_db->usermeta}` WHERE `meta_key` = '{$key}'" );
667
  }
668
 
669
  if ( !count( $values ) ) {
670
+ $result = esc_html__( 'Nothing to remove!', 'bbpress' );
671
  return array( 0, sprintf( $statement, $result ) );
672
  }
673
 
684
  }
685
  }
686
 
687
+ return array( 0, sprintf( $statement, esc_html__( 'Complete!', 'bbpress' ) ) );
688
  }
689
 
690
  /**
702
 
703
  // Define variables
704
  $bbp_db = bbp_db();
705
+ $statement = esc_html__( 'Removing trashed forums from user subscriptions&hellip; %s', 'bbpress' );
706
+ $result = esc_html__( 'Failed!', 'bbpress' );
707
 
708
  $key = $bbp_db->prefix . '_bbp_forum_subscriptions';
709
  $users = $bbp_db->get_results( "SELECT `user_id`, `meta_value` AS `subscriptions` FROM `{$bbp_db->usermeta}` WHERE `meta_key` = '{$key}'" );
736
  }
737
 
738
  if ( !count( $values ) ) {
739
+ $result = esc_html__( 'Nothing to remove!', 'bbpress' );
740
  return array( 0, sprintf( $statement, $result ) );
741
  }
742
 
753
  }
754
  }
755
 
756
+ return array( 0, sprintf( $statement, esc_html__( 'Complete!', 'bbpress' ) ) );
757
  }
758
 
759
  /**
771
  */
772
  function bbp_admin_repair_user_roles() {
773
 
774
+ $statement = esc_html__( 'Remapping forum role for each user on this site&hellip; %s', 'bbpress' );
775
  $changed = 0;
776
  $role_map = bbp_get_user_role_map();
777
  $default_role = bbp_get_default_role();
778
 
779
  // Bail if no role map exists
780
  if ( empty( $role_map ) ) {
781
+ return array( 1, sprintf( $statement, esc_html__( 'Failed!', 'bbpress' ) ) );
782
  }
783
 
784
  // Iterate through each role...
810
  }
811
  }
812
 
813
+ $result = sprintf( esc_html__( 'Complete! %s users updated.', 'bbpress' ), bbp_number_format( $changed ) );
814
 
815
  return array( 0, sprintf( $statement, $result ) );
816
  }
817
 
818
  /**
819
+ * Repair the last post in every topic and forum
820
  *
821
  * @since 2.0.0 bbPress (r3040)
822
  *
826
  * @uses bbp_get_topic_post_type() To get the topic post type
827
  * @uses bbp_get_reply_post_type() To get the reply post type
828
  * @uses bbp_get_public_status_id() To get the public status id
829
+ * @uses bbp_is_forum_category() To check if the forum is a category
830
  * @uses bbp_update_forum() To update the forums forum id
831
  * @return array An array of the status code and the message
832
  */
834
 
835
  // Define variables
836
  $bbp_db = bbp_db();
837
+ $statement = esc_html__( 'Recomputing latest post in every topic and forum&hellip; %s', 'bbpress' );
838
+ $result = esc_html__( 'Failed!', 'bbpress' );
839
 
840
  // First, delete everything.
841
  if ( is_wp_error( $bbp_db->query( "DELETE FROM `{$bbp_db->postmeta}` WHERE `meta_key` IN ( '_bbp_last_reply_id', '_bbp_last_topic_id', '_bbp_last_active_id', '_bbp_last_active_time' )" ) ) ) {
941
  }
942
 
943
  // Complete results
944
+ return array( 0, sprintf( $statement, esc_html__( 'Complete!', 'bbpress' ) ) );
945
  }
946
 
947
  /**
948
+ * Repair the relationship of sticky topics to the actual parent forum
949
  *
950
  * @since 2.3.0 bbPress (r4695)
951
  *
962
 
963
  // Define variables
964
  $bbp_db = bbp_db();
965
+ $statement = esc_html__( 'Repairing the sticky topic to the parent forum relationships&hellip; %s', 'bbpress' );
966
+ $result = esc_html__( 'Failed!', 'bbpress' );
967
 
968
  $forums = $bbp_db->get_col( "SELECT ID FROM `{$bbp_db->posts}` WHERE `post_type` = '" . bbp_get_forum_post_type() . "'" );
969
 
993
 
994
  // If the topic is not a super sticky, and the forum ID does not
995
  // match the topic's forum ID, unset the forum's sticky meta.
996
+ if ( ! bbp_is_topic_super_sticky( $topic_id ) && ( $forum_id !== bbp_get_topic_forum_id( $topic_id ) ) ) {
997
  unset( $forum_stickies[ $forum_id ][ $id ] );
998
  }
999
  }
1000
 
1001
  // Get sticky topic ID's, or use empty string
1002
+ $stickers = ! empty( $forum_stickies[ $forum_id ] )
1003
+ ? array_values( $forum_stickies[ $forum_id ] )
1004
+ : '';
1005
 
1006
  // Update the forum's sticky topics meta
1007
  update_post_meta( $forum_id, '_bbp_sticky_topics', $stickers );
1008
  }
1009
 
1010
  // Complete results
1011
+ return array( 0, sprintf( $statement, esc_html__( 'Complete!', 'bbpress' ) ) );
1012
  }
1013
 
1014
  /**
1015
  * Repair closed topics
1016
  *
1017
+ * Closed topics that are missing the post-meta "_bbp_status" key value "publish"
1018
+ * result in unexpected behavior, primarily this would have only occurred if you
1019
  * had imported forums from another forum package previous to bbPress v2.6,
1020
  * https://bbpress.trac.wordpress.org/ticket/2577
1021
  *
1032
 
1033
  // Define variables
1034
  $bbp_db = bbp_db();
1035
+ $statement = esc_html__( 'Repairing closed topics&hellip; %s', 'bbpress' );
1036
+ $result = esc_html__( 'No closed topics to repair.', 'bbpress' );
1037
  $changed = 0;
1038
 
1039
+ // Results
1040
+ $query = "SELECT ID FROM `{$bbp_db->posts}` WHERE `post_type` = '%s' AND `post_status` = 'closed'";
1041
+ $prepare = $bbp_db->prepare( $query, bbp_get_topic_post_type() );
1042
+ $closed_topics = $bbp_db->get_col( $prepare );
1043
 
1044
  // Bail if no closed topics found
1045
  if ( empty( $closed_topics ) || is_wp_error( $closed_topics ) ) {
1069
  }
1070
 
1071
  /**
1072
+ * Repair the private and hidden forums
1073
  *
1074
  * @since 2.2.0 bbPress (r4104)
1075
  *
1077
  * @return array An array of the status code and the message
1078
  */
1079
  function bbp_admin_repair_forum_visibility() {
1080
+ $statement = esc_html__( 'Recalculating forum visibility&hellip; %s', 'bbpress' );
1081
 
1082
  // Bail if queries returned errors
1083
  if ( ! bbp_repair_forum_visibility() ) {
1084
+ return array( 2, sprintf( $statement, esc_html__( 'Failed!', 'bbpress' ) ) );
1085
 
1086
  // Complete results
1087
  } else {
1088
+ return array( 0, sprintf( $statement, esc_html__( 'Complete!', 'bbpress' ) ) );
1089
  }
1090
  }
1091
 
1092
  /**
1093
+ * Repair the parent forum meta for each topic and reply
1094
  *
1095
  * @since 2.1.0 bbPress (r3876)
1096
  *
1104
 
1105
  // Define variables
1106
  $bbp_db = bbp_db();
1107
+ $statement = esc_html__( 'Recalculating the forum for each post&hellip; %s', 'bbpress' );
1108
+ $result = esc_html__( 'Failed!', 'bbpress' );
1109
 
1110
  // First, delete everything.
1111
  if ( is_wp_error( $bbp_db->query( "DELETE FROM `{$bbp_db->postmeta}` WHERE `meta_key` = '_bbp_forum_id'" ) ) ) {
1141
  }
1142
 
1143
  // Complete results
1144
+ return array( 0, sprintf( $statement, esc_html__( 'Complete!', 'bbpress' ) ) );
1145
  }
1146
 
1147
  /**
1148
+ * Repair the topic for each post
1149
  *
1150
  * @since 2.1.0 bbPress (r3876)
1151
  *
1159
 
1160
  // Define variables
1161
  $bbp_db = bbp_db();
1162
+ $statement = esc_html__( 'Recalculating the topic for each post&hellip; %s', 'bbpress' );
1163
+ $result = esc_html__( 'Failed!', 'bbpress' );
1164
 
1165
  // First, delete everything.
1166
  if ( is_wp_error( $bbp_db->query( "DELETE FROM `{$bbp_db->postmeta}` WHERE `meta_key` = '_bbp_topic_id'" ) ) ) {
1196
  }
1197
 
1198
  // Complete results
1199
+ return array( 0, sprintf( $statement, esc_html__( 'Complete!', 'bbpress' ) ) );
1200
  }
1201
 
1202
  /**
1214
 
1215
  // Define variables
1216
  $bbp_db = bbp_db();
1217
+ $statement = esc_html__( 'Recalculating reply menu order&hellip; %s', 'bbpress' );
1218
+ $result = esc_html__( 'No reply positions to recalculate.', 'bbpress' );
1219
 
1220
  // Delete cases where `_bbp_reply_to` was accidentally set to itself
1221
  if ( is_wp_error( $bbp_db->query( "DELETE FROM `{$bbp_db->postmeta}` WHERE `meta_key` = '_bbp_reply_to' AND `post_id` = `meta_value`" ) ) ) {
1253
  // Flush the cache; things are about to get ugly.
1254
  wp_cache_flush();
1255
 
1256
+ return array( 0, sprintf( $statement, esc_html__( 'Complete!', 'bbpress' ) ) );
1257
  }
includes/admin/tools/reset.php CHANGED
@@ -24,7 +24,7 @@ function bbp_admin_reset_page() {
24
 
25
  <div class="wrap">
26
  <h1><?php esc_html_e( 'Forum Tools', 'bbpress' ); ?></h1>
27
- <h2 class="nav-tab-wrapper"><?php bbp_tools_admin_tabs( __( 'Reset Forums', 'bbpress' ) ); ?></h2>
28
  <p><?php esc_html_e( 'Revert your forums back to a brand new installation, as if bbPress were never installed. This process cannot be undone.', 'bbpress' ); ?></p>
29
 
30
  <form class="settings" method="post" action="">
@@ -105,8 +105,8 @@ function bbp_admin_reset_handler() {
105
 
106
  // Stores messages
107
  $messages = array();
108
- $failed = __( 'Failed!', 'bbpress' );
109
- $success = __( 'Success!', 'bbpress' );
110
 
111
  // Flush the cache; things are about to get ugly.
112
  wp_cache_flush();
@@ -119,8 +119,8 @@ function bbp_admin_reset_handler() {
119
  $rpt = bbp_get_reply_post_type();
120
 
121
  // Define variables
122
- $bbp_db = bbp_db();
123
- $statement = __( 'Deleting Posts&hellip; %s', 'bbpress' );
124
 
125
  $sql_posts = $bbp_db->get_results( "SELECT `ID` FROM `{$bbp_db->posts}` WHERE `post_type` IN ('{$fpt}', '{$tpt}', '{$rpt}')", OBJECT_K );
126
  $sql_delete = "DELETE FROM `{$bbp_db->posts}` WHERE `post_type` IN ('{$fpt}', '{$tpt}', '{$rpt}')";
@@ -134,7 +134,7 @@ function bbp_admin_reset_handler() {
134
  foreach ( $sql_posts as $key => $value ) {
135
  $sql_meta[] = $key;
136
  }
137
- $statement = __( 'Deleting Post Meta&hellip; %s', 'bbpress' );
138
  $sql_meta = implode( "', '", $sql_meta );
139
  $sql_delete = "DELETE FROM `{$bbp_db->postmeta}` WHERE `post_id` IN ('{$sql_meta}')";
140
  $result = is_wp_error( $bbp_db->query( $sql_delete ) ) ? $failed : $success;
@@ -148,7 +148,7 @@ function bbp_admin_reset_handler() {
148
  foreach ( $sql_posts as $key => $value ) {
149
  $sql_meta[] = $key;
150
  }
151
- $statement = __( 'Deleting Post Revisions&hellip; %s', 'bbpress' );
152
  $sql_meta = implode( "', '", $sql_meta );
153
  $sql_delete = "DELETE FROM `{$bbp_db->posts}` WHERE `post_parent` IN ('{$sql_meta}') AND `post_type` = 'revision'";
154
  $result = is_wp_error( $bbp_db->query( $sql_delete ) ) ? $failed : $success;
@@ -157,14 +157,14 @@ function bbp_admin_reset_handler() {
157
 
158
  /** Forum moderators ******************************************************/
159
 
160
- $statement = __( 'Deleting Forum Moderators&hellip; %s', 'bbpress' );
161
  $sql_delete = "DELETE a,b,c FROM `{$bbp_db->terms}` AS a LEFT JOIN `{$bbp_db->term_taxonomy}` AS c ON a.term_id = c.term_id LEFT JOIN `{$bbp_db->term_relationships}` AS b ON b.term_taxonomy_id = c.term_taxonomy_id WHERE c.taxonomy = 'forum-mod'";
162
  $result = is_wp_error( $bbp_db->query( $sql_delete ) ) ? $failed : $success;
163
  $messages[] = sprintf( $statement, $result );
164
 
165
  /** Topic Tags ************************************************************/
166
 
167
- $statement = __( 'Deleting Topic Tags&hellip; %s', 'bbpress' );
168
  $sql_delete = "DELETE a,b,c FROM `{$bbp_db->terms}` AS a LEFT JOIN `{$bbp_db->term_taxonomy}` AS c ON a.term_id = c.term_id LEFT JOIN `{$bbp_db->term_relationships}` AS b ON b.term_taxonomy_id = c.term_taxonomy_id WHERE c.taxonomy = 'topic-tag'";
169
  $result = is_wp_error( $bbp_db->query( $sql_delete ) ) ? $failed : $success;
170
  $messages[] = sprintf( $statement, $result );
@@ -179,12 +179,12 @@ function bbp_admin_reset_handler() {
179
  foreach ( $sql_users as $key => $value ) {
180
  $sql_meta[] = $key;
181
  }
182
- $statement = __( 'Deleting Imported Users&hellip; %s', 'bbpress' );
183
  $sql_meta = implode( "', '", $sql_meta );
184
  $sql_delete = "DELETE FROM `{$bbp_db->users}` WHERE `ID` IN ('{$sql_meta}')";
185
  $result = is_wp_error( $bbp_db->query( $sql_delete ) ) ? $failed : $success;
186
  $messages[] = sprintf( $statement, $result );
187
- $statement = __( 'Deleting Imported User Meta&hellip; %s', 'bbpress' );
188
  $sql_delete = "DELETE FROM `{$bbp_db->usermeta}` WHERE `user_id` IN ('{$sql_meta}')";
189
  $result = is_wp_error( $bbp_db->query( $sql_delete ) ) ? $failed : $success;
190
  $messages[] = sprintf( $statement, $result );
@@ -192,14 +192,14 @@ function bbp_admin_reset_handler() {
192
  }
193
 
194
  // Next, if we still have users that were not imported delete that meta data
195
- $statement = __( 'Deleting User Meta&hellip; %s', 'bbpress' );
196
  $sql_delete = "DELETE FROM `{$bbp_db->usermeta}` WHERE `meta_key` LIKE '%%_bbp_%%'";
197
  $result = is_wp_error( $bbp_db->query( $sql_delete ) ) ? $failed : $success;
198
  $messages[] = sprintf( $statement, $result );
199
 
200
  /** Converter *************************************************************/
201
 
202
- $statement = __( 'Deleting Conversion Table&hellip; %s', 'bbpress' );
203
  $table_name = $bbp_db->prefix . 'bbp_converter_translator';
204
  if ( $bbp_db->get_var( "SHOW TABLES LIKE '{$table_name}'" ) === $table_name ) {
205
  $bbp_db->query( "DROP TABLE {$table_name}" );
@@ -211,13 +211,13 @@ function bbp_admin_reset_handler() {
211
 
212
  /** Options ***************************************************************/
213
 
214
- $statement = __( 'Deleting Settings&hellip; %s', 'bbpress' );
215
  bbp_delete_options();
216
  $messages[] = sprintf( $statement, $success );
217
 
218
  /** Roles *****************************************************************/
219
 
220
- $statement = __( 'Deleting Roles and Capabilities&hellip; %s', 'bbpress' );
221
  bbp_remove_roles();
222
  bbp_remove_caps();
223
  $messages[] = sprintf( $statement, $success );
24
 
25
  <div class="wrap">
26
  <h1><?php esc_html_e( 'Forum Tools', 'bbpress' ); ?></h1>
27
+ <h2 class="nav-tab-wrapper"><?php bbp_tools_admin_tabs( esc_html__( 'Reset Forums', 'bbpress' ) ); ?></h2>
28
  <p><?php esc_html_e( 'Revert your forums back to a brand new installation, as if bbPress were never installed. This process cannot be undone.', 'bbpress' ); ?></p>
29
 
30
  <form class="settings" method="post" action="">
105
 
106
  // Stores messages
107
  $messages = array();
108
+ $failed = esc_html__( 'Failed!', 'bbpress' );
109
+ $success = esc_html__( 'Success!', 'bbpress' );
110
 
111
  // Flush the cache; things are about to get ugly.
112
  wp_cache_flush();
119
  $rpt = bbp_get_reply_post_type();
120
 
121
  // Define variables
122
+ $bbp_db = bbp_db();
123
+ $statement = esc_html__( 'Deleting Posts&hellip; %s', 'bbpress' );
124
 
125
  $sql_posts = $bbp_db->get_results( "SELECT `ID` FROM `{$bbp_db->posts}` WHERE `post_type` IN ('{$fpt}', '{$tpt}', '{$rpt}')", OBJECT_K );
126
  $sql_delete = "DELETE FROM `{$bbp_db->posts}` WHERE `post_type` IN ('{$fpt}', '{$tpt}', '{$rpt}')";
134
  foreach ( $sql_posts as $key => $value ) {
135
  $sql_meta[] = $key;
136
  }
137
+ $statement = esc_html__( 'Deleting Post Meta&hellip; %s', 'bbpress' );
138
  $sql_meta = implode( "', '", $sql_meta );
139
  $sql_delete = "DELETE FROM `{$bbp_db->postmeta}` WHERE `post_id` IN ('{$sql_meta}')";
140
  $result = is_wp_error( $bbp_db->query( $sql_delete ) ) ? $failed : $success;
148
  foreach ( $sql_posts as $key => $value ) {
149
  $sql_meta[] = $key;
150
  }
151
+ $statement = esc_html__( 'Deleting Post Revisions&hellip; %s', 'bbpress' );
152
  $sql_meta = implode( "', '", $sql_meta );
153
  $sql_delete = "DELETE FROM `{$bbp_db->posts}` WHERE `post_parent` IN ('{$sql_meta}') AND `post_type` = 'revision'";
154
  $result = is_wp_error( $bbp_db->query( $sql_delete ) ) ? $failed : $success;
157
 
158
  /** Forum moderators ******************************************************/
159
 
160
+ $statement = esc_html__( 'Deleting Forum Moderators&hellip; %s', 'bbpress' );
161
  $sql_delete = "DELETE a,b,c FROM `{$bbp_db->terms}` AS a LEFT JOIN `{$bbp_db->term_taxonomy}` AS c ON a.term_id = c.term_id LEFT JOIN `{$bbp_db->term_relationships}` AS b ON b.term_taxonomy_id = c.term_taxonomy_id WHERE c.taxonomy = 'forum-mod'";
162
  $result = is_wp_error( $bbp_db->query( $sql_delete ) ) ? $failed : $success;
163
  $messages[] = sprintf( $statement, $result );
164
 
165
  /** Topic Tags ************************************************************/
166
 
167
+ $statement = esc_html__( 'Deleting Topic Tags&hellip; %s', 'bbpress' );
168
  $sql_delete = "DELETE a,b,c FROM `{$bbp_db->terms}` AS a LEFT JOIN `{$bbp_db->term_taxonomy}` AS c ON a.term_id = c.term_id LEFT JOIN `{$bbp_db->term_relationships}` AS b ON b.term_taxonomy_id = c.term_taxonomy_id WHERE c.taxonomy = 'topic-tag'";
169
  $result = is_wp_error( $bbp_db->query( $sql_delete ) ) ? $failed : $success;
170
  $messages[] = sprintf( $statement, $result );
179
  foreach ( $sql_users as $key => $value ) {
180
  $sql_meta[] = $key;
181
  }
182
+ $statement = esc_html__( 'Deleting Imported Users&hellip; %s', 'bbpress' );
183
  $sql_meta = implode( "', '", $sql_meta );
184
  $sql_delete = "DELETE FROM `{$bbp_db->users}` WHERE `ID` IN ('{$sql_meta}')";
185
  $result = is_wp_error( $bbp_db->query( $sql_delete ) ) ? $failed : $success;
186
  $messages[] = sprintf( $statement, $result );
187
+ $statement = esc_html__( 'Deleting Imported User Meta&hellip; %s', 'bbpress' );
188
  $sql_delete = "DELETE FROM `{$bbp_db->usermeta}` WHERE `user_id` IN ('{$sql_meta}')";
189
  $result = is_wp_error( $bbp_db->query( $sql_delete ) ) ? $failed : $success;
190
  $messages[] = sprintf( $statement, $result );
192
  }
193
 
194
  // Next, if we still have users that were not imported delete that meta data
195
+ $statement = esc_html__( 'Deleting User Meta&hellip; %s', 'bbpress' );
196
  $sql_delete = "DELETE FROM `{$bbp_db->usermeta}` WHERE `meta_key` LIKE '%%_bbp_%%'";
197
  $result = is_wp_error( $bbp_db->query( $sql_delete ) ) ? $failed : $success;
198
  $messages[] = sprintf( $statement, $result );
199
 
200
  /** Converter *************************************************************/
201
 
202
+ $statement = esc_html__( 'Deleting Conversion Table&hellip; %s', 'bbpress' );
203
  $table_name = $bbp_db->prefix . 'bbp_converter_translator';
204
  if ( $bbp_db->get_var( "SHOW TABLES LIKE '{$table_name}'" ) === $table_name ) {
205
  $bbp_db->query( "DROP TABLE {$table_name}" );
211
 
212
  /** Options ***************************************************************/
213
 
214
+ $statement = esc_html__( 'Deleting Settings&hellip; %s', 'bbpress' );
215
  bbp_delete_options();
216
  $messages[] = sprintf( $statement, $success );
217
 
218
  /** Roles *****************************************************************/
219
 
220
+ $statement = esc_html__( 'Deleting Roles and Capabilities&hellip; %s', 'bbpress' );
221
  bbp_remove_roles();
222
  bbp_remove_caps();
223
  $messages[] = sprintf( $statement, $success );
includes/admin/tools/{upgrades.php → upgrade.php} RENAMED
@@ -28,7 +28,7 @@ function bbp_admin_upgrade_page() {
28
 
29
  <div class="wrap">
30
  <h1><?php esc_html_e( 'Forum Tools', 'bbpress' ); ?></h1>
31
- <h2 class="nav-tab-wrapper"><?php bbp_tools_admin_tabs( __( 'Upgrade Forums', 'bbpress' ) ); ?></h2>
32
 
33
  <p><?php esc_html_e( 'As bbPress improves, occasionally database upgrades are required but some forums are too large to upgrade automatically. Use the tools below to manually run upgrade routines.', 'bbpress' ); ?></p>
34
  <p class="description"><?php esc_html_e( 'Some of these tools create substantial database overhead. Use caution when running more than 1 upgrade at a time.', 'bbpress' ); ?></p>
@@ -165,8 +165,8 @@ function bbp_admin_upgrade_user_engagements() {
165
 
166
  // Define variables
167
  $bbp_db = bbp_db();
168
- $statement = __( 'Upgrading user engagements &hellip; %s', 'bbpress' );
169
- $result = __( 'No engagements to upgrade.', 'bbpress' );
170
 
171
  // Delete previous engagements
172
  $sql_delete = "DELETE FROM {$bbp_db->postmeta} WHERE meta_key = '_bbp_engagement'";
@@ -174,12 +174,12 @@ function bbp_admin_upgrade_user_engagements() {
174
  return array( 1, sprintf( $statement, $result ) );
175
  }
176
 
177
- // Post types and status
178
  $tpt = bbp_get_topic_post_type();
179
  $rpt = bbp_get_reply_post_type();
180
  $pps = bbp_get_public_status_id();
181
  $cps = bbp_get_closed_status_id();
182
- $sql = $bbp_db->prepare( "INSERT INTO {$bbp_db->postmeta} (post_id, meta_key, meta_value) (
183
  SELECT postmeta.meta_value, '_bbp_engagement', posts.post_author
184
  FROM {$bbp_db->posts} AS posts
185
  LEFT JOIN {$bbp_db->postmeta} AS postmeta
@@ -187,9 +187,11 @@ function bbp_admin_upgrade_user_engagements() {
187
  AND postmeta.meta_key = '_bbp_topic_id'
188
  WHERE posts.post_type IN (%s, %s)
189
  AND posts.post_status IN (%s, %s)
190
- GROUP BY postmeta.meta_value, posts.post_author)", $tpt, $rpt, $pps, $cps );
191
 
192
- $engagements = $bbp_db->query( $sql );
 
 
193
 
194
  // Bail if no closed topics found
195
  if ( empty( $engagements ) || is_wp_error( $engagements ) ) {
@@ -216,7 +218,7 @@ function bbp_admin_upgrade_group_forum_relationships() {
216
 
217
  // Define variables
218
  $bbp_db = bbp_db();
219
- $statement = __( 'Upgrading BuddyPress group-forum relationships&hellip; %s', 'bbpress' );
220
  $g_count = 0;
221
  $f_count = 0;
222
  $s_count = 0;
@@ -237,7 +239,7 @@ function bbp_admin_upgrade_group_forum_relationships() {
237
 
238
  // Bail if forum IDs returned an error
239
  if ( is_wp_error( $forum_ids ) || empty( $bbp_db->last_result ) ) {
240
- return array( 2, sprintf( $statement, __( 'Failed!', 'bbpress' ) ) );
241
  }
242
 
243
  // Stash the last results
@@ -320,8 +322,8 @@ function bbp_admin_upgrade_group_forum_relationships() {
320
  if ( 'Default Forum' === $posts[0]->post_title ) {
321
  wp_update_post( array(
322
  'ID' => $posts[0]->ID,
323
- 'post_title' => __( 'Group Forums', 'bbpress' ),
324
- 'post_name' => __( 'group-forums', 'bbpress' ),
325
  ) );
326
  }
327
 
@@ -337,7 +339,7 @@ function bbp_admin_upgrade_group_forum_relationships() {
337
  remove_role( 'keymaster' );
338
 
339
  // Complete results
340
- $result = sprintf( __( 'Complete! %s groups updated; %s forums updated; %s forum statuses synced.', 'bbpress' ), bbp_number_format( $g_count ), bbp_number_format( $f_count ), bbp_number_format( $s_count ) );
341
  return array( 0, sprintf( $statement, $result ) );
342
  }
343
 
@@ -352,11 +354,16 @@ function bbp_admin_upgrade_user_favorites() {
352
 
353
  // Define variables
354
  $bbp_db = bbp_db();
355
- $statement = __( 'Upgrading user favorites &hellip; %s', 'bbpress' );
356
- $result = __( 'No favorites to upgrade.', 'bbpress' );
357
  $total = 0;
358
- $key = $bbp_db->prefix . '_bbp_favorites';
359
- $favs = $bbp_db->get_results( $bbp_db->prepare( "SELECT * FROM {$bbp_db->usermeta} WHERE meta_key = %s", $key ) );
 
 
 
 
 
360
 
361
  // Bail if no closed topics found
362
  if ( empty( $favs ) || is_wp_error( $favs ) ) {
@@ -373,12 +380,12 @@ function bbp_admin_upgrade_user_favorites() {
373
  foreach ( $post_ids as $post_id ) {
374
 
375
  // Skip if already exists
376
- if ( $bbp_db->get_var( $bbp_db->prepare( "SELECT COUNT(*) FROM {$bbp_db->postmeta} WHERE post_id = %d AND meta_key = %s AND meta_value = %d", $post_id, '_bbp_favorite', $meta->user_id ) ) ) {
377
  continue;
378
  }
379
 
380
  // Add the post meta
381
- $added = add_post_meta( $post_id, '_bbp_favorite', $meta->user_id, false );
382
 
383
  // Bump counts if successfully added
384
  if ( ! empty( $added ) ) {
@@ -407,11 +414,16 @@ function bbp_admin_upgrade_user_topic_subscriptions() {
407
 
408
  // Define variables
409
  $bbp_db = bbp_db();
410
- $statement = __( 'Upgrading user topic subscriptions &hellip; %s', 'bbpress' );
411
- $result = __( 'No topic subscriptions to upgrade.', 'bbpress' );
412
  $total = 0;
413
- $key = $bbp_db->prefix . '_bbp_subscriptions';
414
- $subs = $bbp_db->get_results( $bbp_db->prepare( "SELECT * FROM {$bbp_db->usermeta} WHERE meta_key = %s ORDER BY user_id", $key ) );
 
 
 
 
 
415
 
416
  // Bail if no topic subscriptions found
417
  if ( empty( $subs ) || is_wp_error( $subs ) ) {
@@ -428,12 +440,12 @@ function bbp_admin_upgrade_user_topic_subscriptions() {
428
  foreach ( $post_ids as $post_id ) {
429
 
430
  // Skip if already exists
431
- if ( $bbp_db->get_var( $bbp_db->prepare( "SELECT COUNT(*) FROM {$bbp_db->postmeta} WHERE post_id = %d AND meta_key = %s AND meta_value = %d", $post_id, '_bbp_subscription', $meta->user_id ) ) ) {
432
  continue;
433
  }
434
 
435
  // Add the post meta
436
- $added = add_post_meta( $post_id, '_bbp_subscription', $meta->user_id, false );
437
 
438
  // Bump counts if successfully added
439
  if ( ! empty( $added ) ) {
@@ -462,11 +474,16 @@ function bbp_admin_upgrade_user_forum_subscriptions() {
462
 
463
  // Define variables
464
  $bbp_db = bbp_db();
465
- $statement = __( 'Upgrading user forum subscriptions &hellip; %s', 'bbpress' );
466
- $result = __( 'No forum subscriptions to upgrade.', 'bbpress' );
467
  $total = 0;
468
- $key = $bbp_db->prefix . '_bbp_forum_subscriptions';
469
- $subs = $bbp_db->get_results( $bbp_db->prepare( "SELECT * FROM {$bbp_db->usermeta} WHERE meta_key = %s ORDER BY user_id", $key ) );
 
 
 
 
 
470
 
471
  // Bail if no forum subscriptions found
472
  if ( empty( $subs ) || is_wp_error( $subs ) ) {
@@ -483,12 +500,12 @@ function bbp_admin_upgrade_user_forum_subscriptions() {
483
  foreach ( $post_ids as $post_id ) {
484
 
485
  // Skip if already exists
486
- if ( $bbp_db->get_var( $bbp_db->prepare( "SELECT COUNT(*) FROM {$bbp_db->postmeta} WHERE post_id = %d AND meta_key = %s AND meta_value = %d", $post_id, '_bbp_forum_subscription', $meta->user_id ) ) ) {
487
  continue;
488
  }
489
 
490
  // Add the post meta
491
- $added = add_post_meta( $post_id, '_bbp_subscription', $meta->user_id, false );
492
 
493
  // Bump counts if successfully added
494
  if ( ! empty( $added ) ) {
@@ -507,7 +524,7 @@ function bbp_admin_upgrade_user_forum_subscriptions() {
507
  }
508
 
509
  /**
510
- * Remove favorites data from wp_usermeta for bbPress 2.6 and higher
511
  *
512
  * @since 2.6.0 bbPress (r6281)
513
  *
@@ -517,17 +534,23 @@ function bbp_admin_upgrade_remove_favorites_from_usermeta() {
517
 
518
  // Define variables
519
  $bbp_db = bbp_db();
520
- $statement = __( 'Remove favorites from usermeta &hellip; %s', 'bbpress' );
521
- $result = __( 'No favorites to remove.', 'bbpress' );
522
  $total = 0;
523
  $key = $bbp_db->prefix . '_bbp_favorites';
524
- $favs = $bbp_db->get_results( $bbp_db->prepare( "SELECT * FROM {$bbp_db->usermeta} WHERE meta_key = %s ORDER BY user_id", $key ) );
 
 
 
 
525
 
526
  // Bail if no favorites found
527
  if ( empty( $favs ) || is_wp_error( $favs ) ) {
528
  return array( 1, sprintf( $statement, $result ) );
529
  }
530
 
 
 
531
  // Loop through each user's favorites
532
  foreach ( $favs as $meta ) {
533
 
@@ -548,7 +571,7 @@ function bbp_admin_upgrade_remove_favorites_from_usermeta() {
548
  }
549
 
550
  /**
551
- * Remove topic subscriptions data from wp_usermeta for bbPress 2.6 and higher
552
  *
553
  * @since 2.6.0 bbPress (r6281)
554
  *
@@ -558,11 +581,15 @@ function bbp_admin_upgrade_remove_topic_subscriptions_from_usermeta() {
558
 
559
  // Define variables
560
  $bbp_db = bbp_db();
561
- $statement = __( 'Remove topic subscriptions from usermeta &hellip; %s', 'bbpress' );
562
- $result = __( 'No topic subscriptions to remove.', 'bbpress' );
563
  $total = 0;
564
  $key = $bbp_db->prefix . '_bbp_subscriptions';
565
- $subs = $bbp_db->get_results( $bbp_db->prepare( "SELECT * FROM {$bbp_db->usermeta} WHERE meta_key = %s ORDER BY user_id", $key ) );
 
 
 
 
566
 
567
  // Bail if no forum favorites found
568
  if ( empty( $subs ) || is_wp_error( $subs ) ) {
@@ -589,7 +616,7 @@ function bbp_admin_upgrade_remove_topic_subscriptions_from_usermeta() {
589
  }
590
 
591
  /**
592
- * Remove topic subscriptions data from wp_usermeta for bbPress 2.6 and higher
593
  *
594
  * @since 2.6.0 bbPress (r6281)
595
  *
@@ -599,11 +626,15 @@ function bbp_admin_upgrade_remove_forum_subscriptions_from_usermeta() {
599
 
600
  // Define variables
601
  $bbp_db = bbp_db();
602
- $statement = __( 'Remove forum subscriptions from usermeta &hellip; %s', 'bbpress' );
603
- $result = __( 'No forum subscriptions to remove.', 'bbpress' );
604
  $total = 0;
605
  $key = $bbp_db->prefix . '_bbp_forum_subscriptions';
606
- $subs = $bbp_db->get_results( $bbp_db->prepare( "SELECT * FROM {$bbp_db->usermeta} WHERE meta_key = %s ORDER BY user_id", $key ) );
 
 
 
 
607
 
608
  // Bail if no forum favorites found
609
  if ( empty( $subs ) || is_wp_error( $subs ) ) {
28
 
29
  <div class="wrap">
30
  <h1><?php esc_html_e( 'Forum Tools', 'bbpress' ); ?></h1>
31
+ <h2 class="nav-tab-wrapper"><?php bbp_tools_admin_tabs( esc_html__( 'Upgrade Forums', 'bbpress' ) ); ?></h2>
32
 
33
  <p><?php esc_html_e( 'As bbPress improves, occasionally database upgrades are required but some forums are too large to upgrade automatically. Use the tools below to manually run upgrade routines.', 'bbpress' ); ?></p>
34
  <p class="description"><?php esc_html_e( 'Some of these tools create substantial database overhead. Use caution when running more than 1 upgrade at a time.', 'bbpress' ); ?></p>
165
 
166
  // Define variables
167
  $bbp_db = bbp_db();
168
+ $statement = esc_html__( 'Upgrading user engagements&hellip; %s', 'bbpress' );
169
+ $result = esc_html__( 'No engagements to upgrade.', 'bbpress' );
170
 
171
  // Delete previous engagements
172
  $sql_delete = "DELETE FROM {$bbp_db->postmeta} WHERE meta_key = '_bbp_engagement'";
174
  return array( 1, sprintf( $statement, $result ) );
175
  }
176
 
177
+ // Post types and statuses
178
  $tpt = bbp_get_topic_post_type();
179
  $rpt = bbp_get_reply_post_type();
180
  $pps = bbp_get_public_status_id();
181
  $cps = bbp_get_closed_status_id();
182
+ $sql = "INSERT INTO {$bbp_db->postmeta} (post_id, meta_key, meta_value) (
183
  SELECT postmeta.meta_value, '_bbp_engagement', posts.post_author
184
  FROM {$bbp_db->posts} AS posts
185
  LEFT JOIN {$bbp_db->postmeta} AS postmeta
187
  AND postmeta.meta_key = '_bbp_topic_id'
188
  WHERE posts.post_type IN (%s, %s)
189
  AND posts.post_status IN (%s, %s)
190
+ GROUP BY postmeta.meta_value, posts.post_author)";
191
 
192
+ // Run the big query
193
+ $prepare = $bbp_db->prepare( $sql, $tpt, $rpt, $pps, $cps );
194
+ $engagements = $bbp_db->query( $prepare );
195
 
196
  // Bail if no closed topics found
197
  if ( empty( $engagements ) || is_wp_error( $engagements ) ) {
218
 
219
  // Define variables
220
  $bbp_db = bbp_db();
221
+ $statement = esc_html__( 'Upgrading BuddyPress group-forum relationships&hellip; %s', 'bbpress' );
222
  $g_count = 0;
223
  $f_count = 0;
224
  $s_count = 0;
239
 
240
  // Bail if forum IDs returned an error
241
  if ( is_wp_error( $forum_ids ) || empty( $bbp_db->last_result ) ) {
242
+ return array( 2, sprintf( $statement, esc_html__( 'Failed!', 'bbpress' ) ) );
243
  }
244
 
245
  // Stash the last results
322
  if ( 'Default Forum' === $posts[0]->post_title ) {
323
  wp_update_post( array(
324
  'ID' => $posts[0]->ID,
325
+ 'post_title' => esc_html__( 'Group Forums', 'bbpress' ),
326
+ 'post_name' => esc_html__( 'group-forums', 'bbpress' ),
327
  ) );
328
  }
329
 
339
  remove_role( 'keymaster' );
340
 
341
  // Complete results
342
+ $result = sprintf( esc_html__( 'Complete! %s groups updated; %s forums updated; %s forum statuses synced.', 'bbpress' ), bbp_number_format( $g_count ), bbp_number_format( $f_count ), bbp_number_format( $s_count ) );
343
  return array( 0, sprintf( $statement, $result ) );
344
  }
345
 
354
 
355
  // Define variables
356
  $bbp_db = bbp_db();
357
+ $statement = esc_html__( 'Upgrading user favorites&hellip; %s', 'bbpress' );
358
+ $result = esc_html__( 'No favorites to upgrade.', 'bbpress' );
359
  $total = 0;
360
+ $old_key = $bbp_db->prefix . '_bbp_favorites';
361
+ $new_key = '_bbp_favorite';
362
+
363
+ // Results
364
+ $query = "SELECT * FROM {$bbp_db->usermeta} WHERE meta_key = %s";
365
+ $prepare = $bbp_db->prepare( $query, $old_key );
366
+ $favs = $bbp_db->get_results( $prepare );
367
 
368
  // Bail if no closed topics found
369
  if ( empty( $favs ) || is_wp_error( $favs ) ) {
380
  foreach ( $post_ids as $post_id ) {
381
 
382
  // Skip if already exists
383
+ if ( $bbp_db->get_var( $bbp_db->prepare( "SELECT COUNT(*) FROM {$bbp_db->postmeta} WHERE post_id = %d AND meta_key = %s AND meta_value = %d", $post_id, $new_key, $meta->user_id ) ) ) {
384
  continue;
385
  }
386
 
387
  // Add the post meta
388
+ $added = add_post_meta( $post_id, $new_key, $meta->user_id, false );
389
 
390
  // Bump counts if successfully added
391
  if ( ! empty( $added ) ) {
414
 
415
  // Define variables
416
  $bbp_db = bbp_db();
417
+ $statement = esc_html__( 'Upgrading user topic subscriptions&hellip; %s', 'bbpress' );
418
+ $result = esc_html__( 'No topic subscriptions to upgrade.', 'bbpress' );
419
  $total = 0;
420
+ $old_key = $bbp_db->prefix . '_bbp_subscriptions';
421
+ $new_key = '_bbp_subscription';
422
+
423
+ // Results
424
+ $query = "SELECT * FROM {$bbp_db->usermeta} WHERE meta_key = %s ORDER BY user_id";
425
+ $prepare = $bbp_db->prepare( $query, $old_key );
426
+ $subs = $bbp_db->get_results( $prepare );
427
 
428
  // Bail if no topic subscriptions found
429
  if ( empty( $subs ) || is_wp_error( $subs ) ) {
440
  foreach ( $post_ids as $post_id ) {
441
 
442
  // Skip if already exists
443
+ if ( $bbp_db->get_var( $bbp_db->prepare( "SELECT COUNT(*) FROM {$bbp_db->postmeta} WHERE post_id = %d AND meta_key = %s AND meta_value = %d", $post_id, $new_key, $meta->user_id ) ) ) {
444
  continue;
445
  }
446
 
447
  // Add the post meta
448
+ $added = add_post_meta( $post_id, $new_key, $meta->user_id, false );
449
 
450
  // Bump counts if successfully added
451
  if ( ! empty( $added ) ) {
474
 
475
  // Define variables
476
  $bbp_db = bbp_db();
477
+ $statement = esc_html__( 'Upgrading user forum subscriptions&hellip; %s', 'bbpress' );
478
+ $result = esc_html__( 'No forum subscriptions to upgrade.', 'bbpress' );
479
  $total = 0;
480
+ $old_key = $bbp_db->prefix . '_bbp_forum_subscriptions';
481
+ $new_key = '_bbp_subscription';
482
+
483
+ // Results
484
+ $query = "SELECT * FROM {$bbp_db->usermeta} WHERE meta_key = %s ORDER BY user_id";
485
+ $prepare = $bbp_db->prepare( $query, $old_key );
486
+ $subs = $bbp_db->get_results( $prepare );
487
 
488
  // Bail if no forum subscriptions found
489
  if ( empty( $subs ) || is_wp_error( $subs ) ) {
500
  foreach ( $post_ids as $post_id ) {
501
 
502
  // Skip if already exists
503
+ if ( $bbp_db->get_var( $bbp_db->prepare( "SELECT COUNT(*) FROM {$bbp_db->postmeta} WHERE post_id = %d AND meta_key = %s AND meta_value = %d", $post_id, $new_key, $meta->user_id ) ) ) {
504
  continue;
505
  }
506
 
507
  // Add the post meta
508
+ $added = add_post_meta( $post_id, $new_key, $meta->user_id, false );
509
 
510
  // Bump counts if successfully added
511
  if ( ! empty( $added ) ) {
524
  }
525
 
526
  /**
527
+ * Remove favorites data from user meta for bbPress 2.6 and higher
528
  *
529
  * @since 2.6.0 bbPress (r6281)
530
  *
534
 
535
  // Define variables
536
  $bbp_db = bbp_db();
537
+ $statement = esc_html__( 'Remove favorites from usermeta&hellip; %s', 'bbpress' );
538
+ $result = esc_html__( 'No favorites to remove.', 'bbpress' );
539
  $total = 0;
540
  $key = $bbp_db->prefix . '_bbp_favorites';
541
+
542
+ // Results
543
+ $query = "SELECT * FROM {$bbp_db->usermeta} WHERE meta_key = %s ORDER BY user_id";
544
+ $prepare = $bbp_db->prepare( $query, $key );
545
+ $favs = $bbp_db->get_results( $prepare );
546
 
547
  // Bail if no favorites found
548
  if ( empty( $favs ) || is_wp_error( $favs ) ) {
549
  return array( 1, sprintf( $statement, $result ) );
550
  }
551
 
552
+ delete_metadata( 'user', false, $meta_key, false, true );
553
+
554
  // Loop through each user's favorites
555
  foreach ( $favs as $meta ) {
556
 
571
  }
572
 
573
  /**
574
+ * Remove topic subscriptions data from user meta for bbPress 2.6 and higher
575
  *
576
  * @since 2.6.0 bbPress (r6281)
577
  *
581
 
582
  // Define variables
583
  $bbp_db = bbp_db();
584
+ $statement = esc_html__( 'Remove topic subscriptions from usermeta&hellip; %s', 'bbpress' );
585
+ $result = esc_html__( 'No topic subscriptions to remove.', 'bbpress' );
586
  $total = 0;
587
  $key = $bbp_db->prefix . '_bbp_subscriptions';
588
+
589
+ // Results
590
+ $query = "SELECT * FROM {$bbp_db->usermeta} WHERE meta_key = %s ORDER BY user_id";
591
+ $prepare = $bbp_db->prepare( $query, $key );
592
+ $subs = $bbp_db->get_results( $prepare );
593
 
594
  // Bail if no forum favorites found
595
  if ( empty( $subs ) || is_wp_error( $subs ) ) {
616
  }
617
 
618
  /**
619
+ * Remove topic subscriptions data from user meta for bbPress 2.6 and higher
620
  *
621
  * @since 2.6.0 bbPress (r6281)
622
  *
626
 
627
  // Define variables
628
  $bbp_db = bbp_db();
629
+ $statement = esc_html__( 'Remove forum subscriptions from usermeta&hellip; %s', 'bbpress' );
630
+ $result = esc_html__( 'No forum subscriptions to remove.', 'bbpress' );
631
  $total = 0;
632
  $key = $bbp_db->prefix . '_bbp_forum_subscriptions';
633
+
634
+ // Query
635
+ $query = "SELECT * FROM {$bbp_db->usermeta} WHERE meta_key = %s ORDER BY user_id";
636
+ $prepare = $bbp_db->prepare( $query, $key );
637
+ $subs = $bbp_db->get_results( $prepare );
638
 
639
  // Bail if no forum favorites found
640
  if ( empty( $subs ) || is_wp_error( $subs ) ) {
includes/admin/users.php CHANGED
@@ -57,9 +57,9 @@ class BBP_Users_Admin {
57
  if ( bbp_get_major_wp_version() < 4.6 ) {
58
  add_action( 'restrict_manage_users', array( __CLASS__, 'user_role_bulk_dropdown' ) );
59
  } else {
60
- add_action( 'restrict_manage_users', array( $this, 'user_role_bulk_dropdown' ) );
61
  }
62
- add_filter( 'manage_users_columns', array( $this, 'user_role_column' ) );
63
  add_filter( 'manage_users_custom_column', array( $this, 'user_role_row' ), 10, 3 );
64
 
65
  // Only list bbPress roles under Forum Role, remove from WordPress' > 4.4 Site Role list.
@@ -67,8 +67,9 @@ class BBP_Users_Admin {
67
  add_filter( 'get_role_list', array( $this, 'user_role_list_filter' ), 10, 2 );
68
  }
69
 
70
- // Process bulk role change
71
- add_action( 'load-users.php', array( $this, 'user_role_bulk_change' ) );
 
72
  }
73
 
74
  /**
@@ -249,6 +250,28 @@ class BBP_Users_Admin {
249
  }
250
  }
251
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
252
  /**
253
  * Add Forum Role column to the WordPress Users table, and change the
254
  * core role title to "Site Role"
57
  if ( bbp_get_major_wp_version() < 4.6 ) {
58
  add_action( 'restrict_manage_users', array( __CLASS__, 'user_role_bulk_dropdown' ) );
59
  } else {
60
+ add_action( 'restrict_manage_users', array( $this, 'user_role_bulk_dropdown' ), 10, 1 );
61
  }
62
+ add_filter( 'manage_users_columns', array( $this, 'user_role_column' ), 10, 1 );
63
  add_filter( 'manage_users_custom_column', array( $this, 'user_role_row' ), 10, 3 );
64
 
65
  // Only list bbPress roles under Forum Role, remove from WordPress' > 4.4 Site Role list.
67
  add_filter( 'get_role_list', array( $this, 'user_role_list_filter' ), 10, 2 );
68
  }
69
 
70
+ // User List Table
71
+ add_action( 'load-users.php', array( $this, 'user_role_bulk_change' ), 10, 1 );
72
+ add_action( 'user_row_actions', array( $this, 'user_row_actions' ), 10, 2 );
73
  }
74
 
75
  /**
250
  }
251
  }
252
 
253
+ /**
254
+ * Add a "View" link for each user
255
+ *
256
+ * @since 2.6.0 bbPress (r6502)
257
+ *
258
+ * @param array $actions
259
+ * @param WP_User $user
260
+ *
261
+ * @return array Actions with 'view' link added to them
262
+ */
263
+ public function user_row_actions( $actions = array(), $user = false ) {
264
+
265
+ // Reverse
266
+ $actions = array_reverse( $actions );
267
+
268
+ // Add the view action link
269
+ $actions['view'] = '<a href="' . esc_url( bbp_get_user_profile_url( $user->ID ) ) . '" class="bbp-user-profile-link">' . esc_html__( 'View', 'bbpress' ) . '</a>';
270
+
271
+ // Re-reverse
272
+ return array_reverse( $actions );
273
+ }
274
+
275
  /**
276
  * Add Forum Role column to the WordPress Users table, and change the
277
  * core role title to "Site Role"
includes/common/functions.php CHANGED
@@ -77,7 +77,7 @@ function bbp_remove_view_all( $original_link = '' ) {
77
  }
78
 
79
  /**
80
- * If current user can and is vewing all topics/replies
81
  *
82
  * @since 2.0.0 bbPress (r3325)
83
  *
77
  }
78
 
79
  /**
80
+ * If current user can and is viewing all topics/replies
81
  *
82
  * @since 2.0.0 bbPress (r3325)
83
  *
includes/core/actions.php CHANGED
@@ -154,10 +154,10 @@ add_action( 'bbp_template_notices', 'bbp_notice_edit_user_pending_email' );
154
  add_action( 'bbp_template_notices', 'bbp_notice_edit_user_is_super_admin', 2 );
155
 
156
  // Before Delete/Trash/Untrash Forum
157
- add_action( 'wp_trash_post', 'bbp_trash_forum' );
158
- add_action( 'trash_post', 'bbp_trash_forum' );
159
- add_action( 'untrash_post', 'bbp_untrash_forum' );
160
- add_action( 'delete_post', 'bbp_delete_forum' );
161
 
162
  // After Deleted/Trashed/Untrashed Forum
163
  add_action( 'trashed_post', 'bbp_trashed_forum' );
@@ -183,10 +183,10 @@ add_action( 'bbp_new_reply', 'bbp_update_reply', 10, 7 );
183
  add_action( 'bbp_edit_reply', 'bbp_update_reply', 10, 7 );
184
 
185
  // Before Delete/Trash/Untrash Reply
186
- add_action( 'wp_trash_post', 'bbp_trash_reply' );
187
- add_action( 'trash_post', 'bbp_trash_reply' );
188
- add_action( 'untrash_post', 'bbp_untrash_reply' );
189
- add_action( 'delete_post', 'bbp_delete_reply' );
190
 
191
  // After Deleted/Trashed/Untrashed Reply
192
  add_action( 'trashed_post', 'bbp_trashed_reply' );
@@ -205,10 +205,10 @@ add_action( 'bbp_post_split_topic', 'bbp_split_topic_count', 1, 3 );
205
  add_action( 'bbp_post_move_reply', 'bbp_move_reply_count', 1, 3 );
206
 
207
  // Before Delete/Trash/Untrash Topic
208
- add_action( 'wp_trash_post', 'bbp_trash_topic' );
209
- add_action( 'trash_post', 'bbp_trash_topic' );
210
- add_action( 'untrash_post', 'bbp_untrash_topic' );
211
- add_action( 'delete_post', 'bbp_delete_topic' );
212
 
213
  // After Deleted/Trashed/Untrashed Topic
214
  add_action( 'trashed_post', 'bbp_trashed_topic' );
@@ -257,21 +257,21 @@ add_action( 'bbp_new_reply', 'bbp_increase_forum_reply_count' );
257
  add_action( 'bbp_new_topic', 'bbp_increase_forum_topic_count' );
258
  add_action( 'bbp_trashed_reply', 'bbp_decrease_forum_reply_count' );
259
  add_action( 'bbp_trashed_topic', 'bbp_decrease_forum_topic_count' );
260
- add_action( 'bbp_trashed_topic', 'bbp_increase_forum_topic_count_hidden' );
261
  add_action( 'bbp_untrashed_reply', 'bbp_increase_forum_reply_count' );
262
  add_action( 'bbp_untrashed_topic', 'bbp_increase_forum_topic_count' );
263
- add_action( 'bbp_untrashed_topic', 'bbp_decrease_forum_topic_count_hidden' );
264
  add_action( 'bbp_spammed_reply', 'bbp_decrease_forum_reply_count' );
265
  add_action( 'bbp_spammed_topic', 'bbp_decrease_forum_topic_count' );
266
- add_action( 'bbp_spammed_topic', 'bbp_increase_forum_topic_count_hidden' );
267
  add_action( 'bbp_unspammed_reply', 'bbp_increase_forum_reply_count' );
268
  add_action( 'bbp_unspammed_topic', 'bbp_increase_forum_topic_count' );
269
- add_action( 'bbp_unspammed_topic', 'bbp_decrease_forum_topic_count_hidden' );
270
  add_action( 'bbp_approved_reply', 'bbp_increase_forum_reply_count' );
271
  add_action( 'bbp_approved_topic', 'bbp_increase_forum_topic_count' );
272
- add_action( 'bbp_approved_topic', 'bbp_decrease_forum_topic_count_hidden' );
273
  add_action( 'bbp_unapproved_reply', 'bbp_decrease_forum_reply_count' );
274
  add_action( 'bbp_unapproved_topic', 'bbp_decrease_forum_topic_count' );
 
 
 
 
 
275
  add_action( 'bbp_unapproved_topic', 'bbp_increase_forum_topic_count_hidden' );
276
 
277
  // Update forum reply counts for approved/unapproved topics.
@@ -281,17 +281,18 @@ add_action( 'bbp_unapproved_topic', 'bbp_approved_unapproved_topic_update_forum_
281
  // Update topic reply counts.
282
  add_action( 'bbp_new_reply', 'bbp_increase_topic_reply_count' );
283
  add_action( 'bbp_trashed_reply', 'bbp_decrease_topic_reply_count' );
284
- add_action( 'bbp_trashed_reply', 'bbp_increase_topic_reply_count_hidden' );
285
  add_action( 'bbp_untrashed_reply', 'bbp_increase_topic_reply_count' );
286
- add_action( 'bbp_untrashed_reply', 'bbp_decrease_topic_reply_count_hidden' );
287
  add_action( 'bbp_spammed_reply', 'bbp_decrease_topic_reply_count' );
288
- add_action( 'bbp_spammed_reply', 'bbp_increase_topic_reply_count_hidden' );
289
  add_action( 'bbp_unspammed_reply', 'bbp_increase_topic_reply_count' );
290
- add_action( 'bbp_unspammed_reply', 'bbp_decrease_topic_reply_count_hidden' );
291
  add_action( 'bbp_approved_reply', 'bbp_increase_topic_reply_count' );
292
- add_action( 'bbp_approved_reply', 'bbp_decrease_topic_reply_count_hidden' );
293
  add_action( 'bbp_unapproved_reply', 'bbp_decrease_topic_reply_count' );
 
 
 
 
 
294
  add_action( 'bbp_unapproved_reply', 'bbp_increase_topic_reply_count_hidden' );
 
295
 
296
  // Users topic & reply counts.
297
  add_action( 'bbp_new_topic', 'bbp_increase_user_topic_count' );
@@ -305,22 +306,6 @@ add_action( 'bbp_trash_reply', 'bbp_decrease_user_reply_count' );
305
  add_action( 'bbp_spam_topic', 'bbp_decrease_user_topic_count' );
306
  add_action( 'bbp_spam_reply', 'bbp_decrease_user_reply_count' );
307
 
308
- // Insert topic/reply counts.
309
- add_action( 'bbp_insert_topic', 'bbp_insert_topic_update_counts', 10, 2 );
310
- add_action( 'bbp_insert_reply', 'bbp_insert_reply_update_counts', 10, 3 );
311
-
312
- // Update topic voice counts.
313
- add_action( 'bbp_new_reply', 'bbp_update_topic_voice_count' );
314
- add_action( 'bbp_trashed_reply', 'bbp_update_topic_voice_count' );
315
- add_action( 'bbp_untrashed_reply', 'bbp_update_topic_voice_count' );
316
- add_action( 'bbp_spammed_reply', 'bbp_update_topic_voice_count' );
317
- add_action( 'bbp_unspammed_reply', 'bbp_update_topic_voice_count' );
318
- add_action( 'bbp_approved_reply', 'bbp_update_topic_voice_count' );
319
- add_action( 'bbp_unapproved_reply', 'bbp_update_topic_voice_count' );
320
-
321
- // Insert reply voice counts.
322
- add_action( 'bbp_insert_reply', 'bbp_update_topic_voice_count' );
323
-
324
  // Topic status transition helpers for replies
325
  add_action( 'bbp_trash_topic', 'bbp_trash_topic_replies' );
326
  add_action( 'bbp_untrash_topic', 'bbp_untrash_topic_replies' );
@@ -328,6 +313,57 @@ add_action( 'bbp_delete_topic', 'bbp_delete_topic_replies' );
328
  add_action( 'bbp_spam_topic', 'bbp_spam_topic_replies' );
329
  add_action( 'bbp_unspam_topic', 'bbp_unspam_topic_replies' );
330
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
331
  // User status
332
  // @todo make these sub-actions
333
  add_action( 'make_ham_user', 'bbp_make_ham_user' );
154
  add_action( 'bbp_template_notices', 'bbp_notice_edit_user_is_super_admin', 2 );
155
 
156
  // Before Delete/Trash/Untrash Forum
157
+ add_action( 'wp_trash_post', 'bbp_trash_forum' );
158
+ add_action( 'trash_post', 'bbp_trash_forum' );
159
+ add_action( 'untrash_post', 'bbp_untrash_forum' );
160
+ add_action( 'before_delete_post', 'bbp_delete_forum' );
161
 
162
  // After Deleted/Trashed/Untrashed Forum
163
  add_action( 'trashed_post', 'bbp_trashed_forum' );
183
  add_action( 'bbp_edit_reply', 'bbp_update_reply', 10, 7 );
184
 
185
  // Before Delete/Trash/Untrash Reply
186
+ add_action( 'wp_trash_post', 'bbp_trash_reply' );
187
+ add_action( 'trash_post', 'bbp_trash_reply' );
188
+ add_action( 'untrash_post', 'bbp_untrash_reply' );
189
+ add_action( 'before_delete_post', 'bbp_delete_reply' );
190
 
191
  // After Deleted/Trashed/Untrashed Reply
192
  add_action( 'trashed_post', 'bbp_trashed_reply' );
205
  add_action( 'bbp_post_move_reply', 'bbp_move_reply_count', 1, 3 );
206
 
207
  // Before Delete/Trash/Untrash Topic
208
+ add_action( 'wp_trash_post', 'bbp_trash_topic' );
209
+ add_action( 'trash_post', 'bbp_trash_topic' );
210
+ add_action( 'untrash_post', 'bbp_untrash_topic' );
211
+ add_action( 'before_delete_post', 'bbp_delete_topic' );
212
 
213
  // After Deleted/Trashed/Untrashed Topic
214
  add_action( 'trashed_post', 'bbp_trashed_topic' );
257
  add_action( 'bbp_new_topic', 'bbp_increase_forum_topic_count' );
258
  add_action( 'bbp_trashed_reply', 'bbp_decrease_forum_reply_count' );
259
  add_action( 'bbp_trashed_topic', 'bbp_decrease_forum_topic_count' );
 
260
  add_action( 'bbp_untrashed_reply', 'bbp_increase_forum_reply_count' );
261
  add_action( 'bbp_untrashed_topic', 'bbp_increase_forum_topic_count' );
 
262
  add_action( 'bbp_spammed_reply', 'bbp_decrease_forum_reply_count' );
263
  add_action( 'bbp_spammed_topic', 'bbp_decrease_forum_topic_count' );
 
264
  add_action( 'bbp_unspammed_reply', 'bbp_increase_forum_reply_count' );
265
  add_action( 'bbp_unspammed_topic', 'bbp_increase_forum_topic_count' );
 
266
  add_action( 'bbp_approved_reply', 'bbp_increase_forum_reply_count' );
267
  add_action( 'bbp_approved_topic', 'bbp_increase_forum_topic_count' );
 
268
  add_action( 'bbp_unapproved_reply', 'bbp_decrease_forum_reply_count' );
269
  add_action( 'bbp_unapproved_topic', 'bbp_decrease_forum_topic_count' );
270
+ add_action( 'bbp_trashed_topic', 'bbp_increase_forum_topic_count_hidden' );
271
+ add_action( 'bbp_untrashed_topic', 'bbp_decrease_forum_topic_count_hidden' );
272
+ add_action( 'bbp_spammed_topic', 'bbp_increase_forum_topic_count_hidden' );
273
+ add_action( 'bbp_unspammed_topic', 'bbp_decrease_forum_topic_count_hidden' );
274
+ add_action( 'bbp_approved_topic', 'bbp_decrease_forum_topic_count_hidden' );
275
  add_action( 'bbp_unapproved_topic', 'bbp_increase_forum_topic_count_hidden' );
276
 
277
  // Update forum reply counts for approved/unapproved topics.
281
  // Update topic reply counts.
282
  add_action( 'bbp_new_reply', 'bbp_increase_topic_reply_count' );
283
  add_action( 'bbp_trashed_reply', 'bbp_decrease_topic_reply_count' );
 
284
  add_action( 'bbp_untrashed_reply', 'bbp_increase_topic_reply_count' );
 
285
  add_action( 'bbp_spammed_reply', 'bbp_decrease_topic_reply_count' );
 
286
  add_action( 'bbp_unspammed_reply', 'bbp_increase_topic_reply_count' );
 
287
  add_action( 'bbp_approved_reply', 'bbp_increase_topic_reply_count' );
 
288
  add_action( 'bbp_unapproved_reply', 'bbp_decrease_topic_reply_count' );
289
+ add_action( 'bbp_trashed_reply', 'bbp_increase_topic_reply_count_hidden' );
290
+ add_action( 'bbp_untrashed_reply', 'bbp_decrease_topic_reply_count_hidden' );
291
+ add_action( 'bbp_spammed_reply', 'bbp_increase_topic_reply_count_hidden' );
292
+ add_action( 'bbp_unspammed_reply', 'bbp_decrease_topic_reply_count_hidden' );
293
+ add_action( 'bbp_approved_reply', 'bbp_decrease_topic_reply_count_hidden' );
294
  add_action( 'bbp_unapproved_reply', 'bbp_increase_topic_reply_count_hidden' );
295
+ add_action( 'bbp_deleted_reply', 'bbp_decrease_topic_reply_count_hidden' );
296
 
297
  // Users topic & reply counts.
298
  add_action( 'bbp_new_topic', 'bbp_increase_user_topic_count' );
306
  add_action( 'bbp_spam_topic', 'bbp_decrease_user_topic_count' );
307
  add_action( 'bbp_spam_reply', 'bbp_decrease_user_reply_count' );
308
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
309
  // Topic status transition helpers for replies
310
  add_action( 'bbp_trash_topic', 'bbp_trash_topic_replies' );
311
  add_action( 'bbp_untrash_topic', 'bbp_untrash_topic_replies' );
313
  add_action( 'bbp_spam_topic', 'bbp_spam_topic_replies' );
314
  add_action( 'bbp_unspam_topic', 'bbp_unspam_topic_replies' );
315
 
316
+ // Topic engagements on user creation.
317
+ add_action( 'bbp_new_topic', 'bbp_update_topic_engagements', 20 );
318
+ add_action( 'bbp_new_reply', 'bbp_update_topic_engagements', 20 );
319
+
320
+ add_action( 'bbp_new_reply', 'bbp_update_topic_voice_count', 30 );
321
+ add_action( 'bbp_new_topic', 'bbp_update_topic_voice_count', 30 );
322
+
323
+ // Topic/reply counts on code insert (unit tests)
324
+ add_action( 'bbp_insert_topic', 'bbp_insert_topic_update_counts', 10, 2 );
325
+ add_action( 'bbp_insert_reply', 'bbp_insert_reply_update_counts', 10, 3 );
326
+
327
+ // Topic engagements on code insert (unit tests)
328
+ add_action( 'bbp_insert_topic', 'bbp_update_topic_engagements', 20 );
329
+ add_action( 'bbp_insert_reply', 'bbp_update_topic_engagements', 20 );
330
+
331
+ // Topic engagement counts on code insert (unit tests)
332
+ add_action( 'bbp_insert_topic', 'bbp_update_topic_voice_count', 30 );
333
+ add_action( 'bbp_insert_reply', 'bbp_update_topic_voice_count', 30 );
334
+
335
+ // Recalculate engagements.
336
+ add_action( 'bbp_trashed_reply', 'bbp_recalculate_topic_engagements' );
337
+ add_action( 'bbp_untrashed_reply', 'bbp_recalculate_topic_engagements' );
338
+ add_action( 'bbp_spammed_reply', 'bbp_recalculate_topic_engagements' );
339
+ add_action( 'bbp_unspammed_reply', 'bbp_recalculate_topic_engagements' );
340
+ add_action( 'bbp_approved_reply', 'bbp_recalculate_topic_engagements' );
341
+ add_action( 'bbp_unapproved_reply', 'bbp_recalculate_topic_engagements' );
342
+ add_action( 'bbp_deleted_reply', 'bbp_recalculate_topic_engagements' );
343
+ add_action( 'bbp_trashed_topic', 'bbp_recalculate_topic_engagements' );
344
+ add_action( 'bbp_untrashed_topic', 'bbp_recalculate_topic_engagements' );
345
+ add_action( 'bbp_spammed_topic', 'bbp_recalculate_topic_engagements' );
346
+ add_action( 'bbp_unspammed_topic', 'bbp_recalculate_topic_engagements' );
347
+ add_action( 'bbp_approved_topic', 'bbp_recalculate_topic_engagements' );
348
+ add_action( 'bbp_unapproved_topic', 'bbp_recalculate_topic_engagements' );
349
+ add_action( 'bbp_deleted_topic', 'bbp_recalculate_topic_engagements' );
350
+
351
+ // Update engagement counts.
352
+ add_action( 'bbp_trashed_reply', 'bbp_update_topic_voice_count', 30 );
353
+ add_action( 'bbp_untrashed_reply', 'bbp_update_topic_voice_count', 30 );
354
+ add_action( 'bbp_spammed_reply', 'bbp_update_topic_voice_count', 30 );
355
+ add_action( 'bbp_unspammed_reply', 'bbp_update_topic_voice_count', 30 );
356
+ add_action( 'bbp_approved_reply', 'bbp_update_topic_voice_count', 30 );
357
+ add_action( 'bbp_unapproved_reply', 'bbp_update_topic_voice_count', 30 );
358
+ add_action( 'bbp_deleted_reply', 'bbp_update_topic_voice_count', 30 );
359
+ add_action( 'bbp_trashed_topic', 'bbp_update_topic_voice_count', 30 );
360
+ add_action( 'bbp_untrashed_topic', 'bbp_update_topic_voice_count', 30 );
361
+ add_action( 'bbp_spammed_topic', 'bbp_update_topic_voice_count', 30 );
362
+ add_action( 'bbp_unspammed_topic', 'bbp_update_topic_voice_count', 30 );
363
+ add_action( 'bbp_approved_topic', 'bbp_update_topic_voice_count', 30 );
364
+ add_action( 'bbp_unapproved_topic', 'bbp_update_topic_voice_count', 30 );
365
+ add_action( 'bbp_deleted_topic', 'bbp_update_topic_voice_count', 30 );
366
+
367
  // User status
368
  // @todo make these sub-actions
369
  add_action( 'make_ham_user', 'bbp_make_ham_user' );
includes/core/options.php CHANGED
@@ -110,8 +110,25 @@ function bbp_get_default_options() {
110
 
111
  /** Akismet ***********************************************************/
112
 
113
- '_bbp_enable_akismet' => 1 // Users from all sites can post
114
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
115
  ) );
116
  }
117
 
110
 
111
  /** Akismet ***********************************************************/
112
 
113
+ '_bbp_enable_akismet' => 1, // Users from all sites can post
114
+
115
+ /** Converter *********************************************************/
116
+
117
+ // Connection
118
+ '_bbp_converter_db_user' => '', // Database User
119
+ '_bbp_converter_db_pass' => '', // Database Password
120
+ '_bbp_converter_db_name' => '', // Database Name
121
+ '_bbp_converter_db_port' => 3306, // Database Port
122
+ '_bbp_converter_db_server' => 'localhost', // Database Server/IP
123
+ '_bbp_converter_db_prefix' => '', // Database table prefix
124
+
125
+ // Options
126
+ '_bbp_converter_rows' => 100, // Number of rows to query
127
+ '_bbp_converter_delay_time' => 2, // Seconds to wait between queries
128
+ '_bbp_converter_step' => 1, // Current converter step
129
+ '_bbp_converter_start' => 1, // Step to start at
130
+ '_bbp_converter_platform' => '', // Which platform to use
131
+ '_bbp_converter_query' => '' // Last query
132
  ) );
133
  }
134
 
includes/core/template-functions.php CHANGED
@@ -171,8 +171,11 @@ function bbp_enqueue_style( $handle = '', $file = '', $deps = array(), $ver = fa
171
  // Make path to file relative to site URL
172
  $located = str_replace( $content_dir, content_url(), $located );
173
 
 
 
 
174
  // Enqueue the style
175
- wp_enqueue_style( $handle, $located, $deps, $ver, $media );
176
  }
177
 
178
  return $located;
@@ -239,8 +242,11 @@ function bbp_enqueue_script( $handle = '', $file = '', $deps = array(), $ver = f
239
  // Make path to file relative to site URL
240
  $located = str_replace( $content_dir, content_url(), $located );
241
 
 
 
 
242
  // Enqueue the style
243
- wp_enqueue_script( $handle, $located, $deps, $ver, $in_footer );
244
  }
245
 
246
  return $located;
@@ -464,11 +470,16 @@ function bbp_add_template_stack_locations( $stacks = array() ) {
464
  * Add checks for bbPress conditions to parse_query action
465
  *
466
  * If it's a user page, WP_Query::bbp_is_single_user is set to true.
 
467
  * If it's a user edit page, WP_Query::bbp_is_single_user_edit is set to true
468
  * and the the 'wp-admin/includes/user.php' file is included.
 
469
  * In addition, on user/user edit pages, WP_Query::home is set to false & query
470
- * vars 'bbp_user_id' with the displayed user id and 'author_name' with the
471
- * displayed user's nicename are added.
 
 
 
472
  *
473
  * If it's a forum edit, WP_Query::bbp_is_forum_edit is set to true
474
  * If it's a topic edit, WP_Query::bbp_is_topic_edit is set to true
@@ -613,9 +624,6 @@ function bbp_parse_query( $posts_query ) {
613
  // Set bbp_user_id for future reference
614
  $posts_query->set( 'bbp_user_id', $the_user->ID );
615
 
616
- // Set author_name as current user's nicename to get correct posts
617
- $posts_query->set( 'author_name', $the_user->user_nicename );
618
-
619
  // Set the displayed user global to this user
620
  bbpress()->displayed_user = $the_user;
621
 
171
  // Make path to file relative to site URL
172
  $located = str_replace( $content_dir, content_url(), $located );
173
 
174
+ // Register the style
175
+ wp_register_style( $handle, $located, $deps, $ver, $media );
176
+
177
  // Enqueue the style
178
+ wp_enqueue_style( $handle );
179
  }
180
 
181
  return $located;
242
  // Make path to file relative to site URL
243
  $located = str_replace( $content_dir, content_url(), $located );
244
 
245
+ // Register the style
246
+ wp_register_script( $handle, $located, $deps, $ver, $in_footer );
247
+
248
  // Enqueue the style
249
+ wp_enqueue_script( $handle );
250
  }
251
 
252
  return $located;
470
  * Add checks for bbPress conditions to parse_query action
471
  *
472
  * If it's a user page, WP_Query::bbp_is_single_user is set to true.
473
+ *
474
  * If it's a user edit page, WP_Query::bbp_is_single_user_edit is set to true
475
  * and the the 'wp-admin/includes/user.php' file is included.
476
+ *
477
  * In addition, on user/user edit pages, WP_Query::home is set to false & query
478
+ * vars 'bbp_user_id' with the displayed user id is added.
479
+ *
480
+ * In 2.6.0, the 'author_name' variable is no longer set when viewing a single
481
+ * user, because of is_author() weirdness. If this removal causes problems, it
482
+ * may come back in a future release.
483
  *
484
  * If it's a forum edit, WP_Query::bbp_is_forum_edit is set to true
485
  * If it's a topic edit, WP_Query::bbp_is_topic_edit is set to true
624
  // Set bbp_user_id for future reference
625
  $posts_query->set( 'bbp_user_id', $the_user->ID );
626
 
 
 
 
627
  // Set the displayed user global to this user
628
  bbpress()->displayed_user = $the_user;
629
 
includes/core/theme-compat.php CHANGED
@@ -114,7 +114,7 @@ function bbp_setup_theme_compat( $theme = '' ) {
114
  }
115
 
116
  /**
117
- * Gets the name of the bbPress compatable theme used, in the event the
118
  * currently active WordPress theme does not explicitly support bbPress.
119
  * This can be filtered or set manually. Tricky theme authors can override the
120
  * default and include their own bbPress compatibility layers for their themes.
@@ -131,7 +131,7 @@ function bbp_get_theme_compat_id() {
131
  }
132
 
133
  /**
134
- * Gets the name of the bbPress compatable theme used, in the event the
135
  * currently active WordPress theme does not explicitly support bbPress.
136
  * This can be filtered or set manually. Tricky theme authors can override the
137
  * default and include their own bbPress compatibility layers for their themes.
@@ -182,7 +182,7 @@ function bbp_get_theme_compat_dir() {
182
  }
183
 
184
  /**
185
- * Gets the bbPress compatable theme used in the event the currently active
186
  * WordPress theme does not explicitly support bbPress. This can be filtered,
187
  * or set manually. Tricky theme authors can override the default and include
188
  * their own bbPress compatibility layers for their themes.
114
  }
115
 
116
  /**
117
+ * Gets the name of the bbPress compatible theme used, in the event the
118
  * currently active WordPress theme does not explicitly support bbPress.
119
  * This can be filtered or set manually. Tricky theme authors can override the
120
  * default and include their own bbPress compatibility layers for their themes.
131
  }
132
 
133
  /**
134
+ * Gets the name of the bbPress compatible theme used, in the event the
135
  * currently active WordPress theme does not explicitly support bbPress.
136
  * This can be filtered or set manually. Tricky theme authors can override the
137
  * default and include their own bbPress compatibility layers for their themes.
182
  }
183
 
184
  /**
185
+ * Gets the bbPress compatible theme used in the event the currently active
186
  * WordPress theme does not explicitly support bbPress. This can be filtered,
187
  * or set manually. Tricky theme authors can override the default and include
188
  * their own bbPress compatibility layers for their themes.
includes/core/update.php CHANGED
@@ -328,18 +328,28 @@ function bbp_version_updater() {
328
  if ( $raw_db_version < 261 ) {
329
 
330
  /**
331
- * Upgrade user favorites, subscriptions, and engagements
332
  *
333
  * @link https://bbpress.trac.wordpress.org/ticket/2959
334
- * @link https://bbpress.trac.wordpress.org/ticket/3068
335
  */
336
  if ( ! bbp_is_large_install() ) {
337
- bbp_admin_upgrade_user_engagements();
338
  bbp_admin_upgrade_user_favorites();
339
  bbp_admin_upgrade_user_topic_subscriptions();
340
  bbp_admin_upgrade_user_forum_subscriptions();
341
  }
342
  }
 
 
 
 
 
 
 
 
 
 
 
 
343
  }
344
 
345
  /** All done! *************************************************************/
328
  if ( $raw_db_version < 261 ) {
329
 
330
  /**
331
+ * Upgrade user favorites and subscriptions
332
  *
333
  * @link https://bbpress.trac.wordpress.org/ticket/2959
 
334
  */
335
  if ( ! bbp_is_large_install() ) {
 
336
  bbp_admin_upgrade_user_favorites();
337
  bbp_admin_upgrade_user_topic_subscriptions();
338
  bbp_admin_upgrade_user_forum_subscriptions();
339
  }
340
  }
341
+
342
+ if ( $raw_db_version < 262 ) {
343
+
344
+ /**
345
+ * Upgrade user engagements
346
+ *
347
+ * @link https://bbpress.trac.wordpress.org/ticket/3068
348
+ */
349
+ if ( ! bbp_is_large_install() ) {
350
+ bbp_admin_upgrade_user_engagements();
351
+ }
352
+ }
353
  }
354
 
355
  /** All done! *************************************************************/
includes/forums/functions.php CHANGED
@@ -1204,8 +1204,8 @@ function bbp_increase_forum_topic_count( $forum_id = 0 ) {
1204
  $topic_id = $forum_id;
1205
  $forum_id = bbp_get_topic_forum_id( $topic_id );
1206
 
1207
- // If this is a new, unpublished, topic, increase hidden count and bail.
1208
- if ( 'bbp_new_topic' === current_filter() && ( ! bbp_is_topic_published( $topic_id ) && ! bbp_is_topic_closed( $topic_id ) ) ) {
1209
  bbp_increase_forum_topic_count_hidden( $forum_id );
1210
  return;
1211
  }
@@ -1418,13 +1418,7 @@ function bbp_increase_forum_reply_count( $forum_id = 0 ) {
1418
 
1419
  // If it's a reply, get the forum id.
1420
  if ( bbp_is_reply( $forum_id ) ) {
1421
- $reply_id = $forum_id;
1422
- $forum_id = bbp_get_reply_forum_id( $reply_id );
1423
-
1424
- // Don't update if this is a new, unpublished, reply.
1425
- if ( 'bbp_new_reply' === current_filter() && ! bbp_is_reply_published( $reply_id ) ) {
1426
- return;
1427
- }
1428
  }
1429
 
1430
  bbp_bump_forum_reply_count( $forum_id );
@@ -1989,7 +1983,7 @@ function bbp_update_forum( $args = array() ) {
1989
  bbp_update_forum_subforum_count( $r['forum_id'] );
1990
 
1991
  // Only update topic count if we're deleting a topic, or in the dashboard.
1992
- if ( in_array( current_filter(), array( 'bbp_deleted_topic', 'save_post' ), true ) ) {
1993
  bbp_update_forum_reply_count( $r['forum_id'] );
1994
  bbp_update_forum_topic_count( $r['forum_id'] );
1995
  bbp_update_forum_topic_count_hidden( $r['forum_id'] );
@@ -2770,7 +2764,11 @@ function bbp_untrash_forum( $forum_id = 0 ) {
2770
  /**
2771
  * Called after deleting a forum
2772
  *
 
 
 
2773
  * @since 2.1.0 bbPress (r3668)
 
2774
  *
2775
  * @uses bbp_get_forum_id() To get the forum id
2776
  * @uses bbp_is_forum() To check if the passed id is a forum
1204
  $topic_id = $forum_id;
1205
  $forum_id = bbp_get_topic_forum_id( $topic_id );
1206
 
1207
+ // Bail if not public.
1208
+ if ( ! bbp_is_topic_public( $topic_id ) ) {
1209
  bbp_increase_forum_topic_count_hidden( $forum_id );
1210
  return;
1211
  }
1418
 
1419
  // If it's a reply, get the forum id.
1420
  if ( bbp_is_reply( $forum_id ) ) {
1421
+ $forum_id = bbp_get_reply_forum_id( $forum_id );
 
 
 
 
 
 
1422
  }
1423
 
1424
  bbp_bump_forum_reply_count( $forum_id );
1983
  bbp_update_forum_subforum_count( $r['forum_id'] );
1984
 
1985
  // Only update topic count if we're deleting a topic, or in the dashboard.
1986
+ if ( in_array( current_filter(), array( 'bbp_delete_topic', 'save_post' ), true ) ) {
1987
  bbp_update_forum_reply_count( $r['forum_id'] );
1988
  bbp_update_forum_topic_count( $r['forum_id'] );
1989
  bbp_update_forum_topic_count_hidden( $r['forum_id'] );
2764
  /**
2765
  * Called after deleting a forum
2766
  *
2767
+ * Try not to use this action. All meta & taxonomy terms have already been
2768
+ * deleted, making them impossible to use.
2769
+ *
2770
  * @since 2.1.0 bbPress (r3668)
2771
+ * @since 2.6.0 bbPress (r6526) Not recommend for usage
2772
  *
2773
  * @uses bbp_get_forum_id() To get the forum id
2774
  * @uses bbp_is_forum() To check if the passed id is a forum
includes/forums/template.php CHANGED
@@ -663,6 +663,16 @@ function bbp_forum_parent_id( $forum_id = 0 ) {
663
  $forum_id = bbp_get_forum_id( $forum_id );
664
  $parent_id = get_post_field( 'post_parent', $forum_id );
665
 
 
 
 
 
 
 
 
 
 
 
666
  // Filter & return
667
  return (int) apply_filters( 'bbp_get_forum_parent_id', (int) $parent_id, $forum_id );
668
  }
@@ -2186,53 +2196,36 @@ function bbp_single_forum_description( $args = array() ) {
2186
  // Forum has active data
2187
  if ( ! empty( $last_active ) ) {
2188
 
 
2189
  if ( ! empty( $reply_count ) ) {
 
 
 
2190
 
2191
- if ( bbp_is_forum_category( $forum_id ) ) {
2192
- $retstr = sprintf( esc_html__( 'This category contains %1$s and %2$s, and was last updated by %3$s %4$s.', 'bbpress' ), $topic_text, $reply_text, $last_updated_by, $time_since );
2193
- } else {
2194
- $retstr = sprintf( esc_html__( 'This forum contains %1$s and %2$s, and was last updated by %3$s %4$s.', 'bbpress' ), $topic_text, $reply_text, $last_updated_by, $time_since );
2195
- }
2196
-
2197
  } else {
2198
-
2199
- if ( bbp_is_forum_category( $forum_id ) ) {
2200
- $retstr = sprintf( esc_html__( 'This category contains %1$s, and was last updated by %2$s %3$s.', 'bbpress' ), $topic_text, $last_updated_by, $time_since );
2201
- } else {
2202
- $retstr = sprintf( esc_html__( 'This forum contains %1$s, and was last updated by %2$s %3$s.', 'bbpress' ), $topic_text, $last_updated_by, $time_since );
2203
- }
2204
  }
2205
 
2206
- // Forum has no last active data
2207
- } else {
2208
-
2209
- if ( ! empty( $reply_count ) ) {
 
2210
 
2211
- if ( bbp_is_forum_category( $forum_id ) ) {
2212
- $retstr = sprintf( esc_html__( 'This category contains %1$s and %2$s.', 'bbpress' ), $topic_text, $reply_text );
2213
- } else {
2214
- $retstr = sprintf( esc_html__( 'This forum contains %1$s and %2$s.', 'bbpress' ), $topic_text, $reply_text );
2215
- }
2216
 
2217
- } else {
2218
-
2219
- if ( ! empty( $topic_count ) ) {
2220
-
2221
- if ( bbp_is_forum_category( $forum_id ) ) {
2222
- $retstr = sprintf( esc_html__( 'This category contains %1$s.', 'bbpress' ), $topic_text );
2223
- } else {
2224
- $retstr = sprintf( esc_html__( 'This forum contains %1$s.', 'bbpress' ), $topic_text );
2225
- }
2226
-
2227
- } else {
2228
- $retstr = esc_html__( 'This forum is empty.', 'bbpress' );
2229
- }
2230
- }
2231
  }
2232
 
2233
- // Add feeds
2234
- //$feed_links = ( ! empty( $r['feed'] ) ) ? bbp_get_forum_topics_feed_link ( $forum_id ) . bbp_get_forum_replies_feed_link( $forum_id ) : '';
2235
-
2236
  // Add the 'view all' filter back
2237
  add_filter( 'bbp_get_forum_permalink', 'bbp_add_view_all' );
2238
 
663
  $forum_id = bbp_get_forum_id( $forum_id );
664
  $parent_id = get_post_field( 'post_parent', $forum_id );
665
 
666
+ // Meta-data fallback
667
+ if ( empty( $parent_id ) ) {
668
+ $parent_id = get_post_meta( $forum_id, '_bbp_forum_id', true );
669
+ }
670
+
671
+ // Filter
672
+ if ( ! empty( $parent_id ) ) {
673
+ $parent_id = bbp_get_forum_id( $parent_id );
674
+ }
675
+
676
  // Filter & return
677
  return (int) apply_filters( 'bbp_get_forum_parent_id', (int) $parent_id, $forum_id );
678
  }
2196
  // Forum has active data
2197
  if ( ! empty( $last_active ) ) {
2198
 
2199
+ // Has replies
2200
  if ( ! empty( $reply_count ) ) {
2201
+ $retstr = bbp_is_forum_category( $forum_id )
2202
+ ? sprintf( esc_html__( 'This category has %1$s, %2$s, and was last updated %3$s by %4$s.', 'bbpress' ), $topic_text, $reply_text, $time_since, $last_updated_by )
2203
+ : sprintf( esc_html__( 'This forum has %1$s, %2$s, and was last updated %3$s by %4$s.', 'bbpress' ), $topic_text, $reply_text, $time_since, $last_updated_by );
2204
 
2205
+ // Only has topics
 
 
 
 
 
2206
  } else {
2207
+ $retstr = bbp_is_forum_category( $forum_id )
2208
+ ? sprintf( esc_html__( 'This category has %1$s, and was last updated %2$s by %3$s.', 'bbpress' ), $topic_text, $time_since, $last_updated_by )
2209
+ : sprintf( esc_html__( 'This forum has %1$s, and was last updated %2$s by %3$s.', 'bbpress' ), $topic_text, $time_since, $last_updated_by );
 
 
 
2210
  }
2211
 
2212
+ // Forum has no last active data (but does have topics & replies)
2213
+ } elseif ( ! empty( $reply_count ) ) {
2214
+ $retstr = bbp_is_forum_category( $forum_id )
2215
+ ? sprintf( esc_html__( 'This category has %1$s and %2$s.', 'bbpress' ), $topic_text, $reply_text )
2216
+ : sprintf( esc_html__( 'This forum has %1$s and %2$s.', 'bbpress' ), $topic_text, $reply_text );
2217
 
2218
+ // Forum has no last active data or replies (but does have topics)
2219
+ } elseif ( ! empty( $topic_count ) ) {
2220
+ $retstr = bbp_is_forum_category( $forum_id )
2221
+ ? sprintf( esc_html__( 'This category has %1$s.', 'bbpress' ), $topic_text )
2222
+ : sprintf( esc_html__( 'This forum has %1$s.', 'bbpress' ), $topic_text );
2223
 
2224
+ // Forum is empty
2225
+ } else {
2226
+ $retstr = esc_html__( 'This forum is empty.', 'bbpress' );
 
 
 
 
 
 
 
 
 
 
 
2227
  }
2228
 
 
 
 
2229
  // Add the 'view all' filter back
2230
  add_filter( 'bbp_get_forum_permalink', 'bbp_add_view_all' );
2231
 
includes/replies/functions.php CHANGED
@@ -108,9 +108,9 @@ function bbp_insert_reply( $reply_data = array(), $reply_meta = array() ) {
108
  function bbp_insert_reply_update_counts( $reply_id = 0, $topic_id = 0, $forum_id = 0 ) {
109
 
110
  // If the reply is public, update the forum/topic reply counts.
111
- if ( bbp_get_reply_status( $reply_id ) === bbp_get_public_status_id() ) {
112
  bbp_increase_topic_reply_count( $topic_id );
113
- bbp_increase_forum_reply_count( $forum_id );
114
 
115
  // If the reply isn't public only update the topic reply hidden count.
116
  } else {
@@ -837,7 +837,7 @@ function bbp_edit_reply_handler( $action = '' ) {
837
  * @uses bbp_update_reply_forum_id() To update the reply forum id
838
  * @uses bbp_update_reply_topic_id() To update the reply topic id
839
  * @uses bbp_update_reply_to() To update the reply to id
840
- * @uses bbp_update_reply_walker() To update the reply's ancestors' counts
841
  */
842
  function bbp_update_reply( $reply_id = 0, $topic_id = 0, $forum_id = 0, $anonymous_data = array(), $author_id = 0, $is_edit = false, $reply_to = 0 ) {
843
 
@@ -963,12 +963,6 @@ function bbp_update_reply_walker( $reply_id, $last_active_time = '', $forum_id =
963
  // Get the topic ID if none was passed
964
  if ( empty( $topic_id ) ) {
965
  $topic_id = bbp_get_reply_topic_id( $reply_id );
966
-
967
- // Make every effort to get topic id
968
- // https://bbpress.trac.wordpress.org/ticket/2529
969
- if ( empty( $topic_id ) && ( current_filter() === 'bbp_deleted_reply' ) ) {
970
- $topic_id = get_post_field( 'post_parent', $reply_id );
971
- }
972
  }
973
 
974
  // Get the forum ID if none was passed
@@ -1062,12 +1056,12 @@ function bbp_update_reply_walker( $reply_id, $last_active_time = '', $forum_id =
1062
  * @param int $forum_id Optional. Forum id
1063
  * @uses bbp_get_reply_id() To get the reply id
1064
  * @uses bbp_get_forum_id() To get the forum id
1065
- * @uses get_post_ancestors() To get the reply's forum
1066
  * @uses get_post_field() To get the post type of the post
1067
  * @uses update_post_meta() To update the reply forum id meta
1068
  * @uses apply_filters() Calls 'bbp_update_reply_forum_id' with the forum id
1069
  * and reply id
1070
- * @return bool Reply's forum id
1071
  */
1072
  function bbp_update_reply_forum_id( $reply_id = 0, $forum_id = 0 ) {
1073
 
@@ -1112,12 +1106,12 @@ function bbp_update_reply_forum_id( $reply_id = 0, $forum_id = 0 ) {
1112
  * @param int $topic_id Optional. Topic id
1113
  * @uses bbp_get_reply_id() To get the reply id
1114
  * @uses bbp_get_topic_id() To get the topic id
1115
- * @uses get_post_ancestors() To get the reply's topic
1116
  * @uses get_post_field() To get the post type of the post
1117
  * @uses update_post_meta() To update the reply topic id meta
1118
  * @uses apply_filters() Calls 'bbp_update_reply_topic_id' with the topic id
1119
  * and reply id
1120
- * @return bool Reply's topic id
1121
  */
1122
  function bbp_update_reply_topic_id( $reply_id = 0, $topic_id = 0 ) {
1123
 
@@ -1154,7 +1148,7 @@ function bbp_update_reply_topic_id( $reply_id = 0, $topic_id = 0 ) {
1154
  }
1155
 
1156
  /*
1157
- * Update the reply's meta data with its reply to id
1158
  *
1159
  * @since 2.4.0 bbPress (r4944)
1160
  *
@@ -1164,7 +1158,7 @@ function bbp_update_reply_topic_id( $reply_id = 0, $topic_id = 0 ) {
1164
  * @uses update_post_meta() To update the reply to meta
1165
  * @uses apply_filters() Calls 'bbp_update_reply_to' with the reply id and
1166
  * and reply to id
1167
- * @return bool Reply's parent reply id
1168
  */
1169
  function bbp_update_reply_to( $reply_id = 0, $reply_to = 0 ) {
1170
 
@@ -1342,7 +1336,7 @@ function bbp_move_reply_handler( $action = '' ) {
1342
 
1343
  /** Topic to Move From ***************************************************/
1344
 
1345
- // Get the reply's current topic
1346
  $source_topic = bbp_get_topic( $move_reply->post_parent );
1347
 
1348
  // No topic
@@ -2064,6 +2058,8 @@ function bbp_untrash_reply( $reply_id = 0 ) {
2064
  /**
2065
  * Called after deleting a reply
2066
  *
 
 
2067
  * @uses bbp_get_reply_id() To get the reply id
2068
  * @uses bbp_is_reply() To check if the passed id is a reply
2069
  * @uses do_action() Calls 'bbp_deleted_reply' with the reply id
@@ -2081,6 +2077,8 @@ function bbp_deleted_reply( $reply_id = 0 ) {
2081
  /**
2082
  * Called after trashing a reply
2083
  *
 
 
2084
  * @uses bbp_get_reply_id() To get the reply id
2085
  * @uses bbp_is_reply() To check if the passed id is a reply
2086
  * @uses do_action() Calls 'bbp_trashed_reply' with the reply id
@@ -2098,6 +2096,8 @@ function bbp_trashed_reply( $reply_id = 0 ) {
2098
  /**
2099
  * Called after untrashing (restoring) a reply
2100
  *
 
 
2101
  * @uses bbp_get_reply_id() To get the reply id
2102
  * @uses bbp_is_reply() To check if the passed id is a reply
2103
  * @uses do_action() Calls 'bbp_untrashed_reply' with the reply id
108
  function bbp_insert_reply_update_counts( $reply_id = 0, $topic_id = 0, $forum_id = 0 ) {
109
 
110
  // If the reply is public, update the forum/topic reply counts.
111
+ if ( bbp_is_reply_published( $reply_id ) ) {
112
  bbp_increase_topic_reply_count( $topic_id );
113
+ bbp_increase_forum_reply_count( $reply_id );
114
 
115
  // If the reply isn't public only update the topic reply hidden count.
116
  } else {
837
  * @uses bbp_update_reply_forum_id() To update the reply forum id
838
  * @uses bbp_update_reply_topic_id() To update the reply topic id
839
  * @uses bbp_update_reply_to() To update the reply to id
840
+ * @uses bbp_update_reply_walker() To update the ancestor counts of a reply
841
  */
842
  function bbp_update_reply( $reply_id = 0, $topic_id = 0, $forum_id = 0, $anonymous_data = array(), $author_id = 0, $is_edit = false, $reply_to = 0 ) {
843
 
963
  // Get the topic ID if none was passed
964
  if ( empty( $topic_id ) ) {
965
  $topic_id = bbp_get_reply_topic_id( $reply_id );
 
 
 
 
 
 
966
  }
967
 
968
  // Get the forum ID if none was passed
1056
  * @param int $forum_id Optional. Forum id
1057
  * @uses bbp_get_reply_id() To get the reply id
1058
  * @uses bbp_get_forum_id() To get the forum id
1059
+ * @uses get_post_ancestors() To get the ancestors of a reply
1060
  * @uses get_post_field() To get the post type of the post
1061
  * @uses update_post_meta() To update the reply forum id meta
1062
  * @uses apply_filters() Calls 'bbp_update_reply_forum_id' with the forum id
1063
  * and reply id
1064
+ * @return bool The forum id of the reply
1065
  */
1066
  function bbp_update_reply_forum_id( $reply_id = 0, $forum_id = 0 ) {
1067
 
1106
  * @param int $topic_id Optional. Topic id
1107
  * @uses bbp_get_reply_id() To get the reply id
1108
  * @uses bbp_get_topic_id() To get the topic id
1109
+ * @uses get_post_ancestors() To get the ancestors of a reply
1110
  * @uses get_post_field() To get the post type of the post
1111
  * @uses update_post_meta() To update the reply topic id meta
1112
  * @uses apply_filters() Calls 'bbp_update_reply_topic_id' with the topic id
1113
  * and reply id
1114
+ * @return bool The topic id of the reply
1115
  */
1116
  function bbp_update_reply_topic_id( $reply_id = 0, $topic_id = 0 ) {
1117
 
1148
  }
1149
 
1150
  /*
1151
+ * Update the meta data with its parent reply-to id, of a reply
1152
  *
1153
  * @since 2.4.0 bbPress (r4944)
1154
  *
1158
  * @uses update_post_meta() To update the reply to meta
1159
  * @uses apply_filters() Calls 'bbp_update_reply_to' with the reply id and
1160
  * and reply to id
1161
+ * @return bool The parent reply id of the reply
1162
  */
1163
  function bbp_update_reply_to( $reply_id = 0, $reply_to = 0 ) {
1164
 
1336
 
1337
  /** Topic to Move From ***************************************************/
1338
 
1339
+ // Get the current topic a reply is in
1340
  $source_topic = bbp_get_topic( $move_reply->post_parent );
1341
 
1342
  // No topic
2058
  /**
2059
  * Called after deleting a reply
2060
  *
2061
+ * @since 2.0.0 bbPress (r2993)
2062
+ *
2063
  * @uses bbp_get_reply_id() To get the reply id
2064
  * @uses bbp_is_reply() To check if the passed id is a reply
2065
  * @uses do_action() Calls 'bbp_deleted_reply' with the reply id
2077
  /**
2078
  * Called after trashing a reply
2079
  *
2080
+ * @since 2.0.0 bbPress (r2993)
2081
+ *
2082
  * @uses bbp_get_reply_id() To get the reply id
2083
  * @uses bbp_is_reply() To check if the passed id is a reply
2084
  * @uses do_action() Calls 'bbp_trashed_reply' with the reply id
2096
  /**
2097
  * Called after untrashing (restoring) a reply
2098
  *
2099
+ * @since 2.0.0 bbPress (r2993)
2100
+ *
2101
  * @uses bbp_get_reply_id() To get the reply id
2102
  * @uses bbp_is_reply() To check if the passed id is a reply
2103
  * @uses do_action() Calls 'bbp_untrashed_reply' with the reply id
includes/replies/template.php CHANGED
@@ -1168,7 +1168,7 @@ function bbp_reply_author_display_name( $reply_id = 0 ) {
1168
  * @uses get_post_meta() To get the anonymous poster's name
1169
  * @uses apply_filters() Calls 'bbp_get_reply_author_display_name' with
1170
  * the author display name and reply id
1171
- * @return string Reply's author's display name
1172
  */
1173
  function bbp_get_reply_author_display_name( $reply_id = 0 ) {
1174
  $reply_id = bbp_get_reply_id( $reply_id );
@@ -1535,7 +1535,7 @@ function bbp_reply_topic_title( $reply_id = 0 ) {
1535
  * @uses bbp_get_topic_title() To get the reply topic title
1536
  * @uses apply_filters() Calls 'bbp_get_reply_topic_title' with the
1537
  * topic title and reply id
1538
- * @return string Reply's topic's title
1539
  */
1540
  function bbp_get_reply_topic_title( $reply_id = 0 ) {
1541
  $reply_id = bbp_get_reply_id( $reply_id );
@@ -1567,24 +1567,24 @@ function bbp_reply_topic_id( $reply_id = 0 ) {
1567
  * @uses bbp_get_topic_id() To get the topic id
1568
  * @uses apply_filters() Calls 'bbp_get_reply_topic_id' with the topic
1569
  * id and reply id
1570
- * @return int Reply's topic id
1571
  */
1572
  function bbp_get_reply_topic_id( $reply_id = 0 ) {
1573
-
1574
- // Assume there is no topic id
1575
- $topic_id = 0;
1576
-
1577
- // Check that reply_id is valid
1578
  $reply_id = bbp_get_reply_id( $reply_id );
1579
- if ( ! empty( $reply_id ) ) {
 
 
 
1580
  $topic_id = get_post_meta( $reply_id, '_bbp_topic_id', true );
1581
- if ( ! empty( $topic_id ) ) {
1582
- $topic_id = bbp_get_topic_id( $topic_id );
1583
- }
 
 
1584
  }
1585
 
1586
  // Filter & return
1587
- return (int) apply_filters( 'bbp_get_reply_topic_id', $topic_id, $reply_id );
1588
  }
1589
 
1590
  /**
@@ -1608,20 +1608,20 @@ function bbp_reply_forum_id( $reply_id = 0 ) {
1608
  * @uses get_post_meta() To get the reply forum id
1609
  * @uses apply_filters() Calls 'bbp_get_reply_forum_id' with the forum
1610
  * id and reply id
1611
- * @return int Reply's forum id
1612
  */
1613
  function bbp_get_reply_forum_id( $reply_id = 0 ) {
1614
-
1615
- // Assume there is no forum
1616
- $forum_id = 0;
1617
-
1618
- // Check that reply_id is valid
1619
  $reply_id = bbp_get_reply_id( $reply_id );
1620
- if ( ! empty( $reply_id ) ) {
 
 
 
1621
  $forum_id = get_post_meta( $reply_id, '_bbp_forum_id', true );
1622
- if ( ! empty( $forum_id ) ) {
1623
- $forum_id = bbp_get_forum_id( $forum_id );
1624
- }
 
 
1625
  }
1626
 
1627
  // Filter & return
@@ -1629,18 +1629,18 @@ function bbp_reply_forum_id( $reply_id = 0 ) {
1629
  }
1630
 
1631
  /**
1632
- * Output the reply's ancestor reply id
1633
  *
1634
  * @since 2.4.0 bbPress (r4944)
1635
  *
1636
  * @param int $reply_id Optional. Reply id
1637
- * @uses bbp_get_reply_ancestor_id() To get the reply's ancestor id
1638
  */
1639
  function bbp_reply_ancestor_id( $reply_id = 0 ) {
1640
  echo bbp_get_reply_ancestor_id( $reply_id );
1641
  }
1642
  /**
1643
- * Return the reply's ancestor reply id
1644
  *
1645
  * @since 2.4.0 bbPress (r4944)
1646
  *
@@ -1688,7 +1688,7 @@ function bbp_reply_to( $reply_id = 0 ) {
1688
  * @uses get_post_meta() To get the reply to id
1689
  * @uses apply_filters() Calls 'bbp_get_reply_to' with the reply to id and
1690
  * reply id
1691
- * @return int Reply's reply to id
1692
  */
1693
  function bbp_get_reply_to( $reply_id = 0 ) {
1694
 
@@ -2502,8 +2502,8 @@ function bbp_reply_class( $reply_id = 0, $classes = array() ) {
2502
  * @param int $reply_id Optional. Reply ID
2503
  * @param array Extra classes you can pass when calling this function
2504
  * @uses bbp_get_reply_id() To validate the reply id
2505
- * @uses bbp_get_reply_forum_id() To get the reply's forum id
2506
- * @uses bbp_get_reply_topic_id() To get the reply's topic id
2507
  * @uses get_post_class() To get all the classes including ours
2508
  * @uses apply_filters() Calls 'bbp_get_reply_class' with the classes
2509
  * @return string Row class of the reply
1168
  * @uses get_post_meta() To get the anonymous poster's name
1169
  * @uses apply_filters() Calls 'bbp_get_reply_author_display_name' with
1170
  * the author display name and reply id
1171
+ * @return string The display name of the author of the reply
1172
  */
1173
  function bbp_get_reply_author_display_name( $reply_id = 0 ) {
1174
  $reply_id = bbp_get_reply_id( $reply_id );
1535
  * @uses bbp_get_topic_title() To get the reply topic title
1536
  * @uses apply_filters() Calls 'bbp_get_reply_topic_title' with the
1537
  * topic title and reply id
1538
+ * @return string The topic title of the reply
1539
  */
1540
  function bbp_get_reply_topic_title( $reply_id = 0 ) {
1541
  $reply_id = bbp_get_reply_id( $reply_id );
1567
  * @uses bbp_get_topic_id() To get the topic id
1568
  * @uses apply_filters() Calls 'bbp_get_reply_topic_id' with the topic
1569
  * id and reply id
1570
+ * @return int The topic id of the reply
1571
  */
1572
  function bbp_get_reply_topic_id( $reply_id = 0 ) {
 
 
 
 
 
1573
  $reply_id = bbp_get_reply_id( $reply_id );
1574
+ $topic_id = get_post_field( 'post_parent', $reply_id );
1575
+
1576
+ // Meta-data fallback
1577
+ if ( empty( $topic_id ) ) {
1578
  $topic_id = get_post_meta( $reply_id, '_bbp_topic_id', true );
1579
+ }
1580
+
1581
+ // Filter
1582
+ if ( ! empty( $topic_id ) ) {
1583
+ $topic_id = bbp_get_topic_id( $topic_id );
1584
  }
1585
 
1586
  // Filter & return
1587
+ return (int) apply_filters( 'bbp_get_reply_topic_id', (int) $topic_id, $reply_id );
1588
  }
1589
 
1590
  /**
1608
  * @uses get_post_meta() To get the reply forum id
1609
  * @uses apply_filters() Calls 'bbp_get_reply_forum_id' with the forum
1610
  * id and reply id
1611
+ * @return int The forum id of the reply
1612
  */
1613
  function bbp_get_reply_forum_id( $reply_id = 0 ) {
 
 
 
 
 
1614
  $reply_id = bbp_get_reply_id( $reply_id );
1615
+ $forum_id = get_post_field( 'post_parent', bbp_get_reply_topic_id( $reply_id ) );
1616
+
1617
+ // Meta-data fallback
1618
+ if ( empty( $forum_id ) ) {
1619
  $forum_id = get_post_meta( $reply_id, '_bbp_forum_id', true );
1620
+ }
1621
+
1622
+ // Filter
1623
+ if ( ! empty( $forum_id ) ) {
1624
+ $forum_id = bbp_get_forum_id( $forum_id );
1625
  }
1626
 
1627
  // Filter & return
1629
  }
1630
 
1631
  /**
1632
+ * Output the ancestor reply id of a reply
1633
  *
1634
  * @since 2.4.0 bbPress (r4944)
1635
  *
1636
  * @param int $reply_id Optional. Reply id
1637
+ * @uses bbp_get_reply_ancestor_id() To get the ancestor id of the reply
1638
  */
1639
  function bbp_reply_ancestor_id( $reply_id = 0 ) {
1640
  echo bbp_get_reply_ancestor_id( $reply_id );
1641
  }
1642
  /**
1643
+ * Return the ancestor reply id of a reply
1644
  *
1645
  * @since 2.4.0 bbPress (r4944)
1646
  *
1688
  * @uses get_post_meta() To get the reply to id
1689
  * @uses apply_filters() Calls 'bbp_get_reply_to' with the reply to id and
1690
  * reply id
1691
+ * @return int The parent reply id of the reply
1692
  */
1693
  function bbp_get_reply_to( $reply_id = 0 ) {
1694
 
2502
  * @param int $reply_id Optional. Reply ID
2503
  * @param array Extra classes you can pass when calling this function
2504
  * @uses bbp_get_reply_id() To validate the reply id
2505
+ * @uses bbp_get_reply_forum_id() To get the forum id of the reply
2506
+ * @uses bbp_get_reply_topic_id() To get the topic id of the reply
2507
  * @uses get_post_class() To get all the classes including ours
2508
  * @uses apply_filters() Calls 'bbp_get_reply_class' with the classes
2509
  * @return string Row class of the reply
includes/topics/functions.php CHANGED
@@ -943,12 +943,6 @@ function bbp_update_topic_walker( $topic_id, $last_active_time = '', $forum_id =
943
  // Get the forum ID if none was passed
944
  if ( empty( $forum_id ) ) {
945
  $forum_id = bbp_get_topic_forum_id( $topic_id );
946
-
947
- // Make every effort to get forum id
948
- // https://bbpress.trac.wordpress.org/ticket/2529
949
- if ( empty( $forum_id ) && ( current_filter() === 'bbp_deleted_topic' ) ) {
950
- $forum_id = get_post_field( 'post_parent', $topic_id );
951
- }
952
  }
953
 
954
  // Set the active_id based on topic_id/reply_id
@@ -2523,7 +2517,7 @@ function bbp_increase_topic_reply_count( $topic_id = 0 ) {
2523
  $topic_id = bbp_get_reply_topic_id( $reply_id );
2524
 
2525
  // If this is a new, unpublished, reply, update hidden count and bail.
2526
- if ( 'bbp_new_reply' === current_filter() && ! bbp_is_reply_published( $reply_id ) ) {
2527
  bbp_increase_topic_reply_count_hidden( $topic_id );
2528
  return;
2529
  }
@@ -2669,7 +2663,7 @@ function bbp_decrease_topic_reply_count_hidden( $topic_id = 0 ) {
2669
  function bbp_insert_topic_update_counts( $topic_id = 0, $forum_id = 0 ) {
2670
 
2671
  // If the topic is public, update the forum topic counts.
2672
- if ( bbp_get_topic_status( $topic_id ) === bbp_get_public_status_id() ) {
2673
  bbp_increase_forum_topic_count( $forum_id );
2674
 
2675
  // If the topic isn't public only update the forum topic hidden count.
@@ -2700,12 +2694,11 @@ function bbp_insert_topic_update_counts( $topic_id = 0, $forum_id = 0 ) {
2700
  function bbp_update_topic_forum_id( $topic_id = 0, $forum_id = 0 ) {
2701
 
2702
  // If it's a reply, then get the parent (topic id)
2703
- if ( bbp_is_reply( $topic_id ) ) {
2704
- $topic_id = bbp_get_reply_topic_id( $topic_id );
2705
- } else {
2706
- $topic_id = bbp_get_topic_id( $topic_id );
2707
- }
2708
 
 
2709
  if ( empty( $forum_id ) ) {
2710
  $forum_id = get_post_field( 'post_parent', $topic_id );
2711
  }
@@ -2758,11 +2751,9 @@ function bbp_update_topic_topic_id( $topic_id = 0 ) {
2758
  function bbp_update_topic_reply_count( $topic_id = 0, $reply_count = 0 ) {
2759
 
2760
  // If it's a reply, then get the parent (topic id)
2761
- if ( bbp_is_reply( $topic_id ) ) {
2762
- $topic_id = bbp_get_reply_topic_id( $topic_id );
2763
- } else {
2764
- $topic_id = bbp_get_topic_id( $topic_id );
2765
- }
2766
 
2767
  // Get replies of topic if not passed
2768
  if ( empty( $reply_count ) ) {
@@ -2802,11 +2793,9 @@ function bbp_update_topic_reply_count( $topic_id = 0, $reply_count = 0 ) {
2802
  function bbp_update_topic_reply_count_hidden( $topic_id = 0, $reply_count = 0 ) {
2803
 
2804
  // If it's a reply, then get the parent (topic id)
2805
- if ( bbp_is_reply( $topic_id ) ) {
2806
- $topic_id = bbp_get_reply_topic_id( $topic_id );
2807
- } else {
2808
- $topic_id = bbp_get_topic_id( $topic_id );
2809
- }
2810
 
2811
  // Get replies of topic
2812
  if ( empty( $reply_count ) ) {
@@ -2846,12 +2835,11 @@ function bbp_update_topic_reply_count_hidden( $topic_id = 0, $reply_count = 0 )
2846
  function bbp_update_topic_last_active_id( $topic_id = 0, $active_id = 0 ) {
2847
 
2848
  // If it's a reply, then get the parent (topic id)
2849
- if ( bbp_is_reply( $topic_id ) ) {
2850
- $topic_id = bbp_get_reply_topic_id( $topic_id );
2851
- } else {
2852
- $topic_id = bbp_get_topic_id( $topic_id );
2853
- }
2854
 
 
2855
  if ( empty( $active_id ) ) {
2856
  $active_id = bbp_get_public_child_last_id( $topic_id, bbp_get_reply_post_type() );
2857
  }
@@ -2891,11 +2879,9 @@ function bbp_update_topic_last_active_id( $topic_id = 0, $active_id = 0 ) {
2891
  function bbp_update_topic_last_active_time( $topic_id = 0, $new_time = '' ) {
2892
 
2893
  // If it's a reply, then get the parent (topic id)
2894
- if ( bbp_is_reply( $topic_id ) ) {
2895
- $topic_id = bbp_get_reply_topic_id( $topic_id );
2896
- } else {
2897
- $topic_id = bbp_get_topic_id( $topic_id );
2898
- }
2899
 
2900
  // Check time and use current if empty
2901
  if ( empty( $new_time ) ) {
@@ -2964,6 +2950,7 @@ function bbp_update_topic_last_reply_id( $topic_id = 0, $reply_id = 0 ) {
2964
  * Adjust the total voice count of a topic
2965
  *
2966
  * @since 2.0.0 bbPress (r2567)
 
2967
  *
2968
  * @param int $topic_id Optional. Topic id to update
2969
  * @uses bbp_is_reply() To check if the passed topic id is a reply
@@ -2982,56 +2969,23 @@ function bbp_update_topic_last_reply_id( $topic_id = 0, $reply_id = 0 ) {
2982
  function bbp_update_topic_voice_count( $topic_id = 0 ) {
2983
 
2984
  // If it's a reply, then get the parent (topic id)
2985
- if ( bbp_is_reply( $topic_id ) ) {
2986
- $topic_id = bbp_get_reply_topic_id( $topic_id );
2987
- } elseif ( bbp_is_topic( $topic_id ) ) {
2988
- $topic_id = bbp_get_topic_id( $topic_id );
2989
- } else {
 
2990
  return;
2991
  }
2992
 
2993
- // Query the DB to get voices in this topic
2994
- // See: https://bbpress.trac.wordpress.org/ticket/3083
2995
- $bbp_db = bbp_db();
2996
- $sql = "SELECT DISTINCT( post_author ) FROM (
2997
- SELECT post_author FROM {$bbp_db->posts}
2998
- WHERE ( ID = %d AND post_type = %s )
2999
- UNION
3000
- SELECT post_author FROM {$bbp_db->posts}
3001
- WHERE ( post_parent = %d AND post_status = %s AND post_type = %s )
3002
- ) as u1";
3003
- $query = $bbp_db->prepare( $sql, $topic_id, bbp_get_topic_post_type(), $topic_id, bbp_get_public_status_id(), bbp_get_reply_post_type() );
3004
- $results = $bbp_db->get_col( $query );
3005
-
3006
- // Parse results into voices
3007
- $new_voices = ! is_wp_error( $results )
3008
- ? wp_parse_id_list( array_filter( $results ) )
3009
- : array();
3010
-
3011
- // Get the old voices
3012
- $old_voices = bbp_get_topic_engagements( $topic_id );
3013
-
3014
- // Get the count
3015
- $new_count = count( $new_voices );
3016
- $old_count = count( $old_voices );
3017
-
3018
- // Only recalculate if count is different
3019
- if ( $new_count !== $old_count ) {
3020
-
3021
- // Delete all engagements
3022
- delete_post_meta( $topic_id, '_bbp_engagement' );
3023
-
3024
- // Update the voice count for this topic id
3025
- foreach ( $new_voices as $user_id ) {
3026
- bbp_add_user_engagement( $user_id, $topic_id );
3027
- }
3028
- }
3029
 
3030
  // Update the voice count for this topic id
3031
- update_post_meta( $topic_id, '_bbp_voice_count', $new_count );
3032
 
3033
  // Filter & return
3034
- return (int) apply_filters( 'bbp_update_topic_voice_count', $new_count, $topic_id );
3035
  }
3036
 
3037
  /**
@@ -3056,13 +3010,9 @@ function bbp_update_topic_voice_count( $topic_id = 0 ) {
3056
  function bbp_update_topic_anonymous_reply_count( $topic_id = 0 ) {
3057
 
3058
  // If it's a reply, then get the parent (topic id)
3059
- if ( bbp_is_reply( $topic_id ) ) {
3060
- $topic_id = bbp_get_reply_topic_id( $topic_id );
3061
- } elseif ( bbp_is_topic( $topic_id ) ) {
3062
- $topic_id = bbp_get_topic_id( $topic_id );
3063
- } else {
3064
- return;
3065
- }
3066
 
3067
  // Query the DB to get anonymous replies in this topic
3068
  $bbp_db = bbp_db();
@@ -3489,7 +3439,7 @@ function bbp_unspam_topic_replies( $topic_id = 0 ) {
3489
  }
3490
 
3491
  /**
3492
- * Retreive tags to a topic from post meta before it's unmarked as spam so they.
3493
  *
3494
  * Usually you'll want to do this before the topic itself is unmarked as spam.
3495
  *
@@ -3915,6 +3865,8 @@ function bbp_untrash_topic_replies( $topic_id = 0 ) {
3915
  /**
3916
  * Called after deleting a topic
3917
  *
 
 
3918
  * @uses bbp_get_topic_id() To get the topic id
3919
  * @uses bbp_is_topic() To check if the passed id is a topic
3920
  * @uses do_action() Calls 'bbp_deleted_topic' with the topic id
@@ -3932,6 +3884,8 @@ function bbp_deleted_topic( $topic_id = 0 ) {
3932
  /**
3933
  * Called after trashing a topic
3934
  *
 
 
3935
  * @uses bbp_get_topic_id() To get the topic id
3936
  * @uses bbp_is_topic() To check if the passed id is a topic
3937
  * @uses do_action() Calls 'bbp_trashed_topic' with the topic id
@@ -3949,6 +3903,8 @@ function bbp_trashed_topic( $topic_id = 0 ) {
3949
  /**
3950
  * Called after untrashing a topic
3951
  *
 
 
3952
  * @uses bbp_get_topic_id() To get the topic id
3953
  * @uses bbp_is_topic() To check if the passed id is a topic
3954
  * @uses do_action() Calls 'bbp_untrashed_topic' with the topic id
943
  // Get the forum ID if none was passed
944
  if ( empty( $forum_id ) ) {
945
  $forum_id = bbp_get_topic_forum_id( $topic_id );
 
 
 
 
 
 
946
  }
947
 
948
  // Set the active_id based on topic_id/reply_id
2517
  $topic_id = bbp_get_reply_topic_id( $reply_id );
2518
 
2519
  // If this is a new, unpublished, reply, update hidden count and bail.
2520
+ if ( ! bbp_is_reply_published( $reply_id ) ) {
2521
  bbp_increase_topic_reply_count_hidden( $topic_id );
2522
  return;
2523
  }
2663
  function bbp_insert_topic_update_counts( $topic_id = 0, $forum_id = 0 ) {
2664
 
2665
  // If the topic is public, update the forum topic counts.
2666
+ if ( bbp_is_topic_public( $topic_id ) ) {
2667
  bbp_increase_forum_topic_count( $forum_id );
2668
 
2669
  // If the topic isn't public only update the forum topic hidden count.
2694
  function bbp_update_topic_forum_id( $topic_id = 0, $forum_id = 0 ) {
2695
 
2696
  // If it's a reply, then get the parent (topic id)
2697
+ $topic_id = bbp_is_reply( $topic_id )
2698
+ ? bbp_get_reply_topic_id( $topic_id )
2699
+ : bbp_get_topic_id( $topic_id );
 
 
2700
 
2701
+ // Forum ID fallback
2702
  if ( empty( $forum_id ) ) {
2703
  $forum_id = get_post_field( 'post_parent', $topic_id );
2704
  }
2751
  function bbp_update_topic_reply_count( $topic_id = 0, $reply_count = 0 ) {
2752
 
2753
  // If it's a reply, then get the parent (topic id)
2754
+ $topic_id = bbp_is_reply( $topic_id )
2755
+ ? bbp_get_reply_topic_id( $topic_id )
2756
+ : bbp_get_topic_id( $topic_id );
 
 
2757
 
2758
  // Get replies of topic if not passed
2759
  if ( empty( $reply_count ) ) {
2793
  function bbp_update_topic_reply_count_hidden( $topic_id = 0, $reply_count = 0 ) {
2794
 
2795
  // If it's a reply, then get the parent (topic id)
2796
+ $topic_id = bbp_is_reply( $topic_id )
2797
+ ? bbp_get_reply_topic_id( $topic_id )
2798
+ : bbp_get_topic_id( $topic_id );
 
 
2799
 
2800
  // Get replies of topic
2801
  if ( empty( $reply_count ) ) {
2835
  function bbp_update_topic_last_active_id( $topic_id = 0, $active_id = 0 ) {
2836
 
2837
  // If it's a reply, then get the parent (topic id)
2838
+ $topic_id = bbp_is_reply( $topic_id )
2839
+ ? bbp_get_reply_topic_id( $topic_id )
2840
+ : bbp_get_topic_id( $topic_id );
 
 
2841
 
2842
+ // Get last public active id if not passed
2843
  if ( empty( $active_id ) ) {
2844
  $active_id = bbp_get_public_child_last_id( $topic_id, bbp_get_reply_post_type() );
2845
  }
2879
  function bbp_update_topic_last_active_time( $topic_id = 0, $new_time = '' ) {
2880
 
2881
  // If it's a reply, then get the parent (topic id)
2882
+ $topic_id = bbp_is_reply( $topic_id )
2883
+ ? bbp_get_reply_topic_id( $topic_id )
2884
+ : bbp_get_topic_id( $topic_id );
 
 
2885
 
2886
  // Check time and use current if empty
2887
  if ( empty( $new_time ) ) {
2950
  * Adjust the total voice count of a topic
2951
  *
2952
  * @since 2.0.0 bbPress (r2567)
2953
+ * @since 2.6.0 bbPress (r6515) This must be called after any engagement changes
2954
  *
2955
  * @param int $topic_id Optional. Topic id to update
2956
  * @uses bbp_is_reply() To check if the passed topic id is a reply
2969
  function bbp_update_topic_voice_count( $topic_id = 0 ) {
2970
 
2971
  // If it's a reply, then get the parent (topic id)
2972
+ $topic_id = bbp_is_reply( $topic_id )
2973
+ ? bbp_get_reply_topic_id( $topic_id )
2974
+ : bbp_get_topic_id( $topic_id );
2975
+
2976
+ // Bail if no topic ID
2977
+ if ( empty( $topic_id ) ) {
2978
  return;
2979
  }
2980
 
2981
+ // Count the engagements
2982
+ $count = count( bbp_get_topic_engagements( $topic_id ) );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2983
 
2984
  // Update the voice count for this topic id
2985
+ update_post_meta( $topic_id, '_bbp_voice_count', $count );
2986
 
2987
  // Filter & return
2988
+ return (int) apply_filters( 'bbp_update_topic_voice_count', $count, $topic_id );
2989
  }
2990
 
2991
  /**
3010
  function bbp_update_topic_anonymous_reply_count( $topic_id = 0 ) {
3011
 
3012
  // If it's a reply, then get the parent (topic id)
3013
+ $topic_id = bbp_is_reply( $topic_id )
3014
+ ? bbp_get_reply_topic_id( $topic_id )
3015
+ : bbp_get_topic_id( $topic_id );
 
 
 
 
3016
 
3017
  // Query the DB to get anonymous replies in this topic
3018
  $bbp_db = bbp_db();
3439
  }
3440
 
3441
  /**
3442
+ * Retrieve tags to a topic from post meta before it's unmarked as spam so they.
3443
  *
3444
  * Usually you'll want to do this before the topic itself is unmarked as spam.
3445
  *
3865
  /**
3866
  * Called after deleting a topic
3867
  *
3868
+ * @since 2.0.0 bbPress (r2993)
3869
+ *
3870
  * @uses bbp_get_topic_id() To get the topic id
3871
  * @uses bbp_is_topic() To check if the passed id is a topic
3872
  * @uses do_action() Calls 'bbp_deleted_topic' with the topic id
3884
  /**
3885
  * Called after trashing a topic
3886
  *
3887
+ * @since 2.0.0 bbPress (r2993)
3888
+ *
3889
  * @uses bbp_get_topic_id() To get the topic id
3890
  * @uses bbp_is_topic() To check if the passed id is a topic
3891
  * @uses do_action() Calls 'bbp_trashed_topic' with the topic id
3903
  /**
3904
  * Called after untrashing a topic
3905
  *
3906
+ * @since 2.0.0 bbPress (r2993)
3907
+ *
3908
  * @uses bbp_get_topic_id() To get the topic id
3909
  * @uses bbp_is_topic() To check if the passed id is a topic
3910
  * @uses do_action() Calls 'bbp_untrashed_topic' with the topic id
includes/topics/template.php CHANGED
@@ -1220,11 +1220,14 @@ function bbp_is_topic_open( $topic_id = 0 ) {
1220
  /**
1221
  * Is the topic publicly viewable?
1222
  *
 
 
1223
  * @since 2.6.0 bbPress (r6383)
1224
  *
1225
  * @param int $topic_id Optional. Topic id
1226
  * @uses bbp_get_topic_id() To get the topic id
1227
  * @uses bbp_get_topic_status() To get the topic status
 
1228
  * @uses apply_filters() Calls 'bbp_is_topic_public' with the topic id
1229
  * @return bool True if public, false if not.
1230
  */
@@ -1880,7 +1883,17 @@ function bbp_topic_forum_id( $topic_id = 0 ) {
1880
  */
1881
  function bbp_get_topic_forum_id( $topic_id = 0 ) {
1882
  $topic_id = bbp_get_topic_id( $topic_id );
1883
- $forum_id = get_post_meta( $topic_id, '_bbp_forum_id', true );
 
 
 
 
 
 
 
 
 
 
1884
 
1885
  // Filter & return
1886
  return (int) apply_filters( 'bbp_get_topic_forum_id', (int) $forum_id, $topic_id );
@@ -3675,15 +3688,15 @@ function bbp_single_topic_description( $args = array() ) {
3675
  // Singular/Plural
3676
  $voice_count = sprintf( _n( '%s voice', '%s voices', $vc_int, 'bbpress' ), $voice_count );
3677
 
3678
- // Topic has replies
3679
- $last_reply = bbp_get_topic_last_reply_id( $topic_id );
3680
- if ( ! empty( $last_reply ) ) {
3681
- $last_updated_by = bbp_get_author_link( array( 'post_id' => $last_reply, 'size' => $r['size'] ) );
3682
- $retstr = sprintf( esc_html__( 'This topic contains %1$s, has %2$s, and was last updated by %3$s %4$s.', 'bbpress' ), $reply_count, $voice_count, $last_updated_by, $time_since );
3683
 
3684
  // Topic has no replies
3685
  } elseif ( ! empty( $voice_count ) && ! empty( $reply_count ) ) {
3686
- $retstr = sprintf( esc_html__( 'This topic contains %1$s and has %2$s.', 'bbpress' ), $voice_count, $reply_count );
3687
 
3688
  // Topic has no replies and no voices
3689
  } elseif ( empty( $voice_count ) && empty( $reply_count ) ) {
@@ -4111,7 +4124,7 @@ function bbp_form_topic_content() {
4111
  }
4112
 
4113
  /**
4114
- * Allow topic rows to have adminstrative actions
4115
  *
4116
  * @since 2.1.0 bbPress (r3653)
4117
  *
1220
  /**
1221
  * Is the topic publicly viewable?
1222
  *
1223
+ * See bbp_get_public_topic_statuses() for public statuses.
1224
+ *
1225
  * @since 2.6.0 bbPress (r6383)
1226
  *
1227
  * @param int $topic_id Optional. Topic id
1228
  * @uses bbp_get_topic_id() To get the topic id
1229
  * @uses bbp_get_topic_status() To get the topic status
1230
+ * @uses bbp_get_public_topic_statuses() To get the public statuses
1231
  * @uses apply_filters() Calls 'bbp_is_topic_public' with the topic id
1232
  * @return bool True if public, false if not.
1233
  */
1883
  */
1884
  function bbp_get_topic_forum_id( $topic_id = 0 ) {
1885
  $topic_id = bbp_get_topic_id( $topic_id );
1886
+ $forum_id = get_post_field( 'post_parent', $topic_id );
1887
+
1888
+ // Meta-data fallback
1889
+ if ( empty( $forum_id ) ) {
1890
+ $forum_id = get_post_meta( $topic_id, '_bbp_forum_id', true );
1891
+ }
1892
+
1893
+ // Filter
1894
+ if ( ! empty( $forum_id ) ) {
1895
+ $forum_id = bbp_get_forum_id( $forum_id );
1896
+ }
1897
 
1898
  // Filter & return
1899
  return (int) apply_filters( 'bbp_get_topic_forum_id', (int) $forum_id, $topic_id );
3688
  // Singular/Plural
3689
  $voice_count = sprintf( _n( '%s voice', '%s voices', $vc_int, 'bbpress' ), $voice_count );
3690
 
3691
+ // Topic has activity (could be from reply or topic author)
3692
+ $last_active = bbp_get_topic_last_active_id( $topic_id );
3693
+ if ( ! empty( $last_active ) ) {
3694
+ $last_updated_by = bbp_get_author_link( array( 'post_id' => $last_active, 'size' => $r['size'] ) );
3695
+ $retstr = sprintf( esc_html__( 'This topic has %1$s, %2$s, and was last updated %3$s by %4$s.', 'bbpress' ), $reply_count, $voice_count, $time_since, $last_updated_by );
3696
 
3697
  // Topic has no replies
3698
  } elseif ( ! empty( $voice_count ) && ! empty( $reply_count ) ) {
3699
+ $retstr = sprintf( esc_html__( 'This topic has %1$s and %2$s.', 'bbpress' ), $voice_count, $reply_count );
3700
 
3701
  // Topic has no replies and no voices
3702
  } elseif ( empty( $voice_count ) && empty( $reply_count ) ) {
4124
  }
4125
 
4126
  /**
4127
+ * Allow topic rows to have administrative actions
4128
  *
4129
  * @since 2.1.0 bbPress (r3653)
4130
  *
includes/users/capabilities.php CHANGED
@@ -797,55 +797,59 @@ function bbp_user_has_profile( $user_id = 0 ) {
797
  /**
798
  * Add a moderator to an object
799
  *
800
- * @since 2.6.0 bbPRess
801
  *
802
- * @param int $object_id Traditionally a forum ID, but could be useful
803
- * @param int $user_id
 
804
  *
805
- * @return @mixed
806
  */
807
- function bbp_add_moderator( $object_id = 0, $user_id = 0 ) {
808
- return bbp_add_user_to_object( $object_id, $user_id, '_bbp_moderator_id' );
809
  }
810
 
811
  /**
812
  * Remove a moderator user ID from an object
813
  *
814
- * @since 2.6.0 bbPress
815
  *
816
- * @param int $object_id
817
- * @param int $user_id
 
818
  *
819
  * @return bool
820
  */
821
- function bbp_remove_moderator( $object_id = 0, $user_id = 0 ) {
822
- return bbp_remove_user_from_object( $object_id, $user_id, '_bbp_moderator_id' );
823
  }
824
 
825
  /**
826
  * Get user IDs of moderators for an object
827
  *
828
- * @since 2.6.0 bbPress
829
  *
830
- * @param int $object_id
 
831
  *
832
- * @return mixed
833
  */
834
- function bbp_get_moderator_ids( $object_id = 0 ) {
835
- return bbp_get_users_for_object( $object_id, '_bbp_moderator_id' );
836
  }
837
 
838
  /**
839
  * Get moderators for a specific object ID. Will return global moderators when
840
  * object ID is empty.
841
  *
842
- * @since 2.6.0 bbPress
843
  *
844
- * @param int $object_id
 
845
  *
846
  * @return array
847
  */
848
- function bbp_get_moderators( $object_id = 0 ) {
849
 
850
  // Get global moderators
851
  if ( empty( $object_id ) ) {
@@ -856,10 +860,10 @@ function bbp_get_moderators( $object_id = 0 ) {
856
  // Get object moderators
857
  } else {
858
  $users = get_users( array(
859
- 'include' => bbp_get_moderator_ids( $object_id ),
860
  ) );
861
  }
862
 
863
  // Filter & return
864
- return (array) apply_filters( 'bbp_get_moderators', $users, $object_id );
865
  }
797
  /**
798
  * Add a moderator to an object
799
  *
800
+ * @since 2.6.0 bbPress (r6056)
801
  *
802
+ * @param int $object_id Traditionally a post ID
803
+ * @param int $user_id User ID
804
+ * @param string $object_type Type of meta (post,term,user,comment)
805
  *
806
+ * @return bool
807
  */
808
+ function bbp_add_moderator( $object_id = 0, $user_id = 0, $object_type = 'post' ) {
809
+ return bbp_add_user_to_object( $object_id, $user_id, '_bbp_moderator_id', $object_type );
810
  }
811
 
812
  /**
813
  * Remove a moderator user ID from an object
814
  *
815
+ * @since 2.6.0 bbPress (r6056)
816
  *
817
+ * @param int $object_id Traditionally a post ID
818
+ * @param int $user_id User ID
819
+ * @param string $object_type Type of meta (post,term,user,comment)
820
  *
821
  * @return bool
822
  */
823
+ function bbp_remove_moderator( $object_id = 0, $user_id = 0, $object_type = 'post' ) {
824
+ return bbp_remove_user_from_object( $object_id, $user_id, '_bbp_moderator_id', $object_type );
825
  }
826
 
827
  /**
828
  * Get user IDs of moderators for an object
829
  *
830
+ * @since 2.6.0 bbPress (r6056)
831
  *
832
+ * @param int $object_id Traditionally a post ID
833
+ * @param string $object_type Type of meta (post,term,user,comment)
834
  *
835
+ * @return array
836
  */
837
+ function bbp_get_moderator_ids( $object_id = 0, $object_type = 'post' ) {
838
+ return bbp_get_users_for_object( $object_id, '_bbp_moderator_id', $object_type );
839
  }
840
 
841
  /**
842
  * Get moderators for a specific object ID. Will return global moderators when
843
  * object ID is empty.
844
  *
845
+ * @since 2.6.0 bbPress (r6056)
846
  *
847
+ * @param int $object_id Traditionally a post ID
848
+ * @param string $object_type Type of meta (post,term,user,comment)
849
  *
850
  * @return array
851
  */
852
+ function bbp_get_moderators( $object_id = 0, $object_type = 'post' ) {
853
 
854
  // Get global moderators
855
  if ( empty( $object_id ) ) {
860
  // Get object moderators
861
  } else {
862
  $users = get_users( array(
863
+ 'include' => bbp_get_moderator_ids( $object_id, $object_type ),
864
  ) );
865
  }
866
 
867
  // Filter & return
868
+ return (array) apply_filters( 'bbp_get_moderators', $users, $object_id, $object_type );
869
  }
includes/users/engagements.php CHANGED
@@ -13,26 +13,25 @@ defined( 'ABSPATH' ) || exit;
13
  /** User Relationships ********************************************************/
14
 
15
  /**
16
- * Set a user id on an object
17
  *
18
  * @since 2.6.0 bbPress (r6109)
19
  *
20
  * @param int $object_id The object id
21
  * @param int $user_id The user id
22
  * @param string $meta_key The relationship key
23
- * @param string $meta_type The relationship type
 
24
  *
25
- * @uses add_post_meta() To set the term on the object
26
- * @uses apply_filters() Calls 'bbp_add_user_to_object' with the object id, user
27
- * id, and taxonomy
28
- * @return bool Returns true if the user taxonomy term is added to the object,
29
- * otherwise false
30
  */
31
- function bbp_add_user_to_object( $object_id = 0, $user_id = 0, $meta_key = '', $meta_type = 'post' ) {
32
- $retval = add_metadata( $meta_type, $object_id, $meta_key, $user_id, false );
33
 
34
  // Filter & return
35
- return (bool) apply_filters( 'bbp_add_user_to_object', (bool) $retval, $object_id, $user_id, $meta_key, $meta_type );
36
  }
37
 
38
  /**
@@ -40,16 +39,14 @@ function bbp_add_user_to_object( $object_id = 0, $user_id = 0, $meta_key = '', $
40
  *
41
  * @since 2.6.0 bbPress (r6109)
42
  *
43
- * @param int $object_id The post id
44
  * @param int $user_id The user id
45
  * @param string $meta_key The relationship key
46
- * @param string $meta_type The relationship type
47
  *
48
- * @uses delete_post_meta() To remove the term from the object
49
- * @uses apply_filters() Calls 'bbp_remove_user_from_object' with the object
50
- * id, user id, and taxonomy
51
- * @return bool Returns true is the user taxonomy term is removed from the object,
52
- * otherwise false
53
  */
54
  function bbp_remove_user_from_object( $object_id = 0, $user_id = 0, $meta_key = '', $meta_type = 'post' ) {
55
  $retval = delete_metadata( $meta_type, $object_id, $meta_key, $user_id, false );
@@ -59,7 +56,67 @@ function bbp_remove_user_from_object( $object_id = 0, $user_id = 0, $meta_key =
59
  }
60
 
61
  /**
62
- * Get user taxonomy terms for an object
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
63
  *
64
  * @since 2.6.0 bbPress (r6109)
65
  *
@@ -67,10 +124,9 @@ function bbp_remove_user_from_object( $object_id = 0, $user_id = 0, $meta_key =
67
  * @param string $meta_key The key used to index this relationship
68
  * @param string $meta_type The type of meta to look in
69
  *
70
- * @uses get_post_meta() To get the user taxonomy terms
71
- * @uses apply_filters() Calls 'bbp_get_users_for_object' with the user
72
- * taxonomy terms, object id, and taxonomy
73
- * @return array Returns the user taxonomy terms of the object
74
  */
75
  function bbp_get_users_for_object( $object_id = 0, $meta_key = '', $meta_type = 'post' ) {
76
  $meta = get_metadata( $meta_type, $object_id, $meta_key, false );
@@ -81,20 +137,18 @@ function bbp_get_users_for_object( $object_id = 0, $meta_key = '', $meta_type =
81
  }
82
 
83
  /**
84
- * Check if the user id is set on an object
85
  *
86
  * @since 2.6.0 bbPress (r6109)
87
  *
88
  * @param int $object_id The object id
89
  * @param int $user_id The user id
90
  * @param string $meta_key The relationship key
91
- * @param string $meta_type The relationship type
 
 
92
  *
93
- * @uses get_post_meta() To check if the user id is set on the object
94
- * @uses apply_filters() Calls 'bbp_is_object_of_user' with the object id,
95
- * user id, and taxonomy
96
- * @return bool Returns true if the user id is set on the object for the
97
- * taxonomy, otherwise false
98
  */
99
  function bbp_is_object_of_user( $object_id = 0, $user_id = 0, $meta_key = '', $meta_type = 'post' ) {
100
  $user_ids = bbp_get_users_for_object( $object_id, $meta_key, $meta_type );
@@ -125,6 +179,47 @@ function bbp_get_topic_engagements( $topic_id = 0 ) {
125
  return (array) apply_filters( 'bbp_get_topic_engagements', $users, $topic_id );
126
  }
127
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
128
  /**
129
  * Get a user's topic engagements
130
  *
@@ -162,7 +257,7 @@ function bbp_get_user_engagements( $user_id = 0 ) {
162
  * @uses bbp_get_topic_post_type() To get the topic post type
163
  * @uses apply_filters() Calls 'bbp_get_user_engaged_topic_ids' with
164
  * the engaged topics and user id
165
- * @return array|bool Results if user has engaged, otherwise null
166
  */
167
  function bbp_get_user_engaged_topic_ids( $user_id = 0 ) {
168
  $user_id = bbp_get_user_id( $user_id );
@@ -202,7 +297,7 @@ function bbp_is_user_engaged( $user_id = 0, $topic_id = 0 ) {
202
  $retval = bbp_is_object_of_user( $topic_id, $user_id, '_bbp_engagement' );
203
 
204
  // Filter & return
205
- return (bool) apply_filters( 'bbp_is_user_engaged', (bool) $retval, $user_id, $topic_id );
206
  }
207
 
208
  /**
@@ -255,7 +350,7 @@ function bbp_add_user_engagement( $user_id = 0, $topic_id = 0 ) {
255
  * @return bool True if the topic was removed from user's engagements, otherwise
256
  * false
257
  */
258
- function bbp_remove_user_engagement( $user_id, $topic_id ) {
259
 
260
  // Bail if not enough info
261
  if ( empty( $user_id ) || empty( $topic_id ) ) {
@@ -277,6 +372,103 @@ function bbp_remove_user_engagement( $user_id, $topic_id ) {
277
  return true;
278
  }
279
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
280
  /** Favorites *****************************************************************/
281
 
282
  /**
@@ -399,7 +591,7 @@ function bbp_is_user_favorite( $user_id = 0, $topic_id = 0 ) {
399
  }
400
 
401
  // Filter & return
402
- return (bool) apply_filters( 'bbp_is_user_favorite', (bool) $retval, $user_id, $topic_id, $favorites );
403
  }
404
 
405
  /**
@@ -764,7 +956,7 @@ function bbp_get_user_subscribed_topic_ids( $user_id = 0 ) {
764
  * @uses bbp_get_forum_post_type() To get the forum post type
765
  * @uses bbp_get_topic_post_type() To get the topic post type
766
  * @uses apply_filters() Calls 'bbp_is_user_subscribed' with the bool, user id,
767
- * forum/topic id and subsriptions
768
  * @return bool True if the forum or topic is in user's subscriptions, otherwise false
769
  */
770
  function bbp_is_user_subscribed( $user_id = 0, $object_id = 0 ) {
@@ -861,7 +1053,7 @@ function bbp_is_user_subscribed_to_forum( $user_id = 0, $forum_id = 0, $subscrib
861
  }
862
 
863
  // Filter & return
864
- return (bool) apply_filters( 'bbp_is_user_subscribed_to_forum', (bool) $retval, $user_id, $forum_id, $subscribed_ids );
865
  }
866
 
867
  /**
@@ -919,7 +1111,7 @@ function bbp_is_user_subscribed_to_topic( $user_id = 0, $topic_id = 0, $subscrib
919
  }
920
 
921
  // Filter & return
922
- return (bool) apply_filters( 'bbp_is_user_subscribed_to_topic', (bool) $retval, $user_id, $topic_id, $subscribed_ids );
923
  }
924
 
925
  /**
13
  /** User Relationships ********************************************************/
14
 
15
  /**
16
+ * Add a user id to an object
17
  *
18
  * @since 2.6.0 bbPress (r6109)
19
  *
20
  * @param int $object_id The object id
21
  * @param int $user_id The user id
22
  * @param string $meta_key The relationship key
23
+ * @param string $meta_type The relationship type (usually 'post')
24
+ * @param bool $unique Whether meta key should be unique to the object
25
  *
26
+ * @uses add_metadata() To add the user to an object
27
+ *
28
+ * @return bool Returns true on success, false on failure
 
 
29
  */
30
+ function bbp_add_user_to_object( $object_id = 0, $user_id = 0, $meta_key = '', $meta_type = 'post', $unique = false ) {
31
+ $retval = add_metadata( $meta_type, $object_id, $meta_key, $user_id, $unique );
32
 
33
  // Filter & return
34
+ return (bool) apply_filters( 'bbp_add_user_to_object', (bool) $retval, $object_id, $user_id, $meta_key, $meta_type, $unique );
35
  }
36
 
37
  /**
39
  *
40
  * @since 2.6.0 bbPress (r6109)
41
  *
42
+ * @param int $object_id The object id
43
  * @param int $user_id The user id
44
  * @param string $meta_key The relationship key
45
+ * @param string $meta_type The relationship type (usually 'post')
46
  *
47
+ * @uses delete_metadata() To remove a user from an objects
48
+ *
49
+ * @return bool Returns true on success, false on failure
 
 
50
  */
51
  function bbp_remove_user_from_object( $object_id = 0, $user_id = 0, $meta_key = '', $meta_type = 'post' ) {
52
  $retval = delete_metadata( $meta_type, $object_id, $meta_key, $user_id, false );
56
  }
57
 
58
  /**
59
+ * Remove all users from an object
60
+ *
61
+ * @since 2.6.0 bbPress (r6109)
62
+ *
63
+ * @param int $object_id The object id
64
+ * @param int $user_id The user id
65
+ * @param string $meta_key The relationship key
66
+ * @param string $meta_type The relationship type (usually 'post')
67
+ *
68
+ * @uses delete_metadata() To remove all user from an object
69
+ *
70
+ * @return bool Returns true on success, false on failure
71
+ */
72
+ function bbp_remove_all_users_from_object( $object_id = 0, $meta_key = '', $meta_type = 'post' ) {
73
+ $retval = delete_metadata( $meta_type, $object_id, $meta_key, null, false );
74
+
75
+ // Filter & return
76
+ return (bool) apply_filters( 'bbp_remove_all_users_from_object', (bool) $retval, $object_id, $meta_key, $meta_type );
77
+ }
78
+
79
+ /**
80
+ * Remove a user id from all objects
81
+ *
82
+ * @since 2.6.0 bbPress (r6109)
83
+ *
84
+ * @param int $user_id The user id
85
+ * @param string $meta_key The relationship key
86
+ * @param string $meta_type The relationship type (usually 'post')
87
+ *
88
+ * @uses delete_metadata() To remove user from all objects
89
+ *
90
+ * @return bool Returns true on success, false on failure
91
+ */
92
+ function bbp_remove_user_from_all_objects( $user_id = 0, $meta_key = '', $meta_type = 'post' ) {
93
+ $retval = delete_metadata( $meta_type, null, $meta_key, $user_id, true );
94
+
95
+ // Filter & return
96
+ return (bool) apply_filters( 'bbp_remove_user_from_all_objects', (bool) $retval, $user_id, $meta_key, $meta_type );
97
+ }
98
+
99
+ /**
100
+ * Remove all users from all objects
101
+ *
102
+ * @since 2.6.0 bbPress (r6109)
103
+ *
104
+ * @param string $meta_key The relationship key
105
+ * @param string $meta_type The relationship type (usually 'post')
106
+ *
107
+ * @uses delete_metadata() To remove users from objects
108
+ *
109
+ * @return bool Returns true on success, false on failure
110
+ */
111
+ function bbp_remove_all_users_from_all_objects( $meta_key = '', $meta_type = 'post' ) {
112
+ $retval = delete_metadata( $meta_type, null, $meta_key, null, true );
113
+
114
+ // Filter & return
115
+ return (bool) apply_filters( 'bbp_remove_all_users_from_all_objects', (bool) $retval, $meta_key, $meta_type );
116
+ }
117
+
118
+ /**
119
+ * Get users of an object
120
  *
121
  * @since 2.6.0 bbPress (r6109)
122
  *
124
  * @param string $meta_key The key used to index this relationship
125
  * @param string $meta_type The type of meta to look in
126
  *
127
+ * @uses get_metadata() To get the users of an object
128
+ *
129
+ * @return array Returns ids of users
 
130
  */
131
  function bbp_get_users_for_object( $object_id = 0, $meta_key = '', $meta_type = 'post' ) {
132
  $meta = get_metadata( $meta_type, $object_id, $meta_key, false );
137
  }
138
 
139
  /**
140
+ * Check if an object has a specific user
141
  *
142
  * @since 2.6.0 bbPress (r6109)
143
  *
144
  * @param int $object_id The object id
145
  * @param int $user_id The user id
146
  * @param string $meta_key The relationship key
147
+ * @param string $meta_type The relationship type (usually 'post')
148
+ *
149
+ * @uses bbp_get_users_for_object() To get all users of an object
150
  *
151
+ * @return bool Returns true if object has a user, false if not
 
 
 
 
152
  */
153
  function bbp_is_object_of_user( $object_id = 0, $user_id = 0, $meta_key = '', $meta_type = 'post' ) {
154
  $user_ids = bbp_get_users_for_object( $object_id, $meta_key, $meta_type );
179
  return (array) apply_filters( 'bbp_get_topic_engagements', $users, $topic_id );
180
  }
181
 
182
+ /**
183
+ * Return the users who have engaged in a topic, directly with a database query
184
+ *
185
+ * See: https://bbpress.trac.wordpress.org/ticket/3083
186
+ *
187
+ * @since 2.6.0 bbPress (r6522)
188
+ *
189
+ * @param int $topic_id
190
+ *
191
+ * @return array
192
+ */
193
+ function bbp_get_topic_engagements_raw( $topic_id = 0 ) {
194
+
195
+ // Default variables
196
+ $topic_id = bbp_get_topic_id( $topic_id );
197
+ $bbp_db = bbp_db();
198
+ $statii = "'" . implode( "', '", bbp_get_public_topic_statuses() ) . "'";
199
+
200
+ // A cool UNION query!
201
+ $sql = "
202
+ SELECT DISTINCT( post_author ) FROM (
203
+ SELECT post_author FROM {$bbp_db->posts}
204
+ WHERE ( ID = %d AND post_status IN ({$statii}) AND post_type = %s )
205
+ UNION
206
+ SELECT post_author FROM {$bbp_db->posts}
207
+ WHERE ( post_parent = %d AND post_status = %s AND post_type = %s )
208
+ ) as u1";
209
+
210
+ // Prepare & get results
211
+ $query = $bbp_db->prepare( $sql, $topic_id, bbp_get_topic_post_type(), $topic_id, bbp_get_public_status_id(), bbp_get_reply_post_type() );
212
+ $results = $bbp_db->get_col( $query );
213
+
214
+ // Parse results into voices
215
+ $engagements = ! is_wp_error( $results )
216
+ ? wp_parse_id_list( array_filter( $results ) )
217
+ : array();
218
+
219
+ // Filter & return
220
+ return (array) apply_filters( 'bbp_get_topic_engagements_raw', $engagements, $topic_id );
221
+ }
222
+
223
  /**
224
  * Get a user's topic engagements
225
  *
257
  * @uses bbp_get_topic_post_type() To get the topic post type
258
  * @uses apply_filters() Calls 'bbp_get_user_engaged_topic_ids' with
259
  * the engaged topics and user id
260
+ * @return array Topic ids if user has engaged, otherwise empty array
261
  */
262
  function bbp_get_user_engaged_topic_ids( $user_id = 0 ) {
263
  $user_id = bbp_get_user_id( $user_id );
297
  $retval = bbp_is_object_of_user( $topic_id, $user_id, '_bbp_engagement' );
298
 
299
  // Filter & return
300
+ return (bool) apply_filters( 'bbp_is_user_engaged', $retval, $user_id, $topic_id );
301
  }
302
 
303
  /**
350
  * @return bool True if the topic was removed from user's engagements, otherwise
351
  * false
352
  */
353
+ function bbp_remove_user_engagement( $user_id = 0, $topic_id = 0 ) {
354
 
355
  // Bail if not enough info
356
  if ( empty( $user_id ) || empty( $topic_id ) ) {
372
  return true;
373
  }
374
 
375
+ /**
376
+ * Recalculate all of the users who have engaged in a topic.
377
+ *
378
+ * This happens when permanently deleting a reply, because that reply author may
379
+ * have authored other replies to that same topic, or the topic itself.
380
+ *
381
+ * You may need to do this manually on heavily active forums where engagement
382
+ * count accuracy is important.
383
+ *
384
+ * @since 2.6.0 bbPress (r6522)
385
+ *
386
+ * @param int $topic_id
387
+ * @param bool $force
388
+ *
389
+ * @return boolean True if any engagements are added, false otherwise
390
+ */
391
+ function bbp_recalculate_topic_engagements( $topic_id = 0, $force = false ) {
392
+
393
+ // Default return value
394
+ $retval = false;
395
+
396
+ // Check post type
397
+ $topic_id = bbp_is_reply( $topic_id )
398
+ ? bbp_get_reply_topic_id( $topic_id )
399
+ : bbp_get_topic_id( $topic_id );
400
+
401
+ // Bail if no topic ID
402
+ if ( empty( $topic_id ) ) {
403
+ return $retval;
404
+ }
405
+
406
+ // Query for engagements
407
+ $old_engagements = bbp_get_topic_engagements( $topic_id );
408
+ $new_engagements = bbp_get_topic_engagements_raw( $topic_id );
409
+
410
+ // Sort arrays
411
+ sort( $old_engagements, SORT_NUMERIC );
412
+ sort( $new_engagements, SORT_NUMERIC );
413
+
414
+ // Only recalculate on change
415
+ if ( ( true === $force ) || ( $old_engagements !== $new_engagements ) ) {
416
+
417
+ // Delete all engagements
418
+ bbp_remove_all_users_from_object( $topic_id, '_bbp_engagement' );
419
+
420
+ // Update the voice count for this topic id
421
+ foreach ( $new_engagements as $user_id ) {
422
+ $retval = bbp_add_user_engagement( $user_id, $topic_id );
423
+ }
424
+ }
425
+
426
+ // Filter & return
427
+ return (bool) apply_filters( 'bbp_recalculate_user_engagements', $retval, $topic_id );
428
+ }
429
+
430
+ /**
431
+ * Update the engagements of a topic.
432
+ *
433
+ * Hooked to 'bbp_new_topic' and 'bbp_new_reply', this gets the post author and
434
+ * if not anonymous, passes it into bbp_add_user_engagement().
435
+ *
436
+ * @since 2.6.0 bbPress (r6526)
437
+ *
438
+ * @param int $topic_id
439
+ */
440
+ function bbp_update_topic_engagements( $topic_id = 0 ) {
441
+
442
+ // Is a reply
443
+ if ( bbp_is_reply( $topic_id ) ) {
444
+
445
+ // Bail if reply isn't published
446
+ if ( ! bbp_is_reply_published( $topic_id ) ) {
447
+ return;
448
+ }
449
+
450
+ $author_id = bbp_get_reply_author_id( $topic_id );
451
+ $topic_id = bbp_get_reply_topic_id( $topic_id );
452
+
453
+ // Is a topic
454
+ } elseif ( bbp_is_topic( $topic_id ) ) {
455
+ $author_id = bbp_get_topic_author_id( $topic_id );
456
+ $topic_id = bbp_get_topic_id( $topic_id );
457
+
458
+ // Is unknown
459
+ } else {
460
+ return;
461
+ }
462
+
463
+ // Bail if topic is not public
464
+ if ( ! bbp_is_topic_public( $topic_id ) ) {
465
+ return;
466
+ }
467
+
468
+ // Return whether engagement was added
469
+ return bbp_add_user_engagement( $author_id, $topic_id );
470
+ }
471
+
472
  /** Favorites *****************************************************************/
473
 
474
  /**
591
  }
592
 
593
  // Filter & return
594
+ return (bool) apply_filters( 'bbp_is_user_favorite', $retval, $user_id, $topic_id, $favorites );
595
  }
596
 
597
  /**
956
  * @uses bbp_get_forum_post_type() To get the forum post type
957
  * @uses bbp_get_topic_post_type() To get the topic post type
958
  * @uses apply_filters() Calls 'bbp_is_user_subscribed' with the bool, user id,
959
+ * forum/topic id and subscriptions
960
  * @return bool True if the forum or topic is in user's subscriptions, otherwise false
961
  */
962
  function bbp_is_user_subscribed( $user_id = 0, $object_id = 0 ) {
1053
  }
1054
 
1055
  // Filter & return
1056
+ return (bool) apply_filters( 'bbp_is_user_subscribed_to_forum', $retval, $user_id, $forum_id, $subscribed_ids );
1057
  }
1058
 
1059
  /**
1111
  }
1112
 
1113
  // Filter & return
1114
+ return (bool) apply_filters( 'bbp_is_user_subscribed_to_topic', $retval, $user_id, $topic_id, $subscribed_ids );
1115
  }
1116
 
1117
  /**
readme.txt CHANGED
@@ -3,7 +3,7 @@ Contributors: matt, johnjamesjacoby, jmdodd, netweb
3
  Tags: forums, discussion, support, theme, akismet, multisite
4
  Requires at least: 4.7
5
  Tested up to: 4.8
6
- Stable tag: 2.5.11
7
  License: GPLv2 or later
8
  License URI: https://www.gnu.org/licenses/gpl-2.0.html
9
 
3
  Tags: forums, discussion, support, theme, akismet, multisite
4
  Requires at least: 4.7
5
  Tested up to: 4.8
6
+ Stable tag: 2.5.12
7
  License: GPLv2 or later
8
  License URI: https://www.gnu.org/licenses/gpl-2.0.html
9
 
templates/default/css/bbpress-rtl.css CHANGED
@@ -257,7 +257,7 @@ div.bbp-forum-header,
257
  div.bbp-topic-header,
258
  div.bbp-reply-header,
259
  li.bbp-body div.hentry {
260
- margin-bottom: 0;
261
  overflow: hidden;
262
  padding: 8px;
263
  }
@@ -1054,6 +1054,7 @@ div.bbp-template-notice li {
1054
  #bbpress-forums img.avatar {
1055
  -webkit-box-shadow: none;
1056
  box-shadow: none;
 
1057
  }
1058
 
1059
  #bbpress-forums p.bbp-topic-meta img.avatar,
@@ -1063,7 +1064,7 @@ div.bbp-template-notice li {
1063
  #bbpress-forums .widget_display_topics img.avatar,
1064
  #bbpress-forums .widget_display_replies img.avatar {
1065
  float: none;
1066
- margin-bottom: -7px;
1067
  border: 3px double #ddd;
1068
  }
1069
 
257
  div.bbp-topic-header,
258
  div.bbp-reply-header,
259
  li.bbp-body div.hentry {
260
+ margin: 0;
261
  overflow: hidden;
262
  padding: 8px;
263
  }
1054
  #bbpress-forums img.avatar {
1055
  -webkit-box-shadow: none;
1056
  box-shadow: none;
1057
+ display: inline-block;
1058
  }
1059
 
1060
  #bbpress-forums p.bbp-topic-meta img.avatar,
1064
  #bbpress-forums .widget_display_topics img.avatar,
1065
  #bbpress-forums .widget_display_replies img.avatar {
1066
  float: none;
1067
+ vertical-align: middle;
1068
  border: 3px double #ddd;
1069
  }
1070
 
templates/default/css/bbpress-rtl.min.css CHANGED
@@ -1 +1 @@
1
- .entry-content .bbpress-wrapper a,.entry-content .bbpress-wrapper a:hover{-webkit-box-shadow:none;box-shadow:none}#bbpress-forums hr{margin:0 0 24px}#bbpress-forums{background:0 0;clear:both;margin-bottom:20px;overflow:hidden;font-size:12px}#bbpress-forums div.even,#bbpress-forums ul.even{background-color:#fff}#bbpress-forums div.odd,#bbpress-forums ul.odd{background-color:#fbfbfb}body.reply-edit .reply{float:none}#bbpress-forums div.reply{height:auto;width:100%}#bbpress-forums div.bbp-forum-header,#bbpress-forums div.bbp-reply-header,#bbpress-forums div.bbp-topic-header{background-color:#f4f4f4}#bbpress-forums .status-spam.even,#bbpress-forums .status-trash.even{background-color:#fee}#bbpress-forums .status-spam.odd,#bbpress-forums .status-trash.odd{background-color:#fdd}#bbpress-forums .status-pending.even,#bbpress-forums .status-pending.odd,#bbpress-forums ul.status-pending a{background-color:#fef7f1}#bbpress-forums ul.status-closed,#bbpress-forums ul.status-closed a{color:#ccc}#bbpress-forums ul{background:0 0;list-style:none;margin:0;padding:0}#bbpress-forums ul.bbp-threaded-replies{margin-right:50px}#bbpress-forums li{background:0 0;margin:0;list-style:none}#bbpress-forums ul.bbp-forums,#bbpress-forums ul.bbp-lead-topic,#bbpress-forums ul.bbp-replies,#bbpress-forums ul.bbp-search-results,#bbpress-forums ul.bbp-topics{font-size:12px;overflow:hidden;border:1px solid #eee;margin-bottom:20px;clear:both}#bbpress-forums li.bbp-body,#bbpress-forums li.bbp-footer,#bbpress-forums li.bbp-header{clear:both}#bbpress-forums li.bbp-footer,#bbpress-forums li.bbp-header{background:#f3f3f3;border-top:1px solid #eee;font-weight:700;padding:8px;text-align:center}#bbpress-forums li.bbp-header{background:#eaeaea}#bbpress-forums li.bbp-header ul{overflow:hidden}#bbpress-forums .bbp-forums-list{margin:0 5px 0 0;padding-right:15px;border-right:1px solid #ddd}#bbpress-forums .bbp-forums-list li{display:inline;font-size:11px}#bbpress-forums li.bbp-footer p{margin:0;line-height:1}li.bbp-forum-info,li.bbp-topic-title{float:right;text-align:right;width:55%}li.bbp-forum-reply-count,li.bbp-forum-topic-count,li.bbp-topic-reply-count,li.bbp-topic-voice-count{float:right;text-align:center;width:10%}li.bbp-forum-freshness,li.bbp-topic-freshness{text-align:center;float:right;width:22%}#bbpress-forums li.bbp-body ul.forum,#bbpress-forums li.bbp-body ul.topic{border-top:1px solid #eee;overflow:hidden;padding:8px}#bbpress-forums #favorite-toggle,#bbpress-forums #subscription-toggle{float:left}#bbpress-forums div.bbp-forum-title h3,#bbpress-forums div.bbp-reply-title h3,#bbpress-forums div.bbp-topic-title h3{background:0 0;border:none;font-size:16px;line-height:1;margin:8px 0;padding:0;text-transform:none}#bbpress-forums div.bbp-forum-author,#bbpress-forums div.bbp-reply-author,#bbpress-forums div.bbp-topic-author{float:right;text-align:center;width:115px}#bbpress-forums div.bbp-forum-author img.avatar,#bbpress-forums div.bbp-reply-author img.avatar,#bbpress-forums div.bbp-topic-author img.avatar{border:none;max-width:80px;padding:0;margin:12px auto 0;float:none}#bbpress-forums div.bbp-forum-author a.bbp-author-name,#bbpress-forums div.bbp-reply-author a.bbp-author-name,#bbpress-forums div.bbp-topic-author a.bbp-author-name{margin:0 12px;word-wrap:break-word;display:inline-block}#bbpress-forums div.bbp-reply-author a.bbp-author-name,#bbpress-forums div.bbp-topic-author a.bbp-author-name{clear:right;display:block}#bbpress-forums div.bbp-forum-author .bbp-author-role,#bbpress-forums div.bbp-reply-author .bbp-author-role,#bbpress-forums div.bbp-topic-author .bbp-author-role{font-size:11px;font-style:italic}#bbpress-forums li.bbp-footer .bbp-forum-author,#bbpress-forums li.bbp-footer .bbp-reply-author,#bbpress-forums li.bbp-footer .bbp-search-author,#bbpress-forums li.bbp-footer .bbp-topic-author,#bbpress-forums li.bbp-header .bbp-forum-author,#bbpress-forums li.bbp-header .bbp-reply-author,#bbpress-forums li.bbp-header .bbp-search-author,#bbpress-forums li.bbp-header .bbp-topic-author{float:right;margin:0;padding:0;width:120px}#bbpress-forums li.bbp-footer .bbp-forum-content,#bbpress-forums li.bbp-footer .bbp-reply-content,#bbpress-forums li.bbp-footer .bbp-search-content,#bbpress-forums li.bbp-footer .bbp-topic-content,#bbpress-forums li.bbp-header .bbp-forum-content,#bbpress-forums li.bbp-header .bbp-reply-content,#bbpress-forums li.bbp-header .bbp-search-content,#bbpress-forums li.bbp-header .bbp-topic-content{margin-right:140px;padding:0;text-align:right}div.bbp-forum-header,div.bbp-reply-header,div.bbp-topic-header,li.bbp-body div.hentry{margin-bottom:0;overflow:hidden;padding:8px}div.bbp-forum-header,div.bbp-reply-header,div.bbp-topic-header{border-top:1px solid #ddd;clear:both}span.bbp-author-ip{font-size:11px;font-weight:700;word-wrap:break-word;color:#aaa}#bbpress-forums div.bbp-forum-content,#bbpress-forums div.bbp-reply-content,#bbpress-forums div.bbp-topic-content{margin-right:130px;padding:12px 0 12px 12px;text-align:right}#bbpress-forums div.bbp-forum-content:after,#bbpress-forums div.bbp-reply-content:after,#bbpress-forums div.bbp-topic-content:after{clear:both;content:".";display:block;float:none;height:0;font-size:0;visibility:hidden}#bbpress-forums div.bbp-reply-content a,#bbpress-forums div.bbp-topic-content a{background:0 0;border:none;display:inline;font-weight:400;margin:0;padding:0}#bbpress-forums div.bbp-reply-content a.bbp-user-mention,#bbpress-forums div.bbp-topic-content a.bbp-user-mention{background:0 0;border:none;text-decoration:none;text-shadow:none;display:inline;font-weight:600;margin:0;padding:0}#bbpress-forums div.bbp-reply-content h1,#bbpress-forums div.bbp-reply-content h2,#bbpress-forums div.bbp-reply-content h3,#bbpress-forums div.bbp-reply-content h4,#bbpress-forums div.bbp-reply-content h5,#bbpress-forums div.bbp-reply-content h6,#bbpress-forums div.bbp-topic-content h1,#bbpress-forums div.bbp-topic-content h2,#bbpress-forums div.bbp-topic-content h3,#bbpress-forums div.bbp-topic-content h4,#bbpress-forums div.bbp-topic-content h5,#bbpress-forums div.bbp-topic-content h6{clear:none;line-height:1;margin:24px 0;padding:0}#bbpress-forums div.bbp-reply-content img,#bbpress-forums div.bbp-topic-content img{max-width:100%;height:auto}#bbpress-forums div.bbp-reply-content ol,#bbpress-forums div.bbp-reply-content ul,#bbpress-forums div.bbp-topic-content ol,#bbpress-forums div.bbp-topic-content ul{margin:0 15px 15px;padding:0}#bbpress-forums div.bbp-reply-content ul li,#bbpress-forums div.bbp-topic-content ul li{list-style-type:disc}#bbpress-forums div.bbp-reply-content ol li,#bbpress-forums div.bbp-topic-content ol li{list-style-type:decimal}#bbpress-forums div.bbp-reply-content ol li li,#bbpress-forums div.bbp-topic-content ol li li{list-style-type:lower-alpha}#bbpress-forums div.bbp-reply-content ol li li li,#bbpress-forums div.bbp-topic-content ol li li li{list-style-type:upper-roman}#bbpress-forums div.bbp-reply-content code,#bbpress-forums div.bbp-reply-content pre,#bbpress-forums div.bbp-topic-content code,#bbpress-forums div.bbp-topic-content pre{font-family:Inconsolata,Consolas,Monaco,"Lucida Console",monospace;display:inline-block;background-color:#f9f9f9;border:1px solid #ddd;padding:0 5px;max-width:95%;vertical-align:middle;margin-top:-3px;overflow-x:auto}#bbpress-forums div.bbp-reply-content pre,#bbpress-forums div.bbp-topic-content pre{display:block;line-height:18px;margin:0 0 24px;padding:5px 10px;white-space:pre;overflow:auto}#bbpress-forums div.bbp-reply-content pre code,#bbpress-forums div.bbp-topic-content pre code{display:block;border:none;padding:0;margin:0;background-color:transparent;overflow-wrap:normal;overflow:auto;max-width:100%}#bbpress-forums div.bbp-reply-to{margin-right:130px;padding:12px 0 12px 12px;text-align:left}#bbpress-forums div#bbp-cancel-reply-to{text-align:left}div.bbp-breadcrumb{float:right}div.bbp-breadcrumb,div.bbp-topic-tags{font-size:12px}#bbpress-forums div.bbp-breadcrumb p,#bbpress-forums div.bbp-topic-tags p{margin-bottom:10px}#bbpress-forums div.bbp-topic-tags{float:left;clear:both}#bbp-topic-hot-tags{clear:both}#bbpress-forums #bbp-search-form{clear:right}#bbpress-forums #bbp-search-form .hidden{height:0;width:0;overflow:hidden;position:absolute;background:0 0;right:-999em}#bbpress-forums #bbp-search-form #bbp_search{display:inline-block;width:auto}#bbpress-forums div.bbp-search-form{float:left}span.bbp-admin-links{float:left;color:#ddd}span.bbp-admin-links a{color:#bbb;font-weight:400;font-size:10px;text-transform:uppercase;text-decoration:none}fieldset span.bbp-admin-links{float:right}tr td span.bbp-admin-links a:hover{color:#ff4b33}td.bbp-topic-admin-links,td.bbp-topic-counts{width:50%}.bbp-forum-header a.bbp-forum-permalink,.bbp-reply-header a.bbp-reply-permalink,.bbp-topic-header a.bbp-topic-permalink{float:left;margin-right:10px;color:#ccc}.bbp-row-actions #favorite-toggle a{text-decoration:none;padding:0 3px 1px;color:#7c7;border:1px solid #aca;background-color:#dfd;font-weight:700;font-size:13px}.bbp-row-actions #favorite-toggle a:hover{color:#5a5;border-color:#7c7;background-color:#beb}.bbp-row-actions #favorite-toggle span.is-favorite a{color:#faa;border:1px solid #faa;background-color:#fee}.bbp-row-actions #favorite-toggle span.is-favorite a:hover{color:#c88;border-color:#c88;background-color:#fdd}.bbp-row-actions #subscription-toggle a{text-decoration:none;padding:0 3px 1px;color:#7c7;border:1px solid #aca;background-color:#dfd;font-weight:700;font-size:13px}.bbp-row-actions #subscription-toggle a:hover{color:#5a5;border-color:#7c7;background-color:#beb}.bbp-row-actions #subscription-toggle span.is-subscribed a{color:#faa;border:1px solid #faa;background-color:#fee}.bbp-row-actions #subscription-toggle span.is-subscribed a:hover{color:#c88;border-color:#c88;background-color:#fdd}#bbpress-forums .bbp-forum-info .bbp-forum-content,#bbpress-forums p.bbp-topic-meta{font-size:11px;margin:5px 0;padding:0;word-wrap:break-word}#bbpress-forums p.bbp-topic-meta span{white-space:nowrap}.bbp-pagination-count{float:right;border:1px solid transparent}.bbp-pagination-links{float:left;list-style:none;display:inline}.bbp-pagination-links a,.bbp-pagination-links span.current{display:block;float:right;padding:0 5px;margin-right:5px;border:1px solid #efefef;text-decoration:none}.bbp-pagination-links a:hover,.bbp-pagination-links span.current{background:#eee;opacity:.8;border:1px solid #ddd}.bbp-pagination-links span.dots{display:block;float:right;padding:1px 4px;margin-right:5px}.bbp-pagination{float:right;width:100%;margin-bottom:15px}.bbp-topic-pagination{display:inline-block;margin-right:5px;margin-bottom:2px}.bbp-topic-pagination a{font-size:10px;line-height:10px;padding:1px 3px;border:1px solid #ddd;text-decoration:none}#bbpress-forums fieldset.bbp-form{clear:right}#bbpress-forums fieldset.bbp-form{border:1px solid #eee;padding:10px 20px;margin-bottom:10px}#bbpress-forums fieldset.bbp-form legend{padding:5px}#bbpress-forums fieldset.bbp-form label{margin:0;display:inline-block}#bbp-edit-topic-tag.bbp-form fieldset.bbp-form label,#bbp-login fieldset label,#bbp-lost-pass fieldset label,#bbp-register fieldset label{width:100px}#bbpress-forums fieldset.bbp-form input,#bbpress-forums fieldset.bbp-form p,#bbpress-forums fieldset.bbp-form select,#bbpress-forums fieldset.bbp-form textarea{margin:0 0 8px}textarea#bbp_forum_content,textarea#bbp_reply_content,textarea#bbp_topic_content{width:97%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}textarea#bbp_forum_content{height:210px}#bbpress-forums fieldset.bbp-forum-form-attributes{width:200px;float:left;clear:none;margin-right:25px}#bbpress-forums fieldset select#bbp_forum_id{max-width:200px}.bbp-reply-form,.bbp-topic-form,.bbp-topic-tag-form{clear:right}body.reply-edit .bbp-reply-form div.avatar img,body.single-forum .bbp-topic-form div.avatar img,body.single-reply .bbp-reply-form div.avatar img,body.topic-edit .bbp-topic-form div.avatar img{margin-left:0;padding:10px;border:1px solid #ddd;line-height:0;background-color:#efefef}body.page .bbp-reply-form code,body.page .bbp-topic-form code,body.reply-edit .bbp-reply-form code,body.single-forum .bbp-topic-form code,body.single-topic .bbp-reply-form code,body.topic-edit .bbp-topic-form code{font-size:10px;background-color:#f0fff8;border:1px solid #ceefe1;display:block;padding:8px;margin-top:5px;width:369px}#delete_tag,#merge_tag{display:inline}div.bbp-submit-wrapper{margin-top:15px;float:left;clear:both}p.form-allowed-tags{max-width:100%}#bbpress-forums div.bbp-the-content-wrapper{margin-bottom:10px}#bbpress-forums div.bbp-the-content-wrapper textarea.bbp-the-content{width:100%;margin:0;font-size:12px}#bbpress-forums div.bbp-the-content-wrapper table,#bbpress-forums div.bbp-the-content-wrapper tbody,#bbpress-forums div.bbp-the-content-wrapper td,#bbpress-forums div.bbp-the-content-wrapper tr{border:none;padding:0;margin:0;width:auto;line-height:1}#bbpress-forums div.bbp-the-content-wrapper input{font-size:12px;padding:5px;margin:0 0 0 2px;line-height:1}#bbpress-forums div.bbp-the-content-wrapper div.quicktags-toolbar{padding:5px;min-height:26px}#bbpress-forums div.bbp-the-content-wrapper td.mceToolbar{padding:4px 4px 8px}#bbpress-forums div.wp-editor-container{margin:0;padding:0;line-height:0}#bbpress-forums div.bbp-the-content-wrapper td.mceStatusbar{line-height:16px}#bbpress-forums #bbp-your-profile fieldset{padding:20px 20px 0}#bbpress-forums #bbp-your-profile fieldset div{margin-bottom:20px;float:right;width:100%;clear:right}#bbpress-forums #bbp-your-profile fieldset select{margin-bottom:0}#bbpress-forums #bbp-your-profile fieldset input,#bbpress-forums #bbp-your-profile fieldset textarea{margin-bottom:0;width:60%;background:#f9f9f9;border:1px solid #ddd;-webkit-box-shadow:none;box-shadow:none;padding:5px 8px;-webkit-border-radius:0;border-radius:0}#bbpress-forums #bbp-your-profile fieldset input:focus,#bbpress-forums #bbp-your-profile fieldset textarea:focus{border:1px solid #ccc;-webkit-box-shadow:inset -1px 1px 1px rgba(0,0,0,.1);box-shadow:inset -1px 1px 1px rgba(0,0,0,.1);outline-color:rgba(240,255,240,.1)}#bbpress-forums #bbp-your-profile fieldset.bbp-form input.checkbox{width:auto}#bbpress-forums #bbp-your-profile fieldset legend{display:none}#bbpress-forums #bbp-your-profile fieldset label[for]{float:right;width:20%;padding:5px 0 5px 20px;text-align:left;cursor:pointer}#bbpress-forums #bbp-your-profile fieldset dl label[for]{text-align:right;width:60%}#bbpress-forums #bbp-your-profile fieldset span.description{margin:5px 20% 0 0;font-size:12px;font-style:italic;float:right;clear:right;width:60%;padding:5px 8px;border:#cee1ef 1px solid;background-color:#f0f8ff}#bbpress-forums #bbp-your-profile fieldset fieldset{margin:0;border:none;padding:0;clear:none;float:none}#bbpress-forums #bbp-your-profile fieldset fieldset.password{width:60%;display:inline}#bbpress-forums #bbp-your-profile fieldset fieldset.password input,#bbpress-forums #bbp-your-profile fieldset fieldset.password span{width:100%}#bbpress-forums #bbp-your-profile fieldset fieldset.capabilities dl{margin:0}#bbpress-forums #bbp-your-profile fieldset fieldset.password span.description{margin-right:0;margin-bottom:20px}#bbpress-forums #bbp-your-profile fieldset.submit button{float:left}div.bbp-template-notice,div.indicator-hint{border-width:1px;border-style:solid;padding:0 .6em;margin:5px 0 15px;-webkit-border-radius:3px;border-radius:3px;background-color:#ffffe0;border-color:#e6db55;color:#000;clear:both}div.bbp-template-notice a{color:#555;text-decoration:none}div.bbp-template-notice a:hover{color:#000}div.bbp-template-notice.info{border:#cee1ef 1px solid;background-color:#f0f8ff}div.bbp-template-notice.important{border:#e6db55 1px solid;background-color:#fffbcc}div.bbp-template-notice.error,div.bbp-template-notice.warning{background-color:#ffebe8;border-color:#c00}div.bbp-template-notice.error a,div.bbp-template-notice.warning a{color:#c00}div.bbp-template-notice li,div.bbp-template-notice p{margin:.5em 0 6px!important;padding:2px;font-size:12px;line-height:1.4}.bbp-forum-content ul.sticky,.bbp-topics ul.sticky,.bbp-topics ul.super-sticky,.bbp-topics-front ul.super-sticky{background-color:#ffffe0!important;font-size:1.1em}#bbpress-forums .bbp-reply-content ul.bbp-reply-revision-log,#bbpress-forums .bbp-reply-content ul.bbp-topic-revision-log,#bbpress-forums .bbp-topic-content ul.bbp-topic-revision-log{border-top:1px dotted #ddd;width:100%;margin:0;padding:8px 0 0;font-size:11px;color:#aaa}#bbpress-forums .bbp-reply-content ul.bbp-reply-revision-log li,#bbpress-forums .bbp-reply-content ul.bbp-topic-revision-log li,#bbpress-forums .bbp-topic-content ul.bbp-topic-revision-log li{list-style-type:none}.bbp-login-form fieldset legend{display:none}.bbp-login-form .bbp-email input,.bbp-login-form .bbp-password input,.bbp-login-form .bbp-username input{padding:5px}.bbp-login-form label{width:140px;display:inline-block}#sidebar .bbp-login-form label{width:70px}.bbp-login-form .bbp-email,.bbp-login-form .bbp-password,.bbp-login-form .bbp-remember-me,.bbp-login-form .bbp-submit-wrapper,.bbp-login-form .bbp-username{margin-top:10px}.bbp-login-form .bbp-submit-wrapper{text-align:left}.bbp-login-form .bbp-login-links a{float:right;clear:right}.bbp-logged-in img.avatar{float:right;margin:0 0 0 15px}.bbp-logged-in h4{font-weight:700;font-size:1.3em;clear:none;margin-bottom:10px}#bbpress-forums img.avatar{-webkit-box-shadow:none;box-shadow:none}#bbpress-forums .widget_display_replies img.avatar,#bbpress-forums .widget_display_topics img.avatar,#bbpress-forums div.bbp-template-notice img.avatar,#bbpress-forums p.bbp-topic-meta img.avatar,#bbpress-forums ul.bbp-reply-revision-log img.avatar,#bbpress-forums ul.bbp-topic-revision-log img.avatar{float:none;margin-bottom:-7px;border:3px double #ddd}fieldset div.avatar{float:left}.activity-list li.bbp_reply_create .activity-content .activity-inner,.activity-list li.bbp_topic_create .activity-content .activity-inner{border-right:2px solid #eaeaea;margin-right:5px;padding-right:10px}#bbpress-forums h1{clear:none;font-size:1.8em;line-height:1;padding-bottom:10px}#bbpress-forums #bbp-user-wrapper{float:right;width:100%}#bbpress-forums .bbp-user-section{overflow:auto}#bbpress-forums #bbp-user-wrapper h2.entry-title{font-size:1.4em;margin:0;padding-bottom:10px;padding-top:0;clear:none}#bbpress-forums #bbp-user-wrapper fieldset.bbp-form,#bbpress-forums #bbp-user-wrapper ul.bbp-forums,#bbpress-forums #bbp-user-wrapper ul.bbp-lead-topic,#bbpress-forums #bbp-user-wrapper ul.bbp-replies,#bbpress-forums #bbp-user-wrapper ul.bbp-topics{clear:none}#bbpress-forums #bbp-single-user-details{margin:0;width:150px;float:right;overflow:hidden}#bbpress-forums #bbp-single-user-details #bbp-user-avatar{margin:0;width:150px}#bbpress-forums #bbp-single-user-details #bbp-user-avatar img.avatar{border:none;height:150px;padding:0;margin:0 0 20px;width:150px}#bbpress-forums #bbp-single-user-details #bbp-user-description{float:none;margin-right:180px}#bbpress-forums #bbp-single-user-details #bbp-user-navigation{float:none;margin:0}#bbpress-forums #bbp-single-user-details #bbp-user-navigation li{margin:0}#bbpress-forums #bbp-single-user-details #bbp-user-navigation a{padding:5px 8px;display:block;border:1px solid transparent;text-decoration:none}#bbpress-forums #bbp-single-user-details #bbp-user-navigation li.current a{background:#eee;opacity:.8}#bbpress-forums #bbp-user-body{margin-right:180px}body.my-account #bbpress-forums{border-top:none;padding-top:0;margin-bottom:0}#bbpress-forums dl.bbp-user-capabilities{display:inline-block;vertical-align:top}#bbpress-forums dl.bbp-user-capabilities dt{margin:0 0 10px;text-transform:capitalize}#bbpress-forums dl.bbp-user-capabilities dd{margin:0;padding:0}#bbpress-forums div.row-actions{font-size:11px;visibility:hidden}#bbpress-forums li:hover>div.row-actions{visibility:visible}.bbp-alert-outer{height:100%;width:100%;top:0;right:0;position:fixed;background-color:rgba(0,0,0,.2);z-index:99999}.bbp-alert-inner{width:350px;text-align:center;background:#fff;position:fixed;top:50%;right:50%;margin-top:-75px;margin-right:-185px;-webkit-border-radius:3px;border-radius:3px;border:1px solid #aaa;padding:15px 10px 10px}.bbp-alert-outer .bbp-alert-inner p{margin:10px 0}.bbp-alert-actions a{padding:5px 20px;text-decoration:none}@media only screen and (max-width:480px){#bbpress-forums div.bbp-topic-tags{clear:right;float:right}div.bbp-search-form button,div.bbp-search-form input{font-size:11px;padding:2px}li.bbp-forum-info,li.bbp-topic-title{width:45%}li.bbp-forum-reply-count,li.bbp-forum-topic-count,li.bbp-topic-reply-count,li.bbp-topic-voice-count{width:15%}span.bbp-reply-post-date,span.bbp-topic-post-date{float:right}span.bbp-admin-links{clear:right;float:right}#bbpress-forums .bbp-forums-list li{display:block;font-size:11px}#bbpress-forums .bbp-body div.bbp-reply-author,#bbpress-forums .bbp-body div.bbp-topic-author{margin:-15px 10px 10px;min-height:100px;padding-right:80px;position:relative;text-align:right;width:100%}#bbpress-forums div.bbp-reply-author a.bbp-author-name,#bbpress-forums div.bbp-topic-author a.bbp-author-name{clear:none;display:inline-block;margin-right:0;word-wrap:break-word}#bbpress-forums div.bbp-reply-author img.avatar,#bbpress-forums div.bbp-topic-author img.avatar{position:absolute;top:15px;right:0;width:60px;height:auto}#bbpress-forums div.bbp-reply-author .bbp-author-role,#bbpress-forums div.bbp-topic-author .bbp-author-role{font-size:12px;font-style:normal}#bbpress-forums .bbp-body div.bbp-reply-content,#bbpress-forums .bbp-body div.bbp-topic-content{clear:both;margin:10px;padding:0}#bbpress-forums div.bbp-reply-content p,#bbpress-forums div.bbp-topic-content p{margin-bottom:1em}div.bbp-submit-wrapper{float:right}#bbpress-forums fieldset.bbp-form{padding:0 10px 10px}#bbpress-forums #bbp-user-body{clear:both;margin-right:0;word-wrap:break-word}#bbpress-forums div.bbp-forum-title h3,#bbpress-forums div.bbp-reply-title h3,#bbpress-forums div.bbp-topic-title h3{font-size:14px}}@media only screen and (max-width:320px){#bbpress-forums div.bbp-search-form{margin-bottom:10px}#bbpress-forums li.bbp-body li.bbp-forum-info,#bbpress-forums li.bbp-body li.bbp-topic-title,#bbpress-forums li.bbp-header li.bbp-forum-info,#bbpress-forums li.bbp-header li.bbp-topic-title{width:100%}#bbpress-forums li.bbp-header li.bbp-forum-info,#bbpress-forums li.bbp-header li.bbp-topic-title{text-align:center;text-transform:uppercase}#bbpress-forums li.bbp-body li.bbp-forum-reply-count,#bbpress-forums li.bbp-body li.bbp-forum-topic-count,#bbpress-forums li.bbp-body li.bbp-topic-reply-count,#bbpress-forums li.bbp-body li.bbp-topic-voice-count,#bbpress-forums li.bbp-header li.bbp-forum-reply-count,#bbpress-forums li.bbp-header li.bbp-forum-topic-count,#bbpress-forums li.bbp-header li.bbp-topic-reply-count,#bbpress-forums li.bbp-header li.bbp-topic-voice-count{width:20%}#bbpress-forums li.bbp-body li.bbp-forum-freshness,#bbpress-forums li.bbp-body li.bbp-topic-freshness,#bbpress-forums li.bbp-header li.bbp-forum-freshness,#bbpress-forums li.bbp-header li.bbp-topic-freshness{width:58%}#bbpress-forums li.bbp-body li.bbp-forum-freshness,#bbpress-forums li.bbp-body li.bbp-forum-reply-count,#bbpress-forums li.bbp-body li.bbp-forum-topic-count,#bbpress-forums li.bbp-body li.bbp-topic-freshness,#bbpress-forums li.bbp-body li.bbp-topic-reply-count,#bbpress-forums li.bbp-body li.bbp-topic-voice-count{margin-top:7px}#bbpress-forums li.bbp-footer,#bbpress-forums li.bbp-header{font-size:10px}#bbpress-forums li.bbp-header div.bbp-reply-author,#bbpress-forums li.bbp-header div.bbp-search-author,#bbpress-forums li.bbp-header div.bbp-topic-author{text-align:right;width:25%}#bbpress-forums li.bbp-header div.bbp-reply-content,#bbpress-forums li.bbp-header div.bbp-search-content,#bbpress-forums li.bbp-header div.bbp-topic-content{margin-right:25%}#bbpress-forums div.bbp-template-notice img.avatar,#bbpress-forums p.bbp-topic-meta img.avatar{width:14px;height:auto}#bbpress-forums div.bbp-the-content-wrapper td.mceToolbar{padding:1px}#bbpress-forums div.bbp-the-content-wrapper td.mceToolbar td{width:20px;height:20px}#bbpress-forums div.wp-editor-container{width:100%;overflow:auto}#bbpress-forums input#bbp_topic_tags,#bbpress-forums input#bbp_topic_title{width:95%}#bbpress-forums div.bbp-forum-title h3,#bbpress-forums div.bbp-reply-title h3,#bbpress-forums div.bbp-topic-title h3{font-size:14px}}@media only screen and (max-width:240px){#bbpress-forums li.bbp-body li.bbp-forum-reply-count,#bbpress-forums li.bbp-body li.bbp-forum-topic-count,#bbpress-forums li.bbp-body li.bbp-topic-reply-count,#bbpress-forums li.bbp-body li.bbp-topic-voice-count,#bbpress-forums li.bbp-footer div.bbp-reply-author,#bbpress-forums li.bbp-footer div.bbp-search-author,#bbpress-forums li.bbp-footer div.bbp-topic-author,#bbpress-forums li.bbp-header li.bbp-forum-reply-count,#bbpress-forums li.bbp-header li.bbp-forum-topic-count,#bbpress-forums li.bbp-header li.bbp-topic-reply-count,#bbpress-forums li.bbp-header li.bbp-topic-voice-count{width:45%}#bbpress-forums li.bbp-body li.bbp-forum-freshness,#bbpress-forums li.bbp-body li.bbp-topic-freshness,#bbpress-forums li.bbp-header li.bbp-forum-freshness,#bbpress-forums li.bbp-header li.bbp-topic-freshness{clear:both;width:100%}#bbpress-forums li.bbp-header li.bbp-forum-freshness,#bbpress-forums li.bbp-header li.bbp-topic-freshness{text-align:center}#bbpress-forums li.bbp-body li.bbp-topic-freshness,#bbpress-forums li.bbp-header div.bbp-reply-author,#bbpress-forums li.bbp-header div.bbp-reply-content,#bbpress-forums li.bbp-header div.bbp-search-author,#bbpress-forums li.bbp-header div.bbp-search-content,#bbpress-forums li.bbp-header div.bbp-topic-author,#bbpress-forums li.bbp-header div.bbp-topic-content{margin-right:0;text-align:right}#bbpress-forums li.bbp-body li.bbp-topic-freshness p.bbp-topic-meta{display:inline-block}#bbpress-forums li.bbp-header{overflow:hidden}#bbpress-forums li.bbp-footer div.bbp-reply-content,#bbpress-forums li.bbp-footer div.bbp-search-content,#bbpress-forums li.bbp-footer div.bbp-topic-content{display:inline-block;margin-right:0}#bbpress-forums li.bbp-body div.bbp-reply-author,#bbpress-forums li.bbp-body div.bbp-topic-author{min-height:60px;padding-right:60px}#bbpress-forums div.bbp-reply-author img.avatar,#bbpress-forums div.bbp-topic-author img.avatar{width:40px;height:auto}#bbpress-forums div.bbp-forum-title h3,#bbpress-forums div.bbp-reply-title h3,#bbpress-forums div.bbp-topic-title h3{font-size:12px}}
1
+ .entry-content .bbpress-wrapper a,.entry-content .bbpress-wrapper a:hover{-webkit-box-shadow:none;box-shadow:none}#bbpress-forums hr{margin:0 0 24px}#bbpress-forums{background:0 0;clear:both;margin-bottom:20px;overflow:hidden;font-size:12px}#bbpress-forums div.even,#bbpress-forums ul.even{background-color:#fff}#bbpress-forums div.odd,#bbpress-forums ul.odd{background-color:#fbfbfb}body.reply-edit .reply{float:none}#bbpress-forums div.reply{height:auto;width:100%}#bbpress-forums div.bbp-forum-header,#bbpress-forums div.bbp-reply-header,#bbpress-forums div.bbp-topic-header{background-color:#f4f4f4}#bbpress-forums .status-spam.even,#bbpress-forums .status-trash.even{background-color:#fee}#bbpress-forums .status-spam.odd,#bbpress-forums .status-trash.odd{background-color:#fdd}#bbpress-forums .status-pending.even,#bbpress-forums .status-pending.odd,#bbpress-forums ul.status-pending a{background-color:#fef7f1}#bbpress-forums ul.status-closed,#bbpress-forums ul.status-closed a{color:#ccc}#bbpress-forums ul{background:0 0;list-style:none;margin:0;padding:0}#bbpress-forums ul.bbp-threaded-replies{margin-right:50px}#bbpress-forums li{background:0 0;margin:0;list-style:none}#bbpress-forums ul.bbp-forums,#bbpress-forums ul.bbp-lead-topic,#bbpress-forums ul.bbp-replies,#bbpress-forums ul.bbp-search-results,#bbpress-forums ul.bbp-topics{font-size:12px;overflow:hidden;border:1px solid #eee;margin-bottom:20px;clear:both}#bbpress-forums li.bbp-body,#bbpress-forums li.bbp-footer,#bbpress-forums li.bbp-header{clear:both}#bbpress-forums li.bbp-footer,#bbpress-forums li.bbp-header{background:#f3f3f3;border-top:1px solid #eee;font-weight:700;padding:8px;text-align:center}#bbpress-forums li.bbp-header{background:#eaeaea}#bbpress-forums li.bbp-header ul{overflow:hidden}#bbpress-forums .bbp-forums-list{margin:0 5px 0 0;padding-right:15px;border-right:1px solid #ddd}#bbpress-forums .bbp-forums-list li{display:inline;font-size:11px}#bbpress-forums li.bbp-footer p{margin:0;line-height:1}li.bbp-forum-info,li.bbp-topic-title{float:right;text-align:right;width:55%}li.bbp-forum-reply-count,li.bbp-forum-topic-count,li.bbp-topic-reply-count,li.bbp-topic-voice-count{float:right;text-align:center;width:10%}li.bbp-forum-freshness,li.bbp-topic-freshness{text-align:center;float:right;width:22%}#bbpress-forums li.bbp-body ul.forum,#bbpress-forums li.bbp-body ul.topic{border-top:1px solid #eee;overflow:hidden;padding:8px}#bbpress-forums #favorite-toggle,#bbpress-forums #subscription-toggle{float:left}#bbpress-forums div.bbp-forum-title h3,#bbpress-forums div.bbp-reply-title h3,#bbpress-forums div.bbp-topic-title h3{background:0 0;border:none;font-size:16px;line-height:1;margin:8px 0;padding:0;text-transform:none}#bbpress-forums div.bbp-forum-author,#bbpress-forums div.bbp-reply-author,#bbpress-forums div.bbp-topic-author{float:right;text-align:center;width:115px}#bbpress-forums div.bbp-forum-author img.avatar,#bbpress-forums div.bbp-reply-author img.avatar,#bbpress-forums div.bbp-topic-author img.avatar{border:none;max-width:80px;padding:0;margin:12px auto 0;float:none}#bbpress-forums div.bbp-forum-author a.bbp-author-name,#bbpress-forums div.bbp-reply-author a.bbp-author-name,#bbpress-forums div.bbp-topic-author a.bbp-author-name{margin:0 12px;word-wrap:break-word;display:inline-block}#bbpress-forums div.bbp-reply-author a.bbp-author-name,#bbpress-forums div.bbp-topic-author a.bbp-author-name{clear:right;display:block}#bbpress-forums div.bbp-forum-author .bbp-author-role,#bbpress-forums div.bbp-reply-author .bbp-author-role,#bbpress-forums div.bbp-topic-author .bbp-author-role{font-size:11px;font-style:italic}#bbpress-forums li.bbp-footer .bbp-forum-author,#bbpress-forums li.bbp-footer .bbp-reply-author,#bbpress-forums li.bbp-footer .bbp-search-author,#bbpress-forums li.bbp-footer .bbp-topic-author,#bbpress-forums li.bbp-header .bbp-forum-author,#bbpress-forums li.bbp-header .bbp-reply-author,#bbpress-forums li.bbp-header .bbp-search-author,#bbpress-forums li.bbp-header .bbp-topic-author{float:right;margin:0;padding:0;width:120px}#bbpress-forums li.bbp-footer .bbp-forum-content,#bbpress-forums li.bbp-footer .bbp-reply-content,#bbpress-forums li.bbp-footer .bbp-search-content,#bbpress-forums li.bbp-footer .bbp-topic-content,#bbpress-forums li.bbp-header .bbp-forum-content,#bbpress-forums li.bbp-header .bbp-reply-content,#bbpress-forums li.bbp-header .bbp-search-content,#bbpress-forums li.bbp-header .bbp-topic-content{margin-right:140px;padding:0;text-align:right}div.bbp-forum-header,div.bbp-reply-header,div.bbp-topic-header,li.bbp-body div.hentry{margin:0;overflow:hidden;padding:8px}div.bbp-forum-header,div.bbp-reply-header,div.bbp-topic-header{border-top:1px solid #ddd;clear:both}span.bbp-author-ip{font-size:11px;font-weight:700;word-wrap:break-word;color:#aaa}#bbpress-forums div.bbp-forum-content,#bbpress-forums div.bbp-reply-content,#bbpress-forums div.bbp-topic-content{margin-right:130px;padding:12px 0 12px 12px;text-align:right}#bbpress-forums div.bbp-forum-content:after,#bbpress-forums div.bbp-reply-content:after,#bbpress-forums div.bbp-topic-content:after{clear:both;content:".";display:block;float:none;height:0;font-size:0;visibility:hidden}#bbpress-forums div.bbp-reply-content a,#bbpress-forums div.bbp-topic-content a{background:0 0;border:none;display:inline;font-weight:400;margin:0;padding:0}#bbpress-forums div.bbp-reply-content a.bbp-user-mention,#bbpress-forums div.bbp-topic-content a.bbp-user-mention{background:0 0;border:none;text-decoration:none;text-shadow:none;display:inline;font-weight:600;margin:0;padding:0}#bbpress-forums div.bbp-reply-content h1,#bbpress-forums div.bbp-reply-content h2,#bbpress-forums div.bbp-reply-content h3,#bbpress-forums div.bbp-reply-content h4,#bbpress-forums div.bbp-reply-content h5,#bbpress-forums div.bbp-reply-content h6,#bbpress-forums div.bbp-topic-content h1,#bbpress-forums div.bbp-topic-content h2,#bbpress-forums div.bbp-topic-content h3,#bbpress-forums div.bbp-topic-content h4,#bbpress-forums div.bbp-topic-content h5,#bbpress-forums div.bbp-topic-content h6{clear:none;line-height:1;margin:24px 0;padding:0}#bbpress-forums div.bbp-reply-content img,#bbpress-forums div.bbp-topic-content img{max-width:100%;height:auto}#bbpress-forums div.bbp-reply-content ol,#bbpress-forums div.bbp-reply-content ul,#bbpress-forums div.bbp-topic-content ol,#bbpress-forums div.bbp-topic-content ul{margin:0 15px 15px;padding:0}#bbpress-forums div.bbp-reply-content ul li,#bbpress-forums div.bbp-topic-content ul li{list-style-type:disc}#bbpress-forums div.bbp-reply-content ol li,#bbpress-forums div.bbp-topic-content ol li{list-style-type:decimal}#bbpress-forums div.bbp-reply-content ol li li,#bbpress-forums div.bbp-topic-content ol li li{list-style-type:lower-alpha}#bbpress-forums div.bbp-reply-content ol li li li,#bbpress-forums div.bbp-topic-content ol li li li{list-style-type:upper-roman}#bbpress-forums div.bbp-reply-content code,#bbpress-forums div.bbp-reply-content pre,#bbpress-forums div.bbp-topic-content code,#bbpress-forums div.bbp-topic-content pre{font-family:Inconsolata,Consolas,Monaco,"Lucida Console",monospace;display:inline-block;background-color:#f9f9f9;border:1px solid #ddd;padding:0 5px;max-width:95%;vertical-align:middle;margin-top:-3px;overflow-x:auto}#bbpress-forums div.bbp-reply-content pre,#bbpress-forums div.bbp-topic-content pre{display:block;line-height:18px;margin:0 0 24px;padding:5px 10px;white-space:pre;overflow:auto}#bbpress-forums div.bbp-reply-content pre code,#bbpress-forums div.bbp-topic-content pre code{display:block;border:none;padding:0;margin:0;background-color:transparent;overflow-wrap:normal;overflow:auto;max-width:100%}#bbpress-forums div.bbp-reply-to{margin-right:130px;padding:12px 0 12px 12px;text-align:left}#bbpress-forums div#bbp-cancel-reply-to{text-align:left}div.bbp-breadcrumb{float:right}div.bbp-breadcrumb,div.bbp-topic-tags{font-size:12px}#bbpress-forums div.bbp-breadcrumb p,#bbpress-forums div.bbp-topic-tags p{margin-bottom:10px}#bbpress-forums div.bbp-topic-tags{float:left;clear:both}#bbp-topic-hot-tags{clear:both}#bbpress-forums #bbp-search-form{clear:right}#bbpress-forums #bbp-search-form .hidden{height:0;width:0;overflow:hidden;position:absolute;background:0 0;right:-999em}#bbpress-forums #bbp-search-form #bbp_search{display:inline-block;width:auto}#bbpress-forums div.bbp-search-form{float:left}span.bbp-admin-links{float:left;color:#ddd}span.bbp-admin-links a{color:#bbb;font-weight:400;font-size:10px;text-transform:uppercase;text-decoration:none}fieldset span.bbp-admin-links{float:right}tr td span.bbp-admin-links a:hover{color:#ff4b33}td.bbp-topic-admin-links,td.bbp-topic-counts{width:50%}.bbp-forum-header a.bbp-forum-permalink,.bbp-reply-header a.bbp-reply-permalink,.bbp-topic-header a.bbp-topic-permalink{float:left;margin-right:10px;color:#ccc}.bbp-row-actions #favorite-toggle a{text-decoration:none;padding:0 3px 1px;color:#7c7;border:1px solid #aca;background-color:#dfd;font-weight:700;font-size:13px}.bbp-row-actions #favorite-toggle a:hover{color:#5a5;border-color:#7c7;background-color:#beb}.bbp-row-actions #favorite-toggle span.is-favorite a{color:#faa;border:1px solid #faa;background-color:#fee}.bbp-row-actions #favorite-toggle span.is-favorite a:hover{color:#c88;border-color:#c88;background-color:#fdd}.bbp-row-actions #subscription-toggle a{text-decoration:none;padding:0 3px 1px;color:#7c7;border:1px solid #aca;background-color:#dfd;font-weight:700;font-size:13px}.bbp-row-actions #subscription-toggle a:hover{color:#5a5;border-color:#7c7;background-color:#beb}.bbp-row-actions #subscription-toggle span.is-subscribed a{color:#faa;border:1px solid #faa;background-color:#fee}.bbp-row-actions #subscription-toggle span.is-subscribed a:hover{color:#c88;border-color:#c88;background-color:#fdd}#bbpress-forums .bbp-forum-info .bbp-forum-content,#bbpress-forums p.bbp-topic-meta{font-size:11px;margin:5px 0;padding:0;word-wrap:break-word}#bbpress-forums p.bbp-topic-meta span{white-space:nowrap}.bbp-pagination-count{float:right;border:1px solid transparent}.bbp-pagination-links{float:left;list-style:none;display:inline}.bbp-pagination-links a,.bbp-pagination-links span.current{display:block;float:right;padding:0 5px;margin-right:5px;border:1px solid #efefef;text-decoration:none}.bbp-pagination-links a:hover,.bbp-pagination-links span.current{background:#eee;opacity:.8;border:1px solid #ddd}.bbp-pagination-links span.dots{display:block;float:right;padding:1px 4px;margin-right:5px}.bbp-pagination{float:right;width:100%;margin-bottom:15px}.bbp-topic-pagination{display:inline-block;margin-right:5px;margin-bottom:2px}.bbp-topic-pagination a{font-size:10px;line-height:10px;padding:1px 3px;border:1px solid #ddd;text-decoration:none}#bbpress-forums fieldset.bbp-form{clear:right}#bbpress-forums fieldset.bbp-form{border:1px solid #eee;padding:10px 20px;margin-bottom:10px}#bbpress-forums fieldset.bbp-form legend{padding:5px}#bbpress-forums fieldset.bbp-form label{margin:0;display:inline-block}#bbp-edit-topic-tag.bbp-form fieldset.bbp-form label,#bbp-login fieldset label,#bbp-lost-pass fieldset label,#bbp-register fieldset label{width:100px}#bbpress-forums fieldset.bbp-form input,#bbpress-forums fieldset.bbp-form p,#bbpress-forums fieldset.bbp-form select,#bbpress-forums fieldset.bbp-form textarea{margin:0 0 8px}textarea#bbp_forum_content,textarea#bbp_reply_content,textarea#bbp_topic_content{width:97%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}textarea#bbp_forum_content{height:210px}#bbpress-forums fieldset.bbp-forum-form-attributes{width:200px;float:left;clear:none;margin-right:25px}#bbpress-forums fieldset select#bbp_forum_id{max-width:200px}.bbp-reply-form,.bbp-topic-form,.bbp-topic-tag-form{clear:right}body.reply-edit .bbp-reply-form div.avatar img,body.single-forum .bbp-topic-form div.avatar img,body.single-reply .bbp-reply-form div.avatar img,body.topic-edit .bbp-topic-form div.avatar img{margin-left:0;padding:10px;border:1px solid #ddd;line-height:0;background-color:#efefef}body.page .bbp-reply-form code,body.page .bbp-topic-form code,body.reply-edit .bbp-reply-form code,body.single-forum .bbp-topic-form code,body.single-topic .bbp-reply-form code,body.topic-edit .bbp-topic-form code{font-size:10px;background-color:#f0fff8;border:1px solid #ceefe1;display:block;padding:8px;margin-top:5px;width:369px}#delete_tag,#merge_tag{display:inline}div.bbp-submit-wrapper{margin-top:15px;float:left;clear:both}p.form-allowed-tags{max-width:100%}#bbpress-forums div.bbp-the-content-wrapper{margin-bottom:10px}#bbpress-forums div.bbp-the-content-wrapper textarea.bbp-the-content{width:100%;margin:0;font-size:12px}#bbpress-forums div.bbp-the-content-wrapper table,#bbpress-forums div.bbp-the-content-wrapper tbody,#bbpress-forums div.bbp-the-content-wrapper td,#bbpress-forums div.bbp-the-content-wrapper tr{border:none;padding:0;margin:0;width:auto;line-height:1}#bbpress-forums div.bbp-the-content-wrapper input{font-size:12px;padding:5px;margin:0 0 0 2px;line-height:1}#bbpress-forums div.bbp-the-content-wrapper div.quicktags-toolbar{padding:5px;min-height:26px}#bbpress-forums div.bbp-the-content-wrapper td.mceToolbar{padding:4px 4px 8px}#bbpress-forums div.wp-editor-container{margin:0;padding:0;line-height:0}#bbpress-forums div.bbp-the-content-wrapper td.mceStatusbar{line-height:16px}#bbpress-forums #bbp-your-profile fieldset{padding:20px 20px 0}#bbpress-forums #bbp-your-profile fieldset div{margin-bottom:20px;float:right;width:100%;clear:right}#bbpress-forums #bbp-your-profile fieldset select{margin-bottom:0}#bbpress-forums #bbp-your-profile fieldset input,#bbpress-forums #bbp-your-profile fieldset textarea{margin-bottom:0;width:60%;background:#f9f9f9;border:1px solid #ddd;-webkit-box-shadow:none;box-shadow:none;padding:5px 8px;-webkit-border-radius:0;border-radius:0}#bbpress-forums #bbp-your-profile fieldset input:focus,#bbpress-forums #bbp-your-profile fieldset textarea:focus{border:1px solid #ccc;-webkit-box-shadow:inset -1px 1px 1px rgba(0,0,0,.1);box-shadow:inset -1px 1px 1px rgba(0,0,0,.1);outline-color:rgba(240,255,240,.1)}#bbpress-forums #bbp-your-profile fieldset.bbp-form input.checkbox{width:auto}#bbpress-forums #bbp-your-profile fieldset legend{display:none}#bbpress-forums #bbp-your-profile fieldset label[for]{float:right;width:20%;padding:5px 0 5px 20px;text-align:left;cursor:pointer}#bbpress-forums #bbp-your-profile fieldset dl label[for]{text-align:right;width:60%}#bbpress-forums #bbp-your-profile fieldset span.description{margin:5px 20% 0 0;font-size:12px;font-style:italic;float:right;clear:right;width:60%;padding:5px 8px;border:#cee1ef 1px solid;background-color:#f0f8ff}#bbpress-forums #bbp-your-profile fieldset fieldset{margin:0;border:none;padding:0;clear:none;float:none}#bbpress-forums #bbp-your-profile fieldset fieldset.password{width:60%;display:inline}#bbpress-forums #bbp-your-profile fieldset fieldset.password input,#bbpress-forums #bbp-your-profile fieldset fieldset.password span{width:100%}#bbpress-forums #bbp-your-profile fieldset fieldset.capabilities dl{margin:0}#bbpress-forums #bbp-your-profile fieldset fieldset.password span.description{margin-right:0;margin-bottom:20px}#bbpress-forums #bbp-your-profile fieldset.submit button{float:left}div.bbp-template-notice,div.indicator-hint{border-width:1px;border-style:solid;padding:0 .6em;margin:5px 0 15px;-webkit-border-radius:3px;border-radius:3px;background-color:#ffffe0;border-color:#e6db55;color:#000;clear:both}div.bbp-template-notice a{color:#555;text-decoration:none}div.bbp-template-notice a:hover{color:#000}div.bbp-template-notice.info{border:#cee1ef 1px solid;background-color:#f0f8ff}div.bbp-template-notice.important{border:#e6db55 1px solid;background-color:#fffbcc}div.bbp-template-notice.error,div.bbp-template-notice.warning{background-color:#ffebe8;border-color:#c00}div.bbp-template-notice.error a,div.bbp-template-notice.warning a{color:#c00}div.bbp-template-notice li,div.bbp-template-notice p{margin:.5em 0 6px!important;padding:2px;font-size:12px;line-height:1.4}.bbp-forum-content ul.sticky,.bbp-topics ul.sticky,.bbp-topics ul.super-sticky,.bbp-topics-front ul.super-sticky{background-color:#ffffe0!important;font-size:1.1em}#bbpress-forums .bbp-reply-content ul.bbp-reply-revision-log,#bbpress-forums .bbp-reply-content ul.bbp-topic-revision-log,#bbpress-forums .bbp-topic-content ul.bbp-topic-revision-log{border-top:1px dotted #ddd;width:100%;margin:0;padding:8px 0 0;font-size:11px;color:#aaa}#bbpress-forums .bbp-reply-content ul.bbp-reply-revision-log li,#bbpress-forums .bbp-reply-content ul.bbp-topic-revision-log li,#bbpress-forums .bbp-topic-content ul.bbp-topic-revision-log li{list-style-type:none}.bbp-login-form fieldset legend{display:none}.bbp-login-form .bbp-email input,.bbp-login-form .bbp-password input,.bbp-login-form .bbp-username input{padding:5px}.bbp-login-form label{width:140px;display:inline-block}#sidebar .bbp-login-form label{width:70px}.bbp-login-form .bbp-email,.bbp-login-form .bbp-password,.bbp-login-form .bbp-remember-me,.bbp-login-form .bbp-submit-wrapper,.bbp-login-form .bbp-username{margin-top:10px}.bbp-login-form .bbp-submit-wrapper{text-align:left}.bbp-login-form .bbp-login-links a{float:right;clear:right}.bbp-logged-in img.avatar{float:right;margin:0 0 0 15px}.bbp-logged-in h4{font-weight:700;font-size:1.3em;clear:none;margin-bottom:10px}#bbpress-forums img.avatar{-webkit-box-shadow:none;box-shadow:none;display:inline-block}#bbpress-forums .widget_display_replies img.avatar,#bbpress-forums .widget_display_topics img.avatar,#bbpress-forums div.bbp-template-notice img.avatar,#bbpress-forums p.bbp-topic-meta img.avatar,#bbpress-forums ul.bbp-reply-revision-log img.avatar,#bbpress-forums ul.bbp-topic-revision-log img.avatar{float:none;vertical-align:middle;border:3px double #ddd}fieldset div.avatar{float:left}.activity-list li.bbp_reply_create .activity-content .activity-inner,.activity-list li.bbp_topic_create .activity-content .activity-inner{border-right:2px solid #eaeaea;margin-right:5px;padding-right:10px}#bbpress-forums h1{clear:none;font-size:1.8em;line-height:1;padding-bottom:10px}#bbpress-forums #bbp-user-wrapper{float:right;width:100%}#bbpress-forums .bbp-user-section{overflow:auto}#bbpress-forums #bbp-user-wrapper h2.entry-title{font-size:1.4em;margin:0;padding-bottom:10px;padding-top:0;clear:none}#bbpress-forums #bbp-user-wrapper fieldset.bbp-form,#bbpress-forums #bbp-user-wrapper ul.bbp-forums,#bbpress-forums #bbp-user-wrapper ul.bbp-lead-topic,#bbpress-forums #bbp-user-wrapper ul.bbp-replies,#bbpress-forums #bbp-user-wrapper ul.bbp-topics{clear:none}#bbpress-forums #bbp-single-user-details{margin:0;width:150px;float:right;overflow:hidden}#bbpress-forums #bbp-single-user-details #bbp-user-avatar{margin:0;width:150px}#bbpress-forums #bbp-single-user-details #bbp-user-avatar img.avatar{border:none;height:150px;padding:0;margin:0 0 20px;width:150px}#bbpress-forums #bbp-single-user-details #bbp-user-description{float:none;margin-right:180px}#bbpress-forums #bbp-single-user-details #bbp-user-navigation{float:none;margin:0}#bbpress-forums #bbp-single-user-details #bbp-user-navigation li{margin:0}#bbpress-forums #bbp-single-user-details #bbp-user-navigation a{padding:5px 8px;display:block;border:1px solid transparent;text-decoration:none}#bbpress-forums #bbp-single-user-details #bbp-user-navigation li.current a{background:#eee;opacity:.8}#bbpress-forums #bbp-user-body{margin-right:180px}body.my-account #bbpress-forums{border-top:none;padding-top:0;margin-bottom:0}#bbpress-forums dl.bbp-user-capabilities{display:inline-block;vertical-align:top}#bbpress-forums dl.bbp-user-capabilities dt{margin:0 0 10px;text-transform:capitalize}#bbpress-forums dl.bbp-user-capabilities dd{margin:0;padding:0}#bbpress-forums div.row-actions{font-size:11px;visibility:hidden}#bbpress-forums li:hover>div.row-actions{visibility:visible}.bbp-alert-outer{height:100%;width:100%;top:0;right:0;position:fixed;background-color:rgba(0,0,0,.2);z-index:99999}.bbp-alert-inner{width:350px;text-align:center;background:#fff;position:fixed;top:50%;right:50%;margin-top:-75px;margin-right:-185px;-webkit-border-radius:3px;border-radius:3px;border:1px solid #aaa;padding:15px 10px 10px}.bbp-alert-outer .bbp-alert-inner p{margin:10px 0}.bbp-alert-actions a{padding:5px 20px;text-decoration:none}@media only screen and (max-width:480px){#bbpress-forums div.bbp-topic-tags{clear:right;float:right}div.bbp-search-form button,div.bbp-search-form input{font-size:11px;padding:2px}li.bbp-forum-info,li.bbp-topic-title{width:45%}li.bbp-forum-reply-count,li.bbp-forum-topic-count,li.bbp-topic-reply-count,li.bbp-topic-voice-count{width:15%}span.bbp-reply-post-date,span.bbp-topic-post-date{float:right}span.bbp-admin-links{clear:right;float:right}#bbpress-forums .bbp-forums-list li{display:block;font-size:11px}#bbpress-forums .bbp-body div.bbp-reply-author,#bbpress-forums .bbp-body div.bbp-topic-author{margin:-15px 10px 10px;min-height:100px;padding-right:80px;position:relative;text-align:right;width:100%}#bbpress-forums div.bbp-reply-author a.bbp-author-name,#bbpress-forums div.bbp-topic-author a.bbp-author-name{clear:none;display:inline-block;margin-right:0;word-wrap:break-word}#bbpress-forums div.bbp-reply-author img.avatar,#bbpress-forums div.bbp-topic-author img.avatar{position:absolute;top:15px;right:0;width:60px;height:auto}#bbpress-forums div.bbp-reply-author .bbp-author-role,#bbpress-forums div.bbp-topic-author .bbp-author-role{font-size:12px;font-style:normal}#bbpress-forums .bbp-body div.bbp-reply-content,#bbpress-forums .bbp-body div.bbp-topic-content{clear:both;margin:10px;padding:0}#bbpress-forums div.bbp-reply-content p,#bbpress-forums div.bbp-topic-content p{margin-bottom:1em}div.bbp-submit-wrapper{float:right}#bbpress-forums fieldset.bbp-form{padding:0 10px 10px}#bbpress-forums #bbp-user-body{clear:both;margin-right:0;word-wrap:break-word}#bbpress-forums div.bbp-forum-title h3,#bbpress-forums div.bbp-reply-title h3,#bbpress-forums div.bbp-topic-title h3{font-size:14px}}@media only screen and (max-width:320px){#bbpress-forums div.bbp-search-form{margin-bottom:10px}#bbpress-forums li.bbp-body li.bbp-forum-info,#bbpress-forums li.bbp-body li.bbp-topic-title,#bbpress-forums li.bbp-header li.bbp-forum-info,#bbpress-forums li.bbp-header li.bbp-topic-title{width:100%}#bbpress-forums li.bbp-header li.bbp-forum-info,#bbpress-forums li.bbp-header li.bbp-topic-title{text-align:center;text-transform:uppercase}#bbpress-forums li.bbp-body li.bbp-forum-reply-count,#bbpress-forums li.bbp-body li.bbp-forum-topic-count,#bbpress-forums li.bbp-body li.bbp-topic-reply-count,#bbpress-forums li.bbp-body li.bbp-topic-voice-count,#bbpress-forums li.bbp-header li.bbp-forum-reply-count,#bbpress-forums li.bbp-header li.bbp-forum-topic-count,#bbpress-forums li.bbp-header li.bbp-topic-reply-count,#bbpress-forums li.bbp-header li.bbp-topic-voice-count{width:20%}#bbpress-forums li.bbp-body li.bbp-forum-freshness,#bbpress-forums li.bbp-body li.bbp-topic-freshness,#bbpress-forums li.bbp-header li.bbp-forum-freshness,#bbpress-forums li.bbp-header li.bbp-topic-freshness{width:58%}#bbpress-forums li.bbp-body li.bbp-forum-freshness,#bbpress-forums li.bbp-body li.bbp-forum-reply-count,#bbpress-forums li.bbp-body li.bbp-forum-topic-count,#bbpress-forums li.bbp-body li.bbp-topic-freshness,#bbpress-forums li.bbp-body li.bbp-topic-reply-count,#bbpress-forums li.bbp-body li.bbp-topic-voice-count{margin-top:7px}#bbpress-forums li.bbp-footer,#bbpress-forums li.bbp-header{font-size:10px}#bbpress-forums li.bbp-header div.bbp-reply-author,#bbpress-forums li.bbp-header div.bbp-search-author,#bbpress-forums li.bbp-header div.bbp-topic-author{text-align:right;width:25%}#bbpress-forums li.bbp-header div.bbp-reply-content,#bbpress-forums li.bbp-header div.bbp-search-content,#bbpress-forums li.bbp-header div.bbp-topic-content{margin-right:25%}#bbpress-forums div.bbp-template-notice img.avatar,#bbpress-forums p.bbp-topic-meta img.avatar{width:14px;height:auto}#bbpress-forums div.bbp-the-content-wrapper td.mceToolbar{padding:1px}#bbpress-forums div.bbp-the-content-wrapper td.mceToolbar td{width:20px;height:20px}#bbpress-forums div.wp-editor-container{width:100%;overflow:auto}#bbpress-forums input#bbp_topic_tags,#bbpress-forums input#bbp_topic_title{width:95%}#bbpress-forums div.bbp-forum-title h3,#bbpress-forums div.bbp-reply-title h3,#bbpress-forums div.bbp-topic-title h3{font-size:14px}}@media only screen and (max-width:240px){#bbpress-forums li.bbp-body li.bbp-forum-reply-count,#bbpress-forums li.bbp-body li.bbp-forum-topic-count,#bbpress-forums li.bbp-body li.bbp-topic-reply-count,#bbpress-forums li.bbp-body li.bbp-topic-voice-count,#bbpress-forums li.bbp-footer div.bbp-reply-author,#bbpress-forums li.bbp-footer div.bbp-search-author,#bbpress-forums li.bbp-footer div.bbp-topic-author,#bbpress-forums li.bbp-header li.bbp-forum-reply-count,#bbpress-forums li.bbp-header li.bbp-forum-topic-count,#bbpress-forums li.bbp-header li.bbp-topic-reply-count,#bbpress-forums li.bbp-header li.bbp-topic-voice-count{width:45%}#bbpress-forums li.bbp-body li.bbp-forum-freshness,#bbpress-forums li.bbp-body li.bbp-topic-freshness,#bbpress-forums li.bbp-header li.bbp-forum-freshness,#bbpress-forums li.bbp-header li.bbp-topic-freshness{clear:both;width:100%}#bbpress-forums li.bbp-header li.bbp-forum-freshness,#bbpress-forums li.bbp-header li.bbp-topic-freshness{text-align:center}#bbpress-forums li.bbp-body li.bbp-topic-freshness,#bbpress-forums li.bbp-header div.bbp-reply-author,#bbpress-forums li.bbp-header div.bbp-reply-content,#bbpress-forums li.bbp-header div.bbp-search-author,#bbpress-forums li.bbp-header div.bbp-search-content,#bbpress-forums li.bbp-header div.bbp-topic-author,#bbpress-forums li.bbp-header div.bbp-topic-content{margin-right:0;text-align:right}#bbpress-forums li.bbp-body li.bbp-topic-freshness p.bbp-topic-meta{display:inline-block}#bbpress-forums li.bbp-header{overflow:hidden}#bbpress-forums li.bbp-footer div.bbp-reply-content,#bbpress-forums li.bbp-footer div.bbp-search-content,#bbpress-forums li.bbp-footer div.bbp-topic-content{display:inline-block;margin-right:0}#bbpress-forums li.bbp-body div.bbp-reply-author,#bbpress-forums li.bbp-body div.bbp-topic-author{min-height:60px;padding-right:60px}#bbpress-forums div.bbp-reply-author img.avatar,#bbpress-forums div.bbp-topic-author img.avatar{width:40px;height:auto}#bbpress-forums div.bbp-forum-title h3,#bbpress-forums div.bbp-reply-title h3,#bbpress-forums div.bbp-topic-title h3{font-size:12px}}
templates/default/css/bbpress.css CHANGED
@@ -257,7 +257,7 @@ div.bbp-forum-header,
257
  div.bbp-topic-header,
258
  div.bbp-reply-header,
259
  li.bbp-body div.hentry {
260
- margin-bottom: 0;
261
  overflow: hidden;
262
  padding: 8px;
263
  }
@@ -1054,6 +1054,7 @@ div.bbp-template-notice li {
1054
  #bbpress-forums img.avatar {
1055
  -webkit-box-shadow: none;
1056
  box-shadow: none;
 
1057
  }
1058
 
1059
  #bbpress-forums p.bbp-topic-meta img.avatar,
@@ -1063,7 +1064,7 @@ div.bbp-template-notice li {
1063
  #bbpress-forums .widget_display_topics img.avatar,
1064
  #bbpress-forums .widget_display_replies img.avatar {
1065
  float: none;
1066
- margin-bottom: -7px;
1067
  border: 3px double #ddd;
1068
  }
1069
 
257
  div.bbp-topic-header,
258
  div.bbp-reply-header,
259
  li.bbp-body div.hentry {
260
+ margin: 0;
261
  overflow: hidden;
262
  padding: 8px;
263
  }
1054
  #bbpress-forums img.avatar {
1055
  -webkit-box-shadow: none;
1056
  box-shadow: none;
1057
+ display: inline-block;
1058
  }
1059
 
1060
  #bbpress-forums p.bbp-topic-meta img.avatar,
1064
  #bbpress-forums .widget_display_topics img.avatar,
1065
  #bbpress-forums .widget_display_replies img.avatar {
1066
  float: none;
1067
+ vertical-align: middle;
1068
  border: 3px double #ddd;
1069
  }
1070
 
templates/default/css/bbpress.min.css CHANGED
@@ -1 +1 @@
1
- .entry-content .bbpress-wrapper a,.entry-content .bbpress-wrapper a:hover{-webkit-box-shadow:none;box-shadow:none}#bbpress-forums hr{margin:0 0 24px}#bbpress-forums{background:0 0;clear:both;margin-bottom:20px;overflow:hidden;font-size:12px}#bbpress-forums div.even,#bbpress-forums ul.even{background-color:#fff}#bbpress-forums div.odd,#bbpress-forums ul.odd{background-color:#fbfbfb}body.reply-edit .reply{float:none}#bbpress-forums div.reply{height:auto;width:100%}#bbpress-forums div.bbp-forum-header,#bbpress-forums div.bbp-reply-header,#bbpress-forums div.bbp-topic-header{background-color:#f4f4f4}#bbpress-forums .status-spam.even,#bbpress-forums .status-trash.even{background-color:#fee}#bbpress-forums .status-spam.odd,#bbpress-forums .status-trash.odd{background-color:#fdd}#bbpress-forums .status-pending.even,#bbpress-forums .status-pending.odd,#bbpress-forums ul.status-pending a{background-color:#fef7f1}#bbpress-forums ul.status-closed,#bbpress-forums ul.status-closed a{color:#ccc}#bbpress-forums ul{background:0 0;list-style:none;margin:0;padding:0}#bbpress-forums ul.bbp-threaded-replies{margin-left:50px}#bbpress-forums li{background:0 0;margin:0;list-style:none}#bbpress-forums ul.bbp-forums,#bbpress-forums ul.bbp-lead-topic,#bbpress-forums ul.bbp-replies,#bbpress-forums ul.bbp-search-results,#bbpress-forums ul.bbp-topics{font-size:12px;overflow:hidden;border:1px solid #eee;margin-bottom:20px;clear:both}#bbpress-forums li.bbp-body,#bbpress-forums li.bbp-footer,#bbpress-forums li.bbp-header{clear:both}#bbpress-forums li.bbp-footer,#bbpress-forums li.bbp-header{background:#f3f3f3;border-top:1px solid #eee;font-weight:700;padding:8px;text-align:center}#bbpress-forums li.bbp-header{background:#eaeaea}#bbpress-forums li.bbp-header ul{overflow:hidden}#bbpress-forums .bbp-forums-list{margin:0 0 0 5px;padding-left:15px;border-left:1px solid #ddd}#bbpress-forums .bbp-forums-list li{display:inline;font-size:11px}#bbpress-forums li.bbp-footer p{margin:0;line-height:1}li.bbp-forum-info,li.bbp-topic-title{float:left;text-align:left;width:55%}li.bbp-forum-reply-count,li.bbp-forum-topic-count,li.bbp-topic-reply-count,li.bbp-topic-voice-count{float:left;text-align:center;width:10%}li.bbp-forum-freshness,li.bbp-topic-freshness{text-align:center;float:left;width:22%}#bbpress-forums li.bbp-body ul.forum,#bbpress-forums li.bbp-body ul.topic{border-top:1px solid #eee;overflow:hidden;padding:8px}#bbpress-forums #favorite-toggle,#bbpress-forums #subscription-toggle{float:right}#bbpress-forums div.bbp-forum-title h3,#bbpress-forums div.bbp-reply-title h3,#bbpress-forums div.bbp-topic-title h3{background:0 0;border:none;font-size:16px;line-height:1;margin:8px 0;padding:0;text-transform:none}#bbpress-forums div.bbp-forum-author,#bbpress-forums div.bbp-reply-author,#bbpress-forums div.bbp-topic-author{float:left;text-align:center;width:115px}#bbpress-forums div.bbp-forum-author img.avatar,#bbpress-forums div.bbp-reply-author img.avatar,#bbpress-forums div.bbp-topic-author img.avatar{border:none;max-width:80px;padding:0;margin:12px auto 0;float:none}#bbpress-forums div.bbp-forum-author a.bbp-author-name,#bbpress-forums div.bbp-reply-author a.bbp-author-name,#bbpress-forums div.bbp-topic-author a.bbp-author-name{margin:0 12px;word-wrap:break-word;display:inline-block}#bbpress-forums div.bbp-reply-author a.bbp-author-name,#bbpress-forums div.bbp-topic-author a.bbp-author-name{clear:left;display:block}#bbpress-forums div.bbp-forum-author .bbp-author-role,#bbpress-forums div.bbp-reply-author .bbp-author-role,#bbpress-forums div.bbp-topic-author .bbp-author-role{font-size:11px;font-style:italic}#bbpress-forums li.bbp-footer .bbp-forum-author,#bbpress-forums li.bbp-footer .bbp-reply-author,#bbpress-forums li.bbp-footer .bbp-search-author,#bbpress-forums li.bbp-footer .bbp-topic-author,#bbpress-forums li.bbp-header .bbp-forum-author,#bbpress-forums li.bbp-header .bbp-reply-author,#bbpress-forums li.bbp-header .bbp-search-author,#bbpress-forums li.bbp-header .bbp-topic-author{float:left;margin:0;padding:0;width:120px}#bbpress-forums li.bbp-footer .bbp-forum-content,#bbpress-forums li.bbp-footer .bbp-reply-content,#bbpress-forums li.bbp-footer .bbp-search-content,#bbpress-forums li.bbp-footer .bbp-topic-content,#bbpress-forums li.bbp-header .bbp-forum-content,#bbpress-forums li.bbp-header .bbp-reply-content,#bbpress-forums li.bbp-header .bbp-search-content,#bbpress-forums li.bbp-header .bbp-topic-content{margin-left:140px;padding:0;text-align:left}div.bbp-forum-header,div.bbp-reply-header,div.bbp-topic-header,li.bbp-body div.hentry{margin-bottom:0;overflow:hidden;padding:8px}div.bbp-forum-header,div.bbp-reply-header,div.bbp-topic-header{border-top:1px solid #ddd;clear:both}span.bbp-author-ip{font-size:11px;font-weight:700;word-wrap:break-word;color:#aaa}#bbpress-forums div.bbp-forum-content,#bbpress-forums div.bbp-reply-content,#bbpress-forums div.bbp-topic-content{margin-left:130px;padding:12px 12px 12px 0;text-align:left}#bbpress-forums div.bbp-forum-content:after,#bbpress-forums div.bbp-reply-content:after,#bbpress-forums div.bbp-topic-content:after{clear:both;content:".";display:block;float:none;height:0;font-size:0;visibility:hidden}#bbpress-forums div.bbp-reply-content a,#bbpress-forums div.bbp-topic-content a{background:0 0;border:none;display:inline;font-weight:400;margin:0;padding:0}#bbpress-forums div.bbp-reply-content a.bbp-user-mention,#bbpress-forums div.bbp-topic-content a.bbp-user-mention{background:0 0;border:none;text-decoration:none;text-shadow:none;display:inline;font-weight:600;margin:0;padding:0}#bbpress-forums div.bbp-reply-content h1,#bbpress-forums div.bbp-reply-content h2,#bbpress-forums div.bbp-reply-content h3,#bbpress-forums div.bbp-reply-content h4,#bbpress-forums div.bbp-reply-content h5,#bbpress-forums div.bbp-reply-content h6,#bbpress-forums div.bbp-topic-content h1,#bbpress-forums div.bbp-topic-content h2,#bbpress-forums div.bbp-topic-content h3,#bbpress-forums div.bbp-topic-content h4,#bbpress-forums div.bbp-topic-content h5,#bbpress-forums div.bbp-topic-content h6{clear:none;line-height:1;margin:24px 0;padding:0}#bbpress-forums div.bbp-reply-content img,#bbpress-forums div.bbp-topic-content img{max-width:100%;height:auto}#bbpress-forums div.bbp-reply-content ol,#bbpress-forums div.bbp-reply-content ul,#bbpress-forums div.bbp-topic-content ol,#bbpress-forums div.bbp-topic-content ul{margin:0 15px 15px;padding:0}#bbpress-forums div.bbp-reply-content ul li,#bbpress-forums div.bbp-topic-content ul li{list-style-type:disc}#bbpress-forums div.bbp-reply-content ol li,#bbpress-forums div.bbp-topic-content ol li{list-style-type:decimal}#bbpress-forums div.bbp-reply-content ol li li,#bbpress-forums div.bbp-topic-content ol li li{list-style-type:lower-alpha}#bbpress-forums div.bbp-reply-content ol li li li,#bbpress-forums div.bbp-topic-content ol li li li{list-style-type:upper-roman}#bbpress-forums div.bbp-reply-content code,#bbpress-forums div.bbp-reply-content pre,#bbpress-forums div.bbp-topic-content code,#bbpress-forums div.bbp-topic-content pre{font-family:Inconsolata,Consolas,Monaco,"Lucida Console",monospace;display:inline-block;background-color:#f9f9f9;border:1px solid #ddd;padding:0 5px;max-width:95%;vertical-align:middle;margin-top:-3px;overflow-x:auto}#bbpress-forums div.bbp-reply-content pre,#bbpress-forums div.bbp-topic-content pre{display:block;line-height:18px;margin:0 0 24px;padding:5px 10px;white-space:pre;overflow:auto}#bbpress-forums div.bbp-reply-content pre code,#bbpress-forums div.bbp-topic-content pre code{display:block;border:none;padding:0;margin:0;background-color:transparent;overflow-wrap:normal;overflow:auto;max-width:100%}#bbpress-forums div.bbp-reply-to{margin-left:130px;padding:12px 12px 12px 0;text-align:right}#bbpress-forums div#bbp-cancel-reply-to{text-align:right}div.bbp-breadcrumb{float:left}div.bbp-breadcrumb,div.bbp-topic-tags{font-size:12px}#bbpress-forums div.bbp-breadcrumb p,#bbpress-forums div.bbp-topic-tags p{margin-bottom:10px}#bbpress-forums div.bbp-topic-tags{float:right;clear:both}#bbp-topic-hot-tags{clear:both}#bbpress-forums #bbp-search-form{clear:left}#bbpress-forums #bbp-search-form .hidden{height:0;width:0;overflow:hidden;position:absolute;background:0 0;left:-999em}#bbpress-forums #bbp-search-form #bbp_search{display:inline-block;width:auto}#bbpress-forums div.bbp-search-form{float:right}span.bbp-admin-links{float:right;color:#ddd}span.bbp-admin-links a{color:#bbb;font-weight:400;font-size:10px;text-transform:uppercase;text-decoration:none}fieldset span.bbp-admin-links{float:left}tr td span.bbp-admin-links a:hover{color:#ff4b33}td.bbp-topic-admin-links,td.bbp-topic-counts{width:50%}.bbp-forum-header a.bbp-forum-permalink,.bbp-reply-header a.bbp-reply-permalink,.bbp-topic-header a.bbp-topic-permalink{float:right;margin-left:10px;color:#ccc}.bbp-row-actions #favorite-toggle a{text-decoration:none;padding:0 3px 1px;color:#7c7;border:1px solid #aca;background-color:#dfd;font-weight:700;font-size:13px}.bbp-row-actions #favorite-toggle a:hover{color:#5a5;border-color:#7c7;background-color:#beb}.bbp-row-actions #favorite-toggle span.is-favorite a{color:#faa;border:1px solid #faa;background-color:#fee}.bbp-row-actions #favorite-toggle span.is-favorite a:hover{color:#c88;border-color:#c88;background-color:#fdd}.bbp-row-actions #subscription-toggle a{text-decoration:none;padding:0 3px 1px;color:#7c7;border:1px solid #aca;background-color:#dfd;font-weight:700;font-size:13px}.bbp-row-actions #subscription-toggle a:hover{color:#5a5;border-color:#7c7;background-color:#beb}.bbp-row-actions #subscription-toggle span.is-subscribed a{color:#faa;border:1px solid #faa;background-color:#fee}.bbp-row-actions #subscription-toggle span.is-subscribed a:hover{color:#c88;border-color:#c88;background-color:#fdd}#bbpress-forums .bbp-forum-info .bbp-forum-content,#bbpress-forums p.bbp-topic-meta{font-size:11px;margin:5px 0;padding:0;word-wrap:break-word}#bbpress-forums p.bbp-topic-meta span{white-space:nowrap}.bbp-pagination-count{float:left;border:1px solid transparent}.bbp-pagination-links{float:right;list-style:none;display:inline}.bbp-pagination-links a,.bbp-pagination-links span.current{display:block;float:left;padding:0 5px;margin-left:5px;border:1px solid #efefef;text-decoration:none}.bbp-pagination-links a:hover,.bbp-pagination-links span.current{background:#eee;opacity:.8;border:1px solid #ddd}.bbp-pagination-links span.dots{display:block;float:left;padding:1px 4px;margin-left:5px}.bbp-pagination{float:left;width:100%;margin-bottom:15px}.bbp-topic-pagination{display:inline-block;margin-left:5px;margin-bottom:2px}.bbp-topic-pagination a{font-size:10px;line-height:10px;padding:1px 3px;border:1px solid #ddd;text-decoration:none}#bbpress-forums fieldset.bbp-form{clear:left}#bbpress-forums fieldset.bbp-form{border:1px solid #eee;padding:10px 20px;margin-bottom:10px}#bbpress-forums fieldset.bbp-form legend{padding:5px}#bbpress-forums fieldset.bbp-form label{margin:0;display:inline-block}#bbp-edit-topic-tag.bbp-form fieldset.bbp-form label,#bbp-login fieldset label,#bbp-lost-pass fieldset label,#bbp-register fieldset label{width:100px}#bbpress-forums fieldset.bbp-form input,#bbpress-forums fieldset.bbp-form p,#bbpress-forums fieldset.bbp-form select,#bbpress-forums fieldset.bbp-form textarea{margin:0 0 8px}textarea#bbp_forum_content,textarea#bbp_reply_content,textarea#bbp_topic_content{width:97%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}textarea#bbp_forum_content{height:210px}#bbpress-forums fieldset.bbp-forum-form-attributes{width:200px;float:right;clear:none;margin-left:25px}#bbpress-forums fieldset select#bbp_forum_id{max-width:200px}.bbp-reply-form,.bbp-topic-form,.bbp-topic-tag-form{clear:left}body.reply-edit .bbp-reply-form div.avatar img,body.single-forum .bbp-topic-form div.avatar img,body.single-reply .bbp-reply-form div.avatar img,body.topic-edit .bbp-topic-form div.avatar img{margin-right:0;padding:10px;border:1px solid #ddd;line-height:0;background-color:#efefef}body.page .bbp-reply-form code,body.page .bbp-topic-form code,body.reply-edit .bbp-reply-form code,body.single-forum .bbp-topic-form code,body.single-topic .bbp-reply-form code,body.topic-edit .bbp-topic-form code{font-size:10px;background-color:#f0fff8;border:1px solid #ceefe1;display:block;padding:8px;margin-top:5px;width:369px}#delete_tag,#merge_tag{display:inline}div.bbp-submit-wrapper{margin-top:15px;float:right;clear:both}p.form-allowed-tags{max-width:100%}#bbpress-forums div.bbp-the-content-wrapper{margin-bottom:10px}#bbpress-forums div.bbp-the-content-wrapper textarea.bbp-the-content{width:100%;margin:0;font-size:12px}#bbpress-forums div.bbp-the-content-wrapper table,#bbpress-forums div.bbp-the-content-wrapper tbody,#bbpress-forums div.bbp-the-content-wrapper td,#bbpress-forums div.bbp-the-content-wrapper tr{border:none;padding:0;margin:0;width:auto;line-height:1}#bbpress-forums div.bbp-the-content-wrapper input{font-size:12px;padding:5px;margin:0 2px 0 0;line-height:1}#bbpress-forums div.bbp-the-content-wrapper div.quicktags-toolbar{padding:5px;min-height:26px}#bbpress-forums div.bbp-the-content-wrapper td.mceToolbar{padding:4px 4px 8px}#bbpress-forums div.wp-editor-container{margin:0;padding:0;line-height:0}#bbpress-forums div.bbp-the-content-wrapper td.mceStatusbar{line-height:16px}#bbpress-forums #bbp-your-profile fieldset{padding:20px 20px 0}#bbpress-forums #bbp-your-profile fieldset div{margin-bottom:20px;float:left;width:100%;clear:left}#bbpress-forums #bbp-your-profile fieldset select{margin-bottom:0}#bbpress-forums #bbp-your-profile fieldset input,#bbpress-forums #bbp-your-profile fieldset textarea{margin-bottom:0;width:60%;background:#f9f9f9;border:1px solid #ddd;-webkit-box-shadow:none;box-shadow:none;padding:5px 8px;-webkit-border-radius:0;border-radius:0}#bbpress-forums #bbp-your-profile fieldset input:focus,#bbpress-forums #bbp-your-profile fieldset textarea:focus{border:1px solid #ccc;-webkit-box-shadow:inset 1px 1px 1px rgba(0,0,0,.1);box-shadow:inset 1px 1px 1px rgba(0,0,0,.1);outline-color:rgba(240,255,240,.1)}#bbpress-forums #bbp-your-profile fieldset.bbp-form input.checkbox{width:auto}#bbpress-forums #bbp-your-profile fieldset legend{display:none}#bbpress-forums #bbp-your-profile fieldset label[for]{float:left;width:20%;padding:5px 20px 5px 0;text-align:right;cursor:pointer}#bbpress-forums #bbp-your-profile fieldset dl label[for]{text-align:left;width:60%}#bbpress-forums #bbp-your-profile fieldset span.description{margin:5px 0 0 20%;font-size:12px;font-style:italic;float:left;clear:left;width:60%;padding:5px 8px;border:#cee1ef 1px solid;background-color:#f0f8ff}#bbpress-forums #bbp-your-profile fieldset fieldset{margin:0;border:none;padding:0;clear:none;float:none}#bbpress-forums #bbp-your-profile fieldset fieldset.password{width:60%;display:inline}#bbpress-forums #bbp-your-profile fieldset fieldset.password input,#bbpress-forums #bbp-your-profile fieldset fieldset.password span{width:100%}#bbpress-forums #bbp-your-profile fieldset fieldset.capabilities dl{margin:0}#bbpress-forums #bbp-your-profile fieldset fieldset.password span.description{margin-left:0;margin-bottom:20px}#bbpress-forums #bbp-your-profile fieldset.submit button{float:right}div.bbp-template-notice,div.indicator-hint{border-width:1px;border-style:solid;padding:0 .6em;margin:5px 0 15px;-webkit-border-radius:3px;border-radius:3px;background-color:#ffffe0;border-color:#e6db55;color:#000;clear:both}div.bbp-template-notice a{color:#555;text-decoration:none}div.bbp-template-notice a:hover{color:#000}div.bbp-template-notice.info{border:#cee1ef 1px solid;background-color:#f0f8ff}div.bbp-template-notice.important{border:#e6db55 1px solid;background-color:#fffbcc}div.bbp-template-notice.error,div.bbp-template-notice.warning{background-color:#ffebe8;border-color:#c00}div.bbp-template-notice.error a,div.bbp-template-notice.warning a{color:#c00}div.bbp-template-notice li,div.bbp-template-notice p{margin:.5em 0 6px!important;padding:2px;font-size:12px;line-height:1.4}.bbp-forum-content ul.sticky,.bbp-topics ul.sticky,.bbp-topics ul.super-sticky,.bbp-topics-front ul.super-sticky{background-color:#ffffe0!important;font-size:1.1em}#bbpress-forums .bbp-reply-content ul.bbp-reply-revision-log,#bbpress-forums .bbp-reply-content ul.bbp-topic-revision-log,#bbpress-forums .bbp-topic-content ul.bbp-topic-revision-log{border-top:1px dotted #ddd;width:100%;margin:0;padding:8px 0 0;font-size:11px;color:#aaa}#bbpress-forums .bbp-reply-content ul.bbp-reply-revision-log li,#bbpress-forums .bbp-reply-content ul.bbp-topic-revision-log li,#bbpress-forums .bbp-topic-content ul.bbp-topic-revision-log li{list-style-type:none}.bbp-login-form fieldset legend{display:none}.bbp-login-form .bbp-email input,.bbp-login-form .bbp-password input,.bbp-login-form .bbp-username input{padding:5px}.bbp-login-form label{width:140px;display:inline-block}#sidebar .bbp-login-form label{width:70px}.bbp-login-form .bbp-email,.bbp-login-form .bbp-password,.bbp-login-form .bbp-remember-me,.bbp-login-form .bbp-submit-wrapper,.bbp-login-form .bbp-username{margin-top:10px}.bbp-login-form .bbp-submit-wrapper{text-align:right}.bbp-login-form .bbp-login-links a{float:left;clear:left}.bbp-logged-in img.avatar{float:left;margin:0 15px 0 0}.bbp-logged-in h4{font-weight:700;font-size:1.3em;clear:none;margin-bottom:10px}#bbpress-forums img.avatar{-webkit-box-shadow:none;box-shadow:none}#bbpress-forums .widget_display_replies img.avatar,#bbpress-forums .widget_display_topics img.avatar,#bbpress-forums div.bbp-template-notice img.avatar,#bbpress-forums p.bbp-topic-meta img.avatar,#bbpress-forums ul.bbp-reply-revision-log img.avatar,#bbpress-forums ul.bbp-topic-revision-log img.avatar{float:none;margin-bottom:-7px;border:3px double #ddd}fieldset div.avatar{float:right}.activity-list li.bbp_reply_create .activity-content .activity-inner,.activity-list li.bbp_topic_create .activity-content .activity-inner{border-left:2px solid #eaeaea;margin-left:5px;padding-left:10px}#bbpress-forums h1{clear:none;font-size:1.8em;line-height:1;padding-bottom:10px}#bbpress-forums #bbp-user-wrapper{float:left;width:100%}#bbpress-forums .bbp-user-section{overflow:auto}#bbpress-forums #bbp-user-wrapper h2.entry-title{font-size:1.4em;margin:0;padding-bottom:10px;padding-top:0;clear:none}#bbpress-forums #bbp-user-wrapper fieldset.bbp-form,#bbpress-forums #bbp-user-wrapper ul.bbp-forums,#bbpress-forums #bbp-user-wrapper ul.bbp-lead-topic,#bbpress-forums #bbp-user-wrapper ul.bbp-replies,#bbpress-forums #bbp-user-wrapper ul.bbp-topics{clear:none}#bbpress-forums #bbp-single-user-details{margin:0;width:150px;float:left;overflow:hidden}#bbpress-forums #bbp-single-user-details #bbp-user-avatar{margin:0;width:150px}#bbpress-forums #bbp-single-user-details #bbp-user-avatar img.avatar{border:none;height:150px;padding:0;margin:0 0 20px;width:150px}#bbpress-forums #bbp-single-user-details #bbp-user-description{float:none;margin-left:180px}#bbpress-forums #bbp-single-user-details #bbp-user-navigation{float:none;margin:0}#bbpress-forums #bbp-single-user-details #bbp-user-navigation li{margin:0}#bbpress-forums #bbp-single-user-details #bbp-user-navigation a{padding:5px 8px;display:block;border:1px solid transparent;text-decoration:none}#bbpress-forums #bbp-single-user-details #bbp-user-navigation li.current a{background:#eee;opacity:.8}#bbpress-forums #bbp-user-body{margin-left:180px}body.my-account #bbpress-forums{border-top:none;padding-top:0;margin-bottom:0}#bbpress-forums dl.bbp-user-capabilities{display:inline-block;vertical-align:top}#bbpress-forums dl.bbp-user-capabilities dt{margin:0 0 10px;text-transform:capitalize}#bbpress-forums dl.bbp-user-capabilities dd{margin:0;padding:0}#bbpress-forums div.row-actions{font-size:11px;visibility:hidden}#bbpress-forums li:hover>div.row-actions{visibility:visible}.bbp-alert-outer{height:100%;width:100%;top:0;left:0;position:fixed;background-color:rgba(0,0,0,.2);z-index:99999}.bbp-alert-inner{width:350px;text-align:center;background:#fff;position:fixed;top:50%;left:50%;margin-top:-75px;margin-left:-185px;-webkit-border-radius:3px;border-radius:3px;border:1px solid #aaa;padding:15px 10px 10px}.bbp-alert-outer .bbp-alert-inner p{margin:10px 0}.bbp-alert-actions a{padding:5px 20px;text-decoration:none}@media only screen and (max-width:480px){#bbpress-forums div.bbp-topic-tags{clear:left;float:left}div.bbp-search-form button,div.bbp-search-form input{font-size:11px;padding:2px}li.bbp-forum-info,li.bbp-topic-title{width:45%}li.bbp-forum-reply-count,li.bbp-forum-topic-count,li.bbp-topic-reply-count,li.bbp-topic-voice-count{width:15%}span.bbp-reply-post-date,span.bbp-topic-post-date{float:left}span.bbp-admin-links{clear:left;float:left}#bbpress-forums .bbp-forums-list li{display:block;font-size:11px}#bbpress-forums .bbp-body div.bbp-reply-author,#bbpress-forums .bbp-body div.bbp-topic-author{margin:-15px 10px 10px;min-height:100px;padding-left:80px;position:relative;text-align:left;width:100%}#bbpress-forums div.bbp-reply-author a.bbp-author-name,#bbpress-forums div.bbp-topic-author a.bbp-author-name{clear:none;display:inline-block;margin-left:0;word-wrap:break-word}#bbpress-forums div.bbp-reply-author img.avatar,#bbpress-forums div.bbp-topic-author img.avatar{position:absolute;top:15px;left:0;width:60px;height:auto}#bbpress-forums div.bbp-reply-author .bbp-author-role,#bbpress-forums div.bbp-topic-author .bbp-author-role{font-size:12px;font-style:normal}#bbpress-forums .bbp-body div.bbp-reply-content,#bbpress-forums .bbp-body div.bbp-topic-content{clear:both;margin:10px;padding:0}#bbpress-forums div.bbp-reply-content p,#bbpress-forums div.bbp-topic-content p{margin-bottom:1em}div.bbp-submit-wrapper{float:left}#bbpress-forums fieldset.bbp-form{padding:0 10px 10px}#bbpress-forums #bbp-user-body{clear:both;margin-left:0;word-wrap:break-word}#bbpress-forums div.bbp-forum-title h3,#bbpress-forums div.bbp-reply-title h3,#bbpress-forums div.bbp-topic-title h3{font-size:14px}}@media only screen and (max-width:320px){#bbpress-forums div.bbp-search-form{margin-bottom:10px}#bbpress-forums li.bbp-body li.bbp-forum-info,#bbpress-forums li.bbp-body li.bbp-topic-title,#bbpress-forums li.bbp-header li.bbp-forum-info,#bbpress-forums li.bbp-header li.bbp-topic-title{width:100%}#bbpress-forums li.bbp-header li.bbp-forum-info,#bbpress-forums li.bbp-header li.bbp-topic-title{text-align:center;text-transform:uppercase}#bbpress-forums li.bbp-body li.bbp-forum-reply-count,#bbpress-forums li.bbp-body li.bbp-forum-topic-count,#bbpress-forums li.bbp-body li.bbp-topic-reply-count,#bbpress-forums li.bbp-body li.bbp-topic-voice-count,#bbpress-forums li.bbp-header li.bbp-forum-reply-count,#bbpress-forums li.bbp-header li.bbp-forum-topic-count,#bbpress-forums li.bbp-header li.bbp-topic-reply-count,#bbpress-forums li.bbp-header li.bbp-topic-voice-count{width:20%}#bbpress-forums li.bbp-body li.bbp-forum-freshness,#bbpress-forums li.bbp-body li.bbp-topic-freshness,#bbpress-forums li.bbp-header li.bbp-forum-freshness,#bbpress-forums li.bbp-header li.bbp-topic-freshness{width:58%}#bbpress-forums li.bbp-body li.bbp-forum-freshness,#bbpress-forums li.bbp-body li.bbp-forum-reply-count,#bbpress-forums li.bbp-body li.bbp-forum-topic-count,#bbpress-forums li.bbp-body li.bbp-topic-freshness,#bbpress-forums li.bbp-body li.bbp-topic-reply-count,#bbpress-forums li.bbp-body li.bbp-topic-voice-count{margin-top:7px}#bbpress-forums li.bbp-footer,#bbpress-forums li.bbp-header{font-size:10px}#bbpress-forums li.bbp-header div.bbp-reply-author,#bbpress-forums li.bbp-header div.bbp-search-author,#bbpress-forums li.bbp-header div.bbp-topic-author{text-align:left;width:25%}#bbpress-forums li.bbp-header div.bbp-reply-content,#bbpress-forums li.bbp-header div.bbp-search-content,#bbpress-forums li.bbp-header div.bbp-topic-content{margin-left:25%}#bbpress-forums div.bbp-template-notice img.avatar,#bbpress-forums p.bbp-topic-meta img.avatar{width:14px;height:auto}#bbpress-forums div.bbp-the-content-wrapper td.mceToolbar{padding:1px}#bbpress-forums div.bbp-the-content-wrapper td.mceToolbar td{width:20px;height:20px}#bbpress-forums div.wp-editor-container{width:100%;overflow:auto}#bbpress-forums input#bbp_topic_tags,#bbpress-forums input#bbp_topic_title{width:95%}#bbpress-forums div.bbp-forum-title h3,#bbpress-forums div.bbp-reply-title h3,#bbpress-forums div.bbp-topic-title h3{font-size:14px}}@media only screen and (max-width:240px){#bbpress-forums li.bbp-body li.bbp-forum-reply-count,#bbpress-forums li.bbp-body li.bbp-forum-topic-count,#bbpress-forums li.bbp-body li.bbp-topic-reply-count,#bbpress-forums li.bbp-body li.bbp-topic-voice-count,#bbpress-forums li.bbp-footer div.bbp-reply-author,#bbpress-forums li.bbp-footer div.bbp-search-author,#bbpress-forums li.bbp-footer div.bbp-topic-author,#bbpress-forums li.bbp-header li.bbp-forum-reply-count,#bbpress-forums li.bbp-header li.bbp-forum-topic-count,#bbpress-forums li.bbp-header li.bbp-topic-reply-count,#bbpress-forums li.bbp-header li.bbp-topic-voice-count{width:45%}#bbpress-forums li.bbp-body li.bbp-forum-freshness,#bbpress-forums li.bbp-body li.bbp-topic-freshness,#bbpress-forums li.bbp-header li.bbp-forum-freshness,#bbpress-forums li.bbp-header li.bbp-topic-freshness{clear:both;width:100%}#bbpress-forums li.bbp-header li.bbp-forum-freshness,#bbpress-forums li.bbp-header li.bbp-topic-freshness{text-align:center}#bbpress-forums li.bbp-body li.bbp-topic-freshness,#bbpress-forums li.bbp-header div.bbp-reply-author,#bbpress-forums li.bbp-header div.bbp-reply-content,#bbpress-forums li.bbp-header div.bbp-search-author,#bbpress-forums li.bbp-header div.bbp-search-content,#bbpress-forums li.bbp-header div.bbp-topic-author,#bbpress-forums li.bbp-header div.bbp-topic-content{margin-left:0;text-align:left}#bbpress-forums li.bbp-body li.bbp-topic-freshness p.bbp-topic-meta{display:inline-block}#bbpress-forums li.bbp-header{overflow:hidden}#bbpress-forums li.bbp-footer div.bbp-reply-content,#bbpress-forums li.bbp-footer div.bbp-search-content,#bbpress-forums li.bbp-footer div.bbp-topic-content{display:inline-block;margin-left:0}#bbpress-forums li.bbp-body div.bbp-reply-author,#bbpress-forums li.bbp-body div.bbp-topic-author{min-height:60px;padding-left:60px}#bbpress-forums div.bbp-reply-author img.avatar,#bbpress-forums div.bbp-topic-author img.avatar{width:40px;height:auto}#bbpress-forums div.bbp-forum-title h3,#bbpress-forums div.bbp-reply-title h3,#bbpress-forums div.bbp-topic-title h3{font-size:12px}}
1
+ .entry-content .bbpress-wrapper a,.entry-content .bbpress-wrapper a:hover{-webkit-box-shadow:none;box-shadow:none}#bbpress-forums hr{margin:0 0 24px}#bbpress-forums{background:0 0;clear:both;margin-bottom:20px;overflow:hidden;font-size:12px}#bbpress-forums div.even,#bbpress-forums ul.even{background-color:#fff}#bbpress-forums div.odd,#bbpress-forums ul.odd{background-color:#fbfbfb}body.reply-edit .reply{float:none}#bbpress-forums div.reply{height:auto;width:100%}#bbpress-forums div.bbp-forum-header,#bbpress-forums div.bbp-reply-header,#bbpress-forums div.bbp-topic-header{background-color:#f4f4f4}#bbpress-forums .status-spam.even,#bbpress-forums .status-trash.even{background-color:#fee}#bbpress-forums .status-spam.odd,#bbpress-forums .status-trash.odd{background-color:#fdd}#bbpress-forums .status-pending.even,#bbpress-forums .status-pending.odd,#bbpress-forums ul.status-pending a{background-color:#fef7f1}#bbpress-forums ul.status-closed,#bbpress-forums ul.status-closed a{color:#ccc}#bbpress-forums ul{background:0 0;list-style:none;margin:0;padding:0}#bbpress-forums ul.bbp-threaded-replies{margin-left:50px}#bbpress-forums li{background:0 0;margin:0;list-style:none}#bbpress-forums ul.bbp-forums,#bbpress-forums ul.bbp-lead-topic,#bbpress-forums ul.bbp-replies,#bbpress-forums ul.bbp-search-results,#bbpress-forums ul.bbp-topics{font-size:12px;overflow:hidden;border:1px solid #eee;margin-bottom:20px;clear:both}#bbpress-forums li.bbp-body,#bbpress-forums li.bbp-footer,#bbpress-forums li.bbp-header{clear:both}#bbpress-forums li.bbp-footer,#bbpress-forums li.bbp-header{background:#f3f3f3;border-top:1px solid #eee;font-weight:700;padding:8px;text-align:center}#bbpress-forums li.bbp-header{background:#eaeaea}#bbpress-forums li.bbp-header ul{overflow:hidden}#bbpress-forums .bbp-forums-list{margin:0 0 0 5px;padding-left:15px;border-left:1px solid #ddd}#bbpress-forums .bbp-forums-list li{display:inline;font-size:11px}#bbpress-forums li.bbp-footer p{margin:0;line-height:1}li.bbp-forum-info,li.bbp-topic-title{float:left;text-align:left;width:55%}li.bbp-forum-reply-count,li.bbp-forum-topic-count,li.bbp-topic-reply-count,li.bbp-topic-voice-count{float:left;text-align:center;width:10%}li.bbp-forum-freshness,li.bbp-topic-freshness{text-align:center;float:left;width:22%}#bbpress-forums li.bbp-body ul.forum,#bbpress-forums li.bbp-body ul.topic{border-top:1px solid #eee;overflow:hidden;padding:8px}#bbpress-forums #favorite-toggle,#bbpress-forums #subscription-toggle{float:right}#bbpress-forums div.bbp-forum-title h3,#bbpress-forums div.bbp-reply-title h3,#bbpress-forums div.bbp-topic-title h3{background:0 0;border:none;font-size:16px;line-height:1;margin:8px 0;padding:0;text-transform:none}#bbpress-forums div.bbp-forum-author,#bbpress-forums div.bbp-reply-author,#bbpress-forums div.bbp-topic-author{float:left;text-align:center;width:115px}#bbpress-forums div.bbp-forum-author img.avatar,#bbpress-forums div.bbp-reply-author img.avatar,#bbpress-forums div.bbp-topic-author img.avatar{border:none;max-width:80px;padding:0;margin:12px auto 0;float:none}#bbpress-forums div.bbp-forum-author a.bbp-author-name,#bbpress-forums div.bbp-reply-author a.bbp-author-name,#bbpress-forums div.bbp-topic-author a.bbp-author-name{margin:0 12px;word-wrap:break-word;display:inline-block}#bbpress-forums div.bbp-reply-author a.bbp-author-name,#bbpress-forums div.bbp-topic-author a.bbp-author-name{clear:left;display:block}#bbpress-forums div.bbp-forum-author .bbp-author-role,#bbpress-forums div.bbp-reply-author .bbp-author-role,#bbpress-forums div.bbp-topic-author .bbp-author-role{font-size:11px;font-style:italic}#bbpress-forums li.bbp-footer .bbp-forum-author,#bbpress-forums li.bbp-footer .bbp-reply-author,#bbpress-forums li.bbp-footer .bbp-search-author,#bbpress-forums li.bbp-footer .bbp-topic-author,#bbpress-forums li.bbp-header .bbp-forum-author,#bbpress-forums li.bbp-header .bbp-reply-author,#bbpress-forums li.bbp-header .bbp-search-author,#bbpress-forums li.bbp-header .bbp-topic-author{float:left;margin:0;padding:0;width:120px}#bbpress-forums li.bbp-footer .bbp-forum-content,#bbpress-forums li.bbp-footer .bbp-reply-content,#bbpress-forums li.bbp-footer .bbp-search-content,#bbpress-forums li.bbp-footer .bbp-topic-content,#bbpress-forums li.bbp-header .bbp-forum-content,#bbpress-forums li.bbp-header .bbp-reply-content,#bbpress-forums li.bbp-header .bbp-search-content,#bbpress-forums li.bbp-header .bbp-topic-content{margin-left:140px;padding:0;text-align:left}div.bbp-forum-header,div.bbp-reply-header,div.bbp-topic-header,li.bbp-body div.hentry{margin:0;overflow:hidden;padding:8px}div.bbp-forum-header,div.bbp-reply-header,div.bbp-topic-header{border-top:1px solid #ddd;clear:both}span.bbp-author-ip{font-size:11px;font-weight:700;word-wrap:break-word;color:#aaa}#bbpress-forums div.bbp-forum-content,#bbpress-forums div.bbp-reply-content,#bbpress-forums div.bbp-topic-content{margin-left:130px;padding:12px 12px 12px 0;text-align:left}#bbpress-forums div.bbp-forum-content:after,#bbpress-forums div.bbp-reply-content:after,#bbpress-forums div.bbp-topic-content:after{clear:both;content:".";display:block;float:none;height:0;font-size:0;visibility:hidden}#bbpress-forums div.bbp-reply-content a,#bbpress-forums div.bbp-topic-content a{background:0 0;border:none;display:inline;font-weight:400;margin:0;padding:0}#bbpress-forums div.bbp-reply-content a.bbp-user-mention,#bbpress-forums div.bbp-topic-content a.bbp-user-mention{background:0 0;border:none;text-decoration:none;text-shadow:none;display:inline;font-weight:600;margin:0;padding:0}#bbpress-forums div.bbp-reply-content h1,#bbpress-forums div.bbp-reply-content h2,#bbpress-forums div.bbp-reply-content h3,#bbpress-forums div.bbp-reply-content h4,#bbpress-forums div.bbp-reply-content h5,#bbpress-forums div.bbp-reply-content h6,#bbpress-forums div.bbp-topic-content h1,#bbpress-forums div.bbp-topic-content h2,#bbpress-forums div.bbp-topic-content h3,#bbpress-forums div.bbp-topic-content h4,#bbpress-forums div.bbp-topic-content h5,#bbpress-forums div.bbp-topic-content h6{clear:none;line-height:1;margin:24px 0;padding:0}#bbpress-forums div.bbp-reply-content img,#bbpress-forums div.bbp-topic-content img{max-width:100%;height:auto}#bbpress-forums div.bbp-reply-content ol,#bbpress-forums div.bbp-reply-content ul,#bbpress-forums div.bbp-topic-content ol,#bbpress-forums div.bbp-topic-content ul{margin:0 15px 15px;padding:0}#bbpress-forums div.bbp-reply-content ul li,#bbpress-forums div.bbp-topic-content ul li{list-style-type:disc}#bbpress-forums div.bbp-reply-content ol li,#bbpress-forums div.bbp-topic-content ol li{list-style-type:decimal}#bbpress-forums div.bbp-reply-content ol li li,#bbpress-forums div.bbp-topic-content ol li li{list-style-type:lower-alpha}#bbpress-forums div.bbp-reply-content ol li li li,#bbpress-forums div.bbp-topic-content ol li li li{list-style-type:upper-roman}#bbpress-forums div.bbp-reply-content code,#bbpress-forums div.bbp-reply-content pre,#bbpress-forums div.bbp-topic-content code,#bbpress-forums div.bbp-topic-content pre{font-family:Inconsolata,Consolas,Monaco,"Lucida Console",monospace;display:inline-block;background-color:#f9f9f9;border:1px solid #ddd;padding:0 5px;max-width:95%;vertical-align:middle;margin-top:-3px;overflow-x:auto}#bbpress-forums div.bbp-reply-content pre,#bbpress-forums div.bbp-topic-content pre{display:block;line-height:18px;margin:0 0 24px;padding:5px 10px;white-space:pre;overflow:auto}#bbpress-forums div.bbp-reply-content pre code,#bbpress-forums div.bbp-topic-content pre code{display:block;border:none;padding:0;margin:0;background-color:transparent;overflow-wrap:normal;overflow:auto;max-width:100%}#bbpress-forums div.bbp-reply-to{margin-left:130px;padding:12px 12px 12px 0;text-align:right}#bbpress-forums div#bbp-cancel-reply-to{text-align:right}div.bbp-breadcrumb{float:left}div.bbp-breadcrumb,div.bbp-topic-tags{font-size:12px}#bbpress-forums div.bbp-breadcrumb p,#bbpress-forums div.bbp-topic-tags p{margin-bottom:10px}#bbpress-forums div.bbp-topic-tags{float:right;clear:both}#bbp-topic-hot-tags{clear:both}#bbpress-forums #bbp-search-form{clear:left}#bbpress-forums #bbp-search-form .hidden{height:0;width:0;overflow:hidden;position:absolute;background:0 0;left:-999em}#bbpress-forums #bbp-search-form #bbp_search{display:inline-block;width:auto}#bbpress-forums div.bbp-search-form{float:right}span.bbp-admin-links{float:right;color:#ddd}span.bbp-admin-links a{color:#bbb;font-weight:400;font-size:10px;text-transform:uppercase;text-decoration:none}fieldset span.bbp-admin-links{float:left}tr td span.bbp-admin-links a:hover{color:#ff4b33}td.bbp-topic-admin-links,td.bbp-topic-counts{width:50%}.bbp-forum-header a.bbp-forum-permalink,.bbp-reply-header a.bbp-reply-permalink,.bbp-topic-header a.bbp-topic-permalink{float:right;margin-left:10px;color:#ccc}.bbp-row-actions #favorite-toggle a{text-decoration:none;padding:0 3px 1px;color:#7c7;border:1px solid #aca;background-color:#dfd;font-weight:700;font-size:13px}.bbp-row-actions #favorite-toggle a:hover{color:#5a5;border-color:#7c7;background-color:#beb}.bbp-row-actions #favorite-toggle span.is-favorite a{color:#faa;border:1px solid #faa;background-color:#fee}.bbp-row-actions #favorite-toggle span.is-favorite a:hover{color:#c88;border-color:#c88;background-color:#fdd}.bbp-row-actions #subscription-toggle a{text-decoration:none;padding:0 3px 1px;color:#7c7;border:1px solid #aca;background-color:#dfd;font-weight:700;font-size:13px}.bbp-row-actions #subscription-toggle a:hover{color:#5a5;border-color:#7c7;background-color:#beb}.bbp-row-actions #subscription-toggle span.is-subscribed a{color:#faa;border:1px solid #faa;background-color:#fee}.bbp-row-actions #subscription-toggle span.is-subscribed a:hover{color:#c88;border-color:#c88;background-color:#fdd}#bbpress-forums .bbp-forum-info .bbp-forum-content,#bbpress-forums p.bbp-topic-meta{font-size:11px;margin:5px 0;padding:0;word-wrap:break-word}#bbpress-forums p.bbp-topic-meta span{white-space:nowrap}.bbp-pagination-count{float:left;border:1px solid transparent}.bbp-pagination-links{float:right;list-style:none;display:inline}.bbp-pagination-links a,.bbp-pagination-links span.current{display:block;float:left;padding:0 5px;margin-left:5px;border:1px solid #efefef;text-decoration:none}.bbp-pagination-links a:hover,.bbp-pagination-links span.current{background:#eee;opacity:.8;border:1px solid #ddd}.bbp-pagination-links span.dots{display:block;float:left;padding:1px 4px;margin-left:5px}.bbp-pagination{float:left;width:100%;margin-bottom:15px}.bbp-topic-pagination{display:inline-block;margin-left:5px;margin-bottom:2px}.bbp-topic-pagination a{font-size:10px;line-height:10px;padding:1px 3px;border:1px solid #ddd;text-decoration:none}#bbpress-forums fieldset.bbp-form{clear:left}#bbpress-forums fieldset.bbp-form{border:1px solid #eee;padding:10px 20px;margin-bottom:10px}#bbpress-forums fieldset.bbp-form legend{padding:5px}#bbpress-forums fieldset.bbp-form label{margin:0;display:inline-block}#bbp-edit-topic-tag.bbp-form fieldset.bbp-form label,#bbp-login fieldset label,#bbp-lost-pass fieldset label,#bbp-register fieldset label{width:100px}#bbpress-forums fieldset.bbp-form input,#bbpress-forums fieldset.bbp-form p,#bbpress-forums fieldset.bbp-form select,#bbpress-forums fieldset.bbp-form textarea{margin:0 0 8px}textarea#bbp_forum_content,textarea#bbp_reply_content,textarea#bbp_topic_content{width:97%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}textarea#bbp_forum_content{height:210px}#bbpress-forums fieldset.bbp-forum-form-attributes{width:200px;float:right;clear:none;margin-left:25px}#bbpress-forums fieldset select#bbp_forum_id{max-width:200px}.bbp-reply-form,.bbp-topic-form,.bbp-topic-tag-form{clear:left}body.reply-edit .bbp-reply-form div.avatar img,body.single-forum .bbp-topic-form div.avatar img,body.single-reply .bbp-reply-form div.avatar img,body.topic-edit .bbp-topic-form div.avatar img{margin-right:0;padding:10px;border:1px solid #ddd;line-height:0;background-color:#efefef}body.page .bbp-reply-form code,body.page .bbp-topic-form code,body.reply-edit .bbp-reply-form code,body.single-forum .bbp-topic-form code,body.single-topic .bbp-reply-form code,body.topic-edit .bbp-topic-form code{font-size:10px;background-color:#f0fff8;border:1px solid #ceefe1;display:block;padding:8px;margin-top:5px;width:369px}#delete_tag,#merge_tag{display:inline}div.bbp-submit-wrapper{margin-top:15px;float:right;clear:both}p.form-allowed-tags{max-width:100%}#bbpress-forums div.bbp-the-content-wrapper{margin-bottom:10px}#bbpress-forums div.bbp-the-content-wrapper textarea.bbp-the-content{width:100%;margin:0;font-size:12px}#bbpress-forums div.bbp-the-content-wrapper table,#bbpress-forums div.bbp-the-content-wrapper tbody,#bbpress-forums div.bbp-the-content-wrapper td,#bbpress-forums div.bbp-the-content-wrapper tr{border:none;padding:0;margin:0;width:auto;line-height:1}#bbpress-forums div.bbp-the-content-wrapper input{font-size:12px;padding:5px;margin:0 2px 0 0;line-height:1}#bbpress-forums div.bbp-the-content-wrapper div.quicktags-toolbar{padding:5px;min-height:26px}#bbpress-forums div.bbp-the-content-wrapper td.mceToolbar{padding:4px 4px 8px}#bbpress-forums div.wp-editor-container{margin:0;padding:0;line-height:0}#bbpress-forums div.bbp-the-content-wrapper td.mceStatusbar{line-height:16px}#bbpress-forums #bbp-your-profile fieldset{padding:20px 20px 0}#bbpress-forums #bbp-your-profile fieldset div{margin-bottom:20px;float:left;width:100%;clear:left}#bbpress-forums #bbp-your-profile fieldset select{margin-bottom:0}#bbpress-forums #bbp-your-profile fieldset input,#bbpress-forums #bbp-your-profile fieldset textarea{margin-bottom:0;width:60%;background:#f9f9f9;border:1px solid #ddd;-webkit-box-shadow:none;box-shadow:none;padding:5px 8px;-webkit-border-radius:0;border-radius:0}#bbpress-forums #bbp-your-profile fieldset input:focus,#bbpress-forums #bbp-your-profile fieldset textarea:focus{border:1px solid #ccc;-webkit-box-shadow:inset 1px 1px 1px rgba(0,0,0,.1);box-shadow:inset 1px 1px 1px rgba(0,0,0,.1);outline-color:rgba(240,255,240,.1)}#bbpress-forums #bbp-your-profile fieldset.bbp-form input.checkbox{width:auto}#bbpress-forums #bbp-your-profile fieldset legend{display:none}#bbpress-forums #bbp-your-profile fieldset label[for]{float:left;width:20%;padding:5px 20px 5px 0;text-align:right;cursor:pointer}#bbpress-forums #bbp-your-profile fieldset dl label[for]{text-align:left;width:60%}#bbpress-forums #bbp-your-profile fieldset span.description{margin:5px 0 0 20%;font-size:12px;font-style:italic;float:left;clear:left;width:60%;padding:5px 8px;border:#cee1ef 1px solid;background-color:#f0f8ff}#bbpress-forums #bbp-your-profile fieldset fieldset{margin:0;border:none;padding:0;clear:none;float:none}#bbpress-forums #bbp-your-profile fieldset fieldset.password{width:60%;display:inline}#bbpress-forums #bbp-your-profile fieldset fieldset.password input,#bbpress-forums #bbp-your-profile fieldset fieldset.password span{width:100%}#bbpress-forums #bbp-your-profile fieldset fieldset.capabilities dl{margin:0}#bbpress-forums #bbp-your-profile fieldset fieldset.password span.description{margin-left:0;margin-bottom:20px}#bbpress-forums #bbp-your-profile fieldset.submit button{float:right}div.bbp-template-notice,div.indicator-hint{border-width:1px;border-style:solid;padding:0 .6em;margin:5px 0 15px;-webkit-border-radius:3px;border-radius:3px;background-color:#ffffe0;border-color:#e6db55;color:#000;clear:both}div.bbp-template-notice a{color:#555;text-decoration:none}div.bbp-template-notice a:hover{color:#000}div.bbp-template-notice.info{border:#cee1ef 1px solid;background-color:#f0f8ff}div.bbp-template-notice.important{border:#e6db55 1px solid;background-color:#fffbcc}div.bbp-template-notice.error,div.bbp-template-notice.warning{background-color:#ffebe8;border-color:#c00}div.bbp-template-notice.error a,div.bbp-template-notice.warning a{color:#c00}div.bbp-template-notice li,div.bbp-template-notice p{margin:.5em 0 6px!important;padding:2px;font-size:12px;line-height:1.4}.bbp-forum-content ul.sticky,.bbp-topics ul.sticky,.bbp-topics ul.super-sticky,.bbp-topics-front ul.super-sticky{background-color:#ffffe0!important;font-size:1.1em}#bbpress-forums .bbp-reply-content ul.bbp-reply-revision-log,#bbpress-forums .bbp-reply-content ul.bbp-topic-revision-log,#bbpress-forums .bbp-topic-content ul.bbp-topic-revision-log{border-top:1px dotted #ddd;width:100%;margin:0;padding:8px 0 0;font-size:11px;color:#aaa}#bbpress-forums .bbp-reply-content ul.bbp-reply-revision-log li,#bbpress-forums .bbp-reply-content ul.bbp-topic-revision-log li,#bbpress-forums .bbp-topic-content ul.bbp-topic-revision-log li{list-style-type:none}.bbp-login-form fieldset legend{display:none}.bbp-login-form .bbp-email input,.bbp-login-form .bbp-password input,.bbp-login-form .bbp-username input{padding:5px}.bbp-login-form label{width:140px;display:inline-block}#sidebar .bbp-login-form label{width:70px}.bbp-login-form .bbp-email,.bbp-login-form .bbp-password,.bbp-login-form .bbp-remember-me,.bbp-login-form .bbp-submit-wrapper,.bbp-login-form .bbp-username{margin-top:10px}.bbp-login-form .bbp-submit-wrapper{text-align:right}.bbp-login-form .bbp-login-links a{float:left;clear:left}.bbp-logged-in img.avatar{float:left;margin:0 15px 0 0}.bbp-logged-in h4{font-weight:700;font-size:1.3em;clear:none;margin-bottom:10px}#bbpress-forums img.avatar{-webkit-box-shadow:none;box-shadow:none;display:inline-block}#bbpress-forums .widget_display_replies img.avatar,#bbpress-forums .widget_display_topics img.avatar,#bbpress-forums div.bbp-template-notice img.avatar,#bbpress-forums p.bbp-topic-meta img.avatar,#bbpress-forums ul.bbp-reply-revision-log img.avatar,#bbpress-forums ul.bbp-topic-revision-log img.avatar{float:none;vertical-align:middle;border:3px double #ddd}fieldset div.avatar{float:right}.activity-list li.bbp_reply_create .activity-content .activity-inner,.activity-list li.bbp_topic_create .activity-content .activity-inner{border-left:2px solid #eaeaea;margin-left:5px;padding-left:10px}#bbpress-forums h1{clear:none;font-size:1.8em;line-height:1;padding-bottom:10px}#bbpress-forums #bbp-user-wrapper{float:left;width:100%}#bbpress-forums .bbp-user-section{overflow:auto}#bbpress-forums #bbp-user-wrapper h2.entry-title{font-size:1.4em;margin:0;padding-bottom:10px;padding-top:0;clear:none}#bbpress-forums #bbp-user-wrapper fieldset.bbp-form,#bbpress-forums #bbp-user-wrapper ul.bbp-forums,#bbpress-forums #bbp-user-wrapper ul.bbp-lead-topic,#bbpress-forums #bbp-user-wrapper ul.bbp-replies,#bbpress-forums #bbp-user-wrapper ul.bbp-topics{clear:none}#bbpress-forums #bbp-single-user-details{margin:0;width:150px;float:left;overflow:hidden}#bbpress-forums #bbp-single-user-details #bbp-user-avatar{margin:0;width:150px}#bbpress-forums #bbp-single-user-details #bbp-user-avatar img.avatar{border:none;height:150px;padding:0;margin:0 0 20px;width:150px}#bbpress-forums #bbp-single-user-details #bbp-user-description{float:none;margin-left:180px}#bbpress-forums #bbp-single-user-details #bbp-user-navigation{float:none;margin:0}#bbpress-forums #bbp-single-user-details #bbp-user-navigation li{margin:0}#bbpress-forums #bbp-single-user-details #bbp-user-navigation a{padding:5px 8px;display:block;border:1px solid transparent;text-decoration:none}#bbpress-forums #bbp-single-user-details #bbp-user-navigation li.current a{background:#eee;opacity:.8}#bbpress-forums #bbp-user-body{margin-left:180px}body.my-account #bbpress-forums{border-top:none;padding-top:0;margin-bottom:0}#bbpress-forums dl.bbp-user-capabilities{display:inline-block;vertical-align:top}#bbpress-forums dl.bbp-user-capabilities dt{margin:0 0 10px;text-transform:capitalize}#bbpress-forums dl.bbp-user-capabilities dd{margin:0;padding:0}#bbpress-forums div.row-actions{font-size:11px;visibility:hidden}#bbpress-forums li:hover>div.row-actions{visibility:visible}.bbp-alert-outer{height:100%;width:100%;top:0;left:0;position:fixed;background-color:rgba(0,0,0,.2);z-index:99999}.bbp-alert-inner{width:350px;text-align:center;background:#fff;position:fixed;top:50%;left:50%;margin-top:-75px;margin-left:-185px;-webkit-border-radius:3px;border-radius:3px;border:1px solid #aaa;padding:15px 10px 10px}.bbp-alert-outer .bbp-alert-inner p{margin:10px 0}.bbp-alert-actions a{padding:5px 20px;text-decoration:none}@media only screen and (max-width:480px){#bbpress-forums div.bbp-topic-tags{clear:left;float:left}div.bbp-search-form button,div.bbp-search-form input{font-size:11px;padding:2px}li.bbp-forum-info,li.bbp-topic-title{width:45%}li.bbp-forum-reply-count,li.bbp-forum-topic-count,li.bbp-topic-reply-count,li.bbp-topic-voice-count{width:15%}span.bbp-reply-post-date,span.bbp-topic-post-date{float:left}span.bbp-admin-links{clear:left;float:left}#bbpress-forums .bbp-forums-list li{display:block;font-size:11px}#bbpress-forums .bbp-body div.bbp-reply-author,#bbpress-forums .bbp-body div.bbp-topic-author{margin:-15px 10px 10px;min-height:100px;padding-left:80px;position:relative;text-align:left;width:100%}#bbpress-forums div.bbp-reply-author a.bbp-author-name,#bbpress-forums div.bbp-topic-author a.bbp-author-name{clear:none;display:inline-block;margin-left:0;word-wrap:break-word}#bbpress-forums div.bbp-reply-author img.avatar,#bbpress-forums div.bbp-topic-author img.avatar{position:absolute;top:15px;left:0;width:60px;height:auto}#bbpress-forums div.bbp-reply-author .bbp-author-role,#bbpress-forums div.bbp-topic-author .bbp-author-role{font-size:12px;font-style:normal}#bbpress-forums .bbp-body div.bbp-reply-content,#bbpress-forums .bbp-body div.bbp-topic-content{clear:both;margin:10px;padding:0}#bbpress-forums div.bbp-reply-content p,#bbpress-forums div.bbp-topic-content p{margin-bottom:1em}div.bbp-submit-wrapper{float:left}#bbpress-forums fieldset.bbp-form{padding:0 10px 10px}#bbpress-forums #bbp-user-body{clear:both;margin-left:0;word-wrap:break-word}#bbpress-forums div.bbp-forum-title h3,#bbpress-forums div.bbp-reply-title h3,#bbpress-forums div.bbp-topic-title h3{font-size:14px}}@media only screen and (max-width:320px){#bbpress-forums div.bbp-search-form{margin-bottom:10px}#bbpress-forums li.bbp-body li.bbp-forum-info,#bbpress-forums li.bbp-body li.bbp-topic-title,#bbpress-forums li.bbp-header li.bbp-forum-info,#bbpress-forums li.bbp-header li.bbp-topic-title{width:100%}#bbpress-forums li.bbp-header li.bbp-forum-info,#bbpress-forums li.bbp-header li.bbp-topic-title{text-align:center;text-transform:uppercase}#bbpress-forums li.bbp-body li.bbp-forum-reply-count,#bbpress-forums li.bbp-body li.bbp-forum-topic-count,#bbpress-forums li.bbp-body li.bbp-topic-reply-count,#bbpress-forums li.bbp-body li.bbp-topic-voice-count,#bbpress-forums li.bbp-header li.bbp-forum-reply-count,#bbpress-forums li.bbp-header li.bbp-forum-topic-count,#bbpress-forums li.bbp-header li.bbp-topic-reply-count,#bbpress-forums li.bbp-header li.bbp-topic-voice-count{width:20%}#bbpress-forums li.bbp-body li.bbp-forum-freshness,#bbpress-forums li.bbp-body li.bbp-topic-freshness,#bbpress-forums li.bbp-header li.bbp-forum-freshness,#bbpress-forums li.bbp-header li.bbp-topic-freshness{width:58%}#bbpress-forums li.bbp-body li.bbp-forum-freshness,#bbpress-forums li.bbp-body li.bbp-forum-reply-count,#bbpress-forums li.bbp-body li.bbp-forum-topic-count,#bbpress-forums li.bbp-body li.bbp-topic-freshness,#bbpress-forums li.bbp-body li.bbp-topic-reply-count,#bbpress-forums li.bbp-body li.bbp-topic-voice-count{margin-top:7px}#bbpress-forums li.bbp-footer,#bbpress-forums li.bbp-header{font-size:10px}#bbpress-forums li.bbp-header div.bbp-reply-author,#bbpress-forums li.bbp-header div.bbp-search-author,#bbpress-forums li.bbp-header div.bbp-topic-author{text-align:left;width:25%}#bbpress-forums li.bbp-header div.bbp-reply-content,#bbpress-forums li.bbp-header div.bbp-search-content,#bbpress-forums li.bbp-header div.bbp-topic-content{margin-left:25%}#bbpress-forums div.bbp-template-notice img.avatar,#bbpress-forums p.bbp-topic-meta img.avatar{width:14px;height:auto}#bbpress-forums div.bbp-the-content-wrapper td.mceToolbar{padding:1px}#bbpress-forums div.bbp-the-content-wrapper td.mceToolbar td{width:20px;height:20px}#bbpress-forums div.wp-editor-container{width:100%;overflow:auto}#bbpress-forums input#bbp_topic_tags,#bbpress-forums input#bbp_topic_title{width:95%}#bbpress-forums div.bbp-forum-title h3,#bbpress-forums div.bbp-reply-title h3,#bbpress-forums div.bbp-topic-title h3{font-size:14px}}@media only screen and (max-width:240px){#bbpress-forums li.bbp-body li.bbp-forum-reply-count,#bbpress-forums li.bbp-body li.bbp-forum-topic-count,#bbpress-forums li.bbp-body li.bbp-topic-reply-count,#bbpress-forums li.bbp-body li.bbp-topic-voice-count,#bbpress-forums li.bbp-footer div.bbp-reply-author,#bbpress-forums li.bbp-footer div.bbp-search-author,#bbpress-forums li.bbp-footer div.bbp-topic-author,#bbpress-forums li.bbp-header li.bbp-forum-reply-count,#bbpress-forums li.bbp-header li.bbp-forum-topic-count,#bbpress-forums li.bbp-header li.bbp-topic-reply-count,#bbpress-forums li.bbp-header li.bbp-topic-voice-count{width:45%}#bbpress-forums li.bbp-body li.bbp-forum-freshness,#bbpress-forums li.bbp-body li.bbp-topic-freshness,#bbpress-forums li.bbp-header li.bbp-forum-freshness,#bbpress-forums li.bbp-header li.bbp-topic-freshness{clear:both;width:100%}#bbpress-forums li.bbp-header li.bbp-forum-freshness,#bbpress-forums li.bbp-header li.bbp-topic-freshness{text-align:center}#bbpress-forums li.bbp-body li.bbp-topic-freshness,#bbpress-forums li.bbp-header div.bbp-reply-author,#bbpress-forums li.bbp-header div.bbp-reply-content,#bbpress-forums li.bbp-header div.bbp-search-author,#bbpress-forums li.bbp-header div.bbp-search-content,#bbpress-forums li.bbp-header div.bbp-topic-author,#bbpress-forums li.bbp-header div.bbp-topic-content{margin-left:0;text-align:left}#bbpress-forums li.bbp-body li.bbp-topic-freshness p.bbp-topic-meta{display:inline-block}#bbpress-forums li.bbp-header{overflow:hidden}#bbpress-forums li.bbp-footer div.bbp-reply-content,#bbpress-forums li.bbp-footer div.bbp-search-content,#bbpress-forums li.bbp-footer div.bbp-topic-content{display:inline-block;margin-left:0}#bbpress-forums li.bbp-body div.bbp-reply-author,#bbpress-forums li.bbp-body div.bbp-topic-author{min-height:60px;padding-left:60px}#bbpress-forums div.bbp-reply-author img.avatar,#bbpress-forums div.bbp-topic-author img.avatar{width:40px;height:auto}#bbpress-forums div.bbp-forum-title h3,#bbpress-forums div.bbp-reply-title h3,#bbpress-forums div.bbp-topic-title h3{font-size:12px}}