Version Description
Download this release
Release Info
Developer | johnjamesjacoby |
Plugin | bbPress |
Version | 2.6-rc-6 |
Comparing to | |
See all releases |
Code changes from version 2.6-rc-5 to 2.6-rc-6
- bbpress.php +16 -9
- bbpress.pot +1094 -940
- includes/admin/actions.php +37 -12
- includes/admin/assets/css/admin-rtl.css +68 -54
- includes/admin/assets/css/admin-rtl.min.css +1 -1
- includes/admin/assets/css/admin.css +68 -54
- includes/admin/assets/css/admin.min.css +1 -1
- includes/admin/assets/js/converter.js +10 -1
- includes/admin/assets/js/converter.min.js +1 -1
- includes/admin/classes/class-bbp-admin.php +138 -39
- includes/admin/classes/class-bbp-converter-base.php +84 -67
- includes/admin/classes/class-bbp-converter-db.php +58 -0
- includes/admin/classes/class-bbp-converter.php +60 -12
- includes/admin/classes/class-bbp-topic-replies-list-table.php +25 -8
- includes/admin/common.php +7 -63
- includes/admin/converters/XenForo.php +1 -1
- includes/admin/converters/phpBB.php +2 -2
- includes/admin/converters/vBulletin.php +1 -1
- includes/admin/converters/vBulletin3.php +1 -1
- includes/admin/forums.php +95 -47
- includes/admin/metaboxes.php +7 -5
- includes/admin/replies.php +143 -76
- includes/admin/settings.php +59 -58
- includes/admin/styles/evergreen/colors-rtl.css +2 -4
- includes/admin/styles/evergreen/colors-rtl.min.css +1 -1
- includes/admin/styles/evergreen/colors.css +2 -4
- includes/admin/styles/evergreen/colors.min.css +1 -1
- includes/admin/styles/mint/colors-rtl.css +2 -4
- includes/admin/styles/mint/colors-rtl.min.css +1 -1
- includes/admin/styles/mint/colors.css +2 -4
- includes/admin/styles/mint/colors.min.css +1 -1
- includes/admin/tools.php +1 -1
- includes/admin/tools/common.php +5 -53
- includes/admin/tools/converter.php +48 -27
- includes/admin/tools/repair.php +3 -3
- includes/admin/tools/reset.php +117 -69
- includes/admin/topics.php +173 -97
- includes/admin/users.php +16 -4
- includes/common/ajax.php +48 -10
- includes/common/engagements.php +783 -0
- includes/common/formatting.php +5 -5
- includes/common/functions.php +421 -207
- includes/common/shortcodes.php +2 -2
- includes/common/template.php +13 -8
- includes/common/widgets.php +35 -31
- includes/core/abstraction.php +126 -2
- includes/core/actions.php +8 -11
- includes/core/capabilities.php +3 -3
- includes/core/filters.php +28 -14
- includes/core/options.php +105 -94
- includes/core/sub-actions.php +35 -0
- includes/core/template-functions.php +0 -12
- includes/core/theme-compat.php +8 -12
- includes/core/update.php +77 -10
- includes/extend/akismet.php +3 -5
- includes/extend/buddypress/activity.php +7 -5
- includes/extend/buddypress/functions.php +28 -26
- includes/extend/buddypress/groups.php +33 -30
- includes/extend/buddypress/loader.php +28 -16
- includes/extend/buddypress/members.php +93 -80
- includes/extend/buddypress/notifications.php +13 -12
- includes/forums/capabilities.php +24 -4
- includes/forums/functions.php +34 -30
- includes/forums/template.php +53 -52
- includes/replies/capabilities.php +33 -14
- includes/replies/functions.php +71 -38
- includes/replies/template.php +114 -56
- includes/search/template.php +8 -6
- includes/topics/capabilities.php +138 -15
- includes/topics/functions.php +72 -46
- includes/topics/template.php +102 -93
- includes/users/capabilities.php +10 -10
- includes/users/engagements.php +120 -198
- includes/users/functions.php +7 -7
- includes/users/options.php +3 -3
- includes/users/template.php +87 -76
- readme.txt +5 -2
- templates/default/bbpress-functions.php +1 -1
- templates/default/bbpress/form-forum.php +1 -1
- templates/default/bbpress/form-reply-move.php +1 -1
- templates/default/bbpress/form-reply.php +2 -2
- templates/default/bbpress/form-search.php +1 -1
- templates/default/bbpress/form-topic-merge.php +1 -1
- templates/default/bbpress/form-topic-split.php +1 -1
- templates/default/bbpress/form-topic-tag.php +3 -3
- templates/default/bbpress/form-topic.php +2 -2
- templates/default/bbpress/form-user-edit.php +1 -1
- templates/default/bbpress/form-user-login.php +1 -1
- templates/default/css/bbpress-rtl.css +38 -28
- templates/default/css/bbpress-rtl.min.css +1 -1
- templates/default/css/bbpress.css +38 -28
- templates/default/css/bbpress.min.css +1 -1
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
|
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-
|
21 |
* Text Domain: bbpress
|
22 |
* Domain Path: /languages/
|
23 |
* License: GPLv2 or later (license.txt)
|
@@ -30,7 +30,7 @@ if ( ! class_exists( 'bbPress' ) ) :
|
|
30 |
/**
|
31 |
* Main bbPress Class
|
32 |
*
|
33 |
-
* "
|
34 |
*
|
35 |
* @since 2.0.0 bbPress (r2464)
|
36 |
*/
|
@@ -203,7 +203,7 @@ final class bbPress {
|
|
203 |
|
204 |
/** Versions **********************************************************/
|
205 |
|
206 |
-
$this->version = '2.6-rc-
|
207 |
$this->db_version = '262';
|
208 |
|
209 |
/** Paths *************************************************************/
|
@@ -298,6 +298,10 @@ final class bbPress {
|
|
298 |
$this->extend = new stdClass(); // Plugins add data here
|
299 |
$this->errors = new WP_Error(); // Feedback
|
300 |
|
|
|
|
|
|
|
|
|
301 |
/** Deprecated ********************************************************/
|
302 |
|
303 |
$this->tab_index = apply_filters( 'bbp_default_tab_index', 100 );
|
@@ -330,6 +334,7 @@ final class bbPress {
|
|
330 |
// Common
|
331 |
require $this->includes_dir . 'common/ajax.php';
|
332 |
require $this->includes_dir . 'common/classes.php';
|
|
|
333 |
require $this->includes_dir . 'common/functions.php';
|
334 |
require $this->includes_dir . 'common/formatting.php';
|
335 |
require $this->includes_dir . 'common/locale.php';
|
@@ -508,7 +513,7 @@ final class bbPress {
|
|
508 |
'labels' => bbp_get_forum_post_type_labels(),
|
509 |
'rewrite' => bbp_get_forum_post_type_rewrite(),
|
510 |
'supports' => bbp_get_forum_post_type_supports(),
|
511 |
-
'description' =>
|
512 |
'capabilities' => bbp_get_forum_caps(),
|
513 |
'capability_type' => array( 'forum', 'forums' ),
|
514 |
'menu_position' => 555555,
|
@@ -534,7 +539,7 @@ final class bbPress {
|
|
534 |
'labels' => bbp_get_topic_post_type_labels(),
|
535 |
'rewrite' => bbp_get_topic_post_type_rewrite(),
|
536 |
'supports' => bbp_get_topic_post_type_supports(),
|
537 |
-
'description' =>
|
538 |
'capabilities' => bbp_get_topic_caps(),
|
539 |
'capability_type' => array( 'topic', 'topics' ),
|
540 |
'menu_position' => 555555,
|
@@ -560,7 +565,7 @@ final class bbPress {
|
|
560 |
'labels' => bbp_get_reply_post_type_labels(),
|
561 |
'rewrite' => bbp_get_reply_post_type_rewrite(),
|
562 |
'supports' => bbp_get_reply_post_type_supports(),
|
563 |
-
'description' =>
|
564 |
'capabilities' => bbp_get_reply_caps(),
|
565 |
'capability_type' => array( 'reply', 'replies' ),
|
566 |
'menu_position' => 555555,
|
@@ -704,7 +709,7 @@ final class bbPress {
|
|
704 |
// Popular topics
|
705 |
bbp_register_view(
|
706 |
'popular',
|
707 |
-
|
708 |
apply_filters( 'bbp_register_view_popular', array(
|
709 |
'meta_key' => '_bbp_reply_count',
|
710 |
'meta_type' => 'NUMERIC',
|
@@ -717,7 +722,7 @@ final class bbPress {
|
|
717 |
// Topics with no replies
|
718 |
bbp_register_view(
|
719 |
'no-replies',
|
720 |
-
|
721 |
apply_filters( 'bbp_register_view_no_replies', array(
|
722 |
'meta_key' => '_bbp_reply_count',
|
723 |
'meta_type' => 'NUMERIC',
|
@@ -997,6 +1002,8 @@ final class bbPress {
|
|
997 |
*
|
998 |
* Example: <?php $bbp = bbpress(); ?>
|
999 |
*
|
|
|
|
|
1000 |
* @return bbPress The one true bbPress Instance
|
1001 |
*/
|
1002 |
function bbpress() {
|
5 |
*
|
6 |
* bbPress is forum software with a twist from the creators of WordPress.
|
7 |
*
|
8 |
+
* $Id: bbpress.php 6854 2018-08-10 22:01:46Z 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-6
|
21 |
* Text Domain: bbpress
|
22 |
* Domain Path: /languages/
|
23 |
* License: GPLv2 or later (license.txt)
|
30 |
/**
|
31 |
* Main bbPress Class
|
32 |
*
|
33 |
+
* "Word hard. Stay bumble."
|
34 |
*
|
35 |
* @since 2.0.0 bbPress (r2464)
|
36 |
*/
|
203 |
|
204 |
/** Versions **********************************************************/
|
205 |
|
206 |
+
$this->version = '2.6-rc-6838';
|
207 |
$this->db_version = '262';
|
208 |
|
209 |
/** Paths *************************************************************/
|
298 |
$this->extend = new stdClass(); // Plugins add data here
|
299 |
$this->errors = new WP_Error(); // Feedback
|
300 |
|
301 |
+
/** Engagements *******************************************************/
|
302 |
+
|
303 |
+
$this->engagements = new BBP_User_Engagements_Meta(); // Meta strategy interface
|
304 |
+
|
305 |
/** Deprecated ********************************************************/
|
306 |
|
307 |
$this->tab_index = apply_filters( 'bbp_default_tab_index', 100 );
|
334 |
// Common
|
335 |
require $this->includes_dir . 'common/ajax.php';
|
336 |
require $this->includes_dir . 'common/classes.php';
|
337 |
+
require $this->includes_dir . 'common/engagements.php';
|
338 |
require $this->includes_dir . 'common/functions.php';
|
339 |
require $this->includes_dir . 'common/formatting.php';
|
340 |
require $this->includes_dir . 'common/locale.php';
|
513 |
'labels' => bbp_get_forum_post_type_labels(),
|
514 |
'rewrite' => bbp_get_forum_post_type_rewrite(),
|
515 |
'supports' => bbp_get_forum_post_type_supports(),
|
516 |
+
'description' => esc_html__( 'bbPress Forums', 'bbpress' ),
|
517 |
'capabilities' => bbp_get_forum_caps(),
|
518 |
'capability_type' => array( 'forum', 'forums' ),
|
519 |
'menu_position' => 555555,
|
539 |
'labels' => bbp_get_topic_post_type_labels(),
|
540 |
'rewrite' => bbp_get_topic_post_type_rewrite(),
|
541 |
'supports' => bbp_get_topic_post_type_supports(),
|
542 |
+
'description' => esc_html__( 'bbPress Topics', 'bbpress' ),
|
543 |
'capabilities' => bbp_get_topic_caps(),
|
544 |
'capability_type' => array( 'topic', 'topics' ),
|
545 |
'menu_position' => 555555,
|
565 |
'labels' => bbp_get_reply_post_type_labels(),
|
566 |
'rewrite' => bbp_get_reply_post_type_rewrite(),
|
567 |
'supports' => bbp_get_reply_post_type_supports(),
|
568 |
+
'description' => esc_html__( 'bbPress Replies', 'bbpress' ),
|
569 |
'capabilities' => bbp_get_reply_caps(),
|
570 |
'capability_type' => array( 'reply', 'replies' ),
|
571 |
'menu_position' => 555555,
|
709 |
// Popular topics
|
710 |
bbp_register_view(
|
711 |
'popular',
|
712 |
+
esc_html__( 'Most popular topics', 'bbpress' ),
|
713 |
apply_filters( 'bbp_register_view_popular', array(
|
714 |
'meta_key' => '_bbp_reply_count',
|
715 |
'meta_type' => 'NUMERIC',
|
722 |
// Topics with no replies
|
723 |
bbp_register_view(
|
724 |
'no-replies',
|
725 |
+
esc_html__( 'Topics with no replies', 'bbpress' ),
|
726 |
apply_filters( 'bbp_register_view_no_replies', array(
|
727 |
'meta_key' => '_bbp_reply_count',
|
728 |
'meta_type' => 'NUMERIC',
|
1002 |
*
|
1003 |
* Example: <?php $bbp = bbpress(); ?>
|
1004 |
*
|
1005 |
+
* @since 2.0.0 bbPress (r2464)
|
1006 |
+
*
|
1007 |
* @return bbPress The one true bbPress Instance
|
1008 |
*/
|
1009 |
function bbpress() {
|
bbpress.pot
CHANGED
@@ -1,66 +1,66 @@
|
|
1 |
-
# Copyright (C)
|
2 |
# This file is distributed under the GPLv2 or later (license.txt).
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
-
"Project-Id-Version: bbPress 2.6-rc-
|
6 |
"Report-Msgid-Bugs-To: https://bbpress.trac.wordpress.org\n"
|
7 |
-
"POT-Creation-Date:
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=utf-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
11 |
-
"PO-Revision-Date:
|
12 |
"Last-Translator: JOHN JAMES JACOBY <jjj@bbpress.org>\n"
|
13 |
"Language-Team: ENGLISH <jjj@bbpress.org>\n"
|
14 |
-
"X-Generator: grunt-wp-i18n1.0.
|
15 |
|
16 |
#: bbpress.php:144 bbpress.php:151
|
17 |
msgid "Cheatin’ huh?"
|
18 |
msgstr ""
|
19 |
|
20 |
-
#: bbpress.php:
|
21 |
msgid "bbPress Forums"
|
22 |
msgstr ""
|
23 |
|
24 |
-
#: bbpress.php:
|
25 |
msgid "bbPress Topics"
|
26 |
msgstr ""
|
27 |
|
28 |
-
#: bbpress.php:
|
29 |
msgid "bbPress Replies"
|
30 |
msgstr ""
|
31 |
|
32 |
-
#: bbpress.php:
|
33 |
msgid "Most popular topics"
|
34 |
msgstr ""
|
35 |
|
36 |
-
#: bbpress.php:
|
37 |
msgid "Topics with no replies"
|
38 |
msgstr ""
|
39 |
|
40 |
-
#: bbpress.php:
|
41 |
msgid "bbPress Item Count"
|
42 |
msgstr ""
|
43 |
|
44 |
-
#: includes/admin/actions.php:
|
45 |
#: includes/admin/settings.php:280 includes/admin/settings.php:301
|
46 |
-
#: includes/admin/tools/common.php:
|
47 |
#: includes/extend/buddypress/activity.php:197
|
48 |
-
#: includes/extend/buddypress/activity.php:
|
49 |
-
#: includes/forums/template.php:
|
50 |
#: includes/topics/template.php:48
|
51 |
#: templates/default/bbpress/content-statistics.php:30
|
52 |
#: templates/default/bbpress/loop-forums.php:21
|
53 |
msgid "Topics"
|
54 |
msgstr ""
|
55 |
|
56 |
-
#: includes/admin/actions.php:
|
57 |
-
#: includes/admin/forums.php:
|
58 |
-
#: includes/admin/settings.php:309 includes/admin/tools/common.php:
|
59 |
-
#: includes/admin/topics.php:
|
60 |
#: includes/core/theme-compat.php:694
|
61 |
#: includes/extend/buddypress/activity.php:207
|
62 |
-
#: includes/extend/buddypress/activity.php:
|
63 |
-
#: includes/forums/template.php:
|
64 |
#: includes/replies/template.php:50
|
65 |
#: templates/default/bbpress/content-statistics.php:35
|
66 |
#: templates/default/bbpress/loop-forums.php:23
|
@@ -70,18 +70,18 @@ msgstr ""
|
|
70 |
msgid "Replies"
|
71 |
msgstr ""
|
72 |
|
73 |
-
#: includes/admin/actions.php:
|
74 |
-
#: includes/admin/forums.php:
|
75 |
#: includes/admin/metaboxes.php:432 includes/admin/metaboxes.php:496
|
76 |
-
#: includes/admin/replies.php:
|
77 |
-
#: includes/admin/topics.php:
|
78 |
-
#: includes/extend/buddypress/groups.php:
|
79 |
#: templates/default/bbpress/loop-forums.php:20
|
80 |
msgid "Forum"
|
81 |
msgstr ""
|
82 |
|
83 |
-
#: includes/admin/actions.php:
|
84 |
-
#: includes/admin/metaboxes.php:523 includes/admin/replies.php:
|
85 |
#: includes/admin/settings.php:359 includes/topics/template.php:49
|
86 |
#: templates/default/bbpress/content-single-topic-lead.php:23
|
87 |
#: templates/default/bbpress/content-single-topic-lead.php:91
|
@@ -89,109 +89,109 @@ msgstr ""
|
|
89 |
msgid "Topic"
|
90 |
msgstr ""
|
91 |
|
92 |
-
#: includes/admin/classes/class-bbp-admin.php:
|
93 |
msgid "Go Upgrade"
|
94 |
msgstr ""
|
95 |
|
96 |
-
#: includes/admin/classes/class-bbp-admin.php:
|
97 |
msgid "Hide Forever"
|
98 |
msgstr ""
|
99 |
|
100 |
-
#: includes/admin/classes/class-bbp-admin.php:
|
101 |
msgid "bbPress requires a manual database upgrade. %s or %s"
|
102 |
msgstr ""
|
103 |
|
104 |
-
#: includes/admin/classes/class-bbp-admin.php:
|
105 |
-
#: includes/admin/classes/class-bbp-admin.php:
|
106 |
-
#: includes/admin/classes/class-bbp-admin.php:
|
107 |
-
#: includes/admin/classes/class-bbp-admin.php:
|
108 |
-
#: includes/admin/tools/common.php:
|
109 |
-
#: includes/admin/users.php:93 includes/common/widgets.php:
|
110 |
#: includes/extend/buddypress/loader.php:42
|
111 |
-
#: includes/extend/buddypress/loader.php:
|
112 |
-
#: includes/extend/buddypress/loader.php:
|
113 |
-
#: includes/extend/buddypress/loader.php:
|
114 |
-
#: includes/forums/template.php:49
|
115 |
#: templates/default/bbpress/content-statistics.php:25
|
116 |
#: templates/default/bbpress/user-profile.php:34
|
117 |
msgid "Forums"
|
118 |
msgstr ""
|
119 |
|
120 |
-
#: includes/admin/classes/class-bbp-admin.php:
|
121 |
-
#: includes/admin/classes/class-bbp-admin.php:
|
122 |
-
#: includes/admin/classes/class-bbp-admin.php:
|
123 |
-
#: includes/admin/classes/class-bbp-admin.php:
|
124 |
msgid "Welcome to bbPress"
|
125 |
msgstr ""
|
126 |
|
127 |
-
#: includes/admin/classes/class-bbp-admin.php:
|
128 |
-
#: includes/admin/classes/class-bbp-admin.php:
|
129 |
-
#: includes/admin/classes/class-bbp-admin.php:
|
130 |
-
#: includes/admin/classes/class-bbp-admin.php:
|
131 |
-
#: includes/admin/classes/class-bbp-admin.php:
|
132 |
-
#: includes/admin/classes/class-bbp-admin.php:
|
133 |
msgid "Update Forums"
|
134 |
msgstr ""
|
135 |
|
136 |
-
#: includes/admin/classes/class-bbp-admin.php:
|
137 |
msgid "Settings"
|
138 |
msgstr ""
|
139 |
|
140 |
-
#: includes/admin/classes/class-bbp-admin.php:
|
141 |
msgid "About"
|
142 |
msgstr ""
|
143 |
|
144 |
-
#: includes/admin/classes/class-bbp-admin.php:
|
145 |
-
#: includes/admin/classes/class-bbp-admin.php:
|
146 |
msgid "%s - %s"
|
147 |
msgstr ""
|
148 |
|
149 |
-
#: includes/admin/classes/class-bbp-admin.php:
|
150 |
msgid "Welcome to bbPress %s"
|
151 |
msgstr ""
|
152 |
|
153 |
-
#: includes/admin/classes/class-bbp-admin.php:
|
154 |
msgid ""
|
155 |
"bbPress is fun to use, contains no artificial colors or preservatives, and "
|
156 |
"is absolutely wonderful in every environment. Your community is going to "
|
157 |
"love using it."
|
158 |
msgstr ""
|
159 |
|
160 |
-
#: includes/admin/classes/class-bbp-admin.php:
|
161 |
-
#: includes/admin/classes/class-bbp-admin.php:
|
162 |
msgid "What’s New"
|
163 |
msgstr ""
|
164 |
|
165 |
-
#: includes/admin/classes/class-bbp-admin.php:
|
166 |
-
#: includes/admin/classes/class-bbp-admin.php:
|
167 |
msgid "Credits"
|
168 |
msgstr ""
|
169 |
|
170 |
-
#: includes/admin/classes/class-bbp-admin.php:
|
171 |
msgid "Forum Subscriptions"
|
172 |
msgstr ""
|
173 |
|
174 |
-
#: includes/admin/classes/class-bbp-admin.php:
|
175 |
msgid "Subscribe to Forums"
|
176 |
msgstr ""
|
177 |
|
178 |
-
#: includes/admin/classes/class-bbp-admin.php:
|
179 |
msgid "Now your users can subscribe to new topics in specific forums."
|
180 |
msgstr ""
|
181 |
|
182 |
-
#: includes/admin/classes/class-bbp-admin.php:
|
183 |
msgid "Manage Subscriptions"
|
184 |
msgstr ""
|
185 |
|
186 |
-
#: includes/admin/classes/class-bbp-admin.php:
|
187 |
msgid "Your users can manage all of their subscriptions in one convenient location."
|
188 |
msgstr ""
|
189 |
|
190 |
-
#: includes/admin/classes/class-bbp-admin.php:
|
191 |
msgid "Converters"
|
192 |
msgstr ""
|
193 |
|
194 |
-
#: includes/admin/classes/class-bbp-admin.php:
|
195 |
msgid ""
|
196 |
"We’re all abuzz about the hive of new importers, AEF, Drupal, FluxBB, "
|
197 |
"Kunena Forums for Joomla, MyBB, Phorum, PHPFox, PHPWind, PunBB, SMF, "
|
@@ -200,127 +200,127 @@ msgid ""
|
|
200 |
"now gone if you need to remove imported users."
|
201 |
msgstr ""
|
202 |
|
203 |
-
#: includes/admin/classes/class-bbp-admin.php:
|
204 |
msgid "Theme Compatibility"
|
205 |
msgstr ""
|
206 |
|
207 |
-
#: includes/admin/classes/class-bbp-admin.php:
|
208 |
msgid "Better handling of styles and scripts in the template stack."
|
209 |
msgstr ""
|
210 |
|
211 |
-
#: includes/admin/classes/class-bbp-admin.php:
|
212 |
msgid "Polyglot support"
|
213 |
msgstr ""
|
214 |
|
215 |
-
#: includes/admin/classes/class-bbp-admin.php:
|
216 |
msgid "bbPress fully supports automatic translation updates."
|
217 |
msgstr ""
|
218 |
|
219 |
-
#: includes/admin/classes/class-bbp-admin.php:
|
220 |
msgid "User capabilities"
|
221 |
msgstr ""
|
222 |
|
223 |
-
#: includes/admin/classes/class-bbp-admin.php:
|
224 |
msgid "Roles and capabilities have been swept through, cleaned up, and simplified."
|
225 |
msgstr ""
|
226 |
|
227 |
-
#: includes/admin/classes/class-bbp-admin.php:
|
228 |
-
#: includes/admin/classes/class-bbp-admin.php:
|
229 |
msgid "Go to Forum Settings"
|
230 |
msgstr ""
|
231 |
|
232 |
-
#: includes/admin/classes/class-bbp-admin.php:
|
233 |
msgid "bbPress is created by a worldwide swarm of busy, busy bees."
|
234 |
msgstr ""
|
235 |
|
236 |
-
#: includes/admin/classes/class-bbp-admin.php:
|
237 |
msgid "Project Leaders"
|
238 |
msgstr ""
|
239 |
|
240 |
-
#: includes/admin/classes/class-bbp-admin.php:
|
241 |
msgid "Founding Developer"
|
242 |
msgstr ""
|
243 |
|
244 |
-
#: includes/admin/classes/class-bbp-admin.php:
|
245 |
msgid "Lead Developer"
|
246 |
msgstr ""
|
247 |
|
248 |
-
#: includes/admin/classes/class-bbp-admin.php:
|
249 |
msgid "Feature Virtuoso"
|
250 |
msgstr ""
|
251 |
|
252 |
-
#: includes/admin/classes/class-bbp-admin.php:
|
253 |
msgid "Tool Maven"
|
254 |
msgstr ""
|
255 |
|
256 |
-
#: includes/admin/classes/class-bbp-admin.php:
|
257 |
msgid "Contributing Developers"
|
258 |
msgstr ""
|
259 |
|
260 |
-
#: includes/admin/classes/class-bbp-admin.php:
|
261 |
-
#: includes/admin/classes/class-bbp-admin.php:
|
262 |
msgid "Core Developer"
|
263 |
msgstr ""
|
264 |
|
265 |
-
#: includes/admin/classes/class-bbp-admin.php:
|
266 |
msgid "Project Emeriti"
|
267 |
msgstr ""
|
268 |
|
269 |
-
#: includes/admin/classes/class-bbp-admin.php:
|
270 |
msgid "Feature Developer"
|
271 |
msgstr ""
|
272 |
|
273 |
-
#: includes/admin/classes/class-bbp-admin.php:
|
274 |
msgid "Integration Testing"
|
275 |
msgstr ""
|
276 |
|
277 |
-
#: includes/admin/classes/class-bbp-admin.php:
|
278 |
msgid "Contributors to bbPress 2.6"
|
279 |
msgstr ""
|
280 |
|
281 |
-
#: includes/admin/classes/class-bbp-admin.php:
|
282 |
-
#: includes/admin/classes/class-bbp-admin.php:
|
283 |
msgid "Update Forum"
|
284 |
msgstr ""
|
285 |
|
286 |
-
#: includes/admin/classes/class-bbp-admin.php:
|
287 |
-
#: includes/admin/classes/class-bbp-admin.php:
|
288 |
msgid "All done!"
|
289 |
msgstr ""
|
290 |
|
291 |
-
#: includes/admin/classes/class-bbp-admin.php:
|
292 |
-
#: includes/admin/classes/class-bbp-admin.php:
|
293 |
msgid "Go Back"
|
294 |
msgstr ""
|
295 |
|
296 |
-
#: includes/admin/classes/class-bbp-admin.php:
|
297 |
msgid "You can update your forum through this page. Hit the link below to update."
|
298 |
msgstr ""
|
299 |
|
300 |
-
#: includes/admin/classes/class-bbp-admin.php:
|
301 |
msgid ""
|
302 |
"Warning! Problem updating %1$s. Your server may not be able to connect to "
|
303 |
"sites running on it. Error message: %2$s"
|
304 |
msgstr ""
|
305 |
|
306 |
-
#: includes/admin/classes/class-bbp-admin.php:
|
307 |
msgid ""
|
308 |
"If your browser doesn’t start loading the next page automatically, "
|
309 |
"click this link:"
|
310 |
msgstr ""
|
311 |
|
312 |
-
#: includes/admin/classes/class-bbp-admin.php:
|
313 |
msgid "Next Forums"
|
314 |
msgstr ""
|
315 |
|
316 |
-
#: includes/admin/classes/class-bbp-admin.php:
|
317 |
msgid ""
|
318 |
"You can update all the forums on your network through this page. It works "
|
319 |
"by calling the update script of each site automatically. Hit the link below "
|
320 |
"to update."
|
321 |
msgstr ""
|
322 |
|
323 |
-
#: includes/admin/classes/class-bbp-converter-base.php:
|
324 |
msgid "Database connection failed."
|
325 |
msgstr ""
|
326 |
|
@@ -377,228 +377,228 @@ msgstr ""
|
|
377 |
msgid "Next in %s seconds..."
|
378 |
msgstr ""
|
379 |
|
380 |
-
#: includes/admin/classes/class-bbp-converter.php:
|
381 |
msgid "Readying sync-table"
|
382 |
msgstr ""
|
383 |
|
384 |
-
#: includes/admin/classes/class-bbp-converter.php:
|
385 |
msgid "Sync-table ready"
|
386 |
msgstr ""
|
387 |
|
388 |
-
#: includes/admin/classes/class-bbp-converter.php:
|
389 |
-
msgid "Deleting previously converted data (%1$s through %2$s
|
390 |
msgstr ""
|
391 |
|
392 |
-
#: includes/admin/classes/class-bbp-converter.php:
|
393 |
msgid "Skipping sync-table clean-up"
|
394 |
msgstr ""
|
395 |
|
396 |
-
#: includes/admin/classes/class-bbp-converter.php:
|
397 |
msgid "No users to import"
|
398 |
msgstr ""
|
399 |
|
400 |
-
#: includes/admin/classes/class-bbp-converter.php:
|
401 |
msgid "All users imported"
|
402 |
msgstr ""
|
403 |
|
404 |
-
#: includes/admin/classes/class-bbp-converter.php:
|
405 |
msgid "Converting users (%1$s through %2$s of %3$s)"
|
406 |
msgstr ""
|
407 |
|
408 |
-
#: includes/admin/classes/class-bbp-converter.php:
|
409 |
msgid "Skipping user clean-up"
|
410 |
msgstr ""
|
411 |
|
412 |
-
#: includes/admin/classes/class-bbp-converter.php:
|
413 |
msgid "No passwords to clear"
|
414 |
msgstr ""
|
415 |
|
416 |
-
#: includes/admin/classes/class-bbp-converter.php:
|
417 |
msgid "All passwords cleared"
|
418 |
msgstr ""
|
419 |
|
420 |
-
#: includes/admin/classes/class-bbp-converter.php:
|
421 |
-
msgid "Delete default WordPress user passwords (%1$s through %2$s
|
422 |
msgstr ""
|
423 |
|
424 |
-
#: includes/admin/classes/class-bbp-converter.php:
|
425 |
msgid "Skipping password clean-up"
|
426 |
msgstr ""
|
427 |
|
428 |
-
#: includes/admin/classes/class-bbp-converter.php:
|
429 |
msgid "No forums to import"
|
430 |
msgstr ""
|
431 |
|
432 |
-
#: includes/admin/classes/class-bbp-converter.php:
|
433 |
msgid "All forums imported"
|
434 |
msgstr ""
|
435 |
|
436 |
-
#: includes/admin/classes/class-bbp-converter.php:
|
437 |
msgid "Converting forums (%1$s through %2$s of %3$s)"
|
438 |
msgstr ""
|
439 |
|
440 |
-
#: includes/admin/classes/class-bbp-converter.php:
|
441 |
msgid "No forum parents to import"
|
442 |
msgstr ""
|
443 |
|
444 |
-
#: includes/admin/classes/class-bbp-converter.php:
|
445 |
msgid "All forum parents imported"
|
446 |
msgstr ""
|
447 |
|
448 |
-
#: includes/admin/classes/class-bbp-converter.php:
|
449 |
msgid "Calculating forum hierarchy (%1$s through %2$s of %3$s)"
|
450 |
msgstr ""
|
451 |
|
452 |
-
#: includes/admin/classes/class-bbp-converter.php:
|
453 |
msgid "No forum subscriptions to import"
|
454 |
msgstr ""
|
455 |
|
456 |
-
#: includes/admin/classes/class-bbp-converter.php:
|
457 |
msgid "All forum subscriptions imported"
|
458 |
msgstr ""
|
459 |
|
460 |
-
#: includes/admin/classes/class-bbp-converter.php:
|
461 |
msgid "Converting forum subscriptions (%1$s through %2$s of %3$s)"
|
462 |
msgstr ""
|
463 |
|
464 |
-
#: includes/admin/classes/class-bbp-converter.php:
|
465 |
msgid "No topics to import"
|
466 |
msgstr ""
|
467 |
|
468 |
-
#: includes/admin/classes/class-bbp-converter.php:
|
469 |
msgid "All topics imported"
|
470 |
msgstr ""
|
471 |
|
472 |
-
#: includes/admin/classes/class-bbp-converter.php:
|
473 |
msgid "Converting topics (%1$s through %2$s of %3$s)"
|
474 |
msgstr ""
|
475 |
|
476 |
-
#: includes/admin/classes/class-bbp-converter.php:
|
477 |
msgid "No anonymous topic authors to import"
|
478 |
msgstr ""
|
479 |
|
480 |
-
#: includes/admin/classes/class-bbp-converter.php:
|
481 |
msgid "All anonymous topic authors imported"
|
482 |
msgstr ""
|
483 |
|
484 |
-
#: includes/admin/classes/class-bbp-converter.php:
|
485 |
msgid "Converting anonymous topic authors (%1$s through %2$s of %3$s)"
|
486 |
msgstr ""
|
487 |
|
488 |
-
#: includes/admin/classes/class-bbp-converter.php:
|
489 |
msgid "No stickies to import"
|
490 |
msgstr ""
|
491 |
|
492 |
-
#: includes/admin/classes/class-bbp-converter.php:
|
493 |
msgid "All stickies imported"
|
494 |
msgstr ""
|
495 |
|
496 |
-
#: includes/admin/classes/class-bbp-converter.php:
|
497 |
msgid "Calculating topic stickies (%1$s through %2$s of %3$s)"
|
498 |
msgstr ""
|
499 |
|
500 |
-
#: includes/admin/classes/class-bbp-converter.php:
|
501 |
msgid "No super stickies to import"
|
502 |
msgstr ""
|
503 |
|
504 |
-
#: includes/admin/classes/class-bbp-converter.php:
|
505 |
msgid "All super stickies imported"
|
506 |
msgstr ""
|
507 |
|
508 |
-
#: includes/admin/classes/class-bbp-converter.php:
|
509 |
msgid "Calculating topic super stickies (%1$s through %2$s of %3$s)"
|
510 |
msgstr ""
|
511 |
|
512 |
-
#: includes/admin/classes/class-bbp-converter.php:
|
513 |
msgid "No closed topics to import"
|
514 |
msgstr ""
|
515 |
|
516 |
-
#: includes/admin/classes/class-bbp-converter.php:
|
517 |
msgid "All closed topics imported"
|
518 |
msgstr ""
|
519 |
|
520 |
-
#: includes/admin/classes/class-bbp-converter.php:
|
521 |
msgid "Calculating closed topics (%1$s through %2$s of %3$s)"
|
522 |
msgstr ""
|
523 |
|
524 |
-
#: includes/admin/classes/class-bbp-converter.php:
|
525 |
msgid "No topic tags to import"
|
526 |
msgstr ""
|
527 |
|
528 |
-
#: includes/admin/classes/class-bbp-converter.php:
|
529 |
msgid "All topic tags imported"
|
530 |
msgstr ""
|
531 |
|
532 |
-
#: includes/admin/classes/class-bbp-converter.php:
|
533 |
msgid "Converting topic tags (%1$s through %2$s of %3$s)"
|
534 |
msgstr ""
|
535 |
|
536 |
-
#: includes/admin/classes/class-bbp-converter.php:
|
537 |
msgid "No topic subscriptions to import"
|
538 |
msgstr ""
|
539 |
|
540 |
-
#: includes/admin/classes/class-bbp-converter.php:
|
541 |
msgid "All topic subscriptions imported"
|
542 |
msgstr ""
|
543 |
|
544 |
-
#: includes/admin/classes/class-bbp-converter.php:
|
545 |
msgid "Converting topic subscriptions (%1$s through %2$s of %3$s)"
|
546 |
msgstr ""
|
547 |
|
548 |
-
#: includes/admin/classes/class-bbp-converter.php:
|
549 |
msgid "No favorites to import"
|
550 |
msgstr ""
|
551 |
|
552 |
-
#: includes/admin/classes/class-bbp-converter.php:
|
553 |
msgid "All favorites imported"
|
554 |
msgstr ""
|
555 |
|
556 |
-
#: includes/admin/classes/class-bbp-converter.php:
|
557 |
msgid "Converting favorites (%1$s through %2$s of %3$s)"
|
558 |
msgstr ""
|
559 |
|
560 |
-
#: includes/admin/classes/class-bbp-converter.php:
|
561 |
msgid "No replies to import"
|
562 |
msgstr ""
|
563 |
|
564 |
-
#: includes/admin/classes/class-bbp-converter.php:
|
565 |
msgid "All replies imported"
|
566 |
msgstr ""
|
567 |
|
568 |
-
#: includes/admin/classes/class-bbp-converter.php:
|
569 |
msgid "Converting replies (%1$s through %2$s of %3$s)"
|
570 |
msgstr ""
|
571 |
|
572 |
-
#: includes/admin/classes/class-bbp-converter.php:
|
573 |
msgid "No anonymous reply authors to import"
|
574 |
msgstr ""
|
575 |
|
576 |
-
#: includes/admin/classes/class-bbp-converter.php:
|
577 |
msgid "All anonymous reply authors imported"
|
578 |
msgstr ""
|
579 |
|
580 |
-
#: includes/admin/classes/class-bbp-converter.php:
|
581 |
msgid "Converting anonymous reply authors (%1$s through %2$s of %3$s)"
|
582 |
msgstr ""
|
583 |
|
584 |
-
#: includes/admin/classes/class-bbp-converter.php:
|
585 |
msgid "No threaded replies to import"
|
586 |
msgstr ""
|
587 |
|
588 |
-
#: includes/admin/classes/class-bbp-converter.php:
|
589 |
msgid "All threaded replies imported"
|
590 |
msgstr ""
|
591 |
|
592 |
-
#: includes/admin/classes/class-bbp-converter.php:
|
593 |
msgid "Calculating threaded replies parents (%1$s through %2$s of %3$s)"
|
594 |
msgstr ""
|
595 |
|
596 |
-
#: includes/admin/classes/class-bbp-converter.php:
|
597 |
msgid "Import Finished"
|
598 |
msgstr ""
|
599 |
|
600 |
-
#: includes/admin/classes/class-bbp-topic-replies-list-table.php:
|
601 |
-
#: includes/admin/replies.php:
|
602 |
#: templates/default/bbpress/loop-replies.php:18
|
603 |
#: templates/default/bbpress/loop-replies.php:44
|
604 |
#: templates/default/bbpress/loop-search.php:19
|
@@ -606,52 +606,52 @@ msgstr ""
|
|
606 |
msgid "Author"
|
607 |
msgstr ""
|
608 |
|
609 |
-
#: includes/admin/classes/class-bbp-topic-replies-list-table.php:
|
610 |
msgid "Content"
|
611 |
msgstr ""
|
612 |
|
613 |
-
#: includes/admin/classes/class-bbp-topic-replies-list-table.php:
|
614 |
msgid "Replied"
|
615 |
msgstr ""
|
616 |
|
617 |
-
#: includes/admin/classes/class-bbp-topic-replies-list-table.php:
|
618 |
msgid "Unapprove"
|
619 |
msgstr ""
|
620 |
|
621 |
-
#: includes/admin/classes/class-bbp-topic-replies-list-table.php:
|
622 |
-
#: includes/admin/replies.php:
|
623 |
-
#: includes/admin/topics.php:
|
624 |
-
#: includes/replies/template.php:
|
625 |
msgid "Spam"
|
626 |
msgstr ""
|
627 |
|
628 |
-
#: includes/admin/classes/class-bbp-topic-replies-list-table.php:
|
629 |
-
#: includes/admin/replies.php:
|
630 |
-
#: includes/replies/template.php:
|
631 |
msgid "Trash"
|
632 |
msgstr ""
|
633 |
|
634 |
-
#: includes/admin/classes/class-bbp-topic-replies-list-table.php:
|
635 |
-
#: includes/admin/replies.php:
|
636 |
-
#: includes/admin/topics.php:
|
637 |
msgid "View"
|
638 |
msgstr ""
|
639 |
|
640 |
-
#: includes/admin/classes/class-bbp-topic-replies-list-table.php:
|
641 |
-
#: includes/common/template.php:
|
642 |
-
#: includes/replies/template.php:55 includes/replies/template.php:
|
643 |
-
#: includes/topics/template.php:53 includes/topics/template.php:
|
644 |
#: templates/default/bbpress/user-details.php:74
|
645 |
msgid "Edit"
|
646 |
msgstr ""
|
647 |
|
648 |
-
#: includes/admin/classes/class-bbp-topic-replies-list-table.php:
|
649 |
msgid "No replies to this topic."
|
650 |
msgstr ""
|
651 |
|
652 |
-
#: includes/admin/forums.php:101 includes/admin/replies.php:
|
653 |
-
#: includes/admin/settings.php:
|
654 |
-
#: includes/admin/topics.php:
|
655 |
msgid "Overview"
|
656 |
msgstr ""
|
657 |
|
@@ -661,13 +661,13 @@ msgid ""
|
|
661 |
"the display of this screen to suit your workflow."
|
662 |
msgstr ""
|
663 |
|
664 |
-
#: includes/admin/forums.php:109 includes/admin/replies.php:
|
665 |
-
#: includes/admin/topics.php:
|
666 |
msgid "Screen Content"
|
667 |
msgstr ""
|
668 |
|
669 |
-
#: includes/admin/forums.php:111 includes/admin/replies.php:
|
670 |
-
#: includes/admin/topics.php:
|
671 |
msgid ""
|
672 |
"You can customize the display of this screen’s contents in a number "
|
673 |
"of ways:"
|
@@ -694,8 +694,8 @@ msgid ""
|
|
694 |
"forum creator in the forums list."
|
695 |
msgstr ""
|
696 |
|
697 |
-
#: includes/admin/forums.php:122 includes/admin/replies.php:
|
698 |
-
#: includes/admin/topics.php:
|
699 |
msgid "Available Actions"
|
700 |
msgstr ""
|
701 |
|
@@ -713,67 +713,73 @@ msgstr ""
|
|
713 |
|
714 |
#: includes/admin/forums.php:127
|
715 |
msgid ""
|
|
|
|
|
|
|
|
|
|
|
|
|
716 |
"<strong>Trash</strong> removes your forum from this list and places it in "
|
717 |
"the trash, from which you can permanently delete it."
|
718 |
msgstr ""
|
719 |
|
720 |
-
#: includes/admin/forums.php:
|
721 |
msgid ""
|
722 |
-
"<strong>View</strong> will show you what your draft forum will look
|
723 |
-
"you publish it
|
724 |
-
"
|
725 |
msgstr ""
|
726 |
|
727 |
-
#: includes/admin/forums.php:
|
728 |
#: includes/admin/tools/repair.php:47 includes/admin/tools/repair.php:149
|
729 |
#: includes/admin/tools/upgrade.php:44 includes/admin/tools/upgrade.php:146
|
730 |
-
#: includes/admin/topics.php:
|
731 |
msgid "Bulk Actions"
|
732 |
msgstr ""
|
733 |
|
734 |
-
#: includes/admin/forums.php:
|
735 |
msgid ""
|
736 |
"You can also edit or move multiple forums to the trash at once. Select the "
|
737 |
"forums you want to act on using the checkboxes, then select the action you "
|
738 |
"want to take from the Bulk Actions menu and click Apply."
|
739 |
msgstr ""
|
740 |
|
741 |
-
#: includes/admin/forums.php:
|
742 |
msgid ""
|
743 |
"When using Bulk Edit, you can change the metadata (categories, author, "
|
744 |
"etc.) for all selected forums at once. To remove a forum from the grouping, "
|
745 |
"just click the x next to its name in the Bulk Edit area that appears."
|
746 |
msgstr ""
|
747 |
|
748 |
-
#: includes/admin/forums.php:
|
749 |
-
#: includes/admin/replies.php:
|
750 |
-
#: includes/admin/settings.php:
|
751 |
#: includes/admin/tools/help.php:72 includes/admin/tools/help.php:130
|
752 |
-
#: includes/admin/topics.php:
|
753 |
msgid "For more information:"
|
754 |
msgstr ""
|
755 |
|
756 |
-
#: includes/admin/forums.php:
|
757 |
-
#: includes/admin/replies.php:
|
758 |
-
#: includes/admin/settings.php:
|
759 |
#: includes/admin/tools/help.php:73 includes/admin/tools/help.php:131
|
760 |
-
#: includes/admin/topics.php:
|
761 |
msgid ""
|
762 |
"<a href=\"https://codex.bbpress.org\" target=\"_blank\">bbPress "
|
763 |
"Documentation</a>"
|
764 |
msgstr ""
|
765 |
|
766 |
-
#: includes/admin/forums.php:
|
767 |
-
#: includes/admin/replies.php:
|
768 |
-
#: includes/admin/settings.php:
|
769 |
#: includes/admin/tools/help.php:74 includes/admin/tools/help.php:132
|
770 |
-
#: includes/admin/topics.php:
|
771 |
msgid ""
|
772 |
"<a href=\"https://bbpress.org/forums/\" target=\"_blank\">bbPress Support "
|
773 |
"Forums</a>"
|
774 |
msgstr ""
|
775 |
|
776 |
-
#: includes/admin/forums.php:
|
777 |
msgid ""
|
778 |
"The title field and the big forum editing Area are fixed in place, but you "
|
779 |
"can reposition all the other boxes using drag and drop, and can minimize or "
|
@@ -783,22 +789,22 @@ msgid ""
|
|
783 |
"screen."
|
784 |
msgstr ""
|
785 |
|
786 |
-
#: includes/admin/forums.php:
|
787 |
-
#: includes/admin/topics.php:
|
788 |
msgid "Customizing This Display"
|
789 |
msgstr ""
|
790 |
|
791 |
-
#: includes/admin/forums.php:
|
792 |
msgid "Title and Forum Editor"
|
793 |
msgstr ""
|
794 |
|
795 |
-
#: includes/admin/forums.php:
|
796 |
msgid ""
|
797 |
"<strong>Title</strong> - Enter a title for your forum. After you enter a "
|
798 |
"title, you’ll see the permalink below, which you can edit."
|
799 |
msgstr ""
|
800 |
|
801 |
-
#: includes/admin/forums.php:
|
802 |
msgid ""
|
803 |
"<strong>Forum Editor</strong> - Enter the text for your forum. There are "
|
804 |
"two modes of editing: Visual and HTML. Choose the mode by clicking on the "
|
@@ -813,7 +819,7 @@ msgid ""
|
|
813 |
"editor."
|
814 |
msgstr ""
|
815 |
|
816 |
-
#: includes/admin/forums.php:
|
817 |
msgid ""
|
818 |
"<strong>Publish</strong> - You can set the terms of publishing your forum "
|
819 |
"in the Publish box. For Status, Visibility, and Publish (immediately), "
|
@@ -824,7 +830,7 @@ msgid ""
|
|
824 |
"future or backdate a forum."
|
825 |
msgstr ""
|
826 |
|
827 |
-
#: includes/admin/forums.php:
|
828 |
msgid ""
|
829 |
"<strong>Featured Image</strong> - This allows you to associate an image "
|
830 |
"with your forum without inserting it. This is usually useful only if your "
|
@@ -832,173 +838,174 @@ msgid ""
|
|
832 |
"page, a custom header, etc."
|
833 |
msgstr ""
|
834 |
|
835 |
-
#: includes/admin/forums.php:
|
|
|
836 |
msgid "Forum Attributes"
|
837 |
msgstr ""
|
838 |
|
839 |
-
#: includes/admin/forums.php:
|
840 |
msgid "Select the attributes that your forum should have:"
|
841 |
msgstr ""
|
842 |
|
843 |
-
#: includes/admin/forums.php:
|
844 |
msgid ""
|
845 |
"<strong>Type</strong> indicates if the forum is a category or forum. "
|
846 |
"Categories generally contain other forums."
|
847 |
msgstr ""
|
848 |
|
849 |
-
#: includes/admin/forums.php:
|
850 |
msgid ""
|
851 |
"<strong>Status</strong> allows you to close a forum to new topics and "
|
852 |
"forums."
|
853 |
msgstr ""
|
854 |
|
855 |
-
#: includes/admin/forums.php:
|
856 |
msgid ""
|
857 |
"<strong>Visibility</strong> lets you pick the scope of each forum and what "
|
858 |
"users are allowed to access it."
|
859 |
msgstr ""
|
860 |
|
861 |
-
#: includes/admin/forums.php:
|
862 |
msgid ""
|
863 |
"<strong>Parent</strong> dropdown determines the parent forum. Select the "
|
864 |
"forum or category from the dropdown, or leave the default \"No parent\" to "
|
865 |
"create the forum at the root of your forums."
|
866 |
msgstr ""
|
867 |
|
868 |
-
#: includes/admin/forums.php:
|
869 |
msgid "<strong>Order</strong> allows you to order your forums numerically."
|
870 |
msgstr ""
|
871 |
|
872 |
-
#: includes/admin/forums.php:
|
873 |
-
#: includes/admin/topics.php:
|
874 |
msgid "Publish Box"
|
875 |
msgstr ""
|
876 |
|
877 |
-
#: includes/admin/forums.php:
|
878 |
#: includes/admin/tools/reset.php:41
|
879 |
msgid "Forum Moderators"
|
880 |
msgstr ""
|
881 |
|
882 |
-
#: includes/admin/forums.php:
|
883 |
-
#: includes/admin/settings.php:436 includes/admin/tools/common.php:
|
884 |
-
#: includes/admin/topics.php:
|
885 |
#: templates/default/bbpress/user-details.php:67
|
886 |
msgid "Subscriptions"
|
887 |
msgstr ""
|
888 |
|
889 |
-
#: includes/admin/forums.php:
|
890 |
msgid "The forum was not found."
|
891 |
msgstr ""
|
892 |
|
893 |
-
#: includes/admin/forums.php:
|
894 |
-
#: includes/admin/topics.php:
|
895 |
msgid "You do not have permission to do that."
|
896 |
msgstr ""
|
897 |
|
898 |
-
#: includes/admin/forums.php:
|
899 |
msgid "There was a problem opening the forum \"%1$s\"."
|
900 |
msgstr ""
|
901 |
|
902 |
-
#: includes/admin/forums.php:
|
903 |
msgid "Forum \"%1$s\" successfully opened."
|
904 |
msgstr ""
|
905 |
|
906 |
-
#: includes/admin/forums.php:
|
907 |
msgid "There was a problem closing the forum \"%1$s\"."
|
908 |
msgstr ""
|
909 |
|
910 |
-
#: includes/admin/forums.php:
|
911 |
msgid "Forum \"%1$s\" successfully closed."
|
912 |
msgstr ""
|
913 |
|
914 |
-
#: includes/admin/forums.php:
|
915 |
msgid "Moderators"
|
916 |
msgstr ""
|
917 |
|
918 |
-
#: includes/admin/forums.php:
|
919 |
#: templates/default/bbpress/content-single-topic-lead.php:19
|
920 |
#: templates/default/bbpress/content-single-topic-lead.php:87
|
921 |
msgid "Creator"
|
922 |
msgstr ""
|
923 |
|
924 |
-
#: includes/admin/forums.php:
|
925 |
-
#: includes/admin/topics.php:
|
926 |
msgid "Created"
|
927 |
msgstr ""
|
928 |
|
929 |
-
#: includes/admin/forums.php:
|
930 |
#: templates/default/bbpress/loop-forums.php:26
|
931 |
#: templates/default/bbpress/loop-topics.php:24
|
932 |
msgid "Last Post"
|
933 |
msgstr ""
|
934 |
|
935 |
-
#: includes/admin/forums.php:
|
936 |
msgid "—"
|
937 |
msgstr ""
|
938 |
|
939 |
-
#: includes/admin/forums.php:
|
940 |
msgid "No Topics"
|
941 |
msgstr ""
|
942 |
|
943 |
-
#: includes/admin/forums.php:
|
944 |
msgid "Close this forum"
|
945 |
msgstr ""
|
946 |
|
947 |
-
#: includes/admin/forums.php:
|
948 |
msgid "Open this forum"
|
949 |
msgstr ""
|
950 |
|
951 |
-
#: includes/admin/forums.php:
|
952 |
msgid "Forum updated."
|
953 |
msgstr ""
|
954 |
|
955 |
-
#: includes/admin/forums.php:
|
956 |
msgid "View forum"
|
957 |
msgstr ""
|
958 |
|
959 |
-
#: includes/admin/forums.php:
|
960 |
-
#: includes/admin/topics.php:
|
961 |
msgid "Custom field updated."
|
962 |
msgstr ""
|
963 |
|
964 |
-
#: includes/admin/forums.php:
|
965 |
-
#: includes/admin/topics.php:
|
966 |
msgid "Custom field deleted."
|
967 |
msgstr ""
|
968 |
|
969 |
-
#: includes/admin/forums.php:
|
970 |
#. translators: %s: date and time of the revision
|
971 |
msgid "Forum restored to revision from %s"
|
972 |
msgstr ""
|
973 |
|
974 |
-
#: includes/admin/forums.php:
|
975 |
msgid "Forum created."
|
976 |
msgstr ""
|
977 |
|
978 |
-
#: includes/admin/forums.php:
|
979 |
msgid "Forum saved."
|
980 |
msgstr ""
|
981 |
|
982 |
-
#: includes/admin/forums.php:
|
983 |
msgid "Forum submitted."
|
984 |
msgstr ""
|
985 |
|
986 |
-
#: includes/admin/forums.php:
|
987 |
-
#: includes/admin/forums.php:
|
988 |
msgid "Preview forum"
|
989 |
msgstr ""
|
990 |
|
991 |
-
#: includes/admin/forums.php:
|
992 |
msgid "Forum scheduled for: %s."
|
993 |
msgstr ""
|
994 |
|
995 |
-
#: includes/admin/forums.php:
|
996 |
-
#: includes/admin/topics.php:
|
997 |
#. translators: Publish box date format, see http:php.net/date
|
998 |
msgid "M j, Y @ G:i"
|
999 |
msgstr ""
|
1000 |
|
1001 |
-
#: includes/admin/forums.php:
|
1002 |
msgid "Forum draft updated."
|
1003 |
msgstr ""
|
1004 |
|
@@ -1043,7 +1050,7 @@ msgstr[0] ""
|
|
1043 |
msgstr[1] ""
|
1044 |
|
1045 |
#: includes/admin/metaboxes.php:166 includes/admin/settings.php:367
|
1046 |
-
#: includes/topics/template.php:
|
1047 |
msgid "Topic Tag"
|
1048 |
msgid_plural "Topic Tags"
|
1049 |
msgstr[0] ""
|
@@ -1127,13 +1134,13 @@ msgid "Select whether to open or close the topic."
|
|
1127 |
msgstr ""
|
1128 |
|
1129 |
#: includes/admin/metaboxes.php:431 includes/admin/metaboxes.php:495
|
1130 |
-
#: includes/extend/buddypress/groups.php:
|
1131 |
#: templates/default/bbpress/form-topic.php:124
|
1132 |
#: templates/default/bbpress/loop-search-forum.php:25
|
1133 |
msgid "Forum:"
|
1134 |
msgstr ""
|
1135 |
|
1136 |
-
#: includes/admin/metaboxes.php:445 includes/extend/buddypress/groups.php:
|
1137 |
#: templates/default/bbpress/form-topic.php:127
|
1138 |
msgid "— No forum —"
|
1139 |
msgstr ""
|
@@ -1146,7 +1153,7 @@ msgstr ""
|
|
1146 |
msgid "— No reply —"
|
1147 |
msgstr ""
|
1148 |
|
1149 |
-
#: includes/admin/metaboxes.php:522
|
1150 |
#: templates/default/bbpress/loop-search-topic.php:25
|
1151 |
msgid "Topic:"
|
1152 |
msgstr ""
|
@@ -1219,87 +1226,87 @@ msgstr ""
|
|
1219 |
msgid "No users have favorited this topic."
|
1220 |
msgstr ""
|
1221 |
|
1222 |
-
#: includes/admin/metaboxes.php:
|
1223 |
msgid "No users have subscribed to this topic."
|
1224 |
msgstr ""
|
1225 |
|
1226 |
-
#: includes/admin/metaboxes.php:
|
1227 |
msgid "No users have subscribed to this forum."
|
1228 |
msgstr ""
|
1229 |
|
1230 |
-
#: includes/admin/replies.php:
|
1231 |
msgid ""
|
1232 |
"This screen provides access to all of your replies. You can customize the "
|
1233 |
"display of this screen to suit your workflow."
|
1234 |
msgstr ""
|
1235 |
|
1236 |
-
#: includes/admin/replies.php:
|
1237 |
msgid ""
|
1238 |
"You can hide/display columns based on your needs and decide how many "
|
1239 |
"replies to list per screen using the Screen Options tab."
|
1240 |
msgstr ""
|
1241 |
|
1242 |
-
#: includes/admin/replies.php:
|
1243 |
msgid ""
|
1244 |
"You can filter the list of replies by reply status using the text links in "
|
1245 |
"the upper left to show All, Published, Draft, Pending, Trashed, or Spam "
|
1246 |
"replies. The default view is to show all replies."
|
1247 |
msgstr ""
|
1248 |
|
1249 |
-
#: includes/admin/replies.php:
|
1250 |
msgid ""
|
1251 |
"You can view replies in a simple title list or with an excerpt. Choose the "
|
1252 |
"view you prefer by clicking on the icons at the top of the list on the "
|
1253 |
"right."
|
1254 |
msgstr ""
|
1255 |
|
1256 |
-
#: includes/admin/replies.php:
|
1257 |
msgid ""
|
1258 |
"You can refine the list to show only replies in a specific forum or from a "
|
1259 |
"specific month by using the dropdown menus above the replies list. Click "
|
1260 |
"the Filter button after making your selection."
|
1261 |
msgstr ""
|
1262 |
|
1263 |
-
#: includes/admin/replies.php:
|
1264 |
msgid ""
|
1265 |
"Hovering over a row in the replies list will display action links that "
|
1266 |
"allow you to manage your reply. You can perform the following actions:"
|
1267 |
msgstr ""
|
1268 |
|
1269 |
-
#: includes/admin/replies.php:
|
1270 |
msgid ""
|
1271 |
"<strong>Edit</strong> takes you to the editing screen for that reply. You "
|
1272 |
"can also reach that screen by clicking on the reply title."
|
1273 |
msgstr ""
|
1274 |
|
1275 |
-
#: includes/admin/replies.php:
|
1276 |
msgid ""
|
1277 |
"<strong>Trash</strong> removes your reply from this list and places it in "
|
1278 |
"the trash, from which you can permanently delete it."
|
1279 |
msgstr ""
|
1280 |
|
1281 |
-
#: includes/admin/replies.php:
|
1282 |
msgid ""
|
1283 |
"<strong>Spam</strong> removes your reply from this list and places it in "
|
1284 |
"the spam queue, from which you can permanently delete it."
|
1285 |
msgstr ""
|
1286 |
|
1287 |
-
#: includes/admin/replies.php:
|
1288 |
msgid "<strong>View</strong> will take you to your live site to view the reply."
|
1289 |
msgstr ""
|
1290 |
|
1291 |
-
#: includes/admin/replies.php:
|
1292 |
msgid "<strong>Approve</strong> will change the status from pending to publish."
|
1293 |
msgstr ""
|
1294 |
|
1295 |
-
#: includes/admin/replies.php:
|
1296 |
msgid ""
|
1297 |
"You can also edit, spam, or move multiple replies to the trash at once. "
|
1298 |
"Select the replies you want to act on using the checkboxes, then select the "
|
1299 |
"action you want to take from the Bulk Actions menu and click Apply."
|
1300 |
msgstr ""
|
1301 |
|
1302 |
-
#: includes/admin/replies.php:
|
1303 |
msgid ""
|
1304 |
"When using Bulk Edit, you can change the metadata (categories, author, "
|
1305 |
"etc.) for all selected replies at once. To remove a reply from the "
|
@@ -1307,7 +1314,7 @@ msgid ""
|
|
1307 |
"appears."
|
1308 |
msgstr ""
|
1309 |
|
1310 |
-
#: includes/admin/replies.php:
|
1311 |
msgid ""
|
1312 |
"The title field and the big reply editing Area are fixed in place, but you "
|
1313 |
"can reposition all the other boxes using drag and drop, and can minimize or "
|
@@ -1317,17 +1324,17 @@ msgid ""
|
|
1317 |
"screen."
|
1318 |
msgstr ""
|
1319 |
|
1320 |
-
#: includes/admin/replies.php:
|
1321 |
msgid "Title and Reply Editor"
|
1322 |
msgstr ""
|
1323 |
|
1324 |
-
#: includes/admin/replies.php:
|
1325 |
msgid ""
|
1326 |
"<strong>Title</strong> - Enter a title for your reply. After you enter a "
|
1327 |
"title, you’ll see the permalink below, which you can edit."
|
1328 |
msgstr ""
|
1329 |
|
1330 |
-
#: includes/admin/replies.php:
|
1331 |
msgid ""
|
1332 |
"<strong>Reply Editor</strong> - Enter the text for your reply. There are "
|
1333 |
"two modes of editing: Visual and HTML. Choose the mode by clicking on the "
|
@@ -1342,7 +1349,7 @@ msgid ""
|
|
1342 |
"editor."
|
1343 |
msgstr ""
|
1344 |
|
1345 |
-
#: includes/admin/replies.php:
|
1346 |
msgid ""
|
1347 |
"<strong>Publish</strong> - You can set the terms of publishing your reply "
|
1348 |
"in the Publish box. For Status, Visibility, and Publish (immediately), "
|
@@ -1353,7 +1360,7 @@ msgid ""
|
|
1353 |
"future or backdate a reply."
|
1354 |
msgstr ""
|
1355 |
|
1356 |
-
#: includes/admin/replies.php:
|
1357 |
msgid ""
|
1358 |
"<strong>Featured Image</strong> - This allows you to associate an image "
|
1359 |
"with your reply without inserting it. This is usually useful only if your "
|
@@ -1361,219 +1368,220 @@ msgid ""
|
|
1361 |
"page, a custom header, etc."
|
1362 |
msgstr ""
|
1363 |
|
1364 |
-
#: includes/admin/replies.php:
|
|
|
1365 |
msgid "Reply Attributes"
|
1366 |
msgstr ""
|
1367 |
|
1368 |
-
#: includes/admin/replies.php:
|
1369 |
msgid "Select the attributes that your reply should have:"
|
1370 |
msgstr ""
|
1371 |
|
1372 |
-
#: includes/admin/replies.php:
|
1373 |
msgid ""
|
1374 |
"<strong>Forum</strong> dropdown determines the parent forum that the reply "
|
1375 |
"belongs to. Select the forum, or leave the default (Use Forum of Topic) to "
|
1376 |
"post the reply in forum of the topic."
|
1377 |
msgstr ""
|
1378 |
|
1379 |
-
#: includes/admin/replies.php:
|
1380 |
msgid ""
|
1381 |
"<strong>Topic</strong> determines the parent topic that the reply belongs "
|
1382 |
"to."
|
1383 |
msgstr ""
|
1384 |
|
1385 |
-
#: includes/admin/replies.php:
|
1386 |
msgid "<strong>Reply To</strong> determines the threading of the reply."
|
1387 |
msgstr ""
|
1388 |
|
1389 |
-
#: includes/admin/replies.php:
|
1390 |
-
#: includes/replies/template.php:
|
1391 |
msgid "Unspam"
|
1392 |
msgstr ""
|
1393 |
|
1394 |
-
#: includes/admin/replies.php:
|
1395 |
msgid "%s reply updated."
|
1396 |
msgid_plural "%s replies updated."
|
1397 |
msgstr[0] ""
|
1398 |
msgstr[1] ""
|
1399 |
|
1400 |
-
#: includes/admin/replies.php:
|
1401 |
msgid "1 reply not updated, somebody is editing it."
|
1402 |
msgstr ""
|
1403 |
|
1404 |
-
#: includes/admin/replies.php:
|
1405 |
msgid "%s reply not updated, somebody is editing it."
|
1406 |
msgid_plural "%s replies not updated, somebody is editing them."
|
1407 |
msgstr[0] ""
|
1408 |
msgstr[1] ""
|
1409 |
|
1410 |
-
#: includes/admin/replies.php:
|
1411 |
msgid "Sorry, you are not allowed to spam this item."
|
1412 |
msgstr ""
|
1413 |
|
1414 |
-
#: includes/admin/replies.php:
|
1415 |
msgid "Error in spamming reply."
|
1416 |
msgstr ""
|
1417 |
|
1418 |
-
#: includes/admin/replies.php:
|
1419 |
msgid "Sorry, you are not allowed to unspam this reply."
|
1420 |
msgstr ""
|
1421 |
|
1422 |
-
#: includes/admin/replies.php:
|
1423 |
msgid "Error in unspamming reply."
|
1424 |
msgstr ""
|
1425 |
|
1426 |
-
#: includes/admin/replies.php:
|
1427 |
#: templates/default/bbpress/form-anonymous.php:18
|
1428 |
msgid "Author Information"
|
1429 |
msgstr ""
|
1430 |
|
1431 |
-
#: includes/admin/replies.php:
|
1432 |
msgid "The reply was not found."
|
1433 |
msgstr ""
|
1434 |
|
1435 |
-
#: includes/admin/replies.php:
|
1436 |
msgid "There was a problem marking the reply \"%1$s\" as spam."
|
1437 |
msgstr ""
|
1438 |
|
1439 |
-
#: includes/admin/replies.php:
|
1440 |
msgid "Reply \"%1$s\" successfully marked as spam."
|
1441 |
msgstr ""
|
1442 |
|
1443 |
-
#: includes/admin/replies.php:
|
1444 |
msgid "There was a problem unmarking the reply \"%1$s\" as spam."
|
1445 |
msgstr ""
|
1446 |
|
1447 |
-
#: includes/admin/replies.php:
|
1448 |
msgid "Reply \"%1$s\" successfully unmarked as spam."
|
1449 |
msgstr ""
|
1450 |
|
1451 |
-
#: includes/admin/replies.php:
|
1452 |
msgid "There was a problem approving the reply \"%1$s\"."
|
1453 |
msgstr ""
|
1454 |
|
1455 |
-
#: includes/admin/replies.php:
|
1456 |
msgid "Reply \"%1$s\" successfully approved."
|
1457 |
msgstr ""
|
1458 |
|
1459 |
-
#: includes/admin/replies.php:
|
1460 |
msgid "There was a problem unapproving the reply \"%1$s\"."
|
1461 |
msgstr ""
|
1462 |
|
1463 |
-
#: includes/admin/replies.php:
|
1464 |
msgid "Reply \"%1$s\" successfully unapproved."
|
1465 |
msgstr ""
|
1466 |
|
1467 |
-
#: includes/admin/replies.php:
|
1468 |
msgid "Title"
|
1469 |
msgstr ""
|
1470 |
|
1471 |
-
#: includes/admin/replies.php:
|
1472 |
msgid "No topic"
|
1473 |
msgstr ""
|
1474 |
|
1475 |
-
#: includes/admin/replies.php:
|
1476 |
msgid "(Mismatch)"
|
1477 |
msgstr ""
|
1478 |
|
1479 |
-
#: includes/admin/replies.php:
|
1480 |
msgid "No forum"
|
1481 |
msgstr ""
|
1482 |
|
1483 |
-
#: includes/admin/replies.php:
|
1484 |
-
#: includes/admin/topics.php:
|
1485 |
msgid "View “%s”"
|
1486 |
msgstr ""
|
1487 |
|
1488 |
-
#: includes/admin/replies.php:
|
1489 |
msgid "Unapprove this reply"
|
1490 |
msgstr ""
|
1491 |
|
1492 |
-
#: includes/admin/replies.php:
|
1493 |
msgid "Approve this reply"
|
1494 |
msgstr ""
|
1495 |
|
1496 |
-
#: includes/admin/replies.php:
|
1497 |
-
msgid "Mark
|
1498 |
msgstr ""
|
1499 |
|
1500 |
-
#: includes/admin/replies.php:
|
1501 |
-
msgid "
|
1502 |
msgstr ""
|
1503 |
|
1504 |
-
#: includes/admin/replies.php:
|
1505 |
-
msgid "
|
1506 |
msgstr ""
|
1507 |
|
1508 |
-
#: includes/admin/replies.php:
|
1509 |
-
#: includes/replies/template.php:
|
1510 |
msgid "Restore this item from the Trash"
|
1511 |
msgstr ""
|
1512 |
|
1513 |
-
#: includes/admin/replies.php:
|
1514 |
-
#: includes/replies/template.php:
|
1515 |
msgid "Restore"
|
1516 |
msgstr ""
|
1517 |
|
1518 |
-
#: includes/admin/replies.php:
|
1519 |
-
#: includes/replies/template.php:
|
1520 |
msgid "Move this item to the Trash"
|
1521 |
msgstr ""
|
1522 |
|
1523 |
-
#: includes/admin/replies.php:
|
1524 |
-
#: includes/replies/template.php:
|
1525 |
msgid "Delete this item permanently"
|
1526 |
msgstr ""
|
1527 |
|
1528 |
-
#: includes/admin/replies.php:
|
1529 |
msgid "Delete Permanently"
|
1530 |
msgstr ""
|
1531 |
|
1532 |
-
#: includes/admin/replies.php:
|
1533 |
-
msgid "
|
1534 |
msgstr ""
|
1535 |
|
1536 |
-
#: includes/admin/replies.php:
|
1537 |
-
msgid "
|
1538 |
msgstr ""
|
1539 |
|
1540 |
-
#: includes/admin/replies.php:
|
1541 |
msgid "Reply updated."
|
1542 |
msgstr ""
|
1543 |
|
1544 |
-
#: includes/admin/replies.php:
|
1545 |
-
#: includes/admin/topics.php:
|
1546 |
msgid "View topic"
|
1547 |
msgstr ""
|
1548 |
|
1549 |
-
#: includes/admin/replies.php:
|
1550 |
#. translators: %s: date and time of the revision
|
1551 |
msgid "Reply restored to revision from %s"
|
1552 |
msgstr ""
|
1553 |
|
1554 |
-
#: includes/admin/replies.php:
|
1555 |
msgid "Reply created."
|
1556 |
msgstr ""
|
1557 |
|
1558 |
-
#: includes/admin/replies.php:
|
1559 |
msgid "Reply saved."
|
1560 |
msgstr ""
|
1561 |
|
1562 |
-
#: includes/admin/replies.php:
|
1563 |
msgid "Reply submitted."
|
1564 |
msgstr ""
|
1565 |
|
1566 |
-
#: includes/admin/replies.php:
|
1567 |
-
#: includes/admin/replies.php:
|
1568 |
-
#: includes/admin/topics.php:
|
1569 |
msgid "Preview topic"
|
1570 |
msgstr ""
|
1571 |
|
1572 |
-
#: includes/admin/replies.php:
|
1573 |
msgid "Reply scheduled for: %s."
|
1574 |
msgstr ""
|
1575 |
|
1576 |
-
#: includes/admin/replies.php:
|
1577 |
msgid "Reply draft updated."
|
1578 |
msgstr ""
|
1579 |
|
@@ -1637,24 +1645,24 @@ msgstr ""
|
|
1637 |
msgid "Editing"
|
1638 |
msgstr ""
|
1639 |
|
1640 |
-
#: includes/admin/settings.php:155 includes/users/template.php:
|
1641 |
msgid "Anonymous"
|
1642 |
msgstr ""
|
1643 |
|
1644 |
-
#: includes/admin/settings.php:168 includes/admin/settings.php:
|
1645 |
msgid "Revisions"
|
1646 |
msgstr ""
|
1647 |
|
1648 |
-
#: includes/admin/settings.php:176 includes/admin/tools/common.php:
|
1649 |
-
#: includes/admin/topics.php:
|
1650 |
#: templates/default/bbpress/user-details.php:57
|
1651 |
msgid "Favorites"
|
1652 |
msgstr ""
|
1653 |
|
1654 |
#: includes/admin/settings.php:192 includes/admin/settings.php:444
|
1655 |
-
#: includes/admin/tools/common.php:
|
1656 |
-
#: includes/extend/buddypress/loader.php:
|
1657 |
-
#: includes/extend/buddypress/loader.php:
|
1658 |
#: templates/default/bbpress/user-details.php:49
|
1659 |
msgid "Engagements"
|
1660 |
msgstr ""
|
@@ -1668,7 +1676,7 @@ msgid "Super Moderators"
|
|
1668 |
msgstr ""
|
1669 |
|
1670 |
#: includes/admin/settings.php:224 includes/admin/settings.php:391
|
1671 |
-
#: includes/common/template.php:
|
1672 |
#: templates/default/bbpress/form-reply-search.php:20
|
1673 |
#: templates/default/bbpress/form-search.php:21
|
1674 |
#: templates/default/bbpress/form-topic-search.php:20
|
@@ -1711,19 +1719,19 @@ msgstr ""
|
|
1711 |
msgid "User Base"
|
1712 |
msgstr ""
|
1713 |
|
1714 |
-
#: includes/admin/settings.php:412 includes/extend/buddypress/loader.php:
|
1715 |
-
#: includes/extend/buddypress/loader.php:
|
1716 |
#: templates/default/bbpress/user-details.php:36
|
1717 |
msgid "Topics Started"
|
1718 |
msgstr ""
|
1719 |
|
1720 |
-
#: includes/admin/settings.php:420 includes/extend/buddypress/loader.php:
|
1721 |
-
#: includes/extend/buddypress/loader.php:
|
1722 |
#: templates/default/bbpress/user-details.php:42
|
1723 |
msgid "Replies Created"
|
1724 |
msgstr ""
|
1725 |
|
1726 |
-
#: includes/admin/settings.php:428 includes/extend/buddypress/loader.php:
|
1727 |
msgid "Favorite Topics"
|
1728 |
msgstr ""
|
1729 |
|
@@ -1976,20 +1984,20 @@ msgstr ""
|
|
1976 |
|
1977 |
#: includes/admin/settings.php:1525
|
1978 |
msgid ""
|
1979 |
-
"Information about your previous forums
|
1980 |
-
"converted.
|
1981 |
msgstr ""
|
1982 |
|
1983 |
#: includes/admin/settings.php:1548
|
1984 |
-
msgid "
|
1985 |
msgstr ""
|
1986 |
|
1987 |
#: includes/admin/settings.php:1562
|
1988 |
-
msgid "Use default
|
1989 |
msgstr ""
|
1990 |
|
1991 |
#: includes/admin/settings.php:1576
|
1992 |
-
msgid "Use default
|
1993 |
msgstr ""
|
1994 |
|
1995 |
#: includes/admin/settings.php:1590
|
@@ -2013,7 +2021,7 @@ msgid "Some optional parameters to help tune the conversion process."
|
|
2013 |
msgstr ""
|
2014 |
|
2015 |
#: includes/admin/settings.php:1651
|
2016 |
-
msgid "
|
2017 |
msgstr ""
|
2018 |
|
2019 |
#: includes/admin/settings.php:1665
|
@@ -2097,166 +2105,166 @@ msgstr ""
|
|
2097 |
msgid "Import Forums"
|
2098 |
msgstr ""
|
2099 |
|
2100 |
-
#: includes/admin/settings.php:
|
2101 |
-
msgid "Pause"
|
2102 |
-
msgstr ""
|
2103 |
-
|
2104 |
-
#: includes/admin/settings.php:1802
|
2105 |
msgid "Toggle panel: Import Status"
|
2106 |
msgstr ""
|
2107 |
|
2108 |
-
#: includes/admin/settings.php:
|
2109 |
msgid "Import Monitor"
|
2110 |
msgstr ""
|
2111 |
|
2112 |
-
#: includes/admin/settings.php:
|
|
|
|
|
|
|
|
|
2113 |
msgid "This screen provides access to all of the Forums settings."
|
2114 |
msgstr ""
|
2115 |
|
2116 |
-
#: includes/admin/settings.php:
|
2117 |
msgid ""
|
2118 |
"Please see the additional help tabs for more information on each individual "
|
2119 |
"section."
|
2120 |
msgstr ""
|
2121 |
|
2122 |
-
#: includes/admin/settings.php:
|
2123 |
msgid "Main Settings"
|
2124 |
msgstr ""
|
2125 |
|
2126 |
-
#: includes/admin/settings.php:
|
2127 |
msgid "The \"Main Settings\" section includes a number of options:"
|
2128 |
msgstr ""
|
2129 |
|
2130 |
-
#: includes/admin/settings.php:
|
2131 |
msgid ""
|
2132 |
"You can choose to lock a post after a certain number of minutes. \"Locking "
|
2133 |
"post editing\" will prevent the author from editing some amount of time "
|
2134 |
"after saving a post."
|
2135 |
msgstr ""
|
2136 |
|
2137 |
-
#: includes/admin/settings.php:
|
2138 |
msgid ""
|
2139 |
"\"Throttle time\" is the amount of time required between posts from a "
|
2140 |
"single author. The higher the throttle time, the longer a user will need to "
|
2141 |
"wait between posting to the forum."
|
2142 |
msgstr ""
|
2143 |
|
2144 |
-
#: includes/admin/settings.php:
|
2145 |
msgid ""
|
2146 |
"Favorites are a way for users to save and later return to topics they "
|
2147 |
"favor. This is enabled by default."
|
2148 |
msgstr ""
|
2149 |
|
2150 |
-
#: includes/admin/settings.php:
|
2151 |
msgid ""
|
2152 |
"Subscriptions allow users to subscribe for notifications to topics that "
|
2153 |
"interest them. This is enabled by default."
|
2154 |
msgstr ""
|
2155 |
|
2156 |
-
#: includes/admin/settings.php:
|
2157 |
msgid ""
|
2158 |
"Topic-Tags allow users to filter topics between forums. This is enabled by "
|
2159 |
"default."
|
2160 |
msgstr ""
|
2161 |
|
2162 |
-
#: includes/admin/settings.php:
|
2163 |
msgid ""
|
2164 |
"\"Anonymous Posting\" allows guest users who do not have accounts on your "
|
2165 |
"site to both create topics as well as replies."
|
2166 |
msgstr ""
|
2167 |
|
2168 |
-
#: includes/admin/settings.php:
|
2169 |
msgid ""
|
2170 |
"The Fancy Editor brings the luxury of the Visual editor and HTML editor "
|
2171 |
"from the traditional WordPress dashboard into your theme."
|
2172 |
msgstr ""
|
2173 |
|
2174 |
-
#: includes/admin/settings.php:
|
2175 |
msgid ""
|
2176 |
"Auto-embed will embed the media content from a URL directly into the "
|
2177 |
"replies. For example: links to Flickr and YouTube."
|
2178 |
msgstr ""
|
2179 |
|
2180 |
-
#: includes/admin/settings.php:
|
2181 |
msgid ""
|
2182 |
"You must click the Save Changes button at the bottom of the screen for new "
|
2183 |
"settings to take effect."
|
2184 |
msgstr ""
|
2185 |
|
2186 |
-
#: includes/admin/settings.php:
|
2187 |
msgid "Theme Packages"
|
2188 |
msgstr ""
|
2189 |
|
2190 |
-
#: includes/admin/settings.php:
|
2191 |
msgid ""
|
2192 |
"The \"Theme Packages\" section allows you to choose which theme package "
|
2193 |
"should be used."
|
2194 |
msgstr ""
|
2195 |
|
2196 |
-
#: includes/admin/settings.php:
|
2197 |
msgid "The \"bbPress Default\" package is installed by default."
|
2198 |
msgstr ""
|
2199 |
|
2200 |
-
#: includes/admin/settings.php:
|
2201 |
msgid "Some themes may choose to ignore this setting entirely."
|
2202 |
msgstr ""
|
2203 |
|
2204 |
-
#: includes/admin/settings.php:
|
2205 |
msgid "Packages can be stacked to allow for intelligent fallbacks."
|
2206 |
msgstr ""
|
2207 |
|
2208 |
-
#: includes/admin/settings.php:
|
2209 |
msgid "Per Page"
|
2210 |
msgstr ""
|
2211 |
|
2212 |
-
#: includes/admin/settings.php:
|
2213 |
msgid ""
|
2214 |
"The \"Per Page\" section allows you to control the number of topics and "
|
2215 |
"replies appear on each page."
|
2216 |
msgstr ""
|
2217 |
|
2218 |
-
#: includes/admin/settings.php:
|
2219 |
msgid ""
|
2220 |
"This is comparable to the WordPress \"Reading Settings\" page, where you "
|
2221 |
"can set the number of posts that should show on blog pages and in feeds."
|
2222 |
msgstr ""
|
2223 |
|
2224 |
-
#: includes/admin/settings.php:
|
2225 |
msgid ""
|
2226 |
"These are broken up into two separate groups: one for what appears in your "
|
2227 |
"theme, another for RSS feeds."
|
2228 |
msgstr ""
|
2229 |
|
2230 |
-
#: includes/admin/settings.php:
|
2231 |
msgid "Slugs"
|
2232 |
msgstr ""
|
2233 |
|
2234 |
-
#: includes/admin/settings.php:
|
2235 |
msgid ""
|
2236 |
"The \"Slugs\" section allows you to control the permalink structure for "
|
2237 |
"your forums."
|
2238 |
msgstr ""
|
2239 |
|
2240 |
-
#: includes/admin/settings.php:
|
2241 |
msgid ""
|
2242 |
"\"Archive Slugs\" are used as the \"root\" for your forums and topics. If "
|
2243 |
"you combine these values with existing page slugs, bbPress will attempt to "
|
2244 |
"output the most correct title and content."
|
2245 |
msgstr ""
|
2246 |
|
2247 |
-
#: includes/admin/settings.php:
|
2248 |
msgid ""
|
2249 |
"\"Single Slugs\" are used as a prefix when viewing an individual forum, "
|
2250 |
"topic, reply, user, or view."
|
2251 |
msgstr ""
|
2252 |
|
2253 |
-
#: includes/admin/settings.php:
|
2254 |
msgid ""
|
2255 |
"In the event of a slug collision with WordPress or BuddyPress, a warning "
|
2256 |
"will appear next to the problem slug(s)."
|
2257 |
msgstr ""
|
2258 |
|
2259 |
-
#: includes/admin/settings.php:
|
2260 |
#: templates/default/bbpress/loop-forums.php:24
|
2261 |
#: templates/default/bbpress/loop-replies.php:21
|
2262 |
#: templates/default/bbpress/loop-replies.php:47
|
@@ -2264,108 +2272,109 @@ msgstr ""
|
|
2264 |
msgid "Posts"
|
2265 |
msgstr ""
|
2266 |
|
2267 |
-
#: includes/admin/settings.php:
|
2268 |
msgid "Pages"
|
2269 |
msgstr ""
|
2270 |
|
2271 |
-
#: includes/admin/settings.php:
|
2272 |
msgid "Attachments"
|
2273 |
msgstr ""
|
2274 |
|
2275 |
-
#: includes/admin/settings.php:
|
2276 |
msgid "Menus"
|
2277 |
msgstr ""
|
2278 |
|
2279 |
-
#: includes/admin/settings.php:
|
2280 |
msgid "Tag base"
|
2281 |
msgstr ""
|
2282 |
|
2283 |
-
#: includes/admin/settings.php:
|
2284 |
msgid "Category base"
|
2285 |
msgstr ""
|
2286 |
|
2287 |
-
#: includes/admin/settings.php:
|
2288 |
msgid "Forums base"
|
2289 |
msgstr ""
|
2290 |
|
2291 |
-
#: includes/admin/settings.php:
|
2292 |
msgid "Topics base"
|
2293 |
msgstr ""
|
2294 |
|
2295 |
-
#: includes/admin/settings.php:
|
2296 |
msgid "Forum slug"
|
2297 |
msgstr ""
|
2298 |
|
2299 |
-
#: includes/admin/settings.php:
|
2300 |
msgid "Topic slug"
|
2301 |
msgstr ""
|
2302 |
|
2303 |
-
#: includes/admin/settings.php:
|
2304 |
msgid "Reply slug"
|
2305 |
msgstr ""
|
2306 |
|
2307 |
-
#: includes/admin/settings.php:
|
2308 |
msgid "User base"
|
2309 |
msgstr ""
|
2310 |
|
2311 |
-
#: includes/admin/settings.php:
|
2312 |
msgid "View base"
|
2313 |
msgstr ""
|
2314 |
|
2315 |
-
#: includes/admin/settings.php:
|
2316 |
msgid "Topic tag slug"
|
2317 |
msgstr ""
|
2318 |
|
2319 |
-
#: includes/admin/settings.php:
|
2320 |
msgid "%s page"
|
2321 |
msgstr ""
|
2322 |
|
2323 |
-
#: includes/admin/settings.php:
|
2324 |
msgid "Possible %1$s conflict: %2$s"
|
2325 |
msgstr ""
|
2326 |
|
2327 |
-
#: includes/admin/tools/common.php:
|
2328 |
msgid "Search Tools:"
|
2329 |
msgstr ""
|
2330 |
|
2331 |
-
#: includes/admin/tools/common.php:
|
2332 |
msgid "Search Tools"
|
2333 |
msgstr ""
|
2334 |
|
2335 |
-
#: includes/admin/tools/common.php:
|
2336 |
msgid "Filter by Component"
|
2337 |
msgstr ""
|
2338 |
|
2339 |
-
#: includes/admin/tools/common.php:
|
2340 |
msgid "All Components"
|
2341 |
msgstr ""
|
2342 |
|
2343 |
-
#: includes/admin/tools/common.php:
|
2344 |
msgid "Filter"
|
2345 |
msgstr ""
|
2346 |
|
2347 |
-
#: includes/admin/tools/common.php:
|
2348 |
msgid "Low"
|
2349 |
msgstr ""
|
2350 |
|
2351 |
-
#: includes/admin/tools/common.php:
|
2352 |
msgid "Medium"
|
2353 |
msgstr ""
|
2354 |
|
2355 |
-
#: includes/admin/tools/common.php:
|
2356 |
msgid "High"
|
2357 |
msgstr ""
|
2358 |
|
2359 |
-
#: includes/admin/tools/common.php:
|
2360 |
msgid "Users"
|
2361 |
msgstr ""
|
2362 |
|
2363 |
-
#: includes/admin/tools/common.php:
|
|
|
2364 |
#: templates/default/bbpress/content-statistics.php:40
|
2365 |
msgid "Topic Tags"
|
2366 |
msgstr ""
|
2367 |
|
2368 |
-
#: includes/admin/tools/common.php:
|
2369 |
msgid "All %s"
|
2370 |
msgstr ""
|
2371 |
|
@@ -2547,7 +2556,7 @@ msgstr ""
|
|
2547 |
#: includes/admin/tools/repair.php:653 includes/admin/tools/repair.php:722
|
2548 |
#: includes/admin/tools/repair.php:830 includes/admin/tools/repair.php:951
|
2549 |
#: includes/admin/tools/repair.php:1063 includes/admin/tools/repair.php:1083
|
2550 |
-
#: includes/admin/tools/repair.php:1134 includes/admin/tools/reset.php:
|
2551 |
#: includes/admin/tools/upgrade.php:242
|
2552 |
msgid "Failed!"
|
2553 |
msgstr ""
|
@@ -2672,16 +2681,17 @@ msgid "The following data will be removed:"
|
|
2672 |
msgstr ""
|
2673 |
|
2674 |
#: includes/admin/tools/reset.php:33 includes/forums/template.php:51
|
|
|
2675 |
msgid "All Forums"
|
2676 |
msgstr ""
|
2677 |
|
2678 |
-
#: includes/admin/tools/reset.php:34 includes/topics/functions.php:
|
2679 |
-
#: includes/topics/template.php:50
|
2680 |
msgid "All Topics"
|
2681 |
msgstr ""
|
2682 |
|
2683 |
-
#: includes/admin/tools/reset.php:35 includes/replies/functions.php:
|
2684 |
-
#: includes/replies/template.php:52
|
2685 |
msgid "All Replies"
|
2686 |
msgstr ""
|
2687 |
|
@@ -2746,52 +2756,56 @@ msgstr ""
|
|
2746 |
msgid "Reset bbPress"
|
2747 |
msgstr ""
|
2748 |
|
2749 |
-
#: includes/admin/tools/reset.php:
|
|
|
|
|
|
|
|
|
2750 |
msgid "Success!"
|
2751 |
msgstr ""
|
2752 |
|
2753 |
-
#: includes/admin/tools/reset.php:
|
2754 |
-
msgid "
|
2755 |
msgstr ""
|
2756 |
|
2757 |
-
#: includes/admin/tools/reset.php:
|
2758 |
-
msgid "
|
2759 |
msgstr ""
|
2760 |
|
2761 |
-
#: includes/admin/tools/reset.php:
|
2762 |
-
msgid "
|
2763 |
msgstr ""
|
2764 |
|
2765 |
-
#: includes/admin/tools/reset.php:
|
2766 |
-
msgid "
|
2767 |
msgstr ""
|
2768 |
|
2769 |
-
#: includes/admin/tools/reset.php:
|
2770 |
msgid "Deleting Topic Tags… %s"
|
2771 |
msgstr ""
|
2772 |
|
2773 |
-
#: includes/admin/tools/reset.php:
|
2774 |
msgid "Deleting Imported Users… %s"
|
2775 |
msgstr ""
|
2776 |
|
2777 |
-
#: includes/admin/tools/reset.php:
|
2778 |
msgid "Deleting Imported User Meta… %s"
|
2779 |
msgstr ""
|
2780 |
|
2781 |
-
#: includes/admin/tools/reset.php:
|
2782 |
-
msgid "Deleting User Meta… %s"
|
2783 |
msgstr ""
|
2784 |
|
2785 |
-
#: includes/admin/tools/reset.php:
|
2786 |
-
msgid "
|
2787 |
msgstr ""
|
2788 |
|
2789 |
-
#: includes/admin/tools/reset.php:
|
2790 |
-
msgid "Deleting Settings…
|
2791 |
msgstr ""
|
2792 |
|
2793 |
-
#: includes/admin/tools/reset.php:
|
2794 |
-
msgid "
|
2795 |
msgstr ""
|
2796 |
|
2797 |
#: includes/admin/tools/upgrade.php:26 includes/admin/tools.php:508
|
@@ -3144,101 +3158,101 @@ msgstr ""
|
|
3144 |
msgid "Run this if you just upgraded BuddyPress Forums from Legacy."
|
3145 |
msgstr ""
|
3146 |
|
3147 |
-
#: includes/admin/topics.php:
|
3148 |
msgid ""
|
3149 |
"This screen displays the individual topics on your site. You can customize "
|
3150 |
"the display of this screen to suit your workflow."
|
3151 |
msgstr ""
|
3152 |
|
3153 |
-
#: includes/admin/topics.php:
|
3154 |
msgid ""
|
3155 |
"You can hide/display columns based on your needs and decide how many topics "
|
3156 |
"to list per screen using the Screen Options tab."
|
3157 |
msgstr ""
|
3158 |
|
3159 |
-
#: includes/admin/topics.php:
|
3160 |
msgid ""
|
3161 |
"You can filter the list of topics by topic status using the text links in "
|
3162 |
"the upper left to show All, Published, Draft, Pending, Trashed, Closed, or "
|
3163 |
"Spam topics. The default view is to show all topics."
|
3164 |
msgstr ""
|
3165 |
|
3166 |
-
#: includes/admin/topics.php:
|
3167 |
msgid ""
|
3168 |
"You can view topics in a simple title list or with an excerpt. Choose the "
|
3169 |
"view you prefer by clicking on the icons at the top of the list on the "
|
3170 |
"right."
|
3171 |
msgstr ""
|
3172 |
|
3173 |
-
#: includes/admin/topics.php:
|
3174 |
msgid ""
|
3175 |
"You can refine the list to show only topics in a specific forum or from a "
|
3176 |
"specific month by using the dropdown menus above the topics list. Click the "
|
3177 |
"Filter button after making your selection."
|
3178 |
msgstr ""
|
3179 |
|
3180 |
-
#: includes/admin/topics.php:
|
3181 |
msgid ""
|
3182 |
"Hovering over a row in the topics list will display action links that allow "
|
3183 |
"you to manage your topic. You can perform the following actions:"
|
3184 |
msgstr ""
|
3185 |
|
3186 |
-
#: includes/admin/topics.php:
|
3187 |
msgid ""
|
3188 |
"<strong>Edit</strong> takes you to the editing screen for that topic. You "
|
3189 |
"can also reach that screen by clicking on the topic title."
|
3190 |
msgstr ""
|
3191 |
|
3192 |
-
#: includes/admin/topics.php:
|
3193 |
msgid ""
|
3194 |
-
"<strong>
|
3195 |
-
"the
|
3196 |
msgstr ""
|
3197 |
|
3198 |
-
#: includes/admin/topics.php:
|
3199 |
msgid ""
|
3200 |
-
"<strong>
|
3201 |
-
"the
|
3202 |
-
|
3203 |
-
|
3204 |
-
#: includes/admin/topics.php:145
|
3205 |
-
msgid "<strong>View</strong> will take you to your live site to view the topic."
|
3206 |
msgstr ""
|
3207 |
|
3208 |
-
#: includes/admin/topics.php:
|
3209 |
msgid ""
|
3210 |
"<strong>Close</strong> will mark the selected topic as ’closed’ "
|
3211 |
-
"and disable the
|
3212 |
msgstr ""
|
3213 |
|
3214 |
-
#: includes/admin/topics.php:
|
3215 |
msgid ""
|
3216 |
-
"<strong>
|
3217 |
-
"the
|
3218 |
msgstr ""
|
3219 |
|
3220 |
-
#: includes/admin/topics.php:
|
3221 |
msgid ""
|
3222 |
-
"<strong>
|
3223 |
-
"
|
3224 |
-
"topics list."
|
3225 |
msgstr ""
|
3226 |
|
3227 |
-
#: includes/admin/topics.php:
|
|
|
|
|
|
|
|
|
3228 |
msgid ""
|
3229 |
"You can also edit, spam, or move multiple topics to the trash at once. "
|
3230 |
"Select the topics you want to act on using the checkboxes, then select the "
|
3231 |
"action you want to take from the Bulk Actions menu and click Apply."
|
3232 |
msgstr ""
|
3233 |
|
3234 |
-
#: includes/admin/topics.php:
|
3235 |
msgid ""
|
3236 |
"When using Bulk Edit, you can change the metadata (categories, author, "
|
3237 |
"etc.) for all selected topics at once. To remove a topic from the grouping, "
|
3238 |
"just click the x next to its name in the Bulk Edit area that appears."
|
3239 |
msgstr ""
|
3240 |
|
3241 |
-
#: includes/admin/topics.php:
|
3242 |
msgid ""
|
3243 |
"The title field and the big topic editing Area are fixed in place, but you "
|
3244 |
"can reposition all the other boxes using drag and drop, and can minimize or "
|
@@ -3248,17 +3262,17 @@ msgid ""
|
|
3248 |
"screen."
|
3249 |
msgstr ""
|
3250 |
|
3251 |
-
#: includes/admin/topics.php:
|
3252 |
msgid "Title and Topic Editor"
|
3253 |
msgstr ""
|
3254 |
|
3255 |
-
#: includes/admin/topics.php:
|
3256 |
msgid ""
|
3257 |
"<strong>Title</strong> - Enter a title for your topic. After you enter a "
|
3258 |
"title, you’ll see the permalink below, which you can edit."
|
3259 |
msgstr ""
|
3260 |
|
3261 |
-
#: includes/admin/topics.php:
|
3262 |
msgid ""
|
3263 |
"<strong>Topic Editor</strong> - Enter the text for your topic. There are "
|
3264 |
"two modes of editing: Visual and HTML. Choose the mode by clicking on the "
|
@@ -3273,7 +3287,7 @@ msgid ""
|
|
3273 |
"editor."
|
3274 |
msgstr ""
|
3275 |
|
3276 |
-
#: includes/admin/topics.php:
|
3277 |
msgid ""
|
3278 |
"<strong>Publish</strong> - You can set the terms of publishing your topic "
|
3279 |
"in the Publish box. For Status, Visibility, and Publish (immediately), "
|
@@ -3284,7 +3298,7 @@ msgid ""
|
|
3284 |
"future or backdate a topic."
|
3285 |
msgstr ""
|
3286 |
|
3287 |
-
#: includes/admin/topics.php:
|
3288 |
msgid ""
|
3289 |
"<strong>Featured Image</strong> - This allows you to associate an image "
|
3290 |
"with your topic without inserting it. This is usually useful only if your "
|
@@ -3292,22 +3306,23 @@ msgid ""
|
|
3292 |
"page, a custom header, etc."
|
3293 |
msgstr ""
|
3294 |
|
3295 |
-
#: includes/admin/topics.php:
|
|
|
3296 |
msgid "Topic Attributes"
|
3297 |
msgstr ""
|
3298 |
|
3299 |
-
#: includes/admin/topics.php:
|
3300 |
msgid "Select the attributes that your topic should have:"
|
3301 |
msgstr ""
|
3302 |
|
3303 |
-
#: includes/admin/topics.php:
|
3304 |
msgid ""
|
3305 |
"<strong>Forum</strong> dropdown determines the parent forum that the topic "
|
3306 |
"belongs to. Select the forum or category from the dropdown, or leave the "
|
3307 |
"default \"No forum\" to post the topic without an assigned forum."
|
3308 |
msgstr ""
|
3309 |
|
3310 |
-
#: includes/admin/topics.php:
|
3311 |
msgid ""
|
3312 |
"<strong>Topic Type</strong> dropdown indicates the sticky status of the "
|
3313 |
"topic. Selecting the super sticky option would stick the topic to the front "
|
@@ -3316,203 +3331,203 @@ msgid ""
|
|
3316 |
"anywhere."
|
3317 |
msgstr ""
|
3318 |
|
3319 |
-
#: includes/admin/topics.php:
|
3320 |
msgid "%s topic updated."
|
3321 |
msgid_plural "%s topics updated."
|
3322 |
msgstr[0] ""
|
3323 |
msgstr[1] ""
|
3324 |
|
3325 |
-
#: includes/admin/topics.php:
|
3326 |
msgid "1 topic not updated, somebody is editing it."
|
3327 |
msgstr ""
|
3328 |
|
3329 |
-
#: includes/admin/topics.php:
|
3330 |
msgid "%s topic not updated, somebody is editing it."
|
3331 |
msgid_plural "%s topics not updated, somebody is editing them."
|
3332 |
msgstr[0] ""
|
3333 |
msgstr[1] ""
|
3334 |
|
3335 |
-
#: includes/admin/topics.php:
|
3336 |
msgid "Error in spamming topic."
|
3337 |
msgstr ""
|
3338 |
|
3339 |
-
#: includes/admin/topics.php:
|
3340 |
msgid "Sorry, you are not allowed to unspam this topic."
|
3341 |
msgstr ""
|
3342 |
|
3343 |
-
#: includes/admin/topics.php:
|
3344 |
msgid "Error in unspamming topic."
|
3345 |
msgstr ""
|
3346 |
|
3347 |
-
#: includes/admin/topics.php:
|
3348 |
msgid "The topic was not found."
|
3349 |
msgstr ""
|
3350 |
|
3351 |
-
#: includes/admin/topics.php:
|
3352 |
msgid "There was a problem opening the topic \"%1$s\"."
|
3353 |
msgstr ""
|
3354 |
|
3355 |
-
#: includes/admin/topics.php:
|
3356 |
msgid "Topic \"%1$s\" successfully opened."
|
3357 |
msgstr ""
|
3358 |
|
3359 |
-
#: includes/admin/topics.php:
|
3360 |
msgid "There was a problem closing the topic \"%1$s\"."
|
3361 |
msgstr ""
|
3362 |
|
3363 |
-
#: includes/admin/topics.php:
|
3364 |
msgid "Topic \"%1$s\" successfully closed."
|
3365 |
msgstr ""
|
3366 |
|
3367 |
-
#: includes/admin/topics.php:
|
3368 |
msgid "There was a problem sticking the topic \"%1$s\" to front."
|
3369 |
msgstr ""
|
3370 |
|
3371 |
-
#: includes/admin/topics.php:
|
3372 |
msgid "Topic \"%1$s\" successfully stuck to front."
|
3373 |
msgstr ""
|
3374 |
|
3375 |
-
#: includes/admin/topics.php:
|
3376 |
msgid "There was a problem sticking the topic \"%1$s\"."
|
3377 |
msgstr ""
|
3378 |
|
3379 |
-
#: includes/admin/topics.php:
|
3380 |
msgid "Topic \"%1$s\" successfully stuck."
|
3381 |
msgstr ""
|
3382 |
|
3383 |
-
#: includes/admin/topics.php:
|
3384 |
msgid "There was a problem unsticking the topic \"%1$s\"."
|
3385 |
msgstr ""
|
3386 |
|
3387 |
-
#: includes/admin/topics.php:
|
3388 |
msgid "Topic \"%1$s\" successfully unstuck."
|
3389 |
msgstr ""
|
3390 |
|
3391 |
-
#: includes/admin/topics.php:
|
3392 |
msgid "There was a problem marking the topic \"%1$s\" as spam."
|
3393 |
msgstr ""
|
3394 |
|
3395 |
-
#: includes/admin/topics.php:
|
3396 |
msgid "Topic \"%1$s\" successfully marked as spam."
|
3397 |
msgstr ""
|
3398 |
|
3399 |
-
#: includes/admin/topics.php:
|
3400 |
msgid "There was a problem unmarking the topic \"%1$s\" as spam."
|
3401 |
msgstr ""
|
3402 |
|
3403 |
-
#: includes/admin/topics.php:
|
3404 |
msgid "Topic \"%1$s\" successfully unmarked as spam."
|
3405 |
msgstr ""
|
3406 |
|
3407 |
-
#: includes/admin/topics.php:
|
3408 |
msgid "There was a problem approving the topic \"%1$s\"."
|
3409 |
msgstr ""
|
3410 |
|
3411 |
-
#: includes/admin/topics.php:
|
3412 |
msgid "Topic \"%1$s\" successfully approved."
|
3413 |
msgstr ""
|
3414 |
|
3415 |
-
#: includes/admin/topics.php:
|
3416 |
msgid "There was a problem unapproving the topic \"%1$s\"."
|
3417 |
msgstr ""
|
3418 |
|
3419 |
-
#: includes/admin/topics.php:
|
3420 |
msgid "Topic \"%1$s\" successfully unapproved."
|
3421 |
msgstr ""
|
3422 |
|
3423 |
-
#: includes/admin/topics.php:
|
3424 |
msgid "Voices"
|
3425 |
msgstr ""
|
3426 |
|
3427 |
-
#: includes/admin/topics.php:
|
3428 |
msgid "No Replies"
|
3429 |
msgstr ""
|
3430 |
|
3431 |
-
#: includes/admin/topics.php:
|
3432 |
msgid "Unapprove this topic"
|
3433 |
msgstr ""
|
3434 |
|
3435 |
-
#: includes/admin/topics.php:
|
3436 |
msgid "Approve this topic"
|
3437 |
msgstr ""
|
3438 |
|
3439 |
-
#: includes/admin/topics.php:
|
3440 |
msgid "Close this topic"
|
3441 |
msgstr ""
|
3442 |
|
3443 |
-
#: includes/admin/topics.php:
|
3444 |
msgid "Open this topic"
|
3445 |
msgstr ""
|
3446 |
|
3447 |
-
#: includes/admin/topics.php:
|
3448 |
msgid "Unstick this topic"
|
3449 |
msgstr ""
|
3450 |
|
3451 |
-
#: includes/admin/topics.php:
|
3452 |
msgid "Unstick"
|
3453 |
msgstr ""
|
3454 |
|
3455 |
-
#: includes/admin/topics.php:
|
3456 |
msgid "Stick this topic to its forum"
|
3457 |
msgstr ""
|
3458 |
|
3459 |
-
#: includes/admin/topics.php:
|
3460 |
msgid "Stick"
|
3461 |
msgstr ""
|
3462 |
|
3463 |
-
#: includes/admin/topics.php:
|
3464 |
msgid "Stick this topic to front"
|
3465 |
msgstr ""
|
3466 |
|
3467 |
-
#: includes/admin/topics.php:
|
3468 |
msgid "(to front)"
|
3469 |
msgstr ""
|
3470 |
|
3471 |
-
#: includes/admin/topics.php:
|
3472 |
-
msgid "Mark
|
3473 |
msgstr ""
|
3474 |
|
3475 |
-
#: includes/admin/topics.php:
|
3476 |
-
msgid "Mark
|
3477 |
msgstr ""
|
3478 |
|
3479 |
-
#: includes/admin/topics.php:
|
3480 |
msgid "Topic updated."
|
3481 |
msgstr ""
|
3482 |
|
3483 |
-
#: includes/admin/topics.php:
|
3484 |
#. translators: %s: date and time of the revision
|
3485 |
msgid "Topic restored to revision from %s"
|
3486 |
msgstr ""
|
3487 |
|
3488 |
-
#: includes/admin/topics.php:
|
3489 |
msgid "Topic created."
|
3490 |
msgstr ""
|
3491 |
|
3492 |
-
#: includes/admin/topics.php:
|
3493 |
msgid "Topic saved."
|
3494 |
msgstr ""
|
3495 |
|
3496 |
-
#: includes/admin/topics.php:
|
3497 |
msgid "Topic submitted."
|
3498 |
msgstr ""
|
3499 |
|
3500 |
-
#: includes/admin/topics.php:
|
3501 |
msgid "Topic scheduled for: %s."
|
3502 |
msgstr ""
|
3503 |
|
3504 |
-
#: includes/admin/topics.php:
|
3505 |
msgid "Topic draft updated."
|
3506 |
msgstr ""
|
3507 |
|
3508 |
-
#: includes/admin/users.php:98 includes/admin/users.php:
|
3509 |
#: includes/users/signups.php:26
|
3510 |
#: templates/default/bbpress/form-user-roles.php:23
|
3511 |
msgid "Forum Role"
|
3512 |
msgstr ""
|
3513 |
|
3514 |
#: includes/admin/users.php:107 includes/admin/users.php:111
|
3515 |
-
#: includes/users/template.php:
|
3516 |
msgid "— No role for these forums —"
|
3517 |
msgstr ""
|
3518 |
|
@@ -3524,93 +3539,93 @@ msgstr ""
|
|
3524 |
msgid "Change"
|
3525 |
msgstr ""
|
3526 |
|
3527 |
-
#: includes/admin/users.php:
|
3528 |
msgid "Site Role"
|
3529 |
msgstr ""
|
3530 |
|
3531 |
-
#: includes/common/classes.php:493 includes/replies/template.php:
|
3532 |
msgid "%1$s - %2$s"
|
3533 |
msgstr ""
|
3534 |
|
3535 |
-
#: includes/common/formatting.php:
|
3536 |
msgid "sometime"
|
3537 |
msgstr ""
|
3538 |
|
3539 |
-
#: includes/common/formatting.php:
|
3540 |
msgid "right now"
|
3541 |
msgstr ""
|
3542 |
|
3543 |
-
#: includes/common/formatting.php:
|
3544 |
msgid "%s ago"
|
3545 |
msgstr ""
|
3546 |
|
3547 |
-
#: includes/common/formatting.php:
|
3548 |
msgid "%s year"
|
3549 |
msgid_plural "%s years"
|
3550 |
msgstr[0] ""
|
3551 |
msgstr[1] ""
|
3552 |
|
3553 |
-
#: includes/common/formatting.php:
|
3554 |
msgid "%s month"
|
3555 |
msgid_plural "%s months"
|
3556 |
msgstr[0] ""
|
3557 |
msgstr[1] ""
|
3558 |
|
3559 |
-
#: includes/common/formatting.php:
|
3560 |
msgid "%s week"
|
3561 |
msgid_plural "%s weeks"
|
3562 |
msgstr[0] ""
|
3563 |
msgstr[1] ""
|
3564 |
|
3565 |
-
#: includes/common/formatting.php:
|
3566 |
msgid "%s day"
|
3567 |
msgid_plural "%s days"
|
3568 |
msgstr[0] ""
|
3569 |
msgstr[1] ""
|
3570 |
|
3571 |
-
#: includes/common/formatting.php:
|
3572 |
msgid "%s hour"
|
3573 |
msgid_plural "%s hours"
|
3574 |
msgstr[0] ""
|
3575 |
msgstr[1] ""
|
3576 |
|
3577 |
-
#: includes/common/formatting.php:
|
3578 |
msgid "%s minute"
|
3579 |
msgid_plural "%s minutes"
|
3580 |
msgstr[0] ""
|
3581 |
msgstr[1] ""
|
3582 |
|
3583 |
-
#: includes/common/formatting.php:
|
3584 |
msgid "%s second"
|
3585 |
msgid_plural "%s seconds"
|
3586 |
msgstr[0] ""
|
3587 |
msgstr[1] ""
|
3588 |
|
3589 |
-
#: includes/common/functions.php:
|
3590 |
msgid "Pending: %s"
|
3591 |
msgstr ""
|
3592 |
|
3593 |
-
#: includes/common/functions.php:
|
3594 |
msgid "Private: %s"
|
3595 |
msgstr ""
|
3596 |
|
3597 |
-
#: includes/common/functions.php:
|
3598 |
msgid "Spammed: %s"
|
3599 |
msgstr ""
|
3600 |
|
3601 |
-
#: includes/common/functions.php:
|
3602 |
msgid "Trashed: %s"
|
3603 |
msgstr ""
|
3604 |
|
3605 |
-
#: includes/common/functions.php:
|
3606 |
msgid "<strong>ERROR</strong>: Invalid author name."
|
3607 |
msgstr ""
|
3608 |
|
3609 |
-
#: includes/common/functions.php:
|
3610 |
msgid "<strong>ERROR</strong>: Invalid email address."
|
3611 |
msgstr ""
|
3612 |
|
3613 |
-
#: includes/common/functions.php:
|
3614 |
msgid ""
|
3615 |
"%1$s wrote:\n"
|
3616 |
"\n"
|
@@ -3625,7 +3640,7 @@ msgid ""
|
|
3625 |
"Login and visit the topic to unsubscribe from these emails."
|
3626 |
msgstr ""
|
3627 |
|
3628 |
-
#: includes/common/functions.php:
|
3629 |
msgid ""
|
3630 |
"%1$s wrote:\n"
|
3631 |
"\n"
|
@@ -3640,127 +3655,127 @@ msgid ""
|
|
3640 |
"Login and visit the topic to unsubscribe from these emails."
|
3641 |
msgstr ""
|
3642 |
|
3643 |
-
#: includes/common/template.php:
|
3644 |
msgid "No topics available"
|
3645 |
msgstr ""
|
3646 |
|
3647 |
-
#: includes/common/template.php:
|
3648 |
msgid "No forums available"
|
3649 |
msgstr ""
|
3650 |
|
3651 |
-
#: includes/common/template.php:
|
3652 |
msgid "None available"
|
3653 |
msgstr ""
|
3654 |
|
3655 |
-
#: includes/common/template.php:
|
3656 |
msgid "Home"
|
3657 |
msgstr ""
|
3658 |
|
3659 |
-
#: includes/common/template.php:
|
3660 |
msgid "(Edit)"
|
3661 |
msgstr ""
|
3662 |
|
3663 |
-
#: includes/common/template.php:
|
3664 |
-
#: includes/common/template.php:
|
3665 |
#: templates/default/extras/taxonomy-topic-tag-edit.php:17
|
3666 |
#: templates/default/extras/taxonomy-topic-tag.php:17
|
3667 |
msgid "Topic Tag: %s"
|
3668 |
msgstr ""
|
3669 |
|
3670 |
-
#: includes/common/template.php:
|
3671 |
msgid "‹"
|
3672 |
msgstr ""
|
3673 |
|
3674 |
-
#: includes/common/template.php:
|
3675 |
msgid "›"
|
3676 |
msgstr ""
|
3677 |
|
3678 |
-
#: includes/common/template.php:
|
3679 |
msgid "Log Out"
|
3680 |
msgstr ""
|
3681 |
|
3682 |
-
#: includes/common/template.php:
|
3683 |
msgid "Forum Edit: %s"
|
3684 |
msgstr ""
|
3685 |
|
3686 |
-
#: includes/common/template.php:
|
3687 |
msgid "Topic Edit: %s"
|
3688 |
msgstr ""
|
3689 |
|
3690 |
-
#: includes/common/template.php:
|
3691 |
msgid "Reply Edit: %s"
|
3692 |
msgstr ""
|
3693 |
|
3694 |
-
#: includes/common/template.php:
|
3695 |
msgid "Topic Tag Edit: %s"
|
3696 |
msgstr ""
|
3697 |
|
3698 |
-
#: includes/common/template.php:
|
3699 |
msgid "Forum: %s"
|
3700 |
msgstr ""
|
3701 |
|
3702 |
-
#: includes/common/template.php:
|
3703 |
msgid "Topic: %s"
|
3704 |
msgstr ""
|
3705 |
|
3706 |
-
#: includes/common/template.php:
|
3707 |
msgid "Your Topics"
|
3708 |
msgstr ""
|
3709 |
|
3710 |
-
#: includes/common/template.php:
|
3711 |
#. translators: user's display name
|
3712 |
msgid "%s's Topics"
|
3713 |
msgstr ""
|
3714 |
|
3715 |
-
#: includes/common/template.php:
|
3716 |
msgid "Your Replies"
|
3717 |
msgstr ""
|
3718 |
|
3719 |
-
#: includes/common/template.php:
|
3720 |
#. translators: user's display name
|
3721 |
msgid "%s's Replies"
|
3722 |
msgstr ""
|
3723 |
|
3724 |
-
#: includes/common/template.php:
|
3725 |
msgid "Your Favorites"
|
3726 |
msgstr ""
|
3727 |
|
3728 |
-
#: includes/common/template.php:
|
3729 |
#: templates/default/bbpress/user-details.php:57
|
3730 |
#. translators: user's display name
|
3731 |
msgid "%s's Favorites"
|
3732 |
msgstr ""
|
3733 |
|
3734 |
-
#: includes/common/template.php:
|
3735 |
msgid "Your Subscriptions"
|
3736 |
msgstr ""
|
3737 |
|
3738 |
-
#: includes/common/template.php:
|
3739 |
#: templates/default/bbpress/user-details.php:67
|
3740 |
#. translators: user's display name
|
3741 |
msgid "%s's Subscriptions"
|
3742 |
msgstr ""
|
3743 |
|
3744 |
-
#: includes/common/template.php:
|
3745 |
msgid "Your Profile"
|
3746 |
msgstr ""
|
3747 |
|
3748 |
-
#: includes/common/template.php:
|
3749 |
#: templates/default/bbpress/user-details.php:30
|
3750 |
#. translators: user's display name
|
3751 |
msgid "%s's Profile"
|
3752 |
msgstr ""
|
3753 |
|
3754 |
-
#: includes/common/template.php:
|
3755 |
msgid "Edit Your Profile"
|
3756 |
msgstr ""
|
3757 |
|
3758 |
-
#: includes/common/template.php:
|
3759 |
#: templates/default/bbpress/user-details.php:74
|
3760 |
msgid "Edit %s's Profile"
|
3761 |
msgstr ""
|
3762 |
|
3763 |
-
#: includes/common/template.php:
|
3764 |
msgid "View: %s"
|
3765 |
msgstr ""
|
3766 |
|
@@ -3768,164 +3783,165 @@ msgstr ""
|
|
3768 |
msgid "A simple login form with optional links to sign-up and lost password pages."
|
3769 |
msgstr ""
|
3770 |
|
3771 |
-
#: includes/common/widgets.php:
|
3772 |
msgid "(bbPress) Login Widget"
|
3773 |
msgstr ""
|
3774 |
|
3775 |
-
#: includes/common/widgets.php:
|
3776 |
#: templates/default/bbpress/form-user-login.php:17
|
3777 |
#: templates/default/bbpress/form-user-login.php:38
|
3778 |
msgid "Log In"
|
3779 |
msgstr ""
|
3780 |
|
3781 |
-
#: includes/common/widgets.php:
|
3782 |
#: templates/default/bbpress/form-user-edit.php:107
|
3783 |
#: templates/default/bbpress/form-user-login.php:20
|
3784 |
#: templates/default/bbpress/form-user-register.php:29
|
3785 |
msgid "Username"
|
3786 |
msgstr ""
|
3787 |
|
3788 |
-
#: includes/common/widgets.php:
|
3789 |
#: templates/default/bbpress/form-user-login.php:25
|
3790 |
#: templates/default/bbpress/form-user-passwords.php:17
|
3791 |
msgid "Password"
|
3792 |
msgstr ""
|
3793 |
|
3794 |
-
#: includes/common/widgets.php:
|
3795 |
-
|
|
|
3796 |
msgstr ""
|
3797 |
|
3798 |
-
#: includes/common/widgets.php:
|
3799 |
#: templates/default/bbpress/form-user-register.php:42
|
3800 |
msgid "Register"
|
3801 |
msgstr ""
|
3802 |
|
3803 |
-
#: includes/common/widgets.php:
|
3804 |
#: templates/default/bbpress/form-user-lost-pass.php:17
|
3805 |
msgid "Lost Password"
|
3806 |
msgstr ""
|
3807 |
|
3808 |
-
#: includes/common/widgets.php:
|
3809 |
-
#: includes/common/widgets.php:
|
3810 |
-
#: includes/common/widgets.php:
|
3811 |
-
#: includes/common/widgets.php:
|
3812 |
msgid "Title:"
|
3813 |
msgstr ""
|
3814 |
|
3815 |
-
#: includes/common/widgets.php:
|
3816 |
msgid "Register URI:"
|
3817 |
msgstr ""
|
3818 |
|
3819 |
-
#: includes/common/widgets.php:
|
3820 |
msgid "Lost Password URI:"
|
3821 |
msgstr ""
|
3822 |
|
3823 |
-
#: includes/common/widgets.php:
|
3824 |
msgid "A list of registered optional topic views."
|
3825 |
msgstr ""
|
3826 |
|
3827 |
-
#: includes/common/widgets.php:
|
3828 |
msgid "(bbPress) Topic Views List"
|
3829 |
msgstr ""
|
3830 |
|
3831 |
-
#: includes/common/widgets.php:
|
3832 |
msgid "The bbPress forum search form."
|
3833 |
msgstr ""
|
3834 |
|
3835 |
-
#: includes/common/widgets.php:
|
3836 |
msgid "(bbPress) Forum Search Form"
|
3837 |
msgstr ""
|
3838 |
|
3839 |
-
#: includes/common/widgets.php:
|
3840 |
msgid "Search Forums"
|
3841 |
msgstr ""
|
3842 |
|
3843 |
-
#: includes/common/widgets.php:
|
3844 |
msgid "A list of forums with an option to set the parent."
|
3845 |
msgstr ""
|
3846 |
|
3847 |
-
#: includes/common/widgets.php:
|
3848 |
msgid "(bbPress) Forums List"
|
3849 |
msgstr ""
|
3850 |
|
3851 |
-
#: includes/common/widgets.php:
|
3852 |
msgid "Parent Forum ID:"
|
3853 |
msgstr ""
|
3854 |
|
3855 |
-
#: includes/common/widgets.php:
|
3856 |
msgid "\"0\" to show only root - \"any\" to show all"
|
3857 |
msgstr ""
|
3858 |
|
3859 |
-
#: includes/common/widgets.php:
|
3860 |
msgid "A list of recent topics, sorted by: newness, popularity, or recent replies."
|
3861 |
msgstr ""
|
3862 |
|
3863 |
-
#: includes/common/widgets.php:
|
3864 |
msgid "(bbPress) Recent Topics"
|
3865 |
msgstr ""
|
3866 |
|
3867 |
-
#: includes/common/widgets.php:
|
3868 |
msgid "Maximum topics to show:"
|
3869 |
msgstr ""
|
3870 |
|
3871 |
-
#: includes/common/widgets.php:
|
3872 |
msgid "Show post date:"
|
3873 |
msgstr ""
|
3874 |
|
3875 |
-
#: includes/common/widgets.php:
|
3876 |
msgid "Show topic author:"
|
3877 |
msgstr ""
|
3878 |
|
3879 |
-
#: includes/common/widgets.php:
|
3880 |
msgid "Order By:"
|
3881 |
msgstr ""
|
3882 |
|
3883 |
-
#: includes/common/widgets.php:
|
3884 |
msgid "Newest Topics"
|
3885 |
msgstr ""
|
3886 |
|
3887 |
-
#: includes/common/widgets.php:
|
3888 |
#: templates/default/extras/page-forum-statistics.php:34
|
3889 |
msgid "Popular Topics"
|
3890 |
msgstr ""
|
3891 |
|
3892 |
-
#: includes/common/widgets.php:
|
3893 |
msgid "Topics With Recent Replies"
|
3894 |
msgstr ""
|
3895 |
|
3896 |
-
#: includes/common/widgets.php:
|
3897 |
msgid "Recent Topics"
|
3898 |
msgstr ""
|
3899 |
|
3900 |
-
#: includes/common/widgets.php:
|
3901 |
msgid "Some statistics from your forum."
|
3902 |
msgstr ""
|
3903 |
|
3904 |
-
#: includes/common/widgets.php:
|
3905 |
msgid "(bbPress) Statistics"
|
3906 |
msgstr ""
|
3907 |
|
3908 |
-
#: includes/common/widgets.php:
|
3909 |
msgid "Forum Statistics"
|
3910 |
msgstr ""
|
3911 |
|
3912 |
-
#: includes/common/widgets.php:
|
3913 |
msgid "A list of the most recent replies."
|
3914 |
msgstr ""
|
3915 |
|
3916 |
-
#: includes/common/widgets.php:
|
3917 |
msgid "(bbPress) Recent Replies"
|
3918 |
msgstr ""
|
3919 |
|
3920 |
-
#: includes/common/widgets.php:
|
3921 |
msgid "Maximum replies to show:"
|
3922 |
msgstr ""
|
3923 |
|
3924 |
-
#: includes/common/widgets.php:
|
3925 |
msgid "Show reply author:"
|
3926 |
msgstr ""
|
3927 |
|
3928 |
-
#: includes/common/widgets.php:
|
3929 |
msgid "Recent Replies"
|
3930 |
msgstr ""
|
3931 |
|
@@ -3933,24 +3949,24 @@ msgstr ""
|
|
3933 |
msgid "Editable forum roles no longer exist."
|
3934 |
msgstr ""
|
3935 |
|
3936 |
-
#: includes/core/update.php:
|
3937 |
msgid "General"
|
3938 |
msgstr ""
|
3939 |
|
3940 |
-
#: includes/core/update.php:
|
3941 |
-
msgid "General
|
3942 |
msgstr ""
|
3943 |
|
3944 |
-
#: includes/core/update.php:
|
3945 |
msgid "Hello World!"
|
3946 |
msgstr ""
|
3947 |
|
3948 |
-
#: includes/core/update.php:
|
3949 |
-
msgid "
|
3950 |
msgstr ""
|
3951 |
|
3952 |
-
#: includes/core/update.php:
|
3953 |
-
msgid "
|
3954 |
msgstr ""
|
3955 |
|
3956 |
#: includes/extend/akismet.php:315
|
@@ -3991,7 +4007,7 @@ msgstr ""
|
|
3991 |
msgid "Akismet caught this post as spam"
|
3992 |
msgstr ""
|
3993 |
|
3994 |
-
#: includes/extend/akismet.php:499 includes/extend/akismet.php:
|
3995 |
msgid "Post status was changed to %s"
|
3996 |
msgstr ""
|
3997 |
|
@@ -3999,17 +4015,17 @@ msgstr ""
|
|
3999 |
msgid "Akismet cleared this post as not spam"
|
4000 |
msgstr ""
|
4001 |
|
4002 |
-
#: includes/extend/akismet.php:
|
4003 |
msgid ""
|
4004 |
"Akismet was unable to check this post (response: %s), will automatically "
|
4005 |
"retry again later."
|
4006 |
msgstr ""
|
4007 |
|
4008 |
-
#: includes/extend/akismet.php:
|
4009 |
msgid "Akismet History"
|
4010 |
msgstr ""
|
4011 |
|
4012 |
-
#: includes/extend/akismet.php:
|
4013 |
msgid "No recorded history. Akismet has not checked this post."
|
4014 |
msgstr ""
|
4015 |
|
@@ -4021,77 +4037,77 @@ msgstr ""
|
|
4021 |
msgid "New forum reply"
|
4022 |
msgstr ""
|
4023 |
|
4024 |
-
#: includes/extend/buddypress/activity.php:
|
4025 |
-
#: includes/extend/buddypress/functions.php:
|
4026 |
msgid "%1$s started the topic %2$s in the forum %3$s"
|
4027 |
msgstr ""
|
4028 |
|
4029 |
-
#: includes/extend/buddypress/activity.php:
|
4030 |
-
#: includes/extend/buddypress/functions.php:
|
4031 |
msgid "%1$s replied to the topic %2$s in the forum %3$s"
|
4032 |
msgstr ""
|
4033 |
|
4034 |
-
#: includes/extend/buddypress/groups.php:
|
4035 |
-
#: includes/extend/buddypress/groups.php:
|
4036 |
msgid "Group Forum Settings"
|
4037 |
msgstr ""
|
4038 |
|
4039 |
-
#: includes/extend/buddypress/groups.php:
|
4040 |
-
#: includes/extend/buddypress/groups.php:
|
4041 |
msgid ""
|
4042 |
"Create a discussion forum to allow members of this group to communicate in "
|
4043 |
"a structured, bulletin-board style fashion."
|
4044 |
msgstr ""
|
4045 |
|
4046 |
-
#: includes/extend/buddypress/groups.php:
|
4047 |
-
#: includes/extend/buddypress/groups.php:
|
4048 |
msgid "Yes. I want this group to have a forum."
|
4049 |
msgstr ""
|
4050 |
|
4051 |
-
#: includes/extend/buddypress/groups.php:
|
4052 |
msgid "Saying no will not delete existing forum content."
|
4053 |
msgstr ""
|
4054 |
|
4055 |
-
#: includes/extend/buddypress/groups.php:
|
4056 |
msgid "Group Forum:"
|
4057 |
msgstr ""
|
4058 |
|
4059 |
-
#: includes/extend/buddypress/groups.php:
|
4060 |
msgid "Network administrators can reconfigure which forum belongs to this group."
|
4061 |
msgstr ""
|
4062 |
|
4063 |
-
#: includes/extend/buddypress/groups.php:
|
4064 |
msgid "Save Settings"
|
4065 |
msgstr ""
|
4066 |
|
4067 |
-
#: includes/extend/buddypress/groups.php:
|
4068 |
-
#: includes/extend/buddypress/groups.php:
|
4069 |
-
#: includes/extend/buddypress/notifications.php:
|
4070 |
-
#: includes/forums/functions.php:
|
4071 |
-
#: includes/replies/functions.php:129 includes/replies/functions.php:
|
4072 |
-
#: includes/replies/functions.php:
|
4073 |
-
#: includes/topics/functions.php:
|
4074 |
-
#: includes/topics/functions.php:
|
4075 |
-
#: includes/topics/functions.php:
|
4076 |
-
#: includes/users/engagements.php:
|
4077 |
-
#: includes/users/functions.php:
|
4078 |
-
#: includes/users/functions.php:
|
4079 |
msgid "<strong>ERROR</strong>: Are you sure you wanted to do that?"
|
4080 |
msgstr ""
|
4081 |
|
4082 |
-
#: includes/extend/buddypress/groups.php:
|
4083 |
msgid "Group Forum"
|
4084 |
msgstr ""
|
4085 |
|
4086 |
-
#: includes/extend/buddypress/groups.php:
|
4087 |
msgid "This group does not currently have a forum."
|
4088 |
msgstr ""
|
4089 |
|
4090 |
-
#: includes/extend/buddypress/loader.php:
|
4091 |
msgid "Search Forums..."
|
4092 |
msgstr ""
|
4093 |
|
4094 |
-
#: includes/extend/buddypress/loader.php:
|
4095 |
#: templates/default/bbpress/user-subscriptions.php:41
|
4096 |
msgid "Subscribed Topics"
|
4097 |
msgstr ""
|
@@ -4112,85 +4128,91 @@ msgstr ""
|
|
4112 |
msgid "Topic Replies"
|
4113 |
msgstr ""
|
4114 |
|
4115 |
-
#: includes/extend/buddypress/notifications.php:
|
4116 |
msgid ""
|
4117 |
"<strong>ERROR</strong>: You do not have permission to mark notifications "
|
4118 |
"for that user."
|
4119 |
msgstr ""
|
4120 |
|
4121 |
-
#: includes/forums/functions.php:
|
4122 |
msgid "<strong>ERROR</strong>: You do not have permission to create new forums."
|
4123 |
msgstr ""
|
4124 |
|
4125 |
-
#: includes/forums/functions.php:
|
4126 |
msgid "<strong>ERROR</strong>: Your forum needs a title."
|
4127 |
msgstr ""
|
4128 |
|
4129 |
-
#: includes/forums/functions.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
4130 |
msgid "<strong>ERROR</strong>: Your forum description cannot be empty."
|
4131 |
msgstr ""
|
4132 |
|
4133 |
-
#: includes/forums/functions.php:
|
4134 |
msgid "<strong>ERROR</strong>: Your forum must have a parent."
|
4135 |
msgstr ""
|
4136 |
|
4137 |
-
#: includes/forums/functions.php:
|
4138 |
msgid ""
|
4139 |
"<strong>ERROR</strong>: This forum is a category. No forums can be created "
|
4140 |
"in this forum."
|
4141 |
msgstr ""
|
4142 |
|
4143 |
-
#: includes/forums/functions.php:
|
4144 |
msgid "<strong>ERROR</strong>: This forum has been closed to new forums."
|
4145 |
msgstr ""
|
4146 |
|
4147 |
-
#: includes/forums/functions.php:
|
4148 |
msgid ""
|
4149 |
"<strong>ERROR</strong>: This forum is private and you do not have the "
|
4150 |
"capability to read or create new forums in it."
|
4151 |
msgstr ""
|
4152 |
|
4153 |
-
#: includes/forums/functions.php:
|
4154 |
msgid ""
|
4155 |
"<strong>ERROR</strong>: This forum is hidden and you do not have the "
|
4156 |
"capability to read or create new forums in it."
|
4157 |
msgstr ""
|
4158 |
|
4159 |
-
#: includes/forums/functions.php:
|
4160 |
-
#: includes/topics/functions.php:
|
4161 |
msgid "<strong>ERROR</strong>: Slow down; you move too fast."
|
4162 |
msgstr ""
|
4163 |
|
4164 |
-
#: includes/forums/functions.php:
|
4165 |
msgid "<strong>ERROR</strong>: This forum already exists."
|
4166 |
msgstr ""
|
4167 |
|
4168 |
-
#: includes/forums/functions.php:
|
4169 |
msgid "<strong>ERROR</strong>: Your forum cannot be created at this time."
|
4170 |
msgstr ""
|
4171 |
|
4172 |
-
#: includes/forums/functions.php:
|
4173 |
-
#: includes/topics/functions.php:
|
4174 |
msgid "<strong>ERROR</strong>: The following problem(s) occurred: %s"
|
4175 |
msgstr ""
|
4176 |
|
4177 |
-
#: includes/forums/functions.php:
|
4178 |
msgid "<strong>ERROR</strong>: The forum was not created."
|
4179 |
msgstr ""
|
4180 |
|
4181 |
-
#: includes/forums/functions.php:
|
4182 |
msgid "<strong>ERROR</strong>: Forum ID not found."
|
4183 |
msgstr ""
|
4184 |
|
4185 |
-
#: includes/forums/functions.php:
|
4186 |
msgid "<strong>ERROR</strong>: The forum you want to edit was not found."
|
4187 |
msgstr ""
|
4188 |
|
4189 |
-
#: includes/forums/functions.php:
|
4190 |
msgid "<strong>ERROR</strong>: You do not have permission to edit that forum."
|
4191 |
msgstr ""
|
4192 |
|
4193 |
-
#: includes/forums/functions.php:
|
4194 |
msgid "<strong>ERROR</strong>: Your forum cannot be edited at this time."
|
4195 |
msgstr ""
|
4196 |
|
@@ -4243,67 +4265,103 @@ msgstr ""
|
|
4243 |
msgid "Parent Forum:"
|
4244 |
msgstr ""
|
4245 |
|
4246 |
-
#: includes/forums/template.php:
|
4247 |
-
|
4248 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4249 |
msgstr ""
|
4250 |
|
4251 |
-
#: includes/forums/template.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4252 |
#: includes/users/template.php:1273
|
|
|
|
|
|
|
|
|
|
|
4253 |
msgid "Unsubscribe"
|
4254 |
msgstr ""
|
4255 |
|
4256 |
-
#: includes/forums/template.php:
|
4257 |
msgid "%s topic"
|
4258 |
msgid_plural "%s topics"
|
4259 |
msgstr[0] ""
|
4260 |
msgstr[1] ""
|
4261 |
|
4262 |
-
#: includes/forums/template.php:
|
4263 |
msgid "(+%s hidden)"
|
4264 |
msgid_plural "(+%s hidden)"
|
4265 |
msgstr[0] ""
|
4266 |
msgstr[1] ""
|
4267 |
|
4268 |
-
#: includes/forums/template.php:
|
4269 |
msgid "%s reply"
|
4270 |
msgid_plural "%s replies"
|
4271 |
msgstr[0] ""
|
4272 |
msgstr[1] ""
|
4273 |
|
4274 |
-
#: includes/forums/template.php:
|
4275 |
msgid "This category has %1$s, %2$s, and was last updated %3$s by %4$s."
|
4276 |
msgstr ""
|
4277 |
|
4278 |
-
#: includes/forums/template.php:
|
4279 |
msgid "This forum has %1$s, %2$s, and was last updated %3$s by %4$s."
|
4280 |
msgstr ""
|
4281 |
|
4282 |
-
#: includes/forums/template.php:
|
4283 |
msgid "This category has %1$s, and was last updated %2$s by %3$s."
|
4284 |
msgstr ""
|
4285 |
|
4286 |
-
#: includes/forums/template.php:
|
4287 |
msgid "This forum has %1$s, and was last updated %2$s by %3$s."
|
4288 |
msgstr ""
|
4289 |
|
4290 |
-
#: includes/forums/template.php:
|
4291 |
msgid "This category has %1$s and %2$s."
|
4292 |
msgstr ""
|
4293 |
|
4294 |
-
#: includes/forums/template.php:
|
4295 |
msgid "This forum has %1$s and %2$s."
|
4296 |
msgstr ""
|
4297 |
|
4298 |
-
#: includes/forums/template.php:
|
4299 |
msgid "This category has %1$s."
|
4300 |
msgstr ""
|
4301 |
|
4302 |
-
#: includes/forums/template.php:
|
4303 |
msgid "This forum has %1$s."
|
4304 |
msgstr ""
|
4305 |
|
4306 |
-
#: includes/forums/template.php:
|
4307 |
msgid "This forum is empty."
|
4308 |
msgstr ""
|
4309 |
|
@@ -4328,176 +4386,176 @@ msgid "<strong>ERROR</strong>: Topic does not exist."
|
|
4328 |
msgstr ""
|
4329 |
|
4330 |
#: includes/replies/functions.php:202 includes/replies/functions.php:216
|
4331 |
-
#: includes/topics/functions.php:
|
4332 |
-
#: includes/topics/functions.php:
|
4333 |
msgid "<strong>ERROR</strong>: Forum ID is missing."
|
4334 |
msgstr ""
|
4335 |
|
4336 |
-
#: includes/replies/functions.php:206 includes/topics/functions.php:
|
4337 |
msgid "<strong>ERROR</strong>: Forum ID must be a number."
|
4338 |
msgstr ""
|
4339 |
|
4340 |
-
#: includes/replies/functions.php:220 includes/topics/functions.php:
|
4341 |
msgid "<strong>ERROR</strong>: Forum ID cannot be a negative number."
|
4342 |
msgstr ""
|
4343 |
|
4344 |
-
#: includes/replies/functions.php:224 includes/topics/functions.php:
|
4345 |
msgid "<strong>ERROR</strong>: Forum does not exist."
|
4346 |
msgstr ""
|
4347 |
|
4348 |
-
#: includes/replies/functions.php:238 includes/replies/functions.php:
|
4349 |
msgid ""
|
4350 |
"<strong>ERROR</strong>: This forum is a category. No replies can be created "
|
4351 |
"in this forum."
|
4352 |
msgstr ""
|
4353 |
|
4354 |
-
#: includes/replies/functions.php:245 includes/replies/functions.php:
|
4355 |
msgid "<strong>ERROR</strong>: This forum has been closed to new replies."
|
4356 |
msgstr ""
|
4357 |
|
4358 |
-
#: includes/replies/functions.php:250 includes/replies/functions.php:
|
4359 |
msgid ""
|
4360 |
"<strong>ERROR</strong>: This forum is private and you do not have the "
|
4361 |
"capability to read or create new replies in it."
|
4362 |
msgstr ""
|
4363 |
|
4364 |
-
#: includes/replies/functions.php:254 includes/replies/functions.php:
|
4365 |
msgid ""
|
4366 |
"<strong>ERROR</strong>: This forum is hidden and you do not have the "
|
4367 |
"capability to read or create new replies in it."
|
4368 |
msgstr ""
|
4369 |
|
4370 |
-
#: includes/replies/functions.php:
|
4371 |
msgid "<strong>ERROR</strong>: Your reply cannot be empty."
|
4372 |
msgstr ""
|
4373 |
|
4374 |
-
#: includes/replies/functions.php:
|
4375 |
msgid ""
|
4376 |
"<strong>ERROR</strong>: Duplicate reply detected; it looks as though "
|
4377 |
"you’ve already said that."
|
4378 |
msgstr ""
|
4379 |
|
4380 |
-
#: includes/replies/functions.php:
|
4381 |
msgid "<strong>ERROR</strong>: Your reply cannot be created at this time."
|
4382 |
msgstr ""
|
4383 |
|
4384 |
-
#: includes/replies/functions.php:
|
4385 |
msgid "<strong>ERROR</strong>: Topic is closed."
|
4386 |
msgstr ""
|
4387 |
|
4388 |
-
#: includes/replies/functions.php:
|
4389 |
msgid "<strong>ERROR</strong>: There was a problem adding the tags to the topic."
|
4390 |
msgstr ""
|
4391 |
|
4392 |
-
#: includes/replies/functions.php:
|
4393 |
msgid "<strong>ERROR</strong>: The reply was not created."
|
4394 |
msgstr ""
|
4395 |
|
4396 |
-
#: includes/replies/functions.php:
|
4397 |
msgid "<strong>ERROR</strong>: Reply ID not found."
|
4398 |
msgstr ""
|
4399 |
|
4400 |
-
#: includes/replies/functions.php:
|
4401 |
msgid "<strong>ERROR</strong>: The reply you want to edit was not found."
|
4402 |
msgstr ""
|
4403 |
|
4404 |
-
#: includes/replies/functions.php:
|
4405 |
msgid "<strong>ERROR</strong>: You do not have permission to edit that reply."
|
4406 |
msgstr ""
|
4407 |
|
4408 |
-
#: includes/replies/functions.php:
|
4409 |
msgid "<strong>ERROR</strong>: Your reply cannot be edited at this time."
|
4410 |
msgstr ""
|
4411 |
|
4412 |
-
#: includes/replies/functions.php:
|
4413 |
msgid "<strong>ERROR</strong>: A reply ID is required"
|
4414 |
msgstr ""
|
4415 |
|
4416 |
-
#: includes/replies/functions.php:
|
4417 |
msgid "<strong>ERROR</strong>: The reply you want to move was not found."
|
4418 |
msgstr ""
|
4419 |
|
4420 |
-
#: includes/replies/functions.php:
|
4421 |
msgid "<strong>ERROR</strong>: The topic you want to move from was not found."
|
4422 |
msgstr ""
|
4423 |
|
4424 |
-
#: includes/replies/functions.php:
|
4425 |
-
#: includes/topics/functions.php:
|
4426 |
msgid "<strong>ERROR</strong>: You do not have permission to edit the source topic."
|
4427 |
msgstr ""
|
4428 |
|
4429 |
-
#: includes/replies/functions.php:
|
4430 |
msgid "<strong>ERROR</strong>: You need to choose a valid move option."
|
4431 |
msgstr ""
|
4432 |
|
4433 |
-
#: includes/replies/functions.php:
|
4434 |
msgid "<strong>ERROR</strong>: A topic ID is required."
|
4435 |
msgstr ""
|
4436 |
|
4437 |
-
#: includes/replies/functions.php:
|
4438 |
msgid "<strong>ERROR</strong>: The topic you want to move to was not found."
|
4439 |
msgstr ""
|
4440 |
|
4441 |
-
#: includes/replies/functions.php:
|
4442 |
-
#: includes/topics/functions.php:
|
4443 |
msgid ""
|
4444 |
"<strong>ERROR</strong>: You do not have permission to edit the destination "
|
4445 |
"topic."
|
4446 |
msgstr ""
|
4447 |
|
4448 |
-
#: includes/replies/functions.php:
|
4449 |
msgid ""
|
4450 |
"<strong>ERROR</strong>: There was a problem converting the reply into the "
|
4451 |
"topic. Please try again."
|
4452 |
msgstr ""
|
4453 |
|
4454 |
-
#: includes/replies/functions.php:
|
4455 |
msgid ""
|
4456 |
"<strong>ERROR</strong>: You do not have permission to create new topics. "
|
4457 |
"The reply could not be converted into a topic."
|
4458 |
msgstr ""
|
4459 |
|
4460 |
-
#: includes/replies/functions.php:
|
4461 |
msgid "<strong>ERROR:</strong> This reply could not be found or no longer exists."
|
4462 |
msgstr ""
|
4463 |
|
4464 |
-
#: includes/replies/functions.php:
|
4465 |
msgid "<strong>ERROR:</strong> You do not have permission to do that."
|
4466 |
msgstr ""
|
4467 |
|
4468 |
-
#: includes/replies/functions.php:
|
4469 |
msgid "<strong>ERROR</strong>: There was a problem approving the reply."
|
4470 |
msgstr ""
|
4471 |
|
4472 |
-
#: includes/replies/functions.php:
|
4473 |
msgid "<strong>ERROR</strong>: There was a problem unapproving the reply."
|
4474 |
msgstr ""
|
4475 |
|
4476 |
-
#: includes/replies/functions.php:
|
4477 |
msgid "<strong>ERROR</strong>: There was a problem unmarking the reply as spam."
|
4478 |
msgstr ""
|
4479 |
|
4480 |
-
#: includes/replies/functions.php:
|
4481 |
msgid "<strong>ERROR</strong>: There was a problem marking the reply as spam."
|
4482 |
msgstr ""
|
4483 |
|
4484 |
-
#: includes/replies/functions.php:
|
4485 |
msgid "<strong>ERROR</strong>: There was a problem trashing the reply."
|
4486 |
msgstr ""
|
4487 |
|
4488 |
-
#: includes/replies/functions.php:
|
4489 |
msgid "<strong>ERROR</strong>: There was a problem untrashing the reply."
|
4490 |
msgstr ""
|
4491 |
|
4492 |
-
#: includes/replies/functions.php:
|
4493 |
msgid "<strong>ERROR</strong>: There was a problem deleting the reply."
|
4494 |
msgstr ""
|
4495 |
|
4496 |
-
#: includes/replies/functions.php:
|
4497 |
msgid "All Posts"
|
4498 |
msgstr ""
|
4499 |
|
4500 |
-
#: includes/replies/functions.php:
|
4501 |
msgid "Replies: %s"
|
4502 |
msgstr ""
|
4503 |
|
@@ -4545,85 +4603,129 @@ msgstr ""
|
|
4545 |
msgid "Replies list navigation"
|
4546 |
msgstr ""
|
4547 |
|
4548 |
-
#: includes/replies/template.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4549 |
#: templates/default/bbpress/form-reply.php:30
|
4550 |
msgid "Reply To: %s"
|
4551 |
msgstr ""
|
4552 |
|
4553 |
-
#: includes/replies/template.php:
|
4554 |
msgid "This reply was modified %1$s by %2$s. Reason: %3$s"
|
4555 |
msgstr ""
|
4556 |
|
4557 |
-
#: includes/replies/template.php:
|
4558 |
msgid "This reply was modified %1$s by %2$s."
|
4559 |
msgstr ""
|
4560 |
|
4561 |
-
#: includes/replies/template.php:
|
4562 |
-
#: includes/users/template.php:
|
4563 |
msgid "View %s's profile"
|
4564 |
msgstr ""
|
4565 |
|
4566 |
-
#: includes/replies/template.php:
|
4567 |
-
#: includes/users/template.php:
|
4568 |
msgid "Visit %s's website"
|
4569 |
msgstr ""
|
4570 |
|
4571 |
-
#: includes/replies/template.php:
|
4572 |
#: templates/default/bbpress/form-user-passwords.php:31
|
4573 |
msgid "Cancel"
|
4574 |
msgstr ""
|
4575 |
|
4576 |
-
#: includes/replies/template.php:
|
4577 |
#: templates/default/bbpress/form-topic-tag.php:100
|
4578 |
#: templates/default/bbpress/form-topic-tag.php:117
|
4579 |
msgid "Delete"
|
4580 |
msgstr ""
|
4581 |
|
4582 |
-
#: includes/replies/template.php:
|
4583 |
msgid "Are you sure you want to delete that permanently?"
|
4584 |
msgstr ""
|
4585 |
|
4586 |
-
#: includes/replies/template.php:
|
4587 |
msgid "Move"
|
4588 |
msgstr ""
|
4589 |
|
4590 |
-
#: includes/replies/template.php:
|
4591 |
msgid "Move this reply"
|
4592 |
msgstr ""
|
4593 |
|
4594 |
-
#: includes/replies/template.php:
|
4595 |
msgid "Split"
|
4596 |
msgstr ""
|
4597 |
|
4598 |
-
#: includes/replies/template.php:
|
4599 |
msgid "Split the topic from this reply"
|
4600 |
msgstr ""
|
4601 |
|
4602 |
-
#: includes/replies/template.php:
|
4603 |
msgid "Viewing %1$s reply thread"
|
4604 |
msgid_plural "Viewing %1$s reply threads"
|
4605 |
msgstr[0] ""
|
4606 |
msgstr[1] ""
|
4607 |
|
4608 |
-
#: includes/replies/template.php:
|
4609 |
msgid "Viewing %1$s reply"
|
4610 |
msgid_plural "Viewing %1$s replies"
|
4611 |
msgstr[0] ""
|
4612 |
msgstr[1] ""
|
4613 |
|
4614 |
-
#: includes/replies/template.php:
|
4615 |
msgid "Viewing %2$s replies (of %4$s total)"
|
4616 |
msgid_plural "Viewing %1$s replies - %2$s through %3$s (of %4$s total)"
|
4617 |
msgstr[0] ""
|
4618 |
msgstr[1] ""
|
4619 |
|
4620 |
-
#: includes/replies/template.php:
|
4621 |
msgid "Viewing %1$s post"
|
4622 |
msgid_plural "Viewing %1$s posts"
|
4623 |
msgstr[0] ""
|
4624 |
msgstr[1] ""
|
4625 |
|
4626 |
-
#: includes/replies/template.php:
|
4627 |
msgid "Viewing %2$s post (of %4$s total)"
|
4628 |
msgid_plural "Viewing %1$s posts - %2$s through %3$s (of %4$s total)"
|
4629 |
msgstr[0] ""
|
@@ -4633,13 +4735,13 @@ msgstr[1] ""
|
|
4633 |
msgid "Search Results for '%s'"
|
4634 |
msgstr ""
|
4635 |
|
4636 |
-
#: includes/search/template.php:
|
4637 |
msgid "Viewing %1$s result"
|
4638 |
msgid_plural "Viewing %1$s results"
|
4639 |
msgstr[0] ""
|
4640 |
msgstr[1] ""
|
4641 |
|
4642 |
-
#: includes/search/template.php:
|
4643 |
msgid "Viewing %2$s results (of %4$s total)"
|
4644 |
msgid_plural "Viewing %1$s results - %2$s through %3$s (of %4$s total)"
|
4645 |
msgstr[0] ""
|
@@ -4649,189 +4751,189 @@ msgstr[1] ""
|
|
4649 |
msgid "<strong>ERROR</strong>: You do not have permission to create new topics."
|
4650 |
msgstr ""
|
4651 |
|
4652 |
-
#: includes/topics/functions.php:158 includes/topics/functions.php:
|
4653 |
msgid "<strong>ERROR</strong>: Your topic needs a title."
|
4654 |
msgstr ""
|
4655 |
|
4656 |
-
#: includes/topics/functions.php:
|
4657 |
msgid "<strong>ERROR</strong>: Your topic cannot be empty."
|
4658 |
msgstr ""
|
4659 |
|
4660 |
-
#: includes/topics/functions.php:
|
4661 |
msgid ""
|
4662 |
"<strong>ERROR</strong>: This forum is a category. No topics can be created "
|
4663 |
"in this forum."
|
4664 |
msgstr ""
|
4665 |
|
4666 |
-
#: includes/topics/functions.php:
|
4667 |
msgid "<strong>ERROR</strong>: This forum has been closed to new topics."
|
4668 |
msgstr ""
|
4669 |
|
4670 |
-
#: includes/topics/functions.php:
|
4671 |
msgid ""
|
4672 |
"<strong>ERROR</strong>: This forum is private and you do not have the "
|
4673 |
"capability to read or create new topics in it."
|
4674 |
msgstr ""
|
4675 |
|
4676 |
-
#: includes/topics/functions.php:
|
4677 |
msgid ""
|
4678 |
"<strong>ERROR</strong>: This forum is hidden and you do not have the "
|
4679 |
"capability to read or create new topics in it."
|
4680 |
msgstr ""
|
4681 |
|
4682 |
-
#: includes/topics/functions.php:
|
4683 |
msgid ""
|
4684 |
"<strong>ERROR</strong>: Duplicate topic detected; it looks as though "
|
4685 |
"you’ve already said that."
|
4686 |
msgstr ""
|
4687 |
|
4688 |
-
#: includes/topics/functions.php:
|
4689 |
msgid "<strong>ERROR</strong>: Your topic cannot be created at this time."
|
4690 |
msgstr ""
|
4691 |
|
4692 |
-
#: includes/topics/functions.php:
|
4693 |
msgid "<strong>ERROR</strong>: The topic was not created."
|
4694 |
msgstr ""
|
4695 |
|
4696 |
-
#: includes/topics/functions.php:
|
4697 |
msgid "<strong>ERROR</strong>: Topic ID not found."
|
4698 |
msgstr ""
|
4699 |
|
4700 |
-
#: includes/topics/functions.php:
|
4701 |
msgid "<strong>ERROR</strong>: The topic you want to edit was not found."
|
4702 |
msgstr ""
|
4703 |
|
4704 |
-
#: includes/topics/functions.php:
|
4705 |
msgid "<strong>ERROR</strong>: You do not have permission to edit that topic."
|
4706 |
msgstr ""
|
4707 |
|
4708 |
-
#: includes/topics/functions.php:
|
4709 |
msgid ""
|
4710 |
"<strong>ERROR</strong>: This forum is a category. No topics can be created "
|
4711 |
"in it."
|
4712 |
msgstr ""
|
4713 |
|
4714 |
-
#: includes/topics/functions.php:
|
4715 |
msgid "<strong>ERROR</strong>: Your topic cannot be edited at this time."
|
4716 |
msgstr ""
|
4717 |
|
4718 |
-
#: includes/topics/functions.php:
|
4719 |
msgid "<strong>ERROR</strong>: The topic you want to merge was not found."
|
4720 |
msgstr ""
|
4721 |
|
4722 |
-
#: includes/topics/functions.php:
|
4723 |
msgid "<strong>ERROR</strong>: Destination topic ID not found."
|
4724 |
msgstr ""
|
4725 |
|
4726 |
-
#: includes/topics/functions.php:
|
4727 |
msgid "<strong>ERROR</strong>: The topic you want to merge to was not found."
|
4728 |
msgstr ""
|
4729 |
|
4730 |
-
#: includes/topics/functions.php:
|
4731 |
msgid "<strong>ERROR</strong>: A reply ID is required."
|
4732 |
msgstr ""
|
4733 |
|
4734 |
-
#: includes/topics/functions.php:
|
4735 |
msgid "<strong>ERROR</strong>: The reply you want to split from was not found."
|
4736 |
msgstr ""
|
4737 |
|
4738 |
-
#: includes/topics/functions.php:
|
4739 |
msgid "<strong>ERROR</strong>: The topic you want to split was not found."
|
4740 |
msgstr ""
|
4741 |
|
4742 |
-
#: includes/topics/functions.php:
|
4743 |
msgid "<strong>ERROR</strong>: You need to choose a valid split option."
|
4744 |
msgstr ""
|
4745 |
|
4746 |
-
#: includes/topics/functions.php:
|
4747 |
msgid "<strong>ERROR</strong>: The topic you want to split to was not found."
|
4748 |
msgstr ""
|
4749 |
|
4750 |
-
#: includes/topics/functions.php:
|
4751 |
msgid ""
|
4752 |
"<strong>ERROR</strong>: The following problem(s) have been found while "
|
4753 |
"getting the tag: %s"
|
4754 |
msgstr ""
|
4755 |
|
4756 |
-
#: includes/topics/functions.php:
|
4757 |
msgid "<strong>ERROR</strong>: You do not have permission to edit the topic tags."
|
4758 |
msgstr ""
|
4759 |
|
4760 |
-
#: includes/topics/functions.php:
|
4761 |
msgid "<strong>ERROR</strong>: You need to enter a tag name."
|
4762 |
msgstr ""
|
4763 |
|
4764 |
-
#: includes/topics/functions.php:
|
4765 |
msgid ""
|
4766 |
"<strong>ERROR</strong>: The following problem(s) have been found while "
|
4767 |
"updating the tag: %s"
|
4768 |
msgstr ""
|
4769 |
|
4770 |
-
#: includes/topics/functions.php:
|
4771 |
msgid ""
|
4772 |
"<strong>ERROR</strong>: The following problem(s) have been found while "
|
4773 |
"merging the tags: %s"
|
4774 |
msgstr ""
|
4775 |
|
4776 |
-
#: includes/topics/functions.php:
|
4777 |
msgid "<strong>ERROR</strong>: The tags which are being merged can not be the same."
|
4778 |
msgstr ""
|
4779 |
|
4780 |
-
#: includes/topics/functions.php:
|
4781 |
msgid "<strong>ERROR</strong>: You do not have permission to delete the topic tags."
|
4782 |
msgstr ""
|
4783 |
|
4784 |
-
#: includes/topics/functions.php:
|
4785 |
msgid ""
|
4786 |
"<strong>ERROR</strong>: The following problem(s) have been found while "
|
4787 |
"deleting the tag: %s"
|
4788 |
msgstr ""
|
4789 |
|
4790 |
-
#: includes/topics/functions.php:
|
4791 |
msgid "<strong>ERROR:</strong> This topic could not be found or no longer exists."
|
4792 |
msgstr ""
|
4793 |
|
4794 |
-
#: includes/topics/functions.php:
|
4795 |
msgid "<strong>ERROR</strong>: There was a problem approving the topic."
|
4796 |
msgstr ""
|
4797 |
|
4798 |
-
#: includes/topics/functions.php:
|
4799 |
msgid "<strong>ERROR</strong>: There was a problem unapproving the topic."
|
4800 |
msgstr ""
|
4801 |
|
4802 |
-
#: includes/topics/functions.php:
|
4803 |
msgid "<strong>ERROR</strong>: There was a problem closing the topic."
|
4804 |
msgstr ""
|
4805 |
|
4806 |
-
#: includes/topics/functions.php:
|
4807 |
msgid "<strong>ERROR</strong>: There was a problem opening the topic."
|
4808 |
msgstr ""
|
4809 |
|
4810 |
-
#: includes/topics/functions.php:
|
4811 |
msgid "<strong>ERROR</strong>: There was a problem unsticking the topic."
|
4812 |
msgstr ""
|
4813 |
|
4814 |
-
#: includes/topics/functions.php:
|
4815 |
msgid "<strong>ERROR</strong>: There was a problem sticking the topic."
|
4816 |
msgstr ""
|
4817 |
|
4818 |
-
#: includes/topics/functions.php:
|
4819 |
msgid "<strong>ERROR</strong>: There was a problem unmarking the topic as spam."
|
4820 |
msgstr ""
|
4821 |
|
4822 |
-
#: includes/topics/functions.php:
|
4823 |
msgid "<strong>ERROR</strong>: There was a problem marking the topic as spam."
|
4824 |
msgstr ""
|
4825 |
|
4826 |
-
#: includes/topics/functions.php:
|
4827 |
msgid "<strong>ERROR</strong>: There was a problem trashing the topic."
|
4828 |
msgstr ""
|
4829 |
|
4830 |
-
#: includes/topics/functions.php:
|
4831 |
msgid "<strong>ERROR</strong>: There was a problem untrashing the topic."
|
4832 |
msgstr ""
|
4833 |
|
4834 |
-
#: includes/topics/functions.php:
|
4835 |
msgid "<strong>ERROR</strong>: There was a problem deleting the topic."
|
4836 |
msgstr ""
|
4837 |
|
@@ -4879,181 +4981,249 @@ msgstr ""
|
|
4879 |
msgid "Topics list navigation"
|
4880 |
msgstr ""
|
4881 |
|
4882 |
-
#: includes/topics/template.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4883 |
msgid "This topic was modified %1$s by %2$s. Reason: %3$s"
|
4884 |
msgstr ""
|
4885 |
|
4886 |
-
#: includes/topics/template.php:
|
4887 |
msgid "This topic was modified %1$s by %2$s."
|
4888 |
msgstr ""
|
4889 |
|
4890 |
-
#: includes/topics/template.php:
|
4891 |
msgid "Favorite"
|
4892 |
msgstr ""
|
4893 |
|
4894 |
-
#: includes/topics/template.php:
|
4895 |
msgid "Unfavorite"
|
4896 |
msgstr ""
|
4897 |
|
4898 |
-
#: includes/topics/template.php:
|
4899 |
msgid "Tagged:"
|
4900 |
msgstr ""
|
4901 |
|
4902 |
-
#: includes/topics/template.php:
|
4903 |
#: templates/default/bbpress/form-topic-tag.php:69
|
4904 |
#: templates/default/bbpress/form-topic-tag.php:85
|
4905 |
msgid "Merge"
|
4906 |
msgstr ""
|
4907 |
|
4908 |
-
#: includes/topics/template.php:
|
4909 |
msgid "Viewing %1$s topic"
|
4910 |
msgid_plural "Viewing %1$s topics"
|
4911 |
msgstr[0] ""
|
4912 |
msgstr[1] ""
|
4913 |
|
4914 |
-
#: includes/topics/template.php:
|
4915 |
msgid "Viewing topic %2$s (of %4$s total)"
|
4916 |
msgid_plural "Viewing %1$s topics - %2$s through %3$s (of %4$s total)"
|
4917 |
msgstr[0] ""
|
4918 |
msgstr[1] ""
|
4919 |
|
4920 |
-
#: includes/topics/template.php:
|
4921 |
msgid "This topic is marked as spam."
|
4922 |
msgstr ""
|
4923 |
|
4924 |
-
#: includes/topics/template.php:
|
4925 |
msgid "This topic is in the trash."
|
4926 |
msgstr ""
|
4927 |
|
4928 |
-
#: includes/topics/template.php:
|
4929 |
msgid "%s voice"
|
4930 |
msgid_plural "%s voices"
|
4931 |
msgstr[0] ""
|
4932 |
msgstr[1] ""
|
4933 |
|
4934 |
-
#: includes/topics/template.php:
|
4935 |
msgid "This topic has %1$s, %2$s, and was last updated %3$s by %4$s."
|
4936 |
msgstr ""
|
4937 |
|
4938 |
-
#: includes/topics/template.php:
|
4939 |
msgid "This topic has %1$s and %2$s."
|
4940 |
msgstr ""
|
4941 |
|
4942 |
-
#: includes/topics/template.php:
|
4943 |
msgid "This topic has no replies."
|
4944 |
msgstr ""
|
4945 |
|
4946 |
-
#: includes/topics/template.php:
|
4947 |
msgid "Search Tags"
|
4948 |
msgstr ""
|
4949 |
|
4950 |
-
#: includes/topics/template.php:
|
4951 |
msgid "Popular Tags"
|
4952 |
msgstr ""
|
4953 |
|
4954 |
-
#: includes/topics/template.php:
|
4955 |
msgid "All Tags"
|
4956 |
msgstr ""
|
4957 |
|
4958 |
-
#: includes/topics/template.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4959 |
msgid "Edit Tag"
|
4960 |
msgstr ""
|
4961 |
|
4962 |
-
#: includes/topics/template.php:
|
|
|
|
|
|
|
|
|
4963 |
msgid "Update Tag"
|
4964 |
msgstr ""
|
4965 |
|
4966 |
-
#: includes/topics/template.php:
|
4967 |
msgid "Add New Tag"
|
4968 |
msgstr ""
|
4969 |
|
4970 |
-
#: includes/topics/template.php:
|
4971 |
msgid "New Tag Name"
|
4972 |
msgstr ""
|
4973 |
|
4974 |
-
#: includes/topics/template.php:
|
4975 |
-
msgid "
|
4976 |
msgstr ""
|
4977 |
|
4978 |
-
#: includes/topics/template.php:
|
4979 |
-
msgid "
|
4980 |
msgstr ""
|
4981 |
|
4982 |
-
#: includes/topics/template.php:
|
4983 |
-
msgid "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4984 |
msgstr ""
|
4985 |
|
4986 |
-
#: includes/topics/template.php:
|
4987 |
msgid "Topic tags list navigation"
|
4988 |
msgstr ""
|
4989 |
|
4990 |
-
#: includes/topics/template.php:
|
4991 |
-
msgid "
|
|
|
|
|
|
|
|
|
4992 |
msgstr ""
|
4993 |
|
4994 |
-
#: includes/topics/template.php:
|
|
|
|
|
|
|
|
|
4995 |
msgid "Nobody"
|
4996 |
msgstr ""
|
4997 |
|
4998 |
-
#: includes/topics/template.php:
|
4999 |
msgid "%1$s is currently editing this topic."
|
5000 |
msgstr ""
|
5001 |
|
5002 |
-
#: includes/users/engagements.php:
|
5003 |
msgid ""
|
5004 |
"<strong>ERROR</strong>: No topic was found. Which topic are you "
|
5005 |
"marking/unmarking as favorite?"
|
5006 |
msgstr ""
|
5007 |
|
5008 |
-
#: includes/users/engagements.php:
|
5009 |
msgid ""
|
5010 |
"<strong>ERROR</strong>: You do not have permission to edit favorites for "
|
5011 |
"that user!."
|
5012 |
msgstr ""
|
5013 |
|
5014 |
-
#: includes/users/engagements.php:
|
5015 |
msgid ""
|
5016 |
"<strong>ERROR</strong>: There was a problem removing that topic from "
|
5017 |
"favorites."
|
5018 |
msgstr ""
|
5019 |
|
5020 |
-
#: includes/users/engagements.php:
|
5021 |
msgid "<strong>ERROR</strong>: There was a problem favoriting that topic."
|
5022 |
msgstr ""
|
5023 |
|
5024 |
-
#: includes/users/engagements.php:
|
5025 |
msgid ""
|
5026 |
"<strong>ERROR</strong>: Not found. What are you subscribing/unsubscribing "
|
5027 |
"to?"
|
5028 |
msgstr ""
|
5029 |
|
5030 |
-
#: includes/users/engagements.php:
|
5031 |
msgid ""
|
5032 |
"<strong>ERROR</strong>: You do not have permission to edit subscriptions of "
|
5033 |
"that user."
|
5034 |
msgstr ""
|
5035 |
|
5036 |
-
#: includes/users/engagements.php:
|
5037 |
msgid "<strong>ERROR</strong>: There was a problem unsubscribing."
|
5038 |
msgstr ""
|
5039 |
|
5040 |
-
#: includes/users/engagements.php:
|
5041 |
msgid "<strong>ERROR</strong>: There was a problem subscribing."
|
5042 |
msgstr ""
|
5043 |
|
5044 |
-
#: includes/users/functions.php:
|
5045 |
msgid "<strong>ERROR</strong>: That is not a valid email address."
|
5046 |
msgstr ""
|
5047 |
|
5048 |
-
#: includes/users/functions.php:
|
5049 |
msgid "<strong>ERROR</strong>: That email address is already in use."
|
5050 |
msgstr ""
|
5051 |
|
5052 |
-
#: includes/users/functions.php:
|
5053 |
msgid "<strong>ERROR</strong>: An error occurred while updating your email address."
|
5054 |
msgstr ""
|
5055 |
|
5056 |
-
#: includes/users/functions.php:
|
5057 |
msgid ""
|
5058 |
"%1$s\n"
|
5059 |
"\n"
|
@@ -5072,67 +5242,67 @@ msgid ""
|
|
5072 |
"%5$s"
|
5073 |
msgstr ""
|
5074 |
|
5075 |
-
#: includes/users/functions.php:
|
5076 |
msgid "[%s] New Email Address"
|
5077 |
msgstr ""
|
5078 |
|
5079 |
-
#: includes/users/template.php:
|
5080 |
msgid "Guest"
|
5081 |
msgstr ""
|
5082 |
|
5083 |
-
#: includes/users/template.php:
|
5084 |
msgid "Inactive"
|
5085 |
msgstr ""
|
5086 |
|
5087 |
-
#: includes/users/template.php:
|
5088 |
msgid "Member"
|
5089 |
msgstr ""
|
5090 |
|
5091 |
-
#: includes/users/template.php:
|
5092 |
msgid "Admin"
|
5093 |
msgstr ""
|
5094 |
|
5095 |
-
#: includes/users/template.php:
|
5096 |
msgid "User updated."
|
5097 |
msgstr ""
|
5098 |
|
5099 |
-
#: includes/users/template.php:
|
5100 |
msgid "There is a pending email address change to %1$s. %2$s"
|
5101 |
msgstr ""
|
5102 |
|
5103 |
-
#: includes/users/template.php:
|
5104 |
msgid "You have super admin privileges."
|
5105 |
msgstr ""
|
5106 |
|
5107 |
-
#: includes/users/template.php:
|
5108 |
msgid "This user has super admin privileges."
|
5109 |
msgstr ""
|
5110 |
|
5111 |
-
#: includes/users/template.php:
|
5112 |
msgid "— No role for this site —"
|
5113 |
msgstr ""
|
5114 |
|
5115 |
-
#: includes/users/template.php:
|
5116 |
msgid "You are now logged out."
|
5117 |
msgstr ""
|
5118 |
|
5119 |
-
#: includes/users/template.php:
|
5120 |
msgid "New user registration is currently not allowed."
|
5121 |
msgstr ""
|
5122 |
|
5123 |
-
#: includes/users/template.php:
|
5124 |
msgid "Check your e-mail for the confirmation link."
|
5125 |
msgstr ""
|
5126 |
|
5127 |
-
#: includes/users/template.php:
|
5128 |
msgid "Check your e-mail for your new password."
|
5129 |
msgstr ""
|
5130 |
|
5131 |
-
#: includes/users/template.php:
|
5132 |
msgid "Registration complete. Please check your e-mail."
|
5133 |
msgstr ""
|
5134 |
|
5135 |
-
#: includes/users/template.php:
|
5136 |
msgid "Moderators:"
|
5137 |
msgstr ""
|
5138 |
|
@@ -5638,10 +5808,6 @@ msgstr ""
|
|
5638 |
msgid "Update User"
|
5639 |
msgstr ""
|
5640 |
|
5641 |
-
#: templates/default/bbpress/form-user-login.php:31
|
5642 |
-
msgid "Keep me signed in"
|
5643 |
-
msgstr ""
|
5644 |
-
|
5645 |
#: templates/default/bbpress/form-user-lost-pass.php:21
|
5646 |
msgid "Username or Email"
|
5647 |
msgstr ""
|
@@ -5865,80 +6031,80 @@ msgstr ""
|
|
5865 |
msgid "The bbPress Contributors"
|
5866 |
msgstr ""
|
5867 |
|
5868 |
-
#: bbpress.php:
|
5869 |
msgctxt "post"
|
5870 |
msgid "Closed"
|
5871 |
msgstr ""
|
5872 |
|
5873 |
-
#: bbpress.php:
|
5874 |
msgctxt "post"
|
5875 |
msgid "Closed <span class=\"count\">(%s)</span>"
|
5876 |
msgid_plural "Closed <span class=\"count\">(%s)</span>"
|
5877 |
msgstr[0] ""
|
5878 |
msgstr[1] ""
|
5879 |
|
5880 |
-
#: bbpress.php:
|
5881 |
msgctxt "post"
|
5882 |
msgid "Spam"
|
5883 |
msgstr ""
|
5884 |
|
5885 |
-
#: bbpress.php:
|
5886 |
msgctxt "post"
|
5887 |
msgid "Spam <span class=\"count\">(%s)</span>"
|
5888 |
msgid_plural "Spam <span class=\"count\">(%s)</span>"
|
5889 |
msgstr[0] ""
|
5890 |
msgstr[1] ""
|
5891 |
|
5892 |
-
#: bbpress.php:
|
5893 |
msgctxt "post"
|
5894 |
msgid "Orphan"
|
5895 |
msgstr ""
|
5896 |
|
5897 |
-
#: bbpress.php:
|
5898 |
msgctxt "post"
|
5899 |
msgid "Orphan <span class=\"count\">(%s)</span>"
|
5900 |
msgid_plural "Orphans <span class=\"count\">(%s)</span>"
|
5901 |
msgstr[0] ""
|
5902 |
msgstr[1] ""
|
5903 |
|
5904 |
-
#: bbpress.php:
|
5905 |
msgctxt "post"
|
5906 |
msgid "Hidden"
|
5907 |
msgstr ""
|
5908 |
|
5909 |
-
#: bbpress.php:
|
5910 |
msgctxt "post"
|
5911 |
msgid "Hidden <span class=\"count\">(%s)</span>"
|
5912 |
msgid_plural "Hidden <span class=\"count\">(%s)</span>"
|
5913 |
msgstr[0] ""
|
5914 |
msgstr[1] ""
|
5915 |
|
5916 |
-
#: includes/admin/classes/class-bbp-admin.php:
|
5917 |
msgctxt "admin color scheme"
|
5918 |
msgid "Mint"
|
5919 |
msgstr ""
|
5920 |
|
5921 |
-
#: includes/admin/classes/class-bbp-admin.php:
|
5922 |
msgctxt "admin color scheme"
|
5923 |
msgid "Evergreen"
|
5924 |
msgstr ""
|
5925 |
|
5926 |
-
#: includes/admin/forums.php:
|
5927 |
msgctxt "Close a Forum"
|
5928 |
msgid "Close"
|
5929 |
msgstr ""
|
5930 |
|
5931 |
-
#: includes/admin/forums.php:
|
5932 |
msgctxt "Open a Forum"
|
5933 |
msgid "Open"
|
5934 |
msgstr ""
|
5935 |
|
5936 |
-
#: includes/admin/replies.php:
|
5937 |
msgctxt "Unapprove reply"
|
5938 |
msgid "Unapprove"
|
5939 |
msgstr ""
|
5940 |
|
5941 |
-
#: includes/admin/replies.php:
|
5942 |
msgctxt "Approve reply"
|
5943 |
msgid "Approve"
|
5944 |
msgstr ""
|
@@ -5948,27 +6114,27 @@ msgctxt "noun"
|
|
5948 |
msgid "Reply"
|
5949 |
msgstr ""
|
5950 |
|
5951 |
-
#: includes/admin/topics.php:
|
5952 |
msgctxt "Unapprove Topic"
|
5953 |
msgid "Unapprove"
|
5954 |
msgstr ""
|
5955 |
|
5956 |
-
#: includes/admin/topics.php:
|
5957 |
msgctxt "Approve Topic"
|
5958 |
msgid "Approve"
|
5959 |
msgstr ""
|
5960 |
|
5961 |
-
#: includes/admin/topics.php:
|
5962 |
msgctxt "Close a Topic"
|
5963 |
msgid "Close"
|
5964 |
msgstr ""
|
5965 |
|
5966 |
-
#: includes/admin/topics.php:
|
5967 |
msgctxt "Open a Topic"
|
5968 |
msgid "Open"
|
5969 |
msgstr ""
|
5970 |
|
5971 |
-
#: includes/common/formatting.php:
|
5972 |
msgctxt "Separator in time since"
|
5973 |
msgid ","
|
5974 |
msgstr ""
|
@@ -6003,176 +6169,164 @@ msgctxt "User role"
|
|
6003 |
msgid "Blocked"
|
6004 |
msgstr ""
|
6005 |
|
6006 |
-
#: includes/common/widgets.php:
|
6007 |
msgctxt "widgets"
|
6008 |
msgid "by %1$s"
|
6009 |
msgstr ""
|
6010 |
|
6011 |
-
#: includes/common/widgets.php:
|
6012 |
#. translators: 1: reply author, 2: reply link, 3: reply timestamp
|
6013 |
msgctxt "widgets"
|
6014 |
msgid "%1$s on %2$s %3$s"
|
6015 |
msgstr ""
|
6016 |
|
6017 |
-
#: includes/common/widgets.php:
|
6018 |
-
#. translators: 1: reply link, 2: reply timestamp
|
6019 |
-
msgctxt "widgets"
|
6020 |
-
msgid "%1$s %2$s"
|
6021 |
-
msgstr ""
|
6022 |
-
|
6023 |
-
#: includes/common/widgets.php:1149
|
6024 |
#. translators: 1: reply author, 2: reply link
|
6025 |
msgctxt "widgets"
|
6026 |
msgid "%1$s on %2$s"
|
6027 |
msgstr ""
|
6028 |
|
6029 |
-
#: includes/
|
6030 |
-
#. translators: 1: reply link
|
6031 |
-
msgctxt "widgets"
|
6032 |
-
msgid "%1$s"
|
6033 |
-
msgstr ""
|
6034 |
-
|
6035 |
-
#: includes/extend/buddypress/groups.php:491
|
6036 |
msgctxt "group admin edit screen"
|
6037 |
msgid "Discussion Forum"
|
6038 |
msgstr ""
|
6039 |
|
6040 |
-
#: includes/forums/functions.php:
|
6041 |
msgctxt "Open the forum"
|
6042 |
msgid "Open"
|
6043 |
msgstr ""
|
6044 |
|
6045 |
-
#: includes/forums/functions.php:
|
6046 |
msgctxt "Close the forum"
|
6047 |
msgid "Closed"
|
6048 |
msgstr ""
|
6049 |
|
6050 |
-
#: includes/forums/functions.php:
|
6051 |
msgctxt "Forum accepts new topics"
|
6052 |
msgid "Forum"
|
6053 |
msgstr ""
|
6054 |
|
6055 |
-
#: includes/forums/functions.php:
|
6056 |
msgctxt "Forum is a category"
|
6057 |
msgid "Category"
|
6058 |
msgstr ""
|
6059 |
|
6060 |
-
#: includes/forums/functions.php:
|
6061 |
msgctxt "Make forum public"
|
6062 |
msgid "Public"
|
6063 |
msgstr ""
|
6064 |
|
6065 |
-
#: includes/forums/functions.php:
|
6066 |
msgctxt "Make forum private"
|
6067 |
msgid "Private"
|
6068 |
msgstr ""
|
6069 |
|
6070 |
-
#: includes/forums/functions.php:
|
6071 |
msgctxt "Make forum hidden"
|
6072 |
msgid "Hidden"
|
6073 |
msgstr ""
|
6074 |
|
6075 |
-
#: includes/replies/functions.php:
|
6076 |
msgctxt "Publish the reply"
|
6077 |
msgid "Publish"
|
6078 |
msgstr ""
|
6079 |
|
6080 |
-
#: includes/replies/functions.php:
|
6081 |
msgctxt "Spam the reply"
|
6082 |
msgid "Spam"
|
6083 |
msgstr ""
|
6084 |
|
6085 |
-
#: includes/replies/functions.php:
|
6086 |
msgctxt "Trash the reply"
|
6087 |
msgid "Trash"
|
6088 |
msgstr ""
|
6089 |
|
6090 |
-
#: includes/replies/functions.php:
|
6091 |
msgctxt "Mark reply as pending"
|
6092 |
msgid "Pending"
|
6093 |
msgstr ""
|
6094 |
|
6095 |
-
#: includes/replies/template.php:
|
6096 |
msgctxt "date at time"
|
6097 |
msgid "%1$s at %2$s"
|
6098 |
msgstr ""
|
6099 |
|
6100 |
-
#: includes/replies/template.php:
|
6101 |
msgctxt "verb"
|
6102 |
msgid "Reply"
|
6103 |
msgstr ""
|
6104 |
|
6105 |
-
#: includes/replies/template.php:
|
6106 |
msgctxt "Pending Status"
|
6107 |
msgid "Approve"
|
6108 |
msgstr ""
|
6109 |
|
6110 |
-
#: includes/replies/template.php:
|
6111 |
msgctxt "Pending Status"
|
6112 |
msgid "Unapprove"
|
6113 |
msgstr ""
|
6114 |
|
6115 |
-
#: includes/replies/template.php:
|
6116 |
msgctxt "Default reply to dropdown text"
|
6117 |
msgid "None"
|
6118 |
msgstr ""
|
6119 |
|
6120 |
-
#: includes/topics/functions.php:
|
6121 |
msgctxt "Open the topic"
|
6122 |
msgid "Open"
|
6123 |
msgstr ""
|
6124 |
|
6125 |
-
#: includes/topics/functions.php:
|
6126 |
msgctxt "Close the topic"
|
6127 |
msgid "Closed"
|
6128 |
msgstr ""
|
6129 |
|
6130 |
-
#: includes/topics/template.php:
|
6131 |
msgctxt "Close the topic"
|
6132 |
msgid "Close"
|
6133 |
msgstr ""
|
6134 |
|
6135 |
-
#: includes/topics/functions.php:
|
6136 |
msgctxt "Spam the topic"
|
6137 |
msgid "Spam"
|
6138 |
msgstr ""
|
6139 |
|
6140 |
-
#: includes/topics/functions.php:
|
6141 |
msgctxt "Trash the topic"
|
6142 |
msgid "Trash"
|
6143 |
msgstr ""
|
6144 |
|
6145 |
-
#: includes/topics/functions.php:
|
6146 |
msgctxt "Unapprove the topic"
|
6147 |
msgid "Pending"
|
6148 |
msgstr ""
|
6149 |
|
6150 |
-
#: includes/topics/template.php:
|
6151 |
msgctxt "Unapprove the topic"
|
6152 |
msgid "Unapprove"
|
6153 |
msgstr ""
|
6154 |
|
6155 |
-
#: includes/topics/functions.php:
|
6156 |
msgctxt "Unstick a topic"
|
6157 |
msgid "Normal"
|
6158 |
msgstr ""
|
6159 |
|
6160 |
-
#: includes/topics/functions.php:
|
6161 |
msgctxt "Make topic sticky"
|
6162 |
msgid "Sticky"
|
6163 |
msgstr ""
|
6164 |
|
6165 |
-
#: includes/topics/functions.php:
|
6166 |
msgctxt "Make topic super sticky"
|
6167 |
msgid "Super Sticky"
|
6168 |
msgstr ""
|
6169 |
|
6170 |
-
#: includes/topics/template.php:
|
6171 |
msgctxt "Approve the topic"
|
6172 |
msgid "Approve"
|
6173 |
msgstr ""
|
6174 |
|
6175 |
-
#: includes/users/template.php:
|
6176 |
msgctxt "Dismiss pending user email address change"
|
6177 |
msgid "Cancel"
|
6178 |
msgstr ""
|
1 |
+
# Copyright (C) 2018 The bbPress Contributors
|
2 |
# This file is distributed under the GPLv2 or later (license.txt).
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
+
"Project-Id-Version: bbPress 2.6-rc-6\n"
|
6 |
"Report-Msgid-Bugs-To: https://bbpress.trac.wordpress.org\n"
|
7 |
+
"POT-Creation-Date: 2018-09-03 21:22:01+00:00\n"
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=utf-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
11 |
+
"PO-Revision-Date: 2018-MO-DA HO:MI+ZONE\n"
|
12 |
"Last-Translator: JOHN JAMES JACOBY <jjj@bbpress.org>\n"
|
13 |
"Language-Team: ENGLISH <jjj@bbpress.org>\n"
|
14 |
+
"X-Generator: grunt-wp-i18n1.0.2\n"
|
15 |
|
16 |
#: bbpress.php:144 bbpress.php:151
|
17 |
msgid "Cheatin’ huh?"
|
18 |
msgstr ""
|
19 |
|
20 |
+
#: bbpress.php:516
|
21 |
msgid "bbPress Forums"
|
22 |
msgstr ""
|
23 |
|
24 |
+
#: bbpress.php:542
|
25 |
msgid "bbPress Topics"
|
26 |
msgstr ""
|
27 |
|
28 |
+
#: bbpress.php:568
|
29 |
msgid "bbPress Replies"
|
30 |
msgstr ""
|
31 |
|
32 |
+
#: bbpress.php:712
|
33 |
msgid "Most popular topics"
|
34 |
msgstr ""
|
35 |
|
36 |
+
#: bbpress.php:725
|
37 |
msgid "Topics with no replies"
|
38 |
msgstr ""
|
39 |
|
40 |
+
#: bbpress.php:758
|
41 |
msgid "bbPress Item Count"
|
42 |
msgstr ""
|
43 |
|
44 |
+
#: includes/admin/actions.php:177 includes/admin/forums.php:538
|
45 |
#: includes/admin/settings.php:280 includes/admin/settings.php:301
|
46 |
+
#: includes/admin/tools/common.php:269 includes/admin/topics.php:854
|
47 |
#: includes/extend/buddypress/activity.php:197
|
48 |
+
#: includes/extend/buddypress/activity.php:391
|
49 |
+
#: includes/forums/template.php:2592 includes/topics/template.php:47
|
50 |
#: includes/topics/template.php:48
|
51 |
#: templates/default/bbpress/content-statistics.php:30
|
52 |
#: templates/default/bbpress/loop-forums.php:21
|
53 |
msgid "Topics"
|
54 |
msgstr ""
|
55 |
|
56 |
+
#: includes/admin/actions.php:182 includes/admin/actions.php:194
|
57 |
+
#: includes/admin/forums.php:539 includes/admin/settings.php:288
|
58 |
+
#: includes/admin/settings.php:309 includes/admin/tools/common.php:272
|
59 |
+
#: includes/admin/topics.php:390 includes/admin/topics.php:856
|
60 |
#: includes/core/theme-compat.php:694
|
61 |
#: includes/extend/buddypress/activity.php:207
|
62 |
+
#: includes/extend/buddypress/activity.php:392
|
63 |
+
#: includes/forums/template.php:2646 includes/replies/template.php:49
|
64 |
#: includes/replies/template.php:50
|
65 |
#: templates/default/bbpress/content-statistics.php:35
|
66 |
#: templates/default/bbpress/loop-forums.php:23
|
70 |
msgid "Replies"
|
71 |
msgstr ""
|
72 |
|
73 |
+
#: includes/admin/actions.php:189 includes/admin/actions.php:201
|
74 |
+
#: includes/admin/forums.php:537 includes/admin/metaboxes.php:113
|
75 |
#: includes/admin/metaboxes.php:432 includes/admin/metaboxes.php:496
|
76 |
+
#: includes/admin/replies.php:665 includes/admin/settings.php:351
|
77 |
+
#: includes/admin/topics.php:855 includes/extend/buddypress/groups.php:51
|
78 |
+
#: includes/extend/buddypress/groups.php:52 includes/forums/template.php:50
|
79 |
#: templates/default/bbpress/loop-forums.php:20
|
80 |
msgid "Forum"
|
81 |
msgstr ""
|
82 |
|
83 |
+
#: includes/admin/actions.php:206 includes/admin/metaboxes.php:130
|
84 |
+
#: includes/admin/metaboxes.php:523 includes/admin/replies.php:666
|
85 |
#: includes/admin/settings.php:359 includes/topics/template.php:49
|
86 |
#: templates/default/bbpress/content-single-topic-lead.php:23
|
87 |
#: templates/default/bbpress/content-single-topic-lead.php:91
|
89 |
msgid "Topic"
|
90 |
msgstr ""
|
91 |
|
92 |
+
#: includes/admin/classes/class-bbp-admin.php:221
|
93 |
msgid "Go Upgrade"
|
94 |
msgstr ""
|
95 |
|
96 |
+
#: includes/admin/classes/class-bbp-admin.php:222
|
97 |
msgid "Hide Forever"
|
98 |
msgstr ""
|
99 |
|
100 |
+
#: includes/admin/classes/class-bbp-admin.php:225
|
101 |
msgid "bbPress requires a manual database upgrade. %s or %s"
|
102 |
msgstr ""
|
103 |
|
104 |
+
#: includes/admin/classes/class-bbp-admin.php:408
|
105 |
+
#: includes/admin/classes/class-bbp-admin.php:409
|
106 |
+
#: includes/admin/classes/class-bbp-admin.php:418
|
107 |
+
#: includes/admin/classes/class-bbp-admin.php:419
|
108 |
+
#: includes/admin/tools/common.php:266 includes/admin/tools.php:30
|
109 |
+
#: includes/admin/users.php:93 includes/common/widgets.php:626
|
110 |
#: includes/extend/buddypress/loader.php:42
|
111 |
+
#: includes/extend/buddypress/loader.php:189
|
112 |
+
#: includes/extend/buddypress/loader.php:311
|
113 |
+
#: includes/extend/buddypress/loader.php:376 includes/forums/template.php:48
|
114 |
+
#: includes/forums/template.php:49 includes/forums/template.php:68
|
115 |
#: templates/default/bbpress/content-statistics.php:25
|
116 |
#: templates/default/bbpress/user-profile.php:34
|
117 |
msgid "Forums"
|
118 |
msgstr ""
|
119 |
|
120 |
+
#: includes/admin/classes/class-bbp-admin.php:431
|
121 |
+
#: includes/admin/classes/class-bbp-admin.php:432
|
122 |
+
#: includes/admin/classes/class-bbp-admin.php:440
|
123 |
+
#: includes/admin/classes/class-bbp-admin.php:441
|
124 |
msgid "Welcome to bbPress"
|
125 |
msgstr ""
|
126 |
|
127 |
+
#: includes/admin/classes/class-bbp-admin.php:455
|
128 |
+
#: includes/admin/classes/class-bbp-admin.php:456
|
129 |
+
#: includes/admin/classes/class-bbp-admin.php:477
|
130 |
+
#: includes/admin/classes/class-bbp-admin.php:478
|
131 |
+
#: includes/admin/classes/class-bbp-admin.php:1182
|
132 |
+
#: includes/admin/classes/class-bbp-admin.php:1279
|
133 |
msgid "Update Forums"
|
134 |
msgstr ""
|
135 |
|
136 |
+
#: includes/admin/classes/class-bbp-admin.php:663
|
137 |
msgid "Settings"
|
138 |
msgstr ""
|
139 |
|
140 |
+
#: includes/admin/classes/class-bbp-admin.php:668
|
141 |
msgid "About"
|
142 |
msgstr ""
|
143 |
|
144 |
+
#: includes/admin/classes/class-bbp-admin.php:846
|
145 |
+
#: includes/admin/classes/class-bbp-admin.php:883
|
146 |
msgid "%s - %s"
|
147 |
msgstr ""
|
148 |
|
149 |
+
#: includes/admin/classes/class-bbp-admin.php:901
|
150 |
msgid "Welcome to bbPress %s"
|
151 |
msgstr ""
|
152 |
|
153 |
+
#: includes/admin/classes/class-bbp-admin.php:902
|
154 |
msgid ""
|
155 |
"bbPress is fun to use, contains no artificial colors or preservatives, and "
|
156 |
"is absolutely wonderful in every environment. Your community is going to "
|
157 |
"love using it."
|
158 |
msgstr ""
|
159 |
|
160 |
+
#: includes/admin/classes/class-bbp-admin.php:928
|
161 |
+
#: includes/admin/classes/class-bbp-admin.php:1002
|
162 |
msgid "What’s New"
|
163 |
msgstr ""
|
164 |
|
165 |
+
#: includes/admin/classes/class-bbp-admin.php:930
|
166 |
+
#: includes/admin/classes/class-bbp-admin.php:1004
|
167 |
msgid "Credits"
|
168 |
msgstr ""
|
169 |
|
170 |
+
#: includes/admin/classes/class-bbp-admin.php:935
|
171 |
msgid "Forum Subscriptions"
|
172 |
msgstr ""
|
173 |
|
174 |
+
#: includes/admin/classes/class-bbp-admin.php:939
|
175 |
msgid "Subscribe to Forums"
|
176 |
msgstr ""
|
177 |
|
178 |
+
#: includes/admin/classes/class-bbp-admin.php:940
|
179 |
msgid "Now your users can subscribe to new topics in specific forums."
|
180 |
msgstr ""
|
181 |
|
182 |
+
#: includes/admin/classes/class-bbp-admin.php:944
|
183 |
msgid "Manage Subscriptions"
|
184 |
msgstr ""
|
185 |
|
186 |
+
#: includes/admin/classes/class-bbp-admin.php:945
|
187 |
msgid "Your users can manage all of their subscriptions in one convenient location."
|
188 |
msgstr ""
|
189 |
|
190 |
+
#: includes/admin/classes/class-bbp-admin.php:951
|
191 |
msgid "Converters"
|
192 |
msgstr ""
|
193 |
|
194 |
+
#: includes/admin/classes/class-bbp-admin.php:955
|
195 |
msgid ""
|
196 |
"We’re all abuzz about the hive of new importers, AEF, Drupal, FluxBB, "
|
197 |
"Kunena Forums for Joomla, MyBB, Phorum, PHPFox, PHPWind, PunBB, SMF, "
|
200 |
"now gone if you need to remove imported users."
|
201 |
msgstr ""
|
202 |
|
203 |
+
#: includes/admin/classes/class-bbp-admin.php:961
|
204 |
msgid "Theme Compatibility"
|
205 |
msgstr ""
|
206 |
|
207 |
+
#: includes/admin/classes/class-bbp-admin.php:962
|
208 |
msgid "Better handling of styles and scripts in the template stack."
|
209 |
msgstr ""
|
210 |
|
211 |
+
#: includes/admin/classes/class-bbp-admin.php:966
|
212 |
msgid "Polyglot support"
|
213 |
msgstr ""
|
214 |
|
215 |
+
#: includes/admin/classes/class-bbp-admin.php:967
|
216 |
msgid "bbPress fully supports automatic translation updates."
|
217 |
msgstr ""
|
218 |
|
219 |
+
#: includes/admin/classes/class-bbp-admin.php:971
|
220 |
msgid "User capabilities"
|
221 |
msgstr ""
|
222 |
|
223 |
+
#: includes/admin/classes/class-bbp-admin.php:972
|
224 |
msgid "Roles and capabilities have been swept through, cleaned up, and simplified."
|
225 |
msgstr ""
|
226 |
|
227 |
+
#: includes/admin/classes/class-bbp-admin.php:978
|
228 |
+
#: includes/admin/classes/class-bbp-admin.php:1118
|
229 |
msgid "Go to Forum Settings"
|
230 |
msgstr ""
|
231 |
|
232 |
+
#: includes/admin/classes/class-bbp-admin.php:1008
|
233 |
msgid "bbPress is created by a worldwide swarm of busy, busy bees."
|
234 |
msgstr ""
|
235 |
|
236 |
+
#: includes/admin/classes/class-bbp-admin.php:1010
|
237 |
msgid "Project Leaders"
|
238 |
msgstr ""
|
239 |
|
240 |
+
#: includes/admin/classes/class-bbp-admin.php:1014
|
241 |
msgid "Founding Developer"
|
242 |
msgstr ""
|
243 |
|
244 |
+
#: includes/admin/classes/class-bbp-admin.php:1018
|
245 |
msgid "Lead Developer"
|
246 |
msgstr ""
|
247 |
|
248 |
+
#: includes/admin/classes/class-bbp-admin.php:1022
|
249 |
msgid "Feature Virtuoso"
|
250 |
msgstr ""
|
251 |
|
252 |
+
#: includes/admin/classes/class-bbp-admin.php:1026
|
253 |
msgid "Tool Maven"
|
254 |
msgstr ""
|
255 |
|
256 |
+
#: includes/admin/classes/class-bbp-admin.php:1030
|
257 |
msgid "Contributing Developers"
|
258 |
msgstr ""
|
259 |
|
260 |
+
#: includes/admin/classes/class-bbp-admin.php:1034
|
261 |
+
#: includes/admin/classes/class-bbp-admin.php:1038
|
262 |
msgid "Core Developer"
|
263 |
msgstr ""
|
264 |
|
265 |
+
#: includes/admin/classes/class-bbp-admin.php:1042
|
266 |
msgid "Project Emeriti"
|
267 |
msgstr ""
|
268 |
|
269 |
+
#: includes/admin/classes/class-bbp-admin.php:1046
|
270 |
msgid "Feature Developer"
|
271 |
msgstr ""
|
272 |
|
273 |
+
#: includes/admin/classes/class-bbp-admin.php:1050
|
274 |
msgid "Integration Testing"
|
275 |
msgstr ""
|
276 |
|
277 |
+
#: includes/admin/classes/class-bbp-admin.php:1054
|
278 |
msgid "Contributors to bbPress 2.6"
|
279 |
msgstr ""
|
280 |
|
281 |
+
#: includes/admin/classes/class-bbp-admin.php:1139
|
282 |
+
#: includes/admin/classes/class-bbp-admin.php:1161
|
283 |
msgid "Update Forum"
|
284 |
msgstr ""
|
285 |
|
286 |
+
#: includes/admin/classes/class-bbp-admin.php:1150
|
287 |
+
#: includes/admin/classes/class-bbp-admin.php:1199
|
288 |
msgid "All done!"
|
289 |
msgstr ""
|
290 |
|
291 |
+
#: includes/admin/classes/class-bbp-admin.php:1151
|
292 |
+
#: includes/admin/classes/class-bbp-admin.php:1200
|
293 |
msgid "Go Back"
|
294 |
msgstr ""
|
295 |
|
296 |
+
#: includes/admin/classes/class-bbp-admin.php:1160
|
297 |
msgid "You can update your forum through this page. Hit the link below to update."
|
298 |
msgstr ""
|
299 |
|
300 |
+
#: includes/admin/classes/class-bbp-admin.php:1234
|
301 |
msgid ""
|
302 |
"Warning! Problem updating %1$s. Your server may not be able to connect to "
|
303 |
"sites running on it. Error message: %2$s"
|
304 |
msgstr ""
|
305 |
|
306 |
+
#: includes/admin/classes/class-bbp-admin.php:1259
|
307 |
msgid ""
|
308 |
"If your browser doesn’t start loading the next page automatically, "
|
309 |
"click this link:"
|
310 |
msgstr ""
|
311 |
|
312 |
+
#: includes/admin/classes/class-bbp-admin.php:1260
|
313 |
msgid "Next Forums"
|
314 |
msgstr ""
|
315 |
|
316 |
+
#: includes/admin/classes/class-bbp-admin.php:1278
|
317 |
msgid ""
|
318 |
"You can update all the forums on your network through this page. It works "
|
319 |
"by calling the update script of each site automatically. Hit the link below "
|
320 |
"to update."
|
321 |
msgstr ""
|
322 |
|
323 |
+
#: includes/admin/classes/class-bbp-converter-base.php:154
|
324 |
msgid "Database connection failed."
|
325 |
msgstr ""
|
326 |
|
377 |
msgid "Next in %s seconds..."
|
378 |
msgstr ""
|
379 |
|
380 |
+
#: includes/admin/classes/class-bbp-converter.php:513
|
381 |
msgid "Readying sync-table"
|
382 |
msgstr ""
|
383 |
|
384 |
+
#: includes/admin/classes/class-bbp-converter.php:514
|
385 |
msgid "Sync-table ready"
|
386 |
msgstr ""
|
387 |
|
388 |
+
#: includes/admin/classes/class-bbp-converter.php:517
|
389 |
+
msgid "Deleting previously converted data (%1$s through %2$s)"
|
390 |
msgstr ""
|
391 |
|
392 |
+
#: includes/admin/classes/class-bbp-converter.php:524
|
393 |
msgid "Skipping sync-table clean-up"
|
394 |
msgstr ""
|
395 |
|
396 |
+
#: includes/admin/classes/class-bbp-converter.php:539
|
397 |
msgid "No users to import"
|
398 |
msgstr ""
|
399 |
|
400 |
+
#: includes/admin/classes/class-bbp-converter.php:540
|
401 |
msgid "All users imported"
|
402 |
msgstr ""
|
403 |
|
404 |
+
#: includes/admin/classes/class-bbp-converter.php:543
|
405 |
msgid "Converting users (%1$s through %2$s of %3$s)"
|
406 |
msgstr ""
|
407 |
|
408 |
+
#: includes/admin/classes/class-bbp-converter.php:547
|
409 |
msgid "Skipping user clean-up"
|
410 |
msgstr ""
|
411 |
|
412 |
+
#: includes/admin/classes/class-bbp-converter.php:562
|
413 |
msgid "No passwords to clear"
|
414 |
msgstr ""
|
415 |
|
416 |
+
#: includes/admin/classes/class-bbp-converter.php:563
|
417 |
msgid "All passwords cleared"
|
418 |
msgstr ""
|
419 |
|
420 |
+
#: includes/admin/classes/class-bbp-converter.php:566
|
421 |
+
msgid "Delete default WordPress user passwords (%1$s through %2$s)"
|
422 |
msgstr ""
|
423 |
|
424 |
+
#: includes/admin/classes/class-bbp-converter.php:570
|
425 |
msgid "Skipping password clean-up"
|
426 |
msgstr ""
|
427 |
|
428 |
+
#: includes/admin/classes/class-bbp-converter.php:584
|
429 |
msgid "No forums to import"
|
430 |
msgstr ""
|
431 |
|
432 |
+
#: includes/admin/classes/class-bbp-converter.php:585
|
433 |
msgid "All forums imported"
|
434 |
msgstr ""
|
435 |
|
436 |
+
#: includes/admin/classes/class-bbp-converter.php:588
|
437 |
msgid "Converting forums (%1$s through %2$s of %3$s)"
|
438 |
msgstr ""
|
439 |
|
440 |
+
#: includes/admin/classes/class-bbp-converter.php:602
|
441 |
msgid "No forum parents to import"
|
442 |
msgstr ""
|
443 |
|
444 |
+
#: includes/admin/classes/class-bbp-converter.php:603
|
445 |
msgid "All forum parents imported"
|
446 |
msgstr ""
|
447 |
|
448 |
+
#: includes/admin/classes/class-bbp-converter.php:606
|
449 |
msgid "Calculating forum hierarchy (%1$s through %2$s of %3$s)"
|
450 |
msgstr ""
|
451 |
|
452 |
+
#: includes/admin/classes/class-bbp-converter.php:620
|
453 |
msgid "No forum subscriptions to import"
|
454 |
msgstr ""
|
455 |
|
456 |
+
#: includes/admin/classes/class-bbp-converter.php:621
|
457 |
msgid "All forum subscriptions imported"
|
458 |
msgstr ""
|
459 |
|
460 |
+
#: includes/admin/classes/class-bbp-converter.php:624
|
461 |
msgid "Converting forum subscriptions (%1$s through %2$s of %3$s)"
|
462 |
msgstr ""
|
463 |
|
464 |
+
#: includes/admin/classes/class-bbp-converter.php:638
|
465 |
msgid "No topics to import"
|
466 |
msgstr ""
|
467 |
|
468 |
+
#: includes/admin/classes/class-bbp-converter.php:639
|
469 |
msgid "All topics imported"
|
470 |
msgstr ""
|
471 |
|
472 |
+
#: includes/admin/classes/class-bbp-converter.php:642
|
473 |
msgid "Converting topics (%1$s through %2$s of %3$s)"
|
474 |
msgstr ""
|
475 |
|
476 |
+
#: includes/admin/classes/class-bbp-converter.php:656
|
477 |
msgid "No anonymous topic authors to import"
|
478 |
msgstr ""
|
479 |
|
480 |
+
#: includes/admin/classes/class-bbp-converter.php:657
|
481 |
msgid "All anonymous topic authors imported"
|
482 |
msgstr ""
|
483 |
|
484 |
+
#: includes/admin/classes/class-bbp-converter.php:660
|
485 |
msgid "Converting anonymous topic authors (%1$s through %2$s of %3$s)"
|
486 |
msgstr ""
|
487 |
|
488 |
+
#: includes/admin/classes/class-bbp-converter.php:674
|
489 |
msgid "No stickies to import"
|
490 |
msgstr ""
|
491 |
|
492 |
+
#: includes/admin/classes/class-bbp-converter.php:675
|
493 |
msgid "All stickies imported"
|
494 |
msgstr ""
|
495 |
|
496 |
+
#: includes/admin/classes/class-bbp-converter.php:678
|
497 |
msgid "Calculating topic stickies (%1$s through %2$s of %3$s)"
|
498 |
msgstr ""
|
499 |
|
500 |
+
#: includes/admin/classes/class-bbp-converter.php:692
|
501 |
msgid "No super stickies to import"
|
502 |
msgstr ""
|
503 |
|
504 |
+
#: includes/admin/classes/class-bbp-converter.php:693
|
505 |
msgid "All super stickies imported"
|
506 |
msgstr ""
|
507 |
|
508 |
+
#: includes/admin/classes/class-bbp-converter.php:696
|
509 |
msgid "Calculating topic super stickies (%1$s through %2$s of %3$s)"
|
510 |
msgstr ""
|
511 |
|
512 |
+
#: includes/admin/classes/class-bbp-converter.php:710
|
513 |
msgid "No closed topics to import"
|
514 |
msgstr ""
|
515 |
|
516 |
+
#: includes/admin/classes/class-bbp-converter.php:711
|
517 |
msgid "All closed topics imported"
|
518 |
msgstr ""
|
519 |
|
520 |
+
#: includes/admin/classes/class-bbp-converter.php:714
|
521 |
msgid "Calculating closed topics (%1$s through %2$s of %3$s)"
|
522 |
msgstr ""
|
523 |
|
524 |
+
#: includes/admin/classes/class-bbp-converter.php:728
|
525 |
msgid "No topic tags to import"
|
526 |
msgstr ""
|
527 |
|
528 |
+
#: includes/admin/classes/class-bbp-converter.php:729
|
529 |
msgid "All topic tags imported"
|
530 |
msgstr ""
|
531 |
|
532 |
+
#: includes/admin/classes/class-bbp-converter.php:732
|
533 |
msgid "Converting topic tags (%1$s through %2$s of %3$s)"
|
534 |
msgstr ""
|
535 |
|
536 |
+
#: includes/admin/classes/class-bbp-converter.php:746
|
537 |
msgid "No topic subscriptions to import"
|
538 |
msgstr ""
|
539 |
|
540 |
+
#: includes/admin/classes/class-bbp-converter.php:747
|
541 |
msgid "All topic subscriptions imported"
|
542 |
msgstr ""
|
543 |
|
544 |
+
#: includes/admin/classes/class-bbp-converter.php:750
|
545 |
msgid "Converting topic subscriptions (%1$s through %2$s of %3$s)"
|
546 |
msgstr ""
|
547 |
|
548 |
+
#: includes/admin/classes/class-bbp-converter.php:764
|
549 |
msgid "No favorites to import"
|
550 |
msgstr ""
|
551 |
|
552 |
+
#: includes/admin/classes/class-bbp-converter.php:765
|
553 |
msgid "All favorites imported"
|
554 |
msgstr ""
|
555 |
|
556 |
+
#: includes/admin/classes/class-bbp-converter.php:768
|
557 |
msgid "Converting favorites (%1$s through %2$s of %3$s)"
|
558 |
msgstr ""
|
559 |
|
560 |
+
#: includes/admin/classes/class-bbp-converter.php:782
|
561 |
msgid "No replies to import"
|
562 |
msgstr ""
|
563 |
|
564 |
+
#: includes/admin/classes/class-bbp-converter.php:783
|
565 |
msgid "All replies imported"
|
566 |
msgstr ""
|
567 |
|
568 |
+
#: includes/admin/classes/class-bbp-converter.php:786
|
569 |
msgid "Converting replies (%1$s through %2$s of %3$s)"
|
570 |
msgstr ""
|
571 |
|
572 |
+
#: includes/admin/classes/class-bbp-converter.php:800
|
573 |
msgid "No anonymous reply authors to import"
|
574 |
msgstr ""
|
575 |
|
576 |
+
#: includes/admin/classes/class-bbp-converter.php:801
|
577 |
msgid "All anonymous reply authors imported"
|
578 |
msgstr ""
|
579 |
|
580 |
+
#: includes/admin/classes/class-bbp-converter.php:804
|
581 |
msgid "Converting anonymous reply authors (%1$s through %2$s of %3$s)"
|
582 |
msgstr ""
|
583 |
|
584 |
+
#: includes/admin/classes/class-bbp-converter.php:818
|
585 |
msgid "No threaded replies to import"
|
586 |
msgstr ""
|
587 |
|
588 |
+
#: includes/admin/classes/class-bbp-converter.php:819
|
589 |
msgid "All threaded replies imported"
|
590 |
msgstr ""
|
591 |
|
592 |
+
#: includes/admin/classes/class-bbp-converter.php:822
|
593 |
msgid "Calculating threaded replies parents (%1$s through %2$s of %3$s)"
|
594 |
msgstr ""
|
595 |
|
596 |
+
#: includes/admin/classes/class-bbp-converter.php:833
|
597 |
msgid "Import Finished"
|
598 |
msgstr ""
|
599 |
|
600 |
+
#: includes/admin/classes/class-bbp-topic-replies-list-table.php:59
|
601 |
+
#: includes/admin/replies.php:667 includes/admin/topics.php:858
|
602 |
#: templates/default/bbpress/loop-replies.php:18
|
603 |
#: templates/default/bbpress/loop-replies.php:44
|
604 |
#: templates/default/bbpress/loop-search.php:19
|
606 |
msgid "Author"
|
607 |
msgstr ""
|
608 |
|
609 |
+
#: includes/admin/classes/class-bbp-topic-replies-list-table.php:60
|
610 |
msgid "Content"
|
611 |
msgstr ""
|
612 |
|
613 |
+
#: includes/admin/classes/class-bbp-topic-replies-list-table.php:61
|
614 |
msgid "Replied"
|
615 |
msgstr ""
|
616 |
|
617 |
+
#: includes/admin/classes/class-bbp-topic-replies-list-table.php:90
|
618 |
msgid "Unapprove"
|
619 |
msgstr ""
|
620 |
|
621 |
+
#: includes/admin/classes/class-bbp-topic-replies-list-table.php:91
|
622 |
+
#: includes/admin/replies.php:235 includes/admin/replies.php:818
|
623 |
+
#: includes/admin/topics.php:240 includes/admin/topics.php:1023
|
624 |
+
#: includes/replies/template.php:2028 includes/topics/template.php:2833
|
625 |
msgid "Spam"
|
626 |
msgstr ""
|
627 |
|
628 |
+
#: includes/admin/classes/class-bbp-topic-replies-list-table.php:92
|
629 |
+
#: includes/admin/replies.php:833 includes/admin/topics.php:1037
|
630 |
+
#: includes/replies/template.php:1960 includes/topics/template.php:2541
|
631 |
msgid "Trash"
|
632 |
msgstr ""
|
633 |
|
634 |
+
#: includes/admin/classes/class-bbp-topic-replies-list-table.php:144
|
635 |
+
#: includes/admin/replies.php:796 includes/admin/topics.php:975
|
636 |
+
#: includes/admin/topics.php:994 includes/admin/users.php:260
|
637 |
msgid "View"
|
638 |
msgstr ""
|
639 |
|
640 |
+
#: includes/admin/classes/class-bbp-topic-replies-list-table.php:149
|
641 |
+
#: includes/common/template.php:2262 includes/forums/template.php:54
|
642 |
+
#: includes/replies/template.php:55 includes/replies/template.php:1848
|
643 |
+
#: includes/topics/template.php:53 includes/topics/template.php:2429
|
644 |
#: templates/default/bbpress/user-details.php:74
|
645 |
msgid "Edit"
|
646 |
msgstr ""
|
647 |
|
648 |
+
#: includes/admin/classes/class-bbp-topic-replies-list-table.php:249
|
649 |
msgid "No replies to this topic."
|
650 |
msgstr ""
|
651 |
|
652 |
+
#: includes/admin/forums.php:101 includes/admin/replies.php:115
|
653 |
+
#: includes/admin/settings.php:1845 includes/admin/tools/help.php:95
|
654 |
+
#: includes/admin/topics.php:119
|
655 |
msgid "Overview"
|
656 |
msgstr ""
|
657 |
|
661 |
"the display of this screen to suit your workflow."
|
662 |
msgstr ""
|
663 |
|
664 |
+
#: includes/admin/forums.php:109 includes/admin/replies.php:123
|
665 |
+
#: includes/admin/topics.php:127
|
666 |
msgid "Screen Content"
|
667 |
msgstr ""
|
668 |
|
669 |
+
#: includes/admin/forums.php:111 includes/admin/replies.php:125
|
670 |
+
#: includes/admin/topics.php:129
|
671 |
msgid ""
|
672 |
"You can customize the display of this screen’s contents in a number "
|
673 |
"of ways:"
|
694 |
"forum creator in the forums list."
|
695 |
msgstr ""
|
696 |
|
697 |
+
#: includes/admin/forums.php:122 includes/admin/replies.php:137
|
698 |
+
#: includes/admin/topics.php:141
|
699 |
msgid "Available Actions"
|
700 |
msgstr ""
|
701 |
|
713 |
|
714 |
#: includes/admin/forums.php:127
|
715 |
msgid ""
|
716 |
+
"<strong>Close</strong> will mark the selected forum as ’closed’ "
|
717 |
+
"and disable the ability to post new topics and replies in it."
|
718 |
+
msgstr ""
|
719 |
+
|
720 |
+
#: includes/admin/forums.php:128
|
721 |
+
msgid ""
|
722 |
"<strong>Trash</strong> removes your forum from this list and places it in "
|
723 |
"the trash, from which you can permanently delete it."
|
724 |
msgstr ""
|
725 |
|
726 |
+
#: includes/admin/forums.php:129
|
727 |
msgid ""
|
728 |
+
"<strong>View</strong> will either show you what your draft forum will look "
|
729 |
+
"like if you publish it, or take you to your live site to view it. Which "
|
730 |
+
"link depends on your forum’s status."
|
731 |
msgstr ""
|
732 |
|
733 |
+
#: includes/admin/forums.php:136 includes/admin/replies.php:153
|
734 |
#: includes/admin/tools/repair.php:47 includes/admin/tools/repair.php:149
|
735 |
#: includes/admin/tools/upgrade.php:44 includes/admin/tools/upgrade.php:146
|
736 |
+
#: includes/admin/topics.php:159
|
737 |
msgid "Bulk Actions"
|
738 |
msgstr ""
|
739 |
|
740 |
+
#: includes/admin/forums.php:138
|
741 |
msgid ""
|
742 |
"You can also edit or move multiple forums to the trash at once. Select the "
|
743 |
"forums you want to act on using the checkboxes, then select the action you "
|
744 |
"want to take from the Bulk Actions menu and click Apply."
|
745 |
msgstr ""
|
746 |
|
747 |
+
#: includes/admin/forums.php:139
|
748 |
msgid ""
|
749 |
"When using Bulk Edit, you can change the metadata (categories, author, "
|
750 |
"etc.) for all selected forums at once. To remove a forum from the grouping, "
|
751 |
"just click the x next to its name in the Bulk Edit area that appears."
|
752 |
msgstr ""
|
753 |
|
754 |
+
#: includes/admin/forums.php:144 includes/admin/forums.php:200
|
755 |
+
#: includes/admin/replies.php:161 includes/admin/replies.php:215
|
756 |
+
#: includes/admin/settings.php:1911 includes/admin/tools/help.php:43
|
757 |
#: includes/admin/tools/help.php:72 includes/admin/tools/help.php:130
|
758 |
+
#: includes/admin/topics.php:167 includes/admin/topics.php:220
|
759 |
msgid "For more information:"
|
760 |
msgstr ""
|
761 |
|
762 |
+
#: includes/admin/forums.php:145 includes/admin/forums.php:201
|
763 |
+
#: includes/admin/replies.php:162 includes/admin/replies.php:216
|
764 |
+
#: includes/admin/settings.php:1912 includes/admin/tools/help.php:44
|
765 |
#: includes/admin/tools/help.php:73 includes/admin/tools/help.php:131
|
766 |
+
#: includes/admin/topics.php:168 includes/admin/topics.php:221
|
767 |
msgid ""
|
768 |
"<a href=\"https://codex.bbpress.org\" target=\"_blank\">bbPress "
|
769 |
"Documentation</a>"
|
770 |
msgstr ""
|
771 |
|
772 |
+
#: includes/admin/forums.php:146 includes/admin/forums.php:202
|
773 |
+
#: includes/admin/replies.php:163 includes/admin/replies.php:217
|
774 |
+
#: includes/admin/settings.php:1913 includes/admin/tools/help.php:45
|
775 |
#: includes/admin/tools/help.php:74 includes/admin/tools/help.php:132
|
776 |
+
#: includes/admin/topics.php:169 includes/admin/topics.php:222
|
777 |
msgid ""
|
778 |
"<a href=\"https://bbpress.org/forums/\" target=\"_blank\">bbPress Support "
|
779 |
"Forums</a>"
|
780 |
msgstr ""
|
781 |
|
782 |
+
#: includes/admin/forums.php:157
|
783 |
msgid ""
|
784 |
"The title field and the big forum editing Area are fixed in place, but you "
|
785 |
"can reposition all the other boxes using drag and drop, and can minimize or "
|
789 |
"screen."
|
790 |
msgstr ""
|
791 |
|
792 |
+
#: includes/admin/forums.php:161 includes/admin/replies.php:178
|
793 |
+
#: includes/admin/topics.php:184
|
794 |
msgid "Customizing This Display"
|
795 |
msgstr ""
|
796 |
|
797 |
+
#: includes/admin/forums.php:167
|
798 |
msgid "Title and Forum Editor"
|
799 |
msgstr ""
|
800 |
|
801 |
+
#: includes/admin/forums.php:169
|
802 |
msgid ""
|
803 |
"<strong>Title</strong> - Enter a title for your forum. After you enter a "
|
804 |
"title, you’ll see the permalink below, which you can edit."
|
805 |
msgstr ""
|
806 |
|
807 |
+
#: includes/admin/forums.php:170
|
808 |
msgid ""
|
809 |
"<strong>Forum Editor</strong> - Enter the text for your forum. There are "
|
810 |
"two modes of editing: Visual and HTML. Choose the mode by clicking on the "
|
819 |
"editor."
|
820 |
msgstr ""
|
821 |
|
822 |
+
#: includes/admin/forums.php:173
|
823 |
msgid ""
|
824 |
"<strong>Publish</strong> - You can set the terms of publishing your forum "
|
825 |
"in the Publish box. For Status, Visibility, and Publish (immediately), "
|
830 |
"future or backdate a forum."
|
831 |
msgstr ""
|
832 |
|
833 |
+
#: includes/admin/forums.php:176
|
834 |
msgid ""
|
835 |
"<strong>Featured Image</strong> - This allows you to associate an image "
|
836 |
"with your forum without inserting it. This is usually useful only if your "
|
838 |
"page, a custom header, etc."
|
839 |
msgstr ""
|
840 |
|
841 |
+
#: includes/admin/forums.php:181 includes/admin/forums.php:214
|
842 |
+
#: includes/forums/template.php:69
|
843 |
msgid "Forum Attributes"
|
844 |
msgstr ""
|
845 |
|
846 |
+
#: includes/admin/forums.php:183
|
847 |
msgid "Select the attributes that your forum should have:"
|
848 |
msgstr ""
|
849 |
|
850 |
+
#: includes/admin/forums.php:185
|
851 |
msgid ""
|
852 |
"<strong>Type</strong> indicates if the forum is a category or forum. "
|
853 |
"Categories generally contain other forums."
|
854 |
msgstr ""
|
855 |
|
856 |
+
#: includes/admin/forums.php:186
|
857 |
msgid ""
|
858 |
"<strong>Status</strong> allows you to close a forum to new topics and "
|
859 |
"forums."
|
860 |
msgstr ""
|
861 |
|
862 |
+
#: includes/admin/forums.php:187
|
863 |
msgid ""
|
864 |
"<strong>Visibility</strong> lets you pick the scope of each forum and what "
|
865 |
"users are allowed to access it."
|
866 |
msgstr ""
|
867 |
|
868 |
+
#: includes/admin/forums.php:188
|
869 |
msgid ""
|
870 |
"<strong>Parent</strong> dropdown determines the parent forum. Select the "
|
871 |
"forum or category from the dropdown, or leave the default \"No parent\" to "
|
872 |
"create the forum at the root of your forums."
|
873 |
msgstr ""
|
874 |
|
875 |
+
#: includes/admin/forums.php:189
|
876 |
msgid "<strong>Order</strong> allows you to order your forums numerically."
|
877 |
msgstr ""
|
878 |
|
879 |
+
#: includes/admin/forums.php:195 includes/admin/replies.php:210
|
880 |
+
#: includes/admin/topics.php:215
|
881 |
msgid "Publish Box"
|
882 |
msgstr ""
|
883 |
|
884 |
+
#: includes/admin/forums.php:237 includes/admin/settings.php:208
|
885 |
#: includes/admin/tools/reset.php:41
|
886 |
msgid "Forum Moderators"
|
887 |
msgstr ""
|
888 |
|
889 |
+
#: includes/admin/forums.php:267 includes/admin/settings.php:184
|
890 |
+
#: includes/admin/settings.php:436 includes/admin/tools/common.php:284
|
891 |
+
#: includes/admin/topics.php:480 includes/extend/buddypress/loader.php:260
|
892 |
#: templates/default/bbpress/user-details.php:67
|
893 |
msgid "Subscriptions"
|
894 |
msgstr ""
|
895 |
|
896 |
+
#: includes/admin/forums.php:361
|
897 |
msgid "The forum was not found."
|
898 |
msgstr ""
|
899 |
|
900 |
+
#: includes/admin/forums.php:366 includes/admin/replies.php:464
|
901 |
+
#: includes/admin/topics.php:582
|
902 |
msgid "You do not have permission to do that."
|
903 |
msgstr ""
|
904 |
|
905 |
+
#: includes/admin/forums.php:451
|
906 |
msgid "There was a problem opening the forum \"%1$s\"."
|
907 |
msgstr ""
|
908 |
|
909 |
+
#: includes/admin/forums.php:452
|
910 |
msgid "Forum \"%1$s\" successfully opened."
|
911 |
msgstr ""
|
912 |
|
913 |
+
#: includes/admin/forums.php:457
|
914 |
msgid "There was a problem closing the forum \"%1$s\"."
|
915 |
msgstr ""
|
916 |
|
917 |
+
#: includes/admin/forums.php:458
|
918 |
msgid "Forum \"%1$s\" successfully closed."
|
919 |
msgstr ""
|
920 |
|
921 |
+
#: includes/admin/forums.php:540 includes/admin/metaboxes.php:659
|
922 |
msgid "Moderators"
|
923 |
msgstr ""
|
924 |
|
925 |
+
#: includes/admin/forums.php:541
|
926 |
#: templates/default/bbpress/content-single-topic-lead.php:19
|
927 |
#: templates/default/bbpress/content-single-topic-lead.php:87
|
928 |
msgid "Creator"
|
929 |
msgstr ""
|
930 |
|
931 |
+
#: includes/admin/forums.php:542 includes/admin/replies.php:668
|
932 |
+
#: includes/admin/topics.php:859
|
933 |
msgid "Created"
|
934 |
msgstr ""
|
935 |
|
936 |
+
#: includes/admin/forums.php:543 includes/admin/topics.php:860
|
937 |
#: templates/default/bbpress/loop-forums.php:26
|
938 |
#: templates/default/bbpress/loop-topics.php:24
|
939 |
msgid "Last Post"
|
940 |
msgstr ""
|
941 |
|
942 |
+
#: includes/admin/forums.php:578
|
943 |
msgid "—"
|
944 |
msgstr ""
|
945 |
|
946 |
+
#: includes/admin/forums.php:595 includes/forums/template.php:572
|
947 |
msgid "No Topics"
|
948 |
msgstr ""
|
949 |
|
950 |
+
#: includes/admin/forums.php:631
|
951 |
msgid "Close this forum"
|
952 |
msgstr ""
|
953 |
|
954 |
+
#: includes/admin/forums.php:633
|
955 |
msgid "Open this forum"
|
956 |
msgstr ""
|
957 |
|
958 |
+
#: includes/admin/forums.php:701 includes/admin/forums.php:713
|
959 |
msgid "Forum updated."
|
960 |
msgstr ""
|
961 |
|
962 |
+
#: includes/admin/forums.php:703 includes/admin/forums.php:726
|
963 |
msgid "View forum"
|
964 |
msgstr ""
|
965 |
|
966 |
+
#: includes/admin/forums.php:707 includes/admin/replies.php:977
|
967 |
+
#: includes/admin/topics.php:1181
|
968 |
msgid "Custom field updated."
|
969 |
msgstr ""
|
970 |
|
971 |
+
#: includes/admin/forums.php:710 includes/admin/replies.php:980
|
972 |
+
#: includes/admin/topics.php:1184
|
973 |
msgid "Custom field deleted."
|
974 |
msgstr ""
|
975 |
|
976 |
+
#: includes/admin/forums.php:718
|
977 |
#. translators: %s: date and time of the revision
|
978 |
msgid "Forum restored to revision from %s"
|
979 |
msgstr ""
|
980 |
|
981 |
+
#: includes/admin/forums.php:724
|
982 |
msgid "Forum created."
|
983 |
msgstr ""
|
984 |
|
985 |
+
#: includes/admin/forums.php:730
|
986 |
msgid "Forum saved."
|
987 |
msgstr ""
|
988 |
|
989 |
+
#: includes/admin/forums.php:735
|
990 |
msgid "Forum submitted."
|
991 |
msgstr ""
|
992 |
|
993 |
+
#: includes/admin/forums.php:737 includes/admin/forums.php:749
|
994 |
+
#: includes/admin/forums.php:757
|
995 |
msgid "Preview forum"
|
996 |
msgstr ""
|
997 |
|
998 |
+
#: includes/admin/forums.php:744
|
999 |
msgid "Forum scheduled for: %s."
|
1000 |
msgstr ""
|
1001 |
|
1002 |
+
#: includes/admin/forums.php:746 includes/admin/replies.php:1016
|
1003 |
+
#: includes/admin/topics.php:1220
|
1004 |
#. translators: Publish box date format, see http:php.net/date
|
1005 |
msgid "M j, Y @ G:i"
|
1006 |
msgstr ""
|
1007 |
|
1008 |
+
#: includes/admin/forums.php:755
|
1009 |
msgid "Forum draft updated."
|
1010 |
msgstr ""
|
1011 |
|
1050 |
msgstr[1] ""
|
1051 |
|
1052 |
#: includes/admin/metaboxes.php:166 includes/admin/settings.php:367
|
1053 |
+
#: includes/topics/template.php:3393
|
1054 |
msgid "Topic Tag"
|
1055 |
msgid_plural "Topic Tags"
|
1056 |
msgstr[0] ""
|
1134 |
msgstr ""
|
1135 |
|
1136 |
#: includes/admin/metaboxes.php:431 includes/admin/metaboxes.php:495
|
1137 |
+
#: includes/extend/buddypress/groups.php:1188 includes/topics/template.php:65
|
1138 |
#: templates/default/bbpress/form-topic.php:124
|
1139 |
#: templates/default/bbpress/loop-search-forum.php:25
|
1140 |
msgid "Forum:"
|
1141 |
msgstr ""
|
1142 |
|
1143 |
+
#: includes/admin/metaboxes.php:445 includes/extend/buddypress/groups.php:356
|
1144 |
#: templates/default/bbpress/form-topic.php:127
|
1145 |
msgid "— No forum —"
|
1146 |
msgstr ""
|
1153 |
msgid "— No reply —"
|
1154 |
msgstr ""
|
1155 |
|
1156 |
+
#: includes/admin/metaboxes.php:522
|
1157 |
#: templates/default/bbpress/loop-search-topic.php:25
|
1158 |
msgid "Topic:"
|
1159 |
msgstr ""
|
1226 |
msgid "No users have favorited this topic."
|
1227 |
msgstr ""
|
1228 |
|
1229 |
+
#: includes/admin/metaboxes.php:769
|
1230 |
msgid "No users have subscribed to this topic."
|
1231 |
msgstr ""
|
1232 |
|
1233 |
+
#: includes/admin/metaboxes.php:805
|
1234 |
msgid "No users have subscribed to this forum."
|
1235 |
msgstr ""
|
1236 |
|
1237 |
+
#: includes/admin/replies.php:117
|
1238 |
msgid ""
|
1239 |
"This screen provides access to all of your replies. You can customize the "
|
1240 |
"display of this screen to suit your workflow."
|
1241 |
msgstr ""
|
1242 |
|
1243 |
+
#: includes/admin/replies.php:127
|
1244 |
msgid ""
|
1245 |
"You can hide/display columns based on your needs and decide how many "
|
1246 |
"replies to list per screen using the Screen Options tab."
|
1247 |
msgstr ""
|
1248 |
|
1249 |
+
#: includes/admin/replies.php:128
|
1250 |
msgid ""
|
1251 |
"You can filter the list of replies by reply status using the text links in "
|
1252 |
"the upper left to show All, Published, Draft, Pending, Trashed, or Spam "
|
1253 |
"replies. The default view is to show all replies."
|
1254 |
msgstr ""
|
1255 |
|
1256 |
+
#: includes/admin/replies.php:129
|
1257 |
msgid ""
|
1258 |
"You can view replies in a simple title list or with an excerpt. Choose the "
|
1259 |
"view you prefer by clicking on the icons at the top of the list on the "
|
1260 |
"right."
|
1261 |
msgstr ""
|
1262 |
|
1263 |
+
#: includes/admin/replies.php:130
|
1264 |
msgid ""
|
1265 |
"You can refine the list to show only replies in a specific forum or from a "
|
1266 |
"specific month by using the dropdown menus above the replies list. Click "
|
1267 |
"the Filter button after making your selection."
|
1268 |
msgstr ""
|
1269 |
|
1270 |
+
#: includes/admin/replies.php:139
|
1271 |
msgid ""
|
1272 |
"Hovering over a row in the replies list will display action links that "
|
1273 |
"allow you to manage your reply. You can perform the following actions:"
|
1274 |
msgstr ""
|
1275 |
|
1276 |
+
#: includes/admin/replies.php:141
|
1277 |
msgid ""
|
1278 |
"<strong>Edit</strong> takes you to the editing screen for that reply. You "
|
1279 |
"can also reach that screen by clicking on the reply title."
|
1280 |
msgstr ""
|
1281 |
|
1282 |
+
#: includes/admin/replies.php:143
|
1283 |
msgid ""
|
1284 |
"<strong>Trash</strong> removes your reply from this list and places it in "
|
1285 |
"the trash, from which you can permanently delete it."
|
1286 |
msgstr ""
|
1287 |
|
1288 |
+
#: includes/admin/replies.php:144
|
1289 |
msgid ""
|
1290 |
"<strong>Spam</strong> removes your reply from this list and places it in "
|
1291 |
"the spam queue, from which you can permanently delete it."
|
1292 |
msgstr ""
|
1293 |
|
1294 |
+
#: includes/admin/replies.php:145
|
1295 |
msgid "<strong>View</strong> will take you to your live site to view the reply."
|
1296 |
msgstr ""
|
1297 |
|
1298 |
+
#: includes/admin/replies.php:146 includes/admin/topics.php:148
|
1299 |
msgid "<strong>Approve</strong> will change the status from pending to publish."
|
1300 |
msgstr ""
|
1301 |
|
1302 |
+
#: includes/admin/replies.php:155
|
1303 |
msgid ""
|
1304 |
"You can also edit, spam, or move multiple replies to the trash at once. "
|
1305 |
"Select the replies you want to act on using the checkboxes, then select the "
|
1306 |
"action you want to take from the Bulk Actions menu and click Apply."
|
1307 |
msgstr ""
|
1308 |
|
1309 |
+
#: includes/admin/replies.php:156
|
1310 |
msgid ""
|
1311 |
"When using Bulk Edit, you can change the metadata (categories, author, "
|
1312 |
"etc.) for all selected replies at once. To remove a reply from the "
|
1314 |
"appears."
|
1315 |
msgstr ""
|
1316 |
|
1317 |
+
#: includes/admin/replies.php:174
|
1318 |
msgid ""
|
1319 |
"The title field and the big reply editing Area are fixed in place, but you "
|
1320 |
"can reposition all the other boxes using drag and drop, and can minimize or "
|
1324 |
"screen."
|
1325 |
msgstr ""
|
1326 |
|
1327 |
+
#: includes/admin/replies.php:184
|
1328 |
msgid "Title and Reply Editor"
|
1329 |
msgstr ""
|
1330 |
|
1331 |
+
#: includes/admin/replies.php:186
|
1332 |
msgid ""
|
1333 |
"<strong>Title</strong> - Enter a title for your reply. After you enter a "
|
1334 |
"title, you’ll see the permalink below, which you can edit."
|
1335 |
msgstr ""
|
1336 |
|
1337 |
+
#: includes/admin/replies.php:187
|
1338 |
msgid ""
|
1339 |
"<strong>Reply Editor</strong> - Enter the text for your reply. There are "
|
1340 |
"two modes of editing: Visual and HTML. Choose the mode by clicking on the "
|
1349 |
"editor."
|
1350 |
msgstr ""
|
1351 |
|
1352 |
+
#: includes/admin/replies.php:190
|
1353 |
msgid ""
|
1354 |
"<strong>Publish</strong> - You can set the terms of publishing your reply "
|
1355 |
"in the Publish box. For Status, Visibility, and Publish (immediately), "
|
1360 |
"future or backdate a reply."
|
1361 |
msgstr ""
|
1362 |
|
1363 |
+
#: includes/admin/replies.php:193
|
1364 |
msgid ""
|
1365 |
"<strong>Featured Image</strong> - This allows you to associate an image "
|
1366 |
"with your reply without inserting it. This is usually useful only if your "
|
1368 |
"page, a custom header, etc."
|
1369 |
msgstr ""
|
1370 |
|
1371 |
+
#: includes/admin/replies.php:198 includes/admin/replies.php:336
|
1372 |
+
#: includes/replies/template.php:70
|
1373 |
msgid "Reply Attributes"
|
1374 |
msgstr ""
|
1375 |
|
1376 |
+
#: includes/admin/replies.php:200
|
1377 |
msgid "Select the attributes that your reply should have:"
|
1378 |
msgstr ""
|
1379 |
|
1380 |
+
#: includes/admin/replies.php:202
|
1381 |
msgid ""
|
1382 |
"<strong>Forum</strong> dropdown determines the parent forum that the reply "
|
1383 |
"belongs to. Select the forum, or leave the default (Use Forum of Topic) to "
|
1384 |
"post the reply in forum of the topic."
|
1385 |
msgstr ""
|
1386 |
|
1387 |
+
#: includes/admin/replies.php:203
|
1388 |
msgid ""
|
1389 |
"<strong>Topic</strong> determines the parent topic that the reply belongs "
|
1390 |
"to."
|
1391 |
msgstr ""
|
1392 |
|
1393 |
+
#: includes/admin/replies.php:204
|
1394 |
msgid "<strong>Reply To</strong> determines the threading of the reply."
|
1395 |
msgstr ""
|
1396 |
|
1397 |
+
#: includes/admin/replies.php:233 includes/admin/topics.php:238
|
1398 |
+
#: includes/replies/template.php:2029 includes/topics/template.php:2834
|
1399 |
msgid "Unspam"
|
1400 |
msgstr ""
|
1401 |
|
1402 |
+
#: includes/admin/replies.php:251
|
1403 |
msgid "%s reply updated."
|
1404 |
msgid_plural "%s replies updated."
|
1405 |
msgstr[0] ""
|
1406 |
msgstr[1] ""
|
1407 |
|
1408 |
+
#: includes/admin/replies.php:253
|
1409 |
msgid "1 reply not updated, somebody is editing it."
|
1410 |
msgstr ""
|
1411 |
|
1412 |
+
#: includes/admin/replies.php:254
|
1413 |
msgid "%s reply not updated, somebody is editing it."
|
1414 |
msgid_plural "%s replies not updated, somebody is editing them."
|
1415 |
msgstr[0] ""
|
1416 |
msgstr[1] ""
|
1417 |
|
1418 |
+
#: includes/admin/replies.php:278 includes/admin/topics.php:283
|
1419 |
msgid "Sorry, you are not allowed to spam this item."
|
1420 |
msgstr ""
|
1421 |
|
1422 |
+
#: includes/admin/replies.php:287
|
1423 |
msgid "Error in spamming reply."
|
1424 |
msgstr ""
|
1425 |
|
1426 |
+
#: includes/admin/replies.php:303
|
1427 |
msgid "Sorry, you are not allowed to unspam this reply."
|
1428 |
msgstr ""
|
1429 |
|
1430 |
+
#: includes/admin/replies.php:312
|
1431 |
msgid "Error in unspamming reply."
|
1432 |
msgstr ""
|
1433 |
|
1434 |
+
#: includes/admin/replies.php:361 includes/admin/topics.php:364
|
1435 |
#: templates/default/bbpress/form-anonymous.php:18
|
1436 |
msgid "Author Information"
|
1437 |
msgstr ""
|
1438 |
|
1439 |
+
#: includes/admin/replies.php:459
|
1440 |
msgid "The reply was not found."
|
1441 |
msgstr ""
|
1442 |
|
1443 |
+
#: includes/admin/replies.php:562
|
1444 |
msgid "There was a problem marking the reply \"%1$s\" as spam."
|
1445 |
msgstr ""
|
1446 |
|
1447 |
+
#: includes/admin/replies.php:563
|
1448 |
msgid "Reply \"%1$s\" successfully marked as spam."
|
1449 |
msgstr ""
|
1450 |
|
1451 |
+
#: includes/admin/replies.php:568
|
1452 |
msgid "There was a problem unmarking the reply \"%1$s\" as spam."
|
1453 |
msgstr ""
|
1454 |
|
1455 |
+
#: includes/admin/replies.php:569
|
1456 |
msgid "Reply \"%1$s\" successfully unmarked as spam."
|
1457 |
msgstr ""
|
1458 |
|
1459 |
+
#: includes/admin/replies.php:574
|
1460 |
msgid "There was a problem approving the reply \"%1$s\"."
|
1461 |
msgstr ""
|
1462 |
|
1463 |
+
#: includes/admin/replies.php:575
|
1464 |
msgid "Reply \"%1$s\" successfully approved."
|
1465 |
msgstr ""
|
1466 |
|
1467 |
+
#: includes/admin/replies.php:580
|
1468 |
msgid "There was a problem unapproving the reply \"%1$s\"."
|
1469 |
msgstr ""
|
1470 |
|
1471 |
+
#: includes/admin/replies.php:581
|
1472 |
msgid "Reply \"%1$s\" successfully unapproved."
|
1473 |
msgstr ""
|
1474 |
|
1475 |
+
#: includes/admin/replies.php:664
|
1476 |
msgid "Title"
|
1477 |
msgstr ""
|
1478 |
|
1479 |
+
#: includes/admin/replies.php:707
|
1480 |
msgid "No topic"
|
1481 |
msgstr ""
|
1482 |
|
1483 |
+
#: includes/admin/replies.php:728
|
1484 |
msgid "(Mismatch)"
|
1485 |
msgstr ""
|
1486 |
|
1487 |
+
#: includes/admin/replies.php:740 includes/admin/topics.php:899
|
1488 |
msgid "No forum"
|
1489 |
msgstr ""
|
1490 |
|
1491 |
+
#: includes/admin/replies.php:796 includes/admin/topics.php:975
|
1492 |
+
#: includes/admin/topics.php:994
|
1493 |
msgid "View “%s”"
|
1494 |
msgstr ""
|
1495 |
|
1496 |
+
#: includes/admin/replies.php:809
|
1497 |
msgid "Unapprove this reply"
|
1498 |
msgstr ""
|
1499 |
|
1500 |
+
#: includes/admin/replies.php:811
|
1501 |
msgid "Approve this reply"
|
1502 |
msgstr ""
|
1503 |
|
1504 |
+
#: includes/admin/replies.php:818
|
1505 |
+
msgid "Mark this reply as spam"
|
1506 |
msgstr ""
|
1507 |
|
1508 |
+
#: includes/admin/replies.php:820
|
1509 |
+
msgid "Mark the reply as not spam"
|
1510 |
msgstr ""
|
1511 |
|
1512 |
+
#: includes/admin/replies.php:820 includes/admin/topics.php:1025
|
1513 |
+
msgid "Not Spam"
|
1514 |
msgstr ""
|
1515 |
|
1516 |
+
#: includes/admin/replies.php:831 includes/admin/topics.php:1035
|
1517 |
+
#: includes/replies/template.php:1978 includes/topics/template.php:2558
|
1518 |
msgid "Restore this item from the Trash"
|
1519 |
msgstr ""
|
1520 |
|
1521 |
+
#: includes/admin/replies.php:831 includes/admin/topics.php:1035
|
1522 |
+
#: includes/replies/template.php:1961 includes/topics/template.php:2542
|
1523 |
msgid "Restore"
|
1524 |
msgstr ""
|
1525 |
|
1526 |
+
#: includes/admin/replies.php:833 includes/admin/topics.php:1037
|
1527 |
+
#: includes/replies/template.php:1982 includes/topics/template.php:2560
|
1528 |
msgid "Move this item to the Trash"
|
1529 |
msgstr ""
|
1530 |
|
1531 |
+
#: includes/admin/replies.php:837 includes/admin/topics.php:1041
|
1532 |
+
#: includes/replies/template.php:1987 includes/topics/template.php:2564
|
1533 |
msgid "Delete this item permanently"
|
1534 |
msgstr ""
|
1535 |
|
1536 |
+
#: includes/admin/replies.php:837 includes/admin/topics.php:1041
|
1537 |
msgid "Delete Permanently"
|
1538 |
msgstr ""
|
1539 |
|
1540 |
+
#: includes/admin/replies.php:891 includes/admin/topics.php:1095
|
1541 |
+
msgid "In all forums"
|
1542 |
msgstr ""
|
1543 |
|
1544 |
+
#: includes/admin/replies.php:914 includes/admin/topics.php:1118
|
1545 |
+
msgid "Empty Spam"
|
1546 |
msgstr ""
|
1547 |
|
1548 |
+
#: includes/admin/replies.php:971 includes/admin/replies.php:983
|
1549 |
msgid "Reply updated."
|
1550 |
msgstr ""
|
1551 |
|
1552 |
+
#: includes/admin/replies.php:973 includes/admin/replies.php:996
|
1553 |
+
#: includes/admin/topics.php:1177 includes/admin/topics.php:1200
|
1554 |
msgid "View topic"
|
1555 |
msgstr ""
|
1556 |
|
1557 |
+
#: includes/admin/replies.php:988
|
1558 |
#. translators: %s: date and time of the revision
|
1559 |
msgid "Reply restored to revision from %s"
|
1560 |
msgstr ""
|
1561 |
|
1562 |
+
#: includes/admin/replies.php:994
|
1563 |
msgid "Reply created."
|
1564 |
msgstr ""
|
1565 |
|
1566 |
+
#: includes/admin/replies.php:1000
|
1567 |
msgid "Reply saved."
|
1568 |
msgstr ""
|
1569 |
|
1570 |
+
#: includes/admin/replies.php:1005
|
1571 |
msgid "Reply submitted."
|
1572 |
msgstr ""
|
1573 |
|
1574 |
+
#: includes/admin/replies.php:1007 includes/admin/replies.php:1019
|
1575 |
+
#: includes/admin/replies.php:1027 includes/admin/topics.php:1211
|
1576 |
+
#: includes/admin/topics.php:1223 includes/admin/topics.php:1231
|
1577 |
msgid "Preview topic"
|
1578 |
msgstr ""
|
1579 |
|
1580 |
+
#: includes/admin/replies.php:1014
|
1581 |
msgid "Reply scheduled for: %s."
|
1582 |
msgstr ""
|
1583 |
|
1584 |
+
#: includes/admin/replies.php:1025
|
1585 |
msgid "Reply draft updated."
|
1586 |
msgstr ""
|
1587 |
|
1645 |
msgid "Editing"
|
1646 |
msgstr ""
|
1647 |
|
1648 |
+
#: includes/admin/settings.php:155 includes/users/template.php:800
|
1649 |
msgid "Anonymous"
|
1650 |
msgstr ""
|
1651 |
|
1652 |
+
#: includes/admin/settings.php:168 includes/admin/settings.php:1998
|
1653 |
msgid "Revisions"
|
1654 |
msgstr ""
|
1655 |
|
1656 |
+
#: includes/admin/settings.php:176 includes/admin/tools/common.php:281
|
1657 |
+
#: includes/admin/topics.php:450 includes/extend/buddypress/loader.php:247
|
1658 |
#: templates/default/bbpress/user-details.php:57
|
1659 |
msgid "Favorites"
|
1660 |
msgstr ""
|
1661 |
|
1662 |
#: includes/admin/settings.php:192 includes/admin/settings.php:444
|
1663 |
+
#: includes/admin/tools/common.php:287 includes/admin/topics.php:420
|
1664 |
+
#: includes/extend/buddypress/loader.php:234
|
1665 |
+
#: includes/extend/buddypress/loader.php:336
|
1666 |
#: templates/default/bbpress/user-details.php:49
|
1667 |
msgid "Engagements"
|
1668 |
msgstr ""
|
1676 |
msgstr ""
|
1677 |
|
1678 |
#: includes/admin/settings.php:224 includes/admin/settings.php:391
|
1679 |
+
#: includes/common/template.php:2377 includes/search/template.php:175
|
1680 |
#: templates/default/bbpress/form-reply-search.php:20
|
1681 |
#: templates/default/bbpress/form-search.php:21
|
1682 |
#: templates/default/bbpress/form-topic-search.php:20
|
1719 |
msgid "User Base"
|
1720 |
msgstr ""
|
1721 |
|
1722 |
+
#: includes/admin/settings.php:412 includes/extend/buddypress/loader.php:211
|
1723 |
+
#: includes/extend/buddypress/loader.php:319
|
1724 |
#: templates/default/bbpress/user-details.php:36
|
1725 |
msgid "Topics Started"
|
1726 |
msgstr ""
|
1727 |
|
1728 |
+
#: includes/admin/settings.php:420 includes/extend/buddypress/loader.php:222
|
1729 |
+
#: includes/extend/buddypress/loader.php:327
|
1730 |
#: templates/default/bbpress/user-details.php:42
|
1731 |
msgid "Replies Created"
|
1732 |
msgstr ""
|
1733 |
|
1734 |
+
#: includes/admin/settings.php:428 includes/extend/buddypress/loader.php:346
|
1735 |
msgid "Favorite Topics"
|
1736 |
msgstr ""
|
1737 |
|
1984 |
|
1985 |
#: includes/admin/settings.php:1525
|
1986 |
msgid ""
|
1987 |
+
"Information about the database for your previous forums so they can be "
|
1988 |
+
"converted."
|
1989 |
msgstr ""
|
1990 |
|
1991 |
#: includes/admin/settings.php:1548
|
1992 |
+
msgid "The previous forum software"
|
1993 |
msgstr ""
|
1994 |
|
1995 |
#: includes/admin/settings.php:1562
|
1996 |
+
msgid "Use default %s if same server, or IP or hostname"
|
1997 |
msgstr ""
|
1998 |
|
1999 |
#: includes/admin/settings.php:1576
|
2000 |
+
msgid "Use default %s if unsure"
|
2001 |
msgstr ""
|
2002 |
|
2003 |
#: includes/admin/settings.php:1590
|
2021 |
msgstr ""
|
2022 |
|
2023 |
#: includes/admin/settings.php:1651
|
2024 |
+
msgid "Use %s if converting from BuddyPress Legacy"
|
2025 |
msgstr ""
|
2026 |
|
2027 |
#: includes/admin/settings.php:1665
|
2105 |
msgid "Import Forums"
|
2106 |
msgstr ""
|
2107 |
|
2108 |
+
#: includes/admin/settings.php:1787
|
|
|
|
|
|
|
|
|
2109 |
msgid "Toggle panel: Import Status"
|
2110 |
msgstr ""
|
2111 |
|
2112 |
+
#: includes/admin/settings.php:1791
|
2113 |
msgid "Import Monitor"
|
2114 |
msgstr ""
|
2115 |
|
2116 |
+
#: includes/admin/settings.php:1803
|
2117 |
+
msgid "Pause"
|
2118 |
+
msgstr ""
|
2119 |
+
|
2120 |
+
#: includes/admin/settings.php:1846
|
2121 |
msgid "This screen provides access to all of the Forums settings."
|
2122 |
msgstr ""
|
2123 |
|
2124 |
+
#: includes/admin/settings.php:1847 includes/admin/tools/help.php:97
|
2125 |
msgid ""
|
2126 |
"Please see the additional help tabs for more information on each individual "
|
2127 |
"section."
|
2128 |
msgstr ""
|
2129 |
|
2130 |
+
#: includes/admin/settings.php:1853
|
2131 |
msgid "Main Settings"
|
2132 |
msgstr ""
|
2133 |
|
2134 |
+
#: includes/admin/settings.php:1854
|
2135 |
msgid "The \"Main Settings\" section includes a number of options:"
|
2136 |
msgstr ""
|
2137 |
|
2138 |
+
#: includes/admin/settings.php:1857
|
2139 |
msgid ""
|
2140 |
"You can choose to lock a post after a certain number of minutes. \"Locking "
|
2141 |
"post editing\" will prevent the author from editing some amount of time "
|
2142 |
"after saving a post."
|
2143 |
msgstr ""
|
2144 |
|
2145 |
+
#: includes/admin/settings.php:1858
|
2146 |
msgid ""
|
2147 |
"\"Throttle time\" is the amount of time required between posts from a "
|
2148 |
"single author. The higher the throttle time, the longer a user will need to "
|
2149 |
"wait between posting to the forum."
|
2150 |
msgstr ""
|
2151 |
|
2152 |
+
#: includes/admin/settings.php:1859
|
2153 |
msgid ""
|
2154 |
"Favorites are a way for users to save and later return to topics they "
|
2155 |
"favor. This is enabled by default."
|
2156 |
msgstr ""
|
2157 |
|
2158 |
+
#: includes/admin/settings.php:1860
|
2159 |
msgid ""
|
2160 |
"Subscriptions allow users to subscribe for notifications to topics that "
|
2161 |
"interest them. This is enabled by default."
|
2162 |
msgstr ""
|
2163 |
|
2164 |
+
#: includes/admin/settings.php:1861
|
2165 |
msgid ""
|
2166 |
"Topic-Tags allow users to filter topics between forums. This is enabled by "
|
2167 |
"default."
|
2168 |
msgstr ""
|
2169 |
|
2170 |
+
#: includes/admin/settings.php:1862
|
2171 |
msgid ""
|
2172 |
"\"Anonymous Posting\" allows guest users who do not have accounts on your "
|
2173 |
"site to both create topics as well as replies."
|
2174 |
msgstr ""
|
2175 |
|
2176 |
+
#: includes/admin/settings.php:1863
|
2177 |
msgid ""
|
2178 |
"The Fancy Editor brings the luxury of the Visual editor and HTML editor "
|
2179 |
"from the traditional WordPress dashboard into your theme."
|
2180 |
msgstr ""
|
2181 |
|
2182 |
+
#: includes/admin/settings.php:1864
|
2183 |
msgid ""
|
2184 |
"Auto-embed will embed the media content from a URL directly into the "
|
2185 |
"replies. For example: links to Flickr and YouTube."
|
2186 |
msgstr ""
|
2187 |
|
2188 |
+
#: includes/admin/settings.php:1867
|
2189 |
msgid ""
|
2190 |
"You must click the Save Changes button at the bottom of the screen for new "
|
2191 |
"settings to take effect."
|
2192 |
msgstr ""
|
2193 |
|
2194 |
+
#: includes/admin/settings.php:1873
|
2195 |
msgid "Theme Packages"
|
2196 |
msgstr ""
|
2197 |
|
2198 |
+
#: includes/admin/settings.php:1874
|
2199 |
msgid ""
|
2200 |
"The \"Theme Packages\" section allows you to choose which theme package "
|
2201 |
"should be used."
|
2202 |
msgstr ""
|
2203 |
|
2204 |
+
#: includes/admin/settings.php:1877
|
2205 |
msgid "The \"bbPress Default\" package is installed by default."
|
2206 |
msgstr ""
|
2207 |
|
2208 |
+
#: includes/admin/settings.php:1878
|
2209 |
msgid "Some themes may choose to ignore this setting entirely."
|
2210 |
msgstr ""
|
2211 |
|
2212 |
+
#: includes/admin/settings.php:1879
|
2213 |
msgid "Packages can be stacked to allow for intelligent fallbacks."
|
2214 |
msgstr ""
|
2215 |
|
2216 |
+
#: includes/admin/settings.php:1887
|
2217 |
msgid "Per Page"
|
2218 |
msgstr ""
|
2219 |
|
2220 |
+
#: includes/admin/settings.php:1888
|
2221 |
msgid ""
|
2222 |
"The \"Per Page\" section allows you to control the number of topics and "
|
2223 |
"replies appear on each page."
|
2224 |
msgstr ""
|
2225 |
|
2226 |
+
#: includes/admin/settings.php:1890
|
2227 |
msgid ""
|
2228 |
"This is comparable to the WordPress \"Reading Settings\" page, where you "
|
2229 |
"can set the number of posts that should show on blog pages and in feeds."
|
2230 |
msgstr ""
|
2231 |
|
2232 |
+
#: includes/admin/settings.php:1891
|
2233 |
msgid ""
|
2234 |
"These are broken up into two separate groups: one for what appears in your "
|
2235 |
"theme, another for RSS feeds."
|
2236 |
msgstr ""
|
2237 |
|
2238 |
+
#: includes/admin/settings.php:1899
|
2239 |
msgid "Slugs"
|
2240 |
msgstr ""
|
2241 |
|
2242 |
+
#: includes/admin/settings.php:1900
|
2243 |
msgid ""
|
2244 |
"The \"Slugs\" section allows you to control the permalink structure for "
|
2245 |
"your forums."
|
2246 |
msgstr ""
|
2247 |
|
2248 |
+
#: includes/admin/settings.php:1902
|
2249 |
msgid ""
|
2250 |
"\"Archive Slugs\" are used as the \"root\" for your forums and topics. If "
|
2251 |
"you combine these values with existing page slugs, bbPress will attempt to "
|
2252 |
"output the most correct title and content."
|
2253 |
msgstr ""
|
2254 |
|
2255 |
+
#: includes/admin/settings.php:1903
|
2256 |
msgid ""
|
2257 |
"\"Single Slugs\" are used as a prefix when viewing an individual forum, "
|
2258 |
"topic, reply, user, or view."
|
2259 |
msgstr ""
|
2260 |
|
2261 |
+
#: includes/admin/settings.php:1904
|
2262 |
msgid ""
|
2263 |
"In the event of a slug collision with WordPress or BuddyPress, a warning "
|
2264 |
"will appear next to the problem slug(s)."
|
2265 |
msgstr ""
|
2266 |
|
2267 |
+
#: includes/admin/settings.php:1996
|
2268 |
#: templates/default/bbpress/loop-forums.php:24
|
2269 |
#: templates/default/bbpress/loop-replies.php:21
|
2270 |
#: templates/default/bbpress/loop-replies.php:47
|
2272 |
msgid "Posts"
|
2273 |
msgstr ""
|
2274 |
|
2275 |
+
#: includes/admin/settings.php:1997
|
2276 |
msgid "Pages"
|
2277 |
msgstr ""
|
2278 |
|
2279 |
+
#: includes/admin/settings.php:1999
|
2280 |
msgid "Attachments"
|
2281 |
msgstr ""
|
2282 |
|
2283 |
+
#: includes/admin/settings.php:2000
|
2284 |
msgid "Menus"
|
2285 |
msgstr ""
|
2286 |
|
2287 |
+
#: includes/admin/settings.php:2003
|
2288 |
msgid "Tag base"
|
2289 |
msgstr ""
|
2290 |
|
2291 |
+
#: includes/admin/settings.php:2006
|
2292 |
msgid "Category base"
|
2293 |
msgstr ""
|
2294 |
|
2295 |
+
#: includes/admin/settings.php:2011
|
2296 |
msgid "Forums base"
|
2297 |
msgstr ""
|
2298 |
|
2299 |
+
#: includes/admin/settings.php:2014
|
2300 |
msgid "Topics base"
|
2301 |
msgstr ""
|
2302 |
|
2303 |
+
#: includes/admin/settings.php:2017
|
2304 |
msgid "Forum slug"
|
2305 |
msgstr ""
|
2306 |
|
2307 |
+
#: includes/admin/settings.php:2020
|
2308 |
msgid "Topic slug"
|
2309 |
msgstr ""
|
2310 |
|
2311 |
+
#: includes/admin/settings.php:2023
|
2312 |
msgid "Reply slug"
|
2313 |
msgstr ""
|
2314 |
|
2315 |
+
#: includes/admin/settings.php:2026
|
2316 |
msgid "User base"
|
2317 |
msgstr ""
|
2318 |
|
2319 |
+
#: includes/admin/settings.php:2029
|
2320 |
msgid "View base"
|
2321 |
msgstr ""
|
2322 |
|
2323 |
+
#: includes/admin/settings.php:2032
|
2324 |
msgid "Topic tag slug"
|
2325 |
msgstr ""
|
2326 |
|
2327 |
+
#: includes/admin/settings.php:2044
|
2328 |
msgid "%s page"
|
2329 |
msgstr ""
|
2330 |
|
2331 |
+
#: includes/admin/settings.php:2067
|
2332 |
msgid "Possible %1$s conflict: %2$s"
|
2333 |
msgstr ""
|
2334 |
|
2335 |
+
#: includes/admin/tools/common.php:182
|
2336 |
msgid "Search Tools:"
|
2337 |
msgstr ""
|
2338 |
|
2339 |
+
#: includes/admin/tools/common.php:184
|
2340 |
msgid "Search Tools"
|
2341 |
msgstr ""
|
2342 |
|
2343 |
+
#: includes/admin/tools/common.php:205
|
2344 |
msgid "Filter by Component"
|
2345 |
msgstr ""
|
2346 |
|
2347 |
+
#: includes/admin/tools/common.php:207
|
2348 |
msgid "All Components"
|
2349 |
msgstr ""
|
2350 |
|
2351 |
+
#: includes/admin/tools/common.php:216
|
2352 |
msgid "Filter"
|
2353 |
msgstr ""
|
2354 |
|
2355 |
+
#: includes/admin/tools/common.php:234
|
2356 |
msgid "Low"
|
2357 |
msgstr ""
|
2358 |
|
2359 |
+
#: includes/admin/tools/common.php:237
|
2360 |
msgid "Medium"
|
2361 |
msgstr ""
|
2362 |
|
2363 |
+
#: includes/admin/tools/common.php:240
|
2364 |
msgid "High"
|
2365 |
msgstr ""
|
2366 |
|
2367 |
+
#: includes/admin/tools/common.php:263 includes/admin/tools/common.php:278
|
2368 |
msgid "Users"
|
2369 |
msgstr ""
|
2370 |
|
2371 |
+
#: includes/admin/tools/common.php:275 includes/topics/template.php:3391
|
2372 |
+
#: includes/topics/template.php:3392
|
2373 |
#: templates/default/bbpress/content-statistics.php:40
|
2374 |
msgid "Topic Tags"
|
2375 |
msgstr ""
|
2376 |
|
2377 |
+
#: includes/admin/tools/common.php:456
|
2378 |
msgid "All %s"
|
2379 |
msgstr ""
|
2380 |
|
2556 |
#: includes/admin/tools/repair.php:653 includes/admin/tools/repair.php:722
|
2557 |
#: includes/admin/tools/repair.php:830 includes/admin/tools/repair.php:951
|
2558 |
#: includes/admin/tools/repair.php:1063 includes/admin/tools/repair.php:1083
|
2559 |
+
#: includes/admin/tools/repair.php:1134 includes/admin/tools/reset.php:121
|
2560 |
#: includes/admin/tools/upgrade.php:242
|
2561 |
msgid "Failed!"
|
2562 |
msgstr ""
|
2681 |
msgstr ""
|
2682 |
|
2683 |
#: includes/admin/tools/reset.php:33 includes/forums/template.php:51
|
2684 |
+
#: includes/forums/template.php:67
|
2685 |
msgid "All Forums"
|
2686 |
msgstr ""
|
2687 |
|
2688 |
+
#: includes/admin/tools/reset.php:34 includes/topics/functions.php:3679
|
2689 |
+
#: includes/topics/template.php:50 includes/topics/template.php:66
|
2690 |
msgid "All Topics"
|
2691 |
msgstr ""
|
2692 |
|
2693 |
+
#: includes/admin/tools/reset.php:35 includes/replies/functions.php:2078
|
2694 |
+
#: includes/replies/template.php:52 includes/replies/template.php:68
|
2695 |
msgid "All Replies"
|
2696 |
msgstr ""
|
2697 |
|
2756 |
msgid "Reset bbPress"
|
2757 |
msgstr ""
|
2758 |
|
2759 |
+
#: includes/admin/tools/reset.php:118
|
2760 |
+
msgid "Resetting…"
|
2761 |
+
msgstr ""
|
2762 |
+
|
2763 |
+
#: includes/admin/tools/reset.php:120
|
2764 |
msgid "Success!"
|
2765 |
msgstr ""
|
2766 |
|
2767 |
+
#: includes/admin/tools/reset.php:122
|
2768 |
+
msgid "Skipped."
|
2769 |
msgstr ""
|
2770 |
|
2771 |
+
#: includes/admin/tools/reset.php:181
|
2772 |
+
msgid "Removing Forums, Topics, and Replies… %s"
|
2773 |
msgstr ""
|
2774 |
|
2775 |
+
#: includes/admin/tools/reset.php:189
|
2776 |
+
msgid "Removing Forum, Topic, and Reply Meta Data… %s"
|
2777 |
msgstr ""
|
2778 |
|
2779 |
+
#: includes/admin/tools/reset.php:198
|
2780 |
+
msgid "Removing Revision Data… %s"
|
2781 |
msgstr ""
|
2782 |
|
2783 |
+
#: includes/admin/tools/reset.php:207
|
2784 |
msgid "Deleting Topic Tags… %s"
|
2785 |
msgstr ""
|
2786 |
|
2787 |
+
#: includes/admin/tools/reset.php:226
|
2788 |
msgid "Deleting Imported Users… %s"
|
2789 |
msgstr ""
|
2790 |
|
2791 |
+
#: includes/admin/tools/reset.php:232
|
2792 |
msgid "Deleting Imported User Meta… %s"
|
2793 |
msgstr ""
|
2794 |
|
2795 |
+
#: includes/admin/tools/reset.php:240
|
2796 |
+
msgid "Deleting bbPress Specific User Meta… %s"
|
2797 |
msgstr ""
|
2798 |
|
2799 |
+
#: includes/admin/tools/reset.php:249
|
2800 |
+
msgid "Dropping Conversion Table… %s"
|
2801 |
msgstr ""
|
2802 |
|
2803 |
+
#: includes/admin/tools/reset.php:256
|
2804 |
+
msgid "Deleting Settings… Success!"
|
2805 |
msgstr ""
|
2806 |
|
2807 |
+
#: includes/admin/tools/reset.php:262
|
2808 |
+
msgid "Removing Roles and Capabilities… Success!"
|
2809 |
msgstr ""
|
2810 |
|
2811 |
#: includes/admin/tools/upgrade.php:26 includes/admin/tools.php:508
|
3158 |
msgid "Run this if you just upgraded BuddyPress Forums from Legacy."
|
3159 |
msgstr ""
|
3160 |
|
3161 |
+
#: includes/admin/topics.php:121
|
3162 |
msgid ""
|
3163 |
"This screen displays the individual topics on your site. You can customize "
|
3164 |
"the display of this screen to suit your workflow."
|
3165 |
msgstr ""
|
3166 |
|
3167 |
+
#: includes/admin/topics.php:131
|
3168 |
msgid ""
|
3169 |
"You can hide/display columns based on your needs and decide how many topics "
|
3170 |
"to list per screen using the Screen Options tab."
|
3171 |
msgstr ""
|
3172 |
|
3173 |
+
#: includes/admin/topics.php:132
|
3174 |
msgid ""
|
3175 |
"You can filter the list of topics by topic status using the text links in "
|
3176 |
"the upper left to show All, Published, Draft, Pending, Trashed, Closed, or "
|
3177 |
"Spam topics. The default view is to show all topics."
|
3178 |
msgstr ""
|
3179 |
|
3180 |
+
#: includes/admin/topics.php:133
|
3181 |
msgid ""
|
3182 |
"You can view topics in a simple title list or with an excerpt. Choose the "
|
3183 |
"view you prefer by clicking on the icons at the top of the list on the "
|
3184 |
"right."
|
3185 |
msgstr ""
|
3186 |
|
3187 |
+
#: includes/admin/topics.php:134
|
3188 |
msgid ""
|
3189 |
"You can refine the list to show only topics in a specific forum or from a "
|
3190 |
"specific month by using the dropdown menus above the topics list. Click the "
|
3191 |
"Filter button after making your selection."
|
3192 |
msgstr ""
|
3193 |
|
3194 |
+
#: includes/admin/topics.php:143
|
3195 |
msgid ""
|
3196 |
"Hovering over a row in the topics list will display action links that allow "
|
3197 |
"you to manage your topic. You can perform the following actions:"
|
3198 |
msgstr ""
|
3199 |
|
3200 |
+
#: includes/admin/topics.php:145
|
3201 |
msgid ""
|
3202 |
"<strong>Edit</strong> takes you to the editing screen for that topic. You "
|
3203 |
"can also reach that screen by clicking on the topic title."
|
3204 |
msgstr ""
|
3205 |
|
3206 |
+
#: includes/admin/topics.php:146
|
3207 |
msgid ""
|
3208 |
+
"<strong>Stick</strong> will keep the selected topic ’pinned’ to "
|
3209 |
+
"the top the parent forum topic list."
|
3210 |
msgstr ""
|
3211 |
|
3212 |
+
#: includes/admin/topics.php:147
|
3213 |
msgid ""
|
3214 |
+
"<strong>Stick <em>(to front)</em></strong> will keep the selected topic "
|
3215 |
+
"’pinned’ to the top of ALL forums and be visable in any forums "
|
3216 |
+
"topics list."
|
|
|
|
|
|
|
3217 |
msgstr ""
|
3218 |
|
3219 |
+
#: includes/admin/topics.php:149
|
3220 |
msgid ""
|
3221 |
"<strong>Close</strong> will mark the selected topic as ’closed’ "
|
3222 |
+
"and disable the ability to post new replies to it."
|
3223 |
msgstr ""
|
3224 |
|
3225 |
+
#: includes/admin/topics.php:150
|
3226 |
msgid ""
|
3227 |
+
"<strong>Spam</strong> removes your topic from this list and places it in "
|
3228 |
+
"the spam queue, from which you can permanently delete it."
|
3229 |
msgstr ""
|
3230 |
|
3231 |
+
#: includes/admin/topics.php:151
|
3232 |
msgid ""
|
3233 |
+
"<strong>Trash</strong> removes your topic from this list and places it in "
|
3234 |
+
"the trash, from which you can permanently delete it."
|
|
|
3235 |
msgstr ""
|
3236 |
|
3237 |
+
#: includes/admin/topics.php:152
|
3238 |
+
msgid "<strong>View</strong> will take you to your live site to view the topic."
|
3239 |
+
msgstr ""
|
3240 |
+
|
3241 |
+
#: includes/admin/topics.php:161
|
3242 |
msgid ""
|
3243 |
"You can also edit, spam, or move multiple topics to the trash at once. "
|
3244 |
"Select the topics you want to act on using the checkboxes, then select the "
|
3245 |
"action you want to take from the Bulk Actions menu and click Apply."
|
3246 |
msgstr ""
|
3247 |
|
3248 |
+
#: includes/admin/topics.php:162
|
3249 |
msgid ""
|
3250 |
"When using Bulk Edit, you can change the metadata (categories, author, "
|
3251 |
"etc.) for all selected topics at once. To remove a topic from the grouping, "
|
3252 |
"just click the x next to its name in the Bulk Edit area that appears."
|
3253 |
msgstr ""
|
3254 |
|
3255 |
+
#: includes/admin/topics.php:180
|
3256 |
msgid ""
|
3257 |
"The title field and the big topic editing Area are fixed in place, but you "
|
3258 |
"can reposition all the other boxes using drag and drop, and can minimize or "
|
3262 |
"screen."
|
3263 |
msgstr ""
|
3264 |
|
3265 |
+
#: includes/admin/topics.php:190
|
3266 |
msgid "Title and Topic Editor"
|
3267 |
msgstr ""
|
3268 |
|
3269 |
+
#: includes/admin/topics.php:192
|
3270 |
msgid ""
|
3271 |
"<strong>Title</strong> - Enter a title for your topic. After you enter a "
|
3272 |
"title, you’ll see the permalink below, which you can edit."
|
3273 |
msgstr ""
|
3274 |
|
3275 |
+
#: includes/admin/topics.php:193
|
3276 |
msgid ""
|
3277 |
"<strong>Topic Editor</strong> - Enter the text for your topic. There are "
|
3278 |
"two modes of editing: Visual and HTML. Choose the mode by clicking on the "
|
3287 |
"editor."
|
3288 |
msgstr ""
|
3289 |
|
3290 |
+
#: includes/admin/topics.php:196
|
3291 |
msgid ""
|
3292 |
"<strong>Publish</strong> - You can set the terms of publishing your topic "
|
3293 |
"in the Publish box. For Status, Visibility, and Publish (immediately), "
|
3298 |
"future or backdate a topic."
|
3299 |
msgstr ""
|
3300 |
|
3301 |
+
#: includes/admin/topics.php:199
|
3302 |
msgid ""
|
3303 |
"<strong>Featured Image</strong> - This allows you to associate an image "
|
3304 |
"with your topic without inserting it. This is usually useful only if your "
|
3306 |
"page, a custom header, etc."
|
3307 |
msgstr ""
|
3308 |
|
3309 |
+
#: includes/admin/topics.php:204 includes/admin/topics.php:341
|
3310 |
+
#: includes/topics/template.php:68
|
3311 |
msgid "Topic Attributes"
|
3312 |
msgstr ""
|
3313 |
|
3314 |
+
#: includes/admin/topics.php:206
|
3315 |
msgid "Select the attributes that your topic should have:"
|
3316 |
msgstr ""
|
3317 |
|
3318 |
+
#: includes/admin/topics.php:208
|
3319 |
msgid ""
|
3320 |
"<strong>Forum</strong> dropdown determines the parent forum that the topic "
|
3321 |
"belongs to. Select the forum or category from the dropdown, or leave the "
|
3322 |
"default \"No forum\" to post the topic without an assigned forum."
|
3323 |
msgstr ""
|
3324 |
|
3325 |
+
#: includes/admin/topics.php:209
|
3326 |
msgid ""
|
3327 |
"<strong>Topic Type</strong> dropdown indicates the sticky status of the "
|
3328 |
"topic. Selecting the super sticky option would stick the topic to the front "
|
3331 |
"anywhere."
|
3332 |
msgstr ""
|
3333 |
|
3334 |
+
#: includes/admin/topics.php:256
|
3335 |
msgid "%s topic updated."
|
3336 |
msgid_plural "%s topics updated."
|
3337 |
msgstr[0] ""
|
3338 |
msgstr[1] ""
|
3339 |
|
3340 |
+
#: includes/admin/topics.php:258
|
3341 |
msgid "1 topic not updated, somebody is editing it."
|
3342 |
msgstr ""
|
3343 |
|
3344 |
+
#: includes/admin/topics.php:259
|
3345 |
msgid "%s topic not updated, somebody is editing it."
|
3346 |
msgid_plural "%s topics not updated, somebody is editing them."
|
3347 |
msgstr[0] ""
|
3348 |
msgstr[1] ""
|
3349 |
|
3350 |
+
#: includes/admin/topics.php:292
|
3351 |
msgid "Error in spamming topic."
|
3352 |
msgstr ""
|
3353 |
|
3354 |
+
#: includes/admin/topics.php:308
|
3355 |
msgid "Sorry, you are not allowed to unspam this topic."
|
3356 |
msgstr ""
|
3357 |
|
3358 |
+
#: includes/admin/topics.php:317
|
3359 |
msgid "Error in unspamming topic."
|
3360 |
msgstr ""
|
3361 |
|
3362 |
+
#: includes/admin/topics.php:577
|
3363 |
msgid "The topic was not found."
|
3364 |
msgstr ""
|
3365 |
|
3366 |
+
#: includes/admin/topics.php:713
|
3367 |
msgid "There was a problem opening the topic \"%1$s\"."
|
3368 |
msgstr ""
|
3369 |
|
3370 |
+
#: includes/admin/topics.php:714
|
3371 |
msgid "Topic \"%1$s\" successfully opened."
|
3372 |
msgstr ""
|
3373 |
|
3374 |
+
#: includes/admin/topics.php:719
|
3375 |
msgid "There was a problem closing the topic \"%1$s\"."
|
3376 |
msgstr ""
|
3377 |
|
3378 |
+
#: includes/admin/topics.php:720
|
3379 |
msgid "Topic \"%1$s\" successfully closed."
|
3380 |
msgstr ""
|
3381 |
|
3382 |
+
#: includes/admin/topics.php:725
|
3383 |
msgid "There was a problem sticking the topic \"%1$s\" to front."
|
3384 |
msgstr ""
|
3385 |
|
3386 |
+
#: includes/admin/topics.php:726
|
3387 |
msgid "Topic \"%1$s\" successfully stuck to front."
|
3388 |
msgstr ""
|
3389 |
|
3390 |
+
#: includes/admin/topics.php:731
|
3391 |
msgid "There was a problem sticking the topic \"%1$s\"."
|
3392 |
msgstr ""
|
3393 |
|
3394 |
+
#: includes/admin/topics.php:732
|
3395 |
msgid "Topic \"%1$s\" successfully stuck."
|
3396 |
msgstr ""
|
3397 |
|
3398 |
+
#: includes/admin/topics.php:737
|
3399 |
msgid "There was a problem unsticking the topic \"%1$s\"."
|
3400 |
msgstr ""
|
3401 |
|
3402 |
+
#: includes/admin/topics.php:738
|
3403 |
msgid "Topic \"%1$s\" successfully unstuck."
|
3404 |
msgstr ""
|
3405 |
|
3406 |
+
#: includes/admin/topics.php:743
|
3407 |
msgid "There was a problem marking the topic \"%1$s\" as spam."
|
3408 |
msgstr ""
|
3409 |
|
3410 |
+
#: includes/admin/topics.php:744
|
3411 |
msgid "Topic \"%1$s\" successfully marked as spam."
|
3412 |
msgstr ""
|
3413 |
|
3414 |
+
#: includes/admin/topics.php:749
|
3415 |
msgid "There was a problem unmarking the topic \"%1$s\" as spam."
|
3416 |
msgstr ""
|
3417 |
|
3418 |
+
#: includes/admin/topics.php:750
|
3419 |
msgid "Topic \"%1$s\" successfully unmarked as spam."
|
3420 |
msgstr ""
|
3421 |
|
3422 |
+
#: includes/admin/topics.php:755
|
3423 |
msgid "There was a problem approving the topic \"%1$s\"."
|
3424 |
msgstr ""
|
3425 |
|
3426 |
+
#: includes/admin/topics.php:756
|
3427 |
msgid "Topic \"%1$s\" successfully approved."
|
3428 |
msgstr ""
|
3429 |
|
3430 |
+
#: includes/admin/topics.php:761
|
3431 |
msgid "There was a problem unapproving the topic \"%1$s\"."
|
3432 |
msgstr ""
|
3433 |
|
3434 |
+
#: includes/admin/topics.php:762
|
3435 |
msgid "Topic \"%1$s\" successfully unapproved."
|
3436 |
msgstr ""
|
3437 |
|
3438 |
+
#: includes/admin/topics.php:857 templates/default/bbpress/loop-topics.php:19
|
3439 |
msgid "Voices"
|
3440 |
msgstr ""
|
3441 |
|
3442 |
+
#: includes/admin/topics.php:935 includes/topics/template.php:2014
|
3443 |
msgid "No Replies"
|
3444 |
msgstr ""
|
3445 |
|
3446 |
+
#: includes/admin/topics.php:985
|
3447 |
msgid "Unapprove this topic"
|
3448 |
msgstr ""
|
3449 |
|
3450 |
+
#: includes/admin/topics.php:990
|
3451 |
msgid "Approve this topic"
|
3452 |
msgstr ""
|
3453 |
|
3454 |
+
#: includes/admin/topics.php:1002
|
3455 |
msgid "Close this topic"
|
3456 |
msgstr ""
|
3457 |
|
3458 |
+
#: includes/admin/topics.php:1004
|
3459 |
msgid "Open this topic"
|
3460 |
msgstr ""
|
3461 |
|
3462 |
+
#: includes/admin/topics.php:1013
|
3463 |
msgid "Unstick this topic"
|
3464 |
msgstr ""
|
3465 |
|
3466 |
+
#: includes/admin/topics.php:1013 includes/topics/template.php:2715
|
3467 |
msgid "Unstick"
|
3468 |
msgstr ""
|
3469 |
|
3470 |
+
#: includes/admin/topics.php:1016
|
3471 |
msgid "Stick this topic to its forum"
|
3472 |
msgstr ""
|
3473 |
|
3474 |
+
#: includes/admin/topics.php:1016 includes/topics/template.php:2714
|
3475 |
msgid "Stick"
|
3476 |
msgstr ""
|
3477 |
|
3478 |
+
#: includes/admin/topics.php:1016
|
3479 |
msgid "Stick this topic to front"
|
3480 |
msgstr ""
|
3481 |
|
3482 |
+
#: includes/admin/topics.php:1016 includes/topics/template.php:2716
|
3483 |
msgid "(to front)"
|
3484 |
msgstr ""
|
3485 |
|
3486 |
+
#: includes/admin/topics.php:1023
|
3487 |
+
msgid "Mark this topic as spam"
|
3488 |
msgstr ""
|
3489 |
|
3490 |
+
#: includes/admin/topics.php:1025
|
3491 |
+
msgid "Mark the topic as not spam"
|
3492 |
msgstr ""
|
3493 |
|
3494 |
+
#: includes/admin/topics.php:1175 includes/admin/topics.php:1187
|
3495 |
msgid "Topic updated."
|
3496 |
msgstr ""
|
3497 |
|
3498 |
+
#: includes/admin/topics.php:1192
|
3499 |
#. translators: %s: date and time of the revision
|
3500 |
msgid "Topic restored to revision from %s"
|
3501 |
msgstr ""
|
3502 |
|
3503 |
+
#: includes/admin/topics.php:1198
|
3504 |
msgid "Topic created."
|
3505 |
msgstr ""
|
3506 |
|
3507 |
+
#: includes/admin/topics.php:1204
|
3508 |
msgid "Topic saved."
|
3509 |
msgstr ""
|
3510 |
|
3511 |
+
#: includes/admin/topics.php:1209
|
3512 |
msgid "Topic submitted."
|
3513 |
msgstr ""
|
3514 |
|
3515 |
+
#: includes/admin/topics.php:1218
|
3516 |
msgid "Topic scheduled for: %s."
|
3517 |
msgstr ""
|
3518 |
|
3519 |
+
#: includes/admin/topics.php:1229
|
3520 |
msgid "Topic draft updated."
|
3521 |
msgstr ""
|
3522 |
|
3523 |
+
#: includes/admin/users.php:98 includes/admin/users.php:282
|
3524 |
#: includes/users/signups.php:26
|
3525 |
#: templates/default/bbpress/form-user-roles.php:23
|
3526 |
msgid "Forum Role"
|
3527 |
msgstr ""
|
3528 |
|
3529 |
#: includes/admin/users.php:107 includes/admin/users.php:111
|
3530 |
+
#: includes/users/template.php:1541
|
3531 |
msgid "— No role for these forums —"
|
3532 |
msgstr ""
|
3533 |
|
3539 |
msgid "Change"
|
3540 |
msgstr ""
|
3541 |
|
3542 |
+
#: includes/admin/users.php:278
|
3543 |
msgid "Site Role"
|
3544 |
msgstr ""
|
3545 |
|
3546 |
+
#: includes/common/classes.php:493 includes/replies/template.php:2564
|
3547 |
msgid "%1$s - %2$s"
|
3548 |
msgstr ""
|
3549 |
|
3550 |
+
#: includes/common/formatting.php:627
|
3551 |
msgid "sometime"
|
3552 |
msgstr ""
|
3553 |
|
3554 |
+
#: includes/common/formatting.php:628
|
3555 |
msgid "right now"
|
3556 |
msgstr ""
|
3557 |
|
3558 |
+
#: includes/common/formatting.php:629
|
3559 |
msgid "%s ago"
|
3560 |
msgstr ""
|
3561 |
|
3562 |
+
#: includes/common/formatting.php:633
|
3563 |
msgid "%s year"
|
3564 |
msgid_plural "%s years"
|
3565 |
msgstr[0] ""
|
3566 |
msgstr[1] ""
|
3567 |
|
3568 |
+
#: includes/common/formatting.php:634
|
3569 |
msgid "%s month"
|
3570 |
msgid_plural "%s months"
|
3571 |
msgstr[0] ""
|
3572 |
msgstr[1] ""
|
3573 |
|
3574 |
+
#: includes/common/formatting.php:635
|
3575 |
msgid "%s week"
|
3576 |
msgid_plural "%s weeks"
|
3577 |
msgstr[0] ""
|
3578 |
msgstr[1] ""
|
3579 |
|
3580 |
+
#: includes/common/formatting.php:636
|
3581 |
msgid "%s day"
|
3582 |
msgid_plural "%s days"
|
3583 |
msgstr[0] ""
|
3584 |
msgstr[1] ""
|
3585 |
|
3586 |
+
#: includes/common/formatting.php:637
|
3587 |
msgid "%s hour"
|
3588 |
msgid_plural "%s hours"
|
3589 |
msgstr[0] ""
|
3590 |
msgstr[1] ""
|
3591 |
|
3592 |
+
#: includes/common/formatting.php:638
|
3593 |
msgid "%s minute"
|
3594 |
msgid_plural "%s minutes"
|
3595 |
msgstr[0] ""
|
3596 |
msgstr[1] ""
|
3597 |
|
3598 |
+
#: includes/common/formatting.php:639
|
3599 |
msgid "%s second"
|
3600 |
msgid_plural "%s seconds"
|
3601 |
msgstr[0] ""
|
3602 |
msgstr[1] ""
|
3603 |
|
3604 |
+
#: includes/common/functions.php:376 includes/common/functions.php:434
|
3605 |
msgid "Pending: %s"
|
3606 |
msgstr ""
|
3607 |
|
3608 |
+
#: includes/common/functions.php:380 includes/common/functions.php:437
|
3609 |
msgid "Private: %s"
|
3610 |
msgstr ""
|
3611 |
|
3612 |
+
#: includes/common/functions.php:384 includes/common/functions.php:441
|
3613 |
msgid "Spammed: %s"
|
3614 |
msgstr ""
|
3615 |
|
3616 |
+
#: includes/common/functions.php:388 includes/common/functions.php:445
|
3617 |
msgid "Trashed: %s"
|
3618 |
msgstr ""
|
3619 |
|
3620 |
+
#: includes/common/functions.php:529
|
3621 |
msgid "<strong>ERROR</strong>: Invalid author name."
|
3622 |
msgstr ""
|
3623 |
|
3624 |
+
#: includes/common/functions.php:535
|
3625 |
msgid "<strong>ERROR</strong>: Invalid email address."
|
3626 |
msgstr ""
|
3627 |
|
3628 |
+
#: includes/common/functions.php:1039
|
3629 |
msgid ""
|
3630 |
"%1$s wrote:\n"
|
3631 |
"\n"
|
3640 |
"Login and visit the topic to unsubscribe from these emails."
|
3641 |
msgstr ""
|
3642 |
|
3643 |
+
#: includes/common/functions.php:1195
|
3644 |
msgid ""
|
3645 |
"%1$s wrote:\n"
|
3646 |
"\n"
|
3655 |
"Login and visit the topic to unsubscribe from these emails."
|
3656 |
msgstr ""
|
3657 |
|
3658 |
+
#: includes/common/template.php:1562
|
3659 |
msgid "No topics available"
|
3660 |
msgstr ""
|
3661 |
|
3662 |
+
#: includes/common/template.php:1567
|
3663 |
msgid "No forums available"
|
3664 |
msgstr ""
|
3665 |
|
3666 |
+
#: includes/common/template.php:1572
|
3667 |
msgid "None available"
|
3668 |
msgstr ""
|
3669 |
|
3670 |
+
#: includes/common/template.php:2184
|
3671 |
msgid "Home"
|
3672 |
msgstr ""
|
3673 |
|
3674 |
+
#: includes/common/template.php:2254
|
3675 |
msgid "(Edit)"
|
3676 |
msgstr ""
|
3677 |
|
3678 |
+
#: includes/common/template.php:2258 includes/common/template.php:2373
|
3679 |
+
#: includes/common/template.php:2618 includes/core/theme-compat.php:794
|
3680 |
#: templates/default/extras/taxonomy-topic-tag-edit.php:17
|
3681 |
#: templates/default/extras/taxonomy-topic-tag.php:17
|
3682 |
msgid "Topic Tag: %s"
|
3683 |
msgstr ""
|
3684 |
|
3685 |
+
#: includes/common/template.php:2279
|
3686 |
msgid "‹"
|
3687 |
msgstr ""
|
3688 |
|
3689 |
+
#: includes/common/template.php:2279
|
3690 |
msgid "›"
|
3691 |
msgstr ""
|
3692 |
|
3693 |
+
#: includes/common/template.php:2542
|
3694 |
msgid "Log Out"
|
3695 |
msgstr ""
|
3696 |
|
3697 |
+
#: includes/common/template.php:2582
|
3698 |
msgid "Forum Edit: %s"
|
3699 |
msgstr ""
|
3700 |
|
3701 |
+
#: includes/common/template.php:2587
|
3702 |
msgid "Topic Edit: %s"
|
3703 |
msgstr ""
|
3704 |
|
3705 |
+
#: includes/common/template.php:2592
|
3706 |
msgid "Reply Edit: %s"
|
3707 |
msgstr ""
|
3708 |
|
3709 |
+
#: includes/common/template.php:2597
|
3710 |
msgid "Topic Tag Edit: %s"
|
3711 |
msgstr ""
|
3712 |
|
3713 |
+
#: includes/common/template.php:2604
|
3714 |
msgid "Forum: %s"
|
3715 |
msgstr ""
|
3716 |
|
3717 |
+
#: includes/common/template.php:2609
|
3718 |
msgid "Topic: %s"
|
3719 |
msgstr ""
|
3720 |
|
3721 |
+
#: includes/common/template.php:2631
|
3722 |
msgid "Your Topics"
|
3723 |
msgstr ""
|
3724 |
|
3725 |
+
#: includes/common/template.php:2635
|
3726 |
#. translators: user's display name
|
3727 |
msgid "%s's Topics"
|
3728 |
msgstr ""
|
3729 |
|
3730 |
+
#: includes/common/template.php:2641
|
3731 |
msgid "Your Replies"
|
3732 |
msgstr ""
|
3733 |
|
3734 |
+
#: includes/common/template.php:2645
|
3735 |
#. translators: user's display name
|
3736 |
msgid "%s's Replies"
|
3737 |
msgstr ""
|
3738 |
|
3739 |
+
#: includes/common/template.php:2651
|
3740 |
msgid "Your Favorites"
|
3741 |
msgstr ""
|
3742 |
|
3743 |
+
#: includes/common/template.php:2655
|
3744 |
#: templates/default/bbpress/user-details.php:57
|
3745 |
#. translators: user's display name
|
3746 |
msgid "%s's Favorites"
|
3747 |
msgstr ""
|
3748 |
|
3749 |
+
#: includes/common/template.php:2661
|
3750 |
msgid "Your Subscriptions"
|
3751 |
msgstr ""
|
3752 |
|
3753 |
+
#: includes/common/template.php:2665
|
3754 |
#: templates/default/bbpress/user-details.php:67
|
3755 |
#. translators: user's display name
|
3756 |
msgid "%s's Subscriptions"
|
3757 |
msgstr ""
|
3758 |
|
3759 |
+
#: includes/common/template.php:2671
|
3760 |
msgid "Your Profile"
|
3761 |
msgstr ""
|
3762 |
|
3763 |
+
#: includes/common/template.php:2675
|
3764 |
#: templates/default/bbpress/user-details.php:30
|
3765 |
#. translators: user's display name
|
3766 |
msgid "%s's Profile"
|
3767 |
msgstr ""
|
3768 |
|
3769 |
+
#: includes/common/template.php:2684
|
3770 |
msgid "Edit Your Profile"
|
3771 |
msgstr ""
|
3772 |
|
3773 |
+
#: includes/common/template.php:2689
|
3774 |
#: templates/default/bbpress/user-details.php:74
|
3775 |
msgid "Edit %s's Profile"
|
3776 |
msgstr ""
|
3777 |
|
3778 |
+
#: includes/common/template.php:2697
|
3779 |
msgid "View: %s"
|
3780 |
msgstr ""
|
3781 |
|
3783 |
msgid "A simple login form with optional links to sign-up and lost password pages."
|
3784 |
msgstr ""
|
3785 |
|
3786 |
+
#: includes/common/widgets.php:38
|
3787 |
msgid "(bbPress) Login Widget"
|
3788 |
msgstr ""
|
3789 |
|
3790 |
+
#: includes/common/widgets.php:81 includes/common/widgets.php:102
|
3791 |
#: templates/default/bbpress/form-user-login.php:17
|
3792 |
#: templates/default/bbpress/form-user-login.php:38
|
3793 |
msgid "Log In"
|
3794 |
msgstr ""
|
3795 |
|
3796 |
+
#: includes/common/widgets.php:84
|
3797 |
#: templates/default/bbpress/form-user-edit.php:107
|
3798 |
#: templates/default/bbpress/form-user-login.php:20
|
3799 |
#: templates/default/bbpress/form-user-register.php:29
|
3800 |
msgid "Username"
|
3801 |
msgstr ""
|
3802 |
|
3803 |
+
#: includes/common/widgets.php:89
|
3804 |
#: templates/default/bbpress/form-user-login.php:25
|
3805 |
#: templates/default/bbpress/form-user-passwords.php:17
|
3806 |
msgid "Password"
|
3807 |
msgstr ""
|
3808 |
|
3809 |
+
#: includes/common/widgets.php:95
|
3810 |
+
#: templates/default/bbpress/form-user-login.php:31
|
3811 |
+
msgid "Keep me signed in"
|
3812 |
msgstr ""
|
3813 |
|
3814 |
+
#: includes/common/widgets.php:114
|
3815 |
#: templates/default/bbpress/form-user-register.php:42
|
3816 |
msgid "Register"
|
3817 |
msgstr ""
|
3818 |
|
3819 |
+
#: includes/common/widgets.php:120
|
3820 |
#: templates/default/bbpress/form-user-lost-pass.php:17
|
3821 |
msgid "Lost Password"
|
3822 |
msgstr ""
|
3823 |
|
3824 |
+
#: includes/common/widgets.php:175 includes/common/widgets.php:320
|
3825 |
+
#: includes/common/widgets.php:437 includes/common/widgets.php:599
|
3826 |
+
#: includes/common/widgets.php:871 includes/common/widgets.php:1015
|
3827 |
+
#: includes/common/widgets.php:1218
|
3828 |
msgid "Title:"
|
3829 |
msgstr ""
|
3830 |
|
3831 |
+
#: includes/common/widgets.php:180
|
3832 |
msgid "Register URI:"
|
3833 |
msgstr ""
|
3834 |
|
3835 |
+
#: includes/common/widgets.php:185
|
3836 |
msgid "Lost Password URI:"
|
3837 |
msgstr ""
|
3838 |
|
3839 |
+
#: includes/common/widgets.php:227
|
3840 |
msgid "A list of registered optional topic views."
|
3841 |
msgstr ""
|
3842 |
|
3843 |
+
#: includes/common/widgets.php:231
|
3844 |
msgid "(bbPress) Topic Views List"
|
3845 |
msgstr ""
|
3846 |
|
3847 |
+
#: includes/common/widgets.php:361
|
3848 |
msgid "The bbPress forum search form."
|
3849 |
msgstr ""
|
3850 |
|
3851 |
+
#: includes/common/widgets.php:365
|
3852 |
msgid "(bbPress) Forum Search Form"
|
3853 |
msgstr ""
|
3854 |
|
3855 |
+
#: includes/common/widgets.php:454 includes/forums/template.php:60
|
3856 |
msgid "Search Forums"
|
3857 |
msgstr ""
|
3858 |
|
3859 |
+
#: includes/common/widgets.php:478
|
3860 |
msgid "A list of forums with an option to set the parent."
|
3861 |
msgstr ""
|
3862 |
|
3863 |
+
#: includes/common/widgets.php:482
|
3864 |
msgid "(bbPress) Forums List"
|
3865 |
msgstr ""
|
3866 |
|
3867 |
+
#: includes/common/widgets.php:605 includes/common/widgets.php:875
|
3868 |
msgid "Parent Forum ID:"
|
3869 |
msgstr ""
|
3870 |
|
3871 |
+
#: includes/common/widgets.php:611 includes/common/widgets.php:881
|
3872 |
msgid "\"0\" to show only root - \"any\" to show all"
|
3873 |
msgstr ""
|
3874 |
|
3875 |
+
#: includes/common/widgets.php:651
|
3876 |
msgid "A list of recent topics, sorted by: newness, popularity, or recent replies."
|
3877 |
msgstr ""
|
3878 |
|
3879 |
+
#: includes/common/widgets.php:655
|
3880 |
msgid "(bbPress) Recent Topics"
|
3881 |
msgstr ""
|
3882 |
|
3883 |
+
#: includes/common/widgets.php:872
|
3884 |
msgid "Maximum topics to show:"
|
3885 |
msgstr ""
|
3886 |
|
3887 |
+
#: includes/common/widgets.php:884 includes/common/widgets.php:1220
|
3888 |
msgid "Show post date:"
|
3889 |
msgstr ""
|
3890 |
|
3891 |
+
#: includes/common/widgets.php:885
|
3892 |
msgid "Show topic author:"
|
3893 |
msgstr ""
|
3894 |
|
3895 |
+
#: includes/common/widgets.php:888
|
3896 |
msgid "Order By:"
|
3897 |
msgstr ""
|
3898 |
|
3899 |
+
#: includes/common/widgets.php:890
|
3900 |
msgid "Newest Topics"
|
3901 |
msgstr ""
|
3902 |
|
3903 |
+
#: includes/common/widgets.php:891
|
3904 |
#: templates/default/extras/page-forum-statistics.php:34
|
3905 |
msgid "Popular Topics"
|
3906 |
msgstr ""
|
3907 |
|
3908 |
+
#: includes/common/widgets.php:892
|
3909 |
msgid "Topics With Recent Replies"
|
3910 |
msgstr ""
|
3911 |
|
3912 |
+
#: includes/common/widgets.php:908
|
3913 |
msgid "Recent Topics"
|
3914 |
msgstr ""
|
3915 |
|
3916 |
+
#: includes/common/widgets.php:937
|
3917 |
msgid "Some statistics from your forum."
|
3918 |
msgstr ""
|
3919 |
|
3920 |
+
#: includes/common/widgets.php:941
|
3921 |
msgid "(bbPress) Statistics"
|
3922 |
msgstr ""
|
3923 |
|
3924 |
+
#: includes/common/widgets.php:1032
|
3925 |
msgid "Forum Statistics"
|
3926 |
msgstr ""
|
3927 |
|
3928 |
+
#: includes/common/widgets.php:1056
|
3929 |
msgid "A list of the most recent replies."
|
3930 |
msgstr ""
|
3931 |
|
3932 |
+
#: includes/common/widgets.php:1060
|
3933 |
msgid "(bbPress) Recent Replies"
|
3934 |
msgstr ""
|
3935 |
|
3936 |
+
#: includes/common/widgets.php:1219
|
3937 |
msgid "Maximum replies to show:"
|
3938 |
msgstr ""
|
3939 |
|
3940 |
+
#: includes/common/widgets.php:1221
|
3941 |
msgid "Show reply author:"
|
3942 |
msgstr ""
|
3943 |
|
3944 |
+
#: includes/common/widgets.php:1235
|
3945 |
msgid "Recent Replies"
|
3946 |
msgstr ""
|
3947 |
|
3949 |
msgid "Editable forum roles no longer exist."
|
3950 |
msgstr ""
|
3951 |
|
3952 |
+
#: includes/core/update.php:207
|
3953 |
msgid "General"
|
3954 |
msgstr ""
|
3955 |
|
3956 |
+
#: includes/core/update.php:208
|
3957 |
+
msgid "General Discussion"
|
3958 |
msgstr ""
|
3959 |
|
3960 |
+
#: includes/core/update.php:211
|
3961 |
msgid "Hello World!"
|
3962 |
msgstr ""
|
3963 |
|
3964 |
+
#: includes/core/update.php:212
|
3965 |
+
msgid "This is the very first topic in these forums."
|
3966 |
msgstr ""
|
3967 |
|
3968 |
+
#: includes/core/update.php:215
|
3969 |
+
msgid "And this is the very first reply."
|
3970 |
msgstr ""
|
3971 |
|
3972 |
#: includes/extend/akismet.php:315
|
4007 |
msgid "Akismet caught this post as spam"
|
4008 |
msgstr ""
|
4009 |
|
4010 |
+
#: includes/extend/akismet.php:499 includes/extend/akismet.php:511
|
4011 |
msgid "Post status was changed to %s"
|
4012 |
msgstr ""
|
4013 |
|
4015 |
msgid "Akismet cleared this post as not spam"
|
4016 |
msgstr ""
|
4017 |
|
4018 |
+
#: includes/extend/akismet.php:518
|
4019 |
msgid ""
|
4020 |
"Akismet was unable to check this post (response: %s), will automatically "
|
4021 |
"retry again later."
|
4022 |
msgstr ""
|
4023 |
|
4024 |
+
#: includes/extend/akismet.php:720 includes/extend/akismet.php:730
|
4025 |
msgid "Akismet History"
|
4026 |
msgstr ""
|
4027 |
|
4028 |
+
#: includes/extend/akismet.php:774
|
4029 |
msgid "No recorded history. Akismet has not checked this post."
|
4030 |
msgstr ""
|
4031 |
|
4037 |
msgid "New forum reply"
|
4038 |
msgstr ""
|
4039 |
|
4040 |
+
#: includes/extend/buddypress/activity.php:452
|
4041 |
+
#: includes/extend/buddypress/functions.php:779
|
4042 |
msgid "%1$s started the topic %2$s in the forum %3$s"
|
4043 |
msgstr ""
|
4044 |
|
4045 |
+
#: includes/extend/buddypress/activity.php:590
|
4046 |
+
#: includes/extend/buddypress/functions.php:780
|
4047 |
msgid "%1$s replied to the topic %2$s in the forum %3$s"
|
4048 |
msgstr ""
|
4049 |
|
4050 |
+
#: includes/extend/buddypress/groups.php:336
|
4051 |
+
#: includes/extend/buddypress/groups.php:339
|
4052 |
msgid "Group Forum Settings"
|
4053 |
msgstr ""
|
4054 |
|
4055 |
+
#: includes/extend/buddypress/groups.php:340
|
4056 |
+
#: includes/extend/buddypress/groups.php:539
|
4057 |
msgid ""
|
4058 |
"Create a discussion forum to allow members of this group to communicate in "
|
4059 |
"a structured, bulletin-board style fashion."
|
4060 |
msgstr ""
|
4061 |
|
4062 |
+
#: includes/extend/buddypress/groups.php:344
|
4063 |
+
#: includes/extend/buddypress/groups.php:542
|
4064 |
msgid "Yes. I want this group to have a forum."
|
4065 |
msgstr ""
|
4066 |
|
4067 |
+
#: includes/extend/buddypress/groups.php:347
|
4068 |
msgid "Saying no will not delete existing forum content."
|
4069 |
msgstr ""
|
4070 |
|
4071 |
+
#: includes/extend/buddypress/groups.php:352
|
4072 |
msgid "Group Forum:"
|
4073 |
msgstr ""
|
4074 |
|
4075 |
+
#: includes/extend/buddypress/groups.php:360
|
4076 |
msgid "Network administrators can reconfigure which forum belongs to this group."
|
4077 |
msgstr ""
|
4078 |
|
4079 |
+
#: includes/extend/buddypress/groups.php:365
|
4080 |
msgid "Save Settings"
|
4081 |
msgstr ""
|
4082 |
|
4083 |
+
#: includes/extend/buddypress/groups.php:400
|
4084 |
+
#: includes/extend/buddypress/groups.php:557
|
4085 |
+
#: includes/extend/buddypress/notifications.php:196
|
4086 |
+
#: includes/forums/functions.php:126 includes/forums/functions.php:393
|
4087 |
+
#: includes/replies/functions.php:129 includes/replies/functions.php:512
|
4088 |
+
#: includes/replies/functions.php:1225 includes/topics/functions.php:105
|
4089 |
+
#: includes/topics/functions.php:468 includes/topics/functions.php:1084
|
4090 |
+
#: includes/topics/functions.php:1359 includes/topics/functions.php:1695
|
4091 |
+
#: includes/topics/functions.php:1739 includes/topics/functions.php:1800
|
4092 |
+
#: includes/users/engagements.php:604 includes/users/engagements.php:841
|
4093 |
+
#: includes/users/functions.php:196 includes/users/functions.php:202
|
4094 |
+
#: includes/users/functions.php:382
|
4095 |
msgid "<strong>ERROR</strong>: Are you sure you wanted to do that?"
|
4096 |
msgstr ""
|
4097 |
|
4098 |
+
#: includes/extend/buddypress/groups.php:537
|
4099 |
msgid "Group Forum"
|
4100 |
msgstr ""
|
4101 |
|
4102 |
+
#: includes/extend/buddypress/groups.php:886
|
4103 |
msgid "This group does not currently have a forum."
|
4104 |
msgstr ""
|
4105 |
|
4106 |
+
#: includes/extend/buddypress/loader.php:119
|
4107 |
msgid "Search Forums..."
|
4108 |
msgstr ""
|
4109 |
|
4110 |
+
#: includes/extend/buddypress/loader.php:356
|
4111 |
#: templates/default/bbpress/user-subscriptions.php:41
|
4112 |
msgid "Subscribed Topics"
|
4113 |
msgstr ""
|
4128 |
msgid "Topic Replies"
|
4129 |
msgstr ""
|
4130 |
|
4131 |
+
#: includes/extend/buddypress/notifications.php:200
|
4132 |
msgid ""
|
4133 |
"<strong>ERROR</strong>: You do not have permission to mark notifications "
|
4134 |
"for that user."
|
4135 |
msgstr ""
|
4136 |
|
4137 |
+
#: includes/forums/functions.php:140
|
4138 |
msgid "<strong>ERROR</strong>: You do not have permission to create new forums."
|
4139 |
msgstr ""
|
4140 |
|
4141 |
+
#: includes/forums/functions.php:165 includes/forums/functions.php:454
|
4142 |
msgid "<strong>ERROR</strong>: Your forum needs a title."
|
4143 |
msgstr ""
|
4144 |
|
4145 |
+
#: includes/forums/functions.php:170 includes/forums/functions.php:459
|
4146 |
+
#: includes/replies/functions.php:279 includes/replies/functions.php:596
|
4147 |
+
#: includes/topics/functions.php:163 includes/topics/functions.php:535
|
4148 |
+
msgid "<strong>ERROR</strong>: Your title is too long."
|
4149 |
+
msgstr ""
|
4150 |
+
|
4151 |
+
#: includes/forums/functions.php:184 includes/forums/functions.php:473
|
4152 |
msgid "<strong>ERROR</strong>: Your forum description cannot be empty."
|
4153 |
msgstr ""
|
4154 |
|
4155 |
+
#: includes/forums/functions.php:199
|
4156 |
msgid "<strong>ERROR</strong>: Your forum must have a parent."
|
4157 |
msgstr ""
|
4158 |
|
4159 |
+
#: includes/forums/functions.php:206
|
4160 |
msgid ""
|
4161 |
"<strong>ERROR</strong>: This forum is a category. No forums can be created "
|
4162 |
"in this forum."
|
4163 |
msgstr ""
|
4164 |
|
4165 |
+
#: includes/forums/functions.php:211 includes/forums/functions.php:429
|
4166 |
msgid "<strong>ERROR</strong>: This forum has been closed to new forums."
|
4167 |
msgstr ""
|
4168 |
|
4169 |
+
#: includes/forums/functions.php:216 includes/forums/functions.php:434
|
4170 |
msgid ""
|
4171 |
"<strong>ERROR</strong>: This forum is private and you do not have the "
|
4172 |
"capability to read or create new forums in it."
|
4173 |
msgstr ""
|
4174 |
|
4175 |
+
#: includes/forums/functions.php:221 includes/forums/functions.php:439
|
4176 |
msgid ""
|
4177 |
"<strong>ERROR</strong>: This forum is hidden and you do not have the "
|
4178 |
"capability to read or create new forums in it."
|
4179 |
msgstr ""
|
4180 |
|
4181 |
+
#: includes/forums/functions.php:228 includes/replies/functions.php:299
|
4182 |
+
#: includes/topics/functions.php:247
|
4183 |
msgid "<strong>ERROR</strong>: Slow down; you move too fast."
|
4184 |
msgstr ""
|
4185 |
|
4186 |
+
#: includes/forums/functions.php:234
|
4187 |
msgid "<strong>ERROR</strong>: This forum already exists."
|
4188 |
msgstr ""
|
4189 |
|
4190 |
+
#: includes/forums/functions.php:240
|
4191 |
msgid "<strong>ERROR</strong>: Your forum cannot be created at this time."
|
4192 |
msgstr ""
|
4193 |
|
4194 |
+
#: includes/forums/functions.php:353 includes/replies/functions.php:469
|
4195 |
+
#: includes/topics/functions.php:400
|
4196 |
msgid "<strong>ERROR</strong>: The following problem(s) occurred: %s"
|
4197 |
msgstr ""
|
4198 |
|
4199 |
+
#: includes/forums/functions.php:357
|
4200 |
msgid "<strong>ERROR</strong>: The forum was not created."
|
4201 |
msgstr ""
|
4202 |
|
4203 |
+
#: includes/forums/functions.php:382
|
4204 |
msgid "<strong>ERROR</strong>: Forum ID not found."
|
4205 |
msgstr ""
|
4206 |
|
4207 |
+
#: includes/forums/functions.php:398
|
4208 |
msgid "<strong>ERROR</strong>: The forum you want to edit was not found."
|
4209 |
msgstr ""
|
4210 |
|
4211 |
+
#: includes/forums/functions.php:403
|
4212 |
msgid "<strong>ERROR</strong>: You do not have permission to edit that forum."
|
4213 |
msgstr ""
|
4214 |
|
4215 |
+
#: includes/forums/functions.php:479
|
4216 |
msgid "<strong>ERROR</strong>: Your forum cannot be edited at this time."
|
4217 |
msgstr ""
|
4218 |
|
4265 |
msgid "Parent Forum:"
|
4266 |
msgstr ""
|
4267 |
|
4268 |
+
#: includes/forums/template.php:70
|
4269 |
+
msgid "Insert into forum"
|
4270 |
+
msgstr ""
|
4271 |
+
|
4272 |
+
#: includes/forums/template.php:71
|
4273 |
+
msgid "Uploaded to this forum"
|
4274 |
+
msgstr ""
|
4275 |
+
|
4276 |
+
#: includes/forums/template.php:72
|
4277 |
+
msgid "Forum Image"
|
4278 |
+
msgstr ""
|
4279 |
+
|
4280 |
+
#: includes/forums/template.php:73
|
4281 |
+
msgid "Set forum image"
|
4282 |
msgstr ""
|
4283 |
|
4284 |
+
#: includes/forums/template.php:74
|
4285 |
+
msgid "Remove forum image"
|
4286 |
+
msgstr ""
|
4287 |
+
|
4288 |
+
#: includes/forums/template.php:75
|
4289 |
+
msgid "Use as forum image"
|
4290 |
+
msgstr ""
|
4291 |
+
|
4292 |
+
#: includes/forums/template.php:76
|
4293 |
+
msgid "Filter forum list"
|
4294 |
+
msgstr ""
|
4295 |
+
|
4296 |
+
#: includes/forums/template.php:77
|
4297 |
+
msgid "Forum list navigation"
|
4298 |
+
msgstr ""
|
4299 |
+
|
4300 |
+
#: includes/forums/template.php:78
|
4301 |
+
msgid "Forum list"
|
4302 |
+
msgstr ""
|
4303 |
+
|
4304 |
+
#: includes/forums/template.php:806 includes/topics/template.php:1807
|
4305 |
#: includes/users/template.php:1273
|
4306 |
+
msgid "Subscribe"
|
4307 |
+
msgstr ""
|
4308 |
+
|
4309 |
+
#: includes/forums/template.php:807 includes/topics/template.php:1808
|
4310 |
+
#: includes/users/template.php:1274
|
4311 |
msgid "Unsubscribe"
|
4312 |
msgstr ""
|
4313 |
|
4314 |
+
#: includes/forums/template.php:1143 includes/forums/template.php:1944
|
4315 |
msgid "%s topic"
|
4316 |
msgid_plural "%s topics"
|
4317 |
msgstr[0] ""
|
4318 |
msgstr[1] ""
|
4319 |
|
4320 |
+
#: includes/forums/template.php:1158 includes/topics/template.php:2057
|
4321 |
msgid "(+%s hidden)"
|
4322 |
msgid_plural "(+%s hidden)"
|
4323 |
msgstr[0] ""
|
4324 |
msgstr[1] ""
|
4325 |
|
4326 |
+
#: includes/forums/template.php:1933 includes/topics/template.php:2042
|
4327 |
msgid "%s reply"
|
4328 |
msgid_plural "%s replies"
|
4329 |
msgstr[0] ""
|
4330 |
msgstr[1] ""
|
4331 |
|
4332 |
+
#: includes/forums/template.php:1953
|
4333 |
msgid "This category has %1$s, %2$s, and was last updated %3$s by %4$s."
|
4334 |
msgstr ""
|
4335 |
|
4336 |
+
#: includes/forums/template.php:1954
|
4337 |
msgid "This forum has %1$s, %2$s, and was last updated %3$s by %4$s."
|
4338 |
msgstr ""
|
4339 |
|
4340 |
+
#: includes/forums/template.php:1959
|
4341 |
msgid "This category has %1$s, and was last updated %2$s by %3$s."
|
4342 |
msgstr ""
|
4343 |
|
4344 |
+
#: includes/forums/template.php:1960
|
4345 |
msgid "This forum has %1$s, and was last updated %2$s by %3$s."
|
4346 |
msgstr ""
|
4347 |
|
4348 |
+
#: includes/forums/template.php:1966
|
4349 |
msgid "This category has %1$s and %2$s."
|
4350 |
msgstr ""
|
4351 |
|
4352 |
+
#: includes/forums/template.php:1967
|
4353 |
msgid "This forum has %1$s and %2$s."
|
4354 |
msgstr ""
|
4355 |
|
4356 |
+
#: includes/forums/template.php:1972
|
4357 |
msgid "This category has %1$s."
|
4358 |
msgstr ""
|
4359 |
|
4360 |
+
#: includes/forums/template.php:1973
|
4361 |
msgid "This forum has %1$s."
|
4362 |
msgstr ""
|
4363 |
|
4364 |
+
#: includes/forums/template.php:1977
|
4365 |
msgid "This forum is empty."
|
4366 |
msgstr ""
|
4367 |
|
4386 |
msgstr ""
|
4387 |
|
4388 |
#: includes/replies/functions.php:202 includes/replies/functions.php:216
|
4389 |
+
#: includes/topics/functions.php:187 includes/topics/functions.php:201
|
4390 |
+
#: includes/topics/functions.php:483
|
4391 |
msgid "<strong>ERROR</strong>: Forum ID is missing."
|
4392 |
msgstr ""
|
4393 |
|
4394 |
+
#: includes/replies/functions.php:206 includes/topics/functions.php:191
|
4395 |
msgid "<strong>ERROR</strong>: Forum ID must be a number."
|
4396 |
msgstr ""
|
4397 |
|
4398 |
+
#: includes/replies/functions.php:220 includes/topics/functions.php:205
|
4399 |
msgid "<strong>ERROR</strong>: Forum ID cannot be a negative number."
|
4400 |
msgstr ""
|
4401 |
|
4402 |
+
#: includes/replies/functions.php:224 includes/topics/functions.php:209
|
4403 |
msgid "<strong>ERROR</strong>: Forum does not exist."
|
4404 |
msgstr ""
|
4405 |
|
4406 |
+
#: includes/replies/functions.php:238 includes/replies/functions.php:564
|
4407 |
msgid ""
|
4408 |
"<strong>ERROR</strong>: This forum is a category. No replies can be created "
|
4409 |
"in this forum."
|
4410 |
msgstr ""
|
4411 |
|
4412 |
+
#: includes/replies/functions.php:245 includes/replies/functions.php:571
|
4413 |
msgid "<strong>ERROR</strong>: This forum has been closed to new replies."
|
4414 |
msgstr ""
|
4415 |
|
4416 |
+
#: includes/replies/functions.php:250 includes/replies/functions.php:576
|
4417 |
msgid ""
|
4418 |
"<strong>ERROR</strong>: This forum is private and you do not have the "
|
4419 |
"capability to read or create new replies in it."
|
4420 |
msgstr ""
|
4421 |
|
4422 |
+
#: includes/replies/functions.php:254 includes/replies/functions.php:580
|
4423 |
msgid ""
|
4424 |
"<strong>ERROR</strong>: This forum is hidden and you do not have the "
|
4425 |
"capability to read or create new replies in it."
|
4426 |
msgstr ""
|
4427 |
|
4428 |
+
#: includes/replies/functions.php:293 includes/replies/functions.php:610
|
4429 |
msgid "<strong>ERROR</strong>: Your reply cannot be empty."
|
4430 |
msgstr ""
|
4431 |
|
4432 |
+
#: includes/replies/functions.php:305
|
4433 |
msgid ""
|
4434 |
"<strong>ERROR</strong>: Duplicate reply detected; it looks as though "
|
4435 |
"you’ve already said that."
|
4436 |
msgstr ""
|
4437 |
|
4438 |
+
#: includes/replies/functions.php:311
|
4439 |
msgid "<strong>ERROR</strong>: Your reply cannot be created at this time."
|
4440 |
msgstr ""
|
4441 |
|
4442 |
+
#: includes/replies/functions.php:336
|
4443 |
msgid "<strong>ERROR</strong>: Topic is closed."
|
4444 |
msgstr ""
|
4445 |
|
4446 |
+
#: includes/replies/functions.php:396 includes/replies/functions.php:706
|
4447 |
msgid "<strong>ERROR</strong>: There was a problem adding the tags to the topic."
|
4448 |
msgstr ""
|
4449 |
|
4450 |
+
#: includes/replies/functions.php:473
|
4451 |
msgid "<strong>ERROR</strong>: The reply was not created."
|
4452 |
msgstr ""
|
4453 |
|
4454 |
+
#: includes/replies/functions.php:501
|
4455 |
msgid "<strong>ERROR</strong>: Reply ID not found."
|
4456 |
msgstr ""
|
4457 |
|
4458 |
+
#: includes/replies/functions.php:518
|
4459 |
msgid "<strong>ERROR</strong>: The reply you want to edit was not found."
|
4460 |
msgstr ""
|
4461 |
|
4462 |
+
#: includes/replies/functions.php:529
|
4463 |
msgid "<strong>ERROR</strong>: You do not have permission to edit that reply."
|
4464 |
msgstr ""
|
4465 |
|
4466 |
+
#: includes/replies/functions.php:616
|
4467 |
msgid "<strong>ERROR</strong>: Your reply cannot be edited at this time."
|
4468 |
msgstr ""
|
4469 |
|
4470 |
+
#: includes/replies/functions.php:1201
|
4471 |
msgid "<strong>ERROR</strong>: A reply ID is required"
|
4472 |
msgstr ""
|
4473 |
|
4474 |
+
#: includes/replies/functions.php:1210
|
4475 |
msgid "<strong>ERROR</strong>: The reply you want to move was not found."
|
4476 |
msgstr ""
|
4477 |
|
4478 |
+
#: includes/replies/functions.php:1220
|
4479 |
msgid "<strong>ERROR</strong>: The topic you want to move from was not found."
|
4480 |
msgstr ""
|
4481 |
|
4482 |
+
#: includes/replies/functions.php:1231 includes/topics/functions.php:1095
|
4483 |
+
#: includes/topics/functions.php:1365
|
4484 |
msgid "<strong>ERROR</strong>: You do not have permission to edit the source topic."
|
4485 |
msgstr ""
|
4486 |
|
4487 |
+
#: includes/replies/functions.php:1241
|
4488 |
msgid "<strong>ERROR</strong>: You need to choose a valid move option."
|
4489 |
msgstr ""
|
4490 |
|
4491 |
+
#: includes/replies/functions.php:1254 includes/topics/functions.php:1388
|
4492 |
msgid "<strong>ERROR</strong>: A topic ID is required."
|
4493 |
msgstr ""
|
4494 |
|
4495 |
+
#: includes/replies/functions.php:1264
|
4496 |
msgid "<strong>ERROR</strong>: The topic you want to move to was not found."
|
4497 |
msgstr ""
|
4498 |
|
4499 |
+
#: includes/replies/functions.php:1269 includes/topics/functions.php:1115
|
4500 |
+
#: includes/topics/functions.php:1403
|
4501 |
msgid ""
|
4502 |
"<strong>ERROR</strong>: You do not have permission to edit the destination "
|
4503 |
"topic."
|
4504 |
msgstr ""
|
4505 |
|
4506 |
+
#: includes/replies/functions.php:1323 includes/topics/functions.php:1441
|
4507 |
msgid ""
|
4508 |
"<strong>ERROR</strong>: There was a problem converting the reply into the "
|
4509 |
"topic. Please try again."
|
4510 |
msgstr ""
|
4511 |
|
4512 |
+
#: includes/replies/functions.php:1328 includes/topics/functions.php:1446
|
4513 |
msgid ""
|
4514 |
"<strong>ERROR</strong>: You do not have permission to create new topics. "
|
4515 |
"The reply could not be converted into a topic."
|
4516 |
msgstr ""
|
4517 |
|
4518 |
+
#: includes/replies/functions.php:1476
|
4519 |
msgid "<strong>ERROR:</strong> This reply could not be found or no longer exists."
|
4520 |
msgstr ""
|
4521 |
|
4522 |
+
#: includes/replies/functions.php:1482 includes/topics/functions.php:1982
|
4523 |
msgid "<strong>ERROR:</strong> You do not have permission to do that."
|
4524 |
msgstr ""
|
4525 |
|
4526 |
+
#: includes/replies/functions.php:1558
|
4527 |
msgid "<strong>ERROR</strong>: There was a problem approving the reply."
|
4528 |
msgstr ""
|
4529 |
|
4530 |
+
#: includes/replies/functions.php:1558
|
4531 |
msgid "<strong>ERROR</strong>: There was a problem unapproving the reply."
|
4532 |
msgstr ""
|
4533 |
|
4534 |
+
#: includes/replies/functions.php:1569
|
4535 |
msgid "<strong>ERROR</strong>: There was a problem unmarking the reply as spam."
|
4536 |
msgstr ""
|
4537 |
|
4538 |
+
#: includes/replies/functions.php:1569
|
4539 |
msgid "<strong>ERROR</strong>: There was a problem marking the reply as spam."
|
4540 |
msgstr ""
|
4541 |
|
4542 |
+
#: includes/replies/functions.php:1584
|
4543 |
msgid "<strong>ERROR</strong>: There was a problem trashing the reply."
|
4544 |
msgstr ""
|
4545 |
|
4546 |
+
#: includes/replies/functions.php:1592
|
4547 |
msgid "<strong>ERROR</strong>: There was a problem untrashing the reply."
|
4548 |
msgstr ""
|
4549 |
|
4550 |
+
#: includes/replies/functions.php:1600
|
4551 |
msgid "<strong>ERROR</strong>: There was a problem deleting the reply."
|
4552 |
msgstr ""
|
4553 |
|
4554 |
+
#: includes/replies/functions.php:2076
|
4555 |
msgid "All Posts"
|
4556 |
msgstr ""
|
4557 |
|
4558 |
+
#: includes/replies/functions.php:2122 includes/topics/functions.php:3723
|
4559 |
msgid "Replies: %s"
|
4560 |
msgstr ""
|
4561 |
|
4603 |
msgid "Replies list navigation"
|
4604 |
msgstr ""
|
4605 |
|
4606 |
+
#: includes/replies/template.php:67
|
4607 |
+
msgid "Parent Topic:"
|
4608 |
+
msgstr ""
|
4609 |
+
|
4610 |
+
#: includes/replies/template.php:69
|
4611 |
+
msgid "Forum Replies"
|
4612 |
+
msgstr ""
|
4613 |
+
|
4614 |
+
#: includes/replies/template.php:71
|
4615 |
+
msgid "Insert into reply"
|
4616 |
+
msgstr ""
|
4617 |
+
|
4618 |
+
#: includes/replies/template.php:72
|
4619 |
+
msgid "Uploaded to this reply"
|
4620 |
+
msgstr ""
|
4621 |
+
|
4622 |
+
#: includes/replies/template.php:73
|
4623 |
+
msgid "Reply Image"
|
4624 |
+
msgstr ""
|
4625 |
+
|
4626 |
+
#: includes/replies/template.php:74
|
4627 |
+
msgid "Set reply image"
|
4628 |
+
msgstr ""
|
4629 |
+
|
4630 |
+
#: includes/replies/template.php:75
|
4631 |
+
msgid "Remove reply image"
|
4632 |
+
msgstr ""
|
4633 |
+
|
4634 |
+
#: includes/replies/template.php:76
|
4635 |
+
msgid "Use as reply image"
|
4636 |
+
msgstr ""
|
4637 |
+
|
4638 |
+
#: includes/replies/template.php:77
|
4639 |
+
msgid "Filter reply list"
|
4640 |
+
msgstr ""
|
4641 |
+
|
4642 |
+
#: includes/replies/template.php:78
|
4643 |
+
msgid "Reply list navigation"
|
4644 |
+
msgstr ""
|
4645 |
+
|
4646 |
+
#: includes/replies/template.php:79
|
4647 |
+
msgid "Reply list"
|
4648 |
+
msgstr ""
|
4649 |
+
|
4650 |
+
#: includes/replies/template.php:527
|
4651 |
#: templates/default/bbpress/form-reply.php:30
|
4652 |
msgid "Reply To: %s"
|
4653 |
msgstr ""
|
4654 |
|
4655 |
+
#: includes/replies/template.php:739
|
4656 |
msgid "This reply was modified %1$s by %2$s. Reason: %3$s"
|
4657 |
msgstr ""
|
4658 |
|
4659 |
+
#: includes/replies/template.php:741
|
4660 |
msgid "This reply was modified %1$s by %2$s."
|
4661 |
msgstr ""
|
4662 |
|
4663 |
+
#: includes/replies/template.php:1199 includes/topics/template.php:1458
|
4664 |
+
#: includes/users/template.php:1999
|
4665 |
msgid "View %s's profile"
|
4666 |
msgstr ""
|
4667 |
|
4668 |
+
#: includes/replies/template.php:1200 includes/topics/template.php:1459
|
4669 |
+
#: includes/users/template.php:2000
|
4670 |
msgid "Visit %s's website"
|
4671 |
msgstr ""
|
4672 |
|
4673 |
+
#: includes/replies/template.php:1652
|
4674 |
#: templates/default/bbpress/form-user-passwords.php:31
|
4675 |
msgid "Cancel"
|
4676 |
msgstr ""
|
4677 |
|
4678 |
+
#: includes/replies/template.php:1962 includes/topics/template.php:2543
|
4679 |
#: templates/default/bbpress/form-topic-tag.php:100
|
4680 |
#: templates/default/bbpress/form-topic-tag.php:117
|
4681 |
msgid "Delete"
|
4682 |
msgstr ""
|
4683 |
|
4684 |
+
#: includes/replies/template.php:1987 includes/topics/template.php:2564
|
4685 |
msgid "Are you sure you want to delete that permanently?"
|
4686 |
msgstr ""
|
4687 |
|
4688 |
+
#: includes/replies/template.php:2084
|
4689 |
msgid "Move"
|
4690 |
msgstr ""
|
4691 |
|
4692 |
+
#: includes/replies/template.php:2085
|
4693 |
msgid "Move this reply"
|
4694 |
msgstr ""
|
4695 |
|
4696 |
+
#: includes/replies/template.php:2143
|
4697 |
msgid "Split"
|
4698 |
msgstr ""
|
4699 |
|
4700 |
+
#: includes/replies/template.php:2144
|
4701 |
msgid "Split the topic from this reply"
|
4702 |
msgstr ""
|
4703 |
|
4704 |
+
#: includes/replies/template.php:2378
|
4705 |
msgid "Viewing %1$s reply thread"
|
4706 |
msgid_plural "Viewing %1$s reply threads"
|
4707 |
msgstr[0] ""
|
4708 |
msgstr[1] ""
|
4709 |
|
4710 |
+
#: includes/replies/template.php:2385
|
4711 |
msgid "Viewing %1$s reply"
|
4712 |
msgid_plural "Viewing %1$s replies"
|
4713 |
msgstr[0] ""
|
4714 |
msgstr[1] ""
|
4715 |
|
4716 |
+
#: includes/replies/template.php:2389
|
4717 |
msgid "Viewing %2$s replies (of %4$s total)"
|
4718 |
msgid_plural "Viewing %1$s replies - %2$s through %3$s (of %4$s total)"
|
4719 |
msgstr[0] ""
|
4720 |
msgstr[1] ""
|
4721 |
|
4722 |
+
#: includes/replies/template.php:2397
|
4723 |
msgid "Viewing %1$s post"
|
4724 |
msgid_plural "Viewing %1$s posts"
|
4725 |
msgstr[0] ""
|
4726 |
msgstr[1] ""
|
4727 |
|
4728 |
+
#: includes/replies/template.php:2401
|
4729 |
msgid "Viewing %2$s post (of %4$s total)"
|
4730 |
msgid_plural "Viewing %1$s posts - %2$s through %3$s (of %4$s total)"
|
4731 |
msgstr[0] ""
|
4735 |
msgid "Search Results for '%s'"
|
4736 |
msgstr ""
|
4737 |
|
4738 |
+
#: includes/search/template.php:394
|
4739 |
msgid "Viewing %1$s result"
|
4740 |
msgid_plural "Viewing %1$s results"
|
4741 |
msgstr[0] ""
|
4742 |
msgstr[1] ""
|
4743 |
|
4744 |
+
#: includes/search/template.php:398
|
4745 |
msgid "Viewing %2$s results (of %4$s total)"
|
4746 |
msgid_plural "Viewing %1$s results - %2$s through %3$s (of %4$s total)"
|
4747 |
msgstr[0] ""
|
4751 |
msgid "<strong>ERROR</strong>: You do not have permission to create new topics."
|
4752 |
msgstr ""
|
4753 |
|
4754 |
+
#: includes/topics/functions.php:158 includes/topics/functions.php:530
|
4755 |
msgid "<strong>ERROR</strong>: Your topic needs a title."
|
4756 |
msgstr ""
|
4757 |
|
4758 |
+
#: includes/topics/functions.php:177 includes/topics/functions.php:549
|
4759 |
msgid "<strong>ERROR</strong>: Your topic cannot be empty."
|
4760 |
msgstr ""
|
4761 |
|
4762 |
+
#: includes/topics/functions.php:223
|
4763 |
msgid ""
|
4764 |
"<strong>ERROR</strong>: This forum is a category. No topics can be created "
|
4765 |
"in this forum."
|
4766 |
msgstr ""
|
4767 |
|
4768 |
+
#: includes/topics/functions.php:230 includes/topics/functions.php:505
|
4769 |
msgid "<strong>ERROR</strong>: This forum has been closed to new topics."
|
4770 |
msgstr ""
|
4771 |
|
4772 |
+
#: includes/topics/functions.php:235 includes/topics/functions.php:510
|
4773 |
msgid ""
|
4774 |
"<strong>ERROR</strong>: This forum is private and you do not have the "
|
4775 |
"capability to read or create new topics in it."
|
4776 |
msgstr ""
|
4777 |
|
4778 |
+
#: includes/topics/functions.php:239 includes/topics/functions.php:514
|
4779 |
msgid ""
|
4780 |
"<strong>ERROR</strong>: This forum is hidden and you do not have the "
|
4781 |
"capability to read or create new topics in it."
|
4782 |
msgstr ""
|
4783 |
|
4784 |
+
#: includes/topics/functions.php:253
|
4785 |
msgid ""
|
4786 |
"<strong>ERROR</strong>: Duplicate topic detected; it looks as though "
|
4787 |
"you’ve already said that."
|
4788 |
msgstr ""
|
4789 |
|
4790 |
+
#: includes/topics/functions.php:259
|
4791 |
msgid "<strong>ERROR</strong>: Your topic cannot be created at this time."
|
4792 |
msgstr ""
|
4793 |
|
4794 |
+
#: includes/topics/functions.php:404
|
4795 |
msgid "<strong>ERROR</strong>: The topic was not created."
|
4796 |
msgstr ""
|
4797 |
|
4798 |
+
#: includes/topics/functions.php:430 includes/topics/functions.php:1077
|
4799 |
msgid "<strong>ERROR</strong>: Topic ID not found."
|
4800 |
msgstr ""
|
4801 |
|
4802 |
+
#: includes/topics/functions.php:441
|
4803 |
msgid "<strong>ERROR</strong>: The topic you want to edit was not found."
|
4804 |
msgstr ""
|
4805 |
|
4806 |
+
#: includes/topics/functions.php:452
|
4807 |
msgid "<strong>ERROR</strong>: You do not have permission to edit that topic."
|
4808 |
msgstr ""
|
4809 |
|
4810 |
+
#: includes/topics/functions.php:498
|
4811 |
msgid ""
|
4812 |
"<strong>ERROR</strong>: This forum is a category. No topics can be created "
|
4813 |
"in it."
|
4814 |
msgstr ""
|
4815 |
|
4816 |
+
#: includes/topics/functions.php:555
|
4817 |
msgid "<strong>ERROR</strong>: Your topic cannot be edited at this time."
|
4818 |
msgstr ""
|
4819 |
|
4820 |
+
#: includes/topics/functions.php:1089
|
4821 |
msgid "<strong>ERROR</strong>: The topic you want to merge was not found."
|
4822 |
msgstr ""
|
4823 |
|
4824 |
+
#: includes/topics/functions.php:1103
|
4825 |
msgid "<strong>ERROR</strong>: Destination topic ID not found."
|
4826 |
msgstr ""
|
4827 |
|
4828 |
+
#: includes/topics/functions.php:1110
|
4829 |
msgid "<strong>ERROR</strong>: The topic you want to merge to was not found."
|
4830 |
msgstr ""
|
4831 |
|
4832 |
+
#: includes/topics/functions.php:1335
|
4833 |
msgid "<strong>ERROR</strong>: A reply ID is required."
|
4834 |
msgstr ""
|
4835 |
|
4836 |
+
#: includes/topics/functions.php:1344
|
4837 |
msgid "<strong>ERROR</strong>: The reply you want to split from was not found."
|
4838 |
msgstr ""
|
4839 |
|
4840 |
+
#: includes/topics/functions.php:1354
|
4841 |
msgid "<strong>ERROR</strong>: The topic you want to split was not found."
|
4842 |
msgstr ""
|
4843 |
|
4844 |
+
#: includes/topics/functions.php:1375
|
4845 |
msgid "<strong>ERROR</strong>: You need to choose a valid split option."
|
4846 |
msgstr ""
|
4847 |
|
4848 |
+
#: includes/topics/functions.php:1398
|
4849 |
msgid "<strong>ERROR</strong>: The topic you want to split to was not found."
|
4850 |
msgstr ""
|
4851 |
|
4852 |
+
#: includes/topics/functions.php:1683
|
4853 |
msgid ""
|
4854 |
"<strong>ERROR</strong>: The following problem(s) have been found while "
|
4855 |
"getting the tag: %s"
|
4856 |
msgstr ""
|
4857 |
|
4858 |
+
#: includes/topics/functions.php:1701 includes/topics/functions.php:1745
|
4859 |
msgid "<strong>ERROR</strong>: You do not have permission to edit the topic tags."
|
4860 |
msgstr ""
|
4861 |
|
4862 |
+
#: includes/topics/functions.php:1707 includes/topics/functions.php:1751
|
4863 |
msgid "<strong>ERROR</strong>: You need to enter a tag name."
|
4864 |
msgstr ""
|
4865 |
|
4866 |
+
#: includes/topics/functions.php:1722
|
4867 |
msgid ""
|
4868 |
"<strong>ERROR</strong>: The following problem(s) have been found while "
|
4869 |
"updating the tag: %s"
|
4870 |
msgstr ""
|
4871 |
|
4872 |
+
#: includes/topics/functions.php:1762 includes/topics/functions.php:1783
|
4873 |
msgid ""
|
4874 |
"<strong>ERROR</strong>: The following problem(s) have been found while "
|
4875 |
"merging the tags: %s"
|
4876 |
msgstr ""
|
4877 |
|
4878 |
+
#: includes/topics/functions.php:1771
|
4879 |
msgid "<strong>ERROR</strong>: The tags which are being merged can not be the same."
|
4880 |
msgstr ""
|
4881 |
|
4882 |
+
#: includes/topics/functions.php:1806
|
4883 |
msgid "<strong>ERROR</strong>: You do not have permission to delete the topic tags."
|
4884 |
msgstr ""
|
4885 |
|
4886 |
+
#: includes/topics/functions.php:1815
|
4887 |
msgid ""
|
4888 |
"<strong>ERROR</strong>: The following problem(s) have been found while "
|
4889 |
"deleting the tag: %s"
|
4890 |
msgstr ""
|
4891 |
|
4892 |
+
#: includes/topics/functions.php:1976
|
4893 |
msgid "<strong>ERROR:</strong> This topic could not be found or no longer exists."
|
4894 |
msgstr ""
|
4895 |
|
4896 |
+
#: includes/topics/functions.php:2066
|
4897 |
msgid "<strong>ERROR</strong>: There was a problem approving the topic."
|
4898 |
msgstr ""
|
4899 |
|
4900 |
+
#: includes/topics/functions.php:2067
|
4901 |
msgid "<strong>ERROR</strong>: There was a problem unapproving the topic."
|
4902 |
msgstr ""
|
4903 |
|
4904 |
+
#: includes/topics/functions.php:2084
|
4905 |
msgid "<strong>ERROR</strong>: There was a problem closing the topic."
|
4906 |
msgstr ""
|
4907 |
|
4908 |
+
#: includes/topics/functions.php:2085
|
4909 |
msgid "<strong>ERROR</strong>: There was a problem opening the topic."
|
4910 |
msgstr ""
|
4911 |
|
4912 |
+
#: includes/topics/functions.php:2103
|
4913 |
msgid "<strong>ERROR</strong>: There was a problem unsticking the topic."
|
4914 |
msgstr ""
|
4915 |
|
4916 |
+
#: includes/topics/functions.php:2104
|
4917 |
msgid "<strong>ERROR</strong>: There was a problem sticking the topic."
|
4918 |
msgstr ""
|
4919 |
|
4920 |
+
#: includes/topics/functions.php:2122
|
4921 |
msgid "<strong>ERROR</strong>: There was a problem unmarking the topic as spam."
|
4922 |
msgstr ""
|
4923 |
|
4924 |
+
#: includes/topics/functions.php:2123
|
4925 |
msgid "<strong>ERROR</strong>: There was a problem marking the topic as spam."
|
4926 |
msgstr ""
|
4927 |
|
4928 |
+
#: includes/topics/functions.php:2136
|
4929 |
msgid "<strong>ERROR</strong>: There was a problem trashing the topic."
|
4930 |
msgstr ""
|
4931 |
|
4932 |
+
#: includes/topics/functions.php:2147
|
4933 |
msgid "<strong>ERROR</strong>: There was a problem untrashing the topic."
|
4934 |
msgstr ""
|
4935 |
|
4936 |
+
#: includes/topics/functions.php:2156
|
4937 |
msgid "<strong>ERROR</strong>: There was a problem deleting the topic."
|
4938 |
msgstr ""
|
4939 |
|
4981 |
msgid "Topics list navigation"
|
4982 |
msgstr ""
|
4983 |
|
4984 |
+
#: includes/topics/template.php:67
|
4985 |
+
msgid "Forum Topics"
|
4986 |
+
msgstr ""
|
4987 |
+
|
4988 |
+
#: includes/topics/template.php:69
|
4989 |
+
msgid "Insert into topic"
|
4990 |
+
msgstr ""
|
4991 |
+
|
4992 |
+
#: includes/topics/template.php:70
|
4993 |
+
msgid "Uploaded to this topic"
|
4994 |
+
msgstr ""
|
4995 |
+
|
4996 |
+
#: includes/topics/template.php:71
|
4997 |
+
msgid "Topic Image"
|
4998 |
+
msgstr ""
|
4999 |
+
|
5000 |
+
#: includes/topics/template.php:72
|
5001 |
+
msgid "Set topic image"
|
5002 |
+
msgstr ""
|
5003 |
+
|
5004 |
+
#: includes/topics/template.php:73
|
5005 |
+
msgid "Remove topic image"
|
5006 |
+
msgstr ""
|
5007 |
+
|
5008 |
+
#: includes/topics/template.php:74
|
5009 |
+
msgid "Use as topic image"
|
5010 |
+
msgstr ""
|
5011 |
+
|
5012 |
+
#: includes/topics/template.php:75
|
5013 |
+
msgid "Filter topic list"
|
5014 |
+
msgstr ""
|
5015 |
+
|
5016 |
+
#: includes/topics/template.php:76
|
5017 |
+
msgid "Topic list navigation"
|
5018 |
+
msgstr ""
|
5019 |
+
|
5020 |
+
#: includes/topics/template.php:77
|
5021 |
+
msgid "Topic list"
|
5022 |
+
msgstr ""
|
5023 |
+
|
5024 |
+
#: includes/topics/template.php:924
|
5025 |
msgid "This topic was modified %1$s by %2$s. Reason: %3$s"
|
5026 |
msgstr ""
|
5027 |
|
5028 |
+
#: includes/topics/template.php:926
|
5029 |
msgid "This topic was modified %1$s by %2$s."
|
5030 |
msgstr ""
|
5031 |
|
5032 |
+
#: includes/topics/template.php:1855 includes/users/template.php:1075
|
5033 |
msgid "Favorite"
|
5034 |
msgstr ""
|
5035 |
|
5036 |
+
#: includes/topics/template.php:1856 includes/users/template.php:1076
|
5037 |
msgid "Unfavorite"
|
5038 |
msgstr ""
|
5039 |
|
5040 |
+
#: includes/topics/template.php:2221
|
5041 |
msgid "Tagged:"
|
5042 |
msgstr ""
|
5043 |
|
5044 |
+
#: includes/topics/template.php:2782
|
5045 |
#: templates/default/bbpress/form-topic-tag.php:69
|
5046 |
#: templates/default/bbpress/form-topic-tag.php:85
|
5047 |
msgid "Merge"
|
5048 |
msgstr ""
|
5049 |
|
5050 |
+
#: includes/topics/template.php:3014
|
5051 |
msgid "Viewing %1$s topic"
|
5052 |
msgid_plural "Viewing %1$s topics"
|
5053 |
msgstr[0] ""
|
5054 |
msgstr[1] ""
|
5055 |
|
5056 |
+
#: includes/topics/template.php:3018
|
5057 |
msgid "Viewing topic %2$s (of %4$s total)"
|
5058 |
msgid_plural "Viewing %1$s topics - %2$s through %3$s (of %4$s total)"
|
5059 |
msgstr[0] ""
|
5060 |
msgstr[1] ""
|
5061 |
|
5062 |
+
#: includes/topics/template.php:3075
|
5063 |
msgid "This topic is marked as spam."
|
5064 |
msgstr ""
|
5065 |
|
5066 |
+
#: includes/topics/template.php:3080
|
5067 |
msgid "This topic is in the trash."
|
5068 |
msgstr ""
|
5069 |
|
5070 |
+
#: includes/topics/template.php:3330
|
5071 |
msgid "%s voice"
|
5072 |
msgid_plural "%s voices"
|
5073 |
msgstr[0] ""
|
5074 |
msgstr[1] ""
|
5075 |
|
5076 |
+
#: includes/topics/template.php:3336
|
5077 |
msgid "This topic has %1$s, %2$s, and was last updated %3$s by %4$s."
|
5078 |
msgstr ""
|
5079 |
|
5080 |
+
#: includes/topics/template.php:3340
|
5081 |
msgid "This topic has %1$s and %2$s."
|
5082 |
msgstr ""
|
5083 |
|
5084 |
+
#: includes/topics/template.php:3344
|
5085 |
msgid "This topic has no replies."
|
5086 |
msgstr ""
|
5087 |
|
5088 |
+
#: includes/topics/template.php:3394
|
5089 |
msgid "Search Tags"
|
5090 |
msgstr ""
|
5091 |
|
5092 |
+
#: includes/topics/template.php:3395
|
5093 |
msgid "Popular Tags"
|
5094 |
msgstr ""
|
5095 |
|
5096 |
+
#: includes/topics/template.php:3396
|
5097 |
msgid "All Tags"
|
5098 |
msgstr ""
|
5099 |
|
5100 |
+
#: includes/topics/template.php:3397
|
5101 |
+
msgid "Parent Tag"
|
5102 |
+
msgstr ""
|
5103 |
+
|
5104 |
+
#: includes/topics/template.php:3398
|
5105 |
+
msgid "Parent Tag:"
|
5106 |
+
msgstr ""
|
5107 |
+
|
5108 |
+
#: includes/topics/template.php:3399
|
5109 |
msgid "Edit Tag"
|
5110 |
msgstr ""
|
5111 |
|
5112 |
+
#: includes/topics/template.php:3400
|
5113 |
+
msgid "View Topic Tag"
|
5114 |
+
msgstr ""
|
5115 |
+
|
5116 |
+
#: includes/topics/template.php:3401
|
5117 |
msgid "Update Tag"
|
5118 |
msgstr ""
|
5119 |
|
5120 |
+
#: includes/topics/template.php:3402
|
5121 |
msgid "Add New Tag"
|
5122 |
msgstr ""
|
5123 |
|
5124 |
+
#: includes/topics/template.php:3403
|
5125 |
msgid "New Tag Name"
|
5126 |
msgstr ""
|
5127 |
|
5128 |
+
#: includes/topics/template.php:3404
|
5129 |
+
msgid "Separate topic tags with commas"
|
5130 |
msgstr ""
|
5131 |
|
5132 |
+
#: includes/topics/template.php:3405
|
5133 |
+
msgid "Add or remove tags"
|
5134 |
msgstr ""
|
5135 |
|
5136 |
+
#: includes/topics/template.php:3406
|
5137 |
+
msgid "Choose from the most used tags"
|
5138 |
+
msgstr ""
|
5139 |
+
|
5140 |
+
#: includes/topics/template.php:3407
|
5141 |
+
msgid "No topic tags found."
|
5142 |
+
msgstr ""
|
5143 |
+
|
5144 |
+
#: includes/topics/template.php:3408
|
5145 |
+
msgid "No topic tags"
|
5146 |
msgstr ""
|
5147 |
|
5148 |
+
#: includes/topics/template.php:3409
|
5149 |
msgid "Topic tags list navigation"
|
5150 |
msgstr ""
|
5151 |
|
5152 |
+
#: includes/topics/template.php:3410
|
5153 |
+
msgid "Topic tags list"
|
5154 |
+
msgstr ""
|
5155 |
+
|
5156 |
+
#: includes/topics/template.php:3411
|
5157 |
+
msgid "Most used topic tags"
|
5158 |
msgstr ""
|
5159 |
|
5160 |
+
#: includes/topics/template.php:3412
|
5161 |
+
msgid "← Back to Tags"
|
5162 |
+
msgstr ""
|
5163 |
+
|
5164 |
+
#: includes/topics/template.php:4027
|
5165 |
msgid "Nobody"
|
5166 |
msgstr ""
|
5167 |
|
5168 |
+
#: includes/topics/template.php:4031
|
5169 |
msgid "%1$s is currently editing this topic."
|
5170 |
msgstr ""
|
5171 |
|
5172 |
+
#: includes/users/engagements.php:600
|
5173 |
msgid ""
|
5174 |
"<strong>ERROR</strong>: No topic was found. Which topic are you "
|
5175 |
"marking/unmarking as favorite?"
|
5176 |
msgstr ""
|
5177 |
|
5178 |
+
#: includes/users/engagements.php:608
|
5179 |
msgid ""
|
5180 |
"<strong>ERROR</strong>: You do not have permission to edit favorites for "
|
5181 |
"that user!."
|
5182 |
msgstr ""
|
5183 |
|
5184 |
+
#: includes/users/engagements.php:649
|
5185 |
msgid ""
|
5186 |
"<strong>ERROR</strong>: There was a problem removing that topic from "
|
5187 |
"favorites."
|
5188 |
msgstr ""
|
5189 |
|
5190 |
+
#: includes/users/engagements.php:651
|
5191 |
msgid "<strong>ERROR</strong>: There was a problem favoriting that topic."
|
5192 |
msgstr ""
|
5193 |
|
5194 |
+
#: includes/users/engagements.php:837
|
5195 |
msgid ""
|
5196 |
"<strong>ERROR</strong>: Not found. What are you subscribing/unsubscribing "
|
5197 |
"to?"
|
5198 |
msgstr ""
|
5199 |
|
5200 |
+
#: includes/users/engagements.php:845
|
5201 |
msgid ""
|
5202 |
"<strong>ERROR</strong>: You do not have permission to edit subscriptions of "
|
5203 |
"that user."
|
5204 |
msgstr ""
|
5205 |
|
5206 |
+
#: includes/users/engagements.php:888
|
5207 |
msgid "<strong>ERROR</strong>: There was a problem unsubscribing."
|
5208 |
msgstr ""
|
5209 |
|
5210 |
+
#: includes/users/engagements.php:890
|
5211 |
msgid "<strong>ERROR</strong>: There was a problem subscribing."
|
5212 |
msgstr ""
|
5213 |
|
5214 |
+
#: includes/users/functions.php:208 includes/users/functions.php:220
|
5215 |
msgid "<strong>ERROR</strong>: That is not a valid email address."
|
5216 |
msgstr ""
|
5217 |
|
5218 |
+
#: includes/users/functions.php:226 includes/users/functions.php:345
|
5219 |
msgid "<strong>ERROR</strong>: That email address is already in use."
|
5220 |
msgstr ""
|
5221 |
|
5222 |
+
#: includes/users/functions.php:408
|
5223 |
msgid "<strong>ERROR</strong>: An error occurred while updating your email address."
|
5224 |
msgstr ""
|
5225 |
|
5226 |
+
#: includes/users/functions.php:420
|
5227 |
msgid ""
|
5228 |
"%1$s\n"
|
5229 |
"\n"
|
5242 |
"%5$s"
|
5243 |
msgstr ""
|
5244 |
|
5245 |
+
#: includes/users/functions.php:455
|
5246 |
msgid "[%s] New Email Address"
|
5247 |
msgstr ""
|
5248 |
|
5249 |
+
#: includes/users/template.php:677
|
5250 |
msgid "Guest"
|
5251 |
msgstr ""
|
5252 |
|
5253 |
+
#: includes/users/template.php:681
|
5254 |
msgid "Inactive"
|
5255 |
msgstr ""
|
5256 |
|
5257 |
+
#: includes/users/template.php:691
|
5258 |
msgid "Member"
|
5259 |
msgstr ""
|
5260 |
|
5261 |
+
#: includes/users/template.php:732
|
5262 |
msgid "Admin"
|
5263 |
msgstr ""
|
5264 |
|
5265 |
+
#: includes/users/template.php:1369
|
5266 |
msgid "User updated."
|
5267 |
msgstr ""
|
5268 |
|
5269 |
+
#: includes/users/template.php:1413
|
5270 |
msgid "There is a pending email address change to %1$s. %2$s"
|
5271 |
msgstr ""
|
5272 |
|
5273 |
+
#: includes/users/template.php:1430
|
5274 |
msgid "You have super admin privileges."
|
5275 |
msgstr ""
|
5276 |
|
5277 |
+
#: includes/users/template.php:1430
|
5278 |
msgid "This user has super admin privileges."
|
5279 |
msgstr ""
|
5280 |
|
5281 |
+
#: includes/users/template.php:1504
|
5282 |
msgid "— No role for this site —"
|
5283 |
msgstr ""
|
5284 |
|
5285 |
+
#: includes/users/template.php:1824
|
5286 |
msgid "You are now logged out."
|
5287 |
msgstr ""
|
5288 |
|
5289 |
+
#: includes/users/template.php:1828
|
5290 |
msgid "New user registration is currently not allowed."
|
5291 |
msgstr ""
|
5292 |
|
5293 |
+
#: includes/users/template.php:1837
|
5294 |
msgid "Check your e-mail for the confirmation link."
|
5295 |
msgstr ""
|
5296 |
|
5297 |
+
#: includes/users/template.php:1842
|
5298 |
msgid "Check your e-mail for your new password."
|
5299 |
msgstr ""
|
5300 |
|
5301 |
+
#: includes/users/template.php:1847
|
5302 |
msgid "Registration complete. Please check your e-mail."
|
5303 |
msgstr ""
|
5304 |
|
5305 |
+
#: includes/users/template.php:2362
|
5306 |
msgid "Moderators:"
|
5307 |
msgstr ""
|
5308 |
|
5808 |
msgid "Update User"
|
5809 |
msgstr ""
|
5810 |
|
|
|
|
|
|
|
|
|
5811 |
#: templates/default/bbpress/form-user-lost-pass.php:21
|
5812 |
msgid "Username or Email"
|
5813 |
msgstr ""
|
6031 |
msgid "The bbPress Contributors"
|
6032 |
msgstr ""
|
6033 |
|
6034 |
+
#: bbpress.php:600
|
6035 |
msgctxt "post"
|
6036 |
msgid "Closed"
|
6037 |
msgstr ""
|
6038 |
|
6039 |
+
#: bbpress.php:601
|
6040 |
msgctxt "post"
|
6041 |
msgid "Closed <span class=\"count\">(%s)</span>"
|
6042 |
msgid_plural "Closed <span class=\"count\">(%s)</span>"
|
6043 |
msgstr[0] ""
|
6044 |
msgstr[1] ""
|
6045 |
|
6046 |
+
#: bbpress.php:613
|
6047 |
msgctxt "post"
|
6048 |
msgid "Spam"
|
6049 |
msgstr ""
|
6050 |
|
6051 |
+
#: bbpress.php:614
|
6052 |
msgctxt "post"
|
6053 |
msgid "Spam <span class=\"count\">(%s)</span>"
|
6054 |
msgid_plural "Spam <span class=\"count\">(%s)</span>"
|
6055 |
msgstr[0] ""
|
6056 |
msgstr[1] ""
|
6057 |
|
6058 |
+
#: bbpress.php:627
|
6059 |
msgctxt "post"
|
6060 |
msgid "Orphan"
|
6061 |
msgstr ""
|
6062 |
|
6063 |
+
#: bbpress.php:628
|
6064 |
msgctxt "post"
|
6065 |
msgid "Orphan <span class=\"count\">(%s)</span>"
|
6066 |
msgid_plural "Orphans <span class=\"count\">(%s)</span>"
|
6067 |
msgstr[0] ""
|
6068 |
msgstr[1] ""
|
6069 |
|
6070 |
+
#: bbpress.php:641
|
6071 |
msgctxt "post"
|
6072 |
msgid "Hidden"
|
6073 |
msgstr ""
|
6074 |
|
6075 |
+
#: bbpress.php:642
|
6076 |
msgctxt "post"
|
6077 |
msgid "Hidden <span class=\"count\">(%s)</span>"
|
6078 |
msgid_plural "Hidden <span class=\"count\">(%s)</span>"
|
6079 |
msgstr[0] ""
|
6080 |
msgstr[1] ""
|
6081 |
|
6082 |
+
#: includes/admin/classes/class-bbp-admin.php:786
|
6083 |
msgctxt "admin color scheme"
|
6084 |
msgid "Mint"
|
6085 |
msgstr ""
|
6086 |
|
6087 |
+
#: includes/admin/classes/class-bbp-admin.php:795
|
6088 |
msgctxt "admin color scheme"
|
6089 |
msgid "Evergreen"
|
6090 |
msgstr ""
|
6091 |
|
6092 |
+
#: includes/admin/forums.php:631
|
6093 |
msgctxt "Close a Forum"
|
6094 |
msgid "Close"
|
6095 |
msgstr ""
|
6096 |
|
6097 |
+
#: includes/admin/forums.php:633
|
6098 |
msgctxt "Open a Forum"
|
6099 |
msgid "Open"
|
6100 |
msgstr ""
|
6101 |
|
6102 |
+
#: includes/admin/replies.php:809
|
6103 |
msgctxt "Unapprove reply"
|
6104 |
msgid "Unapprove"
|
6105 |
msgstr ""
|
6106 |
|
6107 |
+
#: includes/admin/replies.php:811
|
6108 |
msgctxt "Approve reply"
|
6109 |
msgid "Approve"
|
6110 |
msgstr ""
|
6114 |
msgid "Reply"
|
6115 |
msgstr ""
|
6116 |
|
6117 |
+
#: includes/admin/topics.php:985
|
6118 |
msgctxt "Unapprove Topic"
|
6119 |
msgid "Unapprove"
|
6120 |
msgstr ""
|
6121 |
|
6122 |
+
#: includes/admin/topics.php:990
|
6123 |
msgctxt "Approve Topic"
|
6124 |
msgid "Approve"
|
6125 |
msgstr ""
|
6126 |
|
6127 |
+
#: includes/admin/topics.php:1002
|
6128 |
msgctxt "Close a Topic"
|
6129 |
msgid "Close"
|
6130 |
msgstr ""
|
6131 |
|
6132 |
+
#: includes/admin/topics.php:1004
|
6133 |
msgctxt "Open a Topic"
|
6134 |
msgid "Open"
|
6135 |
msgstr ""
|
6136 |
|
6137 |
+
#: includes/common/formatting.php:693
|
6138 |
msgctxt "Separator in time since"
|
6139 |
msgid ","
|
6140 |
msgstr ""
|
6169 |
msgid "Blocked"
|
6170 |
msgstr ""
|
6171 |
|
6172 |
+
#: includes/common/widgets.php:801
|
6173 |
msgctxt "widgets"
|
6174 |
msgid "by %1$s"
|
6175 |
msgstr ""
|
6176 |
|
6177 |
+
#: includes/common/widgets.php:1146
|
6178 |
#. translators: 1: reply author, 2: reply link, 3: reply timestamp
|
6179 |
msgctxt "widgets"
|
6180 |
msgid "%1$s on %2$s %3$s"
|
6181 |
msgstr ""
|
6182 |
|
6183 |
+
#: includes/common/widgets.php:1156
|
|
|
|
|
|
|
|
|
|
|
|
|
6184 |
#. translators: 1: reply author, 2: reply link
|
6185 |
msgctxt "widgets"
|
6186 |
msgid "%1$s on %2$s"
|
6187 |
msgstr ""
|
6188 |
|
6189 |
+
#: includes/extend/buddypress/groups.php:497
|
|
|
|
|
|
|
|
|
|
|
|
|
6190 |
msgctxt "group admin edit screen"
|
6191 |
msgid "Discussion Forum"
|
6192 |
msgstr ""
|
6193 |
|
6194 |
+
#: includes/forums/functions.php:1834
|
6195 |
msgctxt "Open the forum"
|
6196 |
msgid "Open"
|
6197 |
msgstr ""
|
6198 |
|
6199 |
+
#: includes/forums/functions.php:1835
|
6200 |
msgctxt "Close the forum"
|
6201 |
msgid "Closed"
|
6202 |
msgstr ""
|
6203 |
|
6204 |
+
#: includes/forums/functions.php:1852
|
6205 |
msgctxt "Forum accepts new topics"
|
6206 |
msgid "Forum"
|
6207 |
msgstr ""
|
6208 |
|
6209 |
+
#: includes/forums/functions.php:1853
|
6210 |
msgctxt "Forum is a category"
|
6211 |
msgid "Category"
|
6212 |
msgstr ""
|
6213 |
|
6214 |
+
#: includes/forums/functions.php:1870
|
6215 |
msgctxt "Make forum public"
|
6216 |
msgid "Public"
|
6217 |
msgstr ""
|
6218 |
|
6219 |
+
#: includes/forums/functions.php:1871
|
6220 |
msgctxt "Make forum private"
|
6221 |
msgid "Private"
|
6222 |
msgstr ""
|
6223 |
|
6224 |
+
#: includes/forums/functions.php:1872
|
6225 |
msgctxt "Make forum hidden"
|
6226 |
msgid "Hidden"
|
6227 |
msgstr ""
|
6228 |
|
6229 |
+
#: includes/replies/functions.php:1632
|
6230 |
msgctxt "Publish the reply"
|
6231 |
msgid "Publish"
|
6232 |
msgstr ""
|
6233 |
|
6234 |
+
#: includes/replies/functions.php:1633
|
6235 |
msgctxt "Spam the reply"
|
6236 |
msgid "Spam"
|
6237 |
msgstr ""
|
6238 |
|
6239 |
+
#: includes/replies/functions.php:1634
|
6240 |
msgctxt "Trash the reply"
|
6241 |
msgid "Trash"
|
6242 |
msgstr ""
|
6243 |
|
6244 |
+
#: includes/replies/functions.php:1635
|
6245 |
msgctxt "Mark reply as pending"
|
6246 |
msgid "Pending"
|
6247 |
msgstr ""
|
6248 |
|
6249 |
+
#: includes/replies/template.php:649 includes/topics/template.php:764
|
6250 |
msgctxt "date at time"
|
6251 |
msgid "%1$s at %2$s"
|
6252 |
msgstr ""
|
6253 |
|
6254 |
+
#: includes/replies/template.php:1579 includes/topics/template.php:2879
|
6255 |
msgctxt "verb"
|
6256 |
msgid "Reply"
|
6257 |
msgstr ""
|
6258 |
|
6259 |
+
#: includes/replies/template.php:2200
|
6260 |
msgctxt "Pending Status"
|
6261 |
msgid "Approve"
|
6262 |
msgstr ""
|
6263 |
|
6264 |
+
#: includes/replies/template.php:2201
|
6265 |
msgctxt "Pending Status"
|
6266 |
msgid "Unapprove"
|
6267 |
msgstr ""
|
6268 |
|
6269 |
+
#: includes/replies/template.php:2563
|
6270 |
msgctxt "Default reply to dropdown text"
|
6271 |
msgid "None"
|
6272 |
msgstr ""
|
6273 |
|
6274 |
+
#: includes/topics/functions.php:1850 includes/topics/template.php:2607
|
6275 |
msgctxt "Open the topic"
|
6276 |
msgid "Open"
|
6277 |
msgstr ""
|
6278 |
|
6279 |
+
#: includes/topics/functions.php:1851
|
6280 |
msgctxt "Close the topic"
|
6281 |
msgid "Closed"
|
6282 |
msgstr ""
|
6283 |
|
6284 |
+
#: includes/topics/template.php:2606
|
6285 |
msgctxt "Close the topic"
|
6286 |
msgid "Close"
|
6287 |
msgstr ""
|
6288 |
|
6289 |
+
#: includes/topics/functions.php:1852
|
6290 |
msgctxt "Spam the topic"
|
6291 |
msgid "Spam"
|
6292 |
msgstr ""
|
6293 |
|
6294 |
+
#: includes/topics/functions.php:1853
|
6295 |
msgctxt "Trash the topic"
|
6296 |
msgid "Trash"
|
6297 |
msgstr ""
|
6298 |
|
6299 |
+
#: includes/topics/functions.php:1854
|
6300 |
msgctxt "Unapprove the topic"
|
6301 |
msgid "Pending"
|
6302 |
msgstr ""
|
6303 |
|
6304 |
+
#: includes/topics/template.php:2661
|
6305 |
msgctxt "Unapprove the topic"
|
6306 |
msgid "Unapprove"
|
6307 |
msgstr ""
|
6308 |
|
6309 |
+
#: includes/topics/functions.php:1871
|
6310 |
msgctxt "Unstick a topic"
|
6311 |
msgid "Normal"
|
6312 |
msgstr ""
|
6313 |
|
6314 |
+
#: includes/topics/functions.php:1872
|
6315 |
msgctxt "Make topic sticky"
|
6316 |
msgid "Sticky"
|
6317 |
msgstr ""
|
6318 |
|
6319 |
+
#: includes/topics/functions.php:1873
|
6320 |
msgctxt "Make topic super sticky"
|
6321 |
msgid "Super Sticky"
|
6322 |
msgstr ""
|
6323 |
|
6324 |
+
#: includes/topics/template.php:2660
|
6325 |
msgctxt "Approve the topic"
|
6326 |
msgid "Approve"
|
6327 |
msgstr ""
|
6328 |
|
6329 |
+
#: includes/users/template.php:1408
|
6330 |
msgctxt "Dismiss pending user email address change"
|
6331 |
msgid "Cancel"
|
6332 |
msgstr ""
|
includes/admin/actions.php
CHANGED
@@ -38,22 +38,21 @@ defined( 'ABSPATH' ) || exit;
|
|
38 |
*
|
39 |
* v--WordPress Actions v--bbPress Sub-actions
|
40 |
*/
|
|
|
|
|
|
|
41 |
add_action( 'admin_menu', 'bbp_admin_menu' );
|
42 |
add_action( 'admin_init', 'bbp_admin_init' );
|
43 |
add_action( 'admin_head', 'bbp_admin_head' );
|
44 |
add_action( 'admin_notices', 'bbp_admin_notices' );
|
45 |
add_action( 'menu_order', 'bbp_admin_menu_order' );
|
46 |
-
|
47 |
-
add_action( 'current_screen', 'bbp_current_screen' );
|
48 |
-
add_action( 'wpmu_new_blog', 'bbp_new_site', 10, 6 );
|
49 |
-
add_action( 'tool_box', 'bbp_admin_tool_box' );
|
50 |
|
51 |
// Hook on to admin_init
|
52 |
add_action( 'bbp_admin_init', 'bbp_setup_updater', 999 );
|
53 |
add_action( 'bbp_admin_init', 'bbp_register_importers' );
|
54 |
add_action( 'bbp_admin_init', 'bbp_register_admin_style' );
|
55 |
add_action( 'bbp_admin_init', 'bbp_register_admin_settings' );
|
56 |
-
add_action( 'bbp_admin_init', 'bbp_do_activation_redirect', 1 );
|
57 |
|
58 |
// Hook on to current_screen
|
59 |
add_action( 'bbp_current_screen', 'bbp_admin_forums' );
|
@@ -67,15 +66,18 @@ add_action( 'bbp_init', 'bbp_setup_admin' );
|
|
67 |
add_action( 'bbp_admin_menu', 'bbp_admin_separator' );
|
68 |
|
69 |
// Activation
|
70 |
-
add_action( 'bbp_activation',
|
71 |
-
add_action( 'bbp_activation',
|
|
|
|
|
|
|
72 |
|
73 |
// Deactivation
|
74 |
add_action( 'bbp_deactivation', 'bbp_remove_caps' );
|
75 |
add_action( 'bbp_deactivation', 'bbp_delete_rewrite_rules' );
|
76 |
|
77 |
// New Site
|
78 |
-
add_action( 'bbp_new_site', '
|
79 |
|
80 |
// Load the default repair tools
|
81 |
add_action( 'load-tools_page_bbp-repair', 'bbp_register_default_repair_tools' );
|
@@ -142,14 +144,14 @@ function bbp_new_site( $blog_id, $user_id, $domain, $path, $site_id, $meta ) {
|
|
142 |
return;
|
143 |
}
|
144 |
|
145 |
-
// Switch to the new
|
146 |
-
|
147 |
|
148 |
// Do the bbPress activation routine
|
149 |
do_action( 'bbp_new_site', $blog_id, $user_id, $domain, $path, $site_id, $meta );
|
150 |
|
151 |
-
//
|
152 |
-
|
153 |
}
|
154 |
|
155 |
/**
|
@@ -207,6 +209,29 @@ function bbp_filter_column_headers( $columns = array() ) {
|
|
207 |
return $columns;
|
208 |
}
|
209 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
210 |
/** Sub-Actions ***************************************************************/
|
211 |
|
212 |
/**
|
38 |
*
|
39 |
* v--WordPress Actions v--bbPress Sub-actions
|
40 |
*/
|
41 |
+
add_action( 'wpmu_new_blog', 'bbp_new_site', 10, 6 );
|
42 |
+
add_action( 'current_screen', 'bbp_current_screen' );
|
43 |
+
add_action( 'tool_box', 'bbp_admin_tool_box' );
|
44 |
add_action( 'admin_menu', 'bbp_admin_menu' );
|
45 |
add_action( 'admin_init', 'bbp_admin_init' );
|
46 |
add_action( 'admin_head', 'bbp_admin_head' );
|
47 |
add_action( 'admin_notices', 'bbp_admin_notices' );
|
48 |
add_action( 'menu_order', 'bbp_admin_menu_order' );
|
49 |
+
add_filter( 'custom_menu_order', 'bbp_admin_custom_menu_order' );
|
|
|
|
|
|
|
50 |
|
51 |
// Hook on to admin_init
|
52 |
add_action( 'bbp_admin_init', 'bbp_setup_updater', 999 );
|
53 |
add_action( 'bbp_admin_init', 'bbp_register_importers' );
|
54 |
add_action( 'bbp_admin_init', 'bbp_register_admin_style' );
|
55 |
add_action( 'bbp_admin_init', 'bbp_register_admin_settings' );
|
|
|
56 |
|
57 |
// Hook on to current_screen
|
58 |
add_action( 'bbp_current_screen', 'bbp_admin_forums' );
|
66 |
add_action( 'bbp_admin_menu', 'bbp_admin_separator' );
|
67 |
|
68 |
// Activation
|
69 |
+
add_action( 'bbp_activation', 'bbp_setup_new_site' );
|
70 |
+
add_action( 'bbp_activation', 'bbp_add_activation_redirect' );
|
71 |
+
add_action( 'bbp_activation', 'bbp_delete_rewrite_rules' );
|
72 |
+
add_action( 'bbp_activation', 'bbp_make_current_user_keymaster' );
|
73 |
+
add_action( 'load-plugins.php', 'bbp_do_activation_redirect' );
|
74 |
|
75 |
// Deactivation
|
76 |
add_action( 'bbp_deactivation', 'bbp_remove_caps' );
|
77 |
add_action( 'bbp_deactivation', 'bbp_delete_rewrite_rules' );
|
78 |
|
79 |
// New Site
|
80 |
+
add_action( 'bbp_new_site', 'bbp_setup_new_site', 8 );
|
81 |
|
82 |
// Load the default repair tools
|
83 |
add_action( 'load-tools_page_bbp-repair', 'bbp_register_default_repair_tools' );
|
144 |
return;
|
145 |
}
|
146 |
|
147 |
+
// Switch to the new site
|
148 |
+
bbp_switch_to_site( $blog_id );
|
149 |
|
150 |
// Do the bbPress activation routine
|
151 |
do_action( 'bbp_new_site', $blog_id, $user_id, $domain, $path, $site_id, $meta );
|
152 |
|
153 |
+
// Restore original site
|
154 |
+
bbp_restore_current_site();
|
155 |
}
|
156 |
|
157 |
/**
|
209 |
return $columns;
|
210 |
}
|
211 |
|
212 |
+
/**
|
213 |
+
* Filter sample permalinks so that certain languages display properly.
|
214 |
+
*
|
215 |
+
* @since 2.0.0 bbPress (r3336)
|
216 |
+
*
|
217 |
+
* @param string $post_link Custom post type permalink
|
218 |
+
* @param object $_post Post data object
|
219 |
+
* @param bool $leavename Optional, defaults to false. Whether to keep post name or page name.
|
220 |
+
* @param bool $sample Optional, defaults to false. Is it a sample permalink.
|
221 |
+
*
|
222 |
+
* @return string The custom post type permalink
|
223 |
+
*/
|
224 |
+
function bbp_filter_sample_permalink( $post_link, $_post, $leavename = false, $sample = false ) {
|
225 |
+
|
226 |
+
// Bail if not on an admin page and not getting a sample permalink
|
227 |
+
if ( ! empty( $sample ) && is_admin() && bbp_is_custom_post_type() ) {
|
228 |
+
return urldecode( $post_link );
|
229 |
+
}
|
230 |
+
|
231 |
+
// Return post link
|
232 |
+
return $post_link;
|
233 |
+
}
|
234 |
+
|
235 |
/** Sub-Actions ***************************************************************/
|
236 |
|
237 |
/**
|
includes/admin/assets/css/admin-rtl.css
CHANGED
@@ -10,9 +10,7 @@
|
|
10 |
/* Version Badge */
|
11 |
|
12 |
.bbp-badge {
|
13 |
-
-webkit-transform-origin: top right;
|
14 |
transform-origin: top right;
|
15 |
-
-webkit-animation: swoop 16s infinite linear;
|
16 |
animation: swoop 16s infinite linear;
|
17 |
}
|
18 |
|
@@ -66,34 +64,6 @@
|
|
66 |
color: #555;
|
67 |
}
|
68 |
|
69 |
-
@-webkit-keyframes buzz {
|
70 |
-
|
71 |
-
0% {
|
72 |
-
left: -2px;
|
73 |
-
top: -1px;
|
74 |
-
}
|
75 |
-
|
76 |
-
25% {
|
77 |
-
left: 1px;
|
78 |
-
top: 2px;
|
79 |
-
}
|
80 |
-
|
81 |
-
50% {
|
82 |
-
left: -3px;
|
83 |
-
top: -1px;
|
84 |
-
}
|
85 |
-
|
86 |
-
75% {
|
87 |
-
left: 2px;
|
88 |
-
top: 1px;
|
89 |
-
}
|
90 |
-
|
91 |
-
0% {
|
92 |
-
left: -2px;
|
93 |
-
top: -1px;
|
94 |
-
}
|
95 |
-
}
|
96 |
-
|
97 |
@keyframes buzz {
|
98 |
|
99 |
0% {
|
@@ -122,28 +92,13 @@
|
|
122 |
}
|
123 |
}
|
124 |
|
125 |
-
@-webkit-keyframes swoop {
|
126 |
-
|
127 |
-
0% {
|
128 |
-
-webkit-transform: rotate(-95deg);
|
129 |
-
transform: rotate(-95deg);
|
130 |
-
}
|
131 |
-
|
132 |
-
100% {
|
133 |
-
-webkit-transform: rotate(-455deg);
|
134 |
-
transform: rotate(-455deg);
|
135 |
-
}
|
136 |
-
}
|
137 |
-
|
138 |
@keyframes swoop {
|
139 |
|
140 |
0% {
|
141 |
-
-webkit-transform: rotate(-95deg);
|
142 |
transform: rotate(-95deg);
|
143 |
}
|
144 |
|
145 |
100% {
|
146 |
-
-webkit-transform: rotate(-455deg);
|
147 |
transform: rotate(-455deg);
|
148 |
}
|
149 |
}
|
@@ -385,6 +340,7 @@ body.post-type-reply strong.label {
|
|
385 |
width: 10% !important;
|
386 |
}
|
387 |
|
|
|
388 |
.column-bbp_forum_created,
|
389 |
.column-bbp_topic_created,
|
390 |
.column-bbp_reply_created {
|
@@ -412,35 +368,63 @@ body.post-type-reply strong.label {
|
|
412 |
border-color: #ccc #ccc #fff #fff;
|
413 |
}
|
414 |
|
415 |
-
#the-list .status-closed
|
|
|
|
|
416 |
background-color: #f5f5f5;
|
417 |
}
|
418 |
|
419 |
-
#the-list .status-closed:nth-child(odd)
|
|
|
|
|
420 |
background-color: #f0f0f0;
|
421 |
}
|
422 |
|
423 |
-
#the-list .status-spam
|
|
|
|
|
|
|
424 |
background-color: #fee;
|
425 |
}
|
426 |
|
427 |
-
#the-list .status-spam:nth-child(odd)
|
|
|
|
|
|
|
428 |
background-color: #fdd;
|
429 |
}
|
430 |
|
431 |
-
#the-list .status-pending
|
|
|
|
|
432 |
background-color: #fff2e8;
|
433 |
}
|
434 |
|
435 |
-
#the-list .status-pending:nth-child(odd)
|
|
|
|
|
436 |
background-color: #fff7f1;
|
437 |
}
|
438 |
|
439 |
-
#the-list .status-closed td,
|
440 |
-
#the-list .status-
|
|
|
|
|
|
|
|
|
|
|
441 |
color: #999;
|
442 |
}
|
443 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
444 |
/* User Relationships */
|
445 |
|
446 |
#bbp_topic_engagements_metabox .avatar,
|
@@ -451,12 +435,35 @@ body.post-type-reply strong.label {
|
|
451 |
|
452 |
/* Converter */
|
453 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
454 |
#bbp-converter-monitor h2 {
|
455 |
position: relative;
|
456 |
}
|
457 |
|
458 |
#bbp-converter-monitor .inside {
|
459 |
margin-bottom: 0;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
460 |
}
|
461 |
|
462 |
div.bbp-converter-log,
|
@@ -556,7 +563,7 @@ div.bbp-converter-log .mini-step {
|
|
556 |
|
557 |
button.bbp-db-pass-toggle {
|
558 |
border: none;
|
559 |
-
background:
|
560 |
position: absolute;
|
561 |
left: 3px;
|
562 |
top: 3px;
|
@@ -587,6 +594,13 @@ button.bbp-db-pass-toggle.password:after {
|
|
587 |
width: 100%;
|
588 |
}
|
589 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
590 |
button.bbp-db-pass-toggle {
|
591 |
height: 35px;
|
592 |
width: 35px;
|
10 |
/* Version Badge */
|
11 |
|
12 |
.bbp-badge {
|
|
|
13 |
transform-origin: top right;
|
|
|
14 |
animation: swoop 16s infinite linear;
|
15 |
}
|
16 |
|
64 |
color: #555;
|
65 |
}
|
66 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
67 |
@keyframes buzz {
|
68 |
|
69 |
0% {
|
92 |
}
|
93 |
}
|
94 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
95 |
@keyframes swoop {
|
96 |
|
97 |
0% {
|
|
|
98 |
transform: rotate(-95deg);
|
99 |
}
|
100 |
|
101 |
100% {
|
|
|
102 |
transform: rotate(-455deg);
|
103 |
}
|
104 |
}
|
340 |
width: 10% !important;
|
341 |
}
|
342 |
|
343 |
+
.column-bbp_user_role,
|
344 |
.column-bbp_forum_created,
|
345 |
.column-bbp_topic_created,
|
346 |
.column-bbp_reply_created {
|
368 |
border-color: #ccc #ccc #fff #fff;
|
369 |
}
|
370 |
|
371 |
+
body.post-type-forum #the-list .status-closed,
|
372 |
+
body.post-type-topic #the-list .status-closed,
|
373 |
+
body.post-type-reply #the-list .status-closed {
|
374 |
background-color: #f5f5f5;
|
375 |
}
|
376 |
|
377 |
+
body.post-type-forum #the-list .status-closed:nth-child(odd),
|
378 |
+
body.post-type-topic #the-list .status-closed:nth-child(odd),
|
379 |
+
body.post-type-reply #the-list .status-closed:nth-child(odd) {
|
380 |
background-color: #f0f0f0;
|
381 |
}
|
382 |
|
383 |
+
body.post-type-forum #the-list .status-spam,
|
384 |
+
body.post-type-topic #the-list .status-spam,
|
385 |
+
body.post-type-reply #the-list .status-spam,
|
386 |
+
#bbp-reply-list .status-trash {
|
387 |
background-color: #fee;
|
388 |
}
|
389 |
|
390 |
+
body.post-type-forum #the-list .status-spam:nth-child(odd),
|
391 |
+
body.post-type-topic #the-list .status-spam:nth-child(odd),
|
392 |
+
body.post-type-reply #the-list .status-spam:nth-child(odd),
|
393 |
+
#bbp-reply-list .status-trash:nth-child(odd) {
|
394 |
background-color: #fdd;
|
395 |
}
|
396 |
|
397 |
+
body.post-type-forum #the-list .status-pending,
|
398 |
+
body.post-type-topic #the-list .status-pending,
|
399 |
+
body.post-type-reply #the-list .status-pending {
|
400 |
background-color: #fff2e8;
|
401 |
}
|
402 |
|
403 |
+
body.post-type-forum #the-list .status-pending:nth-child(odd),
|
404 |
+
body.post-type-topic #the-list .status-pending:nth-child(odd),
|
405 |
+
body.post-type-reply #the-list .status-pending:nth-child(odd) {
|
406 |
background-color: #fff7f1;
|
407 |
}
|
408 |
|
409 |
+
body.post-type-forum #the-list .status-closed td,
|
410 |
+
body.post-type-topic #the-list .status-closed td,
|
411 |
+
body.post-type-reply #the-list .status-closed td,
|
412 |
+
body.post-type-forum #the-list .status-spam td,
|
413 |
+
body.post-type-topic #the-list .status-spam td,
|
414 |
+
body.post-type-reply #the-list .status-spam td,
|
415 |
+
#bbp-reply-list .status-trash td {
|
416 |
color: #999;
|
417 |
}
|
418 |
|
419 |
+
body.post-type-forum #the-list .row-actions .unspam a,
|
420 |
+
body.post-type-topic #the-list .row-actions .unspam a,
|
421 |
+
body.post-type-reply #the-list .row-actions .unspam a,
|
422 |
+
body.post-type-forum #the-list .row-actions .approved a,
|
423 |
+
body.post-type-topic #the-list .row-actions .approved a,
|
424 |
+
body.post-type-reply #the-list .row-actions .approved a {
|
425 |
+
color: #006505;
|
426 |
+
}
|
427 |
+
|
428 |
/* User Relationships */
|
429 |
|
430 |
#bbp_topic_engagements_metabox .avatar,
|
435 |
|
436 |
/* Converter */
|
437 |
|
438 |
+
.bbp-converter-settings-wrap {
|
439 |
+
float: right;
|
440 |
+
width: 55%;
|
441 |
+
}
|
442 |
+
|
443 |
+
#poststuff.bbp-converter-monitor-wrap {
|
444 |
+
float: left;
|
445 |
+
width: 43%;
|
446 |
+
margin-right: 2%;
|
447 |
+
min-width: 200px;
|
448 |
+
}
|
449 |
+
|
450 |
#bbp-converter-monitor h2 {
|
451 |
position: relative;
|
452 |
}
|
453 |
|
454 |
#bbp-converter-monitor .inside {
|
455 |
margin-bottom: 0;
|
456 |
+
border-bottom: 1px solid #e5e5e5;
|
457 |
+
}
|
458 |
+
|
459 |
+
#bbp-converter-monitor div.actions {
|
460 |
+
padding: 10px;
|
461 |
+
background: #fafafa;
|
462 |
+
clear: both;
|
463 |
+
}
|
464 |
+
|
465 |
+
#bbp-converter-spinner {
|
466 |
+
margin: 4px 0;
|
467 |
}
|
468 |
|
469 |
div.bbp-converter-log,
|
563 |
|
564 |
button.bbp-db-pass-toggle {
|
565 |
border: none;
|
566 |
+
background: transparent;
|
567 |
position: absolute;
|
568 |
left: 3px;
|
569 |
top: 3px;
|
594 |
width: 100%;
|
595 |
}
|
596 |
|
597 |
+
#poststuff.bbp-converter-monitor-wrap,
|
598 |
+
.bbp-converter-settings-wrap {
|
599 |
+
float: none;
|
600 |
+
width: 100%;
|
601 |
+
margin: 20px 0;
|
602 |
+
}
|
603 |
+
|
604 |
button.bbp-db-pass-toggle {
|
605 |
height: 35px;
|
606 |
width: 35px;
|
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{
|
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{transform-origin:top right;animation:swoop 16s infinite linear}.bbp-bee{font:400 80px/1 dashicons!important;color:#000;position:absolute;height:60px;width:60px}.bbp-hive{font:400 150px/1 dashicons!important;color:#ccc;position:absolute;height:150px;width:150px;top:0;left:0;display:block}.bbp-bee:before{content:"\f451"}.bbp-hive:before{content:"\f449"}.notice-bbpress{border-right:4px solid #78cd95;padding-right:36px;background-color:#ebffeb;position:relative}.notice-bbpress .bbpress-logo-icon{position:absolute;height:auto;width:auto;padding:7px 9px;top:50%;right:0;transform:translateY(-50%);font:400 24px/1 dashicons!important}.notice-bbpress .bbpress-logo-icon:before{content:"\f477";color:#555}@keyframes buzz{0%{left:-2px;top:-1px}25%{left:1px;top:2px}50%{left:-3px;top:-1px}75%{left:2px;top:1px}0%{left:-2px;top:-1px}}@keyframes swoop{0%{transform:rotate(-95deg)}100%{transform:rotate(-455deg)}}.about-wrap .bbp-badge{position:absolute;left:50px;top:50px;height:25px;width:25px}body.rtl .about-wrap .bbp-badge{left:auto;right:50px}#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"}#dashboard_right_now a.bbp-glance-users:before{content:"\f110"}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,.column-bbp_user_role{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}body.post-type-forum #the-list .status-closed,body.post-type-reply #the-list .status-closed,body.post-type-topic #the-list .status-closed{background-color:#f5f5f5}body.post-type-forum #the-list .status-closed:nth-child(odd),body.post-type-reply #the-list .status-closed:nth-child(odd),body.post-type-topic #the-list .status-closed:nth-child(odd){background-color:#f0f0f0}#bbp-reply-list .status-trash,body.post-type-forum #the-list .status-spam,body.post-type-reply #the-list .status-spam,body.post-type-topic #the-list .status-spam{background-color:#fee}#bbp-reply-list .status-trash:nth-child(odd),body.post-type-forum #the-list .status-spam:nth-child(odd),body.post-type-reply #the-list .status-spam:nth-child(odd),body.post-type-topic #the-list .status-spam:nth-child(odd){background-color:#fdd}body.post-type-forum #the-list .status-pending,body.post-type-reply #the-list .status-pending,body.post-type-topic #the-list .status-pending{background-color:#fff2e8}body.post-type-forum #the-list .status-pending:nth-child(odd),body.post-type-reply #the-list .status-pending:nth-child(odd),body.post-type-topic #the-list .status-pending:nth-child(odd){background-color:#fff7f1}#bbp-reply-list .status-trash td,body.post-type-forum #the-list .status-closed td,body.post-type-forum #the-list .status-spam td,body.post-type-reply #the-list .status-closed td,body.post-type-reply #the-list .status-spam td,body.post-type-topic #the-list .status-closed td,body.post-type-topic #the-list .status-spam td{color:#999}body.post-type-forum #the-list .row-actions .approved a,body.post-type-forum #the-list .row-actions .unspam a,body.post-type-reply #the-list .row-actions .approved a,body.post-type-reply #the-list .row-actions .unspam a,body.post-type-topic #the-list .row-actions .approved a,body.post-type-topic #the-list .row-actions .unspam a{color:#006505}#bbp_topic_engagements_metabox .avatar,#bbp_topic_favorites_metabox .avatar,#bbp_topic_subscriptions_metabox .avatar{margin:3px}.bbp-converter-settings-wrap{float:right;width:55%}#poststuff.bbp-converter-monitor-wrap{float:left;width:43%;margin-right:2%;min-width:200px}#bbp-converter-monitor h2{position:relative}#bbp-converter-monitor .inside{margin-bottom:0;border-bottom:1px solid #e5e5e5}#bbp-converter-monitor div.actions{padding:10px;background:#fafafa;clear:both}#bbp-converter-spinner{margin:4px 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}div.bbp-converter-log .output{margin:0 5px}div.bbp-converter-log .mini-step{padding:3px 5px;vertical-align:middle;font-size:8px;font-weight:600;border-radius:6px;background-color:#aaa;color:#fff}#bbp-converter-monitor .bbp-progress-bar{position:absolute;right:0;height:1px;width:0;background-color:#00b9eb;transition-property:width;transition-timing-function:ease-out;transition-duration:1s}#bbp-converter-monitor #bbp-converter-step-percentage{bottom:1px}#bbp-converter-monitor #bbp-converter-total-percentage{bottom:0}#bbp-converter-stop{display:none}#bbp-converter-status{font-weight:400;font-size:12px;color:#aaa;display:block;margin-top:2px}.bbp-converter-db-password-wrapper{display:inline-block;position:relative}.bbp-converter-db-pass::-webkit-credentials-auto-fill-button{display:none;visibility:hidden;pointer-events:none;position:absolute;left:0}button.bbp-db-pass-toggle{border:none;background:0 0;position:absolute;left:3px;top:3px;padding:0;margin:0;cursor:pointer;color:#aaa;height:25px;width:25px;font:400 20px/1 dashicons!important}button.bbp-db-pass-toggle:hover{color:#888}button.bbp-db-pass-toggle.text:after{content:"\f530"}button.bbp-db-pass-toggle.password:after{content:"\f177"}@media screen and (max-width:782px){.bbp-converter-db-password-wrapper{width:100%}#poststuff.bbp-converter-monitor-wrap,.bbp-converter-settings-wrap{float:none;width:100%;margin:20px 0}button.bbp-db-pass-toggle{height:35px;width:35px;font:400 20px/1 dashicons!important}}td.bbp-tool-title strong{display:block}
|
includes/admin/assets/css/admin.css
CHANGED
@@ -10,9 +10,7 @@
|
|
10 |
/* Version Badge */
|
11 |
|
12 |
.bbp-badge {
|
13 |
-
-webkit-transform-origin: top left;
|
14 |
transform-origin: top left;
|
15 |
-
-webkit-animation: swoop 16s infinite linear;
|
16 |
animation: swoop 16s infinite linear;
|
17 |
}
|
18 |
|
@@ -66,34 +64,6 @@
|
|
66 |
color: #555;
|
67 |
}
|
68 |
|
69 |
-
@-webkit-keyframes buzz {
|
70 |
-
|
71 |
-
0% {
|
72 |
-
right: -2px;
|
73 |
-
top: -1px;
|
74 |
-
}
|
75 |
-
|
76 |
-
25% {
|
77 |
-
right: 1px;
|
78 |
-
top: 2px;
|
79 |
-
}
|
80 |
-
|
81 |
-
50% {
|
82 |
-
right: -3px;
|
83 |
-
top: -1px;
|
84 |
-
}
|
85 |
-
|
86 |
-
75% {
|
87 |
-
right: 2px;
|
88 |
-
top: 1px;
|
89 |
-
}
|
90 |
-
|
91 |
-
0% {
|
92 |
-
right: -2px;
|
93 |
-
top: -1px;
|
94 |
-
}
|
95 |
-
}
|
96 |
-
|
97 |
@keyframes buzz {
|
98 |
|
99 |
0% {
|
@@ -122,28 +92,13 @@
|
|
122 |
}
|
123 |
}
|
124 |
|
125 |
-
@-webkit-keyframes swoop {
|
126 |
-
|
127 |
-
0% {
|
128 |
-
-webkit-transform: rotate(95deg);
|
129 |
-
transform: rotate(95deg);
|
130 |
-
}
|
131 |
-
|
132 |
-
100% {
|
133 |
-
-webkit-transform: rotate(455deg);
|
134 |
-
transform: rotate(455deg);
|
135 |
-
}
|
136 |
-
}
|
137 |
-
|
138 |
@keyframes swoop {
|
139 |
|
140 |
0% {
|
141 |
-
-webkit-transform: rotate(95deg);
|
142 |
transform: rotate(95deg);
|
143 |
}
|
144 |
|
145 |
100% {
|
146 |
-
-webkit-transform: rotate(455deg);
|
147 |
transform: rotate(455deg);
|
148 |
}
|
149 |
}
|
@@ -385,6 +340,7 @@ body.post-type-reply strong.label {
|
|
385 |
width: 10% !important;
|
386 |
}
|
387 |
|
|
|
388 |
.column-bbp_forum_created,
|
389 |
.column-bbp_topic_created,
|
390 |
.column-bbp_reply_created {
|
@@ -412,35 +368,63 @@ body.post-type-reply strong.label {
|
|
412 |
border-color: #ccc #fff #fff #ccc;
|
413 |
}
|
414 |
|
415 |
-
#the-list .status-closed
|
|
|
|
|
416 |
background-color: #f5f5f5;
|
417 |
}
|
418 |
|
419 |
-
#the-list .status-closed:nth-child(odd)
|
|
|
|
|
420 |
background-color: #f0f0f0;
|
421 |
}
|
422 |
|
423 |
-
#the-list .status-spam
|
|
|
|
|
|
|
424 |
background-color: #fee;
|
425 |
}
|
426 |
|
427 |
-
#the-list .status-spam:nth-child(odd)
|
|
|
|
|
|
|
428 |
background-color: #fdd;
|
429 |
}
|
430 |
|
431 |
-
#the-list .status-pending
|
|
|
|
|
432 |
background-color: #fff2e8;
|
433 |
}
|
434 |
|
435 |
-
#the-list .status-pending:nth-child(odd)
|
|
|
|
|
436 |
background-color: #fff7f1;
|
437 |
}
|
438 |
|
439 |
-
#the-list .status-closed td,
|
440 |
-
#the-list .status-
|
|
|
|
|
|
|
|
|
|
|
441 |
color: #999;
|
442 |
}
|
443 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
444 |
/* User Relationships */
|
445 |
|
446 |
#bbp_topic_engagements_metabox .avatar,
|
@@ -451,12 +435,35 @@ body.post-type-reply strong.label {
|
|
451 |
|
452 |
/* Converter */
|
453 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
454 |
#bbp-converter-monitor h2 {
|
455 |
position: relative;
|
456 |
}
|
457 |
|
458 |
#bbp-converter-monitor .inside {
|
459 |
margin-bottom: 0;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
460 |
}
|
461 |
|
462 |
div.bbp-converter-log,
|
@@ -556,7 +563,7 @@ div.bbp-converter-log .mini-step {
|
|
556 |
|
557 |
button.bbp-db-pass-toggle {
|
558 |
border: none;
|
559 |
-
background:
|
560 |
position: absolute;
|
561 |
right: 3px;
|
562 |
top: 3px;
|
@@ -587,6 +594,13 @@ button.bbp-db-pass-toggle.password:after {
|
|
587 |
width: 100%;
|
588 |
}
|
589 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
590 |
button.bbp-db-pass-toggle {
|
591 |
height: 35px;
|
592 |
width: 35px;
|
10 |
/* Version Badge */
|
11 |
|
12 |
.bbp-badge {
|
|
|
13 |
transform-origin: top left;
|
|
|
14 |
animation: swoop 16s infinite linear;
|
15 |
}
|
16 |
|
64 |
color: #555;
|
65 |
}
|
66 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
67 |
@keyframes buzz {
|
68 |
|
69 |
0% {
|
92 |
}
|
93 |
}
|
94 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
95 |
@keyframes swoop {
|
96 |
|
97 |
0% {
|
|
|
98 |
transform: rotate(95deg);
|
99 |
}
|
100 |
|
101 |
100% {
|
|
|
102 |
transform: rotate(455deg);
|
103 |
}
|
104 |
}
|
340 |
width: 10% !important;
|
341 |
}
|
342 |
|
343 |
+
.column-bbp_user_role,
|
344 |
.column-bbp_forum_created,
|
345 |
.column-bbp_topic_created,
|
346 |
.column-bbp_reply_created {
|
368 |
border-color: #ccc #fff #fff #ccc;
|
369 |
}
|
370 |
|
371 |
+
body.post-type-forum #the-list .status-closed,
|
372 |
+
body.post-type-topic #the-list .status-closed,
|
373 |
+
body.post-type-reply #the-list .status-closed {
|
374 |
background-color: #f5f5f5;
|
375 |
}
|
376 |
|
377 |
+
body.post-type-forum #the-list .status-closed:nth-child(odd),
|
378 |
+
body.post-type-topic #the-list .status-closed:nth-child(odd),
|
379 |
+
body.post-type-reply #the-list .status-closed:nth-child(odd) {
|
380 |
background-color: #f0f0f0;
|
381 |
}
|
382 |
|
383 |
+
body.post-type-forum #the-list .status-spam,
|
384 |
+
body.post-type-topic #the-list .status-spam,
|
385 |
+
body.post-type-reply #the-list .status-spam,
|
386 |
+
#bbp-reply-list .status-trash {
|
387 |
background-color: #fee;
|
388 |
}
|
389 |
|
390 |
+
body.post-type-forum #the-list .status-spam:nth-child(odd),
|
391 |
+
body.post-type-topic #the-list .status-spam:nth-child(odd),
|
392 |
+
body.post-type-reply #the-list .status-spam:nth-child(odd),
|
393 |
+
#bbp-reply-list .status-trash:nth-child(odd) {
|
394 |
background-color: #fdd;
|
395 |
}
|
396 |
|
397 |
+
body.post-type-forum #the-list .status-pending,
|
398 |
+
body.post-type-topic #the-list .status-pending,
|
399 |
+
body.post-type-reply #the-list .status-pending {
|
400 |
background-color: #fff2e8;
|
401 |
}
|
402 |
|
403 |
+
body.post-type-forum #the-list .status-pending:nth-child(odd),
|
404 |
+
body.post-type-topic #the-list .status-pending:nth-child(odd),
|
405 |
+
body.post-type-reply #the-list .status-pending:nth-child(odd) {
|
406 |
background-color: #fff7f1;
|
407 |
}
|
408 |
|
409 |
+
body.post-type-forum #the-list .status-closed td,
|
410 |
+
body.post-type-topic #the-list .status-closed td,
|
411 |
+
body.post-type-reply #the-list .status-closed td,
|
412 |
+
body.post-type-forum #the-list .status-spam td,
|
413 |
+
body.post-type-topic #the-list .status-spam td,
|
414 |
+
body.post-type-reply #the-list .status-spam td,
|
415 |
+
#bbp-reply-list .status-trash td {
|
416 |
color: #999;
|
417 |
}
|
418 |
|
419 |
+
body.post-type-forum #the-list .row-actions .unspam a,
|
420 |
+
body.post-type-topic #the-list .row-actions .unspam a,
|
421 |
+
body.post-type-reply #the-list .row-actions .unspam a,
|
422 |
+
body.post-type-forum #the-list .row-actions .approved a,
|
423 |
+
body.post-type-topic #the-list .row-actions .approved a,
|
424 |
+
body.post-type-reply #the-list .row-actions .approved a {
|
425 |
+
color: #006505;
|
426 |
+
}
|
427 |
+
|
428 |
/* User Relationships */
|
429 |
|
430 |
#bbp_topic_engagements_metabox .avatar,
|
435 |
|
436 |
/* Converter */
|
437 |
|
438 |
+
.bbp-converter-settings-wrap {
|
439 |
+
float: left;
|
440 |
+
width: 55%;
|
441 |
+
}
|
442 |
+
|
443 |
+
#poststuff.bbp-converter-monitor-wrap {
|
444 |
+
float: right;
|
445 |
+
width: 43%;
|
446 |
+
margin-left: 2%;
|
447 |
+
min-width: 200px;
|
448 |
+
}
|
449 |
+
|
450 |
#bbp-converter-monitor h2 {
|
451 |
position: relative;
|
452 |
}
|
453 |
|
454 |
#bbp-converter-monitor .inside {
|
455 |
margin-bottom: 0;
|
456 |
+
border-bottom: 1px solid #e5e5e5;
|
457 |
+
}
|
458 |
+
|
459 |
+
#bbp-converter-monitor div.actions {
|
460 |
+
padding: 10px;
|
461 |
+
background: #fafafa;
|
462 |
+
clear: both;
|
463 |
+
}
|
464 |
+
|
465 |
+
#bbp-converter-spinner {
|
466 |
+
margin: 4px 0;
|
467 |
}
|
468 |
|
469 |
div.bbp-converter-log,
|
563 |
|
564 |
button.bbp-db-pass-toggle {
|
565 |
border: none;
|
566 |
+
background: transparent;
|
567 |
position: absolute;
|
568 |
right: 3px;
|
569 |
top: 3px;
|
594 |
width: 100%;
|
595 |
}
|
596 |
|
597 |
+
#poststuff.bbp-converter-monitor-wrap,
|
598 |
+
.bbp-converter-settings-wrap {
|
599 |
+
float: none;
|
600 |
+
width: 100%;
|
601 |
+
margin: 20px 0;
|
602 |
+
}
|
603 |
+
|
604 |
button.bbp-db-pass-toggle {
|
605 |
height: 35px;
|
606 |
width: 35px;
|
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{
|
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{transform-origin:top left;animation:swoop 16s infinite linear}.bbp-bee{font:400 80px/1 dashicons!important;color:#000;position:absolute;height:60px;width:60px}.bbp-hive{font:400 150px/1 dashicons!important;color:#ccc;position:absolute;height:150px;width:150px;top:0;right:0;display:block}.bbp-bee:before{content:"\f451"}.bbp-hive:before{content:"\f449"}.notice-bbpress{border-left:4px solid #78cd95;padding-left:36px;background-color:#ebffeb;position:relative}.notice-bbpress .bbpress-logo-icon{position:absolute;height:auto;width:auto;padding:7px 9px;top:50%;left:0;transform:translateY(-50%);font:400 24px/1 dashicons!important}.notice-bbpress .bbpress-logo-icon:before{content:"\f477";color:#555}@keyframes buzz{0%{right:-2px;top:-1px}25%{right:1px;top:2px}50%{right:-3px;top:-1px}75%{right:2px;top:1px}0%{right:-2px;top:-1px}}@keyframes swoop{0%{transform:rotate(95deg)}100%{transform:rotate(455deg)}}.about-wrap .bbp-badge{position:absolute;right:50px;top:50px;height:25px;width:25px}body.rtl .about-wrap .bbp-badge{right:auto;left:50px}#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"}#dashboard_right_now a.bbp-glance-users:before{content:"\f110"}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,.column-bbp_user_role{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}body.post-type-forum #the-list .status-closed,body.post-type-reply #the-list .status-closed,body.post-type-topic #the-list .status-closed{background-color:#f5f5f5}body.post-type-forum #the-list .status-closed:nth-child(odd),body.post-type-reply #the-list .status-closed:nth-child(odd),body.post-type-topic #the-list .status-closed:nth-child(odd){background-color:#f0f0f0}#bbp-reply-list .status-trash,body.post-type-forum #the-list .status-spam,body.post-type-reply #the-list .status-spam,body.post-type-topic #the-list .status-spam{background-color:#fee}#bbp-reply-list .status-trash:nth-child(odd),body.post-type-forum #the-list .status-spam:nth-child(odd),body.post-type-reply #the-list .status-spam:nth-child(odd),body.post-type-topic #the-list .status-spam:nth-child(odd){background-color:#fdd}body.post-type-forum #the-list .status-pending,body.post-type-reply #the-list .status-pending,body.post-type-topic #the-list .status-pending{background-color:#fff2e8}body.post-type-forum #the-list .status-pending:nth-child(odd),body.post-type-reply #the-list .status-pending:nth-child(odd),body.post-type-topic #the-list .status-pending:nth-child(odd){background-color:#fff7f1}#bbp-reply-list .status-trash td,body.post-type-forum #the-list .status-closed td,body.post-type-forum #the-list .status-spam td,body.post-type-reply #the-list .status-closed td,body.post-type-reply #the-list .status-spam td,body.post-type-topic #the-list .status-closed td,body.post-type-topic #the-list .status-spam td{color:#999}body.post-type-forum #the-list .row-actions .approved a,body.post-type-forum #the-list .row-actions .unspam a,body.post-type-reply #the-list .row-actions .approved a,body.post-type-reply #the-list .row-actions .unspam a,body.post-type-topic #the-list .row-actions .approved a,body.post-type-topic #the-list .row-actions .unspam a{color:#006505}#bbp_topic_engagements_metabox .avatar,#bbp_topic_favorites_metabox .avatar,#bbp_topic_subscriptions_metabox .avatar{margin:3px}.bbp-converter-settings-wrap{float:left;width:55%}#poststuff.bbp-converter-monitor-wrap{float:right;width:43%;margin-left:2%;min-width:200px}#bbp-converter-monitor h2{position:relative}#bbp-converter-monitor .inside{margin-bottom:0;border-bottom:1px solid #e5e5e5}#bbp-converter-monitor div.actions{padding:10px;background:#fafafa;clear:both}#bbp-converter-spinner{margin:4px 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}div.bbp-converter-log .output{margin:0 5px}div.bbp-converter-log .mini-step{padding:3px 5px;vertical-align:middle;font-size:8px;font-weight:600;border-radius:6px;background-color:#aaa;color:#fff}#bbp-converter-monitor .bbp-progress-bar{position:absolute;left:0;height:1px;width:0;background-color:#00b9eb;transition-property:width;transition-timing-function:ease-out;transition-duration:1s}#bbp-converter-monitor #bbp-converter-step-percentage{bottom:1px}#bbp-converter-monitor #bbp-converter-total-percentage{bottom:0}#bbp-converter-stop{display:none}#bbp-converter-status{font-weight:400;font-size:12px;color:#aaa;display:block;margin-top:2px}.bbp-converter-db-password-wrapper{display:inline-block;position:relative}.bbp-converter-db-pass::-webkit-credentials-auto-fill-button{display:none;visibility:hidden;pointer-events:none;position:absolute;right:0}button.bbp-db-pass-toggle{border:none;background:0 0;position:absolute;right:3px;top:3px;padding:0;margin:0;cursor:pointer;color:#aaa;height:25px;width:25px;font:400 20px/1 dashicons!important}button.bbp-db-pass-toggle:hover{color:#888}button.bbp-db-pass-toggle.text:after{content:"\f530"}button.bbp-db-pass-toggle.password:after{content:"\f177"}@media screen and (max-width:782px){.bbp-converter-db-password-wrapper{width:100%}#poststuff.bbp-converter-monitor-wrap,.bbp-converter-settings-wrap{float:none;width:100%;margin:20px 0}button.bbp-db-pass-toggle{height:35px;width:35px;font:400 20px/1 dashicons!important}}td.bbp-tool-title strong{display:block}
|
includes/admin/assets/js/converter.js
CHANGED
@@ -9,11 +9,13 @@ jQuery( document ).ready( function ( $ ) {
|
|
9 |
start = $( '#bbp-converter-start' ),
|
10 |
restart = $( '#_bbp_converter_restart' ),
|
11 |
status = $( '#bbp-converter-status' ),
|
|
|
12 |
settings = $( '#bbp-converter-settings' ),
|
13 |
password = $( '#_bbp_converter_db_pass' ),
|
14 |
toggle = $( '.bbp-db-pass-toggle' ),
|
15 |
step_p = $( '#bbp-converter-step-percentage' ),
|
16 |
-
total_p = $( '#bbp-converter-total-percentage' )
|
|
|
17 |
|
18 |
/**
|
19 |
* Show/hide db password button toggle
|
@@ -217,8 +219,12 @@ jQuery( document ).ready( function ( $ ) {
|
|
217 |
);
|
218 |
|
219 |
message.addClass( 'started' );
|
|
|
220 |
start.hide();
|
221 |
stop.show();
|
|
|
|
|
|
|
222 |
|
223 |
bbp_converter_post();
|
224 |
}
|
@@ -256,6 +262,9 @@ jQuery( document ).ready( function ( $ ) {
|
|
256 |
|
257 |
start.show();
|
258 |
stop.hide();
|
|
|
|
|
|
|
259 |
}
|
260 |
|
261 |
/**
|
9 |
start = $( '#bbp-converter-start' ),
|
10 |
restart = $( '#_bbp_converter_restart' ),
|
11 |
status = $( '#bbp-converter-status' ),
|
12 |
+
spinner = $( '#bbp-converter-spinner' ),
|
13 |
settings = $( '#bbp-converter-settings' ),
|
14 |
password = $( '#_bbp_converter_db_pass' ),
|
15 |
toggle = $( '.bbp-db-pass-toggle' ),
|
16 |
step_p = $( '#bbp-converter-step-percentage' ),
|
17 |
+
total_p = $( '#bbp-converter-total-percentage' ),
|
18 |
+
fields = settings.find( 'table:first-of-type input, table:first-of-type select' );
|
19 |
|
20 |
/**
|
21 |
* Show/hide db password button toggle
|
219 |
);
|
220 |
|
221 |
message.addClass( 'started' );
|
222 |
+
|
223 |
start.hide();
|
224 |
stop.show();
|
225 |
+
console.log( fields );
|
226 |
+
spinner.css( 'visibility', 'visible' );
|
227 |
+
fields.prop( 'readonly', true );
|
228 |
|
229 |
bbp_converter_post();
|
230 |
}
|
262 |
|
263 |
start.show();
|
264 |
stop.hide();
|
265 |
+
|
266 |
+
spinner.css( 'visibility', 'hidden' );
|
267 |
+
fields.prop( 'readonly', false );
|
268 |
}
|
269 |
|
270 |
/**
|
includes/admin/assets/js/converter.min.js
CHANGED
@@ -1,3 +1,3 @@
|
|
1 |
/*! This file is automatically generated. */
|
2 |
|
3 |
-
jQuery(document).ready(function(t){"use strict";function e(){
|
1 |
/*! This file is automatically generated. */
|
2 |
|
3 |
+
jQuery(document).ready(function(t){"use strict";function e(){i()}function r(){c(BBP_Converter.strings.button_continue,BBP_Converter.strings.import_stopped_user)}function n(){var e={};return t.each(d.serializeArray(),function(t,r){e[r.name]=r.value}),e._bbp_converter_restart&&g.removeAttr("checked"),e._bbp_converter_delay_time&&(BBP_Converter.state.delay=1e3*parseInt(e._bbp_converter_delay_time,10)),e.action="bbp_converter_process",e._ajax_nonce=BBP_Converter.ajax_nonce,e}function s(){t.post(ajaxurl,n(),function(t){try{var e=t.data;!0===t.success?o(e):c()}catch(t){c()}},"json")}function o(t){BBP_Converter.state.running&&(p(t.progress),B(t.step_percent,t.total_percent),u(t),a(),t.current_step===t.final_step&&c(BBP_Converter.strings.button_start,BBP_Converter.strings.import_complete))}function a(){clearTimeout(BBP_Converter.state.running),BBP_Converter.state.running&&(BBP_Converter.state.running=setTimeout(function(){s()},parseInt(BBP_Converter.state.delay,10)))}function i(){clearTimeout(BBP_Converter.state.running),clearInterval(BBP_Converter.state.status),BBP_Converter.state.running=!0;var t=BBP_Converter.strings.start_continue;!1===BBP_Converter.state.started&&(t=BBP_Converter.strings.start_start,BBP_Converter.state.started=!0),_(BBP_Converter.strings.button_continue,t,BBP_Converter.strings.status_starting),v.addClass("started"),b.hide(),l.show(),console.log(h),P.css("visibility","visible"),h.prop("readonly",!0),s()}function c(t,e){clearTimeout(BBP_Converter.state.running),clearInterval(BBP_Converter.state.status),BBP_Converter.state.running=!1,BBP_Converter.state.status=!1,t||(t=BBP_Converter.strings.button_continue),e||(e=BBP_Converter.strings.status_stopped),_(t,e,BBP_Converter.strings.status_stopped),b.show(),l.hide(),P.css("visibility","hidden"),h.prop("readonly",!1)}function _(t,e,r){b.val(t),p(e),C.text(r)}function u(t){var e=parseInt(BBP_Converter.state.delay,10)/1e3;C.text(BBP_Converter.strings.status_counting.replace("%s",e)),clearInterval(BBP_Converter.state.status),BBP_Converter.state.status=setInterval(function(){e--,C.text(BBP_Converter.strings.status_counting.replace("%s",e)),e<=0&&(clearInterval(BBP_Converter.state.status),parseInt(t.current_step,10)<parseInt(t.final_step,10)?C.text(BBP_Converter.strings.status_up_next.replace("%s",t.current_step)):C.text(BBP_Converter.strings.status_complete))},1e3)}function p(t){t="<p>"+t+"</p>",v.prepend(t)}function B(t,e){m.width(t+"%"),x.width(e+"%")}var v=t("#bbp-converter-message"),l=t("#bbp-converter-stop"),b=t("#bbp-converter-start"),g=t("#_bbp_converter_restart"),C=t("#bbp-converter-status"),P=t("#bbp-converter-spinner"),d=t("#bbp-converter-settings"),f=t("#_bbp_converter_db_pass"),y=t(".bbp-db-pass-toggle"),m=t("#bbp-converter-step-percentage"),x=t("#bbp-converter-total-percentage"),h=d.find("table:first-of-type input, table:first-of-type select");y.on("click",function(t){var e="password"===f.attr("type")?"text":"password";f.attr("type",e),y.toggleClass("password").toggleClass("text"),t.preventDefault()}),b.on("click",function(t){e(),t.preventDefault()}),t(l).on("click",function(t){r(),t.preventDefault()})});
|
includes/admin/classes/class-bbp-admin.php
CHANGED
@@ -75,6 +75,13 @@ class BBP_Admin {
|
|
75 |
*/
|
76 |
public $tools = array();
|
77 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
78 |
/** Functions *************************************************************/
|
79 |
|
80 |
/**
|
@@ -149,17 +156,19 @@ class BBP_Admin {
|
|
149 |
|
150 |
/** General Actions ***************************************************/
|
151 |
|
152 |
-
add_action( 'bbp_admin_init', array( $this, 'setup_notices' ) );
|
153 |
-
add_action( 'bbp_admin_init', array( $this, 'hide_notices' ) );
|
154 |
add_action( 'bbp_admin_menu', array( $this, 'admin_menus' ) ); // Add menu item to settings menu
|
155 |
-
add_action( 'bbp_admin_head', array( $this, 'admin_head' ) ); // Add
|
156 |
-
add_action( 'bbp_admin_notices', array( $this, 'activation_notice' ) ); // Add notice if not using a bbPress theme
|
157 |
add_action( 'bbp_register_admin_style', array( $this, 'register_admin_style' ) ); // Add green admin style
|
158 |
add_action( 'bbp_register_admin_settings', array( $this, 'register_admin_settings' ) ); // Add settings
|
159 |
-
add_action( 'bbp_activation', array( $this, 'new_install' ) ); // Add menu item to settings menu
|
160 |
add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_styles' ) ); // Add enqueued CSS
|
161 |
add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_scripts' ) ); // Add enqueued JS
|
162 |
|
|
|
|
|
|
|
|
|
|
|
|
|
163 |
/** Ajax **************************************************************/
|
164 |
|
165 |
// No _nopriv_ equivalent - users must be logged in
|
@@ -195,6 +204,11 @@ class BBP_Admin {
|
|
195 |
*/
|
196 |
public function setup_notices() {
|
197 |
|
|
|
|
|
|
|
|
|
|
|
198 |
// Database upgrade skipped?
|
199 |
$skipped = get_option( '_bbp_db_upgrade_skipped', 0 );
|
200 |
|
@@ -214,7 +228,7 @@ class BBP_Admin {
|
|
214 |
);
|
215 |
|
216 |
// Add tools feedback
|
217 |
-
|
218 |
}
|
219 |
}
|
220 |
|
@@ -230,6 +244,11 @@ class BBP_Admin {
|
|
230 |
return;
|
231 |
}
|
232 |
|
|
|
|
|
|
|
|
|
|
|
233 |
// Check the admin referer
|
234 |
check_admin_referer( 'bbp-hide-notice' );
|
235 |
|
@@ -243,6 +262,112 @@ class BBP_Admin {
|
|
243 |
}
|
244 |
}
|
245 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
246 |
/**
|
247 |
* Add the admin menus
|
248 |
*
|
@@ -357,21 +482,6 @@ class BBP_Admin {
|
|
357 |
);
|
358 |
}
|
359 |
|
360 |
-
/**
|
361 |
-
* If this is a new installation, create some initial forum content.
|
362 |
-
*
|
363 |
-
* @since 2.1.0 bbPress (r3767)
|
364 |
-
*
|
365 |
-
* @return type
|
366 |
-
*/
|
367 |
-
public static function new_install() {
|
368 |
-
if ( ! bbp_is_install() ) {
|
369 |
-
return;
|
370 |
-
}
|
371 |
-
|
372 |
-
bbp_create_initial_content();
|
373 |
-
}
|
374 |
-
|
375 |
/**
|
376 |
* Register the settings
|
377 |
*
|
@@ -467,13 +577,13 @@ class BBP_Admin {
|
|
467 |
case 'bbp_settings_user_slugs' : // Settings - User slugs
|
468 |
case 'bbp_settings_per_page' : // Settings - Per page
|
469 |
case 'bbp_settings_per_rss_page' : // Settings - Per RSS page
|
470 |
-
$caps = array(
|
471 |
break;
|
472 |
|
473 |
// Extend - BuddyPress
|
474 |
case 'bbp_settings_buddypress' :
|
475 |
if ( ( is_plugin_active( 'buddypress/bp-loader.php' ) && defined( 'BP_VERSION' ) && bp_is_root_blog() ) && is_super_admin() ) {
|
476 |
-
$caps = array(
|
477 |
} else {
|
478 |
$caps = array( 'do_not_allow' );
|
479 |
}
|
@@ -483,7 +593,7 @@ class BBP_Admin {
|
|
483 |
// Extend - Akismet
|
484 |
case 'bbp_settings_akismet' :
|
485 |
if ( ( is_plugin_active( 'akismet/akismet.php' ) && defined( 'AKISMET_VERSION' ) ) && is_super_admin() ) {
|
486 |
-
$caps = array(
|
487 |
} else {
|
488 |
$caps = array( 'do_not_allow' );
|
489 |
}
|
@@ -529,17 +639,6 @@ class BBP_Admin {
|
|
529 |
}
|
530 |
}
|
531 |
|
532 |
-
/**
|
533 |
-
* Admin area activation notice
|
534 |
-
*
|
535 |
-
* Shows a nag message in admin area about the theme not supporting bbPress
|
536 |
-
*
|
537 |
-
* @since 2.0.0 bbPress (r2743)
|
538 |
-
*/
|
539 |
-
public function activation_notice() {
|
540 |
-
// @todo - something fun
|
541 |
-
}
|
542 |
-
|
543 |
/**
|
544 |
* Add Settings link to plugins area
|
545 |
*
|
@@ -1135,8 +1234,8 @@ class BBP_Admin {
|
|
1135 |
wp_die( sprintf( esc_html__( 'Warning! Problem updating %1$s. Your server may not be able to connect to sites running on it. Error message: %2$s', 'bbpress' ), $site_url, '<em>' . $response->get_error_message() . '</em>' ) );
|
1136 |
}
|
1137 |
|
1138 |
-
// Switch to the new
|
1139 |
-
|
1140 |
|
1141 |
$basename = bbpress()->basename;
|
1142 |
|
@@ -1145,8 +1244,8 @@ class BBP_Admin {
|
|
1145 |
bbp_version_updater();
|
1146 |
}
|
1147 |
|
1148 |
-
//
|
1149 |
-
|
1150 |
|
1151 |
// Do some actions to allow plugins to do things too
|
1152 |
do_action( 'after_bbpress_upgrade', $response );
|
75 |
*/
|
76 |
public $tools = array();
|
77 |
|
78 |
+
/** Notices ***************************************************************/
|
79 |
+
|
80 |
+
/**
|
81 |
+
* @var array Array of notices to output to the current user
|
82 |
+
*/
|
83 |
+
public $notices = array();
|
84 |
+
|
85 |
/** Functions *************************************************************/
|
86 |
|
87 |
/**
|
156 |
|
157 |
/** General Actions ***************************************************/
|
158 |
|
|
|
|
|
159 |
add_action( 'bbp_admin_menu', array( $this, 'admin_menus' ) ); // Add menu item to settings menu
|
160 |
+
add_action( 'bbp_admin_head', array( $this, 'admin_head' ) ); // Add general styling to the admin area
|
|
|
161 |
add_action( 'bbp_register_admin_style', array( $this, 'register_admin_style' ) ); // Add green admin style
|
162 |
add_action( 'bbp_register_admin_settings', array( $this, 'register_admin_settings' ) ); // Add settings
|
|
|
163 |
add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_styles' ) ); // Add enqueued CSS
|
164 |
add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_scripts' ) ); // Add enqueued JS
|
165 |
|
166 |
+
/** Notices ***********************************************************/
|
167 |
+
|
168 |
+
add_action( 'bbp_admin_init', array( $this, 'setup_notices' ) );
|
169 |
+
add_action( 'bbp_admin_init', array( $this, 'hide_notices' ) );
|
170 |
+
add_action( 'bbp_admin_notices', array( $this, 'output_notices' ) );
|
171 |
+
|
172 |
/** Ajax **************************************************************/
|
173 |
|
174 |
// No _nopriv_ equivalent - users must be logged in
|
204 |
*/
|
205 |
public function setup_notices() {
|
206 |
|
207 |
+
// Avoid malformed notices variable
|
208 |
+
if ( ! is_array( $this->notices ) ) {
|
209 |
+
$this->notices = array();
|
210 |
+
}
|
211 |
+
|
212 |
// Database upgrade skipped?
|
213 |
$skipped = get_option( '_bbp_db_upgrade_skipped', 0 );
|
214 |
|
228 |
);
|
229 |
|
230 |
// Add tools feedback
|
231 |
+
$this->add_notice( $message, 'notice-bbpress', false );
|
232 |
}
|
233 |
}
|
234 |
|
244 |
return;
|
245 |
}
|
246 |
|
247 |
+
// Bail if user cannot visit upgrade page (cannot clear notice either!)
|
248 |
+
if ( ! current_user_can( 'bbp_tools_upgrade_page' ) ) {
|
249 |
+
return;
|
250 |
+
}
|
251 |
+
|
252 |
// Check the admin referer
|
253 |
check_admin_referer( 'bbp-hide-notice' );
|
254 |
|
262 |
}
|
263 |
}
|
264 |
|
265 |
+
/**
|
266 |
+
* Output all admin area notices
|
267 |
+
*
|
268 |
+
* @since 2.6.0 bbPress (r6771)
|
269 |
+
*/
|
270 |
+
public function output_notices() {
|
271 |
+
|
272 |
+
// Bail if no notices
|
273 |
+
if ( empty( $this->notices ) || ! is_array( $this->notices ) ) {
|
274 |
+
return;
|
275 |
+
}
|
276 |
+
|
277 |
+
// Start an output buffer
|
278 |
+
ob_start();
|
279 |
+
|
280 |
+
// Loop through notices, and add them to buffer
|
281 |
+
foreach ( $this->notices as $notice ) {
|
282 |
+
echo $notice;
|
283 |
+
}
|
284 |
+
|
285 |
+
// Output the current buffer
|
286 |
+
echo ob_get_clean();
|
287 |
+
}
|
288 |
+
|
289 |
+
/**
|
290 |
+
* Add a notice to the notices array
|
291 |
+
*
|
292 |
+
* @since 2.6.0 bbPress (r6771)
|
293 |
+
*
|
294 |
+
* @param string|WP_Error $message A message to be displayed or {@link WP_Error}
|
295 |
+
* @param string $class Optional. A class to be added to the message div
|
296 |
+
* @param bool $is_dismissible Optional. True to dismiss, false to persist
|
297 |
+
*
|
298 |
+
* @return void
|
299 |
+
*/
|
300 |
+
public function add_notice( $message, $class = false, $is_dismissible = true ) {
|
301 |
+
|
302 |
+
// One message as string
|
303 |
+
if ( is_string( $message ) ) {
|
304 |
+
$message = '<p>' . $this->esc_notice( $message ) . '</p>';
|
305 |
+
$default_class ='updated';
|
306 |
+
|
307 |
+
// Messages as objects
|
308 |
+
} elseif ( is_wp_error( $message ) ) {
|
309 |
+
$errors = $message->get_error_messages();
|
310 |
+
|
311 |
+
switch ( count( $errors ) ) {
|
312 |
+
case 0:
|
313 |
+
return false;
|
314 |
+
|
315 |
+
case 1:
|
316 |
+
$message = '<p>' . $this->esc_notice( $errors[0] ) . '</p>';
|
317 |
+
break;
|
318 |
+
|
319 |
+
default:
|
320 |
+
$escaped = array_map( array( $this, 'esc_notice' ), $errors );
|
321 |
+
$message = '<ul>' . "\n\t" . '<li>' . implode( '</li>' . "\n\t" . '<li>', $escaped ) . '</li>' . "\n" . '</ul>';
|
322 |
+
break;
|
323 |
+
}
|
324 |
+
|
325 |
+
$default_class = 'is-error';
|
326 |
+
|
327 |
+
// Message is an unknown format, so bail
|
328 |
+
} else {
|
329 |
+
return false;
|
330 |
+
}
|
331 |
+
|
332 |
+
// CSS Classes
|
333 |
+
$classes = ! empty( $class )
|
334 |
+
? array( $class )
|
335 |
+
: array( $default_class );
|
336 |
+
|
337 |
+
// Add dismissible class
|
338 |
+
if ( ! empty( $is_dismissible ) ) {
|
339 |
+
array_push( $classes, 'is-dismissible' );
|
340 |
+
}
|
341 |
+
|
342 |
+
// Assemble the message
|
343 |
+
$message = '<div id="message" class="notice ' . implode( ' ', array_map( 'sanitize_html_class', $classes ) ) . '">' . $message . '</div>';
|
344 |
+
$message = str_replace( "'", "\'", $message );
|
345 |
+
|
346 |
+
// Avoid malformed notices variable
|
347 |
+
if ( ! is_array( $this->notices ) ) {
|
348 |
+
$this->notices = array();
|
349 |
+
}
|
350 |
+
|
351 |
+
// Add notice to notices array
|
352 |
+
$this->notices[] = $message;
|
353 |
+
}
|
354 |
+
|
355 |
+
/**
|
356 |
+
* Escape message string output
|
357 |
+
*
|
358 |
+
* @since 2.6.0 bbPress (r6775)
|
359 |
+
*
|
360 |
+
* @param string $message
|
361 |
+
*
|
362 |
+
* @return string
|
363 |
+
*/
|
364 |
+
private function esc_notice( $message = '' ) {
|
365 |
+
$tags = wp_kses_allowed_html();
|
366 |
+
$text = wp_kses( $message, $tags );
|
367 |
+
|
368 |
+
return $text;
|
369 |
+
}
|
370 |
+
|
371 |
/**
|
372 |
* Add the admin menus
|
373 |
*
|
482 |
);
|
483 |
}
|
484 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
485 |
/**
|
486 |
* Register the settings
|
487 |
*
|
577 |
case 'bbp_settings_user_slugs' : // Settings - User slugs
|
578 |
case 'bbp_settings_per_page' : // Settings - Per page
|
579 |
case 'bbp_settings_per_rss_page' : // Settings - Per RSS page
|
580 |
+
$caps = array( bbp_admin()->minimum_capability );
|
581 |
break;
|
582 |
|
583 |
// Extend - BuddyPress
|
584 |
case 'bbp_settings_buddypress' :
|
585 |
if ( ( is_plugin_active( 'buddypress/bp-loader.php' ) && defined( 'BP_VERSION' ) && bp_is_root_blog() ) && is_super_admin() ) {
|
586 |
+
$caps = array( bbp_admin()->minimum_capability );
|
587 |
} else {
|
588 |
$caps = array( 'do_not_allow' );
|
589 |
}
|
593 |
// Extend - Akismet
|
594 |
case 'bbp_settings_akismet' :
|
595 |
if ( ( is_plugin_active( 'akismet/akismet.php' ) && defined( 'AKISMET_VERSION' ) ) && is_super_admin() ) {
|
596 |
+
$caps = array( bbp_admin()->minimum_capability );
|
597 |
} else {
|
598 |
$caps = array( 'do_not_allow' );
|
599 |
}
|
639 |
}
|
640 |
}
|
641 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
642 |
/**
|
643 |
* Add Settings link to plugins area
|
644 |
*
|
1234 |
wp_die( sprintf( esc_html__( 'Warning! Problem updating %1$s. Your server may not be able to connect to sites running on it. Error message: %2$s', 'bbpress' ), $site_url, '<em>' . $response->get_error_message() . '</em>' ) );
|
1235 |
}
|
1236 |
|
1237 |
+
// Switch to the new site
|
1238 |
+
bbp_switch_to_site( $details[ 'blog_id' ] );
|
1239 |
|
1240 |
$basename = bbpress()->basename;
|
1241 |
|
1244 |
bbp_version_updater();
|
1245 |
}
|
1246 |
|
1247 |
+
// Restore original site
|
1248 |
+
bbp_restore_current_site();
|
1249 |
|
1250 |
// Do some actions to allow plugins to do things too
|
1251 |
do_action( 'after_bbpress_upgrade', $response );
|
includes/admin/classes/class-bbp-converter-base.php
CHANGED
@@ -43,27 +43,27 @@ abstract class BBP_Converter_Base {
|
|
43 |
/**
|
44 |
* @var array() Map of topic to forum. It is for optimization.
|
45 |
*/
|
46 |
-
|
47 |
|
48 |
/**
|
49 |
* @var array() Map of from old forum ids to new forum ids. It is for optimization.
|
50 |
*/
|
51 |
-
|
52 |
|
53 |
/**
|
54 |
* @var array() Map of from old topic ids to new topic ids. It is for optimization.
|
55 |
*/
|
56 |
-
|
57 |
|
58 |
/**
|
59 |
* @var array() Map of from old reply_to ids to new reply_to ids. It is for optimization.
|
60 |
*/
|
61 |
-
|
62 |
|
63 |
/**
|
64 |
* @var array() Map of from old user ids to new user ids. It is for optimization.
|
65 |
*/
|
66 |
-
|
67 |
|
68 |
/**
|
69 |
* @var str This is the charset for your wp database.
|
@@ -138,7 +138,7 @@ abstract class BBP_Converter_Base {
|
|
138 |
|
139 |
// Maybe add port to server
|
140 |
if ( ! empty( $db_port ) && ! empty( $db_host ) && ! strstr( $db_host, ':' ) ) {
|
141 |
-
$db_host = $db_host
|
142 |
}
|
143 |
|
144 |
/** Get database connections ******************************************/
|
@@ -146,11 +146,8 @@ abstract class BBP_Converter_Base {
|
|
146 |
// Setup WordPress Database
|
147 |
$this->wpdb = bbp_db();
|
148 |
|
149 |
-
// Control WPDB db_connect() bailing
|
150 |
-
define( 'WP_SETUP_CONFIG', true );
|
151 |
-
|
152 |
// Setup old forum Database
|
153 |
-
$this->opdb = new
|
154 |
|
155 |
// Connection failed
|
156 |
if ( ! $this->opdb->db_connect( false ) ) {
|
@@ -498,29 +495,34 @@ abstract class BBP_Converter_Base {
|
|
498 |
|
499 |
/** New user **************************************/
|
500 |
|
501 |
-
case 'user':
|
502 |
if ( username_exists( $insert_post['user_login'] ) ) {
|
503 |
-
$insert_post['user_login'] =
|
504 |
}
|
505 |
|
506 |
if ( email_exists( $insert_post['user_email'] ) ) {
|
507 |
-
$insert_post['user_email'] =
|
508 |
}
|
509 |
|
510 |
if ( empty( $insert_post['user_pass'] ) ) {
|
511 |
$insert_post['user_pass'] = '';
|
512 |
}
|
513 |
|
|
|
|
|
514 |
$post_id = wp_insert_user( $insert_post );
|
515 |
|
516 |
if ( is_numeric( $post_id ) ) {
|
517 |
-
|
518 |
foreach ( $insert_postmeta as $key => $value ) {
|
519 |
-
|
520 |
add_user_meta( $post_id, $key, $value, true );
|
521 |
|
522 |
if ( '_id' == substr( $key, -3 ) && ( true === $this->sync_table ) ) {
|
523 |
-
$this->wpdb->insert( $this->sync_table_name, array(
|
|
|
|
|
|
|
|
|
|
|
524 |
}
|
525 |
}
|
526 |
}
|
@@ -528,7 +530,7 @@ abstract class BBP_Converter_Base {
|
|
528 |
|
529 |
/** New Topic-Tag *********************************/
|
530 |
|
531 |
-
case 'tags':
|
532 |
$post_id = wp_set_object_terms( $insert_postmeta['objectid'], $insert_postmeta['name'], 'topic-tag', true );
|
533 |
$term = get_term_by( 'name', $insert_postmeta['name'], 'topic-tag');
|
534 |
if ( false !== $term ) {
|
@@ -541,7 +543,7 @@ abstract class BBP_Converter_Base {
|
|
541 |
|
542 |
/** Forum Subscriptions ***************************/
|
543 |
|
544 |
-
case 'forum_subscriptions':
|
545 |
$user_id = $insert_post['user_id'];
|
546 |
$items = wp_list_pluck( $insert_postmeta, '_bbp_forum_subscriptions' );
|
547 |
if ( is_numeric( $user_id ) && ! empty( $items ) ) {
|
@@ -562,7 +564,7 @@ abstract class BBP_Converter_Base {
|
|
562 |
|
563 |
/** Subscriptions *********************************/
|
564 |
|
565 |
-
case 'topic_subscriptions':
|
566 |
$user_id = $insert_post['user_id'];
|
567 |
$items = wp_list_pluck( $insert_postmeta, '_bbp_subscriptions' );
|
568 |
if ( is_numeric( $user_id ) && ! empty( $items ) ) {
|
@@ -583,7 +585,7 @@ abstract class BBP_Converter_Base {
|
|
583 |
|
584 |
/** Favorites *************************************/
|
585 |
|
586 |
-
case 'favorites':
|
587 |
$user_id = $insert_post['user_id'];
|
588 |
$items = wp_list_pluck( $insert_postmeta, '_bbp_favorites' );
|
589 |
if ( is_numeric( $user_id ) && ! empty( $items ) ) {
|
@@ -604,13 +606,11 @@ abstract class BBP_Converter_Base {
|
|
604 |
|
605 |
/** Forum, Topic, Reply ***************************/
|
606 |
|
607 |
-
default:
|
608 |
$post_id = wp_insert_post( $insert_post, true );
|
609 |
|
610 |
if ( is_numeric( $post_id ) ) {
|
611 |
-
|
612 |
foreach ( $insert_postmeta as $key => $value ) {
|
613 |
-
|
614 |
add_post_meta( $post_id, $key, $value, true );
|
615 |
|
616 |
/**
|
@@ -631,7 +631,12 @@ abstract class BBP_Converter_Base {
|
|
631 |
* _bbp_old_reply_to_id // The old reply to ID
|
632 |
*/
|
633 |
if ( '_id' === substr( $key, -3 ) && ( true === $this->sync_table ) ) {
|
634 |
-
$this->wpdb->insert( $this->sync_table_name, array(
|
|
|
|
|
|
|
|
|
|
|
635 |
}
|
636 |
|
637 |
/**
|
@@ -662,7 +667,7 @@ abstract class BBP_Converter_Base {
|
|
662 |
public function convert_forum_parents( $start = 1 ) {
|
663 |
$has_update = false;
|
664 |
$query = ! empty( $this->sync_table )
|
665 |
-
? $this->wpdb->prepare( "SELECT value_id, meta_value FROM {$this->sync_table_name} WHERE meta_key = %s AND meta_value > 0 LIMIT {$start}, {$this->max_rows}",
|
666 |
: $this->wpdb->prepare( "SELECT post_id AS value_id, meta_value FROM {$this->wpdb->postmeta} WHERE meta_key = %s AND meta_value > 0 LIMIT {$start}, {$this->max_rows}", '_bbp_old_forum_parent_id' );
|
667 |
|
668 |
foreach ( $this->count_rows_by_results( $query ) as $row ) {
|
@@ -682,7 +687,7 @@ abstract class BBP_Converter_Base {
|
|
682 |
public function convert_topic_stickies( $start = 1 ) {
|
683 |
$has_update = false;
|
684 |
$query = ! empty( $this->sync_table )
|
685 |
-
? $this->wpdb->prepare( "SELECT value_id, meta_value FROM {$this->sync_table_name} WHERE meta_key = %s AND meta_value = %s LIMIT {$start}, {$this->max_rows}",
|
686 |
: $this->wpdb->prepare( "SELECT post_id AS value_id, meta_value FROM {$this->wpdb->postmeta} WHERE meta_key = %s AND meta_value = %s LIMIT {$start}, {$this->max_rows}", '_bbp_old_sticky_status_id', 'sticky' );
|
687 |
|
688 |
foreach ( $this->count_rows_by_results( $query ) as $row ) {
|
@@ -701,7 +706,7 @@ abstract class BBP_Converter_Base {
|
|
701 |
public function convert_topic_super_stickies( $start = 1 ) {
|
702 |
$has_update = false;
|
703 |
$query = ! empty( $this->sync_table )
|
704 |
-
? $this->wpdb->prepare( "SELECT value_id, meta_value FROM {$this->sync_table_name} WHERE meta_key = %s AND meta_value = %s LIMIT {$start}, {$this->max_rows}",
|
705 |
: $this->wpdb->prepare( "SELECT post_id AS value_id, meta_value FROM {$this->wpdb->postmeta} WHERE meta_key = %s AND meta_value = %s LIMIT {$start}, {$this->max_rows}", '_bbp_old_sticky_status_id', 'super-sticky' );
|
706 |
|
707 |
foreach ( $this->count_rows_by_results( $query ) as $row ) {
|
@@ -721,7 +726,7 @@ abstract class BBP_Converter_Base {
|
|
721 |
public function convert_topic_closed_topics( $start = 1 ) {
|
722 |
$has_update = false;
|
723 |
$query = ! empty( $this->sync_table )
|
724 |
-
? $this->wpdb->prepare( "SELECT value_id, meta_value FROM {$this->sync_table_name} WHERE meta_key = %s AND meta_value = %s LIMIT {$start}, {$this->max_rows}",
|
725 |
: $this->wpdb->prepare( "SELECT post_id AS value_id, meta_value FROM {$this->wpdb->postmeta} WHERE meta_key = %s AND meta_value = %s LIMIT {$start}, {$this->max_rows}", '_bbp_old_closed_status_id', 'closed' );
|
726 |
|
727 |
foreach ( $this->count_rows_by_results( $query ) as $row ) {
|
@@ -740,7 +745,7 @@ abstract class BBP_Converter_Base {
|
|
740 |
public function convert_reply_to_parents( $start = 1 ) {
|
741 |
$has_update = false;
|
742 |
$query = ! empty( $this->sync_table )
|
743 |
-
? $this->wpdb->prepare( "SELECT value_id, meta_value FROM {$this->sync_table_name} WHERE meta_key = %s AND meta_value > 0 LIMIT {$start}, {$this->max_rows}",
|
744 |
: $this->wpdb->prepare( "SELECT post_id AS value_id, meta_value FROM {$this->wpdb->postmeta} WHERE meta_key = %s AND meta_value > 0 LIMIT {$start}, {$this->max_rows}", '_bbp_old_reply_to_id' );
|
745 |
|
746 |
foreach ( $this->count_rows_by_results( $query ) as $row ) {
|
@@ -763,20 +768,20 @@ abstract class BBP_Converter_Base {
|
|
763 |
|
764 |
if ( ! empty( $this->sync_table ) ) {
|
765 |
$query = $this->wpdb->prepare( "SELECT sync_table1.value_id AS topic_id, sync_table1.meta_value AS topic_is_anonymous, sync_table2.meta_value AS topic_author
|
766 |
-
|
767 |
-
|
768 |
-
|
769 |
-
|
770 |
-
|
771 |
-
|
772 |
} else {
|
773 |
$query = $this->wpdb->prepare( "SELECT wp_postmeta1.post_id AS topic_id, wp_postmeta1.meta_value AS topic_is_anonymous, wp_postmeta2.meta_value AS topic_author
|
774 |
-
|
775 |
-
|
776 |
-
|
777 |
-
|
778 |
-
|
779 |
-
|
780 |
}
|
781 |
|
782 |
foreach ( $this->count_rows_by_results( $query ) as $row ) {
|
@@ -802,20 +807,20 @@ abstract class BBP_Converter_Base {
|
|
802 |
|
803 |
if ( ! empty( $this->sync_table ) ) {
|
804 |
$query = $this->wpdb->prepare( "SELECT sync_table1.value_id AS reply_id, sync_table1.meta_value AS reply_is_anonymous, sync_table2.meta_value AS reply_author
|
805 |
-
|
806 |
-
|
807 |
-
|
808 |
-
|
809 |
-
|
810 |
-
|
811 |
} else {
|
812 |
$query = $this->wpdb->prepare( "SELECT wp_postmeta1.post_id AS reply_id, wp_postmeta1.meta_value AS reply_is_anonymous, wp_postmeta2.meta_value AS reply_author
|
813 |
-
|
814 |
-
|
815 |
-
|
816 |
-
|
817 |
-
|
818 |
-
|
819 |
}
|
820 |
|
821 |
foreach ( $this->count_rows_by_results( $query ) as $row ) {
|
@@ -832,17 +837,20 @@ abstract class BBP_Converter_Base {
|
|
832 |
|
833 |
/**
|
834 |
* This method deletes data from the wp database.
|
|
|
|
|
835 |
*/
|
836 |
-
public function clean(
|
837 |
|
838 |
// Defaults
|
839 |
$has_delete = false;
|
840 |
|
841 |
/** Delete topics/forums/posts ****************************************/
|
842 |
|
843 |
-
$
|
844 |
-
|
845 |
-
|
|
|
846 |
|
847 |
$posts = $this->get_results( $query, ARRAY_A );
|
848 |
|
@@ -924,22 +932,31 @@ abstract class BBP_Converter_Base {
|
|
924 |
*
|
925 |
* @param string The table name to grab fields from
|
926 |
*/
|
927 |
-
private function get_fields( $tablename ) {
|
928 |
-
$
|
929 |
-
$field_array = $this->get_results(
|
930 |
|
|
|
|
|
|
|
|
|
|
|
|
|
931 |
foreach ( $field_array as $field ) {
|
932 |
-
|
|
|
|
|
933 |
}
|
934 |
|
|
|
935 |
if ( $tablename === $this->wpdb->users ) {
|
936 |
-
$
|
937 |
-
$
|
938 |
-
$
|
939 |
-
$
|
940 |
}
|
941 |
|
942 |
-
return $
|
943 |
}
|
944 |
|
945 |
/** Database Wrappers *****************************************************/
|
@@ -1181,7 +1198,7 @@ abstract class BBP_Converter_Base {
|
|
1181 |
}
|
1182 |
|
1183 |
protected function callback_html( $field ) {
|
1184 |
-
require_once
|
1185 |
|
1186 |
// Setup the BBCode parser
|
1187 |
$bbcode = BBCode::getInstance();
|
43 |
/**
|
44 |
* @var array() Map of topic to forum. It is for optimization.
|
45 |
*/
|
46 |
+
protected $map_topicid_to_forumid = array();
|
47 |
|
48 |
/**
|
49 |
* @var array() Map of from old forum ids to new forum ids. It is for optimization.
|
50 |
*/
|
51 |
+
protected $map_forumid = array();
|
52 |
|
53 |
/**
|
54 |
* @var array() Map of from old topic ids to new topic ids. It is for optimization.
|
55 |
*/
|
56 |
+
protected $map_topicid = array();
|
57 |
|
58 |
/**
|
59 |
* @var array() Map of from old reply_to ids to new reply_to ids. It is for optimization.
|
60 |
*/
|
61 |
+
protected $map_reply_to = array();
|
62 |
|
63 |
/**
|
64 |
* @var array() Map of from old user ids to new user ids. It is for optimization.
|
65 |
*/
|
66 |
+
protected $map_userid = array();
|
67 |
|
68 |
/**
|
69 |
* @var str This is the charset for your wp database.
|
138 |
|
139 |
// Maybe add port to server
|
140 |
if ( ! empty( $db_port ) && ! empty( $db_host ) && ! strstr( $db_host, ':' ) ) {
|
141 |
+
$db_host = "{$db_host}:{$db_port}";
|
142 |
}
|
143 |
|
144 |
/** Get database connections ******************************************/
|
146 |
// Setup WordPress Database
|
147 |
$this->wpdb = bbp_db();
|
148 |
|
|
|
|
|
|
|
149 |
// Setup old forum Database
|
150 |
+
$this->opdb = new BBP_Converter_DB( $db_user, $db_pass, $db_name, $db_host );
|
151 |
|
152 |
// Connection failed
|
153 |
if ( ! $this->opdb->db_connect( false ) ) {
|
495 |
|
496 |
/** New user **************************************/
|
497 |
|
498 |
+
case 'user' :
|
499 |
if ( username_exists( $insert_post['user_login'] ) ) {
|
500 |
+
$insert_post['user_login'] = "imported_{$insert_post['user_login']}";
|
501 |
}
|
502 |
|
503 |
if ( email_exists( $insert_post['user_email'] ) ) {
|
504 |
+
$insert_post['user_email'] = "imported_{$insert_post['user_email']}";
|
505 |
}
|
506 |
|
507 |
if ( empty( $insert_post['user_pass'] ) ) {
|
508 |
$insert_post['user_pass'] = '';
|
509 |
}
|
510 |
|
511 |
+
// Internally re-calls _exists() checks above.
|
512 |
+
// Also checks for existing nicename.
|
513 |
$post_id = wp_insert_user( $insert_post );
|
514 |
|
515 |
if ( is_numeric( $post_id ) ) {
|
|
|
516 |
foreach ( $insert_postmeta as $key => $value ) {
|
|
|
517 |
add_user_meta( $post_id, $key, $value, true );
|
518 |
|
519 |
if ( '_id' == substr( $key, -3 ) && ( true === $this->sync_table ) ) {
|
520 |
+
$this->wpdb->insert( $this->sync_table_name, array(
|
521 |
+
'value_type' => 'user',
|
522 |
+
'value_id' => $post_id,
|
523 |
+
'meta_key' => $key,
|
524 |
+
'meta_value' => $value
|
525 |
+
) );
|
526 |
}
|
527 |
}
|
528 |
}
|
530 |
|
531 |
/** New Topic-Tag *********************************/
|
532 |
|
533 |
+
case 'tags' :
|
534 |
$post_id = wp_set_object_terms( $insert_postmeta['objectid'], $insert_postmeta['name'], 'topic-tag', true );
|
535 |
$term = get_term_by( 'name', $insert_postmeta['name'], 'topic-tag');
|
536 |
if ( false !== $term ) {
|
543 |
|
544 |
/** Forum Subscriptions ***************************/
|
545 |
|
546 |
+
case 'forum_subscriptions' :
|
547 |
$user_id = $insert_post['user_id'];
|
548 |
$items = wp_list_pluck( $insert_postmeta, '_bbp_forum_subscriptions' );
|
549 |
if ( is_numeric( $user_id ) && ! empty( $items ) ) {
|
564 |
|
565 |
/** Subscriptions *********************************/
|
566 |
|
567 |
+
case 'topic_subscriptions' :
|
568 |
$user_id = $insert_post['user_id'];
|
569 |
$items = wp_list_pluck( $insert_postmeta, '_bbp_subscriptions' );
|
570 |
if ( is_numeric( $user_id ) && ! empty( $items ) ) {
|
585 |
|
586 |
/** Favorites *************************************/
|
587 |
|
588 |
+
case 'favorites' :
|
589 |
$user_id = $insert_post['user_id'];
|
590 |
$items = wp_list_pluck( $insert_postmeta, '_bbp_favorites' );
|
591 |
if ( is_numeric( $user_id ) && ! empty( $items ) ) {
|
606 |
|
607 |
/** Forum, Topic, Reply ***************************/
|
608 |
|
609 |
+
default :
|
610 |
$post_id = wp_insert_post( $insert_post, true );
|
611 |
|
612 |
if ( is_numeric( $post_id ) ) {
|
|
|
613 |
foreach ( $insert_postmeta as $key => $value ) {
|
|
|
614 |
add_post_meta( $post_id, $key, $value, true );
|
615 |
|
616 |
/**
|
631 |
* _bbp_old_reply_to_id // The old reply to ID
|
632 |
*/
|
633 |
if ( '_id' === substr( $key, -3 ) && ( true === $this->sync_table ) ) {
|
634 |
+
$this->wpdb->insert( $this->sync_table_name, array(
|
635 |
+
'value_type' => 'post',
|
636 |
+
'value_id' => $post_id,
|
637 |
+
'meta_key' => $key,
|
638 |
+
'meta_value' => $value
|
639 |
+
) );
|
640 |
}
|
641 |
|
642 |
/**
|
667 |
public function convert_forum_parents( $start = 1 ) {
|
668 |
$has_update = false;
|
669 |
$query = ! empty( $this->sync_table )
|
670 |
+
? $this->wpdb->prepare( "SELECT value_id, meta_value FROM {$this->sync_table_name} WHERE meta_key = %s AND meta_value > 0 LIMIT {$start}, {$this->max_rows}", '_bbp_old_forum_parent_id' )
|
671 |
: $this->wpdb->prepare( "SELECT post_id AS value_id, meta_value FROM {$this->wpdb->postmeta} WHERE meta_key = %s AND meta_value > 0 LIMIT {$start}, {$this->max_rows}", '_bbp_old_forum_parent_id' );
|
672 |
|
673 |
foreach ( $this->count_rows_by_results( $query ) as $row ) {
|
687 |
public function convert_topic_stickies( $start = 1 ) {
|
688 |
$has_update = false;
|
689 |
$query = ! empty( $this->sync_table )
|
690 |
+
? $this->wpdb->prepare( "SELECT value_id, meta_value FROM {$this->sync_table_name} WHERE meta_key = %s AND meta_value = %s LIMIT {$start}, {$this->max_rows}", '_bbp_old_sticky_status_id', 'sticky' )
|
691 |
: $this->wpdb->prepare( "SELECT post_id AS value_id, meta_value FROM {$this->wpdb->postmeta} WHERE meta_key = %s AND meta_value = %s LIMIT {$start}, {$this->max_rows}", '_bbp_old_sticky_status_id', 'sticky' );
|
692 |
|
693 |
foreach ( $this->count_rows_by_results( $query ) as $row ) {
|
706 |
public function convert_topic_super_stickies( $start = 1 ) {
|
707 |
$has_update = false;
|
708 |
$query = ! empty( $this->sync_table )
|
709 |
+
? $this->wpdb->prepare( "SELECT value_id, meta_value FROM {$this->sync_table_name} WHERE meta_key = %s AND meta_value = %s LIMIT {$start}, {$this->max_rows}", '_bbp_old_sticky_status_id', 'super-sticky' )
|
710 |
: $this->wpdb->prepare( "SELECT post_id AS value_id, meta_value FROM {$this->wpdb->postmeta} WHERE meta_key = %s AND meta_value = %s LIMIT {$start}, {$this->max_rows}", '_bbp_old_sticky_status_id', 'super-sticky' );
|
711 |
|
712 |
foreach ( $this->count_rows_by_results( $query ) as $row ) {
|
726 |
public function convert_topic_closed_topics( $start = 1 ) {
|
727 |
$has_update = false;
|
728 |
$query = ! empty( $this->sync_table )
|
729 |
+
? $this->wpdb->prepare( "SELECT value_id, meta_value FROM {$this->sync_table_name} WHERE meta_key = %s AND meta_value = %s LIMIT {$start}, {$this->max_rows}", '_bbp_old_closed_status_id', 'closed' )
|
730 |
: $this->wpdb->prepare( "SELECT post_id AS value_id, meta_value FROM {$this->wpdb->postmeta} WHERE meta_key = %s AND meta_value = %s LIMIT {$start}, {$this->max_rows}", '_bbp_old_closed_status_id', 'closed' );
|
731 |
|
732 |
foreach ( $this->count_rows_by_results( $query ) as $row ) {
|
745 |
public function convert_reply_to_parents( $start = 1 ) {
|
746 |
$has_update = false;
|
747 |
$query = ! empty( $this->sync_table )
|
748 |
+
? $this->wpdb->prepare( "SELECT value_id, meta_value FROM {$this->sync_table_name} WHERE meta_key = %s AND meta_value > 0 LIMIT {$start}, {$this->max_rows}", '_bbp_old_reply_to_id' )
|
749 |
: $this->wpdb->prepare( "SELECT post_id AS value_id, meta_value FROM {$this->wpdb->postmeta} WHERE meta_key = %s AND meta_value > 0 LIMIT {$start}, {$this->max_rows}", '_bbp_old_reply_to_id' );
|
750 |
|
751 |
foreach ( $this->count_rows_by_results( $query ) as $row ) {
|
768 |
|
769 |
if ( ! empty( $this->sync_table ) ) {
|
770 |
$query = $this->wpdb->prepare( "SELECT sync_table1.value_id AS topic_id, sync_table1.meta_value AS topic_is_anonymous, sync_table2.meta_value AS topic_author
|
771 |
+
FROM {$this->sync_table_name} AS sync_table1
|
772 |
+
INNER JOIN {$this->sync_table_name} AS sync_table2
|
773 |
+
ON ( sync_table1.value_id = sync_table2.value_id )
|
774 |
+
WHERE sync_table1.meta_value = %s
|
775 |
+
AND sync_table2.meta_key = %s
|
776 |
+
LIMIT {$start}, {$this->max_rows}", 'true', '_bbp_old_topic_author_name_id' );
|
777 |
} else {
|
778 |
$query = $this->wpdb->prepare( "SELECT wp_postmeta1.post_id AS topic_id, wp_postmeta1.meta_value AS topic_is_anonymous, wp_postmeta2.meta_value AS topic_author
|
779 |
+
FROM {$this->wpdb->postmeta} AS wp_postmeta1
|
780 |
+
INNER JOIN {$this->wpdb->postmeta} AS wp_postmeta2
|
781 |
+
ON ( wp_postmeta1.post_id = wp_postmeta2.post_id )
|
782 |
+
WHERE wp_postmeta1.meta_value = %s
|
783 |
+
AND wp_postmeta2.meta_key = %s
|
784 |
+
LIMIT {$start}, {$this->max_rows}", 'true', '_bbp_old_topic_author_name_id' );
|
785 |
}
|
786 |
|
787 |
foreach ( $this->count_rows_by_results( $query ) as $row ) {
|
807 |
|
808 |
if ( ! empty( $this->sync_table ) ) {
|
809 |
$query = $this->wpdb->prepare( "SELECT sync_table1.value_id AS reply_id, sync_table1.meta_value AS reply_is_anonymous, sync_table2.meta_value AS reply_author
|
810 |
+
FROM {$this->sync_table_name} AS sync_table1
|
811 |
+
INNER JOIN {$this->sync_table_name} AS sync_table2
|
812 |
+
ON ( sync_table1.value_id = sync_table2.value_id )
|
813 |
+
WHERE sync_table1.meta_value = %s
|
814 |
+
AND sync_table2.meta_key = %s
|
815 |
+
LIMIT {$start}, {$this->max_rows}", 'true', '_bbp_old_reply_author_name_id' );
|
816 |
} else {
|
817 |
$query = $this->wpdb->prepare( "SELECT wp_postmeta1.post_id AS reply_id, wp_postmeta1.meta_value AS reply_is_anonymous, wp_postmeta2.meta_value AS reply_author
|
818 |
+
FROM {$this->wpdb->postmeta} AS wp_postmeta1
|
819 |
+
INNER JOIN {$this->wpdb->postmeta} AS wp_postmeta2
|
820 |
+
ON ( wp_postmeta1.post_id = wp_postmeta2.post_id )
|
821 |
+
WHERE wp_postmeta1.meta_value = %s
|
822 |
+
AND wp_postmeta2.meta_key = %s
|
823 |
+
LIMIT {$start}, {$this->max_rows}", 'true', '_bbp_old_reply_author_name_id' );
|
824 |
}
|
825 |
|
826 |
foreach ( $this->count_rows_by_results( $query ) as $row ) {
|
837 |
|
838 |
/**
|
839 |
* This method deletes data from the wp database.
|
840 |
+
*
|
841 |
+
* @since 2.6.0 bbPress (r6456)
|
842 |
*/
|
843 |
+
public function clean() {
|
844 |
|
845 |
// Defaults
|
846 |
$has_delete = false;
|
847 |
|
848 |
/** Delete topics/forums/posts ****************************************/
|
849 |
|
850 |
+
$esc_like = $this->wpdb->esc_like( '_bbp_' ) . '%';
|
851 |
+
$query = ! empty( $this->sync_table )
|
852 |
+
? $this->wpdb->prepare( "SELECT value_id FROM {$this->sync_table_name} INNER JOIN {$this->wpdb->posts} ON(value_id = ID) WHERE meta_key LIKE %s AND value_type = %s GROUP BY value_id ORDER BY value_id DESC LIMIT {$this->max_rows}", $esc_like, 'post' )
|
853 |
+
: $this->wpdb->prepare( "SELECT post_id AS value_id FROM {$this->wpdb->postmeta} WHERE meta_key LIKE %s GROUP BY post_id ORDER BY post_id DESC LIMIT {$this->max_rows}", $esc_like );
|
854 |
|
855 |
$posts = $this->get_results( $query, ARRAY_A );
|
856 |
|
932 |
*
|
933 |
* @param string The table name to grab fields from
|
934 |
*/
|
935 |
+
private function get_fields( $tablename = '' ) {
|
936 |
+
$retval = array();
|
937 |
+
$field_array = $this->get_results( "DESCRIBE {$tablename}", ARRAY_A );
|
938 |
|
939 |
+
// Bail if no fields
|
940 |
+
if ( empty( $field_array ) ) {
|
941 |
+
return $retval;
|
942 |
+
}
|
943 |
+
|
944 |
+
// Add fields to array
|
945 |
foreach ( $field_array as $field ) {
|
946 |
+
if ( ! empty( $field['Field'] ) ) {
|
947 |
+
$retval[] = $field['Field'];
|
948 |
+
}
|
949 |
}
|
950 |
|
951 |
+
// Add social fields for users table
|
952 |
if ( $tablename === $this->wpdb->users ) {
|
953 |
+
$retval[] = 'role';
|
954 |
+
$retval[] = 'yim';
|
955 |
+
$retval[] = 'aim';
|
956 |
+
$retval[] = 'jabber';
|
957 |
}
|
958 |
|
959 |
+
return $retval;
|
960 |
}
|
961 |
|
962 |
/** Database Wrappers *****************************************************/
|
1198 |
}
|
1199 |
|
1200 |
protected function callback_html( $field ) {
|
1201 |
+
require_once bbp_admin()->admin_dir . 'parser.php';
|
1202 |
|
1203 |
// Setup the BBCode parser
|
1204 |
$bbcode = BBCode::getInstance();
|
includes/admin/classes/class-bbp-converter-db.php
ADDED
@@ -0,0 +1,58 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* bbPress Converter Database
|
5 |
+
*
|
6 |
+
* @package bbPress
|
7 |
+
* @subpackage Administration
|
8 |
+
*/
|
9 |
+
|
10 |
+
// Exit if accessed directly
|
11 |
+
defined( 'ABSPATH' ) || exit;
|
12 |
+
|
13 |
+
if ( ! class_exists( 'BBP_Converter_DB' ) && class_exists( 'wpdb' ) ) :
|
14 |
+
/**
|
15 |
+
* bbPress Converter Database Access Abstraction Object
|
16 |
+
*
|
17 |
+
* @since 2.6.0 bbPress (r6784)
|
18 |
+
*/
|
19 |
+
class BBP_Converter_DB extends wpdb {
|
20 |
+
|
21 |
+
/**
|
22 |
+
* Sets up the credentials used to connect to the database server, but does
|
23 |
+
* not actually connect to the database on construct.
|
24 |
+
*
|
25 |
+
* @since 2.6.0 bbPress (r6784)
|
26 |
+
*
|
27 |
+
* @param string $dbuser MySQL database user
|
28 |
+
* @param string $dbpassword MySQL database password
|
29 |
+
* @param string $dbname MySQL database name
|
30 |
+
* @param string $dbhost MySQL database host
|
31 |
+
*/
|
32 |
+
public function __construct( $dbuser, $dbpassword, $dbname, $dbhost ) {
|
33 |
+
register_shutdown_function( array( $this, '__destruct' ) );
|
34 |
+
|
35 |
+
if ( WP_DEBUG && WP_DEBUG_DISPLAY ) {
|
36 |
+
$this->show_errors();
|
37 |
+
}
|
38 |
+
|
39 |
+
// Use ext/mysqli if it exists unless WP_USE_EXT_MYSQL is defined as true
|
40 |
+
if ( function_exists( 'mysqli_connect' ) ) {
|
41 |
+
$this->use_mysqli = true;
|
42 |
+
|
43 |
+
if ( defined( 'WP_USE_EXT_MYSQL' ) ) {
|
44 |
+
$this->use_mysqli = ! WP_USE_EXT_MYSQL;
|
45 |
+
}
|
46 |
+
}
|
47 |
+
|
48 |
+
// Setup credentials
|
49 |
+
$this->dbuser = $dbuser;
|
50 |
+
$this->dbpassword = $dbpassword;
|
51 |
+
$this->dbname = $dbname;
|
52 |
+
$this->dbhost = $dbhost;
|
53 |
+
|
54 |
+
// Normally wpdb would try to connect here, but we don't want to do that
|
55 |
+
// until we are good and ready, so instead we do nothing.
|
56 |
+
}
|
57 |
+
}
|
58 |
+
endif;
|
includes/admin/classes/class-bbp-converter.php
CHANGED
@@ -215,9 +215,21 @@ class BBP_Converter {
|
|
215 |
$output = wp_kses_data( $output );
|
216 |
|
217 |
// Maybe prepend the step
|
218 |
-
|
219 |
-
|
220 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
221 |
|
222 |
// Output
|
223 |
wp_send_json_success( array(
|
@@ -237,11 +249,27 @@ class BBP_Converter {
|
|
237 |
* @since 2.6.0 bbPress (r6460)
|
238 |
*/
|
239 |
private function maybe_set_memory() {
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
245 |
}
|
246 |
}
|
247 |
|
@@ -427,8 +455,28 @@ class BBP_Converter {
|
|
427 |
* @since 2.6.0 bbPress (r6460)
|
428 |
*/
|
429 |
private function bump_start() {
|
|
|
|
|
|
|
|
|
|
|
430 |
$start = (int) ( $this->start + $this->rows );
|
431 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
432 |
update_option( '_bbp_converter_start', $start );
|
433 |
}
|
434 |
|
@@ -457,7 +505,7 @@ class BBP_Converter {
|
|
457 |
*/
|
458 |
private function step_sync_table() {
|
459 |
if ( true === $this->converter->clean ) {
|
460 |
-
if ( $this->converter->clean(
|
461 |
$this->bump_step();
|
462 |
$this->sync_table( true );
|
463 |
|
@@ -466,7 +514,7 @@ class BBP_Converter {
|
|
466 |
: $this->converter_response( esc_html__( 'Sync-table ready', 'bbpress' ) );
|
467 |
} else {
|
468 |
$this->bump_start();
|
469 |
-
$this->converter_response( sprintf( esc_html__( 'Deleting previously converted data (%1$s through %2$s
|
470 |
}
|
471 |
|
472 |
$this->converter->clean = false;
|
@@ -492,7 +540,7 @@ class BBP_Converter {
|
|
492 |
: $this->converter_response( esc_html__( 'All users imported', 'bbpress' ) );
|
493 |
} else {
|
494 |
$this->bump_start();
|
495 |
-
$this->converter_response( sprintf(
|
496 |
}
|
497 |
} else {
|
498 |
$this->bump_step();
|
@@ -515,7 +563,7 @@ class BBP_Converter {
|
|
515 |
: $this->converter_response( esc_html__( 'All passwords cleared', 'bbpress' ) );
|
516 |
} else {
|
517 |
$this->bump_start();
|
518 |
-
$this->converter_response( sprintf( esc_html__( 'Delete default WordPress user passwords (%1$s through %2$s
|
519 |
}
|
520 |
} else {
|
521 |
$this->bump_step();
|
215 |
$output = wp_kses_data( $output );
|
216 |
|
217 |
// Maybe prepend the step
|
218 |
+
if ( ! empty( $this->step ) ) {
|
219 |
+
|
220 |
+
// Include percentage
|
221 |
+
if ( ! empty( $this->rows_in_step ) ) {
|
222 |
+
$progress = sprintf( '<span class="step">%s.</span><span class="output">%s</span><span class="mini-step">%s</span>', $this->step, $output, $this->step_percentage . '%' );
|
223 |
+
|
224 |
+
// Don't include percentage
|
225 |
+
} else {
|
226 |
+
$progress = sprintf( '<span class="step">%s.</span><span class="output">%s</span>', $this->step, $output );
|
227 |
+
}
|
228 |
+
|
229 |
+
// Raw text
|
230 |
+
} else {
|
231 |
+
$progress = $output;
|
232 |
+
}
|
233 |
|
234 |
// Output
|
235 |
wp_send_json_success( array(
|
249 |
* @since 2.6.0 bbPress (r6460)
|
250 |
*/
|
251 |
private function maybe_set_memory() {
|
252 |
+
|
253 |
+
// Filter args
|
254 |
+
$r = apply_filters( 'bbp_converter_php_ini_overrides', array(
|
255 |
+
'implicit_flush' => '1',
|
256 |
+
'memory_limit' => '256M',
|
257 |
+
'max_execution_time' => HOUR_IN_SECONDS * 6
|
258 |
+
) );
|
259 |
+
|
260 |
+
// Get disabled PHP functions (to avoid using them)
|
261 |
+
$disabled = explode( ',', @ini_get( 'disable_functions' ) );
|
262 |
+
|
263 |
+
// Maybe avoid terminating when the client goes away (if function is not disabled)
|
264 |
+
if ( ! in_array( 'ignore_user_abort', $disabled, true ) ) {
|
265 |
+
@ignore_user_abort( true );
|
266 |
+
}
|
267 |
+
|
268 |
+
// Maybe set memory & time limits, and flush style (if function is not disabled)
|
269 |
+
if ( ! in_array( 'ini_set', $disabled, true ) ) {
|
270 |
+
foreach ( $r as $key => $value ) {
|
271 |
+
@ini_set( $key, $value );
|
272 |
+
}
|
273 |
}
|
274 |
}
|
275 |
|
455 |
* @since 2.6.0 bbPress (r6460)
|
456 |
*/
|
457 |
private function bump_start() {
|
458 |
+
|
459 |
+
// Set rows in step from option
|
460 |
+
$this->rows_in_step = get_option( '_bbp_converter_rows_in_step', 0 );
|
461 |
+
|
462 |
+
// Get rows to start from
|
463 |
$start = (int) ( $this->start + $this->rows );
|
464 |
|
465 |
+
// Enforce maximum if exists
|
466 |
+
if ( $this->rows_in_step > 0 ) {
|
467 |
+
|
468 |
+
// Start cannot be larger than total rows
|
469 |
+
if ( $start > $this->rows_in_step ) {
|
470 |
+
$start = $this->rows_in_step;
|
471 |
+
}
|
472 |
+
|
473 |
+
// Max can't be greater than total rows
|
474 |
+
if ( $this->max > $this->rows_in_step ) {
|
475 |
+
$this->max = $this->rows_in_step;
|
476 |
+
}
|
477 |
+
}
|
478 |
+
|
479 |
+
// Update the start option
|
480 |
update_option( '_bbp_converter_start', $start );
|
481 |
}
|
482 |
|
505 |
*/
|
506 |
private function step_sync_table() {
|
507 |
if ( true === $this->converter->clean ) {
|
508 |
+
if ( $this->converter->clean() ) {
|
509 |
$this->bump_step();
|
510 |
$this->sync_table( true );
|
511 |
|
514 |
: $this->converter_response( esc_html__( 'Sync-table ready', 'bbpress' ) );
|
515 |
} else {
|
516 |
$this->bump_start();
|
517 |
+
$this->converter_response( sprintf( esc_html__( 'Deleting previously converted data (%1$s through %2$s)', 'bbpress' ), $this->start, $this->max ) );
|
518 |
}
|
519 |
|
520 |
$this->converter->clean = false;
|
540 |
: $this->converter_response( esc_html__( 'All users imported', 'bbpress' ) );
|
541 |
} else {
|
542 |
$this->bump_start();
|
543 |
+
$this->converter_response( sprintf( esc_html__( 'Converting users (%1$s through %2$s of %3$s)', 'bbpress' ), $this->start, $this->max, $this->rows_in_step ) );
|
544 |
}
|
545 |
} else {
|
546 |
$this->bump_step();
|
563 |
: $this->converter_response( esc_html__( 'All passwords cleared', 'bbpress' ) );
|
564 |
} else {
|
565 |
$this->bump_start();
|
566 |
+
$this->converter_response( sprintf( esc_html__( 'Delete default WordPress user passwords (%1$s through %2$s)', 'bbpress' ), $this->start, $this->max ) );
|
567 |
}
|
568 |
} else {
|
569 |
$this->bump_step();
|
includes/admin/classes/class-bbp-topic-replies-list-table.php
CHANGED
@@ -33,13 +33,16 @@ class BBP_Topic_Replies_List_Table extends WP_List_Table {
|
|
33 |
* @since 2.6.0 bbPress (r5886)
|
34 |
*/
|
35 |
public function __construct( $args = array() ) {
|
36 |
-
|
|
|
|
|
37 |
'singular' => 'reply',
|
38 |
'plural' => 'replies',
|
39 |
'ajax' => false
|
40 |
-
);
|
41 |
-
|
42 |
-
|
|
|
43 |
|
44 |
/**
|
45 |
* Setup the list-table columns
|
@@ -194,19 +197,33 @@ class BBP_Topic_Replies_List_Table extends WP_List_Table {
|
|
194 |
// Query parameters
|
195 |
$per_page = 5;
|
196 |
$current_page = $this->get_pagenum();
|
197 |
-
$orderby =
|
198 |
-
$order =
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
199 |
|
200 |
// Query for replies
|
201 |
$reply_query = new WP_Query( array(
|
202 |
'post_type' => bbp_get_reply_post_type(),
|
|
|
203 |
'post_parent' => $topic_id,
|
204 |
'posts_per_page' => $per_page,
|
205 |
'paged' => $current_page,
|
206 |
'orderby' => $orderby,
|
207 |
'order' => ucwords( $order ),
|
208 |
'hierarchical' => false,
|
209 |
-
'ignore_sticky_posts' => true
|
210 |
) );
|
211 |
|
212 |
// Get the total number of replies, for pagination
|
@@ -245,7 +262,7 @@ class BBP_Topic_Replies_List_Table extends WP_List_Table {
|
|
245 |
// Top
|
246 |
$this->display_tablenav( 'top' ); ?>
|
247 |
|
248 |
-
<table class="wp-list-table <?php echo implode( ' ', $this->get_table_classes() ); ?>">
|
249 |
<thead>
|
250 |
<tr>
|
251 |
<?php $this->print_column_headers(); ?>
|
33 |
* @since 2.6.0 bbPress (r5886)
|
34 |
*/
|
35 |
public function __construct( $args = array() ) {
|
36 |
+
|
37 |
+
// Parse arguments
|
38 |
+
$args = bbp_parse_args( $args, array(
|
39 |
'singular' => 'reply',
|
40 |
'plural' => 'replies',
|
41 |
'ajax' => false
|
42 |
+
), 'topic_replies_list_table' );
|
43 |
+
|
44 |
+
// Construct the list table
|
45 |
+
parent::__construct( $args ); }
|
46 |
|
47 |
/**
|
48 |
* Setup the list-table columns
|
197 |
// Query parameters
|
198 |
$per_page = 5;
|
199 |
$current_page = $this->get_pagenum();
|
200 |
+
$orderby = ! empty( $_REQUEST['orderby'] ) ? sanitize_key( $_REQUEST['orderby'] ) : 'date';
|
201 |
+
$order = ! empty( $_REQUEST['order'] ) ? sanitize_key( $_REQUEST['order'] ) : 'asc';
|
202 |
+
$statuses = bbp_get_public_reply_statuses();
|
203 |
+
|
204 |
+
// Maybe add private statuses to query
|
205 |
+
if ( current_user_can( 'edit_others_replies' ) ) {
|
206 |
+
|
207 |
+
// Default view=all statuses
|
208 |
+
$statuses = array_keys( bbp_get_topic_statuses() );
|
209 |
+
|
210 |
+
// Add support for private status
|
211 |
+
if ( current_user_can( 'read_private_replies' ) ) {
|
212 |
+
$statuses[] = bbp_get_private_status_id();
|
213 |
+
}
|
214 |
+
}
|
215 |
|
216 |
// Query for replies
|
217 |
$reply_query = new WP_Query( array(
|
218 |
'post_type' => bbp_get_reply_post_type(),
|
219 |
+
'post_status' => $statuses,
|
220 |
'post_parent' => $topic_id,
|
221 |
'posts_per_page' => $per_page,
|
222 |
'paged' => $current_page,
|
223 |
'orderby' => $orderby,
|
224 |
'order' => ucwords( $order ),
|
225 |
'hierarchical' => false,
|
226 |
+
'ignore_sticky_posts' => true
|
227 |
) );
|
228 |
|
229 |
// Get the total number of replies, for pagination
|
262 |
// Top
|
263 |
$this->display_tablenav( 'top' ); ?>
|
264 |
|
265 |
+
<table id="bbp-reply-list" class="wp-list-table <?php echo implode( ' ', $this->get_table_classes() ); ?>">
|
266 |
<thead>
|
267 |
<tr>
|
268 |
<?php $this->print_column_headers(); ?>
|
includes/admin/common.php
CHANGED
@@ -29,13 +29,13 @@ function bbp_admin_separator() {
|
|
29 |
// Loop through caps, and look for a reason to show the separator
|
30 |
foreach ( $caps as $cap ) {
|
31 |
if ( current_user_can( $cap ) ) {
|
32 |
-
|
33 |
break;
|
34 |
}
|
35 |
}
|
36 |
|
37 |
// Bail if no separator
|
38 |
-
if ( false ===
|
39 |
return;
|
40 |
}
|
41 |
|
@@ -53,7 +53,7 @@ function bbp_admin_separator() {
|
|
53 |
* @return mixed True if separator, false if not
|
54 |
*/
|
55 |
function bbp_admin_custom_menu_order( $menu_order = false ) {
|
56 |
-
if ( false ===
|
57 |
return $menu_order;
|
58 |
}
|
59 |
|
@@ -71,7 +71,7 @@ function bbp_admin_custom_menu_order( $menu_order = false ) {
|
|
71 |
function bbp_admin_menu_order( $menu_order ) {
|
72 |
|
73 |
// Bail if user cannot see any top level bbPress menus
|
74 |
-
if ( empty( $menu_order ) || ( false ===
|
75 |
return $menu_order;
|
76 |
}
|
77 |
|
@@ -113,29 +113,6 @@ function bbp_admin_menu_order( $menu_order ) {
|
|
113 |
return $bbp_menu_order;
|
114 |
}
|
115 |
|
116 |
-
/**
|
117 |
-
* Filter sample permalinks so that certain languages display properly.
|
118 |
-
*
|
119 |
-
* @since 2.0.0 bbPress (r3336)
|
120 |
-
*
|
121 |
-
* @param string $post_link Custom post type permalink
|
122 |
-
* @param object $_post Post data object
|
123 |
-
* @param bool $leavename Optional, defaults to false. Whether to keep post name or page name.
|
124 |
-
* @param bool $sample Optional, defaults to false. Is it a sample permalink.
|
125 |
-
*
|
126 |
-
* @return string The custom post type permalink
|
127 |
-
*/
|
128 |
-
function bbp_filter_sample_permalink( $post_link, $_post, $leavename = false, $sample = false ) {
|
129 |
-
|
130 |
-
// Bail if not on an admin page and not getting a sample permalink
|
131 |
-
if ( ! empty( $sample ) && is_admin() && bbp_is_custom_post_type() ) {
|
132 |
-
return urldecode( $post_link );
|
133 |
-
}
|
134 |
-
|
135 |
-
// Return post link
|
136 |
-
return $post_link;
|
137 |
-
}
|
138 |
-
|
139 |
/**
|
140 |
* Sanitize permalink slugs when saving the settings page.
|
141 |
*
|
@@ -171,52 +148,19 @@ function bbp_sanitize_slug( $slug = '' ) {
|
|
171 |
*
|
172 |
* @since 2.1.0 bbPress (r3765)
|
173 |
*
|
174 |
-
* @param
|
175 |
*/
|
176 |
function bbp_do_uninstall( $site_id = 0 ) {
|
177 |
if ( empty( $site_id ) ) {
|
178 |
$site_id = get_current_blog_id();
|
179 |
}
|
180 |
|
181 |
-
|
182 |
bbp_delete_options();
|
183 |
bbp_remove_roles();
|
184 |
bbp_remove_caps();
|
185 |
flush_rewrite_rules();
|
186 |
-
|
187 |
-
}
|
188 |
-
|
189 |
-
/**
|
190 |
-
* Redirect user to "What's New" page on activation
|
191 |
-
*
|
192 |
-
* @since 2.2.0 bbPress (r4389)
|
193 |
-
*
|
194 |
-
* @internal Used internally to redirect bbPress to the about page on activation
|
195 |
-
*
|
196 |
-
* @return If no transient, or in network admin, or is bulk activation
|
197 |
-
*/
|
198 |
-
function bbp_do_activation_redirect() {
|
199 |
-
|
200 |
-
// Bail if no activation redirect
|
201 |
-
if ( ! get_transient( '_bbp_activation_redirect' ) ) {
|
202 |
-
return;
|
203 |
-
}
|
204 |
-
|
205 |
-
// Delete the redirect transient
|
206 |
-
delete_transient( '_bbp_activation_redirect' );
|
207 |
-
|
208 |
-
// Bail if activating from network, or bulk
|
209 |
-
if ( is_network_admin() || isset( $_GET['activate-multi'] ) ) {
|
210 |
-
return;
|
211 |
-
}
|
212 |
-
|
213 |
-
// Bail if the current user cannot see the about page
|
214 |
-
if ( ! current_user_can( 'bbp_about_page' ) ) {
|
215 |
-
return;
|
216 |
-
}
|
217 |
-
|
218 |
-
// Redirect to bbPress about page
|
219 |
-
bbp_redirect( add_query_arg( array( 'page' => 'bbp-about' ), admin_url( 'index.php' ) ) );
|
220 |
}
|
221 |
|
222 |
/**
|
29 |
// Loop through caps, and look for a reason to show the separator
|
30 |
foreach ( $caps as $cap ) {
|
31 |
if ( current_user_can( $cap ) ) {
|
32 |
+
bbp_admin()->show_separator = true;
|
33 |
break;
|
34 |
}
|
35 |
}
|
36 |
|
37 |
// Bail if no separator
|
38 |
+
if ( false === bbp_admin()->show_separator ) {
|
39 |
return;
|
40 |
}
|
41 |
|
53 |
* @return mixed True if separator, false if not
|
54 |
*/
|
55 |
function bbp_admin_custom_menu_order( $menu_order = false ) {
|
56 |
+
if ( false === bbp_admin()->show_separator ) {
|
57 |
return $menu_order;
|
58 |
}
|
59 |
|
71 |
function bbp_admin_menu_order( $menu_order ) {
|
72 |
|
73 |
// Bail if user cannot see any top level bbPress menus
|
74 |
+
if ( empty( $menu_order ) || ( false === bbp_admin()->show_separator ) ) {
|
75 |
return $menu_order;
|
76 |
}
|
77 |
|
113 |
return $bbp_menu_order;
|
114 |
}
|
115 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
116 |
/**
|
117 |
* Sanitize permalink slugs when saving the settings page.
|
118 |
*
|
148 |
*
|
149 |
* @since 2.1.0 bbPress (r3765)
|
150 |
*
|
151 |
+
* @param int $site_id
|
152 |
*/
|
153 |
function bbp_do_uninstall( $site_id = 0 ) {
|
154 |
if ( empty( $site_id ) ) {
|
155 |
$site_id = get_current_blog_id();
|
156 |
}
|
157 |
|
158 |
+
bbp_switch_to_site( $site_id );
|
159 |
bbp_delete_options();
|
160 |
bbp_remove_roles();
|
161 |
bbp_remove_caps();
|
162 |
flush_rewrite_rules();
|
163 |
+
bbp_restore_current_site();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
164 |
}
|
165 |
|
166 |
/**
|
includes/admin/converters/XenForo.php
CHANGED
@@ -684,7 +684,7 @@ class XenForo extends BBP_Converter_Base {
|
|
684 |
/**
|
685 |
* This method is to save the salt and password together. That
|
686 |
* way when we authenticate it we can get it out of the database
|
687 |
-
* as one value. Array values are auto sanitized by
|
688 |
*/
|
689 |
public function translate_savepass( $field, $row ) {
|
690 |
$pass_array = array( 'hash' => $field, 'salt' => $row['salt'] );
|
684 |
/**
|
685 |
* This method is to save the salt and password together. That
|
686 |
* way when we authenticate it we can get it out of the database
|
687 |
+
* as one value. Array values are auto sanitized by WordPress.
|
688 |
*/
|
689 |
public function translate_savepass( $field, $row ) {
|
690 |
$pass_array = array( 'hash' => $field, 'salt' => $row['salt'] );
|
includes/admin/converters/phpBB.php
CHANGED
@@ -715,13 +715,13 @@ class phpBB extends BBP_Converter_Base {
|
|
715 |
|
716 |
/**
|
717 |
* This method is to save the salt and password together. That
|
718 |
-
* way when
|
719 |
* as one value.
|
720 |
*/
|
721 |
public function callback_savepass( $field, $row ) {
|
722 |
return array(
|
723 |
'hash' => $field,
|
724 |
-
'salt' => $row['
|
725 |
);
|
726 |
}
|
727 |
|
715 |
|
716 |
/**
|
717 |
* This method is to save the salt and password together. That
|
718 |
+
* way when we authenticate it we can get it out of the database
|
719 |
* as one value.
|
720 |
*/
|
721 |
public function callback_savepass( $field, $row ) {
|
722 |
return array(
|
723 |
'hash' => $field,
|
724 |
+
'salt' => $row['user_form_salt']
|
725 |
);
|
726 |
}
|
727 |
|
includes/admin/converters/vBulletin.php
CHANGED
@@ -27,7 +27,7 @@ class vBulletin extends BBP_Converter_Base {
|
|
27 |
/**
|
28 |
* Sets up the field mappings
|
29 |
*/
|
30 |
-
|
31 |
|
32 |
// Setup smiley URL & path
|
33 |
$this->bbcode_parser_properties = array(
|
27 |
/**
|
28 |
* Sets up the field mappings
|
29 |
*/
|
30 |
+
public function setup_globals() {
|
31 |
|
32 |
// Setup smiley URL & path
|
33 |
$this->bbcode_parser_properties = array(
|
includes/admin/converters/vBulletin3.php
CHANGED
@@ -27,7 +27,7 @@ class vBulletin3 extends BBP_Converter_Base {
|
|
27 |
/**
|
28 |
* Sets up the field mappings
|
29 |
*/
|
30 |
-
|
31 |
|
32 |
// Setup smiley URL & path
|
33 |
$this->bbcode_parser_properties = array(
|
27 |
/**
|
28 |
* Sets up the field mappings
|
29 |
*/
|
30 |
+
public function setup_globals() {
|
31 |
|
32 |
// Setup smiley URL & path
|
33 |
$this->bbcode_parser_properties = array(
|
includes/admin/forums.php
CHANGED
@@ -66,8 +66,8 @@ class BBP_Forums_Admin {
|
|
66 |
add_action( 'save_post', array( $this, 'save_meta_boxes' ) );
|
67 |
|
68 |
// Check if there are any bbp_toggle_forum_* requests on admin_init, also have a message displayed
|
69 |
-
add_action( 'load-edit.php',
|
70 |
-
add_action( '
|
71 |
|
72 |
// Contextual Help
|
73 |
add_action( 'load-edit.php', array( $this, 'edit_help' ) );
|
@@ -123,9 +123,10 @@ class BBP_Forums_Admin {
|
|
123 |
'content' =>
|
124 |
'<p>' . __( 'Hovering over a row in the forums list will display action links that allow you to manage your forum. You can perform the following actions:', 'bbpress' ) . '</p>' .
|
125 |
'<ul>' .
|
126 |
-
'<li>' . __( '<strong>Edit</strong> takes you to the editing screen for that forum. You can also reach that screen by clicking on the forum title.',
|
127 |
-
'<li>' . __( '<strong>
|
128 |
-
'<li>' . __( '<strong>
|
|
|
129 |
'</ul>'
|
130 |
) );
|
131 |
|
@@ -210,7 +211,7 @@ class BBP_Forums_Admin {
|
|
210 |
public function attributes_metabox() {
|
211 |
add_meta_box(
|
212 |
'bbp_forum_attributes',
|
213 |
-
|
214 |
'bbp_forum_metabox',
|
215 |
$this->post_type,
|
216 |
'side',
|
@@ -233,7 +234,7 @@ class BBP_Forums_Admin {
|
|
233 |
// Moderators
|
234 |
add_meta_box(
|
235 |
'bbp_moderator_assignment_metabox',
|
236 |
-
|
237 |
'bbp_moderator_assignment_metabox',
|
238 |
$this->post_type,
|
239 |
'side',
|
@@ -263,7 +264,7 @@ class BBP_Forums_Admin {
|
|
263 |
// Add the meta-box
|
264 |
add_meta_box(
|
265 |
'bbp_forum_subscriptions_metabox',
|
266 |
-
|
267 |
'bbp_forum_subscriptions_metabox',
|
268 |
$this->post_type,
|
269 |
'normal',
|
@@ -357,12 +358,12 @@ class BBP_Forums_Admin {
|
|
357 |
// Bail if forum is missing
|
358 |
$forum_id = bbp_get_forum_id( $_GET['forum_id'] );
|
359 |
if ( ! bbp_get_forum( $forum_id ) ) {
|
360 |
-
wp_die(
|
361 |
}
|
362 |
|
363 |
// What is the user doing here?
|
364 |
if ( ! current_user_can( 'edit_forum', $forum_id ) ) {
|
365 |
-
wp_die(
|
366 |
}
|
367 |
|
368 |
// Defaults
|
@@ -417,7 +418,7 @@ class BBP_Forums_Admin {
|
|
417 |
*/
|
418 |
public function toggle_forum_notice() {
|
419 |
|
420 |
-
// Bail if missing
|
421 |
if ( ! bbp_is_get_request() || empty( $_GET['forum_id'] ) || empty( $_GET['bbp_forum_toggle_notice'] ) ) {
|
422 |
return;
|
423 |
}
|
@@ -447,14 +448,14 @@ class BBP_Forums_Admin {
|
|
447 |
switch ( $notice ) {
|
448 |
case 'opened' :
|
449 |
$message = ( $is_failure === true )
|
450 |
-
? sprintf(
|
451 |
-
: sprintf(
|
452 |
break;
|
453 |
|
454 |
case 'closed' :
|
455 |
$message = ( $is_failure === true )
|
456 |
-
? sprintf(
|
457 |
-
: sprintf(
|
458 |
break;
|
459 |
}
|
460 |
|
@@ -464,13 +465,28 @@ class BBP_Forums_Admin {
|
|
464 |
? 'error'
|
465 |
: 'updated';
|
466 |
|
467 |
-
|
|
|
|
|
468 |
|
469 |
-
|
470 |
-
|
471 |
-
|
|
|
|
|
|
|
|
|
|
|
472 |
|
473 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
474 |
}
|
475 |
|
476 |
/**
|
@@ -518,13 +534,13 @@ class BBP_Forums_Admin {
|
|
518 |
// Set list table column headers
|
519 |
$columns = array(
|
520 |
'cb' => '<input type="checkbox" />',
|
521 |
-
'title' =>
|
522 |
-
'bbp_forum_topic_count' =>
|
523 |
-
'bbp_forum_reply_count' =>
|
524 |
-
'bbp_forum_mods' =>
|
525 |
-
'author' =>
|
526 |
-
'bbp_forum_created' =>
|
527 |
-
'bbp_forum_freshness' =>
|
528 |
);
|
529 |
|
530 |
// Remove forum mods column if not enabled
|
@@ -595,12 +611,14 @@ class BBP_Forums_Admin {
|
|
595 |
*
|
596 |
* @since 2.0.0 bbPress (r2577)
|
597 |
*
|
598 |
-
* @param array
|
599 |
-
* @param
|
|
|
600 |
* @return array $actions Actions
|
601 |
*/
|
602 |
-
public function row_actions( $actions, $forum ) {
|
603 |
|
|
|
604 |
unset( $actions['inline hide-if-no-js'] );
|
605 |
|
606 |
// Only show the actions if the user is capable of viewing them :)
|
@@ -620,7 +638,37 @@ class BBP_Forums_Admin {
|
|
620 |
// simple hack to show the forum description under the title
|
621 |
bbp_forum_content( $forum->ID );
|
622 |
|
623 |
-
return
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
624 |
}
|
625 |
|
626 |
/**
|
@@ -650,50 +698,50 @@ class BBP_Forums_Admin {
|
|
650 |
// Updated
|
651 |
1 => sprintf(
|
652 |
'%1$s <a href="%2$s">%3$s</a>',
|
653 |
-
|
654 |
$forum_url,
|
655 |
-
|
656 |
),
|
657 |
|
658 |
// Custom field updated
|
659 |
-
2 =>
|
660 |
|
661 |
// Custom field deleted
|
662 |
-
3 =>
|
663 |
|
664 |
// Forum updated
|
665 |
-
4 =>
|
666 |
|
667 |
// Restored from revision
|
668 |
// translators: %s: date and time of the revision
|
669 |
5 => isset( $_GET['revision'] )
|
670 |
-
|
671 |
-
|
672 |
|
673 |
// Forum created
|
674 |
6 => sprintf(
|
675 |
'%1$s <a href="%2$s">%3$s</a>',
|
676 |
-
|
677 |
$forum_url,
|
678 |
-
|
679 |
),
|
680 |
|
681 |
// Forum saved
|
682 |
-
7 =>
|
683 |
|
684 |
// Forum submitted
|
685 |
8 => sprintf(
|
686 |
'%1$s <a href="%2$s" target="_blank">%3$s</a>',
|
687 |
-
|
688 |
esc_url( add_query_arg( 'preview', 'true', $forum_url ) ),
|
689 |
-
|
690 |
),
|
691 |
|
692 |
// Forum scheduled
|
693 |
9 => sprintf(
|
694 |
'%1$s <a target="_blank" href="%2$s">%3$s</a>',
|
695 |
sprintf(
|
696 |
-
|
697 |
// translators: Publish box date format, see http://php.net/date
|
698 |
'<strong>' . date_i18n( __( 'M j, Y @ G:i', 'bbpress' ), strtotime( $post_date ) ) . '</strong>'
|
699 |
),
|
@@ -704,9 +752,9 @@ class BBP_Forums_Admin {
|
|
704 |
// Forum draft updated
|
705 |
10 => sprintf(
|
706 |
'%1$s <a href="%2$s" target="_blank">%3$s</a>',
|
707 |
-
|
708 |
esc_url( add_query_arg( 'preview', 'true', $forum_url ) ),
|
709 |
-
|
710 |
),
|
711 |
);
|
712 |
|
@@ -733,5 +781,5 @@ function bbp_admin_forums( $current_screen ) {
|
|
733 |
}
|
734 |
|
735 |
// Init the forums admin
|
736 |
-
|
737 |
}
|
66 |
add_action( 'save_post', array( $this, 'save_meta_boxes' ) );
|
67 |
|
68 |
// Check if there are any bbp_toggle_forum_* requests on admin_init, also have a message displayed
|
69 |
+
add_action( 'load-edit.php', array( $this, 'toggle_forum' ) );
|
70 |
+
add_action( 'load-edit.php', array( $this, 'toggle_forum_notice' ) );
|
71 |
|
72 |
// Contextual Help
|
73 |
add_action( 'load-edit.php', array( $this, 'edit_help' ) );
|
123 |
'content' =>
|
124 |
'<p>' . __( 'Hovering over a row in the forums list will display action links that allow you to manage your forum. You can perform the following actions:', 'bbpress' ) . '</p>' .
|
125 |
'<ul>' .
|
126 |
+
'<li>' . __( '<strong>Edit</strong> takes you to the editing screen for that forum. You can also reach that screen by clicking on the forum title.', 'bbpress' ) . '</li>' .
|
127 |
+
'<li>' . __( '<strong>Close</strong> will mark the selected forum as ’closed’ and disable the ability to post new topics and replies in it.', 'bbpress' ) . '</li>' .
|
128 |
+
'<li>' . __( '<strong>Trash</strong> removes your forum from this list and places it in the trash, from which you can permanently delete it.', 'bbpress' ) . '</li>' .
|
129 |
+
'<li>' . __( '<strong>View</strong> will either show you what your draft forum will look like if you publish it, or take you to your live site to view it. Which link depends on your forum’s status.', 'bbpress' ) . '</li>' .
|
130 |
'</ul>'
|
131 |
) );
|
132 |
|
211 |
public function attributes_metabox() {
|
212 |
add_meta_box(
|
213 |
'bbp_forum_attributes',
|
214 |
+
esc_html__( 'Forum Attributes', 'bbpress' ),
|
215 |
'bbp_forum_metabox',
|
216 |
$this->post_type,
|
217 |
'side',
|
234 |
// Moderators
|
235 |
add_meta_box(
|
236 |
'bbp_moderator_assignment_metabox',
|
237 |
+
esc_html__( 'Forum Moderators', 'bbpress' ),
|
238 |
'bbp_moderator_assignment_metabox',
|
239 |
$this->post_type,
|
240 |
'side',
|
264 |
// Add the meta-box
|
265 |
add_meta_box(
|
266 |
'bbp_forum_subscriptions_metabox',
|
267 |
+
esc_html__( 'Subscriptions', 'bbpress' ),
|
268 |
'bbp_forum_subscriptions_metabox',
|
269 |
$this->post_type,
|
270 |
'normal',
|
358 |
// Bail if forum is missing
|
359 |
$forum_id = bbp_get_forum_id( $_GET['forum_id'] );
|
360 |
if ( ! bbp_get_forum( $forum_id ) ) {
|
361 |
+
wp_die( esc_html__( 'The forum was not found.', 'bbpress' ) );
|
362 |
}
|
363 |
|
364 |
// What is the user doing here?
|
365 |
if ( ! current_user_can( 'edit_forum', $forum_id ) ) {
|
366 |
+
wp_die( esc_html__( 'You do not have permission to do that.', 'bbpress' ) );
|
367 |
}
|
368 |
|
369 |
// Defaults
|
418 |
*/
|
419 |
public function toggle_forum_notice() {
|
420 |
|
421 |
+
// Bail if missing forum toggle action
|
422 |
if ( ! bbp_is_get_request() || empty( $_GET['forum_id'] ) || empty( $_GET['bbp_forum_toggle_notice'] ) ) {
|
423 |
return;
|
424 |
}
|
448 |
switch ( $notice ) {
|
449 |
case 'opened' :
|
450 |
$message = ( $is_failure === true )
|
451 |
+
? sprintf( esc_html__( 'There was a problem opening the forum "%1$s".', 'bbpress' ), $forum_title )
|
452 |
+
: sprintf( esc_html__( 'Forum "%1$s" successfully opened.', 'bbpress' ), $forum_title );
|
453 |
break;
|
454 |
|
455 |
case 'closed' :
|
456 |
$message = ( $is_failure === true )
|
457 |
+
? sprintf( esc_html__( 'There was a problem closing the forum "%1$s".', 'bbpress' ), $forum_title )
|
458 |
+
: sprintf( esc_html__( 'Forum "%1$s" successfully closed.', 'bbpress' ), $forum_title );
|
459 |
break;
|
460 |
}
|
461 |
|
465 |
? 'error'
|
466 |
: 'updated';
|
467 |
|
468 |
+
// Add the notice
|
469 |
+
bbp_admin()->add_notice( $message, $class, true );
|
470 |
+
}
|
471 |
|
472 |
+
/**
|
473 |
+
* Returns an array of keys used to sort row actions
|
474 |
+
*
|
475 |
+
* @since 2.6.0 bbPress (r6771)
|
476 |
+
*
|
477 |
+
* @return array
|
478 |
+
*/
|
479 |
+
private function get_row_action_sort_order() {
|
480 |
|
481 |
+
// Filter & return
|
482 |
+
return (array) apply_filters( 'bbp_admin_forum_row_action_sort_order', array(
|
483 |
+
'edit',
|
484 |
+
'closed',
|
485 |
+
'trash',
|
486 |
+
'untrash',
|
487 |
+
'delete',
|
488 |
+
'view'
|
489 |
+
) );
|
490 |
}
|
491 |
|
492 |
/**
|
534 |
// Set list table column headers
|
535 |
$columns = array(
|
536 |
'cb' => '<input type="checkbox" />',
|
537 |
+
'title' => esc_html__( 'Forum', 'bbpress' ),
|
538 |
+
'bbp_forum_topic_count' => esc_html__( 'Topics', 'bbpress' ),
|
539 |
+
'bbp_forum_reply_count' => esc_html__( 'Replies', 'bbpress' ),
|
540 |
+
'bbp_forum_mods' => esc_html__( 'Moderators', 'bbpress' ),
|
541 |
+
'author' => esc_html__( 'Creator', 'bbpress' ),
|
542 |
+
'bbp_forum_created' => esc_html__( 'Created' , 'bbpress' ),
|
543 |
+
'bbp_forum_freshness' => esc_html__( 'Last Post', 'bbpress' )
|
544 |
);
|
545 |
|
546 |
// Remove forum mods column if not enabled
|
611 |
*
|
612 |
* @since 2.0.0 bbPress (r2577)
|
613 |
*
|
614 |
+
* @param array $actions Actions
|
615 |
+
* @param object $forum Forum object
|
616 |
+
*
|
617 |
* @return array $actions Actions
|
618 |
*/
|
619 |
+
public function row_actions( $actions = array(), $forum = false ) {
|
620 |
|
621 |
+
// Disable quick edit (too much to do here)
|
622 |
unset( $actions['inline hide-if-no-js'] );
|
623 |
|
624 |
// Only show the actions if the user is capable of viewing them :)
|
638 |
// simple hack to show the forum description under the title
|
639 |
bbp_forum_content( $forum->ID );
|
640 |
|
641 |
+
// Sort & return
|
642 |
+
return $this->sort_row_actions( $actions );
|
643 |
+
}
|
644 |
+
|
645 |
+
/**
|
646 |
+
* Sort row actions by key
|
647 |
+
*
|
648 |
+
* @since 2.6.0
|
649 |
+
*
|
650 |
+
* @param array $actions
|
651 |
+
*
|
652 |
+
* @return array
|
653 |
+
*/
|
654 |
+
private function sort_row_actions( $actions = array() ) {
|
655 |
+
|
656 |
+
// Return value
|
657 |
+
$retval = array();
|
658 |
+
|
659 |
+
// Known row actions, in sort order
|
660 |
+
$known_actions = $this->get_row_action_sort_order();
|
661 |
+
|
662 |
+
// Sort known actions, and keep any unknown ones
|
663 |
+
foreach ( $known_actions as $key ) {
|
664 |
+
if ( isset( $actions[ $key ] ) ) {
|
665 |
+
$retval[ $key ] = $actions[ $key ];
|
666 |
+
unset( $actions[ $key ] );
|
667 |
+
}
|
668 |
+
}
|
669 |
+
|
670 |
+
// Combine & return
|
671 |
+
return $retval + $actions;
|
672 |
}
|
673 |
|
674 |
/**
|
698 |
// Updated
|
699 |
1 => sprintf(
|
700 |
'%1$s <a href="%2$s">%3$s</a>',
|
701 |
+
esc_html__( 'Forum updated.', 'bbpress' ),
|
702 |
$forum_url,
|
703 |
+
esc_html__( 'View forum', 'bbpress' )
|
704 |
),
|
705 |
|
706 |
// Custom field updated
|
707 |
+
2 => esc_html__( 'Custom field updated.', 'bbpress' ),
|
708 |
|
709 |
// Custom field deleted
|
710 |
+
3 => esc_html__( 'Custom field deleted.', 'bbpress' ),
|
711 |
|
712 |
// Forum updated
|
713 |
+
4 => esc_html__( 'Forum updated.', 'bbpress' ),
|
714 |
|
715 |
// Restored from revision
|
716 |
// translators: %s: date and time of the revision
|
717 |
5 => isset( $_GET['revision'] )
|
718 |
+
? sprintf( esc_html__( 'Forum restored to revision from %s', 'bbpress' ), wp_post_revision_title( (int) $_GET['revision'], false ) )
|
719 |
+
: false,
|
720 |
|
721 |
// Forum created
|
722 |
6 => sprintf(
|
723 |
'%1$s <a href="%2$s">%3$s</a>',
|
724 |
+
esc_html__( 'Forum created.', 'bbpress' ),
|
725 |
$forum_url,
|
726 |
+
esc_html__( 'View forum', 'bbpress' )
|
727 |
),
|
728 |
|
729 |
// Forum saved
|
730 |
+
7 => esc_html__( 'Forum saved.', 'bbpress' ),
|
731 |
|
732 |
// Forum submitted
|
733 |
8 => sprintf(
|
734 |
'%1$s <a href="%2$s" target="_blank">%3$s</a>',
|
735 |
+
esc_html__( 'Forum submitted.', 'bbpress' ),
|
736 |
esc_url( add_query_arg( 'preview', 'true', $forum_url ) ),
|
737 |
+
esc_html__( 'Preview forum', 'bbpress' )
|
738 |
),
|
739 |
|
740 |
// Forum scheduled
|
741 |
9 => sprintf(
|
742 |
'%1$s <a target="_blank" href="%2$s">%3$s</a>',
|
743 |
sprintf(
|
744 |
+
esc_html__( 'Forum scheduled for: %s.', 'bbpress' ),
|
745 |
// translators: Publish box date format, see http://php.net/date
|
746 |
'<strong>' . date_i18n( __( 'M j, Y @ G:i', 'bbpress' ), strtotime( $post_date ) ) . '</strong>'
|
747 |
),
|
752 |
// Forum draft updated
|
753 |
10 => sprintf(
|
754 |
'%1$s <a href="%2$s" target="_blank">%3$s</a>',
|
755 |
+
esc_html__( 'Forum draft updated.', 'bbpress' ),
|
756 |
esc_url( add_query_arg( 'preview', 'true', $forum_url ) ),
|
757 |
+
esc_html__( 'Preview forum', 'bbpress' )
|
758 |
),
|
759 |
);
|
760 |
|
781 |
}
|
782 |
|
783 |
// Init the forums admin
|
784 |
+
bbp_admin()->forums = new BBP_Forums_Admin();
|
785 |
}
|
includes/admin/metaboxes.php
CHANGED
@@ -35,7 +35,7 @@ function bbp_filter_dashboard_glance_items( $elements = array() ) {
|
|
35 |
'count_spammed_replies' => false,
|
36 |
'count_trashed_replies' => false,
|
37 |
'count_empty_tags' => false
|
38 |
-
));
|
39 |
|
40 |
// Users
|
41 |
if ( isset( $r['user_count'] ) ) {
|
@@ -555,9 +555,9 @@ function bbp_reply_metabox( $post ) {
|
|
555 |
*
|
556 |
* @since 2.6.0 bbPress (r5886)
|
557 |
*
|
558 |
-
* @param
|
559 |
*
|
560 |
-
* @return
|
561 |
*/
|
562 |
function bbp_topic_replies_metabox( $topic = false ) {
|
563 |
|
@@ -568,7 +568,7 @@ function bbp_topic_replies_metabox( $topic = false ) {
|
|
568 |
|
569 |
// Pull in the list table class
|
570 |
if ( ! class_exists( 'BBP_Topic_Replies_List_Table' ) ) {
|
571 |
-
require_once
|
572 |
}
|
573 |
|
574 |
// Look for pagination value
|
@@ -748,7 +748,9 @@ function bbp_topic_subscriptions_metabox( $post ) {
|
|
748 |
$user_ids = bbp_get_subscribers( $post->ID );
|
749 |
|
750 |
// Output
|
751 |
-
|
|
|
|
|
752 |
|
753 |
// Relationships
|
754 |
$args = array(
|
35 |
'count_spammed_replies' => false,
|
36 |
'count_trashed_replies' => false,
|
37 |
'count_empty_tags' => false
|
38 |
+
) );
|
39 |
|
40 |
// Users
|
41 |
if ( isset( $r['user_count'] ) ) {
|
555 |
*
|
556 |
* @since 2.6.0 bbPress (r5886)
|
557 |
*
|
558 |
+
* @param object $topic
|
559 |
*
|
560 |
+
* @return void
|
561 |
*/
|
562 |
function bbp_topic_replies_metabox( $topic = false ) {
|
563 |
|
568 |
|
569 |
// Pull in the list table class
|
570 |
if ( ! class_exists( 'BBP_Topic_Replies_List_Table' ) ) {
|
571 |
+
require_once bbp_admin()->admin_dir . '/classes/class-bbp-topic-replies-list-table.php';
|
572 |
}
|
573 |
|
574 |
// Look for pagination value
|
748 |
$user_ids = bbp_get_subscribers( $post->ID );
|
749 |
|
750 |
// Output
|
751 |
+
?>
|
752 |
+
<input name="bbp_topic_subscription" id="bbp_topic_subscription" type="hidden" value="bbp_subscribe" <?php bbp_form_topic_subscribed(); ?> />
|
753 |
+
<p><?php
|
754 |
|
755 |
// Relationships
|
756 |
$args = array(
|
includes/admin/replies.php
CHANGED
@@ -73,13 +73,16 @@ class BBP_Replies_Admin {
|
|
73 |
add_action( 'save_post', array( $this, 'save_meta_boxes' ) );
|
74 |
|
75 |
// Check if there are any bbp_toggle_reply_* requests on admin_init, also have a message displayed
|
76 |
-
add_action( 'load-edit.php',
|
77 |
-
add_action( '
|
78 |
|
79 |
// Add ability to filter topics and replies per forum
|
80 |
add_filter( 'restrict_manage_posts', array( $this, 'filter_dropdown' ) );
|
81 |
add_filter( 'bbp_request', array( $this, 'filter_post_rows' ) );
|
82 |
|
|
|
|
|
|
|
83 |
// Contextual Help
|
84 |
add_action( 'load-edit.php', array( $this, 'edit_help' ) );
|
85 |
add_action( 'load-post.php', array( $this, 'new_help' ) );
|
@@ -186,7 +189,7 @@ class BBP_Replies_Admin {
|
|
186 |
|
187 |
$publish_box = '<p>' . __( '<strong>Publish</strong> - You can set the terms of publishing your reply in the Publish box. For Status, Visibility, and Publish (immediately), click on the Edit link to reveal more options. Visibility includes options for password-protecting a reply or making it stay at the top of your blog indefinitely (sticky). Publish (immediately) allows you to set a future or past date and time, so you can schedule a reply to be published in the future or backdate a reply.', 'bbpress' ) . '</p>';
|
188 |
|
189 |
-
if ( current_theme_supports( 'reply-thumbnails' ) && post_type_supports(
|
190 |
$publish_box .= '<p>' . __( '<strong>Featured Image</strong> - This allows you to associate an image with your reply without inserting it. This is usually useful only if your theme makes use of the featured image as a reply thumbnail on the home page, a custom header, etc.', 'bbpress' ) . '</p>';
|
191 |
}
|
192 |
|
@@ -227,9 +230,9 @@ class BBP_Replies_Admin {
|
|
227 |
|
228 |
if ( current_user_can( 'moderate' ) ) {
|
229 |
if ( bbp_get_spam_status_id() === get_query_var( 'post_status' ) ) {
|
230 |
-
$actions['unspam'] =
|
231 |
} else {
|
232 |
-
$actions['spam'] =
|
233 |
}
|
234 |
}
|
235 |
|
@@ -272,7 +275,7 @@ class BBP_Replies_Admin {
|
|
272 |
|
273 |
foreach ( (array) $post_ids as $post_id ) {
|
274 |
if ( ! current_user_can( 'moderate', $post_id ) ) {
|
275 |
-
wp_die(
|
276 |
}
|
277 |
|
278 |
if ( wp_check_post_lock( $post_id ) ) {
|
@@ -281,7 +284,7 @@ class BBP_Replies_Admin {
|
|
281 |
}
|
282 |
|
283 |
if ( ! bbp_spam_reply( $post_id ) ) {
|
284 |
-
wp_die(
|
285 |
}
|
286 |
|
287 |
$updated++;
|
@@ -297,7 +300,7 @@ class BBP_Replies_Admin {
|
|
297 |
|
298 |
foreach ( (array) $post_ids as $post_id ) {
|
299 |
if ( ! current_user_can( 'moderate', $post_id ) ) {
|
300 |
-
wp_die(
|
301 |
}
|
302 |
|
303 |
if ( wp_check_post_lock( $post_id ) ) {
|
@@ -306,7 +309,7 @@ class BBP_Replies_Admin {
|
|
306 |
}
|
307 |
|
308 |
if ( ! bbp_unspam_reply( $post_id ) ) {
|
309 |
-
wp_die(
|
310 |
}
|
311 |
|
312 |
$updated++;
|
@@ -330,7 +333,7 @@ class BBP_Replies_Admin {
|
|
330 |
public function attributes_metabox() {
|
331 |
add_meta_box(
|
332 |
'bbp_reply_attributes',
|
333 |
-
|
334 |
'bbp_reply_metabox',
|
335 |
$this->post_type,
|
336 |
'side',
|
@@ -355,7 +358,7 @@ class BBP_Replies_Admin {
|
|
355 |
// Add the meta-box
|
356 |
add_meta_box(
|
357 |
'bbp_author_metabox',
|
358 |
-
|
359 |
'bbp_author_metabox',
|
360 |
$this->post_type,
|
361 |
'side',
|
@@ -453,12 +456,12 @@ class BBP_Replies_Admin {
|
|
453 |
// Get reply and die if empty
|
454 |
$reply_id = bbp_get_reply_id( $_GET['reply_id'] );
|
455 |
if ( ! bbp_get_reply( $reply_id ) ) {
|
456 |
-
wp_die(
|
457 |
}
|
458 |
|
459 |
// What is the user doing here?
|
460 |
if ( ! current_user_can( 'moderate', $reply_id ) ) {
|
461 |
-
wp_die(
|
462 |
}
|
463 |
|
464 |
// Defaults
|
@@ -470,13 +473,13 @@ class BBP_Replies_Admin {
|
|
470 |
case 'bbp_toggle_reply_approve' :
|
471 |
check_admin_referer( 'approve-reply_' . $reply_id );
|
472 |
|
473 |
-
$is_approve =
|
474 |
$message = ( true === $is_approve )
|
475 |
-
? '
|
476 |
-
: '
|
477 |
$success = ( true === $is_approve )
|
478 |
-
?
|
479 |
-
:
|
480 |
|
481 |
break;
|
482 |
|
@@ -556,26 +559,26 @@ class BBP_Replies_Admin {
|
|
556 |
switch ( $notice ) {
|
557 |
case 'spammed' :
|
558 |
$message = ( $is_failure === true )
|
559 |
-
? sprintf(
|
560 |
-
: sprintf(
|
561 |
break;
|
562 |
|
563 |
case 'unspammed' :
|
564 |
$message = ( $is_failure === true )
|
565 |
-
? sprintf(
|
566 |
-
: sprintf(
|
567 |
break;
|
568 |
|
569 |
case 'approved' :
|
570 |
$message = ( $is_failure === true )
|
571 |
-
? sprintf(
|
572 |
-
: sprintf(
|
573 |
break;
|
574 |
|
575 |
case 'unapproved' :
|
576 |
$message = ( $is_failure === true )
|
577 |
-
? sprintf(
|
578 |
-
: sprintf(
|
579 |
break;
|
580 |
}
|
581 |
|
@@ -585,13 +588,31 @@ class BBP_Replies_Admin {
|
|
585 |
? 'error'
|
586 |
: 'updated';
|
587 |
|
588 |
-
|
|
|
|
|
589 |
|
590 |
-
|
591 |
-
|
592 |
-
|
|
|
|
|
|
|
|
|
|
|
593 |
|
594 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
595 |
}
|
596 |
|
597 |
/**
|
@@ -640,11 +661,11 @@ class BBP_Replies_Admin {
|
|
640 |
public function column_headers( $columns ) {
|
641 |
$columns = array(
|
642 |
'cb' => '<input type="checkbox" />',
|
643 |
-
'title' =>
|
644 |
-
'bbp_reply_forum' =>
|
645 |
-
'bbp_reply_topic' =>
|
646 |
-
'bbp_reply_author' =>
|
647 |
-
'bbp_reply_created' =>
|
648 |
);
|
649 |
|
650 |
// Filter & return
|
@@ -753,13 +774,14 @@ class BBP_Replies_Admin {
|
|
753 |
*
|
754 |
* @since 2.0.0 bbPress (r2577)
|
755 |
*
|
756 |
-
* @param array
|
757 |
-
* @param
|
758 |
*
|
759 |
* @return array $actions Actions
|
760 |
*/
|
761 |
-
public function row_actions( $actions, $reply ) {
|
762 |
|
|
|
763 |
unset( $actions['inline hide-if-no-js'] );
|
764 |
|
765 |
// View link
|
@@ -781,21 +803,21 @@ class BBP_Replies_Admin {
|
|
781 |
// Only show the actions if the user is capable of viewing them
|
782 |
if ( current_user_can( 'moderate', $reply->ID ) ) {
|
783 |
|
784 |
-
// Show the 'approve' link on
|
785 |
$approve_uri = wp_nonce_url( add_query_arg( array( 'reply_id' => $reply->ID, 'action' => 'bbp_toggle_reply_approve' ), remove_query_arg( array( 'bbp_reply_toggle_notice', 'reply_id', 'failed', 'super' ) ) ), 'approve-reply_' . $reply->ID );
|
786 |
-
if (
|
787 |
$actions['unapproved'] = '<a href="' . esc_url( $approve_uri ) . '" title="' . esc_attr__( 'Unapprove this reply', 'bbpress' ) . '">' . _x( 'Unapprove', 'Unapprove reply', 'bbpress' ) . '</a>';
|
788 |
-
}
|
789 |
$actions['approved'] = '<a href="' . esc_url( $approve_uri ) . '" title="' . esc_attr__( 'Approve this reply', 'bbpress' ) . '">' . _x( 'Approve', 'Approve reply', 'bbpress' ) . '</a>';
|
790 |
}
|
791 |
|
792 |
// Show the 'spam' link on published and pending replies and 'not spam' on spammed replies
|
793 |
-
if ( in_array( $reply->post_status, array( bbp_get_public_status_id(), bbp_get_pending_status_id(), bbp_get_spam_status_id() ), true ) ) {
|
794 |
$spam_uri = wp_nonce_url( add_query_arg( array( 'reply_id' => $reply->ID, 'action' => 'bbp_toggle_reply_spam' ), remove_query_arg( array( 'bbp_reply_toggle_notice', 'reply_id', 'failed', 'super' ) ) ), 'spam-reply_' . $reply->ID );
|
795 |
-
if ( bbp_is_reply_spam( $reply->ID ) ) {
|
796 |
-
$actions['spam'] = '<a href="' . esc_url( $spam_uri ) . '" title="' . esc_attr__( 'Mark the reply as not spam', 'bbpress' ) . '">' . esc_html__( 'Not spam', 'bbpress' ) . '</a>';
|
797 |
-
} else {
|
798 |
$actions['spam'] = '<a href="' . esc_url( $spam_uri ) . '" title="' . esc_attr__( 'Mark this reply as spam', 'bbpress' ) . '">' . esc_html__( 'Spam', 'bbpress' ) . '</a>';
|
|
|
|
|
799 |
}
|
800 |
}
|
801 |
}
|
@@ -813,12 +835,40 @@ class BBP_Replies_Admin {
|
|
813 |
|
814 |
if ( ( bbp_get_trash_status_id() === $reply->post_status ) || empty( $trash_days ) ) {
|
815 |
$actions['delete'] = "<a class='submitdelete' title='" . esc_attr__( 'Delete this item permanently', 'bbpress' ) . "' href='" . esc_url( get_delete_post_link( $reply->ID, '', true ) ) . "'>" . esc_html__( 'Delete Permanently', 'bbpress' ) . "</a>";
|
816 |
-
} elseif ( bbp_get_spam_status_id() === $reply->post_status ) {
|
817 |
-
unset( $actions['trash'] );
|
818 |
}
|
819 |
}
|
820 |
|
821 |
-
return
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
822 |
}
|
823 |
|
824 |
/**
|
@@ -830,17 +880,6 @@ class BBP_Replies_Admin {
|
|
830 |
*/
|
831 |
public function filter_dropdown() {
|
832 |
|
833 |
-
// Add "Empty Spam" button for moderators
|
834 |
-
if ( ! empty( $_GET['post_status'] ) && ( bbp_get_spam_status_id() === $_GET['post_status'] ) && current_user_can( 'moderate' ) ) {
|
835 |
-
wp_nonce_field( 'bulk-destroy', '_destroy_nonce' );
|
836 |
-
submit_button(
|
837 |
-
esc_attr__( 'Empty Spam', 'bbpress' ),
|
838 |
-
'button-secondary apply',
|
839 |
-
'delete_all',
|
840 |
-
false
|
841 |
-
);
|
842 |
-
}
|
843 |
-
|
844 |
// Get which forum is selected
|
845 |
$selected = ! empty( $_GET['bbp_forum_id'] )
|
846 |
? (int) $_GET['bbp_forum_id']
|
@@ -853,6 +892,34 @@ class BBP_Replies_Admin {
|
|
853 |
) );
|
854 |
}
|
855 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
856 |
/**
|
857 |
* Adjust the request query and include the forum id
|
858 |
*
|
@@ -901,63 +968,63 @@ class BBP_Replies_Admin {
|
|
901 |
// Updated
|
902 |
1 => sprintf(
|
903 |
'%1$s <a href="%2$s">%3$s</a>',
|
904 |
-
|
905 |
$topic_url,
|
906 |
-
|
907 |
),
|
908 |
|
909 |
// Custom field updated
|
910 |
-
2 =>
|
911 |
|
912 |
// Custom field deleted
|
913 |
-
3 =>
|
914 |
|
915 |
// Reply updated
|
916 |
-
4 =>
|
917 |
|
918 |
// Restored from revision
|
919 |
// translators: %s: date and time of the revision
|
920 |
5 => isset( $_GET['revision'] )
|
921 |
-
? sprintf(
|
922 |
: false,
|
923 |
|
924 |
// Reply created
|
925 |
6 => sprintf(
|
926 |
'%1$s <a href="%2$s">%3$s</a>',
|
927 |
-
|
928 |
$topic_url,
|
929 |
-
|
930 |
),
|
931 |
|
932 |
// Reply saved
|
933 |
-
7 =>
|
934 |
|
935 |
// Reply submitted
|
936 |
8 => sprintf(
|
937 |
'%1$s <a href="%2$s" target="_blank">%3$s</a>',
|
938 |
-
|
939 |
esc_url( add_query_arg( 'preview', 'true', $topic_url ) ),
|
940 |
-
|
941 |
),
|
942 |
|
943 |
// Reply scheduled
|
944 |
9 => sprintf(
|
945 |
'%1$s <a target="_blank" href="%2$s">%3$s</a>',
|
946 |
sprintf(
|
947 |
-
|
948 |
// translators: Publish box date format, see http://php.net/date
|
949 |
'<strong>' . date_i18n( __( 'M j, Y @ G:i', 'bbpress' ), strtotime( $post_date ) ) . '</strong>'
|
950 |
),
|
951 |
$topic_url,
|
952 |
-
|
953 |
),
|
954 |
|
955 |
// Reply draft updated
|
956 |
10 => sprintf(
|
957 |
'%1$s <a href="%2$s" target="_blank">%3$s</a>',
|
958 |
-
|
959 |
esc_url( add_query_arg( 'preview', 'true', $topic_url ) ),
|
960 |
-
|
961 |
),
|
962 |
);
|
963 |
|
@@ -984,5 +1051,5 @@ function bbp_admin_replies( $current_screen ) {
|
|
984 |
}
|
985 |
|
986 |
// Init the replies admin
|
987 |
-
|
988 |
}
|
73 |
add_action( 'save_post', array( $this, 'save_meta_boxes' ) );
|
74 |
|
75 |
// Check if there are any bbp_toggle_reply_* requests on admin_init, also have a message displayed
|
76 |
+
add_action( 'load-edit.php', array( $this, 'toggle_reply' ) );
|
77 |
+
add_action( 'load-edit.php', array( $this, 'toggle_reply_notice' ) );
|
78 |
|
79 |
// Add ability to filter topics and replies per forum
|
80 |
add_filter( 'restrict_manage_posts', array( $this, 'filter_dropdown' ) );
|
81 |
add_filter( 'bbp_request', array( $this, 'filter_post_rows' ) );
|
82 |
|
83 |
+
// Empty spam
|
84 |
+
add_filter( 'manage_posts_extra_tablenav', array( $this, 'filter_empty_spam' ) );
|
85 |
+
|
86 |
// Contextual Help
|
87 |
add_action( 'load-edit.php', array( $this, 'edit_help' ) );
|
88 |
add_action( 'load-post.php', array( $this, 'new_help' ) );
|
189 |
|
190 |
$publish_box = '<p>' . __( '<strong>Publish</strong> - You can set the terms of publishing your reply in the Publish box. For Status, Visibility, and Publish (immediately), click on the Edit link to reveal more options. Visibility includes options for password-protecting a reply or making it stay at the top of your blog indefinitely (sticky). Publish (immediately) allows you to set a future or past date and time, so you can schedule a reply to be published in the future or backdate a reply.', 'bbpress' ) . '</p>';
|
191 |
|
192 |
+
if ( current_theme_supports( 'reply-thumbnails' ) && post_type_supports( bbp_get_reply_post_type(), 'thumbnail' ) ) {
|
193 |
$publish_box .= '<p>' . __( '<strong>Featured Image</strong> - This allows you to associate an image with your reply without inserting it. This is usually useful only if your theme makes use of the featured image as a reply thumbnail on the home page, a custom header, etc.', 'bbpress' ) . '</p>';
|
194 |
}
|
195 |
|
230 |
|
231 |
if ( current_user_can( 'moderate' ) ) {
|
232 |
if ( bbp_get_spam_status_id() === get_query_var( 'post_status' ) ) {
|
233 |
+
$actions['unspam'] = esc_html__( 'Unspam', 'bbpress' );
|
234 |
} else {
|
235 |
+
$actions['spam'] = esc_html__( 'Spam', 'bbpress' );
|
236 |
}
|
237 |
}
|
238 |
|
275 |
|
276 |
foreach ( (array) $post_ids as $post_id ) {
|
277 |
if ( ! current_user_can( 'moderate', $post_id ) ) {
|
278 |
+
wp_die( esc_html__( 'Sorry, you are not allowed to spam this item.', 'bbpress' ) );
|
279 |
}
|
280 |
|
281 |
if ( wp_check_post_lock( $post_id ) ) {
|
284 |
}
|
285 |
|
286 |
if ( ! bbp_spam_reply( $post_id ) ) {
|
287 |
+
wp_die( esc_html__( 'Error in spamming reply.', 'bbpress' ) );
|
288 |
}
|
289 |
|
290 |
$updated++;
|
300 |
|
301 |
foreach ( (array) $post_ids as $post_id ) {
|
302 |
if ( ! current_user_can( 'moderate', $post_id ) ) {
|
303 |
+
wp_die( esc_html__( 'Sorry, you are not allowed to unspam this reply.', 'bbpress' ) );
|
304 |
}
|
305 |
|
306 |
if ( wp_check_post_lock( $post_id ) ) {
|
309 |
}
|
310 |
|
311 |
if ( ! bbp_unspam_reply( $post_id ) ) {
|
312 |
+
wp_die( esc_html__( 'Error in unspamming reply.', 'bbpress' ) );
|
313 |
}
|
314 |
|
315 |
$updated++;
|
333 |
public function attributes_metabox() {
|
334 |
add_meta_box(
|
335 |
'bbp_reply_attributes',
|
336 |
+
esc_html__( 'Reply Attributes', 'bbpress' ),
|
337 |
'bbp_reply_metabox',
|
338 |
$this->post_type,
|
339 |
'side',
|
358 |
// Add the meta-box
|
359 |
add_meta_box(
|
360 |
'bbp_author_metabox',
|
361 |
+
esc_html__( 'Author Information', 'bbpress' ),
|
362 |
'bbp_author_metabox',
|
363 |
$this->post_type,
|
364 |
'side',
|
456 |
// Get reply and die if empty
|
457 |
$reply_id = bbp_get_reply_id( $_GET['reply_id'] );
|
458 |
if ( ! bbp_get_reply( $reply_id ) ) {
|
459 |
+
wp_die( esc_html__( 'The reply was not found.', 'bbpress' ) );
|
460 |
}
|
461 |
|
462 |
// What is the user doing here?
|
463 |
if ( ! current_user_can( 'moderate', $reply_id ) ) {
|
464 |
+
wp_die( esc_html__( 'You do not have permission to do that.', 'bbpress' ) );
|
465 |
}
|
466 |
|
467 |
// Defaults
|
473 |
case 'bbp_toggle_reply_approve' :
|
474 |
check_admin_referer( 'approve-reply_' . $reply_id );
|
475 |
|
476 |
+
$is_approve = bbp_is_reply_public( $reply_id );
|
477 |
$message = ( true === $is_approve )
|
478 |
+
? 'unpproved'
|
479 |
+
: 'approved';
|
480 |
$success = ( true === $is_approve )
|
481 |
+
? bbp_unapprove_reply( $reply_id )
|
482 |
+
: bbp_approve_reply( $reply_id );
|
483 |
|
484 |
break;
|
485 |
|
559 |
switch ( $notice ) {
|
560 |
case 'spammed' :
|
561 |
$message = ( $is_failure === true )
|
562 |
+
? sprintf( esc_html__( 'There was a problem marking the reply "%1$s" as spam.', 'bbpress' ), $reply_title )
|
563 |
+
: sprintf( esc_html__( 'Reply "%1$s" successfully marked as spam.', 'bbpress' ), $reply_title );
|
564 |
break;
|
565 |
|
566 |
case 'unspammed' :
|
567 |
$message = ( $is_failure === true )
|
568 |
+
? sprintf( esc_html__( 'There was a problem unmarking the reply "%1$s" as spam.', 'bbpress' ), $reply_title )
|
569 |
+
: sprintf( esc_html__( 'Reply "%1$s" successfully unmarked as spam.', 'bbpress' ), $reply_title );
|
570 |
break;
|
571 |
|
572 |
case 'approved' :
|
573 |
$message = ( $is_failure === true )
|
574 |
+
? sprintf( esc_html__( 'There was a problem approving the reply "%1$s".', 'bbpress' ), $reply_title )
|
575 |
+
: sprintf( esc_html__( 'Reply "%1$s" successfully approved.', 'bbpress' ), $reply_title );
|
576 |
break;
|
577 |
|
578 |
case 'unapproved' :
|
579 |
$message = ( $is_failure === true )
|
580 |
+
? sprintf( esc_html__( 'There was a problem unapproving the reply "%1$s".', 'bbpress' ), $reply_title )
|
581 |
+
: sprintf( esc_html__( 'Reply "%1$s" successfully unapproved.', 'bbpress' ), $reply_title );
|
582 |
break;
|
583 |
}
|
584 |
|
588 |
? 'error'
|
589 |
: 'updated';
|
590 |
|
591 |
+
// Add the notice
|
592 |
+
bbp_admin()->add_notice( $message, $class, true );
|
593 |
+
}
|
594 |
|
595 |
+
/**
|
596 |
+
* Returns an array of keys used to sort row actions
|
597 |
+
*
|
598 |
+
* @since 2.6.0 bbPress (r6771)
|
599 |
+
*
|
600 |
+
* @return array
|
601 |
+
*/
|
602 |
+
private function get_row_action_sort_order() {
|
603 |
|
604 |
+
// Filter & return
|
605 |
+
return (array) apply_filters( 'bbp_admin_reply_row_action_sort_order', array(
|
606 |
+
'edit',
|
607 |
+
'approved',
|
608 |
+
'unapproved',
|
609 |
+
'spam',
|
610 |
+
'unspam',
|
611 |
+
'trash',
|
612 |
+
'untrash',
|
613 |
+
'delete',
|
614 |
+
'view'
|
615 |
+
) );
|
616 |
}
|
617 |
|
618 |
/**
|
661 |
public function column_headers( $columns ) {
|
662 |
$columns = array(
|
663 |
'cb' => '<input type="checkbox" />',
|
664 |
+
'title' => esc_html__( 'Title', 'bbpress' ),
|
665 |
+
'bbp_reply_forum' => esc_html__( 'Forum', 'bbpress' ),
|
666 |
+
'bbp_reply_topic' => esc_html__( 'Topic', 'bbpress' ),
|
667 |
+
'bbp_reply_author' => esc_html__( 'Author', 'bbpress' ),
|
668 |
+
'bbp_reply_created' => esc_html__( 'Created', 'bbpress' ),
|
669 |
);
|
670 |
|
671 |
// Filter & return
|
774 |
*
|
775 |
* @since 2.0.0 bbPress (r2577)
|
776 |
*
|
777 |
+
* @param array $actions Actions
|
778 |
+
* @param object $reply Reply object
|
779 |
*
|
780 |
* @return array $actions Actions
|
781 |
*/
|
782 |
+
public function row_actions( $actions = array(), $reply = false ) {
|
783 |
|
784 |
+
// Disable quick edit (too much to do here)
|
785 |
unset( $actions['inline hide-if-no-js'] );
|
786 |
|
787 |
// View link
|
803 |
// Only show the actions if the user is capable of viewing them
|
804 |
if ( current_user_can( 'moderate', $reply->ID ) ) {
|
805 |
|
806 |
+
// Show the 'approve' link on non-published posts only and 'unapprove' on published posts only
|
807 |
$approve_uri = wp_nonce_url( add_query_arg( array( 'reply_id' => $reply->ID, 'action' => 'bbp_toggle_reply_approve' ), remove_query_arg( array( 'bbp_reply_toggle_notice', 'reply_id', 'failed', 'super' ) ) ), 'approve-reply_' . $reply->ID );
|
808 |
+
if ( bbp_is_reply_public( $reply->ID ) ) {
|
809 |
$actions['unapproved'] = '<a href="' . esc_url( $approve_uri ) . '" title="' . esc_attr__( 'Unapprove this reply', 'bbpress' ) . '">' . _x( 'Unapprove', 'Unapprove reply', 'bbpress' ) . '</a>';
|
810 |
+
} else {
|
811 |
$actions['approved'] = '<a href="' . esc_url( $approve_uri ) . '" title="' . esc_attr__( 'Approve this reply', 'bbpress' ) . '">' . _x( 'Approve', 'Approve reply', 'bbpress' ) . '</a>';
|
812 |
}
|
813 |
|
814 |
// Show the 'spam' link on published and pending replies and 'not spam' on spammed replies
|
815 |
+
if ( in_array( $reply->post_status, array( bbp_get_public_status_id(), bbp_get_trash_status_id(), bbp_get_pending_status_id(), bbp_get_spam_status_id() ), true ) ) {
|
816 |
$spam_uri = wp_nonce_url( add_query_arg( array( 'reply_id' => $reply->ID, 'action' => 'bbp_toggle_reply_spam' ), remove_query_arg( array( 'bbp_reply_toggle_notice', 'reply_id', 'failed', 'super' ) ) ), 'spam-reply_' . $reply->ID );
|
817 |
+
if ( ! bbp_is_reply_spam( $reply->ID ) ) {
|
|
|
|
|
818 |
$actions['spam'] = '<a href="' . esc_url( $spam_uri ) . '" title="' . esc_attr__( 'Mark this reply as spam', 'bbpress' ) . '">' . esc_html__( 'Spam', 'bbpress' ) . '</a>';
|
819 |
+
} else {
|
820 |
+
$actions['unspam'] = '<a href="' . esc_url( $spam_uri ) . '" title="' . esc_attr__( 'Mark the reply as not spam', 'bbpress' ) . '">' . esc_html__( 'Not Spam', 'bbpress' ) . '</a>';
|
821 |
}
|
822 |
}
|
823 |
}
|
835 |
|
836 |
if ( ( bbp_get_trash_status_id() === $reply->post_status ) || empty( $trash_days ) ) {
|
837 |
$actions['delete'] = "<a class='submitdelete' title='" . esc_attr__( 'Delete this item permanently', 'bbpress' ) . "' href='" . esc_url( get_delete_post_link( $reply->ID, '', true ) ) . "'>" . esc_html__( 'Delete Permanently', 'bbpress' ) . "</a>";
|
|
|
|
|
838 |
}
|
839 |
}
|
840 |
|
841 |
+
// Sort & return
|
842 |
+
return $this->sort_row_actions( $actions );
|
843 |
+
}
|
844 |
+
|
845 |
+
/**
|
846 |
+
* Sort row actions by key
|
847 |
+
*
|
848 |
+
* @since 2.6.0
|
849 |
+
*
|
850 |
+
* @param array $actions
|
851 |
+
*
|
852 |
+
* @return array
|
853 |
+
*/
|
854 |
+
private function sort_row_actions( $actions = array() ) {
|
855 |
+
|
856 |
+
// Return value
|
857 |
+
$retval = array();
|
858 |
+
|
859 |
+
// Known row actions, in sort order
|
860 |
+
$known_actions = $this->get_row_action_sort_order();
|
861 |
+
|
862 |
+
// Sort known actions, and keep any unknown ones
|
863 |
+
foreach ( $known_actions as $key ) {
|
864 |
+
if ( isset( $actions[ $key ] ) ) {
|
865 |
+
$retval[ $key ] = $actions[ $key ];
|
866 |
+
unset( $actions[ $key ] );
|
867 |
+
}
|
868 |
+
}
|
869 |
+
|
870 |
+
// Combine & return
|
871 |
+
return $retval + $actions;
|
872 |
}
|
873 |
|
874 |
/**
|
880 |
*/
|
881 |
public function filter_dropdown() {
|
882 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
883 |
// Get which forum is selected
|
884 |
$selected = ! empty( $_GET['bbp_forum_id'] )
|
885 |
? (int) $_GET['bbp_forum_id']
|
892 |
) );
|
893 |
}
|
894 |
|
895 |
+
/**
|
896 |
+
* Add "Empty Spam" button for moderators
|
897 |
+
*
|
898 |
+
* @since 2.6.0 bbPress (r6791)
|
899 |
+
*/
|
900 |
+
public function filter_empty_spam() {
|
901 |
+
|
902 |
+
// Bail if not viewing spam
|
903 |
+
if ( empty( $_GET['post_status'] ) || ( bbp_get_spam_status_id() !== $_GET['post_status'] ) && current_user_can( 'moderate' ) ) {
|
904 |
+
return;
|
905 |
+
}
|
906 |
+
|
907 |
+
?>
|
908 |
+
|
909 |
+
<div class="alignleft actions"><?php
|
910 |
+
|
911 |
+
// Output the nonce & button
|
912 |
+
wp_nonce_field( 'bulk-destroy', '_destroy_nonce' );
|
913 |
+
submit_button(
|
914 |
+
esc_attr__( 'Empty Spam', 'bbpress' ),
|
915 |
+
'button-secondary apply',
|
916 |
+
'delete_all',
|
917 |
+
false
|
918 |
+
);
|
919 |
+
|
920 |
+
?></div><?php
|
921 |
+
}
|
922 |
+
|
923 |
/**
|
924 |
* Adjust the request query and include the forum id
|
925 |
*
|
968 |
// Updated
|
969 |
1 => sprintf(
|
970 |
'%1$s <a href="%2$s">%3$s</a>',
|
971 |
+
esc_html__( 'Reply updated.', 'bbpress' ),
|
972 |
$topic_url,
|
973 |
+
esc_html__( 'View topic', 'bbpress' )
|
974 |
),
|
975 |
|
976 |
// Custom field updated
|
977 |
+
2 => esc_html__( 'Custom field updated.', 'bbpress' ),
|
978 |
|
979 |
// Custom field deleted
|
980 |
+
3 => esc_html__( 'Custom field deleted.', 'bbpress' ),
|
981 |
|
982 |
// Reply updated
|
983 |
+
4 => esc_html__( 'Reply updated.', 'bbpress' ),
|
984 |
|
985 |
// Restored from revision
|
986 |
// translators: %s: date and time of the revision
|
987 |
5 => isset( $_GET['revision'] )
|
988 |
+
? sprintf( esc_html__( 'Reply restored to revision from %s', 'bbpress' ), wp_post_revision_title( (int) $_GET['revision'], false ) )
|
989 |
: false,
|
990 |
|
991 |
// Reply created
|
992 |
6 => sprintf(
|
993 |
'%1$s <a href="%2$s">%3$s</a>',
|
994 |
+
esc_html__( 'Reply created.', 'bbpress' ),
|
995 |
$topic_url,
|
996 |
+
esc_html__( 'View topic', 'bbpress' )
|
997 |
),
|
998 |
|
999 |
// Reply saved
|
1000 |
+
7 => esc_html__( 'Reply saved.', 'bbpress' ),
|
1001 |
|
1002 |
// Reply submitted
|
1003 |
8 => sprintf(
|
1004 |
'%1$s <a href="%2$s" target="_blank">%3$s</a>',
|
1005 |
+
esc_html__( 'Reply submitted.', 'bbpress' ),
|
1006 |
esc_url( add_query_arg( 'preview', 'true', $topic_url ) ),
|
1007 |
+
esc_html__( 'Preview topic', 'bbpress' )
|
1008 |
),
|
1009 |
|
1010 |
// Reply scheduled
|
1011 |
9 => sprintf(
|
1012 |
'%1$s <a target="_blank" href="%2$s">%3$s</a>',
|
1013 |
sprintf(
|
1014 |
+
esc_html__( 'Reply scheduled for: %s.', 'bbpress' ),
|
1015 |
// translators: Publish box date format, see http://php.net/date
|
1016 |
'<strong>' . date_i18n( __( 'M j, Y @ G:i', 'bbpress' ), strtotime( $post_date ) ) . '</strong>'
|
1017 |
),
|
1018 |
$topic_url,
|
1019 |
+
esc_html__( 'Preview topic', 'bbpress' )
|
1020 |
),
|
1021 |
|
1022 |
// Reply draft updated
|
1023 |
10 => sprintf(
|
1024 |
'%1$s <a href="%2$s" target="_blank">%3$s</a>',
|
1025 |
+
esc_html__( 'Reply draft updated.', 'bbpress' ),
|
1026 |
esc_url( add_query_arg( 'preview', 'true', $topic_url ) ),
|
1027 |
+
esc_html__( 'Preview topic', 'bbpress' )
|
1028 |
),
|
1029 |
);
|
1030 |
|
1051 |
}
|
1052 |
|
1053 |
// Init the replies admin
|
1054 |
+
bbp_admin()->replies = new BBP_Replies_Admin();
|
1055 |
}
|
includes/admin/settings.php
CHANGED
@@ -97,7 +97,7 @@ function bbp_admin_get_settings_sections() {
|
|
97 |
*
|
98 |
* @since 2.1.0 bbPress (r4001)
|
99 |
*
|
100 |
-
* @return
|
101 |
*/
|
102 |
function bbp_admin_get_settings_fields() {
|
103 |
|
@@ -492,7 +492,7 @@ function bbp_admin_get_settings_fields() {
|
|
492 |
'title' => esc_html__( 'Select Platform', 'bbpress' ),
|
493 |
'callback' => 'bbp_converter_setting_callback_platform',
|
494 |
'sanitize_callback' => 'sanitize_text_field',
|
495 |
-
'args' => array()
|
496 |
),
|
497 |
|
498 |
// Database Server
|
@@ -500,7 +500,7 @@ function bbp_admin_get_settings_fields() {
|
|
500 |
'title' => esc_html__( 'Database Server', 'bbpress' ),
|
501 |
'callback' => 'bbp_converter_setting_callback_dbserver',
|
502 |
'sanitize_callback' => 'sanitize_text_field',
|
503 |
-
'args' => array()
|
504 |
),
|
505 |
|
506 |
// Database Server Port
|
@@ -508,7 +508,7 @@ function bbp_admin_get_settings_fields() {
|
|
508 |
'title' => esc_html__( 'Database Port', 'bbpress' ),
|
509 |
'callback' => 'bbp_converter_setting_callback_dbport',
|
510 |
'sanitize_callback' => 'intval',
|
511 |
-
'args' => array()
|
512 |
),
|
513 |
|
514 |
// Database Name
|
@@ -516,7 +516,7 @@ function bbp_admin_get_settings_fields() {
|
|
516 |
'title' => esc_html__( 'Database Name', 'bbpress' ),
|
517 |
'callback' => 'bbp_converter_setting_callback_dbname',
|
518 |
'sanitize_callback' => 'sanitize_text_field',
|
519 |
-
'args' => array()
|
520 |
),
|
521 |
|
522 |
// Database User
|
@@ -524,7 +524,7 @@ function bbp_admin_get_settings_fields() {
|
|
524 |
'title' => esc_html__( 'Database User', 'bbpress' ),
|
525 |
'callback' => 'bbp_converter_setting_callback_dbuser',
|
526 |
'sanitize_callback' => 'sanitize_text_field',
|
527 |
-
'args' => array()
|
528 |
),
|
529 |
|
530 |
// Database User
|
@@ -532,7 +532,7 @@ function bbp_admin_get_settings_fields() {
|
|
532 |
'title' => esc_html__( 'Database Password', 'bbpress' ),
|
533 |
'callback' => 'bbp_converter_setting_callback_dbpass',
|
534 |
'sanitize_callback' => 'sanitize_text_field',
|
535 |
-
'args' => array()
|
536 |
),
|
537 |
|
538 |
// Database User
|
@@ -540,7 +540,7 @@ function bbp_admin_get_settings_fields() {
|
|
540 |
'title' => esc_html__( 'Table Prefix', 'bbpress' ),
|
541 |
'callback' => 'bbp_converter_setting_callback_dbprefix',
|
542 |
'sanitize_callback' => 'sanitize_text_field',
|
543 |
-
'args' => array()
|
544 |
)
|
545 |
),
|
546 |
|
@@ -552,7 +552,7 @@ function bbp_admin_get_settings_fields() {
|
|
552 |
'title' => esc_html__( 'Rows Limit', 'bbpress' ),
|
553 |
'callback' => 'bbp_converter_setting_callback_rows',
|
554 |
'sanitize_callback' => 'intval',
|
555 |
-
'args' => array()
|
556 |
),
|
557 |
|
558 |
// Delay Time
|
@@ -560,7 +560,7 @@ function bbp_admin_get_settings_fields() {
|
|
560 |
'title' => esc_html__( 'Delay Time', 'bbpress' ),
|
561 |
'callback' => 'bbp_converter_setting_callback_delay_time',
|
562 |
'sanitize_callback' => 'intval',
|
563 |
-
'args' => array()
|
564 |
),
|
565 |
|
566 |
// Convert Users
|
@@ -568,7 +568,7 @@ function bbp_admin_get_settings_fields() {
|
|
568 |
'title' => esc_html__( 'Convert Users', 'bbpress' ),
|
569 |
'callback' => 'bbp_converter_setting_callback_convert_users',
|
570 |
'sanitize_callback' => 'intval',
|
571 |
-
'args' => array()
|
572 |
),
|
573 |
|
574 |
// Halt
|
@@ -576,7 +576,7 @@ function bbp_admin_get_settings_fields() {
|
|
576 |
'title' => esc_html__( 'Stop on Error', 'bbpress' ),
|
577 |
'callback' => 'bbp_converter_setting_callback_halt',
|
578 |
'sanitize_callback' => 'intval',
|
579 |
-
'args' => array()
|
580 |
),
|
581 |
|
582 |
// Restart
|
@@ -584,7 +584,7 @@ function bbp_admin_get_settings_fields() {
|
|
584 |
'title' => esc_html__( 'Start Over', 'bbpress' ),
|
585 |
'callback' => 'bbp_converter_setting_callback_restart',
|
586 |
'sanitize_callback' => 'intval',
|
587 |
-
'args' => array()
|
588 |
),
|
589 |
|
590 |
// Clean
|
@@ -592,7 +592,7 @@ function bbp_admin_get_settings_fields() {
|
|
592 |
'title' => esc_html__( 'Helper Data', 'bbpress' ),
|
593 |
'callback' => 'bbp_converter_setting_callback_clean',
|
594 |
'sanitize_callback' => 'intval',
|
595 |
-
'args' => array()
|
596 |
)
|
597 |
)
|
598 |
) );
|
@@ -1522,7 +1522,7 @@ function bbp_admin_settings() {
|
|
1522 |
function bbp_converter_setting_callback_main_section() {
|
1523 |
?>
|
1524 |
|
1525 |
-
<p><?php _e( 'Information about your previous forums
|
1526 |
|
1527 |
<?php
|
1528 |
}
|
@@ -1545,7 +1545,7 @@ function bbp_converter_setting_callback_platform() {
|
|
1545 |
} ?>
|
1546 |
|
1547 |
<select name="_bbp_converter_platform" id="_bbp_converter_platform"><?php echo $options ?></select>
|
1548 |
-
<
|
1549 |
|
1550 |
<?php
|
1551 |
}
|
@@ -1559,7 +1559,7 @@ function bbp_converter_setting_callback_dbserver() {
|
|
1559 |
?>
|
1560 |
|
1561 |
<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' ); ?> />
|
1562 |
-
<
|
1563 |
|
1564 |
<?php
|
1565 |
}
|
@@ -1573,7 +1573,7 @@ function bbp_converter_setting_callback_dbport() {
|
|
1573 |
?>
|
1574 |
|
1575 |
<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' ); ?> />
|
1576 |
-
<
|
1577 |
|
1578 |
<?php
|
1579 |
}
|
@@ -1587,7 +1587,7 @@ function bbp_converter_setting_callback_dbuser() {
|
|
1587 |
?>
|
1588 |
|
1589 |
<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' ); ?> />
|
1590 |
-
<
|
1591 |
|
1592 |
<?php
|
1593 |
}
|
@@ -1601,13 +1601,13 @@ function bbp_converter_setting_callback_dbpass() {
|
|
1601 |
?>
|
1602 |
|
1603 |
<span class="bbp-converter-db-password-wrapper">
|
1604 |
-
<input name="_bbp_converter_db_pass" id="_bbp_converter_db_pass" class="bbp-converter-db-pass" type="password"
|
1605 |
<button type="button" class="bbp-db-pass-toggle password">
|
1606 |
<span class="screen-reader-text"><?php esc_html_e( 'Toggle', 'bbpress' ); ?></span>
|
1607 |
<span class="toggle-indicator" aria-hidden="true"></span>
|
1608 |
</button>
|
1609 |
</span>
|
1610 |
-
<
|
1611 |
|
1612 |
<?php
|
1613 |
}
|
@@ -1621,7 +1621,7 @@ function bbp_converter_setting_callback_dbname() {
|
|
1621 |
?>
|
1622 |
|
1623 |
<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' ); ?> />
|
1624 |
-
<
|
1625 |
|
1626 |
<?php
|
1627 |
}
|
@@ -1648,7 +1648,7 @@ function bbp_converter_setting_callback_dbprefix() {
|
|
1648 |
?>
|
1649 |
|
1650 |
<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' ); ?> />
|
1651 |
-
<
|
1652 |
|
1653 |
<?php
|
1654 |
}
|
@@ -1755,7 +1755,7 @@ function bbp_converter_settings_page() {
|
|
1755 |
|
1756 |
// Status
|
1757 |
$step = (int) get_option( '_bbp_converter_step', 0 );
|
1758 |
-
$max = (int)
|
1759 |
|
1760 |
// Starting or continuing?
|
1761 |
$status_text = ! empty( $step )
|
@@ -1777,46 +1777,47 @@ function bbp_converter_settings_page() {
|
|
1777 |
<hr class="wp-header-end">
|
1778 |
<h2 class="nav-tab-wrapper"><?php bbp_tools_admin_tabs( esc_html__( 'Import Forums', 'bbpress' ) ); ?></h2>
|
1779 |
|
1780 |
-
<
|
1781 |
-
|
1782 |
-
|
1783 |
-
|
1784 |
-
|
1785 |
-
|
1786 |
-
|
1787 |
-
|
1788 |
-
|
1789 |
-
|
1790 |
-
|
1791 |
-
|
1792 |
-
|
1793 |
-
|
1794 |
-
|
1795 |
-
|
1796 |
-
|
1797 |
-
|
1798 |
-
|
1799 |
-
|
1800 |
-
|
1801 |
-
|
1802 |
-
|
1803 |
-
|
1804 |
-
|
1805 |
-
<h2 class="hndle ui-sortable-handle">
|
1806 |
-
<span><?php esc_html_e( 'Import Monitor', 'bbpress' ); ?></span>
|
1807 |
-
<span id="bbp-converter-status"><?php echo esc_html( $status_text ); ?></span>
|
1808 |
-
<span id="bbp-converter-step-percentage" class="bbp-progress-bar"></span>
|
1809 |
-
<span id="bbp-converter-total-percentage" class="bbp-progress-bar"></span>
|
1810 |
-
</h2>
|
1811 |
-
<div class="inside">
|
1812 |
-
<div id="bbp-converter-message" class="bbp-converter-log">
|
1813 |
-
<p><?php echo esc_html( $progress_text ); ?></p>
|
1814 |
</div>
|
1815 |
</div>
|
1816 |
</div>
|
1817 |
</div>
|
1818 |
</div>
|
1819 |
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1820 |
</div>
|
1821 |
</div>
|
1822 |
<?php
|
97 |
*
|
98 |
* @since 2.1.0 bbPress (r4001)
|
99 |
*
|
100 |
+
* @return array
|
101 |
*/
|
102 |
function bbp_admin_get_settings_fields() {
|
103 |
|
492 |
'title' => esc_html__( 'Select Platform', 'bbpress' ),
|
493 |
'callback' => 'bbp_converter_setting_callback_platform',
|
494 |
'sanitize_callback' => 'sanitize_text_field',
|
495 |
+
'args' => array( 'label_for'=> '_bbp_converter_platform' )
|
496 |
),
|
497 |
|
498 |
// Database Server
|
500 |
'title' => esc_html__( 'Database Server', 'bbpress' ),
|
501 |
'callback' => 'bbp_converter_setting_callback_dbserver',
|
502 |
'sanitize_callback' => 'sanitize_text_field',
|
503 |
+
'args' => array( 'label_for'=> '_bbp_converter_db_server' )
|
504 |
),
|
505 |
|
506 |
// Database Server Port
|
508 |
'title' => esc_html__( 'Database Port', 'bbpress' ),
|
509 |
'callback' => 'bbp_converter_setting_callback_dbport',
|
510 |
'sanitize_callback' => 'intval',
|
511 |
+
'args' => array( 'label_for'=> '_bbp_converter_db_port' )
|
512 |
),
|
513 |
|
514 |
// Database Name
|
516 |
'title' => esc_html__( 'Database Name', 'bbpress' ),
|
517 |
'callback' => 'bbp_converter_setting_callback_dbname',
|
518 |
'sanitize_callback' => 'sanitize_text_field',
|
519 |
+
'args' => array( 'label_for'=> '_bbp_converter_db_name' )
|
520 |
),
|
521 |
|
522 |
// Database User
|
524 |
'title' => esc_html__( 'Database User', 'bbpress' ),
|
525 |
'callback' => 'bbp_converter_setting_callback_dbuser',
|
526 |
'sanitize_callback' => 'sanitize_text_field',
|
527 |
+
'args' => array( 'label_for'=> '_bbp_converter_db_user' )
|
528 |
),
|
529 |
|
530 |
// Database User
|
532 |
'title' => esc_html__( 'Database Password', 'bbpress' ),
|
533 |
'callback' => 'bbp_converter_setting_callback_dbpass',
|
534 |
'sanitize_callback' => 'sanitize_text_field',
|
535 |
+
'args' => array( 'label_for'=> '_bbp_converter_db_pass' )
|
536 |
),
|
537 |
|
538 |
// Database User
|
540 |
'title' => esc_html__( 'Table Prefix', 'bbpress' ),
|
541 |
'callback' => 'bbp_converter_setting_callback_dbprefix',
|
542 |
'sanitize_callback' => 'sanitize_text_field',
|
543 |
+
'args' => array( 'label_for'=> '_bbp_converter_db_prefix' )
|
544 |
)
|
545 |
),
|
546 |
|
552 |
'title' => esc_html__( 'Rows Limit', 'bbpress' ),
|
553 |
'callback' => 'bbp_converter_setting_callback_rows',
|
554 |
'sanitize_callback' => 'intval',
|
555 |
+
'args' => array( 'label_for'=> '_bbp_converter_rows' )
|
556 |
),
|
557 |
|
558 |
// Delay Time
|
560 |
'title' => esc_html__( 'Delay Time', 'bbpress' ),
|
561 |
'callback' => 'bbp_converter_setting_callback_delay_time',
|
562 |
'sanitize_callback' => 'intval',
|
563 |
+
'args' => array( 'label_for'=> '_bbp_converter_delay_time' )
|
564 |
),
|
565 |
|
566 |
// Convert Users
|
568 |
'title' => esc_html__( 'Convert Users', 'bbpress' ),
|
569 |
'callback' => 'bbp_converter_setting_callback_convert_users',
|
570 |
'sanitize_callback' => 'intval',
|
571 |
+
'args' => array( 'label_for'=> '_bbp_converter_convert_users' )
|
572 |
),
|
573 |
|
574 |
// Halt
|
576 |
'title' => esc_html__( 'Stop on Error', 'bbpress' ),
|
577 |
'callback' => 'bbp_converter_setting_callback_halt',
|
578 |
'sanitize_callback' => 'intval',
|
579 |
+
'args' => array( 'label_for'=> '_bbp_converter_halt' )
|
580 |
),
|
581 |
|
582 |
// Restart
|
584 |
'title' => esc_html__( 'Start Over', 'bbpress' ),
|
585 |
'callback' => 'bbp_converter_setting_callback_restart',
|
586 |
'sanitize_callback' => 'intval',
|
587 |
+
'args' => array( 'label_for'=> '_bbp_converter_restart' )
|
588 |
),
|
589 |
|
590 |
// Clean
|
592 |
'title' => esc_html__( 'Helper Data', 'bbpress' ),
|
593 |
'callback' => 'bbp_converter_setting_callback_clean',
|
594 |
'sanitize_callback' => 'intval',
|
595 |
+
'args' => array( 'label_for'=> '_bbp_converter_clean' )
|
596 |
)
|
597 |
)
|
598 |
) );
|
1522 |
function bbp_converter_setting_callback_main_section() {
|
1523 |
?>
|
1524 |
|
1525 |
+
<p><?php _e( 'Information about the database for your previous forums so they can be converted.', 'bbpress' ); ?></p>
|
1526 |
|
1527 |
<?php
|
1528 |
}
|
1545 |
} ?>
|
1546 |
|
1547 |
<select name="_bbp_converter_platform" id="_bbp_converter_platform"><?php echo $options ?></select>
|
1548 |
+
<p class="description"><?php esc_html_e( 'The previous forum software', 'bbpress' ); ?></p>
|
1549 |
|
1550 |
<?php
|
1551 |
}
|
1559 |
?>
|
1560 |
|
1561 |
<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' ); ?> />
|
1562 |
+
<p class="description"><?php printf( esc_html__( 'Use default %s if same server, or IP or hostname', 'bbpress' ), '<code>localhost</code>' ); ?></p>
|
1563 |
|
1564 |
<?php
|
1565 |
}
|
1573 |
?>
|
1574 |
|
1575 |
<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' ); ?> />
|
1576 |
+
<p class="description"><?php printf( esc_html__( 'Use default %s if unsure', 'bbpress' ), '<code>3306</code>' ); ?></p>
|
1577 |
|
1578 |
<?php
|
1579 |
}
|
1587 |
?>
|
1588 |
|
1589 |
<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' ); ?> />
|
1590 |
+
<p class="description"><?php esc_html_e( 'User to access the database', 'bbpress' ); ?></p>
|
1591 |
|
1592 |
<?php
|
1593 |
}
|
1601 |
?>
|
1602 |
|
1603 |
<span class="bbp-converter-db-password-wrapper">
|
1604 |
+
<input name="_bbp_converter_db_pass" id="_bbp_converter_db_pass" class="bbp-converter-db-pass code" type="password" value="<?php bbp_form_option( '_bbp_converter_db_pass' ); ?>" autocomplete="off" <?php bbp_maybe_admin_setting_disabled( '_bbp_converter_db_pass' ); ?> />
|
1605 |
<button type="button" class="bbp-db-pass-toggle password">
|
1606 |
<span class="screen-reader-text"><?php esc_html_e( 'Toggle', 'bbpress' ); ?></span>
|
1607 |
<span class="toggle-indicator" aria-hidden="true"></span>
|
1608 |
</button>
|
1609 |
</span>
|
1610 |
+
<p class="description"><?php esc_html_e( 'Password for the above database user', 'bbpress' ); ?></p>
|
1611 |
|
1612 |
<?php
|
1613 |
}
|
1621 |
?>
|
1622 |
|
1623 |
<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' ); ?> />
|
1624 |
+
<p class="description"><?php esc_html_e( 'Name of the database with your old forum data', 'bbpress' ); ?></p>
|
1625 |
|
1626 |
<?php
|
1627 |
}
|
1648 |
?>
|
1649 |
|
1650 |
<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' ); ?> />
|
1651 |
+
<p class="description"><?php printf( esc_html__( 'Use %s if converting from BuddyPress Legacy', 'bbpress' ), '<code>wp_bb_</code>' ); ?></p>
|
1652 |
|
1653 |
<?php
|
1654 |
}
|
1755 |
|
1756 |
// Status
|
1757 |
$step = (int) get_option( '_bbp_converter_step', 0 );
|
1758 |
+
$max = (int) bbp_admin()->converter->max_steps;
|
1759 |
|
1760 |
// Starting or continuing?
|
1761 |
$status_text = ! empty( $step )
|
1777 |
<hr class="wp-header-end">
|
1778 |
<h2 class="nav-tab-wrapper"><?php bbp_tools_admin_tabs( esc_html__( 'Import Forums', 'bbpress' ) ); ?></h2>
|
1779 |
|
1780 |
+
<div class="bbp-converter-wrap">
|
1781 |
+
<div id="poststuff" class="bbp-converter-monitor-wrap">
|
1782 |
+
<div id="post-body" class="metabox-holder columns-1">
|
1783 |
+
<div id="postbox-container-1" class="postbox-container">
|
1784 |
+
<div id="normal-sortables" class="meta-box-sortables ui-sortable">
|
1785 |
+
<div id="bbp-converter-monitor" class="postbox">
|
1786 |
+
<button type="button" class="handlediv" aria-expanded="true">
|
1787 |
+
<span class="screen-reader-text"><?php esc_html_e( 'Toggle panel: Import Status', 'bbpress' ); ?></span>
|
1788 |
+
<span class="toggle-indicator" aria-hidden="true"></span>
|
1789 |
+
</button>
|
1790 |
+
<h2 class="hndle ui-sortable-handle">
|
1791 |
+
<span><?php esc_html_e( 'Import Monitor', 'bbpress' ); ?></span>
|
1792 |
+
<span id="bbp-converter-status"><?php echo esc_html( $status_text ); ?></span>
|
1793 |
+
<span id="bbp-converter-step-percentage" class="bbp-progress-bar"></span>
|
1794 |
+
<span id="bbp-converter-total-percentage" class="bbp-progress-bar"></span>
|
1795 |
+
</h2>
|
1796 |
+
<div class="inside">
|
1797 |
+
<div id="bbp-converter-message" class="bbp-converter-log">
|
1798 |
+
<p><?php echo esc_html( $progress_text ); ?></p>
|
1799 |
+
</div>
|
1800 |
+
</div>
|
1801 |
+
<div class="actions">
|
1802 |
+
<input type="button" name="submit" class="button-primary" id="bbp-converter-start" value="<?php echo esc_attr( $start_text ); ?>" />
|
1803 |
+
<input type="button" name="submit" class="button-primary" id="bbp-converter-stop" value="<?php esc_attr_e( 'Pause', 'bbpress' ); ?>" />
|
1804 |
+
<span class="spinner" id="bbp-converter-spinner"></span>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1805 |
</div>
|
1806 |
</div>
|
1807 |
</div>
|
1808 |
</div>
|
1809 |
</div>
|
1810 |
</div>
|
1811 |
+
|
1812 |
+
<form action="#" method="post" id="bbp-converter-settings" class="bbp-converter-settings-wrap"><?php
|
1813 |
+
|
1814 |
+
// Fields
|
1815 |
+
settings_fields( 'converter' );
|
1816 |
+
|
1817 |
+
// Sections
|
1818 |
+
do_settings_sections( 'converter' );
|
1819 |
+
|
1820 |
+
?></form>
|
1821 |
</div>
|
1822 |
</div>
|
1823 |
<?php
|
includes/admin/styles/evergreen/colors-rtl.css
CHANGED
@@ -56,7 +56,7 @@ input[type=radio]:checked:before {
|
|
56 |
box-shadow: inset 0 1px 0 #43925d, 0 0 2px 1px #33b3db;
|
57 |
}
|
58 |
|
59 |
-
.wp-core-ui .button-primary:active {
|
60 |
background: #43925d;
|
61 |
border-color: #3b8152;
|
62 |
box-shadow: inset 0 2px 0 #3b8152;
|
@@ -110,9 +110,7 @@ input[type=radio]:checked:before {
|
|
110 |
|
111 |
/* List tables */
|
112 |
.wrap .add-new-h2:hover,
|
113 |
-
.wrap .page-title-action:hover
|
114 |
-
.tablenav .tablenav-pages a:hover,
|
115 |
-
.tablenav .tablenav-pages a:focus {
|
116 |
color: #fff;
|
117 |
background-color: #446950;
|
118 |
}
|
56 |
box-shadow: inset 0 1px 0 #43925d, 0 0 2px 1px #33b3db;
|
57 |
}
|
58 |
|
59 |
+
.wp-core-ui .button-primary:active, .wp-core-ui .button-primary.active, .wp-core-ui .button-primary.active:focus, .wp-core-ui .button-primary.active:hover {
|
60 |
background: #43925d;
|
61 |
border-color: #3b8152;
|
62 |
box-shadow: inset 0 2px 0 #3b8152;
|
110 |
|
111 |
/* List tables */
|
112 |
.wrap .add-new-h2:hover,
|
113 |
+
.wrap .page-title-action:hover {
|
|
|
|
|
114 |
color: #fff;
|
115 |
background-color: #446950;
|
116 |
}
|
includes/admin/styles/evergreen/colors-rtl.min.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
body{background:#f1f1f1}a{color:#0073aa}a:active,a:focus,a:hover{color:#0096dd}#media-upload a.del-link:hover,.subsubsub a.current:hover,.subsubsub a:hover,div.dashboard-widget-submit input:hover{color:#0096dd}input[type=checkbox]:checked:before{color:#56b274}input[type=radio]:checked:before{background:#56b274}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#0096dd}.wp-core-ui .button-primary{background:#56b274;border-color:#43925d #3b8152 #3b8152;color:#fff;box-shadow:0 1px 0 #3b8152;text-shadow:0 -1px 1px #3b8152,-1px 0 1px #3b8152,0 1px 1px #3b8152,1px 0 1px #3b8152}.wp-core-ui .button-primary:focus,.wp-core-ui .button-primary:hover{background:#61b77d;border-color:#3b8152;color:#fff;box-shadow:0 1px 0 #3b8152}.wp-core-ui .button-primary:focus{box-shadow:inset 0 1px 0 #43925d,0 0 2px 1px #33b3db}.wp-core-ui .button-primary:active{background:#43925d;border-color:#3b8152;box-shadow:inset 0 2px 0 #3b8152}.wp-core-ui .button-primary.button-primary-disabled,.wp-core-ui .button-primary.disabled,.wp-core-ui .button-primary:disabled,.wp-core-ui .button-primary[disabled]{color:#c7d1ca!important;background:#469961!important;border-color:#3b8152!important;text-shadow:none!important}.wp-core-ui .button-primary.button-hero{box-shadow:0 2px 0 #3b8152!important}.wp-core-ui .button-primary.button-hero:active{box-shadow:inset 0 3px 0 #3b8152!important}.wp-core-ui .wp-ui-primary{color:#fff;background-color:#446950}.wp-core-ui .wp-ui-text-primary{color:#446950}.wp-core-ui .wp-ui-highlight{color:#fff;background-color:#56b274}.wp-core-ui .wp-ui-text-highlight{color:#56b274}.wp-core-ui .wp-ui-notification{color:#fff;background-color:#36b360}.wp-core-ui .wp-ui-text-notification{color:#36b360}.wp-core-ui .wp-ui-text-icon{color:#f1f3f2}.tablenav .tablenav-pages a:focus,.tablenav .tablenav-pages a:hover,.wrap .add-new-h2:hover,.wrap .page-title-action:hover{color:#fff;background-color:#446950}.view-switch a.current:before{color:#446950}.view-switch a:hover:before{color:#36b360}#adminmenu,#adminmenuback,#adminmenuwrap{background:#446950}#adminmenu a{color:#fff}#adminmenu div.wp-menu-image:before{color:#f1f3f2}#adminmenu a:hover,#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{color:#fff;background-color:#56b274}#adminmenu li.menu-top:hover div.wp-menu-image:before,#adminmenu li.opensub>a.menu-top div.wp-menu-image:before{color:#fff}.about-wrap h2 .nav-tab-active,.nav-tab-active,.nav-tab-active:hover{background-color:#f1f1f1;border-bottom-color:#f1f1f1}#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu.opensub .wp-submenu,#adminmenu .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu{background:#36533f}#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border-left-color:#36533f}#adminmenu .wp-submenu .wp-submenu-head{color:#c7d2cb}#adminmenu .wp-has-current-submenu .wp-submenu a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a,#adminmenu .wp-submenu a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a,.folded #adminmenu .wp-has-current-submenu .wp-submenu a{color:#c7d2cb}#adminmenu .wp-has-current-submenu .wp-submenu a:focus,#adminmenu .wp-has-current-submenu .wp-submenu a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:hover,#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:hover,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:focus,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:hover{color:#56b274}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a,#adminmenu .wp-submenu li.current a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a{color:#fff}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-submenu li.current a:focus,#adminmenu .wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover{color:#56b274}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{border-left-color:#f1f1f1}#adminmenu li.current a.menu-top,#adminmenu li.wp-has-current-submenu .wp-submenu .wp-submenu-head,#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,.folded #adminmenu li.current.menu-top{color:#fff;background:#56b274}#adminmenu a.current:hover div.wp-menu-image:before,#adminmenu li a:focus div.wp-menu-image:before,#adminmenu li.opensub div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu a:focus div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu.opensub div.wp-menu-image:before,#adminmenu li:hover div.wp-menu-image:before,.ie8 #adminmenu li.opensub div.wp-menu-image:before{color:#fff}#adminmenu .awaiting-mod,#adminmenu .update-plugins{color:#fff;background:#36b360}#adminmenu li a.wp-has-current-submenu .update-plugins,#adminmenu li.current a .awaiting-mod,#adminmenu li.menu-top:hover>a .update-plugins,#adminmenu li:hover a .awaiting-mod{color:#fff;background:#36533f}#collapse-button{color:#f1f3f2}#collapse-button:focus,#collapse-button:hover{color:#56b274}#wpadminbar{color:#fff;background:#446950}#wpadminbar .ab-item,#wpadminbar a.ab-item,#wpadminbar>#wp-toolbar span.ab-label,#wpadminbar>#wp-toolbar span.noticon{color:#fff}#wpadminbar .ab-icon,#wpadminbar .ab-icon:before,#wpadminbar .ab-item:after,#wpadminbar .ab-item:before{color:#f1f3f2}#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,#wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus{color:#56b274;background:#36533f}#wpadminbar:not(.mobile)>#wp-toolbar a:focus span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li.hover span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li:hover span.ab-label{color:#56b274}#wpadminbar:not(.mobile) li:hover #adminbarsearch:before,#wpadminbar:not(.mobile) li:hover .ab-icon:before,#wpadminbar:not(.mobile) li:hover .ab-item:after,#wpadminbar:not(.mobile) li:hover .ab-item:before{color:#fff}#wpadminbar .menupop .ab-sub-wrapper{background:#36533f}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu{background:#597763}#wpadminbar .ab-submenu .ab-item,#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar.nojs .quicklinks .menupop:hover ul li a{color:#c7d2cb}#wpadminbar .menupop .menupop>.ab-item:before,#wpadminbar .quicklinks li .blavatar{color:#f1f3f2}#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a,#wpadminbar .quicklinks .menupop ul li a:focus,#wpadminbar .quicklinks .menupop ul li a:focus strong,#wpadminbar .quicklinks .menupop ul li a:hover,#wpadminbar .quicklinks .menupop ul li a:hover strong,#wpadminbar .quicklinks .menupop.hover ul li a:focus,#wpadminbar .quicklinks .menupop.hover ul li a:hover,#wpadminbar li #adminbarsearch.adminbar-focused:before,#wpadminbar li .ab-item:focus .ab-icon:before,#wpadminbar li .ab-item:focus:before,#wpadminbar li a:focus .ab-icon:before,#wpadminbar li.hover .ab-icon:before,#wpadminbar li.hover .ab-item:before,#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:before,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover{color:#56b274}#wpadminbar .menupop .menupop>.ab-item:hover:before,#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a .blavatar,#wpadminbar .quicklinks li a:focus .blavatar,#wpadminbar .quicklinks li a:hover .blavatar,#wpadminbar.mobile .quicklinks .ab-icon:before,#wpadminbar.mobile .quicklinks .ab-item:before{color:#56b274}#wpadminbar.mobile .quicklinks .hover .ab-icon:before,#wpadminbar.mobile .quicklinks .hover .ab-item:before{color:#f1f3f2}#wpadminbar #adminbarsearch:before{color:#f1f3f2}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{color:#fff;background:#527f61}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{border-color:#527f61;background-color:#527f61}#wpadminbar #wp-admin-bar-user-info .display-name{color:#fff}#wpadminbar #wp-admin-bar-user-info a:hover .display-name{color:#56b274}#wpadminbar #wp-admin-bar-user-info .username{color:#c7d2cb}.wp-pointer .wp-pointer-content h3{background-color:#56b274;border-color:#4ba468}.wp-pointer .wp-pointer-content h3:before{color:#56b274}.wp-pointer.wp-pointer-top .wp-pointer-arrow,.wp-pointer.wp-pointer-top .wp-pointer-arrow-inner,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow-inner{border-bottom-color:#56b274}.media-item .bar,.media-progress-bar div{background-color:#56b274}.details.attachment{box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #56b274}.attachment.details .check{background-color:#56b274;box-shadow:0 0 0 1px #fff,0 0 0 2px #56b274}.media-selection .attachment.selection.details .thumbnail{box-shadow:0 0 0 1px #fff,0 0 0 3px #56b274}.theme-browser .theme.active .theme-name,.theme-browser .theme.add-new-theme a:focus:after,.theme-browser .theme.add-new-theme a:hover:after{background:#56b274}.theme-browser .theme.add-new-theme a:focus span:after,.theme-browser .theme.add-new-theme a:hover span:after{color:#56b274}.theme-filter.current,.theme-section.current{border-bottom-color:#446950}body.more-filters-opened .more-filters{color:#fff;background-color:#446950}body.more-filters-opened .more-filters:before{color:#fff}body.more-filters-opened .more-filters:focus,body.more-filters-opened .more-filters:hover{background-color:#56b274;color:#fff}body.more-filters-opened .more-filters:focus:before,body.more-filters-opened .more-filters:hover:before{color:#fff}.widgets-chooser li.widgets-chooser-selected{background-color:#56b274;color:#fff}.widgets-chooser li.widgets-chooser-selected:before,.widgets-chooser li.widgets-chooser-selected:focus:before{color:#fff}div#wp-responsive-toggle a:before{color:#f1f3f2}.wp-responsive-open div#wp-responsive-toggle a{border-color:transparent;background:#56b274}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a{background:#36533f}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle .ab-icon:before{color:#f1f3f2}.mce-container.mce-menu .mce-menu-item-normal.mce-active,.mce-container.mce-menu .mce-menu-item-preview.mce-active,.mce-container.mce-menu .mce-menu-item.mce-selected,.mce-container.mce-menu .mce-menu-item:focus,.mce-container.mce-menu .mce-menu-item:hover{background:#56b274}
|
1 |
+
body{background:#f1f1f1}a{color:#0073aa}a:active,a:focus,a:hover{color:#0096dd}#media-upload a.del-link:hover,.subsubsub a.current:hover,.subsubsub a:hover,div.dashboard-widget-submit input:hover{color:#0096dd}input[type=checkbox]:checked:before{color:#56b274}input[type=radio]:checked:before{background:#56b274}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#0096dd}.wp-core-ui .button-primary{background:#56b274;border-color:#43925d #3b8152 #3b8152;color:#fff;box-shadow:0 1px 0 #3b8152;text-shadow:0 -1px 1px #3b8152,-1px 0 1px #3b8152,0 1px 1px #3b8152,1px 0 1px #3b8152}.wp-core-ui .button-primary:focus,.wp-core-ui .button-primary:hover{background:#61b77d;border-color:#3b8152;color:#fff;box-shadow:0 1px 0 #3b8152}.wp-core-ui .button-primary:focus{box-shadow:inset 0 1px 0 #43925d,0 0 2px 1px #33b3db}.wp-core-ui .button-primary.active,.wp-core-ui .button-primary.active:focus,.wp-core-ui .button-primary.active:hover,.wp-core-ui .button-primary:active{background:#43925d;border-color:#3b8152;box-shadow:inset 0 2px 0 #3b8152}.wp-core-ui .button-primary.button-primary-disabled,.wp-core-ui .button-primary.disabled,.wp-core-ui .button-primary:disabled,.wp-core-ui .button-primary[disabled]{color:#c7d1ca!important;background:#469961!important;border-color:#3b8152!important;text-shadow:none!important}.wp-core-ui .button-primary.button-hero{box-shadow:0 2px 0 #3b8152!important}.wp-core-ui .button-primary.button-hero:active{box-shadow:inset 0 3px 0 #3b8152!important}.wp-core-ui .wp-ui-primary{color:#fff;background-color:#446950}.wp-core-ui .wp-ui-text-primary{color:#446950}.wp-core-ui .wp-ui-highlight{color:#fff;background-color:#56b274}.wp-core-ui .wp-ui-text-highlight{color:#56b274}.wp-core-ui .wp-ui-notification{color:#fff;background-color:#36b360}.wp-core-ui .wp-ui-text-notification{color:#36b360}.wp-core-ui .wp-ui-text-icon{color:#f1f3f2}.wrap .add-new-h2:hover,.wrap .page-title-action:hover{color:#fff;background-color:#446950}.view-switch a.current:before{color:#446950}.view-switch a:hover:before{color:#36b360}#adminmenu,#adminmenuback,#adminmenuwrap{background:#446950}#adminmenu a{color:#fff}#adminmenu div.wp-menu-image:before{color:#f1f3f2}#adminmenu a:hover,#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{color:#fff;background-color:#56b274}#adminmenu li.menu-top:hover div.wp-menu-image:before,#adminmenu li.opensub>a.menu-top div.wp-menu-image:before{color:#fff}.about-wrap h2 .nav-tab-active,.nav-tab-active,.nav-tab-active:hover{background-color:#f1f1f1;border-bottom-color:#f1f1f1}#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu.opensub .wp-submenu,#adminmenu .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu{background:#36533f}#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border-left-color:#36533f}#adminmenu .wp-submenu .wp-submenu-head{color:#c7d2cb}#adminmenu .wp-has-current-submenu .wp-submenu a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a,#adminmenu .wp-submenu a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a,.folded #adminmenu .wp-has-current-submenu .wp-submenu a{color:#c7d2cb}#adminmenu .wp-has-current-submenu .wp-submenu a:focus,#adminmenu .wp-has-current-submenu .wp-submenu a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:hover,#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:hover,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:focus,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:hover{color:#56b274}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a,#adminmenu .wp-submenu li.current a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a{color:#fff}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-submenu li.current a:focus,#adminmenu .wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover{color:#56b274}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{border-left-color:#f1f1f1}#adminmenu li.current a.menu-top,#adminmenu li.wp-has-current-submenu .wp-submenu .wp-submenu-head,#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,.folded #adminmenu li.current.menu-top{color:#fff;background:#56b274}#adminmenu a.current:hover div.wp-menu-image:before,#adminmenu li a:focus div.wp-menu-image:before,#adminmenu li.opensub div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu a:focus div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu.opensub div.wp-menu-image:before,#adminmenu li:hover div.wp-menu-image:before,.ie8 #adminmenu li.opensub div.wp-menu-image:before{color:#fff}#adminmenu .awaiting-mod,#adminmenu .update-plugins{color:#fff;background:#36b360}#adminmenu li a.wp-has-current-submenu .update-plugins,#adminmenu li.current a .awaiting-mod,#adminmenu li.menu-top:hover>a .update-plugins,#adminmenu li:hover a .awaiting-mod{color:#fff;background:#36533f}#collapse-button{color:#f1f3f2}#collapse-button:focus,#collapse-button:hover{color:#56b274}#wpadminbar{color:#fff;background:#446950}#wpadminbar .ab-item,#wpadminbar a.ab-item,#wpadminbar>#wp-toolbar span.ab-label,#wpadminbar>#wp-toolbar span.noticon{color:#fff}#wpadminbar .ab-icon,#wpadminbar .ab-icon:before,#wpadminbar .ab-item:after,#wpadminbar .ab-item:before{color:#f1f3f2}#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,#wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus{color:#56b274;background:#36533f}#wpadminbar:not(.mobile)>#wp-toolbar a:focus span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li.hover span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li:hover span.ab-label{color:#56b274}#wpadminbar:not(.mobile) li:hover #adminbarsearch:before,#wpadminbar:not(.mobile) li:hover .ab-icon:before,#wpadminbar:not(.mobile) li:hover .ab-item:after,#wpadminbar:not(.mobile) li:hover .ab-item:before{color:#fff}#wpadminbar .menupop .ab-sub-wrapper{background:#36533f}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu{background:#597763}#wpadminbar .ab-submenu .ab-item,#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar.nojs .quicklinks .menupop:hover ul li a{color:#c7d2cb}#wpadminbar .menupop .menupop>.ab-item:before,#wpadminbar .quicklinks li .blavatar{color:#f1f3f2}#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a,#wpadminbar .quicklinks .menupop ul li a:focus,#wpadminbar .quicklinks .menupop ul li a:focus strong,#wpadminbar .quicklinks .menupop ul li a:hover,#wpadminbar .quicklinks .menupop ul li a:hover strong,#wpadminbar .quicklinks .menupop.hover ul li a:focus,#wpadminbar .quicklinks .menupop.hover ul li a:hover,#wpadminbar li #adminbarsearch.adminbar-focused:before,#wpadminbar li .ab-item:focus .ab-icon:before,#wpadminbar li .ab-item:focus:before,#wpadminbar li a:focus .ab-icon:before,#wpadminbar li.hover .ab-icon:before,#wpadminbar li.hover .ab-item:before,#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:before,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover{color:#56b274}#wpadminbar .menupop .menupop>.ab-item:hover:before,#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a .blavatar,#wpadminbar .quicklinks li a:focus .blavatar,#wpadminbar .quicklinks li a:hover .blavatar,#wpadminbar.mobile .quicklinks .ab-icon:before,#wpadminbar.mobile .quicklinks .ab-item:before{color:#56b274}#wpadminbar.mobile .quicklinks .hover .ab-icon:before,#wpadminbar.mobile .quicklinks .hover .ab-item:before{color:#f1f3f2}#wpadminbar #adminbarsearch:before{color:#f1f3f2}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{color:#fff;background:#527f61}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{border-color:#527f61;background-color:#527f61}#wpadminbar #wp-admin-bar-user-info .display-name{color:#fff}#wpadminbar #wp-admin-bar-user-info a:hover .display-name{color:#56b274}#wpadminbar #wp-admin-bar-user-info .username{color:#c7d2cb}.wp-pointer .wp-pointer-content h3{background-color:#56b274;border-color:#4ba468}.wp-pointer .wp-pointer-content h3:before{color:#56b274}.wp-pointer.wp-pointer-top .wp-pointer-arrow,.wp-pointer.wp-pointer-top .wp-pointer-arrow-inner,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow-inner{border-bottom-color:#56b274}.media-item .bar,.media-progress-bar div{background-color:#56b274}.details.attachment{box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #56b274}.attachment.details .check{background-color:#56b274;box-shadow:0 0 0 1px #fff,0 0 0 2px #56b274}.media-selection .attachment.selection.details .thumbnail{box-shadow:0 0 0 1px #fff,0 0 0 3px #56b274}.theme-browser .theme.active .theme-name,.theme-browser .theme.add-new-theme a:focus:after,.theme-browser .theme.add-new-theme a:hover:after{background:#56b274}.theme-browser .theme.add-new-theme a:focus span:after,.theme-browser .theme.add-new-theme a:hover span:after{color:#56b274}.theme-filter.current,.theme-section.current{border-bottom-color:#446950}body.more-filters-opened .more-filters{color:#fff;background-color:#446950}body.more-filters-opened .more-filters:before{color:#fff}body.more-filters-opened .more-filters:focus,body.more-filters-opened .more-filters:hover{background-color:#56b274;color:#fff}body.more-filters-opened .more-filters:focus:before,body.more-filters-opened .more-filters:hover:before{color:#fff}.widgets-chooser li.widgets-chooser-selected{background-color:#56b274;color:#fff}.widgets-chooser li.widgets-chooser-selected:before,.widgets-chooser li.widgets-chooser-selected:focus:before{color:#fff}div#wp-responsive-toggle a:before{color:#f1f3f2}.wp-responsive-open div#wp-responsive-toggle a{border-color:transparent;background:#56b274}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a{background:#36533f}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle .ab-icon:before{color:#f1f3f2}.mce-container.mce-menu .mce-menu-item-normal.mce-active,.mce-container.mce-menu .mce-menu-item-preview.mce-active,.mce-container.mce-menu .mce-menu-item.mce-selected,.mce-container.mce-menu .mce-menu-item:focus,.mce-container.mce-menu .mce-menu-item:hover{background:#56b274}
|
includes/admin/styles/evergreen/colors.css
CHANGED
@@ -56,7 +56,7 @@ input[type=radio]:checked:before {
|
|
56 |
box-shadow: inset 0 1px 0 #43925d, 0 0 2px 1px #33b3db;
|
57 |
}
|
58 |
|
59 |
-
.wp-core-ui .button-primary:active {
|
60 |
background: #43925d;
|
61 |
border-color: #3b8152;
|
62 |
box-shadow: inset 0 2px 0 #3b8152;
|
@@ -110,9 +110,7 @@ input[type=radio]:checked:before {
|
|
110 |
|
111 |
/* List tables */
|
112 |
.wrap .add-new-h2:hover,
|
113 |
-
.wrap .page-title-action:hover
|
114 |
-
.tablenav .tablenav-pages a:hover,
|
115 |
-
.tablenav .tablenav-pages a:focus {
|
116 |
color: #fff;
|
117 |
background-color: #446950;
|
118 |
}
|
56 |
box-shadow: inset 0 1px 0 #43925d, 0 0 2px 1px #33b3db;
|
57 |
}
|
58 |
|
59 |
+
.wp-core-ui .button-primary:active, .wp-core-ui .button-primary.active, .wp-core-ui .button-primary.active:focus, .wp-core-ui .button-primary.active:hover {
|
60 |
background: #43925d;
|
61 |
border-color: #3b8152;
|
62 |
box-shadow: inset 0 2px 0 #3b8152;
|
110 |
|
111 |
/* List tables */
|
112 |
.wrap .add-new-h2:hover,
|
113 |
+
.wrap .page-title-action:hover {
|
|
|
|
|
114 |
color: #fff;
|
115 |
background-color: #446950;
|
116 |
}
|
includes/admin/styles/evergreen/colors.min.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
body{background:#f1f1f1}a{color:#0073aa}a:active,a:focus,a:hover{color:#0096dd}#media-upload a.del-link:hover,.subsubsub a.current:hover,.subsubsub a:hover,div.dashboard-widget-submit input:hover{color:#0096dd}input[type=checkbox]:checked:before{color:#56b274}input[type=radio]:checked:before{background:#56b274}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#0096dd}.wp-core-ui .button-primary{background:#56b274;border-color:#43925d #3b8152 #3b8152;color:#fff;box-shadow:0 1px 0 #3b8152;text-shadow:0 -1px 1px #3b8152,1px 0 1px #3b8152,0 1px 1px #3b8152,-1px 0 1px #3b8152}.wp-core-ui .button-primary:focus,.wp-core-ui .button-primary:hover{background:#61b77d;border-color:#3b8152;color:#fff;box-shadow:0 1px 0 #3b8152}.wp-core-ui .button-primary:focus{box-shadow:inset 0 1px 0 #43925d,0 0 2px 1px #33b3db}.wp-core-ui .button-primary:active{background:#43925d;border-color:#3b8152;box-shadow:inset 0 2px 0 #3b8152}.wp-core-ui .button-primary.button-primary-disabled,.wp-core-ui .button-primary.disabled,.wp-core-ui .button-primary:disabled,.wp-core-ui .button-primary[disabled]{color:#c7d1ca!important;background:#469961!important;border-color:#3b8152!important;text-shadow:none!important}.wp-core-ui .button-primary.button-hero{box-shadow:0 2px 0 #3b8152!important}.wp-core-ui .button-primary.button-hero:active{box-shadow:inset 0 3px 0 #3b8152!important}.wp-core-ui .wp-ui-primary{color:#fff;background-color:#446950}.wp-core-ui .wp-ui-text-primary{color:#446950}.wp-core-ui .wp-ui-highlight{color:#fff;background-color:#56b274}.wp-core-ui .wp-ui-text-highlight{color:#56b274}.wp-core-ui .wp-ui-notification{color:#fff;background-color:#36b360}.wp-core-ui .wp-ui-text-notification{color:#36b360}.wp-core-ui .wp-ui-text-icon{color:#f1f3f2}.tablenav .tablenav-pages a:focus,.tablenav .tablenav-pages a:hover,.wrap .add-new-h2:hover,.wrap .page-title-action:hover{color:#fff;background-color:#446950}.view-switch a.current:before{color:#446950}.view-switch a:hover:before{color:#36b360}#adminmenu,#adminmenuback,#adminmenuwrap{background:#446950}#adminmenu a{color:#fff}#adminmenu div.wp-menu-image:before{color:#f1f3f2}#adminmenu a:hover,#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{color:#fff;background-color:#56b274}#adminmenu li.menu-top:hover div.wp-menu-image:before,#adminmenu li.opensub>a.menu-top div.wp-menu-image:before{color:#fff}.about-wrap h2 .nav-tab-active,.nav-tab-active,.nav-tab-active:hover{background-color:#f1f1f1;border-bottom-color:#f1f1f1}#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu.opensub .wp-submenu,#adminmenu .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu{background:#36533f}#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border-right-color:#36533f}#adminmenu .wp-submenu .wp-submenu-head{color:#c7d2cb}#adminmenu .wp-has-current-submenu .wp-submenu a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a,#adminmenu .wp-submenu a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a,.folded #adminmenu .wp-has-current-submenu .wp-submenu a{color:#c7d2cb}#adminmenu .wp-has-current-submenu .wp-submenu a:focus,#adminmenu .wp-has-current-submenu .wp-submenu a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:hover,#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:hover,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:focus,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:hover{color:#56b274}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a,#adminmenu .wp-submenu li.current a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a{color:#fff}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-submenu li.current a:focus,#adminmenu .wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover{color:#56b274}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{border-right-color:#f1f1f1}#adminmenu li.current a.menu-top,#adminmenu li.wp-has-current-submenu .wp-submenu .wp-submenu-head,#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,.folded #adminmenu li.current.menu-top{color:#fff;background:#56b274}#adminmenu a.current:hover div.wp-menu-image:before,#adminmenu li a:focus div.wp-menu-image:before,#adminmenu li.opensub div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu a:focus div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu.opensub div.wp-menu-image:before,#adminmenu li:hover div.wp-menu-image:before,.ie8 #adminmenu li.opensub div.wp-menu-image:before{color:#fff}#adminmenu .awaiting-mod,#adminmenu .update-plugins{color:#fff;background:#36b360}#adminmenu li a.wp-has-current-submenu .update-plugins,#adminmenu li.current a .awaiting-mod,#adminmenu li.menu-top:hover>a .update-plugins,#adminmenu li:hover a .awaiting-mod{color:#fff;background:#36533f}#collapse-button{color:#f1f3f2}#collapse-button:focus,#collapse-button:hover{color:#56b274}#wpadminbar{color:#fff;background:#446950}#wpadminbar .ab-item,#wpadminbar a.ab-item,#wpadminbar>#wp-toolbar span.ab-label,#wpadminbar>#wp-toolbar span.noticon{color:#fff}#wpadminbar .ab-icon,#wpadminbar .ab-icon:before,#wpadminbar .ab-item:after,#wpadminbar .ab-item:before{color:#f1f3f2}#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,#wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus{color:#56b274;background:#36533f}#wpadminbar:not(.mobile)>#wp-toolbar a:focus span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li.hover span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li:hover span.ab-label{color:#56b274}#wpadminbar:not(.mobile) li:hover #adminbarsearch:before,#wpadminbar:not(.mobile) li:hover .ab-icon:before,#wpadminbar:not(.mobile) li:hover .ab-item:after,#wpadminbar:not(.mobile) li:hover .ab-item:before{color:#fff}#wpadminbar .menupop .ab-sub-wrapper{background:#36533f}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu{background:#597763}#wpadminbar .ab-submenu .ab-item,#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar.nojs .quicklinks .menupop:hover ul li a{color:#c7d2cb}#wpadminbar .menupop .menupop>.ab-item:before,#wpadminbar .quicklinks li .blavatar{color:#f1f3f2}#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a,#wpadminbar .quicklinks .menupop ul li a:focus,#wpadminbar .quicklinks .menupop ul li a:focus strong,#wpadminbar .quicklinks .menupop ul li a:hover,#wpadminbar .quicklinks .menupop ul li a:hover strong,#wpadminbar .quicklinks .menupop.hover ul li a:focus,#wpadminbar .quicklinks .menupop.hover ul li a:hover,#wpadminbar li #adminbarsearch.adminbar-focused:before,#wpadminbar li .ab-item:focus .ab-icon:before,#wpadminbar li .ab-item:focus:before,#wpadminbar li a:focus .ab-icon:before,#wpadminbar li.hover .ab-icon:before,#wpadminbar li.hover .ab-item:before,#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:before,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover{color:#56b274}#wpadminbar .menupop .menupop>.ab-item:hover:before,#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a .blavatar,#wpadminbar .quicklinks li a:focus .blavatar,#wpadminbar .quicklinks li a:hover .blavatar,#wpadminbar.mobile .quicklinks .ab-icon:before,#wpadminbar.mobile .quicklinks .ab-item:before{color:#56b274}#wpadminbar.mobile .quicklinks .hover .ab-icon:before,#wpadminbar.mobile .quicklinks .hover .ab-item:before{color:#f1f3f2}#wpadminbar #adminbarsearch:before{color:#f1f3f2}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{color:#fff;background:#527f61}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{border-color:#527f61;background-color:#527f61}#wpadminbar #wp-admin-bar-user-info .display-name{color:#fff}#wpadminbar #wp-admin-bar-user-info a:hover .display-name{color:#56b274}#wpadminbar #wp-admin-bar-user-info .username{color:#c7d2cb}.wp-pointer .wp-pointer-content h3{background-color:#56b274;border-color:#4ba468}.wp-pointer .wp-pointer-content h3:before{color:#56b274}.wp-pointer.wp-pointer-top .wp-pointer-arrow,.wp-pointer.wp-pointer-top .wp-pointer-arrow-inner,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow-inner{border-bottom-color:#56b274}.media-item .bar,.media-progress-bar div{background-color:#56b274}.details.attachment{box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #56b274}.attachment.details .check{background-color:#56b274;box-shadow:0 0 0 1px #fff,0 0 0 2px #56b274}.media-selection .attachment.selection.details .thumbnail{box-shadow:0 0 0 1px #fff,0 0 0 3px #56b274}.theme-browser .theme.active .theme-name,.theme-browser .theme.add-new-theme a:focus:after,.theme-browser .theme.add-new-theme a:hover:after{background:#56b274}.theme-browser .theme.add-new-theme a:focus span:after,.theme-browser .theme.add-new-theme a:hover span:after{color:#56b274}.theme-filter.current,.theme-section.current{border-bottom-color:#446950}body.more-filters-opened .more-filters{color:#fff;background-color:#446950}body.more-filters-opened .more-filters:before{color:#fff}body.more-filters-opened .more-filters:focus,body.more-filters-opened .more-filters:hover{background-color:#56b274;color:#fff}body.more-filters-opened .more-filters:focus:before,body.more-filters-opened .more-filters:hover:before{color:#fff}.widgets-chooser li.widgets-chooser-selected{background-color:#56b274;color:#fff}.widgets-chooser li.widgets-chooser-selected:before,.widgets-chooser li.widgets-chooser-selected:focus:before{color:#fff}div#wp-responsive-toggle a:before{color:#f1f3f2}.wp-responsive-open div#wp-responsive-toggle a{border-color:transparent;background:#56b274}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a{background:#36533f}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle .ab-icon:before{color:#f1f3f2}.mce-container.mce-menu .mce-menu-item-normal.mce-active,.mce-container.mce-menu .mce-menu-item-preview.mce-active,.mce-container.mce-menu .mce-menu-item.mce-selected,.mce-container.mce-menu .mce-menu-item:focus,.mce-container.mce-menu .mce-menu-item:hover{background:#56b274}
|
1 |
+
body{background:#f1f1f1}a{color:#0073aa}a:active,a:focus,a:hover{color:#0096dd}#media-upload a.del-link:hover,.subsubsub a.current:hover,.subsubsub a:hover,div.dashboard-widget-submit input:hover{color:#0096dd}input[type=checkbox]:checked:before{color:#56b274}input[type=radio]:checked:before{background:#56b274}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#0096dd}.wp-core-ui .button-primary{background:#56b274;border-color:#43925d #3b8152 #3b8152;color:#fff;box-shadow:0 1px 0 #3b8152;text-shadow:0 -1px 1px #3b8152,1px 0 1px #3b8152,0 1px 1px #3b8152,-1px 0 1px #3b8152}.wp-core-ui .button-primary:focus,.wp-core-ui .button-primary:hover{background:#61b77d;border-color:#3b8152;color:#fff;box-shadow:0 1px 0 #3b8152}.wp-core-ui .button-primary:focus{box-shadow:inset 0 1px 0 #43925d,0 0 2px 1px #33b3db}.wp-core-ui .button-primary.active,.wp-core-ui .button-primary.active:focus,.wp-core-ui .button-primary.active:hover,.wp-core-ui .button-primary:active{background:#43925d;border-color:#3b8152;box-shadow:inset 0 2px 0 #3b8152}.wp-core-ui .button-primary.button-primary-disabled,.wp-core-ui .button-primary.disabled,.wp-core-ui .button-primary:disabled,.wp-core-ui .button-primary[disabled]{color:#c7d1ca!important;background:#469961!important;border-color:#3b8152!important;text-shadow:none!important}.wp-core-ui .button-primary.button-hero{box-shadow:0 2px 0 #3b8152!important}.wp-core-ui .button-primary.button-hero:active{box-shadow:inset 0 3px 0 #3b8152!important}.wp-core-ui .wp-ui-primary{color:#fff;background-color:#446950}.wp-core-ui .wp-ui-text-primary{color:#446950}.wp-core-ui .wp-ui-highlight{color:#fff;background-color:#56b274}.wp-core-ui .wp-ui-text-highlight{color:#56b274}.wp-core-ui .wp-ui-notification{color:#fff;background-color:#36b360}.wp-core-ui .wp-ui-text-notification{color:#36b360}.wp-core-ui .wp-ui-text-icon{color:#f1f3f2}.wrap .add-new-h2:hover,.wrap .page-title-action:hover{color:#fff;background-color:#446950}.view-switch a.current:before{color:#446950}.view-switch a:hover:before{color:#36b360}#adminmenu,#adminmenuback,#adminmenuwrap{background:#446950}#adminmenu a{color:#fff}#adminmenu div.wp-menu-image:before{color:#f1f3f2}#adminmenu a:hover,#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{color:#fff;background-color:#56b274}#adminmenu li.menu-top:hover div.wp-menu-image:before,#adminmenu li.opensub>a.menu-top div.wp-menu-image:before{color:#fff}.about-wrap h2 .nav-tab-active,.nav-tab-active,.nav-tab-active:hover{background-color:#f1f1f1;border-bottom-color:#f1f1f1}#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu.opensub .wp-submenu,#adminmenu .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu{background:#36533f}#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border-right-color:#36533f}#adminmenu .wp-submenu .wp-submenu-head{color:#c7d2cb}#adminmenu .wp-has-current-submenu .wp-submenu a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a,#adminmenu .wp-submenu a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a,.folded #adminmenu .wp-has-current-submenu .wp-submenu a{color:#c7d2cb}#adminmenu .wp-has-current-submenu .wp-submenu a:focus,#adminmenu .wp-has-current-submenu .wp-submenu a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:hover,#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:hover,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:focus,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:hover{color:#56b274}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a,#adminmenu .wp-submenu li.current a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a{color:#fff}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-submenu li.current a:focus,#adminmenu .wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover{color:#56b274}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{border-right-color:#f1f1f1}#adminmenu li.current a.menu-top,#adminmenu li.wp-has-current-submenu .wp-submenu .wp-submenu-head,#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,.folded #adminmenu li.current.menu-top{color:#fff;background:#56b274}#adminmenu a.current:hover div.wp-menu-image:before,#adminmenu li a:focus div.wp-menu-image:before,#adminmenu li.opensub div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu a:focus div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu.opensub div.wp-menu-image:before,#adminmenu li:hover div.wp-menu-image:before,.ie8 #adminmenu li.opensub div.wp-menu-image:before{color:#fff}#adminmenu .awaiting-mod,#adminmenu .update-plugins{color:#fff;background:#36b360}#adminmenu li a.wp-has-current-submenu .update-plugins,#adminmenu li.current a .awaiting-mod,#adminmenu li.menu-top:hover>a .update-plugins,#adminmenu li:hover a .awaiting-mod{color:#fff;background:#36533f}#collapse-button{color:#f1f3f2}#collapse-button:focus,#collapse-button:hover{color:#56b274}#wpadminbar{color:#fff;background:#446950}#wpadminbar .ab-item,#wpadminbar a.ab-item,#wpadminbar>#wp-toolbar span.ab-label,#wpadminbar>#wp-toolbar span.noticon{color:#fff}#wpadminbar .ab-icon,#wpadminbar .ab-icon:before,#wpadminbar .ab-item:after,#wpadminbar .ab-item:before{color:#f1f3f2}#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,#wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus{color:#56b274;background:#36533f}#wpadminbar:not(.mobile)>#wp-toolbar a:focus span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li.hover span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li:hover span.ab-label{color:#56b274}#wpadminbar:not(.mobile) li:hover #adminbarsearch:before,#wpadminbar:not(.mobile) li:hover .ab-icon:before,#wpadminbar:not(.mobile) li:hover .ab-item:after,#wpadminbar:not(.mobile) li:hover .ab-item:before{color:#fff}#wpadminbar .menupop .ab-sub-wrapper{background:#36533f}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu{background:#597763}#wpadminbar .ab-submenu .ab-item,#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar.nojs .quicklinks .menupop:hover ul li a{color:#c7d2cb}#wpadminbar .menupop .menupop>.ab-item:before,#wpadminbar .quicklinks li .blavatar{color:#f1f3f2}#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a,#wpadminbar .quicklinks .menupop ul li a:focus,#wpadminbar .quicklinks .menupop ul li a:focus strong,#wpadminbar .quicklinks .menupop ul li a:hover,#wpadminbar .quicklinks .menupop ul li a:hover strong,#wpadminbar .quicklinks .menupop.hover ul li a:focus,#wpadminbar .quicklinks .menupop.hover ul li a:hover,#wpadminbar li #adminbarsearch.adminbar-focused:before,#wpadminbar li .ab-item:focus .ab-icon:before,#wpadminbar li .ab-item:focus:before,#wpadminbar li a:focus .ab-icon:before,#wpadminbar li.hover .ab-icon:before,#wpadminbar li.hover .ab-item:before,#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:before,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover{color:#56b274}#wpadminbar .menupop .menupop>.ab-item:hover:before,#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a .blavatar,#wpadminbar .quicklinks li a:focus .blavatar,#wpadminbar .quicklinks li a:hover .blavatar,#wpadminbar.mobile .quicklinks .ab-icon:before,#wpadminbar.mobile .quicklinks .ab-item:before{color:#56b274}#wpadminbar.mobile .quicklinks .hover .ab-icon:before,#wpadminbar.mobile .quicklinks .hover .ab-item:before{color:#f1f3f2}#wpadminbar #adminbarsearch:before{color:#f1f3f2}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{color:#fff;background:#527f61}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{border-color:#527f61;background-color:#527f61}#wpadminbar #wp-admin-bar-user-info .display-name{color:#fff}#wpadminbar #wp-admin-bar-user-info a:hover .display-name{color:#56b274}#wpadminbar #wp-admin-bar-user-info .username{color:#c7d2cb}.wp-pointer .wp-pointer-content h3{background-color:#56b274;border-color:#4ba468}.wp-pointer .wp-pointer-content h3:before{color:#56b274}.wp-pointer.wp-pointer-top .wp-pointer-arrow,.wp-pointer.wp-pointer-top .wp-pointer-arrow-inner,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow-inner{border-bottom-color:#56b274}.media-item .bar,.media-progress-bar div{background-color:#56b274}.details.attachment{box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #56b274}.attachment.details .check{background-color:#56b274;box-shadow:0 0 0 1px #fff,0 0 0 2px #56b274}.media-selection .attachment.selection.details .thumbnail{box-shadow:0 0 0 1px #fff,0 0 0 3px #56b274}.theme-browser .theme.active .theme-name,.theme-browser .theme.add-new-theme a:focus:after,.theme-browser .theme.add-new-theme a:hover:after{background:#56b274}.theme-browser .theme.add-new-theme a:focus span:after,.theme-browser .theme.add-new-theme a:hover span:after{color:#56b274}.theme-filter.current,.theme-section.current{border-bottom-color:#446950}body.more-filters-opened .more-filters{color:#fff;background-color:#446950}body.more-filters-opened .more-filters:before{color:#fff}body.more-filters-opened .more-filters:focus,body.more-filters-opened .more-filters:hover{background-color:#56b274;color:#fff}body.more-filters-opened .more-filters:focus:before,body.more-filters-opened .more-filters:hover:before{color:#fff}.widgets-chooser li.widgets-chooser-selected{background-color:#56b274;color:#fff}.widgets-chooser li.widgets-chooser-selected:before,.widgets-chooser li.widgets-chooser-selected:focus:before{color:#fff}div#wp-responsive-toggle a:before{color:#f1f3f2}.wp-responsive-open div#wp-responsive-toggle a{border-color:transparent;background:#56b274}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a{background:#36533f}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle .ab-icon:before{color:#f1f3f2}.mce-container.mce-menu .mce-menu-item-normal.mce-active,.mce-container.mce-menu .mce-menu-item-preview.mce-active,.mce-container.mce-menu .mce-menu-item.mce-selected,.mce-container.mce-menu .mce-menu-item:focus,.mce-container.mce-menu .mce-menu-item:hover{background:#56b274}
|
includes/admin/styles/mint/colors-rtl.css
CHANGED
@@ -56,7 +56,7 @@ input[type=radio]:checked:before {
|
|
56 |
box-shadow: inset 0 1px 0 #3a4f41, 0 0 2px 1px #33b3db;
|
57 |
}
|
58 |
|
59 |
-
.wp-core-ui .button-primary:active {
|
60 |
background: #3a4f41;
|
61 |
border-color: #2f4035;
|
62 |
box-shadow: inset 0 2px 0 #2f4035;
|
@@ -110,9 +110,7 @@ input[type=radio]:checked:before {
|
|
110 |
|
111 |
/* List tables */
|
112 |
.wrap .add-new-h2:hover,
|
113 |
-
.wrap .page-title-action:hover
|
114 |
-
.tablenav .tablenav-pages a:hover,
|
115 |
-
.tablenav .tablenav-pages a:focus {
|
116 |
color: #fff;
|
117 |
background-color: #5fb37c;
|
118 |
}
|
56 |
box-shadow: inset 0 1px 0 #3a4f41, 0 0 2px 1px #33b3db;
|
57 |
}
|
58 |
|
59 |
+
.wp-core-ui .button-primary:active, .wp-core-ui .button-primary.active, .wp-core-ui .button-primary.active:focus, .wp-core-ui .button-primary.active:hover {
|
60 |
background: #3a4f41;
|
61 |
border-color: #2f4035;
|
62 |
box-shadow: inset 0 2px 0 #2f4035;
|
110 |
|
111 |
/* List tables */
|
112 |
.wrap .add-new-h2:hover,
|
113 |
+
.wrap .page-title-action:hover {
|
|
|
|
|
114 |
color: #fff;
|
115 |
background-color: #5fb37c;
|
116 |
}
|
includes/admin/styles/mint/colors-rtl.min.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
body{background:#f1f1f1}a{color:#0073aa}a:active,a:focus,a:hover{color:#0096dd}#media-upload a.del-link:hover,.subsubsub a.current:hover,.subsubsub a:hover,div.dashboard-widget-submit input:hover{color:#0096dd}input[type=checkbox]:checked:before{color:#4f6d59}input[type=radio]:checked:before{background:#4f6d59}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#0096dd}.wp-core-ui .button-primary{background:#4f6d59;border-color:#3a4f41 #2f4035 #2f4035;color:#fff;box-shadow:0 1px 0 #2f4035;text-shadow:0 -1px 1px #2f4035,-1px 0 1px #2f4035,0 1px 1px #2f4035,1px 0 1px #2f4035}.wp-core-ui .button-primary:focus,.wp-core-ui .button-primary:hover{background:#567560;border-color:#2f4035;color:#fff;box-shadow:0 1px 0 #2f4035}.wp-core-ui .button-primary:focus{box-shadow:inset 0 1px 0 #3a4f41,0 0 2px 1px #33b3db}.wp-core-ui .button-primary:active{background:#3a4f41;border-color:#2f4035;box-shadow:inset 0 2px 0 #2f4035}.wp-core-ui .button-primary.button-primary-disabled,.wp-core-ui .button-primary.disabled,.wp-core-ui .button-primary:disabled,.wp-core-ui .button-primary[disabled]{color:#c7d1ca!important;background:#3e5546!important;border-color:#2f4035!important;text-shadow:none!important}.wp-core-ui .button-primary.button-hero{box-shadow:0 2px 0 #2f4035!important}.wp-core-ui .button-primary.button-hero:active{box-shadow:inset 0 3px 0 #2f4035!important}.wp-core-ui .wp-ui-primary{color:#fff;background-color:#5fb37c}.wp-core-ui .wp-ui-text-primary{color:#5fb37c}.wp-core-ui .wp-ui-highlight{color:#fff;background-color:#4f6d59}.wp-core-ui .wp-ui-text-highlight{color:#4f6d59}.wp-core-ui .wp-ui-notification{color:#fff;background-color:#33834e}.wp-core-ui .wp-ui-text-notification{color:#33834e}.wp-core-ui .wp-ui-text-icon{color:#f1f3f2}.tablenav .tablenav-pages a:focus,.tablenav .tablenav-pages a:hover,.wrap .add-new-h2:hover,.wrap .page-title-action:hover{color:#fff;background-color:#5fb37c}.view-switch a.current:before{color:#5fb37c}.view-switch a:hover:before{color:#33834e}#adminmenu,#adminmenuback,#adminmenuwrap{background:#5fb37c}#adminmenu a{color:#fff}#adminmenu div.wp-menu-image:before{color:#f1f3f2}#adminmenu a:hover,#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{color:#fff;background-color:#4f6d59}#adminmenu li.menu-top:hover div.wp-menu-image:before,#adminmenu li.opensub>a.menu-top div.wp-menu-image:before{color:#fff}.about-wrap h2 .nav-tab-active,.nav-tab-active,.nav-tab-active:hover{background-color:#f1f1f1;border-bottom-color:#f1f1f1}#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu.opensub .wp-submenu,#adminmenu .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu{background:#4ca26a}#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border-left-color:#4ca26a}#adminmenu .wp-submenu .wp-submenu-head{color:#cfe8d8}#adminmenu .wp-has-current-submenu .wp-submenu a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a,#adminmenu .wp-submenu a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a,.folded #adminmenu .wp-has-current-submenu .wp-submenu a{color:#cfe8d8}#adminmenu .wp-has-current-submenu .wp-submenu a:focus,#adminmenu .wp-has-current-submenu .wp-submenu a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:hover,#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:hover,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:focus,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:hover{color:#4f6d59}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a,#adminmenu .wp-submenu li.current a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a{color:#fff}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-submenu li.current a:focus,#adminmenu .wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover{color:#4f6d59}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{border-left-color:#f1f1f1}#adminmenu li.current a.menu-top,#adminmenu li.wp-has-current-submenu .wp-submenu .wp-submenu-head,#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,.folded #adminmenu li.current.menu-top{color:#fff;background:#4f6d59}#adminmenu a.current:hover div.wp-menu-image:before,#adminmenu li a:focus div.wp-menu-image:before,#adminmenu li.opensub div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu a:focus div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu.opensub div.wp-menu-image:before,#adminmenu li:hover div.wp-menu-image:before,.ie8 #adminmenu li.opensub div.wp-menu-image:before{color:#fff}#adminmenu .awaiting-mod,#adminmenu .update-plugins{color:#fff;background:#33834e}#adminmenu li a.wp-has-current-submenu .update-plugins,#adminmenu li.current a .awaiting-mod,#adminmenu li.menu-top:hover>a .update-plugins,#adminmenu li:hover a .awaiting-mod{color:#fff;background:#4ca26a}#collapse-button{color:#f1f3f2}#collapse-button:focus,#collapse-button:hover{color:#4f6d59}#wpadminbar{color:#fff;background:#5fb37c}#wpadminbar .ab-item,#wpadminbar a.ab-item,#wpadminbar>#wp-toolbar span.ab-label,#wpadminbar>#wp-toolbar span.noticon{color:#fff}#wpadminbar .ab-icon,#wpadminbar .ab-icon:before,#wpadminbar .ab-item:after,#wpadminbar .ab-item:before{color:#f1f3f2}#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,#wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus{color:#4f6d59;background:#4ca26a}#wpadminbar:not(.mobile)>#wp-toolbar a:focus span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li.hover span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li:hover span.ab-label{color:#4f6d59}#wpadminbar:not(.mobile) li:hover #adminbarsearch:before,#wpadminbar:not(.mobile) li:hover .ab-icon:before,#wpadminbar:not(.mobile) li:hover .ab-item:after,#wpadminbar:not(.mobile) li:hover .ab-item:before{color:#fff}#wpadminbar .menupop .ab-sub-wrapper{background:#4ca26a}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu{background:#7eb892}#wpadminbar .ab-submenu .ab-item,#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar.nojs .quicklinks .menupop:hover ul li a{color:#cfe8d8}#wpadminbar .menupop .menupop>.ab-item:before,#wpadminbar .quicklinks li .blavatar{color:#f1f3f2}#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a,#wpadminbar .quicklinks .menupop ul li a:focus,#wpadminbar .quicklinks .menupop ul li a:focus strong,#wpadminbar .quicklinks .menupop ul li a:hover,#wpadminbar .quicklinks .menupop ul li a:hover strong,#wpadminbar .quicklinks .menupop.hover ul li a:focus,#wpadminbar .quicklinks .menupop.hover ul li a:hover,#wpadminbar li #adminbarsearch.adminbar-focused:before,#wpadminbar li .ab-item:focus .ab-icon:before,#wpadminbar li .ab-item:focus:before,#wpadminbar li a:focus .ab-icon:before,#wpadminbar li.hover .ab-icon:before,#wpadminbar li.hover .ab-item:before,#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:before,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover{color:#4f6d59}#wpadminbar .menupop .menupop>.ab-item:hover:before,#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a .blavatar,#wpadminbar .quicklinks li a:focus .blavatar,#wpadminbar .quicklinks li a:hover .blavatar,#wpadminbar.mobile .quicklinks .ab-icon:before,#wpadminbar.mobile .quicklinks .ab-item:before{color:#4f6d59}#wpadminbar.mobile .quicklinks .hover .ab-icon:before,#wpadminbar.mobile .quicklinks .hover .ab-item:before{color:#f1f3f2}#wpadminbar #adminbarsearch:before{color:#f1f3f2}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{color:#fff;background:#77bf8f}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{border-color:#77bf8f;background-color:#77bf8f}#wpadminbar #wp-admin-bar-user-info .display-name{color:#fff}#wpadminbar #wp-admin-bar-user-info a:hover .display-name{color:#4f6d59}#wpadminbar #wp-admin-bar-user-info .username{color:#cfe8d8}.wp-pointer .wp-pointer-content h3{background-color:#4f6d59;border-color:#455e4d}.wp-pointer .wp-pointer-content h3:before{color:#4f6d59}.wp-pointer.wp-pointer-top .wp-pointer-arrow,.wp-pointer.wp-pointer-top .wp-pointer-arrow-inner,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow-inner{border-bottom-color:#4f6d59}.media-item .bar,.media-progress-bar div{background-color:#4f6d59}.details.attachment{box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #4f6d59}.attachment.details .check{background-color:#4f6d59;box-shadow:0 0 0 1px #fff,0 0 0 2px #4f6d59}.media-selection .attachment.selection.details .thumbnail{box-shadow:0 0 0 1px #fff,0 0 0 3px #4f6d59}.theme-browser .theme.active .theme-name,.theme-browser .theme.add-new-theme a:focus:after,.theme-browser .theme.add-new-theme a:hover:after{background:#4f6d59}.theme-browser .theme.add-new-theme a:focus span:after,.theme-browser .theme.add-new-theme a:hover span:after{color:#4f6d59}.theme-filter.current,.theme-section.current{border-bottom-color:#5fb37c}body.more-filters-opened .more-filters{color:#fff;background-color:#5fb37c}body.more-filters-opened .more-filters:before{color:#fff}body.more-filters-opened .more-filters:focus,body.more-filters-opened .more-filters:hover{background-color:#4f6d59;color:#fff}body.more-filters-opened .more-filters:focus:before,body.more-filters-opened .more-filters:hover:before{color:#fff}.widgets-chooser li.widgets-chooser-selected{background-color:#4f6d59;color:#fff}.widgets-chooser li.widgets-chooser-selected:before,.widgets-chooser li.widgets-chooser-selected:focus:before{color:#fff}div#wp-responsive-toggle a:before{color:#f1f3f2}.wp-responsive-open div#wp-responsive-toggle a{border-color:transparent;background:#4f6d59}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a{background:#4ca26a}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle .ab-icon:before{color:#f1f3f2}.mce-container.mce-menu .mce-menu-item-normal.mce-active,.mce-container.mce-menu .mce-menu-item-preview.mce-active,.mce-container.mce-menu .mce-menu-item.mce-selected,.mce-container.mce-menu .mce-menu-item:focus,.mce-container.mce-menu .mce-menu-item:hover{background:#4f6d59}
|
1 |
+
body{background:#f1f1f1}a{color:#0073aa}a:active,a:focus,a:hover{color:#0096dd}#media-upload a.del-link:hover,.subsubsub a.current:hover,.subsubsub a:hover,div.dashboard-widget-submit input:hover{color:#0096dd}input[type=checkbox]:checked:before{color:#4f6d59}input[type=radio]:checked:before{background:#4f6d59}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#0096dd}.wp-core-ui .button-primary{background:#4f6d59;border-color:#3a4f41 #2f4035 #2f4035;color:#fff;box-shadow:0 1px 0 #2f4035;text-shadow:0 -1px 1px #2f4035,-1px 0 1px #2f4035,0 1px 1px #2f4035,1px 0 1px #2f4035}.wp-core-ui .button-primary:focus,.wp-core-ui .button-primary:hover{background:#567560;border-color:#2f4035;color:#fff;box-shadow:0 1px 0 #2f4035}.wp-core-ui .button-primary:focus{box-shadow:inset 0 1px 0 #3a4f41,0 0 2px 1px #33b3db}.wp-core-ui .button-primary.active,.wp-core-ui .button-primary.active:focus,.wp-core-ui .button-primary.active:hover,.wp-core-ui .button-primary:active{background:#3a4f41;border-color:#2f4035;box-shadow:inset 0 2px 0 #2f4035}.wp-core-ui .button-primary.button-primary-disabled,.wp-core-ui .button-primary.disabled,.wp-core-ui .button-primary:disabled,.wp-core-ui .button-primary[disabled]{color:#c7d1ca!important;background:#3e5546!important;border-color:#2f4035!important;text-shadow:none!important}.wp-core-ui .button-primary.button-hero{box-shadow:0 2px 0 #2f4035!important}.wp-core-ui .button-primary.button-hero:active{box-shadow:inset 0 3px 0 #2f4035!important}.wp-core-ui .wp-ui-primary{color:#fff;background-color:#5fb37c}.wp-core-ui .wp-ui-text-primary{color:#5fb37c}.wp-core-ui .wp-ui-highlight{color:#fff;background-color:#4f6d59}.wp-core-ui .wp-ui-text-highlight{color:#4f6d59}.wp-core-ui .wp-ui-notification{color:#fff;background-color:#33834e}.wp-core-ui .wp-ui-text-notification{color:#33834e}.wp-core-ui .wp-ui-text-icon{color:#f1f3f2}.wrap .add-new-h2:hover,.wrap .page-title-action:hover{color:#fff;background-color:#5fb37c}.view-switch a.current:before{color:#5fb37c}.view-switch a:hover:before{color:#33834e}#adminmenu,#adminmenuback,#adminmenuwrap{background:#5fb37c}#adminmenu a{color:#fff}#adminmenu div.wp-menu-image:before{color:#f1f3f2}#adminmenu a:hover,#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{color:#fff;background-color:#4f6d59}#adminmenu li.menu-top:hover div.wp-menu-image:before,#adminmenu li.opensub>a.menu-top div.wp-menu-image:before{color:#fff}.about-wrap h2 .nav-tab-active,.nav-tab-active,.nav-tab-active:hover{background-color:#f1f1f1;border-bottom-color:#f1f1f1}#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu.opensub .wp-submenu,#adminmenu .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu{background:#4ca26a}#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border-left-color:#4ca26a}#adminmenu .wp-submenu .wp-submenu-head{color:#cfe8d8}#adminmenu .wp-has-current-submenu .wp-submenu a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a,#adminmenu .wp-submenu a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a,.folded #adminmenu .wp-has-current-submenu .wp-submenu a{color:#cfe8d8}#adminmenu .wp-has-current-submenu .wp-submenu a:focus,#adminmenu .wp-has-current-submenu .wp-submenu a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:hover,#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:hover,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:focus,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:hover{color:#4f6d59}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a,#adminmenu .wp-submenu li.current a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a{color:#fff}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-submenu li.current a:focus,#adminmenu .wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover{color:#4f6d59}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{border-left-color:#f1f1f1}#adminmenu li.current a.menu-top,#adminmenu li.wp-has-current-submenu .wp-submenu .wp-submenu-head,#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,.folded #adminmenu li.current.menu-top{color:#fff;background:#4f6d59}#adminmenu a.current:hover div.wp-menu-image:before,#adminmenu li a:focus div.wp-menu-image:before,#adminmenu li.opensub div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu a:focus div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu.opensub div.wp-menu-image:before,#adminmenu li:hover div.wp-menu-image:before,.ie8 #adminmenu li.opensub div.wp-menu-image:before{color:#fff}#adminmenu .awaiting-mod,#adminmenu .update-plugins{color:#fff;background:#33834e}#adminmenu li a.wp-has-current-submenu .update-plugins,#adminmenu li.current a .awaiting-mod,#adminmenu li.menu-top:hover>a .update-plugins,#adminmenu li:hover a .awaiting-mod{color:#fff;background:#4ca26a}#collapse-button{color:#f1f3f2}#collapse-button:focus,#collapse-button:hover{color:#4f6d59}#wpadminbar{color:#fff;background:#5fb37c}#wpadminbar .ab-item,#wpadminbar a.ab-item,#wpadminbar>#wp-toolbar span.ab-label,#wpadminbar>#wp-toolbar span.noticon{color:#fff}#wpadminbar .ab-icon,#wpadminbar .ab-icon:before,#wpadminbar .ab-item:after,#wpadminbar .ab-item:before{color:#f1f3f2}#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,#wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus{color:#4f6d59;background:#4ca26a}#wpadminbar:not(.mobile)>#wp-toolbar a:focus span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li.hover span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li:hover span.ab-label{color:#4f6d59}#wpadminbar:not(.mobile) li:hover #adminbarsearch:before,#wpadminbar:not(.mobile) li:hover .ab-icon:before,#wpadminbar:not(.mobile) li:hover .ab-item:after,#wpadminbar:not(.mobile) li:hover .ab-item:before{color:#fff}#wpadminbar .menupop .ab-sub-wrapper{background:#4ca26a}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu{background:#7eb892}#wpadminbar .ab-submenu .ab-item,#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar.nojs .quicklinks .menupop:hover ul li a{color:#cfe8d8}#wpadminbar .menupop .menupop>.ab-item:before,#wpadminbar .quicklinks li .blavatar{color:#f1f3f2}#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a,#wpadminbar .quicklinks .menupop ul li a:focus,#wpadminbar .quicklinks .menupop ul li a:focus strong,#wpadminbar .quicklinks .menupop ul li a:hover,#wpadminbar .quicklinks .menupop ul li a:hover strong,#wpadminbar .quicklinks .menupop.hover ul li a:focus,#wpadminbar .quicklinks .menupop.hover ul li a:hover,#wpadminbar li #adminbarsearch.adminbar-focused:before,#wpadminbar li .ab-item:focus .ab-icon:before,#wpadminbar li .ab-item:focus:before,#wpadminbar li a:focus .ab-icon:before,#wpadminbar li.hover .ab-icon:before,#wpadminbar li.hover .ab-item:before,#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:before,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover{color:#4f6d59}#wpadminbar .menupop .menupop>.ab-item:hover:before,#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a .blavatar,#wpadminbar .quicklinks li a:focus .blavatar,#wpadminbar .quicklinks li a:hover .blavatar,#wpadminbar.mobile .quicklinks .ab-icon:before,#wpadminbar.mobile .quicklinks .ab-item:before{color:#4f6d59}#wpadminbar.mobile .quicklinks .hover .ab-icon:before,#wpadminbar.mobile .quicklinks .hover .ab-item:before{color:#f1f3f2}#wpadminbar #adminbarsearch:before{color:#f1f3f2}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{color:#fff;background:#77bf8f}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{border-color:#77bf8f;background-color:#77bf8f}#wpadminbar #wp-admin-bar-user-info .display-name{color:#fff}#wpadminbar #wp-admin-bar-user-info a:hover .display-name{color:#4f6d59}#wpadminbar #wp-admin-bar-user-info .username{color:#cfe8d8}.wp-pointer .wp-pointer-content h3{background-color:#4f6d59;border-color:#455e4d}.wp-pointer .wp-pointer-content h3:before{color:#4f6d59}.wp-pointer.wp-pointer-top .wp-pointer-arrow,.wp-pointer.wp-pointer-top .wp-pointer-arrow-inner,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow-inner{border-bottom-color:#4f6d59}.media-item .bar,.media-progress-bar div{background-color:#4f6d59}.details.attachment{box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #4f6d59}.attachment.details .check{background-color:#4f6d59;box-shadow:0 0 0 1px #fff,0 0 0 2px #4f6d59}.media-selection .attachment.selection.details .thumbnail{box-shadow:0 0 0 1px #fff,0 0 0 3px #4f6d59}.theme-browser .theme.active .theme-name,.theme-browser .theme.add-new-theme a:focus:after,.theme-browser .theme.add-new-theme a:hover:after{background:#4f6d59}.theme-browser .theme.add-new-theme a:focus span:after,.theme-browser .theme.add-new-theme a:hover span:after{color:#4f6d59}.theme-filter.current,.theme-section.current{border-bottom-color:#5fb37c}body.more-filters-opened .more-filters{color:#fff;background-color:#5fb37c}body.more-filters-opened .more-filters:before{color:#fff}body.more-filters-opened .more-filters:focus,body.more-filters-opened .more-filters:hover{background-color:#4f6d59;color:#fff}body.more-filters-opened .more-filters:focus:before,body.more-filters-opened .more-filters:hover:before{color:#fff}.widgets-chooser li.widgets-chooser-selected{background-color:#4f6d59;color:#fff}.widgets-chooser li.widgets-chooser-selected:before,.widgets-chooser li.widgets-chooser-selected:focus:before{color:#fff}div#wp-responsive-toggle a:before{color:#f1f3f2}.wp-responsive-open div#wp-responsive-toggle a{border-color:transparent;background:#4f6d59}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a{background:#4ca26a}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle .ab-icon:before{color:#f1f3f2}.mce-container.mce-menu .mce-menu-item-normal.mce-active,.mce-container.mce-menu .mce-menu-item-preview.mce-active,.mce-container.mce-menu .mce-menu-item.mce-selected,.mce-container.mce-menu .mce-menu-item:focus,.mce-container.mce-menu .mce-menu-item:hover{background:#4f6d59}
|
includes/admin/styles/mint/colors.css
CHANGED
@@ -56,7 +56,7 @@ input[type=radio]:checked:before {
|
|
56 |
box-shadow: inset 0 1px 0 #3a4f41, 0 0 2px 1px #33b3db;
|
57 |
}
|
58 |
|
59 |
-
.wp-core-ui .button-primary:active {
|
60 |
background: #3a4f41;
|
61 |
border-color: #2f4035;
|
62 |
box-shadow: inset 0 2px 0 #2f4035;
|
@@ -110,9 +110,7 @@ input[type=radio]:checked:before {
|
|
110 |
|
111 |
/* List tables */
|
112 |
.wrap .add-new-h2:hover,
|
113 |
-
.wrap .page-title-action:hover
|
114 |
-
.tablenav .tablenav-pages a:hover,
|
115 |
-
.tablenav .tablenav-pages a:focus {
|
116 |
color: #fff;
|
117 |
background-color: #5fb37c;
|
118 |
}
|
56 |
box-shadow: inset 0 1px 0 #3a4f41, 0 0 2px 1px #33b3db;
|
57 |
}
|
58 |
|
59 |
+
.wp-core-ui .button-primary:active, .wp-core-ui .button-primary.active, .wp-core-ui .button-primary.active:focus, .wp-core-ui .button-primary.active:hover {
|
60 |
background: #3a4f41;
|
61 |
border-color: #2f4035;
|
62 |
box-shadow: inset 0 2px 0 #2f4035;
|
110 |
|
111 |
/* List tables */
|
112 |
.wrap .add-new-h2:hover,
|
113 |
+
.wrap .page-title-action:hover {
|
|
|
|
|
114 |
color: #fff;
|
115 |
background-color: #5fb37c;
|
116 |
}
|
includes/admin/styles/mint/colors.min.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
body{background:#f1f1f1}a{color:#0073aa}a:active,a:focus,a:hover{color:#0096dd}#media-upload a.del-link:hover,.subsubsub a.current:hover,.subsubsub a:hover,div.dashboard-widget-submit input:hover{color:#0096dd}input[type=checkbox]:checked:before{color:#4f6d59}input[type=radio]:checked:before{background:#4f6d59}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#0096dd}.wp-core-ui .button-primary{background:#4f6d59;border-color:#3a4f41 #2f4035 #2f4035;color:#fff;box-shadow:0 1px 0 #2f4035;text-shadow:0 -1px 1px #2f4035,1px 0 1px #2f4035,0 1px 1px #2f4035,-1px 0 1px #2f4035}.wp-core-ui .button-primary:focus,.wp-core-ui .button-primary:hover{background:#567560;border-color:#2f4035;color:#fff;box-shadow:0 1px 0 #2f4035}.wp-core-ui .button-primary:focus{box-shadow:inset 0 1px 0 #3a4f41,0 0 2px 1px #33b3db}.wp-core-ui .button-primary:active{background:#3a4f41;border-color:#2f4035;box-shadow:inset 0 2px 0 #2f4035}.wp-core-ui .button-primary.button-primary-disabled,.wp-core-ui .button-primary.disabled,.wp-core-ui .button-primary:disabled,.wp-core-ui .button-primary[disabled]{color:#c7d1ca!important;background:#3e5546!important;border-color:#2f4035!important;text-shadow:none!important}.wp-core-ui .button-primary.button-hero{box-shadow:0 2px 0 #2f4035!important}.wp-core-ui .button-primary.button-hero:active{box-shadow:inset 0 3px 0 #2f4035!important}.wp-core-ui .wp-ui-primary{color:#fff;background-color:#5fb37c}.wp-core-ui .wp-ui-text-primary{color:#5fb37c}.wp-core-ui .wp-ui-highlight{color:#fff;background-color:#4f6d59}.wp-core-ui .wp-ui-text-highlight{color:#4f6d59}.wp-core-ui .wp-ui-notification{color:#fff;background-color:#33834e}.wp-core-ui .wp-ui-text-notification{color:#33834e}.wp-core-ui .wp-ui-text-icon{color:#f1f3f2}.tablenav .tablenav-pages a:focus,.tablenav .tablenav-pages a:hover,.wrap .add-new-h2:hover,.wrap .page-title-action:hover{color:#fff;background-color:#5fb37c}.view-switch a.current:before{color:#5fb37c}.view-switch a:hover:before{color:#33834e}#adminmenu,#adminmenuback,#adminmenuwrap{background:#5fb37c}#adminmenu a{color:#fff}#adminmenu div.wp-menu-image:before{color:#f1f3f2}#adminmenu a:hover,#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{color:#fff;background-color:#4f6d59}#adminmenu li.menu-top:hover div.wp-menu-image:before,#adminmenu li.opensub>a.menu-top div.wp-menu-image:before{color:#fff}.about-wrap h2 .nav-tab-active,.nav-tab-active,.nav-tab-active:hover{background-color:#f1f1f1;border-bottom-color:#f1f1f1}#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu.opensub .wp-submenu,#adminmenu .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu{background:#4ca26a}#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border-right-color:#4ca26a}#adminmenu .wp-submenu .wp-submenu-head{color:#cfe8d8}#adminmenu .wp-has-current-submenu .wp-submenu a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a,#adminmenu .wp-submenu a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a,.folded #adminmenu .wp-has-current-submenu .wp-submenu a{color:#cfe8d8}#adminmenu .wp-has-current-submenu .wp-submenu a:focus,#adminmenu .wp-has-current-submenu .wp-submenu a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:hover,#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:hover,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:focus,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:hover{color:#4f6d59}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a,#adminmenu .wp-submenu li.current a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a{color:#fff}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-submenu li.current a:focus,#adminmenu .wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover{color:#4f6d59}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{border-right-color:#f1f1f1}#adminmenu li.current a.menu-top,#adminmenu li.wp-has-current-submenu .wp-submenu .wp-submenu-head,#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,.folded #adminmenu li.current.menu-top{color:#fff;background:#4f6d59}#adminmenu a.current:hover div.wp-menu-image:before,#adminmenu li a:focus div.wp-menu-image:before,#adminmenu li.opensub div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu a:focus div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu.opensub div.wp-menu-image:before,#adminmenu li:hover div.wp-menu-image:before,.ie8 #adminmenu li.opensub div.wp-menu-image:before{color:#fff}#adminmenu .awaiting-mod,#adminmenu .update-plugins{color:#fff;background:#33834e}#adminmenu li a.wp-has-current-submenu .update-plugins,#adminmenu li.current a .awaiting-mod,#adminmenu li.menu-top:hover>a .update-plugins,#adminmenu li:hover a .awaiting-mod{color:#fff;background:#4ca26a}#collapse-button{color:#f1f3f2}#collapse-button:focus,#collapse-button:hover{color:#4f6d59}#wpadminbar{color:#fff;background:#5fb37c}#wpadminbar .ab-item,#wpadminbar a.ab-item,#wpadminbar>#wp-toolbar span.ab-label,#wpadminbar>#wp-toolbar span.noticon{color:#fff}#wpadminbar .ab-icon,#wpadminbar .ab-icon:before,#wpadminbar .ab-item:after,#wpadminbar .ab-item:before{color:#f1f3f2}#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,#wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus{color:#4f6d59;background:#4ca26a}#wpadminbar:not(.mobile)>#wp-toolbar a:focus span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li.hover span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li:hover span.ab-label{color:#4f6d59}#wpadminbar:not(.mobile) li:hover #adminbarsearch:before,#wpadminbar:not(.mobile) li:hover .ab-icon:before,#wpadminbar:not(.mobile) li:hover .ab-item:after,#wpadminbar:not(.mobile) li:hover .ab-item:before{color:#fff}#wpadminbar .menupop .ab-sub-wrapper{background:#4ca26a}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu{background:#7eb892}#wpadminbar .ab-submenu .ab-item,#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar.nojs .quicklinks .menupop:hover ul li a{color:#cfe8d8}#wpadminbar .menupop .menupop>.ab-item:before,#wpadminbar .quicklinks li .blavatar{color:#f1f3f2}#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a,#wpadminbar .quicklinks .menupop ul li a:focus,#wpadminbar .quicklinks .menupop ul li a:focus strong,#wpadminbar .quicklinks .menupop ul li a:hover,#wpadminbar .quicklinks .menupop ul li a:hover strong,#wpadminbar .quicklinks .menupop.hover ul li a:focus,#wpadminbar .quicklinks .menupop.hover ul li a:hover,#wpadminbar li #adminbarsearch.adminbar-focused:before,#wpadminbar li .ab-item:focus .ab-icon:before,#wpadminbar li .ab-item:focus:before,#wpadminbar li a:focus .ab-icon:before,#wpadminbar li.hover .ab-icon:before,#wpadminbar li.hover .ab-item:before,#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:before,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover{color:#4f6d59}#wpadminbar .menupop .menupop>.ab-item:hover:before,#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a .blavatar,#wpadminbar .quicklinks li a:focus .blavatar,#wpadminbar .quicklinks li a:hover .blavatar,#wpadminbar.mobile .quicklinks .ab-icon:before,#wpadminbar.mobile .quicklinks .ab-item:before{color:#4f6d59}#wpadminbar.mobile .quicklinks .hover .ab-icon:before,#wpadminbar.mobile .quicklinks .hover .ab-item:before{color:#f1f3f2}#wpadminbar #adminbarsearch:before{color:#f1f3f2}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{color:#fff;background:#77bf8f}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{border-color:#77bf8f;background-color:#77bf8f}#wpadminbar #wp-admin-bar-user-info .display-name{color:#fff}#wpadminbar #wp-admin-bar-user-info a:hover .display-name{color:#4f6d59}#wpadminbar #wp-admin-bar-user-info .username{color:#cfe8d8}.wp-pointer .wp-pointer-content h3{background-color:#4f6d59;border-color:#455e4d}.wp-pointer .wp-pointer-content h3:before{color:#4f6d59}.wp-pointer.wp-pointer-top .wp-pointer-arrow,.wp-pointer.wp-pointer-top .wp-pointer-arrow-inner,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow-inner{border-bottom-color:#4f6d59}.media-item .bar,.media-progress-bar div{background-color:#4f6d59}.details.attachment{box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #4f6d59}.attachment.details .check{background-color:#4f6d59;box-shadow:0 0 0 1px #fff,0 0 0 2px #4f6d59}.media-selection .attachment.selection.details .thumbnail{box-shadow:0 0 0 1px #fff,0 0 0 3px #4f6d59}.theme-browser .theme.active .theme-name,.theme-browser .theme.add-new-theme a:focus:after,.theme-browser .theme.add-new-theme a:hover:after{background:#4f6d59}.theme-browser .theme.add-new-theme a:focus span:after,.theme-browser .theme.add-new-theme a:hover span:after{color:#4f6d59}.theme-filter.current,.theme-section.current{border-bottom-color:#5fb37c}body.more-filters-opened .more-filters{color:#fff;background-color:#5fb37c}body.more-filters-opened .more-filters:before{color:#fff}body.more-filters-opened .more-filters:focus,body.more-filters-opened .more-filters:hover{background-color:#4f6d59;color:#fff}body.more-filters-opened .more-filters:focus:before,body.more-filters-opened .more-filters:hover:before{color:#fff}.widgets-chooser li.widgets-chooser-selected{background-color:#4f6d59;color:#fff}.widgets-chooser li.widgets-chooser-selected:before,.widgets-chooser li.widgets-chooser-selected:focus:before{color:#fff}div#wp-responsive-toggle a:before{color:#f1f3f2}.wp-responsive-open div#wp-responsive-toggle a{border-color:transparent;background:#4f6d59}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a{background:#4ca26a}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle .ab-icon:before{color:#f1f3f2}.mce-container.mce-menu .mce-menu-item-normal.mce-active,.mce-container.mce-menu .mce-menu-item-preview.mce-active,.mce-container.mce-menu .mce-menu-item.mce-selected,.mce-container.mce-menu .mce-menu-item:focus,.mce-container.mce-menu .mce-menu-item:hover{background:#4f6d59}
|
1 |
+
body{background:#f1f1f1}a{color:#0073aa}a:active,a:focus,a:hover{color:#0096dd}#media-upload a.del-link:hover,.subsubsub a.current:hover,.subsubsub a:hover,div.dashboard-widget-submit input:hover{color:#0096dd}input[type=checkbox]:checked:before{color:#4f6d59}input[type=radio]:checked:before{background:#4f6d59}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#0096dd}.wp-core-ui .button-primary{background:#4f6d59;border-color:#3a4f41 #2f4035 #2f4035;color:#fff;box-shadow:0 1px 0 #2f4035;text-shadow:0 -1px 1px #2f4035,1px 0 1px #2f4035,0 1px 1px #2f4035,-1px 0 1px #2f4035}.wp-core-ui .button-primary:focus,.wp-core-ui .button-primary:hover{background:#567560;border-color:#2f4035;color:#fff;box-shadow:0 1px 0 #2f4035}.wp-core-ui .button-primary:focus{box-shadow:inset 0 1px 0 #3a4f41,0 0 2px 1px #33b3db}.wp-core-ui .button-primary.active,.wp-core-ui .button-primary.active:focus,.wp-core-ui .button-primary.active:hover,.wp-core-ui .button-primary:active{background:#3a4f41;border-color:#2f4035;box-shadow:inset 0 2px 0 #2f4035}.wp-core-ui .button-primary.button-primary-disabled,.wp-core-ui .button-primary.disabled,.wp-core-ui .button-primary:disabled,.wp-core-ui .button-primary[disabled]{color:#c7d1ca!important;background:#3e5546!important;border-color:#2f4035!important;text-shadow:none!important}.wp-core-ui .button-primary.button-hero{box-shadow:0 2px 0 #2f4035!important}.wp-core-ui .button-primary.button-hero:active{box-shadow:inset 0 3px 0 #2f4035!important}.wp-core-ui .wp-ui-primary{color:#fff;background-color:#5fb37c}.wp-core-ui .wp-ui-text-primary{color:#5fb37c}.wp-core-ui .wp-ui-highlight{color:#fff;background-color:#4f6d59}.wp-core-ui .wp-ui-text-highlight{color:#4f6d59}.wp-core-ui .wp-ui-notification{color:#fff;background-color:#33834e}.wp-core-ui .wp-ui-text-notification{color:#33834e}.wp-core-ui .wp-ui-text-icon{color:#f1f3f2}.wrap .add-new-h2:hover,.wrap .page-title-action:hover{color:#fff;background-color:#5fb37c}.view-switch a.current:before{color:#5fb37c}.view-switch a:hover:before{color:#33834e}#adminmenu,#adminmenuback,#adminmenuwrap{background:#5fb37c}#adminmenu a{color:#fff}#adminmenu div.wp-menu-image:before{color:#f1f3f2}#adminmenu a:hover,#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{color:#fff;background-color:#4f6d59}#adminmenu li.menu-top:hover div.wp-menu-image:before,#adminmenu li.opensub>a.menu-top div.wp-menu-image:before{color:#fff}.about-wrap h2 .nav-tab-active,.nav-tab-active,.nav-tab-active:hover{background-color:#f1f1f1;border-bottom-color:#f1f1f1}#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu.opensub .wp-submenu,#adminmenu .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu{background:#4ca26a}#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border-right-color:#4ca26a}#adminmenu .wp-submenu .wp-submenu-head{color:#cfe8d8}#adminmenu .wp-has-current-submenu .wp-submenu a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a,#adminmenu .wp-submenu a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a,.folded #adminmenu .wp-has-current-submenu .wp-submenu a{color:#cfe8d8}#adminmenu .wp-has-current-submenu .wp-submenu a:focus,#adminmenu .wp-has-current-submenu .wp-submenu a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:hover,#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:hover,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:focus,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:hover{color:#4f6d59}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a,#adminmenu .wp-submenu li.current a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a{color:#fff}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-submenu li.current a:focus,#adminmenu .wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover{color:#4f6d59}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{border-right-color:#f1f1f1}#adminmenu li.current a.menu-top,#adminmenu li.wp-has-current-submenu .wp-submenu .wp-submenu-head,#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,.folded #adminmenu li.current.menu-top{color:#fff;background:#4f6d59}#adminmenu a.current:hover div.wp-menu-image:before,#adminmenu li a:focus div.wp-menu-image:before,#adminmenu li.opensub div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu a:focus div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu.opensub div.wp-menu-image:before,#adminmenu li:hover div.wp-menu-image:before,.ie8 #adminmenu li.opensub div.wp-menu-image:before{color:#fff}#adminmenu .awaiting-mod,#adminmenu .update-plugins{color:#fff;background:#33834e}#adminmenu li a.wp-has-current-submenu .update-plugins,#adminmenu li.current a .awaiting-mod,#adminmenu li.menu-top:hover>a .update-plugins,#adminmenu li:hover a .awaiting-mod{color:#fff;background:#4ca26a}#collapse-button{color:#f1f3f2}#collapse-button:focus,#collapse-button:hover{color:#4f6d59}#wpadminbar{color:#fff;background:#5fb37c}#wpadminbar .ab-item,#wpadminbar a.ab-item,#wpadminbar>#wp-toolbar span.ab-label,#wpadminbar>#wp-toolbar span.noticon{color:#fff}#wpadminbar .ab-icon,#wpadminbar .ab-icon:before,#wpadminbar .ab-item:after,#wpadminbar .ab-item:before{color:#f1f3f2}#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,#wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus{color:#4f6d59;background:#4ca26a}#wpadminbar:not(.mobile)>#wp-toolbar a:focus span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li.hover span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li:hover span.ab-label{color:#4f6d59}#wpadminbar:not(.mobile) li:hover #adminbarsearch:before,#wpadminbar:not(.mobile) li:hover .ab-icon:before,#wpadminbar:not(.mobile) li:hover .ab-item:after,#wpadminbar:not(.mobile) li:hover .ab-item:before{color:#fff}#wpadminbar .menupop .ab-sub-wrapper{background:#4ca26a}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu{background:#7eb892}#wpadminbar .ab-submenu .ab-item,#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar.nojs .quicklinks .menupop:hover ul li a{color:#cfe8d8}#wpadminbar .menupop .menupop>.ab-item:before,#wpadminbar .quicklinks li .blavatar{color:#f1f3f2}#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a,#wpadminbar .quicklinks .menupop ul li a:focus,#wpadminbar .quicklinks .menupop ul li a:focus strong,#wpadminbar .quicklinks .menupop ul li a:hover,#wpadminbar .quicklinks .menupop ul li a:hover strong,#wpadminbar .quicklinks .menupop.hover ul li a:focus,#wpadminbar .quicklinks .menupop.hover ul li a:hover,#wpadminbar li #adminbarsearch.adminbar-focused:before,#wpadminbar li .ab-item:focus .ab-icon:before,#wpadminbar li .ab-item:focus:before,#wpadminbar li a:focus .ab-icon:before,#wpadminbar li.hover .ab-icon:before,#wpadminbar li.hover .ab-item:before,#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:before,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover{color:#4f6d59}#wpadminbar .menupop .menupop>.ab-item:hover:before,#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a .blavatar,#wpadminbar .quicklinks li a:focus .blavatar,#wpadminbar .quicklinks li a:hover .blavatar,#wpadminbar.mobile .quicklinks .ab-icon:before,#wpadminbar.mobile .quicklinks .ab-item:before{color:#4f6d59}#wpadminbar.mobile .quicklinks .hover .ab-icon:before,#wpadminbar.mobile .quicklinks .hover .ab-item:before{color:#f1f3f2}#wpadminbar #adminbarsearch:before{color:#f1f3f2}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{color:#fff;background:#77bf8f}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{border-color:#77bf8f;background-color:#77bf8f}#wpadminbar #wp-admin-bar-user-info .display-name{color:#fff}#wpadminbar #wp-admin-bar-user-info a:hover .display-name{color:#4f6d59}#wpadminbar #wp-admin-bar-user-info .username{color:#cfe8d8}.wp-pointer .wp-pointer-content h3{background-color:#4f6d59;border-color:#455e4d}.wp-pointer .wp-pointer-content h3:before{color:#4f6d59}.wp-pointer.wp-pointer-top .wp-pointer-arrow,.wp-pointer.wp-pointer-top .wp-pointer-arrow-inner,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow-inner{border-bottom-color:#4f6d59}.media-item .bar,.media-progress-bar div{background-color:#4f6d59}.details.attachment{box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #4f6d59}.attachment.details .check{background-color:#4f6d59;box-shadow:0 0 0 1px #fff,0 0 0 2px #4f6d59}.media-selection .attachment.selection.details .thumbnail{box-shadow:0 0 0 1px #fff,0 0 0 3px #4f6d59}.theme-browser .theme.active .theme-name,.theme-browser .theme.add-new-theme a:focus:after,.theme-browser .theme.add-new-theme a:hover:after{background:#4f6d59}.theme-browser .theme.add-new-theme a:focus span:after,.theme-browser .theme.add-new-theme a:hover span:after{color:#4f6d59}.theme-filter.current,.theme-section.current{border-bottom-color:#5fb37c}body.more-filters-opened .more-filters{color:#fff;background-color:#5fb37c}body.more-filters-opened .more-filters:before{color:#fff}body.more-filters-opened .more-filters:focus,body.more-filters-opened .more-filters:hover{background-color:#4f6d59;color:#fff}body.more-filters-opened .more-filters:focus:before,body.more-filters-opened .more-filters:hover:before{color:#fff}.widgets-chooser li.widgets-chooser-selected{background-color:#4f6d59;color:#fff}.widgets-chooser li.widgets-chooser-selected:before,.widgets-chooser li.widgets-chooser-selected:focus:before{color:#fff}div#wp-responsive-toggle a:before{color:#f1f3f2}.wp-responsive-open div#wp-responsive-toggle a{border-color:transparent;background:#4f6d59}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a{background:#4ca26a}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle .ab-icon:before{color:#f1f3f2}.mce-container.mce-menu .mce-menu-item-normal.mce-active,.mce-container.mce-menu .mce-menu-item-preview.mce-active,.mce-container.mce-menu .mce-menu-item.mce-selected,.mce-container.mce-menu .mce-menu-item:focus,.mce-container.mce-menu .mce-menu-item:hover{background:#4f6d59}
|
includes/admin/tools.php
CHANGED
@@ -84,7 +84,7 @@ function bbp_register_repair_tool( $args = array() ) {
|
|
84 |
}
|
85 |
|
86 |
// Add tool to the registered tools array
|
87 |
-
|
88 |
'type' => $r['type'],
|
89 |
'title' => $r['title'],
|
90 |
'description' => $r['description'],
|
84 |
}
|
85 |
|
86 |
// Add tool to the registered tools array
|
87 |
+
bbp_admin()->tools[ $r['id'] ] = array(
|
88 |
'type' => $r['type'],
|
89 |
'title' => $r['title'],
|
90 |
'description' => $r['description'],
|
includes/admin/tools/common.php
CHANGED
@@ -61,55 +61,7 @@ function bbp_admin_repair_tool_run_url( $component = array() ) {
|
|
61 |
* @return string The message HTML
|
62 |
*/
|
63 |
function bbp_admin_tools_feedback( $message, $class = false, $is_dismissible = true ) {
|
64 |
-
|
65 |
-
// One message as string
|
66 |
-
if ( is_string( $message ) ) {
|
67 |
-
$message = '<p>' . $message . '</p>';
|
68 |
-
$default_class ='updated';
|
69 |
-
|
70 |
-
// Messages as objects
|
71 |
-
} elseif ( is_wp_error( $message ) ) {
|
72 |
-
$errors = $message->get_error_messages();
|
73 |
-
|
74 |
-
switch ( count( $errors ) ) {
|
75 |
-
case 0:
|
76 |
-
return false;
|
77 |
-
|
78 |
-
case 1:
|
79 |
-
$message = '<p>' . $errors[0] . '</p>';
|
80 |
-
break;
|
81 |
-
|
82 |
-
default:
|
83 |
-
$message = '<ul>' . "\n\t" . '<li>' . implode( '</li>' . "\n\t" . '<li>', $errors ) . '</li>' . "\n" . '</ul>';
|
84 |
-
break;
|
85 |
-
}
|
86 |
-
|
87 |
-
$default_class = 'is-error';
|
88 |
-
|
89 |
-
// Message is an unknown format, so bail
|
90 |
-
} else {
|
91 |
-
return false;
|
92 |
-
}
|
93 |
-
|
94 |
-
// CSS Classes
|
95 |
-
$classes = ! empty( $class )
|
96 |
-
? array( $class )
|
97 |
-
: array( $default_class );
|
98 |
-
|
99 |
-
// Add dismissible class
|
100 |
-
if ( ! empty( $is_dismissible ) ) {
|
101 |
-
array_push( $classes, 'is-dismissible' );
|
102 |
-
}
|
103 |
-
|
104 |
-
// Assemble the message
|
105 |
-
$message = '<div id="message" class="notice ' . implode( ' ', array_map( 'esc_attr', $classes ) ) . '">' . $message . '</div>';
|
106 |
-
$message = str_replace( "'", "\'", $message );
|
107 |
-
|
108 |
-
// Ugh
|
109 |
-
$lambda = create_function( '', "echo '$message';" );
|
110 |
-
add_action( 'admin_notices', $lambda );
|
111 |
-
|
112 |
-
return $lambda;
|
113 |
}
|
114 |
|
115 |
/**
|
@@ -180,13 +132,13 @@ function bbp_admin_repair_handler() {
|
|
180 |
function bbp_get_admin_repair_tools( $type = '' ) {
|
181 |
|
182 |
// Get tools array
|
183 |
-
$tools = ! empty(
|
184 |
-
?
|
185 |
: array();
|
186 |
|
187 |
// Maybe limit to type (otherwise return all tools)
|
188 |
if ( ! empty( $type ) ) {
|
189 |
-
$tools = wp_list_filter(
|
190 |
}
|
191 |
|
192 |
// Filter & return
|
@@ -434,7 +386,7 @@ function bbp_get_admin_repair_tool_components( $item = array() ) {
|
|
434 |
*
|
435 |
* @since 2.6.0 bbPress (r5885)
|
436 |
*
|
437 |
-
* @param
|
438 |
*/
|
439 |
function bbp_admin_repair_tool_overhead_filters( $args = array() ) {
|
440 |
echo bbp_get_admin_repair_tool_overhead_filters( $args );
|
61 |
* @return string The message HTML
|
62 |
*/
|
63 |
function bbp_admin_tools_feedback( $message, $class = false, $is_dismissible = true ) {
|
64 |
+
return bbp_admin()->add_notice( $message, $class, $is_dismissible );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
65 |
}
|
66 |
|
67 |
/**
|
132 |
function bbp_get_admin_repair_tools( $type = '' ) {
|
133 |
|
134 |
// Get tools array
|
135 |
+
$tools = ! empty( bbp_admin()->tools )
|
136 |
+
? bbp_admin()->tools
|
137 |
: array();
|
138 |
|
139 |
// Maybe limit to type (otherwise return all tools)
|
140 |
if ( ! empty( $type ) ) {
|
141 |
+
$tools = wp_list_filter( bbp_admin()->tools, array( 'type' => $type ) );
|
142 |
}
|
143 |
|
144 |
// Filter & return
|
386 |
*
|
387 |
* @since 2.6.0 bbPress (r5885)
|
388 |
*
|
389 |
+
* @param array $args
|
390 |
*/
|
391 |
function bbp_admin_repair_tool_overhead_filters( $args = array() ) {
|
392 |
echo bbp_get_admin_repair_tool_overhead_filters( $args );
|
includes/admin/tools/converter.php
CHANGED
@@ -20,30 +20,34 @@ defined( 'ABSPATH' ) || exit;
|
|
20 |
* @return array
|
21 |
*/
|
22 |
function bbp_get_converters() {
|
|
|
23 |
|
24 |
-
//
|
25 |
-
$files
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
if ( '
|
35 |
-
$
|
|
|
|
|
|
|
36 |
}
|
37 |
}
|
38 |
}
|
39 |
-
}
|
40 |
|
41 |
-
|
42 |
-
|
43 |
|
44 |
-
|
45 |
-
|
46 |
-
|
|
|
47 |
}
|
48 |
|
49 |
// Filter & return
|
@@ -58,22 +62,39 @@ function bbp_get_converters() {
|
|
58 |
* @since 2.0.0
|
59 |
*
|
60 |
* @param string $platform Name of valid platform class.
|
|
|
|
|
61 |
*/
|
62 |
-
function bbp_new_converter( $platform ) {
|
|
|
|
|
|
|
63 |
|
64 |
-
//
|
|
|
|
|
|
|
|
|
|
|
65 |
$converters = bbp_get_converters();
|
66 |
|
67 |
-
//
|
68 |
-
|
|
|
|
|
|
|
|
|
|
|
69 |
|
70 |
-
//
|
71 |
-
|
|
|
|
|
72 |
if ( class_exists( $platform ) ) {
|
73 |
-
|
74 |
}
|
75 |
}
|
76 |
|
77 |
-
//
|
78 |
-
return
|
79 |
}
|
20 |
* @return array
|
21 |
*/
|
22 |
function bbp_get_converters() {
|
23 |
+
static $files = array();
|
24 |
|
25 |
+
// Only hit the file system one time per page load
|
26 |
+
if ( empty( $files ) ) {
|
27 |
+
|
28 |
+
// Open the converter directory
|
29 |
+
$path = bbp_setup_converter()->converters_dir;
|
30 |
+
$curdir = opendir( $path );
|
31 |
+
|
32 |
+
// Look for the converter file in the converters directory
|
33 |
+
if ( false !== $curdir ) {
|
34 |
+
while ( $file = readdir( $curdir ) ) {
|
35 |
+
if ( stristr( $file, '.php' ) && stristr( $file, 'index' ) === false ) {
|
36 |
+
$name = preg_replace( '/.php/', '', $file );
|
37 |
+
if ( 'Example' !== $name ) {
|
38 |
+
$files[ $name ] = $path . $file;
|
39 |
+
}
|
40 |
}
|
41 |
}
|
42 |
}
|
|
|
43 |
|
44 |
+
// Close the directory
|
45 |
+
closedir( $curdir );
|
46 |
|
47 |
+
// Sort keys alphabetically, ignoring upper/lower casing
|
48 |
+
if ( ! empty( $files ) ) {
|
49 |
+
natcasesort( $files );
|
50 |
+
}
|
51 |
}
|
52 |
|
53 |
// Filter & return
|
62 |
* @since 2.0.0
|
63 |
*
|
64 |
* @param string $platform Name of valid platform class.
|
65 |
+
*
|
66 |
+
* @return mixed Object if converter exists, null if not
|
67 |
*/
|
68 |
+
function bbp_new_converter( $platform = '' ) {
|
69 |
+
|
70 |
+
// Default converter
|
71 |
+
$converter = null;
|
72 |
|
73 |
+
// Bail if no platform
|
74 |
+
if ( empty( $platform ) ) {
|
75 |
+
return $converter;
|
76 |
+
}
|
77 |
+
|
78 |
+
// Get the available converters
|
79 |
$converters = bbp_get_converters();
|
80 |
|
81 |
+
// Get the converter file form converters array
|
82 |
+
$converter_file = isset( $converters[ $platform ] )
|
83 |
+
? $converters[ $platform ]
|
84 |
+
: '';
|
85 |
+
|
86 |
+
// Try to create a new converter object
|
87 |
+
if ( ! empty( $converter_file ) ) {
|
88 |
|
89 |
+
// Try to include the converter
|
90 |
+
@include_once $converter_file;
|
91 |
+
|
92 |
+
// Try to instantiate the converter object
|
93 |
if ( class_exists( $platform ) ) {
|
94 |
+
$converter = new $platform;
|
95 |
}
|
96 |
}
|
97 |
|
98 |
+
// Filter & return
|
99 |
+
return apply_filters( 'bbp_new_converter', $converter, $platform );
|
100 |
}
|
includes/admin/tools/repair.php
CHANGED
@@ -1013,12 +1013,12 @@ function bbp_admin_repair_closed_topics() {
|
|
1013 |
// Define variables
|
1014 |
$bbp_db = bbp_db();
|
1015 |
$statement = esc_html__( 'Repairing closed topics… %s', 'bbpress' );
|
1016 |
-
$result = esc_html__( 'No closed topics to repair.',
|
1017 |
$changed = 0;
|
1018 |
|
1019 |
// Results
|
1020 |
-
$query = "SELECT ID FROM `{$bbp_db->posts}` WHERE `post_type` =
|
1021 |
-
$prepare = $bbp_db->prepare( $query, bbp_get_topic_post_type() );
|
1022 |
$closed_topics = $bbp_db->get_col( $prepare );
|
1023 |
|
1024 |
// Bail if no closed topics found
|
1013 |
// Define variables
|
1014 |
$bbp_db = bbp_db();
|
1015 |
$statement = esc_html__( 'Repairing closed topics… %s', 'bbpress' );
|
1016 |
+
$result = esc_html__( 'No closed topics to repair.', 'bbpress' );
|
1017 |
$changed = 0;
|
1018 |
|
1019 |
// Results
|
1020 |
+
$query = "SELECT ID FROM `{$bbp_db->posts}` WHERE `post_type` = %s AND `post_status` = %s";
|
1021 |
+
$prepare = $bbp_db->prepare( $query, bbp_get_topic_post_type(), bbp_get_closed_status_id() );
|
1022 |
$closed_topics = $bbp_db->get_col( $prepare );
|
1023 |
|
1024 |
// Bail if no closed topics found
|
includes/admin/tools/reset.php
CHANGED
@@ -76,142 +76,190 @@ function bbp_admin_reset_page() {
|
|
76 |
}
|
77 |
|
78 |
/**
|
79 |
-
* Handle
|
80 |
*
|
81 |
* @since 2.0.0 bbPress (r2613)
|
82 |
*/
|
83 |
function bbp_admin_reset_handler() {
|
84 |
|
85 |
-
// Bail if not resetting
|
86 |
if ( ! bbp_is_post_request() || empty( $_POST['bbpress-are-you-sure'] ) ) {
|
87 |
return;
|
88 |
}
|
89 |
|
90 |
-
// Only keymasters can proceed
|
91 |
if ( ! bbp_is_user_keymaster() ) {
|
92 |
return;
|
93 |
}
|
94 |
|
|
|
95 |
check_admin_referer( 'bbpress-reset' );
|
96 |
|
97 |
-
//
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
98 |
$messages = array();
|
99 |
-
$
|
100 |
-
$
|
101 |
|
102 |
-
// Flush the cache; things are about to get ugly.
|
103 |
wp_cache_flush();
|
104 |
|
105 |
/** Posts *****************************************************************/
|
106 |
|
107 |
-
// Post types and status
|
108 |
$fpt = bbp_get_forum_post_type();
|
109 |
$tpt = bbp_get_topic_post_type();
|
110 |
$rpt = bbp_get_reply_post_type();
|
111 |
|
112 |
-
//
|
113 |
-
$
|
114 |
-
$statement = esc_html__( 'Deleting Posts… %s', 'bbpress' );
|
115 |
-
|
116 |
-
$sql_posts = $bbp_db->get_results( "SELECT `ID` FROM `{$bbp_db->posts}` WHERE `post_type` IN ('{$fpt}', '{$tpt}', '{$rpt}')", OBJECT_K );
|
117 |
-
$sql_delete = "DELETE FROM `{$bbp_db->posts}` WHERE `post_type` IN ('{$fpt}', '{$tpt}', '{$rpt}')";
|
118 |
-
$result = is_wp_error( $bbp_db->query( $sql_delete ) ) ? $failed : $success;
|
119 |
-
$messages[] = sprintf( $statement, $result );
|
120 |
-
|
121 |
-
/** Post Meta *************************************************************/
|
122 |
-
|
123 |
if ( ! empty( $sql_posts ) ) {
|
124 |
-
|
|
|
125 |
foreach ( $sql_posts as $key => $value ) {
|
126 |
$sql_meta[] = $key;
|
127 |
}
|
128 |
-
$
|
129 |
-
$sql_meta = implode( "', '", $sql_meta );
|
130 |
-
$sql_delete = "DELETE FROM `{$bbp_db->postmeta}` WHERE `post_id` IN ('{$sql_meta}')";
|
131 |
-
$result = is_wp_error( $bbp_db->query( $sql_delete ) ) ? $failed : $success;
|
132 |
-
$messages[] = sprintf( $statement, $result );
|
133 |
-
}
|
134 |
|
135 |
-
|
|
|
|
|
|
|
|
|
136 |
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
$
|
|
|
|
|
|
|
141 |
}
|
142 |
-
$statement = esc_html__( 'Deleting Post Revisions… %s', 'bbpress' );
|
143 |
-
$sql_meta = implode( "', '", $sql_meta );
|
144 |
-
$sql_delete = "DELETE FROM `{$bbp_db->posts}` WHERE `post_parent` IN ('{$sql_meta}') AND `post_type` = 'revision'";
|
145 |
-
$result = is_wp_error( $bbp_db->query( $sql_delete ) ) ? $failed : $success;
|
146 |
-
$messages[] = sprintf( $statement, $result );
|
147 |
-
}
|
148 |
|
149 |
-
|
150 |
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
|
|
|
|
|
|
155 |
|
156 |
/** Topic Tags ************************************************************/
|
157 |
|
158 |
-
$
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
|
163 |
/** User ******************************************************************/
|
164 |
|
165 |
// First, if we're deleting previously imported users, delete them now
|
166 |
if ( ! empty( $_POST['bbpress-delete-imported-users'] ) ) {
|
167 |
-
$sql_users
|
|
|
168 |
if ( ! empty( $sql_users ) ) {
|
169 |
$sql_meta = array();
|
170 |
foreach ( $sql_users as $key => $value ) {
|
171 |
$sql_meta[] = $key;
|
172 |
}
|
173 |
-
|
|
|
174 |
$sql_meta = implode( "', '", $sql_meta );
|
175 |
-
$
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
$messages[] =
|
|
|
|
|
|
|
182 |
}
|
183 |
}
|
184 |
|
185 |
// Next, if we still have users that were not imported delete that meta data
|
186 |
-
$
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
|
191 |
/** Converter *************************************************************/
|
192 |
|
193 |
-
$statement = esc_html__( 'Deleting Conversion Table… %s', 'bbpress' );
|
194 |
$table_name = $bbp_db->prefix . 'bbp_converter_translator';
|
195 |
if ( $bbp_db->get_var( "SHOW TABLES LIKE '{$table_name}'" ) === $table_name ) {
|
196 |
-
$
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
}
|
201 |
-
$messages[] = sprintf( $statement, $result );
|
202 |
|
203 |
/** Options ***************************************************************/
|
204 |
|
205 |
-
$statement = esc_html__( 'Deleting Settings… %s', 'bbpress' );
|
206 |
bbp_delete_options();
|
207 |
-
$messages[] =
|
208 |
|
209 |
/** Roles *****************************************************************/
|
210 |
|
211 |
-
$statement = esc_html__( 'Deleting Roles and Capabilities… %s', 'bbpress' );
|
212 |
bbp_remove_roles();
|
213 |
bbp_remove_caps();
|
214 |
-
$messages[] =
|
215 |
|
216 |
/** Output ****************************************************************/
|
217 |
|
76 |
}
|
77 |
|
78 |
/**
|
79 |
+
* Handle a bbPress admin area reset request.
|
80 |
*
|
81 |
* @since 2.0.0 bbPress (r2613)
|
82 |
*/
|
83 |
function bbp_admin_reset_handler() {
|
84 |
|
85 |
+
// Bail if not resetting.
|
86 |
if ( ! bbp_is_post_request() || empty( $_POST['bbpress-are-you-sure'] ) ) {
|
87 |
return;
|
88 |
}
|
89 |
|
90 |
+
// Only keymasters can proceed.
|
91 |
if ( ! bbp_is_user_keymaster() ) {
|
92 |
return;
|
93 |
}
|
94 |
|
95 |
+
// Bail if not referred from resetter
|
96 |
check_admin_referer( 'bbpress-reset' );
|
97 |
|
98 |
+
// Reset all of bbPress
|
99 |
+
bbp_admin_reset_database();
|
100 |
+
}
|
101 |
+
|
102 |
+
/**
|
103 |
+
* Wrapper for determining admin reset query feedback presented to a user.
|
104 |
+
*
|
105 |
+
* @since 2.6.0 bbPress (r6758)
|
106 |
+
*
|
107 |
+
* @param array $args Array of query, message, and possible responses
|
108 |
+
*
|
109 |
+
* @return string
|
110 |
+
*/
|
111 |
+
function bbp_admin_reset_query_feedback( $args = array() ) {
|
112 |
+
static $defaults = null;
|
113 |
+
|
114 |
+
// Only set defaults one time to avoid hitting the GetText API repeatedly
|
115 |
+
if ( null === $defaults ) {
|
116 |
+
$defaults = array(
|
117 |
+
'query' => '',
|
118 |
+
'message' => esc_html__( 'Resetting…', 'bbpress' ),
|
119 |
+
'responses' => array(
|
120 |
+
'success' => esc_html__( 'Success!', 'bbpress' ),
|
121 |
+
'failure' => esc_html__( 'Failed!', 'bbpress' ),
|
122 |
+
'skipped' => esc_html__( 'Skipped.', 'bbpress' )
|
123 |
+
)
|
124 |
+
);
|
125 |
+
}
|
126 |
+
|
127 |
+
// Parse arguments
|
128 |
+
$r = bbp_parse_args( $args, $defaults, 'admin_reset_query_feedback' );
|
129 |
+
|
130 |
+
// Success/Failure based on query error
|
131 |
+
if ( ! empty( $r['query'] ) ) {
|
132 |
+
$query = bbp_db()->query( $r['query'] );
|
133 |
+
$result = ! is_wp_error( $query )
|
134 |
+
? $r['responses']['success']
|
135 |
+
: $r['responses']['failure'];
|
136 |
+
|
137 |
+
// Skip if empty
|
138 |
+
} else {
|
139 |
+
$result = $r['responses']['skipped'];
|
140 |
+
}
|
141 |
+
|
142 |
+
// Return feedback
|
143 |
+
return sprintf( $r['message'], $result );
|
144 |
+
}
|
145 |
+
|
146 |
+
/**
|
147 |
+
* Perform a bbPress database reset.
|
148 |
+
*
|
149 |
+
* @since 2.6.0 bbPress
|
150 |
+
*/
|
151 |
+
function bbp_admin_reset_database() {
|
152 |
+
|
153 |
+
// Define variables.
|
154 |
$messages = array();
|
155 |
+
$sql_meta = array();
|
156 |
+
$bbp_db = bbp_db();
|
157 |
|
158 |
+
// Flush the whole cache; things are about to get ugly.
|
159 |
wp_cache_flush();
|
160 |
|
161 |
/** Posts *****************************************************************/
|
162 |
|
163 |
+
// Post types and status.
|
164 |
$fpt = bbp_get_forum_post_type();
|
165 |
$tpt = bbp_get_topic_post_type();
|
166 |
$rpt = bbp_get_reply_post_type();
|
167 |
|
168 |
+
// Get post IDs
|
169 |
+
$sql_posts = $bbp_db->get_results( "SELECT `ID` FROM `{$bbp_db->posts}` WHERE `post_type` IN ('{$fpt}', '{$tpt}', '{$rpt}')", OBJECT_K );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
170 |
if ( ! empty( $sql_posts ) ) {
|
171 |
+
|
172 |
+
// Meta data
|
173 |
foreach ( $sql_posts as $key => $value ) {
|
174 |
$sql_meta[] = $key;
|
175 |
}
|
176 |
+
$sql_meta = implode( "', '", $sql_meta );
|
|
|
|
|
|
|
|
|
|
|
177 |
|
178 |
+
// Delete posts
|
179 |
+
$messages[] = bbp_admin_reset_query_feedback( array(
|
180 |
+
'query' => "DELETE FROM `{$bbp_db->posts}` WHERE `post_type` IN ('{$fpt}', '{$tpt}', '{$rpt}')",
|
181 |
+
'message' => esc_html__( 'Removing Forums, Topics, and Replies… %s', 'bbpress' )
|
182 |
+
) );
|
183 |
|
184 |
+
/** Post Meta *********************************************************/
|
185 |
+
|
186 |
+
if ( ! empty( $sql_posts ) ) {
|
187 |
+
$messages[] = bbp_admin_reset_query_feedback( array(
|
188 |
+
'query' => "DELETE FROM `{$bbp_db->postmeta}` WHERE `post_id` IN ('{$sql_meta}')",
|
189 |
+
'message' => esc_html__( 'Removing Forum, Topic, and Reply Meta Data… %s', 'bbpress' )
|
190 |
+
) );
|
191 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
192 |
|
193 |
+
/** Post Revisions ****************************************************/
|
194 |
|
195 |
+
if ( ! empty( $sql_posts ) ) {
|
196 |
+
$messages[] = bbp_admin_reset_query_feedback( array(
|
197 |
+
'query' => "DELETE FROM `{$bbp_db->posts}` WHERE `post_parent` IN ('{$sql_meta}') AND `post_type` = 'revision'",
|
198 |
+
'message' => esc_html__( 'Removing Revision Data… %s', 'bbpress' )
|
199 |
+
) );
|
200 |
+
}
|
201 |
+
}
|
202 |
|
203 |
/** Topic Tags ************************************************************/
|
204 |
|
205 |
+
$messages[] = bbp_admin_reset_query_feedback( array(
|
206 |
+
'query' => "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'",
|
207 |
+
'message' => esc_html__( 'Deleting Topic Tags… %s', 'bbpress' )
|
208 |
+
) );
|
209 |
|
210 |
/** User ******************************************************************/
|
211 |
|
212 |
// First, if we're deleting previously imported users, delete them now
|
213 |
if ( ! empty( $_POST['bbpress-delete-imported-users'] ) ) {
|
214 |
+
$sql_users = $bbp_db->get_results( "SELECT `user_id` FROM `{$bbp_db->usermeta}` WHERE `meta_key` = '_bbp_old_user_id'", OBJECT_K );
|
215 |
+
|
216 |
if ( ! empty( $sql_users ) ) {
|
217 |
$sql_meta = array();
|
218 |
foreach ( $sql_users as $key => $value ) {
|
219 |
$sql_meta[] = $key;
|
220 |
}
|
221 |
+
|
222 |
+
// Users
|
223 |
$sql_meta = implode( "', '", $sql_meta );
|
224 |
+
$messages[] = bbp_admin_reset_query_feedback( array(
|
225 |
+
'query' => "DELETE FROM `{$bbp_db->users}` WHERE `ID` IN ('{$sql_meta}')",
|
226 |
+
'message' => esc_html__( 'Deleting Imported Users… %s', 'bbpress' )
|
227 |
+
) );
|
228 |
+
|
229 |
+
// User meta
|
230 |
+
$messages[] = bbp_admin_reset_query_feedback( array(
|
231 |
+
'query' => "DELETE FROM `{$bbp_db->usermeta}` WHERE `user_id` IN ('{$sql_meta}')",
|
232 |
+
'message' => esc_html__( 'Deleting Imported User Meta… %s', 'bbpress' )
|
233 |
+
) );
|
234 |
}
|
235 |
}
|
236 |
|
237 |
// Next, if we still have users that were not imported delete that meta data
|
238 |
+
$messages[] = bbp_admin_reset_query_feedback( array(
|
239 |
+
'query' => "DELETE FROM `{$bbp_db->usermeta}` WHERE `meta_key` LIKE '%%_bbp_%%'",
|
240 |
+
'message' => esc_html__( 'Deleting bbPress Specific User Meta… %s', 'bbpress' )
|
241 |
+
) );
|
242 |
|
243 |
/** Converter *************************************************************/
|
244 |
|
|
|
245 |
$table_name = $bbp_db->prefix . 'bbp_converter_translator';
|
246 |
if ( $bbp_db->get_var( "SHOW TABLES LIKE '{$table_name}'" ) === $table_name ) {
|
247 |
+
$messages[] = bbp_admin_reset_query_feedback( array(
|
248 |
+
'query' => "DROP TABLE {$table_name}",
|
249 |
+
'message' => esc_html__( 'Dropping Conversion Table… %s', 'bbpress' )
|
250 |
+
) );
|
251 |
}
|
|
|
252 |
|
253 |
/** Options ***************************************************************/
|
254 |
|
|
|
255 |
bbp_delete_options();
|
256 |
+
$messages[] = esc_html__( 'Deleting Settings… Success!', 'bbpress' );
|
257 |
|
258 |
/** Roles *****************************************************************/
|
259 |
|
|
|
260 |
bbp_remove_roles();
|
261 |
bbp_remove_caps();
|
262 |
+
$messages[] = esc_html__( 'Removing Roles and Capabilities… Success!', 'bbpress' );
|
263 |
|
264 |
/** Output ****************************************************************/
|
265 |
|
includes/admin/topics.php
CHANGED
@@ -78,12 +78,15 @@ class BBP_Topics_Admin {
|
|
78 |
|
79 |
// Check if there are any bbp_toggle_topic_* requests on admin_init, also have a message displayed
|
80 |
add_action( 'load-edit.php', array( $this, 'toggle_topic' ) );
|
81 |
-
add_action( '
|
82 |
|
83 |
// Add ability to filter topics and replies per forum
|
84 |
add_filter( 'restrict_manage_posts', array( $this, 'filter_dropdown' ) );
|
85 |
add_filter( 'bbp_request', array( $this, 'filter_post_rows' ) );
|
86 |
|
|
|
|
|
|
|
87 |
// Contextual Help
|
88 |
add_action( 'load-edit.php', array( $this, 'edit_help' ) );
|
89 |
add_action( 'load-post.php', array( $this, 'new_help' ) );
|
@@ -140,13 +143,13 @@ class BBP_Topics_Admin {
|
|
140 |
'<p>' . __( 'Hovering over a row in the topics list will display action links that allow you to manage your topic. You can perform the following actions:', 'bbpress' ) . '</p>' .
|
141 |
'<ul>' .
|
142 |
'<li>' . __( '<strong>Edit</strong> takes you to the editing screen for that topic. You can also reach that screen by clicking on the topic title.', 'bbpress' ) . '</li>' .
|
143 |
-
'<li>' . __( '<strong>Trash</strong> removes your topic from this list and places it in the trash, from which you can permanently delete it.', 'bbpress' ) . '</li>' .
|
144 |
-
'<li>' . __( '<strong>Spam</strong> removes your topic from this list and places it in the spam queue, from which you can permanently delete it.', 'bbpress' ) . '</li>' .
|
145 |
-
'<li>' . __( '<strong>View</strong> will take you to your live site to view the topic.', 'bbpress' ) . '</li>' .
|
146 |
-
'<li>' . __( '<strong>Approve</strong> will change the status from pending to publish.', 'bbpress' ) . '</li>' .
|
147 |
-
'<li>' . __( '<strong>Close</strong> will mark the selected topic as ’closed’ and disable the option to post new replies to the topic.', 'bbpress' ) . '</li>' .
|
148 |
'<li>' . __( '<strong>Stick</strong> will keep the selected topic ’pinned’ to the top the parent forum topic list.', 'bbpress' ) . '</li>' .
|
149 |
'<li>' . __( '<strong>Stick <em>(to front)</em></strong> will keep the selected topic ’pinned’ to the top of ALL forums and be visable in any forums topics list.', 'bbpress' ) . '</li>' .
|
|
|
|
|
|
|
|
|
|
|
150 |
'</ul>'
|
151 |
) );
|
152 |
|
@@ -192,7 +195,7 @@ class BBP_Topics_Admin {
|
|
192 |
|
193 |
$publish_box = '<p>' . __( '<strong>Publish</strong> - You can set the terms of publishing your topic in the Publish box. For Status, Visibility, and Publish (immediately), click on the Edit link to reveal more options. Visibility includes options for password-protecting a topic or making it stay at the top of your blog indefinitely (sticky). Publish (immediately) allows you to set a future or past date and time, so you can schedule a topic to be published in the future or backdate a topic.', 'bbpress' ) . '</p>';
|
194 |
|
195 |
-
if ( current_theme_supports( 'topic-thumbnails' ) && post_type_supports(
|
196 |
$publish_box .= '<p>' . __( '<strong>Featured Image</strong> - This allows you to associate an image with your topic without inserting it. This is usually useful only if your theme makes use of the featured image as a topic thumbnail on the home page, a custom header, etc.', 'bbpress' ) . '</p>';
|
197 |
}
|
198 |
|
@@ -232,9 +235,9 @@ class BBP_Topics_Admin {
|
|
232 |
|
233 |
if ( current_user_can( 'moderate' ) ) {
|
234 |
if ( bbp_get_spam_status_id() === get_query_var( 'post_status' ) ) {
|
235 |
-
$actions['unspam'] =
|
236 |
} else {
|
237 |
-
$actions['spam'] =
|
238 |
}
|
239 |
}
|
240 |
|
@@ -277,7 +280,7 @@ class BBP_Topics_Admin {
|
|
277 |
|
278 |
foreach ( (array) $post_ids as $post_id ) {
|
279 |
if ( ! current_user_can( 'moderate', $post_id ) ) {
|
280 |
-
wp_die(
|
281 |
}
|
282 |
|
283 |
if ( wp_check_post_lock( $post_id ) ) {
|
@@ -286,7 +289,7 @@ class BBP_Topics_Admin {
|
|
286 |
}
|
287 |
|
288 |
if ( ! bbp_spam_topic( $post_id ) ) {
|
289 |
-
wp_die(
|
290 |
}
|
291 |
|
292 |
$updated++;
|
@@ -302,7 +305,7 @@ class BBP_Topics_Admin {
|
|
302 |
|
303 |
foreach ( (array) $post_ids as $post_id ) {
|
304 |
if ( ! current_user_can( 'moderate', $post_id ) ) {
|
305 |
-
wp_die(
|
306 |
}
|
307 |
|
308 |
if ( wp_check_post_lock( $post_id ) ) {
|
@@ -311,7 +314,7 @@ class BBP_Topics_Admin {
|
|
311 |
}
|
312 |
|
313 |
if ( ! bbp_unspam_topic( $post_id ) ) {
|
314 |
-
wp_die(
|
315 |
}
|
316 |
|
317 |
$updated++;
|
@@ -335,7 +338,7 @@ class BBP_Topics_Admin {
|
|
335 |
public function attributes_metabox() {
|
336 |
add_meta_box(
|
337 |
'bbp_topic_attributes',
|
338 |
-
|
339 |
'bbp_topic_metabox',
|
340 |
$this->post_type,
|
341 |
'side',
|
@@ -358,7 +361,7 @@ class BBP_Topics_Admin {
|
|
358 |
// Add the meta-box
|
359 |
add_meta_box(
|
360 |
'bbp_author_metabox',
|
361 |
-
|
362 |
'bbp_author_metabox',
|
363 |
$this->post_type,
|
364 |
'side',
|
@@ -384,7 +387,7 @@ class BBP_Topics_Admin {
|
|
384 |
// Add the meta-box
|
385 |
add_meta_box(
|
386 |
'bbp_topic_replies_metabox',
|
387 |
-
|
388 |
'bbp_topic_replies_metabox',
|
389 |
$this->post_type,
|
390 |
'normal',
|
@@ -414,7 +417,7 @@ class BBP_Topics_Admin {
|
|
414 |
// Add the meta-box
|
415 |
add_meta_box(
|
416 |
'bbp_topic_engagements_metabox',
|
417 |
-
|
418 |
'bbp_topic_engagements_metabox',
|
419 |
$this->post_type,
|
420 |
'side',
|
@@ -444,7 +447,7 @@ class BBP_Topics_Admin {
|
|
444 |
// Add the meta-box
|
445 |
add_meta_box(
|
446 |
'bbp_topic_favorites_metabox',
|
447 |
-
|
448 |
'bbp_topic_favorites_metabox',
|
449 |
$this->post_type,
|
450 |
'normal',
|
@@ -474,7 +477,7 @@ class BBP_Topics_Admin {
|
|
474 |
// Add the meta-box
|
475 |
add_meta_box(
|
476 |
'bbp_topic_subscriptions_metabox',
|
477 |
-
|
478 |
'bbp_topic_subscriptions_metabox',
|
479 |
$this->post_type,
|
480 |
'normal',
|
@@ -571,12 +574,12 @@ class BBP_Topics_Admin {
|
|
571 |
// Bail if topic is missing
|
572 |
$topic_id = bbp_get_topic_id( $_GET['topic_id'] );
|
573 |
if ( ! bbp_get_topic( $topic_id ) ) {
|
574 |
-
wp_die(
|
575 |
}
|
576 |
|
577 |
// What is the user doing here?
|
578 |
if ( ! current_user_can( 'moderate', $topic_id ) ) {
|
579 |
-
wp_die(
|
580 |
}
|
581 |
|
582 |
// Defaults
|
@@ -588,13 +591,13 @@ class BBP_Topics_Admin {
|
|
588 |
case 'bbp_toggle_topic_approve' :
|
589 |
check_admin_referer( 'approve-topic_' . $topic_id );
|
590 |
|
591 |
-
$is_approve =
|
592 |
$message = ( true === $is_approve )
|
593 |
-
? '
|
594 |
-
: '
|
595 |
$success = ( true === $is_approve )
|
596 |
-
?
|
597 |
-
:
|
598 |
|
599 |
break;
|
600 |
|
@@ -707,56 +710,56 @@ class BBP_Topics_Admin {
|
|
707 |
switch ( $notice ) {
|
708 |
case 'opened' :
|
709 |
$message = ( $is_failure === true )
|
710 |
-
? sprintf(
|
711 |
-
: sprintf(
|
712 |
break;
|
713 |
|
714 |
case 'closed' :
|
715 |
$message = ( $is_failure === true )
|
716 |
-
? sprintf(
|
717 |
-
: sprintf(
|
718 |
break;
|
719 |
|
720 |
case 'super_sticky' :
|
721 |
$message = ( $is_failure === true )
|
722 |
-
? sprintf(
|
723 |
-
: sprintf(
|
724 |
break;
|
725 |
|
726 |
case 'stuck' :
|
727 |
$message = ( $is_failure === true )
|
728 |
-
? sprintf(
|
729 |
-
: sprintf(
|
730 |
break;
|
731 |
|
732 |
case 'unstuck' :
|
733 |
$message = ( $is_failure === true )
|
734 |
-
? sprintf(
|
735 |
-
: sprintf(
|
736 |
break;
|
737 |
|
738 |
case 'spammed' :
|
739 |
$message = ( $is_failure === true )
|
740 |
-
? sprintf(
|
741 |
-
: sprintf(
|
742 |
break;
|
743 |
|
744 |
case 'unspammed' :
|
745 |
$message = ( $is_failure === true )
|
746 |
-
? sprintf(
|
747 |
-
: sprintf(
|
748 |
break;
|
749 |
|
750 |
case 'approved' :
|
751 |
$message = ( $is_failure === true )
|
752 |
-
? sprintf(
|
753 |
-
: sprintf(
|
754 |
break;
|
755 |
|
756 |
case 'unapproved' :
|
757 |
$message = ( $is_failure === true )
|
758 |
-
? sprintf(
|
759 |
-
: sprintf(
|
760 |
break;
|
761 |
}
|
762 |
|
@@ -766,13 +769,33 @@ class BBP_Topics_Admin {
|
|
766 |
? 'error'
|
767 |
: 'updated';
|
768 |
|
769 |
-
|
|
|
|
|
770 |
|
771 |
-
|
772 |
-
|
773 |
-
|
|
|
|
|
|
|
|
|
|
|
774 |
|
775 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
776 |
}
|
777 |
|
778 |
/**
|
@@ -828,13 +851,13 @@ class BBP_Topics_Admin {
|
|
828 |
public function column_headers( $columns ) {
|
829 |
$columns = array(
|
830 |
'cb' => '<input type="checkbox" />',
|
831 |
-
'title' =>
|
832 |
-
'bbp_topic_forum' =>
|
833 |
-
'bbp_topic_reply_count' =>
|
834 |
-
'bbp_topic_voice_count' =>
|
835 |
-
'bbp_topic_author' =>
|
836 |
-
'bbp_topic_created' =>
|
837 |
-
'bbp_topic_freshness' =>
|
838 |
);
|
839 |
|
840 |
// Filter & return
|
@@ -929,12 +952,14 @@ class BBP_Topics_Admin {
|
|
929 |
*
|
930 |
* @since 2.0.0 bbPress (r2485)
|
931 |
*
|
932 |
-
* @param array
|
933 |
-
* @param
|
|
|
934 |
* @return array $actions Actions
|
935 |
*/
|
936 |
-
public function row_actions( $actions, $topic ) {
|
937 |
|
|
|
938 |
unset( $actions['inline hide-if-no-js'] );
|
939 |
|
940 |
// View link
|
@@ -956,11 +981,17 @@ class BBP_Topics_Admin {
|
|
956 |
// Pending
|
957 |
// Show the 'approve' and 'view' link on pending posts only and 'unapprove' on published posts only
|
958 |
$approve_uri = wp_nonce_url( add_query_arg( array( 'topic_id' => $topic->ID, 'action' => 'bbp_toggle_topic_approve' ), remove_query_arg( array( 'bbp_topic_toggle_notice', 'topic_id', 'failed', 'super' ) ) ), 'approve-topic_' . $topic->ID );
|
959 |
-
if (
|
960 |
$actions['unapproved'] = '<a href="' . esc_url( $approve_uri ) . '" title="' . esc_attr__( 'Unapprove this topic', 'bbpress' ) . '">' . _x( 'Unapprove', 'Unapprove Topic', 'bbpress' ) . '</a>';
|
961 |
-
}
|
962 |
-
|
963 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
964 |
}
|
965 |
|
966 |
// Close
|
@@ -975,7 +1006,7 @@ class BBP_Topics_Admin {
|
|
975 |
}
|
976 |
|
977 |
// Sticky
|
978 |
-
// Dont show sticky if topic
|
979 |
if ( ! bbp_is_topic_spam( $topic->ID ) && ! bbp_is_topic_trash( $topic->ID ) && ! bbp_is_topic_pending( $topic->ID ) ) {
|
980 |
$stick_uri = wp_nonce_url( add_query_arg( array( 'topic_id' => $topic->ID, 'action' => 'bbp_toggle_topic_stick' ), remove_query_arg( array( 'bbp_topic_toggle_notice', 'topic_id', 'failed', 'super' ) ) ), 'stick-topic_' . $topic->ID );
|
981 |
if ( bbp_is_topic_sticky( $topic->ID ) ) {
|
@@ -988,10 +1019,10 @@ class BBP_Topics_Admin {
|
|
988 |
|
989 |
// Spam
|
990 |
$spam_uri = wp_nonce_url( add_query_arg( array( 'topic_id' => $topic->ID, 'action' => 'bbp_toggle_topic_spam' ), remove_query_arg( array( 'bbp_topic_toggle_notice', 'topic_id', 'failed', 'super' ) ) ), 'spam-topic_' . $topic->ID );
|
991 |
-
if ( bbp_is_topic_spam( $topic->ID ) ) {
|
992 |
-
$actions['spam'] = '<a href="' . esc_url( $spam_uri ) . '" title="' . esc_attr__( 'Mark the topic as not spam', 'bbpress' ) . '">' . esc_html__( 'Not spam', 'bbpress' ) . '</a>';
|
993 |
-
} else {
|
994 |
$actions['spam'] = '<a href="' . esc_url( $spam_uri ) . '" title="' . esc_attr__( 'Mark this topic as spam', 'bbpress' ) . '">' . esc_html__( 'Spam', 'bbpress' ) . '</a>';
|
|
|
|
|
995 |
}
|
996 |
}
|
997 |
|
@@ -1008,12 +1039,40 @@ class BBP_Topics_Admin {
|
|
1008 |
|
1009 |
if ( ( bbp_get_trash_status_id() === $topic->post_status ) || empty( $trash_days ) ) {
|
1010 |
$actions['delete'] = "<a class='submitdelete' title='" . esc_attr__( 'Delete this item permanently', 'bbpress' ) . "' href='" . esc_url( get_delete_post_link( $topic->ID, '', true ) ) . "'>" . esc_html__( 'Delete Permanently', 'bbpress' ) . "</a>";
|
1011 |
-
} elseif ( bbp_get_spam_status_id() === $topic->post_status ) {
|
1012 |
-
unset( $actions['trash'] );
|
1013 |
}
|
1014 |
}
|
1015 |
|
1016 |
-
return
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1017 |
}
|
1018 |
|
1019 |
/**
|
@@ -1025,17 +1084,6 @@ class BBP_Topics_Admin {
|
|
1025 |
*/
|
1026 |
public function filter_dropdown() {
|
1027 |
|
1028 |
-
// Add "Empty Spam" button for moderators
|
1029 |
-
if ( ! empty( $_GET['post_status'] ) && ( bbp_get_spam_status_id() === $_GET['post_status'] ) && current_user_can( 'moderate' ) ) {
|
1030 |
-
wp_nonce_field( 'bulk-destroy', '_destroy_nonce' );
|
1031 |
-
submit_button(
|
1032 |
-
esc_attr__( 'Empty Spam', 'bbpress' ),
|
1033 |
-
'button-secondary apply',
|
1034 |
-
'delete_all',
|
1035 |
-
false
|
1036 |
-
);
|
1037 |
-
}
|
1038 |
-
|
1039 |
// Get which forum is selected
|
1040 |
$selected = ! empty( $_GET['bbp_forum_id'] )
|
1041 |
? (int) $_GET['bbp_forum_id']
|
@@ -1048,6 +1096,34 @@ class BBP_Topics_Admin {
|
|
1048 |
) );
|
1049 |
}
|
1050 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1051 |
/**
|
1052 |
* Adjust the request query and include the forum id
|
1053 |
*
|
@@ -1096,63 +1172,63 @@ class BBP_Topics_Admin {
|
|
1096 |
// Updated
|
1097 |
1 => sprintf(
|
1098 |
'%1$s <a href="%2$s">%3$s</a>',
|
1099 |
-
|
1100 |
$topic_url,
|
1101 |
-
|
1102 |
),
|
1103 |
|
1104 |
// Custom field updated
|
1105 |
-
2 =>
|
1106 |
|
1107 |
// Custom field deleted
|
1108 |
-
3 =>
|
1109 |
|
1110 |
// Topic updated
|
1111 |
-
4 =>
|
1112 |
|
1113 |
// Restored from revision
|
1114 |
// translators: %s: date and time of the revision
|
1115 |
5 => isset( $_GET['revision'] )
|
1116 |
-
? sprintf(
|
1117 |
: false,
|
1118 |
|
1119 |
// Topic created
|
1120 |
6 => sprintf(
|
1121 |
'%1$s <a href="%2$s">%3$s</a>',
|
1122 |
-
|
1123 |
$topic_url,
|
1124 |
-
|
1125 |
),
|
1126 |
|
1127 |
// Topic saved
|
1128 |
-
7 =>
|
1129 |
|
1130 |
// Topic submitted
|
1131 |
8 => sprintf(
|
1132 |
'%1$s <a href="%2$s" target="_blank">%3$s</a>',
|
1133 |
-
|
1134 |
esc_url( add_query_arg( 'preview', 'true', $topic_url ) ),
|
1135 |
-
|
1136 |
),
|
1137 |
|
1138 |
// Topic scheduled
|
1139 |
9 => sprintf(
|
1140 |
'%1$s <a target="_blank" href="%2$s">%3$s</a>',
|
1141 |
sprintf(
|
1142 |
-
|
1143 |
// translators: Publish box date format, see http://php.net/date
|
1144 |
'<strong>' . date_i18n( __( 'M j, Y @ G:i', 'bbpress' ), strtotime( $post_date ) ) . '</strong>'
|
1145 |
),
|
1146 |
$topic_url,
|
1147 |
-
|
1148 |
),
|
1149 |
|
1150 |
// Topic draft updated
|
1151 |
10 => sprintf(
|
1152 |
'%1$s <a href="%2$s" target="_blank">%3$s</a>',
|
1153 |
-
|
1154 |
esc_url( add_query_arg( 'preview', 'true', $topic_url ) ),
|
1155 |
-
|
1156 |
),
|
1157 |
);
|
1158 |
|
@@ -1179,5 +1255,5 @@ function bbp_admin_topics( $current_screen ) {
|
|
1179 |
}
|
1180 |
|
1181 |
// Init the topics admin
|
1182 |
-
|
1183 |
}
|
78 |
|
79 |
// Check if there are any bbp_toggle_topic_* requests on admin_init, also have a message displayed
|
80 |
add_action( 'load-edit.php', array( $this, 'toggle_topic' ) );
|
81 |
+
add_action( 'load-edit.php', array( $this, 'toggle_topic_notice' ) );
|
82 |
|
83 |
// Add ability to filter topics and replies per forum
|
84 |
add_filter( 'restrict_manage_posts', array( $this, 'filter_dropdown' ) );
|
85 |
add_filter( 'bbp_request', array( $this, 'filter_post_rows' ) );
|
86 |
|
87 |
+
// Empty spam
|
88 |
+
add_filter( 'manage_posts_extra_tablenav', array( $this, 'filter_empty_spam' ) );
|
89 |
+
|
90 |
// Contextual Help
|
91 |
add_action( 'load-edit.php', array( $this, 'edit_help' ) );
|
92 |
add_action( 'load-post.php', array( $this, 'new_help' ) );
|
143 |
'<p>' . __( 'Hovering over a row in the topics list will display action links that allow you to manage your topic. You can perform the following actions:', 'bbpress' ) . '</p>' .
|
144 |
'<ul>' .
|
145 |
'<li>' . __( '<strong>Edit</strong> takes you to the editing screen for that topic. You can also reach that screen by clicking on the topic title.', 'bbpress' ) . '</li>' .
|
|
|
|
|
|
|
|
|
|
|
146 |
'<li>' . __( '<strong>Stick</strong> will keep the selected topic ’pinned’ to the top the parent forum topic list.', 'bbpress' ) . '</li>' .
|
147 |
'<li>' . __( '<strong>Stick <em>(to front)</em></strong> will keep the selected topic ’pinned’ to the top of ALL forums and be visable in any forums topics list.', 'bbpress' ) . '</li>' .
|
148 |
+
'<li>' . __( '<strong>Approve</strong> will change the status from pending to publish.', 'bbpress' ) . '</li>' .
|
149 |
+
'<li>' . __( '<strong>Close</strong> will mark the selected topic as ’closed’ and disable the ability to post new replies to it.', 'bbpress' ) . '</li>' .
|
150 |
+
'<li>' . __( '<strong>Spam</strong> removes your topic from this list and places it in the spam queue, from which you can permanently delete it.', 'bbpress' ) . '</li>' .
|
151 |
+
'<li>' . __( '<strong>Trash</strong> removes your topic from this list and places it in the trash, from which you can permanently delete it.', 'bbpress' ) . '</li>' .
|
152 |
+
'<li>' . __( '<strong>View</strong> will take you to your live site to view the topic.', 'bbpress' ) . '</li>' .
|
153 |
'</ul>'
|
154 |
) );
|
155 |
|
195 |
|
196 |
$publish_box = '<p>' . __( '<strong>Publish</strong> - You can set the terms of publishing your topic in the Publish box. For Status, Visibility, and Publish (immediately), click on the Edit link to reveal more options. Visibility includes options for password-protecting a topic or making it stay at the top of your blog indefinitely (sticky). Publish (immediately) allows you to set a future or past date and time, so you can schedule a topic to be published in the future or backdate a topic.', 'bbpress' ) . '</p>';
|
197 |
|
198 |
+
if ( current_theme_supports( 'topic-thumbnails' ) && post_type_supports( bbp_get_topic_post_type(), 'thumbnail' ) ) {
|
199 |
$publish_box .= '<p>' . __( '<strong>Featured Image</strong> - This allows you to associate an image with your topic without inserting it. This is usually useful only if your theme makes use of the featured image as a topic thumbnail on the home page, a custom header, etc.', 'bbpress' ) . '</p>';
|
200 |
}
|
201 |
|
235 |
|
236 |
if ( current_user_can( 'moderate' ) ) {
|
237 |
if ( bbp_get_spam_status_id() === get_query_var( 'post_status' ) ) {
|
238 |
+
$actions['unspam'] = esc_html__( 'Unspam', 'bbpress' );
|
239 |
} else {
|
240 |
+
$actions['spam'] = esc_html__( 'Spam', 'bbpress' );
|
241 |
}
|
242 |
}
|
243 |
|
280 |
|
281 |
foreach ( (array) $post_ids as $post_id ) {
|
282 |
if ( ! current_user_can( 'moderate', $post_id ) ) {
|
283 |
+
wp_die( esc_html__( 'Sorry, you are not allowed to spam this item.', 'bbpress' ) );
|
284 |
}
|
285 |
|
286 |
if ( wp_check_post_lock( $post_id ) ) {
|
289 |
}
|
290 |
|
291 |
if ( ! bbp_spam_topic( $post_id ) ) {
|
292 |
+
wp_die( esc_html__( 'Error in spamming topic.', 'bbpress' ) );
|
293 |
}
|
294 |
|
295 |
$updated++;
|
305 |
|
306 |
foreach ( (array) $post_ids as $post_id ) {
|
307 |
if ( ! current_user_can( 'moderate', $post_id ) ) {
|
308 |
+
wp_die( esc_html__( 'Sorry, you are not allowed to unspam this topic.', 'bbpress' ) );
|
309 |
}
|
310 |
|
311 |
if ( wp_check_post_lock( $post_id ) ) {
|
314 |
}
|
315 |
|
316 |
if ( ! bbp_unspam_topic( $post_id ) ) {
|
317 |
+
wp_die( esc_html__( 'Error in unspamming topic.', 'bbpress' ) );
|
318 |
}
|
319 |
|
320 |
$updated++;
|
338 |
public function attributes_metabox() {
|
339 |
add_meta_box(
|
340 |
'bbp_topic_attributes',
|
341 |
+
esc_html__( 'Topic Attributes', 'bbpress' ),
|
342 |
'bbp_topic_metabox',
|
343 |
$this->post_type,
|
344 |
'side',
|
361 |
// Add the meta-box
|
362 |
add_meta_box(
|
363 |
'bbp_author_metabox',
|
364 |
+
esc_html__( 'Author Information', 'bbpress' ),
|
365 |
'bbp_author_metabox',
|
366 |
$this->post_type,
|
367 |
'side',
|
387 |
// Add the meta-box
|
388 |
add_meta_box(
|
389 |
'bbp_topic_replies_metabox',
|
390 |
+
esc_html__( 'Replies', 'bbpress' ),
|
391 |
'bbp_topic_replies_metabox',
|
392 |
$this->post_type,
|
393 |
'normal',
|
417 |
// Add the meta-box
|
418 |
add_meta_box(
|
419 |
'bbp_topic_engagements_metabox',
|
420 |
+
esc_html__( 'Engagements', 'bbpress' ),
|
421 |
'bbp_topic_engagements_metabox',
|
422 |
$this->post_type,
|
423 |
'side',
|
447 |
// Add the meta-box
|
448 |
add_meta_box(
|
449 |
'bbp_topic_favorites_metabox',
|
450 |
+
esc_html__( 'Favorites', 'bbpress' ),
|
451 |
'bbp_topic_favorites_metabox',
|
452 |
$this->post_type,
|
453 |
'normal',
|
477 |
// Add the meta-box
|
478 |
add_meta_box(
|
479 |
'bbp_topic_subscriptions_metabox',
|
480 |
+
esc_html__( 'Subscriptions', 'bbpress' ),
|
481 |
'bbp_topic_subscriptions_metabox',
|
482 |
$this->post_type,
|
483 |
'normal',
|
574 |
// Bail if topic is missing
|
575 |
$topic_id = bbp_get_topic_id( $_GET['topic_id'] );
|
576 |
if ( ! bbp_get_topic( $topic_id ) ) {
|
577 |
+
wp_die( esc_html__( 'The topic was not found.', 'bbpress' ) );
|
578 |
}
|
579 |
|
580 |
// What is the user doing here?
|
581 |
if ( ! current_user_can( 'moderate', $topic_id ) ) {
|
582 |
+
wp_die( esc_html__( 'You do not have permission to do that.', 'bbpress' ) );
|
583 |
}
|
584 |
|
585 |
// Defaults
|
591 |
case 'bbp_toggle_topic_approve' :
|
592 |
check_admin_referer( 'approve-topic_' . $topic_id );
|
593 |
|
594 |
+
$is_approve = bbp_is_topic_public( $topic_id );
|
595 |
$message = ( true === $is_approve )
|
596 |
+
? 'unapproved'
|
597 |
+
: 'approved';
|
598 |
$success = ( true === $is_approve )
|
599 |
+
? bbp_unapprove_topic( $topic_id )
|
600 |
+
: bbp_approve_topic( $topic_id );
|
601 |
|
602 |
break;
|
603 |
|
710 |
switch ( $notice ) {
|
711 |
case 'opened' :
|
712 |
$message = ( $is_failure === true )
|
713 |
+
? sprintf( esc_html__( 'There was a problem opening the topic "%1$s".', 'bbpress' ), $topic_title )
|
714 |
+
: sprintf( esc_html__( 'Topic "%1$s" successfully opened.', 'bbpress' ), $topic_title );
|
715 |
break;
|
716 |
|
717 |
case 'closed' :
|
718 |
$message = ( $is_failure === true )
|
719 |
+
? sprintf( esc_html__( 'There was a problem closing the topic "%1$s".', 'bbpress' ), $topic_title )
|
720 |
+
: sprintf( esc_html__( 'Topic "%1$s" successfully closed.', 'bbpress' ), $topic_title );
|
721 |
break;
|
722 |
|
723 |
case 'super_sticky' :
|
724 |
$message = ( $is_failure === true )
|
725 |
+
? sprintf( esc_html__( 'There was a problem sticking the topic "%1$s" to front.', 'bbpress' ), $topic_title )
|
726 |
+
: sprintf( esc_html__( 'Topic "%1$s" successfully stuck to front.', 'bbpress' ), $topic_title );
|
727 |
break;
|
728 |
|
729 |
case 'stuck' :
|
730 |
$message = ( $is_failure === true )
|
731 |
+
? sprintf( esc_html__( 'There was a problem sticking the topic "%1$s".', 'bbpress' ), $topic_title )
|
732 |
+
: sprintf( esc_html__( 'Topic "%1$s" successfully stuck.', 'bbpress' ), $topic_title );
|
733 |
break;
|
734 |
|
735 |
case 'unstuck' :
|
736 |
$message = ( $is_failure === true )
|
737 |
+
? sprintf( esc_html__( 'There was a problem unsticking the topic "%1$s".', 'bbpress' ), $topic_title )
|
738 |
+
: sprintf( esc_html__( 'Topic "%1$s" successfully unstuck.', 'bbpress' ), $topic_title );
|
739 |
break;
|
740 |
|
741 |
case 'spammed' :
|
742 |
$message = ( $is_failure === true )
|
743 |
+
? sprintf( esc_html__( 'There was a problem marking the topic "%1$s" as spam.', 'bbpress' ), $topic_title )
|
744 |
+
: sprintf( esc_html__( 'Topic "%1$s" successfully marked as spam.', 'bbpress' ), $topic_title );
|
745 |
break;
|
746 |
|
747 |
case 'unspammed' :
|
748 |
$message = ( $is_failure === true )
|
749 |
+
? sprintf( esc_html__( 'There was a problem unmarking the topic "%1$s" as spam.', 'bbpress' ), $topic_title )
|
750 |
+
: sprintf( esc_html__( 'Topic "%1$s" successfully unmarked as spam.', 'bbpress' ), $topic_title );
|
751 |
break;
|
752 |
|
753 |
case 'approved' :
|
754 |
$message = ( $is_failure === true )
|
755 |
+
? sprintf( esc_html__( 'There was a problem approving the topic "%1$s".', 'bbpress' ), $topic_title )
|
756 |
+
: sprintf( esc_html__( 'Topic "%1$s" successfully approved.', 'bbpress' ), $topic_title );
|
757 |
break;
|
758 |
|
759 |
case 'unapproved' :
|
760 |
$message = ( $is_failure === true )
|
761 |
+
? sprintf( esc_html__( 'There was a problem unapproving the topic "%1$s".', 'bbpress' ), $topic_title )
|
762 |
+
: sprintf( esc_html__( 'Topic "%1$s" successfully unapproved.', 'bbpress' ), $topic_title );
|
763 |
break;
|
764 |
}
|
765 |
|
769 |
? 'error'
|
770 |
: 'updated';
|
771 |
|
772 |
+
// Add the notice
|
773 |
+
bbp_admin()->add_notice( $message, $class, true );
|
774 |
+
}
|
775 |
|
776 |
+
/**
|
777 |
+
* Returns an array of keys used to sort row actions
|
778 |
+
*
|
779 |
+
* @since 2.6.0 bbPress (r6771)
|
780 |
+
*
|
781 |
+
* @return array
|
782 |
+
*/
|
783 |
+
private function get_row_action_sort_order() {
|
784 |
|
785 |
+
// Filter & return
|
786 |
+
return (array) apply_filters( 'bbp_admin_topics_row_action_sort_order', array(
|
787 |
+
'edit',
|
788 |
+
'stick',
|
789 |
+
'approved',
|
790 |
+
'unapproved',
|
791 |
+
'closed',
|
792 |
+
'spam',
|
793 |
+
'unspam',
|
794 |
+
'trash',
|
795 |
+
'untrash',
|
796 |
+
'delete',
|
797 |
+
'view'
|
798 |
+
) );
|
799 |
}
|
800 |
|
801 |
/**
|
851 |
public function column_headers( $columns ) {
|
852 |
$columns = array(
|
853 |
'cb' => '<input type="checkbox" />',
|
854 |
+
'title' => esc_html__( 'Topics', 'bbpress' ),
|
855 |
+
'bbp_topic_forum' => esc_html__( 'Forum', 'bbpress' ),
|
856 |
+
'bbp_topic_reply_count' => esc_html__( 'Replies', 'bbpress' ),
|
857 |
+
'bbp_topic_voice_count' => esc_html__( 'Voices', 'bbpress' ),
|
858 |
+
'bbp_topic_author' => esc_html__( 'Author', 'bbpress' ),
|
859 |
+
'bbp_topic_created' => esc_html__( 'Created', 'bbpress' ),
|
860 |
+
'bbp_topic_freshness' => esc_html__( 'Last Post', 'bbpress' )
|
861 |
);
|
862 |
|
863 |
// Filter & return
|
952 |
*
|
953 |
* @since 2.0.0 bbPress (r2485)
|
954 |
*
|
955 |
+
* @param array $actions Actions
|
956 |
+
* @param object $topic Topic object
|
957 |
+
*
|
958 |
* @return array $actions Actions
|
959 |
*/
|
960 |
+
public function row_actions( $actions = array(), $topic = false ) {
|
961 |
|
962 |
+
// Disable quick edit (too much to do here)
|
963 |
unset( $actions['inline hide-if-no-js'] );
|
964 |
|
965 |
// View link
|
981 |
// Pending
|
982 |
// Show the 'approve' and 'view' link on pending posts only and 'unapprove' on published posts only
|
983 |
$approve_uri = wp_nonce_url( add_query_arg( array( 'topic_id' => $topic->ID, 'action' => 'bbp_toggle_topic_approve' ), remove_query_arg( array( 'bbp_topic_toggle_notice', 'topic_id', 'failed', 'super' ) ) ), 'approve-topic_' . $topic->ID );
|
984 |
+
if ( bbp_is_topic_public( $topic->ID ) ) {
|
985 |
$actions['unapproved'] = '<a href="' . esc_url( $approve_uri ) . '" title="' . esc_attr__( 'Unapprove this topic', 'bbpress' ) . '">' . _x( 'Unapprove', 'Unapprove Topic', 'bbpress' ) . '</a>';
|
986 |
+
} else {
|
987 |
+
|
988 |
+
// Do not show 'approve' if already public
|
989 |
+
if ( ! bbp_is_topic_public( $topic->ID ) ) {
|
990 |
+
$actions['approved'] = '<a href="' . esc_url( $approve_uri ) . '" title="' . esc_attr__( 'Approve this topic', 'bbpress' ) . '">' . _x( 'Approve', 'Approve Topic', 'bbpress' ) . '</a>';
|
991 |
+
}
|
992 |
+
|
993 |
+
// Modify the view link
|
994 |
+
$actions['view'] = '<a href="' . esc_url( $view_link ) . '" title="' . esc_attr( sprintf( __( 'View “%s”', 'bbpress' ), bbp_get_topic_title( $topic->ID ) ) ) . '" rel="permalink">' . esc_html__( 'View', 'bbpress' ) . '</a>';
|
995 |
}
|
996 |
|
997 |
// Close
|
1006 |
}
|
1007 |
|
1008 |
// Sticky
|
1009 |
+
// Dont show sticky if topic is spam, trash or pending
|
1010 |
if ( ! bbp_is_topic_spam( $topic->ID ) && ! bbp_is_topic_trash( $topic->ID ) && ! bbp_is_topic_pending( $topic->ID ) ) {
|
1011 |
$stick_uri = wp_nonce_url( add_query_arg( array( 'topic_id' => $topic->ID, 'action' => 'bbp_toggle_topic_stick' ), remove_query_arg( array( 'bbp_topic_toggle_notice', 'topic_id', 'failed', 'super' ) ) ), 'stick-topic_' . $topic->ID );
|
1012 |
if ( bbp_is_topic_sticky( $topic->ID ) ) {
|
1019 |
|
1020 |
// Spam
|
1021 |
$spam_uri = wp_nonce_url( add_query_arg( array( 'topic_id' => $topic->ID, 'action' => 'bbp_toggle_topic_spam' ), remove_query_arg( array( 'bbp_topic_toggle_notice', 'topic_id', 'failed', 'super' ) ) ), 'spam-topic_' . $topic->ID );
|
1022 |
+
if ( ! bbp_is_topic_spam( $topic->ID ) ) {
|
|
|
|
|
1023 |
$actions['spam'] = '<a href="' . esc_url( $spam_uri ) . '" title="' . esc_attr__( 'Mark this topic as spam', 'bbpress' ) . '">' . esc_html__( 'Spam', 'bbpress' ) . '</a>';
|
1024 |
+
} else {
|
1025 |
+
$actions['unspam'] = '<a href="' . esc_url( $spam_uri ) . '" title="' . esc_attr__( 'Mark the topic as not spam', 'bbpress' ) . '">' . esc_html__( 'Not Spam', 'bbpress' ) . '</a>';
|
1026 |
}
|
1027 |
}
|
1028 |
|
1039 |
|
1040 |
if ( ( bbp_get_trash_status_id() === $topic->post_status ) || empty( $trash_days ) ) {
|
1041 |
$actions['delete'] = "<a class='submitdelete' title='" . esc_attr__( 'Delete this item permanently', 'bbpress' ) . "' href='" . esc_url( get_delete_post_link( $topic->ID, '', true ) ) . "'>" . esc_html__( 'Delete Permanently', 'bbpress' ) . "</a>";
|
|
|
|
|
1042 |
}
|
1043 |
}
|
1044 |
|
1045 |
+
// Sort & return
|
1046 |
+
return $this->sort_row_actions( $actions );
|
1047 |
+
}
|
1048 |
+
|
1049 |
+
/**
|
1050 |
+
* Sort row actions by key
|
1051 |
+
*
|
1052 |
+
* @since 2.6.0
|
1053 |
+
*
|
1054 |
+
* @param array $actions
|
1055 |
+
*
|
1056 |
+
* @return array
|
1057 |
+
*/
|
1058 |
+
private function sort_row_actions( $actions = array() ) {
|
1059 |
+
|
1060 |
+
// Return value
|
1061 |
+
$retval = array();
|
1062 |
+
|
1063 |
+
// Known row actions, in sort order
|
1064 |
+
$known_actions = $this->get_row_action_sort_order();
|
1065 |
+
|
1066 |
+
// Sort known actions, and keep any unknown ones
|
1067 |
+
foreach ( $known_actions as $key ) {
|
1068 |
+
if ( isset( $actions[ $key ] ) ) {
|
1069 |
+
$retval[ $key ] = $actions[ $key ];
|
1070 |
+
unset( $actions[ $key ] );
|
1071 |
+
}
|
1072 |
+
}
|
1073 |
+
|
1074 |
+
// Combine & return
|
1075 |
+
return $retval + $actions;
|
1076 |
}
|
1077 |
|
1078 |
/**
|
1084 |
*/
|
1085 |
public function filter_dropdown() {
|
1086 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1087 |
// Get which forum is selected
|
1088 |
$selected = ! empty( $_GET['bbp_forum_id'] )
|
1089 |
? (int) $_GET['bbp_forum_id']
|
1096 |
) );
|
1097 |
}
|
1098 |
|
1099 |
+
/**
|
1100 |
+
* Add "Empty Spam" button for moderators
|
1101 |
+
*
|
1102 |
+
* @since 2.6.0 bbPress (r6791)
|
1103 |
+
*/
|
1104 |
+
public function filter_empty_spam() {
|
1105 |
+
|
1106 |
+
// Bail if not viewing spam
|
1107 |
+
if ( empty( $_GET['post_status'] ) || ( bbp_get_spam_status_id() !== $_GET['post_status'] ) && current_user_can( 'moderate' ) ) {
|
1108 |
+
return;
|
1109 |
+
}
|
1110 |
+
|
1111 |
+
?>
|
1112 |
+
|
1113 |
+
<div class="alignleft actions"><?php
|
1114 |
+
|
1115 |
+
// Output the nonce & button
|
1116 |
+
wp_nonce_field( 'bulk-destroy', '_destroy_nonce' );
|
1117 |
+
submit_button(
|
1118 |
+
esc_attr__( 'Empty Spam', 'bbpress' ),
|
1119 |
+
'button-secondary apply',
|
1120 |
+
'delete_all',
|
1121 |
+
false
|
1122 |
+
);
|
1123 |
+
|
1124 |
+
?></div><?php
|
1125 |
+
}
|
1126 |
+
|
1127 |
/**
|
1128 |
* Adjust the request query and include the forum id
|
1129 |
*
|
1172 |
// Updated
|
1173 |
1 => sprintf(
|
1174 |
'%1$s <a href="%2$s">%3$s</a>',
|
1175 |
+
esc_html__( 'Topic updated.', 'bbpress' ),
|
1176 |
$topic_url,
|
1177 |
+
esc_html__( 'View topic', 'bbpress' )
|
1178 |
),
|
1179 |
|
1180 |
// Custom field updated
|
1181 |
+
2 => esc_html__( 'Custom field updated.', 'bbpress' ),
|
1182 |
|
1183 |
// Custom field deleted
|
1184 |
+
3 => esc_html__( 'Custom field deleted.', 'bbpress' ),
|
1185 |
|
1186 |
// Topic updated
|
1187 |
+
4 => esc_html__( 'Topic updated.', 'bbpress' ),
|
1188 |
|
1189 |
// Restored from revision
|
1190 |
// translators: %s: date and time of the revision
|
1191 |
5 => isset( $_GET['revision'] )
|
1192 |
+
? sprintf( esc_html__( 'Topic restored to revision from %s', 'bbpress' ), wp_post_revision_title( (int) $_GET['revision'], false ) )
|
1193 |
: false,
|
1194 |
|
1195 |
// Topic created
|
1196 |
6 => sprintf(
|
1197 |
'%1$s <a href="%2$s">%3$s</a>',
|
1198 |
+
esc_html__( 'Topic created.', 'bbpress' ),
|
1199 |
$topic_url,
|
1200 |
+
esc_html__( 'View topic', 'bbpress' )
|
1201 |
),
|
1202 |
|
1203 |
// Topic saved
|
1204 |
+
7 => esc_html__( 'Topic saved.', 'bbpress' ),
|
1205 |
|
1206 |
// Topic submitted
|
1207 |
8 => sprintf(
|
1208 |
'%1$s <a href="%2$s" target="_blank">%3$s</a>',
|
1209 |
+
esc_html__( 'Topic submitted.', 'bbpress' ),
|
1210 |
esc_url( add_query_arg( 'preview', 'true', $topic_url ) ),
|
1211 |
+
esc_html__( 'Preview topic', 'bbpress' )
|
1212 |
),
|
1213 |
|
1214 |
// Topic scheduled
|
1215 |
9 => sprintf(
|
1216 |
'%1$s <a target="_blank" href="%2$s">%3$s</a>',
|
1217 |
sprintf(
|
1218 |
+
esc_html__( 'Topic scheduled for: %s.', 'bbpress' ),
|
1219 |
// translators: Publish box date format, see http://php.net/date
|
1220 |
'<strong>' . date_i18n( __( 'M j, Y @ G:i', 'bbpress' ), strtotime( $post_date ) ) . '</strong>'
|
1221 |
),
|
1222 |
$topic_url,
|
1223 |
+
esc_html__( 'Preview topic', 'bbpress' )
|
1224 |
),
|
1225 |
|
1226 |
// Topic draft updated
|
1227 |
10 => sprintf(
|
1228 |
'%1$s <a href="%2$s" target="_blank">%3$s</a>',
|
1229 |
+
esc_html__( 'Topic draft updated.', 'bbpress' ),
|
1230 |
esc_url( add_query_arg( 'preview', 'true', $topic_url ) ),
|
1231 |
+
esc_html__( 'Preview topic', 'bbpress' )
|
1232 |
),
|
1233 |
);
|
1234 |
|
1255 |
}
|
1256 |
|
1257 |
// Init the topics admin
|
1258 |
+
bbp_admin()->topics = new BBP_Topics_Admin();
|
1259 |
}
|
includes/admin/users.php
CHANGED
@@ -167,7 +167,7 @@ class BBP_Users_Admin {
|
|
167 |
<?php foreach ( $dynamic_roles as $role => $details ) : ?>
|
168 |
<option value="<?php echo esc_attr( $role ); ?>"><?php echo bbp_translate_user_role( $details['name'] ); ?></option>
|
169 |
<?php endforeach; ?>
|
170 |
-
</select><?php submit_button(
|
171 |
|
172 |
wp_nonce_field( 'bbp-bulk-users', 'bbp-bulk-users-nonce' );
|
173 |
}
|
@@ -273,10 +273,22 @@ class BBP_Users_Admin {
|
|
273 |
* @return array $columns
|
274 |
*/
|
275 |
public static function user_role_column( $columns = array() ) {
|
276 |
-
$columns['role'] = __( 'Site Role', 'bbpress' );
|
277 |
-
$columns['bbp_user_role'] = __( 'Forum Role', 'bbpress' );
|
278 |
|
279 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
280 |
}
|
281 |
|
282 |
/**
|
167 |
<?php foreach ( $dynamic_roles as $role => $details ) : ?>
|
168 |
<option value="<?php echo esc_attr( $role ); ?>"><?php echo bbp_translate_user_role( $details['name'] ); ?></option>
|
169 |
<?php endforeach; ?>
|
170 |
+
</select><?php submit_button( esc_html__( 'Change', 'bbpress' ), 'secondary', $button_id, false );
|
171 |
|
172 |
wp_nonce_field( 'bbp-bulk-users', 'bbp-bulk-users-nonce' );
|
173 |
}
|
273 |
* @return array $columns
|
274 |
*/
|
275 |
public static function user_role_column( $columns = array() ) {
|
|
|
|
|
276 |
|
277 |
+
// New title for old Role column
|
278 |
+
$columns['role'] = esc_html__( 'Site Role', 'bbpress' );
|
279 |
+
|
280 |
+
// New column
|
281 |
+
$bbp_user_role = array(
|
282 |
+
'bbp_user_role' => esc_html__( 'Forum Role', 'bbpress' )
|
283 |
+
);
|
284 |
+
|
285 |
+
// Make sure role columns are next to each other
|
286 |
+
$role_pos = array_search( 'role', array_keys( $columns ), true );
|
287 |
+
$result = array_slice( $columns, 0, $role_pos + 1 );
|
288 |
+
$result = array_merge( $result, $bbp_user_role );
|
289 |
+
|
290 |
+
// Merge and return
|
291 |
+
return array_merge( $result, array_slice( $columns, $role_pos ) );
|
292 |
}
|
293 |
|
294 |
/**
|
includes/common/ajax.php
CHANGED
@@ -32,7 +32,9 @@ function bbp_ajax_url() {
|
|
32 |
function bbp_get_ajax_url() {
|
33 |
global $wp;
|
34 |
|
35 |
-
$
|
|
|
|
|
36 |
$ajaxurl = add_query_arg( array( 'bbp-ajax' => 'true' ), $base_url );
|
37 |
|
38 |
// Filter & return
|
@@ -54,13 +56,18 @@ function bbp_is_ajax() {
|
|
54 |
* Hooked to the 'bbp_template_redirect' action, this is also the custom
|
55 |
* theme-side AJAX handler.
|
56 |
*
|
|
|
|
|
|
|
57 |
* @since 2.3.0 bbPress (r4543)
|
58 |
*
|
|
|
|
|
59 |
* @return If not a bbPress AJAX request
|
60 |
*/
|
61 |
-
function bbp_do_ajax() {
|
62 |
|
63 |
-
// Bail if not
|
64 |
if ( ! bbp_is_ajax() ) {
|
65 |
return;
|
66 |
}
|
@@ -68,24 +75,55 @@ function bbp_do_ajax() {
|
|
68 |
// Set WordPress core AJAX constant
|
69 |
define( 'DOING_AJAX', true );
|
70 |
|
71 |
-
//
|
72 |
-
|
73 |
|
74 |
-
//
|
75 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
76 |
|
77 |
// Everything is 200 OK.
|
78 |
bbp_set_200();
|
79 |
|
80 |
-
//
|
81 |
-
do_action(
|
82 |
|
83 |
// All done
|
84 |
wp_die( '0' );
|
85 |
}
|
86 |
|
87 |
/**
|
88 |
-
*
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
89 |
*
|
90 |
* @since 2.3.0 bbPress (r4542)
|
91 |
*
|
32 |
function bbp_get_ajax_url() {
|
33 |
global $wp;
|
34 |
|
35 |
+
$ssl = bbp_get_url_scheme();
|
36 |
+
$url = trailingslashit( $wp->request );
|
37 |
+
$base_url = home_url( $url, $ssl );
|
38 |
$ajaxurl = add_query_arg( array( 'bbp-ajax' => 'true' ), $base_url );
|
39 |
|
40 |
// Filter & return
|
56 |
* Hooked to the 'bbp_template_redirect' action, this is also the custom
|
57 |
* theme-side AJAX handler.
|
58 |
*
|
59 |
+
* This is largely taken from admin-ajax.php, but adapted specifically for
|
60 |
+
* theme-side bbPress-only AJAX requests.
|
61 |
+
*
|
62 |
* @since 2.3.0 bbPress (r4543)
|
63 |
*
|
64 |
+
* @param string $action Sanitized action from bbp_post_request/bbp_get_request
|
65 |
+
*
|
66 |
* @return If not a bbPress AJAX request
|
67 |
*/
|
68 |
+
function bbp_do_ajax( $action = '' ) {
|
69 |
|
70 |
+
// Bail if not a bbPress specific AJAX request
|
71 |
if ( ! bbp_is_ajax() ) {
|
72 |
return;
|
73 |
}
|
75 |
// Set WordPress core AJAX constant
|
76 |
define( 'DOING_AJAX', true );
|
77 |
|
78 |
+
// Setup AJAX headers
|
79 |
+
bbp_ajax_headers();
|
80 |
|
81 |
+
// Compat for targeted action hooks (without $action param)
|
82 |
+
$action = empty( $action )
|
83 |
+
? sanitize_key( $_REQUEST['action'] ) // isset checked by bbp_is_ajax()
|
84 |
+
: $action;
|
85 |
+
|
86 |
+
// Setup action key
|
87 |
+
$key = "bbp_ajax_{$action}";
|
88 |
+
|
89 |
+
// Bail if no action is registered
|
90 |
+
if ( empty( $action ) || ! has_action( $key ) ) {
|
91 |
+
wp_die( '0', 400 );
|
92 |
+
}
|
93 |
|
94 |
// Everything is 200 OK.
|
95 |
bbp_set_200();
|
96 |
|
97 |
+
// Execute custom bbPress AJAX action
|
98 |
+
do_action( $key );
|
99 |
|
100 |
// All done
|
101 |
wp_die( '0' );
|
102 |
}
|
103 |
|
104 |
/**
|
105 |
+
* Send headers for AJAX specific requests
|
106 |
+
*
|
107 |
+
* This was abstracted from bbp_do_ajax() for use in custom theme-side AJAX
|
108 |
+
* implementations.
|
109 |
+
*
|
110 |
+
* @since 2.6.0 bbPress (r6757)
|
111 |
+
*/
|
112 |
+
function bbp_ajax_headers() {
|
113 |
+
|
114 |
+
// Set the header content type
|
115 |
+
@header( 'Content-Type: ' . get_option( 'html_type' ) . '; charset=' . get_option( 'blog_charset' ) );
|
116 |
+
@header( 'X-Robots-Tag: noindex' );
|
117 |
+
|
118 |
+
// Disable content sniffing in browsers that support it
|
119 |
+
send_nosniff_header();
|
120 |
+
|
121 |
+
// Disable browser caching for all AJAX requests
|
122 |
+
nocache_headers();
|
123 |
+
}
|
124 |
+
|
125 |
+
/**
|
126 |
+
* Helper method to return JSON response for bbPress AJAX calls
|
127 |
*
|
128 |
* @since 2.3.0 bbPress (r4542)
|
129 |
*
|
includes/common/engagements.php
ADDED
@@ -0,0 +1,783 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* bbPress Common Engagements
|
5 |
+
*
|
6 |
+
* This file contains the common classes and functions for interacting with the
|
7 |
+
* bbPress engagements API. See `includes/users/engagements.php` for more.
|
8 |
+
*
|
9 |
+
* @package bbPress
|
10 |
+
* @subpackage Common
|
11 |
+
*/
|
12 |
+
|
13 |
+
// Exit if accessed directly
|
14 |
+
defined( 'ABSPATH' ) || exit;
|
15 |
+
|
16 |
+
/**
|
17 |
+
* Return the strategy used for storing user engagements
|
18 |
+
*
|
19 |
+
* @since 2.6.0 bbPress (r6722)
|
20 |
+
*
|
21 |
+
* @param string $rel_key The key used to index this relationship
|
22 |
+
* @param string $rel_type The type of meta to look in
|
23 |
+
*
|
24 |
+
* @return string
|
25 |
+
*/
|
26 |
+
function bbp_user_engagements_interface( $rel_key = '', $rel_type = 'post' ) {
|
27 |
+
return apply_filters( 'bbp_user_engagements_interface', bbpress()->engagements, $rel_key, $rel_type );
|
28 |
+
}
|
29 |
+
|
30 |
+
/**
|
31 |
+
* Meta strategy for interfacing with User Engagements
|
32 |
+
*
|
33 |
+
* @since 2.6.0 bbPress (r6722)
|
34 |
+
*/
|
35 |
+
class BBP_User_Engagements_Base {
|
36 |
+
|
37 |
+
/**
|
38 |
+
* Type of strategy being used.
|
39 |
+
*
|
40 |
+
* @since 2.6.0 bbPress (r6737)
|
41 |
+
*
|
42 |
+
* @var string
|
43 |
+
*/
|
44 |
+
public $type = '';
|
45 |
+
|
46 |
+
/**
|
47 |
+
* Add a user id to an object
|
48 |
+
*
|
49 |
+
* @since 2.6.0 bbPress (r6722)
|
50 |
+
*
|
51 |
+
* @param int $object_id The object id
|
52 |
+
* @param int $user_id The user id
|
53 |
+
* @param string $meta_key The relationship key
|
54 |
+
* @param string $meta_type The relationship type (usually 'post')
|
55 |
+
* @param bool $unique Whether meta key should be unique to the object
|
56 |
+
*
|
57 |
+
* @return bool Returns true on success, false on failure
|
58 |
+
*/
|
59 |
+
public function add_user_to_object( $object_id = 0, $user_id = 0, $meta_key = '', $meta_type = 'post', $unique = false ) {
|
60 |
+
|
61 |
+
}
|
62 |
+
|
63 |
+
/**
|
64 |
+
* Remove a user id from an object
|
65 |
+
*
|
66 |
+
* @since 2.6.0 bbPress (r6722)
|
67 |
+
*
|
68 |
+
* @param int $object_id The object id
|
69 |
+
* @param int $user_id The user id
|
70 |
+
* @param string $meta_key The relationship key
|
71 |
+
* @param string $meta_type The relationship type (usually 'post')
|
72 |
+
*
|
73 |
+
* @return bool Returns true on success, false on failure
|
74 |
+
*/
|
75 |
+
public function remove_user_from_object( $object_id = 0, $user_id = 0, $meta_key = '', $meta_type = 'post' ) {
|
76 |
+
|
77 |
+
}
|
78 |
+
|
79 |
+
/**
|
80 |
+
* Remove a user id from all objects
|
81 |
+
*
|
82 |
+
* @since 2.6.0 bbPress (r6722)
|
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 |
+
* @return bool Returns true on success, false on failure
|
89 |
+
*/
|
90 |
+
public function remove_user_from_all_objects( $user_id = 0, $meta_key = '', $meta_type = 'post' ) {
|
91 |
+
|
92 |
+
}
|
93 |
+
|
94 |
+
/**
|
95 |
+
* Remove an object from all users
|
96 |
+
*
|
97 |
+
* @since 2.6.0 bbPress (r6722)
|
98 |
+
*
|
99 |
+
* @param int $object_id The object id
|
100 |
+
* @param int $user_id The user id
|
101 |
+
* @param string $meta_key The relationship key
|
102 |
+
* @param string $meta_type The relationship type (usually 'post')
|
103 |
+
*
|
104 |
+
* @return bool Returns true on success, false on failure
|
105 |
+
*/
|
106 |
+
public function remove_object_from_all_users( $object_id = 0, $meta_key = '', $meta_type = 'post' ) {
|
107 |
+
|
108 |
+
}
|
109 |
+
|
110 |
+
/**
|
111 |
+
* Remove all users from all objects
|
112 |
+
*
|
113 |
+
* @since 2.6.0 bbPress (r6722)
|
114 |
+
*
|
115 |
+
* @param string $meta_key The relationship key
|
116 |
+
* @param string $meta_type The relationship type (usually 'post')
|
117 |
+
*
|
118 |
+
* @return bool Returns true on success, false on failure
|
119 |
+
*/
|
120 |
+
public function remove_all_users_from_all_objects( $meta_key = '', $meta_type = 'post' ) {
|
121 |
+
|
122 |
+
}
|
123 |
+
|
124 |
+
/**
|
125 |
+
* Get users of an object
|
126 |
+
*
|
127 |
+
* @since 2.6.0 bbPress (r6722)
|
128 |
+
*
|
129 |
+
* @param int $object_id The object id
|
130 |
+
* @param string $meta_key The key used to index this relationship
|
131 |
+
* @param string $meta_type The type of meta to look in
|
132 |
+
*
|
133 |
+
* @return array Returns ids of users
|
134 |
+
*/
|
135 |
+
public function get_users_for_object( $object_id = 0, $meta_key = '', $meta_type = 'post' ) {
|
136 |
+
|
137 |
+
}
|
138 |
+
|
139 |
+
/**
|
140 |
+
* Get the part of the query responsible for JOINing objects to relationships.
|
141 |
+
*
|
142 |
+
* @since 2.6.0 bbPress (r6737)
|
143 |
+
*
|
144 |
+
* @param array $args
|
145 |
+
* @param string $meta_key
|
146 |
+
* @param string $meta_type
|
147 |
+
*
|
148 |
+
* @return array
|
149 |
+
*/
|
150 |
+
public function get_query( $args = array(), $context_key = '', $meta_key = '', $meta_type = 'post' ) {
|
151 |
+
|
152 |
+
}
|
153 |
+
}
|
154 |
+
|
155 |
+
/**
|
156 |
+
* Meta strategy for interfacing with User Engagements
|
157 |
+
*
|
158 |
+
* @since 2.6.0 bbPress (r6722)
|
159 |
+
*/
|
160 |
+
class BBP_User_Engagements_Meta extends BBP_User_Engagements_Base {
|
161 |
+
|
162 |
+
/**
|
163 |
+
* Type of strategy being used.
|
164 |
+
*
|
165 |
+
* @since 2.6.0 bbPress (r6737)
|
166 |
+
*
|
167 |
+
* @var string
|
168 |
+
*/
|
169 |
+
public $type = 'meta';
|
170 |
+
|
171 |
+
/**
|
172 |
+
* Add a user id to an object
|
173 |
+
*
|
174 |
+
* @since 2.6.0 bbPress (r6722)
|
175 |
+
*
|
176 |
+
* @param int $object_id The object id
|
177 |
+
* @param int $user_id The user id
|
178 |
+
* @param string $meta_key The relationship key
|
179 |
+
* @param string $meta_type The relationship type (usually 'post')
|
180 |
+
* @param bool $unique Whether meta key should be unique to the object
|
181 |
+
*
|
182 |
+
* @return bool Returns true on success, false on failure
|
183 |
+
*/
|
184 |
+
public function add_user_to_object( $object_id = 0, $user_id = 0, $meta_key = '', $meta_type = 'post', $unique = false ) {
|
185 |
+
return add_metadata( $meta_type, $object_id, $meta_key, $user_id, $unique );
|
186 |
+
}
|
187 |
+
|
188 |
+
/**
|
189 |
+
* Remove a user id from an object
|
190 |
+
*
|
191 |
+
* @since 2.6.0 bbPress (r6722)
|
192 |
+
*
|
193 |
+
* @param int $object_id The object id
|
194 |
+
* @param int $user_id The user id
|
195 |
+
* @param string $meta_key The relationship key
|
196 |
+
* @param string $meta_type The relationship type (usually 'post')
|
197 |
+
*
|
198 |
+
* @return bool Returns true on success, false on failure
|
199 |
+
*/
|
200 |
+
public function remove_user_from_object( $object_id = 0, $user_id = 0, $meta_key = '', $meta_type = 'post' ) {
|
201 |
+
return delete_metadata( $meta_type, $object_id, $meta_key, $user_id, false );
|
202 |
+
}
|
203 |
+
|
204 |
+
/**
|
205 |
+
* Remove a user id from all objects
|
206 |
+
*
|
207 |
+
* @since 2.6.0 bbPress (r6722)
|
208 |
+
*
|
209 |
+
* @param int $user_id The user id
|
210 |
+
* @param string $meta_key The relationship key
|
211 |
+
* @param string $meta_type The relationship type (usually 'post')
|
212 |
+
*
|
213 |
+
* @return bool Returns true on success, false on failure
|
214 |
+
*/
|
215 |
+
public function remove_user_from_all_objects( $user_id = 0, $meta_key = '', $meta_type = 'post' ) {
|
216 |
+
return delete_metadata( $meta_type, null, $meta_key, $user_id, true );
|
217 |
+
}
|
218 |
+
|
219 |
+
/**
|
220 |
+
* Remove an object from all users
|
221 |
+
*
|
222 |
+
* @since 2.6.0 bbPress (r6722)
|
223 |
+
*
|
224 |
+
* @param int $object_id The object id
|
225 |
+
* @param int $user_id The user id
|
226 |
+
* @param string $meta_key The relationship key
|
227 |
+
* @param string $meta_type The relationship type (usually 'post')
|
228 |
+
*
|
229 |
+
* @return bool Returns true on success, false on failure
|
230 |
+
*/
|
231 |
+
public function remove_object_from_all_users( $object_id = 0, $meta_key = '', $meta_type = 'post' ) {
|
232 |
+
return delete_metadata( $meta_type, $object_id, $meta_key, null, false );
|
233 |
+
}
|
234 |
+
|
235 |
+
/**
|
236 |
+
* Remove all users from all objects
|
237 |
+
*
|
238 |
+
* @since 2.6.0 bbPress (r6722)
|
239 |
+
*
|
240 |
+
* @param string $meta_key The relationship key
|
241 |
+
* @param string $meta_type The relationship type (usually 'post')
|
242 |
+
*
|
243 |
+
* @return bool Returns true on success, false on failure
|
244 |
+
*/
|
245 |
+
public function remove_all_users_from_all_objects( $meta_key = '', $meta_type = 'post' ) {
|
246 |
+
return delete_metadata( $meta_type, null, $meta_key, null, true );
|
247 |
+
}
|
248 |
+
|
249 |
+
/**
|
250 |
+
* Get users of an object
|
251 |
+
*
|
252 |
+
* @since 2.6.0 bbPress (r6722)
|
253 |
+
*
|
254 |
+
* @param int $object_id The object id
|
255 |
+
* @param string $meta_key The key used to index this relationship
|
256 |
+
* @param string $meta_type The type of meta to look in
|
257 |
+
*
|
258 |
+
* @return array Returns ids of users
|
259 |
+
*/
|
260 |
+
public function get_users_for_object( $object_id = 0, $meta_key = '', $meta_type = 'post' ) {
|
261 |
+
return wp_parse_id_list( get_metadata( $meta_type, $object_id, $meta_key, false ) );
|
262 |
+
}
|
263 |
+
|
264 |
+
/**
|
265 |
+
* Get the part of the query responsible for JOINing objects to relationships.
|
266 |
+
*
|
267 |
+
* @since 2.6.0 bbPress (r6737)
|
268 |
+
*
|
269 |
+
* @param array $args
|
270 |
+
* @param string $meta_key
|
271 |
+
* @param string $meta_type
|
272 |
+
*
|
273 |
+
* @return array
|
274 |
+
*/
|
275 |
+
public function get_query( $args = array(), $context_key = '', $meta_key = '', $meta_type = 'post' ) {
|
276 |
+
|
277 |
+
// Backwards compat for pre-2.6.0
|
278 |
+
if ( is_numeric( $args ) ) {
|
279 |
+
$args = array(
|
280 |
+
'meta_query' => array( array(
|
281 |
+
'key' => $meta_key,
|
282 |
+
'value' => bbp_get_user_id( $args, false, false ),
|
283 |
+
'compare' => 'NUMERIC'
|
284 |
+
) )
|
285 |
+
);
|
286 |
+
}
|
287 |
+
|
288 |
+
// Default arguments
|
289 |
+
$defaults = array(
|
290 |
+
'meta_query' => array( array(
|
291 |
+
'key' => $meta_key,
|
292 |
+
'value' => bbp_get_displayed_user_id(),
|
293 |
+
'compare' => 'NUMERIC'
|
294 |
+
) )
|
295 |
+
);
|
296 |
+
|
297 |
+
// Parse arguments
|
298 |
+
return bbp_parse_args( $args, $defaults, $context_key );
|
299 |
+
}
|
300 |
+
}
|
301 |
+
|
302 |
+
/**
|
303 |
+
* Term strategy for interfacing with User Engagements
|
304 |
+
*
|
305 |
+
* @since 2.6.0 bbPress (r6737)
|
306 |
+
*/
|
307 |
+
class BBP_User_Engagements_Term extends BBP_User_Engagements_Base {
|
308 |
+
|
309 |
+
/**
|
310 |
+
* Type of strategy being used.
|
311 |
+
*
|
312 |
+
* @since 2.6.0 bbPress (r6737)
|
313 |
+
*
|
314 |
+
* @var string
|
315 |
+
*/
|
316 |
+
public $type = 'term';
|
317 |
+
|
318 |
+
/**
|
319 |
+
* Register an engagement taxonomy just-in-time for immediate use
|
320 |
+
*
|
321 |
+
* @since 2.6.0 bbPress (r6737)
|
322 |
+
*
|
323 |
+
* @param string $tax_key
|
324 |
+
* @param string $object_type
|
325 |
+
*/
|
326 |
+
private function jit_taxonomy( $tax_key = '', $object_type = 'user' ) {
|
327 |
+
|
328 |
+
// Bail if taxonomy already exists
|
329 |
+
if ( taxonomy_exists( $tax_key ) ) {
|
330 |
+
return;
|
331 |
+
}
|
332 |
+
|
333 |
+
// Register the taxonomy
|
334 |
+
register_taxonomy( $tax_key, 'bbp_' . $object_type, array(
|
335 |
+
'labels' => array(),
|
336 |
+
'description' => '',
|
337 |
+
'public' => false,
|
338 |
+
'publicly_queryable' => false,
|
339 |
+
'hierarchical' => false,
|
340 |
+
'show_ui' => false,
|
341 |
+
'show_in_menu' => false,
|
342 |
+
'show_in_nav_menus' => false,
|
343 |
+
'show_tagcloud' => false,
|
344 |
+
'show_in_quick_edit' => false,
|
345 |
+
'show_admin_column' => false,
|
346 |
+
'meta_box_cb' => false,
|
347 |
+
'capabilities' => array(),
|
348 |
+
'rewrite' => false,
|
349 |
+
'query_var' => '',
|
350 |
+
'update_count_callback' => '',
|
351 |
+
'show_in_rest' => false,
|
352 |
+
'rest_base' => false,
|
353 |
+
'rest_controller_class' => false,
|
354 |
+
'_builtin' => false
|
355 |
+
) );
|
356 |
+
}
|
357 |
+
|
358 |
+
/**
|
359 |
+
* Add a user id to an object
|
360 |
+
*
|
361 |
+
* @since 2.6.0 bbPress (r6737)
|
362 |
+
*
|
363 |
+
* @param int $object_id The object id
|
364 |
+
* @param int $user_id The user id
|
365 |
+
* @param string $meta_key The relationship key
|
366 |
+
* @param string $meta_type The relationship type (usually 'post')
|
367 |
+
* @param bool $unique Whether meta key should be unique to the object
|
368 |
+
*
|
369 |
+
* @return bool Returns true on success, false on failure
|
370 |
+
*/
|
371 |
+
public function add_user_to_object( $object_id = 0, $user_id = 0, $meta_key = '', $meta_type = 'post', $unique = false ) {
|
372 |
+
$user_key = "{$meta_key}_user_id_{$user_id}";
|
373 |
+
$tax_key = "{$meta_key}_{$meta_type}";
|
374 |
+
$this->jit_taxonomy( $tax_key );
|
375 |
+
|
376 |
+
return wp_add_object_terms( $object_id, $user_key, $tax_key );
|
377 |
+
}
|
378 |
+
|
379 |
+
/**
|
380 |
+
* Remove a user id from an object
|
381 |
+
*
|
382 |
+
* @since 2.6.0 bbPress (r6737)
|
383 |
+
*
|
384 |
+
* @param int $object_id The object id
|
385 |
+
* @param int $user_id The user id
|
386 |
+
* @param string $meta_key The relationship key
|
387 |
+
* @param string $meta_type The relationship type (usually 'post')
|
388 |
+
*
|
389 |
+
* @return bool Returns true on success, false on failure
|
390 |
+
*/
|
391 |
+
public function remove_user_from_object( $object_id = 0, $user_id = 0, $meta_key = '', $meta_type = 'post' ) {
|
392 |
+
$user_key = "{$meta_key}_user_id_{$user_id}";
|
393 |
+
$tax_key = "{$meta_key}_{$meta_type}";
|
394 |
+
$this->jit_taxonomy( $tax_key );
|
395 |
+
|
396 |
+
return wp_remove_object_terms( $object_id, $user_key, $tax_key );
|
397 |
+
}
|
398 |
+
|
399 |
+
/**
|
400 |
+
* Remove a user id from all objects
|
401 |
+
*
|
402 |
+
* @since 2.6.0 bbPress (r6737)
|
403 |
+
*
|
404 |
+
* @param int $user_id The user id
|
405 |
+
* @param string $meta_key The relationship key
|
406 |
+
* @param string $meta_type The relationship type (usually 'post')
|
407 |
+
*
|
408 |
+
* @return bool Returns true on success, false on failure
|
409 |
+
*/
|
410 |
+
public function remove_user_from_all_objects( $user_id = 0, $meta_key = '', $meta_type = 'post' ) {
|
411 |
+
$user_key = "{$meta_key}_user_id_{$user_id}";
|
412 |
+
$tax_key = "{$meta_key}_{$meta_type}";
|
413 |
+
$this->jit_taxonomy( $tax_key );
|
414 |
+
$term = get_term_by( 'slug', $user_key, $tax_key );
|
415 |
+
|
416 |
+
return wp_delete_term( $term->term_id, $tax_key );
|
417 |
+
}
|
418 |
+
|
419 |
+
/**
|
420 |
+
* Remove an object from all users
|
421 |
+
*
|
422 |
+
* @since 2.6.0 bbPress (r6737)
|
423 |
+
*
|
424 |
+
* @param int $object_id The object id
|
425 |
+
* @param int $user_id The user id
|
426 |
+
* @param string $meta_key The relationship key
|
427 |
+
* @param string $meta_type The relationship type (usually 'post')
|
428 |
+
*
|
429 |
+
* @return bool Returns true on success, false on failure
|
430 |
+
*/
|
431 |
+
public function remove_object_from_all_users( $object_id = 0, $meta_key = '', $meta_type = 'post' ) {
|
432 |
+
return wp_delete_object_term_relationships( $object_id, get_object_taxonomies( 'bbp_user' ) );
|
433 |
+
}
|
434 |
+
|
435 |
+
/**
|
436 |
+
* Remove all users from all objects
|
437 |
+
*
|
438 |
+
* @since 2.6.0 bbPress (r6737)
|
439 |
+
*
|
440 |
+
* @param string $meta_key The relationship key
|
441 |
+
* @param string $meta_type The relationship type (usually 'post')
|
442 |
+
*
|
443 |
+
* @return bool Returns true on success, false on failure
|
444 |
+
*/
|
445 |
+
public function remove_all_users_from_all_objects( $meta_key = '', $meta_type = 'post' ) {
|
446 |
+
// TODO
|
447 |
+
}
|
448 |
+
|
449 |
+
/**
|
450 |
+
* Get users of an object
|
451 |
+
*
|
452 |
+
* @since 2.6.0 bbPress (r6737)
|
453 |
+
*
|
454 |
+
* @param int $object_id The object id
|
455 |
+
* @param string $meta_key The key used to index this relationship
|
456 |
+
* @param string $meta_type The type of meta to look in
|
457 |
+
*
|
458 |
+
* @return array Returns ids of users
|
459 |
+
*/
|
460 |
+
public function get_users_for_object( $object_id = 0, $meta_key = '', $meta_type = 'post' ) {
|
461 |
+
$user_key = "{$meta_key}_user_id_";
|
462 |
+
$tax_key = "{$meta_key}_{$meta_type}";
|
463 |
+
$this->jit_taxonomy( $tax_key );
|
464 |
+
|
465 |
+
// Get terms
|
466 |
+
$terms = get_terms( array(
|
467 |
+
'object_ids' => $object_id,
|
468 |
+
'taxonomy' => $tax_key
|
469 |
+
) );
|
470 |
+
|
471 |
+
// Slug part to replace
|
472 |
+
$user_ids = array();
|
473 |
+
|
474 |
+
// Loop through terms and get the user ID
|
475 |
+
foreach ( $terms as $term ) {
|
476 |
+
$user_ids[] = str_replace( $user_key, '', $term->slug );
|
477 |
+
}
|
478 |
+
|
479 |
+
// Parse & return
|
480 |
+
return wp_parse_id_list( $user_ids );
|
481 |
+
}
|
482 |
+
|
483 |
+
/**
|
484 |
+
* Get the part of the query responsible for JOINing objects to relationships.
|
485 |
+
*
|
486 |
+
* @since 2.6.0 bbPress (r6737)
|
487 |
+
*
|
488 |
+
* @param array $args
|
489 |
+
* @param string $meta_key
|
490 |
+
* @param string $meta_type
|
491 |
+
*
|
492 |
+
* @return array
|
493 |
+
*/
|
494 |
+
public function get_query( $args = array(), $context_key = '', $meta_key = '', $meta_type = 'post' ) {
|
495 |
+
$tax_key = "{$meta_key}_{$meta_type}";
|
496 |
+
$user_key = "{$meta_key}_user_id_";
|
497 |
+
|
498 |
+
// Make sure the taxonomy is registered
|
499 |
+
$this->jit_taxonomy( $tax_key );
|
500 |
+
|
501 |
+
// Backwards compat for pre-2.6.0
|
502 |
+
if ( is_numeric( $args ) ) {
|
503 |
+
$args = array(
|
504 |
+
'tax_query' => array( array(
|
505 |
+
'taxonomy' => $tax_key,
|
506 |
+
'terms' => $user_key . bbp_get_user_id( $args, false, false ),
|
507 |
+
'field' => 'slug'
|
508 |
+
) )
|
509 |
+
);
|
510 |
+
}
|
511 |
+
|
512 |
+
// Default arguments
|
513 |
+
$defaults = array(
|
514 |
+
'tax_query' => array( array(
|
515 |
+
'taxonomy' => $tax_key,
|
516 |
+
'terms' => $user_key . bbp_get_displayed_user_id(),
|
517 |
+
'field' => 'slug'
|
518 |
+
) )
|
519 |
+
);
|
520 |
+
|
521 |
+
// Parse arguments
|
522 |
+
return bbp_parse_args( $args, $defaults, $context_key );
|
523 |
+
}
|
524 |
+
}
|
525 |
+
|
526 |
+
/**
|
527 |
+
* Backwards compatibility strategy for interfacing with User Engagements
|
528 |
+
*
|
529 |
+
* @since 2.6.0 bbPress (r6844)
|
530 |
+
*/
|
531 |
+
class BBP_User_Engagements_Back_Compat extends BBP_User_Engagements_Base {
|
532 |
+
|
533 |
+
/**
|
534 |
+
* Type of strategy being used.
|
535 |
+
*
|
536 |
+
* @since 2.6.0 bbPress (r6844)
|
537 |
+
*
|
538 |
+
* @var string
|
539 |
+
*/
|
540 |
+
public $type = 'compat';
|
541 |
+
|
542 |
+
/**
|
543 |
+
* Private function to map 2.6 meta keys to 2.5 user-option keys.
|
544 |
+
*
|
545 |
+
* @since 2.6.0 bbPress (r6844)
|
546 |
+
*
|
547 |
+
* @param string $meta_key
|
548 |
+
*
|
549 |
+
* @return string
|
550 |
+
*/
|
551 |
+
private function get_user_option_key( $meta_key = '', $object_id = 0 ) {
|
552 |
+
switch ( $meta_key ) {
|
553 |
+
|
554 |
+
// Favorites
|
555 |
+
case '_bbp_favorite' :
|
556 |
+
$key = '_bbp_favorites';
|
557 |
+
break;
|
558 |
+
|
559 |
+
// Subscriptions
|
560 |
+
case '_bbp_subscription' :
|
561 |
+
|
562 |
+
// Maybe guess at post type
|
563 |
+
$post_type = ! empty( $object_id )
|
564 |
+
? get_post_type( $object_id )
|
565 |
+
: bbp_get_topic_post_type();
|
566 |
+
|
567 |
+
// Forums & Topics used different keys :/
|
568 |
+
$key = ( bbp_get_forum_post_type() === $post_type )
|
569 |
+
? '_bbp_forum_subscriptions'
|
570 |
+
: '_bbp_subscriptions';
|
571 |
+
|
572 |
+
break;
|
573 |
+
|
574 |
+
// Unknown, so pluralize
|
575 |
+
default :
|
576 |
+
$key = "{$meta_key}s";
|
577 |
+
break;
|
578 |
+
}
|
579 |
+
|
580 |
+
// Return the old (pluralized) user option key
|
581 |
+
return $key;
|
582 |
+
}
|
583 |
+
|
584 |
+
/**
|
585 |
+
* Turn a comma-separated string into an array of integers
|
586 |
+
*
|
587 |
+
* @since 2.6.0 bbPress (r6844)
|
588 |
+
*
|
589 |
+
* @param string $results
|
590 |
+
* @return array
|
591 |
+
*/
|
592 |
+
private function format_results( $results = '' ) {
|
593 |
+
return wp_parse_id_list( array_filter( $results ) );
|
594 |
+
}
|
595 |
+
|
596 |
+
/**
|
597 |
+
* Add a user id to an object
|
598 |
+
*
|
599 |
+
* @since 2.6.0 bbPress (r6844)
|
600 |
+
*
|
601 |
+
* @param int $object_id The object id
|
602 |
+
* @param int $user_id The user id
|
603 |
+
* @param string $meta_key The relationship key
|
604 |
+
* @param string $meta_type The relationship type (usually 'post')
|
605 |
+
* @param bool $unique Whether meta key should be unique to the object
|
606 |
+
*
|
607 |
+
* @return bool Returns true on success, false on failure
|
608 |
+
*/
|
609 |
+
public function add_user_to_object( $object_id = 0, $user_id = 0, $meta_key = '', $meta_type = 'post', $unique = false ) {
|
610 |
+
$retval = false;
|
611 |
+
$option_key = $this->get_user_option_key( $meta_key, $object_id );
|
612 |
+
$object_ids = $this->format_results( get_user_option( $option_key, $user_id ) );
|
613 |
+
|
614 |
+
// Not already added, so add it
|
615 |
+
if ( ! in_array( $object_id, $object_ids, true ) ) {
|
616 |
+
$object_ids[] = $object_id;
|
617 |
+
$object_ids = implode( ',', $this->format_results( $object_ids ) );
|
618 |
+
$retval = update_user_option( $user_id, $option_key, $object_ids );
|
619 |
+
}
|
620 |
+
|
621 |
+
// Return true if added, or false if not
|
622 |
+
return $retval;
|
623 |
+
}
|
624 |
+
|
625 |
+
/**
|
626 |
+
* Remove a user id from an object
|
627 |
+
*
|
628 |
+
* @since 2.6.0 bbPress (r6844)
|
629 |
+
*
|
630 |
+
* @param int $object_id The object id
|
631 |
+
* @param int $user_id The user id
|
632 |
+
* @param string $meta_key The relationship key
|
633 |
+
* @param string $meta_type The relationship type (usually 'post')
|
634 |
+
*
|
635 |
+
* @return bool Returns true on success, false on failure
|
636 |
+
*/
|
637 |
+
public function remove_user_from_object( $object_id = 0, $user_id = 0, $meta_key = '', $meta_type = 'post' ) {
|
638 |
+
$retval = false;
|
639 |
+
$option_key = $this->get_user_option_key( $meta_key, $object_id );
|
640 |
+
$object_ids = $this->format_results( get_user_option( $option_key, $user_id ) );
|
641 |
+
|
642 |
+
// Exists, so remove it
|
643 |
+
if ( in_array( $object_id, $object_ids, true ) ) {
|
644 |
+
unset( $object_ids[ $object_id ] );
|
645 |
+
|
646 |
+
$object_ids = implode( ',', $this->format_results( $object_ids ) );
|
647 |
+
$retval = update_user_option( $user_id, $option_key, $object_ids );
|
648 |
+
}
|
649 |
+
|
650 |
+
// Return true if removed, or false if not
|
651 |
+
return $retval;
|
652 |
+
}
|
653 |
+
|
654 |
+
/**
|
655 |
+
* Remove a user id from all objects
|
656 |
+
*
|
657 |
+
* @since 2.6.0 bbPress (r6844)
|
658 |
+
*
|
659 |
+
* @param int $user_id The user id
|
660 |
+
* @param string $meta_key The relationship key
|
661 |
+
* @param string $meta_type The relationship type (usually 'post')
|
662 |
+
*
|
663 |
+
* @return bool Returns true on success, false on failure
|
664 |
+
*/
|
665 |
+
public function remove_user_from_all_objects( $user_id = 0, $meta_key = '', $meta_type = 'post' ) {
|
666 |
+
$option_key = $this->get_user_option_key( $meta_key );
|
667 |
+
return delete_user_option( $user_id, $option_key );
|
668 |
+
}
|
669 |
+
|
670 |
+
/**
|
671 |
+
* Remove an object from all users
|
672 |
+
*
|
673 |
+
* @since 2.6.0 bbPress (r6844)
|
674 |
+
*
|
675 |
+
* @param int $object_id The object id
|
676 |
+
* @param int $user_id The user id
|
677 |
+
* @param string $meta_key The relationship key
|
678 |
+
* @param string $meta_type The relationship type (usually 'post')
|
679 |
+
*
|
680 |
+
* @return bool Returns true on success, false on failure
|
681 |
+
*/
|
682 |
+
public function remove_object_from_all_users( $object_id = 0, $meta_key = '', $meta_type = 'post' ) {
|
683 |
+
|
684 |
+
// Query for users
|
685 |
+
$user_ids = $this->get_users_for_object( $object_id, $meta_key, $meta_type );
|
686 |
+
$u_count = count( $user_ids );
|
687 |
+
|
688 |
+
// Count number of removals
|
689 |
+
$removed = array();
|
690 |
+
$r_count = 0;
|
691 |
+
|
692 |
+
// Users have engaged, so remove them
|
693 |
+
if ( ! empty( $u_count ) ) {
|
694 |
+
|
695 |
+
// Loop through users and remove them from the object
|
696 |
+
foreach ( $user_ids as $user_id ) {
|
697 |
+
$removed[] = $this->remove_user_from_object( $object_id, $user_id, $meta_key, $meta_type );
|
698 |
+
}
|
699 |
+
|
700 |
+
// Count the removed users
|
701 |
+
$r_count = count( $removed );
|
702 |
+
}
|
703 |
+
|
704 |
+
// Return true if successfully removed from all users
|
705 |
+
return ( $r_count === $u_count );
|
706 |
+
}
|
707 |
+
|
708 |
+
/**
|
709 |
+
* Remove all users from all objects
|
710 |
+
*
|
711 |
+
* @since 2.6.0 bbPress (r6844)
|
712 |
+
*
|
713 |
+
* @param string $meta_key The relationship key
|
714 |
+
* @param string $meta_type The relationship type (usually 'post')
|
715 |
+
*
|
716 |
+
* @return bool Returns true on success, false on failure
|
717 |
+
*/
|
718 |
+
public function remove_all_users_from_all_objects( $meta_key = '', $meta_type = 'post' ) {
|
719 |
+
|
720 |
+
// Query for users
|
721 |
+
$option_key = $this->get_user_option_key( $meta_key );
|
722 |
+
$bbp_db = bbp_db();
|
723 |
+
$user_ids = $bbp_db->get_col( "SELECT user_id FROM {$bbp_db->usermeta} WHERE meta_key = '{$option_key}'" );
|
724 |
+
$u_count = count( $user_ids );
|
725 |
+
|
726 |
+
// Count number of removals
|
727 |
+
$removed = array();
|
728 |
+
$r_count = 0;
|
729 |
+
|
730 |
+
// Users have engaged, so remove them
|
731 |
+
if ( ! empty( $u_count ) ) {
|
732 |
+
|
733 |
+
// Loop through users and remove their user options
|
734 |
+
foreach ( $user_ids as $user_id ) {
|
735 |
+
$removed[] = delete_user_option( $user_id, $option_key );
|
736 |
+
}
|
737 |
+
|
738 |
+
// Count the removed users
|
739 |
+
$r_count = count( $removed );
|
740 |
+
}
|
741 |
+
|
742 |
+
// Return true if successfully removed from all users
|
743 |
+
return ( $r_count === $u_count );
|
744 |
+
}
|
745 |
+
|
746 |
+
/**
|
747 |
+
* Get users of an object
|
748 |
+
*
|
749 |
+
* The database queries in this function were cached in bbPress versions
|
750 |
+
* older than 2.6, but no longer are to avoid cache pollution.
|
751 |
+
*
|
752 |
+
* @since 2.6.0 bbPress (r6844)
|
753 |
+
*
|
754 |
+
* @param int $object_id The object id
|
755 |
+
* @param string $meta_key The key used to index this relationship
|
756 |
+
* @param string $meta_type The type of meta to look in
|
757 |
+
*
|
758 |
+
* @return array Returns ids of users
|
759 |
+
*/
|
760 |
+
public function get_users_for_object( $object_id = 0, $meta_key = '', $meta_type = 'post' ) {
|
761 |
+
$option_key = $this->get_user_option_key( $meta_key, $object_id );
|
762 |
+
$bbp_db = bbp_db();
|
763 |
+
$user_ids = $bbp_db->get_col( "SELECT user_id FROM {$bbp_db->usermeta} WHERE meta_key = '{$option_key}' and FIND_IN_SET('{$object_id}', meta_value) > 0" );
|
764 |
+
|
765 |
+
return wp_parse_id_list( $user_ids );
|
766 |
+
}
|
767 |
+
|
768 |
+
/**
|
769 |
+
* Get the part of the query responsible for JOINing objects to relationships.
|
770 |
+
*
|
771 |
+
* @since 2.6.0 bbPress (r6844)
|
772 |
+
*
|
773 |
+
* @param array $args
|
774 |
+
* @param string $meta_key
|
775 |
+
* @param string $meta_type
|
776 |
+
*
|
777 |
+
* @return array
|
778 |
+
*/
|
779 |
+
public function get_query( $args = array(), $context_key = '', $meta_key = '', $meta_type = 'post' ) {
|
780 |
+
// TODO
|
781 |
+
return array();
|
782 |
+
}
|
783 |
+
}
|
includes/common/formatting.php
CHANGED
@@ -272,9 +272,10 @@ function bbp_encode_empty_callback( &$content = '', $key = '', $preg = '' ) {
|
|
272 |
* @since 2.3.0 bbPress (r4641)
|
273 |
*
|
274 |
* @internal Used by bbp_encode_bad()
|
275 |
-
*
|
276 |
-
* @param
|
277 |
-
* @param
|
|
|
278 |
*/
|
279 |
function bbp_encode_normal_callback( &$content = '', $key = '', $preg = '') {
|
280 |
if ( strpos( $content, '`' ) !== 0 ) {
|
@@ -728,7 +729,7 @@ function bbp_time_since( $older_date, $newer_date = false, $gmt = false ) {
|
|
728 |
function bbp_format_revision_reason( $reason = '' ) {
|
729 |
$reason = (string) $reason;
|
730 |
|
731 |
-
//
|
732 |
if ( empty( $reason ) ) {
|
733 |
return $reason;
|
734 |
}
|
@@ -746,4 +747,3 @@ function bbp_format_revision_reason( $reason = '' ) {
|
|
746 |
|
747 |
return $reason;
|
748 |
}
|
749 |
-
|
272 |
* @since 2.3.0 bbPress (r4641)
|
273 |
*
|
274 |
* @internal Used by bbp_encode_bad()
|
275 |
+
*
|
276 |
+
* @param string $content
|
277 |
+
* @param string $key
|
278 |
+
* @param string $preg
|
279 |
*/
|
280 |
function bbp_encode_normal_callback( &$content = '', $key = '', $preg = '') {
|
281 |
if ( strpos( $content, '`' ) !== 0 ) {
|
729 |
function bbp_format_revision_reason( $reason = '' ) {
|
730 |
$reason = (string) $reason;
|
731 |
|
732 |
+
// Bail if reason is empty
|
733 |
if ( empty( $reason ) ) {
|
734 |
return $reason;
|
735 |
}
|
747 |
|
748 |
return $reason;
|
749 |
}
|
|
includes/common/functions.php
CHANGED
@@ -13,6 +13,17 @@
|
|
13 |
// Exit if accessed directly
|
14 |
defined( 'ABSPATH' ) || exit;
|
15 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
16 |
/** URLs **********************************************************************/
|
17 |
|
18 |
/**
|
@@ -75,13 +86,15 @@ function bbp_remove_view_all( $original_link = '' ) {
|
|
75 |
*
|
76 |
* @since 2.0.0 bbPress (r3325)
|
77 |
*
|
|
|
|
|
78 |
* @return bool Whether current user can and is viewing all
|
79 |
*/
|
80 |
function bbp_get_view_all( $cap = 'moderate' ) {
|
81 |
$retval = ( ( ! empty( $_GET['view'] ) && ( 'all' === $_GET['view'] ) && current_user_can( $cap ) ) );
|
82 |
|
83 |
// Filter & return
|
84 |
-
return apply_filters( 'bbp_get_view_all', (bool) $retval );
|
85 |
}
|
86 |
|
87 |
/**
|
@@ -179,32 +192,28 @@ function bbp_past_edit_lock( $post_date_gmt = '' ) {
|
|
179 |
// Default value
|
180 |
$retval = false;
|
181 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
182 |
// Check if date and editing is allowed
|
183 |
if ( ! empty( $post_date_gmt ) && bbp_allow_content_edit() ) {
|
184 |
|
185 |
-
// Get number of minutes to allow editing for
|
186 |
-
$minutes = (int) get_option( '_bbp_edit_lock', 5 );
|
187 |
-
|
188 |
// "0" minutes set, so allow forever
|
189 |
if ( 0 === $minutes ) {
|
190 |
$retval = true;
|
191 |
|
192 |
// Not "0" so compare
|
193 |
-
}
|
194 |
-
|
195 |
-
// Period of time
|
196 |
-
$lockable = "+{$minutes} minutes";
|
197 |
-
|
198 |
-
// Now
|
199 |
-
$cur_time = current_time( 'timestamp', true );
|
200 |
-
|
201 |
-
// Add lockable time to post time
|
202 |
-
$lock_time = strtotime( $lockable, strtotime( $post_date_gmt ) );
|
203 |
-
|
204 |
-
// Compare
|
205 |
-
if ( $cur_time >= $lock_time ) {
|
206 |
-
$retval = true;
|
207 |
-
}
|
208 |
}
|
209 |
}
|
210 |
|
@@ -277,26 +286,38 @@ function bbp_get_statistics( $args = array() ) {
|
|
277 |
|
278 |
// Parse arguments against default values
|
279 |
$r = bbp_parse_args( $args, array(
|
|
|
|
|
280 |
'count_users' => true,
|
|
|
|
|
281 |
'count_forums' => true,
|
|
|
|
|
282 |
'count_topics' => true,
|
283 |
'count_pending_topics' => true,
|
284 |
'count_private_topics' => true,
|
285 |
'count_spammed_topics' => true,
|
286 |
'count_trashed_topics' => true,
|
|
|
|
|
287 |
'count_replies' => true,
|
288 |
'count_pending_replies' => true,
|
289 |
'count_private_replies' => true,
|
290 |
'count_spammed_replies' => true,
|
291 |
'count_trashed_replies' => true,
|
|
|
|
|
292 |
'count_tags' => true,
|
293 |
'count_empty_tags' => true
|
|
|
294 |
), 'get_statistics' );
|
295 |
|
296 |
// Defaults
|
297 |
$topic_count = $topic_count_hidden = 0;
|
298 |
$reply_count = $reply_count_hidden = 0;
|
299 |
$topic_tag_count = $empty_topic_tag_count = 0;
|
|
|
300 |
|
301 |
// Users
|
302 |
$user_count = ! empty( $r['count_users'] )
|
@@ -464,8 +485,8 @@ function bbp_get_statistics( $args = array() ) {
|
|
464 |
|
465 |
// Add the hidden (topic/reply) count title attribute strings because we
|
466 |
// don't need to run the math functions on these (see above)
|
467 |
-
$statistics['hidden_topic_title'] =
|
468 |
-
$statistics['hidden_reply_title'] =
|
469 |
|
470 |
// Filter & return
|
471 |
return (array) apply_filters( 'bbp_get_statistics', $statistics, $r, $args );
|
@@ -505,13 +526,13 @@ function bbp_filter_anonymous_post_data( $args = array() ) {
|
|
505 |
// Filter name
|
506 |
$r['bbp_anonymous_name'] = apply_filters( 'bbp_pre_anonymous_post_author_name', $r['bbp_anonymous_name'] );
|
507 |
if ( empty( $r['bbp_anonymous_name'] ) ) {
|
508 |
-
bbp_add_error( 'bbp_anonymous_name',
|
509 |
}
|
510 |
|
511 |
// Filter email address
|
512 |
$r['bbp_anonymous_email'] = apply_filters( 'bbp_pre_anonymous_post_author_email', $r['bbp_anonymous_email'] );
|
513 |
if ( empty( $r['bbp_anonymous_email'] ) ) {
|
514 |
-
bbp_add_error( 'bbp_anonymous_email',
|
515 |
}
|
516 |
|
517 |
// Website is optional (can be empty)
|
@@ -610,11 +631,6 @@ function bbp_update_anonymous_post_author( $post_id = 0, $anonymous_data = array
|
|
610 |
*/
|
611 |
function bbp_check_for_duplicate( $post_data = array() ) {
|
612 |
|
613 |
-
// No duplicate checks for those who can throttle
|
614 |
-
if ( current_user_can( 'throttle' ) ) {
|
615 |
-
return true;
|
616 |
-
}
|
617 |
-
|
618 |
// Parse arguments against default values
|
619 |
$r = bbp_parse_args( $post_data, array(
|
620 |
'post_author' => 0,
|
@@ -625,6 +641,11 @@ function bbp_check_for_duplicate( $post_data = array() ) {
|
|
625 |
'anonymous_data' => array()
|
626 |
), 'check_for_duplicate' );
|
627 |
|
|
|
|
|
|
|
|
|
|
|
628 |
// Get the DB
|
629 |
$bbp_db = bbp_db();
|
630 |
|
@@ -648,7 +669,9 @@ function bbp_check_for_duplicate( $post_data = array() ) {
|
|
648 |
|
649 |
// Set clauses
|
650 |
$join = $clauses['join'];
|
651 |
-
|
|
|
|
|
652 |
}
|
653 |
}
|
654 |
|
@@ -659,16 +682,22 @@ function bbp_check_for_duplicate( $post_data = array() ) {
|
|
659 |
$r = wp_unslash( $r );
|
660 |
|
661 |
// Prepare duplicate check query
|
662 |
-
$query =
|
663 |
-
$query .=
|
|
|
|
|
|
|
|
|
664 |
$query .= " LIMIT 1";
|
665 |
$dupe = apply_filters( 'bbp_check_for_duplicate_query', $query, $r );
|
666 |
|
|
|
667 |
if ( $bbp_db->get_var( $dupe ) ) {
|
668 |
do_action( 'bbp_check_for_duplicate_trigger', $post_data );
|
669 |
return false;
|
670 |
}
|
671 |
|
|
|
672 |
return true;
|
673 |
}
|
674 |
|
@@ -736,10 +765,21 @@ function bbp_check_for_flood( $anonymous_data = array(), $author_id = 0 ) {
|
|
736 |
* @param string $content The content being posted
|
737 |
* @return bool True if test is passed, false if fail
|
738 |
*/
|
739 |
-
function bbp_check_for_moderation( $anonymous_data = array(), $author_id = 0, $title = '', $content = '' ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
740 |
|
741 |
// Allow for moderation check to be skipped
|
742 |
-
if ( apply_filters(
|
743 |
return true;
|
744 |
}
|
745 |
|
@@ -755,20 +795,23 @@ function bbp_check_for_moderation( $anonymous_data = array(), $author_id = 0, $t
|
|
755 |
|
756 |
/** Max Links *************************************************************/
|
757 |
|
758 |
-
|
759 |
-
if (
|
|
|
|
|
760 |
|
761 |
-
|
762 |
-
|
763 |
|
764 |
-
|
765 |
-
|
766 |
-
|
767 |
-
|
768 |
|
769 |
-
|
770 |
-
|
771 |
-
|
|
|
772 |
}
|
773 |
}
|
774 |
|
@@ -781,9 +824,9 @@ function bbp_check_for_moderation( $anonymous_data = array(), $author_id = 0, $t
|
|
781 |
*
|
782 |
* @param string $moderation List of moderation keys. One per new line.
|
783 |
*/
|
784 |
-
$moderation = apply_filters(
|
785 |
|
786 |
-
// Bail if
|
787 |
if ( empty( $moderation ) ) {
|
788 |
return true;
|
789 |
}
|
@@ -840,7 +883,7 @@ function bbp_check_for_moderation( $anonymous_data = array(), $author_id = 0, $t
|
|
840 |
// Do some escaping magic so that '#' chars in the
|
841 |
// spam words don't break things:
|
842 |
$word = preg_quote( $word, '#' );
|
843 |
-
$pattern = "
|
844 |
|
845 |
// Loop through post data
|
846 |
foreach ( $_post as $post_data ) {
|
@@ -859,115 +902,14 @@ function bbp_check_for_moderation( $anonymous_data = array(), $author_id = 0, $t
|
|
859 |
}
|
860 |
|
861 |
/**
|
862 |
-
*
|
863 |
*
|
864 |
* @since 2.0.0 bbPress (r3446)
|
865 |
-
*
|
866 |
-
* @
|
867 |
-
* supply if supplying $author_id. Should be
|
868 |
-
* sanitized (see {@link bbp_filter_anonymous_post_data()}
|
869 |
-
* @param int $author_id Topic or reply author ID
|
870 |
-
* @param string $title The title of the content
|
871 |
-
* @param string $content The content being posted
|
872 |
-
* @return bool True if test is passed, false if fail
|
873 |
*/
|
874 |
function bbp_check_for_blacklist( $anonymous_data = array(), $author_id = 0, $title = '', $content = '' ) {
|
875 |
-
|
876 |
-
// Allow for blacklist check to be skipped
|
877 |
-
if ( apply_filters( 'bbp_bypass_check_for_blacklist', false, $anonymous_data, $author_id, $title, $content ) ) {
|
878 |
-
return true;
|
879 |
-
}
|
880 |
-
|
881 |
-
// Bail if keymaster is author
|
882 |
-
if ( ! empty( $author_id ) && bbp_is_user_keymaster( $author_id ) ) {
|
883 |
-
return true;
|
884 |
-
}
|
885 |
-
|
886 |
-
/** Blacklist *************************************************************/
|
887 |
-
|
888 |
-
/**
|
889 |
-
* Filters the bbPress blacklist keys.
|
890 |
-
*
|
891 |
-
* @since 2.6.0 bbPress (r6050)
|
892 |
-
*
|
893 |
-
* @param string $blacklist List of blacklist keys. One per new line.
|
894 |
-
*/
|
895 |
-
$blacklist = apply_filters( 'bbp_blacklist_keys', trim( get_option( 'blacklist_keys' ) ) );
|
896 |
-
|
897 |
-
// Bail if blacklist is empty
|
898 |
-
if ( empty( $blacklist ) ) {
|
899 |
-
return true;
|
900 |
-
}
|
901 |
-
|
902 |
-
/** User Data *************************************************************/
|
903 |
-
|
904 |
-
// Define local variable
|
905 |
-
$_post = array();
|
906 |
-
|
907 |
-
// Map anonymous user data
|
908 |
-
if ( ! empty( $anonymous_data ) ) {
|
909 |
-
$_post['author'] = $anonymous_data['bbp_anonymous_name'];
|
910 |
-
$_post['email'] = $anonymous_data['bbp_anonymous_email'];
|
911 |
-
$_post['url'] = $anonymous_data['bbp_anonymous_website'];
|
912 |
-
|
913 |
-
// Map current user data
|
914 |
-
} elseif ( ! empty( $author_id ) ) {
|
915 |
-
|
916 |
-
// Get author data
|
917 |
-
$user = get_userdata( $author_id );
|
918 |
-
|
919 |
-
// If data exists, map it
|
920 |
-
if ( ! empty( $user ) ) {
|
921 |
-
$_post['author'] = $user->display_name;
|
922 |
-
$_post['email'] = $user->user_email;
|
923 |
-
$_post['url'] = $user->user_url;
|
924 |
-
}
|
925 |
-
}
|
926 |
-
|
927 |
-
// Current user IP and user agent
|
928 |
-
$_post['user_ip'] = bbp_current_author_ip();
|
929 |
-
$_post['user_ua'] = bbp_current_author_ua();
|
930 |
-
|
931 |
-
// Post title and content
|
932 |
-
$_post['title'] = $title;
|
933 |
-
$_post['content'] = $content;
|
934 |
-
|
935 |
-
// Ensure HTML tags are not being used to bypass the blacklist.
|
936 |
-
$_post['comment_without_html'] = wp_strip_all_tags( $content );
|
937 |
-
|
938 |
-
/** Words *****************************************************************/
|
939 |
-
|
940 |
-
// Get words separated by new lines
|
941 |
-
$words = explode( "\n", $blacklist );
|
942 |
-
|
943 |
-
// Loop through words
|
944 |
-
foreach ( (array) $words as $word ) {
|
945 |
-
|
946 |
-
// Trim the whitespace from the word
|
947 |
-
$word = trim( $word );
|
948 |
-
|
949 |
-
// Skip empty lines
|
950 |
-
if ( empty( $word ) ) { continue; }
|
951 |
-
|
952 |
-
// Do some escaping magic so that '#' chars in the
|
953 |
-
// spam words don't break things:
|
954 |
-
$word = preg_quote( $word, '#' );
|
955 |
-
$pattern = "#$word#i";
|
956 |
-
|
957 |
-
// Loop through post data
|
958 |
-
foreach ( $_post as $post_data ) {
|
959 |
-
|
960 |
-
// Check each user data for current word
|
961 |
-
if ( preg_match( $pattern, $post_data ) ) {
|
962 |
-
|
963 |
-
// Post does not pass
|
964 |
-
return false;
|
965 |
-
}
|
966 |
-
}
|
967 |
-
}
|
968 |
-
|
969 |
-
// Check passed successfully
|
970 |
-
return true;
|
971 |
}
|
972 |
|
973 |
/** Subscriptions *************************************************************/
|
@@ -1059,23 +1001,26 @@ function bbp_notify_topic_subscribers( $reply_id = 0, $topic_id = 0, $forum_id =
|
|
1059 |
// Get topic subscribers and bail if empty
|
1060 |
$user_ids = bbp_get_subscribers( $topic_id );
|
1061 |
|
1062 |
-
// Dedicated filter to manipulate user ID's to send emails to
|
1063 |
-
$user_ids = (array) apply_filters( 'bbp_topic_subscription_user_ids', $user_ids );
|
1064 |
-
if ( empty( $user_ids ) ) {
|
1065 |
-
return false;
|
1066 |
-
}
|
1067 |
-
|
1068 |
// Remove the reply author from the list.
|
1069 |
$reply_author_key = array_search( (int) $reply_author, $user_ids, true );
|
1070 |
if ( false !== $reply_author_key ) {
|
1071 |
unset( $user_ids[ $reply_author_key ] );
|
1072 |
}
|
1073 |
|
|
|
|
|
|
|
1074 |
// Bail of the reply author was the only one subscribed.
|
1075 |
if ( empty( $user_ids ) ) {
|
1076 |
return false;
|
1077 |
}
|
1078 |
|
|
|
|
|
|
|
|
|
|
|
|
|
1079 |
/** Mail ******************************************************************/
|
1080 |
|
1081 |
// Remove filters from reply content and topic title to prevent content
|
@@ -1130,9 +1075,9 @@ Login and visit the topic to unsubscribe from these emails.', 'bbpress' ),
|
|
1130 |
// Setup the From header
|
1131 |
$headers = array( 'From: ' . get_bloginfo( 'name' ) . ' <' . $from_email . '>' );
|
1132 |
|
1133 |
-
// Loop through
|
1134 |
-
foreach ( (array) $
|
1135 |
-
$headers[] = 'Bcc: ' .
|
1136 |
}
|
1137 |
|
1138 |
/** Send it ***************************************************************/
|
@@ -1212,23 +1157,26 @@ function bbp_notify_forum_subscribers( $topic_id = 0, $forum_id = 0, $anonymous_
|
|
1212 |
// Get topic subscribers and bail if empty
|
1213 |
$user_ids = bbp_get_subscribers( $forum_id );
|
1214 |
|
1215 |
-
// Dedicated filter to manipulate user ID's to send emails to
|
1216 |
-
$user_ids = (array) apply_filters( 'bbp_forum_subscription_user_ids', $user_ids );
|
1217 |
-
if ( empty( $user_ids ) ) {
|
1218 |
-
return false;
|
1219 |
-
}
|
1220 |
-
|
1221 |
// Remove the topic author from the list.
|
1222 |
$topic_author_key = array_search( (int) $topic_author, $user_ids, true );
|
1223 |
if ( false !== $topic_author_key ) {
|
1224 |
unset( $user_ids[ $topic_author_key ] );
|
1225 |
}
|
1226 |
|
1227 |
-
//
|
|
|
|
|
|
|
1228 |
if ( empty( $user_ids ) ) {
|
1229 |
return false;
|
1230 |
}
|
1231 |
|
|
|
|
|
|
|
|
|
|
|
|
|
1232 |
/** Mail ******************************************************************/
|
1233 |
|
1234 |
// Remove filters from reply content and topic title to prevent content
|
@@ -1283,9 +1231,9 @@ Login and visit the topic to unsubscribe from these emails.', 'bbpress' ),
|
|
1283 |
// Setup the From header
|
1284 |
$headers = array( 'From: ' . get_bloginfo( 'name' ) . ' <' . $from_email . '>' );
|
1285 |
|
1286 |
-
// Loop through
|
1287 |
-
foreach ( (array) $
|
1288 |
-
$headers[] = 'Bcc: ' .
|
1289 |
}
|
1290 |
|
1291 |
/** Send it ***************************************************************/
|
@@ -1332,6 +1280,72 @@ function bbp_notify_subscribers( $reply_id = 0, $topic_id = 0, $forum_id = 0, $a
|
|
1332 |
return bbp_notify_topic_subscribers( $reply_id, $topic_id, $forum_id, $anonymous_data, $reply_author );
|
1333 |
}
|
1334 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1335 |
/** Login *********************************************************************/
|
1336 |
|
1337 |
/**
|
@@ -1344,18 +1358,21 @@ function bbp_notify_subscribers( $reply_id = 0, $topic_id = 0, $forum_id = 0, $a
|
|
1344 |
function bbp_logout_url( $url = '', $redirect_to = '' ) {
|
1345 |
|
1346 |
// Make sure we are directing somewhere
|
1347 |
-
if ( empty( $redirect_to ) && !strstr( $url, 'redirect_to' ) ) {
|
1348 |
|
1349 |
// Rejig the $redirect_to
|
1350 |
if ( ! isset( $_SERVER['REDIRECT_URL'] ) || ( $redirect_to !== home_url( $_SERVER['REDIRECT_URL'] ) ) ) {
|
1351 |
-
$redirect_to = isset( $_SERVER['HTTP_REFERER'] )
|
|
|
|
|
1352 |
}
|
1353 |
|
1354 |
-
|
|
|
1355 |
|
1356 |
// Sanitize $redirect_to and add it to full $url
|
1357 |
-
$redirect_to = add_query_arg( array( 'loggedout' => 'true' ),
|
1358 |
-
$url = add_query_arg( array( 'redirect_to' => urlencode( $redirect_to ) ), $url
|
1359 |
}
|
1360 |
|
1361 |
// Filter & return
|
@@ -1392,7 +1409,7 @@ function bbp_parse_args( $args, $defaults = array(), $filter_key = '' ) {
|
|
1392 |
|
1393 |
// Passively filter the args before the parse
|
1394 |
if ( ! empty( $filter_key ) ) {
|
1395 |
-
$r = apply_filters(
|
1396 |
}
|
1397 |
|
1398 |
// Parse
|
@@ -1402,7 +1419,7 @@ function bbp_parse_args( $args, $defaults = array(), $filter_key = '' ) {
|
|
1402 |
|
1403 |
// Aggressively filter the args after the parse
|
1404 |
if ( ! empty( $filter_key ) ) {
|
1405 |
-
$r = apply_filters(
|
1406 |
}
|
1407 |
|
1408 |
// Return the parsed results
|
@@ -1507,6 +1524,110 @@ function bbp_get_public_child_last_id( $parent_id = 0, $post_type = 'post' ) {
|
|
1507 |
return (int) apply_filters( 'bbp_get_public_child_last_id', $child_id, $parent_id, $post_type );
|
1508 |
}
|
1509 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1510 |
/**
|
1511 |
* Query the DB and get a count of public children
|
1512 |
*
|
@@ -1520,39 +1641,85 @@ function bbp_get_public_child_last_id( $parent_id = 0, $post_type = 'post' ) {
|
|
1520 |
function bbp_get_public_child_count( $parent_id = 0, $post_type = 'post' ) {
|
1521 |
|
1522 |
// Bail if nothing passed
|
1523 |
-
if ( empty( $
|
1524 |
return false;
|
1525 |
}
|
1526 |
|
1527 |
-
//
|
1528 |
-
|
1529 |
|
1530 |
-
|
1531 |
-
|
1532 |
-
|
1533 |
-
|
1534 |
|
1535 |
-
|
1536 |
-
|
1537 |
-
|
1538 |
-
|
1539 |
-
'post_type' => $post_type,
|
1540 |
-
'posts_per_page' => -1,
|
1541 |
|
1542 |
-
//
|
1543 |
-
|
1544 |
-
|
1545 |
-
|
1546 |
-
|
1547 |
-
|
1548 |
-
|
1549 |
-
|
1550 |
-
$
|
1551 |
-
|
|
|
|
|
1552 |
|
1553 |
// Filter & return
|
1554 |
return (int) apply_filters( 'bbp_get_public_child_count', $child_count, $parent_id, $post_type );
|
1555 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1556 |
|
1557 |
/**
|
1558 |
* Query the DB and get the child id's of public children
|
@@ -1691,6 +1858,11 @@ function bbp_update_post_family_caches( $objects = array() ) {
|
|
1691 |
foreach ( $objects as $object ) {
|
1692 |
$object = get_post( $object );
|
1693 |
|
|
|
|
|
|
|
|
|
|
|
1694 |
// Meta IDs
|
1695 |
foreach ( $ids as $key ) {
|
1696 |
$post_ids[] = get_post_meta( $object->ID, $key, true );
|
@@ -1743,10 +1915,17 @@ function bbp_update_post_author_caches( $objects = array() ) {
|
|
1743 |
// Default value
|
1744 |
$user_ids = array();
|
1745 |
|
1746 |
-
// Get the user IDs
|
1747 |
foreach ( $objects as $object ) {
|
1748 |
-
$object
|
1749 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1750 |
}
|
1751 |
|
1752 |
// Unique, non-zero values
|
@@ -1829,7 +2008,7 @@ function bbp_verify_nonce_request( $action = '', $query_arg = '_wpnonce' ) {
|
|
1829 |
}
|
1830 |
|
1831 |
// Build the currently requested URL
|
1832 |
-
$scheme =
|
1833 |
$requested_url = strtolower( $scheme . $request_host . $_SERVER['REQUEST_URI'] );
|
1834 |
|
1835 |
/** Look for match ********************************************************/
|
@@ -1846,7 +2025,9 @@ function bbp_verify_nonce_request( $action = '', $query_arg = '_wpnonce' ) {
|
|
1846 |
$matched_url = apply_filters( 'bbp_verify_nonce_request_url', $requested_url );
|
1847 |
|
1848 |
// Check the nonce
|
1849 |
-
$result = isset( $_REQUEST[ $query_arg ] )
|
|
|
|
|
1850 |
|
1851 |
// Nonce check failed
|
1852 |
if ( empty( $result ) || empty( $action ) || ( strpos( $matched_url, $home_url ) !== 0 ) ) {
|
@@ -1963,7 +2144,7 @@ function bbp_request_feed_trap( $query_vars = array() ) {
|
|
1963 |
'feed' => true,
|
1964 |
'post_type' => bbp_get_reply_post_type(),
|
1965 |
'post_parent' => 'any',
|
1966 |
-
'post_status' =>
|
1967 |
'posts_per_page' => bbp_get_replies_per_rss_page(),
|
1968 |
'order' => 'DESC',
|
1969 |
'meta_query' => $meta_query
|
@@ -2179,6 +2360,7 @@ function bbp_pre_handle_404( $override = false, $wp_query = false ) {
|
|
2179 |
: bbp_set_200();
|
2180 |
}
|
2181 |
|
|
|
2182 |
return $override;
|
2183 |
}
|
2184 |
|
@@ -2205,3 +2387,35 @@ function bbp_posts_pre_query( $posts = null, $wp_query = false ) {
|
|
2205 |
// Return, maybe overridden
|
2206 |
return $posts;
|
2207 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
13 |
// Exit if accessed directly
|
14 |
defined( 'ABSPATH' ) || exit;
|
15 |
|
16 |
+
/**
|
17 |
+
* Return array of bbPress registered post types
|
18 |
+
*
|
19 |
+
* @since 2.6.0 bbPress (r6813)
|
20 |
+
*
|
21 |
+
* @return array
|
22 |
+
*/
|
23 |
+
function bbp_get_post_types() {
|
24 |
+
return get_post_types( array( 'source' => 'bbpress' ) );
|
25 |
+
}
|
26 |
+
|
27 |
/** URLs **********************************************************************/
|
28 |
|
29 |
/**
|
86 |
*
|
87 |
* @since 2.0.0 bbPress (r3325)
|
88 |
*
|
89 |
+
* @param string $cap Capability used to ensure user can view all
|
90 |
+
*
|
91 |
* @return bool Whether current user can and is viewing all
|
92 |
*/
|
93 |
function bbp_get_view_all( $cap = 'moderate' ) {
|
94 |
$retval = ( ( ! empty( $_GET['view'] ) && ( 'all' === $_GET['view'] ) && current_user_can( $cap ) ) );
|
95 |
|
96 |
// Filter & return
|
97 |
+
return (bool) apply_filters( 'bbp_get_view_all', (bool) $retval, $cap );
|
98 |
}
|
99 |
|
100 |
/**
|
192 |
// Default value
|
193 |
$retval = false;
|
194 |
|
195 |
+
// Get number of minutes to allow editing for
|
196 |
+
$minutes = (int) get_option( '_bbp_edit_lock', 5 );
|
197 |
+
|
198 |
+
// Now
|
199 |
+
$cur_time = current_time( 'timestamp', true );
|
200 |
+
|
201 |
+
// Period of time
|
202 |
+
$lockable = "+{$minutes} minutes";
|
203 |
+
|
204 |
+
// Add lockable time to post time
|
205 |
+
$lock_time = strtotime( $lockable, strtotime( $post_date_gmt ) );
|
206 |
+
|
207 |
// Check if date and editing is allowed
|
208 |
if ( ! empty( $post_date_gmt ) && bbp_allow_content_edit() ) {
|
209 |
|
|
|
|
|
|
|
210 |
// "0" minutes set, so allow forever
|
211 |
if ( 0 === $minutes ) {
|
212 |
$retval = true;
|
213 |
|
214 |
// Not "0" so compare
|
215 |
+
} elseif ( $cur_time >= $lock_time ) {
|
216 |
+
$retval = true;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
217 |
}
|
218 |
}
|
219 |
|
286 |
|
287 |
// Parse arguments against default values
|
288 |
$r = bbp_parse_args( $args, array(
|
289 |
+
|
290 |
+
// Users
|
291 |
'count_users' => true,
|
292 |
+
|
293 |
+
// Forums
|
294 |
'count_forums' => true,
|
295 |
+
|
296 |
+
// Topics
|
297 |
'count_topics' => true,
|
298 |
'count_pending_topics' => true,
|
299 |
'count_private_topics' => true,
|
300 |
'count_spammed_topics' => true,
|
301 |
'count_trashed_topics' => true,
|
302 |
+
|
303 |
+
// Replies
|
304 |
'count_replies' => true,
|
305 |
'count_pending_replies' => true,
|
306 |
'count_private_replies' => true,
|
307 |
'count_spammed_replies' => true,
|
308 |
'count_trashed_replies' => true,
|
309 |
+
|
310 |
+
// Topic tags
|
311 |
'count_tags' => true,
|
312 |
'count_empty_tags' => true
|
313 |
+
|
314 |
), 'get_statistics' );
|
315 |
|
316 |
// Defaults
|
317 |
$topic_count = $topic_count_hidden = 0;
|
318 |
$reply_count = $reply_count_hidden = 0;
|
319 |
$topic_tag_count = $empty_topic_tag_count = 0;
|
320 |
+
$hidden_topic_title = $hidden_reply_title = '';
|
321 |
|
322 |
// Users
|
323 |
$user_count = ! empty( $r['count_users'] )
|
485 |
|
486 |
// Add the hidden (topic/reply) count title attribute strings because we
|
487 |
// don't need to run the math functions on these (see above)
|
488 |
+
$statistics['hidden_topic_title'] = $hidden_topic_title;
|
489 |
+
$statistics['hidden_reply_title'] = $hidden_reply_title;
|
490 |
|
491 |
// Filter & return
|
492 |
return (array) apply_filters( 'bbp_get_statistics', $statistics, $r, $args );
|
526 |
// Filter name
|
527 |
$r['bbp_anonymous_name'] = apply_filters( 'bbp_pre_anonymous_post_author_name', $r['bbp_anonymous_name'] );
|
528 |
if ( empty( $r['bbp_anonymous_name'] ) ) {
|
529 |
+
bbp_add_error( 'bbp_anonymous_name', __( '<strong>ERROR</strong>: Invalid author name.', 'bbpress' ) );
|
530 |
}
|
531 |
|
532 |
// Filter email address
|
533 |
$r['bbp_anonymous_email'] = apply_filters( 'bbp_pre_anonymous_post_author_email', $r['bbp_anonymous_email'] );
|
534 |
if ( empty( $r['bbp_anonymous_email'] ) ) {
|
535 |
+
bbp_add_error( 'bbp_anonymous_email', __( '<strong>ERROR</strong>: Invalid email address.', 'bbpress' ) );
|
536 |
}
|
537 |
|
538 |
// Website is optional (can be empty)
|
631 |
*/
|
632 |
function bbp_check_for_duplicate( $post_data = array() ) {
|
633 |
|
|
|
|
|
|
|
|
|
|
|
634 |
// Parse arguments against default values
|
635 |
$r = bbp_parse_args( $post_data, array(
|
636 |
'post_author' => 0,
|
641 |
'anonymous_data' => array()
|
642 |
), 'check_for_duplicate' );
|
643 |
|
644 |
+
// No duplicate checks for those who can throttle
|
645 |
+
if ( user_can( (int) $r['post_author'], 'throttle' ) ) {
|
646 |
+
return true;
|
647 |
+
}
|
648 |
+
|
649 |
// Get the DB
|
650 |
$bbp_db = bbp_db();
|
651 |
|
669 |
|
670 |
// Set clauses
|
671 |
$join = $clauses['join'];
|
672 |
+
|
673 |
+
// "'", "%", "$" and are valid characters in email addresses
|
674 |
+
$where = $bbp_db->remove_placeholder_escape( $clauses['where'] );
|
675 |
}
|
676 |
}
|
677 |
|
682 |
$r = wp_unslash( $r );
|
683 |
|
684 |
// Prepare duplicate check query
|
685 |
+
$query = "SELECT ID FROM {$bbp_db->posts} {$join}";
|
686 |
+
$query .= $bbp_db->prepare( "WHERE post_type = %s AND post_status != %s AND post_author = %d AND post_content = %s", $r['post_type'], $r['post_status'], $r['post_author'], $r['post_content'] );
|
687 |
+
$query .= ! empty( $r['post_parent'] )
|
688 |
+
? $bbp_db->prepare( " AND post_parent = %d", $r['post_parent'] )
|
689 |
+
: '';
|
690 |
+
$query .= $where;
|
691 |
$query .= " LIMIT 1";
|
692 |
$dupe = apply_filters( 'bbp_check_for_duplicate_query', $query, $r );
|
693 |
|
694 |
+
// Dupe found
|
695 |
if ( $bbp_db->get_var( $dupe ) ) {
|
696 |
do_action( 'bbp_check_for_duplicate_trigger', $post_data );
|
697 |
return false;
|
698 |
}
|
699 |
|
700 |
+
// Dupe not found
|
701 |
return true;
|
702 |
}
|
703 |
|
765 |
* @param string $content The content being posted
|
766 |
* @return bool True if test is passed, false if fail
|
767 |
*/
|
768 |
+
function bbp_check_for_moderation( $anonymous_data = array(), $author_id = 0, $title = '', $content = '', $strict = false ) {
|
769 |
+
|
770 |
+
// Strict mode uses WordPress "blacklist" settings
|
771 |
+
if ( true === $strict ) {
|
772 |
+
$hook_name = 'blacklist';
|
773 |
+
$option_name = 'blacklist_keys';
|
774 |
+
|
775 |
+
// Non-strict uses WordPress "moderation" settings
|
776 |
+
} else {
|
777 |
+
$hook_name = 'moderation';
|
778 |
+
$option_name = 'moderation_keys';
|
779 |
+
}
|
780 |
|
781 |
// Allow for moderation check to be skipped
|
782 |
+
if ( apply_filters( "bbp_bypass_check_for_{$hook_name}", false, $anonymous_data, $author_id, $title, $content, $strict ) ) {
|
783 |
return true;
|
784 |
}
|
785 |
|
795 |
|
796 |
/** Max Links *************************************************************/
|
797 |
|
798 |
+
// Only check max_links when not being strict
|
799 |
+
if ( false === $strict ) {
|
800 |
+
$max_links = get_option( 'comment_max_links' );
|
801 |
+
if ( ! empty( $max_links ) ) {
|
802 |
|
803 |
+
// How many links?
|
804 |
+
$num_links = preg_match_all( '/(http|ftp|https):\/\//i', $content, $match_out );
|
805 |
|
806 |
+
// Allow for bumping the max to include the user's URL
|
807 |
+
if ( ! empty( $_post['url'] ) ) {
|
808 |
+
$num_links = apply_filters( 'comment_max_links_url', $num_links, $_post['url'], $content );
|
809 |
+
}
|
810 |
|
811 |
+
// Das ist zu viele links!
|
812 |
+
if ( $num_links >= $max_links ) {
|
813 |
+
return false;
|
814 |
+
}
|
815 |
}
|
816 |
}
|
817 |
|
824 |
*
|
825 |
* @param string $moderation List of moderation keys. One per new line.
|
826 |
*/
|
827 |
+
$moderation = apply_filters( "bbp_{$hook_name}_keys", trim( get_option( $option_name ) ) );
|
828 |
|
829 |
+
// Bail if no words to look for
|
830 |
if ( empty( $moderation ) ) {
|
831 |
return true;
|
832 |
}
|
883 |
// Do some escaping magic so that '#' chars in the
|
884 |
// spam words don't break things:
|
885 |
$word = preg_quote( $word, '#' );
|
886 |
+
$pattern = "#{$word}#i";
|
887 |
|
888 |
// Loop through post data
|
889 |
foreach ( $_post as $post_data ) {
|
902 |
}
|
903 |
|
904 |
/**
|
905 |
+
* Deprecated. Use bbp_check_for_moderation() with strict flag set.
|
906 |
*
|
907 |
* @since 2.0.0 bbPress (r3446)
|
908 |
+
* @since 2.6.0 bbPress (r6854)
|
909 |
+
* @deprecated 2.6.0 Use bbp_check_for_moderation() with strict flag set
|
|
|
|
|
|
|
|
|
|
|
|
|
910 |
*/
|
911 |
function bbp_check_for_blacklist( $anonymous_data = array(), $author_id = 0, $title = '', $content = '' ) {
|
912 |
+
return bbp_check_for_moderation( $anonymous_data, $author_id, $title, $content, false );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
913 |
}
|
914 |
|
915 |
/** Subscriptions *************************************************************/
|
1001 |
// Get topic subscribers and bail if empty
|
1002 |
$user_ids = bbp_get_subscribers( $topic_id );
|
1003 |
|
|
|
|
|
|
|
|
|
|
|
|
|
1004 |
// Remove the reply author from the list.
|
1005 |
$reply_author_key = array_search( (int) $reply_author, $user_ids, true );
|
1006 |
if ( false !== $reply_author_key ) {
|
1007 |
unset( $user_ids[ $reply_author_key ] );
|
1008 |
}
|
1009 |
|
1010 |
+
// Dedicated filter to manipulate user ID's to send emails to
|
1011 |
+
$user_ids = (array) apply_filters( 'bbp_topic_subscription_user_ids', $user_ids );
|
1012 |
+
|
1013 |
// Bail of the reply author was the only one subscribed.
|
1014 |
if ( empty( $user_ids ) ) {
|
1015 |
return false;
|
1016 |
}
|
1017 |
|
1018 |
+
// Get email addresses, bail if empty
|
1019 |
+
$email_addresses = bbp_get_email_addresses_from_user_ids( $user_ids );
|
1020 |
+
if ( empty( $email_addresses ) ) {
|
1021 |
+
return false;
|
1022 |
+
}
|
1023 |
+
|
1024 |
/** Mail ******************************************************************/
|
1025 |
|
1026 |
// Remove filters from reply content and topic title to prevent content
|
1075 |
// Setup the From header
|
1076 |
$headers = array( 'From: ' . get_bloginfo( 'name' ) . ' <' . $from_email . '>' );
|
1077 |
|
1078 |
+
// Loop through addresses
|
1079 |
+
foreach ( (array) $email_addresses as $address ) {
|
1080 |
+
$headers[] = 'Bcc: ' . $address;
|
1081 |
}
|
1082 |
|
1083 |
/** Send it ***************************************************************/
|
1157 |
// Get topic subscribers and bail if empty
|
1158 |
$user_ids = bbp_get_subscribers( $forum_id );
|
1159 |
|
|
|
|
|
|
|
|
|
|
|
|
|
1160 |
// Remove the topic author from the list.
|
1161 |
$topic_author_key = array_search( (int) $topic_author, $user_ids, true );
|
1162 |
if ( false !== $topic_author_key ) {
|
1163 |
unset( $user_ids[ $topic_author_key ] );
|
1164 |
}
|
1165 |
|
1166 |
+
// Dedicated filter to manipulate user ID's to send emails to
|
1167 |
+
$user_ids = (array) apply_filters( 'bbp_forum_subscription_user_ids', $user_ids );
|
1168 |
+
|
1169 |
+
// Bail of the reply author was the only one subscribed.
|
1170 |
if ( empty( $user_ids ) ) {
|
1171 |
return false;
|
1172 |
}
|
1173 |
|
1174 |
+
// Get email addresses, bail if empty
|
1175 |
+
$email_addresses = bbp_get_email_addresses_from_user_ids( $user_ids );
|
1176 |
+
if ( empty( $email_addresses ) ) {
|
1177 |
+
return false;
|
1178 |
+
}
|
1179 |
+
|
1180 |
/** Mail ******************************************************************/
|
1181 |
|
1182 |
// Remove filters from reply content and topic title to prevent content
|
1231 |
// Setup the From header
|
1232 |
$headers = array( 'From: ' . get_bloginfo( 'name' ) . ' <' . $from_email . '>' );
|
1233 |
|
1234 |
+
// Loop through addresses
|
1235 |
+
foreach ( (array) $email_addresses as $address ) {
|
1236 |
+
$headers[] = 'Bcc: ' . $address;
|
1237 |
}
|
1238 |
|
1239 |
/** Send it ***************************************************************/
|
1280 |
return bbp_notify_topic_subscribers( $reply_id, $topic_id, $forum_id, $anonymous_data, $reply_author );
|
1281 |
}
|
1282 |
|
1283 |
+
/**
|
1284 |
+
* Return an array of user email addresses from an array of user IDs
|
1285 |
+
*
|
1286 |
+
* @since 2.6.0 bbPress (r6722)
|
1287 |
+
*
|
1288 |
+
* @param array $user_ids
|
1289 |
+
* @return array
|
1290 |
+
*/
|
1291 |
+
function bbp_get_email_addresses_from_user_ids( $user_ids = array() ) {
|
1292 |
+
|
1293 |
+
// Default return value
|
1294 |
+
$retval = array();
|
1295 |
+
|
1296 |
+
// Maximum number of users to get per database query
|
1297 |
+
$limit = apply_filters( 'bbp_get_users_chunk_limit', 100 );
|
1298 |
+
|
1299 |
+
// Only do the work if there are user IDs to query for
|
1300 |
+
if ( ! empty( $user_ids ) ) {
|
1301 |
+
|
1302 |
+
// Get total number of sets
|
1303 |
+
$steps = ceil( count( $user_ids ) / $limit );
|
1304 |
+
$range = array_map( 'intval', range( 1, $steps ) );
|
1305 |
+
|
1306 |
+
// Loop through users
|
1307 |
+
foreach ( $range as $loop ) {
|
1308 |
+
|
1309 |
+
// Initial loop has no offset
|
1310 |
+
$offset = ( 1 === $loop )
|
1311 |
+
? 0
|
1312 |
+
: $limit * $loop;
|
1313 |
+
|
1314 |
+
// Calculate user IDs to include
|
1315 |
+
$loop_ids = array_slice( $user_ids, $offset, $limit );
|
1316 |
+
|
1317 |
+
// Skip if something went wrong
|
1318 |
+
if ( empty( $loop_ids ) ) {
|
1319 |
+
continue;
|
1320 |
+
}
|
1321 |
+
|
1322 |
+
// Call get_users() in a way that users are cached
|
1323 |
+
$loop_users = get_users( array(
|
1324 |
+
'blog_id' => 0,
|
1325 |
+
'fields' => 'all_with_meta',
|
1326 |
+
'include' => $loop_ids
|
1327 |
+
) );
|
1328 |
+
|
1329 |
+
// Pluck emails from users
|
1330 |
+
$loop_emails = wp_list_pluck( $loop_users, 'user_email' );
|
1331 |
+
|
1332 |
+
// Clean-up memory, for big user sets
|
1333 |
+
unset( $loop_users );
|
1334 |
+
|
1335 |
+
// Merge users into return value
|
1336 |
+
if ( ! empty( $loop_emails ) ) {
|
1337 |
+
$retval = array_merge( $retval, $loop_emails );
|
1338 |
+
}
|
1339 |
+
}
|
1340 |
+
|
1341 |
+
// No duplicates
|
1342 |
+
$retval = bbp_get_unique_array_values( $retval );
|
1343 |
+
}
|
1344 |
+
|
1345 |
+
// Filter & return
|
1346 |
+
return apply_filters( 'bbp_get_email_addresses_from_user_ids', $retval, $user_ids, $limit );
|
1347 |
+
}
|
1348 |
+
|
1349 |
/** Login *********************************************************************/
|
1350 |
|
1351 |
/**
|
1358 |
function bbp_logout_url( $url = '', $redirect_to = '' ) {
|
1359 |
|
1360 |
// Make sure we are directing somewhere
|
1361 |
+
if ( empty( $redirect_to ) && ! strstr( $url, 'redirect_to' ) ) {
|
1362 |
|
1363 |
// Rejig the $redirect_to
|
1364 |
if ( ! isset( $_SERVER['REDIRECT_URL'] ) || ( $redirect_to !== home_url( $_SERVER['REDIRECT_URL'] ) ) ) {
|
1365 |
+
$redirect_to = isset( $_SERVER['HTTP_REFERER'] )
|
1366 |
+
? $_SERVER['HTTP_REFERER']
|
1367 |
+
: '';
|
1368 |
}
|
1369 |
|
1370 |
+
// Rebuild a basic redirect URL
|
1371 |
+
$redirect_to = bbp_get_url_scheme() . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
|
1372 |
|
1373 |
// Sanitize $redirect_to and add it to full $url
|
1374 |
+
$redirect_to = add_query_arg( array( 'loggedout' => 'true' ), $redirect_to );
|
1375 |
+
$url = add_query_arg( array( 'redirect_to' => urlencode( $redirect_to ) ), $url );
|
1376 |
}
|
1377 |
|
1378 |
// Filter & return
|
1409 |
|
1410 |
// Passively filter the args before the parse
|
1411 |
if ( ! empty( $filter_key ) ) {
|
1412 |
+
$r = apply_filters( "bbp_before_{$filter_key}_parse_args", $r, $args, $defaults );
|
1413 |
}
|
1414 |
|
1415 |
// Parse
|
1419 |
|
1420 |
// Aggressively filter the args after the parse
|
1421 |
if ( ! empty( $filter_key ) ) {
|
1422 |
+
$r = apply_filters( "bbp_after_{$filter_key}_parse_args", $r, $args, $defaults );
|
1423 |
}
|
1424 |
|
1425 |
// Return the parsed results
|
1524 |
return (int) apply_filters( 'bbp_get_public_child_last_id', $child_id, $parent_id, $post_type );
|
1525 |
}
|
1526 |
|
1527 |
+
/**
|
1528 |
+
* Query the database for child counts, grouped by type & status
|
1529 |
+
*
|
1530 |
+
* @since 2.6.0 bbPress (r6826)
|
1531 |
+
*
|
1532 |
+
* @param int $parent_id
|
1533 |
+
*/
|
1534 |
+
function bbp_get_child_counts( $parent_id = 0 ) {
|
1535 |
+
|
1536 |
+
// Create cache key
|
1537 |
+
$parent_id = absint( $parent_id );
|
1538 |
+
$key = md5( serialize( array( 'parent_id' => $parent_id, 'post_type' => bbp_get_post_types() ) ) );
|
1539 |
+
$last_changed = wp_cache_get_last_changed( 'bbpress_posts' );
|
1540 |
+
$cache_key = "bbp_child_counts:{$key}:{$last_changed}";
|
1541 |
+
|
1542 |
+
// Check for cache and set if needed
|
1543 |
+
$retval = wp_cache_get( $cache_key, 'bbpress_posts' );
|
1544 |
+
if ( false === $retval ) {
|
1545 |
+
|
1546 |
+
// Setup the DB & query
|
1547 |
+
$bbp_db = bbp_db();
|
1548 |
+
$sql = "SELECT
|
1549 |
+
p.post_type AS type,
|
1550 |
+
p.post_status AS status,
|
1551 |
+
COUNT( * ) AS count
|
1552 |
+
FROM {$bbp_db->posts} AS p
|
1553 |
+
LEFT JOIN {$bbp_db->postmeta} AS pm
|
1554 |
+
ON p.ID = pm.post_id
|
1555 |
+
AND pm.meta_key = %s
|
1556 |
+
WHERE pm.meta_value = %d
|
1557 |
+
GROUP BY p.post_status, p.post_type";
|
1558 |
+
|
1559 |
+
// Get prepare vars
|
1560 |
+
$post_type = get_post_type( $parent_id );
|
1561 |
+
$meta_key = "_bbp_{$post_type}_id";
|
1562 |
+
|
1563 |
+
// Prepare & get results
|
1564 |
+
$query = $bbp_db->prepare( $sql, $meta_key, $parent_id );
|
1565 |
+
$results = $bbp_db->get_results( $query, ARRAY_A );
|
1566 |
+
|
1567 |
+
// Setup return value
|
1568 |
+
$retval = wp_list_pluck( $results, 'type', 'type' );
|
1569 |
+
$statuses = get_post_stati();
|
1570 |
+
|
1571 |
+
// Loop through results
|
1572 |
+
foreach ( $results as $row ) {
|
1573 |
+
|
1574 |
+
// Setup empties
|
1575 |
+
if ( ! is_array( $retval[ $row['type'] ] ) ) {
|
1576 |
+
$retval[ $row['type'] ] = array_fill_keys( $statuses, 0 );
|
1577 |
+
}
|
1578 |
+
|
1579 |
+
// Set statuses
|
1580 |
+
$retval[ $row['type'] ][ $row['status'] ] = bbp_number_not_negative( $row['count'] );
|
1581 |
+
}
|
1582 |
+
|
1583 |
+
// Always cache the results
|
1584 |
+
wp_cache_set( $cache_key, $retval, 'bbpress_posts' );
|
1585 |
+
}
|
1586 |
+
|
1587 |
+
// Make sure results are INTs
|
1588 |
+
return (array) apply_filters( 'bbp_get_child_counts', $retval, $parent_id );
|
1589 |
+
}
|
1590 |
+
|
1591 |
+
/**
|
1592 |
+
* Filter a list of child counts, from `bbp_get_child_counts()`
|
1593 |
+
*
|
1594 |
+
* @since 2.6.0 bbPress (r6826)
|
1595 |
+
*
|
1596 |
+
* @param int $parent_id ID of post to get child counts from
|
1597 |
+
* @param array $types Optional. An array of post types to filter by
|
1598 |
+
* @param array $statuses Optional. An array of post statuses to filter by
|
1599 |
+
*
|
1600 |
+
* @return array A list of objects or object fields.
|
1601 |
+
*/
|
1602 |
+
function bbp_filter_child_counts_list( $parent_id = 0, $types = array( 'post' ), $statuses = array() ) {
|
1603 |
+
|
1604 |
+
// Setup local vars
|
1605 |
+
$retval = array();
|
1606 |
+
$types = array_flip( (array) $types );
|
1607 |
+
$statuses = array_flip( (array) $statuses );
|
1608 |
+
$counts = bbp_get_child_counts( $parent_id );
|
1609 |
+
|
1610 |
+
// Loop through counts by type
|
1611 |
+
foreach ( $counts as $type => $type_counts ) {
|
1612 |
+
|
1613 |
+
// Skip if not this type
|
1614 |
+
if ( ! isset( $types[ $type ] ) ) {
|
1615 |
+
continue;
|
1616 |
+
}
|
1617 |
+
|
1618 |
+
// Maybe filter statuses
|
1619 |
+
if ( ! empty( $statuses ) ) {
|
1620 |
+
$type_counts = array_intersect_key( $type_counts, $statuses );
|
1621 |
+
}
|
1622 |
+
|
1623 |
+
// Add type counts to return array
|
1624 |
+
$retval[ $type ] = $type_counts;
|
1625 |
+
}
|
1626 |
+
|
1627 |
+
// Filter & return
|
1628 |
+
return (array) apply_filters( 'bbp_filter_child_counts_list', $retval, $parent_id, $types, $statuses );
|
1629 |
+
}
|
1630 |
+
|
1631 |
/**
|
1632 |
* Query the DB and get a count of public children
|
1633 |
*
|
1641 |
function bbp_get_public_child_count( $parent_id = 0, $post_type = 'post' ) {
|
1642 |
|
1643 |
// Bail if nothing passed
|
1644 |
+
if ( empty( $post_type ) ) {
|
1645 |
return false;
|
1646 |
}
|
1647 |
|
1648 |
+
// Which statuses
|
1649 |
+
switch ( $post_type ) {
|
1650 |
|
1651 |
+
// Forum
|
1652 |
+
case bbp_get_forum_post_type() :
|
1653 |
+
$post_status = array( bbp_get_public_status_id() );
|
1654 |
+
break;
|
1655 |
|
1656 |
+
// Topic
|
1657 |
+
case bbp_get_topic_post_type() :
|
1658 |
+
$post_status = bbp_get_public_topic_statuses();
|
1659 |
+
break;
|
|
|
|
|
1660 |
|
1661 |
+
// Reply
|
1662 |
+
case bbp_get_reply_post_type() :
|
1663 |
+
default :
|
1664 |
+
$post_status = bbp_get_public_reply_statuses();
|
1665 |
+
break;
|
1666 |
+
}
|
1667 |
+
|
1668 |
+
// Get counts
|
1669 |
+
$counts = bbp_filter_child_counts_list( $parent_id, $post_type, $post_status );
|
1670 |
+
$child_count = isset( $counts[ $post_type ] )
|
1671 |
+
? bbp_number_not_negative( array_sum( array_values( $counts[ $post_type ] ) ) )
|
1672 |
+
: 0;
|
1673 |
|
1674 |
// Filter & return
|
1675 |
return (int) apply_filters( 'bbp_get_public_child_count', $child_count, $parent_id, $post_type );
|
1676 |
}
|
1677 |
+
/**
|
1678 |
+
* Query the DB and get a count of public children
|
1679 |
+
*
|
1680 |
+
* @since 2.0.0 bbPress (r2868)
|
1681 |
+
* @since 2.6.0 bbPress (r5954) Replace direct queries with WP_Query() objects
|
1682 |
+
*
|
1683 |
+
* @param int $parent_id Parent id.
|
1684 |
+
* @param string $post_type Post type. Defaults to 'post'.
|
1685 |
+
* @return int The number of children
|
1686 |
+
*/
|
1687 |
+
function bbp_get_non_public_child_count( $parent_id = 0, $post_type = 'post' ) {
|
1688 |
+
|
1689 |
+
// Bail if nothing passed
|
1690 |
+
if ( empty( $parent_id ) || empty( $post_type ) ) {
|
1691 |
+
return false;
|
1692 |
+
}
|
1693 |
+
|
1694 |
+
// Which statuses
|
1695 |
+
switch ( $post_type ) {
|
1696 |
+
|
1697 |
+
// Forum
|
1698 |
+
case bbp_get_forum_post_type() :
|
1699 |
+
$post_status = array( bbp_get_private_status_id(), bbp_get_hidden_status_id() );
|
1700 |
+
break;
|
1701 |
+
|
1702 |
+
// Topic
|
1703 |
+
case bbp_get_topic_post_type() :
|
1704 |
+
$post_status = bbp_get_non_public_topic_statuses();
|
1705 |
+
break;
|
1706 |
+
|
1707 |
+
// Reply
|
1708 |
+
case bbp_get_reply_post_type() :
|
1709 |
+
default :
|
1710 |
+
$post_status = bbp_get_non_public_reply_statuses();
|
1711 |
+
break;
|
1712 |
+
}
|
1713 |
+
|
1714 |
+
// Get counts
|
1715 |
+
$counts = bbp_filter_child_counts_list( $parent_id, $post_type, $post_status );
|
1716 |
+
$child_count = isset( $counts[ $post_type ] )
|
1717 |
+
? bbp_number_not_negative( array_sum( array_values( $counts[ $post_type ] ) ) )
|
1718 |
+
: 0;
|
1719 |
+
|
1720 |
+
// Filter & return
|
1721 |
+
return (int) apply_filters( 'bbp_get_non_public_child_count', $child_count, $parent_id, $post_type );
|
1722 |
+
}
|
1723 |
|
1724 |
/**
|
1725 |
* Query the DB and get the child id's of public children
|
1858 |
foreach ( $objects as $object ) {
|
1859 |
$object = get_post( $object );
|
1860 |
|
1861 |
+
// Skip if post ID is empty.
|
1862 |
+
if ( empty( $object->ID ) ) {
|
1863 |
+
continue;
|
1864 |
+
}
|
1865 |
+
|
1866 |
// Meta IDs
|
1867 |
foreach ( $ids as $key ) {
|
1868 |
$post_ids[] = get_post_meta( $object->ID, $key, true );
|
1915 |
// Default value
|
1916 |
$user_ids = array();
|
1917 |
|
1918 |
+
// Get the user IDs (could use wp_list_pluck() if this is ever a bottleneck)
|
1919 |
foreach ( $objects as $object ) {
|
1920 |
+
$object = get_post( $object );
|
1921 |
+
|
1922 |
+
// Skip if post does not have an author ID.
|
1923 |
+
if ( empty( $object->post_author ) ) {
|
1924 |
+
continue;
|
1925 |
+
}
|
1926 |
+
|
1927 |
+
// If post exists, add post author to the array.
|
1928 |
+
$user_ids[] = (int) $object->post_author;
|
1929 |
}
|
1930 |
|
1931 |
// Unique, non-zero values
|
2008 |
}
|
2009 |
|
2010 |
// Build the currently requested URL
|
2011 |
+
$scheme = bbp_get_url_scheme();
|
2012 |
$requested_url = strtolower( $scheme . $request_host . $_SERVER['REQUEST_URI'] );
|
2013 |
|
2014 |
/** Look for match ********************************************************/
|
2025 |
$matched_url = apply_filters( 'bbp_verify_nonce_request_url', $requested_url );
|
2026 |
|
2027 |
// Check the nonce
|
2028 |
+
$result = isset( $_REQUEST[ $query_arg ] )
|
2029 |
+
? wp_verify_nonce( $_REQUEST[ $query_arg ], $action )
|
2030 |
+
: false;
|
2031 |
|
2032 |
// Nonce check failed
|
2033 |
if ( empty( $result ) || empty( $action ) || ( strpos( $matched_url, $home_url ) !== 0 ) ) {
|
2144 |
'feed' => true,
|
2145 |
'post_type' => bbp_get_reply_post_type(),
|
2146 |
'post_parent' => 'any',
|
2147 |
+
'post_status' => bbp_get_public_reply_statuses(),
|
2148 |
'posts_per_page' => bbp_get_replies_per_rss_page(),
|
2149 |
'order' => 'DESC',
|
2150 |
'meta_query' => $meta_query
|
2360 |
: bbp_set_200();
|
2361 |
}
|
2362 |
|
2363 |
+
// Return, maybe overridden
|
2364 |
return $override;
|
2365 |
}
|
2366 |
|
2387 |
// Return, maybe overridden
|
2388 |
return $posts;
|
2389 |
}
|
2390 |
+
|
2391 |
+
/**
|
2392 |
+
* Get scheme for a URL based on is_ssl() results.
|
2393 |
+
*
|
2394 |
+
* @since 2.6.0 bbPress (r6759)
|
2395 |
+
*
|
2396 |
+
* @return string https:// if is_ssl(), otherwise http://
|
2397 |
+
*/
|
2398 |
+
function bbp_get_url_scheme() {
|
2399 |
+
return is_ssl()
|
2400 |
+
? 'https://'
|
2401 |
+
: 'http://';
|
2402 |
+
}
|
2403 |
+
|
2404 |
+
/** Titles ********************************************************************/
|
2405 |
+
|
2406 |
+
/**
|
2407 |
+
* Is a title longer that the maximum title length?
|
2408 |
+
*
|
2409 |
+
* @since 2.6.0 bbPress (r6783)
|
2410 |
+
*
|
2411 |
+
* @param string $title
|
2412 |
+
* @return bool
|
2413 |
+
*/
|
2414 |
+
function bbp_is_title_too_long( $title = '' ) {
|
2415 |
+
$max = bbp_get_title_max_length();
|
2416 |
+
$len = mb_strlen( $title, '8bit' );
|
2417 |
+
$result = ( $len > $max );
|
2418 |
+
|
2419 |
+
// Filter & return
|
2420 |
+
return (bool) apply_filters( 'bbp_is_title_too_long', $result, $title, $max, $len );
|
2421 |
+
}
|
includes/common/shortcodes.php
CHANGED
@@ -442,12 +442,12 @@ class BBP_Shortcodes {
|
|
442 |
|
443 |
$bbp = bbpress();
|
444 |
|
445 |
-
// Reset necessary forum_query attributes for
|
446 |
$bbp->forum_query->query_vars['post_type'] = bbp_get_forum_post_type();
|
447 |
$bbp->forum_query->in_the_loop = true;
|
448 |
$bbp->forum_query->post = get_post( $forum_id );
|
449 |
|
450 |
-
// Reset necessary reply_query attributes for
|
451 |
$bbp->reply_query->query_vars['post_type'] = bbp_get_reply_post_type();
|
452 |
$bbp->reply_query->in_the_loop = true;
|
453 |
$bbp->reply_query->post = get_post( $reply_id );
|
442 |
|
443 |
$bbp = bbpress();
|
444 |
|
445 |
+
// Reset necessary forum_query attributes for reply loop to function
|
446 |
$bbp->forum_query->query_vars['post_type'] = bbp_get_forum_post_type();
|
447 |
$bbp->forum_query->in_the_loop = true;
|
448 |
$bbp->forum_query->post = get_post( $forum_id );
|
449 |
|
450 |
+
// Reset necessary reply_query attributes for reply loop to function
|
451 |
$bbp->reply_query->query_vars['post_type'] = bbp_get_reply_post_type();
|
452 |
$bbp->reply_query->in_the_loop = true;
|
453 |
$bbp->reply_query->post = get_post( $reply_id );
|
includes/common/template.php
CHANGED
@@ -96,7 +96,9 @@ function bbp_is_site_public( $site_id = 0 ) {
|
|
96 |
}
|
97 |
|
98 |
// Get the site visibility setting
|
99 |
-
$public =
|
|
|
|
|
100 |
|
101 |
// Filter & return
|
102 |
return (bool) apply_filters( 'bbp_is_site_public', $public, $site_id );
|
@@ -1252,7 +1254,7 @@ function bbp_redirect_to_field( $redirect_to = '' ) {
|
|
1252 |
// Make sure we are directing somewhere
|
1253 |
if ( empty( $redirect_to ) ) {
|
1254 |
if ( isset( $_SERVER['REQUEST_URI'] ) ) {
|
1255 |
-
$redirect_to = (
|
1256 |
} else {
|
1257 |
$redirect_to = wp_get_referer();
|
1258 |
}
|
@@ -1696,7 +1698,8 @@ function bbp_reply_form_fields() {
|
|
1696 |
|
1697 |
// Show redirect field if not viewing a specific topic
|
1698 |
if ( bbp_is_query_name( 'bbp_single_topic' ) ) :
|
1699 |
-
|
|
|
1700 |
endif;
|
1701 |
endif;
|
1702 |
}
|
@@ -2052,6 +2055,8 @@ function bbp_view_url( $view = false ) {
|
|
2052 |
|
2053 |
// Pretty permalinks
|
2054 |
if ( bbp_use_pretty_urls() ) {
|
|
|
|
|
2055 |
$url = trailingslashit( bbp_get_root_url() . bbp_get_view_slug() ) . $view;
|
2056 |
$url = user_trailingslashit( $url );
|
2057 |
$url = home_url( $url );
|
@@ -2176,7 +2181,7 @@ function bbp_breadcrumb( $args = array() ) {
|
|
2176 |
|
2177 |
// Default to 'Home'
|
2178 |
} else {
|
2179 |
-
$pre_front_text =
|
2180 |
}
|
2181 |
}
|
2182 |
|
@@ -2250,11 +2255,11 @@ function bbp_breadcrumb( $args = array() ) {
|
|
2250 |
}
|
2251 |
|
2252 |
// Implode the results of the tag data
|
2253 |
-
$pre_current_text = sprintf(
|
2254 |
|
2255 |
// Edit Topic Tag
|
2256 |
} elseif ( bbp_is_topic_tag_edit() ) {
|
2257 |
-
$pre_current_text =
|
2258 |
|
2259 |
// Single
|
2260 |
} else {
|
@@ -2304,7 +2309,7 @@ function bbp_breadcrumb( $args = array() ) {
|
|
2304 |
|
2305 |
// Do we want to include a link to home?
|
2306 |
if ( ! empty( $r['include_home'] ) || empty( $r['home_text'] ) ) {
|
2307 |
-
$crumbs[] = '<a href="' .
|
2308 |
}
|
2309 |
|
2310 |
// Do we want to include a link to the forum root?
|
@@ -2365,7 +2370,7 @@ function bbp_breadcrumb( $args = array() ) {
|
|
2365 |
|
2366 |
// Edit topic tag
|
2367 |
} elseif ( bbp_is_topic_tag_edit() ) {
|
2368 |
-
$crumbs[] = '<a href="' . esc_url( get_term_link( bbp_get_topic_tag_id(), bbp_get_topic_tag_tax_id() ) ) . '" class="bbp-breadcrumb-topic-tag">' . sprintf(
|
2369 |
|
2370 |
// Search
|
2371 |
} elseif ( bbp_is_search() && bbp_get_search_terms() ) {
|
96 |
}
|
97 |
|
98 |
// Get the site visibility setting
|
99 |
+
$public = is_multisite()
|
100 |
+
? get_blog_option( $site_id, 'blog_public', 1 )
|
101 |
+
: get_option( 'blog_public', 1 );
|
102 |
|
103 |
// Filter & return
|
104 |
return (bool) apply_filters( 'bbp_is_site_public', $public, $site_id );
|
1254 |
// Make sure we are directing somewhere
|
1255 |
if ( empty( $redirect_to ) ) {
|
1256 |
if ( isset( $_SERVER['REQUEST_URI'] ) ) {
|
1257 |
+
$redirect_to = bbp_get_url_scheme() . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
|
1258 |
} else {
|
1259 |
$redirect_to = wp_get_referer();
|
1260 |
}
|
1698 |
|
1699 |
// Show redirect field if not viewing a specific topic
|
1700 |
if ( bbp_is_query_name( 'bbp_single_topic' ) ) :
|
1701 |
+
$redirect_to = apply_filters( 'bbp_reply_form_redirect_to', get_permalink() );
|
1702 |
+
bbp_redirect_to_field( $redirect_to );
|
1703 |
endif;
|
1704 |
endif;
|
1705 |
}
|
2055 |
|
2056 |
// Pretty permalinks
|
2057 |
if ( bbp_use_pretty_urls() ) {
|
2058 |
+
|
2059 |
+
// Run through home_url()
|
2060 |
$url = trailingslashit( bbp_get_root_url() . bbp_get_view_slug() ) . $view;
|
2061 |
$url = user_trailingslashit( $url );
|
2062 |
$url = home_url( $url );
|
2181 |
|
2182 |
// Default to 'Home'
|
2183 |
} else {
|
2184 |
+
$pre_front_text = esc_html__( 'Home', 'bbpress' );
|
2185 |
}
|
2186 |
}
|
2187 |
|
2255 |
}
|
2256 |
|
2257 |
// Implode the results of the tag data
|
2258 |
+
$pre_current_text = sprintf( esc_html__( 'Topic Tag: %s', 'bbpress' ), implode( ' ', $tag_data ) );
|
2259 |
|
2260 |
// Edit Topic Tag
|
2261 |
} elseif ( bbp_is_topic_tag_edit() ) {
|
2262 |
+
$pre_current_text = esc_html__( 'Edit', 'bbpress' );
|
2263 |
|
2264 |
// Single
|
2265 |
} else {
|
2309 |
|
2310 |
// Do we want to include a link to home?
|
2311 |
if ( ! empty( $r['include_home'] ) || empty( $r['home_text'] ) ) {
|
2312 |
+
$crumbs[] = '<a href="' . esc_url( home_url() ) . '" class="bbp-breadcrumb-home">' . $r['home_text'] . '</a>';
|
2313 |
}
|
2314 |
|
2315 |
// Do we want to include a link to the forum root?
|
2370 |
|
2371 |
// Edit topic tag
|
2372 |
} elseif ( bbp_is_topic_tag_edit() ) {
|
2373 |
+
$crumbs[] = '<a href="' . esc_url( get_term_link( bbp_get_topic_tag_id(), bbp_get_topic_tag_tax_id() ) ) . '" class="bbp-breadcrumb-topic-tag">' . sprintf( esc_html__( 'Topic Tag: %s', 'bbpress' ), bbp_get_topic_tag_name() ) . '</a>';
|
2374 |
|
2375 |
// Search
|
2376 |
} elseif ( bbp_is_search() && bbp_get_search_terms() ) {
|
includes/common/widgets.php
CHANGED
@@ -30,8 +30,9 @@ class BBP_Login_Widget extends WP_Widget {
|
|
30 |
*/
|
31 |
public function __construct() {
|
32 |
$widget_ops = apply_filters( 'bbp_login_widget_options', array(
|
33 |
-
'classname'
|
34 |
-
'description'
|
|
|
35 |
) );
|
36 |
|
37 |
parent::__construct( false, esc_html__( '(bbPress) Login Widget', 'bbpress' ), $widget_ops );
|
@@ -76,12 +77,12 @@ class BBP_Login_Widget extends WP_Widget {
|
|
76 |
if ( ! is_user_logged_in() ) : ?>
|
77 |
|
78 |
<form method="post" action="<?php bbp_wp_login_action( array( 'context' => 'login_post' ) ); ?>" class="bbp-login-form">
|
79 |
-
<fieldset>
|
80 |
<legend><?php esc_html_e( 'Log In', 'bbpress' ); ?></legend>
|
81 |
|
82 |
<div class="bbp-username">
|
83 |
<label for="user_login"><?php esc_html_e( 'Username', 'bbpress' ); ?>: </label>
|
84 |
-
<input type="text" name="log" value="<?php bbp_sanitize_val( 'user_login', 'text' ); ?>" size="20" id="user_login" />
|
85 |
</div>
|
86 |
|
87 |
<div class="bbp-password">
|
@@ -90,13 +91,13 @@ class BBP_Login_Widget extends WP_Widget {
|
|
90 |
</div>
|
91 |
|
92 |
<div class="bbp-remember-me">
|
93 |
-
<input type="checkbox" name="rememberme" value="forever" <?php checked( bbp_get_sanitize_val( 'rememberme', 'checkbox' )
|
94 |
-
<label for="rememberme"><?php esc_html_e( '
|
95 |
</div>
|
96 |
|
97 |
-
|
98 |
|
99 |
-
|
100 |
|
101 |
<button type="submit" name="user-submit" id="user-submit" class="button submit user-submit"><?php esc_html_e( 'Log In', 'bbpress' ); ?></button>
|
102 |
|
@@ -222,8 +223,9 @@ class BBP_Views_Widget extends WP_Widget {
|
|
222 |
*/
|
223 |
public function __construct() {
|
224 |
$widget_ops = apply_filters( 'bbp_views_widget_options', array(
|
225 |
-
'classname'
|
226 |
-
'description'
|
|
|
227 |
) );
|
228 |
|
229 |
parent::__construct( false, esc_html__( '(bbPress) Topic Views List', 'bbpress' ), $widget_ops );
|
@@ -355,8 +357,9 @@ class BBP_Search_Widget extends WP_Widget {
|
|
355 |
*/
|
356 |
public function __construct() {
|
357 |
$widget_ops = apply_filters( 'bbp_search_widget_options', array(
|
358 |
-
'classname'
|
359 |
-
'description'
|
|
|
360 |
) );
|
361 |
|
362 |
parent::__construct( false, esc_html__( '(bbPress) Forum Search Form', 'bbpress' ), $widget_ops );
|
@@ -471,8 +474,9 @@ class BBP_Forums_Widget extends WP_Widget {
|
|
471 |
*/
|
472 |
public function __construct() {
|
473 |
$widget_ops = apply_filters( 'bbp_forums_widget_options', array(
|
474 |
-
'classname'
|
475 |
-
'description'
|
|
|
476 |
) );
|
477 |
|
478 |
parent::__construct( false, esc_html__( '(bbPress) Forums List', 'bbpress' ), $widget_ops );
|
@@ -643,8 +647,9 @@ class BBP_Topics_Widget extends WP_Widget {
|
|
643 |
*/
|
644 |
public function __construct() {
|
645 |
$widget_ops = apply_filters( 'bbp_topics_widget_options', array(
|
646 |
-
'classname'
|
647 |
-
'description'
|
|
|
648 |
) );
|
649 |
|
650 |
parent::__construct( false, esc_html__( '(bbPress) Recent Topics', 'bbpress' ), $widget_ops );
|
@@ -928,8 +933,9 @@ class BBP_Stats_Widget extends WP_Widget {
|
|
928 |
*/
|
929 |
public function __construct() {
|
930 |
$widget_ops = apply_filters( 'bbp_stats_widget_options', array(
|
931 |
-
'classname'
|
932 |
-
'description'
|
|
|
933 |
) );
|
934 |
|
935 |
parent::__construct( false, esc_html__( '(bbPress) Statistics', 'bbpress' ), $widget_ops );
|
@@ -1046,8 +1052,9 @@ class BBP_Replies_Widget extends WP_Widget {
|
|
1046 |
*/
|
1047 |
public function __construct() {
|
1048 |
$widget_ops = apply_filters( 'bbp_replies_widget_options', array(
|
1049 |
-
'classname'
|
1050 |
-
'description'
|
|
|
1051 |
) );
|
1052 |
|
1053 |
parent::__construct( false, esc_html__( '(bbPress) Recent Replies', 'bbpress' ), $widget_ops );
|
@@ -1087,7 +1094,7 @@ class BBP_Replies_Widget extends WP_Widget {
|
|
1087 |
|
1088 |
// What and when
|
1089 |
'post_type' => bbp_get_reply_post_type(),
|
1090 |
-
'post_status' =>
|
1091 |
'posts_per_page' => (int) $settings['max_shown'],
|
1092 |
|
1093 |
// Performance
|
@@ -1121,7 +1128,9 @@ class BBP_Replies_Widget extends WP_Widget {
|
|
1121 |
|
1122 |
// Verify the reply ID
|
1123 |
$reply_id = bbp_get_reply_id( $widget_query->post->ID );
|
1124 |
-
$reply_link = '<a class="bbp-reply-topic-title" href="' . esc_url( bbp_get_reply_url( $reply_id ) ) . '" title="' . esc_attr( bbp_get_reply_excerpt( $reply_id, 50 ) ) . '">' . bbp_get_reply_topic_title( $reply_id ) . '</a>';
|
|
|
|
|
1125 |
|
1126 |
// Only query user if showing them
|
1127 |
if ( ! empty( $settings['show_user'] ) ) :
|
@@ -1134,26 +1143,21 @@ class BBP_Replies_Widget extends WP_Widget {
|
|
1134 |
if ( ! empty( $settings['show_date'] ) && ! empty( $author_link ) ) :
|
1135 |
|
1136 |
// translators: 1: reply author, 2: reply link, 3: reply timestamp
|
1137 |
-
printf( esc_html_x( '%1$s on %2$s %3$s', 'widgets', 'bbpress' ), $author_link, $reply_link,
|
1138 |
|
1139 |
// Reply link and timestamp
|
1140 |
elseif ( ! empty( $settings['show_date'] ) ) :
|
1141 |
-
|
1142 |
-
// translators: 1: reply link, 2: reply timestamp
|
1143 |
-
printf( esc_html_x( '%1$s %2$s', 'widgets', 'bbpress' ), $reply_link, '<div>' . bbp_get_time_since( get_the_time( 'U' ) ) . '</div>' );
|
1144 |
|
1145 |
// Reply author and title
|
1146 |
elseif ( ! empty( $author_link ) ) :
|
1147 |
|
1148 |
// translators: 1: reply author, 2: reply link
|
1149 |
-
printf( esc_html_x( '%1$s on %2$s',
|
1150 |
|
1151 |
// Only the reply title
|
1152 |
else :
|
1153 |
-
|
1154 |
-
// translators: 1: reply link
|
1155 |
-
printf( esc_html_x( '%1$s', 'widgets', 'bbpress' ), $reply_link );
|
1156 |
-
|
1157 |
endif;
|
1158 |
|
1159 |
?>
|
30 |
*/
|
31 |
public function __construct() {
|
32 |
$widget_ops = apply_filters( 'bbp_login_widget_options', array(
|
33 |
+
'classname' => 'bbp_widget_login',
|
34 |
+
'description' => esc_html__( 'A simple login form with optional links to sign-up and lost password pages.', 'bbpress' ),
|
35 |
+
'customize_selective_refresh' => true
|
36 |
) );
|
37 |
|
38 |
parent::__construct( false, esc_html__( '(bbPress) Login Widget', 'bbpress' ), $widget_ops );
|
77 |
if ( ! is_user_logged_in() ) : ?>
|
78 |
|
79 |
<form method="post" action="<?php bbp_wp_login_action( array( 'context' => 'login_post' ) ); ?>" class="bbp-login-form">
|
80 |
+
<fieldset class="bbp-form">
|
81 |
<legend><?php esc_html_e( 'Log In', 'bbpress' ); ?></legend>
|
82 |
|
83 |
<div class="bbp-username">
|
84 |
<label for="user_login"><?php esc_html_e( 'Username', 'bbpress' ); ?>: </label>
|
85 |
+
<input type="text" name="log" value="<?php bbp_sanitize_val( 'user_login', 'text' ); ?>" size="20" maxlength="100" id="user_login" autocomplete="off" />
|
86 |
</div>
|
87 |
|
88 |
<div class="bbp-password">
|
91 |
</div>
|
92 |
|
93 |
<div class="bbp-remember-me">
|
94 |
+
<input type="checkbox" name="rememberme" value="forever" <?php checked( bbp_get_sanitize_val( 'rememberme', 'checkbox' ) ); ?> id="rememberme" />
|
95 |
+
<label for="rememberme"><?php esc_html_e( 'Keep me signed in', 'bbpress' ); ?></label>
|
96 |
</div>
|
97 |
|
98 |
+
<?php do_action( 'login_form' ); ?>
|
99 |
|
100 |
+
<div class="bbp-submit-wrapper">
|
101 |
|
102 |
<button type="submit" name="user-submit" id="user-submit" class="button submit user-submit"><?php esc_html_e( 'Log In', 'bbpress' ); ?></button>
|
103 |
|
223 |
*/
|
224 |
public function __construct() {
|
225 |
$widget_ops = apply_filters( 'bbp_views_widget_options', array(
|
226 |
+
'classname' => 'widget_display_views',
|
227 |
+
'description' => esc_html__( 'A list of registered optional topic views.', 'bbpress' ),
|
228 |
+
'customize_selective_refresh' => true
|
229 |
) );
|
230 |
|
231 |
parent::__construct( false, esc_html__( '(bbPress) Topic Views List', 'bbpress' ), $widget_ops );
|
357 |
*/
|
358 |
public function __construct() {
|
359 |
$widget_ops = apply_filters( 'bbp_search_widget_options', array(
|
360 |
+
'classname' => 'widget_display_search',
|
361 |
+
'description' => esc_html__( 'The bbPress forum search form.', 'bbpress' ),
|
362 |
+
'customize_selective_refresh' => true
|
363 |
) );
|
364 |
|
365 |
parent::__construct( false, esc_html__( '(bbPress) Forum Search Form', 'bbpress' ), $widget_ops );
|
474 |
*/
|
475 |
public function __construct() {
|
476 |
$widget_ops = apply_filters( 'bbp_forums_widget_options', array(
|
477 |
+
'classname' => 'widget_display_forums',
|
478 |
+
'description' => esc_html__( 'A list of forums with an option to set the parent.', 'bbpress' ),
|
479 |
+
'customize_selective_refresh' => true
|
480 |
) );
|
481 |
|
482 |
parent::__construct( false, esc_html__( '(bbPress) Forums List', 'bbpress' ), $widget_ops );
|
647 |
*/
|
648 |
public function __construct() {
|
649 |
$widget_ops = apply_filters( 'bbp_topics_widget_options', array(
|
650 |
+
'classname' => 'widget_display_topics',
|
651 |
+
'description' => esc_html__( 'A list of recent topics, sorted by: newness, popularity, or recent replies.', 'bbpress' ),
|
652 |
+
'customize_selective_refresh' => true
|
653 |
) );
|
654 |
|
655 |
parent::__construct( false, esc_html__( '(bbPress) Recent Topics', 'bbpress' ), $widget_ops );
|
933 |
*/
|
934 |
public function __construct() {
|
935 |
$widget_ops = apply_filters( 'bbp_stats_widget_options', array(
|
936 |
+
'classname' => 'widget_display_stats',
|
937 |
+
'description' => esc_html__( 'Some statistics from your forum.', 'bbpress' ),
|
938 |
+
'customize_selective_refresh' => true
|
939 |
) );
|
940 |
|
941 |
parent::__construct( false, esc_html__( '(bbPress) Statistics', 'bbpress' ), $widget_ops );
|
1052 |
*/
|
1053 |
public function __construct() {
|
1054 |
$widget_ops = apply_filters( 'bbp_replies_widget_options', array(
|
1055 |
+
'classname' => 'widget_display_replies',
|
1056 |
+
'description' => esc_html__( 'A list of the most recent replies.', 'bbpress' ),
|
1057 |
+
'customize_selective_refresh' => true
|
1058 |
) );
|
1059 |
|
1060 |
parent::__construct( false, esc_html__( '(bbPress) Recent Replies', 'bbpress' ), $widget_ops );
|
1094 |
|
1095 |
// What and when
|
1096 |
'post_type' => bbp_get_reply_post_type(),
|
1097 |
+
'post_status' => bbp_get_public_reply_statuses(),
|
1098 |
'posts_per_page' => (int) $settings['max_shown'],
|
1099 |
|
1100 |
// Performance
|
1128 |
|
1129 |
// Verify the reply ID
|
1130 |
$reply_id = bbp_get_reply_id( $widget_query->post->ID );
|
1131 |
+
$reply_link = '<a class="bbp-reply-topic-title" href="' . esc_url( bbp_get_reply_url( $reply_id ) ) . '" title="' . esc_attr( bbp_get_reply_excerpt( $reply_id, 50 ) ) . '">' . esc_html( bbp_get_reply_topic_title( $reply_id ) ) . '</a>';
|
1132 |
+
$time = get_the_time( 'U', $reply_id );
|
1133 |
+
$show_date = '<time datetime="' . gmdate( 'Y-m-d H:i:s', $time ) . '">' . esc_html( bbp_get_time_since( $time ) ) . '</time>';
|
1134 |
|
1135 |
// Only query user if showing them
|
1136 |
if ( ! empty( $settings['show_user'] ) ) :
|
1143 |
if ( ! empty( $settings['show_date'] ) && ! empty( $author_link ) ) :
|
1144 |
|
1145 |
// translators: 1: reply author, 2: reply link, 3: reply timestamp
|
1146 |
+
printf( esc_html_x( '%1$s on %2$s %3$s', 'widgets', 'bbpress' ), $author_link, $reply_link, $show_date );
|
1147 |
|
1148 |
// Reply link and timestamp
|
1149 |
elseif ( ! empty( $settings['show_date'] ) ) :
|
1150 |
+
echo $reply_link . ' ' . $show_date;
|
|
|
|
|
1151 |
|
1152 |
// Reply author and title
|
1153 |
elseif ( ! empty( $author_link ) ) :
|
1154 |
|
1155 |
// translators: 1: reply author, 2: reply link
|
1156 |
+
printf( esc_html_x( '%1$s on %2$s', 'widgets', 'bbpress' ), $author_link, $reply_link );
|
1157 |
|
1158 |
// Only the reply title
|
1159 |
else :
|
1160 |
+
echo $reply_link;
|
|
|
|
|
|
|
1161 |
endif;
|
1162 |
|
1163 |
?>
|
includes/core/abstraction.php
CHANGED
@@ -59,9 +59,11 @@ function bbp_setup_converter() {
|
|
59 |
// Skip if already setup
|
60 |
if ( empty( $bbp_admin->converter ) ) {
|
61 |
|
62 |
-
// Require the converter
|
63 |
-
require_once $bbp_admin->admin_dir . '
|
64 |
require_once $bbp_admin->admin_dir . 'classes/class-bbp-converter.php';
|
|
|
|
|
65 |
|
66 |
// Setup
|
67 |
$bbp_admin->converter = class_exists( 'BBP_Converter' )
|
@@ -73,6 +75,8 @@ function bbp_setup_converter() {
|
|
73 |
return $bbp_admin->converter;
|
74 |
}
|
75 |
|
|
|
|
|
76 |
/**
|
77 |
* Lookup and return a global variable
|
78 |
*
|
@@ -144,6 +148,8 @@ function bbp_db() {
|
|
144 |
return bbp_get_global_object( 'wpdb', 'WPDB' );
|
145 |
}
|
146 |
|
|
|
|
|
147 |
/**
|
148 |
* Return the rewrite rules class being used to interact with URLs.
|
149 |
*
|
@@ -301,6 +307,8 @@ function bbp_get_major_wp_version() {
|
|
301 |
return (float) $wp_version;
|
302 |
}
|
303 |
|
|
|
|
|
304 |
/**
|
305 |
* Is this a large bbPress installation?
|
306 |
*
|
@@ -333,3 +341,119 @@ function bbp_get_total_users() {
|
|
333 |
// Filter & return
|
334 |
return (int) apply_filters( 'bbp_get_total_users', (int) $count );
|
335 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
59 |
// Skip if already setup
|
60 |
if ( empty( $bbp_admin->converter ) ) {
|
61 |
|
62 |
+
// Require the converter files
|
63 |
+
require_once $bbp_admin->admin_dir . 'tools/converter.php';
|
64 |
require_once $bbp_admin->admin_dir . 'classes/class-bbp-converter.php';
|
65 |
+
require_once $bbp_admin->admin_dir . 'classes/class-bbp-converter-db.php';
|
66 |
+
require_once $bbp_admin->admin_dir . 'classes/class-bbp-converter-base.php';
|
67 |
|
68 |
// Setup
|
69 |
$bbp_admin->converter = class_exists( 'BBP_Converter' )
|
75 |
return $bbp_admin->converter;
|
76 |
}
|
77 |
|
78 |
+
/** Globals *******************************************************************/
|
79 |
+
|
80 |
/**
|
81 |
* Lookup and return a global variable
|
82 |
*
|
148 |
return bbp_get_global_object( 'wpdb', 'WPDB' );
|
149 |
}
|
150 |
|
151 |
+
/** Pagination ****************************************************************/
|
152 |
+
|
153 |
/**
|
154 |
* Return the rewrite rules class being used to interact with URLs.
|
155 |
*
|
307 |
return (float) $wp_version;
|
308 |
}
|
309 |
|
310 |
+
/** Multisite *****************************************************************/
|
311 |
+
|
312 |
/**
|
313 |
* Is this a large bbPress installation?
|
314 |
*
|
341 |
// Filter & return
|
342 |
return (int) apply_filters( 'bbp_get_total_users', (int) $count );
|
343 |
}
|
344 |
+
|
345 |
+
/**
|
346 |
+
* Switch to a site in a multisite installation.
|
347 |
+
*
|
348 |
+
* If not a multisite installation, no switching will occur.
|
349 |
+
*
|
350 |
+
* @since 2.6.0 bbPress (r6733)
|
351 |
+
*
|
352 |
+
* @param int $site_id
|
353 |
+
*/
|
354 |
+
function bbp_switch_to_site( $site_id = 0 ) {
|
355 |
+
|
356 |
+
// Switch to a specific site
|
357 |
+
if ( is_multisite() ) {
|
358 |
+
switch_to_blog( $site_id );
|
359 |
+
}
|
360 |
+
}
|
361 |
+
|
362 |
+
/**
|
363 |
+
* Switch back to the original site in a multisite installation.
|
364 |
+
*
|
365 |
+
* If not a multisite installation, no switching will occur.
|
366 |
+
*
|
367 |
+
* @since 2.6.0 bbPress (r6733)
|
368 |
+
*/
|
369 |
+
function bbp_restore_current_site() {
|
370 |
+
|
371 |
+
// Switch back to the original site
|
372 |
+
if ( is_multisite() ) {
|
373 |
+
restore_current_blog();
|
374 |
+
}
|
375 |
+
}
|
376 |
+
|
377 |
+
/** Interception **************************************************************/
|
378 |
+
|
379 |
+
/**
|
380 |
+
* Generate a default intercept value.
|
381 |
+
*
|
382 |
+
* @since 2.6.0
|
383 |
+
*
|
384 |
+
* @staticvar mixed $rand Null by default, random string on first call
|
385 |
+
*
|
386 |
+
* @return string
|
387 |
+
*/
|
388 |
+
function bbp_default_intercept() {
|
389 |
+
static $rand = null;
|
390 |
+
|
391 |
+
// Generate a new random and unique string
|
392 |
+
if ( null === $rand ) {
|
393 |
+
|
394 |
+
// If ext/hash is not present, compat.php's hash_hmac() does not support sha256.
|
395 |
+
$algo = function_exists( 'hash' )
|
396 |
+
? 'sha256'
|
397 |
+
: 'sha1';
|
398 |
+
|
399 |
+
// Old WP installs may not have AUTH_SALT defined.
|
400 |
+
$salt = defined( 'AUTH_SALT' ) && AUTH_SALT
|
401 |
+
? AUTH_SALT
|
402 |
+
: (string) wp_rand();
|
403 |
+
|
404 |
+
// Create unique ID
|
405 |
+
$rand = hash_hmac( $algo, uniqid( $salt, true ), $salt );
|
406 |
+
}
|
407 |
+
|
408 |
+
// Return random string (from locally static variable)
|
409 |
+
return $rand;
|
410 |
+
}
|
411 |
+
|
412 |
+
/**
|
413 |
+
* Whether a value has been intercepted
|
414 |
+
*
|
415 |
+
* @since 2.6.0
|
416 |
+
*
|
417 |
+
* @param bool $value
|
418 |
+
*/
|
419 |
+
function bbp_is_intercepted( $value = '' ) {
|
420 |
+
return ( bbp_default_intercept() !== $value );
|
421 |
+
}
|
422 |
+
|
423 |
+
/**
|
424 |
+
* Allow interception of a method or function call.
|
425 |
+
*
|
426 |
+
* @since 2.6.0
|
427 |
+
*
|
428 |
+
* @param string $action Typically the name of the caller function
|
429 |
+
* @param array $args Typically the results of caller function func_get_args()
|
430 |
+
*
|
431 |
+
* @return mixed Intercept results. Default bbp_default_intercept().
|
432 |
+
*/
|
433 |
+
function bbp_maybe_intercept( $action = '', $args = array() ) {
|
434 |
+
|
435 |
+
// Backwards compatibility juggle
|
436 |
+
$hook = ( false === strpos( $action, 'pre_' ) )
|
437 |
+
? "pre_{$action}"
|
438 |
+
: $action;
|
439 |
+
|
440 |
+
// Default value
|
441 |
+
$default = bbp_default_intercept();
|
442 |
+
|
443 |
+
// Parse args
|
444 |
+
$r = bbp_parse_args( (array) $args, array(), 'maybe_intercept' );
|
445 |
+
|
446 |
+
// Bail if no args
|
447 |
+
if ( empty( $r ) ) {
|
448 |
+
return $default;
|
449 |
+
}
|
450 |
+
|
451 |
+
// Filter
|
452 |
+
$args = array_merge( array( $hook ), $r );
|
453 |
+
$filtered = call_user_func_array( 'apply_filters', $args );
|
454 |
+
|
455 |
+
// Return filtered value, or default if not intercepted
|
456 |
+
return ( $filtered === reset( $r ) )
|
457 |
+
? $default
|
458 |
+
: $filtered;
|
459 |
+
}
|
includes/core/actions.php
CHANGED
@@ -53,6 +53,7 @@ add_action( 'wp_roles_init', 'bbp_roles_init', 10 );
|
|
53 |
add_action( 'wp_enqueue_scripts', 'bbp_enqueue_scripts', 10 );
|
54 |
add_action( 'wp_head', 'bbp_head', 10 );
|
55 |
add_action( 'wp_footer', 'bbp_footer', 10 );
|
|
|
56 |
|
57 |
/**
|
58 |
* bbp_loaded - Attached to 'plugins_loaded' above
|
@@ -149,19 +150,17 @@ add_action( 'bbp_widgets_init', array( 'BBP_Topics_Widget', 'register_widget' )
|
|
149 |
add_action( 'bbp_widgets_init', array( 'BBP_Replies_Widget', 'register_widget' ), 10 );
|
150 |
add_action( 'bbp_widgets_init', array( 'BBP_Stats_Widget', 'register_widget' ), 10 );
|
151 |
|
152 |
-
// Notices
|
153 |
-
add_action( '
|
154 |
-
add_action( '
|
155 |
-
add_action( 'bbp_template_notices', '
|
|
|
|
|
|
|
156 |
|
157 |
// Always exclude private/hidden forums if needed
|
158 |
add_action( 'pre_get_posts', 'bbp_pre_get_posts_normalize_forum_visibility', 4 );
|
159 |
|
160 |
-
// Profile Page Messages
|
161 |
-
add_action( 'bbp_template_notices', 'bbp_notice_edit_user_success' );
|
162 |
-
add_action( 'bbp_template_notices', 'bbp_notice_edit_user_pending_email' );
|
163 |
-
add_action( 'bbp_template_notices', 'bbp_notice_edit_user_is_super_admin', 2 );
|
164 |
-
|
165 |
// Before Delete/Trash/Untrash Forum
|
166 |
add_action( 'wp_trash_post', 'bbp_trash_forum' );
|
167 |
add_action( 'trash_post', 'bbp_trash_forum' );
|
@@ -437,5 +436,3 @@ add_action( 'bbp_get_request', 'bbp_search_results_redirect', 10 );
|
|
437 |
|
438 |
// Maybe convert the users password
|
439 |
add_action( 'bbp_login_form_login', 'bbp_user_maybe_convert_pass' );
|
440 |
-
|
441 |
-
add_action( 'bbp_activation', 'bbp_add_activation_redirect' );
|
53 |
add_action( 'wp_enqueue_scripts', 'bbp_enqueue_scripts', 10 );
|
54 |
add_action( 'wp_head', 'bbp_head', 10 );
|
55 |
add_action( 'wp_footer', 'bbp_footer', 10 );
|
56 |
+
add_action( 'transition_post_status', 'bbp_transition_post_status', 10, 3 );
|
57 |
|
58 |
/**
|
59 |
* bbp_loaded - Attached to 'plugins_loaded' above
|
150 |
add_action( 'bbp_widgets_init', array( 'BBP_Replies_Widget', 'register_widget' ), 10 );
|
151 |
add_action( 'bbp_widgets_init', array( 'BBP_Stats_Widget', 'register_widget' ), 10 );
|
152 |
|
153 |
+
// Notices
|
154 |
+
add_action( 'bbp_template_notices', 'bbp_template_notices', 20 );
|
155 |
+
add_action( 'bbp_template_notices', 'bbp_login_notices' );
|
156 |
+
add_action( 'bbp_template_notices', 'bbp_topic_notices' );
|
157 |
+
add_action( 'bbp_template_notices', 'bbp_notice_edit_user_success' );
|
158 |
+
add_action( 'bbp_template_notices', 'bbp_notice_edit_user_pending_email' );
|
159 |
+
add_action( 'bbp_template_notices', 'bbp_notice_edit_user_is_super_admin', 2 );
|
160 |
|
161 |
// Always exclude private/hidden forums if needed
|
162 |
add_action( 'pre_get_posts', 'bbp_pre_get_posts_normalize_forum_visibility', 4 );
|
163 |
|
|
|
|
|
|
|
|
|
|
|
164 |
// Before Delete/Trash/Untrash Forum
|
165 |
add_action( 'wp_trash_post', 'bbp_trash_forum' );
|
166 |
add_action( 'trash_post', 'bbp_trash_forum' );
|
436 |
|
437 |
// Maybe convert the users password
|
438 |
add_action( 'bbp_login_form_login', 'bbp_user_maybe_convert_pass' );
|
|
|
|
includes/core/capabilities.php
CHANGED
@@ -325,8 +325,8 @@ function bbp_filter_user_roles_option() {
|
|
325 |
* Also note that if using the $wp_user_roles global non-database approach,
|
326 |
* bbPress does not have an intercept point to add its dynamic roles.
|
327 |
*
|
328 |
-
* @see
|
329 |
-
* @see
|
330 |
* @see WP_Roles::_init()
|
331 |
*
|
332 |
* @since 2.2.0 bbPress (r4363)
|
@@ -498,7 +498,7 @@ function bbp_get_blocked_role() {
|
|
498 |
* @deprecated 2.2.0 bbPress (r4164)
|
499 |
*/
|
500 |
function bbp_add_roles() {
|
501 |
-
_doing_it_wrong( 'bbp_add_roles',
|
502 |
}
|
503 |
|
504 |
/**
|
325 |
* Also note that if using the $wp_user_roles global non-database approach,
|
326 |
* bbPress does not have an intercept point to add its dynamic roles.
|
327 |
*
|
328 |
+
* @see bbp_switch_to_site()
|
329 |
+
* @see bbp_restore_current_site()
|
330 |
* @see WP_Roles::_init()
|
331 |
*
|
332 |
* @since 2.2.0 bbPress (r4363)
|
498 |
* @deprecated 2.2.0 bbPress (r4164)
|
499 |
*/
|
500 |
function bbp_add_roles() {
|
501 |
+
_doing_it_wrong( 'bbp_add_roles', esc_html__( 'Editable forum roles no longer exist.', 'bbpress' ), '2.2' );
|
502 |
}
|
503 |
|
504 |
/**
|
includes/core/filters.php
CHANGED
@@ -235,20 +235,34 @@ add_filter( 'bbp_get_forum_topic_count_hidden', 'bbp_number_format', 10 );
|
|
235 |
add_filter( 'bbp_get_topic_reply_count_hidden', 'bbp_number_format', 10 );
|
236 |
|
237 |
// Add number-not-negative filter to values that can never be negative numbers
|
238 |
-
add_filter( '
|
239 |
-
add_filter( '
|
240 |
-
add_filter( '
|
241 |
-
add_filter( '
|
242 |
-
add_filter( '
|
243 |
-
add_filter( '
|
244 |
-
add_filter( '
|
245 |
-
add_filter( '
|
246 |
-
add_filter( '
|
247 |
-
add_filter( '
|
248 |
-
add_filter( '
|
249 |
-
add_filter( '
|
250 |
-
add_filter( '
|
251 |
-
add_filter( '
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
252 |
|
253 |
// Sanitize displayed user data
|
254 |
add_filter( 'bbp_get_displayed_user_field', 'bbp_sanitize_displayed_user_field', 10, 3 );
|
235 |
add_filter( 'bbp_get_topic_reply_count_hidden', 'bbp_number_format', 10 );
|
236 |
|
237 |
// Add number-not-negative filter to values that can never be negative numbers
|
238 |
+
add_filter( 'bbp_get_user_topic_count', 'bbp_number_not_negative', 8 );
|
239 |
+
add_filter( 'bbp_get_user_reply_count', 'bbp_number_not_negative', 8 );
|
240 |
+
add_filter( 'bbp_get_user_post_count', 'bbp_number_not_negative', 8 );
|
241 |
+
add_filter( 'bbp_get_forum_subforum_count', 'bbp_number_not_negative', 8 );
|
242 |
+
add_filter( 'bbp_get_forum_topic_count', 'bbp_number_not_negative', 8 );
|
243 |
+
add_filter( 'bbp_get_forum_reply_count', 'bbp_number_not_negative', 8 );
|
244 |
+
add_filter( 'bbp_get_forum_post_count', 'bbp_number_not_negative', 8 );
|
245 |
+
add_filter( 'bbp_get_topic_voice_count', 'bbp_number_not_negative', 8 );
|
246 |
+
add_filter( 'bbp_get_topic_reply_count', 'bbp_number_not_negative', 8 );
|
247 |
+
add_filter( 'bbp_get_topic_post_count', 'bbp_number_not_negative', 8 );
|
248 |
+
add_filter( 'bbp_get_forum_topic_count_hidden', 'bbp_number_not_negative', 8 );
|
249 |
+
add_filter( 'bbp_get_topic_reply_count_hidden', 'bbp_number_not_negative', 8 );
|
250 |
+
add_filter( 'bbp_get_topic_revision_count', 'bbp_number_not_negative', 8 );
|
251 |
+
add_filter( 'bbp_get_reply_revision_count', 'bbp_number_not_negative', 8 );
|
252 |
+
add_filter( 'bbp_get_user_topic_count_int', 'bbp_number_not_negative', 8 );
|
253 |
+
add_filter( 'bbp_get_user_reply_count_int', 'bbp_number_not_negative', 8 );
|
254 |
+
add_filter( 'bbp_get_user_post_count_int', 'bbp_number_not_negative', 8 );
|
255 |
+
add_filter( 'bbp_get_forum_subforum_count_int', 'bbp_number_not_negative', 8 );
|
256 |
+
add_filter( 'bbp_get_forum_topic_count_int', 'bbp_number_not_negative', 8 );
|
257 |
+
add_filter( 'bbp_get_forum_reply_count_int', 'bbp_number_not_negative', 8 );
|
258 |
+
add_filter( 'bbp_get_forum_post_count_int', 'bbp_number_not_negative', 8 );
|
259 |
+
add_filter( 'bbp_get_topic_voice_count_int', 'bbp_number_not_negative', 8 );
|
260 |
+
add_filter( 'bbp_get_topic_reply_count_int', 'bbp_number_not_negative', 8 );
|
261 |
+
add_filter( 'bbp_get_topic_post_count_int', 'bbp_number_not_negative', 8 );
|
262 |
+
add_filter( 'bbp_get_forum_topic_count_hidden_int', 'bbp_number_not_negative', 8 );
|
263 |
+
add_filter( 'bbp_get_topic_reply_count_hidden_int', 'bbp_number_not_negative', 8 );
|
264 |
+
add_filter( 'bbp_get_topic_revision_count_int', 'bbp_number_not_negative', 8 );
|
265 |
+
add_filter( 'bbp_get_reply_revision_count_int', 'bbp_number_not_negative', 8 );
|
266 |
|
267 |
// Sanitize displayed user data
|
268 |
add_filter( 'bbp_get_displayed_user_field', 'bbp_sanitize_displayed_user_field', 10, 3 );
|
includes/core/options.php
CHANGED
@@ -20,127 +20,137 @@ defined( 'ABSPATH' ) || exit;
|
|
20 |
* @return array Filtered option names and values
|
21 |
*/
|
22 |
function bbp_get_default_options() {
|
|
|
23 |
|
24 |
-
//
|
25 |
-
|
26 |
|
27 |
-
|
28 |
-
|
|
|
|
|
|
|
29 |
|
30 |
-
|
|
|
31 |
|
32 |
-
|
33 |
-
'_bbp_db_upgrade_skipped' => 0, // Database upgrade skipped
|
34 |
|
35 |
-
|
36 |
|
37 |
-
|
38 |
-
'_bbp_enable_subscriptions' => 1, // Enable subscriptions
|
39 |
-
'_bbp_enable_engagements' => 1, // Enable engagements
|
40 |
-
'_bbp_allow_content_edit' => 1, // Allow content edit
|
41 |
-
'_bbp_allow_content_throttle' => 1, // Allow content throttle
|
42 |
-
'_bbp_allow_revisions' => 1, // Allow revisions
|
43 |
-
'_bbp_allow_topic_tags' => 1, // Allow topic tagging
|
44 |
-
'_bbp_allow_search' => 1, // Allow forum-wide search
|
45 |
-
'_bbp_allow_forum_mods' => 1, // Allow per-forum moderation
|
46 |
-
'_bbp_allow_global_access' => 1, // Allow users from all sites to post
|
47 |
-
'_bbp_allow_anonymous' => 0, // Allow anonymous posting
|
48 |
-
'_bbp_allow_super_mods' => 0, // Allow mods to edit users
|
49 |
-
'_bbp_allow_threaded_replies' => 0, // Allow threaded replies
|
50 |
-
'_bbp_use_wp_editor' => 1, // Use the WordPress editor if available
|
51 |
-
'_bbp_use_autoembed' => 0, // Use oEmbed in topics and replies
|
52 |
|
53 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
54 |
|
55 |
-
|
56 |
-
'_bbp_edit_lock' => 5, // Lock post editing after 5 minutes
|
57 |
-
'_bbp_throttle_time' => 10, // Throttle post time to 10 seconds
|
58 |
-
'_bbp_thread_replies_depth' => 2, // Thread replies depth
|
59 |
-
'_bbp_theme_package_id' => 'default', // The ID for the current theme package
|
60 |
-
'_bbp_settings_integration' => 'basic', // How to integrate into wp-admin
|
61 |
|
62 |
-
|
|
|
|
|
|
|
|
|
|
|
63 |
|
64 |
-
|
65 |
-
'_bbp_replies_per_page' => 15, // Replies per page
|
66 |
-
'_bbp_forums_per_page' => 50, // Forums per page
|
67 |
-
'_bbp_topics_per_rss_page' => 25, // Topics per RSS page
|
68 |
-
'_bbp_replies_per_rss_page' => 25, // Replies per RSS page
|
69 |
|
70 |
-
|
|
|
|
|
|
|
|
|
71 |
|
72 |
-
|
73 |
-
'_bbp_page_for_topics' => 0, // Page for forums
|
74 |
-
'_bbp_page_for_login' => 0, // Page for login
|
75 |
-
'_bbp_page_for_register' => 0, // Page for register
|
76 |
-
'_bbp_page_for_lost_pass' => 0, // Page for lost-pass
|
77 |
|
78 |
-
|
|
|
|
|
|
|
|
|
79 |
|
80 |
-
|
81 |
-
'_bbp_show_on_root' => 'forums', // What to show on root (forums|topics)
|
82 |
-
'_bbp_include_root' => 1, // Include forum-archive before single slugs
|
83 |
|
84 |
-
|
|
|
|
|
85 |
|
86 |
-
|
87 |
-
'_bbp_topic_slug' => 'topic', // Topic slug
|
88 |
-
'_bbp_reply_slug' => 'reply', // Reply slug
|
89 |
-
'_bbp_topic_tag_slug' => 'topic-tag', // Topic tag slug
|
90 |
|
91 |
-
|
|
|
|
|
|
|
92 |
|
93 |
-
|
94 |
-
'_bbp_user_engs_slug' => 'engagements', // User engagements slug
|
95 |
-
'_bbp_user_favs_slug' => 'favorites', // User favorites slug
|
96 |
-
'_bbp_user_subs_slug' => 'subscriptions', // User subscriptions slug
|
97 |
-
'_bbp_topic_archive_slug' => 'topics', // Topic archive slug
|
98 |
-
'_bbp_reply_archive_slug' => 'replies', // Reply archive slug
|
99 |
|
100 |
-
|
|
|
|
|
|
|
|
|
|
|
101 |
|
102 |
-
|
103 |
-
'_bbp_search_slug' => 'search', // Search slug
|
104 |
|
105 |
-
|
|
|
106 |
|
107 |
-
|
108 |
-
'_bbp_super_sticky_topics' => '', // Super stickies
|
109 |
|
110 |
-
|
|
|
111 |
|
112 |
-
|
113 |
-
'_bbp_hidden_forums' => '', // Hidden forums
|
114 |
|
115 |
-
|
|
|
116 |
|
117 |
-
|
118 |
-
'_bbp_group_forums_root_id' => 0, // Group Forums parent forum id
|
119 |
|
120 |
-
|
|
|
121 |
|
122 |
-
|
123 |
|
124 |
-
|
125 |
|
126 |
-
|
127 |
-
'_bbp_converter_db_user' => '', // Database User
|
128 |
-
'_bbp_converter_db_pass' => '', // Database Password
|
129 |
-
'_bbp_converter_db_name' => '', // Database Name
|
130 |
-
'_bbp_converter_db_port' => 3306, // Database Port
|
131 |
-
'_bbp_converter_db_server' => 'localhost', // Database Server/IP
|
132 |
-
'_bbp_converter_db_prefix' => '', // Database table prefix
|
133 |
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
144 |
}
|
145 |
|
146 |
/**
|
@@ -262,10 +272,11 @@ function bbp_pre_load_options() {
|
|
262 |
return;
|
263 |
}
|
264 |
|
265 |
-
//
|
266 |
-
$strategy
|
267 |
-
|
268 |
-
|
|
|
269 |
}
|
270 |
|
271 |
// Get variables
|
20 |
* @return array Filtered option names and values
|
21 |
*/
|
22 |
function bbp_get_default_options() {
|
23 |
+
static $options = null;
|
24 |
|
25 |
+
// Store these to avoid recreating them
|
26 |
+
if ( is_null( $options ) ) {
|
27 |
|
28 |
+
// Use the participant role for the default-default role
|
29 |
+
$role = bbp_get_participant_role();
|
30 |
+
$options = array(
|
31 |
+
|
32 |
+
/** DB Version ********************************************************/
|
33 |
|
34 |
+
'_bbp_db_version' => 0, // Database version
|
35 |
+
'_bbp_db_upgrade_skipped' => 0, // Database upgrade skipped
|
36 |
|
37 |
+
/** Flags *************************************************************/
|
|
|
38 |
|
39 |
+
'_bbp_flag_initial_content' => 1, // Flag to indicate initial content was created
|
40 |
|
41 |
+
/** Features **********************************************************/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
42 |
|
43 |
+
'_bbp_enable_favorites' => 1, // Enable favorites
|
44 |
+
'_bbp_enable_subscriptions' => 1, // Enable subscriptions
|
45 |
+
'_bbp_enable_engagements' => 1, // Enable engagements
|
46 |
+
'_bbp_allow_content_edit' => 1, // Allow content edit
|
47 |
+
'_bbp_allow_content_throttle' => 1, // Allow content throttle
|
48 |
+
'_bbp_allow_revisions' => 1, // Allow revisions
|
49 |
+
'_bbp_allow_topic_tags' => 1, // Allow topic tagging
|
50 |
+
'_bbp_allow_search' => 1, // Allow forum-wide search
|
51 |
+
'_bbp_allow_forum_mods' => 1, // Allow per-forum moderation
|
52 |
+
'_bbp_allow_global_access' => 1, // Allow users from all sites to post
|
53 |
+
'_bbp_allow_anonymous' => 0, // Allow anonymous posting
|
54 |
+
'_bbp_allow_super_mods' => 0, // Allow mods to edit users
|
55 |
+
'_bbp_allow_threaded_replies' => 0, // Allow threaded replies
|
56 |
+
'_bbp_use_wp_editor' => 1, // Use the WordPress editor if available
|
57 |
+
'_bbp_use_autoembed' => 0, // Use oEmbed in topics and replies
|
58 |
|
59 |
+
/** Settings **********************************************************/
|
|
|
|
|
|
|
|
|
|
|
60 |
|
61 |
+
'_bbp_default_role' => $role, // Default forums role
|
62 |
+
'_bbp_edit_lock' => 5, // Lock post editing after 5 minutes
|
63 |
+
'_bbp_throttle_time' => 10, // Throttle post time to 10 seconds
|
64 |
+
'_bbp_thread_replies_depth' => 2, // Thread replies depth
|
65 |
+
'_bbp_theme_package_id' => 'default', // The ID for the current theme package
|
66 |
+
'_bbp_settings_integration' => 'basic', // How to integrate into wp-admin
|
67 |
|
68 |
+
/** Per Page **********************************************************/
|
|
|
|
|
|
|
|
|
69 |
|
70 |
+
'_bbp_topics_per_page' => 15, // Topics per page
|
71 |
+
'_bbp_replies_per_page' => 15, // Replies per page
|
72 |
+
'_bbp_forums_per_page' => 50, // Forums per page
|
73 |
+
'_bbp_topics_per_rss_page' => 25, // Topics per RSS page
|
74 |
+
'_bbp_replies_per_rss_page' => 25, // Replies per RSS page
|
75 |
|
76 |
+
/** Page For **********************************************************/
|
|
|
|
|
|
|
|
|
77 |
|
78 |
+
'_bbp_page_for_forums' => 0, // Page for forums
|
79 |
+
'_bbp_page_for_topics' => 0, // Page for forums
|
80 |
+
'_bbp_page_for_login' => 0, // Page for login
|
81 |
+
'_bbp_page_for_register' => 0, // Page for register
|
82 |
+
'_bbp_page_for_lost_pass' => 0, // Page for lost-pass
|
83 |
|
84 |
+
/** Forum Root ********************************************************/
|
|
|
|
|
85 |
|
86 |
+
'_bbp_root_slug' => 'forums', // Forum archive slug
|
87 |
+
'_bbp_show_on_root' => 'forums', // What to show on root (forums|topics)
|
88 |
+
'_bbp_include_root' => 1, // Include forum-archive before single slugs
|
89 |
|
90 |
+
/** Single Slugs ******************************************************/
|
|
|
|
|
|
|
91 |
|
92 |
+
'_bbp_forum_slug' => 'forum', // Forum slug
|
93 |
+
'_bbp_topic_slug' => 'topic', // Topic slug
|
94 |
+
'_bbp_reply_slug' => 'reply', // Reply slug
|
95 |
+
'_bbp_topic_tag_slug' => 'topic-tag', // Topic tag slug
|
96 |
|
97 |
+
/** User Slugs ********************************************************/
|
|
|
|
|
|
|
|
|
|
|
98 |
|
99 |
+
'_bbp_user_slug' => 'users', // User profile slug
|
100 |
+
'_bbp_user_engs_slug' => 'engagements', // User engagements slug
|
101 |
+
'_bbp_user_favs_slug' => 'favorites', // User favorites slug
|
102 |
+
'_bbp_user_subs_slug' => 'subscriptions', // User subscriptions slug
|
103 |
+
'_bbp_topic_archive_slug' => 'topics', // Topic archive slug
|
104 |
+
'_bbp_reply_archive_slug' => 'replies', // Reply archive slug
|
105 |
|
106 |
+
/** Other Slugs *******************************************************/
|
|
|
107 |
|
108 |
+
'_bbp_view_slug' => 'view', // View slug
|
109 |
+
'_bbp_search_slug' => 'search', // Search slug
|
110 |
|
111 |
+
/** Topics ************************************************************/
|
|
|
112 |
|
113 |
+
'_bbp_title_max_length' => 80, // Title Max Length
|
114 |
+
'_bbp_super_sticky_topics' => '', // Super stickies
|
115 |
|
116 |
+
/** Forums ************************************************************/
|
|
|
117 |
|
118 |
+
'_bbp_private_forums' => '', // Private forums
|
119 |
+
'_bbp_hidden_forums' => '', // Hidden forums
|
120 |
|
121 |
+
/** BuddyPress ********************************************************/
|
|
|
122 |
|
123 |
+
'_bbp_enable_group_forums' => 1, // Enable BuddyPress Group Extension
|
124 |
+
'_bbp_group_forums_root_id' => 0, // Group Forums parent forum id
|
125 |
|
126 |
+
/** Akismet ***********************************************************/
|
127 |
|
128 |
+
'_bbp_enable_akismet' => 1, // Users from all sites can post
|
129 |
|
130 |
+
/** Converter *********************************************************/
|
|
|
|
|
|
|
|
|
|
|
|
|
131 |
|
132 |
+
// Connection
|
133 |
+
'_bbp_converter_db_user' => '', // Database User
|
134 |
+
'_bbp_converter_db_pass' => '', // Database Password
|
135 |
+
'_bbp_converter_db_name' => '', // Database Name
|
136 |
+
'_bbp_converter_db_port' => 3306, // Database Port
|
137 |
+
'_bbp_converter_db_server' => 'localhost', // Database Server/IP
|
138 |
+
'_bbp_converter_db_prefix' => '', // Database table prefix
|
139 |
+
|
140 |
+
// Options
|
141 |
+
'_bbp_converter_rows' => 100, // Number of rows to query
|
142 |
+
'_bbp_converter_delay_time' => 2, // Seconds to wait between queries
|
143 |
+
'_bbp_converter_step' => false, // Current converter step
|
144 |
+
'_bbp_converter_start' => false, // Step to start at
|
145 |
+
'_bbp_converter_convert_users' => false, // Whether to convert users
|
146 |
+
'_bbp_converter_halt' => false, // Halt on errors
|
147 |
+
'_bbp_converter_platform' => false, // Which platform to use
|
148 |
+
'_bbp_converter_query' => false // Last query
|
149 |
+
);
|
150 |
+
}
|
151 |
+
|
152 |
+
// Filter & return
|
153 |
+
return (array) apply_filters( 'bbp_get_default_options', $options );
|
154 |
}
|
155 |
|
156 |
/**
|
272 |
return;
|
273 |
}
|
274 |
|
275 |
+
// Maybe intercept
|
276 |
+
$strategy = apply_filters( 'bbp_pre_load_options_strategy', 'notoptions' );
|
277 |
+
$intercept = bbp_maybe_intercept( __FUNCTION__, $strategy );
|
278 |
+
if ( bbp_is_intercepted( $intercept ) ) {
|
279 |
+
return $intercept;
|
280 |
}
|
281 |
|
282 |
// Get variables
|
includes/core/sub-actions.php
CHANGED
@@ -256,6 +256,31 @@ function bbp_login_form_login() {
|
|
256 |
do_action( 'bbp_login_form_login' );
|
257 |
}
|
258 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
259 |
/** User Actions **************************************************************/
|
260 |
|
261 |
/**
|
@@ -353,6 +378,11 @@ function bbp_post_request() {
|
|
353 |
// Sanitize the POST action
|
354 |
$action = sanitize_key( $_POST['action'] );
|
355 |
|
|
|
|
|
|
|
|
|
|
|
356 |
// This dynamic action is probably the one you want to use. It narrows down
|
357 |
// the scope of the 'action' without needing to check it in your function.
|
358 |
do_action( 'bbp_post_request_' . $action );
|
@@ -381,6 +411,11 @@ function bbp_get_request() {
|
|
381 |
// Sanitize the GET action
|
382 |
$action = sanitize_key( $_GET['action'] );
|
383 |
|
|
|
|
|
|
|
|
|
|
|
384 |
// This dynamic action is probably the one you want to use. It narrows down
|
385 |
// the scope of the 'action' without needing to check it in your function.
|
386 |
do_action( 'bbp_get_request_' . $action );
|
256 |
do_action( 'bbp_login_form_login' );
|
257 |
}
|
258 |
|
259 |
+
|
260 |
+
/**
|
261 |
+
* Add the bbPress-specific post status transition action
|
262 |
+
*
|
263 |
+
* @since 2.6.0 bbPress (r6792)
|
264 |
+
*
|
265 |
+
* @param string $new_status New post status
|
266 |
+
* @param string $old_status Old post status
|
267 |
+
* @param WP_Post $post Post object
|
268 |
+
*/
|
269 |
+
function bbp_transition_post_status( $new_status = '', $old_status = '', $post = false ) {
|
270 |
+
|
271 |
+
// Get bbPress post types
|
272 |
+
$post_type = get_post_type( $post );
|
273 |
+
$types = bbp_get_post_types();
|
274 |
+
|
275 |
+
// Bail if post is not a bbPress post type
|
276 |
+
if ( ! in_array( $post_type, $types, true ) ) {
|
277 |
+
return;
|
278 |
+
}
|
279 |
+
|
280 |
+
// Do the action
|
281 |
+
do_action( 'bbp_transition_post_status', $new_status, $old_status, $post );
|
282 |
+
}
|
283 |
+
|
284 |
/** User Actions **************************************************************/
|
285 |
|
286 |
/**
|
378 |
// Sanitize the POST action
|
379 |
$action = sanitize_key( $_POST['action'] );
|
380 |
|
381 |
+
// Bail if action was totally invalid
|
382 |
+
if ( empty( $action ) ) {
|
383 |
+
return;
|
384 |
+
}
|
385 |
+
|
386 |
// This dynamic action is probably the one you want to use. It narrows down
|
387 |
// the scope of the 'action' without needing to check it in your function.
|
388 |
do_action( 'bbp_post_request_' . $action );
|
411 |
// Sanitize the GET action
|
412 |
$action = sanitize_key( $_GET['action'] );
|
413 |
|
414 |
+
// Bail if action was totally invalid
|
415 |
+
if ( empty( $action ) ) {
|
416 |
+
return;
|
417 |
+
}
|
418 |
+
|
419 |
// This dynamic action is probably the one you want to use. It narrows down
|
420 |
// the scope of the 'action' without needing to check it in your function.
|
421 |
do_action( 'bbp_get_request_' . $action );
|
includes/core/template-functions.php
CHANGED
@@ -112,7 +112,6 @@ function bbp_locate_template( $template_names, $load = false, $require_once = tr
|
|
112 |
* Registers the style if file provided (does NOT overwrite) and enqueues.
|
113 |
*
|
114 |
* @since 2.5.0 bbPress (r5180)
|
115 |
-
* @since 2.6.0 bbPress (r6640) Bail early if not a bbPress page/shortcode
|
116 |
*
|
117 |
* @param string $handle Name of the stylesheet.
|
118 |
* @param string|bool $file Relative path to stylesheet. Example: '/css/mystyle.css'.
|
@@ -128,11 +127,6 @@ function bbp_locate_template( $template_names, $load = false, $require_once = tr
|
|
128 |
*/
|
129 |
function bbp_enqueue_style( $handle = '', $file = '', $deps = array(), $ver = false, $media = 'all' ) {
|
130 |
|
131 |
-
// Bail if not on a bbPress page or shortcode
|
132 |
-
if ( ! is_bbpress() ) {
|
133 |
-
return;
|
134 |
-
}
|
135 |
-
|
136 |
// No file found yet
|
137 |
$located = false;
|
138 |
|
@@ -190,7 +184,6 @@ function bbp_enqueue_style( $handle = '', $file = '', $deps = array(), $ver = fa
|
|
190 |
* Registers the style if file provided (does NOT overwrite) and enqueues.
|
191 |
*
|
192 |
* @since 2.5.0 bbPress (r5180)
|
193 |
-
* @since 2.6.0 bbPress (r6640) Bail early if not a bbPress page/shortcode
|
194 |
*
|
195 |
* @param string $handle Name of the script.
|
196 |
* @param string|bool $file Relative path to the script. Example: '/js/myscript.js'.
|
@@ -205,11 +198,6 @@ function bbp_enqueue_style( $handle = '', $file = '', $deps = array(), $ver = fa
|
|
205 |
*/
|
206 |
function bbp_enqueue_script( $handle = '', $file = '', $deps = array(), $ver = false, $in_footer = false ) {
|
207 |
|
208 |
-
// Bail if not on a bbPress page or shortcode
|
209 |
-
if ( ! is_bbpress() ) {
|
210 |
-
return;
|
211 |
-
}
|
212 |
-
|
213 |
// No file found yet
|
214 |
$located = false;
|
215 |
|
112 |
* Registers the style if file provided (does NOT overwrite) and enqueues.
|
113 |
*
|
114 |
* @since 2.5.0 bbPress (r5180)
|
|
|
115 |
*
|
116 |
* @param string $handle Name of the stylesheet.
|
117 |
* @param string|bool $file Relative path to stylesheet. Example: '/css/mystyle.css'.
|
127 |
*/
|
128 |
function bbp_enqueue_style( $handle = '', $file = '', $deps = array(), $ver = false, $media = 'all' ) {
|
129 |
|
|
|
|
|
|
|
|
|
|
|
130 |
// No file found yet
|
131 |
$located = false;
|
132 |
|
184 |
* Registers the style if file provided (does NOT overwrite) and enqueues.
|
185 |
*
|
186 |
* @since 2.5.0 bbPress (r5180)
|
|
|
187 |
*
|
188 |
* @param string $handle Name of the script.
|
189 |
* @param string|bool $file Relative path to the script. Example: '/js/myscript.js'.
|
198 |
*/
|
199 |
function bbp_enqueue_script( $handle = '', $file = '', $deps = array(), $ver = false, $in_footer = false ) {
|
200 |
|
|
|
|
|
|
|
|
|
|
|
201 |
// No file found yet
|
202 |
$located = false;
|
203 |
|
includes/core/theme-compat.php
CHANGED
@@ -691,7 +691,7 @@ function bbp_template_include_theme_compat( $template = '' ) {
|
|
691 |
// Reset post
|
692 |
bbp_theme_compat_reset_post( array(
|
693 |
'ID' => 0,
|
694 |
-
'post_title' =>
|
695 |
'post_author' => 0,
|
696 |
'post_date' => 0,
|
697 |
'post_content' => $bbp_shortcodes->display_reply_index(),
|
@@ -791,7 +791,7 @@ function bbp_template_include_theme_compat( $template = '' ) {
|
|
791 |
'post_date' => 0,
|
792 |
'post_content' => $new_content,
|
793 |
'post_type' => '',
|
794 |
-
'post_title' => sprintf(
|
795 |
'post_status' => bbp_get_public_status_id(),
|
796 |
'is_tax' => true,
|
797 |
'is_archive' => true,
|
@@ -1010,21 +1010,17 @@ function bbp_restore_all_filters( $tag, $priority = false ) {
|
|
1010 |
* @param int $post_id ID of the post to check
|
1011 |
* @return bool True if open, false if closed
|
1012 |
*/
|
1013 |
-
function bbp_force_comment_status( $open, $post_id = 0 ) {
|
1014 |
-
|
1015 |
-
// Get the post type of the post ID
|
1016 |
-
$post_type = get_post_type( $post_id );
|
1017 |
|
1018 |
// Default return value is what is passed in $open
|
1019 |
$retval = (bool) $open;
|
1020 |
|
|
|
|
|
|
|
1021 |
// Only force for bbPress post types
|
1022 |
-
|
1023 |
-
|
1024 |
-
case bbp_get_topic_post_type() :
|
1025 |
-
case bbp_get_reply_post_type() :
|
1026 |
-
$retval = false;
|
1027 |
-
break;
|
1028 |
}
|
1029 |
|
1030 |
// Filter & return
|
691 |
// Reset post
|
692 |
bbp_theme_compat_reset_post( array(
|
693 |
'ID' => 0,
|
694 |
+
'post_title' => esc_html__( 'Replies', 'bbpress' ),
|
695 |
'post_author' => 0,
|
696 |
'post_date' => 0,
|
697 |
'post_content' => $bbp_shortcodes->display_reply_index(),
|
791 |
'post_date' => 0,
|
792 |
'post_content' => $new_content,
|
793 |
'post_type' => '',
|
794 |
+
'post_title' => sprintf( esc_html__( 'Topic Tag: %s', 'bbpress' ), '<span>' . bbp_get_topic_tag_name() . '</span>' ),
|
795 |
'post_status' => bbp_get_public_status_id(),
|
796 |
'is_tax' => true,
|
797 |
'is_archive' => true,
|
1010 |
* @param int $post_id ID of the post to check
|
1011 |
* @return bool True if open, false if closed
|
1012 |
*/
|
1013 |
+
function bbp_force_comment_status( $open = false, $post_id = 0 ) {
|
|
|
|
|
|
|
1014 |
|
1015 |
// Default return value is what is passed in $open
|
1016 |
$retval = (bool) $open;
|
1017 |
|
1018 |
+
// Get the post type of the post ID
|
1019 |
+
$post_type = get_post_type( $post_id );
|
1020 |
+
|
1021 |
// Only force for bbPress post types
|
1022 |
+
if ( in_array( $post_type, bbp_get_post_types(), true ) ) {
|
1023 |
+
$retval = false;
|
|
|
|
|
|
|
|
|
1024 |
}
|
1025 |
|
1026 |
// Filter & return
|
includes/core/update.php
CHANGED
@@ -163,6 +163,30 @@ function bbp_setup_updater() {
|
|
163 |
bbp_version_updater();
|
164 |
}
|
165 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
166 |
/**
|
167 |
* Create a default forum, topic, and reply
|
168 |
*
|
@@ -172,23 +196,23 @@ function bbp_setup_updater() {
|
|
172 |
*/
|
173 |
function bbp_create_initial_content( $args = array() ) {
|
174 |
|
175 |
-
//
|
176 |
-
$user_id =
|
177 |
|
178 |
// Parse arguments against default values
|
179 |
$r = bbp_parse_args( $args, array(
|
180 |
'forum_author' => $user_id,
|
181 |
'forum_parent' => 0,
|
182 |
'forum_status' => 'publish',
|
183 |
-
'forum_title' =>
|
184 |
-
'forum_content' =>
|
185 |
|
186 |
'topic_author' => $user_id,
|
187 |
-
'topic_title' =>
|
188 |
-
'topic_content' =>
|
189 |
|
190 |
'reply_author' => $user_id,
|
191 |
-
'reply_content' =>
|
192 |
), 'create_initial_content' );
|
193 |
|
194 |
// Use the same time for each post
|
@@ -372,8 +396,41 @@ function bbp_add_activation_redirect() {
|
|
372 |
return;
|
373 |
}
|
374 |
|
375 |
-
// Add the
|
376 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
377 |
}
|
378 |
|
379 |
/**
|
@@ -389,12 +446,22 @@ function bbp_add_activation_redirect() {
|
|
389 |
*/
|
390 |
function bbp_make_current_user_keymaster() {
|
391 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
392 |
// Bail if the current user can't activate plugins since previous pageload
|
393 |
if ( ! current_user_can( 'activate_plugins' ) ) {
|
394 |
return;
|
395 |
}
|
396 |
|
397 |
-
// Cannot use bbp_get_current_user_id()
|
398 |
$user_id = get_current_user_id();
|
399 |
|
400 |
// Get the current blog ID, to know if they should be promoted here
|
163 |
bbp_version_updater();
|
164 |
}
|
165 |
|
166 |
+
/**
|
167 |
+
* Runs when a new site is created in a multisite network, and bbPress is active
|
168 |
+
* on that site (hooked to `bbp_new_site`)
|
169 |
+
*
|
170 |
+
* @since 2.6.0 bbPress (r6779)
|
171 |
+
*/
|
172 |
+
function bbp_setup_new_site( $site_id = 0 ) {
|
173 |
+
|
174 |
+
// Look for initial content
|
175 |
+
$created = is_multisite()
|
176 |
+
? get_blog_option( $site_id, '_bbp_flag_initial_content', false )
|
177 |
+
: get_option( '_bbp_flag_initial_content', false );
|
178 |
+
|
179 |
+
// Maybe create the initial content
|
180 |
+
if ( ! empty( $created ) ) {
|
181 |
+
bbp_create_initial_content();
|
182 |
+
|
183 |
+
// Flag initial content as created
|
184 |
+
is_multisite()
|
185 |
+
? update_blog_option( $site_id, '_bbp_flag_initial_content', true )
|
186 |
+
: update_option( '_bbp_flag_initial_content', true );
|
187 |
+
}
|
188 |
+
}
|
189 |
+
|
190 |
/**
|
191 |
* Create a default forum, topic, and reply
|
192 |
*
|
196 |
*/
|
197 |
function bbp_create_initial_content( $args = array() ) {
|
198 |
|
199 |
+
// Cannot use bbp_get_current_user_id() during activation process
|
200 |
+
$user_id = get_current_user_id();
|
201 |
|
202 |
// Parse arguments against default values
|
203 |
$r = bbp_parse_args( $args, array(
|
204 |
'forum_author' => $user_id,
|
205 |
'forum_parent' => 0,
|
206 |
'forum_status' => 'publish',
|
207 |
+
'forum_title' => esc_html__( 'General', 'bbpress' ),
|
208 |
+
'forum_content' => esc_html__( 'General Discussion', 'bbpress' ),
|
209 |
|
210 |
'topic_author' => $user_id,
|
211 |
+
'topic_title' => esc_html__( 'Hello World!', 'bbpress' ),
|
212 |
+
'topic_content' => esc_html__( 'This is the very first topic in these forums.', 'bbpress' ),
|
213 |
|
214 |
'reply_author' => $user_id,
|
215 |
+
'reply_content' => esc_html__( 'And this is the very first reply.', 'bbpress' ),
|
216 |
), 'create_initial_content' );
|
217 |
|
218 |
// Use the same time for each post
|
396 |
return;
|
397 |
}
|
398 |
|
399 |
+
// Add the redirect trigger
|
400 |
+
update_user_option( get_current_user_id(), '_bbp_activation_redirect', true );
|
401 |
+
}
|
402 |
+
|
403 |
+
/**
|
404 |
+
* Redirect user to "What's New" page on activation
|
405 |
+
*
|
406 |
+
* @since 2.2.0 bbPress (r4389)
|
407 |
+
*
|
408 |
+
* @internal Used internally to redirect bbPress to the about page on activation
|
409 |
+
*
|
410 |
+
* @return If no transient, or in network admin, or is bulk activation
|
411 |
+
*/
|
412 |
+
function bbp_do_activation_redirect() {
|
413 |
+
|
414 |
+
// Bail if no redirect trigger
|
415 |
+
if ( ! get_user_option( '_bbp_activation_redirect' ) ) {
|
416 |
+
return;
|
417 |
+
}
|
418 |
+
|
419 |
+
// Delete the redirect trigger
|
420 |
+
delete_user_option( get_current_user_id(), '_bbp_activation_redirect' );
|
421 |
+
|
422 |
+
// Bail if activating from network, or bulk
|
423 |
+
if ( is_network_admin() || isset( $_GET['activate-multi'] ) ) {
|
424 |
+
return;
|
425 |
+
}
|
426 |
+
|
427 |
+
// Bail if the current user cannot see the about page
|
428 |
+
if ( ! current_user_can( 'bbp_about_page' ) ) {
|
429 |
+
return;
|
430 |
+
}
|
431 |
+
|
432 |
+
// Redirect to bbPress about page
|
433 |
+
bbp_redirect( add_query_arg( array( 'page' => 'bbp-about' ), admin_url( 'index.php' ) ) );
|
434 |
}
|
435 |
|
436 |
/**
|
446 |
*/
|
447 |
function bbp_make_current_user_keymaster() {
|
448 |
|
449 |
+
// Catch all, to prevent premature user initialization
|
450 |
+
if ( ! did_action( 'set_current_user' ) ) {
|
451 |
+
return;
|
452 |
+
}
|
453 |
+
|
454 |
+
// Bail if not logged in or already a member of this site
|
455 |
+
if ( ! is_user_logged_in() ) {
|
456 |
+
return;
|
457 |
+
}
|
458 |
+
|
459 |
// Bail if the current user can't activate plugins since previous pageload
|
460 |
if ( ! current_user_can( 'activate_plugins' ) ) {
|
461 |
return;
|
462 |
}
|
463 |
|
464 |
+
// Cannot use bbp_get_current_user_id() during activation process
|
465 |
$user_id = get_current_user_id();
|
466 |
|
467 |
// Get the current blog ID, to know if they should be promoted here
|
includes/extend/akismet.php
CHANGED
@@ -406,7 +406,7 @@ class BBP_Akismet {
|
|
406 |
// Keys to ignore
|
407 |
$ignore = array( 'HTTP_COOKIE', 'HTTP_COOKIE2', 'PHP_AUTH_PW' );
|
408 |
|
409 |
-
// Loop through _SERVER args and remove
|
410 |
foreach ( $_SERVER as $key => $value ) {
|
411 |
|
412 |
// Key should not be ignored
|
@@ -508,9 +508,6 @@ class BBP_Akismet {
|
|
508 |
|
509 |
// If post_status is the spam status, which isn't expected, leave a note
|
510 |
if ( bbp_get_spam_status_id() === $_post->post_status ) {
|
511 |
-
|
512 |
-
// @todo Use wp_blacklist_check()
|
513 |
-
|
514 |
$this->update_post_history( $post_id, sprintf( esc_html__( 'Post status was changed to %s', 'bbpress' ), $_post->post_status ), 'status-changed-' . $_post->post_status );
|
515 |
}
|
516 |
|
@@ -680,7 +677,8 @@ class BBP_Akismet {
|
|
680 |
*
|
681 |
* @since 2.3.0 bbPress (r4812)
|
682 |
*
|
683 |
-
* @param
|
|
|
684 |
* @return boolean
|
685 |
*/
|
686 |
private function get_user_roles( $user_id = 0 ) {
|
406 |
// Keys to ignore
|
407 |
$ignore = array( 'HTTP_COOKIE', 'HTTP_COOKIE2', 'PHP_AUTH_PW' );
|
408 |
|
409 |
+
// Loop through _SERVER args and remove allowed keys
|
410 |
foreach ( $_SERVER as $key => $value ) {
|
411 |
|
412 |
// Key should not be ignored
|
508 |
|
509 |
// If post_status is the spam status, which isn't expected, leave a note
|
510 |
if ( bbp_get_spam_status_id() === $_post->post_status ) {
|
|
|
|
|
|
|
511 |
$this->update_post_history( $post_id, sprintf( esc_html__( 'Post status was changed to %s', 'bbpress' ), $_post->post_status ), 'status-changed-' . $_post->post_status );
|
512 |
}
|
513 |
|
677 |
*
|
678 |
* @since 2.3.0 bbPress (r4812)
|
679 |
*
|
680 |
+
* @param int $user_id
|
681 |
+
*
|
682 |
* @return boolean
|
683 |
*/
|
684 |
private function get_user_roles( $user_id = 0 ) {
|
includes/extend/buddypress/activity.php
CHANGED
@@ -242,8 +242,9 @@ class BBP_BuddyPress_Activity {
|
|
242 |
*
|
243 |
* @since 2.0.0 bbPress (r3395)
|
244 |
*
|
245 |
-
* @param
|
246 |
-
*
|
|
|
247 |
*/
|
248 |
private function record_activity( $args = array() ) {
|
249 |
|
@@ -271,8 +272,9 @@ class BBP_BuddyPress_Activity {
|
|
271 |
*
|
272 |
* @since 2.0.0 bbPress (r3395)
|
273 |
*
|
274 |
-
* @param
|
275 |
-
*
|
|
|
276 |
*/
|
277 |
public function delete_activity( $args = array() ) {
|
278 |
|
@@ -333,7 +335,7 @@ class BBP_BuddyPress_Activity {
|
|
333 |
}
|
334 |
|
335 |
// Check if blog & forum activity stream commenting is off
|
336 |
-
if ( (
|
337 |
|
338 |
// Get the current action name
|
339 |
$action_name = bp_get_activity_action_name();
|
242 |
*
|
243 |
* @since 2.0.0 bbPress (r3395)
|
244 |
*
|
245 |
+
* @param array $args Array of arguments for bp_activity_add()
|
246 |
+
*
|
247 |
+
* @return int Activity ID if successful, false if not
|
248 |
*/
|
249 |
private function record_activity( $args = array() ) {
|
250 |
|
272 |
*
|
273 |
* @since 2.0.0 bbPress (r3395)
|
274 |
*
|
275 |
+
* @param array $args Array of arguments for bp_activity_add()
|
276 |
+
*
|
277 |
+
* @return int Activity ID if successful, false if not
|
278 |
*/
|
279 |
public function delete_activity( $args = array() ) {
|
280 |
|
335 |
}
|
336 |
|
337 |
// Check if blog & forum activity stream commenting is off
|
338 |
+
if ( ! empty( $activities_template->disable_blogforum_replies ) ) {
|
339 |
|
340 |
// Get the current action name
|
341 |
$action_name = bp_get_activity_action_name();
|
includes/extend/buddypress/functions.php
CHANGED
@@ -370,8 +370,9 @@ function bbp_maybe_create_group_forum_root() {
|
|
370 |
/**
|
371 |
* Get forum ID's for a group
|
372 |
*
|
373 |
-
* @param type $group_id
|
374 |
* @since 2.1.0 bbPress (r3653)
|
|
|
|
|
375 |
*/
|
376 |
function bbp_get_group_forum_ids( $group_id = 0 ) {
|
377 |
|
@@ -398,8 +399,9 @@ function bbp_get_group_forum_ids( $group_id = 0 ) {
|
|
398 |
/**
|
399 |
* Get group ID's for a forum
|
400 |
*
|
401 |
-
* @param type $forum_id
|
402 |
* @since 2.1.0 bbPress (r3653)
|
|
|
|
|
403 |
*/
|
404 |
function bbp_get_forum_group_ids( $forum_id = 0 ) {
|
405 |
|
@@ -426,8 +428,9 @@ function bbp_get_forum_group_ids( $forum_id = 0 ) {
|
|
426 |
/**
|
427 |
* Get forum ID's for a group
|
428 |
*
|
429 |
-
* @param type $group_id
|
430 |
* @since 2.1.0 bbPress (r3653)
|
|
|
|
|
431 |
*/
|
432 |
function bbp_update_group_forum_ids( $group_id = 0, $forum_ids = array() ) {
|
433 |
|
@@ -446,8 +449,9 @@ function bbp_update_group_forum_ids( $group_id = 0, $forum_ids = array() ) {
|
|
446 |
/**
|
447 |
* Update group ID's for a forum
|
448 |
*
|
449 |
-
* @param type $forum_id
|
450 |
* @since 2.1.0 bbPress (r3653)
|
|
|
|
|
451 |
*/
|
452 |
function bbp_update_forum_group_ids( $forum_id = 0, $group_ids = array() ) {
|
453 |
$forum_id = bbp_get_forum_id( $forum_id );
|
@@ -462,8 +466,9 @@ function bbp_update_forum_group_ids( $forum_id = 0, $group_ids = array() ) {
|
|
462 |
/**
|
463 |
* Add a group to a forum
|
464 |
*
|
465 |
-
* @param type $group_id
|
466 |
* @since 2.1.0 bbPress (r3653)
|
|
|
|
|
467 |
*/
|
468 |
function bbp_add_group_id_to_forum( $forum_id = 0, $group_id = 0 ) {
|
469 |
|
@@ -488,8 +493,9 @@ function bbp_add_group_id_to_forum( $forum_id = 0, $group_id = 0 ) {
|
|
488 |
/**
|
489 |
* Remove a forum from a group
|
490 |
*
|
491 |
-
* @param type $group_id
|
492 |
* @since 2.1.0 bbPress (r3653)
|
|
|
|
|
493 |
*/
|
494 |
function bbp_add_forum_id_to_group( $group_id = 0, $forum_id = 0 ) {
|
495 |
|
@@ -514,8 +520,9 @@ function bbp_add_forum_id_to_group( $group_id = 0, $forum_id = 0 ) {
|
|
514 |
/**
|
515 |
* Remove a group from a forum
|
516 |
*
|
517 |
-
* @param type $group_id
|
518 |
* @since 2.1.0 bbPress (r3653)
|
|
|
|
|
519 |
*/
|
520 |
function bbp_remove_group_id_from_forum( $forum_id = 0, $group_id = 0 ) {
|
521 |
|
@@ -540,8 +547,9 @@ function bbp_remove_group_id_from_forum( $forum_id = 0, $group_id = 0 ) {
|
|
540 |
/**
|
541 |
* Remove a forum from a group
|
542 |
*
|
543 |
-
* @param type $group_id
|
544 |
* @since 2.1.0 bbPress (r3653)
|
|
|
|
|
545 |
*/
|
546 |
function bbp_remove_forum_id_from_group( $group_id = 0, $forum_id = 0 ) {
|
547 |
|
@@ -566,8 +574,9 @@ function bbp_remove_forum_id_from_group( $group_id = 0, $forum_id = 0 ) {
|
|
566 |
/**
|
567 |
* Remove a group from all forums
|
568 |
*
|
569 |
-
* @param type $group_id
|
570 |
* @since 2.1.0 bbPress (r3653)
|
|
|
|
|
571 |
*/
|
572 |
function bbp_remove_group_id_from_all_forums( $group_id = 0 ) {
|
573 |
|
@@ -588,8 +597,9 @@ function bbp_remove_group_id_from_all_forums( $group_id = 0 ) {
|
|
588 |
/**
|
589 |
* Remove a forum from all groups
|
590 |
*
|
591 |
-
* @param type $forum_id
|
592 |
* @since 2.1.0 bbPress (r3653)
|
|
|
|
|
593 |
*/
|
594 |
function bbp_remove_forum_id_from_all_groups( $forum_id = 0 ) {
|
595 |
|
@@ -766,8 +776,8 @@ function bbp_get_activity_actions() {
|
|
766 |
|
767 |
// Filter & return
|
768 |
return (array) apply_filters( 'bbp_get_activity_actions', array(
|
769 |
-
'topic' =>
|
770 |
-
'reply' =>
|
771 |
) );
|
772 |
}
|
773 |
|
@@ -793,18 +803,10 @@ function bbp_format_activity_action_new_post( $type = '', $action = '', $activit
|
|
793 |
return $action;
|
794 |
}
|
795 |
|
796 |
-
|
797 |
-
|
798 |
-
|
799 |
-
|
800 |
-
*
|
801 |
-
* @param string $activity_action Activity action string value
|
802 |
-
* @param string $type The type of post. Expects `topic` or `reply`.
|
803 |
-
* @param string $action The current action string.
|
804 |
-
* @param BP_Activity_Activity $activity The BuddyPress activity object.
|
805 |
-
*/
|
806 |
-
if ( $pre = apply_filters( 'bbp_pre_format_activity_action_new_post', false, $type, $action, $activity ) ) {
|
807 |
-
return $pre;
|
808 |
}
|
809 |
|
810 |
// Groups component
|
@@ -868,7 +870,7 @@ function bbp_format_activity_action_new_post( $type = '', $action = '', $activit
|
|
868 |
* @return string The formatted activity action.
|
869 |
*/
|
870 |
function bbp_format_activity_action_new_topic( $action, $activity ) {
|
871 |
-
$action = bbp_format_activity_action_new_post(
|
872 |
|
873 |
/**
|
874 |
* Filters the formatted activity action new topic string.
|
@@ -892,7 +894,7 @@ function bbp_format_activity_action_new_topic( $action, $activity ) {
|
|
892 |
* @return string The formatted activity action
|
893 |
*/
|
894 |
function bbp_format_activity_action_new_reply( $action, $activity ) {
|
895 |
-
$action = bbp_format_activity_action_new_post(
|
896 |
|
897 |
/**
|
898 |
* Filters the formatted activity action new reply string.
|
370 |
/**
|
371 |
* Get forum ID's for a group
|
372 |
*
|
|
|
373 |
* @since 2.1.0 bbPress (r3653)
|
374 |
+
*
|
375 |
+
* @param int $group_id
|
376 |
*/
|
377 |
function bbp_get_group_forum_ids( $group_id = 0 ) {
|
378 |
|
399 |
/**
|
400 |
* Get group ID's for a forum
|
401 |
*
|
|
|
402 |
* @since 2.1.0 bbPress (r3653)
|
403 |
+
*
|
404 |
+
* @param int $forum_id
|
405 |
*/
|
406 |
function bbp_get_forum_group_ids( $forum_id = 0 ) {
|
407 |
|
428 |
/**
|
429 |
* Get forum ID's for a group
|
430 |
*
|
|
|
431 |
* @since 2.1.0 bbPress (r3653)
|
432 |
+
*
|
433 |
+
* @param int $group_id
|
434 |
*/
|
435 |
function bbp_update_group_forum_ids( $group_id = 0, $forum_ids = array() ) {
|
436 |
|
449 |
/**
|
450 |
* Update group ID's for a forum
|
451 |
*
|
|
|
452 |
* @since 2.1.0 bbPress (r3653)
|
453 |
+
*
|
454 |
+
* @param int $forum_id
|
455 |
*/
|
456 |
function bbp_update_forum_group_ids( $forum_id = 0, $group_ids = array() ) {
|
457 |
$forum_id = bbp_get_forum_id( $forum_id );
|
466 |
/**
|
467 |
* Add a group to a forum
|
468 |
*
|
|
|
469 |
* @since 2.1.0 bbPress (r3653)
|
470 |
+
*
|
471 |
+
* @param int $group_id
|
472 |
*/
|
473 |
function bbp_add_group_id_to_forum( $forum_id = 0, $group_id = 0 ) {
|
474 |
|
493 |
/**
|
494 |
* Remove a forum from a group
|
495 |
*
|
|
|
496 |
* @since 2.1.0 bbPress (r3653)
|
497 |
+
*
|
498 |
+
* @param int $group_id
|
499 |
*/
|
500 |
function bbp_add_forum_id_to_group( $group_id = 0, $forum_id = 0 ) {
|
501 |
|
520 |
/**
|
521 |
* Remove a group from a forum
|
522 |
*
|
|
|
523 |
* @since 2.1.0 bbPress (r3653)
|
524 |
+
*
|
525 |
+
* @param int $group_id
|
526 |
*/
|
527 |
function bbp_remove_group_id_from_forum( $forum_id = 0, $group_id = 0 ) {
|
528 |
|
547 |
/**
|
548 |
* Remove a forum from a group
|
549 |
*
|
|
|
550 |
* @since 2.1.0 bbPress (r3653)
|
551 |
+
*
|
552 |
+
* @param int $group_id
|
553 |
*/
|
554 |
function bbp_remove_forum_id_from_group( $group_id = 0, $forum_id = 0 ) {
|
555 |
|
574 |
/**
|
575 |
* Remove a group from all forums
|
576 |
*
|
|
|
577 |
* @since 2.1.0 bbPress (r3653)
|
578 |
+
*
|
579 |
+
* @param int $group_id
|
580 |
*/
|
581 |
function bbp_remove_group_id_from_all_forums( $group_id = 0 ) {
|
582 |
|
597 |
/**
|
598 |
* Remove a forum from all groups
|
599 |
*
|
|
|
600 |
* @since 2.1.0 bbPress (r3653)
|
601 |
+
*
|
602 |
+
* @param int $forum_id
|
603 |
*/
|
604 |
function bbp_remove_forum_id_from_all_groups( $forum_id = 0 ) {
|
605 |
|
776 |
|
777 |
// Filter & return
|
778 |
return (array) apply_filters( 'bbp_get_activity_actions', array(
|
779 |
+
'topic' => esc_html__( '%1$s started the topic %2$s in the forum %3$s', 'bbpress' ),
|
780 |
+
'reply' => esc_html__( '%1$s replied to the topic %2$s in the forum %3$s', 'bbpress' )
|
781 |
) );
|
782 |
}
|
783 |
|
803 |
return $action;
|
804 |
}
|
805 |
|
806 |
+
// Bail if intercepted
|
807 |
+
$intercept = bbp_maybe_intercept( __FUNCTION__, func_get_args() );
|
808 |
+
if ( bbp_is_intercepted( $intercept ) ) {
|
809 |
+
return $intercept;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
810 |
}
|
811 |
|
812 |
// Groups component
|
870 |
* @return string The formatted activity action.
|
871 |
*/
|
872 |
function bbp_format_activity_action_new_topic( $action, $activity ) {
|
873 |
+
$action = bbp_format_activity_action_new_post( bbp_get_topic_post_type(), $action, $activity );
|
874 |
|
875 |
/**
|
876 |
* Filters the formatted activity action new topic string.
|
894 |
* @return string The formatted activity action
|
895 |
*/
|
896 |
function bbp_format_activity_action_new_reply( $action, $activity ) {
|
897 |
+
$action = bbp_format_activity_action_new_post( bbp_get_reply_post_type(), $action, $activity );
|
898 |
|
899 |
/**
|
900 |
* Filters the formatted activity action new reply string.
|
includes/extend/buddypress/groups.php
CHANGED
@@ -37,6 +37,7 @@ class BBP_Forums_Group_Extension extends BP_Group_Extension {
|
|
37 |
$this->setup_actions();
|
38 |
$this->setup_filters();
|
39 |
$this->maybe_unset_forum_menu();
|
|
|
40 |
}
|
41 |
|
42 |
/**
|
@@ -47,8 +48,8 @@ class BBP_Forums_Group_Extension extends BP_Group_Extension {
|
|
47 |
private function setup_variables() {
|
48 |
|
49 |
// Component Name
|
50 |
-
$this->name =
|
51 |
-
$this->nav_item_name =
|
52 |
|
53 |
// Component slugs (hardcoded to match bbPress 1.x functionality)
|
54 |
$this->slug = 'forum';
|
@@ -108,12 +109,6 @@ class BBP_Forums_Group_Extension extends BP_Group_Extension {
|
|
108 |
*/
|
109 |
private function setup_filters() {
|
110 |
|
111 |
-
// Ensure bbp_is_single_forum() returns true on group forums.
|
112 |
-
add_filter( 'bbp_is_single_forum', array( $this, 'is_single_forum' ) );
|
113 |
-
|
114 |
-
// Ensure bbp_is_single_topic() returns true on group forum topics.
|
115 |
-
add_filter( 'bbp_is_single_topic', array( $this, 'is_single_topic' ) );
|
116 |
-
|
117 |
// Group forum pagination
|
118 |
add_filter( 'bbp_topic_pagination', array( $this, 'topic_pagination' ) );
|
119 |
add_filter( 'bbp_replies_pagination', array( $this, 'replies_pagination' ) );
|
@@ -122,7 +117,7 @@ class BBP_Forums_Group_Extension extends BP_Group_Extension {
|
|
122 |
add_filter( 'bbp_new_topic_redirect_to', array( $this, 'new_topic_redirect_to' ), 10, 3 );
|
123 |
add_filter( 'bbp_new_reply_redirect_to', array( $this, 'new_reply_redirect_to' ), 10, 3 );
|
124 |
|
125 |
-
// Map forum/topic/
|
126 |
add_filter( 'bbp_get_forum_permalink', array( $this, 'map_forum_permalink_to_group' ), 10, 2 );
|
127 |
add_filter( 'bbp_get_topic_permalink', array( $this, 'map_topic_permalink_to_group' ), 10, 2 );
|
128 |
add_filter( 'bbp_get_reply_permalink', array( $this, 'map_reply_permalink_to_group' ), 10, 2 );
|
@@ -141,7 +136,13 @@ class BBP_Forums_Group_Extension extends BP_Group_Extension {
|
|
141 |
/** Caps **************************************************************/
|
142 |
|
143 |
// Only add these filters if inside a group forum
|
144 |
-
if ( bp_is_single_item() &&
|
|
|
|
|
|
|
|
|
|
|
|
|
145 |
|
146 |
// Allow group member to view private/hidden forums
|
147 |
add_filter( 'bbp_map_meta_caps', array( $this, 'map_group_forum_meta_caps' ), 10, 4 );
|
@@ -152,6 +153,16 @@ class BBP_Forums_Group_Extension extends BP_Group_Extension {
|
|
152 |
}
|
153 |
}
|
154 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
155 |
/**
|
156 |
* Ensure that bbp_is_single_forum() returns true on group forum pages.
|
157 |
*
|
@@ -165,10 +176,8 @@ class BBP_Forums_Group_Extension extends BP_Group_Extension {
|
|
165 |
public function is_single_forum( $retval = false ) {
|
166 |
|
167 |
// Additional BuddyPress specific single-forum conditionals
|
168 |
-
if ( false === $retval ) {
|
169 |
-
|
170 |
-
$retval = true;
|
171 |
-
}
|
172 |
}
|
173 |
|
174 |
return $retval;
|
@@ -187,10 +196,8 @@ class BBP_Forums_Group_Extension extends BP_Group_Extension {
|
|
187 |
public function is_single_topic( $retval = false ) {
|
188 |
|
189 |
// Additional BuddyPress specific single-topic conditionals
|
190 |
-
if ( false === $retval ) {
|
191 |
-
|
192 |
-
$retval = true;
|
193 |
-
}
|
194 |
}
|
195 |
|
196 |
return $retval;
|
@@ -265,8 +272,7 @@ class BBP_Forums_Group_Extension extends BP_Group_Extension {
|
|
265 |
case 'read_private_forums' :
|
266 |
if ( bbp_group_is_banned() ) {
|
267 |
$caps = array( 'do_not_allow' );
|
268 |
-
|
269 |
-
} else if ( bbp_group_is_member() || bbp_group_is_mod() || bbp_group_is_admin() ) {
|
270 |
$caps = array( 'participate' );
|
271 |
}
|
272 |
break;
|
@@ -533,7 +539,7 @@ class BBP_Forums_Group_Extension extends BP_Group_Extension {
|
|
533 |
<p><?php esc_html_e( 'Create a discussion forum to allow members of this group to communicate in a structured, bulletin-board style fashion.', 'bbpress' ); ?></p>
|
534 |
|
535 |
<div class="checkbox">
|
536 |
-
<label><input type="checkbox" name="bbp-create-group-forum" id="bbp-create-group-forum" value="1"<?php checked( $checked ); ?> /> <?php esc_html_e( 'Yes. I want this group to have a forum.', 'bbpress' ); ?></label>
|
537 |
</div>
|
538 |
|
539 |
<?php
|
@@ -649,8 +655,9 @@ class BBP_Forums_Group_Extension extends BP_Group_Extension {
|
|
649 |
*
|
650 |
* @since 2.1.0 bbPress (r3653)
|
651 |
*
|
652 |
-
* @param
|
653 |
-
*
|
|
|
654 |
*/
|
655 |
public function new_forum( $forum_args = array() ) {
|
656 |
|
@@ -672,8 +679,9 @@ class BBP_Forums_Group_Extension extends BP_Group_Extension {
|
|
672 |
*
|
673 |
* @since 2.1.0 bbPress (r3653)
|
674 |
*
|
675 |
-
* @param
|
676 |
-
*
|
|
|
677 |
*/
|
678 |
public function remove_forum( $forum_args = array() ) {
|
679 |
|
@@ -1195,11 +1203,6 @@ class BBP_Forums_Group_Extension extends BP_Group_Extension {
|
|
1195 |
*/
|
1196 |
public function form_permissions( $retval = false ) {
|
1197 |
|
1198 |
-
// Bail if not a group
|
1199 |
-
if ( ! bp_is_group() ) {
|
1200 |
-
return $retval;
|
1201 |
-
}
|
1202 |
-
|
1203 |
// Bail if user is not logged in
|
1204 |
if ( ! is_user_logged_in() ) {
|
1205 |
return $retval;
|
37 |
$this->setup_actions();
|
38 |
$this->setup_filters();
|
39 |
$this->maybe_unset_forum_menu();
|
40 |
+
$this->fully_loaded();
|
41 |
}
|
42 |
|
43 |
/**
|
48 |
private function setup_variables() {
|
49 |
|
50 |
// Component Name
|
51 |
+
$this->name = esc_html__( 'Forum', 'bbpress' );
|
52 |
+
$this->nav_item_name = esc_html__( 'Forum', 'bbpress' );
|
53 |
|
54 |
// Component slugs (hardcoded to match bbPress 1.x functionality)
|
55 |
$this->slug = 'forum';
|
109 |
*/
|
110 |
private function setup_filters() {
|
111 |
|
|
|
|
|
|
|
|
|
|
|
|
|
112 |
// Group forum pagination
|
113 |
add_filter( 'bbp_topic_pagination', array( $this, 'topic_pagination' ) );
|
114 |
add_filter( 'bbp_replies_pagination', array( $this, 'replies_pagination' ) );
|
117 |
add_filter( 'bbp_new_topic_redirect_to', array( $this, 'new_topic_redirect_to' ), 10, 3 );
|
118 |
add_filter( 'bbp_new_reply_redirect_to', array( $this, 'new_reply_redirect_to' ), 10, 3 );
|
119 |
|
120 |
+
// Map forum/topic/reply permalinks to their groups
|
121 |
add_filter( 'bbp_get_forum_permalink', array( $this, 'map_forum_permalink_to_group' ), 10, 2 );
|
122 |
add_filter( 'bbp_get_topic_permalink', array( $this, 'map_topic_permalink_to_group' ), 10, 2 );
|
123 |
add_filter( 'bbp_get_reply_permalink', array( $this, 'map_reply_permalink_to_group' ), 10, 2 );
|
136 |
/** Caps **************************************************************/
|
137 |
|
138 |
// Only add these filters if inside a group forum
|
139 |
+
if ( bp_is_single_item() && bp_is_group() && bp_is_current_action( $this->slug ) ) {
|
140 |
+
|
141 |
+
// Ensure bbp_is_single_forum() returns true on group forums.
|
142 |
+
add_filter( 'bbp_is_single_forum', array( $this, 'is_single_forum' ) );
|
143 |
+
|
144 |
+
// Ensure bbp_is_single_topic() returns true on group forum topics.
|
145 |
+
add_filter( 'bbp_is_single_topic', array( $this, 'is_single_topic' ) );
|
146 |
|
147 |
// Allow group member to view private/hidden forums
|
148 |
add_filter( 'bbp_map_meta_caps', array( $this, 'map_group_forum_meta_caps' ), 10, 4 );
|
153 |
}
|
154 |
}
|
155 |
|
156 |
+
/**
|
157 |
+
* Allow the variables, actions, and filters to be modified by third party
|
158 |
+
* plugins and themes.
|
159 |
+
*
|
160 |
+
* @since 2.6.0 bbPress (r6808)
|
161 |
+
*/
|
162 |
+
private function fully_loaded() {
|
163 |
+
do_action_ref_array( 'bbp_buddypress_groups_loaded', array( $this ) );
|
164 |
+
}
|
165 |
+
|
166 |
/**
|
167 |
* Ensure that bbp_is_single_forum() returns true on group forum pages.
|
168 |
*
|
176 |
public function is_single_forum( $retval = false ) {
|
177 |
|
178 |
// Additional BuddyPress specific single-forum conditionals
|
179 |
+
if ( ( false === $retval ) && ! bp_is_action_variable( $this->topic_slug, 0 ) ) {
|
180 |
+
$retval = true;
|
|
|
|
|
181 |
}
|
182 |
|
183 |
return $retval;
|
196 |
public function is_single_topic( $retval = false ) {
|
197 |
|
198 |
// Additional BuddyPress specific single-topic conditionals
|
199 |
+
if ( ( false === $retval ) && bp_is_action_variable( $this->topic_slug, 0 ) && bp_action_variable( 1 ) ) {
|
200 |
+
$retval = true;
|
|
|
|
|
201 |
}
|
202 |
|
203 |
return $retval;
|
272 |
case 'read_private_forums' :
|
273 |
if ( bbp_group_is_banned() ) {
|
274 |
$caps = array( 'do_not_allow' );
|
275 |
+
} elseif ( bbp_group_is_member() || bbp_group_is_mod() || bbp_group_is_admin() ) {
|
|
|
276 |
$caps = array( 'participate' );
|
277 |
}
|
278 |
break;
|
539 |
<p><?php esc_html_e( 'Create a discussion forum to allow members of this group to communicate in a structured, bulletin-board style fashion.', 'bbpress' ); ?></p>
|
540 |
|
541 |
<div class="checkbox">
|
542 |
+
<label for="bbp-create-group-forum"><input type="checkbox" name="bbp-create-group-forum" id="bbp-create-group-forum" value="1"<?php checked( $checked ); ?> /> <?php esc_html_e( 'Yes. I want this group to have a forum.', 'bbpress' ); ?></label>
|
543 |
</div>
|
544 |
|
545 |
<?php
|
655 |
*
|
656 |
* @since 2.1.0 bbPress (r3653)
|
657 |
*
|
658 |
+
* @param array $forum_args
|
659 |
+
*
|
660 |
+
* @return void if no forum_id is available
|
661 |
*/
|
662 |
public function new_forum( $forum_args = array() ) {
|
663 |
|
679 |
*
|
680 |
* @since 2.1.0 bbPress (r3653)
|
681 |
*
|
682 |
+
* @param array $forum_args
|
683 |
+
*
|
684 |
+
* @return void if no forum_id is available
|
685 |
*/
|
686 |
public function remove_forum( $forum_args = array() ) {
|
687 |
|
1203 |
*/
|
1204 |
public function form_permissions( $retval = false ) {
|
1205 |
|
|
|
|
|
|
|
|
|
|
|
1206 |
// Bail if user is not logged in
|
1207 |
if ( ! is_user_logged_in() ) {
|
1208 |
return $retval;
|
includes/extend/buddypress/loader.php
CHANGED
@@ -39,7 +39,7 @@ class BBP_Forums_Component extends BP_Component {
|
|
39 |
public function __construct() {
|
40 |
parent::start(
|
41 |
'forums',
|
42 |
-
|
43 |
bbpress()->includes_dir . 'extend/buddypress/'
|
44 |
);
|
45 |
$this->includes();
|
@@ -74,7 +74,19 @@ class BBP_Forums_Component extends BP_Component {
|
|
74 |
$includes[] = 'groups.php';
|
75 |
}
|
76 |
|
77 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
78 |
}
|
79 |
|
80 |
/**
|
@@ -104,7 +116,7 @@ class BBP_Forums_Component extends BP_Component {
|
|
104 |
'slug' => BP_FORUMS_SLUG,
|
105 |
'root_slug' => isset( $bp->pages->forums->slug ) ? $bp->pages->forums->slug : BP_FORUMS_SLUG,
|
106 |
'has_directory' => false,
|
107 |
-
'search_string' =>
|
108 |
);
|
109 |
|
110 |
parent::setup_globals( $args );
|
@@ -174,7 +186,7 @@ class BBP_Forums_Component extends BP_Component {
|
|
174 |
|
175 |
// Add 'Forums' to the main navigation
|
176 |
$main_nav = array(
|
177 |
-
'name' =>
|
178 |
'slug' => $this->slug,
|
179 |
'position' => 80,
|
180 |
'screen_function' => 'bbp_member_forums_screen_topics',
|
@@ -196,7 +208,7 @@ class BBP_Forums_Component extends BP_Component {
|
|
196 |
|
197 |
// Topics started
|
198 |
$sub_nav[] = array(
|
199 |
-
'name' =>
|
200 |
'slug' => bbp_get_topic_archive_slug(),
|
201 |
'parent_url' => $forums_link,
|
202 |
'parent_slug' => $this->slug,
|
@@ -207,7 +219,7 @@ class BBP_Forums_Component extends BP_Component {
|
|
207 |
|
208 |
// Replies to topics
|
209 |
$sub_nav[] = array(
|
210 |
-
'name' =>
|
211 |
'slug' => bbp_get_reply_archive_slug(),
|
212 |
'parent_url' => $forums_link,
|
213 |
'parent_slug' => $this->slug,
|
@@ -219,7 +231,7 @@ class BBP_Forums_Component extends BP_Component {
|
|
219 |
// Engagements
|
220 |
if ( bbp_is_engagements_active() ) {
|
221 |
$sub_nav[] = array(
|
222 |
-
'name' =>
|
223 |
'slug' => bbp_get_user_engagements_slug(),
|
224 |
'parent_url' => $forums_link,
|
225 |
'parent_slug' => $this->slug,
|
@@ -232,7 +244,7 @@ class BBP_Forums_Component extends BP_Component {
|
|
232 |
// Favorite topics
|
233 |
if ( bbp_is_favorites_active() ){
|
234 |
$sub_nav[] = array(
|
235 |
-
'name' =>
|
236 |
'slug' => bbp_get_user_favorites_slug(),
|
237 |
'parent_url' => $forums_link,
|
238 |
'parent_slug' => $this->slug,
|
@@ -245,7 +257,7 @@ class BBP_Forums_Component extends BP_Component {
|
|
245 |
// Subscribed topics (my profile only)
|
246 |
if ( bp_is_my_profile() && bbp_is_subscriptions_active() ) {
|
247 |
$sub_nav[] = array(
|
248 |
-
'name' =>
|
249 |
'slug' => bbp_get_user_subscriptions_slug(),
|
250 |
'parent_url' => $forums_link,
|
251 |
'parent_slug' => $this->slug,
|
@@ -296,7 +308,7 @@ class BBP_Forums_Component extends BP_Component {
|
|
296 |
$wp_admin_nav[] = array(
|
297 |
'parent' => buddypress()->my_account_menu_id,
|
298 |
'id' => 'my-account-' . $this->id,
|
299 |
-
'title' =>
|
300 |
'href' => $my_account_link
|
301 |
);
|
302 |
|
@@ -304,7 +316,7 @@ class BBP_Forums_Component extends BP_Component {
|
|
304 |
$wp_admin_nav[] = array(
|
305 |
'parent' => 'my-account-' . $this->id,
|
306 |
'id' => 'my-account-' . $this->id . '-topics',
|
307 |
-
'title' =>
|
308 |
'href' => $my_topics_link
|
309 |
);
|
310 |
|
@@ -312,7 +324,7 @@ class BBP_Forums_Component extends BP_Component {
|
|
312 |
$wp_admin_nav[] = array(
|
313 |
'parent' => 'my-account-' . $this->id,
|
314 |
'id' => 'my-account-' . $this->id . '-replies',
|
315 |
-
'title' =>
|
316 |
'href' => $my_replies_link
|
317 |
);
|
318 |
|
@@ -321,7 +333,7 @@ class BBP_Forums_Component extends BP_Component {
|
|
321 |
$wp_admin_nav[] = array(
|
322 |
'parent' => 'my-account-' . $this->id,
|
323 |
'id' => 'my-account-' . $this->id . '-engagements',
|
324 |
-
'title' =>
|
325 |
'href' => $my_engagements_link
|
326 |
);
|
327 |
}
|
@@ -331,7 +343,7 @@ class BBP_Forums_Component extends BP_Component {
|
|
331 |
$wp_admin_nav[] = array(
|
332 |
'parent' => 'my-account-' . $this->id,
|
333 |
'id' => 'my-account-' . $this->id . '-favorites',
|
334 |
-
'title' =>
|
335 |
'href' => $my_favorites_link
|
336 |
);
|
337 |
}
|
@@ -341,7 +353,7 @@ class BBP_Forums_Component extends BP_Component {
|
|
341 |
$wp_admin_nav[] = array(
|
342 |
'parent' => 'my-account-' . $this->id,
|
343 |
'id' => 'my-account-' . $this->id . '-subscriptions',
|
344 |
-
'title' =>
|
345 |
'href' => $my_subscriptions_link
|
346 |
);
|
347 |
}
|
@@ -361,7 +373,7 @@ class BBP_Forums_Component extends BP_Component {
|
|
361 |
// Adjust title based on view
|
362 |
if ( bp_is_forums_component() ) {
|
363 |
if ( bp_is_my_profile() ) {
|
364 |
-
$bp->bp_options_title =
|
365 |
} elseif ( bp_is_user() ) {
|
366 |
$bp->bp_options_avatar = bp_core_fetch_avatar( array(
|
367 |
'item_id' => bp_displayed_user_id(),
|
39 |
public function __construct() {
|
40 |
parent::start(
|
41 |
'forums',
|
42 |
+
esc_html__( 'Forums', 'bbpress' ),
|
43 |
bbpress()->includes_dir . 'extend/buddypress/'
|
44 |
);
|
45 |
$this->includes();
|
74 |
$includes[] = 'groups.php';
|
75 |
}
|
76 |
|
77 |
+
// Require files if they exist
|
78 |
+
foreach ( $includes as $file ) {
|
79 |
+
if ( @is_file( $this->path . $file ) ) {
|
80 |
+
require $this->path . $file;
|
81 |
+
}
|
82 |
+
}
|
83 |
+
|
84 |
+
/**
|
85 |
+
* Hook for plugins to include files, if necessary.
|
86 |
+
*
|
87 |
+
* @since 2.6.0 bbPress (r3552)
|
88 |
+
*/
|
89 |
+
do_action( "bp_{$this->id}_includes" );
|
90 |
}
|
91 |
|
92 |
/**
|
116 |
'slug' => BP_FORUMS_SLUG,
|
117 |
'root_slug' => isset( $bp->pages->forums->slug ) ? $bp->pages->forums->slug : BP_FORUMS_SLUG,
|
118 |
'has_directory' => false,
|
119 |
+
'search_string' => esc_html__( 'Search Forums...', 'bbpress' ),
|
120 |
);
|
121 |
|
122 |
parent::setup_globals( $args );
|
186 |
|
187 |
// Add 'Forums' to the main navigation
|
188 |
$main_nav = array(
|
189 |
+
'name' => esc_html__( 'Forums', 'bbpress' ),
|
190 |
'slug' => $this->slug,
|
191 |
'position' => 80,
|
192 |
'screen_function' => 'bbp_member_forums_screen_topics',
|
208 |
|
209 |
// Topics started
|
210 |
$sub_nav[] = array(
|
211 |
+
'name' => esc_html__( 'Topics Started', 'bbpress' ),
|
212 |
'slug' => bbp_get_topic_archive_slug(),
|
213 |
'parent_url' => $forums_link,
|
214 |
'parent_slug' => $this->slug,
|
219 |
|
220 |
// Replies to topics
|
221 |
$sub_nav[] = array(
|
222 |
+
'name' => esc_html__( 'Replies Created', 'bbpress' ),
|
223 |
'slug' => bbp_get_reply_archive_slug(),
|
224 |
'parent_url' => $forums_link,
|
225 |
'parent_slug' => $this->slug,
|
231 |
// Engagements
|
232 |
if ( bbp_is_engagements_active() ) {
|
233 |
$sub_nav[] = array(
|
234 |
+
'name' => esc_html__( 'Engagements', 'bbpress' ),
|
235 |
'slug' => bbp_get_user_engagements_slug(),
|
236 |
'parent_url' => $forums_link,
|
237 |
'parent_slug' => $this->slug,
|
244 |
// Favorite topics
|
245 |
if ( bbp_is_favorites_active() ){
|
246 |
$sub_nav[] = array(
|
247 |
+
'name' => esc_html__( 'Favorites', 'bbpress' ),
|
248 |
'slug' => bbp_get_user_favorites_slug(),
|
249 |
'parent_url' => $forums_link,
|
250 |
'parent_slug' => $this->slug,
|
257 |
// Subscribed topics (my profile only)
|
258 |
if ( bp_is_my_profile() && bbp_is_subscriptions_active() ) {
|
259 |
$sub_nav[] = array(
|
260 |
+
'name' => esc_html__( 'Subscriptions', 'bbpress' ),
|
261 |
'slug' => bbp_get_user_subscriptions_slug(),
|
262 |
'parent_url' => $forums_link,
|
263 |
'parent_slug' => $this->slug,
|
308 |
$wp_admin_nav[] = array(
|
309 |
'parent' => buddypress()->my_account_menu_id,
|
310 |
'id' => 'my-account-' . $this->id,
|
311 |
+
'title' => esc_html__( 'Forums', 'bbpress' ),
|
312 |
'href' => $my_account_link
|
313 |
);
|
314 |
|
316 |
$wp_admin_nav[] = array(
|
317 |
'parent' => 'my-account-' . $this->id,
|
318 |
'id' => 'my-account-' . $this->id . '-topics',
|
319 |
+
'title' => esc_html__( 'Topics Started', 'bbpress' ),
|
320 |
'href' => $my_topics_link
|
321 |
);
|
322 |
|
324 |
$wp_admin_nav[] = array(
|
325 |
'parent' => 'my-account-' . $this->id,
|
326 |
'id' => 'my-account-' . $this->id . '-replies',
|
327 |
+
'title' => esc_html__( 'Replies Created', 'bbpress' ),
|
328 |
'href' => $my_replies_link
|
329 |
);
|
330 |
|
333 |
$wp_admin_nav[] = array(
|
334 |
'parent' => 'my-account-' . $this->id,
|
335 |
'id' => 'my-account-' . $this->id . '-engagements',
|
336 |
+
'title' => esc_html__( 'Engagements', 'bbpress' ),
|
337 |
'href' => $my_engagements_link
|
338 |
);
|
339 |
}
|
343 |
$wp_admin_nav[] = array(
|
344 |
'parent' => 'my-account-' . $this->id,
|
345 |
'id' => 'my-account-' . $this->id . '-favorites',
|
346 |
+
'title' => esc_html__( 'Favorite Topics', 'bbpress' ),
|
347 |
'href' => $my_favorites_link
|
348 |
);
|
349 |
}
|
353 |
$wp_admin_nav[] = array(
|
354 |
'parent' => 'my-account-' . $this->id,
|
355 |
'id' => 'my-account-' . $this->id . '-subscriptions',
|
356 |
+
'title' => esc_html__( 'Subscribed Topics', 'bbpress' ),
|
357 |
'href' => $my_subscriptions_link
|
358 |
);
|
359 |
}
|
373 |
// Adjust title based on view
|
374 |
if ( bp_is_forums_component() ) {
|
375 |
if ( bp_is_my_profile() ) {
|
376 |
+
$bp->bp_options_title = esc_html__( 'Forums', 'bbpress' );
|
377 |
} elseif ( bp_is_user() ) {
|
378 |
$bp->bp_options_avatar = bp_core_fetch_avatar( array(
|
379 |
'item_id' => bp_displayed_user_id(),
|
includes/extend/buddypress/members.php
CHANGED
@@ -30,6 +30,7 @@ class BBP_BuddyPress_Members {
|
|
30 |
public function __construct() {
|
31 |
$this->setup_actions();
|
32 |
$this->setup_filters();
|
|
|
33 |
}
|
34 |
|
35 |
/**
|
@@ -66,10 +67,22 @@ class BBP_BuddyPress_Members {
|
|
66 |
* @access private
|
67 |
*/
|
68 |
private function setup_filters() {
|
69 |
-
add_filter( 'bbp_pre_get_user_profile_url',
|
70 |
-
add_filter( '
|
71 |
-
add_filter( '
|
72 |
-
add_filter( '
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
73 |
}
|
74 |
|
75 |
/** Filters ***************************************************************/
|
@@ -80,93 +93,63 @@ class BBP_BuddyPress_Members {
|
|
80 |
* @since 2.0.0 bbPress (r3401)
|
81 |
* @since 2.6.0 bbPress (r6320) Add engagements support
|
82 |
*
|
83 |
-
* @param string $url
|
84 |
* @param int $user_id
|
85 |
-
* @param string $user_nicename
|
86 |
* @return string
|
87 |
*/
|
88 |
-
public function
|
89 |
-
|
90 |
-
|
91 |
-
if ( ! bp_is_root_blog() ) {
|
92 |
-
return false;
|
93 |
-
}
|
94 |
-
|
95 |
-
// Define local variable(s)
|
96 |
-
$profile_url = '';
|
97 |
-
$component_slug = bbpress()->extend->buddypress->slug;
|
98 |
-
$profile_url = bp_core_get_user_domain( $user_id );
|
99 |
-
|
100 |
-
// Special handling for forum component
|
101 |
-
if ( bp_is_current_component( $component_slug ) ) {
|
102 |
-
|
103 |
-
// Empty action or 'topics' action
|
104 |
-
if ( ! bp_current_action() || bp_is_current_action( bbp_get_topic_archive_slug() ) ) {
|
105 |
-
$profile_url = $profile_url . $component_slug . '/' . bbp_get_topic_archive_slug();
|
106 |
-
|
107 |
-
// Empty action or 'topics' action
|
108 |
-
} elseif ( bp_is_current_action( bbp_get_reply_archive_slug() ) ) {
|
109 |
-
$profile_url = $profile_url . $component_slug . '/' . bbp_get_reply_archive_slug();
|
110 |
-
|
111 |
-
// 'favorites' action
|
112 |
-
} elseif ( bbp_is_favorites_active() && bp_is_current_action( bbp_get_user_favorites_slug() ) ) {
|
113 |
-
$profile_url = $this->get_favorites_permalink( '', $user_id );
|
114 |
-
|
115 |
-
// 'subscriptions' action
|
116 |
-
} elseif ( bbp_is_subscriptions_active() && bp_is_current_action( bbp_get_user_subscriptions_slug() ) ) {
|
117 |
-
$profile_url = $this->get_subscriptions_permalink( '', $user_id );
|
118 |
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
124 |
|
125 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
126 |
}
|
127 |
|
128 |
/**
|
129 |
* Override bbPress favorites URL with BuddyPress profile URL
|
130 |
*
|
131 |
* @since 2.1.0 bbPress (r3721)
|
|
|
132 |
*
|
133 |
-
* @param string $url
|
134 |
* @param int $user_id
|
135 |
* @return string
|
136 |
*/
|
137 |
-
public function get_favorites_permalink( $
|
138 |
-
|
139 |
-
// Do not filter if not on BuddyPress root blog
|
140 |
-
if ( ! bp_is_root_blog() ) {
|
141 |
-
return false;
|
142 |
-
}
|
143 |
-
|
144 |
-
$component_slug = bbpress()->extend->buddypress->slug;
|
145 |
-
$url = trailingslashit( bp_core_get_user_domain( $user_id ) . $component_slug . '/' . bbp_get_user_favorites_slug() );
|
146 |
-
|
147 |
-
return $url;
|
148 |
}
|
149 |
|
150 |
/**
|
151 |
* Override bbPress subscriptions URL with BuddyPress profile URL
|
152 |
*
|
153 |
* @since 2.1.0 bbPress (r3721)
|
|
|
154 |
*
|
155 |
-
* @param string $url
|
156 |
* @param int $user_id
|
157 |
* @return string
|
158 |
*/
|
159 |
-
public function get_subscriptions_permalink( $
|
160 |
-
|
161 |
-
// Do not filter if not on BuddyPress root blog
|
162 |
-
if ( ! bp_is_root_blog() ) {
|
163 |
-
return false;
|
164 |
-
}
|
165 |
-
|
166 |
-
$component_slug = bbpress()->extend->buddypress->slug;
|
167 |
-
$url = trailingslashit( bp_core_get_user_domain( $user_id ) . $component_slug . '/' . bbp_get_user_subscriptions_slug() );
|
168 |
-
|
169 |
-
return $url;
|
170 |
}
|
171 |
|
172 |
/**
|
@@ -174,21 +157,11 @@ class BBP_BuddyPress_Members {
|
|
174 |
*
|
175 |
* @since 2.6.0 bbPress (r6320)
|
176 |
*
|
177 |
-
* @param string $url
|
178 |
* @param int $user_id
|
179 |
* @return string
|
180 |
*/
|
181 |
-
public function get_engagements_permalink( $user_id ) {
|
182 |
-
|
183 |
-
// Do not filter if not on BuddyPress root blog
|
184 |
-
if ( ! bp_is_root_blog() ) {
|
185 |
-
return false;
|
186 |
-
}
|
187 |
-
|
188 |
-
$component_slug = bbpress()->extend->buddypress->slug;
|
189 |
-
$url = trailingslashit( bp_core_get_user_domain( $user_id ) . $component_slug . '/' . bbp_get_user_engagements_slug() );
|
190 |
-
|
191 |
-
return $url;
|
192 |
}
|
193 |
|
194 |
/**
|
@@ -196,7 +169,7 @@ class BBP_BuddyPress_Members {
|
|
196 |
* pages.
|
197 |
*
|
198 |
* @since 2.3.0 bbPress (r4615)
|
199 |
-
* @since 2.6.0 bbPress (r6320)
|
200 |
*
|
201 |
* @global WP_Query $wp_query
|
202 |
* @return If not viewing your own profile
|
@@ -211,8 +184,16 @@ class BBP_BuddyPress_Members {
|
|
211 |
// Get the main query object
|
212 |
$wp_query = bbp_get_wp_query();
|
213 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
214 |
// 'favorites' action
|
215 |
-
|
216 |
$wp_query->bbp_is_single_user_favs = true;
|
217 |
|
218 |
// 'subscriptions' action
|
@@ -224,5 +205,37 @@ class BBP_BuddyPress_Members {
|
|
224 |
$wp_query->bbp_is_single_user_engagements = true;
|
225 |
}
|
226 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
227 |
}
|
228 |
endif;
|
30 |
public function __construct() {
|
31 |
$this->setup_actions();
|
32 |
$this->setup_filters();
|
33 |
+
$this->fully_loaded();
|
34 |
}
|
35 |
|
36 |
/**
|
67 |
* @access private
|
68 |
*/
|
69 |
private function setup_filters() {
|
70 |
+
add_filter( 'bbp_pre_get_user_profile_url', array( $this, 'get_user_profile_url' ) );
|
71 |
+
add_filter( 'bbp_pre_get_user_topics_created_url', array( $this, 'get_topics_created_url' ) );
|
72 |
+
add_filter( 'bbp_pre_get_user_replies_created_url', array( $this, 'get_replies_created_url' ) );
|
73 |
+
add_filter( 'bbp_pre_get_user_engagements_url', array( $this, 'get_engagements_permalink' ) );
|
74 |
+
add_filter( 'bbp_pre_get_favorites_permalink', array( $this, 'get_favorites_permalink' ) );
|
75 |
+
add_filter( 'bbp_pre_get_subscriptions_permalink', array( $this, 'get_subscriptions_permalink' ) );
|
76 |
+
}
|
77 |
+
|
78 |
+
/**
|
79 |
+
* Allow the variables, actions, and filters to be modified by third party
|
80 |
+
* plugins and themes.
|
81 |
+
*
|
82 |
+
* @since 2.6.0 bbPress (r6808)
|
83 |
+
*/
|
84 |
+
private function fully_loaded() {
|
85 |
+
do_action_ref_array( 'bbp_buddypress_members_loaded', array( $this ) );
|
86 |
}
|
87 |
|
88 |
/** Filters ***************************************************************/
|
93 |
* @since 2.0.0 bbPress (r3401)
|
94 |
* @since 2.6.0 bbPress (r6320) Add engagements support
|
95 |
*
|
|
|
96 |
* @param int $user_id
|
|
|
97 |
* @return string
|
98 |
*/
|
99 |
+
public function get_user_profile_url( $user_id = 0 ) {
|
100 |
+
return $this->get_profile_url( $user_id );
|
101 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
102 |
|
103 |
+
/**
|
104 |
+
* Override bbPress topics created URL with BuddyPress profile URL
|
105 |
+
*
|
106 |
+
* @since 2.6.0 bbPress (r3721)
|
107 |
+
* @since 2.6.0 bbPress (r6803) Use private method
|
108 |
+
*
|
109 |
+
* @param int $user_id
|
110 |
+
* @return string
|
111 |
+
*/
|
112 |
+
public function get_topics_created_url( $user_id = 0 ) {
|
113 |
+
return $this->get_profile_url( $user_id, bbp_get_topic_archive_slug() );
|
114 |
+
}
|
115 |
|
116 |
+
/**
|
117 |
+
* Override bbPress replies created URL with BuddyPress profile URL
|
118 |
+
*
|
119 |
+
* @since 2.6.0 bbPress (r3721)
|
120 |
+
* @since 2.6.0 bbPress (r6803) Use private method
|
121 |
+
*
|
122 |
+
* @param int $user_id
|
123 |
+
* @return string
|
124 |
+
*/
|
125 |
+
public function get_replies_created_url( $user_id = 0 ) {
|
126 |
+
return $this->get_profile_url( $user_id, bbp_get_reply_archive_slug() );
|
127 |
}
|
128 |
|
129 |
/**
|
130 |
* Override bbPress favorites URL with BuddyPress profile URL
|
131 |
*
|
132 |
* @since 2.1.0 bbPress (r3721)
|
133 |
+
* @since 2.6.0 bbPress (r6803) Use private method
|
134 |
*
|
|
|
135 |
* @param int $user_id
|
136 |
* @return string
|
137 |
*/
|
138 |
+
public function get_favorites_permalink( $user_id = 0 ) {
|
139 |
+
return $this->get_profile_url( $user_id, bbp_get_user_favorites_slug() );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
140 |
}
|
141 |
|
142 |
/**
|
143 |
* Override bbPress subscriptions URL with BuddyPress profile URL
|
144 |
*
|
145 |
* @since 2.1.0 bbPress (r3721)
|
146 |
+
* @since 2.6.0 bbPress (r6803) Use private method
|
147 |
*
|
|
|
148 |
* @param int $user_id
|
149 |
* @return string
|
150 |
*/
|
151 |
+
public function get_subscriptions_permalink( $user_id = 0 ) {
|
152 |
+
return $this->get_profile_url( $user_id, bbp_get_user_subscriptions_slug() );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
153 |
}
|
154 |
|
155 |
/**
|
157 |
*
|
158 |
* @since 2.6.0 bbPress (r6320)
|
159 |
*
|
|
|
160 |
* @param int $user_id
|
161 |
* @return string
|
162 |
*/
|
163 |
+
public function get_engagements_permalink( $user_id = 0 ) {
|
164 |
+
return $this->get_profile_url( $user_id, bbp_get_user_engagements_slug() );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
165 |
}
|
166 |
|
167 |
/**
|
169 |
* pages.
|
170 |
*
|
171 |
* @since 2.3.0 bbPress (r4615)
|
172 |
+
* @since 2.6.0 bbPress (r6320) Support all profile sections
|
173 |
*
|
174 |
* @global WP_Query $wp_query
|
175 |
* @return If not viewing your own profile
|
184 |
// Get the main query object
|
185 |
$wp_query = bbp_get_wp_query();
|
186 |
|
187 |
+
// 'topics' action
|
188 |
+
if ( bp_is_current_action( bbp_get_topic_archive_slug() ) ) {
|
189 |
+
$wp_query->bbp_is_single_user_topics = true;
|
190 |
+
|
191 |
+
// 'replies' action
|
192 |
+
} elseif ( bp_is_current_action( bbp_get_reply_archive_slug() ) ) {
|
193 |
+
$wp_query->bbp_is_single_user_replies = true;
|
194 |
+
|
195 |
// 'favorites' action
|
196 |
+
} elseif ( bbp_is_favorites_active() && bp_is_current_action( bbp_get_user_favorites_slug() ) ) {
|
197 |
$wp_query->bbp_is_single_user_favs = true;
|
198 |
|
199 |
// 'subscriptions' action
|
205 |
$wp_query->bbp_is_single_user_engagements = true;
|
206 |
}
|
207 |
}
|
208 |
+
|
209 |
+
/** Private Methods *******************************************************/
|
210 |
+
|
211 |
+
/**
|
212 |
+
* Private method used to concatenate user IDs and slugs into URLs
|
213 |
+
*
|
214 |
+
* @since 2.6.0 bbPress (r6803)
|
215 |
+
*
|
216 |
+
* @param int $user_id
|
217 |
+
* @param string $slug
|
218 |
+
*
|
219 |
+
* @return string
|
220 |
+
*/
|
221 |
+
private function get_profile_url( $user_id = 0, $slug = '' ) {
|
222 |
+
|
223 |
+
// Do not filter if not on BuddyPress root blog
|
224 |
+
if ( empty( $user_id ) || ! bp_is_root_blog() ) {
|
225 |
+
return false;
|
226 |
+
}
|
227 |
+
|
228 |
+
// Setup profile URL
|
229 |
+
$url = array( bp_core_get_user_domain( $user_id ) );
|
230 |
+
|
231 |
+
// Maybe push slug to end of URL array
|
232 |
+
if ( ! empty( $slug ) ) {
|
233 |
+
array_push( $url, bbpress()->extend->buddypress->slug );
|
234 |
+
array_push( $url, $slug );
|
235 |
+
}
|
236 |
+
|
237 |
+
// Return
|
238 |
+
return implode( '', array_map( 'trailingslashit', $url ) );
|
239 |
+
}
|
240 |
}
|
241 |
endif;
|
includes/extend/buddypress/notifications.php
CHANGED
@@ -86,14 +86,14 @@ function bbp_format_buddypress_notifications( $content, $item_id, $secondary_ite
|
|
86 |
// Multiple
|
87 |
if ( $action_item_count > 1 ) {
|
88 |
$filter = 'bbp_multiple_new_subscription_notification';
|
89 |
-
$text = sprintf(
|
90 |
|
91 |
// Single
|
92 |
} else {
|
93 |
$filter = 'bbp_single_new_subscription_notification';
|
94 |
$text = ! empty( $secondary_item_id )
|
95 |
-
? sprintf(
|
96 |
-
: sprintf(
|
97 |
}
|
98 |
|
99 |
// WordPress Toolbar
|
@@ -134,7 +134,7 @@ function bbp_buddypress_add_notification( $reply_id = 0, $topic_id = 0, $forum_i
|
|
134 |
return;
|
135 |
}
|
136 |
|
137 |
-
// Get
|
138 |
$topic_author_id = bbp_get_topic_author_id( $topic_id );
|
139 |
$secondary_item_id = $author_id;
|
140 |
|
@@ -146,25 +146,26 @@ function bbp_buddypress_add_notification( $reply_id = 0, $topic_id = 0, $forum_i
|
|
146 |
// Get some reply information
|
147 |
$args = array(
|
148 |
'user_id' => $topic_author_id,
|
149 |
-
'item_id' => $
|
150 |
'component_name' => bbp_get_component_name(),
|
151 |
'component_action' => 'bbp_new_reply',
|
152 |
'date_notified' => get_post( $reply_id )->post_date,
|
153 |
);
|
154 |
|
155 |
-
|
156 |
-
|
157 |
$args['secondary_item_id'] = $secondary_item_id ;
|
158 |
|
159 |
bp_notifications_add_notification( $args );
|
160 |
-
|
161 |
|
162 |
-
|
163 |
-
|
164 |
-
$args['
|
|
|
165 |
|
166 |
bp_notifications_add_notification( $args );
|
167 |
-
|
168 |
}
|
169 |
|
170 |
/**
|
86 |
// Multiple
|
87 |
if ( $action_item_count > 1 ) {
|
88 |
$filter = 'bbp_multiple_new_subscription_notification';
|
89 |
+
$text = sprintf( esc_html__( 'You have %d new replies', 'bbpress' ), $action_item_count );
|
90 |
|
91 |
// Single
|
92 |
} else {
|
93 |
$filter = 'bbp_single_new_subscription_notification';
|
94 |
$text = ! empty( $secondary_item_id )
|
95 |
+
? sprintf( esc_html__( 'You have %d new reply to %2$s from %3$s', 'bbpress' ), $action_item_count, $topic_title, bp_core_get_user_displayname( $secondary_item_id ) )
|
96 |
+
: sprintf( esc_html__( 'You have %d new reply to %s', 'bbpress' ), $action_item_count, $topic_title );
|
97 |
}
|
98 |
|
99 |
// WordPress Toolbar
|
134 |
return;
|
135 |
}
|
136 |
|
137 |
+
// Get author information
|
138 |
$topic_author_id = bbp_get_topic_author_id( $topic_id );
|
139 |
$secondary_item_id = $author_id;
|
140 |
|
146 |
// Get some reply information
|
147 |
$args = array(
|
148 |
'user_id' => $topic_author_id,
|
149 |
+
'item_id' => $reply_id,
|
150 |
'component_name' => bbp_get_component_name(),
|
151 |
'component_action' => 'bbp_new_reply',
|
152 |
'date_notified' => get_post( $reply_id )->post_date,
|
153 |
);
|
154 |
|
155 |
+
// Notify the topic author if not the current reply author
|
156 |
+
if ( $author_id !== $topic_author_id ) {
|
157 |
$args['secondary_item_id'] = $secondary_item_id ;
|
158 |
|
159 |
bp_notifications_add_notification( $args );
|
160 |
+
}
|
161 |
|
162 |
+
// Notify the immediate reply author if not the current reply author
|
163 |
+
if ( ! empty( $reply_to ) && ( $author_id !== $reply_to_item_id ) ) {
|
164 |
+
$args['user_id'] = $reply_to_item_id;
|
165 |
+
$args['secondary_item_id'] = $topic_author_id;
|
166 |
|
167 |
bp_notifications_add_notification( $args );
|
168 |
+
}
|
169 |
}
|
170 |
|
171 |
/**
|
includes/forums/capabilities.php
CHANGED
@@ -67,7 +67,12 @@ function bbp_map_forum_meta_caps( $caps = array(), $cap = '', $user_id = 0, $arg
|
|
67 |
// Do some post ID based logic
|
68 |
} else {
|
69 |
|
70 |
-
//
|
|
|
|
|
|
|
|
|
|
|
71 |
$_post = get_post( $args[0] );
|
72 |
if ( ! empty( $_post ) ) {
|
73 |
|
@@ -107,7 +112,12 @@ function bbp_map_forum_meta_caps( $caps = array(), $cap = '', $user_id = 0, $arg
|
|
107 |
|
108 |
case 'moderate_forum' :
|
109 |
|
110 |
-
//
|
|
|
|
|
|
|
|
|
|
|
111 |
$_post = get_post( $args[0] );
|
112 |
if ( ! empty( $_post ) && bbp_allow_forum_mods() ) {
|
113 |
|
@@ -150,7 +160,12 @@ function bbp_map_forum_meta_caps( $caps = array(), $cap = '', $user_id = 0, $arg
|
|
150 |
// Used everywhere
|
151 |
case 'edit_forum' :
|
152 |
|
153 |
-
//
|
|
|
|
|
|
|
|
|
|
|
154 |
$_post = get_post( $args[0] );
|
155 |
if ( ! empty( $_post ) ) {
|
156 |
|
@@ -182,7 +197,12 @@ function bbp_map_forum_meta_caps( $caps = array(), $cap = '', $user_id = 0, $arg
|
|
182 |
// Allow forum authors to delete forums (for BuddyPress groups, etc)
|
183 |
case 'delete_forum' :
|
184 |
|
185 |
-
//
|
|
|
|
|
|
|
|
|
|
|
186 |
$_post = get_post( $args[0] );
|
187 |
if ( ! empty( $_post ) ) {
|
188 |
|
67 |
// Do some post ID based logic
|
68 |
} else {
|
69 |
|
70 |
+
// Bail if no post ID
|
71 |
+
if ( empty( $args[0] ) ) {
|
72 |
+
return $caps;
|
73 |
+
}
|
74 |
+
|
75 |
+
// Get the post.
|
76 |
$_post = get_post( $args[0] );
|
77 |
if ( ! empty( $_post ) ) {
|
78 |
|
112 |
|
113 |
case 'moderate_forum' :
|
114 |
|
115 |
+
// Bail if no post ID
|
116 |
+
if ( empty( $args[0] ) ) {
|
117 |
+
return $caps;
|
118 |
+
}
|
119 |
+
|
120 |
+
// Get the post.
|
121 |
$_post = get_post( $args[0] );
|
122 |
if ( ! empty( $_post ) && bbp_allow_forum_mods() ) {
|
123 |
|
160 |
// Used everywhere
|
161 |
case 'edit_forum' :
|
162 |
|
163 |
+
// Bail if no post ID
|
164 |
+
if ( empty( $args[0] ) ) {
|
165 |
+
return $caps;
|
166 |
+
}
|
167 |
+
|
168 |
+
// Get the post.
|
169 |
$_post = get_post( $args[0] );
|
170 |
if ( ! empty( $_post ) ) {
|
171 |
|
197 |
// Allow forum authors to delete forums (for BuddyPress groups, etc)
|
198 |
case 'delete_forum' :
|
199 |
|
200 |
+
// Bail if no post ID
|
201 |
+
if ( empty( $args[0] ) ) {
|
202 |
+
return $caps;
|
203 |
+
}
|
204 |
+
|
205 |
+
// Get the post.
|
206 |
$_post = get_post( $args[0] );
|
207 |
if ( ! empty( $_post ) ) {
|
208 |
|
includes/forums/functions.php
CHANGED
@@ -74,7 +74,8 @@ function bbp_insert_forum( $forum_data = array(), $forum_meta = array() ) {
|
|
74 |
|
75 |
// Update the forum and hierarchy
|
76 |
bbp_update_forum( array(
|
77 |
-
'forum_id'
|
|
|
78 |
) );
|
79 |
|
80 |
// Maybe make private
|
@@ -99,6 +100,9 @@ function bbp_insert_forum( $forum_data = array(), $forum_meta = array() ) {
|
|
99 |
*/
|
100 |
do_action( 'bbp_insert_forum', (int) $forum_id );
|
101 |
|
|
|
|
|
|
|
102 |
// Return forum_id
|
103 |
return $forum_id;
|
104 |
}
|
@@ -161,6 +165,11 @@ function bbp_new_forum_handler( $action = '' ) {
|
|
161 |
bbp_add_error( 'bbp_forum_title', __( '<strong>ERROR</strong>: Your forum needs a title.', 'bbpress' ) );
|
162 |
}
|
163 |
|
|
|
|
|
|
|
|
|
|
|
164 |
/** Forum Content *********************************************************/
|
165 |
|
166 |
if ( ! empty( $_POST['bbp_forum_content'] ) ) {
|
@@ -225,10 +234,10 @@ function bbp_new_forum_handler( $action = '' ) {
|
|
225 |
bbp_add_error( 'bbp_forum_duplicate', __( '<strong>ERROR</strong>: This forum already exists.', 'bbpress' ) );
|
226 |
}
|
227 |
|
228 |
-
/** Forum
|
229 |
|
230 |
-
if ( !
|
231 |
-
bbp_add_error( '
|
232 |
}
|
233 |
|
234 |
/** Forum Moderation ******************************************************/
|
@@ -445,6 +454,11 @@ function bbp_edit_forum_handler( $action = '' ) {
|
|
445 |
bbp_add_error( 'bbp_edit_forum_title', __( '<strong>ERROR</strong>: Your forum needs a title.', 'bbpress' ) );
|
446 |
}
|
447 |
|
|
|
|
|
|
|
|
|
|
|
448 |
/** Forum Content *********************************************************/
|
449 |
|
450 |
if ( ! empty( $_POST['bbp_forum_content'] ) ) {
|
@@ -459,10 +473,10 @@ function bbp_edit_forum_handler( $action = '' ) {
|
|
459 |
bbp_add_error( 'bbp_edit_forum_content', __( '<strong>ERROR</strong>: Your forum description cannot be empty.', 'bbpress' ) );
|
460 |
}
|
461 |
|
462 |
-
/** Forum
|
463 |
|
464 |
-
if ( !
|
465 |
-
bbp_add_error( '
|
466 |
}
|
467 |
|
468 |
/** Forum Moderation ******************************************************/
|
@@ -1356,8 +1370,7 @@ function bbp_approved_unapproved_topic_update_forum_reply_count( $topic_id = 0 )
|
|
1356 |
}
|
1357 |
|
1358 |
// Get the topic's replies.
|
1359 |
-
$
|
1360 |
-
$count = count( $replies );
|
1361 |
|
1362 |
// If we're unapproving, set count to negative.
|
1363 |
if ( 'bbp_unapproved_topic' === current_filter() ) {
|
@@ -1582,8 +1595,9 @@ function bbp_update_forum_last_active_time( $forum_id = 0, $new_time = '' ) {
|
|
1582 |
function bbp_update_forum_subforum_count( $forum_id = 0, $subforums = 0 ) {
|
1583 |
$forum_id = bbp_get_forum_id( $forum_id );
|
1584 |
|
|
|
1585 |
if ( empty( $subforums ) ) {
|
1586 |
-
$subforums =
|
1587 |
}
|
1588 |
|
1589 |
$subforums = (int) $subforums;
|
@@ -1618,7 +1632,7 @@ function bbp_update_forum_topic_count( $forum_id = 0 ) {
|
|
1618 |
}
|
1619 |
|
1620 |
// Get total topics for this forum
|
1621 |
-
$topics = (
|
1622 |
|
1623 |
// Calculate total topics in this forum
|
1624 |
$total_topics = (int) ( $topics + $children_topic_count );
|
@@ -1718,23 +1732,7 @@ function bbp_update_forum_reply_count( $forum_id = 0 ) {
|
|
1718 |
$reply_count = 0;
|
1719 |
$topic_ids = bbp_forum_query_topic_ids( $forum_id );
|
1720 |
if ( ! empty( $topic_ids ) ) {
|
1721 |
-
$
|
1722 |
-
'fields' => 'ids',
|
1723 |
-
'post_parent__in' => $topic_ids,
|
1724 |
-
'post_status' => bbp_get_public_status_id(),
|
1725 |
-
'post_type' => bbp_get_reply_post_type(),
|
1726 |
-
'posts_per_page' => -1,
|
1727 |
-
|
1728 |
-
// Performance
|
1729 |
-
'nopaging' => true,
|
1730 |
-
'suppress_filters' => true,
|
1731 |
-
'update_post_term_cache' => false,
|
1732 |
-
'update_post_meta_cache' => false,
|
1733 |
-
'ignore_sticky_posts' => true,
|
1734 |
-
'no_found_rows' => true
|
1735 |
-
) );
|
1736 |
-
$reply_count = ! empty( $query->posts ) ? count( $query->posts ) : 0;
|
1737 |
-
unset( $query );
|
1738 |
}
|
1739 |
|
1740 |
// Calculate total replies in this forum
|
@@ -1777,6 +1775,9 @@ function bbp_update_forum( $args = array() ) {
|
|
1777 |
'last_active_status' => bbp_get_public_status_id()
|
1778 |
), 'update_forum' );
|
1779 |
|
|
|
|
|
|
|
1780 |
// Last topic and reply ID's
|
1781 |
bbp_update_forum_last_topic_id( $r['forum_id'], $r['last_topic_id'] );
|
1782 |
bbp_update_forum_last_reply_id( $r['forum_id'], $r['last_reply_id'] );
|
@@ -1810,6 +1811,9 @@ function bbp_update_forum( $args = array() ) {
|
|
1810 |
'post_parent' => get_post_field( 'post_parent', $r['post_parent'] )
|
1811 |
) );
|
1812 |
}
|
|
|
|
|
|
|
1813 |
}
|
1814 |
|
1815 |
/** Helpers *******************************************************************/
|
@@ -2048,7 +2052,7 @@ function bbp_pre_get_posts_normalize_forum_visibility( $posts_query = null ) {
|
|
2048 |
$posts_query->set( 'post__not_in', $not_in );
|
2049 |
|
2050 |
// Some other post type besides Forums, Topics, or Replies
|
2051 |
-
} elseif ( ! array_diff( $post_types,
|
2052 |
|
2053 |
// Get forums to exclude
|
2054 |
$forum_ids = bbp_exclude_forum_ids( 'meta_query' );
|
@@ -2368,7 +2372,7 @@ function bbp_trash_forum_topics( $forum_id = 0 ) {
|
|
2368 |
}
|
2369 |
|
2370 |
/**
|
2371 |
-
*
|
2372 |
*
|
2373 |
* @since 2.1.0 bbPress (r3668)
|
2374 |
*
|
74 |
|
75 |
// Update the forum and hierarchy
|
76 |
bbp_update_forum( array(
|
77 |
+
'forum_id' => $forum_id,
|
78 |
+
'post_parent' => $forum_data['post_parent']
|
79 |
) );
|
80 |
|
81 |
// Maybe make private
|
100 |
*/
|
101 |
do_action( 'bbp_insert_forum', (int) $forum_id );
|
102 |
|
103 |
+
// Bump the last changed cache
|
104 |
+
wp_cache_set( 'last_changed', microtime(), 'bbpress_posts' );
|
105 |
+
|
106 |
// Return forum_id
|
107 |
return $forum_id;
|
108 |
}
|
165 |
bbp_add_error( 'bbp_forum_title', __( '<strong>ERROR</strong>: Your forum needs a title.', 'bbpress' ) );
|
166 |
}
|
167 |
|
168 |
+
// Title too long
|
169 |
+
if ( bbp_is_title_too_long( $forum_title ) ) {
|
170 |
+
bbp_add_error( 'bbp_forum_title', __( '<strong>ERROR</strong>: Your title is too long.', 'bbpress' ) );
|
171 |
+
}
|
172 |
+
|
173 |
/** Forum Content *********************************************************/
|
174 |
|
175 |
if ( ! empty( $_POST['bbp_forum_content'] ) ) {
|
234 |
bbp_add_error( 'bbp_forum_duplicate', __( '<strong>ERROR</strong>: This forum already exists.', 'bbpress' ) );
|
235 |
}
|
236 |
|
237 |
+
/** Forum Bad Words *******************************************************/
|
238 |
|
239 |
+
if ( ! bbp_check_for_moderation( $anonymous_data, $forum_author, $forum_title, $forum_content, true ) ) {
|
240 |
+
bbp_add_error( 'bbp_forum_moderation', __( '<strong>ERROR</strong>: Your forum cannot be created at this time.', 'bbpress' ) );
|
241 |
}
|
242 |
|
243 |
/** Forum Moderation ******************************************************/
|
454 |
bbp_add_error( 'bbp_edit_forum_title', __( '<strong>ERROR</strong>: Your forum needs a title.', 'bbpress' ) );
|
455 |
}
|
456 |
|
457 |
+
// Title too long
|
458 |
+
if ( bbp_is_title_too_long( $forum_title ) ) {
|
459 |
+
bbp_add_error( 'bbp_forum_title', __( '<strong>ERROR</strong>: Your title is too long.', 'bbpress' ) );
|
460 |
+
}
|
461 |
+
|
462 |
/** Forum Content *********************************************************/
|
463 |
|
464 |
if ( ! empty( $_POST['bbp_forum_content'] ) ) {
|
473 |
bbp_add_error( 'bbp_edit_forum_content', __( '<strong>ERROR</strong>: Your forum description cannot be empty.', 'bbpress' ) );
|
474 |
}
|
475 |
|
476 |
+
/** Forum Bad Words *******************************************************/
|
477 |
|
478 |
+
if ( ! bbp_check_for_moderation( $anonymous_data, bbp_get_forum_author_id( $forum_id ), $forum_title, $forum_content, true ) ) {
|
479 |
+
bbp_add_error( 'bbp_forum_moderation', __( '<strong>ERROR</strong>: Your forum cannot be edited at this time.', 'bbpress' ) );
|
480 |
}
|
481 |
|
482 |
/** Forum Moderation ******************************************************/
|
1370 |
}
|
1371 |
|
1372 |
// Get the topic's replies.
|
1373 |
+
$count = bbp_get_public_child_count( $topic_id, bbp_get_reply_post_type() );
|
|
|
1374 |
|
1375 |
// If we're unapproving, set count to negative.
|
1376 |
if ( 'bbp_unapproved_topic' === current_filter() ) {
|
1595 |
function bbp_update_forum_subforum_count( $forum_id = 0, $subforums = 0 ) {
|
1596 |
$forum_id = bbp_get_forum_id( $forum_id );
|
1597 |
|
1598 |
+
// Maybe query for counts
|
1599 |
if ( empty( $subforums ) ) {
|
1600 |
+
$subforums = bbp_get_public_child_count( $forum_id, bbp_get_forum_post_type() );
|
1601 |
}
|
1602 |
|
1603 |
$subforums = (int) $subforums;
|
1632 |
}
|
1633 |
|
1634 |
// Get total topics for this forum
|
1635 |
+
$topics = bbp_get_public_child_count( $forum_id, bbp_get_topic_post_type() );
|
1636 |
|
1637 |
// Calculate total topics in this forum
|
1638 |
$total_topics = (int) ( $topics + $children_topic_count );
|
1732 |
$reply_count = 0;
|
1733 |
$topic_ids = bbp_forum_query_topic_ids( $forum_id );
|
1734 |
if ( ! empty( $topic_ids ) ) {
|
1735 |
+
$reply_count = bbp_get_public_child_count( $forum_id, bbp_get_reply_post_type() );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1736 |
}
|
1737 |
|
1738 |
// Calculate total replies in this forum
|
1775 |
'last_active_status' => bbp_get_public_status_id()
|
1776 |
), 'update_forum' );
|
1777 |
|
1778 |
+
// Update the forum parent
|
1779 |
+
bbp_update_forum_id( $r['forum_id'], $r['post_parent'] );
|
1780 |
+
|
1781 |
// Last topic and reply ID's
|
1782 |
bbp_update_forum_last_topic_id( $r['forum_id'], $r['last_topic_id'] );
|
1783 |
bbp_update_forum_last_reply_id( $r['forum_id'], $r['last_reply_id'] );
|
1811 |
'post_parent' => get_post_field( 'post_parent', $r['post_parent'] )
|
1812 |
) );
|
1813 |
}
|
1814 |
+
|
1815 |
+
// Bump the custom query cache
|
1816 |
+
wp_cache_set( 'last_changed', microtime(), 'bbpress_posts' );
|
1817 |
}
|
1818 |
|
1819 |
/** Helpers *******************************************************************/
|
2052 |
$posts_query->set( 'post__not_in', $not_in );
|
2053 |
|
2054 |
// Some other post type besides Forums, Topics, or Replies
|
2055 |
+
} elseif ( ! array_diff( $post_types, bbp_get_post_types() ) ) {
|
2056 |
|
2057 |
// Get forums to exclude
|
2058 |
$forum_ids = bbp_exclude_forum_ids( 'meta_query' );
|
2372 |
}
|
2373 |
|
2374 |
/**
|
2375 |
+
* Untrash all topics inside a forum
|
2376 |
*
|
2377 |
* @since 2.1.0 bbPress (r3668)
|
2378 |
*
|
includes/forums/template.php
CHANGED
@@ -45,25 +45,37 @@ function bbp_get_forum_post_type_labels() {
|
|
45 |
|
46 |
// Filter & return
|
47 |
return (array) apply_filters( 'bbp_get_forum_post_type_labels', array(
|
48 |
-
'name' =>
|
49 |
-
'menu_name' =>
|
50 |
-
'singular_name' =>
|
51 |
-
'all_items' =>
|
52 |
-
'add_new' =>
|
53 |
-
'add_new_item' =>
|
54 |
-
'edit' =>
|
55 |
-
'edit_item' =>
|
56 |
-
'new_item' =>
|
57 |
-
'view' =>
|
58 |
-
'view_item' =>
|
59 |
-
'view_items' =>
|
60 |
-
'search_items' =>
|
61 |
-
'not_found' =>
|
62 |
-
'not_found_in_trash' =>
|
63 |
-
'filter_items_list' =>
|
64 |
-
'items_list' =>
|
65 |
-
'items_list_navigation' =>
|
66 |
-
'parent_item_colon' =>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
67 |
) );
|
68 |
}
|
69 |
|
@@ -741,7 +753,7 @@ function bbp_list_forums( $args = array() ) {
|
|
741 |
$subforum_classes = apply_filters( 'bbp_list_forums_subforum_classes', $subforum_classes, $sub_forum->ID );
|
742 |
|
743 |
// This could use bbp_get_forum_class() eventually...
|
744 |
-
$subforum_classes_attr = 'class="' . implode( ' ', array_map( '
|
745 |
|
746 |
// Build this sub forums link
|
747 |
$links[] = $r['link_before'] . '<a href="' . esc_url( $permalink ) . '" ' . $subforum_classes_attr . '>' . $title . $counts . '</a>' . $r['link_after'];
|
@@ -1177,7 +1189,7 @@ function bbp_forum_subforum_count( $forum_id = 0, $integer = false ) {
|
|
1177 |
*/
|
1178 |
function bbp_get_forum_subforum_count( $forum_id = 0, $integer = false ) {
|
1179 |
$forum_id = bbp_get_forum_id( $forum_id );
|
1180 |
-
$forum_count =
|
1181 |
$filter = ( true === $integer )
|
1182 |
? 'bbp_get_forum_subforum_count_int'
|
1183 |
: 'bbp_get_forum_subforum_count';
|
@@ -1211,7 +1223,7 @@ function bbp_forum_topic_count( $forum_id = 0, $total_count = true, $integer = f
|
|
1211 |
function bbp_get_forum_topic_count( $forum_id = 0, $total_count = true, $integer = false ) {
|
1212 |
$forum_id = bbp_get_forum_id( $forum_id );
|
1213 |
$meta_key = empty( $total_count ) ? '_bbp_topic_count' : '_bbp_total_topic_count';
|
1214 |
-
$topics =
|
1215 |
$filter = ( true === $integer )
|
1216 |
? 'bbp_get_forum_topic_count_int'
|
1217 |
: 'bbp_get_forum_topic_count';
|
@@ -1245,7 +1257,7 @@ function bbp_forum_reply_count( $forum_id = 0, $total_count = true, $integer = f
|
|
1245 |
function bbp_get_forum_reply_count( $forum_id = 0, $total_count = true, $integer = false ) {
|
1246 |
$forum_id = bbp_get_forum_id( $forum_id );
|
1247 |
$meta_key = empty( $total_count ) ? '_bbp_reply_count' : '_bbp_total_reply_count';
|
1248 |
-
$replies =
|
1249 |
$filter = ( true === $integer )
|
1250 |
? 'bbp_get_forum_reply_count_int'
|
1251 |
: 'bbp_get_forum_reply_count';
|
@@ -1280,10 +1292,10 @@ function bbp_forum_post_count( $forum_id = 0, $total_count = true, $integer = fa
|
|
1280 |
$forum_id = bbp_get_forum_id( $forum_id );
|
1281 |
$topics = bbp_get_forum_topic_count( $forum_id, $total_count, true );
|
1282 |
$replies = bbp_get_forum_reply_count( $forum_id, $total_count, true );
|
1283 |
-
$retval =
|
1284 |
$filter = ( true === $integer )
|
1285 |
-
|
1286 |
-
|
1287 |
|
1288 |
return apply_filters( $filter, $retval, $forum_id );
|
1289 |
}
|
@@ -1312,7 +1324,7 @@ function bbp_forum_topic_count_hidden( $forum_id = 0, $integer = false ) {
|
|
1312 |
*/
|
1313 |
function bbp_get_forum_topic_count_hidden( $forum_id = 0, $integer = false ) {
|
1314 |
$forum_id = bbp_get_forum_id( $forum_id );
|
1315 |
-
$topics =
|
1316 |
$filter = ( true === $integer )
|
1317 |
? 'bbp_get_forum_topic_count_hidden_int'
|
1318 |
: 'bbp_get_forum_topic_count_hidden';
|
@@ -1910,10 +1922,10 @@ function bbp_single_forum_description( $args = array() ) {
|
|
1910 |
remove_filter( 'bbp_get_forum_permalink', 'bbp_add_view_all' );
|
1911 |
|
1912 |
// Get some forum data
|
1913 |
-
$tc_int = bbp_get_forum_topic_count( $forum_id,
|
1914 |
-
$rc_int = bbp_get_forum_reply_count( $forum_id,
|
1915 |
-
$topic_count = bbp_get_forum_topic_count( $forum_id );
|
1916 |
-
$reply_count = bbp_get_forum_reply_count( $forum_id );
|
1917 |
$last_active = bbp_get_forum_last_active_id( $forum_id );
|
1918 |
|
1919 |
// Has replies
|
@@ -2214,32 +2226,21 @@ function bbp_form_forum_subscribed() {
|
|
2214 |
*/
|
2215 |
function bbp_get_form_forum_subscribed() {
|
2216 |
|
|
|
|
|
|
|
2217 |
// Get _POST data
|
2218 |
if ( bbp_is_forum_form_post_request() && isset( $_POST['bbp_forum_subscription'] ) ) {
|
2219 |
$forum_subscribed = (bool) $_POST['bbp_forum_subscription'];
|
2220 |
|
2221 |
// Get edit data
|
2222 |
} elseif ( bbp_is_forum_edit() || bbp_is_reply_edit() ) {
|
2223 |
-
|
2224 |
-
|
2225 |
-
$post_author = bbp_get_global_post_field( 'post_author', 'raw' );
|
2226 |
-
|
2227 |
-
// Post author is not the current user
|
2228 |
-
if ( bbp_get_current_user_id() !== $post_author ) {
|
2229 |
-
$forum_subscribed = bbp_is_user_subscribed( $post_author, bbp_get_forum_id() );
|
2230 |
-
|
2231 |
-
// Post author is the current user
|
2232 |
-
} else {
|
2233 |
-
$forum_subscribed = bbp_is_user_subscribed( bbp_get_current_user_id(), bbp_get_forum_id() );
|
2234 |
-
}
|
2235 |
|
2236 |
// Get current status
|
2237 |
} elseif ( bbp_is_single_forum() ) {
|
2238 |
$forum_subscribed = bbp_is_user_subscribed( bbp_get_current_user_id(), bbp_get_forum_id() );
|
2239 |
-
|
2240 |
-
// No data
|
2241 |
-
} else {
|
2242 |
-
$forum_subscribed = false;
|
2243 |
}
|
2244 |
|
2245 |
// Get checked output
|
@@ -2528,13 +2529,13 @@ function bbp_is_forum_form_post_request() {
|
|
2528 |
return false;
|
2529 |
}
|
2530 |
|
2531 |
-
// Creating a new
|
2532 |
if ( bbp_verify_nonce_request( 'bbp-new-forum' ) ) {
|
2533 |
return true;
|
2534 |
}
|
2535 |
|
2536 |
-
// Editing an existing
|
2537 |
-
if ( bbp_verify_nonce_request( 'bbp-edit-
|
2538 |
return true;
|
2539 |
}
|
2540 |
|
@@ -2548,7 +2549,7 @@ function bbp_is_forum_form_post_request() {
|
|
2548 |
*
|
2549 |
* @since 2.0.0 bbPress (r3172)
|
2550 |
*
|
2551 |
-
* @param
|
2552 |
*/
|
2553 |
function bbp_forum_topics_feed_link( $forum_id = 0 ) {
|
2554 |
echo bbp_get_forum_topics_feed_link( $forum_id );
|
@@ -2600,7 +2601,7 @@ function bbp_forum_topics_feed_link( $forum_id = 0 ) {
|
|
2600 |
*
|
2601 |
* @since 2.0.0 bbPress (r3172)
|
2602 |
*
|
2603 |
-
* @param
|
2604 |
*/
|
2605 |
function bbp_forum_replies_feed_link( $forum_id = 0 ) {
|
2606 |
echo bbp_get_forum_replies_feed_link( $forum_id );
|
45 |
|
46 |
// Filter & return
|
47 |
return (array) apply_filters( 'bbp_get_forum_post_type_labels', array(
|
48 |
+
'name' => esc_attr__( 'Forums', 'bbpress' ),
|
49 |
+
'menu_name' => esc_attr__( 'Forums', 'bbpress' ),
|
50 |
+
'singular_name' => esc_attr__( 'Forum', 'bbpress' ),
|
51 |
+
'all_items' => esc_attr__( 'All Forums', 'bbpress' ),
|
52 |
+
'add_new' => esc_attr__( 'Add New', 'bbpress' ),
|
53 |
+
'add_new_item' => esc_attr__( 'Create New Forum', 'bbpress' ),
|
54 |
+
'edit' => esc_attr__( 'Edit', 'bbpress' ),
|
55 |
+
'edit_item' => esc_attr__( 'Edit Forum', 'bbpress' ),
|
56 |
+
'new_item' => esc_attr__( 'New Forum', 'bbpress' ),
|
57 |
+
'view' => esc_attr__( 'View Forum', 'bbpress' ),
|
58 |
+
'view_item' => esc_attr__( 'View Forum', 'bbpress' ),
|
59 |
+
'view_items' => esc_attr__( 'View Forums', 'bbpress' ),
|
60 |
+
'search_items' => esc_attr__( 'Search Forums', 'bbpress' ),
|
61 |
+
'not_found' => esc_attr__( 'No forums found', 'bbpress' ),
|
62 |
+
'not_found_in_trash' => esc_attr__( 'No forums found in Trash', 'bbpress' ),
|
63 |
+
'filter_items_list' => esc_attr__( 'Filter forums list', 'bbpress' ),
|
64 |
+
'items_list' => esc_attr__( 'Forums list', 'bbpress' ),
|
65 |
+
'items_list_navigation' => esc_attr__( 'Forums list navigation', 'bbpress' ),
|
66 |
+
'parent_item_colon' => esc_attr__( 'Parent Forum:', 'bbpress' ),
|
67 |
+
'all_items' => esc_attr__( 'All Forums', 'bbpress' ),
|
68 |
+
'archives' => esc_attr__( 'Forums', 'bbpress' ),
|
69 |
+
'attributes' => esc_attr__( 'Forum Attributes', 'bbpress' ),
|
70 |
+
'insert_into_item' => esc_attr__( 'Insert into forum', 'bbpress' ),
|
71 |
+
'uploaded_to_this_item' => esc_attr__( 'Uploaded to this forum', 'bbpress' ),
|
72 |
+
'featured_image' => esc_attr__( 'Forum Image', 'bbpress' ),
|
73 |
+
'set_featured_image' => esc_attr__( 'Set forum image', 'bbpress' ),
|
74 |
+
'remove_featured_image' => esc_attr__( 'Remove forum image', 'bbpress' ),
|
75 |
+
'use_featured_image' => esc_attr__( 'Use as forum image', 'bbpress' ),
|
76 |
+
'filter_items_list' => esc_attr__( 'Filter forum list', 'bbpress' ),
|
77 |
+
'items_list_navigation' => esc_attr__( 'Forum list navigation', 'bbpress' ),
|
78 |
+
'items_list' => esc_attr__( 'Forum list', 'bbpress' )
|
79 |
) );
|
80 |
}
|
81 |
|
753 |
$subforum_classes = apply_filters( 'bbp_list_forums_subforum_classes', $subforum_classes, $sub_forum->ID );
|
754 |
|
755 |
// This could use bbp_get_forum_class() eventually...
|
756 |
+
$subforum_classes_attr = 'class="' . implode( ' ', array_map( 'sanitize_html_class', $subforum_classes ) ) . '"';
|
757 |
|
758 |
// Build this sub forums link
|
759 |
$links[] = $r['link_before'] . '<a href="' . esc_url( $permalink ) . '" ' . $subforum_classes_attr . '>' . $title . $counts . '</a>' . $r['link_after'];
|
1189 |
*/
|
1190 |
function bbp_get_forum_subforum_count( $forum_id = 0, $integer = false ) {
|
1191 |
$forum_id = bbp_get_forum_id( $forum_id );
|
1192 |
+
$forum_count = get_post_meta( $forum_id, '_bbp_forum_subforum_count', true );
|
1193 |
$filter = ( true === $integer )
|
1194 |
? 'bbp_get_forum_subforum_count_int'
|
1195 |
: 'bbp_get_forum_subforum_count';
|
1223 |
function bbp_get_forum_topic_count( $forum_id = 0, $total_count = true, $integer = false ) {
|
1224 |
$forum_id = bbp_get_forum_id( $forum_id );
|
1225 |
$meta_key = empty( $total_count ) ? '_bbp_topic_count' : '_bbp_total_topic_count';
|
1226 |
+
$topics = get_post_meta( $forum_id, $meta_key, true );
|
1227 |
$filter = ( true === $integer )
|
1228 |
? 'bbp_get_forum_topic_count_int'
|
1229 |
: 'bbp_get_forum_topic_count';
|
1257 |
function bbp_get_forum_reply_count( $forum_id = 0, $total_count = true, $integer = false ) {
|
1258 |
$forum_id = bbp_get_forum_id( $forum_id );
|
1259 |
$meta_key = empty( $total_count ) ? '_bbp_reply_count' : '_bbp_total_reply_count';
|
1260 |
+
$replies = get_post_meta( $forum_id, $meta_key, true );
|
1261 |
$filter = ( true === $integer )
|
1262 |
? 'bbp_get_forum_reply_count_int'
|
1263 |
: 'bbp_get_forum_reply_count';
|
1292 |
$forum_id = bbp_get_forum_id( $forum_id );
|
1293 |
$topics = bbp_get_forum_topic_count( $forum_id, $total_count, true );
|
1294 |
$replies = bbp_get_forum_reply_count( $forum_id, $total_count, true );
|
1295 |
+
$retval = $replies + $topics;
|
1296 |
$filter = ( true === $integer )
|
1297 |
+
? 'bbp_get_forum_post_count_int'
|
1298 |
+
: 'bbp_get_forum_post_count';
|
1299 |
|
1300 |
return apply_filters( $filter, $retval, $forum_id );
|
1301 |
}
|
1324 |
*/
|
1325 |
function bbp_get_forum_topic_count_hidden( $forum_id = 0, $integer = false ) {
|
1326 |
$forum_id = bbp_get_forum_id( $forum_id );
|
1327 |
+
$topics = get_post_meta( $forum_id, '_bbp_topic_count_hidden', true );
|
1328 |
$filter = ( true === $integer )
|
1329 |
? 'bbp_get_forum_topic_count_hidden_int'
|
1330 |
: 'bbp_get_forum_topic_count_hidden';
|
1922 |
remove_filter( 'bbp_get_forum_permalink', 'bbp_add_view_all' );
|
1923 |
|
1924 |
// Get some forum data
|
1925 |
+
$tc_int = bbp_get_forum_topic_count( $forum_id, true, true );
|
1926 |
+
$rc_int = bbp_get_forum_reply_count( $forum_id, true, true );
|
1927 |
+
$topic_count = bbp_get_forum_topic_count( $forum_id, true, false );
|
1928 |
+
$reply_count = bbp_get_forum_reply_count( $forum_id, true, false );
|
1929 |
$last_active = bbp_get_forum_last_active_id( $forum_id );
|
1930 |
|
1931 |
// Has replies
|
2226 |
*/
|
2227 |
function bbp_get_form_forum_subscribed() {
|
2228 |
|
2229 |
+
// Default value
|
2230 |
+
$forum_subscribed = false;
|
2231 |
+
|
2232 |
// Get _POST data
|
2233 |
if ( bbp_is_forum_form_post_request() && isset( $_POST['bbp_forum_subscription'] ) ) {
|
2234 |
$forum_subscribed = (bool) $_POST['bbp_forum_subscription'];
|
2235 |
|
2236 |
// Get edit data
|
2237 |
} elseif ( bbp_is_forum_edit() || bbp_is_reply_edit() ) {
|
2238 |
+
$post_author = (int) bbp_get_global_post_field( 'post_author', 'raw' );
|
2239 |
+
$forum_subscribed = bbp_is_user_subscribed( $post_author, bbp_get_forum_id() );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2240 |
|
2241 |
// Get current status
|
2242 |
} elseif ( bbp_is_single_forum() ) {
|
2243 |
$forum_subscribed = bbp_is_user_subscribed( bbp_get_current_user_id(), bbp_get_forum_id() );
|
|
|
|
|
|
|
|
|
2244 |
}
|
2245 |
|
2246 |
// Get checked output
|
2529 |
return false;
|
2530 |
}
|
2531 |
|
2532 |
+
// Creating a new forum
|
2533 |
if ( bbp_verify_nonce_request( 'bbp-new-forum' ) ) {
|
2534 |
return true;
|
2535 |
}
|
2536 |
|
2537 |
+
// Editing an existing forum
|
2538 |
+
if ( bbp_verify_nonce_request( 'bbp-edit-forum_' . bbp_get_forum_id() ) ) {
|
2539 |
return true;
|
2540 |
}
|
2541 |
|
2549 |
*
|
2550 |
* @since 2.0.0 bbPress (r3172)
|
2551 |
*
|
2552 |
+
* @param int $forum_id Optional. Forum ID.
|
2553 |
*/
|
2554 |
function bbp_forum_topics_feed_link( $forum_id = 0 ) {
|
2555 |
echo bbp_get_forum_topics_feed_link( $forum_id );
|
2601 |
*
|
2602 |
* @since 2.0.0 bbPress (r3172)
|
2603 |
*
|
2604 |
+
* @param int $forum_id Optional. Forum ID.
|
2605 |
*/
|
2606 |
function bbp_forum_replies_feed_link( $forum_id = 0 ) {
|
2607 |
echo bbp_get_forum_replies_feed_link( $forum_id );
|
includes/replies/capabilities.php
CHANGED
@@ -34,10 +34,10 @@ function bbp_get_reply_caps() {
|
|
34 |
*
|
35 |
* @since 2.2.0 bbPress (r4242)
|
36 |
*
|
37 |
-
* @param array
|
38 |
-
* @param string $cap
|
39 |
-
* @param int
|
40 |
-
* @param array
|
41 |
*
|
42 |
* @return array Actual capabilities for meta capability
|
43 |
*/
|
@@ -57,7 +57,12 @@ function bbp_map_reply_meta_caps( $caps = array(), $cap = '', $user_id = 0, $arg
|
|
57 |
// Do some post ID based logic
|
58 |
} else {
|
59 |
|
60 |
-
//
|
|
|
|
|
|
|
|
|
|
|
61 |
$_post = get_post( $args[0] );
|
62 |
if ( ! empty( $_post ) ) {
|
63 |
|
@@ -125,7 +130,12 @@ function bbp_map_reply_meta_caps( $caps = array(), $cap = '', $user_id = 0, $arg
|
|
125 |
// Used everywhere
|
126 |
case 'edit_reply' :
|
127 |
|
128 |
-
//
|
|
|
|
|
|
|
|
|
|
|
129 |
$_post = get_post( $args[0] );
|
130 |
if ( ! empty( $_post ) ) {
|
131 |
|
@@ -136,14 +146,18 @@ function bbp_map_reply_meta_caps( $caps = array(), $cap = '', $user_id = 0, $arg
|
|
136 |
if ( bbp_is_user_inactive( $user_id ) ) {
|
137 |
$caps = array( 'do_not_allow' );
|
138 |
|
139 |
-
// User is author so allow edit if not in admin
|
140 |
-
} elseif ( ! is_admin() && ( (int) $user_id === (int) $_post->post_author ) ) {
|
141 |
-
$caps = array( $post_type->cap->edit_posts );
|
142 |
-
|
143 |
// Moderators can always edit forum content
|
144 |
} elseif ( user_can( $user_id, 'moderate', $_post->ID ) ) {
|
145 |
$caps = array( 'spectate' );
|
146 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
147 |
// Fallback to edit_others_posts.
|
148 |
} else {
|
149 |
$caps = array( $post_type->cap->edit_others_posts );
|
@@ -156,6 +170,11 @@ function bbp_map_reply_meta_caps( $caps = array(), $cap = '', $user_id = 0, $arg
|
|
156 |
|
157 |
case 'delete_reply' :
|
158 |
|
|
|
|
|
|
|
|
|
|
|
159 |
// Get the post
|
160 |
$_post = get_post( $args[0] );
|
161 |
if ( ! empty( $_post ) ) {
|
@@ -167,14 +186,14 @@ function bbp_map_reply_meta_caps( $caps = array(), $cap = '', $user_id = 0, $arg
|
|
167 |
if ( bbp_is_user_inactive( $user_id ) ) {
|
168 |
$caps = array( 'do_not_allow' );
|
169 |
|
170 |
-
// User is author so allow delete if not in admin
|
171 |
-
} elseif ( ! is_admin() && ( (int) $user_id === (int) $_post->post_author ) ) {
|
172 |
-
$caps = array( $post_type->cap->delete_posts );
|
173 |
-
|
174 |
// Moderators can always edit forum content
|
175 |
} elseif ( user_can( $user_id, 'moderate', $_post->ID ) ) {
|
176 |
$caps = array( 'spectate' );
|
177 |
|
|
|
|
|
|
|
|
|
178 |
// Unknown so map to delete_others_posts
|
179 |
} else {
|
180 |
$caps = array( $post_type->cap->delete_others_posts );
|
34 |
*
|
35 |
* @since 2.2.0 bbPress (r4242)
|
36 |
*
|
37 |
+
* @param array $caps Capabilities for meta capability.
|
38 |
+
* @param string $cap Capability name.
|
39 |
+
* @param int $user_id User id.
|
40 |
+
* @param array $args Arguments.
|
41 |
*
|
42 |
* @return array Actual capabilities for meta capability
|
43 |
*/
|
57 |
// Do some post ID based logic
|
58 |
} else {
|
59 |
|
60 |
+
// Bail if no post ID
|
61 |
+
if ( empty( $args[0] ) ) {
|
62 |
+
return $caps;
|
63 |
+
}
|
64 |
+
|
65 |
+
// Get the post.
|
66 |
$_post = get_post( $args[0] );
|
67 |
if ( ! empty( $_post ) ) {
|
68 |
|
130 |
// Used everywhere
|
131 |
case 'edit_reply' :
|
132 |
|
133 |
+
// Bail if no post ID
|
134 |
+
if ( empty( $args[0] ) ) {
|
135 |
+
return $caps;
|
136 |
+
}
|
137 |
+
|
138 |
+
// Get the post.
|
139 |
$_post = get_post( $args[0] );
|
140 |
if ( ! empty( $_post ) ) {
|
141 |
|
146 |
if ( bbp_is_user_inactive( $user_id ) ) {
|
147 |
$caps = array( 'do_not_allow' );
|
148 |
|
|
|
|
|
|
|
|
|
149 |
// Moderators can always edit forum content
|
150 |
} elseif ( user_can( $user_id, 'moderate', $_post->ID ) ) {
|
151 |
$caps = array( 'spectate' );
|
152 |
|
153 |
+
// Allow author or mod to edit if not in admin, unless past edit lock time
|
154 |
+
} elseif ( ! is_admin() && ( (int) $user_id === (int) $_post->post_author ) ) {
|
155 |
+
|
156 |
+
// Only allow if not past the edit-lock period
|
157 |
+
$caps = ! bbp_past_edit_lock( $_post->post_date_gmt )
|
158 |
+
? array( $post_type->cap->edit_posts )
|
159 |
+
: array( 'do_not_allow' );
|
160 |
+
|
161 |
// Fallback to edit_others_posts.
|
162 |
} else {
|
163 |
$caps = array( $post_type->cap->edit_others_posts );
|
170 |
|
171 |
case 'delete_reply' :
|
172 |
|
173 |
+
// Bail if no post ID
|
174 |
+
if ( empty( $args[0] ) ) {
|
175 |
+
return $caps;
|
176 |
+
}
|
177 |
+
|
178 |
// Get the post
|
179 |
$_post = get_post( $args[0] );
|
180 |
if ( ! empty( $_post ) ) {
|
186 |
if ( bbp_is_user_inactive( $user_id ) ) {
|
187 |
$caps = array( 'do_not_allow' );
|
188 |
|
|
|
|
|
|
|
|
|
189 |
// Moderators can always edit forum content
|
190 |
} elseif ( user_can( $user_id, 'moderate', $_post->ID ) ) {
|
191 |
$caps = array( 'spectate' );
|
192 |
|
193 |
+
// User is author so allow delete if not in admin
|
194 |
+
} elseif ( ! is_admin() && ( (int) $user_id === (int) $_post->post_author ) ) {
|
195 |
+
$caps = array( $post_type->cap->delete_posts );
|
196 |
+
|
197 |
// Unknown so map to delete_others_posts
|
198 |
} else {
|
199 |
$caps = array( $post_type->cap->delete_others_posts );
|
includes/replies/functions.php
CHANGED
@@ -98,7 +98,7 @@ function bbp_insert_reply_update_counts( $reply_id = 0, $topic_id = 0, $forum_id
|
|
98 |
// If the reply is public, update the forum/topic reply counts.
|
99 |
if ( bbp_is_reply_published( $reply_id ) ) {
|
100 |
bbp_increase_topic_reply_count( $topic_id );
|
101 |
-
bbp_increase_forum_reply_count( $
|
102 |
|
103 |
// If the reply isn't public only update the topic reply hidden count.
|
104 |
} else {
|
@@ -274,6 +274,11 @@ function bbp_new_reply_handler( $action = '' ) {
|
|
274 |
// Filter and sanitize
|
275 |
$reply_title = apply_filters( 'bbp_new_reply_pre_title', $reply_title );
|
276 |
|
|
|
|
|
|
|
|
|
|
|
277 |
/** Reply Content *********************************************************/
|
278 |
|
279 |
if ( ! empty( $_POST['bbp_reply_content'] ) ) {
|
@@ -300,10 +305,10 @@ function bbp_new_reply_handler( $action = '' ) {
|
|
300 |
bbp_add_error( 'bbp_reply_duplicate', __( '<strong>ERROR</strong>: Duplicate reply detected; it looks as though you’ve already said that.', 'bbpress' ) );
|
301 |
}
|
302 |
|
303 |
-
/** Reply
|
304 |
|
305 |
-
if ( !
|
306 |
-
bbp_add_error( '
|
307 |
}
|
308 |
|
309 |
/** Reply Status **********************************************************/
|
@@ -334,7 +339,7 @@ function bbp_new_reply_handler( $action = '' ) {
|
|
334 |
/** Topic Tags ************************************************************/
|
335 |
|
336 |
// Either replace terms
|
337 |
-
if ( bbp_allow_topic_tags() && current_user_can( 'assign_topic_tags' ) && ! empty( $_POST['bbp_topic_tags'] ) ) {
|
338 |
$terms = sanitize_text_field( $_POST['bbp_topic_tags'] );
|
339 |
|
340 |
// ...or remove them.
|
@@ -586,6 +591,11 @@ function bbp_edit_reply_handler( $action = '' ) {
|
|
586 |
// Filter and sanitize
|
587 |
$reply_title = apply_filters( 'bbp_edit_reply_pre_title', $reply_title, $reply_id );
|
588 |
|
|
|
|
|
|
|
|
|
|
|
589 |
/** Reply Content *********************************************************/
|
590 |
|
591 |
if ( ! empty( $_POST['bbp_reply_content'] ) ) {
|
@@ -600,10 +610,10 @@ function bbp_edit_reply_handler( $action = '' ) {
|
|
600 |
bbp_add_error( 'bbp_edit_reply_content', __( '<strong>ERROR</strong>: Your reply cannot be empty.', 'bbpress' ) );
|
601 |
}
|
602 |
|
603 |
-
/** Reply
|
604 |
|
605 |
-
if ( !
|
606 |
-
bbp_add_error( '
|
607 |
}
|
608 |
|
609 |
/** Reply Status **********************************************************/
|
@@ -624,14 +634,16 @@ function bbp_edit_reply_handler( $action = '' ) {
|
|
624 |
/** Reply To **************************************************************/
|
625 |
|
626 |
// Handle Reply To of the reply; $_REQUEST for non-JS submissions
|
627 |
-
if ( isset( $_REQUEST['bbp_reply_to'] ) ) {
|
628 |
$reply_to = bbp_validate_reply_to( $_REQUEST['bbp_reply_to'], $reply_id );
|
|
|
|
|
629 |
}
|
630 |
|
631 |
/** Topic Tags ************************************************************/
|
632 |
|
633 |
// Either replace terms
|
634 |
-
if ( bbp_allow_topic_tags() && current_user_can( 'assign_topic_tags' ) && ! empty( $_POST['bbp_topic_tags'] ) ) {
|
635 |
$terms = sanitize_text_field( $_POST['bbp_topic_tags'] );
|
636 |
|
637 |
// ...or remove them.
|
@@ -798,7 +810,7 @@ function bbp_update_reply( $reply_id = 0, $topic_id = 0, $forum_id = 0, $anonymo
|
|
798 |
if ( ! empty( $anonymous_data ) ) {
|
799 |
|
800 |
// Update anonymous meta data (not cookies)
|
801 |
-
bbp_update_anonymous_post_author( $reply_id, $anonymous_data,
|
802 |
|
803 |
// Set transient for throttle check (only on new, not edit)
|
804 |
if ( empty( $is_edit ) ) {
|
@@ -843,6 +855,9 @@ function bbp_update_reply( $reply_id = 0, $topic_id = 0, $forum_id = 0, $anonymo
|
|
843 |
// Walk up ancestors and do the dirty work
|
844 |
bbp_update_reply_walker( $reply_id, $last_active_time, $forum_id, $topic_id, false );
|
845 |
}
|
|
|
|
|
|
|
846 |
}
|
847 |
|
848 |
/**
|
@@ -989,10 +1004,10 @@ function bbp_update_reply_forum_id( $reply_id = 0, $forum_id = 0 ) {
|
|
989 |
}
|
990 |
|
991 |
// Update the forum ID
|
992 |
-
$
|
993 |
|
994 |
// Filter & return
|
995 |
-
return (int) apply_filters( 'bbp_update_reply_forum_id', $
|
996 |
}
|
997 |
|
998 |
/**
|
@@ -1032,10 +1047,10 @@ function bbp_update_reply_topic_id( $reply_id = 0, $topic_id = 0 ) {
|
|
1032 |
}
|
1033 |
|
1034 |
// Update the topic ID
|
1035 |
-
$
|
1036 |
|
1037 |
// Filter & return
|
1038 |
-
return (int) apply_filters( 'bbp_update_reply_topic_id', $
|
1039 |
}
|
1040 |
|
1041 |
/*
|
@@ -1617,7 +1632,7 @@ function bbp_get_reply_statuses( $reply_id = 0 ) {
|
|
1617 |
bbp_get_public_status_id() => _x( 'Publish', 'Publish the reply', 'bbpress' ),
|
1618 |
bbp_get_spam_status_id() => _x( 'Spam', 'Spam the reply', 'bbpress' ),
|
1619 |
bbp_get_trash_status_id() => _x( 'Trash', 'Trash the reply', 'bbpress' ),
|
1620 |
-
bbp_get_pending_status_id() => _x( 'Pending', 'Mark reply as pending', 'bbpress' )
|
1621 |
), $reply_id );
|
1622 |
}
|
1623 |
|
@@ -1749,8 +1764,11 @@ function bbp_approve_reply( $reply_id = 0 ) {
|
|
1749 |
return $reply;
|
1750 |
}
|
1751 |
|
|
|
|
|
|
|
1752 |
// Bail if already approved
|
1753 |
-
if (
|
1754 |
return false;
|
1755 |
}
|
1756 |
|
@@ -1758,7 +1776,7 @@ function bbp_approve_reply( $reply_id = 0 ) {
|
|
1758 |
do_action( 'bbp_approve_reply', $reply_id );
|
1759 |
|
1760 |
// Set publish status
|
1761 |
-
$reply->post_status =
|
1762 |
|
1763 |
// No revisions
|
1764 |
remove_action( 'pre_post_update', 'wp_save_post_revision' );
|
@@ -1789,8 +1807,11 @@ function bbp_unapprove_reply( $reply_id = 0 ) {
|
|
1789 |
return $reply;
|
1790 |
}
|
1791 |
|
|
|
|
|
|
|
1792 |
// Bail if already pending
|
1793 |
-
if (
|
1794 |
return false;
|
1795 |
}
|
1796 |
|
@@ -1798,7 +1819,7 @@ function bbp_unapprove_reply( $reply_id = 0 ) {
|
|
1798 |
do_action( 'bbp_unapprove_reply', $reply_id );
|
1799 |
|
1800 |
// Set pending status
|
1801 |
-
$reply->post_status =
|
1802 |
|
1803 |
// No revisions
|
1804 |
remove_action( 'pre_post_update', 'wp_save_post_revision' );
|
@@ -2075,12 +2096,12 @@ function bbp_display_replies_feed_rss2( $replies_query = array() ) {
|
|
2075 |
|
2076 |
<channel>
|
2077 |
|
2078 |
-
<title><?php echo $title; ?></title>
|
2079 |
<atom:link href="<?php self_link(); ?>" rel="self" type="application/rss+xml" />
|
2080 |
<link><?php self_link(); ?></link>
|
2081 |
<description><?php //?></description>
|
2082 |
<lastBuildDate><?php echo date( 'r' ); ?></lastBuildDate>
|
2083 |
-
<generator
|
2084 |
<language><?php bloginfo_rss( 'language' ); ?></language>
|
2085 |
|
2086 |
<?php do_action( 'bbp_feed_head' ); ?>
|
@@ -2186,7 +2207,7 @@ function bbp_check_reply_edit() {
|
|
2186 |
*
|
2187 |
* @return mixed
|
2188 |
*/
|
2189 |
-
function bbp_update_reply_position( $reply_id = 0, $reply_position =
|
2190 |
|
2191 |
// Bail if reply_id is empty
|
2192 |
$reply_id = bbp_get_reply_id( $reply_id );
|
@@ -2194,27 +2215,37 @@ function bbp_update_reply_position( $reply_id = 0, $reply_position = 0 ) {
|
|
2194 |
return false;
|
2195 |
}
|
2196 |
|
2197 |
-
//
|
2198 |
-
|
2199 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2200 |
}
|
2201 |
|
|
|
|
|
|
|
2202 |
// Toggle revisions off as we are not altering content
|
2203 |
-
if (
|
2204 |
-
$
|
2205 |
-
|
2206 |
}
|
2207 |
|
2208 |
// Update the replies' 'menu_order' with the reply position
|
2209 |
-
|
2210 |
-
|
2211 |
-
|
2212 |
-
) );
|
2213 |
|
2214 |
// Toggle revisions back on
|
2215 |
-
if ( true === $
|
2216 |
-
$
|
2217 |
-
|
2218 |
}
|
2219 |
|
2220 |
return (int) $reply_position;
|
@@ -2232,9 +2263,11 @@ function bbp_update_reply_position( $reply_id = 0, $reply_position = 0 ) {
|
|
2232 |
function bbp_get_reply_position_raw( $reply_id = 0, $topic_id = 0 ) {
|
2233 |
|
2234 |
// Get required data
|
2235 |
-
$reply_id = bbp_get_reply_id( $reply_id );
|
2236 |
-
$topic_id = ! empty( $topic_id ) ? bbp_get_topic_id( $topic_id ) : bbp_get_reply_topic_id( $reply_id );
|
2237 |
$reply_position = 0;
|
|
|
|
|
|
|
|
|
2238 |
|
2239 |
// If reply is actually the first post in a topic, return 0
|
2240 |
if ( $reply_id !== $topic_id ) {
|
98 |
// If the reply is public, update the forum/topic reply counts.
|
99 |
if ( bbp_is_reply_published( $reply_id ) ) {
|
100 |
bbp_increase_topic_reply_count( $topic_id );
|
101 |
+
bbp_increase_forum_reply_count( $forum_id );
|
102 |
|
103 |
// If the reply isn't public only update the topic reply hidden count.
|
104 |
} else {
|
274 |
// Filter and sanitize
|
275 |
$reply_title = apply_filters( 'bbp_new_reply_pre_title', $reply_title );
|
276 |
|
277 |
+
// Title too long
|
278 |
+
if ( bbp_is_title_too_long( $reply_title ) ) {
|
279 |
+
bbp_add_error( 'bbp_reply_title', __( '<strong>ERROR</strong>: Your title is too long.', 'bbpress' ) );
|
280 |
+
}
|
281 |
+
|
282 |
/** Reply Content *********************************************************/
|
283 |
|
284 |
if ( ! empty( $_POST['bbp_reply_content'] ) ) {
|
305 |
bbp_add_error( 'bbp_reply_duplicate', __( '<strong>ERROR</strong>: Duplicate reply detected; it looks as though you’ve already said that.', 'bbpress' ) );
|
306 |
}
|
307 |
|
308 |
+
/** Reply Bad Words *******************************************************/
|
309 |
|
310 |
+
if ( ! bbp_check_for_moderation( $anonymous_data, $reply_author, $reply_title, $reply_content, true ) ) {
|
311 |
+
bbp_add_error( 'bbp_reply_moderation', __( '<strong>ERROR</strong>: Your reply cannot be created at this time.', 'bbpress' ) );
|
312 |
}
|
313 |
|
314 |
/** Reply Status **********************************************************/
|
339 |
/** Topic Tags ************************************************************/
|
340 |
|
341 |
// Either replace terms
|
342 |
+
if ( bbp_allow_topic_tags() && current_user_can( 'assign_topic_tags', $topic_id ) && ! empty( $_POST['bbp_topic_tags'] ) ) {
|
343 |
$terms = sanitize_text_field( $_POST['bbp_topic_tags'] );
|
344 |
|
345 |
// ...or remove them.
|
591 |
// Filter and sanitize
|
592 |
$reply_title = apply_filters( 'bbp_edit_reply_pre_title', $reply_title, $reply_id );
|
593 |
|
594 |
+
// Title too long
|
595 |
+
if ( bbp_is_title_too_long( $reply_title ) ) {
|
596 |
+
bbp_add_error( 'bbp_reply_title', __( '<strong>ERROR</strong>: Your title is too long.', 'bbpress' ) );
|
597 |
+
}
|
598 |
+
|
599 |
/** Reply Content *********************************************************/
|
600 |
|
601 |
if ( ! empty( $_POST['bbp_reply_content'] ) ) {
|
610 |
bbp_add_error( 'bbp_edit_reply_content', __( '<strong>ERROR</strong>: Your reply cannot be empty.', 'bbpress' ) );
|
611 |
}
|
612 |
|
613 |
+
/** Reply Bad Words *******************************************************/
|
614 |
|
615 |
+
if ( ! bbp_check_for_moderation( $anonymous_data, $reply_author, $reply_title, $reply_content, true ) ) {
|
616 |
+
bbp_add_error( 'bbp_reply_moderation', __( '<strong>ERROR</strong>: Your reply cannot be edited at this time.', 'bbpress' ) );
|
617 |
}
|
618 |
|
619 |
/** Reply Status **********************************************************/
|
634 |
/** Reply To **************************************************************/
|
635 |
|
636 |
// Handle Reply To of the reply; $_REQUEST for non-JS submissions
|
637 |
+
if ( isset( $_REQUEST['bbp_reply_to'] ) && current_user_can( 'moderate', $reply_id ) ) {
|
638 |
$reply_to = bbp_validate_reply_to( $_REQUEST['bbp_reply_to'], $reply_id );
|
639 |
+
} elseif ( bbp_thread_replies() ) {
|
640 |
+
$reply_to = bbp_get_reply_to( $reply_id );
|
641 |
}
|
642 |
|
643 |
/** Topic Tags ************************************************************/
|
644 |
|
645 |
// Either replace terms
|
646 |
+
if ( bbp_allow_topic_tags() && current_user_can( 'assign_topic_tags', $topic_id ) && ! empty( $_POST['bbp_topic_tags'] ) ) {
|
647 |
$terms = sanitize_text_field( $_POST['bbp_topic_tags'] );
|
648 |
|
649 |
// ...or remove them.
|
810 |
if ( ! empty( $anonymous_data ) ) {
|
811 |
|
812 |
// Update anonymous meta data (not cookies)
|
813 |
+
bbp_update_anonymous_post_author( $reply_id, $anonymous_data, bbp_get_reply_post_type() );
|
814 |
|
815 |
// Set transient for throttle check (only on new, not edit)
|
816 |
if ( empty( $is_edit ) ) {
|
855 |
// Walk up ancestors and do the dirty work
|
856 |
bbp_update_reply_walker( $reply_id, $last_active_time, $forum_id, $topic_id, false );
|
857 |
}
|
858 |
+
|
859 |
+
// Bump the custom query cache
|
860 |
+
wp_cache_set( 'last_changed', microtime(), 'bbpress_posts' );
|
861 |
}
|
862 |
|
863 |
/**
|
1004 |
}
|
1005 |
|
1006 |
// Update the forum ID
|
1007 |
+
$retval = bbp_update_forum_id( $reply_id, $forum_id );
|
1008 |
|
1009 |
// Filter & return
|
1010 |
+
return (int) apply_filters( 'bbp_update_reply_forum_id', $retval, $reply_id, $forum_id );
|
1011 |
}
|
1012 |
|
1013 |
/**
|
1047 |
}
|
1048 |
|
1049 |
// Update the topic ID
|
1050 |
+
$retval = bbp_update_topic_id( $reply_id, $topic_id );
|
1051 |
|
1052 |
// Filter & return
|
1053 |
+
return (int) apply_filters( 'bbp_update_reply_topic_id', $retval, $reply_id, $topic_id );
|
1054 |
}
|
1055 |
|
1056 |
/*
|
1632 |
bbp_get_public_status_id() => _x( 'Publish', 'Publish the reply', 'bbpress' ),
|
1633 |
bbp_get_spam_status_id() => _x( 'Spam', 'Spam the reply', 'bbpress' ),
|
1634 |
bbp_get_trash_status_id() => _x( 'Trash', 'Trash the reply', 'bbpress' ),
|
1635 |
+
bbp_get_pending_status_id() => _x( 'Pending', 'Mark reply as pending', 'bbpress' )
|
1636 |
), $reply_id );
|
1637 |
}
|
1638 |
|
1764 |
return $reply;
|
1765 |
}
|
1766 |
|
1767 |
+
// Get new status
|
1768 |
+
$status = bbp_get_public_status_id();
|
1769 |
+
|
1770 |
// Bail if already approved
|
1771 |
+
if ( $status === $reply->post_status ) {
|
1772 |
return false;
|
1773 |
}
|
1774 |
|
1776 |
do_action( 'bbp_approve_reply', $reply_id );
|
1777 |
|
1778 |
// Set publish status
|
1779 |
+
$reply->post_status = $status;
|
1780 |
|
1781 |
// No revisions
|
1782 |
remove_action( 'pre_post_update', 'wp_save_post_revision' );
|
1807 |
return $reply;
|
1808 |
}
|
1809 |
|
1810 |
+
// Get new status
|
1811 |
+
$status = bbp_get_pending_status_id();
|
1812 |
+
|
1813 |
// Bail if already pending
|
1814 |
+
if ( $status === $reply->post_status ) {
|
1815 |
return false;
|
1816 |
}
|
1817 |
|
1819 |
do_action( 'bbp_unapprove_reply', $reply_id );
|
1820 |
|
1821 |
// Set pending status
|
1822 |
+
$reply->post_status = $status;
|
1823 |
|
1824 |
// No revisions
|
1825 |
remove_action( 'pre_post_update', 'wp_save_post_revision' );
|
2096 |
|
2097 |
<channel>
|
2098 |
|
2099 |
+
<title><?php echo $title; // Already escaped ?></title>
|
2100 |
<atom:link href="<?php self_link(); ?>" rel="self" type="application/rss+xml" />
|
2101 |
<link><?php self_link(); ?></link>
|
2102 |
<description><?php //?></description>
|
2103 |
<lastBuildDate><?php echo date( 'r' ); ?></lastBuildDate>
|
2104 |
+
<generator><?php echo esc_url_raw( 'https://bbpress.org/?v=' . convert_chars( bbp_get_version() ) ); ?></generator>
|
2105 |
<language><?php bloginfo_rss( 'language' ); ?></language>
|
2106 |
|
2107 |
<?php do_action( 'bbp_feed_head' ); ?>
|
2207 |
*
|
2208 |
* @return mixed
|
2209 |
*/
|
2210 |
+
function bbp_update_reply_position( $reply_id = 0, $reply_position = false ) {
|
2211 |
|
2212 |
// Bail if reply_id is empty
|
2213 |
$reply_id = bbp_get_reply_id( $reply_id );
|
2215 |
return false;
|
2216 |
}
|
2217 |
|
2218 |
+
// Prepare the reply position
|
2219 |
+
$reply_position = is_numeric( $reply_position )
|
2220 |
+
? (int) $reply_position
|
2221 |
+
: bbp_get_reply_position_raw( $reply_id, bbp_get_reply_topic_id( $reply_id ) );
|
2222 |
+
|
2223 |
+
// Get the current reply position
|
2224 |
+
$current_position = get_post_field( 'menu_order', $reply_id );
|
2225 |
+
|
2226 |
+
// Bail if no change
|
2227 |
+
if ( $reply_position === $current_position ) {
|
2228 |
+
return false;
|
2229 |
}
|
2230 |
|
2231 |
+
// Filters not removed
|
2232 |
+
$removed = false;
|
2233 |
+
|
2234 |
// Toggle revisions off as we are not altering content
|
2235 |
+
if ( has_filter( 'clean_post_cache', 'bbp_clean_post_cache' ) ) {
|
2236 |
+
$removed = true;
|
2237 |
+
remove_filter( 'clean_post_cache', 'bbp_clean_post_cache', 10, 2 );
|
2238 |
}
|
2239 |
|
2240 |
// Update the replies' 'menu_order' with the reply position
|
2241 |
+
$bbp_db = bbp_db();
|
2242 |
+
$bbp_db->update( $bbp_db->posts, array( 'menu_order' => $reply_position ), array( 'ID' => $reply_id ) );
|
2243 |
+
clean_post_cache( $reply_id );
|
|
|
2244 |
|
2245 |
// Toggle revisions back on
|
2246 |
+
if ( true === $removed ) {
|
2247 |
+
$removed = false;
|
2248 |
+
add_filter( 'clean_post_cache', 'bbp_clean_post_cache', 10, 2 );
|
2249 |
}
|
2250 |
|
2251 |
return (int) $reply_position;
|
2263 |
function bbp_get_reply_position_raw( $reply_id = 0, $topic_id = 0 ) {
|
2264 |
|
2265 |
// Get required data
|
|
|
|
|
2266 |
$reply_position = 0;
|
2267 |
+
$reply_id = bbp_get_reply_id( $reply_id );
|
2268 |
+
$topic_id = ! empty( $topic_id )
|
2269 |
+
? bbp_get_topic_id( $topic_id )
|
2270 |
+
: bbp_get_reply_topic_id( $reply_id );
|
2271 |
|
2272 |
// If reply is actually the first post in a topic, return 0
|
2273 |
if ( $reply_id !== $topic_id ) {
|
includes/replies/template.php
CHANGED
@@ -46,25 +46,37 @@ function bbp_get_reply_post_type_labels() {
|
|
46 |
|
47 |
// Filter & return
|
48 |
return (array) apply_filters( 'bbp_get_reply_post_type_labels', array(
|
49 |
-
'name' =>
|
50 |
-
'menu_name' =>
|
51 |
-
'singular_name' =>
|
52 |
-
'all_items' =>
|
53 |
-
'add_new' =>
|
54 |
-
'add_new_item' =>
|
55 |
-
'edit' =>
|
56 |
-
'edit_item' =>
|
57 |
-
'new_item' =>
|
58 |
-
'view' =>
|
59 |
-
'view_item' =>
|
60 |
-
'view_items' =>
|
61 |
-
'search_items' =>
|
62 |
-
'not_found' =>
|
63 |
-
'not_found_in_trash' =>
|
64 |
-
'filter_items_list' =>
|
65 |
-
'items_list' =>
|
66 |
-
'items_list_navigation' =>
|
67 |
-
'parent_item_colon' =>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
68 |
) );
|
69 |
}
|
70 |
|
@@ -147,13 +159,7 @@ function bbp_has_replies( $args = array() ) {
|
|
147 |
if ( bbp_get_view_all( 'edit_others_replies' ) ) {
|
148 |
|
149 |
// Default view=all statuses
|
150 |
-
$post_statuses =
|
151 |
-
bbp_get_public_status_id(),
|
152 |
-
bbp_get_closed_status_id(),
|
153 |
-
bbp_get_spam_status_id(),
|
154 |
-
bbp_get_trash_status_id(),
|
155 |
-
bbp_get_pending_status_id()
|
156 |
-
);
|
157 |
|
158 |
// Add support for private status
|
159 |
if ( current_user_can( 'read_private_replies' ) ) {
|
@@ -446,14 +452,15 @@ function bbp_reply_url( $reply_id = 0 ) {
|
|
446 |
|
447 |
// Don't include pagination if on first page
|
448 |
if ( 1 >= $reply_page ) {
|
449 |
-
$url =
|
450 |
|
451 |
// Include pagination
|
452 |
} else {
|
453 |
|
454 |
// Pretty permalinks
|
455 |
if ( bbp_use_pretty_urls() ) {
|
456 |
-
$url = trailingslashit( $topic_url ) . trailingslashit( bbp_get_paged_slug() ) .
|
|
|
457 |
|
458 |
// Yucky links
|
459 |
} else {
|
@@ -517,7 +524,7 @@ function bbp_reply_title( $reply_id = 0 ) {
|
|
517 |
$topic_title = bbp_get_reply_topic_title( $post_id );
|
518 |
|
519 |
// Get empty reply title fallback.
|
520 |
-
$reply_title = sprintf(
|
521 |
|
522 |
// Filter & return
|
523 |
return apply_filters( 'bbp_get_reply_title_fallback', $reply_title, $post_id, $topic_title );
|
@@ -595,7 +602,7 @@ function bbp_reply_excerpt( $reply_id = 0, $length = 100 ) {
|
|
595 |
}
|
596 |
|
597 |
if ( ! empty( $length ) && ( $excerpt_length > $length ) ) {
|
598 |
-
$excerpt =
|
599 |
$excerpt .= '…';
|
600 |
}
|
601 |
|
@@ -786,7 +793,7 @@ function bbp_get_reply_revisions( $reply_id = 0 ) {
|
|
786 |
*/
|
787 |
function bbp_get_reply_revision_count( $reply_id = 0, $integer = false ) {
|
788 |
$reply_id = bbp_get_reply_id( $reply_id );
|
789 |
-
$count =
|
790 |
$filter = ( true === $integer )
|
791 |
? 'bbp_get_reply_revision_count_int'
|
792 |
: 'bbp_get_reply_revision_count';
|
@@ -819,6 +826,60 @@ function bbp_reply_status( $reply_id = 0 ) {
|
|
819 |
return apply_filters( 'bbp_get_reply_status', get_post_status( $reply_id ), $reply_id );
|
820 |
}
|
821 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
822 |
/**
|
823 |
* Is the reply not spam or deleted?
|
824 |
*
|
@@ -1133,10 +1194,11 @@ function bbp_reply_author_link( $args = array() ) {
|
|
1133 |
|
1134 |
// Tweak link title if empty
|
1135 |
if ( empty( $r['link_title'] ) ) {
|
1136 |
-
$author
|
1137 |
-
$title
|
1138 |
-
?
|
1139 |
-
:
|
|
|
1140 |
$link_title = sprintf( $title, $author );
|
1141 |
|
1142 |
// Use what was passed if not
|
@@ -1160,31 +1222,27 @@ function bbp_reply_author_link( $args = array() ) {
|
|
1160 |
$author_links['name'] = esc_html( bbp_get_reply_author_display_name( $reply_id ) );
|
1161 |
}
|
1162 |
|
1163 |
-
//
|
1164 |
-
$
|
1165 |
-
|
1166 |
-
|
1167 |
-
|
1168 |
-
|
1169 |
-
// Empty array
|
1170 |
-
$links = array();
|
1171 |
|
1172 |
-
|
1173 |
-
|
1174 |
-
|
1175 |
-
|
1176 |
-
|
1177 |
-
|
1178 |
-
// Role is not linked
|
1179 |
-
if ( true === $r['show_role'] ) {
|
1180 |
-
$links[] = bbp_get_reply_author_role( array( 'reply_id' => $reply_id ) );
|
1181 |
-
}
|
1182 |
|
1183 |
-
|
1184 |
-
|
1185 |
-
|
1186 |
}
|
1187 |
|
|
|
|
|
|
|
|
|
1188 |
// Filter sections
|
1189 |
$sections = apply_filters( 'bbp_get_reply_author_links', $author_links, $r, $args );
|
1190 |
|
46 |
|
47 |
// Filter & return
|
48 |
return (array) apply_filters( 'bbp_get_reply_post_type_labels', array(
|
49 |
+
'name' => esc_attr__( 'Replies', 'bbpress' ),
|
50 |
+
'menu_name' => esc_attr__( 'Replies', 'bbpress' ),
|
51 |
+
'singular_name' => esc_attr_x( 'Reply', 'noun', 'bbpress' ),
|
52 |
+
'all_items' => esc_attr__( 'All Replies', 'bbpress' ),
|
53 |
+
'add_new' => esc_attr__( 'Add New', 'bbpress' ),
|
54 |
+
'add_new_item' => esc_attr__( 'Create New Reply', 'bbpress' ),
|
55 |
+
'edit' => esc_attr__( 'Edit', 'bbpress' ),
|
56 |
+
'edit_item' => esc_attr__( 'Edit Reply', 'bbpress' ),
|
57 |
+
'new_item' => esc_attr__( 'New Reply', 'bbpress' ),
|
58 |
+
'view' => esc_attr__( 'View Reply', 'bbpress' ),
|
59 |
+
'view_item' => esc_attr__( 'View Reply', 'bbpress' ),
|
60 |
+
'view_items' => esc_attr__( 'View Replies', 'bbpress' ),
|
61 |
+
'search_items' => esc_attr__( 'Search Replies', 'bbpress' ),
|
62 |
+
'not_found' => esc_attr__( 'No replies found', 'bbpress' ),
|
63 |
+
'not_found_in_trash' => esc_attr__( 'No replies found in Trash', 'bbpress' ),
|
64 |
+
'filter_items_list' => esc_attr__( 'Filter replies list', 'bbpress' ),
|
65 |
+
'items_list' => esc_attr__( 'Replies list', 'bbpress' ),
|
66 |
+
'items_list_navigation' => esc_attr__( 'Replies list navigation', 'bbpress' ),
|
67 |
+
'parent_item_colon' => esc_attr__( 'Parent Topic:', 'bbpress' ),
|
68 |
+
'all_items' => esc_attr__( 'All Replies', 'bbpress' ),
|
69 |
+
'archives' => esc_attr__( 'Forum Replies', 'bbpress' ),
|
70 |
+
'attributes' => esc_attr__( 'Reply Attributes', 'bbpress' ),
|
71 |
+
'insert_into_item' => esc_attr__( 'Insert into reply', 'bbpress' ),
|
72 |
+
'uploaded_to_this_item' => esc_attr__( 'Uploaded to this reply', 'bbpress' ),
|
73 |
+
'featured_image' => esc_attr__( 'Reply Image', 'bbpress' ),
|
74 |
+
'set_featured_image' => esc_attr__( 'Set reply image', 'bbpress' ),
|
75 |
+
'remove_featured_image' => esc_attr__( 'Remove reply image', 'bbpress' ),
|
76 |
+
'use_featured_image' => esc_attr__( 'Use as reply image', 'bbpress' ),
|
77 |
+
'filter_items_list' => esc_attr__( 'Filter reply list', 'bbpress' ),
|
78 |
+
'items_list_navigation' => esc_attr__( 'Reply list navigation', 'bbpress' ),
|
79 |
+
'items_list' => esc_attr__( 'Reply list', 'bbpress' )
|
80 |
) );
|
81 |
}
|
82 |
|
159 |
if ( bbp_get_view_all( 'edit_others_replies' ) ) {
|
160 |
|
161 |
// Default view=all statuses
|
162 |
+
$post_statuses = array_keys( bbp_get_topic_statuses() );
|
|
|
|
|
|
|
|
|
|
|
|
|
163 |
|
164 |
// Add support for private status
|
165 |
if ( current_user_can( 'read_private_replies' ) ) {
|
452 |
|
453 |
// Don't include pagination if on first page
|
454 |
if ( 1 >= $reply_page ) {
|
455 |
+
$url = user_trailingslashit( $topic_url ) . $reply_hash;
|
456 |
|
457 |
// Include pagination
|
458 |
} else {
|
459 |
|
460 |
// Pretty permalinks
|
461 |
if ( bbp_use_pretty_urls() ) {
|
462 |
+
$url = trailingslashit( $topic_url ) . trailingslashit( bbp_get_paged_slug() ) . $reply_page;
|
463 |
+
$url = user_trailingslashit( $url ) . $reply_hash;
|
464 |
|
465 |
// Yucky links
|
466 |
} else {
|
524 |
$topic_title = bbp_get_reply_topic_title( $post_id );
|
525 |
|
526 |
// Get empty reply title fallback.
|
527 |
+
$reply_title = sprintf( esc_html__( 'Reply To: %s', 'bbpress' ), $topic_title );
|
528 |
|
529 |
// Filter & return
|
530 |
return apply_filters( 'bbp_get_reply_title_fallback', $reply_title, $post_id, $topic_title );
|
602 |
}
|
603 |
|
604 |
if ( ! empty( $length ) && ( $excerpt_length > $length ) ) {
|
605 |
+
$excerpt = mb_substr( $excerpt, 0, $length - 1 );
|
606 |
$excerpt .= '…';
|
607 |
}
|
608 |
|
793 |
*/
|
794 |
function bbp_get_reply_revision_count( $reply_id = 0, $integer = false ) {
|
795 |
$reply_id = bbp_get_reply_id( $reply_id );
|
796 |
+
$count = count( bbp_get_reply_revisions( $reply_id ) );
|
797 |
$filter = ( true === $integer )
|
798 |
? 'bbp_get_reply_revision_count_int'
|
799 |
: 'bbp_get_reply_revision_count';
|
826 |
return apply_filters( 'bbp_get_reply_status', get_post_status( $reply_id ), $reply_id );
|
827 |
}
|
828 |
|
829 |
+
/**
|
830 |
+
* Return array of public reply statuses.
|
831 |
+
*
|
832 |
+
* @since 2.6.0 bbPress (r6705)
|
833 |
+
*
|
834 |
+
* @return array
|
835 |
+
*/
|
836 |
+
function bbp_get_public_reply_statuses() {
|
837 |
+
$statuses = array(
|
838 |
+
bbp_get_public_status_id()
|
839 |
+
);
|
840 |
+
|
841 |
+
// Filter & return
|
842 |
+
return (array) apply_filters( 'bbp_get_public_reply_statuses', $statuses );
|
843 |
+
}
|
844 |
+
|
845 |
+
/**
|
846 |
+
* Return array of non-public reply statuses.
|
847 |
+
*
|
848 |
+
* @since 2.6.0 bbPress (r6791)
|
849 |
+
*
|
850 |
+
* @return array
|
851 |
+
*/
|
852 |
+
function bbp_get_non_public_reply_statuses() {
|
853 |
+
$statuses = array(
|
854 |
+
bbp_get_trash_status_id(),
|
855 |
+
bbp_get_spam_status_id(),
|
856 |
+
bbp_get_pending_status_id()
|
857 |
+
);
|
858 |
+
|
859 |
+
// Filter & return
|
860 |
+
return (array) apply_filters( 'bbp_get_non_public_reply_statuses', $statuses );
|
861 |
+
}
|
862 |
+
|
863 |
+
/**
|
864 |
+
* Is the reply publicly viewable?
|
865 |
+
*
|
866 |
+
* See bbp_get_public_reply_statuses() for public statuses.
|
867 |
+
*
|
868 |
+
* @since 2.6.0 bbPress (r6391)
|
869 |
+
*
|
870 |
+
* @param int $reply_id Optional. Reply id
|
871 |
+
* @return bool True if public, false if not.
|
872 |
+
*/
|
873 |
+
function bbp_is_reply_public( $reply_id = 0 ) {
|
874 |
+
$reply_id = bbp_get_reply_id( $reply_id );
|
875 |
+
$status = bbp_get_reply_status( $reply_id );
|
876 |
+
$public = bbp_get_public_reply_statuses();
|
877 |
+
$is_public = in_array( $status, $public, true );
|
878 |
+
|
879 |
+
// Filter & return
|
880 |
+
return (bool) apply_filters( 'bbp_is_reply_public', $is_public, $reply_id );
|
881 |
+
}
|
882 |
+
|
883 |
/**
|
884 |
* Is the reply not spam or deleted?
|
885 |
*
|
1194 |
|
1195 |
// Tweak link title if empty
|
1196 |
if ( empty( $r['link_title'] ) ) {
|
1197 |
+
$author = bbp_get_reply_author_display_name( $reply_id );
|
1198 |
+
$title = empty( $anonymous )
|
1199 |
+
? esc_attr__( "View %s's profile", 'bbpress' )
|
1200 |
+
: esc_attr__( "Visit %s's website", 'bbpress' );
|
1201 |
+
|
1202 |
$link_title = sprintf( $title, $author );
|
1203 |
|
1204 |
// Use what was passed if not
|
1222 |
$author_links['name'] = esc_html( bbp_get_reply_author_display_name( $reply_id ) );
|
1223 |
}
|
1224 |
|
1225 |
+
// Empty array
|
1226 |
+
$links = array();
|
1227 |
+
$sprint = empty( $anonymous ) && bbp_user_has_profile( bbp_get_reply_author_id( $reply_id ) )
|
1228 |
+
? '<a href="%1$s"%2$s%3$s>%4$s</a>'
|
1229 |
+
: '<span %2$s%3$s>%4$s</span>';
|
|
|
|
|
|
|
1230 |
|
1231 |
+
// Wrap each link
|
1232 |
+
foreach ( $author_links as $link => $link_text ) {
|
1233 |
+
$link_class = ' class="bbp-author-' . esc_attr( $link ) . '"';
|
1234 |
+
$links[] = sprintf( $sprint, esc_url( $author_url ), $link_title, $link_class, $link_text );
|
1235 |
+
}
|
|
|
|
|
|
|
|
|
|
|
1236 |
|
1237 |
+
// Role is not linked
|
1238 |
+
if ( true === $r['show_role'] ) {
|
1239 |
+
$links[] = bbp_get_reply_author_role( array( 'reply_id' => $reply_id ) );
|
1240 |
}
|
1241 |
|
1242 |
+
// Juggle
|
1243 |
+
$author_links = $links;
|
1244 |
+
unset( $links );
|
1245 |
+
|
1246 |
// Filter sections
|
1247 |
$sections = apply_filters( 'bbp_get_reply_author_links', $author_links, $r, $args );
|
1248 |
|
includes/search/template.php
CHANGED
@@ -25,7 +25,7 @@ function bbp_has_search_results( $args = array() ) {
|
|
25 |
/** Defaults **************************************************************/
|
26 |
|
27 |
$default_search_terms = bbp_get_search_terms();
|
28 |
-
$default_post_types =
|
29 |
|
30 |
// Default query args
|
31 |
$default = array(
|
@@ -202,6 +202,8 @@ function bbp_search_url() {
|
|
202 |
|
203 |
// Pretty permalinks
|
204 |
if ( bbp_use_pretty_urls() ) {
|
|
|
|
|
205 |
$url = bbp_get_root_url() . bbp_get_search_slug();
|
206 |
$url = user_trailingslashit( $url );
|
207 |
$url = home_url( $url );
|
@@ -308,8 +310,8 @@ function bbp_search_terms( $search_terms = '' ) {
|
|
308 |
}
|
309 |
}
|
310 |
|
311 |
-
// Trim whitespace
|
312 |
-
$search_terms = ! empty( $search_terms )
|
313 |
? urldecode( trim( $search_terms ) )
|
314 |
: false;
|
315 |
|
@@ -333,15 +335,15 @@ function bbp_get_search_pagination_base() {
|
|
333 |
|
334 |
// Shortcode territory
|
335 |
if ( is_page() || is_single() ) {
|
336 |
-
$base =
|
337 |
|
338 |
// Default search location
|
339 |
} else {
|
340 |
-
$base =
|
341 |
}
|
342 |
|
343 |
// Add pagination base
|
344 |
-
$base = $base . user_trailingslashit( bbp_get_paged_slug() . '/%#%/' );
|
345 |
|
346 |
// Unpretty permalinks
|
347 |
} else {
|
25 |
/** Defaults **************************************************************/
|
26 |
|
27 |
$default_search_terms = bbp_get_search_terms();
|
28 |
+
$default_post_types = bbp_get_post_types();
|
29 |
|
30 |
// Default query args
|
31 |
$default = array(
|
202 |
|
203 |
// Pretty permalinks
|
204 |
if ( bbp_use_pretty_urls() ) {
|
205 |
+
|
206 |
+
// Run through home_url()
|
207 |
$url = bbp_get_root_url() . bbp_get_search_slug();
|
208 |
$url = user_trailingslashit( $url );
|
209 |
$url = home_url( $url );
|
310 |
}
|
311 |
}
|
312 |
|
313 |
+
// Trim whitespace & decode if non-empty string, or set to false
|
314 |
+
$search_terms = ! empty( $search_terms ) && is_string( $search_terms )
|
315 |
? urldecode( trim( $search_terms ) )
|
316 |
: false;
|
317 |
|
335 |
|
336 |
// Shortcode territory
|
337 |
if ( is_page() || is_single() ) {
|
338 |
+
$base = get_permalink();
|
339 |
|
340 |
// Default search location
|
341 |
} else {
|
342 |
+
$base = bbp_get_search_results_url();
|
343 |
}
|
344 |
|
345 |
// Add pagination base
|
346 |
+
$base = trailingslashit( $base ) . user_trailingslashit( bbp_get_paged_slug() . '/%#%/' );
|
347 |
|
348 |
// Unpretty permalinks
|
349 |
} else {
|
includes/topics/capabilities.php
CHANGED
@@ -54,10 +54,10 @@ function bbp_get_topic_tag_caps() {
|
|
54 |
*
|
55 |
* @since 2.2.0 bbPress (r4242)
|
56 |
*
|
57 |
-
* @param array
|
58 |
-
* @param string $cap
|
59 |
-
* @param int
|
60 |
-
* @param array
|
61 |
*
|
62 |
* @return array Actual capabilities for meta capability
|
63 |
*/
|
@@ -77,7 +77,12 @@ function bbp_map_topic_meta_caps( $caps = array(), $cap = '', $user_id = 0, $arg
|
|
77 |
// Do some post ID based logic
|
78 |
} else {
|
79 |
|
80 |
-
//
|
|
|
|
|
|
|
|
|
|
|
81 |
$_post = get_post( $args[0] );
|
82 |
if ( ! empty( $_post ) ) {
|
83 |
|
@@ -145,7 +150,12 @@ function bbp_map_topic_meta_caps( $caps = array(), $cap = '', $user_id = 0, $arg
|
|
145 |
// Used everywhere
|
146 |
case 'edit_topic' :
|
147 |
|
148 |
-
//
|
|
|
|
|
|
|
|
|
|
|
149 |
$_post = get_post( $args[0] );
|
150 |
if ( ! empty( $_post ) ) {
|
151 |
|
@@ -156,14 +166,18 @@ function bbp_map_topic_meta_caps( $caps = array(), $cap = '', $user_id = 0, $arg
|
|
156 |
if ( bbp_is_user_inactive( $user_id ) ) {
|
157 |
$caps = array( 'do_not_allow' );
|
158 |
|
159 |
-
// User is author so allow edit if not in admin
|
160 |
-
} elseif ( ! is_admin() && ( (int) $user_id === (int) $_post->post_author ) ) {
|
161 |
-
$caps = array( $post_type->cap->edit_posts );
|
162 |
-
|
163 |
// Moderators can always edit forum content
|
164 |
} elseif ( user_can( $user_id, 'moderate', $_post->ID ) ) {
|
165 |
$caps = array( 'spectate' );
|
166 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
167 |
// Unknown, so map to edit_others_posts
|
168 |
} else {
|
169 |
$caps = array( $post_type->cap->edit_others_posts );
|
@@ -176,7 +190,12 @@ function bbp_map_topic_meta_caps( $caps = array(), $cap = '', $user_id = 0, $arg
|
|
176 |
|
177 |
case 'delete_topic' :
|
178 |
|
179 |
-
//
|
|
|
|
|
|
|
|
|
|
|
180 |
$_post = get_post( $args[0] );
|
181 |
if ( ! empty( $_post ) ) {
|
182 |
|
@@ -241,16 +260,120 @@ function bbp_map_topic_tag_meta_caps( $caps, $cap, $user_id, $args ) {
|
|
241 |
|
242 |
// What capability is being checked?
|
243 |
switch ( $cap ) {
|
244 |
-
|
245 |
-
|
246 |
-
|
247 |
-
case 'assign_topic_tags'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
248 |
case 'bbp_topic_tags_admin' :
|
249 |
|
250 |
// Moderators can always edit
|
251 |
if ( user_can( $user_id, 'moderate' ) ) {
|
252 |
$caps = array( 'moderate' );
|
253 |
}
|
|
|
|
|
254 |
}
|
255 |
|
256 |
// Filter & return
|
54 |
*
|
55 |
* @since 2.2.0 bbPress (r4242)
|
56 |
*
|
57 |
+
* @param array $caps Capabilities for meta capability.
|
58 |
+
* @param string $cap Capability name.
|
59 |
+
* @param int $user_id User id.
|
60 |
+
* @param array $args Arguments.
|
61 |
*
|
62 |
* @return array Actual capabilities for meta capability
|
63 |
*/
|
77 |
// Do some post ID based logic
|
78 |
} else {
|
79 |
|
80 |
+
// Bail if no post ID
|
81 |
+
if ( empty( $args[0] ) ) {
|
82 |
+
return $caps;
|
83 |
+
}
|
84 |
+
|
85 |
+
// Get the post.
|
86 |
$_post = get_post( $args[0] );
|
87 |
if ( ! empty( $_post ) ) {
|
88 |
|
150 |
// Used everywhere
|
151 |
case 'edit_topic' :
|
152 |
|
153 |
+
// Bail if no post ID
|
154 |
+
if ( empty( $args[0] ) ) {
|
155 |
+
return $caps;
|
156 |
+
}
|
157 |
+
|
158 |
+
// Get the post.
|
159 |
$_post = get_post( $args[0] );
|
160 |
if ( ! empty( $_post ) ) {
|
161 |
|
166 |
if ( bbp_is_user_inactive( $user_id ) ) {
|
167 |
$caps = array( 'do_not_allow' );
|
168 |
|
|
|
|
|
|
|
|
|
169 |
// Moderators can always edit forum content
|
170 |
} elseif ( user_can( $user_id, 'moderate', $_post->ID ) ) {
|
171 |
$caps = array( 'spectate' );
|
172 |
|
173 |
+
// User is author so allow edit if not in admin, unless it's past edit lock time
|
174 |
+
} elseif ( ! is_admin() && ( (int) $user_id === (int) $_post->post_author ) ) {
|
175 |
+
|
176 |
+
// Only allow if not past the edit-lock period
|
177 |
+
$caps = ! bbp_past_edit_lock( $_post->post_date_gmt )
|
178 |
+
? array( $post_type->cap->edit_posts )
|
179 |
+
: array( 'do_not_allow' );
|
180 |
+
|
181 |
// Unknown, so map to edit_others_posts
|
182 |
} else {
|
183 |
$caps = array( $post_type->cap->edit_others_posts );
|
190 |
|
191 |
case 'delete_topic' :
|
192 |
|
193 |
+
// Bail if no post ID
|
194 |
+
if ( empty( $args[0] ) ) {
|
195 |
+
return $caps;
|
196 |
+
}
|
197 |
+
|
198 |
+
// Get the post.
|
199 |
$_post = get_post( $args[0] );
|
200 |
if ( ! empty( $_post ) ) {
|
201 |
|
260 |
|
261 |
// What capability is being checked?
|
262 |
switch ( $cap ) {
|
263 |
+
|
264 |
+
/** Assignment ********************************************************/
|
265 |
+
|
266 |
+
case 'assign_topic_tags' :
|
267 |
+
|
268 |
+
// Get post
|
269 |
+
$post_id = ! empty( $args[0] )
|
270 |
+
? get_post( $args[0] )->ID
|
271 |
+
: 0;
|
272 |
+
|
273 |
+
// Add 'do_not_allow' cap if user is spam or deleted
|
274 |
+
if ( bbp_is_user_inactive( $user_id ) ) {
|
275 |
+
$caps = array( 'do_not_allow' );
|
276 |
+
|
277 |
+
// Moderators can always assign
|
278 |
+
} elseif ( user_can( $user_id, 'moderate', $post_id ) ) {
|
279 |
+
$caps = array( 'moderate' );
|
280 |
+
|
281 |
+
// Do not allow if topic tags are disabled
|
282 |
+
} elseif ( ! bbp_allow_topic_tags() ) {
|
283 |
+
$caps = array( 'do_not_allow' );
|
284 |
+
}
|
285 |
+
|
286 |
+
break;
|
287 |
+
|
288 |
+
/** Management ********************************************************/
|
289 |
+
|
290 |
+
case 'manage_topic_tags' :
|
291 |
+
|
292 |
+
// Moderators can always edit
|
293 |
+
if ( user_can( $user_id, 'moderate' ) ) {
|
294 |
+
$caps = array( 'moderate' );
|
295 |
+
}
|
296 |
+
|
297 |
+
break;
|
298 |
+
|
299 |
+
/** Editing ***********************************************************/
|
300 |
+
|
301 |
+
case 'edit_topic_tags' :
|
302 |
+
|
303 |
+
// Moderators can always edit
|
304 |
+
if ( user_can( $user_id, 'moderate' ) ) {
|
305 |
+
$caps = array( 'moderate' );
|
306 |
+
}
|
307 |
+
|
308 |
+
break;
|
309 |
+
|
310 |
+
case 'edit_topic_tag' :
|
311 |
+
|
312 |
+
// Get the term
|
313 |
+
$_tag = get_term( $args[0], bbp_get_topic_tag_tax_id() );
|
314 |
+
if ( ! empty( $_tag ) ) {
|
315 |
+
|
316 |
+
// Add 'do_not_allow' cap if user is spam or deleted
|
317 |
+
if ( bbp_is_user_inactive( $user_id ) ) {
|
318 |
+
$caps = array( 'do_not_allow' );
|
319 |
+
|
320 |
+
// Moderators can always edit topic tags
|
321 |
+
} elseif ( user_can( $user_id, 'moderate', $_tag->term_id ) ) {
|
322 |
+
$caps = array( 'spectate' );
|
323 |
+
|
324 |
+
// Fallback to edit_terms.
|
325 |
+
} else {
|
326 |
+
$taxonomy = get_taxonomy( bbp_get_topic_tag_tax_id() );
|
327 |
+
$caps = array( $taxonomy->cap->edit_terms );
|
328 |
+
}
|
329 |
+
}
|
330 |
+
|
331 |
+
break;
|
332 |
+
|
333 |
+
/** Deleting **********************************************************/
|
334 |
+
|
335 |
+
case 'delete_topic_tags' :
|
336 |
+
|
337 |
+
// Moderators can always edit
|
338 |
+
if ( user_can( $user_id, 'moderate' ) ) {
|
339 |
+
$caps = array( 'moderate' );
|
340 |
+
}
|
341 |
+
|
342 |
+
break;
|
343 |
+
|
344 |
+
case 'delete_topic_tag' :
|
345 |
+
|
346 |
+
// Get the term
|
347 |
+
$_tag = get_term( $args[0], bbp_get_topic_tag_tax_id() );
|
348 |
+
if ( ! empty( $_tag ) ) {
|
349 |
+
|
350 |
+
// Add 'do_not_allow' cap if user is spam or deleted
|
351 |
+
if ( bbp_is_user_inactive( $user_id ) ) {
|
352 |
+
$caps = array( 'do_not_allow' );
|
353 |
+
|
354 |
+
// Moderators can always delete topic tags
|
355 |
+
} elseif ( user_can( $user_id, 'moderate', $_tag->term_id ) ) {
|
356 |
+
$caps = array( 'spectate' );
|
357 |
+
|
358 |
+
// Fallback to delete_terms.
|
359 |
+
} else {
|
360 |
+
$taxonomy = get_taxonomy( $_tag->post_type );
|
361 |
+
$caps = array( $taxonomy->cap->delete_terms );
|
362 |
+
}
|
363 |
+
}
|
364 |
+
|
365 |
+
break;
|
366 |
+
|
367 |
+
/** Admin *************************************************************/
|
368 |
+
|
369 |
case 'bbp_topic_tags_admin' :
|
370 |
|
371 |
// Moderators can always edit
|
372 |
if ( user_can( $user_id, 'moderate' ) ) {
|
373 |
$caps = array( 'moderate' );
|
374 |
}
|
375 |
+
|
376 |
+
break;
|
377 |
}
|
378 |
|
379 |
// Filter & return
|
includes/topics/functions.php
CHANGED
@@ -158,6 +158,11 @@ function bbp_new_topic_handler( $action = '' ) {
|
|
158 |
bbp_add_error( 'bbp_topic_title', __( '<strong>ERROR</strong>: Your topic needs a title.', 'bbpress' ) );
|
159 |
}
|
160 |
|
|
|
|
|
|
|
|
|
|
|
161 |
/** Topic Content *********************************************************/
|
162 |
|
163 |
if ( ! empty( $_POST['bbp_topic_content'] ) ) {
|
@@ -248,10 +253,10 @@ function bbp_new_topic_handler( $action = '' ) {
|
|
248 |
bbp_add_error( 'bbp_topic_duplicate', __( '<strong>ERROR</strong>: Duplicate topic detected; it looks as though you’ve already said that.', 'bbpress' ) );
|
249 |
}
|
250 |
|
251 |
-
/** Topic
|
252 |
|
253 |
-
if ( !
|
254 |
-
bbp_add_error( '
|
255 |
}
|
256 |
|
257 |
/** Topic Status **********************************************************/
|
@@ -263,7 +268,7 @@ function bbp_new_topic_handler( $action = '' ) {
|
|
263 |
if ( ! bbp_check_for_moderation( $anonymous_data, $topic_author, $topic_title, $topic_content ) ) {
|
264 |
$topic_status = bbp_get_pending_status_id();
|
265 |
|
266 |
-
// Check
|
267 |
} elseif ( ! empty( $_POST['bbp_topic_status'] ) && in_array( $_POST['bbp_topic_status'], array_keys( $topic_statuses ), true ) ) {
|
268 |
$topic_status = sanitize_key( $_POST['bbp_topic_status'] );
|
269 |
|
@@ -525,6 +530,11 @@ function bbp_edit_topic_handler( $action = '' ) {
|
|
525 |
bbp_add_error( 'bbp_edit_topic_title', __( '<strong>ERROR</strong>: Your topic needs a title.', 'bbpress' ) );
|
526 |
}
|
527 |
|
|
|
|
|
|
|
|
|
|
|
528 |
/** Topic Content *********************************************************/
|
529 |
|
530 |
if ( ! empty( $_POST['bbp_topic_content'] ) ) {
|
@@ -539,10 +549,10 @@ function bbp_edit_topic_handler( $action = '' ) {
|
|
539 |
bbp_add_error( 'bbp_edit_topic_content', __( '<strong>ERROR</strong>: Your topic cannot be empty.', 'bbpress' ) );
|
540 |
}
|
541 |
|
542 |
-
/** Topic
|
543 |
|
544 |
-
if ( !
|
545 |
-
bbp_add_error( '
|
546 |
}
|
547 |
|
548 |
/** Topic Status **********************************************************/
|
@@ -558,7 +568,7 @@ function bbp_edit_topic_handler( $action = '' ) {
|
|
558 |
$topic_status = bbp_get_pending_status_id();
|
559 |
}
|
560 |
|
561 |
-
// Check
|
562 |
} elseif ( ! empty( $_POST['bbp_topic_status'] ) && in_array( $_POST['bbp_topic_status'], array_keys( $topic_statuses ), true ) ) {
|
563 |
$topic_status = sanitize_key( $_POST['bbp_topic_status'] );
|
564 |
|
@@ -570,7 +580,7 @@ function bbp_edit_topic_handler( $action = '' ) {
|
|
570 |
/** Topic Tags ************************************************************/
|
571 |
|
572 |
// Either replace terms
|
573 |
-
if ( bbp_allow_topic_tags() && current_user_can( 'assign_topic_tags' ) && ! empty( $_POST['bbp_topic_tags'] ) ) {
|
574 |
|
575 |
// Escape tag input
|
576 |
$terms = sanitize_text_field( $_POST['bbp_topic_tags'] );
|
@@ -772,7 +782,7 @@ function bbp_update_topic( $topic_id = 0, $forum_id = 0, $anonymous_data = array
|
|
772 |
if ( ! empty( $anonymous_data ) ) {
|
773 |
|
774 |
// Update anonymous meta data (not cookies)
|
775 |
-
bbp_update_anonymous_post_author( $topic_id, $anonymous_data,
|
776 |
|
777 |
// Set transient for throttle check (only on new, not edit)
|
778 |
if ( empty( $is_edit ) ) {
|
@@ -822,6 +832,9 @@ function bbp_update_topic( $topic_id = 0, $forum_id = 0, $anonymous_data = array
|
|
822 |
// Walk up ancestors and do the dirty work
|
823 |
bbp_update_topic_walker( $topic_id, $last_active, $forum_id, 0, false );
|
824 |
}
|
|
|
|
|
|
|
825 |
}
|
826 |
|
827 |
/**
|
@@ -877,9 +890,13 @@ function bbp_update_topic_walker( $topic_id, $last_active_time = '', $forum_id =
|
|
877 |
// If ancestor is a forum, update counts
|
878 |
if ( bbp_is_forum( $ancestor ) ) {
|
879 |
|
|
|
|
|
|
|
880 |
// Update the forum
|
881 |
bbp_update_forum( array(
|
882 |
-
'forum_id' => $
|
|
|
883 |
'last_topic_id' => $topic_id,
|
884 |
'last_reply_id' => $reply_id,
|
885 |
'last_active_id' => $active_id,
|
@@ -973,7 +990,7 @@ function bbp_move_topic_handler( $topic_id, $old_forum_id, $new_forum_id ) {
|
|
973 |
$old_forum_ancestors = array_values( array_unique( array_merge( array( $old_forum_id ), (array) get_post_ancestors( $old_forum_id ) ) ) );
|
974 |
|
975 |
// Get reply count.
|
976 |
-
$public_reply_count =
|
977 |
|
978 |
// Topic status.
|
979 |
$topic_status = get_post_field( 'post_status', $topic_id );
|
@@ -1680,7 +1697,7 @@ function bbp_edit_topic_tag_handler( $action = '' ) {
|
|
1680 |
}
|
1681 |
|
1682 |
// Can user edit topic tags?
|
1683 |
-
if ( ! current_user_can( '
|
1684 |
bbp_add_error( 'bbp_manage_topic_tag_update_permission', __( '<strong>ERROR</strong>: You do not have permission to edit the topic tags.', 'bbpress' ) );
|
1685 |
return;
|
1686 |
}
|
@@ -1694,7 +1711,11 @@ function bbp_edit_topic_tag_handler( $action = '' ) {
|
|
1694 |
// Attempt to update the tag
|
1695 |
$slug = ! empty( $_POST['tag-slug'] ) ? $_POST['tag-slug'] : '';
|
1696 |
$description = ! empty( $_POST['tag-description'] ) ? $_POST['tag-description'] : '';
|
1697 |
-
$tag = wp_update_term( $tag_id, bbp_get_topic_tag_tax_id(), array(
|
|
|
|
|
|
|
|
|
1698 |
|
1699 |
// Cannot update tag
|
1700 |
if ( is_wp_error( $tag ) && $tag->get_error_message() ) {
|
@@ -1752,7 +1773,10 @@ function bbp_edit_topic_tag_handler( $action = '' ) {
|
|
1752 |
}
|
1753 |
|
1754 |
// Delete the old term
|
1755 |
-
$tag = wp_delete_term( $tag_id, bbp_get_topic_tag_tax_id(), array(
|
|
|
|
|
|
|
1756 |
|
1757 |
// Error merging the terms
|
1758 |
if ( is_wp_error( $tag ) && $tag->get_error_message() ) {
|
@@ -1778,7 +1802,7 @@ function bbp_edit_topic_tag_handler( $action = '' ) {
|
|
1778 |
}
|
1779 |
|
1780 |
// Can user delete topic tags?
|
1781 |
-
if ( ! current_user_can( '
|
1782 |
bbp_add_error( 'bbp_manage_topic_tag_delete_permission', __( '<strong>ERROR</strong>: You do not have permission to delete the topic tags.', 'bbpress' ) );
|
1783 |
return;
|
1784 |
}
|
@@ -2453,11 +2477,9 @@ function bbp_update_topic_reply_count( $topic_id = 0, $reply_count = 0 ) {
|
|
2453 |
: bbp_get_topic_id( $topic_id );
|
2454 |
|
2455 |
// Get replies of topic if not passed
|
2456 |
-
|
2457 |
-
|
2458 |
-
|
2459 |
-
|
2460 |
-
$reply_count = (int) $reply_count;
|
2461 |
|
2462 |
update_post_meta( $topic_id, '_bbp_reply_count', $reply_count );
|
2463 |
|
@@ -2483,15 +2505,9 @@ function bbp_update_topic_reply_count_hidden( $topic_id = 0, $reply_count = 0 )
|
|
2483 |
: bbp_get_topic_id( $topic_id );
|
2484 |
|
2485 |
// Get replies of topic
|
2486 |
-
|
2487 |
-
$
|
2488 |
-
|
2489 |
-
$bbp_db = bbp_db();
|
2490 |
-
$query = $bbp_db->prepare( "SELECT COUNT(ID) FROM {$bbp_db->posts} WHERE post_parent = %d AND post_status IN ( {$post_status} ) AND post_type = %s", $topic_id, bbp_get_reply_post_type() );
|
2491 |
-
$reply_count = $bbp_db->get_var( $query );
|
2492 |
-
}
|
2493 |
-
|
2494 |
-
$reply_count = (int) $reply_count;
|
2495 |
|
2496 |
update_post_meta( $topic_id, '_bbp_reply_count_hidden', $reply_count );
|
2497 |
|
@@ -2718,15 +2734,16 @@ function bbp_close_topic( $topic_id = 0 ) {
|
|
2718 |
}
|
2719 |
|
2720 |
// Get previous topic status meta
|
|
|
2721 |
$topic_status = get_post_meta( $topic_id, '_bbp_status', true );
|
2722 |
|
2723 |
// Bail if already closed and topic status meta exists
|
2724 |
-
if (
|
2725 |
return false;
|
2726 |
}
|
2727 |
|
2728 |
// Set status meta public
|
2729 |
-
$topic_status =
|
2730 |
|
2731 |
// Execute pre close code
|
2732 |
do_action( 'bbp_close_topic', $topic_id );
|
@@ -2735,7 +2752,7 @@ function bbp_close_topic( $topic_id = 0 ) {
|
|
2735 |
add_post_meta( $topic_id, '_bbp_status', $topic_status );
|
2736 |
|
2737 |
// Set closed status
|
2738 |
-
$topic->post_status =
|
2739 |
|
2740 |
// Toggle revisions off as we are not altering content
|
2741 |
if ( post_type_supports( bbp_get_topic_post_type(), 'revisions' ) ) {
|
@@ -2835,8 +2852,11 @@ function bbp_spam_topic( $topic_id = 0 ) {
|
|
2835 |
return $topic;
|
2836 |
}
|
2837 |
|
|
|
|
|
|
|
2838 |
// Bail if topic is spam
|
2839 |
-
if (
|
2840 |
return false;
|
2841 |
}
|
2842 |
|
@@ -2847,7 +2867,7 @@ function bbp_spam_topic( $topic_id = 0 ) {
|
|
2847 |
do_action( 'bbp_spam_topic', $topic_id );
|
2848 |
|
2849 |
// Set post status to spam
|
2850 |
-
$topic->post_status =
|
2851 |
|
2852 |
// Empty the topic of its tags
|
2853 |
$topic->tax_input = bbp_spam_topic_tags( $topic_id );
|
@@ -3138,8 +3158,11 @@ function bbp_approve_topic( $topic_id = 0 ) {
|
|
3138 |
return $topic;
|
3139 |
}
|
3140 |
|
|
|
|
|
|
|
3141 |
// Bail if already approved
|
3142 |
-
if (
|
3143 |
return false;
|
3144 |
}
|
3145 |
|
@@ -3147,7 +3170,7 @@ function bbp_approve_topic( $topic_id = 0 ) {
|
|
3147 |
do_action( 'bbp_approve_topic', $topic_id );
|
3148 |
|
3149 |
// Set publish status
|
3150 |
-
$topic->post_status =
|
3151 |
|
3152 |
// No revisions
|
3153 |
remove_action( 'pre_post_update', 'wp_save_post_revision' );
|
@@ -3178,8 +3201,11 @@ function bbp_unapprove_topic( $topic_id = 0 ) {
|
|
3178 |
return $topic;
|
3179 |
}
|
3180 |
|
3181 |
-
//
|
3182 |
-
|
|
|
|
|
|
|
3183 |
return false;
|
3184 |
}
|
3185 |
|
@@ -3187,7 +3213,7 @@ function bbp_unapprove_topic( $topic_id = 0 ) {
|
|
3187 |
do_action( 'bbp_unapprove_topic', $topic_id );
|
3188 |
|
3189 |
// Set pending status
|
3190 |
-
$topic->post_status =
|
3191 |
|
3192 |
// No revisions
|
3193 |
remove_action( 'pre_post_update', 'wp_save_post_revision' );
|
@@ -3650,7 +3676,7 @@ function bbp_display_topics_feed_rss2( $topics_query = array() ) {
|
|
3650 |
}
|
3651 |
|
3652 |
// Feed title
|
3653 |
-
$title = get_bloginfo_rss( 'name' ) . ' » ' .
|
3654 |
$title = apply_filters( 'wp_title_rss', $title );
|
3655 |
|
3656 |
// Display the feed
|
@@ -3669,12 +3695,12 @@ function bbp_display_topics_feed_rss2( $topics_query = array() ) {
|
|
3669 |
|
3670 |
<channel>
|
3671 |
|
3672 |
-
<title><?php echo $title; ?></title>
|
3673 |
<atom:link href="<?php self_link(); ?>" rel="self" type="application/rss+xml" />
|
3674 |
<link><?php self_link(); ?></link>
|
3675 |
<description><?php //?></description>
|
3676 |
<lastBuildDate><?php echo date( 'r' ); ?></lastBuildDate>
|
3677 |
-
<generator
|
3678 |
<language><?php bloginfo_rss( 'language' ); ?></language>
|
3679 |
|
3680 |
<?php do_action( 'bbp_feed_head' ); ?>
|
@@ -3722,7 +3748,7 @@ function bbp_display_topics_feed_rss2( $topics_query = array() ) {
|
|
3722 |
/** Permissions ***************************************************************/
|
3723 |
|
3724 |
/**
|
3725 |
-
* Redirect if
|
3726 |
*
|
3727 |
* @since 2.1.0 bbPress (r3605)
|
3728 |
*/
|
@@ -3740,7 +3766,7 @@ function bbp_check_topic_edit() {
|
|
3740 |
}
|
3741 |
|
3742 |
/**
|
3743 |
-
* Redirect if
|
3744 |
*
|
3745 |
* @since 2.1.0 bbPress (r3605)
|
3746 |
*/
|
@@ -3752,7 +3778,7 @@ function bbp_check_topic_tag_edit() {
|
|
3752 |
}
|
3753 |
|
3754 |
// Bail if current user cannot edit topic tags
|
3755 |
-
if ( ! current_user_can( '
|
3756 |
bbp_redirect( bbp_get_topic_tag_link() );
|
3757 |
}
|
3758 |
}
|
158 |
bbp_add_error( 'bbp_topic_title', __( '<strong>ERROR</strong>: Your topic needs a title.', 'bbpress' ) );
|
159 |
}
|
160 |
|
161 |
+
// Title too long
|
162 |
+
if ( bbp_is_title_too_long( $topic_title ) ) {
|
163 |
+
bbp_add_error( 'bbp_topic_title', __( '<strong>ERROR</strong>: Your title is too long.', 'bbpress' ) );
|
164 |
+
}
|
165 |
+
|
166 |
/** Topic Content *********************************************************/
|
167 |
|
168 |
if ( ! empty( $_POST['bbp_topic_content'] ) ) {
|
253 |
bbp_add_error( 'bbp_topic_duplicate', __( '<strong>ERROR</strong>: Duplicate topic detected; it looks as though you’ve already said that.', 'bbpress' ) );
|
254 |
}
|
255 |
|
256 |
+
/** Topic Bad Words *******************************************************/
|
257 |
|
258 |
+
if ( ! bbp_check_for_moderation( $anonymous_data, $topic_author, $topic_title, $topic_content, true ) ) {
|
259 |
+
bbp_add_error( 'bbp_topic_moderation', __( '<strong>ERROR</strong>: Your topic cannot be created at this time.', 'bbpress' ) );
|
260 |
}
|
261 |
|
262 |
/** Topic Status **********************************************************/
|
268 |
if ( ! bbp_check_for_moderation( $anonymous_data, $topic_author, $topic_title, $topic_content ) ) {
|
269 |
$topic_status = bbp_get_pending_status_id();
|
270 |
|
271 |
+
// Check possible topic status ID's
|
272 |
} elseif ( ! empty( $_POST['bbp_topic_status'] ) && in_array( $_POST['bbp_topic_status'], array_keys( $topic_statuses ), true ) ) {
|
273 |
$topic_status = sanitize_key( $_POST['bbp_topic_status'] );
|
274 |
|
530 |
bbp_add_error( 'bbp_edit_topic_title', __( '<strong>ERROR</strong>: Your topic needs a title.', 'bbpress' ) );
|
531 |
}
|
532 |
|
533 |
+
// Title too long
|
534 |
+
if ( bbp_is_title_too_long( $topic_title ) ) {
|
535 |
+
bbp_add_error( 'bbp_topic_title', __( '<strong>ERROR</strong>: Your title is too long.', 'bbpress' ) );
|
536 |
+
}
|
537 |
+
|
538 |
/** Topic Content *********************************************************/
|
539 |
|
540 |
if ( ! empty( $_POST['bbp_topic_content'] ) ) {
|
549 |
bbp_add_error( 'bbp_edit_topic_content', __( '<strong>ERROR</strong>: Your topic cannot be empty.', 'bbpress' ) );
|
550 |
}
|
551 |
|
552 |
+
/** Topic Bad Words *******************************************************/
|
553 |
|
554 |
+
if ( ! bbp_check_for_moderation( $anonymous_data, $topic_author, $topic_title, $topic_content, true ) ) {
|
555 |
+
bbp_add_error( 'bbp_topic_moderation', __( '<strong>ERROR</strong>: Your topic cannot be edited at this time.', 'bbpress' ) );
|
556 |
}
|
557 |
|
558 |
/** Topic Status **********************************************************/
|
568 |
$topic_status = bbp_get_pending_status_id();
|
569 |
}
|
570 |
|
571 |
+
// Check possible topic status ID's
|
572 |
} elseif ( ! empty( $_POST['bbp_topic_status'] ) && in_array( $_POST['bbp_topic_status'], array_keys( $topic_statuses ), true ) ) {
|
573 |
$topic_status = sanitize_key( $_POST['bbp_topic_status'] );
|
574 |
|
580 |
/** Topic Tags ************************************************************/
|
581 |
|
582 |
// Either replace terms
|
583 |
+
if ( bbp_allow_topic_tags() && current_user_can( 'assign_topic_tags', $topic_id ) && ! empty( $_POST['bbp_topic_tags'] ) ) {
|
584 |
|
585 |
// Escape tag input
|
586 |
$terms = sanitize_text_field( $_POST['bbp_topic_tags'] );
|
782 |
if ( ! empty( $anonymous_data ) ) {
|
783 |
|
784 |
// Update anonymous meta data (not cookies)
|
785 |
+
bbp_update_anonymous_post_author( $topic_id, $anonymous_data, bbp_get_topic_post_type() );
|
786 |
|
787 |
// Set transient for throttle check (only on new, not edit)
|
788 |
if ( empty( $is_edit ) ) {
|
832 |
// Walk up ancestors and do the dirty work
|
833 |
bbp_update_topic_walker( $topic_id, $last_active, $forum_id, 0, false );
|
834 |
}
|
835 |
+
|
836 |
+
// Bump the custom query cache
|
837 |
+
wp_cache_set( 'last_changed', microtime(), 'bbpress_posts' );
|
838 |
}
|
839 |
|
840 |
/**
|
890 |
// If ancestor is a forum, update counts
|
891 |
if ( bbp_is_forum( $ancestor ) ) {
|
892 |
|
893 |
+
// Get the forum
|
894 |
+
$forum = bbp_get_forum( $ancestor );
|
895 |
+
|
896 |
// Update the forum
|
897 |
bbp_update_forum( array(
|
898 |
+
'forum_id' => $forum->ID,
|
899 |
+
'post_parent' => $forum->post_parent,
|
900 |
'last_topic_id' => $topic_id,
|
901 |
'last_reply_id' => $reply_id,
|
902 |
'last_active_id' => $active_id,
|
990 |
$old_forum_ancestors = array_values( array_unique( array_merge( array( $old_forum_id ), (array) get_post_ancestors( $old_forum_id ) ) ) );
|
991 |
|
992 |
// Get reply count.
|
993 |
+
$public_reply_count = bbp_get_public_child_count( $topic_id, bbp_get_reply_post_type() );
|
994 |
|
995 |
// Topic status.
|
996 |
$topic_status = get_post_field( 'post_status', $topic_id );
|
1697 |
}
|
1698 |
|
1699 |
// Can user edit topic tags?
|
1700 |
+
if ( ! current_user_can( 'edit_topic_tag', $tag_id ) ) {
|
1701 |
bbp_add_error( 'bbp_manage_topic_tag_update_permission', __( '<strong>ERROR</strong>: You do not have permission to edit the topic tags.', 'bbpress' ) );
|
1702 |
return;
|
1703 |
}
|
1711 |
// Attempt to update the tag
|
1712 |
$slug = ! empty( $_POST['tag-slug'] ) ? $_POST['tag-slug'] : '';
|
1713 |
$description = ! empty( $_POST['tag-description'] ) ? $_POST['tag-description'] : '';
|
1714 |
+
$tag = wp_update_term( $tag_id, bbp_get_topic_tag_tax_id(), array(
|
1715 |
+
'name' => $name,
|
1716 |
+
'slug' => $slug,
|
1717 |
+
'description' => $description
|
1718 |
+
) );
|
1719 |
|
1720 |
// Cannot update tag
|
1721 |
if ( is_wp_error( $tag ) && $tag->get_error_message() ) {
|
1773 |
}
|
1774 |
|
1775 |
// Delete the old term
|
1776 |
+
$tag = wp_delete_term( $tag_id, bbp_get_topic_tag_tax_id(), array(
|
1777 |
+
'default' => $to_tag,
|
1778 |
+
'force_default' => true
|
1779 |
+
) );
|
1780 |
|
1781 |
// Error merging the terms
|
1782 |
if ( is_wp_error( $tag ) && $tag->get_error_message() ) {
|
1802 |
}
|
1803 |
|
1804 |
// Can user delete topic tags?
|
1805 |
+
if ( ! current_user_can( 'delete_topic_tag', $tag_id ) ) {
|
1806 |
bbp_add_error( 'bbp_manage_topic_tag_delete_permission', __( '<strong>ERROR</strong>: You do not have permission to delete the topic tags.', 'bbpress' ) );
|
1807 |
return;
|
1808 |
}
|
2477 |
: bbp_get_topic_id( $topic_id );
|
2478 |
|
2479 |
// Get replies of topic if not passed
|
2480 |
+
$reply_count = empty( $reply_count )
|
2481 |
+
? bbp_get_public_child_count( $topic_id, bbp_get_reply_post_type() )
|
2482 |
+
: (int) $reply_count;
|
|
|
|
|
2483 |
|
2484 |
update_post_meta( $topic_id, '_bbp_reply_count', $reply_count );
|
2485 |
|
2505 |
: bbp_get_topic_id( $topic_id );
|
2506 |
|
2507 |
// Get replies of topic
|
2508 |
+
$reply_count = empty( $reply_count )
|
2509 |
+
? bbp_get_non_public_child_count( $topic_id, bbp_get_reply_post_type() )
|
2510 |
+
: (int) $reply_count;
|
|
|
|
|
|
|
|
|
|
|
|
|
2511 |
|
2512 |
update_post_meta( $topic_id, '_bbp_reply_count_hidden', $reply_count );
|
2513 |
|
2734 |
}
|
2735 |
|
2736 |
// Get previous topic status meta
|
2737 |
+
$status = bbp_get_closed_status_id();
|
2738 |
$topic_status = get_post_meta( $topic_id, '_bbp_status', true );
|
2739 |
|
2740 |
// Bail if already closed and topic status meta exists
|
2741 |
+
if ( $status === $topic->post_status && ! empty( $topic_status ) ) {
|
2742 |
return false;
|
2743 |
}
|
2744 |
|
2745 |
// Set status meta public
|
2746 |
+
$topic_status = $topic->post_status;
|
2747 |
|
2748 |
// Execute pre close code
|
2749 |
do_action( 'bbp_close_topic', $topic_id );
|
2752 |
add_post_meta( $topic_id, '_bbp_status', $topic_status );
|
2753 |
|
2754 |
// Set closed status
|
2755 |
+
$topic->post_status = $status;
|
2756 |
|
2757 |
// Toggle revisions off as we are not altering content
|
2758 |
if ( post_type_supports( bbp_get_topic_post_type(), 'revisions' ) ) {
|
2852 |
return $topic;
|
2853 |
}
|
2854 |
|
2855 |
+
// Get new status
|
2856 |
+
$status = bbp_get_spam_status_id();
|
2857 |
+
|
2858 |
// Bail if topic is spam
|
2859 |
+
if ( $status === $topic->post_status ) {
|
2860 |
return false;
|
2861 |
}
|
2862 |
|
2867 |
do_action( 'bbp_spam_topic', $topic_id );
|
2868 |
|
2869 |
// Set post status to spam
|
2870 |
+
$topic->post_status = $status;
|
2871 |
|
2872 |
// Empty the topic of its tags
|
2873 |
$topic->tax_input = bbp_spam_topic_tags( $topic_id );
|
3158 |
return $topic;
|
3159 |
}
|
3160 |
|
3161 |
+
// Get new status
|
3162 |
+
$status = bbp_get_public_status_id();
|
3163 |
+
|
3164 |
// Bail if already approved
|
3165 |
+
if ( $status === $topic->post_status ) {
|
3166 |
return false;
|
3167 |
}
|
3168 |
|
3170 |
do_action( 'bbp_approve_topic', $topic_id );
|
3171 |
|
3172 |
// Set publish status
|
3173 |
+
$topic->post_status = $status;
|
3174 |
|
3175 |
// No revisions
|
3176 |
remove_action( 'pre_post_update', 'wp_save_post_revision' );
|
3201 |
return $topic;
|
3202 |
}
|
3203 |
|
3204 |
+
// Get new status
|
3205 |
+
$status = bbp_get_pending_status_id();
|
3206 |
+
|
3207 |
+
// Bail if already unapproved
|
3208 |
+
if ( ! bbp_is_topic_public( $topic_id ) ) {
|
3209 |
return false;
|
3210 |
}
|
3211 |
|
3213 |
do_action( 'bbp_unapprove_topic', $topic_id );
|
3214 |
|
3215 |
// Set pending status
|
3216 |
+
$topic->post_status = $status;
|
3217 |
|
3218 |
// No revisions
|
3219 |
remove_action( 'pre_post_update', 'wp_save_post_revision' );
|
3676 |
}
|
3677 |
|
3678 |
// Feed title
|
3679 |
+
$title = get_bloginfo_rss( 'name' ) . ' » ' . esc_html__( 'All Topics', 'bbpress' );
|
3680 |
$title = apply_filters( 'wp_title_rss', $title );
|
3681 |
|
3682 |
// Display the feed
|
3695 |
|
3696 |
<channel>
|
3697 |
|
3698 |
+
<title><?php echo $title; // Already escaped ?></title>
|
3699 |
<atom:link href="<?php self_link(); ?>" rel="self" type="application/rss+xml" />
|
3700 |
<link><?php self_link(); ?></link>
|
3701 |
<description><?php //?></description>
|
3702 |
<lastBuildDate><?php echo date( 'r' ); ?></lastBuildDate>
|
3703 |
+
<generator><?php echo esc_url_raw( 'https://bbpress.org/?v=' . convert_chars( bbp_get_version() ) ); ?></generator>
|
3704 |
<language><?php bloginfo_rss( 'language' ); ?></language>
|
3705 |
|
3706 |
<?php do_action( 'bbp_feed_head' ); ?>
|
3748 |
/** Permissions ***************************************************************/
|
3749 |
|
3750 |
/**
|
3751 |
+
* Redirect if unauthorized user is attempting to edit a topic
|
3752 |
*
|
3753 |
* @since 2.1.0 bbPress (r3605)
|
3754 |
*/
|
3766 |
}
|
3767 |
|
3768 |
/**
|
3769 |
+
* Redirect if unauthorized user is attempting to edit a topic tag
|
3770 |
*
|
3771 |
* @since 2.1.0 bbPress (r3605)
|
3772 |
*/
|
3778 |
}
|
3779 |
|
3780 |
// Bail if current user cannot edit topic tags
|
3781 |
+
if ( ! current_user_can( 'edit_topic_tag', bbp_get_topic_tag_id() ) ) {
|
3782 |
bbp_redirect( bbp_get_topic_tag_link() );
|
3783 |
}
|
3784 |
}
|
includes/topics/template.php
CHANGED
@@ -44,25 +44,37 @@ function bbp_get_topic_post_type_labels() {
|
|
44 |
|
45 |
// Filter & return
|
46 |
return (array) apply_filters( 'bbp_get_topic_post_type_labels', array(
|
47 |
-
'name' =>
|
48 |
-
'menu_name' =>
|
49 |
-
'singular_name' =>
|
50 |
-
'all_items' =>
|
51 |
-
'add_new' =>
|
52 |
-
'add_new_item' =>
|
53 |
-
'edit' =>
|
54 |
-
'edit_item' =>
|
55 |
-
'new_item' =>
|
56 |
-
'view' =>
|
57 |
-
'view_item' =>
|
58 |
-
'view_items' =>
|
59 |
-
'search_items' =>
|
60 |
-
'not_found' =>
|
61 |
-
'not_found_in_trash' =>
|
62 |
-
'filter_items_list' =>
|
63 |
-
'items_list' =>
|
64 |
-
'items_list_navigation' =>
|
65 |
-
'parent_item_colon' =>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
66 |
) );
|
67 |
}
|
68 |
|
@@ -308,9 +320,10 @@ function bbp_the_topic() {
|
|
308 |
*/
|
309 |
function bbp_add_sticky_topics( &$query, $args = array() ) {
|
310 |
|
311 |
-
// Bail if
|
312 |
-
|
313 |
-
|
|
|
314 |
}
|
315 |
|
316 |
// Parse arguments against what gets used locally
|
@@ -704,7 +717,7 @@ function bbp_topic_excerpt( $topic_id = 0, $length = 100 ) {
|
|
704 |
}
|
705 |
|
706 |
if ( ! empty( $length ) && ( $excerpt_length > $length ) ) {
|
707 |
-
$excerpt =
|
708 |
$excerpt .= '…';
|
709 |
}
|
710 |
|
@@ -908,9 +921,9 @@ function bbp_topic_revision_log( $topic_id = 0 ) {
|
|
908 |
|
909 |
$retval .= "\t" . '<li id="bbp-topic-revision-log-' . esc_attr( $topic_id ) . '-item-' . esc_attr( $revision->ID ) . '" class="bbp-topic-revision-log-item">' . "\n";
|
910 |
if ( ! empty( $reason ) ) {
|
911 |
-
$retval .= "\t\t" . sprintf(
|
912 |
} else {
|
913 |
-
$retval .= "\t\t" . sprintf(
|
914 |
}
|
915 |
$retval .= "\t" . '</li>' . "\n";
|
916 |
}
|
@@ -964,7 +977,7 @@ function bbp_get_topic_revisions( $topic_id = 0 ) {
|
|
964 |
*/
|
965 |
function bbp_get_topic_revision_count( $topic_id = 0, $integer = false ) {
|
966 |
$topic_id = bbp_get_topic_id( $topic_id );
|
967 |
-
$count =
|
968 |
$filter = ( true === $integer )
|
969 |
? 'bbp_get_topic_revision_count_int'
|
970 |
: 'bbp_get_topic_revision_count';
|
@@ -1440,10 +1453,11 @@ function bbp_topic_author_link( $args = array() ) {
|
|
1440 |
|
1441 |
// Tweak link title if empty
|
1442 |
if ( empty( $r['link_title'] ) ) {
|
1443 |
-
$author
|
1444 |
-
$title
|
1445 |
-
?
|
1446 |
-
:
|
|
|
1447 |
$link_title = sprintf( $title, $author );
|
1448 |
|
1449 |
// Use what was passed if not
|
@@ -1467,31 +1481,27 @@ function bbp_topic_author_link( $args = array() ) {
|
|
1467 |
$author_links['name'] = esc_html( bbp_get_topic_author_display_name( $topic_id ) );
|
1468 |
}
|
1469 |
|
1470 |
-
//
|
1471 |
-
$
|
1472 |
-
|
1473 |
-
|
1474 |
-
|
1475 |
|
1476 |
-
|
1477 |
-
|
1478 |
-
|
1479 |
-
|
1480 |
-
|
1481 |
-
$link_class = ' class="bbp-author-' . esc_attr( $link ) . '"';
|
1482 |
-
$links[] = sprintf( '<a href="%1$s"%2$s%3$s>%4$s</a>', esc_url( $author_url ), $link_title, $link_class, $link_text );
|
1483 |
-
}
|
1484 |
-
|
1485 |
-
// Role is not linked
|
1486 |
-
if ( true === $r['show_role'] ) {
|
1487 |
-
$links[] = bbp_get_topic_author_role( array( 'topic_id' => $topic_id ) );
|
1488 |
-
}
|
1489 |
|
1490 |
-
|
1491 |
-
|
1492 |
-
|
1493 |
}
|
1494 |
|
|
|
|
|
|
|
|
|
1495 |
// Filter sections
|
1496 |
$sections = apply_filters( 'bbp_get_topic_author_links', $author_links, $r, $args );
|
1497 |
|
@@ -1782,13 +1792,14 @@ function bbp_topic_subscription_link( $args = array() ) {
|
|
1782 |
|
1783 |
// Defaults
|
1784 |
$retval = false;
|
|
|
1785 |
$redirect_to = bbp_is_subscriptions()
|
1786 |
-
? bbp_get_subscriptions_permalink()
|
1787 |
: '';
|
1788 |
|
1789 |
// Parse the arguments
|
1790 |
$r = bbp_parse_args( $args, array(
|
1791 |
-
'user_id' =>
|
1792 |
'object_id' => bbp_get_topic_id(),
|
1793 |
'object_type' => 'post',
|
1794 |
'before' => ' | ',
|
@@ -1829,13 +1840,14 @@ function bbp_topic_favorite_link( $args = array() ) {
|
|
1829 |
|
1830 |
// No link
|
1831 |
$retval = false;
|
|
|
1832 |
$redirect_to = bbp_is_favorites()
|
1833 |
-
? bbp_get_favorites_permalink()
|
1834 |
: '';
|
1835 |
|
1836 |
// Parse the arguments
|
1837 |
$r = bbp_parse_args( $args, array(
|
1838 |
-
'user_id' =>
|
1839 |
'object_id' => bbp_get_topic_id(),
|
1840 |
'object_type' => 'post',
|
1841 |
'before' => '',
|
@@ -2076,7 +2088,7 @@ function bbp_topic_reply_count( $topic_id = 0, $integer = false ) {
|
|
2076 |
*/
|
2077 |
function bbp_get_topic_reply_count( $topic_id = 0, $integer = false ) {
|
2078 |
$topic_id = bbp_get_topic_id( $topic_id );
|
2079 |
-
$replies =
|
2080 |
$filter = ( true === $integer )
|
2081 |
? 'bbp_get_topic_reply_count_int'
|
2082 |
: 'bbp_get_topic_reply_count';
|
@@ -2106,7 +2118,7 @@ function bbp_topic_post_count( $topic_id = 0, $integer = false ) {
|
|
2106 |
*/
|
2107 |
function bbp_get_topic_post_count( $topic_id = 0, $integer = false ) {
|
2108 |
$topic_id = bbp_get_topic_id( $topic_id );
|
2109 |
-
$replies =
|
2110 |
$filter = ( true === $integer )
|
2111 |
? 'bbp_get_topic_post_count_int'
|
2112 |
: 'bbp_get_topic_post_count';
|
@@ -2138,7 +2150,7 @@ function bbp_topic_reply_count_hidden( $topic_id = 0, $integer = false ) {
|
|
2138 |
*/
|
2139 |
function bbp_get_topic_reply_count_hidden( $topic_id = 0, $integer = false ) {
|
2140 |
$topic_id = bbp_get_topic_id( $topic_id );
|
2141 |
-
$replies =
|
2142 |
$filter = ( true === $integer )
|
2143 |
? 'bbp_get_topic_reply_count_hidden_int'
|
2144 |
: 'bbp_get_topic_reply_count_hidden';
|
@@ -2166,7 +2178,7 @@ function bbp_topic_voice_count( $topic_id = 0, $integer = false ) {
|
|
2166 |
*/
|
2167 |
function bbp_get_topic_voice_count( $topic_id = 0, $integer = false ) {
|
2168 |
$topic_id = bbp_get_topic_id( $topic_id );
|
2169 |
-
$voices =
|
2170 |
$filter = ( true === $integer )
|
2171 |
? 'bbp_get_topic_voice_count_int'
|
2172 |
: 'bbp_get_topic_voice_count';
|
@@ -2549,7 +2561,7 @@ function bbp_topic_trash_link( $args = array() ) {
|
|
2549 |
}
|
2550 |
|
2551 |
if ( bbp_is_topic_trash( $topic->ID ) || empty( $trash_days ) ) {
|
2552 |
-
$actions['delete'] = '<a title="' . esc_attr__( 'Delete this item permanently', 'bbpress' ) . '" href="' . esc_url( wp_nonce_url( add_query_arg( array( 'action' => 'bbp_toggle_topic_trash', 'sub_action' => 'delete', 'topic_id' => $topic->ID ) ), 'delete-' . $topic->post_type . '_' . $topic->ID ) ) . '" onclick="return confirm(\'' . esc_js(
|
2553 |
}
|
2554 |
|
2555 |
// Process the admin links
|
@@ -3060,12 +3072,12 @@ function bbp_topic_notices() {
|
|
3060 |
|
3061 |
// Spam notice
|
3062 |
case bbp_get_spam_status_id() :
|
3063 |
-
$notice_text =
|
3064 |
break;
|
3065 |
|
3066 |
// Trashed notice
|
3067 |
case bbp_get_trash_status_id() :
|
3068 |
-
$notice_text =
|
3069 |
break;
|
3070 |
|
3071 |
// Standard status
|
@@ -3376,20 +3388,28 @@ function bbp_get_topic_tag_tax_labels() {
|
|
3376 |
|
3377 |
// Filter & return
|
3378 |
return (array) apply_filters( 'bbp_get_topic_tag_tax_labels', array(
|
3379 |
-
'name' =>
|
3380 |
-
'
|
3381 |
-
'
|
3382 |
-
'
|
3383 |
-
'
|
3384 |
-
'
|
3385 |
-
'
|
3386 |
-
'
|
3387 |
-
'
|
3388 |
-
'view_item' =>
|
3389 |
-
'
|
3390 |
-
'
|
3391 |
-
'
|
3392 |
-
'separate_items_with_commas' =>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3393 |
) );
|
3394 |
}
|
3395 |
|
@@ -3825,32 +3845,21 @@ function bbp_form_topic_subscribed() {
|
|
3825 |
*/
|
3826 |
function bbp_get_form_topic_subscribed() {
|
3827 |
|
|
|
|
|
|
|
3828 |
// Get _POST data
|
3829 |
if ( bbp_is_topic_form_post_request() && isset( $_POST['bbp_topic_subscription'] ) ) {
|
3830 |
$topic_subscribed = (bool) $_POST['bbp_topic_subscription'];
|
3831 |
|
3832 |
// Get edit data
|
3833 |
} elseif ( bbp_is_topic_edit() || bbp_is_reply_edit() ) {
|
3834 |
-
|
3835 |
-
|
3836 |
-
$post_author = bbp_get_global_post_field( 'post_author', 'raw' );
|
3837 |
-
|
3838 |
-
// Post author is not the current user
|
3839 |
-
if ( bbp_get_current_user_id() !== $post_author ) {
|
3840 |
-
$topic_subscribed = bbp_is_user_subscribed( $post_author, bbp_get_topic_id() );
|
3841 |
-
|
3842 |
-
// Post author is the current user
|
3843 |
-
} else {
|
3844 |
-
$topic_subscribed = bbp_is_user_subscribed( bbp_get_current_user_id(), bbp_get_topic_id() );
|
3845 |
-
}
|
3846 |
|
3847 |
// Get current status
|
3848 |
} elseif ( bbp_is_single_topic() ) {
|
3849 |
$topic_subscribed = bbp_is_user_subscribed( bbp_get_current_user_id(), bbp_get_topic_id() );
|
3850 |
-
|
3851 |
-
// No data
|
3852 |
-
} else {
|
3853 |
-
$topic_subscribed = false;
|
3854 |
}
|
3855 |
|
3856 |
// Get checked output
|
@@ -3948,7 +3957,7 @@ function bbp_is_topic_form_post_request() {
|
|
3948 |
}
|
3949 |
|
3950 |
// Editing an existing topic
|
3951 |
-
if ( bbp_verify_nonce_request( 'bbp-edit-
|
3952 |
return true;
|
3953 |
}
|
3954 |
|
44 |
|
45 |
// Filter & return
|
46 |
return (array) apply_filters( 'bbp_get_topic_post_type_labels', array(
|
47 |
+
'name' => esc_attr__( 'Topics', 'bbpress' ),
|
48 |
+
'menu_name' => esc_attr__( 'Topics', 'bbpress' ),
|
49 |
+
'singular_name' => esc_attr__( 'Topic', 'bbpress' ),
|
50 |
+
'all_items' => esc_attr__( 'All Topics', 'bbpress' ),
|
51 |
+
'add_new' => esc_attr__( 'Add New', 'bbpress' ),
|
52 |
+
'add_new_item' => esc_attr__( 'Create New Topic', 'bbpress' ),
|
53 |
+
'edit' => esc_attr__( 'Edit', 'bbpress' ),
|
54 |
+
'edit_item' => esc_attr__( 'Edit Topic', 'bbpress' ),
|
55 |
+
'new_item' => esc_attr__( 'New Topic', 'bbpress' ),
|
56 |
+
'view' => esc_attr__( 'View Topic', 'bbpress' ),
|
57 |
+
'view_item' => esc_attr__( 'View Topic', 'bbpress' ),
|
58 |
+
'view_items' => esc_attr__( 'View Topics', 'bbpress' ),
|
59 |
+
'search_items' => esc_attr__( 'Search Topics', 'bbpress' ),
|
60 |
+
'not_found' => esc_attr__( 'No topics found', 'bbpress' ),
|
61 |
+
'not_found_in_trash' => esc_attr__( 'No topics found in Trash', 'bbpress' ),
|
62 |
+
'filter_items_list' => esc_attr__( 'Filter topics list', 'bbpress' ),
|
63 |
+
'items_list' => esc_attr__( 'Topics list', 'bbpress' ),
|
64 |
+
'items_list_navigation' => esc_attr__( 'Topics list navigation', 'bbpress' ),
|
65 |
+
'parent_item_colon' => esc_attr__( 'Forum:', 'bbpress' ),
|
66 |
+
'all_items' => esc_attr__( 'All Topics', 'bbpress' ),
|
67 |
+
'archives' => esc_attr__( 'Forum Topics', 'bbpress' ),
|
68 |
+
'attributes' => esc_attr__( 'Topic Attributes', 'bbpress' ),
|
69 |
+
'insert_into_item' => esc_attr__( 'Insert into topic', 'bbpress' ),
|
70 |
+
'uploaded_to_this_item' => esc_attr__( 'Uploaded to this topic', 'bbpress' ),
|
71 |
+
'featured_image' => esc_attr__( 'Topic Image', 'bbpress' ),
|
72 |
+
'set_featured_image' => esc_attr__( 'Set topic image', 'bbpress' ),
|
73 |
+
'remove_featured_image' => esc_attr__( 'Remove topic image', 'bbpress' ),
|
74 |
+
'use_featured_image' => esc_attr__( 'Use as topic image', 'bbpress' ),
|
75 |
+
'filter_items_list' => esc_attr__( 'Filter topic list', 'bbpress' ),
|
76 |
+
'items_list_navigation' => esc_attr__( 'Topic list navigation', 'bbpress' ),
|
77 |
+
'items_list' => esc_attr__( 'Topic list', 'bbpress' )
|
78 |
) );
|
79 |
}
|
80 |
|
320 |
*/
|
321 |
function bbp_add_sticky_topics( &$query, $args = array() ) {
|
322 |
|
323 |
+
// Bail if intercepted
|
324 |
+
$intercept = bbp_maybe_intercept( __FUNCTION__, func_get_args() );
|
325 |
+
if ( bbp_is_intercepted( $intercept ) ) {
|
326 |
+
return $intercept;
|
327 |
}
|
328 |
|
329 |
// Parse arguments against what gets used locally
|
717 |
}
|
718 |
|
719 |
if ( ! empty( $length ) && ( $excerpt_length > $length ) ) {
|
720 |
+
$excerpt = mb_substr( $excerpt, 0, $length - 1 );
|
721 |
$excerpt .= '…';
|
722 |
}
|
723 |
|
921 |
|
922 |
$retval .= "\t" . '<li id="bbp-topic-revision-log-' . esc_attr( $topic_id ) . '-item-' . esc_attr( $revision->ID ) . '" class="bbp-topic-revision-log-item">' . "\n";
|
923 |
if ( ! empty( $reason ) ) {
|
924 |
+
$retval .= "\t\t" . sprintf( esc_html__( 'This topic was modified %1$s by %2$s. Reason: %3$s', 'bbpress' ), esc_html( $since ), $author, esc_html( $reason ) ) . "\n";
|
925 |
} else {
|
926 |
+
$retval .= "\t\t" . sprintf( esc_html__( 'This topic was modified %1$s by %2$s.', 'bbpress' ), esc_html( $since ), $author ) . "\n";
|
927 |
}
|
928 |
$retval .= "\t" . '</li>' . "\n";
|
929 |
}
|
977 |
*/
|
978 |
function bbp_get_topic_revision_count( $topic_id = 0, $integer = false ) {
|
979 |
$topic_id = bbp_get_topic_id( $topic_id );
|
980 |
+
$count = count( bbp_get_topic_revisions( $topic_id ) );
|
981 |
$filter = ( true === $integer )
|
982 |
? 'bbp_get_topic_revision_count_int'
|
983 |
: 'bbp_get_topic_revision_count';
|
1453 |
|
1454 |
// Tweak link title if empty
|
1455 |
if ( empty( $r['link_title'] ) ) {
|
1456 |
+
$author = bbp_get_topic_author_display_name( $topic_id );
|
1457 |
+
$title = empty( $anonymous )
|
1458 |
+
? esc_attr__( "View %s's profile", 'bbpress' )
|
1459 |
+
: esc_attr__( "Visit %s's website", 'bbpress' );
|
1460 |
+
|
1461 |
$link_title = sprintf( $title, $author );
|
1462 |
|
1463 |
// Use what was passed if not
|
1481 |
$author_links['name'] = esc_html( bbp_get_topic_author_display_name( $topic_id ) );
|
1482 |
}
|
1483 |
|
1484 |
+
// Empty array
|
1485 |
+
$links = array();
|
1486 |
+
$sprint = empty( $anonymous ) && bbp_user_has_profile( bbp_get_topic_author_id( $topic_id ) )
|
1487 |
+
? '<a href="%1$s"%2$s%3$s>%4$s</a>'
|
1488 |
+
: '<span %2$s%3$s>%4$s</span>';
|
1489 |
|
1490 |
+
// Wrap each link
|
1491 |
+
foreach ( $author_links as $link => $link_text ) {
|
1492 |
+
$link_class = ' class="bbp-author-' . esc_attr( $link ) . '"';
|
1493 |
+
$links[] = sprintf( $sprint, esc_url( $author_url ), $link_title, $link_class, $link_text );
|
1494 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1495 |
|
1496 |
+
// Role is not linked
|
1497 |
+
if ( true === $r['show_role'] ) {
|
1498 |
+
$links[] = bbp_get_topic_author_role( array( 'topic_id' => $topic_id ) );
|
1499 |
}
|
1500 |
|
1501 |
+
// Juggle
|
1502 |
+
$author_links = $links;
|
1503 |
+
unset( $links );
|
1504 |
+
|
1505 |
// Filter sections
|
1506 |
$sections = apply_filters( 'bbp_get_topic_author_links', $author_links, $r, $args );
|
1507 |
|
1792 |
|
1793 |
// Defaults
|
1794 |
$retval = false;
|
1795 |
+
$user_id = bbp_get_current_user_id();
|
1796 |
$redirect_to = bbp_is_subscriptions()
|
1797 |
+
? bbp_get_subscriptions_permalink( $user_id )
|
1798 |
: '';
|
1799 |
|
1800 |
// Parse the arguments
|
1801 |
$r = bbp_parse_args( $args, array(
|
1802 |
+
'user_id' => $user_id,
|
1803 |
'object_id' => bbp_get_topic_id(),
|
1804 |
'object_type' => 'post',
|
1805 |
'before' => ' | ',
|
1840 |
|
1841 |
// No link
|
1842 |
$retval = false;
|
1843 |
+
$user_id = bbp_get_current_user_id();
|
1844 |
$redirect_to = bbp_is_favorites()
|
1845 |
+
? bbp_get_favorites_permalink( $user_id )
|
1846 |
: '';
|
1847 |
|
1848 |
// Parse the arguments
|
1849 |
$r = bbp_parse_args( $args, array(
|
1850 |
+
'user_id' => $user_id,
|
1851 |
'object_id' => bbp_get_topic_id(),
|
1852 |
'object_type' => 'post',
|
1853 |
'before' => '',
|
2088 |
*/
|
2089 |
function bbp_get_topic_reply_count( $topic_id = 0, $integer = false ) {
|
2090 |
$topic_id = bbp_get_topic_id( $topic_id );
|
2091 |
+
$replies = get_post_meta( $topic_id, '_bbp_reply_count', true );
|
2092 |
$filter = ( true === $integer )
|
2093 |
? 'bbp_get_topic_reply_count_int'
|
2094 |
: 'bbp_get_topic_reply_count';
|
2118 |
*/
|
2119 |
function bbp_get_topic_post_count( $topic_id = 0, $integer = false ) {
|
2120 |
$topic_id = bbp_get_topic_id( $topic_id );
|
2121 |
+
$replies = get_post_meta( $topic_id, '_bbp_reply_count', true ) + 1;
|
2122 |
$filter = ( true === $integer )
|
2123 |
? 'bbp_get_topic_post_count_int'
|
2124 |
: 'bbp_get_topic_post_count';
|
2150 |
*/
|
2151 |
function bbp_get_topic_reply_count_hidden( $topic_id = 0, $integer = false ) {
|
2152 |
$topic_id = bbp_get_topic_id( $topic_id );
|
2153 |
+
$replies = get_post_meta( $topic_id, '_bbp_reply_count_hidden', true );
|
2154 |
$filter = ( true === $integer )
|
2155 |
? 'bbp_get_topic_reply_count_hidden_int'
|
2156 |
: 'bbp_get_topic_reply_count_hidden';
|
2178 |
*/
|
2179 |
function bbp_get_topic_voice_count( $topic_id = 0, $integer = false ) {
|
2180 |
$topic_id = bbp_get_topic_id( $topic_id );
|
2181 |
+
$voices = get_post_meta( $topic_id, '_bbp_voice_count', true );
|
2182 |
$filter = ( true === $integer )
|
2183 |
? 'bbp_get_topic_voice_count_int'
|
2184 |
: 'bbp_get_topic_voice_count';
|
2561 |
}
|
2562 |
|
2563 |
if ( bbp_is_topic_trash( $topic->ID ) || empty( $trash_days ) ) {
|
2564 |
+
$actions['delete'] = '<a title="' . esc_attr__( 'Delete this item permanently', 'bbpress' ) . '" href="' . esc_url( wp_nonce_url( add_query_arg( array( 'action' => 'bbp_toggle_topic_trash', 'sub_action' => 'delete', 'topic_id' => $topic->ID ) ), 'delete-' . $topic->post_type . '_' . $topic->ID ) ) . '" onclick="return confirm(\'' . esc_js( esc_html__( 'Are you sure you want to delete that permanently?', 'bbpress' ) ) . '\' );" class="bbp-topic-delete-link">' . $r['delete_text'] . '</a>';
|
2565 |
}
|
2566 |
|
2567 |
// Process the admin links
|
3072 |
|
3073 |
// Spam notice
|
3074 |
case bbp_get_spam_status_id() :
|
3075 |
+
$notice_text = esc_html__( 'This topic is marked as spam.', 'bbpress' );
|
3076 |
break;
|
3077 |
|
3078 |
// Trashed notice
|
3079 |
case bbp_get_trash_status_id() :
|
3080 |
+
$notice_text = esc_html__( 'This topic is in the trash.', 'bbpress' );
|
3081 |
break;
|
3082 |
|
3083 |
// Standard status
|
3388 |
|
3389 |
// Filter & return
|
3390 |
return (array) apply_filters( 'bbp_get_topic_tag_tax_labels', array(
|
3391 |
+
'name' => esc_attr__( 'Topic Tags', 'bbpress' ),
|
3392 |
+
'menu_name' => esc_attr__( 'Topic Tags', 'bbpress' ),
|
3393 |
+
'singular_name' => esc_attr__( 'Topic Tag', 'bbpress' ),
|
3394 |
+
'search_items' => esc_attr__( 'Search Tags', 'bbpress' ),
|
3395 |
+
'popular_items' => esc_attr__( 'Popular Tags', 'bbpress' ),
|
3396 |
+
'all_items' => esc_attr__( 'All Tags', 'bbpress' ),
|
3397 |
+
'parent_item' => esc_attr__( 'Parent Tag', 'bbpress' ),
|
3398 |
+
'parent_item_colon' => esc_attr__( 'Parent Tag:', 'bbpress' ),
|
3399 |
+
'edit_item' => esc_attr__( 'Edit Tag', 'bbpress' ),
|
3400 |
+
'view_item' => esc_attr__( 'View Topic Tag', 'bbpress' ),
|
3401 |
+
'update_item' => esc_attr__( 'Update Tag', 'bbpress' ),
|
3402 |
+
'add_new_item' => esc_attr__( 'Add New Tag', 'bbpress' ),
|
3403 |
+
'new_item_name' => esc_attr__( 'New Tag Name', 'bbpress' ),
|
3404 |
+
'separate_items_with_commas' => esc_attr__( 'Separate topic tags with commas', 'bbpress' ),
|
3405 |
+
'add_or_remove_items' => esc_attr__( 'Add or remove tags', 'bbpress' ),
|
3406 |
+
'choose_from_most_used' => esc_attr__( 'Choose from the most used tags', 'bbpress' ),
|
3407 |
+
'not_found' => esc_attr__( 'No topic tags found.', 'bbpress' ),
|
3408 |
+
'no_terms' => esc_attr__( 'No topic tags', 'bbpress' ),
|
3409 |
+
'items_list_navigation' => esc_attr__( 'Topic tags list navigation', 'bbpress' ),
|
3410 |
+
'items_list' => esc_attr__( 'Topic tags list', 'bbpress' ),
|
3411 |
+
'most_used' => esc_attr__( 'Most used topic tags', 'bbpress' ),
|
3412 |
+
'back_to_items' => esc_attr__( '← Back to Tags', 'bbpress' )
|
3413 |
) );
|
3414 |
}
|
3415 |
|
3845 |
*/
|
3846 |
function bbp_get_form_topic_subscribed() {
|
3847 |
|
3848 |
+
// Default value
|
3849 |
+
$topic_subscribed = false;
|
3850 |
+
|
3851 |
// Get _POST data
|
3852 |
if ( bbp_is_topic_form_post_request() && isset( $_POST['bbp_topic_subscription'] ) ) {
|
3853 |
$topic_subscribed = (bool) $_POST['bbp_topic_subscription'];
|
3854 |
|
3855 |
// Get edit data
|
3856 |
} elseif ( bbp_is_topic_edit() || bbp_is_reply_edit() ) {
|
3857 |
+
$post_author = (int) bbp_get_global_post_field( 'post_author', 'raw' );
|
3858 |
+
$topic_subscribed = bbp_is_user_subscribed( $post_author, bbp_get_topic_id() );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3859 |
|
3860 |
// Get current status
|
3861 |
} elseif ( bbp_is_single_topic() ) {
|
3862 |
$topic_subscribed = bbp_is_user_subscribed( bbp_get_current_user_id(), bbp_get_topic_id() );
|
|
|
|
|
|
|
|
|
3863 |
}
|
3864 |
|
3865 |
// Get checked output
|
3957 |
}
|
3958 |
|
3959 |
// Editing an existing topic
|
3960 |
+
if ( bbp_verify_nonce_request( 'bbp-edit-topic_' . bbp_get_topic_id() ) ) {
|
3961 |
return true;
|
3962 |
}
|
3963 |
|
includes/users/capabilities.php
CHANGED
@@ -142,7 +142,7 @@ function bbp_map_primary_meta_caps( $caps = array(), $cap = '', $user_id = 0, $a
|
|
142 |
}
|
143 |
|
144 |
/**
|
145 |
-
*
|
146 |
*
|
147 |
* @since 2.1.0 bbPress (r3860)
|
148 |
*
|
@@ -373,7 +373,7 @@ function bbp_set_current_user_default_role() {
|
|
373 |
|
374 |
// Add the user to the site
|
375 |
if ( true === $add_to_site ) {
|
376 |
-
|
377 |
|
378 |
// Don't add the user, but still give them the correct caps dynamically
|
379 |
} else {
|
@@ -491,8 +491,8 @@ function bbp_make_spam_user( $user_id = 0 ) {
|
|
491 |
// Loop through blogs and remove their posts
|
492 |
foreach ( (array) array_keys( $blogs ) as $blog_id ) {
|
493 |
|
494 |
-
// Switch to the
|
495 |
-
|
496 |
|
497 |
// Get topics and replies
|
498 |
$query = $bbp_db->prepare( "SELECT ID FROM {$bbp_db->posts} WHERE post_author = %d AND post_status = %s AND post_type IN ( {$post_types} )", $user_id, bbp_get_public_status_id() );
|
@@ -517,8 +517,8 @@ function bbp_make_spam_user( $user_id = 0 ) {
|
|
517 |
}
|
518 |
}
|
519 |
|
520 |
-
// Switch back to current
|
521 |
-
|
522 |
}
|
523 |
|
524 |
// Success
|
@@ -569,8 +569,8 @@ function bbp_make_ham_user( $user_id = 0 ) {
|
|
569 |
// Loop through blogs and remove their posts
|
570 |
foreach ( (array) array_keys( $blogs ) as $blog_id ) {
|
571 |
|
572 |
-
// Switch to the
|
573 |
-
|
574 |
|
575 |
// Get topics and replies
|
576 |
$query = $bbp_db->prepare( "SELECT ID FROM {$bbp_db->posts} WHERE post_author = %d AND post_status = %s AND post_type IN ( {$post_types} )", $user_id, bbp_get_spam_status_id() );
|
@@ -595,8 +595,8 @@ function bbp_make_ham_user( $user_id = 0 ) {
|
|
595 |
}
|
596 |
}
|
597 |
|
598 |
-
// Switch back to current
|
599 |
-
|
600 |
}
|
601 |
|
602 |
// Success
|
142 |
}
|
143 |
|
144 |
/**
|
145 |
+
* Set a user's role in the forums
|
146 |
*
|
147 |
* @since 2.1.0 bbPress (r3860)
|
148 |
*
|
373 |
|
374 |
// Add the user to the site
|
375 |
if ( true === $add_to_site ) {
|
376 |
+
bbp_set_user_role( $user_id, $new_role );
|
377 |
|
378 |
// Don't add the user, but still give them the correct caps dynamically
|
379 |
} else {
|
491 |
// Loop through blogs and remove their posts
|
492 |
foreach ( (array) array_keys( $blogs ) as $blog_id ) {
|
493 |
|
494 |
+
// Switch to the site ID
|
495 |
+
bbp_switch_to_site( $blog_id );
|
496 |
|
497 |
// Get topics and replies
|
498 |
$query = $bbp_db->prepare( "SELECT ID FROM {$bbp_db->posts} WHERE post_author = %d AND post_status = %s AND post_type IN ( {$post_types} )", $user_id, bbp_get_public_status_id() );
|
517 |
}
|
518 |
}
|
519 |
|
520 |
+
// Switch back to current site
|
521 |
+
bbp_restore_current_site();
|
522 |
}
|
523 |
|
524 |
// Success
|
569 |
// Loop through blogs and remove their posts
|
570 |
foreach ( (array) array_keys( $blogs ) as $blog_id ) {
|
571 |
|
572 |
+
// Switch to the site ID
|
573 |
+
bbp_switch_to_site( $blog_id );
|
574 |
|
575 |
// Get topics and replies
|
576 |
$query = $bbp_db->prepare( "SELECT ID FROM {$bbp_db->posts} WHERE post_author = %d AND post_status = %s AND post_type IN ( {$post_types} )", $user_id, bbp_get_spam_status_id() );
|
595 |
}
|
596 |
}
|
597 |
|
598 |
+
// Switch back to current site
|
599 |
+
bbp_restore_current_site();
|
600 |
}
|
601 |
|
602 |
// Success
|
includes/users/engagements.php
CHANGED
@@ -19,17 +19,19 @@ defined( 'ABSPATH' ) || exit;
|
|
19 |
*
|
20 |
* @param int $object_id The object id
|
21 |
* @param int $user_id The user id
|
22 |
-
* @param string $
|
23 |
-
* @param string $
|
24 |
* @param bool $unique Whether meta key should be unique to the object
|
25 |
*
|
26 |
* @return bool Returns true on success, false on failure
|
27 |
*/
|
28 |
-
function bbp_add_user_to_object( $object_id = 0, $user_id = 0, $
|
29 |
-
$
|
|
|
|
|
30 |
|
31 |
// Filter & return
|
32 |
-
return (bool) apply_filters( 'bbp_add_user_to_object',
|
33 |
}
|
34 |
|
35 |
/**
|
@@ -39,16 +41,16 @@ function bbp_add_user_to_object( $object_id = 0, $user_id = 0, $meta_key = '', $
|
|
39 |
*
|
40 |
* @param int $object_id The object id
|
41 |
* @param int $user_id The user id
|
42 |
-
* @param string $
|
43 |
-
* @param string $
|
44 |
*
|
45 |
* @return bool Returns true on success, false on failure
|
46 |
*/
|
47 |
-
function bbp_remove_user_from_object( $object_id = 0, $user_id = 0, $
|
48 |
-
$retval =
|
49 |
|
50 |
// Filter & return
|
51 |
-
return (bool) apply_filters( 'bbp_remove_user_from_object',
|
52 |
}
|
53 |
|
54 |
/**
|
@@ -56,17 +58,18 @@ function bbp_remove_user_from_object( $object_id = 0, $user_id = 0, $meta_key =
|
|
56 |
*
|
57 |
* @since 2.6.0 bbPress (r6109)
|
58 |
*
|
59 |
-
* @param int $user_id
|
60 |
-
* @param string $
|
61 |
-
* @param string $
|
62 |
*
|
63 |
* @return bool Returns true on success, false on failure
|
64 |
*/
|
65 |
-
function bbp_remove_user_from_all_objects( $user_id = 0, $
|
66 |
-
$
|
|
|
67 |
|
68 |
// Filter & return
|
69 |
-
return (bool) apply_filters( 'bbp_remove_user_from_all_objects',
|
70 |
}
|
71 |
|
72 |
/**
|
@@ -76,16 +79,17 @@ function bbp_remove_user_from_all_objects( $user_id = 0, $meta_key = '', $meta_t
|
|
76 |
*
|
77 |
* @param int $object_id The object id
|
78 |
* @param int $user_id The user id
|
79 |
-
* @param string $
|
80 |
-
* @param string $
|
81 |
*
|
82 |
* @return bool Returns true on success, false on failure
|
83 |
*/
|
84 |
-
function bbp_remove_object_from_all_users( $object_id = 0, $
|
85 |
-
$
|
|
|
86 |
|
87 |
// Filter & return
|
88 |
-
return (bool) apply_filters( 'bbp_remove_object_from_all_users',
|
89 |
}
|
90 |
|
91 |
/**
|
@@ -93,16 +97,16 @@ function bbp_remove_object_from_all_users( $object_id = 0, $meta_key = '', $meta
|
|
93 |
*
|
94 |
* @since 2.6.0 bbPress (r6109)
|
95 |
*
|
96 |
-
* @param string $
|
97 |
-
* @param string $
|
98 |
*
|
99 |
* @return bool Returns true on success, false on failure
|
100 |
*/
|
101 |
-
function bbp_remove_all_users_from_all_objects( $
|
102 |
-
$retval =
|
103 |
|
104 |
// Filter & return
|
105 |
-
return (bool) apply_filters( 'bbp_remove_all_users_from_all_objects',
|
106 |
}
|
107 |
|
108 |
/**
|
@@ -111,17 +115,17 @@ function bbp_remove_all_users_from_all_objects( $meta_key = '', $meta_type = 'po
|
|
111 |
* @since 2.6.0 bbPress (r6109)
|
112 |
*
|
113 |
* @param int $object_id The object id
|
114 |
-
* @param string $
|
115 |
-
* @param string $
|
116 |
*
|
117 |
* @return array Returns ids of users
|
118 |
*/
|
119 |
-
function bbp_get_users_for_object( $object_id = 0, $
|
120 |
-
$
|
121 |
-
$retval
|
122 |
|
123 |
// Filter & return
|
124 |
-
return (array) apply_filters( 'bbp_get_users_for_object', $retval, $object_id, $
|
125 |
}
|
126 |
|
127 |
/**
|
@@ -131,17 +135,38 @@ function bbp_get_users_for_object( $object_id = 0, $meta_key = '', $meta_type =
|
|
131 |
*
|
132 |
* @param int $object_id The object id
|
133 |
* @param int $user_id The user id
|
134 |
-
* @param string $
|
135 |
-
* @param string $
|
136 |
*
|
137 |
* @return bool Returns true if object has a user, false if not
|
138 |
*/
|
139 |
-
function bbp_is_object_of_user( $object_id = 0, $user_id = 0, $
|
140 |
-
$
|
141 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
142 |
|
143 |
// Filter & return
|
144 |
-
return (
|
145 |
}
|
146 |
|
147 |
/** Engagements ***************************************************************/
|
@@ -215,38 +240,11 @@ UNION
|
|
215 |
* @return bool True if user has engaged, otherwise false
|
216 |
*/
|
217 |
function bbp_get_user_engagements( $args = array() ) {
|
218 |
-
|
219 |
-
|
220 |
-
if ( is_numeric( $args ) ) {
|
221 |
-
$args = array(
|
222 |
-
'meta_query' => array( array(
|
223 |
-
'key' => '_bbp_engagement',
|
224 |
-
'value' => bbp_get_user_id( $args, false, false ),
|
225 |
-
'compare' => 'NUMERIC'
|
226 |
-
) )
|
227 |
-
);
|
228 |
-
}
|
229 |
-
|
230 |
-
// Default arguments
|
231 |
-
$defaults = array(
|
232 |
-
'meta_query' => array( array(
|
233 |
-
'key' => '_bbp_engagement',
|
234 |
-
'value' => bbp_get_displayed_user_id(),
|
235 |
-
'compare' => 'NUMERIC'
|
236 |
-
) )
|
237 |
-
);
|
238 |
-
|
239 |
-
// Parse arguments
|
240 |
-
$r = bbp_parse_args( $args, $defaults, 'get_user_engagements' );
|
241 |
-
|
242 |
-
// Get the topics
|
243 |
-
$query = bbp_has_topics( $r );
|
244 |
-
$user_id = isset( $r['meta_query'][0]['value'] )
|
245 |
-
? $r['meta_query'][0]['value']
|
246 |
-
: 0;
|
247 |
|
248 |
// Filter & return
|
249 |
-
return apply_filters( 'bbp_get_user_engagements', $query,
|
250 |
}
|
251 |
|
252 |
/**
|
@@ -460,43 +458,16 @@ function bbp_get_topic_favoriters( $topic_id = 0 ) {
|
|
460 |
* @since 2.0.0 bbPress (r2652)
|
461 |
* @since 2.6.0 bbPress (r6618) Signature changed to accept an array of arguments
|
462 |
*
|
463 |
-
* @param array $args Optional. Arguments to pass into
|
464 |
*
|
465 |
* @return bool True if user has favorites, otherwise false
|
466 |
*/
|
467 |
function bbp_get_user_favorites( $args = array() ) {
|
468 |
-
|
469 |
-
|
470 |
-
if ( is_numeric( $args ) ) {
|
471 |
-
$args = array(
|
472 |
-
'meta_query' => array( array(
|
473 |
-
'key' => '_bbp_favorite',
|
474 |
-
'value' => bbp_get_user_id( $args, false, false ),
|
475 |
-
'compare' => 'NUMERIC'
|
476 |
-
) )
|
477 |
-
);
|
478 |
-
}
|
479 |
-
|
480 |
-
// Default arguments
|
481 |
-
$defaults = array(
|
482 |
-
'meta_query' => array( array(
|
483 |
-
'key' => '_bbp_favorite',
|
484 |
-
'value' => bbp_get_displayed_user_id(),
|
485 |
-
'compare' => 'NUMERIC'
|
486 |
-
) )
|
487 |
-
);
|
488 |
-
|
489 |
-
// Parse arguments
|
490 |
-
$r = bbp_parse_args( $args, $defaults, 'get_user_favorites' );
|
491 |
-
|
492 |
-
// Get the topics
|
493 |
-
$query = bbp_has_topics( $r );
|
494 |
-
$user_id = isset( $r['meta_query'][0]['value'] )
|
495 |
-
? $r['meta_query'][0]['value']
|
496 |
-
: 0;
|
497 |
|
498 |
// Filter & return
|
499 |
-
return apply_filters( 'bbp_get_user_favorites', $query,
|
500 |
}
|
501 |
|
502 |
/**
|
@@ -529,7 +500,7 @@ function bbp_is_user_favorite( $user_id = 0, $topic_id = 0 ) {
|
|
529 |
* @param int $user_id Optional. User id
|
530 |
* @param int $topic_id Optional. Topic id
|
531 |
*
|
532 |
-
* @return bool
|
533 |
*/
|
534 |
function bbp_add_user_favorite( $user_id = 0, $topic_id = 0 ) {
|
535 |
$user_id = bbp_get_user_id( $user_id, false, false );
|
@@ -563,7 +534,7 @@ function bbp_add_user_favorite( $user_id = 0, $topic_id = 0 ) {
|
|
563 |
* @param int $user_id Optional. User id
|
564 |
* @param int $topic_id Optional. Topic id
|
565 |
*
|
566 |
-
* @return bool True if the topic was removed from user's favorites,
|
567 |
*/
|
568 |
function bbp_remove_user_favorite( $user_id, $topic_id ) {
|
569 |
$user_id = bbp_get_user_id( $user_id, false, false );
|
@@ -605,7 +576,7 @@ function bbp_favorites_handler( $action = '' ) {
|
|
605 |
}
|
606 |
|
607 |
// Bail if no topic ID is passed
|
608 |
-
if ( empty( $_GET['
|
609 |
return $success;
|
610 |
}
|
611 |
|
@@ -621,7 +592,7 @@ function bbp_favorites_handler( $action = '' ) {
|
|
621 |
}
|
622 |
|
623 |
// What action is taking place?
|
624 |
-
$topic_id = bbp_get_topic_id( $_GET['
|
625 |
$user_id = bbp_get_user_id( 0, true, true );
|
626 |
|
627 |
// Check for empty topic
|
@@ -690,7 +661,7 @@ function bbp_favorites_handler( $action = '' ) {
|
|
690 |
*
|
691 |
* @since 2.6.0 bbPress (r5156)
|
692 |
*
|
693 |
-
* @param int $object_id Optional. ID of forum, topic, or something else
|
694 |
*/
|
695 |
function bbp_get_subscribers( $object_id = 0, $type = 'post' ) {
|
696 |
$users = bbp_get_users_for_object( $object_id, '_bbp_subscription', $type );
|
@@ -705,43 +676,16 @@ function bbp_get_subscribers( $object_id = 0, $type = 'post' ) {
|
|
705 |
* @since 2.0.0 bbPress (r2668)
|
706 |
* @since 2.6.0 bbPress (r6618) Signature changed to accept an array of arguments
|
707 |
*
|
708 |
-
* @param array $args Optional. Arguments to pass into
|
709 |
*
|
710 |
-
* @return bool True if user has
|
711 |
*/
|
712 |
function bbp_get_user_topic_subscriptions( $args = array() ) {
|
713 |
-
|
714 |
-
|
715 |
-
if ( is_numeric( $args ) ) {
|
716 |
-
$args = array(
|
717 |
-
'meta_query' => array( array(
|
718 |
-
'key' => '_bbp_subscription',
|
719 |
-
'value' => bbp_get_user_id( $args, false, false ),
|
720 |
-
'compare' => 'NUMERIC'
|
721 |
-
) )
|
722 |
-
);
|
723 |
-
}
|
724 |
-
|
725 |
-
// Default arguments
|
726 |
-
$defaults = array(
|
727 |
-
'meta_query' => array( array(
|
728 |
-
'key' => '_bbp_subscription',
|
729 |
-
'value' => bbp_get_displayed_user_id(),
|
730 |
-
'compare' => 'NUMERIC'
|
731 |
-
) )
|
732 |
-
);
|
733 |
-
|
734 |
-
// Parse arguments
|
735 |
-
$r = bbp_parse_args( $args, $defaults, 'get_user_topic_subscriptions' );
|
736 |
-
|
737 |
-
// Get the topics
|
738 |
-
$query = bbp_has_topics( $r );
|
739 |
-
$user_id = isset( $r['meta_query'][0]['value'] )
|
740 |
-
? $r['meta_query'][0]['value']
|
741 |
-
: 0;
|
742 |
|
743 |
// Filter & return
|
744 |
-
return apply_filters( 'bbp_get_user_topic_subscriptions', $query,
|
745 |
}
|
746 |
|
747 |
/**
|
@@ -750,54 +694,27 @@ function bbp_get_user_topic_subscriptions( $args = array() ) {
|
|
750 |
* @since 2.5.0 bbPress (r5156)
|
751 |
* @since 2.6.0 bbPress (r6618) Signature changed to accept an array of arguments
|
752 |
*
|
753 |
-
* @param array $args Optional. Arguments to pass into
|
754 |
*
|
755 |
* @return bool True if user has forum subscriptions, otherwise false
|
756 |
*/
|
757 |
function bbp_get_user_forum_subscriptions( $args = array() ) {
|
758 |
-
|
759 |
-
|
760 |
-
if ( is_numeric( $args ) ) {
|
761 |
-
$args = array(
|
762 |
-
'meta_query' => array( array(
|
763 |
-
'key' => '_bbp_subscription',
|
764 |
-
'value' => bbp_get_user_id( $args, false, false ),
|
765 |
-
'compare' => 'NUMERIC'
|
766 |
-
) )
|
767 |
-
);
|
768 |
-
}
|
769 |
-
|
770 |
-
// Default arguments
|
771 |
-
$defaults = array(
|
772 |
-
'meta_query' => array( array(
|
773 |
-
'key' => '_bbp_subscription',
|
774 |
-
'value' => bbp_get_displayed_user_id(),
|
775 |
-
'compare' => 'NUMERIC'
|
776 |
-
) )
|
777 |
-
);
|
778 |
-
|
779 |
-
// Parse arguments
|
780 |
-
$r = bbp_parse_args( $args, $defaults, 'get_user_forum_subscriptions' );
|
781 |
-
|
782 |
-
// Get the forums
|
783 |
-
$query = bbp_has_forums( $r );
|
784 |
-
$user_id = isset( $r['meta_query'][0]['value'] )
|
785 |
-
? $r['meta_query'][0]['value']
|
786 |
-
: 0;
|
787 |
|
788 |
// Filter & return
|
789 |
-
return apply_filters( 'bbp_get_user_forum_subscriptions', $query,
|
790 |
}
|
791 |
|
792 |
/**
|
793 |
-
* Check if
|
794 |
*
|
795 |
* @since 2.5.0 bbPress (r5156)
|
796 |
*
|
797 |
* @param int $user_id Optional. User id
|
798 |
-
* @param int $object_id Optional.
|
799 |
*
|
800 |
-
* @return bool True if the forum or topic is in user's subscriptions, otherwise false
|
801 |
*/
|
802 |
function bbp_is_user_subscribed( $user_id = 0, $object_id = 0, $type = 'post' ) {
|
803 |
$retval = bbp_is_object_of_user( $object_id, $user_id, '_bbp_subscription', $type );
|
@@ -813,10 +730,10 @@ function bbp_is_user_subscribed( $user_id = 0, $object_id = 0, $type = 'post' )
|
|
813 |
* @since 2.6.0 bbPress (r6544) Added $type parameter
|
814 |
*
|
815 |
* @param int $user_id Optional. User id
|
816 |
-
* @param int $object_id Optional.
|
817 |
* @param string $type Optional. Type of object being subscribed to
|
818 |
*
|
819 |
-
* @return bool
|
820 |
*/
|
821 |
function bbp_add_user_subscription( $user_id = 0, $object_id = 0, $type = 'post' ) {
|
822 |
|
@@ -847,11 +764,10 @@ function bbp_add_user_subscription( $user_id = 0, $object_id = 0, $type = 'post'
|
|
847 |
* @since 2.6.0 bbPress (r6544) Added $type parameter
|
848 |
*
|
849 |
* @param int $user_id Optional. User id
|
850 |
-
* @param int $object_id Optional.
|
851 |
* @param string $type Optional. Type of object being subscribed to
|
852 |
*
|
853 |
-
* @return bool True if the
|
854 |
-
* otherwise false
|
855 |
*/
|
856 |
function bbp_remove_user_subscription( $user_id = 0, $object_id = 0, $type = 'post' ) {
|
857 |
|
@@ -979,6 +895,12 @@ function bbp_subscriptions_handler( $action = '' ) {
|
|
979 |
|
980 |
/** Query Helpers *************************************************************/
|
981 |
|
|
|
|
|
|
|
|
|
|
|
|
|
982 |
/**
|
983 |
* Get a user's object IDs
|
984 |
*
|
@@ -990,8 +912,8 @@ function bbp_subscriptions_handler( $action = '' ) {
|
|
990 |
* @since 2.6.0 bbPress (r6606)
|
991 |
*
|
992 |
* @param int $user_id The user id
|
993 |
-
* @param string $
|
994 |
-
* @param string $
|
995 |
* @param array $args The arguments to override defaults
|
996 |
*
|
997 |
* @return array|bool Results if user has objects, otherwise null
|
@@ -1003,27 +925,27 @@ function bbp_get_user_object_ids( $args = array() ) {
|
|
1003 |
$r = bbp_parse_args( $args, array(
|
1004 |
'user_id' => 0,
|
1005 |
'object_type' => bbp_get_topic_post_type(),
|
1006 |
-
'
|
1007 |
-
'
|
1008 |
'filter' => 'user_object_ids',
|
1009 |
'args' => array()
|
1010 |
), 'get_user_object_ids' );
|
1011 |
|
1012 |
// Sanitize arguments
|
1013 |
$r['user_id'] = bbp_get_user_id( $r['user_id'] );
|
1014 |
-
$r['
|
1015 |
-
$r['
|
1016 |
$r['object_type'] = sanitize_key( $r['object_type'] );
|
1017 |
$r['filter'] = sanitize_key( $r['filter'] );
|
1018 |
|
1019 |
// Defaults
|
1020 |
-
if ( 'post' === $r['
|
1021 |
$defaults = array(
|
1022 |
'fields' => 'ids',
|
1023 |
'post_type' => $r['object_type'],
|
1024 |
'posts_per_page' => -1,
|
1025 |
'meta_query' => array( array(
|
1026 |
-
'key' => $r['
|
1027 |
'value' => $r['user_id'],
|
1028 |
'compare' => 'NUMERIC'
|
1029 |
),
|
@@ -1042,7 +964,7 @@ function bbp_get_user_object_ids( $args = array() ) {
|
|
1042 |
$query_args = bbp_parse_args( $r['args'], $defaults, "get_{$r['filter']}_args" );
|
1043 |
|
1044 |
// Queries
|
1045 |
-
if ( 'post' === $r['
|
1046 |
$query = new WP_Query( $query_args );
|
1047 |
$object_ids = $query->posts;
|
1048 |
}
|
@@ -1063,7 +985,7 @@ function bbp_get_user_object_ids( $args = array() ) {
|
|
1063 |
function bbp_get_moderator_forum_ids( $user_id = 0 ) {
|
1064 |
return bbp_get_user_object_ids( array(
|
1065 |
'user_id' => $user_id,
|
1066 |
-
'
|
1067 |
'object_type' => bbp_get_forum_post_type(),
|
1068 |
'filter' => 'moderator_forum_ids'
|
1069 |
) );
|
@@ -1080,9 +1002,9 @@ function bbp_get_moderator_forum_ids( $user_id = 0 ) {
|
|
1080 |
*/
|
1081 |
function bbp_get_user_engaged_topic_ids( $user_id = 0 ) {
|
1082 |
return bbp_get_user_object_ids( array(
|
1083 |
-
'user_id'
|
1084 |
-
'
|
1085 |
-
'filter'
|
1086 |
) );
|
1087 |
}
|
1088 |
|
@@ -1093,13 +1015,13 @@ function bbp_get_user_engaged_topic_ids( $user_id = 0 ) {
|
|
1093 |
*
|
1094 |
* @param int $user_id Optional. User id
|
1095 |
*
|
1096 |
-
* @return array Return array of
|
1097 |
*/
|
1098 |
function bbp_get_user_favorites_topic_ids( $user_id = 0 ) {
|
1099 |
return bbp_get_user_object_ids( array(
|
1100 |
-
'user_id'
|
1101 |
-
'
|
1102 |
-
'filter'
|
1103 |
) );
|
1104 |
}
|
1105 |
|
@@ -1110,12 +1032,12 @@ function bbp_get_user_favorites_topic_ids( $user_id = 0 ) {
|
|
1110 |
*
|
1111 |
* @param int $user_id Optional. User id
|
1112 |
*
|
1113 |
-
* @return array Return array of subscribed ids, or empty array
|
1114 |
*/
|
1115 |
function bbp_get_user_subscribed_forum_ids( $user_id = 0 ) {
|
1116 |
return bbp_get_user_object_ids( array(
|
1117 |
'user_id' => $user_id,
|
1118 |
-
'
|
1119 |
'object_type' => bbp_get_forum_post_type(),
|
1120 |
'filter' => 'user_subscribed_forum_ids'
|
1121 |
) );
|
@@ -1128,13 +1050,13 @@ function bbp_get_user_subscribed_forum_ids( $user_id = 0 ) {
|
|
1128 |
*
|
1129 |
* @param int $user_id Optional. User id
|
1130 |
*
|
1131 |
-
* @return array Return array of subscribed ids, or empty array
|
1132 |
*/
|
1133 |
function bbp_get_user_subscribed_topic_ids( $user_id = 0 ) {
|
1134 |
return bbp_get_user_object_ids( array(
|
1135 |
-
'user_id'
|
1136 |
-
'
|
1137 |
-
'filter'
|
1138 |
) );
|
1139 |
}
|
1140 |
|
19 |
*
|
20 |
* @param int $object_id The object id
|
21 |
* @param int $user_id The user id
|
22 |
+
* @param string $rel_key The relationship key
|
23 |
+
* @param string $rel_type The relationship type (usually 'post')
|
24 |
* @param bool $unique Whether meta key should be unique to the object
|
25 |
*
|
26 |
* @return bool Returns true on success, false on failure
|
27 |
*/
|
28 |
+
function bbp_add_user_to_object( $object_id = 0, $user_id = 0, $rel_key = '', $rel_type = 'post', $unique = false ) {
|
29 |
+
$object_id = absint( $object_id );
|
30 |
+
$user_id = absint( $user_id );
|
31 |
+
$retval = bbp_user_engagements_interface( $rel_key, $rel_type )->add_user_to_object( $object_id, $user_id, $rel_key, $rel_type, $unique );
|
32 |
|
33 |
// Filter & return
|
34 |
+
return (bool) apply_filters( 'bbp_add_user_to_object', $retval, $object_id, $user_id, $rel_key, $rel_type, $unique );
|
35 |
}
|
36 |
|
37 |
/**
|
41 |
*
|
42 |
* @param int $object_id The object id
|
43 |
* @param int $user_id The user id
|
44 |
+
* @param string $rel_key The relationship key
|
45 |
+
* @param string $rel_type The relationship type (usually 'post')
|
46 |
*
|
47 |
* @return bool Returns true on success, false on failure
|
48 |
*/
|
49 |
+
function bbp_remove_user_from_object( $object_id = 0, $user_id = 0, $rel_key = '', $rel_type = 'post' ) {
|
50 |
+
$retval = bbp_user_engagements_interface( $rel_key, $rel_type )->remove_user_from_object( $object_id, $user_id, $rel_key, $rel_type );
|
51 |
|
52 |
// Filter & return
|
53 |
+
return (bool) apply_filters( 'bbp_remove_user_from_object', $retval, $object_id, $user_id, $rel_key, $rel_type );
|
54 |
}
|
55 |
|
56 |
/**
|
58 |
*
|
59 |
* @since 2.6.0 bbPress (r6109)
|
60 |
*
|
61 |
+
* @param int $user_id The user id
|
62 |
+
* @param string $rel_key The relationship key
|
63 |
+
* @param string $rel_type The relationship type (usually 'post')
|
64 |
*
|
65 |
* @return bool Returns true on success, false on failure
|
66 |
*/
|
67 |
+
function bbp_remove_user_from_all_objects( $user_id = 0, $rel_key = '', $rel_type = 'post' ) {
|
68 |
+
$user_id = absint( $user_id );
|
69 |
+
$retval = bbp_user_engagements_interface( $rel_key, $rel_type )->remove_user_from_all_objects( $user_id, $rel_key, $rel_type );
|
70 |
|
71 |
// Filter & return
|
72 |
+
return (bool) apply_filters( 'bbp_remove_user_from_all_objects', $retval, $user_id, $rel_key, $rel_type );
|
73 |
}
|
74 |
|
75 |
/**
|
79 |
*
|
80 |
* @param int $object_id The object id
|
81 |
* @param int $user_id The user id
|
82 |
+
* @param string $rel_key The relationship key
|
83 |
+
* @param string $rel_type The relationship type (usually 'post')
|
84 |
*
|
85 |
* @return bool Returns true on success, false on failure
|
86 |
*/
|
87 |
+
function bbp_remove_object_from_all_users( $object_id = 0, $rel_key = '', $rel_type = 'post' ) {
|
88 |
+
$object_id = absint( $object_id );
|
89 |
+
$retval = bbp_user_engagements_interface( $rel_key, $rel_type )->remove_object_from_all_users( $object_id, $rel_key, $rel_type );
|
90 |
|
91 |
// Filter & return
|
92 |
+
return (bool) apply_filters( 'bbp_remove_object_from_all_users', $retval, $object_id, $rel_key, $rel_type );
|
93 |
}
|
94 |
|
95 |
/**
|
97 |
*
|
98 |
* @since 2.6.0 bbPress (r6109)
|
99 |
*
|
100 |
+
* @param string $rel_key The relationship key
|
101 |
+
* @param string $rel_type The relationship type (usually 'post')
|
102 |
*
|
103 |
* @return bool Returns true on success, false on failure
|
104 |
*/
|
105 |
+
function bbp_remove_all_users_from_all_objects( $rel_key = '', $rel_type = 'post' ) {
|
106 |
+
$retval = bbp_user_engagements_interface( $rel_key, $rel_type )->remove_all_users_from_all_objects( $rel_key, $rel_type );
|
107 |
|
108 |
// Filter & return
|
109 |
+
return (bool) apply_filters( 'bbp_remove_all_users_from_all_objects', $retval, $rel_key, $rel_type );
|
110 |
}
|
111 |
|
112 |
/**
|
115 |
* @since 2.6.0 bbPress (r6109)
|
116 |
*
|
117 |
* @param int $object_id The object id
|
118 |
+
* @param string $rel_key The key used to index this relationship
|
119 |
+
* @param string $rel_type The type of meta to look in
|
120 |
*
|
121 |
* @return array Returns ids of users
|
122 |
*/
|
123 |
+
function bbp_get_users_for_object( $object_id = 0, $rel_key = '', $rel_type = 'post' ) {
|
124 |
+
$object_id = absint( $object_id );
|
125 |
+
$retval = bbp_user_engagements_interface( $rel_key, $rel_type )->get_users_for_object( $object_id, $rel_key, $rel_type );
|
126 |
|
127 |
// Filter & return
|
128 |
+
return (array) apply_filters( 'bbp_get_users_for_object', $retval, $object_id, $rel_key, $rel_type );
|
129 |
}
|
130 |
|
131 |
/**
|
135 |
*
|
136 |
* @param int $object_id The object id
|
137 |
* @param int $user_id The user id
|
138 |
+
* @param string $rel_key The relationship key
|
139 |
+
* @param string $rel_type The relationship type (usually 'post')
|
140 |
*
|
141 |
* @return bool Returns true if object has a user, false if not
|
142 |
*/
|
143 |
+
function bbp_is_object_of_user( $object_id = 0, $user_id = 0, $rel_key = '', $rel_type = 'post' ) {
|
144 |
+
$object_id = absint( $object_id );
|
145 |
+
$user_id = absint( $user_id );
|
146 |
+
$user_ids = bbp_get_users_for_object( $object_id, $rel_key, $rel_type );
|
147 |
+
$retval = is_numeric( array_search( $user_id, $user_ids, true ) );
|
148 |
+
|
149 |
+
// Filter & return
|
150 |
+
return (bool) apply_filters( 'bbp_is_object_of_user', $retval, $object_id, $user_id, $rel_key, $rel_type );
|
151 |
+
}
|
152 |
+
|
153 |
+
/**
|
154 |
+
* Get the query part responsible for JOINing objects to user IDs
|
155 |
+
*
|
156 |
+
* @since 2.6.0 bbPress (r6747)
|
157 |
+
*
|
158 |
+
* @param array $args Default query arguments
|
159 |
+
* @param string $context Additional context
|
160 |
+
* @param string $rel_key The relationship key
|
161 |
+
* @param string $rel_type The relationship type (usually 'post')
|
162 |
+
*
|
163 |
+
* @return array
|
164 |
+
*/
|
165 |
+
function bbp_get_user_object_query( $args = array(), $context = '', $rel_key = '', $rel_type = 'post' ) {
|
166 |
+
$retval = bbp_user_engagements_interface( $rel_key, $rel_type )->get_query( $args, "get_user_{$context}", $rel_key, $rel_type );
|
167 |
|
168 |
// Filter & return
|
169 |
+
return (array) apply_filters( 'bbp_get_user_object_query', $retval, $args, $context, $rel_key, $rel_type );
|
170 |
}
|
171 |
|
172 |
/** Engagements ***************************************************************/
|
240 |
* @return bool True if user has engaged, otherwise false
|
241 |
*/
|
242 |
function bbp_get_user_engagements( $args = array() ) {
|
243 |
+
$r = bbp_get_user_object_query( $args, 'engagements', '_bbp_engagement' );
|
244 |
+
$query = bbp_has_topics( $r );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
245 |
|
246 |
// Filter & return
|
247 |
+
return apply_filters( 'bbp_get_user_engagements', $query, 0, $r, $args );
|
248 |
}
|
249 |
|
250 |
/**
|
458 |
* @since 2.0.0 bbPress (r2652)
|
459 |
* @since 2.6.0 bbPress (r6618) Signature changed to accept an array of arguments
|
460 |
*
|
461 |
+
* @param array $args Optional. Arguments to pass into bbp_has_topics()
|
462 |
*
|
463 |
* @return bool True if user has favorites, otherwise false
|
464 |
*/
|
465 |
function bbp_get_user_favorites( $args = array() ) {
|
466 |
+
$r = bbp_get_user_object_query( $args, 'favorites', '_bbp_favorite' );
|
467 |
+
$query = bbp_has_topics( $r );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
468 |
|
469 |
// Filter & return
|
470 |
+
return apply_filters( 'bbp_get_user_favorites', $query, 0, $r, $args );
|
471 |
}
|
472 |
|
473 |
/**
|
500 |
* @param int $user_id Optional. User id
|
501 |
* @param int $topic_id Optional. Topic id
|
502 |
*
|
503 |
+
* @return bool True if the topic was added to user's favorites, otherwise false
|
504 |
*/
|
505 |
function bbp_add_user_favorite( $user_id = 0, $topic_id = 0 ) {
|
506 |
$user_id = bbp_get_user_id( $user_id, false, false );
|
534 |
* @param int $user_id Optional. User id
|
535 |
* @param int $topic_id Optional. Topic id
|
536 |
*
|
537 |
+
* @return bool True if the topic was removed from user's favorites, otherwise false
|
538 |
*/
|
539 |
function bbp_remove_user_favorite( $user_id, $topic_id ) {
|
540 |
$user_id = bbp_get_user_id( $user_id, false, false );
|
576 |
}
|
577 |
|
578 |
// Bail if no topic ID is passed
|
579 |
+
if ( empty( $_GET['object_id'] ) ) {
|
580 |
return $success;
|
581 |
}
|
582 |
|
592 |
}
|
593 |
|
594 |
// What action is taking place?
|
595 |
+
$topic_id = bbp_get_topic_id( $_GET['object_id'] );
|
596 |
$user_id = bbp_get_user_id( 0, true, true );
|
597 |
|
598 |
// Check for empty topic
|
661 |
*
|
662 |
* @since 2.6.0 bbPress (r5156)
|
663 |
*
|
664 |
+
* @param int $object_id Optional. ID of object (forum, topic, or something else)
|
665 |
*/
|
666 |
function bbp_get_subscribers( $object_id = 0, $type = 'post' ) {
|
667 |
$users = bbp_get_users_for_object( $object_id, '_bbp_subscription', $type );
|
676 |
* @since 2.0.0 bbPress (r2668)
|
677 |
* @since 2.6.0 bbPress (r6618) Signature changed to accept an array of arguments
|
678 |
*
|
679 |
+
* @param array $args Optional. Arguments to pass into bbp_has_topics()
|
680 |
*
|
681 |
+
* @return bool True if user has topic subscriptions, otherwise false
|
682 |
*/
|
683 |
function bbp_get_user_topic_subscriptions( $args = array() ) {
|
684 |
+
$r = bbp_get_user_object_query( $args, 'topic_subscriptions', '_bbp_subscription' );
|
685 |
+
$query = bbp_has_topics( $r );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
686 |
|
687 |
// Filter & return
|
688 |
+
return apply_filters( 'bbp_get_user_topic_subscriptions', $query, 0, $r, $args );
|
689 |
}
|
690 |
|
691 |
/**
|
694 |
* @since 2.5.0 bbPress (r5156)
|
695 |
* @since 2.6.0 bbPress (r6618) Signature changed to accept an array of arguments
|
696 |
*
|
697 |
+
* @param array $args Optional. Arguments to pass into bbp_has_forums()
|
698 |
*
|
699 |
* @return bool True if user has forum subscriptions, otherwise false
|
700 |
*/
|
701 |
function bbp_get_user_forum_subscriptions( $args = array() ) {
|
702 |
+
$r = bbp_get_user_object_query( $args, 'forum_subscriptions', '_bbp_subscription' );
|
703 |
+
$query = bbp_has_forums( $r );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
704 |
|
705 |
// Filter & return
|
706 |
+
return apply_filters( 'bbp_get_user_forum_subscriptions', $query, 0, $r, $args );
|
707 |
}
|
708 |
|
709 |
/**
|
710 |
+
* Check if an object (forum or topic) is in user's subscription list or not
|
711 |
*
|
712 |
* @since 2.5.0 bbPress (r5156)
|
713 |
*
|
714 |
* @param int $user_id Optional. User id
|
715 |
+
* @param int $object_id Optional. Object id
|
716 |
*
|
717 |
+
* @return bool True if the object (forum or topic) is in user's subscriptions, otherwise false
|
718 |
*/
|
719 |
function bbp_is_user_subscribed( $user_id = 0, $object_id = 0, $type = 'post' ) {
|
720 |
$retval = bbp_is_object_of_user( $object_id, $user_id, '_bbp_subscription', $type );
|
730 |
* @since 2.6.0 bbPress (r6544) Added $type parameter
|
731 |
*
|
732 |
* @param int $user_id Optional. User id
|
733 |
+
* @param int $object_id Optional. Object id
|
734 |
* @param string $type Optional. Type of object being subscribed to
|
735 |
*
|
736 |
+
* @return bool True if the object was added to user subscriptions, otherwise false
|
737 |
*/
|
738 |
function bbp_add_user_subscription( $user_id = 0, $object_id = 0, $type = 'post' ) {
|
739 |
|
764 |
* @since 2.6.0 bbPress (r6544) Added $type parameter
|
765 |
*
|
766 |
* @param int $user_id Optional. User id
|
767 |
+
* @param int $object_id Optional. Object id
|
768 |
* @param string $type Optional. Type of object being subscribed to
|
769 |
*
|
770 |
+
* @return bool True if the object was removed from user subscriptions, otherwise false
|
|
|
771 |
*/
|
772 |
function bbp_remove_user_subscription( $user_id = 0, $object_id = 0, $type = 'post' ) {
|
773 |
|
895 |
|
896 |
/** Query Helpers *************************************************************/
|
897 |
|
898 |
+
/**
|
899 |
+
* These functions are no longer used in bbPress due to general performance
|
900 |
+
* concerns on large installations. They are provided here for convenience and
|
901 |
+
* backwards compatibility only.
|
902 |
+
*/
|
903 |
+
|
904 |
/**
|
905 |
* Get a user's object IDs
|
906 |
*
|
912 |
* @since 2.6.0 bbPress (r6606)
|
913 |
*
|
914 |
* @param int $user_id The user id
|
915 |
+
* @param string $rel_key The relationship key
|
916 |
+
* @param string $rel_type The relationship type (usually 'post')
|
917 |
* @param array $args The arguments to override defaults
|
918 |
*
|
919 |
* @return array|bool Results if user has objects, otherwise null
|
925 |
$r = bbp_parse_args( $args, array(
|
926 |
'user_id' => 0,
|
927 |
'object_type' => bbp_get_topic_post_type(),
|
928 |
+
'rel_key' => '',
|
929 |
+
'rel_type' => 'post',
|
930 |
'filter' => 'user_object_ids',
|
931 |
'args' => array()
|
932 |
), 'get_user_object_ids' );
|
933 |
|
934 |
// Sanitize arguments
|
935 |
$r['user_id'] = bbp_get_user_id( $r['user_id'] );
|
936 |
+
$r['rel_key'] = sanitize_key( $r['rel_key'] );
|
937 |
+
$r['rel_type'] = sanitize_key( $r['rel_type'] );
|
938 |
$r['object_type'] = sanitize_key( $r['object_type'] );
|
939 |
$r['filter'] = sanitize_key( $r['filter'] );
|
940 |
|
941 |
// Defaults
|
942 |
+
if ( 'post' === $r['rel_type'] ) {
|
943 |
$defaults = array(
|
944 |
'fields' => 'ids',
|
945 |
'post_type' => $r['object_type'],
|
946 |
'posts_per_page' => -1,
|
947 |
'meta_query' => array( array(
|
948 |
+
'key' => $r['rel_key'],
|
949 |
'value' => $r['user_id'],
|
950 |
'compare' => 'NUMERIC'
|
951 |
),
|
964 |
$query_args = bbp_parse_args( $r['args'], $defaults, "get_{$r['filter']}_args" );
|
965 |
|
966 |
// Queries
|
967 |
+
if ( 'post' === $r['rel_type'] ) {
|
968 |
$query = new WP_Query( $query_args );
|
969 |
$object_ids = $query->posts;
|
970 |
}
|
985 |
function bbp_get_moderator_forum_ids( $user_id = 0 ) {
|
986 |
return bbp_get_user_object_ids( array(
|
987 |
'user_id' => $user_id,
|
988 |
+
'rel_key' => '_bbp_moderator_id',
|
989 |
'object_type' => bbp_get_forum_post_type(),
|
990 |
'filter' => 'moderator_forum_ids'
|
991 |
) );
|
1002 |
*/
|
1003 |
function bbp_get_user_engaged_topic_ids( $user_id = 0 ) {
|
1004 |
return bbp_get_user_object_ids( array(
|
1005 |
+
'user_id' => $user_id,
|
1006 |
+
'rel_key' => '_bbp_engagement',
|
1007 |
+
'filter' => 'user_engaged_topic_ids'
|
1008 |
) );
|
1009 |
}
|
1010 |
|
1015 |
*
|
1016 |
* @param int $user_id Optional. User id
|
1017 |
*
|
1018 |
+
* @return array Return array of favorite topic ids, or empty array
|
1019 |
*/
|
1020 |
function bbp_get_user_favorites_topic_ids( $user_id = 0 ) {
|
1021 |
return bbp_get_user_object_ids( array(
|
1022 |
+
'user_id' => $user_id,
|
1023 |
+
'rel_key' => '_bbp_favorite',
|
1024 |
+
'filter' => 'user_favorites_topic_ids'
|
1025 |
) );
|
1026 |
}
|
1027 |
|
1032 |
*
|
1033 |
* @param int $user_id Optional. User id
|
1034 |
*
|
1035 |
+
* @return array Return array of subscribed forum ids, or empty array
|
1036 |
*/
|
1037 |
function bbp_get_user_subscribed_forum_ids( $user_id = 0 ) {
|
1038 |
return bbp_get_user_object_ids( array(
|
1039 |
'user_id' => $user_id,
|
1040 |
+
'rel_key' => '_bbp_subscription',
|
1041 |
'object_type' => bbp_get_forum_post_type(),
|
1042 |
'filter' => 'user_subscribed_forum_ids'
|
1043 |
) );
|
1050 |
*
|
1051 |
* @param int $user_id Optional. User id
|
1052 |
*
|
1053 |
+
* @return array Return array of subscribed topic ids, or empty array
|
1054 |
*/
|
1055 |
function bbp_get_user_subscribed_topic_ids( $user_id = 0 ) {
|
1056 |
return bbp_get_user_object_ids( array(
|
1057 |
+
'user_id' => $user_id,
|
1058 |
+
'rel_key' => '_bbp_subscription',
|
1059 |
+
'filter' => 'user_subscribed_topic_ids'
|
1060 |
) );
|
1061 |
}
|
1062 |
|
includes/users/functions.php
CHANGED
@@ -61,7 +61,7 @@ function bbp_is_anonymous() {
|
|
61 |
* @param string $key Which value to echo?
|
62 |
*/
|
63 |
function bbp_current_anonymous_user_data( $key = '' ) {
|
64 |
-
echo bbp_get_current_anonymous_user_data( $key );
|
65 |
}
|
66 |
|
67 |
/**
|
@@ -87,9 +87,6 @@ function bbp_current_anonymous_user_data( $key = '' ) {
|
|
87 |
'comment_author_url' => 'comment_author_url',
|
88 |
);
|
89 |
|
90 |
-
// Sanitize core cookies
|
91 |
-
sanitize_comment_cookies();
|
92 |
-
|
93 |
// Get the current poster's info from the cookies
|
94 |
$bbp_current_poster = wp_get_current_commenter();
|
95 |
|
@@ -163,7 +160,7 @@ function bbp_current_author_ip() {
|
|
163 |
*/
|
164 |
function bbp_current_author_ua() {
|
165 |
$retval = ! empty( $_SERVER['HTTP_USER_AGENT'] )
|
166 |
-
?
|
167 |
: '';
|
168 |
|
169 |
// Filter & return
|
@@ -667,7 +664,7 @@ function bbp_get_user_topic_count_raw( $user_id = 0 ) {
|
|
667 |
function bbp_get_user_reply_count_raw( $user_id = 0 ) {
|
668 |
$user_id = bbp_get_user_id( $user_id );
|
669 |
$bbp_db = bbp_db();
|
670 |
-
$statii = "'" . implode( "', '",
|
671 |
$sql = "SELECT COUNT(*)
|
672 |
FROM {$bbp_db->posts}
|
673 |
WHERE post_author = %d
|
@@ -980,11 +977,14 @@ function bbp_user_maybe_convert_pass() {
|
|
980 |
return;
|
981 |
}
|
982 |
|
|
|
|
|
|
|
983 |
// Try to convert the old password for this user
|
984 |
$converter = bbp_new_converter( $row->meta_value );
|
985 |
|
986 |
// Try to call the conversion method
|
987 |
-
if (
|
988 |
$converter->callback_pass( $username, $_POST['pwd'] );
|
989 |
}
|
990 |
}
|
61 |
* @param string $key Which value to echo?
|
62 |
*/
|
63 |
function bbp_current_anonymous_user_data( $key = '' ) {
|
64 |
+
echo esc_attr( bbp_get_current_anonymous_user_data( $key ) );
|
65 |
}
|
66 |
|
67 |
/**
|
87 |
'comment_author_url' => 'comment_author_url',
|
88 |
);
|
89 |
|
|
|
|
|
|
|
90 |
// Get the current poster's info from the cookies
|
91 |
$bbp_current_poster = wp_get_current_commenter();
|
92 |
|
160 |
*/
|
161 |
function bbp_current_author_ua() {
|
162 |
$retval = ! empty( $_SERVER['HTTP_USER_AGENT'] )
|
163 |
+
? mb_substr( $_SERVER['HTTP_USER_AGENT'], 0, 254 )
|
164 |
: '';
|
165 |
|
166 |
// Filter & return
|
664 |
function bbp_get_user_reply_count_raw( $user_id = 0 ) {
|
665 |
$user_id = bbp_get_user_id( $user_id );
|
666 |
$bbp_db = bbp_db();
|
667 |
+
$statii = "'" . implode( "', '", bbp_get_public_reply_statuses() ) . "'";
|
668 |
$sql = "SELECT COUNT(*)
|
669 |
FROM {$bbp_db->posts}
|
670 |
WHERE post_author = %d
|
977 |
return;
|
978 |
}
|
979 |
|
980 |
+
// Setup the converter
|
981 |
+
bbp_setup_converter();
|
982 |
+
|
983 |
// Try to convert the old password for this user
|
984 |
$converter = bbp_new_converter( $row->meta_value );
|
985 |
|
986 |
// Try to call the conversion method
|
987 |
+
if ( ( $converter instanceof BBP_Converter_Base ) && method_exists( $converter, 'callback_pass' ) ) {
|
988 |
$converter->callback_pass( $username, $_POST['pwd'] );
|
989 |
}
|
990 |
}
|
includes/users/options.php
CHANGED
@@ -205,7 +205,7 @@ function bbp_user_topic_count( $user_id = 0, $integer = false ) {
|
|
205 |
return false;
|
206 |
}
|
207 |
|
208 |
-
$count =
|
209 |
$filter = ( true === $integer )
|
210 |
? 'bbp_get_user_topic_count_int'
|
211 |
: 'bbp_get_user_topic_count';
|
@@ -245,7 +245,7 @@ function bbp_user_reply_count( $user_id = 0, $integer = false ) {
|
|
245 |
return false;
|
246 |
}
|
247 |
|
248 |
-
$count =
|
249 |
$filter = ( true === $integer )
|
250 |
? 'bbp_get_user_reply_count_int'
|
251 |
: 'bbp_get_user_reply_count';
|
@@ -286,7 +286,7 @@ function bbp_user_post_count( $user_id = 0, $integer = false ) {
|
|
286 |
|
287 |
$topics = bbp_get_user_topic_count( $user_id, true );
|
288 |
$replies = bbp_get_user_reply_count( $user_id, true );
|
289 |
-
$count =
|
290 |
$filter = ( true === $integer )
|
291 |
? 'bbp_get_user_post_count_int'
|
292 |
: 'bbp_get_user_post_count';
|
205 |
return false;
|
206 |
}
|
207 |
|
208 |
+
$count = get_user_option( '_bbp_topic_count', $user_id );
|
209 |
$filter = ( true === $integer )
|
210 |
? 'bbp_get_user_topic_count_int'
|
211 |
: 'bbp_get_user_topic_count';
|
245 |
return false;
|
246 |
}
|
247 |
|
248 |
+
$count = get_user_option( '_bbp_reply_count', $user_id );
|
249 |
$filter = ( true === $integer )
|
250 |
? 'bbp_get_user_reply_count_int'
|
251 |
: 'bbp_get_user_reply_count';
|
286 |
|
287 |
$topics = bbp_get_user_topic_count( $user_id, true );
|
288 |
$replies = bbp_get_user_reply_count( $user_id, true );
|
289 |
+
$count = $topics + $replies;
|
290 |
$filter = ( true === $integer )
|
291 |
? 'bbp_get_user_post_count_int'
|
292 |
: 'bbp_get_user_post_count';
|
includes/users/template.php
CHANGED
@@ -534,10 +534,10 @@ function bbp_user_profile_url( $user_id = 0, $user_nicename = '' ) {
|
|
534 |
return false;
|
535 |
}
|
536 |
|
537 |
-
//
|
538 |
-
$
|
539 |
-
if (
|
540 |
-
return $
|
541 |
}
|
542 |
|
543 |
// Pretty permalinks
|
@@ -548,6 +548,7 @@ function bbp_user_profile_url( $user_id = 0, $user_nicename = '' ) {
|
|
548 |
$user_nicename = bbp_get_user_nicename( $user_id );
|
549 |
}
|
550 |
|
|
|
551 |
$url = trailingslashit( bbp_get_root_url() . bbp_get_user_slug() ) . $user_nicename;
|
552 |
$url = user_trailingslashit( $url );
|
553 |
$url = home_url( $url );
|
@@ -623,10 +624,10 @@ function bbp_user_profile_edit_url( $user_id = 0, $user_nicename = '' ) {
|
|
623 |
return false;
|
624 |
}
|
625 |
|
626 |
-
//
|
627 |
-
$
|
628 |
-
if (
|
629 |
-
return $
|
630 |
}
|
631 |
|
632 |
// Get user profile URL
|
@@ -728,7 +729,7 @@ function bbp_admin_link( $args = array() ) {
|
|
728 |
|
729 |
// Parse arguments against default values
|
730 |
$r = bbp_parse_args( $args, array(
|
731 |
-
'text' =>
|
732 |
'before' => '',
|
733 |
'after' => ''
|
734 |
), 'get_admin_link' );
|
@@ -814,7 +815,7 @@ function bbp_get_fallback_display_name( $object_id = 0 ) {
|
|
814 |
* @param int $post_id
|
815 |
*/
|
816 |
function bbp_author_display_name( $post_id = 0 ) {
|
817 |
-
echo bbp_get_author_display_name( $post_id );
|
818 |
}
|
819 |
|
820 |
/**
|
@@ -845,7 +846,7 @@ function bbp_author_display_name( $post_id = 0 ) {
|
|
845 |
|
846 |
// Not an edit, so rely on current user cookie data
|
847 |
} else {
|
848 |
-
$retval =
|
849 |
}
|
850 |
|
851 |
// Filter & return
|
@@ -864,7 +865,7 @@ function bbp_author_display_name( $post_id = 0 ) {
|
|
864 |
* @param int $post_id
|
865 |
*/
|
866 |
function bbp_author_email( $post_id = 0 ) {
|
867 |
-
echo bbp_get_author_email( $post_id );
|
868 |
}
|
869 |
|
870 |
/**
|
@@ -895,7 +896,7 @@ function bbp_author_email( $post_id = 0 ) {
|
|
895 |
|
896 |
// Not an edit, so rely on current user cookie data
|
897 |
} else {
|
898 |
-
$retval =
|
899 |
}
|
900 |
|
901 |
// Filter & return
|
@@ -945,7 +946,7 @@ function bbp_author_url( $post_id = 0 ) {
|
|
945 |
|
946 |
// Not an edit, so rely on current user cookie data
|
947 |
} else {
|
948 |
-
$retval =
|
949 |
}
|
950 |
|
951 |
// Filter & return
|
@@ -982,10 +983,10 @@ function bbp_favorites_permalink( $user_id = 0 ) {
|
|
982 |
return false;
|
983 |
}
|
984 |
|
985 |
-
//
|
986 |
-
$
|
987 |
-
if (
|
988 |
-
return $
|
989 |
}
|
990 |
|
991 |
// Get user profile URL & page
|
@@ -1071,8 +1072,8 @@ function bbp_user_favorites_link( $args = array(), $user_id = 0, $wrap = true )
|
|
1071 |
|
1072 |
// Parse arguments against default values
|
1073 |
$r = bbp_parse_args( $args, array(
|
1074 |
-
'favorite' =>
|
1075 |
-
'favorited' =>
|
1076 |
'user_id' => 0,
|
1077 |
'object_id' => 0,
|
1078 |
'object_type' => 'post',
|
@@ -1173,10 +1174,10 @@ function bbp_subscriptions_permalink( $user_id = 0 ) {
|
|
1173 |
return false;
|
1174 |
}
|
1175 |
|
1176 |
-
//
|
1177 |
-
$
|
1178 |
-
if (
|
1179 |
-
return $
|
1180 |
}
|
1181 |
|
1182 |
// Get user profile URL
|
@@ -1363,7 +1364,7 @@ function bbp_notice_edit_user_success() {
|
|
1363 |
return;
|
1364 |
} ?>
|
1365 |
|
1366 |
-
<div class="bbp-template-notice
|
1367 |
<ul>
|
1368 |
<li><?php esc_html_e( 'User updated.', 'bbpress' ); ?></li>
|
1369 |
</ul>
|
@@ -1409,7 +1410,7 @@ function bbp_notice_edit_user_pending_email() {
|
|
1409 |
|
1410 |
<div class="bbp-template-notice info">
|
1411 |
<ul>
|
1412 |
-
<li><?php printf(
|
1413 |
</ul>
|
1414 |
</div>
|
1415 |
|
@@ -1612,10 +1613,10 @@ function bbp_user_topics_created_url( $user_id = 0 ) {
|
|
1612 |
return false;
|
1613 |
}
|
1614 |
|
1615 |
-
//
|
1616 |
-
$
|
1617 |
-
if (
|
1618 |
-
return $
|
1619 |
}
|
1620 |
|
1621 |
// Get user profile URL
|
@@ -1665,10 +1666,10 @@ function bbp_user_replies_created_url( $user_id = 0 ) {
|
|
1665 |
return false;
|
1666 |
}
|
1667 |
|
1668 |
-
//
|
1669 |
-
$
|
1670 |
-
if (
|
1671 |
-
return $
|
1672 |
}
|
1673 |
|
1674 |
// Get user profile URL
|
@@ -1718,10 +1719,10 @@ function bbp_user_engagements_url( $user_id = 0 ) {
|
|
1718 |
return false;
|
1719 |
}
|
1720 |
|
1721 |
-
//
|
1722 |
-
$
|
1723 |
-
if (
|
1724 |
-
return $
|
1725 |
}
|
1726 |
|
1727 |
// Get user profile URL
|
@@ -1820,11 +1821,11 @@ function bbp_login_notices() {
|
|
1820 |
|
1821 |
// loggedout was passed
|
1822 |
if ( ! empty( $_GET['loggedout'] ) && ( true === $_GET['loggedout'] ) ) {
|
1823 |
-
bbp_add_error( 'loggedout',
|
1824 |
|
1825 |
// registration is disabled
|
1826 |
} elseif ( ! empty( $_GET['registration'] ) && ( 'disabled' === $_GET['registration'] ) ) {
|
1827 |
-
bbp_add_error( 'registerdisabled',
|
1828 |
|
1829 |
// Prompt user to check their email
|
1830 |
} elseif ( ! empty( $_GET['checkemail'] ) && in_array( $_GET['checkemail'], array( 'confirm', 'newpass', 'registered' ), true ) ) {
|
@@ -1833,17 +1834,17 @@ function bbp_login_notices() {
|
|
1833 |
|
1834 |
// Email needs confirmation
|
1835 |
case 'confirm' :
|
1836 |
-
bbp_add_error( 'confirm',
|
1837 |
break;
|
1838 |
|
1839 |
// User requested a new password
|
1840 |
case 'newpass' :
|
1841 |
-
bbp_add_error( 'newpass',
|
1842 |
break;
|
1843 |
|
1844 |
// User is newly registered
|
1845 |
case 'registered' :
|
1846 |
-
bbp_add_error( 'registered',
|
1847 |
break;
|
1848 |
}
|
1849 |
}
|
@@ -1980,59 +1981,68 @@ function bbp_author_link( $args = array() ) {
|
|
1980 |
return bbp_get_reply_author_link( $r );
|
1981 |
}
|
1982 |
|
1983 |
-
//
|
1984 |
-
$
|
1985 |
|
1986 |
// Neither a reply nor a topic, so could be a revision
|
1987 |
if ( ! empty( $r['post_id'] ) ) {
|
1988 |
|
|
|
|
|
|
|
|
|
|
|
1989 |
// Generate title with the display name of the author
|
1990 |
if ( empty( $r['link_title'] ) ) {
|
1991 |
-
$
|
|
|
|
|
|
|
|
|
|
|
1992 |
}
|
1993 |
|
1994 |
-
//
|
1995 |
-
$
|
|
|
1996 |
? ' title="' . esc_attr( $r['link_title'] ) . '"'
|
1997 |
: '';
|
1998 |
|
1999 |
-
|
2000 |
-
|
2001 |
-
|
2002 |
-
$author_links = array();
|
2003 |
-
|
2004 |
-
// Get avatar
|
2005 |
-
if ( 'avatar' === $r['type'] || 'both' === $r['type'] ) {
|
2006 |
-
$author_links[] = get_avatar( $user_id, $r['size'] );
|
2007 |
}
|
2008 |
|
2009 |
-
// Get display name
|
2010 |
-
if ( 'name' === $r['type'] || 'both' === $r['type'] ) {
|
2011 |
-
$author_links[] = esc_html( get_the_author_meta( 'display_name', $user_id ) );
|
2012 |
}
|
2013 |
|
2014 |
-
//
|
2015 |
-
|
2016 |
-
|
|
|
|
|
2017 |
|
2018 |
-
|
2019 |
-
|
2020 |
-
|
|
|
|
|
2021 |
|
2022 |
-
|
|
|
|
|
2023 |
|
2024 |
-
//
|
2025 |
-
|
2026 |
-
$author_link = implode( $r['sep'], $author_links );
|
2027 |
-
}
|
2028 |
|
2029 |
-
|
2030 |
-
|
2031 |
-
$author_link = '';
|
2032 |
}
|
2033 |
|
2034 |
// Filter & return
|
2035 |
-
return apply_filters( 'bbp_get_author_link', $author_link, $r );
|
2036 |
}
|
2037 |
|
2038 |
/** Capabilities **************************************************************/
|
@@ -2175,8 +2185,9 @@ function bbp_current_user_can_publish_replies() {
|
|
2175 |
*
|
2176 |
* @since 2.0.0 bbPress (r3127)
|
2177 |
*
|
2178 |
-
* @param
|
2179 |
-
*
|
|
|
2180 |
*/
|
2181 |
function bbp_get_forums_for_current_user( $args = array() ) {
|
2182 |
|
534 |
return false;
|
535 |
}
|
536 |
|
537 |
+
// Bail if intercepted
|
538 |
+
$intercept = bbp_maybe_intercept( 'bbp_pre_get_user_profile_url', func_get_args() );
|
539 |
+
if ( bbp_is_intercepted( $intercept ) ) {
|
540 |
+
return $intercept;
|
541 |
}
|
542 |
|
543 |
// Pretty permalinks
|
548 |
$user_nicename = bbp_get_user_nicename( $user_id );
|
549 |
}
|
550 |
|
551 |
+
// Run through home_url()
|
552 |
$url = trailingslashit( bbp_get_root_url() . bbp_get_user_slug() ) . $user_nicename;
|
553 |
$url = user_trailingslashit( $url );
|
554 |
$url = home_url( $url );
|
624 |
return false;
|
625 |
}
|
626 |
|
627 |
+
// Bail if intercepted
|
628 |
+
$intercept = bbp_maybe_intercept( 'bbp_pre_get_user_profile_edit_url', func_get_args() );
|
629 |
+
if ( bbp_is_intercepted( $intercept ) ) {
|
630 |
+
return $intercept;
|
631 |
}
|
632 |
|
633 |
// Get user profile URL
|
729 |
|
730 |
// Parse arguments against default values
|
731 |
$r = bbp_parse_args( $args, array(
|
732 |
+
'text' => esc_html__( 'Admin', 'bbpress' ),
|
733 |
'before' => '',
|
734 |
'after' => ''
|
735 |
), 'get_admin_link' );
|
815 |
* @param int $post_id
|
816 |
*/
|
817 |
function bbp_author_display_name( $post_id = 0 ) {
|
818 |
+
echo esc_attr( bbp_get_author_display_name( $post_id ) );
|
819 |
}
|
820 |
|
821 |
/**
|
846 |
|
847 |
// Not an edit, so rely on current user cookie data
|
848 |
} else {
|
849 |
+
$retval = bbp_get_current_anonymous_user_data( 'name' );
|
850 |
}
|
851 |
|
852 |
// Filter & return
|
865 |
* @param int $post_id
|
866 |
*/
|
867 |
function bbp_author_email( $post_id = 0 ) {
|
868 |
+
echo esc_attr( bbp_get_author_email( $post_id ) );
|
869 |
}
|
870 |
|
871 |
/**
|
896 |
|
897 |
// Not an edit, so rely on current user cookie data
|
898 |
} else {
|
899 |
+
$retval = bbp_get_current_anonymous_user_data( 'email' );
|
900 |
}
|
901 |
|
902 |
// Filter & return
|
946 |
|
947 |
// Not an edit, so rely on current user cookie data
|
948 |
} else {
|
949 |
+
$retval = bbp_get_current_anonymous_user_data( 'url' );
|
950 |
}
|
951 |
|
952 |
// Filter & return
|
983 |
return false;
|
984 |
}
|
985 |
|
986 |
+
// Bail if intercepted
|
987 |
+
$intercept = bbp_maybe_intercept( 'bbp_pre_get_favorites_permalink', func_get_args() );
|
988 |
+
if ( bbp_is_intercepted( $intercept ) ) {
|
989 |
+
return $intercept;
|
990 |
}
|
991 |
|
992 |
// Get user profile URL & page
|
1072 |
|
1073 |
// Parse arguments against default values
|
1074 |
$r = bbp_parse_args( $args, array(
|
1075 |
+
'favorite' => esc_html__( 'Favorite', 'bbpress' ),
|
1076 |
+
'favorited' => esc_html__( 'Unfavorite', 'bbpress' ),
|
1077 |
'user_id' => 0,
|
1078 |
'object_id' => 0,
|
1079 |
'object_type' => 'post',
|
1174 |
return false;
|
1175 |
}
|
1176 |
|
1177 |
+
// Bail if intercepted
|
1178 |
+
$intercept = bbp_maybe_intercept( 'bbp_pre_get_subscriptions_permalink', func_get_args() );
|
1179 |
+
if ( bbp_is_intercepted( $intercept ) ) {
|
1180 |
+
return $intercept;
|
1181 |
}
|
1182 |
|
1183 |
// Get user profile URL
|
1364 |
return;
|
1365 |
} ?>
|
1366 |
|
1367 |
+
<div class="bbp-template-notice">
|
1368 |
<ul>
|
1369 |
<li><?php esc_html_e( 'User updated.', 'bbpress' ); ?></li>
|
1370 |
</ul>
|
1410 |
|
1411 |
<div class="bbp-template-notice info">
|
1412 |
<ul>
|
1413 |
+
<li><?php printf( esc_html__( 'There is a pending email address change to %1$s. %2$s', 'bbpress' ), $coded_email, $dismiss_link ); ?></li>
|
1414 |
</ul>
|
1415 |
</div>
|
1416 |
|
1613 |
return false;
|
1614 |
}
|
1615 |
|
1616 |
+
// Bail if intercepted
|
1617 |
+
$intercept = bbp_maybe_intercept( 'bbp_pre_get_user_topics_created_url', func_get_args() );
|
1618 |
+
if ( bbp_is_intercepted( $intercept ) ) {
|
1619 |
+
return $intercept;
|
1620 |
}
|
1621 |
|
1622 |
// Get user profile URL
|
1666 |
return false;
|
1667 |
}
|
1668 |
|
1669 |
+
// Bail if intercepted
|
1670 |
+
$intercept = bbp_maybe_intercept( 'bbp_pre_get_user_replies_created_url', func_get_args() );
|
1671 |
+
if ( bbp_is_intercepted( $intercept ) ) {
|
1672 |
+
return $intercept;
|
1673 |
}
|
1674 |
|
1675 |
// Get user profile URL
|
1719 |
return false;
|
1720 |
}
|
1721 |
|
1722 |
+
// Bail if intercepted
|
1723 |
+
$intercept = bbp_maybe_intercept( 'bbp_pre_get_user_engagements_url', func_get_args() );
|
1724 |
+
if ( bbp_is_intercepted( $intercept ) ) {
|
1725 |
+
return $intercept;
|
1726 |
}
|
1727 |
|
1728 |
// Get user profile URL
|
1821 |
|
1822 |
// loggedout was passed
|
1823 |
if ( ! empty( $_GET['loggedout'] ) && ( true === $_GET['loggedout'] ) ) {
|
1824 |
+
bbp_add_error( 'loggedout', esc_html__( 'You are now logged out.', 'bbpress' ), 'message' );
|
1825 |
|
1826 |
// registration is disabled
|
1827 |
} elseif ( ! empty( $_GET['registration'] ) && ( 'disabled' === $_GET['registration'] ) ) {
|
1828 |
+
bbp_add_error( 'registerdisabled', esc_html__( 'New user registration is currently not allowed.', 'bbpress' ) );
|
1829 |
|
1830 |
// Prompt user to check their email
|
1831 |
} elseif ( ! empty( $_GET['checkemail'] ) && in_array( $_GET['checkemail'], array( 'confirm', 'newpass', 'registered' ), true ) ) {
|
1834 |
|
1835 |
// Email needs confirmation
|
1836 |
case 'confirm' :
|
1837 |
+
bbp_add_error( 'confirm', esc_html__( 'Check your e-mail for the confirmation link.', 'bbpress' ), 'message' );
|
1838 |
break;
|
1839 |
|
1840 |
// User requested a new password
|
1841 |
case 'newpass' :
|
1842 |
+
bbp_add_error( 'newpass', esc_html__( 'Check your e-mail for your new password.', 'bbpress' ), 'message' );
|
1843 |
break;
|
1844 |
|
1845 |
// User is newly registered
|
1846 |
case 'registered' :
|
1847 |
+
bbp_add_error( 'registered', esc_html__( 'Registration complete. Please check your e-mail.', 'bbpress' ), 'message' );
|
1848 |
break;
|
1849 |
}
|
1850 |
}
|
1981 |
return bbp_get_reply_author_link( $r );
|
1982 |
}
|
1983 |
|
1984 |
+
// Default return value
|
1985 |
+
$author_link = '';
|
1986 |
|
1987 |
// Neither a reply nor a topic, so could be a revision
|
1988 |
if ( ! empty( $r['post_id'] ) ) {
|
1989 |
|
1990 |
+
// Get some useful reply information
|
1991 |
+
$user_id = get_post_field( 'post_author', $r['post_id'] );
|
1992 |
+
$author_url = bbp_get_user_profile_url( $user_id );
|
1993 |
+
$anonymous = bbp_is_reply_anonymous( $r['post_id'] );
|
1994 |
+
|
1995 |
// Generate title with the display name of the author
|
1996 |
if ( empty( $r['link_title'] ) ) {
|
1997 |
+
$author = get_the_author_meta( 'display_name', $user_id );
|
1998 |
+
$title = empty( $anonymous )
|
1999 |
+
? esc_attr__( "View %s's profile", 'bbpress' )
|
2000 |
+
: esc_attr__( "Visit %s's website", 'bbpress' );
|
2001 |
+
|
2002 |
+
$r['link_title'] = sprintf( $title, $author );
|
2003 |
}
|
2004 |
|
2005 |
+
// Setup title and author_links array
|
2006 |
+
$author_links = array();
|
2007 |
+
$link_title = ! empty( $r['link_title'] )
|
2008 |
? ' title="' . esc_attr( $r['link_title'] ) . '"'
|
2009 |
: '';
|
2010 |
|
2011 |
+
// Get avatar (unescaped, because HTML)
|
2012 |
+
if ( ( 'avatar' === $r['type'] ) || ( 'both' === $r['type'] ) ) {
|
2013 |
+
$author_links['avatar'] = get_avatar( $user_id, $r['size'] );
|
|
|
|
|
|
|
|
|
|
|
2014 |
}
|
2015 |
|
2016 |
+
// Get display name (escaped, because never HTML)
|
2017 |
+
if ( ( 'name' === $r['type'] ) || ( 'both' === $r['type'] ) ) {
|
2018 |
+
$author_links['name'] = esc_html( get_the_author_meta( 'display_name', $user_id ) );
|
2019 |
}
|
2020 |
|
2021 |
+
// Empty array
|
2022 |
+
$links = array();
|
2023 |
+
$sprint = empty( $anonymous ) && bbp_user_has_profile( $user_id )
|
2024 |
+
? '<a href="%1$s"%2$s%3$s>%4$s</a>'
|
2025 |
+
: '<span %2$s%3$s>%4$s</span>';
|
2026 |
|
2027 |
+
// Wrap each link
|
2028 |
+
foreach ( $author_links as $link => $link_text ) {
|
2029 |
+
$link_class = ' class="bbp-author-' . esc_attr( $link ) . '"';
|
2030 |
+
$links[] = sprintf( $sprint, esc_url( $author_url ), $link_title, $link_class, $link_text );
|
2031 |
+
}
|
2032 |
|
2033 |
+
// Juggle
|
2034 |
+
$author_links = $links;
|
2035 |
+
unset( $links );
|
2036 |
|
2037 |
+
// Filter sections
|
2038 |
+
$sections = apply_filters( 'bbp_get_author_links', $author_links, $r, $args );
|
|
|
|
|
2039 |
|
2040 |
+
// Assemble sections into author link
|
2041 |
+
$author_link = implode( $r['sep'], $sections );
|
|
|
2042 |
}
|
2043 |
|
2044 |
// Filter & return
|
2045 |
+
return apply_filters( 'bbp_get_author_link', $author_link, $r, $args );
|
2046 |
}
|
2047 |
|
2048 |
/** Capabilities **************************************************************/
|
2185 |
*
|
2186 |
* @since 2.0.0 bbPress (r3127)
|
2187 |
*
|
2188 |
+
* @param array $args
|
2189 |
+
*
|
2190 |
+
* @return array
|
2191 |
*/
|
2192 |
function bbp_get_forums_for_current_user( $args = array() ) {
|
2193 |
|
readme.txt
CHANGED
@@ -3,7 +3,7 @@ Contributors: matt, johnjamesjacoby, jmdodd, netweb, sergeybiryukov
|
|
3 |
Tags: forums, discussion, support, theme, akismet, multisite
|
4 |
Requires at least: 4.7
|
5 |
Tested up to: 4.9
|
6 |
-
Stable tag: 2.
|
7 |
License: GPLv2 or later
|
8 |
License URI: https://www.gnu.org/licenses/gpl-2.0.html
|
9 |
|
@@ -54,6 +54,9 @@ bbPress is intentionally simple yet infinitely powerful forum software, built by
|
|
54 |
|
55 |
== Changelog ==
|
56 |
|
|
|
|
|
|
|
57 |
= 2.5.14 =
|
58 |
* Released on September 9, 2016
|
59 |
|
@@ -316,7 +319,7 @@ bbPress is intentionally simple yet infinitely powerful forum software, built by
|
|
316 |
* Green admin color scheme for WordPress 3.2
|
317 |
* Audit usage of get strings for moderator level and above users
|
318 |
* Normalize theme, shortcodes, and template parts
|
319 |
-
* Added
|
320 |
* Added actions to topic/reply forms
|
321 |
* Added Forum Participant role for multisite use
|
322 |
* Added humans.txt
|
3 |
Tags: forums, discussion, support, theme, akismet, multisite
|
4 |
Requires at least: 4.7
|
5 |
Tested up to: 4.9
|
6 |
+
Stable tag: 2.6.0
|
7 |
License: GPLv2 or later
|
8 |
License URI: https://www.gnu.org/licenses/gpl-2.0.html
|
9 |
|
54 |
|
55 |
== Changelog ==
|
56 |
|
57 |
+
= 2.6.0 =
|
58 |
+
* Released on September 4, 2018
|
59 |
+
|
60 |
= 2.5.14 =
|
61 |
* Released on September 9, 2016
|
62 |
|
319 |
* Green admin color scheme for WordPress 3.2
|
320 |
* Audit usage of get strings for moderator level and above users
|
321 |
* Normalize theme, shortcodes, and template parts
|
322 |
+
* Added strict moderation support
|
323 |
* Added actions to topic/reply forms
|
324 |
* Added Forum Participant role for multisite use
|
325 |
* Added humans.txt
|
templates/default/bbpress-functions.php
CHANGED
@@ -155,7 +155,7 @@ class BBP_Default extends BBP_Theme_Compat {
|
|
155 |
|
156 |
// Editor scripts
|
157 |
// @see https://bbpress.trac.wordpress.org/ticket/2930
|
158 |
-
if ( bbp_use_wp_editor() ) {
|
159 |
$scripts['bbpress-editor'] = array(
|
160 |
'file' => 'js/editor' . $suffix . '.js',
|
161 |
'dependencies' => array( 'jquery' )
|
155 |
|
156 |
// Editor scripts
|
157 |
// @see https://bbpress.trac.wordpress.org/ticket/2930
|
158 |
+
if ( bbp_use_wp_editor() && is_bbpress() ) {
|
159 |
$scripts['bbpress-editor'] = array(
|
160 |
'file' => 'js/editor' . $suffix . '.js',
|
161 |
'dependencies' => array( 'jquery' )
|
templates/default/bbpress/form-forum.php
CHANGED
@@ -24,7 +24,7 @@ if ( bbp_is_forum_edit() ) : ?>
|
|
24 |
|
25 |
<div id="new-forum-<?php bbp_forum_id(); ?>" class="bbp-forum-form">
|
26 |
|
27 |
-
<form id="new-post" name="new-post" method="post"
|
28 |
|
29 |
<?php do_action( 'bbp_theme_before_forum_form' ); ?>
|
30 |
|
24 |
|
25 |
<div id="new-forum-<?php bbp_forum_id(); ?>" class="bbp-forum-form">
|
26 |
|
27 |
+
<form id="new-post" name="new-post" method="post">
|
28 |
|
29 |
<?php do_action( 'bbp_theme_before_forum_form' ); ?>
|
30 |
|
templates/default/bbpress/form-reply-move.php
CHANGED
@@ -20,7 +20,7 @@ defined( 'ABSPATH' ) || exit;
|
|
20 |
|
21 |
<div id="move-reply-<?php bbp_topic_id(); ?>" class="bbp-reply-move">
|
22 |
|
23 |
-
<form id="move_reply" name="move_reply" method="post"
|
24 |
|
25 |
<fieldset class="bbp-form">
|
26 |
|
20 |
|
21 |
<div id="move-reply-<?php bbp_topic_id(); ?>" class="bbp-reply-move">
|
22 |
|
23 |
+
<form id="move_reply" name="move_reply" method="post">
|
24 |
|
25 |
<fieldset class="bbp-form">
|
26 |
|
templates/default/bbpress/form-reply.php
CHANGED
@@ -22,7 +22,7 @@ if ( bbp_is_reply_edit() ) : ?>
|
|
22 |
|
23 |
<div id="new-reply-<?php bbp_topic_id(); ?>" class="bbp-reply-form">
|
24 |
|
25 |
-
<form id="new-post" name="new-post" method="post"
|
26 |
|
27 |
<?php do_action( 'bbp_theme_before_reply_form' ); ?>
|
28 |
|
@@ -82,7 +82,7 @@ if ( bbp_is_reply_edit() ) : ?>
|
|
82 |
|
83 |
<?php endif; ?>
|
84 |
|
85 |
-
<?php if ( bbp_allow_topic_tags() && current_user_can( 'assign_topic_tags' ) ) : ?>
|
86 |
|
87 |
<?php do_action( 'bbp_theme_before_reply_form_tags' ); ?>
|
88 |
|
22 |
|
23 |
<div id="new-reply-<?php bbp_topic_id(); ?>" class="bbp-reply-form">
|
24 |
|
25 |
+
<form id="new-post" name="new-post" method="post">
|
26 |
|
27 |
<?php do_action( 'bbp_theme_before_reply_form' ); ?>
|
28 |
|
82 |
|
83 |
<?php endif; ?>
|
84 |
|
85 |
+
<?php if ( bbp_allow_topic_tags() && current_user_can( 'assign_topic_tags', bbp_get_topic_id() ) ) : ?>
|
86 |
|
87 |
<?php do_action( 'bbp_theme_before_reply_form_tags' ); ?>
|
88 |
|
templates/default/bbpress/form-search.php
CHANGED
@@ -13,7 +13,7 @@ defined( 'ABSPATH' ) || exit;
|
|
13 |
if ( bbp_allow_search() ) : ?>
|
14 |
|
15 |
<div class="bbp-search-form">
|
16 |
-
<form role="search" method="get" id="bbp-search-form"
|
17 |
<div>
|
18 |
<label class="screen-reader-text hidden" for="bbp_search"><?php esc_html_e( 'Search for:', 'bbpress' ); ?></label>
|
19 |
<input type="hidden" name="action" value="bbp-search-request" />
|
13 |
if ( bbp_allow_search() ) : ?>
|
14 |
|
15 |
<div class="bbp-search-form">
|
16 |
+
<form role="search" method="get" id="bbp-search-form">
|
17 |
<div>
|
18 |
<label class="screen-reader-text hidden" for="bbp_search"><?php esc_html_e( 'Search for:', 'bbpress' ); ?></label>
|
19 |
<input type="hidden" name="action" value="bbp-search-request" />
|
templates/default/bbpress/form-topic-merge.php
CHANGED
@@ -20,7 +20,7 @@ defined( 'ABSPATH' ) || exit;
|
|
20 |
|
21 |
<div id="merge-topic-<?php bbp_topic_id(); ?>" class="bbp-topic-merge">
|
22 |
|
23 |
-
<form id="merge_topic" name="merge_topic" method="post"
|
24 |
|
25 |
<fieldset class="bbp-form">
|
26 |
|
20 |
|
21 |
<div id="merge-topic-<?php bbp_topic_id(); ?>" class="bbp-topic-merge">
|
22 |
|
23 |
+
<form id="merge_topic" name="merge_topic" method="post">
|
24 |
|
25 |
<fieldset class="bbp-form">
|
26 |
|
templates/default/bbpress/form-topic-split.php
CHANGED
@@ -20,7 +20,7 @@ defined( 'ABSPATH' ) || exit;
|
|
20 |
|
21 |
<div id="split-topic-<?php bbp_topic_id(); ?>" class="bbp-topic-split">
|
22 |
|
23 |
-
<form id="split_topic" name="split_topic" method="post"
|
24 |
|
25 |
<fieldset class="bbp-form">
|
26 |
|
20 |
|
21 |
<div id="split-topic-<?php bbp_topic_id(); ?>" class="bbp-topic-split">
|
22 |
|
23 |
+
<form id="split_topic" name="split_topic" method="post">
|
24 |
|
25 |
<fieldset class="bbp-form">
|
26 |
|
templates/default/bbpress/form-topic-tag.php
CHANGED
@@ -34,7 +34,7 @@ if ( current_user_can( 'edit_topic_tags' ) ) : ?>
|
|
34 |
</ul>
|
35 |
</div>
|
36 |
|
37 |
-
<form id="rename_tag" name="rename_tag" method="post"
|
38 |
|
39 |
<div>
|
40 |
<label for="tag-name"><?php esc_html_e( 'Name:', 'bbpress' ); ?></label>
|
@@ -74,7 +74,7 @@ if ( current_user_can( 'edit_topic_tags' ) ) : ?>
|
|
74 |
</ul>
|
75 |
</div>
|
76 |
|
77 |
-
<form id="merge_tag" name="merge_tag" method="post"
|
78 |
|
79 |
<div>
|
80 |
<label for="tag-existing-name"><?php esc_html_e( 'Existing tag:', 'bbpress' ); ?></label>
|
@@ -111,7 +111,7 @@ if ( current_user_can( 'edit_topic_tags' ) ) : ?>
|
|
111 |
</ul>
|
112 |
</div>
|
113 |
|
114 |
-
<form id="delete_tag" name="delete_tag" method="post"
|
115 |
|
116 |
<div class="bbp-submit-wrapper">
|
117 |
<button type="submit" class="button submit" onclick="return confirm('<?php echo esc_js( sprintf( esc_html__( 'Are you sure you want to delete the "%s" tag? This is permanent and cannot be undone.', 'bbpress' ), bbp_get_topic_tag_name() ) ); ?>');"><?php esc_attr_e( 'Delete', 'bbpress' ); ?></button>
|
34 |
</ul>
|
35 |
</div>
|
36 |
|
37 |
+
<form id="rename_tag" name="rename_tag" method="post">
|
38 |
|
39 |
<div>
|
40 |
<label for="tag-name"><?php esc_html_e( 'Name:', 'bbpress' ); ?></label>
|
74 |
</ul>
|
75 |
</div>
|
76 |
|
77 |
+
<form id="merge_tag" name="merge_tag" method="post">
|
78 |
|
79 |
<div>
|
80 |
<label for="tag-existing-name"><?php esc_html_e( 'Existing tag:', 'bbpress' ); ?></label>
|
111 |
</ul>
|
112 |
</div>
|
113 |
|
114 |
+
<form id="delete_tag" name="delete_tag" method="post">
|
115 |
|
116 |
<div class="bbp-submit-wrapper">
|
117 |
<button type="submit" class="button submit" onclick="return confirm('<?php echo esc_js( sprintf( esc_html__( 'Are you sure you want to delete the "%s" tag? This is permanent and cannot be undone.', 'bbpress' ), bbp_get_topic_tag_name() ) ); ?>');"><?php esc_attr_e( 'Delete', 'bbpress' ); ?></button>
|
templates/default/bbpress/form-topic.php
CHANGED
@@ -32,7 +32,7 @@ if ( ! bbp_is_single_forum() ) : ?>
|
|
32 |
|
33 |
<div id="new-topic-<?php bbp_topic_id(); ?>" class="bbp-topic-form">
|
34 |
|
35 |
-
<form id="new-post" name="new-post" method="post"
|
36 |
|
37 |
<?php do_action( 'bbp_theme_before_topic_form' ); ?>
|
38 |
|
@@ -103,7 +103,7 @@ if ( ! bbp_is_single_forum() ) : ?>
|
|
103 |
|
104 |
<?php endif; ?>
|
105 |
|
106 |
-
<?php if ( bbp_allow_topic_tags() && current_user_can( 'assign_topic_tags' ) ) : ?>
|
107 |
|
108 |
<?php do_action( 'bbp_theme_before_topic_form_tags' ); ?>
|
109 |
|
32 |
|
33 |
<div id="new-topic-<?php bbp_topic_id(); ?>" class="bbp-topic-form">
|
34 |
|
35 |
+
<form id="new-post" name="new-post" method="post">
|
36 |
|
37 |
<?php do_action( 'bbp_theme_before_topic_form' ); ?>
|
38 |
|
103 |
|
104 |
<?php endif; ?>
|
105 |
|
106 |
+
<?php if ( bbp_allow_topic_tags() && current_user_can( 'assign_topic_tags', bbp_get_topic_id() ) ) : ?>
|
107 |
|
108 |
<?php do_action( 'bbp_theme_before_topic_form_tags' ); ?>
|
109 |
|
templates/default/bbpress/form-user-edit.php
CHANGED
@@ -12,7 +12,7 @@ defined( 'ABSPATH' ) || exit;
|
|
12 |
|
13 |
?>
|
14 |
|
15 |
-
<form id="bbp-your-profile"
|
16 |
|
17 |
<h2 class="entry-title"><?php esc_html_e( 'Name', 'bbpress' ) ?></h2>
|
18 |
|
12 |
|
13 |
?>
|
14 |
|
15 |
+
<form id="bbp-your-profile" method="post" enctype="multipart/form-data">
|
16 |
|
17 |
<h2 class="entry-title"><?php esc_html_e( 'Name', 'bbpress' ) ?></h2>
|
18 |
|
templates/default/bbpress/form-user-login.php
CHANGED
@@ -35,7 +35,7 @@ defined( 'ABSPATH' ) || exit;
|
|
35 |
|
36 |
<div class="bbp-submit-wrapper">
|
37 |
|
38 |
-
<button type="submit" name="user-submit" class="button submit user-submit"><?php esc_html_e( 'Log In', 'bbpress' ); ?></button>
|
39 |
|
40 |
<?php bbp_user_login_fields(); ?>
|
41 |
|
35 |
|
36 |
<div class="bbp-submit-wrapper">
|
37 |
|
38 |
+
<button type="submit" name="user-submit" id="user-submit" class="button submit user-submit"><?php esc_html_e( 'Log In', 'bbpress' ); ?></button>
|
39 |
|
40 |
<?php bbp_user_login_fields(); ?>
|
41 |
|
templates/default/css/bbpress-rtl.css
CHANGED
@@ -23,7 +23,9 @@
|
|
23 |
height: 1px;
|
24 |
width: 1px;
|
25 |
overflow: hidden;
|
26 |
-
clip: rect(
|
|
|
|
|
27 |
border: 0;
|
28 |
word-wrap: normal !important; /* many screen reader and browser combinations announce broken words as they would appear visually */
|
29 |
}
|
@@ -34,12 +36,14 @@
|
|
34 |
margin-bottom: 20px;
|
35 |
overflow: hidden;
|
36 |
font-size: 12px;
|
|
|
37 |
}
|
38 |
|
39 |
#bbpress-forums a,
|
40 |
#bbpress-forums a:hover {
|
41 |
box-shadow: none;
|
42 |
border: none;
|
|
|
43 |
}
|
44 |
|
45 |
#bbpress-forums hr {
|
@@ -225,16 +229,16 @@ li.bbp-topic-freshness {
|
|
225 |
float: none;
|
226 |
}
|
227 |
|
228 |
-
#bbpress-forums div.bbp-forum-author
|
229 |
-
#bbpress-forums div.bbp-topic-author
|
230 |
-
#bbpress-forums div.bbp-reply-author
|
231 |
margin: 0 12px;
|
232 |
word-wrap: break-word;
|
233 |
display: inline-block;
|
234 |
}
|
235 |
|
236 |
-
#bbpress-forums div.bbp-topic-author
|
237 |
-
#bbpress-forums div.bbp-reply-author
|
238 |
clear: right;
|
239 |
display: block;
|
240 |
}
|
@@ -542,7 +546,7 @@ td.bbp-topic-counts {
|
|
542 |
border: 1px solid #aca;
|
543 |
background-color: #dfd;
|
544 |
font-weight: 700;
|
545 |
-
font-size:
|
546 |
}
|
547 |
|
548 |
.bbp-row-actions #favorite-toggle a:hover {
|
@@ -570,7 +574,7 @@ td.bbp-topic-counts {
|
|
570 |
border: 1px solid #aca;
|
571 |
background-color: #dfd;
|
572 |
font-weight: 700;
|
573 |
-
font-size:
|
574 |
}
|
575 |
|
576 |
.bbp-row-actions #subscription-toggle a:hover {
|
@@ -617,50 +621,56 @@ td.bbp-topic-counts {
|
|
617 |
display: inline;
|
618 |
}
|
619 |
|
620 |
-
.bbp-pagination
|
621 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
622 |
display: block;
|
623 |
float: right;
|
|
|
|
|
624 |
padding: 0 5px;
|
625 |
margin-right: 5px;
|
626 |
border: 1px solid #efefef;
|
|
|
|
|
|
|
627 |
text-decoration: none;
|
628 |
}
|
629 |
|
630 |
-
.bbp-pagination-links
|
631 |
-
.bbp-pagination-links span.current {
|
632 |
-
background: #eee;
|
633 |
-
opacity: 0.8;
|
634 |
-
border: 1px solid #ddd;
|
635 |
-
}
|
636 |
-
|
637 |
-
.bbp-pagination-links span.dots {
|
638 |
display: block;
|
639 |
float: right;
|
640 |
padding: 1px 4px;
|
641 |
margin-right: 5px;
|
642 |
}
|
643 |
|
644 |
-
.bbp-pagination {
|
645 |
-
float: right;
|
646 |
-
width: 100%;
|
647 |
-
margin-bottom: 15px;
|
648 |
-
}
|
649 |
-
|
650 |
-
.bbp-topic-pagination {
|
651 |
display: inline-block;
|
652 |
margin-right: 5px;
|
653 |
margin-bottom: 2px;
|
654 |
}
|
655 |
|
656 |
-
.bbp-topic-pagination a {
|
657 |
font-size: 10px;
|
658 |
line-height: 10px;
|
659 |
padding: 1px 3px;
|
660 |
border: 1px solid #ddd;
|
|
|
661 |
text-decoration: none;
|
662 |
}
|
663 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
664 |
|
665 |
/* =Forms
|
666 |
-------------------------------------------------------------- */
|
@@ -1411,8 +1421,8 @@ body.my-account #bbpress-forums {
|
|
1411 |
width: 100%;
|
1412 |
}
|
1413 |
|
1414 |
-
#bbpress-forums div.bbp-topic-author
|
1415 |
-
#bbpress-forums div.bbp-reply-author
|
1416 |
clear: none;
|
1417 |
display: inline-block;
|
1418 |
margin-right: 0;
|
23 |
height: 1px;
|
24 |
width: 1px;
|
25 |
overflow: hidden;
|
26 |
+
clip: rect(1px, 1px, 1px, 1px);
|
27 |
+
-webkit-clip-path: inset(50%);
|
28 |
+
clip-path: inset(50%);
|
29 |
border: 0;
|
30 |
word-wrap: normal !important; /* many screen reader and browser combinations announce broken words as they would appear visually */
|
31 |
}
|
36 |
margin-bottom: 20px;
|
37 |
overflow: hidden;
|
38 |
font-size: 12px;
|
39 |
+
line-height: 18px;
|
40 |
}
|
41 |
|
42 |
#bbpress-forums a,
|
43 |
#bbpress-forums a:hover {
|
44 |
box-shadow: none;
|
45 |
border: none;
|
46 |
+
transition: none;
|
47 |
}
|
48 |
|
49 |
#bbpress-forums hr {
|
229 |
float: none;
|
230 |
}
|
231 |
|
232 |
+
#bbpress-forums div.bbp-forum-author .bbp-author-name,
|
233 |
+
#bbpress-forums div.bbp-topic-author .bbp-author-name,
|
234 |
+
#bbpress-forums div.bbp-reply-author .bbp-author-name {
|
235 |
margin: 0 12px;
|
236 |
word-wrap: break-word;
|
237 |
display: inline-block;
|
238 |
}
|
239 |
|
240 |
+
#bbpress-forums div.bbp-topic-author .bbp-author-name,
|
241 |
+
#bbpress-forums div.bbp-reply-author .bbp-author-name {
|
242 |
clear: right;
|
243 |
display: block;
|
244 |
}
|
546 |
border: 1px solid #aca;
|
547 |
background-color: #dfd;
|
548 |
font-weight: 700;
|
549 |
+
font-size: 12px;
|
550 |
}
|
551 |
|
552 |
.bbp-row-actions #favorite-toggle a:hover {
|
574 |
border: 1px solid #aca;
|
575 |
background-color: #dfd;
|
576 |
font-weight: 700;
|
577 |
+
font-size: 12px;
|
578 |
}
|
579 |
|
580 |
.bbp-row-actions #subscription-toggle a:hover {
|
621 |
display: inline;
|
622 |
}
|
623 |
|
624 |
+
.bbp-pagination {
|
625 |
+
float: right;
|
626 |
+
width: 100%;
|
627 |
+
margin-bottom: 15px;
|
628 |
+
}
|
629 |
+
|
630 |
+
#bbpress-forums .bbp-pagination-links a,
|
631 |
+
#bbpress-forums .bbp-pagination-links span.current {
|
632 |
display: block;
|
633 |
float: right;
|
634 |
+
font-size: 12px;
|
635 |
+
line-height: 18px;
|
636 |
padding: 0 5px;
|
637 |
margin-right: 5px;
|
638 |
border: 1px solid #efefef;
|
639 |
+
border-radius: 0;
|
640 |
+
background: transparent;
|
641 |
+
color: inherit;
|
642 |
text-decoration: none;
|
643 |
}
|
644 |
|
645 |
+
#bbpress-forums .bbp-pagination-links span.dots {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
646 |
display: block;
|
647 |
float: right;
|
648 |
padding: 1px 4px;
|
649 |
margin-right: 5px;
|
650 |
}
|
651 |
|
652 |
+
#bbpress-forums .bbp-topic-pagination {
|
|
|
|
|
|
|
|
|
|
|
|
|
653 |
display: inline-block;
|
654 |
margin-right: 5px;
|
655 |
margin-bottom: 2px;
|
656 |
}
|
657 |
|
658 |
+
#bbpress-forums .bbp-topic-pagination a {
|
659 |
font-size: 10px;
|
660 |
line-height: 10px;
|
661 |
padding: 1px 3px;
|
662 |
border: 1px solid #ddd;
|
663 |
+
color: inherit;
|
664 |
text-decoration: none;
|
665 |
}
|
666 |
|
667 |
+
#bbpress-forums .bbp-topic-pagination a:hover,
|
668 |
+
#bbpress-forums .bbp-pagination-links a:hover,
|
669 |
+
#bbpress-forums .bbp-pagination-links span.current {
|
670 |
+
background: #eee;
|
671 |
+
opacity: 0.8;
|
672 |
+
border: 1px solid #ddd;
|
673 |
+
}
|
674 |
|
675 |
/* =Forms
|
676 |
-------------------------------------------------------------- */
|
1421 |
width: 100%;
|
1422 |
}
|
1423 |
|
1424 |
+
#bbpress-forums div.bbp-topic-author .bbp-author-name,
|
1425 |
+
#bbpress-forums div.bbp-reply-author .bbp-author-name {
|
1426 |
clear: none;
|
1427 |
display: inline-block;
|
1428 |
margin-right: 0;
|
templates/default/css/bbpress-rtl.min.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
.hidden,.js .hide-if-js{display:none}.screen-reader-text,.screen-reader-text span,.ui-helper-hidden-accessible{position:absolute;margin:-1px;padding:0;height:1px;width:1px;overflow:hidden;clip:rect(0 0 0 0);border:0;word-wrap:normal!important}#bbpress-forums{background:0 0;clear:both;margin-bottom:20px;overflow:hidden;font-size:12px}#bbpress-forums a,#bbpress-forums a:hover{box-shadow:none;border:none}#bbpress-forums hr{margin:0 0 24px}#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;border:1px solid #eee;padding:10px 20px;margin-bottom:10px}#bbpress-forums fieldset.bbp-form legend{padding:5px;width:auto;border:none}#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%;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[type=button]{padding:5px 7px;margin:0 0 0 -1px;line-height:1;border:1px solid transparent;background-color:transparent;box-shadow:none;text-shadow:none;border-radius:0;text-transform:uppercase;font-size:11px}#bbpress-forums div.bbp-the-content-wrapper input[type=button]:hover{border-color:rgba(0,0,0,.1);background-color:rgba(255,255,255,.5)}#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;width:60%;background-color:#f9f9f9;border:1px solid #ddd}#bbpress-forums #bbp-your-profile fieldset input,#bbpress-forums #bbp-your-profile fieldset textarea{margin-bottom:0;width:60%;background-color:#f9f9f9;border:1px solid #ddd;box-shadow:none;border-radius:0}#bbpress-forums #bbp-your-profile fieldset input:focus,#bbpress-forums #bbp-your-profile fieldset textarea:focus{border:1px solid #ccc;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 p.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.capabilities dl{margin:0}#bbpress-forums #bbp-your-profile fieldset.submit button{float:left}#bbpress-forums #bbp-your-profile fieldset fieldset.password{width:60%;display:inline}#bbpress-forums #bbp-your-profile fieldset fieldset.password .password-button-wrapper,#bbpress-forums #bbp-your-profile fieldset fieldset.password .password-input-wrapper{width:100%;margin:0;display:inline-block}#bbpress-forums #bbp-your-profile fieldset fieldset.password .password-button-wrapper button{width:46%;margin:4% 2%;box-sizing:border-box;display:inline-block}#bbpress-forums #bbp-your-profile fieldset fieldset.password input,#bbpress-forums #bbp-your-profile fieldset fieldset.passwword textarea{width:100%}#bbpress-forums #bbp-your-profile fieldset fieldset.password button .dashicons{display:none}#bbpress-forums #bbp-your-profile fieldset fieldset.password span.description{margin-right:0;margin-bottom:20px}#bbpress-forums #password #pass-strength-result{background-color:#eee;border:1px solid #ddd;color:#23282d;margin:0;padding:8px;text-align:center;box-sizing:border-box;display:inline-block}#bbpress-forums #password #pass-strength-result.short{background-color:#f1adad;border-color:#e35b5b;opacity:1}#bbpress-forums #password #pass-strength-result.bad{background-color:#fbc5a9;border-color:#f78b53;opacity:1}#bbpress-forums #password #pass-strength-result.good{background-color:#ffe399;border-color:#ffc733;opacity:1}#bbpress-forums #password #pass-strength-result.strong{background-color:#c1e1b9;border-color:#83c373;opacity:1}#bbpress-forums #password #pass1-text.short,#bbpress-forums #password #pass1.short{border-color:#e35b5b}#bbpress-forums #password #pass1-text.bad,#bbpress-forums #password#pass1.bad{border-color:#f78b53}#bbpress-forums #password #pass1-text.good,#bbpress-forums #password #pass1.good{border-color:#ffc733}#bbpress-forums #password #pass1-text.strong,#bbpress-forums #password #pass1.strong{border-color:#83c373}#bbpress-forums .indicator-hint{padding-top:8px}#bbpress-forums #pass1-text,#bbpress-forums .pw-weak,#bbpress-forums .show-password #pass1{display:none}#bbpress-forums .show-password #pass1-text{display:inline-block}div.bbp-template-notice,div.indicator-hint{border-width:1px;border-style:solid;padding:0 .6em;margin:5px 0 15px;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{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;clear:left}#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;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 |
+
.hidden,.js .hide-if-js{display:none}.screen-reader-text,.screen-reader-text span,.ui-helper-hidden-accessible{position:absolute;margin:-1px;padding:0;height:1px;width:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);border:0;word-wrap:normal!important}#bbpress-forums{background:0 0;clear:both;margin-bottom:20px;overflow:hidden;font-size:12px;line-height:18px}#bbpress-forums a,#bbpress-forums a:hover{box-shadow:none;border:none;transition:none}#bbpress-forums hr{margin:0 0 24px}#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 .bbp-author-name,#bbpress-forums div.bbp-reply-author .bbp-author-name,#bbpress-forums div.bbp-topic-author .bbp-author-name{margin:0 12px;word-wrap:break-word;display:inline-block}#bbpress-forums div.bbp-reply-author .bbp-author-name,#bbpress-forums div.bbp-topic-author .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:12px}.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:12px}.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{float:right;width:100%;margin-bottom:15px}#bbpress-forums .bbp-pagination-links a,#bbpress-forums .bbp-pagination-links span.current{display:block;float:right;font-size:12px;line-height:18px;padding:0 5px;margin-right:5px;border:1px solid #efefef;border-radius:0;background:0 0;color:inherit;text-decoration:none}#bbpress-forums .bbp-pagination-links span.dots{display:block;float:right;padding:1px 4px;margin-right:5px}#bbpress-forums .bbp-topic-pagination{display:inline-block;margin-right:5px;margin-bottom:2px}#bbpress-forums .bbp-topic-pagination a{font-size:10px;line-height:10px;padding:1px 3px;border:1px solid #ddd;color:inherit;text-decoration:none}#bbpress-forums .bbp-pagination-links a:hover,#bbpress-forums .bbp-pagination-links span.current,#bbpress-forums .bbp-topic-pagination a:hover{background:#eee;opacity:.8;border:1px solid #ddd}#bbpress-forums fieldset.bbp-form{clear:right;border:1px solid #eee;padding:10px 20px;margin-bottom:10px}#bbpress-forums fieldset.bbp-form legend{padding:5px;width:auto;border:none}#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%;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[type=button]{padding:5px 7px;margin:0 0 0 -1px;line-height:1;border:1px solid transparent;background-color:transparent;box-shadow:none;text-shadow:none;border-radius:0;text-transform:uppercase;font-size:11px}#bbpress-forums div.bbp-the-content-wrapper input[type=button]:hover{border-color:rgba(0,0,0,.1);background-color:rgba(255,255,255,.5)}#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;width:60%;background-color:#f9f9f9;border:1px solid #ddd}#bbpress-forums #bbp-your-profile fieldset input,#bbpress-forums #bbp-your-profile fieldset textarea{margin-bottom:0;width:60%;background-color:#f9f9f9;border:1px solid #ddd;box-shadow:none;border-radius:0}#bbpress-forums #bbp-your-profile fieldset input:focus,#bbpress-forums #bbp-your-profile fieldset textarea:focus{border:1px solid #ccc;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 p.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.capabilities dl{margin:0}#bbpress-forums #bbp-your-profile fieldset.submit button{float:left}#bbpress-forums #bbp-your-profile fieldset fieldset.password{width:60%;display:inline}#bbpress-forums #bbp-your-profile fieldset fieldset.password .password-button-wrapper,#bbpress-forums #bbp-your-profile fieldset fieldset.password .password-input-wrapper{width:100%;margin:0;display:inline-block}#bbpress-forums #bbp-your-profile fieldset fieldset.password .password-button-wrapper button{width:46%;margin:4% 2%;box-sizing:border-box;display:inline-block}#bbpress-forums #bbp-your-profile fieldset fieldset.password input,#bbpress-forums #bbp-your-profile fieldset fieldset.passwword textarea{width:100%}#bbpress-forums #bbp-your-profile fieldset fieldset.password button .dashicons{display:none}#bbpress-forums #bbp-your-profile fieldset fieldset.password span.description{margin-right:0;margin-bottom:20px}#bbpress-forums #password #pass-strength-result{background-color:#eee;border:1px solid #ddd;color:#23282d;margin:0;padding:8px;text-align:center;box-sizing:border-box;display:inline-block}#bbpress-forums #password #pass-strength-result.short{background-color:#f1adad;border-color:#e35b5b;opacity:1}#bbpress-forums #password #pass-strength-result.bad{background-color:#fbc5a9;border-color:#f78b53;opacity:1}#bbpress-forums #password #pass-strength-result.good{background-color:#ffe399;border-color:#ffc733;opacity:1}#bbpress-forums #password #pass-strength-result.strong{background-color:#c1e1b9;border-color:#83c373;opacity:1}#bbpress-forums #password #pass1-text.short,#bbpress-forums #password #pass1.short{border-color:#e35b5b}#bbpress-forums #password #pass1-text.bad,#bbpress-forums #password#pass1.bad{border-color:#f78b53}#bbpress-forums #password #pass1-text.good,#bbpress-forums #password #pass1.good{border-color:#ffc733}#bbpress-forums #password #pass1-text.strong,#bbpress-forums #password #pass1.strong{border-color:#83c373}#bbpress-forums .indicator-hint{padding-top:8px}#bbpress-forums #pass1-text,#bbpress-forums .pw-weak,#bbpress-forums .show-password #pass1{display:none}#bbpress-forums .show-password #pass1-text{display:inline-block}div.bbp-template-notice,div.indicator-hint{border-width:1px;border-style:solid;padding:0 .6em;margin:5px 0 15px;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{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;clear:left}#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;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 .bbp-author-name,#bbpress-forums div.bbp-topic-author .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
@@ -23,7 +23,9 @@
|
|
23 |
height: 1px;
|
24 |
width: 1px;
|
25 |
overflow: hidden;
|
26 |
-
clip: rect(
|
|
|
|
|
27 |
border: 0;
|
28 |
word-wrap: normal !important; /* many screen reader and browser combinations announce broken words as they would appear visually */
|
29 |
}
|
@@ -34,12 +36,14 @@
|
|
34 |
margin-bottom: 20px;
|
35 |
overflow: hidden;
|
36 |
font-size: 12px;
|
|
|
37 |
}
|
38 |
|
39 |
#bbpress-forums a,
|
40 |
#bbpress-forums a:hover {
|
41 |
box-shadow: none;
|
42 |
border: none;
|
|
|
43 |
}
|
44 |
|
45 |
#bbpress-forums hr {
|
@@ -225,16 +229,16 @@ li.bbp-topic-freshness {
|
|
225 |
float: none;
|
226 |
}
|
227 |
|
228 |
-
#bbpress-forums div.bbp-forum-author
|
229 |
-
#bbpress-forums div.bbp-topic-author
|
230 |
-
#bbpress-forums div.bbp-reply-author
|
231 |
margin: 0 12px;
|
232 |
word-wrap: break-word;
|
233 |
display: inline-block;
|
234 |
}
|
235 |
|
236 |
-
#bbpress-forums div.bbp-topic-author
|
237 |
-
#bbpress-forums div.bbp-reply-author
|
238 |
clear: left;
|
239 |
display: block;
|
240 |
}
|
@@ -542,7 +546,7 @@ td.bbp-topic-counts {
|
|
542 |
border: 1px solid #aca;
|
543 |
background-color: #dfd;
|
544 |
font-weight: 700;
|
545 |
-
font-size:
|
546 |
}
|
547 |
|
548 |
.bbp-row-actions #favorite-toggle a:hover {
|
@@ -570,7 +574,7 @@ td.bbp-topic-counts {
|
|
570 |
border: 1px solid #aca;
|
571 |
background-color: #dfd;
|
572 |
font-weight: 700;
|
573 |
-
font-size:
|
574 |
}
|
575 |
|
576 |
.bbp-row-actions #subscription-toggle a:hover {
|
@@ -617,50 +621,56 @@ td.bbp-topic-counts {
|
|
617 |
display: inline;
|
618 |
}
|
619 |
|
620 |
-
.bbp-pagination
|
621 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
622 |
display: block;
|
623 |
float: left;
|
|
|
|
|
624 |
padding: 0 5px;
|
625 |
margin-left: 5px;
|
626 |
border: 1px solid #efefef;
|
|
|
|
|
|
|
627 |
text-decoration: none;
|
628 |
}
|
629 |
|
630 |
-
.bbp-pagination-links
|
631 |
-
.bbp-pagination-links span.current {
|
632 |
-
background: #eee;
|
633 |
-
opacity: 0.8;
|
634 |
-
border: 1px solid #ddd;
|
635 |
-
}
|
636 |
-
|
637 |
-
.bbp-pagination-links span.dots {
|
638 |
display: block;
|
639 |
float: left;
|
640 |
padding: 1px 4px;
|
641 |
margin-left: 5px;
|
642 |
}
|
643 |
|
644 |
-
.bbp-pagination {
|
645 |
-
float: left;
|
646 |
-
width: 100%;
|
647 |
-
margin-bottom: 15px;
|
648 |
-
}
|
649 |
-
|
650 |
-
.bbp-topic-pagination {
|
651 |
display: inline-block;
|
652 |
margin-left: 5px;
|
653 |
margin-bottom: 2px;
|
654 |
}
|
655 |
|
656 |
-
.bbp-topic-pagination a {
|
657 |
font-size: 10px;
|
658 |
line-height: 10px;
|
659 |
padding: 1px 3px;
|
660 |
border: 1px solid #ddd;
|
|
|
661 |
text-decoration: none;
|
662 |
}
|
663 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
664 |
|
665 |
/* =Forms
|
666 |
-------------------------------------------------------------- */
|
@@ -1411,8 +1421,8 @@ body.my-account #bbpress-forums {
|
|
1411 |
width: 100%;
|
1412 |
}
|
1413 |
|
1414 |
-
#bbpress-forums div.bbp-topic-author
|
1415 |
-
#bbpress-forums div.bbp-reply-author
|
1416 |
clear: none;
|
1417 |
display: inline-block;
|
1418 |
margin-left: 0;
|
23 |
height: 1px;
|
24 |
width: 1px;
|
25 |
overflow: hidden;
|
26 |
+
clip: rect(1px, 1px, 1px, 1px);
|
27 |
+
-webkit-clip-path: inset(50%);
|
28 |
+
clip-path: inset(50%);
|
29 |
border: 0;
|
30 |
word-wrap: normal !important; /* many screen reader and browser combinations announce broken words as they would appear visually */
|
31 |
}
|
36 |
margin-bottom: 20px;
|
37 |
overflow: hidden;
|
38 |
font-size: 12px;
|
39 |
+
line-height: 18px;
|
40 |
}
|
41 |
|
42 |
#bbpress-forums a,
|
43 |
#bbpress-forums a:hover {
|
44 |
box-shadow: none;
|
45 |
border: none;
|
46 |
+
transition: none;
|
47 |
}
|
48 |
|
49 |
#bbpress-forums hr {
|
229 |
float: none;
|
230 |
}
|
231 |
|
232 |
+
#bbpress-forums div.bbp-forum-author .bbp-author-name,
|
233 |
+
#bbpress-forums div.bbp-topic-author .bbp-author-name,
|
234 |
+
#bbpress-forums div.bbp-reply-author .bbp-author-name {
|
235 |
margin: 0 12px;
|
236 |
word-wrap: break-word;
|
237 |
display: inline-block;
|
238 |
}
|
239 |
|
240 |
+
#bbpress-forums div.bbp-topic-author .bbp-author-name,
|
241 |
+
#bbpress-forums div.bbp-reply-author .bbp-author-name {
|
242 |
clear: left;
|
243 |
display: block;
|
244 |
}
|
546 |
border: 1px solid #aca;
|
547 |
background-color: #dfd;
|
548 |
font-weight: 700;
|
549 |
+
font-size: 12px;
|
550 |
}
|
551 |
|
552 |
.bbp-row-actions #favorite-toggle a:hover {
|
574 |
border: 1px solid #aca;
|
575 |
background-color: #dfd;
|
576 |
font-weight: 700;
|
577 |
+
font-size: 12px;
|
578 |
}
|
579 |
|
580 |
.bbp-row-actions #subscription-toggle a:hover {
|
621 |
display: inline;
|
622 |
}
|
623 |
|
624 |
+
.bbp-pagination {
|
625 |
+
float: left;
|
626 |
+
width: 100%;
|
627 |
+
margin-bottom: 15px;
|
628 |
+
}
|
629 |
+
|
630 |
+
#bbpress-forums .bbp-pagination-links a,
|
631 |
+
#bbpress-forums .bbp-pagination-links span.current {
|
632 |
display: block;
|
633 |
float: left;
|
634 |
+
font-size: 12px;
|
635 |
+
line-height: 18px;
|
636 |
padding: 0 5px;
|
637 |
margin-left: 5px;
|
638 |
border: 1px solid #efefef;
|
639 |
+
border-radius: 0;
|
640 |
+
background: transparent;
|
641 |
+
color: inherit;
|
642 |
text-decoration: none;
|
643 |
}
|
644 |
|
645 |
+
#bbpress-forums .bbp-pagination-links span.dots {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
646 |
display: block;
|
647 |
float: left;
|
648 |
padding: 1px 4px;
|
649 |
margin-left: 5px;
|
650 |
}
|
651 |
|
652 |
+
#bbpress-forums .bbp-topic-pagination {
|
|
|
|
|
|
|
|
|
|
|
|
|
653 |
display: inline-block;
|
654 |
margin-left: 5px;
|
655 |
margin-bottom: 2px;
|
656 |
}
|
657 |
|
658 |
+
#bbpress-forums .bbp-topic-pagination a {
|
659 |
font-size: 10px;
|
660 |
line-height: 10px;
|
661 |
padding: 1px 3px;
|
662 |
border: 1px solid #ddd;
|
663 |
+
color: inherit;
|
664 |
text-decoration: none;
|
665 |
}
|
666 |
|
667 |
+
#bbpress-forums .bbp-topic-pagination a:hover,
|
668 |
+
#bbpress-forums .bbp-pagination-links a:hover,
|
669 |
+
#bbpress-forums .bbp-pagination-links span.current {
|
670 |
+
background: #eee;
|
671 |
+
opacity: 0.8;
|
672 |
+
border: 1px solid #ddd;
|
673 |
+
}
|
674 |
|
675 |
/* =Forms
|
676 |
-------------------------------------------------------------- */
|
1421 |
width: 100%;
|
1422 |
}
|
1423 |
|
1424 |
+
#bbpress-forums div.bbp-topic-author .bbp-author-name,
|
1425 |
+
#bbpress-forums div.bbp-reply-author .bbp-author-name {
|
1426 |
clear: none;
|
1427 |
display: inline-block;
|
1428 |
margin-left: 0;
|
templates/default/css/bbpress.min.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
.hidden,.js .hide-if-js{display:none}.screen-reader-text,.screen-reader-text span,.ui-helper-hidden-accessible{position:absolute;margin:-1px;padding:0;height:1px;width:1px;overflow:hidden;clip:rect(0 0 0 0);border:0;word-wrap:normal!important}#bbpress-forums{background:0 0;clear:both;margin-bottom:20px;overflow:hidden;font-size:12px}#bbpress-forums a,#bbpress-forums a:hover{box-shadow:none;border:none}#bbpress-forums hr{margin:0 0 24px}#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;border:1px solid #eee;padding:10px 20px;margin-bottom:10px}#bbpress-forums fieldset.bbp-form legend{padding:5px;width:auto;border:none}#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%;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[type=button]{padding:5px 7px;margin:0 -1px 0 0;line-height:1;border:1px solid transparent;background-color:transparent;box-shadow:none;text-shadow:none;border-radius:0;text-transform:uppercase;font-size:11px}#bbpress-forums div.bbp-the-content-wrapper input[type=button]:hover{border-color:rgba(0,0,0,.1);background-color:rgba(255,255,255,.5)}#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;width:60%;background-color:#f9f9f9;border:1px solid #ddd}#bbpress-forums #bbp-your-profile fieldset input,#bbpress-forums #bbp-your-profile fieldset textarea{margin-bottom:0;width:60%;background-color:#f9f9f9;border:1px solid #ddd;box-shadow:none;border-radius:0}#bbpress-forums #bbp-your-profile fieldset input:focus,#bbpress-forums #bbp-your-profile fieldset textarea:focus{border:1px solid #ccc;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 p.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.capabilities dl{margin:0}#bbpress-forums #bbp-your-profile fieldset.submit button{float:right}#bbpress-forums #bbp-your-profile fieldset fieldset.password{width:60%;display:inline}#bbpress-forums #bbp-your-profile fieldset fieldset.password .password-button-wrapper,#bbpress-forums #bbp-your-profile fieldset fieldset.password .password-input-wrapper{width:100%;margin:0;display:inline-block}#bbpress-forums #bbp-your-profile fieldset fieldset.password .password-button-wrapper button{width:46%;margin:4% 2%;box-sizing:border-box;display:inline-block}#bbpress-forums #bbp-your-profile fieldset fieldset.password input,#bbpress-forums #bbp-your-profile fieldset fieldset.passwword textarea{width:100%}#bbpress-forums #bbp-your-profile fieldset fieldset.password button .dashicons{display:none}#bbpress-forums #bbp-your-profile fieldset fieldset.password span.description{margin-left:0;margin-bottom:20px}#bbpress-forums #password #pass-strength-result{background-color:#eee;border:1px solid #ddd;color:#23282d;margin:0;padding:8px;text-align:center;box-sizing:border-box;display:inline-block}#bbpress-forums #password #pass-strength-result.short{background-color:#f1adad;border-color:#e35b5b;opacity:1}#bbpress-forums #password #pass-strength-result.bad{background-color:#fbc5a9;border-color:#f78b53;opacity:1}#bbpress-forums #password #pass-strength-result.good{background-color:#ffe399;border-color:#ffc733;opacity:1}#bbpress-forums #password #pass-strength-result.strong{background-color:#c1e1b9;border-color:#83c373;opacity:1}#bbpress-forums #password #pass1-text.short,#bbpress-forums #password #pass1.short{border-color:#e35b5b}#bbpress-forums #password #pass1-text.bad,#bbpress-forums #password#pass1.bad{border-color:#f78b53}#bbpress-forums #password #pass1-text.good,#bbpress-forums #password #pass1.good{border-color:#ffc733}#bbpress-forums #password #pass1-text.strong,#bbpress-forums #password #pass1.strong{border-color:#83c373}#bbpress-forums .indicator-hint{padding-top:8px}#bbpress-forums #pass1-text,#bbpress-forums .pw-weak,#bbpress-forums .show-password #pass1{display:none}#bbpress-forums .show-password #pass1-text{display:inline-block}div.bbp-template-notice,div.indicator-hint{border-width:1px;border-style:solid;padding:0 .6em;margin:5px 0 15px;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{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;clear:right}#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;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 |
+
.hidden,.js .hide-if-js{display:none}.screen-reader-text,.screen-reader-text span,.ui-helper-hidden-accessible{position:absolute;margin:-1px;padding:0;height:1px;width:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);border:0;word-wrap:normal!important}#bbpress-forums{background:0 0;clear:both;margin-bottom:20px;overflow:hidden;font-size:12px;line-height:18px}#bbpress-forums a,#bbpress-forums a:hover{box-shadow:none;border:none;transition:none}#bbpress-forums hr{margin:0 0 24px}#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 .bbp-author-name,#bbpress-forums div.bbp-reply-author .bbp-author-name,#bbpress-forums div.bbp-topic-author .bbp-author-name{margin:0 12px;word-wrap:break-word;display:inline-block}#bbpress-forums div.bbp-reply-author .bbp-author-name,#bbpress-forums div.bbp-topic-author .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:12px}.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:12px}.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{float:left;width:100%;margin-bottom:15px}#bbpress-forums .bbp-pagination-links a,#bbpress-forums .bbp-pagination-links span.current{display:block;float:left;font-size:12px;line-height:18px;padding:0 5px;margin-left:5px;border:1px solid #efefef;border-radius:0;background:0 0;color:inherit;text-decoration:none}#bbpress-forums .bbp-pagination-links span.dots{display:block;float:left;padding:1px 4px;margin-left:5px}#bbpress-forums .bbp-topic-pagination{display:inline-block;margin-left:5px;margin-bottom:2px}#bbpress-forums .bbp-topic-pagination a{font-size:10px;line-height:10px;padding:1px 3px;border:1px solid #ddd;color:inherit;text-decoration:none}#bbpress-forums .bbp-pagination-links a:hover,#bbpress-forums .bbp-pagination-links span.current,#bbpress-forums .bbp-topic-pagination a:hover{background:#eee;opacity:.8;border:1px solid #ddd}#bbpress-forums fieldset.bbp-form{clear:left;border:1px solid #eee;padding:10px 20px;margin-bottom:10px}#bbpress-forums fieldset.bbp-form legend{padding:5px;width:auto;border:none}#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%;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[type=button]{padding:5px 7px;margin:0 -1px 0 0;line-height:1;border:1px solid transparent;background-color:transparent;box-shadow:none;text-shadow:none;border-radius:0;text-transform:uppercase;font-size:11px}#bbpress-forums div.bbp-the-content-wrapper input[type=button]:hover{border-color:rgba(0,0,0,.1);background-color:rgba(255,255,255,.5)}#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;width:60%;background-color:#f9f9f9;border:1px solid #ddd}#bbpress-forums #bbp-your-profile fieldset input,#bbpress-forums #bbp-your-profile fieldset textarea{margin-bottom:0;width:60%;background-color:#f9f9f9;border:1px solid #ddd;box-shadow:none;border-radius:0}#bbpress-forums #bbp-your-profile fieldset input:focus,#bbpress-forums #bbp-your-profile fieldset textarea:focus{border:1px solid #ccc;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 p.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.capabilities dl{margin:0}#bbpress-forums #bbp-your-profile fieldset.submit button{float:right}#bbpress-forums #bbp-your-profile fieldset fieldset.password{width:60%;display:inline}#bbpress-forums #bbp-your-profile fieldset fieldset.password .password-button-wrapper,#bbpress-forums #bbp-your-profile fieldset fieldset.password .password-input-wrapper{width:100%;margin:0;display:inline-block}#bbpress-forums #bbp-your-profile fieldset fieldset.password .password-button-wrapper button{width:46%;margin:4% 2%;box-sizing:border-box;display:inline-block}#bbpress-forums #bbp-your-profile fieldset fieldset.password input,#bbpress-forums #bbp-your-profile fieldset fieldset.passwword textarea{width:100%}#bbpress-forums #bbp-your-profile fieldset fieldset.password button .dashicons{display:none}#bbpress-forums #bbp-your-profile fieldset fieldset.password span.description{margin-left:0;margin-bottom:20px}#bbpress-forums #password #pass-strength-result{background-color:#eee;border:1px solid #ddd;color:#23282d;margin:0;padding:8px;text-align:center;box-sizing:border-box;display:inline-block}#bbpress-forums #password #pass-strength-result.short{background-color:#f1adad;border-color:#e35b5b;opacity:1}#bbpress-forums #password #pass-strength-result.bad{background-color:#fbc5a9;border-color:#f78b53;opacity:1}#bbpress-forums #password #pass-strength-result.good{background-color:#ffe399;border-color:#ffc733;opacity:1}#bbpress-forums #password #pass-strength-result.strong{background-color:#c1e1b9;border-color:#83c373;opacity:1}#bbpress-forums #password #pass1-text.short,#bbpress-forums #password #pass1.short{border-color:#e35b5b}#bbpress-forums #password #pass1-text.bad,#bbpress-forums #password#pass1.bad{border-color:#f78b53}#bbpress-forums #password #pass1-text.good,#bbpress-forums #password #pass1.good{border-color:#ffc733}#bbpress-forums #password #pass1-text.strong,#bbpress-forums #password #pass1.strong{border-color:#83c373}#bbpress-forums .indicator-hint{padding-top:8px}#bbpress-forums #pass1-text,#bbpress-forums .pw-weak,#bbpress-forums .show-password #pass1{display:none}#bbpress-forums .show-password #pass1-text{display:inline-block}div.bbp-template-notice,div.indicator-hint{border-width:1px;border-style:solid;padding:0 .6em;margin:5px 0 15px;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{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;clear:right}#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;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 .bbp-author-name,#bbpress-forums div.bbp-topic-author .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}}
|