From 118732e13b77a4658569c1545c3c0bd27c93233e Mon Sep 17 00:00:00 2001 From: lucha <lucha@paranoici.org> Date: Tue, 18 Apr 2017 12:12:19 +0200 Subject: [PATCH] [auto] plugin: buddypress 2.8.2 --- .../bp-activity/bp-activity-actions.php | 6 +- .../bp-activity/bp-activity-admin.php | 11 +- .../bp-activity/bp-activity-akismet.php | 4 - .../bp-activity/bp-activity-filters.php | 11 +- .../bp-activity/bp-activity-functions.php | 121 +- .../bp-activity/bp-activity-loader.php | 4 - .../bp-activity/bp-activity-screens.php | 4 - .../bp-activity/bp-activity-template.php | 109 +- .../classes/class-bp-activity-activity.php | 96 +- .../classes/class-bp-activity-component.php | 4 - .../classes/class-bp-activity-list-table.php | 14 +- .../classes/class-bp-activity-template.php | 3 +- .../buddypress/bp-blogs/bp-blogs-activity.php | 21 +- .../bp-blogs/bp-blogs-functions.php | 60 +- .../buddypress/bp-blogs/bp-blogs-loader.php | 4 - .../buddypress/bp-blogs/bp-blogs-screens.php | 4 - .../buddypress/bp-blogs/bp-blogs-template.php | 20 +- .../buddypress/bp-blogs/bp-blogs-widgets.php | 6 +- .../bp-blogs/classes/class-bp-blogs-blog.php | 17 + .../classes/class-bp-blogs-component.php | 4 - .../bp-core/admin/bp-core-admin-functions.php | 199 +- .../bp-core/admin/bp-core-admin-tools.php | 2 +- .../bp-core/admin/css/common-rtl.css | 263 +- .../bp-core/admin/css/common-rtl.min.css | 2 +- .../buddypress/bp-core/admin/css/common.css | 263 +- .../bp-core/admin/css/common.min.css | 2 +- .../bp-core/admin/images/list-unsubscribe.png | Bin 0 -> 17792 bytes .../bp-core/admin/images/pending-accounts.png | Bin 0 -> 16034 bytes .../bp-core/admin/images/twenty-seventeen.png | Bin 0 -> 31735 bytes .../buddypress/bp-core/bp-core-admin.php | 4 - .../buddypress/bp-core/bp-core-adminbar.php | 5 + .../bp-core/bp-core-attachments.php | 21 +- .../buddypress/bp-core/bp-core-avatars.php | 47 +- .../buddypress/bp-core/bp-core-buddybar.php | 20 +- .../buddypress/bp-core/bp-core-catchuri.php | 13 +- .../bp-core/bp-core-customizer-email.php | 7 - .../buddypress/bp-core/bp-core-dependency.php | 4 +- .../buddypress/bp-core/bp-core-filters.php | 15 + .../buddypress/bp-core/bp-core-functions.php | 84 +- .../buddypress/bp-core/bp-core-loader.php | 5 - .../buddypress/bp-core/bp-core-options.php | 4 +- .../bp-core/bp-core-template-loader.php | 5 + .../buddypress/bp-core/bp-core-template.php | 14 + .../bp-core/bp-core-theme-compatibility.php | 6 - .../buddypress/bp-core/bp-core-update.php | 2 +- .../buddypress/bp-core/bp-core-widgets.php | 6 +- .../bp-core/classes/class-bp-admin.php | 246 +- .../classes/class-bp-attachment-avatar.php | 14 +- .../bp-core/classes/class-bp-attachment.php | 4 +- .../classes/class-bp-core-login-widget.php | 2 +- .../classes/class-bp-core-nav-item.php | 19 - .../bp-core/classes/class-bp-core-user.php | 10 - .../bp-core/classes/class-bp-core.php | 6 +- .../classes/class-bp-media-extractor.php | 2 +- .../bp-core/classes/class-bp-phpmailer.php | 13 +- .../bp-core/classes/class-bp-user-query.php | 2 +- .../classes/class-bp-walker-nav-menu.php | 4 +- .../buddypress/bp-core/css/admin-bar-rtl.css | 4 +- .../bp-core/css/admin-bar-rtl.min.css | 2 +- .../buddypress/bp-core/css/admin-bar.css | 4 +- .../buddypress/bp-core/css/admin-bar.min.css | 2 +- .../buddypress/bp-core/deprecated/2.5.php | 4 +- .../buddypress/bp-core/deprecated/2.8.php | 199 ++ .../bb-admin/includes/class.bb-install.php | 8 +- .../bb-admin/includes/functions.bb-admin.php | 28 +- .../bb-includes/backpress/class.bp-roles.php | 14 +- .../bb-includes/backpress/class.bp-user.php | 6 +- .../bb-includes/backpress/class.ixr.php | 72 +- .../backpress/class.mailer-smtp.php | 6 +- .../bb-includes/backpress/class.mailer.php | 22 +- .../backpress/class.passwordhash.php | 7 +- .../backpress/class.wp-ajax-response.php | 6 +- .../backpress/class.wp-dependencies.php | 10 +- .../bb-includes/backpress/class.wp-error.php | 6 +- .../backpress/class.wp-http-ixr-client.php | 7 +- .../class.wp-object-cache-memcached.php | 7 +- .../backpress/class.wp-taxonomy.php | 2 +- .../bb-includes/backpress/functions.core.php | 44 +- .../bb-includes/backpress/functions.kses.php | 2 +- .../backpress/functions.wp-object-cache.php | 2 +- .../backpress/functions.wp-taxonomy.php | 2 +- .../bb-includes/backpress/pomo/entry.php | 41 +- .../bbpress/bb-includes/backpress/pomo/mo.php | 231 +- .../bbpress/bb-includes/backpress/pomo/po.php | 138 +- .../bb-includes/backpress/pomo/sample/app.php | 5 +- .../bb-includes/backpress/pomo/streams.php | 322 +- .../backpress/pomo/translations.php | 221 +- .../bbpress/bb-includes/class.bb-dir-map.php | 6 +- .../bbpress/bb-includes/class.bb-locale.php | 6 +- .../bbpress/bb-includes/class.bb-query.php | 12 +- .../bbpress/bb-includes/class.bb-walker.php | 6 +- .../bb-includes/functions.bb-deprecated.php | 5 +- .../bb-includes/functions.bb-forums.php | 3 +- .../bbpress/bb-includes/functions.bb-l10n.php | 2 +- .../bb-includes/functions.bb-template.php | 18 +- .../bb-includes/functions.bb-topic-tags.php | 10 +- .../bb-includes/functions.bb-topics.php | 8 +- .../bb-includes/functions.bb-users.php | 2 +- .../bp-forums/bbpress/bb-plugins/akismet.php | 4 +- .../bp-forums/bbpress/bb-plugins/bozo.php | 23 +- .../bp-forums/bbpress/bb-settings.php | 2 +- .../buddypress/bp-forums/bbpress/xmlrpc.php | 15 +- .../bp-forums/bp-forums-bbpress-sa.php | 5 +- .../buddypress/bp-forums/deprecated/1.7.php | 2 +- .../bp-friends/bp-friends-functions.php | 33 +- .../bp-friends/bp-friends-loader.php | 4 - .../bp-friends/bp-friends-widgets.php | 8 +- .../classes/class-bp-core-friends-widget.php | 2 +- .../classes/class-bp-friends-component.php | 4 - .../classes/class-bp-friends-friendship.php | 12 +- .../bp-groups/admin/css/admin-rtl.css | 30 +- .../bp-groups/admin/css/admin-rtl.min.css | 2 +- .../buddypress/bp-groups/admin/css/admin.css | 30 +- .../bp-groups/admin/css/admin.min.css | 2 +- .../bp-groups/bp-groups-actions.php | 33 +- .../buddypress/bp-groups/bp-groups-admin.php | 32 +- .../bp-groups/bp-groups-filters.php | 1 - .../bp-groups/bp-groups-functions.php | 26 +- .../buddypress/bp-groups/bp-groups-loader.php | 4 - .../bp-groups/bp-groups-notifications.php | 19 +- .../bp-groups/bp-groups-screens.php | 30 +- .../bp-groups/bp-groups-template.php | 21 +- .../bp-groups/bp-groups-widgets.php | 17 +- .../classes/class-bp-group-extension.php | 16 +- .../classes/class-bp-group-member-query.php | 2 +- .../classes/class-bp-groups-component.php | 28 +- ...class-bp-groups-group-members-template.php | 3 +- .../classes/class-bp-groups-group.php | 218 +- .../class-bp-groups-invite-template.php | 3 +- .../classes/class-bp-groups-list-table.php | 6 +- .../classes/class-bp-groups-member.php | 50 +- ...bp-groups-membership-requests-template.php | 3 +- .../classes/class-bp-groups-template.php | 5 +- .../classes/class-bp-groups-widget.php | 13 +- wp-content/plugins/buddypress/bp-loader.php | 809 +---- .../bp-members/admin/css/admin-rtl.css | 2 - .../bp-members/admin/css/admin-rtl.min.css | 2 +- .../buddypress/bp-members/admin/css/admin.css | 2 - .../bp-members/admin/css/admin.min.css | 2 +- .../bp-members/bp-members-admin.php | 4 - .../bp-members/bp-members-functions.php | 31 +- .../bp-members/bp-members-loader.php | 4 - .../bp-members/bp-members-screens.php | 26 +- .../bp-members/bp-members-template.php | 10 +- .../bp-members/bp-members-widgets.php | 14 +- .../classes/class-bp-core-members-widget.php | 2 +- .../classes/class-bp-members-admin.php | 86 +- .../classes/class-bp-members-component.php | 4 - .../bp-members/classes/class-bp-signup.php | 34 +- .../bp-messages/bp-messages-functions.php | 28 +- .../bp-messages/bp-messages-loader.php | 4 - .../bp-messages/bp-messages-template.php | 20 +- .../bp-messages/bp-messages-widgets.php | 6 +- .../class-bp-messages-box-template.php | 3 +- .../classes/class-bp-messages-component.php | 4 - .../classes/class-bp-messages-message.php | 48 +- .../classes/class-bp-messages-notice.php | 34 +- .../classes/class-bp-messages-thread.php | 39 +- .../js/autocomplete/jquery.bgiframe.js | 102 +- .../js/autocomplete/jquery.bgiframe.min.js | 2 +- .../js/autocomplete/license.bgiframe.txt | 10 +- .../bp-notifications-loader.php | 4 - .../bp-notifications-template.php | 4 - .../class-bp-notifications-component.php | 4 - .../bp-settings/bp-settings-actions.php | 8 +- .../bp-settings/bp-settings-functions.php | 5 + .../bp-settings/bp-settings-loader.php | 4 - .../bp-settings/bp-settings-template.php | 2 +- .../bp-legacy/buddypress-functions.php | 125 +- .../bp-legacy/buddypress/activity/entry.php | 2 +- .../buddypress/activity/post-form.php | 2 +- .../bp-legacy/buddypress/members/register.php | 4 +- .../members/single/profile/edit.php | 4 +- .../bp-legacy/css/buddypress-rtl.css | 33 +- .../bp-legacy/css/buddypress-rtl.min.css | 2 +- .../bp-templates/bp-legacy/css/buddypress.css | 33 +- .../bp-legacy/css/buddypress.min.css | 2 +- .../bp-legacy/css/twentyseventeen-rtl.css | 2194 ++++++++++++ .../bp-legacy/css/twentyseventeen-rtl.min.css | 1 + .../bp-legacy/css/twentyseventeen.css | 2194 ++++++++++++ .../bp-legacy/css/twentyseventeen.min.css | 1 + .../bp-legacy/css/twentyseventeen.scss | 3036 +++++++++++++++++ .../bp-templates/bp-legacy/js/buddypress.js | 136 +- .../bp-legacy/js/buddypress.min.js | 4 +- .../bp-themes/bp-default/_inc/ajax.php | 41 +- .../bp-themes/bp-default/_inc/global.js | 44 +- .../bp-xprofile/admin/css/admin-rtl.css | 4 +- .../bp-xprofile/admin/css/admin-rtl.min.css | 2 +- .../bp-xprofile/admin/css/admin.css | 4 +- .../bp-xprofile/admin/css/admin.min.css | 2 +- .../bp-xprofile/bp-xprofile-admin.php | 154 +- .../bp-xprofile/bp-xprofile-cache.php | 10 + .../bp-xprofile/bp-xprofile-caps.php | 15 +- .../bp-xprofile/bp-xprofile-filters.php | 18 +- .../bp-xprofile/bp-xprofile-functions.php | 40 +- .../bp-xprofile/bp-xprofile-loader.php | 4 - .../bp-xprofile/bp-xprofile-screens.php | 15 +- .../bp-xprofile/bp-xprofile-template.php | 118 +- .../classes/class-bp-xprofile-component.php | 4 - .../class-bp-xprofile-data-template.php | 3 +- .../class-bp-xprofile-field-type-checkbox.php | 2 +- ...ass-bp-xprofile-field-type-radiobutton.php | 2 +- .../classes/class-bp-xprofile-field.php | 26 +- .../classes/class-bp-xprofile-group.php | 5 +- .../classes/class-bp-xprofile-profiledata.php | 4 +- .../classes/class-bp-xprofile-user-admin.php | 17 +- wp-content/plugins/buddypress/buddypress.pot | 2497 +++++++------- .../plugins/buddypress/class-buddypress.php | 734 ++++ wp-content/plugins/buddypress/composer.json | 2 +- wp-content/plugins/buddypress/humans.txt | 12 +- wp-content/plugins/buddypress/readme.txt | 42 +- 211 files changed, 12929 insertions(+), 4076 deletions(-) create mode 100644 wp-content/plugins/buddypress/bp-core/admin/images/list-unsubscribe.png create mode 100644 wp-content/plugins/buddypress/bp-core/admin/images/pending-accounts.png create mode 100644 wp-content/plugins/buddypress/bp-core/admin/images/twenty-seventeen.png create mode 100644 wp-content/plugins/buddypress/bp-core/deprecated/2.8.php create mode 100644 wp-content/plugins/buddypress/bp-templates/bp-legacy/css/twentyseventeen-rtl.css create mode 100644 wp-content/plugins/buddypress/bp-templates/bp-legacy/css/twentyseventeen-rtl.min.css create mode 100644 wp-content/plugins/buddypress/bp-templates/bp-legacy/css/twentyseventeen.css create mode 100644 wp-content/plugins/buddypress/bp-templates/bp-legacy/css/twentyseventeen.min.css create mode 100644 wp-content/plugins/buddypress/bp-templates/bp-legacy/css/twentyseventeen.scss create mode 100644 wp-content/plugins/buddypress/class-buddypress.php diff --git a/wp-content/plugins/buddypress/bp-activity/bp-activity-actions.php b/wp-content/plugins/buddypress/bp-activity/bp-activity-actions.php index 444808801..7e5721654 100644 --- a/wp-content/plugins/buddypress/bp-activity/bp-activity-actions.php +++ b/wp-content/plugins/buddypress/bp-activity/bp-activity-actions.php @@ -832,7 +832,11 @@ function bp_activity_transition_post_type_comment_status( $new_status, $old_stat // Add "new_post_type_comment" to the whitelisted activity types, so that the activity's Akismet history is generated $post_type_comment_action = $activity_comment_object->action_id; - $comment_akismet_history = create_function( '$t', '$t[] = $post_type_comment_action; return $t;' ); + $comment_akismet_history = function ( $activity_types ) use ( $post_type_comment_action ) { + $activity_types[] = $post_type_comment_action; + + return $activity_types; + }; add_filter( 'bp_akismet_get_activity_types', $comment_akismet_history ); // Make sure the activity change won't edit the comment if sync is on diff --git a/wp-content/plugins/buddypress/bp-activity/bp-activity-admin.php b/wp-content/plugins/buddypress/bp-activity/bp-activity-admin.php index e2a4049ac..c33c6fec8 100644 --- a/wp-content/plugins/buddypress/bp-activity/bp-activity-admin.php +++ b/wp-content/plugins/buddypress/bp-activity/bp-activity-admin.php @@ -16,10 +16,6 @@ defined( 'ABSPATH' ) || exit; // Include WP's list table class. if ( !class_exists( 'WP_List_Table' ) ) require( ABSPATH . 'wp-admin/includes/class-wp-list-table.php' ); -if ( ! buddypress()->do_autoload ) { - require dirname( __FILE__ ) . '/classes/class-bp-activity-list-table.php'; -} - // Per_page screen option. Has to be hooked in extremely early. if ( is_admin() && ! empty( $_REQUEST['page'] ) && 'bp-activity' == $_REQUEST['page'] ) add_filter( 'set-screen-option', 'bp_activity_admin_screen_options', 10, 3 ); @@ -169,8 +165,9 @@ function bp_activity_admin_screen_options( $value, $option, $new_value ) { * @return array Hidden Meta Boxes. */ function bp_activity_admin_edit_hidden_metaboxes( $hidden, $screen ) { - if ( empty( $screen->id ) || 'toplevel_page_bp-activity' != $screen->id && 'toplevel_page_bp-activity_network' != $screen->id ) + if ( empty( $screen->id ) || 'toplevel_page_bp-activity' !== $screen->id && 'toplevel_page_bp-activity-network' !== $screen->id ) { return $hidden; + } // Hide the primary link meta box by default. $hidden = array_merge( (array) $hidden, array( 'bp_activity_itemids', 'bp_activity_link', 'bp_activity_type', 'bp_activity_userid', ) ); @@ -393,8 +390,8 @@ function bp_activity_admin_load() { * Remove moderation and blacklist checks in case we want to ham an activity * which contains one of these listed keys. */ - remove_action( 'bp_activity_before_save', 'bp_activity_check_moderation_keys', 2, 1 ); - remove_action( 'bp_activity_before_save', 'bp_activity_check_blacklist_keys', 2, 1 ); + remove_action( 'bp_activity_before_save', 'bp_activity_check_moderation_keys', 2 ); + remove_action( 'bp_activity_before_save', 'bp_activity_check_blacklist_keys', 2 ); bp_activity_mark_as_ham( $activity ); $result = $activity->save(); diff --git a/wp-content/plugins/buddypress/bp-activity/bp-activity-akismet.php b/wp-content/plugins/buddypress/bp-activity/bp-activity-akismet.php index 70ad4f61c..70559da91 100644 --- a/wp-content/plugins/buddypress/bp-activity/bp-activity-akismet.php +++ b/wp-content/plugins/buddypress/bp-activity/bp-activity-akismet.php @@ -10,10 +10,6 @@ // Exit if accessed directly. defined( 'ABSPATH' ) || exit; -if ( ! buddypress()->do_autoload ) { - require dirname( __FILE__ ) . '/classes/class-bp-akismet.php'; -} - /** * Loads Akismet filtering for activity. * diff --git a/wp-content/plugins/buddypress/bp-activity/bp-activity-filters.php b/wp-content/plugins/buddypress/bp-activity/bp-activity-filters.php index 0acfc90cc..98f9ac632 100644 --- a/wp-content/plugins/buddypress/bp-activity/bp-activity-filters.php +++ b/wp-content/plugins/buddypress/bp-activity/bp-activity-filters.php @@ -450,14 +450,7 @@ function bp_activity_truncate_entry( $text, $args = array() ) { */ $append_text = apply_filters( 'bp_activity_excerpt_append_text', __( '[Read more]', 'buddypress' ) ); - /** - * Filters the excerpt length for the activity excerpt. - * - * @since 1.5.0 - * - * @param int $value Number indicating how many words to trim the excerpt down to. - */ - $excerpt_length = apply_filters( 'bp_activity_excerpt_length', 358 ); + $excerpt_length = bp_activity_get_excerpt_length(); $args = wp_parse_args( $args, array( 'ending' => __( '…', 'buddypress' ) ) ); @@ -603,7 +596,7 @@ function bp_activity_heartbeat_last_recorded( $response = array(), $data = array ob_end_clean(); // Remove the temporary filter. - remove_filter( 'bp_get_activity_css_class', 'bp_activity_newest_class', 10, 1 ); + remove_filter( 'bp_get_activity_css_class', 'bp_activity_newest_class', 10 ); if ( ! empty( $newest_activities['last_recorded'] ) ) { $response['bp_activity_newest_activities'] = $newest_activities; diff --git a/wp-content/plugins/buddypress/bp-activity/bp-activity-functions.php b/wp-content/plugins/buddypress/bp-activity/bp-activity-functions.php index b9b8a0944..57bac8c6c 100644 --- a/wp-content/plugins/buddypress/bp-activity/bp-activity-functions.php +++ b/wp-content/plugins/buddypress/bp-activity/bp-activity-functions.php @@ -406,7 +406,7 @@ function bp_activity_set_action( $component_id, $type, $description, $format_cal * @param array $args { * An associative array of tracking parameters. All items are optional. * @type string $bp_activity_admin_filter String to use in the Dashboard > Activity dropdown. - * @type string $bp_activity_front_filter String to use in frontend dropdown. + * @type string $bp_activity_front_filter String to use in the front-end dropdown. * @type string $bp_activity_new_post String format to use for generating the activity action. Should be a * translatable string where %1$s is replaced by a user link and %2$s is * the URL of the newly created post. @@ -839,6 +839,63 @@ function bp_activity_get_types() { return apply_filters( 'bp_activity_get_types', $actions ); } +/** + * Gets the current activity context. + * + * The "context" is the current view type, corresponding roughly to the + * current component. Use this context to determine which activity actions + * should be whitelisted for the filter dropdown. + * + * @since 2.8.0 + * + * @return string Activity context. 'member', 'member_groups', 'group', 'activity'. + */ +function bp_activity_get_current_context() { + // On member pages, default to 'member', unless this is a user's Groups activity. + if ( bp_is_user() ) { + if ( bp_is_active( 'groups' ) && bp_is_current_action( bp_get_groups_slug() ) ) { + $context = 'member_groups'; + } else { + $context = 'member'; + } + + // On individual group pages, default to 'group'. + } elseif ( bp_is_active( 'groups' ) && bp_is_group() ) { + $context = 'group'; + + // 'activity' everywhere else. + } else { + $context = 'activity'; + } + + return $context; +} + +/** + * Gets a flat list of activity actions compatible with a given context. + * + * @since 2.8.0 + * + * @param string $context Optional. Name of the context. Defaults to the current context. + * @return array + */ +function bp_activity_get_actions_for_context( $context = '' ) { + if ( ! $context ) { + $context = bp_activity_get_current_context(); + } + + $actions = array(); + foreach ( bp_activity_get_actions() as $component_actions ) { + foreach ( $component_actions as $component_action ) { + if ( in_array( $context, (array) $component_action['context'], true ) ) { + $actions[] = $component_action; + } + } + } + + return $actions; +} + /** Favorites ****************************************************************/ /** @@ -1445,7 +1502,7 @@ function bp_activity_generate_action_string( $activity ) { $action = apply_filters( 'bp_activity_generate_action_string', $activity->action, $activity ); // Remove the filter for future activity items. - remove_filter( 'bp_activity_generate_action_string', $actions->{$activity->component}->{$activity->type}['format_callback'], 10, 2 ); + remove_filter( 'bp_activity_generate_action_string', $actions->{$activity->component}->{$activity->type}['format_callback'], 10 ); return $action; } @@ -1724,7 +1781,7 @@ function bp_activity_get_specific( $args = '' ) { 'sort' => 'DESC', // Sort ASC or DESC 'spam' => 'ham_only', // Retrieve items marked as spam. 'update_meta_cache' => true, - ) ); + ), 'activity_get_specific' ); $get_args = array( 'display_comments' => $r['display_comments'], @@ -2615,9 +2672,9 @@ function bp_activity_new_comment( $args = '' ) { * * @since 1.2.0 * - * @param int $comment_id ID of the newly posted activity comment. - * @param array $r Array of parsed comment arguments. - * @param int $activity ID of the activity item being commented on. + * @param int $comment_id ID of the newly posted activity comment. + * @param array $r Array of parsed comment arguments. + * @param BP_Activity_Activity $activity Activity item being commented on. */ do_action( 'bp_activity_comment_posted', $comment_id, $r, $activity ); } else { @@ -2627,9 +2684,9 @@ function bp_activity_new_comment( $args = '' ) { * * @since 2.5.0 * - * @param int $comment_id ID of the newly posted activity comment. - * @param array $r Array of parsed comment arguments. - * @param int $activity ID of the activity item being commented on. + * @param int $comment_id ID of the newly posted activity comment. + * @param array $r Array of parsed comment arguments. + * @param BP_Activity_Activity $activity Activity item being commented on. */ do_action( 'bp_activity_comment_posted_notification_skipped', $comment_id, $r, $activity ); } @@ -3112,6 +3169,24 @@ function bp_activity_thumbnail_content_images( $content, $link = false, $args = return apply_filters( 'bp_activity_thumbnail_content_images', $content, $matches, $args ); } +/** + * Gets the excerpt length for activity items. + * + * @since 2.8.0 + * + * @return int Character length for activity excerpts. + */ +function bp_activity_get_excerpt_length() { + /** + * Filters the excerpt length for the activity excerpt. + * + * @since 1.5.0 + * + * @param int Character length for activity excerpts. + */ + return (int) apply_filters( 'bp_activity_excerpt_length', 358 ); +} + /** * Create a rich summary of an activity item for the activity stream. * @@ -3321,7 +3396,7 @@ function bp_activity_mark_as_spam( &$activity, $source = 'by_a_person' ) { // If Akismet is active, and this was a manual spam/ham request, stop Akismet checking the activity. if ( 'by_a_person' == $source && !empty( $bp->activity->akismet ) ) { - remove_action( 'bp_activity_before_save', array( $bp->activity->akismet, 'check_activity' ), 4, 1 ); + remove_action( 'bp_activity_before_save', array( $bp->activity->akismet, 'check_activity' ), 4 ); // Build data package for Akismet. $activity_data = BP_Akismet::build_akismet_data_package( $activity ); @@ -3368,7 +3443,7 @@ function bp_activity_mark_as_ham( &$activity, $source = 'by_a_person' ) { // If Akismet is active, and this was a manual spam/ham request, stop Akismet checking the activity. if ( 'by_a_person' == $source && !empty( $bp->activity->akismet ) ) { - remove_action( 'bp_activity_before_save', array( $bp->activity->akismet, 'check_activity' ), 4, 1 ); + remove_action( 'bp_activity_before_save', array( $bp->activity->akismet, 'check_activity' ), 4 ); // Build data package for Akismet. $activity_data = BP_Akismet::build_akismet_data_package( $activity ); @@ -3423,7 +3498,7 @@ function bp_activity_at_message_notification( $activity_id, $receiver_user_id ) remove_filter( 'bp_get_activity_content_body', 'bp_activity_truncate_entry', 5 ); /** This filter is documented in bp-activity/bp-activity-template.php */ - $content = apply_filters( 'bp_get_activity_content_body', $activity->content ); + $content = apply_filters_ref_array( 'bp_get_activity_content_body', array( $activity->content, &$activity ) ); add_filter( 'bp_get_activity_content_body', 'convert_smilies' ); add_filter( 'bp_get_activity_content_body', 'wpautop' ); @@ -3491,7 +3566,7 @@ function bp_activity_new_comment_notification( $comment_id = 0, $commenter_id = remove_filter( 'bp_get_activity_content_body', 'bp_activity_truncate_entry', 5 ); /** This filter is documented in bp-activity/bp-activity-template.php */ - $content = apply_filters( 'bp_get_activity_content_body', $params['content'] ); + $content = apply_filters_ref_array( 'bp_get_activity_content_body', array( $params['content'], &$original_activity ) ); add_filter( 'bp_get_activity_content_body', 'convert_smilies' ); add_filter( 'bp_get_activity_content_body', 'wpautop' ); @@ -3675,7 +3750,7 @@ add_action( 'bp_before_activity_comment', 'bp_activity_comment_embed' ); function bp_dtheme_embed_read_more( $activity ) { buddypress()->activity->read_more_id = $activity->id; - add_filter( 'embed_post_id', create_function( '', 'return buddypress()->activity->read_more_id;' ) ); + add_filter( 'embed_post_id', function() { return buddypress()->activity->read_more_id; } ); add_filter( 'bp_embed_get_cache', 'bp_embed_activity_cache', 10, 3 ); add_action( 'bp_embed_update_cache', 'bp_embed_activity_save_cache', 10, 3 ); } @@ -3745,21 +3820,21 @@ function bp_embed_activity_save_cache( $cache, $cachekey, $id ) { * * @since 2.0.0 * - * directory. - * is the group activities. - * * @return bool True if activity heartbeat is enabled, otherwise false. */ function bp_activity_do_heartbeat() { $retval = false; - if ( ! bp_is_activity_heartbeat_active() ) { - return $retval; - } - - if ( bp_is_activity_directory() || bp_is_group_activity() ) { + if ( bp_is_activity_heartbeat_active() && ( bp_is_activity_directory() || bp_is_group_activity() ) ) { $retval = true; } - return $retval; + /** + * Filters whether the heartbeat feature in the activity stream should be active. + * + * @since 2.8.0 + * + * @param bool $retval Whether or not activity heartbeat is active. + */ + return (bool) apply_filters( 'bp_activity_do_heartbeat', $retval ); } diff --git a/wp-content/plugins/buddypress/bp-activity/bp-activity-loader.php b/wp-content/plugins/buddypress/bp-activity/bp-activity-loader.php index 07ddf9ca3..5be9fa159 100644 --- a/wp-content/plugins/buddypress/bp-activity/bp-activity-loader.php +++ b/wp-content/plugins/buddypress/bp-activity/bp-activity-loader.php @@ -12,10 +12,6 @@ // Exit if accessed directly. defined( 'ABSPATH' ) || exit; -if ( ! buddypress()->do_autoload ) { - require dirname( __FILE__ ) . '/classes/class-bp-activity-component.php'; -} - /** * Set up the bp-activity component. * diff --git a/wp-content/plugins/buddypress/bp-activity/bp-activity-screens.php b/wp-content/plugins/buddypress/bp-activity/bp-activity-screens.php index c55ee4b15..aaca21995 100644 --- a/wp-content/plugins/buddypress/bp-activity/bp-activity-screens.php +++ b/wp-content/plugins/buddypress/bp-activity/bp-activity-screens.php @@ -14,10 +14,6 @@ // Exit if accessed directly. defined( 'ABSPATH' ) || exit; -if ( ! buddypress()->do_autoload ) { - require dirname( __FILE__ ) . '/classes/class-bp-activity-theme-compat.php'; -} - /** * Load the Activity directory. * diff --git a/wp-content/plugins/buddypress/bp-activity/bp-activity-template.php b/wp-content/plugins/buddypress/bp-activity/bp-activity-template.php index 72d1885cc..0512ab5c0 100644 --- a/wp-content/plugins/buddypress/bp-activity/bp-activity-template.php +++ b/wp-content/plugins/buddypress/bp-activity/bp-activity-template.php @@ -10,10 +10,6 @@ // Exit if accessed directly. defined( 'ABSPATH' ) || exit; -if ( ! buddypress()->do_autoload ) { - require dirname( __FILE__ ) . '/classes/class-bp-activity-template.php'; -} - /** * Output the activity component slug. * @@ -1390,7 +1386,8 @@ function bp_activity_content_body() { * * @since 1.2.0 * - * @param array $value Array containing the current activity content body and the current activity. + * @param string $content Content body. + * @param object $activity Activity object. Passed by reference. */ return apply_filters_ref_array( 'bp_get_activity_content_body', array( $activities_template->activity->content, &$activities_template->activity ) ); } @@ -2230,19 +2227,61 @@ function bp_activity_comment_count() { * Output the depth of the current activity comment. * * @since 2.0.0 + * @since 2.8.0 Added $comment as a parameter. + * + * @param object|int $comment Object of the activity comment or activity comment ID. Usually unnecessary + * when used in activity comment loop. */ -function bp_activity_comment_depth() { - echo bp_activity_get_comment_depth(); +function bp_activity_comment_depth( $comment = 0 ) { + echo bp_activity_get_comment_depth( $comment ); } + /** * Return the current activity comment depth. * * @since 2.0.0 + * @since 2.8.0 Added $comment as a parameter. * - * @return int $depth Depth for the current activity comment. + * @param object|int $comment Object of the activity comment or activity comment ID. Usually unnecessary + * when used in activity comment loop. + * @return int */ - function bp_activity_get_comment_depth() { - global $activities_template; + function bp_activity_get_comment_depth( $comment = 0 ) { + $depth = 0; + + // Activity comment loop takes precedence. + if ( isset( $GLOBALS['activities_template']->activity->current_comment->depth ) ) { + $depth = $GLOBALS['activities_template']->activity->current_comment->depth; + + // Get depth for activity comment manually. + } elseif ( ! empty( $comment ) ) { + // We passed an activity ID, so fetch the activity object. + if ( is_int( $comment ) ) { + $comment = new BP_Activity_Activity( $comment ); + } + + // Recurse through activity tree to find the depth. + if ( is_object( $comment ) && isset( $comment->type ) && 'activity_comment' === $comment->type ) { + // Fetch the entire root comment tree... ugh. + $comments = BP_Activity_Activity::get_activity_comments( $comment->item_id, 1, constant( 'PHP_INT_MAX' ) ); + + // Recursively find our comment object from the comment tree. + $iterator = new RecursiveArrayIterator( $comments ); + $recursive = new RecursiveIteratorIterator( $iterator, RecursiveIteratorIterator::SELF_FIRST ); + foreach ( $recursive as $cid => $cobj ) { + // Skip items that are not a comment object. + if ( ! is_numeric( $cid ) || ! is_object( $cobj ) ) { + continue; + } + + // We found the activity comment! Set the depth. + if ( $cid === $comment->id && isset( $cobj->depth ) ) { + $depth = $cobj->depth; + break; + } + } + } + } /** * Filters the comment depth of the current activity comment. @@ -2251,7 +2290,7 @@ function bp_activity_comment_depth() { * * @param int $depth Depth for the current activity comment. */ - return apply_filters( 'bp_activity_get_comment_depth', $activities_template->activity->current_comment->depth ); + return apply_filters( 'bp_activity_get_comment_depth', $depth ); } /** @@ -2697,7 +2736,7 @@ function bp_activity_latest_update( $user_id = 0 ) { * @param string $value The excerpt for the latest update. * @param int $user_id ID of the queried user. */ - $latest_update = apply_filters( 'bp_get_activity_latest_update_excerpt', trim( strip_tags( bp_create_excerpt( $update['content'], 358 ) ) ), $user_id ); + $latest_update = apply_filters( 'bp_get_activity_latest_update_excerpt', trim( strip_tags( bp_create_excerpt( $update['content'], bp_activity_get_excerpt_length() ) ) ), $user_id ); $latest_update = sprintf( '%s <a href="%s">%s</a>', @@ -2887,7 +2926,7 @@ function bp_activity_can_comment_reply( $comment = false ) { // Fall back on current comment in activity loop. $comment_depth = isset( $comment->depth ) ? intval( $comment->depth ) - : bp_activity_get_comment_depth(); + : bp_activity_get_comment_depth( $comment ); // Threading is turned on, so check the depth. if ( get_option( 'thread_comments' ) ) { @@ -3799,45 +3838,15 @@ function bp_activity_show_filters( $context = '' ) { * @return string HTML for <option> values. */ function bp_get_activity_show_filters( $context = '' ) { - // Set default context based on current page. - if ( empty( $context ) ) { - - // On member pages, default to 'member', unless this - // is a user's Groups activity. - if ( bp_is_user() ) { - if ( bp_is_active( 'groups' ) && bp_is_current_action( bp_get_groups_slug() ) ) { - $context = 'member_groups'; - } else { - $context = 'member'; - } - - // On individual group pages, default to 'group'. - } elseif ( bp_is_active( 'groups' ) && bp_is_group() ) { - $context = 'group'; - - // 'activity' everywhere else. - } else { - $context = 'activity'; - } - } - $filters = array(); - - // Walk through the registered actions, and prepare an the - // select box options. - foreach ( bp_activity_get_actions() as $actions ) { - foreach ( $actions as $action ) { - if ( ! in_array( $context, (array) $action['context'] ) ) { - continue; - } - - // Friends activity collapses two filters into one. - if ( in_array( $action['key'], array( 'friendship_accepted', 'friendship_created' ) ) ) { - $action['key'] = 'friendship_accepted,friendship_created'; - } - - $filters[ $action['key'] ] = $action['label']; + $actions = bp_activity_get_actions_for_context( $context ); + foreach ( $actions as $action ) { + // Friends activity collapses two filters into one. + if ( in_array( $action['key'], array( 'friendship_accepted', 'friendship_created' ) ) ) { + $action['key'] = 'friendship_accepted,friendship_created'; } + + $filters[ $action['key'] ] = $action['label']; } /** diff --git a/wp-content/plugins/buddypress/bp-activity/classes/class-bp-activity-activity.php b/wp-content/plugins/buddypress/bp-activity/classes/class-bp-activity-activity.php index 8040fcf0a..1cf7661c3 100644 --- a/wp-content/plugins/buddypress/bp-activity/classes/class-bp-activity-activity.php +++ b/wp-content/plugins/buddypress/bp-activity/classes/class-bp-activity-activity.php @@ -185,22 +185,25 @@ class BP_Activity_Activity { wp_cache_set( $this->id, $row, 'bp_activity' ); } - if ( ! empty( $row ) ) { - $this->id = (int) $row->id; - $this->item_id = (int) $row->item_id; - $this->secondary_item_id = (int) $row->secondary_item_id; - $this->user_id = (int) $row->user_id; - $this->primary_link = $row->primary_link; - $this->component = $row->component; - $this->type = $row->type; - $this->action = $row->action; - $this->content = $row->content; - $this->date_recorded = $row->date_recorded; - $this->hide_sitewide = (int) $row->hide_sitewide; - $this->mptt_left = (int) $row->mptt_left; - $this->mptt_right = (int) $row->mptt_right; - $this->is_spam = (int) $row->is_spam; - } + if ( empty( $row ) ) { + $this->id = 0; + return; + } + + $this->id = (int) $row->id; + $this->item_id = (int) $row->item_id; + $this->secondary_item_id = (int) $row->secondary_item_id; + $this->user_id = (int) $row->user_id; + $this->primary_link = $row->primary_link; + $this->component = $row->component; + $this->type = $row->type; + $this->action = $row->action; + $this->content = $row->content; + $this->date_recorded = $row->date_recorded; + $this->hide_sitewide = (int) $row->hide_sitewide; + $this->mptt_left = (int) $row->mptt_left; + $this->mptt_right = (int) $row->mptt_right; + $this->is_spam = (int) $row->is_spam; // Generate dynamic 'action' when possible. $action = bp_activity_generate_action_string( $this ); @@ -373,8 +376,7 @@ class BP_Activity_Activity { 10 => 'spam' ); - $func_args = func_get_args(); - $args = bp_core_parse_args_array( $old_args_keys, $func_args ); + $args = bp_core_parse_args_array( $old_args_keys, func_get_args() ); } $bp = buddypress(); @@ -423,7 +425,7 @@ class BP_Activity_Activity { // Override some arguments if needed. if ( ! empty( $scope_query['override'] ) ) { - $r = self::array_replace_recursive( $r, $scope_query['override'] ); + $r = array_replace_recursive( $r, $scope_query['override'] ); } // Advanced filtering. @@ -1471,7 +1473,6 @@ class BP_Activity_Activity { } // Legacy query - not recommended. - $func_args = func_get_args(); /** * Filters if BuddyPress should use the legacy activity query. @@ -1482,7 +1483,7 @@ class BP_Activity_Activity { * @param BP_Activity_Activity $value Magic method referring to currently called method. * @param array $func_args Array of the method's argument list. */ - if ( apply_filters( 'bp_use_legacy_activity_query', false, __METHOD__, $func_args ) ) { + if ( apply_filters( 'bp_use_legacy_activity_query', false, __METHOD__, func_get_args() ) ) { /** * Filters the MySQL prepared statement for the legacy activity query. @@ -1867,57 +1868,4 @@ class BP_Activity_Activity { return $wpdb->get_var( $wpdb->prepare( "UPDATE {$bp->activity->table_name} SET hide_sitewide = 1 WHERE user_id = %d", $user_id ) ); } - - /** - * PHP-agnostic version of {@link array_replace_recursive()}. - * - * The array_replace_recursive() function is a PHP 5.3 function. BuddyPress (and - * WordPress) currently supports down to PHP 5.2, so this method is a workaround - * for PHP 5.2. - * - * Note: array_replace_recursive() supports infinite arguments, but for our use- - * case, we only need to support two arguments. - * - * Subject to removal once WordPress makes PHP 5.3.0 the minimum requirement. - * - * @since 2.2.0 - * - * @see http://php.net/manual/en/function.array-replace-recursive.php#109390 - * - * @param array $base Array with keys needing to be replaced. - * @param array $replacements Array with the replaced keys. - * @return array - */ - protected static function array_replace_recursive( $base = array(), $replacements = array() ) { - if ( function_exists( 'array_replace_recursive' ) ) { - return array_replace_recursive( $base, $replacements ); - } - - // PHP 5.2-compatible version - // http://php.net/manual/en/function.array-replace-recursive.php#109390. - foreach ( array_slice( func_get_args(), 1 ) as $replacements ) { - $bref_stack = array( &$base ); - $head_stack = array( $replacements ); - - do { - end( $bref_stack ); - - $bref = &$bref_stack[ key( $bref_stack ) ]; - $head = array_pop( $head_stack ); - - unset( $bref_stack[ key($bref_stack) ] ); - - foreach ( array_keys( $head ) as $key ) { - if ( isset( $key, $bref ) && is_array( $bref[$key] ) && is_array( $head[$key] ) ) { - $bref_stack[] = &$bref[ $key ]; - $head_stack[] = $head[ $key ]; - } else { - $bref[ $key ] = $head[ $key ]; - } - } - } while( count( $head_stack ) ); - } - - return $base; - } } diff --git a/wp-content/plugins/buddypress/bp-activity/classes/class-bp-activity-component.php b/wp-content/plugins/buddypress/bp-activity/classes/class-bp-activity-component.php index 2aa6124b7..66005ebde 100644 --- a/wp-content/plugins/buddypress/bp-activity/classes/class-bp-activity-component.php +++ b/wp-content/plugins/buddypress/bp-activity/classes/class-bp-activity-component.php @@ -65,10 +65,6 @@ class BP_Activity_Component extends BP_Component { $includes[] = 'notifications'; } - if ( ! buddypress()->do_autoload ) { - $includes[] = 'classes'; - } - // Load Akismet support if Akismet is configured. $akismet_key = bp_get_option( 'wordpress_api_key' ); diff --git a/wp-content/plugins/buddypress/bp-activity/classes/class-bp-activity-list-table.php b/wp-content/plugins/buddypress/bp-activity/classes/class-bp-activity-list-table.php index 0e3a48843..9e0483026 100644 --- a/wp-content/plugins/buddypress/bp-activity/classes/class-bp-activity-list-table.php +++ b/wp-content/plugins/buddypress/bp-activity/classes/class-bp-activity-list-table.php @@ -171,7 +171,7 @@ class BP_Activity_List_Table extends WP_List_Table { $activities['total'] = count( $activities['activities'] ); // Sort the array by the activity object's date_recorded value. - usort( $activities['activities'], create_function( '$a, $b', 'return $a->date_recorded > $b->date_recorded;' ) ); + usort( $activities['activities'], function( $a, $b ) { return $a->date_recorded > $b->date_recorded; } ); } // The bp_activity_get function returns an array of objects; cast these to arrays for WP_List_Table. @@ -641,15 +641,10 @@ class BP_Activity_List_Table extends WP_List_Table { // Get activity content - if not set, use the action. if ( ! empty( $item['content'] ) ) { + $activity = new BP_Activity_Activity( $item['id'] ); - /** - * Filters current activity item content. - * - * @since 1.2.0 - * - * @param array $item Array index holding current activity item content. - */ - $content = apply_filters_ref_array( 'bp_get_activity_content_body', array( $item['content'] ) ); + /** This filter is documented in bp-activity/bp-activity-template.php */ + $content = apply_filters_ref_array( 'bp_get_activity_content_body', array( $item['content'], &$activity ) ); } else { /** * Filters current activity item action. @@ -812,6 +807,7 @@ class BP_Activity_List_Table extends WP_List_Table { $parent_activity = (object) $item; } elseif ( 'activity_comment' === $item['type'] ) { $parent_activity = new BP_Activity_Activity( $item['item_id'] ); + $can_comment = bp_activity_can_comment_reply( (object) $item ); } if ( isset( $parent_activity->type ) && bp_activity_post_type_get_tracking_arg( $parent_activity->type, 'post_type' ) ) { diff --git a/wp-content/plugins/buddypress/bp-activity/classes/class-bp-activity-template.php b/wp-content/plugins/buddypress/bp-activity/classes/class-bp-activity-template.php index 864e5516e..04c03b85a 100644 --- a/wp-content/plugins/buddypress/bp-activity/classes/class-bp-activity-template.php +++ b/wp-content/plugins/buddypress/bp-activity/classes/class-bp-activity-template.php @@ -159,8 +159,7 @@ class BP_Activity_Template { 12 => 'page_arg' ); - $func_args = func_get_args(); - $args = bp_core_parse_args_array( $old_args_keys, $func_args ); + $args = bp_core_parse_args_array( $old_args_keys, func_get_args() ); } $defaults = array( diff --git a/wp-content/plugins/buddypress/bp-blogs/bp-blogs-activity.php b/wp-content/plugins/buddypress/bp-blogs/bp-blogs-activity.php index 5c91e83e8..213932230 100644 --- a/wp-content/plugins/buddypress/bp-blogs/bp-blogs-activity.php +++ b/wp-content/plugins/buddypress/bp-blogs/bp-blogs-activity.php @@ -547,7 +547,7 @@ function bp_blogs_comments_open( $activity ) { switch_to_blog( $blog_id ); // Use comments_open(). - remove_filter( 'comments_open', 'bp_comments_open', 10, 2 ); + remove_filter( 'comments_open', 'bp_comments_open', 10 ); $open = comments_open( $activity->secondary_item_id ); add_filter( 'comments_open', 'bp_comments_open', 10, 2 ); @@ -624,6 +624,15 @@ function bp_blogs_record_activity_on_site_creation( $recorded_blog, $is_private, if ( ! $is_private && ! $no_activity && bp_blogs_is_blog_trackable( $recorded_blog->blog_id, $recorded_blog->user_id ) ) { bp_blogs_record_activity( array( 'user_id' => $recorded_blog->user_id, + + /** + * Filters the activity created blog primary link. + * + * @since 1.1.0 + * + * @param string $value Blog primary link. + * @param int $value Blog ID. + */ 'primary_link' => apply_filters( 'bp_blogs_activity_created_blog_primary_link', bp_blogs_get_blogmeta( $recorded_blog->blog_id, 'url' ), $recorded_blog->blog_id ), 'type' => 'new_blog', 'item_id' => $recorded_blog->blog_id @@ -797,7 +806,7 @@ function bp_blogs_sync_add_from_activity_comment( $comment_id, $params, $parent_ ); // Prevent separate activity entry being made. - remove_action( 'comment_post', 'bp_activity_post_type_comment', 10, 2 ); + remove_action( 'comment_post', 'bp_activity_post_type_comment', 10 ); // Handle multisite. switch_to_blog( $parent_activity->item_id ); @@ -823,7 +832,7 @@ function bp_blogs_sync_add_from_activity_comment( $comment_id, $params, $parent_ // permalinks to use the post comment link // // @todo since this is done after AJAX posting, the activity comment permalink - // doesn't change on the frontend until the next page refresh. + // doesn't change on the front end until the next page refresh. $resave_activity = new BP_Activity_Activity( $comment_id ); $resave_activity->primary_link = get_comment_link( $post_comment_id ); @@ -961,8 +970,8 @@ function bp_blogs_sync_activity_edit_to_post_comment( BP_Activity_Activity $acti $old_comment_status = $post_comment_status; // No need to edit the activity, as it's the activity who's updating the comment - remove_action( 'transition_comment_status', 'bp_activity_transition_post_type_comment_status', 10, 3 ); - remove_action( 'bp_activity_post_type_comment', 'bp_blogs_comment_sync_activity_comment', 10, 4 ); + remove_action( 'transition_comment_status', 'bp_activity_transition_post_type_comment_status', 10 ); + remove_action( 'bp_activity_post_type_comment', 'bp_blogs_comment_sync_activity_comment', 10 ); if ( 1 === $activity->is_spam && 'spam' !== $post_comment_status ) { wp_spam_comment( $post_comment_id ); @@ -1291,7 +1300,7 @@ function bp_blogs_can_comment_reply( $retval, $comment ) { // Check comment depth and disable if depth is too large. if ( isset( buddypress()->blogs->thread_depth[$comment->item_id] ) ){ - if ( bp_activity_get_comment_depth() > buddypress()->blogs->thread_depth[$comment->item_id] ) { + if ( bp_activity_get_comment_depth( $comment ) >= buddypress()->blogs->thread_depth[$comment->item_id] ) { $retval = false; } } diff --git a/wp-content/plugins/buddypress/bp-blogs/bp-blogs-functions.php b/wp-content/plugins/buddypress/bp-blogs/bp-blogs-functions.php index be32eeff5..83f465a8c 100644 --- a/wp-content/plugins/buddypress/bp-blogs/bp-blogs-functions.php +++ b/wp-content/plugins/buddypress/bp-blogs/bp-blogs-functions.php @@ -65,7 +65,14 @@ function bp_blogs_get_blogs( $args = '' ) { $r['include_blog_ids'] ); - // Filter and return. + /** + * Filters a set of blogs. + * + * @since 1.2.0 + * + * @param array $blogs Array of blog data. + * @param array $r Parsed query arguments. + */ return apply_filters( 'bp_blogs_get_blogs', $blogs, $r ); } @@ -246,9 +253,26 @@ function bp_blogs_record_existing_blogs( $args = array() ) { */ function bp_blogs_is_blog_recordable( $blog_id, $user_id = 0 ) { + /** + * Filters whether or not a blog is globally activity stream recordable. + * + * @since 1.7.0 + * + * @param bool $value Whether or not recordable. Default true. + * @param int $blog_id Current blog ID. + */ $recordable_globally = apply_filters( 'bp_blogs_is_blog_recordable', true, $blog_id ); if ( !empty( $user_id ) ) { + /** + * Filters whether or not a blog is globally activity stream recordable for user. + * + * @since 1.7.0 + * + * @param bool $recordable_globally Whether or not recordable. + * @param int $blog_id Current blog ID. + * @param int $user_id Current user ID. + */ $recordable_for_user = apply_filters( 'bp_blogs_is_blog_recordable_for_user', $recordable_globally, $blog_id, $user_id ); } else { $recordable_for_user = $recordable_globally; @@ -275,9 +299,27 @@ function bp_blogs_is_blog_recordable( $blog_id, $user_id = 0 ) { */ function bp_blogs_is_blog_trackable( $blog_id, $user_id = 0 ) { + /** + * Filters whether or not a blog is globally trackable. + * + * @since 1.7.0 + * + * @param bool $value Whether or not trackable. + * @param int $blog_id Current blog ID. + */ $trackable_globally = apply_filters( 'bp_blogs_is_blog_trackable', bp_blogs_is_blog_recordable( $blog_id, $user_id ), $blog_id ); if ( !empty( $user_id ) ) { + + /** + * Filters whether or not a blog is globally trackable for user. + * + * @since 1.7.0 + * + * @param bool $value Whether or not trackable. + * @param int $blog_id Current blog ID. + * @param int $user_id Current user ID. + */ $trackable_for_user = apply_filters( 'bp_blogs_is_blog_trackable_for_user', $trackable_globally, $blog_id, $user_id ); } else { $trackable_for_user = $trackable_globally; @@ -344,6 +386,14 @@ function bp_blogs_record_blog( $blog_id, $user_id, $no_activity = false ) { bp_blogs_update_blogmeta( $recorded_blog->blog_id, 'thread_comments_depth', $thread_depth ); $is_private = !empty( $_POST['blog_public'] ) && (int) $_POST['blog_public'] ? false : true; + + /** + * Filters whether or not a new blog is public. + * + * @since 1.5.0 + * + * @param bool $is_private Whether or not blog is public. + */ $is_private = !apply_filters( 'bp_is_new_blog_public', !$is_private ); /** @@ -844,6 +894,14 @@ add_action( 'user_register', 'bp_blogs_add_user_to_blog' ); * @return string */ function bp_blogs_get_allowed_roles() { + + /** + * Filters the allowed roles a member must have to be recorded into bp_user_blogs pointer table. + * + * @since 2.1.0 + * + * @param array $value Array of potential roles user needs. + */ return apply_filters( 'bp_blogs_get_allowed_roles', array( 'contributor', 'author', 'editor', 'administrator' ) ); } diff --git a/wp-content/plugins/buddypress/bp-blogs/bp-blogs-loader.php b/wp-content/plugins/buddypress/bp-blogs/bp-blogs-loader.php index 348d8966e..e603c327a 100644 --- a/wp-content/plugins/buddypress/bp-blogs/bp-blogs-loader.php +++ b/wp-content/plugins/buddypress/bp-blogs/bp-blogs-loader.php @@ -14,10 +14,6 @@ // Exit if accessed directly. defined( 'ABSPATH' ) || exit; -if ( ! buddypress()->do_autoload ) { - require dirname( __FILE__ ) . '/classes/class-bp-blogs-component.php'; -} - /** * Set up the bp-blogs component. * diff --git a/wp-content/plugins/buddypress/bp-blogs/bp-blogs-screens.php b/wp-content/plugins/buddypress/bp-blogs/bp-blogs-screens.php index 371f40129..68d1ccd38 100644 --- a/wp-content/plugins/buddypress/bp-blogs/bp-blogs-screens.php +++ b/wp-content/plugins/buddypress/bp-blogs/bp-blogs-screens.php @@ -10,10 +10,6 @@ // Exit if accessed directly. defined( 'ABSPATH' ) || exit; -if ( ! buddypress()->do_autoload ) { - require dirname( __FILE__ ) . '/classes/class-bp-blogs-theme-compat.php'; -} - /** * Load the "My Blogs" screen. */ diff --git a/wp-content/plugins/buddypress/bp-blogs/bp-blogs-template.php b/wp-content/plugins/buddypress/bp-blogs/bp-blogs-template.php index b4b4dd55d..9c6de4b8b 100644 --- a/wp-content/plugins/buddypress/bp-blogs/bp-blogs-template.php +++ b/wp-content/plugins/buddypress/bp-blogs/bp-blogs-template.php @@ -10,10 +10,6 @@ // Exit if accessed directly. defined( 'ABSPATH' ) || exit; -if ( ! buddypress()->do_autoload ) { - require dirname( __FILE__ ) . '/classes/class-bp-blogs-template.php'; -} - /** * Output the blogs component slug. * @@ -313,7 +309,6 @@ function bp_blog_avatar( $args = '' ) { * {@link bp_core_fetch_avatar()}. * @type string $alt Default: 'Profile picture of site author [user name]'. * @type string $class Default: 'avatar'. - * @type string $title Default: 'Profile picture of site author [user name]'. * @type string $type Default: 'full'. * @type int|bool $width Default: false. * @type int|bool $height Default: false. @@ -339,7 +334,6 @@ function bp_blog_avatar( $args = '' ) { 'width' => false, 'height' => false, 'class' => 'avatar', - 'title' => sprintf( __( 'Profile picture of site author %s', 'buddypress' ), esc_attr( $author_displayname ) ), 'id' => false, 'alt' => sprintf( __( 'Profile picture of site author %s', 'buddypress' ), esc_attr( $author_displayname ) ), 'no_grav' => true, @@ -392,7 +386,7 @@ function bp_blog_avatar( $args = '' ) { $size = (int) $r['width']; } - $avatar = sprintf( '<img src="%1$s" class="%2$s" width="%3$s" height="%3$s" alt="%4$s" title="%4$s" />', + $avatar = sprintf( '<img src="%1$s" class="%2$s" width="%3$s" height="%3$s" alt="%4$s" />', esc_url( $site_icon ), esc_attr( "{$r['class']} avatar-{$size}" ), esc_attr( $size ), @@ -405,7 +399,6 @@ function bp_blog_avatar( $args = '' ) { if ( '' === $avatar ) { $avatar = bp_core_fetch_avatar( array( 'item_id' => $blogs_template->blog->admin_user_id, - 'title' => $r['title'], // 'avatar_dir' => 'blog-avatars', // 'object' => 'blog', 'type' => $r['type'], @@ -645,7 +638,7 @@ function bp_blog_last_active( $args = array() ) { /** * Filters the last active date of the current blog in the loop. * - * @since + * @since 1.2.0 * * @param string $last_activity Last active date. * @param array $r Array of parsed args used to determine formatting. @@ -1084,7 +1077,7 @@ function bp_blogs_signup_blog( $blogname = '', $blog_title = '', $errors = '' ) if ( !is_subdomain_install() ) echo '<span class="prefix_address">' . $current_site->domain . $current_site->path . '</span> <input name="blogname" type="text" id="blogname" value="'.$blogname.'" maxlength="63" /><br />'; else - echo '<input name="blogname" type="text" id="blogname" value="'.$blogname.'" maxlength="63" ' . bp_get_form_field_attributes( 'blogname' ) . '/> <span class="suffix_address">.' . bp_blogs_get_subdomain_base() . '</span><br />'; + echo '<input name="blogname" type="text" id="blogname" value="'.$blogname.'" maxlength="63" ' . bp_get_form_field_attributes( 'blogname' ) . '/> <span class="suffix_address">.' . bp_signup_get_subdomain_base() . '</span><br />'; if ( !is_user_logged_in() ) { print '(<strong>' . __( 'Your address will be ' , 'buddypress'); @@ -1401,6 +1394,13 @@ function bp_blog_create_nav_item() { $output = '<li id="blog-create-nav">' . $create_blog_button . '</li>'; + /** + * Filters the Create A Site nav item output. + * + * @since 2.2.0 + * + * @param string $output Nav item output. + */ return apply_filters( 'bp_get_blog_create_nav_item', $output ); } diff --git a/wp-content/plugins/buddypress/bp-blogs/bp-blogs-widgets.php b/wp-content/plugins/buddypress/bp-blogs/bp-blogs-widgets.php index bc77206d1..b0edfea71 100644 --- a/wp-content/plugins/buddypress/bp-blogs/bp-blogs-widgets.php +++ b/wp-content/plugins/buddypress/bp-blogs/bp-blogs-widgets.php @@ -10,10 +10,6 @@ // Exit if accessed directly. defined( 'ABSPATH' ) || exit; -if ( ! buddypress()->do_autoload ) { - require dirname( __FILE__ ) . '/classes/class-bp-blogs-recent-posts-widget.php'; -} - /** * Register the widgets for the Blogs component. */ @@ -21,7 +17,7 @@ function bp_blogs_register_widgets() { global $wpdb; if ( bp_is_active( 'activity' ) && bp_is_root_blog( $wpdb->blogid ) ) { - add_action( 'widgets_init', create_function( '', 'return register_widget("BP_Blogs_Recent_Posts_Widget");' ) ); + add_action( 'widgets_init', function() { register_widget( 'BP_Blogs_Recent_Posts_Widget' ); } ); } } add_action( 'bp_register_widgets', 'bp_blogs_register_widgets' ); diff --git a/wp-content/plugins/buddypress/bp-blogs/classes/class-bp-blogs-blog.php b/wp-content/plugins/buddypress/bp-blogs/classes/class-bp-blogs-blog.php index f2b07cc12..1e5e03948 100644 --- a/wp-content/plugins/buddypress/bp-blogs/classes/class-bp-blogs-blog.php +++ b/wp-content/plugins/buddypress/bp-blogs/classes/class-bp-blogs-blog.php @@ -75,7 +75,24 @@ class BP_Blogs_Blog { public function save() { global $wpdb; + /** + * Filters the blog user ID before save. + * + * @since 1.0.0 + * + * @param int $value User ID. + * @param int $value Site ID. + */ $this->user_id = apply_filters( 'bp_blogs_blog_user_id_before_save', $this->user_id, $this->id ); + + /** + * Filters the blog blog ID before save. + * + * @since 1.0.0 + * + * @param int $value Blog ID. + * @param int $value Site ID. + */ $this->blog_id = apply_filters( 'bp_blogs_blog_id_before_save', $this->blog_id, $this->id ); /** diff --git a/wp-content/plugins/buddypress/bp-blogs/classes/class-bp-blogs-component.php b/wp-content/plugins/buddypress/bp-blogs/classes/class-bp-blogs-component.php index 225b05092..c1364f4fe 100644 --- a/wp-content/plugins/buddypress/bp-blogs/classes/class-bp-blogs-component.php +++ b/wp-content/plugins/buddypress/bp-blogs/classes/class-bp-blogs-component.php @@ -132,10 +132,6 @@ class BP_Blogs_Component extends BP_Component { 'functions', ); - if ( ! buddypress()->do_autoload ) { - $includes[] = 'classes'; - } - if ( bp_is_active( 'activity' ) ) { $includes[] = 'activity'; } diff --git a/wp-content/plugins/buddypress/bp-core/admin/bp-core-admin-functions.php b/wp-content/plugins/buddypress/bp-core/admin/bp-core-admin-functions.php index 4b1061e7c..3437c6eb1 100644 --- a/wp-content/plugins/buddypress/bp-core/admin/bp-core-admin-functions.php +++ b/wp-content/plugins/buddypress/bp-core/admin/bp-core-admin-functions.php @@ -1114,191 +1114,6 @@ function bp_core_admin_user_spammed_js() { <?php } -/** Upgrade protection *******************************************************/ - -/** - * Determines whether the current installation is running PHP 5.3 or greater. - * - * BuddyPress 2.8 introduces a minimum PHP requirement of PHP 5.3. - * - * @since 2.7.0 - * - * @return bool - */ -function bp_core_admin_is_running_php53_or_greater() { - return version_compare( PHP_VERSION, '5.3', '>=' ); -} - -/** - * Replaces WP's default update notice on plugins.php with an error message, when site is not running PHP 5.3 or greater. - * - * @since 2.7.0 - */ -function bp_core_admin_maybe_disable_update_row_for_php53_requirement() { - if ( bp_core_admin_is_running_php53_or_greater() ) { - return; - } - - $loader = basename( constant( 'BP_PLUGIN_DIR' ) ) . '/bp-loader.php'; - - remove_action( "after_plugin_row_{$loader}", 'wp_plugin_update_row', 10, 2 ); - add_action( "after_plugin_row_{$loader}", 'bp_core_admin_php52_plugin_row', 10, 2 ); -} -add_action( 'load-plugins.php', 'bp_core_admin_maybe_disable_update_row_for_php53_requirement', 100 ); - -/** - * On the "Dashboard > Updates" page, remove BuddyPress from plugins list if PHP < 5.3. - * - * @since 2.7.0 - */ -function bp_core_admin_maybe_remove_from_update_core() { - if ( bp_core_admin_is_running_php53_or_greater() ) { - return; - } - - // Add filter to remove BP from the update plugins list. - add_filter( 'site_transient_update_plugins', 'bp_core_admin_remove_buddypress_from_update_transient' ); -} -add_action( 'load-update-core.php', 'bp_core_admin_maybe_remove_from_update_core' ); - -/** - * Filter callback to remove BuddyPress from the update plugins list. - * - * Attached to the 'site_transient_update_plugins' filter. - * - * @since 2.7.0 - * - * @param object $retval Object of plugin update data. - * @return object - */ -function bp_core_admin_remove_buddypress_from_update_transient( $retval ) { - $loader = basename( constant( 'BP_PLUGIN_DIR' ) ) . '/bp-loader.php'; - - // Remove BP from update plugins list. - if ( isset( $retval->response[ $loader ] ) ) { - unset( $retval->response[ $loader ] ); - } - - return $retval; -} - -/** - * Outputs a replacement for WP's default update notice, when site is not running PHP 5.3 or greater. - * - * When we see that a site is not running PHP 5.3 and is trying to update to - * BP 2.8+, we replace WP's default notice with our own, which both provides a - * link to our documentation of the requirement, and removes the link that - * allows a single plugin to be updated. - * - * @since 2.7.0 - * - * @param string $file Plugin filename. buddypress/bp-loader.php. - * @param array $plugin_data Data about the BuddyPress plugin, as returned by the - * plugins API. - */ -function bp_core_admin_php52_plugin_row( $file, $plugin_data ) { - if ( is_multisite() && ! is_network_admin() ) { - return; - } - - $current = get_site_transient( 'update_plugins' ); - if ( ! isset( $current->response[ $file ] ) ) { - return false; - } - - $response = $current->response[ $file ]; - - // No need to do this if update is for < BP 2.8. - if ( version_compare( $response->new_version, '2.8', '<' ) ) { - return false; - } - - $wp_list_table = _get_list_table( 'WP_Plugins_List_Table' ); - - if ( is_network_admin() ) { - $active_class = is_plugin_active_for_network( $file ) ? ' active' : ''; - } else { - $active_class = is_plugin_active( $file ) ? ' active' : ''; - } - - // WP 4.6 uses different markup for the plugin row notice. - if ( function_exists( 'wp_get_ext_types' ) ) { - $p = '<p>%s</p>'; - - // WP < 4.6. - } else { - $p = '%s'; - - // Ugh. - $active_class .= ' not-shiny'; - } - - echo '<tr class="plugin-update-tr' . $active_class . '" id="' . esc_attr( $response->slug . '-update' ) . '" data-slug="' . esc_attr( $response->slug ) . '" data-plugin="' . esc_attr( $file ) . '"><td colspan="' . esc_attr( $wp_list_table->get_column_count() ) . '" class="plugin-update colspanchange"><div class="update-message inline notice notice-error notice-alt">'; - - printf( $p, - esc_html__( 'A BuddyPress update is available, but your system is not compatible.', 'buddypress' ) . ' ' . - sprintf( __( 'See <a href="%s">the Codex guide</a> for more information.', 'buddypress' ), 'https://codex.buddypress.org/getting-started/buddypress-2-8-will-require-php-5-3/' ) - ); - - echo '</div></td></tr>'; - - /* - * JavaScript to disable the bulk upgrade checkbox. - * See WP_Plugins_List_Table::single_row(). - */ - $checkbox_id = 'checkbox_' . md5( $plugin_data['Name'] ); - echo "<script type='text/javascript'>document.getElementById('$checkbox_id').disabled = true;</script>"; -} - -/** - * Add an admin notice to installations that are not running PHP 5.3+. - * - * @since 2.7.0 - */ -function bp_core_admin_php53_admin_notice() { - // If not on the Plugins page, stop now. - if ( 'plugins' !== get_current_screen()->parent_base ) { - return; - } - - if ( ! current_user_can( 'update_core' ) ) { - return; - } - - if ( bp_core_admin_is_running_php53_or_greater() ) { - return; - } - - $notice_id = 'bp28-php53'; - if ( bp_get_option( "bp-dismissed-notice-$notice_id" ) ) { - return; - } - - $bp = buddypress(); - $min = bp_core_get_minified_asset_suffix(); - - wp_enqueue_script( - 'bp-dismissible-admin-notices', - "{$bp->plugin_url}bp-core/admin/js/dismissible-admin-notices{$min}.js", - array( 'jquery' ), - bp_get_version(), - true - ); - - $php_version = PHP_VERSION; - - ?> - - <div id="message" class="error notice is-dismissible bp-is-dismissible" data-noticeid="<?php echo esc_attr( $notice_id ); ?>"> - <p><strong><?php esc_html_e( 'Your site is not ready for BuddyPress 2.8.', 'buddypress' ); ?></strong></p> - <p><?php printf( esc_html__( 'Your site is currently running PHP version %s, while BuddyPress 2.8 will require version 5.3+.', 'buddypress' ), $php_version ); ?> <?php printf( __( 'See <a href="%s">the Codex guide</a> for more information.', 'buddypress' ), 'https://codex.buddypress.org/getting-started/buddypress-2-8-will-require-php-5-3/' ); ?></p> - <?php wp_nonce_field( "bp-dismissible-notice-$notice_id", "bp-dismissible-nonce-$notice_id" ); ?> - </div> - <?php -} -add_action( 'admin_notices', 'bp_core_admin_php53_admin_notice' ); -add_action( 'network_admin_notices', 'bp_core_admin_php53_admin_notice' ); - /** * Catch and process an admin notice dismissal. * @@ -1324,3 +1139,17 @@ function bp_core_admin_notice_dismiss_callback() { wp_send_json_success(); } add_action( 'wp_ajax_bp_dismiss_notice', 'bp_core_admin_notice_dismiss_callback' ); + +/** + * Add a "buddypress" class to body element of wp-admin. + * + * @since 2.8.0 + * + * @param string $classes CSS classes for the body tag in the admin, a comma separated string. + * + * @return string + */ +function bp_core_admin_body_classes( $classes ) { + return $classes . ' buddypress'; +} +add_filter( 'admin_body_class', 'bp_core_admin_body_classes' ); diff --git a/wp-content/plugins/buddypress/bp-core/admin/bp-core-admin-tools.php b/wp-content/plugins/buddypress/bp-core/admin/bp-core-admin-tools.php index 6926c28b4..b929f690f 100644 --- a/wp-content/plugins/buddypress/bp-core/admin/bp-core-admin-tools.php +++ b/wp-content/plugins/buddypress/bp-core/admin/bp-core-admin-tools.php @@ -357,7 +357,7 @@ function bp_admin_tools_feedback( $message, $class = false ) { $message = '<div id="message" class="' . esc_attr( $class ) . '">' . $message . '</div>'; $message = str_replace( "'", "\'", $message ); - $lambda = create_function( '', "echo '$message';" ); + $lambda = function() use ( $message ) { echo $message; }; add_action( bp_core_do_network_admin() ? 'network_admin_notices' : 'admin_notices', $lambda ); diff --git a/wp-content/plugins/buddypress/bp-core/admin/css/common-rtl.css b/wp-content/plugins/buddypress/bp-core/admin/css/common-rtl.css index 9f26083a7..69ea0afa6 100644 --- a/wp-content/plugins/buddypress/bp-core/admin/css/common-rtl.css +++ b/wp-content/plugins/buddypress/bp-core/admin/css/common-rtl.css @@ -47,6 +47,12 @@ TABLE OF CONTENTS: left: 0; } +.buddypress code { + background-color: #e0e0e0; + color: #636363; + font-size: 1em; +} + @media only screen and (max-width: 500px) { .about-wrap .bp-badge { position: relative; @@ -63,22 +69,20 @@ TABLE OF CONTENTS: /* * 1.2.1 Headline Feature */ -.index_page_bp-about .bp-headline-feature, -.dashboard_page_bp-about .bp-headline-feature { +.buddypress .bp-headline-feature { margin-bottom: 3em; margin-top: 3em; padding: 2em 3em; } -.index_page_bp-about .bp-headline, -.dashboard_page_bp-about .bp-headline { +.buddypress .bp-headline { margin: 0 auto; - width: 35em; + width: 45em; } -.index_page_bp-about .bp-headline span.dashicons, -.dashboard_page_bp-about .bp-headline span.dashicons { +.buddypress .bp-headline span.dashicons { background-color: #f1f1f1; + color: #d84800; clear: right; font-size: 100px; float: right; @@ -89,41 +93,31 @@ TABLE OF CONTENTS: width: 100px; } -.index_page_bp-about .bp-headline-feature h3, -.index_page_bp-about .bp-headline-feature .headline-title, -.dashboard_page_bp-about .bp-headline-feature h3, -.dashboard_page_bp-about .bp-headline-feature .headline-title { +.buddypress .bp-headline-feature .headline-title { font-size: 2.2em; font-weight: 300; line-height: 1; - margin: 0 125px 0 0; + margin: 0; + text-align: center; } -.index_page_bp-about .bp-headline-feature p, -.dashboard_page_bp-about .bp-headline-feature p { +.buddypress .bp-headline-feature p { font-size: 1.15em; - margin: 1.15em 125px 0.6em auto; -} - -.index_page_bp-about .bp-headline-feature .introduction, -.dashboard_page_bp-about .bp-headline-feature .introduction { - font-weight: 600; + margin: 1.15em 0 0.6em auto; } - /* * 1.2.2 Features Section */ -.index_page_bp-about .bp-features-section, -.dashboard_page_bp-about .bp-features-section { +.buddypress .bp-features-section { + border-bottom: 1px solid #ccc; clear: both; margin-top: 3em; overflow: hidden; padding-bottom: 0; } -.index_page_bp-about span.dashicons, -.dashboard_page_bp-about span.dashicons { +.buddypress .bp-features-section span.dashicons { background-color: #fff; border-radius: 50%; clear: right; @@ -137,42 +131,59 @@ TABLE OF CONTENTS: width: 80px; } -.index_page_bp-about .bp-features-section h3, -.dashboard_page_bp-about .bp-features-section h3 { +.buddypress .bp-features-section .headline-title { font-size: 2em; font-weight: 300; line-height: 1.5; - margin: 0 auto 3em; + margin: 0 auto 2em; text-align: center; } -.index_page_bp-about .bp-feature, -.dashboard_page_bp-about .bp-feature { +.buddypress .bp-features-section .bp-feature-with-images { + border-bottom: 1px solid #ccc; + margin-bottom: 5em; + padding-bottom: 2em; +} + +.buddypress .bp-features-section .bp-feature, +.buddypress .bp-features-section .bp-feature-imaged { float: right; margin-bottom: 3em; margin-left: 4.799999999%; width: 47.6%; } +.buddypress .bp-features-section .bp-feature.opposite, +.buddypress .bp-features-section .bp-feature-imaged.anon { + margin-left: 0; +} -.index_page_bp-about .bp-feature code, -.dashboard_page_bp-about .bp-feature code{ +.buddypress .bp-features-section .bp-feature code { font-size: 0.95em; line-height: 1.5; } -.index_page_bp-about .bp-feature:nth-of-type(2n), -.dashboard_page_bp-about .bp-feature:nth-of-type(2n) { - margin-left: 0; +.buddypress .bp-feature::after { + content: ''; } -.index_page_bp-about .bp-feature::after, -.dashboard_page_bp-about .bp-feature::after { - content: ''; +.buddypress .bp-feature-imaged .feature-title { + color: #23282d; + font-size: 1.25em; + margin-bottom: 0.6em; + margin-top: 0; } -.index_page_bp-about .bp-feature h4, -.dashboard_page_bp-about .bp-feature h4 { +.buddypress .bp-feature-imaged p { + clear: right; + font-size: 1.1em; +} + +.buddypress .bp-feature-imaged img { + clear: right; +} + +.buddypress .bp-feature .feature-title { font-size: 1.25em; line-height: 1.5; margin-bottom: 0; @@ -181,65 +192,62 @@ TABLE OF CONTENTS: text-align: right; } -.index_page_bp-about .bp-feature p, -.dashboard_page_bp-about .bp-feature p { +.buddypress .bp-feature p { margin-right: 110px; } /* * 1.2.3 Changelog Section */ -.index_page_bp-about .bp-changelog-section, -.dashboard_page_bp-about .bp-changelog-section { +.buddypress .bp-changelog-section { clear: both; - margin-bottom: 8em; + margin-bottom: 3em; margin-top: 3em; overflow: hidden; padding-bottom: 0; } -.index_page_bp-about .bp-changelog-section::after, -.dashboard_page_bp-about .bp-changelog-section::after { +.buddypress .bp-changelog-section::after { content: ''; } -.index_page_bp-about .bp-changelog-section .changelog-title, -.dashboard_page_bp-about .bp-changelog-section .changelog-title { +.buddypress .bp-changelog-section .changelog-title { color: #23282d; - font-size: 1.8em; - font-weight: 300; + font-size: 1.25em; line-height: 1.5; - margin: 0 auto 0.5em; - text-align: center; + margin: 0 auto 1.5em; } -.index_page_bp-about .bp-changelog-section .two-col > div, -.dashboard_page_bp-about .bp-changelog-section .two-col > div { +.buddypress .bp-changelog-section .two-col div { float: right; margin-left: 4.799999999%; position: relative; width: 47.6%; } -.index_page_bp-about .bp-changelog-section .two-col > div.last-feature, -.dashboard_page_bp-about .bp-changelog-section .two-col > div.last-feature { +.buddypress .bp-changelog-section .three-col .col { + float: right; + margin-left: 5%; + position: relative; + width: 29.95%; +} + +.buddypress .two-col .col:nth-of-type(2n), +.buddypress .three-col .col:nth-of-type(3n) { margin-left: 0; } -.index_page_bp-about .bp-changelog, -.dashboard_page_bp-about .bp-changelog { +.buddypress .bp-changelog { margin-bottom: 3em; } -.index_page_bp-about .bp-changelog h4, -.dashboard_page_bp-about .bp-changelog h4 { +.buddypress .bp-changelog .title { font-size: 1em; margin-bottom: 0; margin-top: 0; } -.index_page_bp-about .bp-changelog p, -.dashboard_page_bp-about .bp-changelog p { +.buddypress .bp-changelog p { margin-bottom: 3em; } @@ -250,45 +258,51 @@ TABLE OF CONTENTS: .bp-assets { clear: both; margin-bottom: 2em; + margin-top: 2em; } @media screen and ( max-width: 782px ) { - .index_page_bp-about .bp-headline-feature, - .dashboard_page_bp-about .bp-headline-feature { + .bp-headline-feature, + .bp-features-section, + .bp-changelog-section, + .bp-assets { + margin-right: 20px; + margin-left: 20px; + } + .buddypress .bp-headline-feature { padding: 0; } - .index_page_bp-about .bp-headline, - .dashboard_page_bp-about .bp-headline { + .buddypress .bp-headline { margin: 0; width: 97%; } - .index_page_bp-about .bp-features-section, - .dashboard_page_bp-about .bp-features-section { + .buddypress .bp-features-section { clear: both; margin-bottom: 0; margin-top: 2em; + padding-bottom: 2em; + } + .buddypress .bp-features-section .bp-feature-with-images { + margin-bottom: 2em; + } + .buddypress .bp-features-section .headline-title { + margin-bottom: 1em; } - .index_page_bp-about .bp-features-section h3, - .dashboard_page_bp-about .bp-features-section h3, - .index_page_bp-about .bp-changelog-section .changelog-title, - .dashboard_page_bp-about .bp-changelog-section .changelog-title { - font-size: 1.8em; - font-weight: 300; + .buddypress .bp-changelog-section .changelog-title { + font-size: 1.25em; line-height: 1.5; margin-bottom: 0.5em; margin-top: 0.5em; } - .index_page_bp-about .bp-features-section h4, - .dashboard_page_bp-about .bp-features-section h4, - .index_page_bp-about .bp-changelog-section h4, - .dashboard_page_bp-about .bp-changelog-section h4 { + .buddypress .bp-features-section .feature-title, + .buddypress .bp-changelog-section .title { font-size: 1.25em; line-height: 1.25; margin-top: 0.6em; text-align: right; } - .index_page_bp-about .bp-feature, - .dashboard_page_bp-about .bp-feature { + .buddypress .bp-features-section .bp-feature, + .buddypress .bp-features-section .bp-feature-imaged { clear: both; float: right; margin-bottom: 1em; @@ -297,53 +311,42 @@ TABLE OF CONTENTS: padding-left: 1em; width: 100%; } - .index_page_bp-about .bp-feature span, - .dashboard_page_bp-about .bp-feature span { - margin-top: 0.33em; + .buddypress .bp-features-section .bp-feature-imaged p { + font-size: 1em; } - .index_page_bp-about .bp-feature h4, - .dashboard_page_bp-about .bp-feature h4, - .index_page_bp-about .bp-feature p, - .dashboard_page_bp-about .bp-feature p { - width: 100%; + .buddypress .bp-features-section .bp-feature span { + margin-top: 0.33em; } - .index_page_bp-about .bp-feature.opposite h4, - .dashboard_page_bp-about .bp-feature.opposite h4, - .index_page_bp-about .bp-feature.opposite p, - .dashboard_page_bp-about .bp-feature.opposite p { + .buddypress .bp-feature.opposite .feature-title, + .buddypress .bp-feature.opposite p { float: none; } - .index_page_bp-about .bp-changelog-section, - .dashboard_page_bp-about .bp-changelog-section { + .buddypress .bp-changelog-section { clear: both; margin-bottom: 2em; + margin-top: 2em; } - .index_page_bp-about .bp-changelog-section .changelog-title, - .dashboard_page_bp-about .bp-changelog-section .changelog-title { - margin-bottom: 1em; + .buddypress .bp-changelog-section .changelog-title { + margin-bottom: 1.5em; } - .index_page_bp-about .bp-changelog h4, - .dashboard_page_bp-about .bp-changelog h4 { + .buddypress .bp-changelog .title { font-size: 1em; } - .index_page_bp-about .bp-changelog p, - .dashboard_page_bp-about .bp-changelog p { - margin-bottom: 2em; + .buddypress .bp-changelog p { + margin-bottom: 1em; } - .index_page_bp-about .bp-changelog-section .two-col > div, - .dashboard_page_bp-about .bp-changelog-section .two-col > div { + .buddypress .bp-changelog-section .two-col > div, + .buddypress .bp-changelog-section .three-col .col { margin-top: 0; padding-bottom: 0.5em; width: 100%; } } @media screen and ( max-width: 360px ) { - .index_page_bp-about .bp-headline, - .dashboard_page_bp-about .bp-headline { + .buddypress .bp-headline { text-align: center; } - .index_page_bp-about .bp-headline span.dashicons, - .dashboard_page_bp-about .bp-headline span.dashicons { + .buddypress .bp-headline span.dashicons { clear: none; font-size: 80px; float: none; @@ -352,39 +355,28 @@ TABLE OF CONTENTS: margin: 0 auto; width: 80px; } - .index_page_bp-about .bp-headline-feature h3, - .index_page_bp-about .bp-headline-feature .headline-title, - .dashboard_page_bp-about .bp-headline-feature h3, - .dashboard_page_bp-about .bp-headline-feature .headline-title { - margin: 1em 0 0 0; + .buddypress .bp-headline-feature .headline-title, + .buddypress .bp-features-section .headline-title { + font-size: 1.5em; + line-height: 1.5; text-align: right; } - .index_page_bp-about .bp-headline-feature p, - .dashboard_page_bp-about .bp-headline-feature p { + .buddypress .bp-headline-feature .headline-title { + margin: 1em 0 0 0; + } + .buddypress .bp-headline-feature p { margin: 1.15em 0 0.6em auto; text-align: right; - } - .index_page_bp-about .bp-headline-feature .headline-title, - .dashboard_page_bp-about .bp-headline-feature .headline-title { - font-size: 1.5em; - line-height: 1.5; - } - .index_page_bp-about .bp-headline-feature p, - .dashboard_page_bp-about .bp-headline-feature p { width: auto; } - .index_page_bp-about .bp-feature, - .dashboard_page_bp-about .bp-feature { + .buddypress .bp-features-section .bp-feature { text-align: center; } - .index_page_bp-about span.dashicons, - .dashboard_page_bp-about span.dashicons { + .buddypress .bp-features-section span.dashicons { float: none; } - .index_page_bp-about .bp-features-section h4, - .dashboard_page_bp-about .bp-features-section h4, - .index_page_bp-about .bp-features-section p, - .dashboard_page_bp-about .bp-features-section p { + .buddypress .bp-features-section .feature-title, + .buddypress .bp-features-section p { margin-right: 0; text-align: right; } @@ -553,6 +545,13 @@ body.users_page_bp-signups td.count_sent { text-align: center; } +.bp-signups-list table { + margin: 1em 0; +} + +.bp-signups-list .column-fields { + font-weight: bold; +} /*------------------------------------------------------------------------------ * 4.0 Emails - Edit Page diff --git a/wp-content/plugins/buddypress/bp-core/admin/css/common-rtl.min.css b/wp-content/plugins/buddypress/bp-core/admin/css/common-rtl.min.css index a1d0dc3c9..71cddd924 100644 --- a/wp-content/plugins/buddypress/bp-core/admin/css/common-rtl.min.css +++ b/wp-content/plugins/buddypress/bp-core/admin/css/common-rtl.min.css @@ -1 +1 @@ -.bp-badge{color:#d84800;display:inline-block;font:400 150px/1 dashicons!important}.bp-badge:before{content:"\f448"}.dashboard_page_bp-about .bp-changelog-section::after,.dashboard_page_bp-about .bp-feature::after,.index_page_bp-about .bp-changelog-section::after,.index_page_bp-about .bp-feature::after{content:''}.about-wrap .bp-badge{position:absolute;top:0;left:0}@media only screen and (max-width:500px){.about-wrap .bp-badge{position:relative;margin:10px auto;top:auto;left:auto}}.dashboard_page_bp-about .bp-headline-feature,.index_page_bp-about .bp-headline-feature{margin-bottom:3em;margin-top:3em;padding:2em 3em}.dashboard_page_bp-about .bp-headline,.index_page_bp-about .bp-headline{margin:0 auto;width:35em}.dashboard_page_bp-about .bp-headline span.dashicons,.index_page_bp-about .bp-headline span.dashicons{background-color:#f1f1f1;clear:right;font-size:100px;float:right;height:100px;line-height:100px;margin:0 0 15px 15px;text-align:center;width:100px}.dashboard_page_bp-about .bp-headline-feature .headline-title,.dashboard_page_bp-about .bp-headline-feature h3,.index_page_bp-about .bp-headline-feature .headline-title,.index_page_bp-about .bp-headline-feature h3{font-size:2.2em;font-weight:300;line-height:1;margin:0 125px 0 0}.dashboard_page_bp-about .bp-headline-feature p,.index_page_bp-about .bp-headline-feature p{font-size:1.15em;margin:1.15em 125px .6em auto}.dashboard_page_bp-about .bp-headline-feature .introduction,.index_page_bp-about .bp-headline-feature .introduction{font-weight:600}.dashboard_page_bp-about .bp-features-section,.index_page_bp-about .bp-features-section{clear:both;margin-top:3em;overflow:hidden;padding-bottom:0}.dashboard_page_bp-about span.dashicons,.index_page_bp-about span.dashicons{background-color:#fff;border-radius:50%;clear:right;color:#d84800;font-size:50px;float:right;height:80px;line-height:80px;margin:0 0 15px 15px;text-align:center;width:80px}.dashboard_page_bp-about .bp-features-section h3,.index_page_bp-about .bp-features-section h3{font-size:2em;font-weight:300;line-height:1.5;margin:0 auto 3em;text-align:center}.dashboard_page_bp-about .bp-feature,.index_page_bp-about .bp-feature{float:right;margin-bottom:3em;margin-left:4.799999999%;width:47.6%}.dashboard_page_bp-about .bp-feature code,.index_page_bp-about .bp-feature code{font-size:.95em;line-height:1.5}.dashboard_page_bp-about .bp-feature:nth-of-type(2n),.index_page_bp-about .bp-feature:nth-of-type(2n){margin-left:0}.dashboard_page_bp-about .bp-feature h4,.index_page_bp-about .bp-feature h4{font-size:1.25em;line-height:1.5;margin-bottom:0;margin-right:110px;margin-top:0;text-align:right}.dashboard_page_bp-about .bp-feature p,.index_page_bp-about .bp-feature p{margin-right:110px}.dashboard_page_bp-about .bp-changelog-section,.index_page_bp-about .bp-changelog-section{clear:both;margin-bottom:8em;margin-top:3em;overflow:hidden;padding-bottom:0}.dashboard_page_bp-about .bp-changelog-section .changelog-title,.index_page_bp-about .bp-changelog-section .changelog-title{color:#23282d;font-size:1.8em;font-weight:300;line-height:1.5;margin:0 auto .5em;text-align:center}.dashboard_page_bp-about .bp-changelog-section .two-col>div,.index_page_bp-about .bp-changelog-section .two-col>div{float:right;margin-left:4.799999999%;position:relative;width:47.6%}.dashboard_page_bp-about .bp-changelog-section .two-col>div.last-feature,.index_page_bp-about .bp-changelog-section .two-col>div.last-feature{margin-left:0}.dashboard_page_bp-about .bp-changelog,.index_page_bp-about .bp-changelog{margin-bottom:3em}.dashboard_page_bp-about .bp-changelog h4,.index_page_bp-about .bp-changelog h4{font-size:1em;margin-bottom:0;margin-top:0}.dashboard_page_bp-about .bp-changelog p,.index_page_bp-about .bp-changelog p{margin-bottom:3em}.bp-changelog-url{text-align:center}.bp-assets{clear:both;margin-bottom:2em}@media screen and (max-width:782px){.dashboard_page_bp-about .bp-headline-feature,.index_page_bp-about .bp-headline-feature{padding:0}.dashboard_page_bp-about .bp-headline,.index_page_bp-about .bp-headline{margin:0;width:97%}.dashboard_page_bp-about .bp-features-section,.index_page_bp-about .bp-features-section{clear:both;margin-bottom:0;margin-top:2em}.dashboard_page_bp-about .bp-changelog-section .changelog-title,.dashboard_page_bp-about .bp-features-section h3,.index_page_bp-about .bp-changelog-section .changelog-title,.index_page_bp-about .bp-features-section h3{font-size:1.8em;font-weight:300;line-height:1.5;margin-bottom:.5em;margin-top:.5em}.dashboard_page_bp-about .bp-changelog-section h4,.dashboard_page_bp-about .bp-features-section h4,.index_page_bp-about .bp-changelog-section h4,.index_page_bp-about .bp-features-section h4{font-size:1.25em;line-height:1.25;margin-top:.6em;text-align:right}.dashboard_page_bp-about .bp-feature,.index_page_bp-about .bp-feature{clear:both;float:right;margin-bottom:1em;margin-top:1em;margin-left:0;padding-left:1em;width:100%}.dashboard_page_bp-about .bp-feature span,.index_page_bp-about .bp-feature span{margin-top:.33em}.dashboard_page_bp-about .bp-feature h4,.dashboard_page_bp-about .bp-feature p,.index_page_bp-about .bp-feature h4,.index_page_bp-about .bp-feature p{width:100%}.dashboard_page_bp-about .bp-feature.opposite h4,.dashboard_page_bp-about .bp-feature.opposite p,.index_page_bp-about .bp-feature.opposite h4,.index_page_bp-about .bp-feature.opposite p{float:none}.dashboard_page_bp-about .bp-changelog-section,.index_page_bp-about .bp-changelog-section{clear:both;margin-bottom:2em}.dashboard_page_bp-about .bp-changelog-section .changelog-title,.index_page_bp-about .bp-changelog-section .changelog-title{margin-bottom:1em}.dashboard_page_bp-about .bp-changelog h4,.index_page_bp-about .bp-changelog h4{font-size:1em}.dashboard_page_bp-about .bp-changelog p,.index_page_bp-about .bp-changelog p{margin-bottom:2em}.dashboard_page_bp-about .bp-changelog-section .two-col>div,.index_page_bp-about .bp-changelog-section .two-col>div{margin-top:0;padding-bottom:.5em;width:100%}}@media screen and (max-width:360px){.dashboard_page_bp-about .bp-headline,.index_page_bp-about .bp-headline{text-align:center}.dashboard_page_bp-about .bp-headline span.dashicons,.index_page_bp-about .bp-headline span.dashicons{clear:none;font-size:80px;float:none;height:80px;line-height:80px;margin:0 auto;width:80px}.dashboard_page_bp-about .bp-headline-feature .headline-title,.dashboard_page_bp-about .bp-headline-feature h3,.index_page_bp-about .bp-headline-feature .headline-title,.index_page_bp-about .bp-headline-feature h3{margin:1em 0 0;text-align:right}.dashboard_page_bp-about .bp-headline-feature p,.index_page_bp-about .bp-headline-feature p{margin:1.15em 0 .6em auto;text-align:right;width:auto}.dashboard_page_bp-about .bp-headline-feature .headline-title,.index_page_bp-about .bp-headline-feature .headline-title{font-size:1.5em;line-height:1.5}.dashboard_page_bp-about .bp-feature,.index_page_bp-about .bp-feature{text-align:center}.dashboard_page_bp-about span.dashicons,.index_page_bp-about span.dashicons{float:none}.dashboard_page_bp-about .bp-features-section h4,.dashboard_page_bp-about .bp-features-section p,.index_page_bp-about .bp-features-section h4,.index_page_bp-about .bp-features-section p{margin-right:0;text-align:right}}#adminmenu #toplevel_page_bp-activity .wp-menu-image:before,#adminmenu #toplevel_page_bp-activity_network .wp-menu-image:before,#adminmenu #toplevel_page_bp-activity_user .wp-menu-image:before{content:"\f452"}#adminmenu #toplevel_page_bp-groups .wp-menu-image:before,#adminmenu #toplevel_page_bp-groups_network .wp-menu-image:before,#adminmenu #toplevel_page_bp-groups_user .wp-menu-image:before{content:"\f456"}#adminmenu #toplevel_page_bp-notifications .wp-menu-image:before,#adminmenu #toplevel_page_bp-notifications_network .wp-menu-image:before,#adminmenu #toplevel_page_bp-notifications_user .wp-menu-image:before{content:"\f439"}#adminmenu #toplevel_page_bp-messages .wp-menu-image:before,#adminmenu #toplevel_page_bp-messages_network .wp-menu-image:before,#adminmenu #toplevel_page_bp-messages_user .wp-menu-image:before{content:"\f457"}#adminmenu #toplevel_page_bp-friends .wp-menu-image:before,#adminmenu #toplevel_page_bp-friends_network .wp-menu-image:before,#adminmenu #toplevel_page_bp-friends_user .wp-menu-image:before{content:"\f454"}#adminmenu #toplevel_page_bp-settings .wp-menu-image:before,#adminmenu #toplevel_page_bp-settings_network .wp-menu-image:before,#adminmenu #toplevel_page_bp-settings_user .wp-menu-image:before{content:"\f108"}#adminmenu li.toplevel_page_bp-components .wp-menu-image,#adminmenu li.toplevel_page_bp-general-settings .wp-menu-image{content:"\f448"}.settings_page_bp-components td.plugin-title span{float:right;width:18px;height:18px;margin-left:5px}.settings_page_bp-components td.plugin-title span:before{font-family:dashicons;font-size:18px}.settings_page_bp-components tr.activity td.plugin-title span:before{content:"\f452"}.settings_page_bp-components tr.notifications td.plugin-title span:before{content:"\f339"}.settings_page_bp-components tr.xprofile td.plugin-title span:before{content:"\f336"}.settings_page_bp-components tr.settings td.plugin-title span:before{content:"\f108"}.settings_page_bp-components tr.groups td.plugin-title span:before{content:"\f456"}.settings_page_bp-components tr.messages td.plugin-title span:before{content:"\f457"}.settings_page_bp-components tr.forums td.plugin-title span:before{content:"\f452"}.settings_page_bp-components tr.blogs td.plugin-title span:before{content:"\f120"}.settings_page_bp-components tr.friends td.plugin-title span:before{content:"\f454"}.settings_page_bp-components tr.core td.plugin-title span:before{content:"\f448"}.settings_page_bp-components tr.members td.plugin-title span:before{content:"\f307"}#bp-admin-component-form .wp-list-table.plugins .plugin-title{width:25%}@media screen and (max-width:782px){.settings_page_bp-components td.plugin-title span{margin-top:5px}#bp-admin-component-form .wp-list-table.plugins .plugin-title{display:block;width:auto}#bp-admin-component-form .subsubsub{margin-bottom:0;padding-bottom:35px}}#adminmenu .toplevel_page_network-tools div.wp-menu-image:before{content:""}body.site-users-php th#role,body.users-php th#role,body.users_page_bp-signups th#count_sent{width:10%}body.site-users-php th#email,body.site-users-php th#name,body.users-php th#email,body.users-php th#name,body.users-php th#registered,body.users_page_bp-signups th#date_sent,body.users_page_bp-signups th#email,body.users_page_bp-signups th#name,body.users_page_bp-signups th#registered{width:15%}body.post-type-bp-email th#situation,body.users-php th#blogs,body.users_page_bp-signups th#blogs{width:20%}body.users_page_bp-signups td.count_sent,body.users_page_bp-signups th.column-count_sent{text-align:center}body.post-type-bp-email #excerpt{height:auto}body.post-type-bp-email td.column-situation ul{margin:0}body.post-type-bp-email .categorydiv label{display:block;float:right;padding-right:25px;text-indent:-25px}.tools_page_bp-tools .wrap{max-width:950px}.tools_page_bp-tools p{line-height:2}.tools_page_bp-tools fieldset{margin:2em 0 0}.tools_page_bp-tools legend{color:#23282d;font-size:1.3em;font-weight:600px;margin:1em 0}.tools_page_bp-tools label{clear:right;display:block;line-height:1.5em;margin:0 0 1em;vertical-align:middle}@media screen and (max-width:782px){.tools_page_bp-tools p{line-height:1.5}.tools_page_bp-tools label{margin-bottom:1em;padding-left:25px;text-indent:-33px}.tools_page_bp-tools .checkbox{padding:0 30px 0 0}}#buddypress-update.not-shiny .update-message{border-right:0;padding-right:36px}#buddypress-update.not-shiny .update-message:before{content:"\f534"} \ No newline at end of file +.bp-badge{color:#d84800;display:inline-block;font:400 150px/1 dashicons!important}.bp-badge:before{content:"\f448"}.buddypress .bp-changelog-section::after,.buddypress .bp-feature::after{content:''}.about-wrap .bp-badge{position:absolute;top:0;left:0}.buddypress code{background-color:#e0e0e0;color:#636363;font-size:1em}@media only screen and (max-width:500px){.about-wrap .bp-badge{position:relative;margin:10px auto;top:auto;left:auto}}.buddypress .bp-headline-feature{margin-bottom:3em;margin-top:3em;padding:2em 3em}.buddypress .bp-headline{margin:0 auto;width:45em}.buddypress .bp-headline span.dashicons{background-color:#f1f1f1;color:#d84800;clear:right;font-size:100px;float:right;height:100px;line-height:100px;margin:0 0 15px 15px;text-align:center;width:100px}.buddypress .bp-headline-feature .headline-title{font-size:2.2em;font-weight:300;line-height:1;margin:0;text-align:center}.buddypress .bp-headline-feature p{font-size:1.15em;margin:1.15em 0 .6em auto}.buddypress .bp-features-section{border-bottom:1px solid #ccc;clear:both;margin-top:3em;overflow:hidden;padding-bottom:0}.buddypress .bp-features-section span.dashicons{background-color:#fff;border-radius:50%;clear:right;color:#d84800;font-size:50px;float:right;height:80px;line-height:80px;margin:0 0 15px 15px;text-align:center;width:80px}.buddypress .bp-features-section .headline-title{font-size:2em;font-weight:300;line-height:1.5;margin:0 auto 2em;text-align:center}.buddypress .bp-features-section .bp-feature-with-images{border-bottom:1px solid #ccc;margin-bottom:5em;padding-bottom:2em}.buddypress .bp-features-section .bp-feature,.buddypress .bp-features-section .bp-feature-imaged{float:right;margin-bottom:3em;margin-left:4.799999999%;width:47.6%}.buddypress .bp-features-section .bp-feature-imaged.anon,.buddypress .bp-features-section .bp-feature.opposite{margin-left:0}.buddypress .bp-features-section .bp-feature code{font-size:.95em;line-height:1.5}.buddypress .bp-feature-imaged .feature-title{color:#23282d;font-size:1.25em;margin-bottom:.6em;margin-top:0}.buddypress .bp-feature-imaged p{clear:right;font-size:1.1em}.buddypress .bp-feature-imaged img{clear:right}.buddypress .bp-feature .feature-title{font-size:1.25em;line-height:1.5;margin-bottom:0;margin-right:110px;margin-top:0;text-align:right}.buddypress .bp-feature p{margin-right:110px}.buddypress .bp-changelog-section{clear:both;margin-bottom:3em;margin-top:3em;overflow:hidden;padding-bottom:0}.buddypress .bp-changelog-section .changelog-title{color:#23282d;font-size:1.25em;line-height:1.5;margin:0 auto 1.5em}.buddypress .bp-changelog-section .two-col div{float:right;margin-left:4.799999999%;position:relative;width:47.6%}.buddypress .bp-changelog-section .three-col .col{float:right;margin-left:5%;position:relative;width:29.95%}.buddypress .three-col .col:nth-of-type(3n),.buddypress .two-col .col:nth-of-type(2n){margin-left:0}.buddypress .bp-changelog{margin-bottom:3em}.buddypress .bp-changelog .title{font-size:1em;margin-bottom:0;margin-top:0}.buddypress .bp-changelog p{margin-bottom:3em}.bp-changelog-url{text-align:center}.bp-assets{clear:both;margin-bottom:2em;margin-top:2em}@media screen and (max-width:782px){.bp-assets,.bp-changelog-section,.bp-features-section,.bp-headline-feature{margin-right:20px;margin-left:20px}.buddypress .bp-headline-feature{padding:0}.buddypress .bp-headline{margin:0;width:97%}.buddypress .bp-features-section{clear:both;margin-bottom:0;margin-top:2em;padding-bottom:2em}.buddypress .bp-features-section .bp-feature-with-images{margin-bottom:2em}.buddypress .bp-features-section .headline-title{margin-bottom:1em}.buddypress .bp-changelog-section .changelog-title{font-size:1.25em;line-height:1.5;margin-top:.5em}.buddypress .bp-changelog-section .title,.buddypress .bp-features-section .feature-title{font-size:1.25em;line-height:1.25;margin-top:.6em;text-align:right}.buddypress .bp-changelog .title,.buddypress .bp-features-section .bp-feature-imaged p{font-size:1em}.buddypress .bp-features-section .bp-feature,.buddypress .bp-features-section .bp-feature-imaged{clear:both;float:right;margin-bottom:1em;margin-top:1em;margin-left:0;padding-left:1em;width:100%}.buddypress .bp-features-section .bp-feature span{margin-top:.33em}.buddypress .bp-feature.opposite .feature-title,.buddypress .bp-feature.opposite p{float:none}.buddypress .bp-changelog-section{clear:both;margin-bottom:2em;margin-top:2em}.buddypress .bp-changelog-section .changelog-title{margin-bottom:1.5em}.buddypress .bp-changelog p{margin-bottom:1em}.buddypress .bp-changelog-section .three-col .col,.buddypress .bp-changelog-section .two-col>div{margin-top:0;padding-bottom:.5em;width:100%}}@media screen and (max-width:360px){.buddypress .bp-headline{text-align:center}.buddypress .bp-headline span.dashicons{clear:none;font-size:80px;float:none;height:80px;line-height:80px;margin:0 auto;width:80px}.buddypress .bp-features-section .headline-title,.buddypress .bp-headline-feature .headline-title{font-size:1.5em;line-height:1.5;text-align:right}.buddypress .bp-headline-feature .headline-title{margin:1em 0 0}.buddypress .bp-headline-feature p{margin:1.15em 0 .6em auto;text-align:right;width:auto}.buddypress .bp-features-section .bp-feature{text-align:center}.buddypress .bp-features-section span.dashicons{float:none}.buddypress .bp-features-section .feature-title,.buddypress .bp-features-section p{margin-right:0;text-align:right}}#adminmenu #toplevel_page_bp-activity .wp-menu-image:before,#adminmenu #toplevel_page_bp-activity_network .wp-menu-image:before,#adminmenu #toplevel_page_bp-activity_user .wp-menu-image:before{content:"\f452"}#adminmenu #toplevel_page_bp-groups .wp-menu-image:before,#adminmenu #toplevel_page_bp-groups_network .wp-menu-image:before,#adminmenu #toplevel_page_bp-groups_user .wp-menu-image:before{content:"\f456"}#adminmenu #toplevel_page_bp-notifications .wp-menu-image:before,#adminmenu #toplevel_page_bp-notifications_network .wp-menu-image:before,#adminmenu #toplevel_page_bp-notifications_user .wp-menu-image:before{content:"\f439"}#adminmenu #toplevel_page_bp-messages .wp-menu-image:before,#adminmenu #toplevel_page_bp-messages_network .wp-menu-image:before,#adminmenu #toplevel_page_bp-messages_user .wp-menu-image:before{content:"\f457"}#adminmenu #toplevel_page_bp-friends .wp-menu-image:before,#adminmenu #toplevel_page_bp-friends_network .wp-menu-image:before,#adminmenu #toplevel_page_bp-friends_user .wp-menu-image:before{content:"\f454"}#adminmenu #toplevel_page_bp-settings .wp-menu-image:before,#adminmenu #toplevel_page_bp-settings_network .wp-menu-image:before,#adminmenu #toplevel_page_bp-settings_user .wp-menu-image:before{content:"\f108"}#adminmenu li.toplevel_page_bp-components .wp-menu-image,#adminmenu li.toplevel_page_bp-general-settings .wp-menu-image{content:"\f448"}.settings_page_bp-components td.plugin-title span{float:right;width:18px;height:18px;margin-left:5px}.settings_page_bp-components td.plugin-title span:before{font-family:dashicons;font-size:18px}.settings_page_bp-components tr.activity td.plugin-title span:before{content:"\f452"}.settings_page_bp-components tr.notifications td.plugin-title span:before{content:"\f339"}.settings_page_bp-components tr.xprofile td.plugin-title span:before{content:"\f336"}.settings_page_bp-components tr.settings td.plugin-title span:before{content:"\f108"}.settings_page_bp-components tr.groups td.plugin-title span:before{content:"\f456"}.settings_page_bp-components tr.messages td.plugin-title span:before{content:"\f457"}.settings_page_bp-components tr.forums td.plugin-title span:before{content:"\f452"}.settings_page_bp-components tr.blogs td.plugin-title span:before{content:"\f120"}.settings_page_bp-components tr.friends td.plugin-title span:before{content:"\f454"}.settings_page_bp-components tr.core td.plugin-title span:before{content:"\f448"}.settings_page_bp-components tr.members td.plugin-title span:before{content:"\f307"}#bp-admin-component-form .wp-list-table.plugins .plugin-title{width:25%}@media screen and (max-width:782px){.settings_page_bp-components td.plugin-title span{margin-top:5px}#bp-admin-component-form .wp-list-table.plugins .plugin-title{display:block;width:auto}#bp-admin-component-form .subsubsub{margin-bottom:0;padding-bottom:35px}}#adminmenu .toplevel_page_network-tools div.wp-menu-image:before{content:""}body.site-users-php th#role,body.users-php th#role,body.users_page_bp-signups th#count_sent{width:10%}body.site-users-php th#email,body.site-users-php th#name,body.users-php th#email,body.users-php th#name,body.users-php th#registered,body.users_page_bp-signups th#date_sent,body.users_page_bp-signups th#email,body.users_page_bp-signups th#name,body.users_page_bp-signups th#registered{width:15%}body.post-type-bp-email th#situation,body.users-php th#blogs,body.users_page_bp-signups th#blogs{width:20%}body.users_page_bp-signups td.count_sent,body.users_page_bp-signups th.column-count_sent{text-align:center}.bp-signups-list table{margin:1em 0}.bp-signups-list .column-fields{font-weight:700}body.post-type-bp-email #excerpt{height:auto}body.post-type-bp-email td.column-situation ul{margin:0}body.post-type-bp-email .categorydiv label{display:block;float:right;padding-right:25px;text-indent:-25px}.tools_page_bp-tools .wrap{max-width:950px}.tools_page_bp-tools p{line-height:2}.tools_page_bp-tools fieldset{margin:2em 0 0}.tools_page_bp-tools legend{color:#23282d;font-size:1.3em;font-weight:600px;margin:1em 0}.tools_page_bp-tools label{clear:right;display:block;line-height:1.5em;margin:0 0 1em;vertical-align:middle}@media screen and (max-width:782px){.tools_page_bp-tools p{line-height:1.5}.tools_page_bp-tools label{margin-bottom:1em;padding-left:25px;text-indent:-33px}.tools_page_bp-tools .checkbox{padding:0 30px 0 0}}#buddypress-update.not-shiny .update-message{border-right:0;padding-right:36px}#buddypress-update.not-shiny .update-message:before{content:"\f534"} \ No newline at end of file diff --git a/wp-content/plugins/buddypress/bp-core/admin/css/common.css b/wp-content/plugins/buddypress/bp-core/admin/css/common.css index ec2b48d6b..6ebffb555 100644 --- a/wp-content/plugins/buddypress/bp-core/admin/css/common.css +++ b/wp-content/plugins/buddypress/bp-core/admin/css/common.css @@ -47,6 +47,12 @@ TABLE OF CONTENTS: right: 0; } +.buddypress code { + background-color: #e0e0e0; + color: #636363; + font-size: 1em; +} + @media only screen and (max-width: 500px) { .about-wrap .bp-badge { position: relative; @@ -63,22 +69,20 @@ TABLE OF CONTENTS: /* * 1.2.1 Headline Feature */ -.index_page_bp-about .bp-headline-feature, -.dashboard_page_bp-about .bp-headline-feature { +.buddypress .bp-headline-feature { margin-bottom: 3em; margin-top: 3em; padding: 2em 3em; } -.index_page_bp-about .bp-headline, -.dashboard_page_bp-about .bp-headline { +.buddypress .bp-headline { margin: 0 auto; - width: 35em; + width: 45em; } -.index_page_bp-about .bp-headline span.dashicons, -.dashboard_page_bp-about .bp-headline span.dashicons { +.buddypress .bp-headline span.dashicons { background-color: #f1f1f1; + color: #d84800; clear: left; font-size: 100px; float: left; @@ -89,41 +93,31 @@ TABLE OF CONTENTS: width: 100px; } -.index_page_bp-about .bp-headline-feature h3, -.index_page_bp-about .bp-headline-feature .headline-title, -.dashboard_page_bp-about .bp-headline-feature h3, -.dashboard_page_bp-about .bp-headline-feature .headline-title { +.buddypress .bp-headline-feature .headline-title { font-size: 2.2em; font-weight: 300; line-height: 1; - margin: 0 0 0 125px; + margin: 0; + text-align: center; } -.index_page_bp-about .bp-headline-feature p, -.dashboard_page_bp-about .bp-headline-feature p { +.buddypress .bp-headline-feature p { font-size: 1.15em; - margin: 1.15em auto 0.6em 125px; -} - -.index_page_bp-about .bp-headline-feature .introduction, -.dashboard_page_bp-about .bp-headline-feature .introduction { - font-weight: 600; + margin: 1.15em auto 0.6em 0; } - /* * 1.2.2 Features Section */ -.index_page_bp-about .bp-features-section, -.dashboard_page_bp-about .bp-features-section { +.buddypress .bp-features-section { + border-bottom: 1px solid #ccc; clear: both; margin-top: 3em; overflow: hidden; padding-bottom: 0; } -.index_page_bp-about span.dashicons, -.dashboard_page_bp-about span.dashicons { +.buddypress .bp-features-section span.dashicons { background-color: #fff; border-radius: 50%; clear: left; @@ -137,42 +131,59 @@ TABLE OF CONTENTS: width: 80px; } -.index_page_bp-about .bp-features-section h3, -.dashboard_page_bp-about .bp-features-section h3 { +.buddypress .bp-features-section .headline-title { font-size: 2em; font-weight: 300; line-height: 1.5; - margin: 0 auto 3em; + margin: 0 auto 2em; text-align: center; } -.index_page_bp-about .bp-feature, -.dashboard_page_bp-about .bp-feature { +.buddypress .bp-features-section .bp-feature-with-images { + border-bottom: 1px solid #ccc; + margin-bottom: 5em; + padding-bottom: 2em; +} + +.buddypress .bp-features-section .bp-feature, +.buddypress .bp-features-section .bp-feature-imaged { float: left; margin-bottom: 3em; margin-right: 4.799999999%; width: 47.6%; } +.buddypress .bp-features-section .bp-feature.opposite, +.buddypress .bp-features-section .bp-feature-imaged.anon { + margin-right: 0; +} -.index_page_bp-about .bp-feature code, -.dashboard_page_bp-about .bp-feature code{ +.buddypress .bp-features-section .bp-feature code { font-size: 0.95em; line-height: 1.5; } -.index_page_bp-about .bp-feature:nth-of-type(2n), -.dashboard_page_bp-about .bp-feature:nth-of-type(2n) { - margin-right: 0; +.buddypress .bp-feature::after { + content: ''; } -.index_page_bp-about .bp-feature::after, -.dashboard_page_bp-about .bp-feature::after { - content: ''; +.buddypress .bp-feature-imaged .feature-title { + color: #23282d; + font-size: 1.25em; + margin-bottom: 0.6em; + margin-top: 0; } -.index_page_bp-about .bp-feature h4, -.dashboard_page_bp-about .bp-feature h4 { +.buddypress .bp-feature-imaged p { + clear: left; + font-size: 1.1em; +} + +.buddypress .bp-feature-imaged img { + clear: left; +} + +.buddypress .bp-feature .feature-title { font-size: 1.25em; line-height: 1.5; margin-bottom: 0; @@ -181,65 +192,62 @@ TABLE OF CONTENTS: text-align: left; } -.index_page_bp-about .bp-feature p, -.dashboard_page_bp-about .bp-feature p { +.buddypress .bp-feature p { margin-left: 110px; } /* * 1.2.3 Changelog Section */ -.index_page_bp-about .bp-changelog-section, -.dashboard_page_bp-about .bp-changelog-section { +.buddypress .bp-changelog-section { clear: both; - margin-bottom: 8em; + margin-bottom: 3em; margin-top: 3em; overflow: hidden; padding-bottom: 0; } -.index_page_bp-about .bp-changelog-section::after, -.dashboard_page_bp-about .bp-changelog-section::after { +.buddypress .bp-changelog-section::after { content: ''; } -.index_page_bp-about .bp-changelog-section .changelog-title, -.dashboard_page_bp-about .bp-changelog-section .changelog-title { +.buddypress .bp-changelog-section .changelog-title { color: #23282d; - font-size: 1.8em; - font-weight: 300; + font-size: 1.25em; line-height: 1.5; - margin: 0 auto 0.5em; - text-align: center; + margin: 0 auto 1.5em; } -.index_page_bp-about .bp-changelog-section .two-col > div, -.dashboard_page_bp-about .bp-changelog-section .two-col > div { +.buddypress .bp-changelog-section .two-col div { float: left; margin-right: 4.799999999%; position: relative; width: 47.6%; } -.index_page_bp-about .bp-changelog-section .two-col > div.last-feature, -.dashboard_page_bp-about .bp-changelog-section .two-col > div.last-feature { +.buddypress .bp-changelog-section .three-col .col { + float: left; + margin-right: 5%; + position: relative; + width: 29.95%; +} + +.buddypress .two-col .col:nth-of-type(2n), +.buddypress .three-col .col:nth-of-type(3n) { margin-right: 0; } -.index_page_bp-about .bp-changelog, -.dashboard_page_bp-about .bp-changelog { +.buddypress .bp-changelog { margin-bottom: 3em; } -.index_page_bp-about .bp-changelog h4, -.dashboard_page_bp-about .bp-changelog h4 { +.buddypress .bp-changelog .title { font-size: 1em; margin-bottom: 0; margin-top: 0; } -.index_page_bp-about .bp-changelog p, -.dashboard_page_bp-about .bp-changelog p { +.buddypress .bp-changelog p { margin-bottom: 3em; } @@ -250,45 +258,51 @@ TABLE OF CONTENTS: .bp-assets { clear: both; margin-bottom: 2em; + margin-top: 2em; } @media screen and ( max-width: 782px ) { - .index_page_bp-about .bp-headline-feature, - .dashboard_page_bp-about .bp-headline-feature { + .bp-headline-feature, + .bp-features-section, + .bp-changelog-section, + .bp-assets { + margin-left: 20px; + margin-right: 20px; + } + .buddypress .bp-headline-feature { padding: 0; } - .index_page_bp-about .bp-headline, - .dashboard_page_bp-about .bp-headline { + .buddypress .bp-headline { margin: 0; width: 97%; } - .index_page_bp-about .bp-features-section, - .dashboard_page_bp-about .bp-features-section { + .buddypress .bp-features-section { clear: both; margin-bottom: 0; margin-top: 2em; + padding-bottom: 2em; + } + .buddypress .bp-features-section .bp-feature-with-images { + margin-bottom: 2em; + } + .buddypress .bp-features-section .headline-title { + margin-bottom: 1em; } - .index_page_bp-about .bp-features-section h3, - .dashboard_page_bp-about .bp-features-section h3, - .index_page_bp-about .bp-changelog-section .changelog-title, - .dashboard_page_bp-about .bp-changelog-section .changelog-title { - font-size: 1.8em; - font-weight: 300; + .buddypress .bp-changelog-section .changelog-title { + font-size: 1.25em; line-height: 1.5; margin-bottom: 0.5em; margin-top: 0.5em; } - .index_page_bp-about .bp-features-section h4, - .dashboard_page_bp-about .bp-features-section h4, - .index_page_bp-about .bp-changelog-section h4, - .dashboard_page_bp-about .bp-changelog-section h4 { + .buddypress .bp-features-section .feature-title, + .buddypress .bp-changelog-section .title { font-size: 1.25em; line-height: 1.25; margin-top: 0.6em; text-align: left; } - .index_page_bp-about .bp-feature, - .dashboard_page_bp-about .bp-feature { + .buddypress .bp-features-section .bp-feature, + .buddypress .bp-features-section .bp-feature-imaged { clear: both; float: left; margin-bottom: 1em; @@ -297,53 +311,42 @@ TABLE OF CONTENTS: padding-right: 1em; width: 100%; } - .index_page_bp-about .bp-feature span, - .dashboard_page_bp-about .bp-feature span { - margin-top: 0.33em; + .buddypress .bp-features-section .bp-feature-imaged p { + font-size: 1em; } - .index_page_bp-about .bp-feature h4, - .dashboard_page_bp-about .bp-feature h4, - .index_page_bp-about .bp-feature p, - .dashboard_page_bp-about .bp-feature p { - width: 100%; + .buddypress .bp-features-section .bp-feature span { + margin-top: 0.33em; } - .index_page_bp-about .bp-feature.opposite h4, - .dashboard_page_bp-about .bp-feature.opposite h4, - .index_page_bp-about .bp-feature.opposite p, - .dashboard_page_bp-about .bp-feature.opposite p { + .buddypress .bp-feature.opposite .feature-title, + .buddypress .bp-feature.opposite p { float: none; } - .index_page_bp-about .bp-changelog-section, - .dashboard_page_bp-about .bp-changelog-section { + .buddypress .bp-changelog-section { clear: both; margin-bottom: 2em; + margin-top: 2em; } - .index_page_bp-about .bp-changelog-section .changelog-title, - .dashboard_page_bp-about .bp-changelog-section .changelog-title { - margin-bottom: 1em; + .buddypress .bp-changelog-section .changelog-title { + margin-bottom: 1.5em; } - .index_page_bp-about .bp-changelog h4, - .dashboard_page_bp-about .bp-changelog h4 { + .buddypress .bp-changelog .title { font-size: 1em; } - .index_page_bp-about .bp-changelog p, - .dashboard_page_bp-about .bp-changelog p { - margin-bottom: 2em; + .buddypress .bp-changelog p { + margin-bottom: 1em; } - .index_page_bp-about .bp-changelog-section .two-col > div, - .dashboard_page_bp-about .bp-changelog-section .two-col > div { + .buddypress .bp-changelog-section .two-col > div, + .buddypress .bp-changelog-section .three-col .col { margin-top: 0; padding-bottom: 0.5em; width: 100%; } } @media screen and ( max-width: 360px ) { - .index_page_bp-about .bp-headline, - .dashboard_page_bp-about .bp-headline { + .buddypress .bp-headline { text-align: center; } - .index_page_bp-about .bp-headline span.dashicons, - .dashboard_page_bp-about .bp-headline span.dashicons { + .buddypress .bp-headline span.dashicons { clear: none; font-size: 80px; float: none; @@ -352,39 +355,28 @@ TABLE OF CONTENTS: margin: 0 auto; width: 80px; } - .index_page_bp-about .bp-headline-feature h3, - .index_page_bp-about .bp-headline-feature .headline-title, - .dashboard_page_bp-about .bp-headline-feature h3, - .dashboard_page_bp-about .bp-headline-feature .headline-title { - margin: 1em 0 0 0; + .buddypress .bp-headline-feature .headline-title, + .buddypress .bp-features-section .headline-title { + font-size: 1.5em; + line-height: 1.5; text-align: left; } - .index_page_bp-about .bp-headline-feature p, - .dashboard_page_bp-about .bp-headline-feature p { + .buddypress .bp-headline-feature .headline-title { + margin: 1em 0 0 0; + } + .buddypress .bp-headline-feature p { margin: 1.15em auto 0.6em 0; text-align: left; - } - .index_page_bp-about .bp-headline-feature .headline-title, - .dashboard_page_bp-about .bp-headline-feature .headline-title { - font-size: 1.5em; - line-height: 1.5; - } - .index_page_bp-about .bp-headline-feature p, - .dashboard_page_bp-about .bp-headline-feature p { width: auto; } - .index_page_bp-about .bp-feature, - .dashboard_page_bp-about .bp-feature { + .buddypress .bp-features-section .bp-feature { text-align: center; } - .index_page_bp-about span.dashicons, - .dashboard_page_bp-about span.dashicons { + .buddypress .bp-features-section span.dashicons { float: none; } - .index_page_bp-about .bp-features-section h4, - .dashboard_page_bp-about .bp-features-section h4, - .index_page_bp-about .bp-features-section p, - .dashboard_page_bp-about .bp-features-section p { + .buddypress .bp-features-section .feature-title, + .buddypress .bp-features-section p { margin-left: 0; text-align: left; } @@ -553,6 +545,13 @@ body.users_page_bp-signups td.count_sent { text-align: center; } +.bp-signups-list table { + margin: 1em 0; +} + +.bp-signups-list .column-fields { + font-weight: bold; +} /*------------------------------------------------------------------------------ * 4.0 Emails - Edit Page diff --git a/wp-content/plugins/buddypress/bp-core/admin/css/common.min.css b/wp-content/plugins/buddypress/bp-core/admin/css/common.min.css index 93252a6e3..d7341908f 100644 --- a/wp-content/plugins/buddypress/bp-core/admin/css/common.min.css +++ b/wp-content/plugins/buddypress/bp-core/admin/css/common.min.css @@ -1 +1 @@ -.bp-badge{color:#d84800;display:inline-block;font:400 150px/1 dashicons!important}.bp-badge:before{content:"\f448"}.dashboard_page_bp-about .bp-changelog-section::after,.dashboard_page_bp-about .bp-feature::after,.index_page_bp-about .bp-changelog-section::after,.index_page_bp-about .bp-feature::after{content:''}.about-wrap .bp-badge{position:absolute;top:0;right:0}@media only screen and (max-width:500px){.about-wrap .bp-badge{position:relative;margin:10px auto;top:auto;right:auto}}.dashboard_page_bp-about .bp-headline-feature,.index_page_bp-about .bp-headline-feature{margin-bottom:3em;margin-top:3em;padding:2em 3em}.dashboard_page_bp-about .bp-headline,.index_page_bp-about .bp-headline{margin:0 auto;width:35em}.dashboard_page_bp-about .bp-headline span.dashicons,.index_page_bp-about .bp-headline span.dashicons{background-color:#f1f1f1;clear:left;font-size:100px;float:left;height:100px;line-height:100px;margin:0 15px 15px 0;text-align:center;width:100px}.dashboard_page_bp-about .bp-headline-feature .headline-title,.dashboard_page_bp-about .bp-headline-feature h3,.index_page_bp-about .bp-headline-feature .headline-title,.index_page_bp-about .bp-headline-feature h3{font-size:2.2em;font-weight:300;line-height:1;margin:0 0 0 125px}.dashboard_page_bp-about .bp-headline-feature p,.index_page_bp-about .bp-headline-feature p{font-size:1.15em;margin:1.15em auto .6em 125px}.dashboard_page_bp-about .bp-headline-feature .introduction,.index_page_bp-about .bp-headline-feature .introduction{font-weight:600}.dashboard_page_bp-about .bp-features-section,.index_page_bp-about .bp-features-section{clear:both;margin-top:3em;overflow:hidden;padding-bottom:0}.dashboard_page_bp-about span.dashicons,.index_page_bp-about span.dashicons{background-color:#fff;border-radius:50%;clear:left;color:#d84800;font-size:50px;float:left;height:80px;line-height:80px;margin:0 15px 15px 0;text-align:center;width:80px}.dashboard_page_bp-about .bp-features-section h3,.index_page_bp-about .bp-features-section h3{font-size:2em;font-weight:300;line-height:1.5;margin:0 auto 3em;text-align:center}.dashboard_page_bp-about .bp-feature,.index_page_bp-about .bp-feature{float:left;margin-bottom:3em;margin-right:4.799999999%;width:47.6%}.dashboard_page_bp-about .bp-feature code,.index_page_bp-about .bp-feature code{font-size:.95em;line-height:1.5}.dashboard_page_bp-about .bp-feature:nth-of-type(2n),.index_page_bp-about .bp-feature:nth-of-type(2n){margin-right:0}.dashboard_page_bp-about .bp-feature h4,.index_page_bp-about .bp-feature h4{font-size:1.25em;line-height:1.5;margin-bottom:0;margin-left:110px;margin-top:0;text-align:left}.dashboard_page_bp-about .bp-feature p,.index_page_bp-about .bp-feature p{margin-left:110px}.dashboard_page_bp-about .bp-changelog-section,.index_page_bp-about .bp-changelog-section{clear:both;margin-bottom:8em;margin-top:3em;overflow:hidden;padding-bottom:0}.dashboard_page_bp-about .bp-changelog-section .changelog-title,.index_page_bp-about .bp-changelog-section .changelog-title{color:#23282d;font-size:1.8em;font-weight:300;line-height:1.5;margin:0 auto .5em;text-align:center}.dashboard_page_bp-about .bp-changelog-section .two-col>div,.index_page_bp-about .bp-changelog-section .two-col>div{float:left;margin-right:4.799999999%;position:relative;width:47.6%}.dashboard_page_bp-about .bp-changelog-section .two-col>div.last-feature,.index_page_bp-about .bp-changelog-section .two-col>div.last-feature{margin-right:0}.dashboard_page_bp-about .bp-changelog,.index_page_bp-about .bp-changelog{margin-bottom:3em}.dashboard_page_bp-about .bp-changelog h4,.index_page_bp-about .bp-changelog h4{font-size:1em;margin-bottom:0;margin-top:0}.dashboard_page_bp-about .bp-changelog p,.index_page_bp-about .bp-changelog p{margin-bottom:3em}.bp-changelog-url{text-align:center}.bp-assets{clear:both;margin-bottom:2em}@media screen and (max-width:782px){.dashboard_page_bp-about .bp-headline-feature,.index_page_bp-about .bp-headline-feature{padding:0}.dashboard_page_bp-about .bp-headline,.index_page_bp-about .bp-headline{margin:0;width:97%}.dashboard_page_bp-about .bp-features-section,.index_page_bp-about .bp-features-section{clear:both;margin-bottom:0;margin-top:2em}.dashboard_page_bp-about .bp-changelog-section .changelog-title,.dashboard_page_bp-about .bp-features-section h3,.index_page_bp-about .bp-changelog-section .changelog-title,.index_page_bp-about .bp-features-section h3{font-size:1.8em;font-weight:300;line-height:1.5;margin-bottom:.5em;margin-top:.5em}.dashboard_page_bp-about .bp-changelog-section h4,.dashboard_page_bp-about .bp-features-section h4,.index_page_bp-about .bp-changelog-section h4,.index_page_bp-about .bp-features-section h4{font-size:1.25em;line-height:1.25;margin-top:.6em;text-align:left}.dashboard_page_bp-about .bp-feature,.index_page_bp-about .bp-feature{clear:both;float:left;margin-bottom:1em;margin-top:1em;margin-right:0;padding-right:1em;width:100%}.dashboard_page_bp-about .bp-feature span,.index_page_bp-about .bp-feature span{margin-top:.33em}.dashboard_page_bp-about .bp-feature h4,.dashboard_page_bp-about .bp-feature p,.index_page_bp-about .bp-feature h4,.index_page_bp-about .bp-feature p{width:100%}.dashboard_page_bp-about .bp-feature.opposite h4,.dashboard_page_bp-about .bp-feature.opposite p,.index_page_bp-about .bp-feature.opposite h4,.index_page_bp-about .bp-feature.opposite p{float:none}.dashboard_page_bp-about .bp-changelog-section,.index_page_bp-about .bp-changelog-section{clear:both;margin-bottom:2em}.dashboard_page_bp-about .bp-changelog-section .changelog-title,.index_page_bp-about .bp-changelog-section .changelog-title{margin-bottom:1em}.dashboard_page_bp-about .bp-changelog h4,.index_page_bp-about .bp-changelog h4{font-size:1em}.dashboard_page_bp-about .bp-changelog p,.index_page_bp-about .bp-changelog p{margin-bottom:2em}.dashboard_page_bp-about .bp-changelog-section .two-col>div,.index_page_bp-about .bp-changelog-section .two-col>div{margin-top:0;padding-bottom:.5em;width:100%}}@media screen and (max-width:360px){.dashboard_page_bp-about .bp-headline,.index_page_bp-about .bp-headline{text-align:center}.dashboard_page_bp-about .bp-headline span.dashicons,.index_page_bp-about .bp-headline span.dashicons{clear:none;font-size:80px;float:none;height:80px;line-height:80px;margin:0 auto;width:80px}.dashboard_page_bp-about .bp-headline-feature .headline-title,.dashboard_page_bp-about .bp-headline-feature h3,.index_page_bp-about .bp-headline-feature .headline-title,.index_page_bp-about .bp-headline-feature h3{margin:1em 0 0;text-align:left}.dashboard_page_bp-about .bp-headline-feature p,.index_page_bp-about .bp-headline-feature p{margin:1.15em auto .6em 0;text-align:left;width:auto}.dashboard_page_bp-about .bp-headline-feature .headline-title,.index_page_bp-about .bp-headline-feature .headline-title{font-size:1.5em;line-height:1.5}.dashboard_page_bp-about .bp-feature,.index_page_bp-about .bp-feature{text-align:center}.dashboard_page_bp-about span.dashicons,.index_page_bp-about span.dashicons{float:none}.dashboard_page_bp-about .bp-features-section h4,.dashboard_page_bp-about .bp-features-section p,.index_page_bp-about .bp-features-section h4,.index_page_bp-about .bp-features-section p{margin-left:0;text-align:left}}#adminmenu #toplevel_page_bp-activity .wp-menu-image:before,#adminmenu #toplevel_page_bp-activity_network .wp-menu-image:before,#adminmenu #toplevel_page_bp-activity_user .wp-menu-image:before{content:"\f452"}#adminmenu #toplevel_page_bp-groups .wp-menu-image:before,#adminmenu #toplevel_page_bp-groups_network .wp-menu-image:before,#adminmenu #toplevel_page_bp-groups_user .wp-menu-image:before{content:"\f456"}#adminmenu #toplevel_page_bp-notifications .wp-menu-image:before,#adminmenu #toplevel_page_bp-notifications_network .wp-menu-image:before,#adminmenu #toplevel_page_bp-notifications_user .wp-menu-image:before{content:"\f439"}#adminmenu #toplevel_page_bp-messages .wp-menu-image:before,#adminmenu #toplevel_page_bp-messages_network .wp-menu-image:before,#adminmenu #toplevel_page_bp-messages_user .wp-menu-image:before{content:"\f457"}#adminmenu #toplevel_page_bp-friends .wp-menu-image:before,#adminmenu #toplevel_page_bp-friends_network .wp-menu-image:before,#adminmenu #toplevel_page_bp-friends_user .wp-menu-image:before{content:"\f454"}#adminmenu #toplevel_page_bp-settings .wp-menu-image:before,#adminmenu #toplevel_page_bp-settings_network .wp-menu-image:before,#adminmenu #toplevel_page_bp-settings_user .wp-menu-image:before{content:"\f108"}#adminmenu li.toplevel_page_bp-components .wp-menu-image,#adminmenu li.toplevel_page_bp-general-settings .wp-menu-image{content:"\f448"}.settings_page_bp-components td.plugin-title span{float:left;width:18px;height:18px;margin-right:5px}.settings_page_bp-components td.plugin-title span:before{font-family:dashicons;font-size:18px}.settings_page_bp-components tr.activity td.plugin-title span:before{content:"\f452"}.settings_page_bp-components tr.notifications td.plugin-title span:before{content:"\f339"}.settings_page_bp-components tr.xprofile td.plugin-title span:before{content:"\f336"}.settings_page_bp-components tr.settings td.plugin-title span:before{content:"\f108"}.settings_page_bp-components tr.groups td.plugin-title span:before{content:"\f456"}.settings_page_bp-components tr.messages td.plugin-title span:before{content:"\f457"}.settings_page_bp-components tr.forums td.plugin-title span:before{content:"\f452"}.settings_page_bp-components tr.blogs td.plugin-title span:before{content:"\f120"}.settings_page_bp-components tr.friends td.plugin-title span:before{content:"\f454"}.settings_page_bp-components tr.core td.plugin-title span:before{content:"\f448"}.settings_page_bp-components tr.members td.plugin-title span:before{content:"\f307"}#bp-admin-component-form .wp-list-table.plugins .plugin-title{width:25%}@media screen and (max-width:782px){.settings_page_bp-components td.plugin-title span{margin-top:5px}#bp-admin-component-form .wp-list-table.plugins .plugin-title{display:block;width:auto}#bp-admin-component-form .subsubsub{margin-bottom:0;padding-bottom:35px}}#adminmenu .toplevel_page_network-tools div.wp-menu-image:before{content:""}body.site-users-php th#role,body.users-php th#role,body.users_page_bp-signups th#count_sent{width:10%}body.site-users-php th#email,body.site-users-php th#name,body.users-php th#email,body.users-php th#name,body.users-php th#registered,body.users_page_bp-signups th#date_sent,body.users_page_bp-signups th#email,body.users_page_bp-signups th#name,body.users_page_bp-signups th#registered{width:15%}body.post-type-bp-email th#situation,body.users-php th#blogs,body.users_page_bp-signups th#blogs{width:20%}body.users_page_bp-signups td.count_sent,body.users_page_bp-signups th.column-count_sent{text-align:center}body.post-type-bp-email #excerpt{height:auto}body.post-type-bp-email td.column-situation ul{margin:0}body.post-type-bp-email .categorydiv label{display:block;float:left;padding-left:25px;text-indent:-25px}.tools_page_bp-tools .wrap{max-width:950px}.tools_page_bp-tools p{line-height:2}.tools_page_bp-tools fieldset{margin:2em 0 0}.tools_page_bp-tools legend{color:#23282d;font-size:1.3em;font-weight:600px;margin:1em 0}.tools_page_bp-tools label{clear:left;display:block;line-height:1.5em;margin:0 0 1em;vertical-align:middle}@media screen and (max-width:782px){.tools_page_bp-tools p{line-height:1.5}.tools_page_bp-tools label{margin-bottom:1em;padding-right:25px;text-indent:-33px}.tools_page_bp-tools .checkbox{padding:0 0 0 30px}}#buddypress-update.not-shiny .update-message{border-left:0;padding-left:36px}#buddypress-update.not-shiny .update-message:before{content:"\f534"} \ No newline at end of file +.bp-badge{color:#d84800;display:inline-block;font:400 150px/1 dashicons!important}.bp-badge:before{content:"\f448"}.buddypress .bp-changelog-section::after,.buddypress .bp-feature::after{content:''}.about-wrap .bp-badge{position:absolute;top:0;right:0}.buddypress code{background-color:#e0e0e0;color:#636363;font-size:1em}@media only screen and (max-width:500px){.about-wrap .bp-badge{position:relative;margin:10px auto;top:auto;right:auto}}.buddypress .bp-headline-feature{margin-bottom:3em;margin-top:3em;padding:2em 3em}.buddypress .bp-headline{margin:0 auto;width:45em}.buddypress .bp-headline span.dashicons{background-color:#f1f1f1;color:#d84800;clear:left;font-size:100px;float:left;height:100px;line-height:100px;margin:0 15px 15px 0;text-align:center;width:100px}.buddypress .bp-headline-feature .headline-title{font-size:2.2em;font-weight:300;line-height:1;margin:0;text-align:center}.buddypress .bp-headline-feature p{font-size:1.15em;margin:1.15em auto .6em 0}.buddypress .bp-features-section{border-bottom:1px solid #ccc;clear:both;margin-top:3em;overflow:hidden;padding-bottom:0}.buddypress .bp-features-section span.dashicons{background-color:#fff;border-radius:50%;clear:left;color:#d84800;font-size:50px;float:left;height:80px;line-height:80px;margin:0 15px 15px 0;text-align:center;width:80px}.buddypress .bp-features-section .headline-title{font-size:2em;font-weight:300;line-height:1.5;margin:0 auto 2em;text-align:center}.buddypress .bp-features-section .bp-feature-with-images{border-bottom:1px solid #ccc;margin-bottom:5em;padding-bottom:2em}.buddypress .bp-features-section .bp-feature,.buddypress .bp-features-section .bp-feature-imaged{float:left;margin-bottom:3em;margin-right:4.799999999%;width:47.6%}.buddypress .bp-features-section .bp-feature-imaged.anon,.buddypress .bp-features-section .bp-feature.opposite{margin-right:0}.buddypress .bp-features-section .bp-feature code{font-size:.95em;line-height:1.5}.buddypress .bp-feature-imaged .feature-title{color:#23282d;font-size:1.25em;margin-bottom:.6em;margin-top:0}.buddypress .bp-feature-imaged p{clear:left;font-size:1.1em}.buddypress .bp-feature-imaged img{clear:left}.buddypress .bp-feature .feature-title{font-size:1.25em;line-height:1.5;margin-bottom:0;margin-left:110px;margin-top:0;text-align:left}.buddypress .bp-feature p{margin-left:110px}.buddypress .bp-changelog-section{clear:both;margin-bottom:3em;margin-top:3em;overflow:hidden;padding-bottom:0}.buddypress .bp-changelog-section .changelog-title{color:#23282d;font-size:1.25em;line-height:1.5;margin:0 auto 1.5em}.buddypress .bp-changelog-section .two-col div{float:left;margin-right:4.799999999%;position:relative;width:47.6%}.buddypress .bp-changelog-section .three-col .col{float:left;margin-right:5%;position:relative;width:29.95%}.buddypress .three-col .col:nth-of-type(3n),.buddypress .two-col .col:nth-of-type(2n){margin-right:0}.buddypress .bp-changelog{margin-bottom:3em}.buddypress .bp-changelog .title{font-size:1em;margin-bottom:0;margin-top:0}.buddypress .bp-changelog p{margin-bottom:3em}.bp-changelog-url{text-align:center}.bp-assets{clear:both;margin-bottom:2em;margin-top:2em}@media screen and (max-width:782px){.bp-assets,.bp-changelog-section,.bp-features-section,.bp-headline-feature{margin-left:20px;margin-right:20px}.buddypress .bp-headline-feature{padding:0}.buddypress .bp-headline{margin:0;width:97%}.buddypress .bp-features-section{clear:both;margin-bottom:0;margin-top:2em;padding-bottom:2em}.buddypress .bp-features-section .bp-feature-with-images{margin-bottom:2em}.buddypress .bp-features-section .headline-title{margin-bottom:1em}.buddypress .bp-changelog-section .changelog-title{font-size:1.25em;line-height:1.5;margin-top:.5em}.buddypress .bp-changelog-section .title,.buddypress .bp-features-section .feature-title{font-size:1.25em;line-height:1.25;margin-top:.6em;text-align:left}.buddypress .bp-changelog .title,.buddypress .bp-features-section .bp-feature-imaged p{font-size:1em}.buddypress .bp-features-section .bp-feature,.buddypress .bp-features-section .bp-feature-imaged{clear:both;float:left;margin-bottom:1em;margin-top:1em;margin-right:0;padding-right:1em;width:100%}.buddypress .bp-features-section .bp-feature span{margin-top:.33em}.buddypress .bp-feature.opposite .feature-title,.buddypress .bp-feature.opposite p{float:none}.buddypress .bp-changelog-section{clear:both;margin-bottom:2em;margin-top:2em}.buddypress .bp-changelog-section .changelog-title{margin-bottom:1.5em}.buddypress .bp-changelog p{margin-bottom:1em}.buddypress .bp-changelog-section .three-col .col,.buddypress .bp-changelog-section .two-col>div{margin-top:0;padding-bottom:.5em;width:100%}}@media screen and (max-width:360px){.buddypress .bp-headline{text-align:center}.buddypress .bp-headline span.dashicons{clear:none;font-size:80px;float:none;height:80px;line-height:80px;margin:0 auto;width:80px}.buddypress .bp-features-section .headline-title,.buddypress .bp-headline-feature .headline-title{font-size:1.5em;line-height:1.5;text-align:left}.buddypress .bp-headline-feature .headline-title{margin:1em 0 0}.buddypress .bp-headline-feature p{margin:1.15em auto .6em 0;text-align:left;width:auto}.buddypress .bp-features-section .bp-feature{text-align:center}.buddypress .bp-features-section span.dashicons{float:none}.buddypress .bp-features-section .feature-title,.buddypress .bp-features-section p{margin-left:0;text-align:left}}#adminmenu #toplevel_page_bp-activity .wp-menu-image:before,#adminmenu #toplevel_page_bp-activity_network .wp-menu-image:before,#adminmenu #toplevel_page_bp-activity_user .wp-menu-image:before{content:"\f452"}#adminmenu #toplevel_page_bp-groups .wp-menu-image:before,#adminmenu #toplevel_page_bp-groups_network .wp-menu-image:before,#adminmenu #toplevel_page_bp-groups_user .wp-menu-image:before{content:"\f456"}#adminmenu #toplevel_page_bp-notifications .wp-menu-image:before,#adminmenu #toplevel_page_bp-notifications_network .wp-menu-image:before,#adminmenu #toplevel_page_bp-notifications_user .wp-menu-image:before{content:"\f439"}#adminmenu #toplevel_page_bp-messages .wp-menu-image:before,#adminmenu #toplevel_page_bp-messages_network .wp-menu-image:before,#adminmenu #toplevel_page_bp-messages_user .wp-menu-image:before{content:"\f457"}#adminmenu #toplevel_page_bp-friends .wp-menu-image:before,#adminmenu #toplevel_page_bp-friends_network .wp-menu-image:before,#adminmenu #toplevel_page_bp-friends_user .wp-menu-image:before{content:"\f454"}#adminmenu #toplevel_page_bp-settings .wp-menu-image:before,#adminmenu #toplevel_page_bp-settings_network .wp-menu-image:before,#adminmenu #toplevel_page_bp-settings_user .wp-menu-image:before{content:"\f108"}#adminmenu li.toplevel_page_bp-components .wp-menu-image,#adminmenu li.toplevel_page_bp-general-settings .wp-menu-image{content:"\f448"}.settings_page_bp-components td.plugin-title span{float:left;width:18px;height:18px;margin-right:5px}.settings_page_bp-components td.plugin-title span:before{font-family:dashicons;font-size:18px}.settings_page_bp-components tr.activity td.plugin-title span:before{content:"\f452"}.settings_page_bp-components tr.notifications td.plugin-title span:before{content:"\f339"}.settings_page_bp-components tr.xprofile td.plugin-title span:before{content:"\f336"}.settings_page_bp-components tr.settings td.plugin-title span:before{content:"\f108"}.settings_page_bp-components tr.groups td.plugin-title span:before{content:"\f456"}.settings_page_bp-components tr.messages td.plugin-title span:before{content:"\f457"}.settings_page_bp-components tr.forums td.plugin-title span:before{content:"\f452"}.settings_page_bp-components tr.blogs td.plugin-title span:before{content:"\f120"}.settings_page_bp-components tr.friends td.plugin-title span:before{content:"\f454"}.settings_page_bp-components tr.core td.plugin-title span:before{content:"\f448"}.settings_page_bp-components tr.members td.plugin-title span:before{content:"\f307"}#bp-admin-component-form .wp-list-table.plugins .plugin-title{width:25%}@media screen and (max-width:782px){.settings_page_bp-components td.plugin-title span{margin-top:5px}#bp-admin-component-form .wp-list-table.plugins .plugin-title{display:block;width:auto}#bp-admin-component-form .subsubsub{margin-bottom:0;padding-bottom:35px}}#adminmenu .toplevel_page_network-tools div.wp-menu-image:before{content:""}body.site-users-php th#role,body.users-php th#role,body.users_page_bp-signups th#count_sent{width:10%}body.site-users-php th#email,body.site-users-php th#name,body.users-php th#email,body.users-php th#name,body.users-php th#registered,body.users_page_bp-signups th#date_sent,body.users_page_bp-signups th#email,body.users_page_bp-signups th#name,body.users_page_bp-signups th#registered{width:15%}body.post-type-bp-email th#situation,body.users-php th#blogs,body.users_page_bp-signups th#blogs{width:20%}body.users_page_bp-signups td.count_sent,body.users_page_bp-signups th.column-count_sent{text-align:center}.bp-signups-list table{margin:1em 0}.bp-signups-list .column-fields{font-weight:700}body.post-type-bp-email #excerpt{height:auto}body.post-type-bp-email td.column-situation ul{margin:0}body.post-type-bp-email .categorydiv label{display:block;float:left;padding-left:25px;text-indent:-25px}.tools_page_bp-tools .wrap{max-width:950px}.tools_page_bp-tools p{line-height:2}.tools_page_bp-tools fieldset{margin:2em 0 0}.tools_page_bp-tools legend{color:#23282d;font-size:1.3em;font-weight:600px;margin:1em 0}.tools_page_bp-tools label{clear:left;display:block;line-height:1.5em;margin:0 0 1em;vertical-align:middle}@media screen and (max-width:782px){.tools_page_bp-tools p{line-height:1.5}.tools_page_bp-tools label{margin-bottom:1em;padding-right:25px;text-indent:-33px}.tools_page_bp-tools .checkbox{padding:0 0 0 30px}}#buddypress-update.not-shiny .update-message{border-left:0;padding-left:36px}#buddypress-update.not-shiny .update-message:before{content:"\f534"} \ No newline at end of file diff --git a/wp-content/plugins/buddypress/bp-core/admin/images/list-unsubscribe.png b/wp-content/plugins/buddypress/bp-core/admin/images/list-unsubscribe.png new file mode 100644 index 0000000000000000000000000000000000000000..cb386deeae7d0faae5ef4c5fc113d8ffe365a186 GIT binary patch literal 17792 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 literal 0 HcmV?d00001 diff --git a/wp-content/plugins/buddypress/bp-core/admin/images/pending-accounts.png b/wp-content/plugins/buddypress/bp-core/admin/images/pending-accounts.png new file mode 100644 index 0000000000000000000000000000000000000000..7103bd93913e21b6c321e55724f38ec91081528b GIT binary patch literal 16034 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 literal 0 HcmV?d00001 diff --git a/wp-content/plugins/buddypress/bp-core/admin/images/twenty-seventeen.png b/wp-content/plugins/buddypress/bp-core/admin/images/twenty-seventeen.png new file mode 100644 index 0000000000000000000000000000000000000000..e715ed212830c8c84da28ef5e0f3c0421ba8d812 GIT binary patch literal 31735 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 Y%$`CQC)XG;FfcH9y85}Sb4q9e0Q`FiQvd(} literal 0 HcmV?d00001 diff --git a/wp-content/plugins/buddypress/bp-core/bp-core-admin.php b/wp-content/plugins/buddypress/bp-core/bp-core-admin.php index b2210e503..559245e58 100644 --- a/wp-content/plugins/buddypress/bp-core/bp-core-admin.php +++ b/wp-content/plugins/buddypress/bp-core/bp-core-admin.php @@ -10,10 +10,6 @@ // Exit if accessed directly. defined( 'ABSPATH' ) || exit; -if ( ! buddypress()->do_autoload ) { - require dirname( __FILE__ ) . '/classes/class-bp-admin.php'; -} - /** * Setup BuddyPress Admin. * diff --git a/wp-content/plugins/buddypress/bp-core/bp-core-adminbar.php b/wp-content/plugins/buddypress/bp-core/bp-core-adminbar.php index a71b4695b..4207e53bd 100644 --- a/wp-content/plugins/buddypress/bp-core/bp-core-adminbar.php +++ b/wp-content/plugins/buddypress/bp-core/bp-core-adminbar.php @@ -67,6 +67,11 @@ function bp_core_load_admin_bar() { if ( ! bp_use_wp_admin_bar() ) { _doing_it_wrong( __FUNCTION__, __( 'The BuddyBar is no longer supported. Please migrate to the WordPress toolbar as soon as possible.', 'buddypress' ), '2.1.0' ); + // Load deprecated code if not available. + if ( ! function_exists( 'bp_core_admin_bar' ) ) { + require buddypress()->plugin_dir . 'bp-core/deprecated/2.1.php'; + } + // Keep the WP Toolbar from loading. show_admin_bar( false ); diff --git a/wp-content/plugins/buddypress/bp-core/bp-core-attachments.php b/wp-content/plugins/buddypress/bp-core/bp-core-attachments.php index d24bafc18..370e00396 100644 --- a/wp-content/plugins/buddypress/bp-core/bp-core-attachments.php +++ b/wp-content/plugins/buddypress/bp-core/bp-core-attachments.php @@ -512,7 +512,7 @@ function bp_attachments_delete_file( $args = array() ) { * @since 2.5.1 * * @param bool $value Whether or not to delete the BuddyPress attachment. - * @param array Array of arguments for the attachment deletion. +` * @param array $args Array of arguments for the attachment deletion. */ if ( ! apply_filters( 'bp_attachments_pre_delete_file', true, $args ) ) { return true; @@ -949,7 +949,7 @@ function bp_attachments_get_template_part( $slug ) { * @since 2.4.0 * * @param string $component The component to get the settings for ("xprofile" for user or "groups"). - * @return array The cover image settings. + * @return array|bool The cover image settings in array, false on failure. */ function bp_attachments_get_cover_image_settings( $component = 'xprofile' ) { // Default parameters. @@ -1000,7 +1000,7 @@ function bp_attachments_get_cover_image_settings( $component = 'xprofile' ) { * @since 2.4.0 * * @param string $component The BuddyPress component concerned ("xprofile" for user or "groups"). - * @return array An associative array containing the advised width and height for the cover image. + * @return array|bool An associative array containing the advised width and height for the cover image. False if settings are empty. */ function bp_attachments_get_cover_image_dimensions( $component = 'xprofile' ) { // Let's prevent notices when setting the warning strings. @@ -1185,7 +1185,7 @@ function bp_attachments_cover_image_generate_file( $args = array(), $cover_image * * @since 2.4.0 * - * @return string|null A json object containing success data if the upload succeeded + * @return string|null A json object containing success data if the upload succeeded, * error message otherwise. */ function bp_attachments_cover_image_ajax_upload() { @@ -1423,6 +1423,19 @@ function bp_attachments_cover_image_ajax_delete() { // Handle delete. if ( bp_attachments_delete_file( array( 'item_id' => $cover_image_data['item_id'], 'object_dir' => $dir, 'type' => 'cover-image' ) ) ) { + /** + * Fires if the cover image was successfully deleted. + * + * The dynamic portion of the hook will be xprofile in case of a user's + * cover image, groups in case of a group's cover image. For instance: + * Use add_action( 'xprofile_cover_image_deleted' ) to run your specific + * code once the user has deleted his cover image. + * + * @since 2.8.0 + * + * @param int $item_id Inform about the item id the cover image was deleted for. + */ + do_action( "{$component}_cover_image_deleted", (int) $cover_image_data['item_id'] ); // Defaults no cover image. $response = array( diff --git a/wp-content/plugins/buddypress/bp-core/bp-core-avatars.php b/wp-content/plugins/buddypress/bp-core/bp-core-avatars.php index 75b76b6d8..8f7816623 100644 --- a/wp-content/plugins/buddypress/bp-core/bp-core-avatars.php +++ b/wp-content/plugins/buddypress/bp-core/bp-core-avatars.php @@ -542,9 +542,9 @@ function bp_core_fetch_avatar( $args = '' ) { * @param string $value Subdirectory where the requested avatar should be found. * @param string $html_css_id ID attribute for avatar. * @param string $html_width Width attribute for avatar. - * @param string $html_height Height attribtue for avatar. + * @param string $html_height Height attribute for avatar. * @param string $avatar_folder_url Avatar URL path. - * @param string $avatar_folder_dir Avatar dir path. + * @param string $avatar_folder_dir Avatar DIR path. */ return apply_filters( 'bp_core_fetch_avatar', '<img src="' . $avatar_url . '"' . $html_class . $html_css_id . $html_width . $html_height . $html_alt . $html_title . $extra_attr . ' />', $params, $params['item_id'], $params['avatar_dir'], $html_css_id, $html_width, $html_height, $avatar_folder_url, $avatar_folder_dir ); @@ -1094,15 +1094,15 @@ function bp_avatar_ajax_upload() { } add_action( 'wp_ajax_bp_avatar_upload', 'bp_avatar_ajax_upload' ); - /** - * Handle avatar webcam capture. - * - * @since 2.3.0 - * - * @param string $data Base64 encoded image. - * @param int $item_id Item to associate. - * @return bool True on success, false on failure. - */ +/** + * Handle avatar webcam capture. + * + * @since 2.3.0 + * + * @param string $data Base64 encoded image. + * @param int $item_id Item to associate. + * @return bool True on success, false on failure. + */ function bp_avatar_handle_capture( $data = '', $item_id = 0 ) { if ( empty( $data ) || empty( $item_id ) ) { return false; @@ -1293,11 +1293,13 @@ function bp_avatar_ajax_set() { * @since 2.3.4 Add two new parameters to inform about the user id and * about the way the avatar was set (eg: 'crop' or 'camera') * Move the action at the right place, once the avatar is set + * @since 2.8.0 Added the `$avatar_data` parameter. * - * @param string $item_id Inform about the user id the avatar was set for - * @param string $type Inform about the way the avatar was set ('camera') + * @param string $item_id Inform about the user id the avatar was set for. + * @param string $type Inform about the way the avatar was set ('camera'). + * @param array $avatar_data Array of parameters passed to the avatar handler. */ - do_action( 'xprofile_avatar_uploaded', (int) $avatar_data['item_id'], $avatar_data['type'] ); + do_action( 'xprofile_avatar_uploaded', (int) $avatar_data['item_id'], $avatar_data['type'], $avatar_data ); wp_send_json_success( $return ); } @@ -1342,18 +1344,11 @@ function bp_avatar_ajax_set() { ); if ( 'user' === $avatar_data['object'] ) { - /** - * Fires if the new avatar was successfully cropped. - * - * @since 1.1.0 Used to inform the avatar was successfully cropped - * @since 2.3.4 Add two new parameters to inform about the user id and - * about the way the avatar was set (eg: 'crop' or 'camera') - * Move the action at the right place, once the avatar is set - * - * @param string $item_id Inform about the user id the avatar was set for - * @param string $type Inform about the way the avatar was set ('crop') - */ - do_action( 'xprofile_avatar_uploaded', (int) $avatar_data['item_id'], $avatar_data['type'] ); + /** This action is documented in bp-core/bp-core-avatars.php */ + do_action( 'xprofile_avatar_uploaded', (int) $avatar_data['item_id'], $avatar_data['type'], $r ); + } elseif ( 'group' === $avatar_data['object'] ) { + /** This action is documented in bp-groups/bp-groups-screens.php */ + do_action( 'groups_avatar_uploaded', (int) $avatar_data['item_id'], $avatar_data['type'], $r ); } wp_send_json_success( $return ); diff --git a/wp-content/plugins/buddypress/bp-core/bp-core-buddybar.php b/wp-content/plugins/buddypress/bp-core/bp-core-buddybar.php index e9eee84e9..be30202af 100644 --- a/wp-content/plugins/buddypress/bp-core/bp-core-buddybar.php +++ b/wp-content/plugins/buddypress/bp-core/bp-core-buddybar.php @@ -90,7 +90,7 @@ function bp_core_new_nav_item( $args, $component = 'members' ) { * Add a link to the main BuddyPress navigation. * * @since 2.4.0 - * @since 2.6.0 Introduced the `$component` parameter. Began returning a BP_Nav_Item object on success. + * @since 2.6.0 Introduced the `$component` parameter. Began returning a BP_Core_Nav_Item object on success. * * @param array|string $args { * Array describing the new nav item. @@ -108,7 +108,7 @@ function bp_core_new_nav_item( $args, $component = 'members' ) { * item is clicked. * } * @param string $component Optional. Component that the nav belongs to. - * @return bool|BP_Nav_Item Returns false on failure, new nav item on success. + * @return bool|BP_Core_Nav_Item Returns false on failure, new nav item on success. */ function bp_core_create_nav_link( $args = '', $component = 'members' ) { $bp = buddypress(); @@ -446,7 +446,7 @@ function bp_core_new_subnav_item( $args, $component = null ) { * Add a subnav link to the BuddyPress navigation. * * @since 2.4.0 - * @since 2.6.0 Introduced the `$component` parameter. Began returning a BP_Nav_Item object on success. + * @since 2.6.0 Introduced the `$component` parameter. Began returning a BP_Core_Nav_Item object on success. * * @param array|string $args { * Array describing the new subnav item. @@ -475,7 +475,7 @@ function bp_core_new_subnav_item( $args, $component = null ) { * Default: false. * } * @param string $component The component the navigation is attached to. Defaults to 'members'. - * @return bool|object Returns false on failure, new BP_Nav_Item instance on success. + * @return bool|object Returns false on failure, new BP_Core_Nav_Item instance on success. */ function bp_core_create_subnav_link( $args = '', $component = 'members' ) { $bp = buddypress(); @@ -800,10 +800,8 @@ function bp_core_remove_nav_item( $slug, $component = null ) { $screen_functions = $bp->{$component}->nav->delete_nav( $slug ); // Reset backcompat nav items so that subsequent references will be correct. - if ( buddypress()->do_nav_backcompat ) { - $bp->bp_nav->reset(); - $bp->bp_options_nav->reset(); - } + $bp->bp_nav->reset(); + $bp->bp_options_nav->reset(); if ( ! is_array( $screen_functions ) ) { return false; @@ -851,10 +849,8 @@ function bp_core_remove_subnav_item( $parent_slug, $slug, $component = null ) { $screen_functions = $bp->{$component}->nav->delete_nav( $slug, $parent_slug ); // Reset backcompat nav items so that subsequent references will be correct. - if ( buddypress()->do_nav_backcompat ) { - $bp->bp_nav->reset(); - $bp->bp_options_nav->reset(); - } + $bp->bp_nav->reset(); + $bp->bp_options_nav->reset(); if ( ! is_array( $screen_functions ) ) { return false; diff --git a/wp-content/plugins/buddypress/bp-core/bp-core-catchuri.php b/wp-content/plugins/buddypress/bp-core/bp-core-catchuri.php index f1df1f307..43f3038e1 100644 --- a/wp-content/plugins/buddypress/bp-core/bp-core-catchuri.php +++ b/wp-content/plugins/buddypress/bp-core/bp-core-catchuri.php @@ -852,11 +852,14 @@ function bp_get_canonical_url( $args = array() ) { if ( 'page' == get_option( 'show_on_front' ) && $page_on_front = (int) get_option( 'page_on_front' ) ) { $front_page_component = array_search( $page_on_front, bp_core_get_directory_page_ids() ); - // If requesting the front page component directory, canonical - // URL is the front page. We detect whether we're detecting a - // component *directory* by checking that bp_current_action() - // is empty - ie, this not a single item or a feed. - if ( false !== $front_page_component && bp_is_current_component( $front_page_component ) && ! bp_current_action() ) { + /* + * If requesting the front page component directory, canonical + * URL is the front page. We detect whether we're detecting a + * component *directory* by checking that bp_current_action() + * is empty - ie, this not a single item, a feed, or an item + * type directory. + */ + if ( false !== $front_page_component && bp_is_current_component( $front_page_component ) && ! bp_current_action() && ! bp_get_current_member_type() ) { $bp->canonical_stack['canonical_url'] = trailingslashit( bp_get_root_domain() ); // Except when the front page is set to the registration page diff --git a/wp-content/plugins/buddypress/bp-core/bp-core-customizer-email.php b/wp-content/plugins/buddypress/bp-core/bp-core-customizer-email.php index 1ae97c222..2ffe9f0c9 100644 --- a/wp-content/plugins/buddypress/bp-core/bp-core-customizer-email.php +++ b/wp-content/plugins/buddypress/bp-core/bp-core-customizer-email.php @@ -43,13 +43,6 @@ function bp_email_init_customizer( WP_Customize_Manager $wp_customize ) { $wp_customize->add_setting( $setting_id, $args ); } - /** - * BP_Customizer_Control_Range class. - */ - if ( ! buddypress()->do_autoload ) { - require_once dirname( __FILE__ ) . '/classes/class-bp-customizer-control-range.php'; - } - /** * Fires to let plugins register extra Customizer controls for emails. * diff --git a/wp-content/plugins/buddypress/bp-core/bp-core-dependency.php b/wp-content/plugins/buddypress/bp-core/bp-core-dependency.php index 6120ab095..f1791ecb8 100644 --- a/wp-content/plugins/buddypress/bp-core/bp-core-dependency.php +++ b/wp-content/plugins/buddypress/bp-core/bp-core-dependency.php @@ -13,8 +13,6 @@ * The following functions are wrappers for hooks, allowing them to be * manually called and/or piggy-backed on top of other hooks if needed. * - * @todo use anonymous functions when PHP minimum requirement allows (5.3) - * * @package BuddyPress * @subpackage Core * @since 1.7.0 @@ -140,7 +138,7 @@ function bp_setup_admin_bar() { * * @since 1.5.0 */ - do_action( 'bp_setup_admin_bar' ); + do_action( 'bp_setup_admin_bar', array() ); } } diff --git a/wp-content/plugins/buddypress/bp-core/bp-core-filters.php b/wp-content/plugins/buddypress/bp-core/bp-core-filters.php index ff6bf80a2..dd910fbd9 100644 --- a/wp-content/plugins/buddypress/bp-core/bp-core-filters.php +++ b/wp-content/plugins/buddypress/bp-core/bp-core-filters.php @@ -1005,6 +1005,21 @@ function bp_email_set_default_headers( $headers, $property, $transform, $email ) $headers['X-BuddyPress'] = bp_get_version(); $headers['X-BuddyPress-Type'] = $email->get( 'type' ); + $tokens = $email->get_tokens(); + + // Add 'List-Unsubscribe' header if applicable. + if ( ! empty( $tokens['unsubscribe'] ) && $tokens['unsubscribe'] !== site_url( 'wp-login.php' ) ) { + $user = get_user_by( 'email', $tokens['recipient.email'] ); + + $headers['List-Unsubscribe'] = sprintf( + '<%s>', + esc_url_raw( bp_email_get_unsubscribe_link( array( + 'user_id' => $user->ID, + 'notification_type' => $email->get( 'type' ), + ) ) ) + ); + } + return $headers; } add_filter( 'bp_email_get_headers', 'bp_email_set_default_headers', 6, 4 ); diff --git a/wp-content/plugins/buddypress/bp-core/bp-core-functions.php b/wp-content/plugins/buddypress/bp-core/bp-core-functions.php index 5a37bf936..2e81525be 100644 --- a/wp-content/plugins/buddypress/bp-core/bp-core-functions.php +++ b/wp-content/plugins/buddypress/bp-core/bp-core-functions.php @@ -120,10 +120,40 @@ function bp_core_get_table_prefix() { * @return array $items The sorted array. */ function bp_sort_by_key( $items, $key, $type = 'alpha', $preserve_keys = false ) { + $callback = function( $a, $b ) use ( $key, $type ) { + $values = array( 0 => false, 1 => false ); + foreach ( func_get_args() as $indexi => $index ) { + if ( isset( $index->{$key} ) ) { + $values[ $indexi ] = $index->{$key}; + } elseif ( isset( $index[ $key ] ) ) { + $values[ $indexi ] = $index[ $key ]; + } + } + + if ( isset( $values[0], $values[1] ) ) { + if ( 'num' === $type ) { + $cmp = $values[0] - $values[1]; + } else { + $cmp = strcmp( $values[0], $values[1] ); + } + + if ( 0 > $cmp ) { + $retval = -1; + } elseif ( 0 < $cmp ) { + $retval = 1; + } else { + $retval = 0; + } + return $retval; + } else { + return 0; + } + }; + if ( true === $preserve_keys ) { - uasort( $items, array( new BP_Core_Sort_By_Key_Callback( $key, $type ), 'sort_callback' ) ); + uasort( $items, $callback ); } else { - usort( $items, array( new BP_Core_Sort_By_Key_Callback( $key, $type ), 'sort_callback' ) ); + usort( $items, $callback ); } return $items; @@ -2372,7 +2402,7 @@ function bp_remove_adjacent_posts_rel_link() { return; } - remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0 ); + remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10 ); } add_action( 'bp_init', 'bp_remove_adjacent_posts_rel_link' ); @@ -3059,7 +3089,7 @@ function bp_get_email( $email_type ) { * @param string|array|int|WP_User $to Either a email address, user ID, WP_User object, * or an array containg the address and name. * @param array $args { - * Optional. Array of extra. parameters. + * Optional. Array of extra parameters. * * @type array $tokens Optional. Assocative arrays of string replacements for the email. * } @@ -3105,6 +3135,23 @@ function bp_send_email( $email_type, $to, $args = array() ) { $email->set_to( $to ); $email->set_tokens( $args['tokens'] ); + /** + * Gives access to an email before it is sent. + * + * @since 2.8.0 + * + * @param BP_Email $email The email (object) about to be sent. + * @param string $email_type Type of email being sent. + * @param string|array|int|WP_User $to Either a email address, user ID, WP_User object, + * or an array containg the address and name. + * @param array $args { + * Optional. Array of extra parameters. + * + * @type array $tokens Optional. Assocative arrays of string replacements for the email. + * } + */ + do_action_ref_array( 'bp_send_email', array( &$email, $email_type, $to, $args ) ); + $status = $email->validate(); if ( is_wp_error( $status ) ) { return $status; @@ -3382,7 +3429,7 @@ function bp_email_get_schema() { /* translators: do not remove {} brackets or translate its contents. */ 'post_content' => __( "<a href=\"{{{inviter.url}}}\">{{inviter.name}}</a> has invited you to join the group: "{{group.name}}".\n<a href=\"{{{invites.url}}}\">Go here to accept your invitation</a> or <a href=\"{{{group.url}}}\">visit the group</a> to learn more.", 'buddypress' ), /* translators: do not remove {} brackets or translate its contents. */ - 'post_excerpt' => __( "{{inviter.name}} has invited you to join the group: \"{{group.name}}\".\n\nTo accept your invitation, visit: {{{invites.url}}}\n\nTo learn more about the group, visit {{{group.url}}}.\nTo view {{inviter.name}}'s profile, visit: {{{inviter.url}}}", 'buddypress' ), + 'post_excerpt' => __( "{{inviter.name}} has invited you to join the group: \"{{group.name}}\".\n\nTo accept your invitation, visit: {{{invites.url}}}\n\nTo learn more about the group, visit: {{{group.url}}}.\nTo view {{inviter.name}}'s profile, visit: {{{inviter.url}}}", 'buddypress' ), ), 'groups-member-promoted' => array( /* translators: do not remove {} brackets or translate its contents. */ @@ -3621,7 +3668,7 @@ function bp_email_get_type_schema( $field = 'description' ) { * @since 2.7.0 */ function bp_email_unsubscribe_handler() { - $emails = bp_email_get_type_schema( 'all' ); + $emails = bp_email_get_unsubscribe_type_schema(); $raw_email_type = ! empty( $_GET['nt'] ) ? $_GET['nt'] : ''; $raw_hash = ! empty( $_GET['nh'] ) ? $_GET['nh'] : ''; $raw_user_id = ! empty( $_GET['uid'] ) ? absint( $_GET['uid'] ) : 0; @@ -3702,7 +3749,7 @@ function bp_email_unsubscribe_handler() { * @return string The unsubscribe link. */ function bp_email_get_unsubscribe_link( $args ) { - $emails = bp_email_get_type_schema( 'all' ); + $emails = bp_email_get_unsubscribe_type_schema(); if ( empty( $args['notification_type'] ) || ! array_key_exists( $args['notification_type'], $emails ) ) { return site_url( 'wp-login.php' ); @@ -3745,3 +3792,26 @@ function bp_email_get_unsubscribe_link( $args ) { function bp_email_get_salt() { return bp_get_option( 'bp-emails-unsubscribe-salt', null ); } + +/** + * Get a list of emails for use in our unsubscribe functions. + * + * @since 2.8.0 + * + * @see https://buddypress.trac.wordpress.org/ticket/7431 + * + * @return array The array of email types and their schema. + */ +function bp_email_get_unsubscribe_type_schema() { + $emails = bp_email_get_type_schema( 'all' ); + + /** + * Filters the return of `bp_email_get_type_schema( 'all' )` for use with + * our unsubscribe functionality. + * + * @since 2.8.0 + * + * @param array $emails The array of email types and their schema. + */ + return (array) apply_filters( 'bp_email_get_unsubscribe_type_schema', $emails ); +} diff --git a/wp-content/plugins/buddypress/bp-core/bp-core-loader.php b/wp-content/plugins/buddypress/bp-core/bp-core-loader.php index 83306ac1a..13c903b90 100644 --- a/wp-content/plugins/buddypress/bp-core/bp-core-loader.php +++ b/wp-content/plugins/buddypress/bp-core/bp-core-loader.php @@ -12,11 +12,6 @@ // Exit if accessed directly. defined( 'ABSPATH' ) || exit; -if ( ! buddypress()->do_autoload ) { - require dirname( __FILE__ ) . '/classes/class-bp-component.php'; - require dirname( __FILE__ ) . '/classes/class-bp-core.php'; -} - /** * Set up the bp-core component. * diff --git a/wp-content/plugins/buddypress/bp-core/bp-core-options.php b/wp-content/plugins/buddypress/bp-core/bp-core-options.php index 2c7d346ee..32c372b40 100644 --- a/wp-content/plugins/buddypress/bp-core/bp-core-options.php +++ b/wp-content/plugins/buddypress/bp-core/bp-core-options.php @@ -102,10 +102,10 @@ function bp_get_default_options() { /* Legacy *********************************************/ - // Whether to register the bp-default themes directory. + // Do not register the bp-default themes directory. '_bp_retain_bp_default' => false, - // Whether to load deprecated code. + // Ignore deprecated code. '_bp_ignore_deprecated_code' => true, /* Widgets **************************************************/ diff --git a/wp-content/plugins/buddypress/bp-core/bp-core-template-loader.php b/wp-content/plugins/buddypress/bp-core/bp-core-template-loader.php index b8c1a5b1b..9d1665de5 100644 --- a/wp-content/plugins/buddypress/bp-core/bp-core-template-loader.php +++ b/wp-content/plugins/buddypress/bp-core/bp-core-template-loader.php @@ -97,6 +97,11 @@ function bp_get_asset_template_part( $slug, $name = null ) { */ function bp_locate_template( $template_names, $load = false, $require_once = true ) { + // Bail when there are no templates to locate + if ( empty( $template_names ) ) { + return false; + } + // No file found yet. $located = false; $template_locations = bp_get_template_stack(); diff --git a/wp-content/plugins/buddypress/bp-core/bp-core-template.php b/wp-content/plugins/buddypress/bp-core/bp-core-template.php index b3bad7e68..0f216b009 100644 --- a/wp-content/plugins/buddypress/bp-core/bp-core-template.php +++ b/wp-content/plugins/buddypress/bp-core/bp-core-template.php @@ -3298,6 +3298,13 @@ function bp_the_body_class() { if ( bp_is_user() ) { $bp_classes[] = 'bp-user'; + + // Add current user member types. + if ( $member_types = bp_get_member_type( bp_displayed_user_id(), false ) ) { + foreach( $member_types as $member_type ) { + $bp_classes[] = sprintf( 'member-type-%s', esc_attr( $member_type ) ); + } + } } if ( ! bp_is_directory() ) { @@ -3388,6 +3395,13 @@ function bp_the_body_class() { if ( bp_is_group() ) { $bp_classes[] = 'group-' . groups_get_current_group()->slug; + + // Add current group types. + if ( $group_types = bp_groups_get_group_type( bp_get_current_group_id(), false ) ) { + foreach ( $group_types as $group_type ) { + $bp_classes[] = sprintf( 'group-type-%s', esc_attr( $group_type ) ); + } + } } if ( bp_is_group_leave() ) { diff --git a/wp-content/plugins/buddypress/bp-core/bp-core-theme-compatibility.php b/wp-content/plugins/buddypress/bp-core/bp-core-theme-compatibility.php index 117d158e4..74505bf8d 100644 --- a/wp-content/plugins/buddypress/bp-core/bp-core-theme-compatibility.php +++ b/wp-content/plugins/buddypress/bp-core/bp-core-theme-compatibility.php @@ -22,12 +22,6 @@ defined( 'ABSPATH' ) || exit; * Don't try anything you're about to witness here, at home. Ever. */ -/** Base Class ****************************************************************/ - -if ( ! buddypress()->do_autoload ) { - require dirname( __FILE__ ) . '/classes/class-bp-theme-compat.php'; -} - /** Functions *****************************************************************/ /** diff --git a/wp-content/plugins/buddypress/bp-core/bp-core-update.php b/wp-content/plugins/buddypress/bp-core/bp-core-update.php index b8cace31c..b006ff4d5 100644 --- a/wp-content/plugins/buddypress/bp-core/bp-core-update.php +++ b/wp-content/plugins/buddypress/bp-core/bp-core-update.php @@ -538,7 +538,7 @@ function bp_update_to_2_7() { } } - // Load deprecated code for existing installs. + // Do not ignore deprecated code for existing installs. bp_add_option( '_bp_ignore_deprecated_code', false ); } diff --git a/wp-content/plugins/buddypress/bp-core/bp-core-widgets.php b/wp-content/plugins/buddypress/bp-core/bp-core-widgets.php index 14e5fb9f3..17be2801a 100644 --- a/wp-content/plugins/buddypress/bp-core/bp-core-widgets.php +++ b/wp-content/plugins/buddypress/bp-core/bp-core-widgets.php @@ -10,16 +10,12 @@ // Exit if accessed directly. defined( 'ABSPATH' ) || exit; -if ( ! buddypress()->do_autoload ) { - require dirname( __FILE__ ) . '/classes/class-bp-core-login-widget.php'; -} - /** * Register bp-core widgets. * * @since 1.0.0 */ function bp_core_register_widgets() { - add_action('widgets_init', create_function('', 'return register_widget("BP_Core_Login_Widget");') ); + add_action( 'widgets_init', function() { register_widget( 'BP_Core_Login_Widget' ); } ); } add_action( 'bp_register_widgets', 'bp_core_register_widgets' ); diff --git a/wp-content/plugins/buddypress/bp-core/classes/class-bp-admin.php b/wp-content/plugins/buddypress/bp-core/classes/class-bp-admin.php index 1768d787b..2be65e05d 100644 --- a/wp-content/plugins/buddypress/bp-core/classes/class-bp-admin.php +++ b/wp-content/plugins/buddypress/bp-core/classes/class-bp-admin.php @@ -117,10 +117,6 @@ class BP_Admin { * @since 1.6.0 */ private function includes() { - if ( ! buddypress()->do_autoload ) { - require( $this->admin_dir . 'bp-core-admin-classes.php' ); - } - require( $this->admin_dir . 'bp-core-admin-actions.php' ); require( $this->admin_dir . 'bp-core-admin-settings.php' ); require( $this->admin_dir . 'bp-core-admin-functions.php' ); @@ -386,6 +382,11 @@ class BP_Admin { // Only show 'switch to Toolbar' option if the user chose to retain the BuddyBar during the 1.6 upgrade. if ( (bool) bp_get_option( '_bp_force_buddybar', false ) ) { + // Load deprecated code if not available. + if ( ! function_exists( 'bp_admin_setting_callback_force_buddybar' ) ) { + require buddypress()->plugin_dir . 'bp-core/deprecated/2.1.php'; + } + add_settings_field( '_bp_force_buddybar', __( 'Toolbar', 'buddypress' ), 'bp_admin_setting_callback_force_buddybar', 'buddypress', 'bp_main' ); register_setting( 'buddypress', '_bp_force_buddybar', 'bp_admin_sanitize_callback_force_buddybar' ); } @@ -550,11 +551,6 @@ class BP_Admin { * @since 1.7.0 */ public function about_screen() { - $embedded_activity = ''; - - if ( version_compare( $GLOBALS['wp_version'], '4.5', '>=' ) ) { - $embedded_activity = wp_oembed_get( 'https://buddypress.org/members/djpaul/activity/573821/' ); - } ?> <div class="wrap about-wrap"> @@ -614,13 +610,12 @@ class BP_Admin { <div class="bp-headline-feature"> <div class="bp-headline"> - <span class="dashicons dashicons-list-view" aria-hidden="true"></span> - <h3 class="headline-title"><?php esc_html_e( 'Groups Query Overhaul', 'buddypress' ); ?></h3> - + <h3 class="headline-title"><?php esc_html_e( 'Modernizing the Codebase', 'buddypress' ); ?></h3> <p class="introduction"><?php - /* translators: %s: URL to the development post about this feature */ - printf( __( 'Huge performance improvements on sites using persistent caching. <a href="%s">Learn more about the Groups Query rewrite</a>.', 'buddypress' ), - 'https://bpdevel.wordpress.com/2016/09/19/group-queries-have-been-rewritten-for-bp-2-7/' ); + /* translators: 1: BP REST API, 2: Link to Codex article */ + printf( __( 'To continue the migration of legacy code to modern standards and techniques necessary for the %1$s project and other new features moving forward, <a href="%2$s">BuddyPress 2.8 requires at least PHP 5.3</a>. This will allow us to build better, robust, and secure code, benefitting developers and users now and in the future.', 'buddypress'), + '<code>BP REST API</code>', + 'https://codex.buddypress.org/getting-started/buddypress-2-8-will-require-php-5-3/' ); ?></p> </div> </div> @@ -629,107 +624,98 @@ class BP_Admin { <h3 class="headline-title"><?php esc_html_e( 'For Developers & Site Builders', 'buddypress' ); ?></h3> - <div class="bp-feature"> - <span class="dashicons dashicons-calendar" aria-hidden="true"></span> - <h4 class="feature-title"><?php esc_html_e( 'Improved Profile Date Field', 'buddypress' ); ?></h4> - <p><?php _e( 'New Date Field settings, "Date format" and "Range", make it easier for site administrators to decide how date-based data will be collected and displayed.', 'buddypress' ); ?></p> - </div> + <div class="bp-feature-with-images"> - <div class="bp-feature opposite"> - <span class="dashicons dashicons-groups" aria-hidden="true"></span> - <h4 class="feature-title"><?php esc_html_e( 'Group Types Integration in Templates', 'buddypress' ); ?></h4> - <p><?php - /* translators: %s: URL to the BuddyPress Codex article */ - printf( __( 'Enable developers to show Group Types on the front end as well as control where the group type information is rendered. <a href="%s">Learn how to implement this feature</a>.', 'buddypress' ), - 'https://codex.buddypress.org/developer/group-types/' ); - ?></p> - </div> + <div class="bp-feature-imaged"> + <h4 class="feature-title"><?php esc_html_e( 'More helpful "Activate Pending Accounts" screen', 'buddypress' ); ?></h4> + <img src="<?php echo esc_url( buddypress()->plugin_url . 'bp-core/admin/images/pending-accounts.png' ); ?>" alt="<?php esc_attr_e( 'The improved pending account screen.', 'buddypress' ); ?>"> + <p><?php esc_html_e( 'When you click on the username on the "Users > Manage Signups" page, you can now view profile data entered by the user at the time of registration.', 'buddypress' ); ?></p> + </div> - <div class="bp-feature"> - <span class="dashicons dashicons-admin-multisite" aria-hidden="true"></span> - <h4 class="feature-title"><?php esc_html_e( 'Use the Site Icon as Your Site’s Profile Photo', 'buddypress' ); ?></h4> - <p><?php - /* translators: %s: URL to the WordPress Codex article */ - printf( __( 'BuddyPress sets the site admin’s profile photo as the default site profile photo on the Sites Directory page. You can now <a href="%s">use the Site Icon introduced in WordPress 4.3</a> instead.', 'buddypress' ), - 'https://codex.wordpress.org/Creating_a_Favicon#WordPress_Version_4.3_or_later' ); - ?></p> - </div> + <div class="bp-feature-imaged anon"> + <h4 class="feature-title"><?php + /* translators: %s: List-Unsubscribe */ + printf( __( 'Support for %s header in emails', 'buddypress' ), + '<code>List-Unsubscribe</code>' ); + ?></h4> + <img src="<?php echo esc_url( buddypress()->plugin_url . 'bp-core/admin/images/list-unsubscribe.png' ); ?>" alt="<?php esc_attr_e( 'Email header showing the list-unsubscribe feature.', 'buddypress' ); ?>"> + <p><?php esc_html_e( 'Allow users to unsubscribe from BuddyPress email notifications in some email clients such as Gmail (web), when properly configured.', 'buddypress' ); ?></p> + </div> - <div class="bp-feature opposite"> - <span class="dashicons dashicons-filter" aria-hidden="true"></span> - <h4 class="title"><?php esc_html_e( 'Member Type and Group Type Filters in Users and Groups Admin Screens', 'buddypress' ); ?></h4> - <p><?php esc_html_e( 'Easily filter your members and groups by type and set types in bulk on the users and groups list tables in the dashboard.', 'buddypress' ); ?></p> - </div> + <div class="bp-feature-imaged"> + <h4 class="feature-title"><?php esc_html_e( 'Twenty Seventeen Companion Stylesheet', 'buddypress' ); ?></h4> + <p><?php esc_html_e( 'BuddyPress looks great in WordPress\'s latest default theme with the new Twenty Seventeen companion stylesheet.', 'buddypress' ); ?></p> + <p><?php + /* translators: 1: Link to the Codex article, 2: functions.php */ + printf( __( 'To change the default two-column page layout to a full-width layout as seen in the image, add the <a href="%1$s">following code</a> to the %2$s file of your Twenty Seventeen child theme.', 'buddypress' ), + 'https://codex.buddypress.org/themes/bp-theme-compatibility-and-the-wordpress-default-themes/twenty-seventeen-theme/', + '<code>functions.php</code>' ); + ?></p> + </div> - <div class="bp-feature"> - <span class="dashicons dashicons-clock" aria-hidden="true"></span> - <h4 class="feature-title"><?php esc_html_e( 'Localized Timestamps', 'buddypress' ); ?></h4> - <p><?php esc_html_e( 'Fix inaccurate timestamps due to time zones or page caching with new client-side timestamp handling.', 'buddypress' ); ?></p> - </div> + <div class="bp-feature-imaged anon"> + <img src="<?php echo esc_url( buddypress()->plugin_url . 'bp-core/admin/images/twenty-seventeen.png' ); ?>" alt="<?php esc_attr_e( 'Full-width BuddyPress layout for Twenty Seventeen theme.', 'buddypress' ); ?>"> + </div> - <div class="bp-feature opposite"> - <span class="dashicons dashicons-email" aria-hidden="true"></span> - <h4 class="feature-title"><?php esc_html_e( 'Links to Unsubscribe from Emails', 'buddypress' ); ?></h4> - <p><?php esc_html_e( 'Improve user experience by facilitating the removal of any or all subscriptions via new email tokens and unsubscribe links.', 'buddypress' ); ?></p> + <div class="clear"></div> </div> <div class="bp-feature"> - <span class="dashicons dashicons-admin-page" aria-hidden="true"></span> - <h4 class="title"><?php esc_html_e( 'Use WP Page Names for Headings of BP Directory Pages', 'buddypress' ); ?></h4> - <p><?php esc_html_e( 'Whatever you choose as the title of your Activity, Sites, Members, or Groups directory pages on the back end, is what you’ll get as the heading on the front end.', 'buddypress' ); ?></p> + <span class="dashicons dashicons-testimonial" aria-hidden="true"></span> + <h4 class="feature-title"><?php esc_html_e( 'More hooks for Messages', 'buddypress' ); ?></h4> + <p><?php esc_html_e( 'We\'ve added new filters and actions for different methods throughout the Messages component.', 'buddypress' ); ?></p> </div> <div class="bp-feature opposite"> - <span class="dashicons dashicons-universal-access" aria-hidden="true"></span> - <h4 class="title"><?php esc_html_e( 'Accessibility Updates for the Front End and Back End', 'buddypress' ); ?></h4> - <p><?php esc_html_e( 'Continued improvements for universal access help make BuddyPress back- and front-end screens usable for everyone (and on more devices).', 'buddypress' ); ?></p> + <span class="dashicons dashicons-search" aria-hidden="true"></span> + <h4 class="feature-title"><?php esc_html_e( 'A more flexible Group search', 'buddypress' ); ?></h4> + <p><?php + /* translators: 1: search_column, 2: BP_Groups_Group::get() */ + printf( __( 'The new %1$s parameter allows developers to specify which columns should be matched, as well as where wildcard characters should be placed, when searching via %2$s.', 'buddypress' ), + '<code>search_column</code>', + '<code>BP_Groups_Group::get()</code>' ); + ?></p> </div> <div class="bp-feature"> - <span class="dashicons dashicons-screenoptions" aria-hidden="true"></span> - <h4 class="title"><?php - /* translators: %s: BP_Button */ - printf( __( 'Refactored %s Class to Accept New Arguments', 'buddypress' ), '<code>BP_Button</code>' ); - ?></h4> - <p><?php esc_html_e( 'Provides developers with improved syntax and more control over the rendering of buttons.', 'buddypress' ); ?></p> + <span class="dashicons dashicons-groups" aria-hidden="true"></span> + <h4 class="feature-title"><?php esc_html_e( 'Alphabetical sorting for Groups widget', 'buddypress' ); ?></h4> + <p><?php esc_html_e( 'The groups widget can now be sorted alphabetically, in addition to sorting the results by recently active, popular, and newest groups.', 'buddypress' ); ?></p> </div> <div class="bp-feature opposite"> - <span class="dashicons dashicons-image-filter" aria-hidden="true"></span> - <h4 class="title"><?php esc_html_e( 'Improvements to a Single Group’s Management Screens', 'buddypress' ); ?></h4> - <p><?php esc_html_e( 'Improved markup, new modular group management templates, and a new member search form are just some of the enhancements added to the single group admin screens.', 'buddypress' ); ?></p> - </div> - - <div class="bp-feature"> - <span class="dashicons dashicons-groups" aria-hidden="true"></span> - <h4 class="title"><?php - /* translators: %s: parent_id */ - printf( __( 'Support for Querying for Groups by New Column %s', 'buddypress' ), '<code>parent_id</code>' ); + <span class="dashicons dashicons-email" aria-hidden="true"></span> + <h4 class="feature-title"><?php + /* translators: %s: PHPMailer */ + printf( __( 'Enable choice of %s', 'buddypress' ), '<code>PHPMailer</code>' ); ?></h4> - <p><?php esc_html_e( 'Query support for hierarchical groups makes it much easier for developers to add custom front-end functionality.', 'buddypress' ); ?></p> - </div> - - <div class="bp-feature opposite"> - <span class="dashicons dashicons-chart-bar" aria-hidden="true"></span> - <h4 class="title"><?php esc_html_e( 'Many, Many Performance Improvements', 'buddypress' ); ?></h4> <p><?php - /* translators: %s: bp_get_user_groups() */ - printf( __( 'Improved performance by removing extra database queries, adding new cache calls, and removing the number of loops in %s.', 'buddypress' ), '<code>bp_get_user_groups()</code>' ); + /* translators: %s: PHPMailer */ + printf( __( 'Developers can specify which %s should be used when sending BuddyPress with a new filter.', 'buddypress' ), '<code>PHPMailer</code>' ); ?></p> </div> - <div class="clear"></div> </div> <div class="bp-changelog-section"> - <h3 class="changelog-title"><?php esc_html_e( 'And so much more!', 'buddypress' ); ?></h3> - <p class="bp-changelog-url"><?php - /* translators: %s: URL to the BuddyPress Codex article */ - printf( __( '<a href="%s">Changelog for BuddyPress 2.7.</a>', 'buddypress' ), - 'https://codex.buddypress.org/releases/version-2-7-0/' ); - ?></p> + <h3 class="changelog-title"><?php esc_html_e( 'More under the hood …', 'buddypress' ); ?></h3> + <div class="bp-changelog three-col"> + <div class="col"> + <h4 class="title"><?php esc_html_e( 'Localization Improvements', 'buddypress' ); ?></h4> + <p><?php esc_html_e( 'We continue to improve our localization internals, making it easier for translation editors to ensure that BuddyPress will be available for everyone in their own language.', 'buddypress' ); ?></p> + </div> + <div class="col"> + <h4 class="title"><?php esc_html_e( 'Developer Reference', 'buddypress' ); ?></h4> + <p><?php esc_html_e( 'Regular updates to inline code documentation make it easier for developers to understand how BuddyPress works.', 'buddypress' ); ?></p> + </div> + <div class="col"> + <h4 class="title"><?php esc_html_e( 'Accessibility Upgrades', 'buddypress' ); ?></h4> + <p><?php esc_html_e( 'Continued improvements for universal access help make BuddyPress back- and front-end screens usable for everyone (and on more devices).', 'buddypress' ); ?></p> + </div> + </div> + <div class="clear"></div> </div> <div class="bp-assets"> @@ -783,10 +769,10 @@ class BP_Admin { <h3 class="wp-people-group"><?php _e( 'BuddyPress Team', 'buddypress' ); ?></h3> <ul class="wp-people-group " id="wp-people-group-core-team"> - <li class="wp-person" id="wp-person-mercime"> - <a class="web" href="https://profiles.wordpress.org/mercime"><img alt="" class="gravatar" src="//www.gravatar.com/avatar/fae451be6708241627983570a1a1817a?s=60"> - Mercime</a> - <span class="title"><?php _e( '2.7 Release Lead', 'buddypress' ); ?></span> + <li class="wp-person" id="wp-person-slaffik"> + <a class="web" href="https://profiles.wordpress.org/r-a-y"><img alt="" class="gravatar" src="//www.gravatar.com/avatar/61fb07ede3247b63f19015f200b3eb2c?s=60"> + Slava Abakumov</a> + <span class="title"><?php _e( '2.8 Release Lead', 'buddypress' ); ?></span> </li> <li class="wp-person" id="wp-person-r-a-y"> <a class="web" href="https://profiles.wordpress.org/r-a-y"><img alt="" class="gravatar" src="//www.gravatar.com/avatar/3bfa556a62b5bfac1012b6ba5f42ebfa?s=60"> @@ -798,6 +784,11 @@ class BP_Admin { Mathieu Viet</a> <span class="title"><?php _e( 'Core Developer', 'buddypress' ); ?></span> </li> + <li class="wp-person" id="wp-person-mercime"> + <a class="web" href="https://profiles.wordpress.org/mercime"><img alt="" class="gravatar" src="//www.gravatar.com/avatar/fae451be6708241627983570a1a1817a?s=60"> + Mercime</a> + <span class="title"><?php _e( 'Navigator', 'buddypress' ); ?></span> + </li> <li class="wp-person" id="wp-person-dcavins"> <a class="web" href="https://profiles.wordpress.org/dcavins"><img alt="" class="gravatar" src="//www.gravatar.com/avatar/a5fa7e83d59cb45ebb616235a176595a?s=60"> David Cavins</a> @@ -828,22 +819,25 @@ class BP_Admin { shanebp</a> <span class="title"><?php _e( 'Community Support', 'buddypress' ); ?></span> </li> - </ul> - <h3 class="wp-people-group"><?php _e( '🌟Recent Rockstars🌟', 'buddypress' ); ?></h3> - <ul class="wp-people-group " id="wp-people-group-rockstars"> + <li class="wp-person" id="wp-person-offereins"> + <a class="web" href="https://profiles.wordpress.org/Offereins"><img alt="" class="gravatar" src="//www.gravatar.com/avatar/2404ed0a35bb41aedefd42b0a7be61c1?s=60"> + Laurens Offereins</a> + <span class="title"><?php _e( 'Core Developer', 'buddypress' ); ?></span> + </li> <li class="wp-person" id="wp-person-netweb"> <a class="web" href="https://profiles.wordpress.org/netweb"><img alt="" class="gravatar" src="//www.gravatar.com/avatar/97e1620b501da675315ba7cfb740e80f?s=60"> Stephen Edgar</a> + <span class="title"><?php _e( 'Core Developer', 'buddypress' ); ?></span> </li> + </ul> + + <h3 class="wp-people-group"><?php _e( '🌟Recent Rockstars🌟', 'buddypress' ); ?></h3> + <ul class="wp-people-group " id="wp-people-group-rockstars"> <li class="wp-person" id="wp-person-dimensionmedia"> <a class="web" href="https://profiles.wordpress.org/dimensionmedia"><img alt="" class="gravatar" src="//www.gravatar.com/avatar/7735aada1ec39d0c1118bd92ed4551f1?s=60"> David Bisset</a> </li> - <li class="wp-person" id="wp-person-offereins"> - <a class="web" href="https://profiles.wordpress.org/Offereins"><img alt="" class="gravatar" src="//www.gravatar.com/avatar/2404ed0a35bb41aedefd42b0a7be61c1?s=60"> - Laurens Offereins</a> - </li> <li class="wp-person" id="wp-person-garrett-eclipse"> <a class="web" href="https://profiles.wordpress.org/garrett-eclipse"><img alt="" class="gravatar" src="//www.gravatar.com/avatar/7f68f24441c61514d5d0e1451bb5bc9d?s=60"> Garrett Hyder</a> @@ -856,51 +850,53 @@ class BP_Admin { <a class="web" href="https://profiles.wordpress.org/ramiy"><img alt="" class="gravatar" src="//www.gravatar.com/avatar/ce2a269e424156d79cb0c4e1d4d82db1?s=60"> Rami Yushuvaev</a> </li> - <li class="wp-person" id="wp-person-slaffik"> - <a class="web" href="https://profiles.wordpress.org/slaffik/"><img alt="" class="gravatar" src="//www.gravatar.com/avatar/61fb07ede3247b63f19015f200b3eb2c?s=60"> - Slava Abakumov</a> - </li> </ul> <h3 class="wp-people-group"><?php printf( esc_html__( 'Contributors to BuddyPress %s', 'buddypress' ), self::display_version() ); ?></h3> <p class="wp-credits-list"> - <a href="https://profiles.wordpress.org/jorbin/">Aaron Jorbin (jorbin)</a>, - <a href="https://profiles.wordpress.org/abwebstudio1/">abwebstudio1</a>, + <a href="https://profiles.wordpress.org/dontdream/">Andrea Tarantini (dontdream)</a>, + <a href="https://profiles.wordpress.org/ankit-k-gupta/">Ankit K Gupta (ankit-k-gupta)</a>, + <a href="https://profiles.wordpress.org/angeljs/">angeljs</a>, <a href="https://profiles.wordpress.org/boonebgorges/">Boone B Gorges (boonebgorges)</a>, - <a href="https://profiles.wordpress.org/sbrajesh/">Brajesh Singh (sbrajesh)</a>, - <a href="https://profiles.wordpress.org/needle/">Christian Wach (needle)</a>, + <a href="https://profiles.wordpress.org/thebrandonallen/">Brandon Allen (thebrandonallen)</a>, + <a href="https://profiles.wordpress.org/bhargavbhandari90/">Bunty (bhargavbhandari90)</a>, + <a href="https://profiles.wordpress.org/ketuchetan/">chetansatasiya (ketuchetan)</a>, + <a href="https://profiles.wordpress.org/chiragpatel/">Chirag Patel (chiragpatel)</a>, <a href="https://profiles.wordpress.org/danbp/">danbp</a>, - <a href="https://profiles.wordpress.org/danielhuesken/">Daniel Hüsken (danielhuesken)</a>, <a href="https://profiles.wordpress.org/dcavins/">David Cavins (dcavins)</a>, - <a href="https://profiles.wordpress.org/demon_ru/">demon_ru</a>, <a href="https://profiles.wordpress.org/wpdennis/">Dennis (wpdennis)</a>, - <a href="https://profiles.wordpress.org/ericlewis/">Eric Andrew Lewis (ericlewis)</a>, - <a href="https://profiles.wordpress.org/henrywright/">Henry Wright (henry.wright)</a>, - <a href="https://profiles.wordpress.org/herbovec/">herbovec</a>, + <a href="https://profiles.wordpress.org/Dianakc/">Diana K. Cury (Dianakc)</a>, + <a href="https://profiles.wordpress.org/finzend/">finzend</a>, <a href="https://profiles.wordpress.org/hnla/">Hugo (hnla)</a>, <a href="https://profiles.wordpress.org/jdgrimes/">J.D. Grimes (jdgrimes)</a>, <a href="https://profiles.wordpress.org/johnjamesjacoby/">John James Jacoby (johnjamesjacoby)</a>, - <a href="https://profiles.wordpress.org/dunhakdis/">Joseph G. (dunhakdis)</a>, - <a href="https://profiles.wordpress.org/kitsunesolar/">kitsunesolar</a>, + <a href="https://profiles.wordpress.org/jonas-lundman/">Jonas Lundman (jonas-lundman)</a>, + <a href="https://profiles.wordpress.org/jonieske/">jonieske</a>, + <a href="https://profiles.wordpress.org/jreeve/">jreeve</a>, <a href="https://profiles.wordpress.org/lakrisgubben/">lakrisgubben</a>, <a href="https://profiles.wordpress.org/Offereins">Laurens Offereins (Offereins)</a>, + <a href="https://profiles.wordpress.org/lgreenwoo/">lgreenwoo</a>, + <a href="https://profiles.wordpress.org/maccast/">maccast</a>, <a href="https://profiles.wordpress.org/imath/">Mathieu Viet (imath)</a>, + <a href="https://profiles.wordpress.org/mchansy/">mchansy</a>, <a href="https://profiles.wordpress.org/mercime/">mercime</a>, <a href="https://profiles.wordpress.org/tw2113/">Michael Beckwith (tw2113)</a>, - <a href="https://profiles.wordpress.org/michaelbeil/">Michael Beil (michaelbeil)</a>, - <a href="https://profiles.wordpress.org/swissspidy/">Pascal Birchler (swissspidy)</a>, + <a href="https://profiles.wordpress.org/modemlooper/">modemlooper</a>, + <a href="https://profiles.wordpress.org/m_uysl/">Mustafa Uysal (m_uysl)</a>, + <a href="https://profiles.wordpress.org/nickmomrik/">Nick Momrik (nickmomrik)</a>, <a href="https://profiles.wordpress.org/DJPaul/">Paul Gibbs (DJPaul)</a>, + <a href="https://profiles.wordpress.org/pareshradadiya/">paresh.radadiya (pareshradadiya)</a>, + <a href="https://profiles.wordpress.org/petya/">Petya Raykovska</a>, <a href="https://profiles.wordpress.org/r-a-y/">r-a-y</a>, + <a href="https://profiles.wordpress.org/rekmla/">rekmla</a>, <a href="https://profiles.wordpress.org/espellcaste/">Renato Alves (espellcaste)</a>, - <a href="https://profiles.wordpress.org/scharc/">scharc</a>, + <a href="https://profiles.wordpress.org/rogercoathup/">Roger Coathup (rogercoathup)</a>, + <a href="https://profiles.wordpress.org/DarkWolf/">Salvatore (DarkWolf)</a>, + <a href="https://profiles.wordpress.org/sanket.parmar/">Sanket Parmar (sanket.parmar)</a>, <a href="https://profiles.wordpress.org/slaffik/">Slava Abakumov (slaffik)</a>, - <a href="https://profiles.wordpress.org/spenser4551/">spenser4551</a>, + <a href="https://profiles.wordpress.org/stagger-lee/">Stagger Lee (stagger-lee)</a>, <a href="https://profiles.wordpress.org/netweb/">Stephen Edgar (netweb)</a>, - <a href="https://profiles.wordpress.org/svenl77/">Sven Lehnert (svenl77)</a>, - <a href="https://profiles.wordpress.org/tharsheblows/">tharsheblows</a>, - <a href="https://profiles.wordpress.org/thomaslhotta/">thomaslhotta</a>, - <a href="https://profiles.wordpress.org/tomas711/">tomas711</a>, - <a href="https://profiles.wordpress.org/venturavan2/">venturavan2</a>, + <a href="https://profiles.wordpress.org/mahype/">Sven Wagener (mahype)</a>, <a href="https://profiles.wordpress.org/wordpressrene/">wordpressrene</a>. </p> @@ -933,7 +929,7 @@ class BP_Admin { // Switch welcome text based on whether this is a new installation or not. $welcome_text = ( self::is_new_install() ) ? __( 'Thank you for installing BuddyPress! BuddyPress helps site builders and WordPress developers add community features to their websites, with user profile fields, activity streams, messaging, and notifications.', 'buddypress' ) - : __( 'Thank you for updating! BuddyPress %s has many new features that you will enjoy.', 'buddypress' ); + : __( 'Thank you for updating! BuddyPress %s has many new improvements that you will enjoy.', 'buddypress' ); ?> diff --git a/wp-content/plugins/buddypress/bp-core/classes/class-bp-attachment-avatar.php b/wp-content/plugins/buddypress/bp-core/classes/class-bp-attachment-avatar.php index a4c9ba609..f15d8edbc 100644 --- a/wp-content/plugins/buddypress/bp-core/classes/class-bp-attachment-avatar.php +++ b/wp-content/plugins/buddypress/bp-core/classes/class-bp-attachment-avatar.php @@ -204,11 +204,23 @@ class BP_Attachment_Avatar extends BP_Attachment { return false; } + if ( ! bp_attachments_current_user_can( 'edit_avatar', $args ) ) { + return false; + } + + if ( 'user' === $args['object'] ) { + $avatar_dir = 'avatars'; + } else { + $avatar_dir = sanitize_key( $args['object'] ) . '-avatars'; + } + + $args['item_id'] = (int) $args['item_id']; + /** * Original file is a relative path to the image * eg: /avatars/1/avatar.jpg */ - $relative_path = $args['original_file']; + $relative_path = sprintf( '/%s/%s/%s', $avatar_dir, $args['item_id'], basename( $args['original_file'] ) ); $absolute_path = $this->upload_path . $relative_path; // Bail if the avatar is not available. diff --git a/wp-content/plugins/buddypress/bp-core/classes/class-bp-attachment.php b/wp-content/plugins/buddypress/bp-core/classes/class-bp-attachment.php index 54f822f06..27d232535 100644 --- a/wp-content/plugins/buddypress/bp-core/classes/class-bp-attachment.php +++ b/wp-content/plugins/buddypress/bp-core/classes/class-bp-attachment.php @@ -273,11 +273,11 @@ abstract class BP_Attachment { // Restore WordPress Uploads data. if ( ! empty( $upload_dir_filter ) ) { - remove_filter( 'upload_dir', $upload_dir_filter, 10, $this->upload_dir_filter_args ); + remove_filter( 'upload_dir', $upload_dir_filter, 10 ); } // Remove the pre WordPress 4.0 static filter. - remove_filter( 'wp_handle_upload_prefilter', array( $this, 'validate_upload' ), 10, 1 ); + remove_filter( 'wp_handle_upload_prefilter', array( $this, 'validate_upload' ), 10 ); // Finally return the uploaded file or the error. return $this->attachment; diff --git a/wp-content/plugins/buddypress/bp-core/classes/class-bp-core-login-widget.php b/wp-content/plugins/buddypress/bp-core/classes/class-bp-core-login-widget.php index 359c60cb3..6e975d019 100644 --- a/wp-content/plugins/buddypress/bp-core/classes/class-bp-core-login-widget.php +++ b/wp-content/plugins/buddypress/bp-core/classes/class-bp-core-login-widget.php @@ -117,7 +117,7 @@ class BP_Core_Login_Widget extends WP_Widget { <?php if ( bp_get_signup_allowed() ) : ?> - <span class="bp-login-widget-register-link"><a href="<?php echo esc_url( bp_get_signup_page() ); ?>" title="<?php esc_attr_e( 'Register for a new account', 'buddypress' ); ?>"><?php _e( 'Register', 'buddypress' ); ?></a></span> + <span class="bp-login-widget-register-link"><a href="<?php echo esc_url( bp_get_signup_page() ); ?>"><?php _e( 'Register', 'buddypress' ); ?></a></span> <?php endif; ?> diff --git a/wp-content/plugins/buddypress/bp-core/classes/class-bp-core-nav-item.php b/wp-content/plugins/buddypress/bp-core/classes/class-bp-core-nav-item.php index 8b901b302..a71bfe516 100644 --- a/wp-content/plugins/buddypress/bp-core/classes/class-bp-core-nav-item.php +++ b/wp-content/plugins/buddypress/bp-core/classes/class-bp-core-nav-item.php @@ -3,8 +3,6 @@ // Exit if accessed directly. defined( 'ABSPATH' ) || exit; -if ( class_exists( 'ArrayObject' ) ) : - /** * Navigation item. * @@ -15,20 +13,3 @@ class BP_Core_Nav_Item extends ArrayObject { parent::__construct( $data, ArrayObject::ARRAY_AS_PROPS ); } } - -else : - -/** - * Navigation item. - * - * @since 2.6.0 - */ -class BP_Core_Nav_Item { - public function __construct( $data ) { - foreach ( $data as $key => $value ) { - $this->key = $value; - } - } -} - -endif; diff --git a/wp-content/plugins/buddypress/bp-core/classes/class-bp-core-user.php b/wp-content/plugins/buddypress/bp-core/classes/class-bp-core-user.php index f102892d1..6df3b1fd6 100644 --- a/wp-content/plugins/buddypress/bp-core/classes/class-bp-core-user.php +++ b/wp-content/plugins/buddypress/bp-core/classes/class-bp-core-user.php @@ -723,16 +723,6 @@ class BP_Core_User { } } - if ( 'active' != $type ) { - $user_activity = $wpdb->get_results( $wpdb->prepare( "SELECT user_id as id, meta_value as last_activity FROM {$wpdb->usermeta} WHERE meta_key = %s AND user_id IN ( {$user_ids} )", bp_get_user_meta_key( 'last_activity' ) ) ); - for ( $i = 0, $count = count( $paged_users ); $i < $count; ++$i ) { - foreach ( (array) $user_activity as $activity ) { - if ( $activity->id == $paged_users[$i]->id ) - $paged_users[$i]->last_activity = $activity->last_activity; - } - } - } - // Fetch the user's last_activity. if ( 'active' != $type ) { $user_activity = $wpdb->get_results( $wpdb->prepare( "SELECT user_id as id, meta_value as last_activity FROM {$wpdb->usermeta} WHERE meta_key = %s AND user_id IN ( {$user_ids} )", bp_get_user_meta_key( 'last_activity' ) ) ); diff --git a/wp-content/plugins/buddypress/bp-core/classes/class-bp-core.php b/wp-content/plugins/buddypress/bp-core/classes/class-bp-core.php index 3f526079e..3fc94e37a 100644 --- a/wp-content/plugins/buddypress/bp-core/classes/class-bp-core.php +++ b/wp-content/plugins/buddypress/bp-core/classes/class-bp-core.php @@ -254,10 +254,8 @@ class BP_Core extends BP_Component { $bp->core->table_name_notifications = $bp->table_prefix . 'bp_notifications'; // Backward compatibility for plugins modifying the legacy bp_nav and bp_options_nav global properties. - if ( buddypress()->do_nav_backcompat ) { - $bp->bp_nav = new BP_Core_BP_Nav_BackCompat(); - $bp->bp_options_nav = new BP_Core_BP_Options_Nav_BackCompat(); - } + $bp->bp_nav = new BP_Core_BP_Nav_BackCompat(); + $bp->bp_options_nav = new BP_Core_BP_Options_Nav_BackCompat(); /** * Used to determine if user has admin rights on current content. If the diff --git a/wp-content/plugins/buddypress/bp-core/classes/class-bp-media-extractor.php b/wp-content/plugins/buddypress/bp-core/classes/class-bp-media-extractor.php index 56bd92ff3..32ed41d14 100644 --- a/wp-content/plugins/buddypress/bp-core/classes/class-bp-media-extractor.php +++ b/wp-content/plugins/buddypress/bp-core/classes/class-bp-media-extractor.php @@ -469,7 +469,7 @@ class BP_Media_Extractor { if ( ! empty( $matches[2] ) ) { foreach ( $matches[2] as $i => $shortcode_name ) { $attrs = shortcode_parse_atts( $matches[3][ $i ] ); - $attrs = ( ! $attrs ) ? array() : $attrs; + $attrs = ( ! $attrs ) ? array() : (array) $attrs; $shortcode = array(); $shortcode['attributes'] = $attrs; // Attributes. diff --git a/wp-content/plugins/buddypress/bp-core/classes/class-bp-phpmailer.php b/wp-content/plugins/buddypress/bp-core/classes/class-bp-phpmailer.php index bfb2c7481..252caf0d2 100644 --- a/wp-content/plugins/buddypress/bp-core/classes/class-bp-phpmailer.php +++ b/wp-content/plugins/buddypress/bp-core/classes/class-bp-phpmailer.php @@ -27,7 +27,18 @@ class BP_PHPMailer implements BP_Email_Delivery { public function bp_email( BP_Email $email ) { static $phpmailer = null; - if ( $phpmailer === null ) { + /** + * Filter PHPMailer object to use. + * + * Specify an alternative version of PHPMailer to use instead of WordPress' default. + * + * @since 2.8.0 + * + * @param null|PHPMailer $phpmailer The phpmailer class. + */ + $phpmailer = apply_filters( 'bp_phpmailer_object', $phpmailer ); + + if ( ! ( $phpmailer instanceof PHPMailer ) ) { if ( ! class_exists( 'PHPMailer' ) ) { require_once ABSPATH . WPINC . '/class-phpmailer.php'; require_once ABSPATH . WPINC . '/class-smtp.php'; diff --git a/wp-content/plugins/buddypress/bp-core/classes/class-bp-user-query.php b/wp-content/plugins/buddypress/bp-core/classes/class-bp-user-query.php index 0d1be8e86..34ecfbdf8 100644 --- a/wp-content/plugins/buddypress/bp-core/classes/class-bp-user-query.php +++ b/wp-content/plugins/buddypress/bp-core/classes/class-bp-user-query.php @@ -247,7 +247,7 @@ class BP_User_Query { // Setup the main SQL query container. $sql = array( 'select' => '', - 'where' => array(), + 'where' => array('1=1'), 'orderby' => '', 'order' => '', 'limit' => '' diff --git a/wp-content/plugins/buddypress/bp-core/classes/class-bp-walker-nav-menu.php b/wp-content/plugins/buddypress/bp-core/classes/class-bp-walker-nav-menu.php index d24ecdc6d..c88181f5a 100644 --- a/wp-content/plugins/buddypress/bp-core/classes/class-bp-walker-nav-menu.php +++ b/wp-content/plugins/buddypress/bp-core/classes/class-bp-walker-nav-menu.php @@ -55,9 +55,7 @@ class BP_Walker_Nav_Menu extends Walker_Nav_Menu { * @return string See {@link Walker::walk()}. */ public function walk( $elements, $max_depth ) { - $func_args = func_get_args(); - - $args = array_slice( $func_args, 2 ); + $args = array_slice( func_get_args(), 2 ); $output = ''; if ( $max_depth < -1 ) // Invalid parameter. diff --git a/wp-content/plugins/buddypress/bp-core/css/admin-bar-rtl.css b/wp-content/plugins/buddypress/bp-core/css/admin-bar-rtl.css index 5e37f32ef..96a64798d 100644 --- a/wp-content/plugins/buddypress/bp-core/css/admin-bar-rtl.css +++ b/wp-content/plugins/buddypress/bp-core/css/admin-bar-rtl.css @@ -24,7 +24,7 @@ #wpadminbar .quicklinks li#wp-admin-bar-my-account a span.count, #wpadminbar .quicklinks li#wp-admin-bar-my-account-with-avatar a span.count, #wpadminbar .quicklinks li#wp-admin-bar-bp-notifications #ab-pending-notifications { - background: #21759B; + background: #21759b; color: #fff; text-shadow: none; display: inline; @@ -44,7 +44,7 @@ } #wpadminbar .quicklinks li#wp-admin-bar-bp-notifications #ab-pending-notifications.alert { - background-color: #1fb3dd; + background-color: #21759b; color: #fff; } diff --git a/wp-content/plugins/buddypress/bp-core/css/admin-bar-rtl.min.css b/wp-content/plugins/buddypress/bp-core/css/admin-bar-rtl.min.css index ae9202dc6..83e9e007f 100644 --- a/wp-content/plugins/buddypress/bp-core/css/admin-bar-rtl.min.css +++ b/wp-content/plugins/buddypress/bp-core/css/admin-bar-rtl.min.css @@ -1 +1 @@ -#wpadminbar .quicklinks li#wp-admin-bar-group-admin-with-avatar>a img,#wpadminbar .quicklinks li#wp-admin-bar-user-admin-with-avatar>a img{width:16px;height:16px;display:inline;border:1px solid #999;vertical-align:middle;margin:-2px -5px 0 10px;padding:0;background:#eee;float:none}#wpadminbar .quicklinks li#wp-admin-bar-group-admin-with-avatar ul,#wpadminbar .quicklinks li#wp-admin-bar-group-admin-with-avatar ul ul{right:0}#wpadminbar .quicklinks li#wp-admin-bar-bp-notifications #ab-pending-notifications,#wpadminbar .quicklinks li#wp-admin-bar-my-account a span.count,#wpadminbar .quicklinks li#wp-admin-bar-my-account-with-avatar a span.count{background:#21759B;color:#fff;text-shadow:none;display:inline;padding:2px 5px;font-size:10px;font-weight:700;-moz-border-radius:10px;-khtml-border-radius:10px;-webkit-border-radius:10px;border-radius:10px}#wpadminbar .quicklinks li#wp-admin-bar-bp-notifications #ab-pending-notifications{background:#ddd;color:#333;margin:0}#wpadminbar .quicklinks li#wp-admin-bar-bp-notifications #ab-pending-notifications.alert{background-color:#1fb3dd;color:#fff}#wpadminbar .quicklinks li#wp-admin-bar-bp-notifications>a{padding:0 .5em}#wp-admin-bar-user-info img.avatar{height:64px;width:64px}#wpadminbar .wp-admin-bar-arrow-right{display:none}@media screen and (max-width:600px){#wpadminbar .wp-admin-bar-arrow-right{display:block}} \ No newline at end of file +#wpadminbar .quicklinks li#wp-admin-bar-group-admin-with-avatar>a img,#wpadminbar .quicklinks li#wp-admin-bar-user-admin-with-avatar>a img{width:16px;height:16px;display:inline;border:1px solid #999;vertical-align:middle;margin:-2px -5px 0 10px;padding:0;background:#eee;float:none}#wpadminbar .quicklinks li#wp-admin-bar-group-admin-with-avatar ul,#wpadminbar .quicklinks li#wp-admin-bar-group-admin-with-avatar ul ul{right:0}#wpadminbar .quicklinks li#wp-admin-bar-bp-notifications #ab-pending-notifications,#wpadminbar .quicklinks li#wp-admin-bar-my-account a span.count,#wpadminbar .quicklinks li#wp-admin-bar-my-account-with-avatar a span.count{background:#21759b;color:#fff;text-shadow:none;display:inline;padding:2px 5px;font-size:10px;font-weight:700;-moz-border-radius:10px;-khtml-border-radius:10px;-webkit-border-radius:10px;border-radius:10px}#wpadminbar .quicklinks li#wp-admin-bar-bp-notifications #ab-pending-notifications{background:#ddd;color:#333;margin:0}#wpadminbar .quicklinks li#wp-admin-bar-bp-notifications #ab-pending-notifications.alert{background-color:#21759b;color:#fff}#wpadminbar .quicklinks li#wp-admin-bar-bp-notifications>a{padding:0 .5em}#wp-admin-bar-user-info img.avatar{height:64px;width:64px}#wpadminbar .wp-admin-bar-arrow-right{display:none}@media screen and (max-width:600px){#wpadminbar .wp-admin-bar-arrow-right{display:block}} \ No newline at end of file diff --git a/wp-content/plugins/buddypress/bp-core/css/admin-bar.css b/wp-content/plugins/buddypress/bp-core/css/admin-bar.css index 2f99e8f14..93a38e80a 100644 --- a/wp-content/plugins/buddypress/bp-core/css/admin-bar.css +++ b/wp-content/plugins/buddypress/bp-core/css/admin-bar.css @@ -24,7 +24,7 @@ #wpadminbar .quicklinks li#wp-admin-bar-my-account a span.count, #wpadminbar .quicklinks li#wp-admin-bar-my-account-with-avatar a span.count, #wpadminbar .quicklinks li#wp-admin-bar-bp-notifications #ab-pending-notifications { - background: #21759B; + background: #21759b; color: #fff; text-shadow: none; display: inline; @@ -44,7 +44,7 @@ } #wpadminbar .quicklinks li#wp-admin-bar-bp-notifications #ab-pending-notifications.alert { - background-color: #1fb3dd; + background-color: #21759b; color: #fff; } diff --git a/wp-content/plugins/buddypress/bp-core/css/admin-bar.min.css b/wp-content/plugins/buddypress/bp-core/css/admin-bar.min.css index a47e232b2..f828bf3ff 100644 --- a/wp-content/plugins/buddypress/bp-core/css/admin-bar.min.css +++ b/wp-content/plugins/buddypress/bp-core/css/admin-bar.min.css @@ -1 +1 @@ -#wpadminbar .quicklinks li#wp-admin-bar-group-admin-with-avatar>a img,#wpadminbar .quicklinks li#wp-admin-bar-user-admin-with-avatar>a img{width:16px;height:16px;display:inline;border:1px solid #999;vertical-align:middle;margin:-2px 10px 0 -5px;padding:0;background:#eee;float:none}#wpadminbar .quicklinks li#wp-admin-bar-group-admin-with-avatar ul,#wpadminbar .quicklinks li#wp-admin-bar-group-admin-with-avatar ul ul{left:0}#wpadminbar .quicklinks li#wp-admin-bar-bp-notifications #ab-pending-notifications,#wpadminbar .quicklinks li#wp-admin-bar-my-account a span.count,#wpadminbar .quicklinks li#wp-admin-bar-my-account-with-avatar a span.count{background:#21759B;color:#fff;text-shadow:none;display:inline;padding:2px 5px;font-size:10px;font-weight:700;-moz-border-radius:10px;-khtml-border-radius:10px;-webkit-border-radius:10px;border-radius:10px}#wpadminbar .quicklinks li#wp-admin-bar-bp-notifications #ab-pending-notifications{background:#ddd;color:#333;margin:0}#wpadminbar .quicklinks li#wp-admin-bar-bp-notifications #ab-pending-notifications.alert{background-color:#1fb3dd;color:#fff}#wpadminbar .quicklinks li#wp-admin-bar-bp-notifications>a{padding:0 .5em}#wp-admin-bar-user-info img.avatar{height:64px;width:64px}#wpadminbar .wp-admin-bar-arrow-right{display:none}@media screen and (max-width:600px){#wpadminbar .wp-admin-bar-arrow-right{display:block}} \ No newline at end of file +#wpadminbar .quicklinks li#wp-admin-bar-group-admin-with-avatar>a img,#wpadminbar .quicklinks li#wp-admin-bar-user-admin-with-avatar>a img{width:16px;height:16px;display:inline;border:1px solid #999;vertical-align:middle;margin:-2px 10px 0 -5px;padding:0;background:#eee;float:none}#wpadminbar .quicklinks li#wp-admin-bar-group-admin-with-avatar ul,#wpadminbar .quicklinks li#wp-admin-bar-group-admin-with-avatar ul ul{left:0}#wpadminbar .quicklinks li#wp-admin-bar-bp-notifications #ab-pending-notifications,#wpadminbar .quicklinks li#wp-admin-bar-my-account a span.count,#wpadminbar .quicklinks li#wp-admin-bar-my-account-with-avatar a span.count{background:#21759b;color:#fff;text-shadow:none;display:inline;padding:2px 5px;font-size:10px;font-weight:700;-moz-border-radius:10px;-khtml-border-radius:10px;-webkit-border-radius:10px;border-radius:10px}#wpadminbar .quicklinks li#wp-admin-bar-bp-notifications #ab-pending-notifications{background:#ddd;color:#333;margin:0}#wpadminbar .quicklinks li#wp-admin-bar-bp-notifications #ab-pending-notifications.alert{background-color:#21759b;color:#fff}#wpadminbar .quicklinks li#wp-admin-bar-bp-notifications>a{padding:0 .5em}#wp-admin-bar-user-info img.avatar{height:64px;width:64px}#wpadminbar .wp-admin-bar-arrow-right{display:none}@media screen and (max-width:600px){#wpadminbar .wp-admin-bar-arrow-right{display:block}} \ No newline at end of file diff --git a/wp-content/plugins/buddypress/bp-core/deprecated/2.5.php b/wp-content/plugins/buddypress/bp-core/deprecated/2.5.php index 8656353ed..70809da58 100644 --- a/wp-content/plugins/buddypress/bp-core/deprecated/2.5.php +++ b/wp-content/plugins/buddypress/bp-core/deprecated/2.5.php @@ -62,7 +62,7 @@ function bp_core_deprecated_email_filters( $value, $property, $transform, $email 'settings-verify-email-change', ); - remove_filter( 'bp_email_get_property', 'bp_core_deprecated_email_filters', 20, 4 ); + remove_filter( 'bp_email_get_property', 'bp_core_deprecated_email_filters', 20 ); $email_type = $email->get( 'type' ); $tokens = $email->get( 'tokens' ); add_filter( 'bp_email_get_property', 'bp_core_deprecated_email_filters', 20, 4 ); @@ -701,7 +701,7 @@ function bp_core_deprecated_email_actions( $delivery_status, $email ) { 'settings-verify-email-change', ); - remove_action( 'bp_send_email_success', 'bp_core_deprecated_email_actions', 20, 2 ); + remove_action( 'bp_send_email_success', 'bp_core_deprecated_email_actions', 20 ); $email_content = $email->get( 'content' ); $email_subject = $email->get( 'subject' ); $email_type = $email->get( 'type' ); diff --git a/wp-content/plugins/buddypress/bp-core/deprecated/2.8.php b/wp-content/plugins/buddypress/bp-core/deprecated/2.8.php new file mode 100644 index 000000000..46491651c --- /dev/null +++ b/wp-content/plugins/buddypress/bp-core/deprecated/2.8.php @@ -0,0 +1,199 @@ +<?php +/** + * Deprecated functions. + * + * @deprecated 2.8.0 + */ + +// Exit if accessed directly. +defined( 'ABSPATH' ) || exit; + +/** + * Determines whether the current installation is running PHP 5.3 or greater. + * + * BuddyPress 2.8 introduces a minimum PHP requirement of PHP 5.3. + * + * @since 2.7.0 + * @deprecated 2.8.0 + * + * @return bool + */ +function bp_core_admin_is_running_php53_or_greater() { + return version_compare( PHP_VERSION, '5.3', '>=' ); +} + +/** + * Replaces WP's default update notice on plugins.php with an error message, when site is not running PHP 5.3 or greater. + * + * Originally hooked to 'load-plugins.php' with priority 100. + * + * @since 2.7.0 + * @deprecated 2.8.0 + */ +function bp_core_admin_maybe_disable_update_row_for_php53_requirement() { + if ( bp_core_admin_is_running_php53_or_greater() ) { + return; + } + + $loader = basename( constant( 'BP_PLUGIN_DIR' ) ) . '/bp-loader.php'; + + remove_action( "after_plugin_row_{$loader}", 'wp_plugin_update_row', 10 ); + add_action( "after_plugin_row_{$loader}", 'bp_core_admin_php52_plugin_row', 10, 2 ); +} + +/** + * On the "Dashboard > Updates" page, remove BuddyPress from plugins list if PHP < 5.3. + * + * Originally hooked to 'load-update-core.php'. + * + * @since 2.7.0 + * @deprecated 2.8.0 + */ +function bp_core_admin_maybe_remove_from_update_core() { + if ( bp_core_admin_is_running_php53_or_greater() ) { + return; + } + + // Add filter to remove BP from the update plugins list. + add_filter( 'site_transient_update_plugins', 'bp_core_admin_remove_buddypress_from_update_transient' ); +} + +/** + * Filter callback to remove BuddyPress from the update plugins list. + * + * Attached to the 'site_transient_update_plugins' filter. + * + * @since 2.7.0 + * @deprecated 2.8.0 + * + * @param object $retval Object of plugin update data. + * @return object + */ +function bp_core_admin_remove_buddypress_from_update_transient( $retval ) { + $loader = basename( constant( 'BP_PLUGIN_DIR' ) ) . '/bp-loader.php'; + + // Remove BP from update plugins list. + if ( isset( $retval->response[ $loader ] ) ) { + unset( $retval->response[ $loader ] ); + } + + return $retval; +} + +/** + * Outputs a replacement for WP's default update notice, when site is not running PHP 5.3 or greater. + * + * When we see that a site is not running PHP 5.3 and is trying to update to + * BP 2.8+, we replace WP's default notice with our own, which both provides a + * link to our documentation of the requirement, and removes the link that + * allows a single plugin to be updated. + * + * @since 2.7.0 + * @deprecated 2.8.0 + * + * @param string $file Plugin filename. buddypress/bp-loader.php. + * @param array $plugin_data Data about the BuddyPress plugin, as returned by the + * plugins API. + */ +function bp_core_admin_php52_plugin_row( $file, $plugin_data ) { + if ( is_multisite() && ! is_network_admin() ) { + return; + } + + $current = get_site_transient( 'update_plugins' ); + if ( ! isset( $current->response[ $file ] ) ) { + return false; + } + + $response = $current->response[ $file ]; + + // No need to do this if update is for < BP 2.8. + if ( version_compare( $response->new_version, '2.8', '<' ) ) { + return false; + } + + $wp_list_table = _get_list_table( 'WP_Plugins_List_Table' ); + + if ( is_network_admin() ) { + $active_class = is_plugin_active_for_network( $file ) ? ' active' : ''; + } else { + $active_class = is_plugin_active( $file ) ? ' active' : ''; + } + + // WP 4.6 uses different markup for the plugin row notice. + if ( function_exists( 'wp_get_ext_types' ) ) { + $p = '<p>%s</p>'; + + // WP < 4.6. + } else { + $p = '%s'; + + // Ugh. + $active_class .= ' not-shiny'; + } + + echo '<tr class="plugin-update-tr' . $active_class . '" id="' . esc_attr( $response->slug . '-update' ) . '" data-slug="' . esc_attr( $response->slug ) . '" data-plugin="' . esc_attr( $file ) . '"><td colspan="' . esc_attr( $wp_list_table->get_column_count() ) . '" class="plugin-update colspanchange"><div class="update-message inline notice notice-error notice-alt">'; + + printf( $p, + esc_html__( 'A BuddyPress update is available, but your system is not compatible.', 'buddypress' ) . ' ' . + sprintf( __( 'See <a href="%s">the Codex guide</a> for more information.', 'buddypress' ), 'https://codex.buddypress.org/getting-started/buddypress-2-8-will-require-php-5-3/' ) + ); + + echo '</div></td></tr>'; + + /* + * JavaScript to disable the bulk upgrade checkbox. + * See WP_Plugins_List_Table::single_row(). + */ + $checkbox_id = 'checkbox_' . md5( $plugin_data['Name'] ); + echo "<script type='text/javascript'>document.getElementById('$checkbox_id').disabled = true;</script>"; +} + +/** + * Add an admin notice to installations that are not running PHP 5.3+. + * + * @since 2.7.0 + * @deprecated 2.8.0 + */ +function bp_core_admin_php53_admin_notice() { + // If not on the Plugins page, stop now. + if ( 'plugins' !== get_current_screen()->parent_base ) { + return; + } + + if ( ! current_user_can( 'update_core' ) ) { + return; + } + + if ( bp_core_admin_is_running_php53_or_greater() ) { + return; + } + + $notice_id = 'bp28-php53'; + if ( bp_get_option( "bp-dismissed-notice-$notice_id" ) ) { + return; + } + + $bp = buddypress(); + $min = bp_core_get_minified_asset_suffix(); + + wp_enqueue_script( + 'bp-dismissible-admin-notices', + "{$bp->plugin_url}bp-core/admin/js/dismissible-admin-notices{$min}.js", + array( 'jquery' ), + bp_get_version(), + true + ); + + $php_version = PHP_VERSION; + + ?> + + <div id="message" class="error notice is-dismissible bp-is-dismissible" data-noticeid="<?php echo esc_attr( $notice_id ); ?>"> + <p><strong><?php esc_html_e( 'Your site is not ready for BuddyPress 2.8.', 'buddypress' ); ?></strong></p> + <p><?php printf( esc_html__( 'Your site is currently running PHP version %s, while BuddyPress 2.8 will require version 5.3+.', 'buddypress' ), $php_version ); ?> <?php printf( __( 'See <a href="%s">the Codex guide</a> for more information.', 'buddypress' ), 'https://codex.buddypress.org/getting-started/buddypress-2-8-will-require-php-5-3/' ); ?></p> + <?php wp_nonce_field( "bp-dismissible-notice-$notice_id", "bp-dismissible-nonce-$notice_id" ); ?> + </div> + <?php +} + diff --git a/wp-content/plugins/buddypress/bp-forums/bbpress/bb-admin/includes/class.bb-install.php b/wp-content/plugins/buddypress/bp-forums/bbpress/bb-admin/includes/class.bb-install.php index 2393a2ae4..c74b3ae22 100644 --- a/wp-content/plugins/buddypress/bp-forums/bbpress/bb-admin/includes/class.bb-install.php +++ b/wp-content/plugins/buddypress/bp-forums/bbpress/bb-admin/includes/class.bb-install.php @@ -101,7 +101,7 @@ class BB_Install * @param string $caller The full path of the file that instantiated the class * @return boolean Always returns true */ - function BB_Install( $caller ) + function __construct( $caller ) { $this->caller = $caller; @@ -161,6 +161,10 @@ class BB_Install return true; } + function BB_Install( $caller ) { + $this->__construct( $caller ); + } + /** * Set initial step * @@ -1280,7 +1284,7 @@ class BB_Install // We'll fail here if the values are no good. require_once( BACKPRESS_PATH . 'class.bpdb-multi.php' ); - $bbdb =& new BPDB_Multi( array( + $bbdb = new BPDB_Multi( array( 'name' => BBDB_NAME, 'user' => BBDB_USER, 'password' => BBDB_PASSWORD, diff --git a/wp-content/plugins/buddypress/bp-forums/bbpress/bb-admin/includes/functions.bb-admin.php b/wp-content/plugins/buddypress/bp-forums/bbpress/bb-admin/includes/functions.bb-admin.php index e3594f95d..b835d839e 100644 --- a/wp-content/plugins/buddypress/bp-forums/bbpress/bb-admin/includes/functions.bb-admin.php +++ b/wp-content/plugins/buddypress/bp-forums/bbpress/bb-admin/includes/functions.bb-admin.php @@ -738,7 +738,7 @@ class BB_User_Search { var $paging_text; var $paging_text_bottom; - function BB_User_Search ($search_term = false, $page = 1, $roles = false ) { // constructor + function __construct($search_term = false, $page = 1, $roles = false ) { // constructor $this->search_term = $search_term ? stripslashes($search_term) : false; $this->raw_page = ( '' == $page ) ? false : (int) $page; $page = (int) $page; @@ -758,6 +758,10 @@ class BB_User_Search { $this->do_paging(); } + function BB_User_Search( $search_term = false, $page = 1, $roles = false ) { + $this->__construct( $search_term, $page, $roles ); + } + function prepare_query() { $this->first_user = ($this->page - 1) * $this->users_per_page; } @@ -948,7 +952,7 @@ class BB_Users_By_Role extends BB_User_Search { var $role = ''; var $title = ''; - function BB_Users_By_Role($role = '', $page = '') { // constructor + function __construct($role = '', $page = '') { // constructor $this->role = $role ? $role : 'member'; $this->raw_page = ( '' == $page ) ? false : (int) $page; $this->page = (int) ( '' == $page ) ? 1 : $page; @@ -958,6 +962,10 @@ class BB_Users_By_Role extends BB_User_Search { $this->do_paging(); } + function BB_Users_By_Role($role = '', $page = '') { + $this->__construct($role, $page); + } + function query() { if ( $_results = bb_get_ids_by_role( $this->role, 0, $this->page, $this->users_per_page ) ) { $this->results = bb_get_user($_results); @@ -978,12 +986,13 @@ function bb_new_forum( $args ) { if ( !bb_current_user_can( 'manage_forums' ) ) return false; + $func_args = func_get_args(); $defaults = array( 'forum_name' => '', 'forum_desc' => '', 'forum_parent' => 0, 'forum_order' => false, 'forum_is_category' => 0 ); $args = wp_parse_args( $args, $defaults ); if ( 1 < func_num_args() ) : // For back compat - $args['forum_name'] = func_get_arg(0); - $args['forum_desc'] = func_get_arg(1); - $args['forum_order'] = 2 < func_num_args() ? func_get_arg(2) : 0; + $args['forum_name'] = $func_args[0]; + $args['forum_desc'] = $func_args[1]; + $args['forum_order'] = 2 < func_num_args() ? $func_args[2] : 0; endif; extract($args, EXTR_SKIP); @@ -1025,14 +1034,15 @@ function bb_update_forum( $args ) { if ( !bb_current_user_can( 'manage_forums' ) ) return false; + $func_args = func_get_args(); $defaults = array( 'forum_id' => 0, 'forum_name' => '', 'forum_slug' => '', 'forum_desc' => '', 'forum_parent' => 0, 'forum_order' => 0, 'forum_is_category' => 0 ); $fields = array( 'forum_name', 'forum_desc', 'forum_parent', 'forum_order' ); $args = wp_parse_args( $args, $defaults ); if ( 1 < func_num_args() ) : // For back compat - $args['forum_id'] = func_get_arg(0); - $args['forum_name'] = func_get_arg(1); - $args['forum_desc'] = 2 < func_num_args() ? func_get_arg(2) : ''; - $args['forum_order'] = 3 < func_num_args() && is_numeric(func_get_arg(3)) ? func_get_arg(3) : 0; + $args['forum_id'] = $func_args[0]; + $args['forum_name'] = $func_args[1]; + $args['forum_desc'] = 2 < func_num_args() ? $func_args[2] : ''; + $args['forum_order'] = 3 < func_num_args() && is_numeric($func_args[3]) ? $func_args[3] : 0; endif; extract($args, EXTR_SKIP); diff --git a/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/class.bp-roles.php b/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/class.bp-roles.php index 95489e2fe..cbc17c1ef 100644 --- a/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/class.bp-roles.php +++ b/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/class.bp-roles.php @@ -4,14 +4,14 @@ class BP_Roles { var $role_objects = array(); var $role_names = array(); - function BP_Roles() { - $this->__construct(); - } - function __construct() { do_action_ref_array('init_roles', array(&$this) ); } + function BP_Roles() { + $this->__construct(); + } + function add_role($role, $display_name, $capabilities = '') { if ( isset($this->role_objects[$role]) ) return; @@ -64,11 +64,15 @@ class BP_Role { var $name; var $capabilities; - function BP_Role($role, $capabilities) { + function __construct($role, $capabilities) { $this->name = $role; $this->capabilities = $capabilities; } + function BP_Role($role, $capabilities) { + $this->__construct($role, $capabilities); + } + function add_cap($cap, $grant = true) { $this->capabilities[$cap] = $grant; } diff --git a/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/class.bp-user.php b/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/class.bp-user.php index 584672f07..55fd4499b 100644 --- a/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/class.bp-user.php +++ b/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/class.bp-user.php @@ -112,7 +112,7 @@ class BP_User { * @param int $name Optional. User's username * @return BP_User */ - function BP_User( $id, $name = '' ) { + function __construct( $id, $name = '' ) { global $wp_users_object; if ( empty( $id ) && empty( $name ) ) @@ -139,6 +139,10 @@ class BP_User { $this->_init_caps(); } + function BP_User( $id, $name = '' ) { + $this->__construct( $id, $name ); + } + /** * Setup capability object properties. * diff --git a/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/class.ixr.php b/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/class.ixr.php index 69c019e05..d7fc0f76d 100644 --- a/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/class.ixr.php +++ b/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/class.ixr.php @@ -50,7 +50,7 @@ class IXR_Value { var $data; var $type; - function IXR_Value($data, $type = false) + function __construct($data, $type = false) { $this->data = $data; if (!$type) { @@ -70,6 +70,11 @@ class IXR_Value { } } + function IXR_Value($data, $type = false) + { + $this->__construct($data, $type); + } + function calculateType() { if ($this->data === true || $this->data === false) { @@ -195,11 +200,16 @@ class IXR_Message // The XML parser var $_parser; - function IXR_Message($message) + function __construct($message) { $this->message =& $message; } + function IXR_Message($message) + { + $this->__construct($message); + } + function parse() { // first remove the XML declaration @@ -353,7 +363,7 @@ class IXR_Server var $message; var $capabilities; - function IXR_Server($callbacks = false, $data = false, $wait = false) + function __construct($callbacks = false, $data = false, $wait = false) { $this->setCapabilities(); if ($callbacks) { @@ -365,6 +375,11 @@ class IXR_Server } } + function IXR_Server($callbacks = false, $data = false, $wait = false) + { + $this->__construct($callbacks, $data, $wait); + } + function serve($data = false) { if (!$data) { @@ -556,7 +571,7 @@ class IXR_Request var $args; var $xml; - function IXR_Request($method, $args) + function __construct($method, $args) { $this->method = $method; $this->args = $args; @@ -576,6 +591,11 @@ EOD; $this->xml .= '</params></methodCall>'; } + function IXR_Request($method, $args) + { + $this->__construct($method, $args); + } + function getLength() { return strlen($this->xml); @@ -609,7 +629,7 @@ class IXR_Client // Storage place for an error message var $error = false; - function IXR_Client($server, $path = false, $port = 80, $timeout = 15) + function __construct($server, $path = false, $port = 80, $timeout = 15) { if (!$path) { // Assume we have been given a URL instead @@ -631,6 +651,11 @@ class IXR_Client $this->timeout = $timeout; } + function IXR_Client($server, $path = false, $port = 80, $timeout = 15) + { + $this->__construct($server, $path, $port, $timeout); + } + function query() { $args = func_get_args(); @@ -750,12 +775,17 @@ class IXR_Error var $code; var $message; - function IXR_Error($code, $message) + function __construct($code, $message) { $this->code = $code; $this->message = htmlspecialchars($message); } + function IXR_Error($code, $message) + { + $this->__construct($code, $message); + } + function getXml() { $xml = <<<EOD @@ -796,7 +826,7 @@ class IXR_Date { var $second; var $timezone; - function IXR_Date($time) + function __construct($time) { // $time can be a PHP timestamp or an ISO one if (is_numeric($time)) { @@ -806,6 +836,11 @@ class IXR_Date { } } + function IXR_Date($time) + { + $this->__construct($time); + } + function parseTimestamp($timestamp) { $this->year = date('Y', $timestamp); @@ -854,11 +889,16 @@ class IXR_Base64 { var $data; - function IXR_Base64($data) + function __construct($data) { $this->data = $data; } + function IXR_Base64($data) + { + $this->__construct($data); + } + function getXml() { return '<base64>'.base64_encode($this->data).'</base64>'; @@ -876,7 +916,7 @@ class IXR_IntrospectionServer extends IXR_Server var $signatures; var $help; - function IXR_IntrospectionServer() + function __construct() { $this->setCallbacks(); $this->setCapabilities(); @@ -910,6 +950,11 @@ class IXR_IntrospectionServer extends IXR_Server ); } + function IXR_IntrospectionServer() + { + $this->__construct(); + } + function addCallback($method, $callback, $args, $help) { $this->callbacks[$method] = $callback; @@ -1038,12 +1083,17 @@ class IXR_ClientMulticall extends IXR_Client { var $calls = array(); - function IXR_ClientMulticall($server, $path = false, $port = 80) + function __construct($server, $path = false, $port = 80) { - parent::IXR_Client($server, $path, $port); + parent::__construct($server, $path, $port); $this->useragent = 'The Incutio XML-RPC PHP Library (multicall client)'; } + function IXR_ClientMulticall($server, $path = false, $port = 80) + { + $this->__construct($server, $path, $port); + } + function addCall() { $args = func_get_args(); diff --git a/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/class.mailer-smtp.php b/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/class.mailer-smtp.php index 0d473ce35..99783e0bb 100644 --- a/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/class.mailer-smtp.php +++ b/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/class.mailer-smtp.php @@ -74,7 +74,7 @@ class SMTP * @access public * @return void */ - function SMTP() { + function __construct() { $this->smtp_conn = 0; $this->error = null; $this->helo_rply = null; @@ -82,6 +82,10 @@ class SMTP $this->do_debug = 0; } + function SMTP() { + $this->__construct(); + } + /************************************************************* * CONNECTION FUNCTIONS * ***********************************************************/ diff --git a/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/class.mailer.php b/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/class.mailer.php index 9ad6d4f52..11c0e3c23 100644 --- a/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/class.mailer.php +++ b/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/class.mailer.php @@ -469,7 +469,7 @@ class PHPMailer { $to .= $this->AddrFormat($this->to[$i]); } - $toArr = split(',', $to); + $toArr = explode(',', $to); $params = sprintf("-oi -f %s", $this->Sender); if ($this->Sender != '' && strlen(ini_get('safe_mode')) < 1) { @@ -591,7 +591,7 @@ class PHPMailer { /* Retry while there is no connection */ while($index < count($hosts) && $connection == false) { $hostinfo = array(); - if(eregi('^(.+):([0-9]+)$', $hosts[$index], $hostinfo)) { + if(preg_match('/^(.+):([0-9]+)$/', $hosts[$index], $hostinfo)) { $host = $hostinfo[1]; $port = $hostinfo[2]; } else { @@ -1217,11 +1217,23 @@ class PHPMailer { return ''; } $magic_quotes = get_magic_quotes_runtime(); - set_magic_quotes_runtime(0); + if ($magic_quotes) { + if (version_compare(PHP_VERSION, '5.3.0', '<')) { + set_magic_quotes_runtime(0); + } else { + ini_set('magic_quotes_runtime', 0); + } + } $file_buffer = fread($fd, filesize($path)); $file_buffer = $this->EncodeString($file_buffer, $encoding); fclose($fd); - set_magic_quotes_runtime($magic_quotes); + if ($magic_quotes) { + if (version_compare(PHP_VERSION, '5.3.0', '<')) { + set_magic_quotes_runtime($magic_quotes); + } else { + ini_set('magic_quotes_runtime', $magic_quotes); + } + } return $file_buffer; } @@ -1734,7 +1746,7 @@ class PHPMailer { $directory = dirname($url); ($directory == '.')?$directory='':''; $cid = 'cid:' . md5($filename); - $fileParts = split("\.", $filename); + $fileParts = explode(".", $filename); $ext = $fileParts[1]; $mimeType = $this->_mime_types($ext); if ( strlen($basedir) > 1 && substr($basedir,-1) != '/') { $basedir .= '/'; } diff --git a/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/class.passwordhash.php b/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/class.passwordhash.php index c26cf574f..c2963ab6a 100644 --- a/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/class.passwordhash.php +++ b/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/class.passwordhash.php @@ -41,7 +41,7 @@ class PasswordHash { var $portable_hashes; var $random_state; - function PasswordHash($iteration_count_log2, $portable_hashes) + function __construct($iteration_count_log2, $portable_hashes) { $this->itoa64 = './0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'; @@ -54,6 +54,11 @@ class PasswordHash { $this->random_state = microtime() . uniqid(rand(), TRUE); // removed getmypid() for compability reasons } + function PasswordHash($iteration_count_log2, $portable_hashes) + { + $this->__construct($iteration_count_log2, $portable_hashes); + } + function get_random_bytes($count) { $output = ''; diff --git a/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/class.wp-ajax-response.php b/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/class.wp-ajax-response.php index ee2528538..14f8af46c 100644 --- a/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/class.wp-ajax-response.php +++ b/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/class.wp-ajax-response.php @@ -26,11 +26,15 @@ class WP_Ajax_Response { * @param string|array $args Optional. Will be passed to add() method. * @return WP_Ajax_Response */ - function WP_Ajax_Response( $args = '' ) { + function __construct( $args = '' ) { if ( !empty($args) ) $this->add($args); } + function WP_Ajax_Response( $args = '' ) { + $this->__construct( $args ); + } + /** * Append to XML response based on given arguments. * diff --git a/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/class.wp-dependencies.php b/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/class.wp-dependencies.php index ea607de2c..f3af09536 100644 --- a/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/class.wp-dependencies.php +++ b/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/class.wp-dependencies.php @@ -25,13 +25,13 @@ class WP_Dependencies { var $groups = array(); var $group = 0; + function __construct() {} + function WP_Dependencies() { $args = func_get_args(); call_user_func_array( array(&$this, '__construct'), $args ); } - function __construct() {} - /** * Do the dependencies * @@ -228,12 +228,16 @@ class _WP_Dependency { var $extra = array(); - function _WP_Dependency() { + function __construct() { @list($this->handle, $this->src, $this->deps, $this->ver, $this->args) = func_get_args(); if ( !is_array($this->deps) ) $this->deps = array(); } + function _WP_Dependency() { + $this->__construct(); + } + function add_data( $name, $data ) { if ( !is_scalar($name) ) return false; diff --git a/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/class.wp-error.php b/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/class.wp-error.php index e77d07e3c..764600db0 100644 --- a/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/class.wp-error.php +++ b/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/class.wp-error.php @@ -48,7 +48,7 @@ class WP_Error { * @param mixed $data Optional. Error data. * @return WP_Error */ - function WP_Error($code = '', $message = '', $data = '') { + function __construct($code = '', $message = '', $data = '') { if ( empty($code) ) return; @@ -58,6 +58,10 @@ class WP_Error { $this->error_data[$code] = $data; } + function WP_Error($code = '', $message = '', $data = '') { + $this->__construct($code, $message, $data); + } + /** * Retrieve all error codes. * diff --git a/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/class.wp-http-ixr-client.php b/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/class.wp-http-ixr-client.php index 6a1b2f8ac..ebaa6ab2e 100644 --- a/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/class.wp-http-ixr-client.php +++ b/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/class.wp-http-ixr-client.php @@ -8,7 +8,7 @@ */ class WP_HTTP_IXR_Client extends IXR_Client { - function WP_HTTP_IXR_Client($server, $path = false, $port = 80, $timeout = 15) + function __construct($server, $path = false, $port = 80, $timeout = 15) { if (!$path) { // Assume we have been given a URL instead @@ -32,6 +32,11 @@ class WP_HTTP_IXR_Client extends IXR_Client $this->timeout = $timeout; } + function WP_HTTP_IXR_Client($server, $path = false, $port = 80, $timeout = 15) + { + $this->__construct($server, $path, $port, $timeout); + } + function query() { $args = func_get_args(); diff --git a/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/class.wp-object-cache-memcached.php b/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/class.wp-object-cache-memcached.php index 24b4bb8c1..735fe5069 100644 --- a/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/class.wp-object-cache-memcached.php +++ b/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/class.wp-object-cache-memcached.php @@ -19,7 +19,7 @@ class WP_Object_Cache var $default_expiration = 0; - function WP_Object_Cache() + function __construct() { global $memcached_servers; @@ -39,6 +39,11 @@ class WP_Object_Cache } } + function WP_Object_Cache() + { + $this->__construct(); + } + function &get_mc( $group ) { if ( isset( $this->mc[$group] ) ) { diff --git a/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/class.wp-taxonomy.php b/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/class.wp-taxonomy.php index acb437770..db579df99 100644 --- a/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/class.wp-taxonomy.php +++ b/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/class.wp-taxonomy.php @@ -583,7 +583,7 @@ class WP_Taxonomy { foreach ( (array) $taxonomies as $taxonomy ) { if ( ! $this->is_taxonomy($taxonomy) ) { - $error = & new WP_Error('invalid_taxonomy', __('Invalid Taxonomy')); + $error = new WP_Error('invalid_taxonomy', __('Invalid Taxonomy')); return $error; } } diff --git a/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/functions.core.php b/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/functions.core.php index caa61223f..8402067f4 100644 --- a/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/functions.core.php +++ b/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/functions.core.php @@ -214,17 +214,17 @@ if ( !function_exists( 'add_query_arg' ) ) : * @return string New URL query string. */ function add_query_arg() { - $ret = ''; - if ( is_array( func_get_arg(0) ) ) { - if ( @func_num_args() < 2 || false === @func_get_arg( 1 ) ) + $args = func_get_args(); + if ( is_array( $args[0] ) ) { + if ( count( $args ) < 2 || false === $args[1] ) $uri = $_SERVER['REQUEST_URI']; else - $uri = @func_get_arg( 1 ); + $uri = $args[1]; } else { - if ( @func_num_args() < 3 || false === @func_get_arg( 2 ) ) + if ( count( $args ) < 3 || false === $args[2] ) $uri = $_SERVER['REQUEST_URI']; else - $uri = @func_get_arg( 2 ); + $uri = $args[2]; } if ( $frag = strstr( $uri, '#' ) ) @@ -232,23 +232,20 @@ function add_query_arg() { else $frag = ''; - if ( preg_match( '|^https?://|i', $uri, $matches ) ) { - $protocol = $matches[0]; - $uri = substr( $uri, strlen( $protocol ) ); + if ( 0 === stripos( $uri, 'http://' ) ) { + $protocol = 'http://'; + $uri = substr( $uri, 7 ); + } elseif ( 0 === stripos( $uri, 'https://' ) ) { + $protocol = 'https://'; + $uri = substr( $uri, 8 ); } else { $protocol = ''; } if ( strpos( $uri, '?' ) !== false ) { - $parts = explode( '?', $uri, 2 ); - if ( 1 == count( $parts ) ) { - $base = '?'; - $query = $parts[0]; - } else { - $base = $parts[0] . '?'; - $query = $parts[1]; - } - } elseif ( !empty( $protocol ) || strpos( $uri, '=' ) === false ) { + list( $base, $query ) = explode( '?', $uri, 2 ); + $base .= '?'; + } elseif ( $protocol || strpos( $uri, '=' ) === false ) { $base = $uri . '?'; $query = ''; } else { @@ -258,14 +255,15 @@ function add_query_arg() { wp_parse_str( $query, $qs ); $qs = urlencode_deep( $qs ); // this re-URL-encodes things that were already in the query string - if ( is_array( func_get_arg( 0 ) ) ) { - $kayvees = func_get_arg( 0 ); - $qs = array_merge( $qs, $kayvees ); + if ( is_array( $args[0] ) ) { + foreach ( $args[0] as $k => $v ) { + $qs[ $k ] = $v; + } } else { - $qs[func_get_arg( 0 )] = func_get_arg( 1 ); + $qs[ $args[0] ] = $args[1]; } - foreach ( (array) $qs as $k => $v ) { + foreach ( $qs as $k => $v ) { if ( $v === false ) unset( $qs[$k] ); } diff --git a/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/functions.kses.php b/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/functions.kses.php index 4d2bba827..67ee6a790 100644 --- a/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/functions.kses.php +++ b/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/functions.kses.php @@ -1338,7 +1338,7 @@ function safecss_filter_attr( $css, $deprecated = '' ) { if ( strpos( $css_item, ':' ) === false ) { $found = true; } else { - $parts = split( ':', $css_item ); + $parts = explode( ':', $css_item ); if ( in_array( trim( $parts[0] ), $allowed_attr ) ) $found = true; } diff --git a/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/functions.wp-object-cache.php b/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/functions.wp-object-cache.php index 3dc10de9b..7ffbfd9fd 100644 --- a/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/functions.wp-object-cache.php +++ b/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/functions.wp-object-cache.php @@ -105,7 +105,7 @@ function wp_cache_get($id, $flag = '') { * @global WP_Object_Cache $wp_object_cache WordPress Object Cache */ function wp_cache_init() { - $GLOBALS['wp_object_cache'] =& new WP_Object_Cache(); + $GLOBALS['wp_object_cache'] = new WP_Object_Cache(); } /** diff --git a/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/functions.wp-taxonomy.php b/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/functions.wp-taxonomy.php index f39297b3e..56d5fcc97 100644 --- a/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/functions.wp-taxonomy.php +++ b/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/functions.wp-taxonomy.php @@ -176,7 +176,7 @@ function &_get_term_children($term_id, $terms, $taxonomy) { function _pad_term_counts(&$terms, $taxonomy) { global $wp_taxonomy_object; - return $wp_taxonomy_object->_pad_term_counts(&$terms, $taxonomy); + return $wp_taxonomy_object->_pad_term_counts($terms, $taxonomy); } function is_object_in_term($object_id, $taxonomy, $terms = null) { diff --git a/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/pomo/entry.php b/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/pomo/entry.php index feb5b34cf..788092ba4 100644 --- a/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/pomo/entry.php +++ b/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/pomo/entry.php @@ -2,12 +2,12 @@ /** * Contains Translation_Entry class * - * @version $Id: entry.php 115 2009-05-11 18:56:15Z nbachiyski $ + * @version $Id: entry.php 1157 2015-11-20 04:30:11Z dd32 $ * @package pomo * @subpackage entry */ - +if ( ! class_exists( 'Translation_Entry', false ) ): /** * Translation_Entry class encapsulates a translatable string */ @@ -40,31 +40,54 @@ class Translation_Entry { * - references (array) -- places in the code this strings is used, in relative_to_root_path/file.php:linenum form * - flags (array) -- flags like php-format */ - function Translation_Entry($args=array()) { + function __construct( $args = array() ) { // if no singular -- empty object if (!isset($args['singular'])) { return; } // get member variable values from args hash - $object_varnames = array_keys(get_object_vars($this)); foreach ($args as $varname => $value) { $this->$varname = $value; } - if (isset($args['plural'])) $this->is_plural = true; + if (isset($args['plural']) && $args['plural']) $this->is_plural = true; if (!is_array($this->translations)) $this->translations = array(); if (!is_array($this->references)) $this->references = array(); if (!is_array($this->flags)) $this->flags = array(); } + /** + * PHP4 constructor. + */ + public function Translation_Entry( $args = array() ) { + self::__construct( $args ); + } + /** * Generates a unique key for this entry * * @return string|bool the key or false if the entry is empty */ function key() { - if (is_null($this->singular)) return false; - // prepend context and EOT, like in MO files - return is_null($this->context)? $this->singular : $this->context.chr(4).$this->singular; + if ( null === $this->singular || '' === $this->singular ) return false; + + // Prepend context and EOT, like in MO files + $key = !$this->context? $this->singular : $this->context.chr(4).$this->singular; + // Standardize on \n line endings + $key = str_replace( array( "\r\n", "\r" ), "\n", $key ); + + return $key; + } + + /** + * @param object $other + */ + function merge_with(&$other) { + $this->flags = array_unique( array_merge( $this->flags, $other->flags ) ); + $this->references = array_unique( array_merge( $this->references, $other->references ) ); + if ( $this->extracted_comments != $other->extracted_comments ) { + $this->extracted_comments .= $other->extracted_comments; + } + } } -?> +endif; \ No newline at end of file diff --git a/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/pomo/mo.php b/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/pomo/mo.php index 0630ef285..6bc44d614 100644 --- a/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/pomo/mo.php +++ b/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/pomo/mo.php @@ -2,7 +2,7 @@ /** * Class for working with MO files * - * @version $Id: mo.php 106 2009-04-23 19:48:22Z nbachiyski $ + * @version $Id: mo.php 1157 2015-11-20 04:30:11Z dd32 $ * @package pomo * @subpackage mo */ @@ -10,6 +10,7 @@ require_once dirname(__FILE__) . '/translations.php'; require_once dirname(__FILE__) . '/streams.php'; +if ( ! class_exists( 'MO', false ) ): class MO extends Gettext_Translations { var $_nplurals = 2; @@ -20,17 +21,57 @@ class MO extends Gettext_Translations { * @param string $filename MO file to load */ function import_from_file($filename) { - $reader = new POMO_CachedIntFileReader($filename); - if (isset($reader->error)) { + $reader = new POMO_FileReader($filename); + if (!$reader->is_resource()) return false; - } return $this->import_from_reader($reader); } - + + /** + * @param string $filename + * @return bool + */ function export_to_file($filename) { $fh = fopen($filename, 'wb'); if ( !$fh ) return false; - $entries = array_filter($this->entries, create_function('$e', 'return !empty($e->translations);')); + $res = $this->export_to_file_handle( $fh ); + fclose($fh); + return $res; + } + + /** + * @return string|false + */ + function export() { + $tmp_fh = fopen("php://temp", 'r+'); + if ( !$tmp_fh ) return false; + $this->export_to_file_handle( $tmp_fh ); + rewind( $tmp_fh ); + return stream_get_contents( $tmp_fh ); + } + + /** + * @param Translation_Entry $entry + * @return bool + */ + function is_entry_good_for_export( $entry ) { + if ( empty( $entry->translations ) ) { + return false; + } + + if ( !array_filter( $entry->translations ) ) { + return false; + } + + return true; + } + + /** + * @param resource $fh + * @return true + */ + function export_to_file_handle($fh) { + $entries = array_filter( $this->entries, array( $this, 'is_entry_good_for_export' ) ); ksort($entries); $magic = 0x950412de; $revision = 0; @@ -43,49 +84,62 @@ class MO extends Gettext_Translations { fwrite($fh, pack('V*', $magic, $revision, $total, $originals_lenghts_addr, $translations_lenghts_addr, $size_of_hash, $hash_addr)); fseek($fh, $originals_lenghts_addr); - + // headers' msgid is an empty string fwrite($fh, pack('VV', 0, $current_addr)); $current_addr++; $originals_table = chr(0); + $reader = new POMO_Reader(); + foreach($entries as $entry) { $originals_table .= $this->export_original($entry) . chr(0); - $length = strlen($this->export_original($entry)); + $length = $reader->strlen($this->export_original($entry)); fwrite($fh, pack('VV', $length, $current_addr)); $current_addr += $length + 1; // account for the NULL byte after } - + $exported_headers = $this->export_headers(); - fwrite($fh, pack('VV', strlen($exported_headers), $current_addr)); + fwrite($fh, pack('VV', $reader->strlen($exported_headers), $current_addr)); $current_addr += strlen($exported_headers) + 1; $translations_table = $exported_headers . chr(0); - + foreach($entries as $entry) { $translations_table .= $this->export_translations($entry) . chr(0); - $length = strlen($this->export_translations($entry)); + $length = $reader->strlen($this->export_translations($entry)); fwrite($fh, pack('VV', $length, $current_addr)); $current_addr += $length + 1; } - + fwrite($fh, $originals_table); fwrite($fh, $translations_table); - fclose($fh); + return true; } - + + /** + * @param Translation_Entry $entry + * @return string + */ function export_original($entry) { //TODO: warnings for control characters $exported = $entry->singular; if ($entry->is_plural) $exported .= chr(0).$entry->plural; - if (!is_null($entry->context)) $exported = $entry->context . chr(4) . $exported; + if ($entry->context) $exported = $entry->context . chr(4) . $exported; return $exported; } - + + /** + * @param Translation_Entry $entry + * @return string + */ function export_translations($entry) { //TODO: warnings for control characters - return implode(chr(0), $entry->translations); + return $entry->is_plural ? implode(chr(0), $entry->translations) : $entry->translations[0]; } - + + /** + * @return string + */ function export_headers() { $exported = ''; foreach($this->headers as $header => $value) { @@ -94,16 +148,18 @@ class MO extends Gettext_Translations { return $exported; } + /** + * @param int $magic + * @return string|false + */ function get_byteorder($magic) { - // The magic is 0x950412de // bug in PHP 5.0.2, see https://savannah.nongnu.org/bugs/?func=detailitem&item_id=10565 $magic_little = (int) - 1794895138; $magic_little_64 = (int) 2500072158; // 0xde120495 - $magic_big = ((int) - 569244523) && 0xFFFFFFFF; - + $magic_big = ((int) - 569244523) & 0xFFFFFFFF; if ($magic_little == $magic || $magic_little_64 == $magic) { return 'little'; } else if ($magic_big == $magic) { @@ -113,73 +169,134 @@ class MO extends Gettext_Translations { } } + /** + * @param POMO_FileReader $reader + */ function import_from_reader($reader) { - $reader->setEndian('little'); - $endian = MO::get_byteorder($reader->readint32()); - if (false === $endian) { + $endian_string = MO::get_byteorder($reader->readint32()); + if (false === $endian_string) { + return false; + } + $reader->setEndian($endian_string); + + $endian = ('big' == $endian_string)? 'N' : 'V'; + + $header = $reader->read(24); + if ($reader->strlen($header) != 24) + return false; + + // parse header + $header = unpack("{$endian}revision/{$endian}total/{$endian}originals_lenghts_addr/{$endian}translations_lenghts_addr/{$endian}hash_length/{$endian}hash_addr", $header); + if (!is_array($header)) + return false; + + // support revision 0 of MO format specs, only + if ( $header['revision'] != 0 ) { + return false; + } + + // seek to data blocks + $reader->seekto( $header['originals_lenghts_addr'] ); + + // read originals' indices + $originals_lengths_length = $header['translations_lenghts_addr'] - $header['originals_lenghts_addr']; + if ( $originals_lengths_length != $header['total'] * 8 ) { + return false; + } + + $originals = $reader->read($originals_lengths_length); + if ( $reader->strlen( $originals ) != $originals_lengths_length ) { + return false; + } + + // read translations' indices + $translations_lenghts_length = $header['hash_addr'] - $header['translations_lenghts_addr']; + if ( $translations_lenghts_length != $header['total'] * 8 ) { + return false; + } + + $translations = $reader->read($translations_lenghts_length); + if ( $reader->strlen( $translations ) != $translations_lenghts_length ) { return false; } - $reader->setEndian($endian); - - $revision = $reader->readint32(); - $total = $reader->readint32(); - // get addresses of array of lenghts and offsets for original string and translations - $originals_lenghts_addr = $reader->readint32(); - $translations_lenghts_addr = $reader->readint32(); - - $reader->seekto($originals_lenghts_addr); - $originals_lenghts = $reader->readint32array($total * 2); // each of - $reader->seekto($translations_lenghts_addr); - $translations_lenghts = $reader->readint32array($total * 2); - - $length = create_function('$i', 'return $i * 2 + 1;'); - $offset = create_function('$i', 'return $i * 2 + 2;'); - - for ($i = 0; $i < $total; ++$i) { - $reader->seekto($originals_lenghts[$offset($i)]); - $original = $reader->read($originals_lenghts[$length($i)]); - $reader->seekto($translations_lenghts[$offset($i)]); - $translation = $reader->read($translations_lenghts[$length($i)]); - if ('' == $original) { + + // transform raw data into set of indices + $originals = $reader->str_split( $originals, 8 ); + $translations = $reader->str_split( $translations, 8 ); + + // skip hash table + $strings_addr = $header['hash_addr'] + $header['hash_length'] * 4; + + $reader->seekto($strings_addr); + + $strings = $reader->read_all(); + $reader->close(); + + for ( $i = 0; $i < $header['total']; $i++ ) { + $o = unpack( "{$endian}length/{$endian}pos", $originals[$i] ); + $t = unpack( "{$endian}length/{$endian}pos", $translations[$i] ); + if ( !$o || !$t ) return false; + + // adjust offset due to reading strings to separate space before + $o['pos'] -= $strings_addr; + $t['pos'] -= $strings_addr; + + $original = $reader->substr( $strings, $o['pos'], $o['length'] ); + $translation = $reader->substr( $strings, $t['pos'], $t['length'] ); + + if ('' === $original) { $this->set_headers($this->make_headers($translation)); } else { - $this->add_entry($this->make_entry($original, $translation)); + $entry = &$this->make_entry($original, $translation); + $this->entries[$entry->key()] = &$entry; } } return true; } /** + * Build a Translation_Entry from original string and translation strings, + * found in a MO file + * * @static + * @param string $original original string to translate from MO file. Might contain + * 0x04 as context separator or 0x00 as singular/plural separator + * @param string $translation translation string from MO file. Might contain + * 0x00 as a plural translations separator */ function &make_entry($original, $translation) { - $args = array(); + $entry = new Translation_Entry(); // look for context $parts = explode(chr(4), $original); if (isset($parts[1])) { $original = $parts[1]; - $args['context'] = $parts[0]; + $entry->context = $parts[0]; } // look for plural original $parts = explode(chr(0), $original); - $args['singular'] = $parts[0]; + $entry->singular = $parts[0]; if (isset($parts[1])) { - $args['plural'] = $parts[1]; + $entry->is_plural = true; + $entry->plural = $parts[1]; } // plural translations are also separated by \0 - $args['translations'] = explode(chr(0), $translation); - $entry = & new Translation_Entry($args); + $entry->translations = explode(chr(0), $translation); return $entry; } + /** + * @param int $count + * @return string + */ function select_plural_form($count) { return $this->gettext_select_plural_form($count); } + /** + * @return int + */ function get_plural_forms_count() { return $this->_nplurals; } - - } -?> +endif; \ No newline at end of file diff --git a/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/pomo/po.php b/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/pomo/po.php index 6c40c5a4e..65d65ff39 100644 --- a/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/pomo/po.php +++ b/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/pomo/po.php @@ -2,22 +2,26 @@ /** * Class for working with PO files * - * @version $Id: po.php 123 2009-05-13 19:35:43Z nbachiyski $ + * @version $Id: po.php 1158 2015-11-20 04:31:23Z dd32 $ * @package pomo * @subpackage po */ require_once dirname(__FILE__) . '/translations.php'; -define('PO_MAX_LINE_LEN', 79); +if ( ! defined( 'PO_MAX_LINE_LEN' ) ) { + define('PO_MAX_LINE_LEN', 79); +} ini_set('auto_detect_line_endings', 1); /** * Routines for working with PO files */ +if ( ! class_exists( 'PO', false ) ): class PO extends Gettext_Translations { - + + var $comments_before_headers = ''; /** * Exports headers to a PO entry @@ -30,7 +34,11 @@ class PO extends Gettext_Translations { $header_string.= "$header: $value\n"; } $poified = PO::poify($header_string); - return rtrim("msgid \"\"\nmsgstr $poified"); + if ($this->comments_before_headers) + $before_headers = $this->prepend_each_line(rtrim($this->comments_before_headers)."\n", '# '); + else + $before_headers = ''; + return rtrim("{$before_headers}msgid \"\"\nmsgstr $poified"); } /** @@ -75,6 +83,15 @@ class PO extends Gettext_Translations { return fclose($fh); } + /** + * Text to include as a comment before the start of the PO contents + * + * Doesn't need to include # in the beginning of lines, these are added automatically + */ + function set_comment_before_headers( $text ) { + $this->comments_before_headers = $text; + } + /** * Formats a string in PO-style * @@ -82,7 +99,7 @@ class PO extends Gettext_Translations { * @param string $string the string to format * @return string the poified string */ - function poify($string) { + public static function poify($string) { $quote = '"'; $slash = '\\'; $newline = "\n"; @@ -105,16 +122,16 @@ class PO extends Gettext_Translations { $po = str_replace("$newline$quote$quote", '', $po); return $po; } - + /** * Gives back the original string from a PO-formatted string - * + * * @static * @param string $string PO-formatted string * @return string enascaped string */ - function unpoify($string) { - $escapes = array('t' => "\t", 'n' => "\n", '\\' => '\\'); + public static function unpoify($string) { + $escapes = array('t' => "\t", 'n' => "\n", 'r' => "\r", '\\' => '\\'); $lines = array_map('trim', explode("\n", $string)); $lines = array_map(array('PO', 'trim_quotes'), $lines); $unpoified = ''; @@ -134,18 +151,22 @@ class PO extends Gettext_Translations { } } } + + // Standardise the line endings on imported content, technically PO files shouldn't contain \r + $unpoified = str_replace( array( "\r\n", "\r" ), "\n", $unpoified ); + return $unpoified; } /** - * Inserts $with in the beginning of every new line of $string and + * Inserts $with in the beginning of every new line of $string and * returns the modified string * * @static * @param string $string prepend lines in this string * @param string $with prepend lines with this string */ - function prepend_each_line($string, $with) { + public static function prepend_each_line($string, $with) { $php_with = var_export($with, true); $lines = explode("\n", $string); // do not prepend the string on the last empty line, artefact by explode @@ -165,7 +186,7 @@ class PO extends Gettext_Translations { * @param string $char character to denote a special PO comment, * like :, default is a space */ - function comment_block($text, $char=' ') { + public static function comment_block($text, $char=' ') { $text = wordwrap($text, PO_MAX_LINE_LEN - 3); return PO::prepend_each_line($text, "#$char "); } @@ -174,32 +195,67 @@ class PO extends Gettext_Translations { * Builds a string from the entry for inclusion in PO file * * @static - * @param object &$entry the entry to convert to po string - * @return string|bool PO-style formatted string for the entry or + * @param Translation_Entry &$entry the entry to convert to po string + * @return false|string PO-style formatted string for the entry or * false if the entry is empty */ - function export_entry(&$entry) { - if (is_null($entry->singular)) return false; + public static function export_entry(&$entry) { + if ( null === $entry->singular || '' === $entry->singular ) return false; $po = array(); if (!empty($entry->translator_comments)) $po[] = PO::comment_block($entry->translator_comments); if (!empty($entry->extracted_comments)) $po[] = PO::comment_block($entry->extracted_comments, '.'); if (!empty($entry->references)) $po[] = PO::comment_block(implode(' ', $entry->references), ':'); if (!empty($entry->flags)) $po[] = PO::comment_block(implode(", ", $entry->flags), ','); - if (!is_null($entry->context)) $po[] = 'msgctxt '.PO::poify($entry->context); + if ($entry->context) $po[] = 'msgctxt '.PO::poify($entry->context); $po[] = 'msgid '.PO::poify($entry->singular); if (!$entry->is_plural) { $translation = empty($entry->translations)? '' : $entry->translations[0]; + $translation = PO::match_begin_and_end_newlines( $translation, $entry->singular ); $po[] = 'msgstr '.PO::poify($translation); } else { $po[] = 'msgid_plural '.PO::poify($entry->plural); $translations = empty($entry->translations)? array('', '') : $entry->translations; foreach($translations as $i => $translation) { + $translation = PO::match_begin_and_end_newlines( $translation, $entry->plural ); $po[] = "msgstr[$i] ".PO::poify($translation); } } return implode("\n", $po); } + public static function match_begin_and_end_newlines( $translation, $original ) { + if ( '' === $translation ) { + return $translation; + } + + $original_begin = "\n" === substr( $original, 0, 1 ); + $original_end = "\n" === substr( $original, -1 ); + $translation_begin = "\n" === substr( $translation, 0, 1 ); + $translation_end = "\n" === substr( $translation, -1 ); + + if ( $original_begin ) { + if ( ! $translation_begin ) { + $translation = "\n" . $translation; + } + } elseif ( $translation_begin ) { + $translation = ltrim( $translation, "\n" ); + } + + if ( $original_end ) { + if ( ! $translation_end ) { + $translation .= "\n"; + } + } elseif ( $translation_end ) { + $translation = rtrim( $translation, "\n" ); + } + + return $translation; + } + + /** + * @param string $filename + * @return boolean + */ function import_from_file($filename) { $f = fopen($filename, 'r'); if (!$f) return false; @@ -214,9 +270,20 @@ class PO extends Gettext_Translations { } } PO::read_line($f, 'clear'); - return $res !== false; + if ( false === $res ) { + return false; + } + if ( ! $this->headers && ! $this->entries ) { + return false; + } + return true; } - + + /** + * @param resource $f + * @param int $lineno + * @return null|false|array + */ function read_entry($f, $lineno = 0) { $entry = new Translation_Entry(); // where were we in the last step @@ -253,7 +320,7 @@ class PO extends Gettext_Translations { return false; } // add comment - $this->add_comment_to_entry($entry, $line);; + $this->add_comment_to_entry($entry, $line); } elseif (preg_match('/^msgctxt\s+(".*")/', $line, $m)) { if ($is_final($context)) { PO::read_line($f, 'put-back'); @@ -316,10 +383,20 @@ class PO extends Gettext_Translations { return false; } } - if (array() == array_filter($entry->translations)) $entry->translations = array(); + if (array() == array_filter($entry->translations, create_function('$t', 'return $t || "0" === $t;'))) { + $entry->translations = array(); + } return array('entry' => $entry, 'lineno' => $lineno); } - + + /** + * @staticvar string $last_line + * @staticvar boolean $use_last_line + * + * @param resource $f + * @param string $action + * @return boolean + */ function read_line($f, $action = 'read') { static $last_line = ''; static $use_last_line = false; @@ -332,11 +409,16 @@ class PO extends Gettext_Translations { return true; } $line = $use_last_line? $last_line : fgets($f); + $line = ( "\r\n" == substr( $line, -2 ) ) ? rtrim( $line, "\r\n" ) . "\n" : $line; $last_line = $line; $use_last_line = false; return $line; } - + + /** + * @param Translation_Entry $entry + * @param string $po_comment_line + */ function add_comment_to_entry(&$entry, $po_comment_line) { $first_two = substr($po_comment_line, 0, 2); $comment = trim(substr($po_comment_line, 2)); @@ -350,11 +432,15 @@ class PO extends Gettext_Translations { $entry->translator_comments = trim($entry->translator_comments . "\n" . $comment); } } - - function trim_quotes($s) { + + /** + * @param string $s + * @return sring + */ + public static function trim_quotes($s) { if ( substr($s, 0, 1) == '"') $s = substr($s, 1); if ( substr($s, -1, 1) == '"') $s = substr($s, 0, -1); return $s; } } -?> +endif; diff --git a/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/pomo/sample/app.php b/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/pomo/sample/app.php index e0a0bf7a3..87b7c606e 100644 --- a/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/pomo/sample/app.php +++ b/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/pomo/sample/app.php @@ -1,7 +1,7 @@ <?php -require_once '../translations.php'; -require_once '../mo.php'; +require_once dirname( dirname(__FILE__) ) . '/translations.php'; +require_once dirname( dirname(__FILE__) ) . '/mo.php'; function __($text, $domain = 'default') { @@ -60,4 +60,3 @@ printf(__n('You have one new message.', 'You have %s new messages.', $messages). echo __("A string with low priority!", 'side')."\n"; _e("Bye\n"); -?> diff --git a/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/pomo/streams.php b/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/pomo/streams.php index 6710746e8..5e37c9c41 100644 --- a/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/pomo/streams.php +++ b/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/pomo/streams.php @@ -3,135 +3,313 @@ * Classes, which help reading streams of data from files. * Based on the classes from Danilo Segan <danilo@kvota.net> * - * @version $Id: streams.php 138 2009-06-23 13:22:09Z nbachiyski $ + * @version $Id: streams.php 1157 2015-11-20 04:30:11Z dd32 $ * @package pomo * @subpackage streams */ +if ( ! class_exists( 'POMO_Reader', false ) ): +class POMO_Reader { -/** - * Provides file-like methods for manipulating a string instead - * of a physical file. - */ -class POMO_StringReader { - var $_pos; - var $_str; + var $endian = 'little'; + var $_post = ''; - function POMO_StringReader($str = '') { - $this->_str = $str; - $this->_pos = 0; + /** + * PHP5 constructor. + */ + function __construct() { $this->is_overloaded = ((ini_get("mbstring.func_overload") & 2) != 0) && function_exists('mb_substr'); + $this->_pos = 0; + } + + /** + * PHP4 constructor. + */ + public function POMO_Reader() { + self::__construct(); + } + + /** + * Sets the endianness of the file. + * + * @param $endian string 'big' or 'little' + */ + function setEndian($endian) { + $this->endian = $endian; + } + + /** + * Reads a 32bit Integer from the Stream + * + * @return mixed The integer, corresponding to the next 32 bits from + * the stream of false if there are not enough bytes or on error + */ + function readint32() { + $bytes = $this->read(4); + if (4 != $this->strlen($bytes)) + return false; + $endian_letter = ('big' == $this->endian)? 'N' : 'V'; + $int = unpack($endian_letter, $bytes); + return reset( $int ); + } + + /** + * Reads an array of 32-bit Integers from the Stream + * + * @param integer count How many elements should be read + * @return mixed Array of integers or false if there isn't + * enough data or on error + */ + function readint32array($count) { + $bytes = $this->read(4 * $count); + if (4*$count != $this->strlen($bytes)) + return false; + $endian_letter = ('big' == $this->endian)? 'N' : 'V'; + return unpack($endian_letter.$count, $bytes); } - function _substr($string, $start, $length) { + /** + * @param string $string + * @param int $start + * @param int $length + * @return string + */ + function substr($string, $start, $length) { if ($this->is_overloaded) { - return mb_substr($string,$start,$length,'ascii'); + return mb_substr($string, $start, $length, 'ascii'); } else { - return substr($string,$start,$length); + return substr($string, $start, $length); } } - - function _strlen($string) { + + /** + * @param string $string + * @return int + */ + function strlen($string) { if ($this->is_overloaded) { - return mb_strlen($string,'ascii'); + return mb_strlen($string, 'ascii'); } else { return strlen($string); } } + /** + * @param string $string + * @param int $chunk_size + * @return array + */ + function str_split($string, $chunk_size) { + if (!function_exists('str_split')) { + $length = $this->strlen($string); + $out = array(); + for ($i = 0; $i < $length; $i += $chunk_size) + $out[] = $this->substr($string, $i, $chunk_size); + return $out; + } else { + return str_split( $string, $chunk_size ); + } + } + + /** + * @return int + */ + function pos() { + return $this->_pos; + } + + /** + * @return true + */ + function is_resource() { + return true; + } + + /** + * @return true + */ + function close() { + return true; + } +} +endif; + +if ( ! class_exists( 'POMO_FileReader', false ) ): +class POMO_FileReader extends POMO_Reader { + + /** + * @param string $filename + */ + function __construct( $filename ) { + parent::POMO_Reader(); + $this->_f = fopen($filename, 'rb'); + } + + /** + * PHP4 constructor. + */ + public function POMO_FileReader( $filename ) { + self::__construct( $filename ); + } + + /** + * @param int $bytes + */ function read($bytes) { - $data = $this->_substr($this->_str, $this->_pos, $bytes); + return fread($this->_f, $bytes); + } + + /** + * @param int $pos + * @return boolean + */ + function seekto($pos) { + if ( -1 == fseek($this->_f, $pos, SEEK_SET)) { + return false; + } + $this->_pos = $pos; + return true; + } + + /** + * @return bool + */ + function is_resource() { + return is_resource($this->_f); + } + + /** + * @return bool + */ + function feof() { + return feof($this->_f); + } + + /** + * @return bool + */ + function close() { + return fclose($this->_f); + } + + /** + * @return string + */ + function read_all() { + $all = ''; + while ( !$this->feof() ) + $all .= $this->read(4096); + return $all; + } +} +endif; + +if ( ! class_exists( 'POMO_StringReader', false ) ): +/** + * Provides file-like methods for manipulating a string instead + * of a physical file. + */ +class POMO_StringReader extends POMO_Reader { + + var $_str = ''; + + /** + * PHP5 constructor. + */ + function __construct( $str = '' ) { + parent::POMO_Reader(); + $this->_str = $str; + $this->_pos = 0; + } + + /** + * PHP4 constructor. + */ + public function POMO_StringReader( $str = '' ) { + self::__construct( $str ); + } + + /** + * @param string $bytes + * @return string + */ + function read($bytes) { + $data = $this->substr($this->_str, $this->_pos, $bytes); $this->_pos += $bytes; - if ($this->_strlen($this->_str) < $this->_pos) $this->_pos = $this->_strlen($this->_str); + if ($this->strlen($this->_str) < $this->_pos) $this->_pos = $this->strlen($this->_str); return $data; } + /** + * @param int $pos + * @return int + */ function seekto($pos) { $this->_pos = $pos; - if ($this->_strlen($this->_str) < $this->_pos) $this->_pos = $this->_strlen($this->_str); + if ($this->strlen($this->_str) < $this->_pos) $this->_pos = $this->strlen($this->_str); return $this->_pos; } - function pos() { - return $this->_pos; + /** + * @return int + */ + function length() { + return $this->strlen($this->_str); } - function length() { - return $this->_strlen($this->_str); + /** + * @return string + */ + function read_all() { + return $this->substr($this->_str, $this->_pos, $this->strlen($this->_str)); } } +endif; +if ( ! class_exists( 'POMO_CachedFileReader', false ) ): /** * Reads the contents of the file in the beginning. */ class POMO_CachedFileReader extends POMO_StringReader { - function POMO_CachedFileReader($filename) { + /** + * PHP5 constructor. + */ + function __construct( $filename ) { parent::POMO_StringReader(); $this->_str = file_get_contents($filename); if (false === $this->_str) return false; $this->_pos = 0; } + + /** + * PHP4 constructor. + */ + public function POMO_CachedFileReader( $filename ) { + self::__construct( $filename ); + } } +endif; +if ( ! class_exists( 'POMO_CachedIntFileReader', false ) ): /** - * Allows reading integers from a file. + * Reads the contents of the file in the beginning. */ class POMO_CachedIntFileReader extends POMO_CachedFileReader { - - var $endian = 'little'; - /** - * Opens a file and caches it. - * - * @param $filename string name of the file to be opened - * @param $endian string endianness of the words in the file, allowed - * values are 'little' or 'big'. Default value is 'little' + * PHP5 constructor. */ - function POMO_CachedIntFileReader($filename, $endian = 'little') { - $this->endian = $endian; + public function __construct( $filename ) { parent::POMO_CachedFileReader($filename); } /** - * Sets the endianness of the file. - * - * @param $endian string 'big' or 'little' - */ - function setEndian($endian) { - $this->endian = $endian; - } - - /** - * Reads a 32bit Integer from the Stream - * - * @return mixed The integer, corresponding to the next 32 bits from - * the stream of false if there are not enough bytes or on error + * PHP4 constructor. */ - function readint32() { - $bytes = $this->read(4); - if (4 != $this->_strlen($bytes)) - return false; - $endian_letter = ('big' == $this->endian)? 'N' : 'V'; - $int = unpack($endian_letter, $bytes); - return array_shift($int); - } - - /** - * Reads an array of 32-bit Integers from the Stream - * - * @param integer count How many elements should be read - * @return mixed Array of integers or false if there isn't - * enough data or on error - */ - function readint32array($count) { - $bytes = $this->read(4 * $count); - if (4*$count != $this->_strlen($bytes)) - return false; - $endian_letter = ('big' == $this->endian)? 'N' : 'V'; - return unpack($endian_letter.$count, $bytes); + function POMO_CachedIntFileReader( $filename ) { + self::__construct( $filename ); } } +endif; -?> diff --git a/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/pomo/translations.php b/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/pomo/translations.php index a05ae6ceb..66971d959 100644 --- a/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/pomo/translations.php +++ b/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/backpress/pomo/translations.php @@ -2,13 +2,14 @@ /** * Class for a set of entries for translation and their associated headers * - * @version $Id: translations.php 114 2009-05-11 17:30:38Z nbachiyski $ + * @version $Id: translations.php 1157 2015-11-20 04:30:11Z dd32 $ * @package pomo * @subpackage translations */ require_once dirname(__FILE__) . '/entry.php'; +if ( ! class_exists( 'Translations', false ) ): class Translations { var $entries = array(); var $headers = array(); @@ -16,7 +17,7 @@ class Translations { /** * Add entry to the PO structure * - * @param object &$entry + * @param array|Translation_Entry &$entry * @return bool true on success, false if the entry doesn't have a key */ function add_entry($entry) { @@ -25,7 +26,24 @@ class Translations { } $key = $entry->key(); if (false === $key) return false; - $this->entries[$key] = $entry; + $this->entries[$key] = &$entry; + return true; + } + + /** + * @param array|Translation_Entry $entry + * @return bool + */ + function add_entry_or_merge($entry) { + if (is_array($entry)) { + $entry = new Translation_Entry($entry); + } + $key = $entry->key(); + if (false === $key) return false; + if (isset($this->entries[$key])) + $this->entries[$key]->merge_with($entry); + else + $this->entries[$key] = &$entry; return true; } @@ -43,21 +61,35 @@ class Translations { $this->headers[$header] = $value; } - function set_headers(&$headers) { + /** + * @param array $headers + */ + function set_headers($headers) { foreach($headers as $header => $value) { $this->set_header($header, $value); } } + /** + * @param string $header + */ function get_header($header) { return isset($this->headers[$header])? $this->headers[$header] : false; } + /** + * @param Translation_Entry $entry + */ function translate_entry(&$entry) { $key = $entry->key(); return isset($this->entries[$key])? $this->entries[$key] : false; } + /** + * @param string $singular + * @param string $context + * @return string + */ function translate($singular, $context=null) { $entry = new Translation_Entry(array('singular' => $singular, 'context' => $context)); $translated = $this->translate_entry($entry); @@ -67,7 +99,7 @@ class Translations { /** * Given the number of items, returns the 0-based index of the plural form to use * - * Here, in the base Translations class, the commong logic for English is implmented: + * Here, in the base Translations class, the common logic for English is implemented: * 0 if there is one element, 1 otherwise * * This function should be overrided by the sub-classes. For example MO/PO can derive the logic @@ -79,10 +111,19 @@ class Translations { return 1 == $count? 0 : 1; } + /** + * @return int + */ function get_plural_forms_count() { return 2; } + /** + * @param string $singular + * @param string $plural + * @param int $count + * @param string $context + */ function translate_plural($singular, $plural, $count, $context = null) { $entry = new Translation_Entry(array('singular' => $singular, 'plural' => $plural, 'context' => $context)); $translated = $this->translate_entry($entry); @@ -103,53 +144,78 @@ class Translations { * @return void **/ function merge_with(&$other) { - $this->entries = array_merge($this->entries, $other->entries); + foreach( $other->entries as $entry ) { + $this->entries[$entry->key()] = $entry; + } + } + + /** + * @param object $other + */ + function merge_originals_with(&$other) { + foreach( $other->entries as $entry ) { + if ( !isset( $this->entries[$entry->key()] ) ) + $this->entries[$entry->key()] = $entry; + else + $this->entries[$entry->key()]->merge_with($entry); + } } } class Gettext_Translations extends Translations { /** - * The gettext implmentation of select_plural_form. + * The gettext implementation of select_plural_form. * * It lives in this class, because there are more than one descendand, which will use it and * they can't share it effectively. * + * @param int $count */ function gettext_select_plural_form($count) { if (!isset($this->_gettext_select_plural_form) || is_null($this->_gettext_select_plural_form)) { - $plural_header = $this->get_header('Plural-Forms'); - $this->_gettext_select_plural_form = $this->_make_gettext_select_plural_form($plural_header); + list( $nplurals, $expression ) = $this->nplurals_and_expression_from_header($this->get_header('Plural-Forms')); + $this->_nplurals = $nplurals; + $this->_gettext_select_plural_form = $this->make_plural_form_function($nplurals, $expression); } return call_user_func($this->_gettext_select_plural_form, $count); } /** - * Makes a function, which will return the right translation index, according to the - * plural forms header + * @param string $header + * @return array */ - function _make_gettext_select_plural_form($plural_header) { - $res = create_function('$count', 'return 1 == $count? 0 : 1;'); - if ($plural_header && (preg_match('/^\s*nplurals\s*=\s*(\d+)\s*;\s+plural\s*=\s*(.+)$/', $plural_header, $matches))) { + function nplurals_and_expression_from_header($header) { + if (preg_match('/^\s*nplurals\s*=\s*(\d+)\s*;\s+plural\s*=\s*(.+)$/', $header, $matches)) { $nplurals = (int)$matches[1]; - $this->_nplurals = $nplurals; - $plural_expr = trim($this->_parenthesize_plural_exression($matches[2])); - $plural_expr = str_replace('n', '$n', $plural_expr); - $func_body = " - \$index = (int)($plural_expr); - return (\$index < $nplurals)? \$index : $nplurals - 1;"; - $res = create_function('$n', $func_body); + $expression = trim($this->parenthesize_plural_exression($matches[2])); + return array($nplurals, $expression); + } else { + return array(2, 'n != 1'); } - return $res; } /** - * Adds parantheses to the inner parts of ternary operators in + * Makes a function, which will return the right translation index, according to the + * plural forms header + * @param int $nplurals + * @param string $expression + */ + function make_plural_form_function($nplurals, $expression) { + $expression = str_replace('n', '$n', $expression); + $func_body = " + \$index = (int)($expression); + return (\$index < $nplurals)? \$index : $nplurals - 1;"; + return create_function('$n', $func_body); + } + + /** + * Adds parentheses to the inner parts of ternary operators in * plural expressions, because PHP evaluates ternary oerators from left to right - * + * * @param string $expression the expression without parentheses * @return string the expression with parentheses added */ - function _parenthesize_plural_exression($expression) { + function parenthesize_plural_exression($expression) { $expression .= ';'; $res = ''; $depth = 0; @@ -173,7 +239,11 @@ class Gettext_Translations extends Translations { } return rtrim($res, ';'); } - + + /** + * @param string $translation + * @return array + */ function make_headers($translation) { $headers = array(); // sometimes \ns are used instead of real new lines @@ -187,13 +257,102 @@ class Gettext_Translations extends Translations { return $headers; } + /** + * @param string $header + * @param string $value + */ function set_header($header, $value) { parent::set_header($header, $value); - if ('Plural-Forms' == $header) - $this->_gettext_select_plural_form = $this->_make_gettext_select_plural_form($value); + if ('Plural-Forms' == $header) { + list( $nplurals, $expression ) = $this->nplurals_and_expression_from_header($this->get_header('Plural-Forms')); + $this->_nplurals = $nplurals; + $this->_gettext_select_plural_form = $this->make_plural_form_function($nplurals, $expression); + } } - - } +endif; -?> +if ( ! class_exists( 'NOOP_Translations', false ) ): +/** + * Provides the same interface as Translations, but doesn't do anything + */ +class NOOP_Translations { + var $entries = array(); + var $headers = array(); + + function add_entry($entry) { + return true; + } + + /** + * + * @param string $header + * @param string $value + */ + function set_header($header, $value) { + } + + /** + * + * @param array $headers + */ + function set_headers($headers) { + } + + /** + * @param string $header + * @return false + */ + function get_header($header) { + return false; + } + + /** + * @param Translation_Entry $entry + * @return false + */ + function translate_entry(&$entry) { + return false; + } + + /** + * @param string $singular + * @param string $context + */ + function translate($singular, $context=null) { + return $singular; + } + + /** + * + * @param int $count + * @return bool + */ + function select_plural_form($count) { + return 1 == $count? 0 : 1; + } + + /** + * @return int + */ + function get_plural_forms_count() { + return 2; + } + + /** + * @param string $singular + * @param string $plural + * @param int $count + * @param string $context + */ + function translate_plural($singular, $plural, $count, $context = null) { + return 1 == $count? $singular : $plural; + } + + /** + * @param object $other + */ + function merge_with(&$other) { + } +} +endif; diff --git a/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/class.bb-dir-map.php b/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/class.bb-dir-map.php index 314e03405..db239ac0f 100644 --- a/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/class.bb-dir-map.php +++ b/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/class.bb-dir-map.php @@ -14,7 +14,7 @@ class BB_Dir_Map { var $_current_root; var $_current_file; - function BB_Dir_Map( $root, $args = '' ) { + function __construct( $root, $args = '' ) { if ( !is_dir( $root ) ) { $this->error = new WP_Error( 'bb_dir_map', __('Not a valid directory') ); return; @@ -29,6 +29,10 @@ class BB_Dir_Map { $this->map(); } + function BB_Dir_Map( $root, $args = '' ) { + $this->__construct( $root, $args ); + } + function parse_args( $args ) { // callback: should be callable // callback_args: additional args to pass to callback diff --git a/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/class.bb-locale.php b/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/class.bb-locale.php index 7c5bd4292..5186d8401 100644 --- a/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/class.bb-locale.php +++ b/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/class.bb-locale.php @@ -351,10 +351,14 @@ class BB_Locale { * * @return BB_Locale */ - function BB_Locale() { + function __construct() { $this->init(); $this->register_globals(); } + + function BB_Locale() { + $this->__construct(); + } } /** diff --git a/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/class.bb-query.php b/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/class.bb-query.php index 8ce1b2b80..2d951b3c5 100644 --- a/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/class.bb-query.php +++ b/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/class.bb-query.php @@ -16,13 +16,17 @@ class BB_Query { var $found_rows = false; // Can optionally pass unique id string to help out filters - function BB_Query( $type = 'topic', $query = '', $id = '' ) { + function __construct( $type = 'topic', $query = '', $id = '' ) { $this->init( $type, $query, $id ); if ( !empty($this->query) ) $this->query(); } + function BB_Query( $type = 'topic', $query = '', $id = '' ) { + $this->__construct( $type, $query, $id ); + } + function init( $type = null, $query = null, $id = null ) { if ( !is_null($type) || !isset($this->type) ) $this->type = is_null($type) ? 'topic' : $type; @@ -882,13 +886,17 @@ class BB_Query_Form extends BB_Query { var $allowed; // Can optionally pass unique id string to help out filters - function BB_Query_Form( $type = 'topic', $defaults = '', $allowed = '', $id = '' ) { + function __construct( $type = 'topic', $defaults = '', $allowed = '', $id = '' ) { $this->defaults = wp_parse_args( $defaults ); $this->allowed = wp_parse_args( $allowed ); if ( !empty($defaults) || !empty($allowed) ) $this->query_from_env($type, $defaults, $allowed, $id); } + function BB_Query_Form( $type = 'topic', $defaults = '', $allowed = '', $id = '' ) { + $this->__construct( $type, $defaults, $allowed, $id ); + } + function form( $args = null ) { $_post = 'post' == $this->type; diff --git a/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/class.bb-walker.php b/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/class.bb-walker.php index b398c9334..db118d5ba 100644 --- a/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/class.bb-walker.php +++ b/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/class.bb-walker.php @@ -162,12 +162,16 @@ class BB_Loop { return $a; } - function BB_Loop( &$elements ) { + function __construct( &$elements ) { $this->elements = $elements; if ( !is_array($this->elements) || empty($this->elements) ) return $this->elements = false; } + function BB_Loop( &$elements ) { + $this->__construct( $elements ); + } + function step() { if ( !is_array($this->elements) || !current($this->elements) || !is_object($this->walker) ) return false; diff --git a/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/functions.bb-deprecated.php b/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/functions.bb-deprecated.php index 88dd1c76e..7922e8570 100644 --- a/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/functions.bb-deprecated.php +++ b/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/functions.bb-deprecated.php @@ -889,9 +889,12 @@ endif; if ( !class_exists( 'WP_User' ) ) : // Deprecated in BackPress not WordPress class WP_User extends BP_User { - function WP_User( $id, $name = '' ) { + function __construct( $id, $name = '' ) { return parent::BP_User( $id, $name ); } + function WP_User( $id, $name = '' ) { + $this->__construct( $id, $name ); + } } endif; diff --git a/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/functions.bb-forums.php b/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/functions.bb-forums.php index 85e6f1e32..658e235d0 100644 --- a/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/functions.bb-forums.php +++ b/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/functions.bb-forums.php @@ -61,9 +61,10 @@ function bb_get_forums( $args = null ) { if ( is_numeric($args) ) { $args = array( 'child_of' => $args, 'hierarchical' => 1, 'depth' => 0 ); } elseif ( is_callable($args) ) { + $_args = func_get_args(); $args = array( 'callback' => $args ); if ( 1 < func_num_args() ) - $args['callback_args'] = func_get_arg(1); + $args['callback_args'] = $_args[1]; } $defaults = array( 'callback' => false, 'callback_args' => false, 'child_of' => 0, 'hierarchical' => 0, 'depth' => 0, 'cut_branch' => 0, 'where' => '', 'order_by' => 'forum_order' ); diff --git a/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/functions.bb-l10n.php b/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/functions.bb-l10n.php index 7eeb5bebd..155eae3da 100644 --- a/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/functions.bb-l10n.php +++ b/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/functions.bb-l10n.php @@ -481,7 +481,7 @@ if ( !function_exists( 'get_translations_for_domain' ) ) : */ function &get_translations_for_domain( $domain ) { global $l10n; - $empty =& new Translations; + $empty = new Translations; if ( isset($l10n[$domain]) ) return $l10n[$domain]; else diff --git a/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/functions.bb-template.php b/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/functions.bb-template.php index 17c9a14c8..546537e32 100644 --- a/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/functions.bb-template.php +++ b/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/functions.bb-template.php @@ -915,13 +915,14 @@ function bb_forum_bread_crumb( $args = '' ) { function &bb_forums( $args = '' ) { global $bb_forums_loop; + $_args = func_get_args(); $default_type = 'flat'; if ( is_numeric($args) ) { $args = array( 'child_of' => $args ); } elseif ( func_num_args() > 1 ) { // bb_forums( 'ul', $args ); Deprecated $default_type = $args; - $args = func_get_arg(1); + $args = $_args[1]; } elseif ( $args && is_string($args) && false === strpos($args, '=') ) { $args = array( 'type' => $args ); } @@ -3224,14 +3225,15 @@ function bb_get_tag_remove_link( $args = null ) { } function bb_tag_heat_map( $args = '' ) { + $_args = func_get_args(); $defaults = array( 'smallest' => 8, 'largest' => 22, 'unit' => 'pt', 'limit' => 40, 'format' => 'flat' ); $args = wp_parse_args( $args, $defaults ); if ( 1 < $fn = func_num_args() ) : // For back compat - $args['smallest'] = func_get_arg(0); - $args['largest'] = func_get_arg(1); - $args['unit'] = 2 < $fn ? func_get_arg(2) : $unit; - $args['limit'] = 3 < $fn ? func_get_arg(3) : $limit; + $args['smallest'] = $_args[0]; + $args['largest'] = $_args[1]; + $args['unit'] = 2 < $fn ? $_args[2] : $unit; + $args['limit'] = 3 < $fn ? $_args[3] : $limit; endif; extract($args, EXTR_SKIP); @@ -3311,19 +3313,21 @@ function tag_pages( $args = null ) } function bb_forum_dropdown( $args = '' ) { + $_args = func_get_args(); if ( $args && is_string($args) && false === strpos($args, '=') ) $args = array( 'callback' => $args ); if ( 1 < func_num_args() ) - $args['callback_args'] = func_get_arg(1); + $args['callback_args'] = $_args[1]; echo bb_get_forum_dropdown( $args ); } function bb_get_forum_dropdown( $args = '' ) { + $_args = func_get_args(); $defaults = array( 'callback' => false, 'callback_args' => false, 'id' => 'forum_id', 'none' => false, 'selected' => false, 'tab' => false, 'hierarchical' => 1, 'depth' => 0, 'child_of' => 0, 'disable_categories' => 1, 'options_only' => false ); if ( $args && is_string($args) && false === strpos($args, '=') ) $args = array( 'callback' => $args ); if ( 1 < func_num_args() ) - $args['callback_args'] = func_get_arg(1); + $args['callback_args'] = $_args[1]; $args = wp_parse_args( $args, $defaults ); diff --git a/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/functions.bb-topic-tags.php b/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/functions.bb-topic-tags.php index bd3ae0591..101507f40 100644 --- a/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/functions.bb-topic-tags.php +++ b/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/functions.bb-topic-tags.php @@ -354,15 +354,16 @@ function bb_get_tagged_topic_ids( $tag_id ) { function get_tagged_topics( $args ) { global $tagged_topic_count; + $_args = func_get_args(); $defaults = array( 'tag_id' => false, 'page' => 1, 'number' => false, 'count' => true ); if ( is_numeric( $args ) ) $args = array( 'tag_id' => $args ); else $args = wp_parse_args( $args ); // Make sure it's an array if ( 1 < func_num_args() ) - $args['page'] = func_get_arg(1); + $args['page'] = $_args[1]; if ( 2 < func_num_args() ) - $args['number'] = func_get_arg(2); + $args['number'] = $_args[2]; $args = wp_parse_args( $args, $defaults ); extract( $args, EXTR_SKIP ); @@ -376,15 +377,16 @@ function get_tagged_topics( $args ) { } function get_tagged_topic_posts( $args ) { + $_args = func_get_args(); $defaults = array( 'tag_id' => false, 'page' => 1, 'number' => false ); if ( is_numeric( $args ) ) $args = array( 'tag_id' => $args ); else $args = wp_parse_args( $args ); // Make sure it's an array if ( 1 < func_num_args() ) - $args['page'] = func_get_arg(1); + $args['page'] = $_args[1]; if ( 2 < func_num_args() ) - $args['number'] = func_get_arg(2); + $args['number'] = $_args[2]; $args = wp_parse_args( $args, $defaults ); extract( $args, EXTR_SKIP ); diff --git a/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/functions.bb-topics.php b/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/functions.bb-topics.php index d4baa5d4f..795bfb312 100644 --- a/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/functions.bb-topics.php +++ b/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/functions.bb-topics.php @@ -59,15 +59,16 @@ function bb_get_topic_from_uri( $uri ) { } function get_latest_topics( $args = null ) { + $_args = func_get_args(); $defaults = array( 'forum' => false, 'page' => 1, 'exclude' => false, 'number' => false ); if ( is_numeric( $args ) ) $args = array( 'forum' => $args ); else $args = wp_parse_args( $args ); // Make sure it's an array if ( 1 < func_num_args() ) - $args['page'] = func_get_arg(1); + $args['page'] = $_args[1]; if ( 2 < func_num_args() ) - $args['exclude'] = func_get_arg(2); + $args['exclude'] = $_args[2]; $args = wp_parse_args( $args, $defaults ); extract( $args, EXTR_SKIP ); @@ -436,10 +437,11 @@ function bb_update_topic_voices( $topic_id ) // A topic is the container, the thread is it's contents (the posts) function get_thread( $topic_id, $args = null ) { + $_args = func_get_args(); $defaults = array( 'page' => 1, 'order' => 'ASC' ); if ( is_numeric( $args ) ) $args = array( 'page' => $args ); - if ( @func_get_arg(2) ) + if ( @$_args[2] ) $defaults['order'] = 'DESC'; $args = wp_parse_args( $args, $defaults ); diff --git a/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/functions.bb-users.php b/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/functions.bb-users.php index 186d488c7..0cab060ab 100644 --- a/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/functions.bb-users.php +++ b/wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/functions.bb-users.php @@ -43,7 +43,7 @@ function bb_get_user_by_nicename( $nicename ) { $user = $wp_users_object->get_user( $nicename, array( 'by' => 'nicename' ) ); if ( is_wp_error($user) ) return false; - return $user; + return bb_get_user( $user->ID ); } function bb_delete_user( $user_id, $reassign = 0 ) { diff --git a/wp-content/plugins/buddypress/bp-forums/bbpress/bb-plugins/akismet.php b/wp-content/plugins/buddypress/bp-forums/bbpress/bb-plugins/akismet.php index ca2fc7ad1..76b0a3531 100644 --- a/wp-content/plugins/buddypress/bp-forums/bbpress/bb-plugins/akismet.php +++ b/wp-content/plugins/buddypress/bp-forums/bbpress/bb-plugins/akismet.php @@ -456,8 +456,8 @@ function bb_ksd_post_delete_link( $parts, $args ) $before = ''; $after = ''; } else { - $before = $args['last_each']['before']; - $after = $args['last_each']['after']; + $before = isset( $args['last_each']['before'] ) ? $args['last_each']['before'] : ''; + $after = isset( $args['last_each']['after'] ) ? $args['last_each']['after'] : ''; } // Make sure that the last tag in $before gets a class (if it's there) diff --git a/wp-content/plugins/buddypress/bp-forums/bbpress/bb-plugins/bozo.php b/wp-content/plugins/buddypress/bp-forums/bbpress/bb-plugins/bozo.php index 4763659c6..380a7ef56 100644 --- a/wp-content/plugins/buddypress/bp-forums/bbpress/bb-plugins/bozo.php +++ b/wp-content/plugins/buddypress/bp-forums/bbpress/bb-plugins/bozo.php @@ -74,7 +74,7 @@ function bb_bozo_latest_filter() { function bb_bozo_topic_db_filter() { global $topic, $topic_id; - if ( bb_current_user_is_bozo( $topic->topic_id ? $topic->topic_id : $topic_id ) ) { + if ( isset( $topic->topic_id ) && bb_current_user_is_bozo( $topic->topic_id ? $topic->topic_id : $topic_id ) ) { add_filter( 'get_thread_where', 'bb_bozo_posts' ); add_filter( 'get_thread_post_ids_where', 'bb_bozo_posts' ); } @@ -82,7 +82,7 @@ function bb_bozo_topic_db_filter() { function bb_bozo_profile_db_filter() { global $user; - if ( bb_get_current_user_info( 'id' ) == $user->ID && @is_array($user->bozo_topics) ) + if ( isset( $user->ID) && isset( $user->bozo_topics ) && bb_get_current_user_info( 'id' ) == $user->ID && @is_array($user->bozo_topics) ) add_filter( 'get_recent_user_replies_where', 'bb_bozo_posts' ); } @@ -157,7 +157,7 @@ function bb_bozo_recount_users() { function bb_bozo_post_del_class( $classes, $post_id, $post ) { - if ( 1 < $post->post_status && bb_current_user_can('browse_deleted') ) { + if ( isset( $post->post_status ) && 1 < $post->post_status && bb_current_user_can('browse_deleted') ) { if ( $classes ) { return $classes . ' bozo'; } @@ -178,24 +178,24 @@ function bb_bozo_topic_pages_add( $add ) { if ( isset($_GET['view']) && 'all' == $_GET['view'] && bb_current_user_can('browse_deleted') ) : $add += @array_sum($topic->bozos); endif; - if ( bb_current_user_is_bozo( $topic->topic_id ) ) + if ( isset( $topic->topic_id ) && bb_current_user_is_bozo( $topic->topic_id ) ) $add += $topic->bozos[bb_get_current_user_info( 'id' )]; return $add; } function bb_bozo_get_topic_posts( $topic_posts ) { global $topic; - if ( bb_current_user_is_bozo( $topic->topic_id ) ) + if ( isset( $topic->topic_id ) && bb_current_user_is_bozo( $topic->topic_id ) ) $topic_posts += $topic->bozos[bb_get_current_user_info( 'id' )]; return $topic_posts; } function bb_bozo_new_post( $post_id ) { $bb_post = bb_get_post( $post_id ); - if ( 1 < $bb_post->post_status ) + if ( isset( $post->post_status ) && 1 < $bb_post->post_status ) bb_bozon( $bb_post->poster_id, $bb_post->topic_id ); $topic = get_topic( $bb_post->topic_id, false ); - if ( 0 == $topic->topic_posts ) + if ( isset( $topic->topic_posts ) && 0 == $topic->topic_posts ) bb_delete_topic( $topic->topic_id, 2 ); } @@ -231,7 +231,7 @@ function bb_bozon( $user_id, $topic_id = 0 ) { if ( isset($topic->bozos[$user_id]) ) $topic->bozos[$user_id]++; - elseif ( is_array($topic->bozos) ) + elseif ( isset( $topic->bozos ) && is_array( $topic->bozos ) ) $topic->bozos[$user_id] = 1; else $topic->bozos = array($user_id => 1); @@ -239,7 +239,7 @@ function bb_bozon( $user_id, $topic_id = 0 ) { if ( isset($user->{$bozo_topics_key}[$topic_id]) ) $user->{$bozo_topics_key}[$topic_id]++; - elseif ( is_array($user->bozo_topics) ) + elseif ( isset( $user->bozo_topics ) && is_array($user->bozo_topics) ) $user->{$bozo_topics_key}[$topic_id] = 1; else $user->$bozo_topics_key = array($topic_id => 1); @@ -297,7 +297,7 @@ function bb_bozo_get_bozo_user_ids() function bb_bozo_user_search_description( $description, $h2_search, $h2_role, $user_search_object ) { - if ( is_array( $user_search_object->roles ) && in_array( 'bozo', $user_search_object->roles ) ) { + if ( isset( $user_search_object->roles ) && is_array( $user_search_object->roles ) && in_array( 'bozo', $user_search_object->roles ) ) { return sprintf( '%1$s%2$s that are bozos', $h2_search, $h2_role ); } return $description; @@ -307,10 +307,9 @@ add_filter( 'bb_user_search_description', 'bb_bozo_user_search_description', 10, function bb_bozo_user_search_form_add_inputs( $r, $user_search_object ) { $checked = ''; - if ( is_array( $user_search_object->roles ) && in_array( 'bozo', $user_search_object->roles ) ) { + if ( isset( $user_search_object->roles ) && is_array( $user_search_object->roles ) && in_array( 'bozo', $user_search_object->roles ) ) { $checked = ' checked="checked"'; } - $r .= "\t" . '<div>' . "\n"; $r .= "\t\t" . '<label for="userbozo">' . __('Bozos only') . '</label>' . "\n"; $r .= "\t\t" . '<div>' . "\n"; diff --git a/wp-content/plugins/buddypress/bp-forums/bbpress/bb-settings.php b/wp-content/plugins/buddypress/bp-forums/bbpress/bb-settings.php index 608663c07..30f91e374 100644 --- a/wp-content/plugins/buddypress/bp-forums/bbpress/bb-settings.php +++ b/wp-content/plugins/buddypress/bp-forums/bbpress/bb-settings.php @@ -185,7 +185,7 @@ if ( !$bb_table_prefix ) { // Setup the global database connection $bbdb_class = BB_DATABASE_CLASS; -$bbdb =& new $bbdb_class( array( +$bbdb = new $bbdb_class( array( 'name' => BBDB_NAME, 'user' => BBDB_USER, 'password' => BBDB_PASSWORD, diff --git a/wp-content/plugins/buddypress/bp-forums/bbpress/xmlrpc.php b/wp-content/plugins/buddypress/bp-forums/bbpress/xmlrpc.php index cca1b6841..4359512ad 100644 --- a/wp-content/plugins/buddypress/bp-forums/bbpress/xmlrpc.php +++ b/wp-content/plugins/buddypress/bp-forums/bbpress/xmlrpc.php @@ -51,12 +51,10 @@ if ( isset( $_GET['rsd'] ) ) { exit; } - - // Load the XML-RPC server/client classes -require_once( BACKPRESS_PATH . '/class.ixr.php' ); - - +if ( ! class_exists( 'IXR_Value' ) ) { + require_once( BACKPRESS_PATH . '/class.ixr.php' ); +} /** * XML-RPC server class to allow for remote publishing @@ -106,7 +104,7 @@ class BB_XMLRPC_Server extends IXR_Server * @since 1.0 * @return void */ - function BB_XMLRPC_Server() + function __construct() { // bbPress publishing API if ( bb_get_option( 'enable_xmlrpc' ) ) { @@ -175,7 +173,10 @@ class BB_XMLRPC_Server extends IXR_Server $this->IXR_Server( $this->methods ); } - + function BB_XMLRPC_Server() + { + $this->__construct(); + } /** * Utility methods diff --git a/wp-content/plugins/buddypress/bp-forums/bp-forums-bbpress-sa.php b/wp-content/plugins/buddypress/bp-forums/bp-forums-bbpress-sa.php index 177be59a7..cefec1eb3 100644 --- a/wp-content/plugins/buddypress/bp-forums/bp-forums-bbpress-sa.php +++ b/wp-content/plugins/buddypress/bp-forums/bp-forums-bbpress-sa.php @@ -149,7 +149,7 @@ function bp_forums_load_bbpress() { * * @since 1.1.0 */ - register_shutdown_function( create_function( '', 'do_action("bb_shutdown");' ) ); + register_shutdown_function( function() { do_action( 'bb_shutdown' ); } ); } add_action( 'bbpress_init', 'bp_forums_load_bbpress' ); @@ -236,8 +236,7 @@ if ( ! class_exists( 'BPDB' ) ) : function __construct( $dbuser, $dbpassword, $dbname, $dbhost ) { parent::__construct( $dbuser, $dbpassword, $dbname, $dbhost ); - $args = func_get_args(); - $args = call_user_func_array( array( &$this, 'init' ), $args ); + $args = call_user_func_array( array( &$this, 'init' ), func_get_args() ); if ( $args['host'] ) $this->db_servers['dbh_global'] = $args; diff --git a/wp-content/plugins/buddypress/bp-forums/deprecated/1.7.php b/wp-content/plugins/buddypress/bp-forums/deprecated/1.7.php index 33711f6bb..d9c82ed13 100644 --- a/wp-content/plugins/buddypress/bp-forums/deprecated/1.7.php +++ b/wp-content/plugins/buddypress/bp-forums/deprecated/1.7.php @@ -21,7 +21,7 @@ function bp_forums_add_admin_menu() { $page = bp_core_do_network_admin() ? 'settings.php' : 'options-general.php'; // Add the administration tab under the "Site Admin" tab for site administrators. - $hook = add_submenu_page( $page, __( 'Forums', 'buddypress' ), __( 'Forums', 'buddypress' ), 'manage_options', 'bb-forums-setup', "bp_forums_bbpress_admin" ); + $hook = add_submenu_page( $page, __( 'Forums (Legacy)', 'buddypress' ), __( 'Forums (Legacy)', 'buddypress' ), 'manage_options', 'bb-forums-setup', "bp_forums_bbpress_admin" ); // Fudge the highlighted subnav item when on the BuddyPress Forums admin page. add_action( "admin_head-$hook", 'bp_core_modify_admin_menu_highlight' ); diff --git a/wp-content/plugins/buddypress/bp-friends/bp-friends-functions.php b/wp-content/plugins/buddypress/bp-friends/bp-friends-functions.php index b8d434137..95ccd5deb 100644 --- a/wp-content/plugins/buddypress/bp-friends/bp-friends-functions.php +++ b/wp-content/plugins/buddypress/bp-friends/bp-friends-functions.php @@ -421,18 +421,25 @@ function friends_get_friendship_request_user_ids( $user_id ) { * @return array See {@link BP_Core_User::get_users()}. */ function friends_get_recently_active( $user_id, $per_page = 0, $page = 0, $filter = '' ) { + $friends = bp_core_get_users( array( + 'type' => 'active', + 'per_page' => $per_page, + 'page' => $page, + 'user_id' => $user_id, + 'search_terms' => $filter, + ) ); /** * Filters a user's most recently active friends. * * @since 1.2.0 * - * @param array { + * @param array $friends { * @type int $total_users Total number of users matched by query params. * @type array $paged_users The current page of users matched by query params. * } */ - return apply_filters( 'friends_get_recently_active', BP_Core_User::get_users( 'active', $per_page, $page, $user_id, $filter ) ); + return apply_filters( 'friends_get_recently_active', $friends ); } /** @@ -452,18 +459,25 @@ function friends_get_recently_active( $user_id, $per_page = 0, $page = 0, $filte * @return array See {@link BP_Core_User::get_users()}. */ function friends_get_alphabetically( $user_id, $per_page = 0, $page = 0, $filter = '' ) { + $friends = bp_core_get_users( array( + 'type' => 'alphabetical', + 'per_page' => $per_page, + 'page' => $page, + 'user_id' => $user_id, + 'search_terms' => $filter, + ) ); /** * Filters a user's friends listed in alphabetical order. * * @since 1.2.0 * - * @return array { + * @return array $friends { * @type int $total_users Total number of users matched by query params. * @type array $paged_users The current page of users matched by query params. * } */ - return apply_filters( 'friends_get_alphabetically', BP_Core_User::get_users( 'alphabetical', $per_page, $page, $user_id, $filter ) ); + return apply_filters( 'friends_get_alphabetically', $friends ); } /** @@ -483,18 +497,25 @@ function friends_get_alphabetically( $user_id, $per_page = 0, $page = 0, $filter * @return array See {@link BP_Core_User::get_users()}. */ function friends_get_newest( $user_id, $per_page = 0, $page = 0, $filter = '' ) { + $friends = bp_core_get_users( array( + 'type' => 'newest', + 'per_page' => $per_page, + 'page' => $page, + 'user_id' => $user_id, + 'search_terms' => $filter, + ) ); /** * Filters a user's friends listed from newest to oldest. * * @since 1.2.0 * - * @param array { + * @param array $friends { * @type int $total_users Total number of users matched by query params. * @type array $paged_users The current page of users matched by query params. * } */ - return apply_filters( 'friends_get_newest', BP_Core_User::get_users( 'newest', $per_page, $page, $user_id, $filter ) ); + return apply_filters( 'friends_get_newest', $friends ); } /** diff --git a/wp-content/plugins/buddypress/bp-friends/bp-friends-loader.php b/wp-content/plugins/buddypress/bp-friends/bp-friends-loader.php index 359b7b67d..3db02a41d 100644 --- a/wp-content/plugins/buddypress/bp-friends/bp-friends-loader.php +++ b/wp-content/plugins/buddypress/bp-friends/bp-friends-loader.php @@ -12,10 +12,6 @@ // Exit if accessed directly. defined( 'ABSPATH' ) || exit; -if ( ! buddypress()->do_autoload ) { - require dirname( __FILE__ ) . '/classes/class-bp-friends-component.php'; -} - /** * Set up the bp-friends component. * diff --git a/wp-content/plugins/buddypress/bp-friends/bp-friends-widgets.php b/wp-content/plugins/buddypress/bp-friends/bp-friends-widgets.php index a3e567ea2..7a509004a 100644 --- a/wp-content/plugins/buddypress/bp-friends/bp-friends-widgets.php +++ b/wp-content/plugins/buddypress/bp-friends/bp-friends-widgets.php @@ -10,10 +10,6 @@ // Exit if accessed directly. defined( 'ABSPATH' ) || exit; -if ( ! buddypress()->do_autoload ) { - require dirname( __FILE__ ) . '/classes/class-bp-core-friends-widget.php'; -} - /** * Register the friends widget. * @@ -31,7 +27,7 @@ function bp_friends_register_widgets() { return; } - add_action( 'widgets_init', create_function( '', 'return register_widget("BP_Core_Friends_Widget");' ) ); + add_action( 'widgets_init', function() { register_widget( 'BP_Core_Friends_Widget' ); } ); } add_action( 'bp_register_widgets', 'bp_friends_register_widgets' ); @@ -76,7 +72,7 @@ function bp_core_ajax_widget_friends() { </div> <div class="item"> - <div class="item-title fn"><a href="<?php bp_member_permalink(); ?>" title="<?php bp_member_name(); ?>"><?php bp_member_name(); ?></a></div> + <div class="item-title fn"><a href="<?php bp_member_permalink(); ?>"><?php bp_member_name(); ?></a></div> <?php if ( 'active' == $type ) : ?> <div class="item-meta"><span class="activity" data-livestamp="<?php bp_core_iso8601_date( bp_get_member_last_active( array( 'relative' => false ) ) ); ?>"><?php bp_member_last_active(); ?></span></div> <?php elseif ( 'newest' == $type ) : ?> diff --git a/wp-content/plugins/buddypress/bp-friends/classes/class-bp-core-friends-widget.php b/wp-content/plugins/buddypress/bp-friends/classes/class-bp-core-friends-widget.php index 16edb54f0..6ed0b5cdc 100644 --- a/wp-content/plugins/buddypress/bp-friends/classes/class-bp-core-friends-widget.php +++ b/wp-content/plugins/buddypress/bp-friends/classes/class-bp-core-friends-widget.php @@ -115,7 +115,7 @@ class BP_Core_Friends_Widget extends WP_Widget { </div> <div class="item"> - <div class="item-title fn"><a href="<?php bp_member_permalink(); ?>" title="<?php bp_member_name(); ?>"><?php bp_member_name(); ?></a></div> + <div class="item-title fn"><a href="<?php bp_member_permalink(); ?>"><?php bp_member_name(); ?></a></div> <div class="item-meta"> <?php if ( 'newest' == $instance['friend_default'] ) : ?> <span class="activity" data-livestamp="<?php bp_core_iso8601_date( bp_get_member_registered( array( 'relative' => false ) ) ); ?>"><?php bp_member_registered(); ?></span> diff --git a/wp-content/plugins/buddypress/bp-friends/classes/class-bp-friends-component.php b/wp-content/plugins/buddypress/bp-friends/classes/class-bp-friends-component.php index d6e357b9e..98fa3471a 100644 --- a/wp-content/plugins/buddypress/bp-friends/classes/class-bp-friends-component.php +++ b/wp-content/plugins/buddypress/bp-friends/classes/class-bp-friends-component.php @@ -61,10 +61,6 @@ class BP_Friends_Component extends BP_Component { $includes[] = 'notifications'; } - if ( ! buddypress()->do_autoload ) { - $includes[] = 'classes'; - } - parent::includes( $includes ); } diff --git a/wp-content/plugins/buddypress/bp-friends/classes/class-bp-friends-friendship.php b/wp-content/plugins/buddypress/bp-friends/classes/class-bp-friends-friendship.php index 778738a37..f3f30a605 100644 --- a/wp-content/plugins/buddypress/bp-friends/classes/class-bp-friends-friendship.php +++ b/wp-content/plugins/buddypress/bp-friends/classes/class-bp-friends-friendship.php @@ -176,7 +176,7 @@ class BP_Friends_Friendship { * * @since 1.0.0 * - * @param Object $value Current friendship request object. + * @param BP_Friends_Friendship $value Current friendship request object. */ do_action_ref_array( 'friends_friendship_before_save', array( &$this ) ); @@ -195,7 +195,7 @@ class BP_Friends_Friendship { * * @since 1.0.0 * - * @param Object $value Current friendship request object. + * @param BP_Friends_Friendship $value Current friendship request object. */ do_action( 'friends_friendship_after_save', array( &$this ) ); @@ -644,13 +644,13 @@ class BP_Friends_Friendship { $last_activities = BP_Core_User::get_last_activity( $user_ids ); // Sort and structure as expected in legacy function. - usort( $last_activities, create_function( '$a, $b', ' - if ( $a["date_recorded"] == $b["date_recorded"] ) { + usort( $last_activities, function( $a, $b ) { + if ( $a['date_recorded'] == $b['date_recorded'] ) { return 0; } - return ( strtotime( $a["date_recorded"] ) < strtotime( $b["date_recorded"] ) ) ? 1 : -1; - ' ) ); + return ( strtotime( $a['date_recorded'] ) < strtotime( $b['date_recorded'] ) ) ? 1 : -1; + } ); $retval = array(); foreach ( $last_activities as $last_activity ) { diff --git a/wp-content/plugins/buddypress/bp-groups/admin/css/admin-rtl.css b/wp-content/plugins/buddypress/bp-groups/admin/css/admin-rtl.css index 0997c32ff..54039d0d0 100644 --- a/wp-content/plugins/buddypress/bp-groups/admin/css/admin-rtl.css +++ b/wp-content/plugins/buddypress/bp-groups/admin/css/admin-rtl.css @@ -21,9 +21,9 @@ body.toplevel_page_bp-groups table.groups th#last_active { margin-bottom: 6px; } #bp-groups-edit-form input#bp-groups-new-members { + border: 1px solid #e5e5e5; + margin-top: 6px; width: 100%; - max-width: 90%; - border: 0; } #bp-groups-new-members-list { margin: 0; @@ -56,6 +56,9 @@ ul.bp-group-delete-list { list-style-type: disc; margin: 4px 26px; } +/* + * Members Pagination + */ .bp-group-admin-pagination { position: absolute; text-align: left; @@ -76,7 +79,30 @@ ul.bp-group-delete-list { white-space: nowrap; padding-right: 15px; } +.bp-group-admin-pagination-links .page-numbers { + display: inline-block; + min-width: 12px; + border: 1px solid #ccc; + padding: 2px 4px 4px; + background: #e5e5e5; + line-height: 1; + font-weight: 400; + text-align: center; + text-decoration: none; +} +.bp-group-admin-pagination-links a.page-numbers:hover { + text-decoration: underline; +} +.bp-group-admin-pagination-links .page-numbers.current, +.bp-group-admin-pagination-links .page-numbers.dots { + border-color: #ddd; + background: #f7f7f7; + color: #a0a5aa; +} +/* + * Members List + */ table.bp-group-members .uid-column { padding-right: 20px; padding-left: 20px; diff --git a/wp-content/plugins/buddypress/bp-groups/admin/css/admin-rtl.min.css b/wp-content/plugins/buddypress/bp-groups/admin/css/admin-rtl.min.css index c66cdf525..4d2bc10c5 100644 --- a/wp-content/plugins/buddypress/bp-groups/admin/css/admin-rtl.min.css +++ b/wp-content/plugins/buddypress/bp-groups/admin/css/admin-rtl.min.css @@ -1 +1 @@ -body.toplevel_page_bp-groups table.groups th#members,body.toplevel_page_bp-groups table.groups th#status{width:10%}body.toplevel_page_bp-groups table.groups th#last_active{width:15%}#bp-groups-form .avatar{float:right;margin-left:10px;margin-top:1px}#bp-groups-edit-form input{outline:0}#bp-groups-edit-form input#bp-groups-name{font-size:1.7em;width:100%;margin-bottom:6px}#bp-groups-edit-form input#bp-groups-new-members{width:100%;max-width:90%;border:0}#bp-groups-new-members-list{margin:0}.bp-groups-settings-section{margin-top:10px;line-height:2em}.bp-groups-settings-section legend{margin-top:10px;font-weight:700}.bp-groups-settings-section label{clear:right;display:block;float:right;vertical-align:middle}#bp-groups-permalink-box{line-height:24px;color:#666}.bp-groups-member-type{position:relative}.bp-groups-member-type>h4{margin-bottom:.5em}ul.bp-group-delete-list{list-style-type:disc;margin:4px 26px}.bp-group-admin-pagination{position:absolute;text-align:left;width:100%}.bp-group-admin-pagination.table-top{top:0}.bp-group-admin-pagination.table-bottom{bottom:0}.bp-group-admin-pagination-viewing{color:#777;font-size:12px;font-style:italic}.bp-group-admin-pagination-links{white-space:nowrap;padding-right:15px}table.bp-group-members .uid-column,table.bp-group-members .urole-column{padding-right:20px;padding-left:20px}table.bp-group-members .uname-column{width:70%}@media screen and (max-width:782px){.bp-groups-settings-section label{margin:.25em 0}} \ No newline at end of file +body.toplevel_page_bp-groups table.groups th#members,body.toplevel_page_bp-groups table.groups th#status{width:10%}body.toplevel_page_bp-groups table.groups th#last_active{width:15%}#bp-groups-form .avatar{float:right;margin-left:10px;margin-top:1px}#bp-groups-edit-form input{outline:0}#bp-groups-edit-form input#bp-groups-name{font-size:1.7em;width:100%;margin-bottom:6px}#bp-groups-edit-form input#bp-groups-new-members{border:1px solid #e5e5e5;margin-top:6px;width:100%}#bp-groups-new-members-list{margin:0}.bp-groups-settings-section{margin-top:10px;line-height:2em}.bp-groups-settings-section legend{margin-top:10px;font-weight:700}.bp-groups-settings-section label{clear:right;display:block;float:right;vertical-align:middle}#bp-groups-permalink-box{line-height:24px;color:#666}.bp-groups-member-type{position:relative}.bp-groups-member-type>h4{margin-bottom:.5em}ul.bp-group-delete-list{list-style-type:disc;margin:4px 26px}.bp-group-admin-pagination{position:absolute;text-align:left;width:100%}.bp-group-admin-pagination.table-top{top:0}.bp-group-admin-pagination.table-bottom{bottom:0}.bp-group-admin-pagination-viewing{color:#777;font-size:12px;font-style:italic}.bp-group-admin-pagination-links{white-space:nowrap;padding-right:15px}.bp-group-admin-pagination-links .page-numbers{display:inline-block;min-width:12px;border:1px solid #ccc;padding:2px 4px 4px;background:#e5e5e5;line-height:1;font-weight:400;text-align:center;text-decoration:none}table.bp-group-members .uid-column,table.bp-group-members .urole-column{padding-right:20px;padding-left:20px}.bp-group-admin-pagination-links a.page-numbers:hover{text-decoration:underline}.bp-group-admin-pagination-links .page-numbers.current,.bp-group-admin-pagination-links .page-numbers.dots{border-color:#ddd;background:#f7f7f7;color:#a0a5aa}table.bp-group-members .uname-column{width:70%}@media screen and (max-width:782px){.bp-groups-settings-section label{margin:.25em 0}} \ No newline at end of file diff --git a/wp-content/plugins/buddypress/bp-groups/admin/css/admin.css b/wp-content/plugins/buddypress/bp-groups/admin/css/admin.css index 7829539d1..c802127c1 100644 --- a/wp-content/plugins/buddypress/bp-groups/admin/css/admin.css +++ b/wp-content/plugins/buddypress/bp-groups/admin/css/admin.css @@ -21,9 +21,9 @@ body.toplevel_page_bp-groups table.groups th#last_active { margin-bottom: 6px; } #bp-groups-edit-form input#bp-groups-new-members { + border: 1px solid #e5e5e5; + margin-top: 6px; width: 100%; - max-width: 90%; - border: 0; } #bp-groups-new-members-list { margin: 0; @@ -56,6 +56,9 @@ ul.bp-group-delete-list { list-style-type: disc; margin: 4px 26px; } +/* + * Members Pagination + */ .bp-group-admin-pagination { position: absolute; text-align: right; @@ -76,7 +79,30 @@ ul.bp-group-delete-list { white-space: nowrap; padding-left: 15px; } +.bp-group-admin-pagination-links .page-numbers { + display: inline-block; + min-width: 12px; + border: 1px solid #ccc; + padding: 2px 4px 4px; + background: #e5e5e5; + line-height: 1; + font-weight: 400; + text-align: center; + text-decoration: none; +} +.bp-group-admin-pagination-links a.page-numbers:hover { + text-decoration: underline; +} +.bp-group-admin-pagination-links .page-numbers.current, +.bp-group-admin-pagination-links .page-numbers.dots { + border-color: #ddd; + background: #f7f7f7; + color: #a0a5aa; +} +/* + * Members List + */ table.bp-group-members .uid-column { padding-left: 20px; padding-right: 20px; diff --git a/wp-content/plugins/buddypress/bp-groups/admin/css/admin.min.css b/wp-content/plugins/buddypress/bp-groups/admin/css/admin.min.css index 073e1220d..1bd850daa 100644 --- a/wp-content/plugins/buddypress/bp-groups/admin/css/admin.min.css +++ b/wp-content/plugins/buddypress/bp-groups/admin/css/admin.min.css @@ -1 +1 @@ -body.toplevel_page_bp-groups table.groups th#members,body.toplevel_page_bp-groups table.groups th#status{width:10%}body.toplevel_page_bp-groups table.groups th#last_active{width:15%}#bp-groups-form .avatar{float:left;margin-right:10px;margin-top:1px}#bp-groups-edit-form input{outline:0}#bp-groups-edit-form input#bp-groups-name{font-size:1.7em;width:100%;margin-bottom:6px}#bp-groups-edit-form input#bp-groups-new-members{width:100%;max-width:90%;border:0}#bp-groups-new-members-list{margin:0}.bp-groups-settings-section{margin-top:10px;line-height:2em}.bp-groups-settings-section legend{margin-top:10px;font-weight:700}.bp-groups-settings-section label{clear:left;display:block;float:left;vertical-align:middle}#bp-groups-permalink-box{line-height:24px;color:#666}.bp-groups-member-type{position:relative}.bp-groups-member-type>h4{margin-bottom:.5em}ul.bp-group-delete-list{list-style-type:disc;margin:4px 26px}.bp-group-admin-pagination{position:absolute;text-align:right;width:100%}.bp-group-admin-pagination.table-top{top:0}.bp-group-admin-pagination.table-bottom{bottom:0}.bp-group-admin-pagination-viewing{color:#777;font-size:12px;font-style:italic}.bp-group-admin-pagination-links{white-space:nowrap;padding-left:15px}table.bp-group-members .uid-column,table.bp-group-members .urole-column{padding-left:20px;padding-right:20px}table.bp-group-members .uname-column{width:70%}@media screen and (max-width:782px){.bp-groups-settings-section label{margin:.25em 0}} \ No newline at end of file +body.toplevel_page_bp-groups table.groups th#members,body.toplevel_page_bp-groups table.groups th#status{width:10%}body.toplevel_page_bp-groups table.groups th#last_active{width:15%}#bp-groups-form .avatar{float:left;margin-right:10px;margin-top:1px}#bp-groups-edit-form input{outline:0}#bp-groups-edit-form input#bp-groups-name{font-size:1.7em;width:100%;margin-bottom:6px}#bp-groups-edit-form input#bp-groups-new-members{border:1px solid #e5e5e5;margin-top:6px;width:100%}#bp-groups-new-members-list{margin:0}.bp-groups-settings-section{margin-top:10px;line-height:2em}.bp-groups-settings-section legend{margin-top:10px;font-weight:700}.bp-groups-settings-section label{clear:left;display:block;float:left;vertical-align:middle}#bp-groups-permalink-box{line-height:24px;color:#666}.bp-groups-member-type{position:relative}.bp-groups-member-type>h4{margin-bottom:.5em}ul.bp-group-delete-list{list-style-type:disc;margin:4px 26px}.bp-group-admin-pagination{position:absolute;text-align:right;width:100%}.bp-group-admin-pagination.table-top{top:0}.bp-group-admin-pagination.table-bottom{bottom:0}.bp-group-admin-pagination-viewing{color:#777;font-size:12px;font-style:italic}.bp-group-admin-pagination-links{white-space:nowrap;padding-left:15px}.bp-group-admin-pagination-links .page-numbers{display:inline-block;min-width:12px;border:1px solid #ccc;padding:2px 4px 4px;background:#e5e5e5;line-height:1;font-weight:400;text-align:center;text-decoration:none}table.bp-group-members .uid-column,table.bp-group-members .urole-column{padding-left:20px;padding-right:20px}.bp-group-admin-pagination-links a.page-numbers:hover{text-decoration:underline}.bp-group-admin-pagination-links .page-numbers.current,.bp-group-admin-pagination-links .page-numbers.dots{border-color:#ddd;background:#f7f7f7;color:#a0a5aa}table.bp-group-members .uname-column{width:70%}@media screen and (max-width:782px){.bp-groups-settings-section label{margin:.25em 0}} \ No newline at end of file diff --git a/wp-content/plugins/buddypress/bp-groups/bp-groups-actions.php b/wp-content/plugins/buddypress/bp-groups/bp-groups-actions.php index 531f9b7d5..4f804955f 100644 --- a/wp-content/plugins/buddypress/bp-groups/bp-groups-actions.php +++ b/wp-content/plugins/buddypress/bp-groups/bp-groups-actions.php @@ -156,8 +156,7 @@ function groups_action_create_group() { $bp->groups->completed_create_steps = json_decode( base64_decode( stripslashes( $_COOKIE['bp_completed_create_steps'] ) ) ); // Set the ID of the new group, if it has already been created in a previous step. - if ( isset( $_COOKIE['bp_new_group_id'] ) ) { - $bp->groups->new_group_id = (int) $_COOKIE['bp_new_group_id']; + if ( bp_get_new_group_id() ) { $bp->groups->current_group = groups_get_group( $bp->groups->new_group_id ); // Only allow the group creator to continue to edit the new group. @@ -359,11 +358,35 @@ function groups_action_create_group() { // If the image cropping is done, crop the image and save a full/thumb version. if ( isset( $_POST['avatar-crop-submit'] ) && isset( $_POST['upload'] ) ) { + // Normally we would check a nonce here, but the group save nonce is used instead. - if ( !bp_core_avatar_handle_crop( array( 'object' => 'group', 'avatar_dir' => 'group-avatars', 'item_id' => $bp->groups->current_group->id, 'original_file' => $_POST['image_src'], 'crop_x' => $_POST['x'], 'crop_y' => $_POST['y'], 'crop_w' => $_POST['w'], 'crop_h' => $_POST['h'] ) ) ) + $args = array( + 'object' => 'group', + 'avatar_dir' => 'group-avatars', + 'item_id' => $bp->groups->current_group->id, + 'original_file' => $_POST['image_src'], + 'crop_x' => $_POST['x'], + 'crop_y' => $_POST['y'], + 'crop_w' => $_POST['w'], + 'crop_h' => $_POST['h'] + ); + + if ( ! bp_core_avatar_handle_crop( $args ) ) { bp_core_add_message( __( 'There was an error saving the group profile photo, please try uploading again.', 'buddypress' ), 'error' ); - else + } else { + /** + * Fires after a group avatar is uploaded. + * + * @since 2.8.0 + * + * @param int $group_id ID of the group. + * @param string $type Avatar type. 'crop' or 'full'. + * @param array $args Array of parameters passed to the avatar handler. + */ + do_action( 'groups_avatar_uploaded', bp_get_current_group_id(), 'crop', $args ); + bp_core_add_message( __( 'The group profile photo was uploaded successfully.', 'buddypress' ) ); + } } } @@ -596,4 +619,4 @@ function bp_groups_update_orphaned_groups_on_group_delete( $group ) { $cgroup->save(); } } -add_action( 'bp_groups_delete_group', 'bp_groups_update_orphaned_groups_on_group_delete', 10, 2 ); \ No newline at end of file +add_action( 'bp_groups_delete_group', 'bp_groups_update_orphaned_groups_on_group_delete', 10, 2 ); diff --git a/wp-content/plugins/buddypress/bp-groups/bp-groups-admin.php b/wp-content/plugins/buddypress/bp-groups/bp-groups-admin.php index 569ea33ef..4fe6bf962 100644 --- a/wp-content/plugins/buddypress/bp-groups/bp-groups-admin.php +++ b/wp-content/plugins/buddypress/bp-groups/bp-groups-admin.php @@ -16,10 +16,6 @@ defined( 'ABSPATH' ) || exit; // Include WP's list table class. if ( !class_exists( 'WP_List_Table' ) ) require( ABSPATH . 'wp-admin/includes/class-wp-list-table.php' ); -if ( ! buddypress()->do_autoload ) { - require dirname( __FILE__ ) . '/classes/class-bp-groups-list-table.php'; -} - // The per_page screen option. Has to be hooked in extremely early. if ( is_admin() && ! empty( $_REQUEST['page'] ) && 'bp-groups' == $_REQUEST['page'] ) add_filter( 'set-screen-option', 'bp_groups_admin_screen_options', 10, 3 ); @@ -794,7 +790,7 @@ function bp_groups_admin_index() { */ function bp_groups_admin_edit_metabox_settings( $item ) { - $invite_status = groups_get_groupmeta( $item->id, 'invite_status' ); ?> + $invite_status = bp_group_get_invite_status( $item->id ); ?> <?php if ( bp_is_active( 'forums' ) ) : ?> <div class="bp-groups-settings-section" id="bp-groups-settings-section-forum"> @@ -839,7 +835,7 @@ function bp_groups_admin_edit_metabox_add_new_members( $item ) { /* translators: accessibility text */ _e( 'Add new members', 'buddypress' ); ?></label> - <input name="bp-groups-new-members" id="bp-groups-new-members" class="bp-suggest-user" placeholder="<?php esc_attr_e( 'Enter a comma-separated list of user logins.', 'buddypress' ) ?>" /> + <input name="bp-groups-new-members" type="text" id="bp-groups-new-members" class="bp-suggest-user" placeholder="<?php esc_attr_e( 'Enter a comma-separated list of user logins.', 'buddypress' ) ?>" /> <ul id="bp-groups-new-members-list"></ul> <?php } @@ -877,7 +873,7 @@ function bp_groups_admin_edit_metabox_members( $item ) { 'group_id' => $item->id, 'group_role' => array( $type ), 'type' => 'alphabetical', - 'per_page' => 10, + 'per_page' => apply_filters( 'bp_groups_admin_members_type_per_page', 10, $type ), 'page' => $current_type_page, ) ); @@ -988,10 +984,6 @@ function bp_groups_admin_edit_metabox_members( $item ) { </tbody> </table> - <div class="bp-group-admin-pagination table-bottom"> - <?php echo $pagination[ $member_type ]; ?> - </div> - <?php else : ?> <p class="bp-groups-no-members description"><?php esc_html_e( 'No members of this type', 'buddypress' ); ?></p> @@ -1063,7 +1055,7 @@ function bp_groups_admin_edit_metabox_group_type( BP_Groups_Group $group = null <?php echo esc_html( $type->labels['singular_name'] ); if ( in_array( $type->name, $backend_only ) ) { - printf( ' <span class="description">%s</span>', esc_html__( '(Not available on the frontend)', 'buddypress' ) ); + printf( ' <span class="description">%s</span>', esc_html__( '(Not available on the front end)', 'buddypress' ) ); } ?> @@ -1131,11 +1123,19 @@ function bp_groups_admin_create_pagination_links( BP_Group_Member_Query $query, } // The key used to paginate this member type in the $_GET global. - $qs_key = $member_type . '_page'; + $qs_key = $member_type . '_page'; $url_base = remove_query_arg( array( $qs_key, 'updated', 'success_modified' ), $_SERVER['REQUEST_URI'] ); - $page = isset( $_GET[ $qs_key ] ) ? absint( $_GET[ $qs_key ] ) : 1; - $per_page = 10; // @todo Make this customizable? + $page = isset( $_GET[ $qs_key ] ) ? absint( $_GET[ $qs_key ] ) : 1; + + /** + * Filters the number of members per member type that is displayed in group editing admin area. + * + * @since 2.8.0 + * + * @param string $member_type Member type, which is a group role (admin, mod etc). + */ + $per_page = apply_filters( 'bp_groups_admin_members_type_per_page', 10, $member_type ); // Don't show anything if there's no pagination. if ( 1 === $page && $query->total_users <= $per_page ) { @@ -1158,7 +1158,7 @@ function bp_groups_admin_create_pagination_links( BP_Group_Member_Query $query, $viewing_text = __( 'Viewing 1 member', 'buddypress' ); } else { $viewing_text = sprintf( - _n( 'Viewing %1$s - %2$s of %3$s member', 'Viewing %1$s - %2$s of %3$s members', $query->total_users, 'buddypress' ), + _nx( 'Viewing %1$s - %2$s of %3$s member', 'Viewing %1$s - %2$s of %3$s members', $query->total_users, 'Group members pagination in group admin', 'buddypress' ), bp_core_number_format( $current_page_start ), bp_core_number_format( $current_page_end ), bp_core_number_format( $query->total_users ) diff --git a/wp-content/plugins/buddypress/bp-groups/bp-groups-filters.php b/wp-content/plugins/buddypress/bp-groups/bp-groups-filters.php index 5a7e398aa..36d593e48 100644 --- a/wp-content/plugins/buddypress/bp-groups/bp-groups-filters.php +++ b/wp-content/plugins/buddypress/bp-groups/bp-groups-filters.php @@ -60,7 +60,6 @@ if ( function_exists( 'wp_encode_emoji' ) ) { } // Escape output of new group creation details. -add_filter( 'bp_get_new_group_id', 'esc_attr' ); add_filter( 'bp_get_new_group_name', 'esc_attr' ); add_filter( 'bp_get_new_group_description', 'esc_textarea' ); diff --git a/wp-content/plugins/buddypress/bp-groups/bp-groups-functions.php b/wp-content/plugins/buddypress/bp-groups/bp-groups-functions.php index 006bf6fac..c52d51926 100644 --- a/wp-content/plugins/buddypress/bp-groups/bp-groups-functions.php +++ b/wp-content/plugins/buddypress/bp-groups/bp-groups-functions.php @@ -612,8 +612,7 @@ function groups_get_group_members( $args = array() ) { 6 => 'group_role', ); - $func_args = func_get_args(); - $args = bp_core_parse_args_array( $old_args_keys, $func_args ); + $args = bp_core_parse_args_array( $old_args_keys, func_get_args() ); } $r = wp_parse_args( $args, array( @@ -628,11 +627,8 @@ function groups_get_group_members( $args = array() ) { 'type' => 'last_joined', ) ); - // For legacy users. Use of BP_Groups_Member::get_all_for_group() - // is deprecated. func_get_args() can't be passed to a function in PHP - // 5.2.x, so we create a variable. - $func_args = func_get_args(); - if ( apply_filters( 'bp_use_legacy_group_member_query', false, __FUNCTION__, $func_args ) ) { + // For legacy users. Use of BP_Groups_Member::get_all_for_group() is deprecated. + if ( apply_filters( 'bp_use_legacy_group_member_query', false, __FUNCTION__, func_get_args() ) ) { $retval = BP_Groups_Member::get_all_for_group( $r['group_id'], $r['per_page'], $r['page'], $r['exclude_admins_mods'], $r['exclude_banned'], $r['exclude'] ); } else { @@ -713,6 +709,7 @@ function groups_get_groups( $args = '' ) { 'exclude' => false, // Do not include these specific groups (group_ids). 'parent_id' => null, // Get groups that are children of the specified group(s). 'search_terms' => false, // Limit to groups that match these search terms. + 'search_columns' => array(), // Select which columns to search. 'group_type' => '', // Array or comma-separated list of group types to limit results to. 'group_type__in' => '', // Array or comma-separated list of group types to limit results to. 'group_type__not_in' => '', // Array or comma-separated list of group types that will be excluded from results. @@ -724,7 +721,7 @@ function groups_get_groups( $args = '' ) { 'update_admin_cache' => false, ); - $r = wp_parse_args( $args, $defaults ); + $r = bp_parse_args( $args, $defaults, 'groups_get_groups' ); $groups = BP_Groups_Group::get( array( 'type' => $r['type'], @@ -733,6 +730,7 @@ function groups_get_groups( $args = '' ) { 'exclude' => $r['exclude'], 'parent_id' => $r['parent_id'], 'search_terms' => $r['search_terms'], + 'search_columns' => $r['search_columns'], 'group_type' => $r['group_type'], 'group_type__in' => $r['group_type__in'], 'group_type__not_in' => $r['group_type__not_in'], @@ -1425,6 +1423,10 @@ function groups_accept_invite( $user_id, $group_id ) { } $member = new BP_Groups_Member( $user_id, $group_id ); + + // Save the inviter ID so that we can pass it to the action below. + $inviter_id = $member->inviter_id; + $member->accept_invite(); if ( !$member->save() ) { @@ -1443,11 +1445,13 @@ function groups_accept_invite( $user_id, $group_id ) { * Fires after a user has accepted a group invite. * * @since 1.0.0 + * @since 2.8.0 The $inviter_id arg was added. * - * @param int $user_id ID of the user who accepted the group invite. - * @param int $group_id ID of the group being accepted to. + * @param int $user_id ID of the user who accepted the group invite. + * @param int $group_id ID of the group being accepted to. + * @param int $inviter_id ID of the user who invited this user to the group. */ - do_action( 'groups_accept_invite', $user_id, $group_id ); + do_action( 'groups_accept_invite', $user_id, $group_id, $inviter_id ); return true; } diff --git a/wp-content/plugins/buddypress/bp-groups/bp-groups-loader.php b/wp-content/plugins/buddypress/bp-groups/bp-groups-loader.php index b4b25105d..774908e69 100644 --- a/wp-content/plugins/buddypress/bp-groups/bp-groups-loader.php +++ b/wp-content/plugins/buddypress/bp-groups/bp-groups-loader.php @@ -14,10 +14,6 @@ // Exit if accessed directly. defined( 'ABSPATH' ) || exit; -if ( ! buddypress()->do_autoload ) { - require dirname( __FILE__ ) . '/classes/class-bp-groups-component.php'; -} - /** * Set up the bp-groups component. * diff --git a/wp-content/plugins/buddypress/bp-groups/bp-groups-notifications.php b/wp-content/plugins/buddypress/bp-groups/bp-groups-notifications.php index ac9e8c4a8..fc8a0524e 100644 --- a/wp-content/plugins/buddypress/bp-groups/bp-groups-notifications.php +++ b/wp-content/plugins/buddypress/bp-groups/bp-groups-notifications.php @@ -430,7 +430,7 @@ function groups_format_notifications( $action, $item_id, $secondary_item_id, $to * @param string $text Notification content. * @param string $notification_link The permalink for notification. */ - return apply_filters( 'bp_groups_' . $amount . '_' . $action . '_notification', '<a href="' . $notification_link . '" title="' . sprintf( __( '%s requests group membership', 'buddypress' ), $user_fullname ) . '">' . $text . '</a>', $group_link, $user_fullname, $group->name, $text, $notification_link ); + return apply_filters( 'bp_groups_' . $amount . '_' . $action . '_notification', '<a href="' . $notification_link . '">' . $text . '</a>', $group_link, $user_fullname, $group->name, $text, $notification_link ); } else { /** @@ -966,6 +966,23 @@ add_action( 'groups_accept_invite', 'bp_groups_accept_invite_mark_notifications' add_action( 'groups_reject_invite', 'bp_groups_accept_invite_mark_notifications', 10, 2 ); add_action( 'groups_delete_invite', 'bp_groups_accept_invite_mark_notifications', 10, 2 ); +/** + * Mark notifications read when a member's group membership request is granted. + * + * @since 2.8.0 + * + * @param int $user_id ID of the user. + * @param int $group_id ID of the group. + */ +function bp_groups_accept_request_mark_notifications( $user_id, $group_id ) { + if ( bp_is_active( 'notifications' ) ) { + // First null parameter marks read for all admins. + bp_notifications_mark_notifications_by_item_id( null, $group_id, buddypress()->groups->id, 'new_membership_request', $user_id ); + } +} +add_action( 'groups_membership_accepted', 'bp_groups_accept_request_mark_notifications', 10, 2 ); +add_action( 'groups_membership_rejected', 'bp_groups_accept_request_mark_notifications', 10, 2 ); + /** * Mark notifications read when a member views their group memberships. * diff --git a/wp-content/plugins/buddypress/bp-groups/bp-groups-screens.php b/wp-content/plugins/buddypress/bp-groups/bp-groups-screens.php index 46b654f89..17e139bae 100644 --- a/wp-content/plugins/buddypress/bp-groups/bp-groups-screens.php +++ b/wp-content/plugins/buddypress/bp-groups/bp-groups-screens.php @@ -14,10 +14,6 @@ // Exit if accessed directly. defined( 'ABSPATH' ) || exit; -if ( ! buddypress()->do_autoload ) { - require dirname( __FILE__ ) . '/classes/class-bp-groups-theme-compat.php'; -} - /** * Handle the display of the Groups directory index. * @@ -25,22 +21,6 @@ if ( ! buddypress()->do_autoload ) { */ function groups_directory_groups_setup() { if ( bp_is_groups_directory() ) { - // Set group type if available. - if ( bp_is_current_action( bp_get_groups_group_type_base() ) && bp_action_variable() ) { - $matched_types = bp_groups_get_group_types( array( - 'has_directory' => true, - 'directory_slug' => bp_action_variable(), - ) ); - - // Redirect back to group directory if no match. - if ( empty( $matched_types ) ) { - bp_core_redirect( bp_get_groups_directory_permalink() ); - } - - // Set our global variable. - buddypress()->groups->current_directory_type = reset( $matched_types ); - } - bp_update_is_directory( true, 'groups' ); /** @@ -1065,6 +1045,16 @@ function groups_screen_group_admin_avatar() { if ( !bp_core_avatar_handle_crop( $args ) ) { bp_core_add_message( __( 'There was a problem cropping the group profile photo.', 'buddypress' ), 'error' ); } else { + /** + * Fires after a group avatar is uploaded. + * + * @since 2.8.0 + * + * @param int $group_id ID of the group. + * @param string $type Avatar type. 'crop' or 'full'. + * @param array $args Array of parameters passed to the avatar handler. + */ + do_action( 'groups_avatar_uploaded', bp_get_current_group_id(), 'crop', $args ); bp_core_add_message( __( 'The new group profile photo was uploaded successfully.', 'buddypress' ) ); } } diff --git a/wp-content/plugins/buddypress/bp-groups/bp-groups-template.php b/wp-content/plugins/buddypress/bp-groups/bp-groups-template.php index 35595a5a8..1c32579b1 100644 --- a/wp-content/plugins/buddypress/bp-groups/bp-groups-template.php +++ b/wp-content/plugins/buddypress/bp-groups/bp-groups-template.php @@ -10,13 +10,6 @@ // Exit if accessed directly. defined( 'ABSPATH' ) || exit; -if ( ! buddypress()->do_autoload ) { - require dirname( __FILE__ ) . '/classes/class-bp-groups-template.php'; - require dirname( __FILE__ ) . '/classes/class-bp-groups-group-members-template.php'; - require dirname( __FILE__ ) . '/classes/class-bp-groups-membership-requests-template.php'; - require dirname( __FILE__ ) . '/classes/class-bp-groups-invite-template.php'; -} - /** * Output the groups component slug. * @@ -575,6 +568,13 @@ function bp_group_class( $classes = array() ) { // Group type - public, private, hidden. $classes[] = sanitize_key( $groups_template->group->status ); + // Add current group types. + if ( $group_types = bp_groups_get_group_type( bp_get_group_id(), false ) ) { + foreach ( $group_types as $group_type ) { + $classes[] = sprintf( 'group-type-%s', esc_attr( $group_type ) ); + } + } + // User's group role. if ( bp_is_user_active() ) { @@ -795,7 +795,6 @@ function bp_group_avatar( $args = '' ) { // Fetch the avatar from the folder. $avatar = bp_core_fetch_avatar( array( 'item_id' => $groups_template->group->id, - 'title' => $groups_template->group->name, 'avatar_dir' => 'group-avatars', 'object' => 'group', 'type' => $r['type'], @@ -992,7 +991,7 @@ function bp_group_permalink( $group = null ) { * @param string $value Permalink for the current group in the loop. * @param object $group Group object. */ - return apply_filters( 'bp_get_group_permalink', trailingslashit( bp_get_groups_directory_permalink() . $group->slug . '/' ), $group ); + return apply_filters( 'bp_get_group_permalink', trailingslashit( bp_get_groups_directory_permalink() . bp_get_group_slug( $group ) . '/' ), $group ); } /** @@ -2830,7 +2829,7 @@ function bp_group_admin_tabs( $group = false ) { bp_get_options_nav( $group->slug . '_manage' ); - remove_filter( "bp_get_options_nav_{$css_id}", 'bp_group_admin_tabs_backcompat', 10, 3 ); + remove_filter( "bp_get_options_nav_{$css_id}", 'bp_group_admin_tabs_backcompat', 10 ); } /** @@ -4792,7 +4791,7 @@ function bp_new_group_id() { * * @param int $new_group_id ID of the new group. */ - return apply_filters( 'bp_get_new_group_id', $new_group_id ); + return (int) apply_filters( 'bp_get_new_group_id', $new_group_id ); } /** diff --git a/wp-content/plugins/buddypress/bp-groups/bp-groups-widgets.php b/wp-content/plugins/buddypress/bp-groups/bp-groups-widgets.php index 37911acd7..2aabb4a94 100644 --- a/wp-content/plugins/buddypress/bp-groups/bp-groups-widgets.php +++ b/wp-content/plugins/buddypress/bp-groups/bp-groups-widgets.php @@ -10,17 +10,13 @@ // Exit if accessed directly. defined( 'ABSPATH' ) || exit; -if ( ! buddypress()->do_autoload ) { - require dirname( __FILE__ ) . '/classes/class-bp-groups-widget.php'; -} - /** * Register widgets for groups component. * * @since 1.0.0 */ function groups_register_widgets() { - add_action('widgets_init', create_function('', 'return register_widget("BP_Groups_Widget");') ); + add_action( 'widgets_init', function() { register_widget( 'BP_Groups_Widget' ); } ); } add_action( 'bp_register_widgets', 'groups_register_widgets' ); @@ -43,6 +39,9 @@ function groups_ajax_widget_groups_list() { case 'popular-groups': $type = 'popular'; break; + case 'alphabetical-groups': + $type = 'alphabetical'; + break; } $per_page = isset( $_POST['max_groups'] ) ? intval( $_POST['max_groups'] ) : 5; @@ -63,14 +62,14 @@ function groups_ajax_widget_groups_list() { </div> <div class="item"> - <div class="item-title"><a href="<?php bp_group_permalink() ?>" title="<?php bp_group_name() ?>"><?php bp_group_name() ?></a></div> + <div class="item-title"><a href="<?php bp_group_permalink() ?>"><?php bp_group_name() ?></a></div> <div class="item-meta"> <?php if ( 'newest-groups' === $_POST['filter'] ) : ?> <span class="activity" data-livestamp="<?php bp_core_iso8601_date( bp_get_group_date_created( 0, array( 'relative' => false ) ) ); ?>"><?php printf( __( 'created %s', 'buddypress' ), bp_get_group_date_created() ); ?></span> - <?php elseif ( 'recently-active-groups' === $_POST['filter'] ) : ?> - <span class="activity" data-livestamp="<?php bp_core_iso8601_date( bp_get_group_last_active( 0, array( 'relative' => false ) ) ); ?>"><?php printf( __( 'active %s', 'buddypress' ), bp_get_group_last_active() ); ?></span> - <?php else : ?> + <?php elseif ( 'popular-groups' === $_POST['filter'] ) : ?> <span class="activity"><?php bp_group_member_count(); ?></span> + <?php else : ?> + <span class="activity" data-livestamp="<?php bp_core_iso8601_date( bp_get_group_last_active( 0, array( 'relative' => false ) ) ); ?>"><?php printf( __( 'active %s', 'buddypress' ), bp_get_group_last_active() ); ?></span> <?php endif; ?> </div> </div> diff --git a/wp-content/plugins/buddypress/bp-groups/classes/class-bp-group-extension.php b/wp-content/plugins/buddypress/bp-groups/classes/class-bp-group-extension.php index 208e2ffd5..ac4b8606b 100644 --- a/wp-content/plugins/buddypress/bp-groups/classes/class-bp-group-extension.php +++ b/wp-content/plugins/buddypress/bp-groups/classes/class-bp-group-extension.php @@ -974,7 +974,11 @@ class BP_Group_Extension { if ( '' !== bp_locate_template( array( 'groups/single/home.php' ), false ) ) { $this->edit_screen_template = '/groups/single/home'; } else { - add_action( 'bp_template_content_header', create_function( '', 'echo "<ul class=\"content-header-nav\">"; bp_group_admin_tabs(); echo "</ul>";' ) ); + add_action( 'bp_template_content_header', function() { + echo '<ul class="content-header-nav">'; + bp_group_admin_tabs(); + echo '</ul>'; + } ); add_action( 'bp_template_content', array( &$this, 'call_edit_screen' ) ); $this->edit_screen_template = '/groups/single/plugins'; } @@ -1690,9 +1694,9 @@ function bp_register_group_extension( $group_extension_class = '' ) { // Register the group extension on the bp_init action so we have access // to all plugins. - add_action( 'bp_init', create_function( '', ' - $extension = new ' . $group_extension_class . '; - add_action( "bp_actions", array( &$extension, "_register" ), 8 ); - add_action( "admin_init", array( &$extension, "_register" ) ); - ' ), 11 ); + add_action( 'bp_init', function() use ( $group_extension_class ) { + $extension = new $group_extension_class; + add_action( 'bp_actions', array( &$extension, '_register' ), 8 ); + add_action( 'admin_init', array( &$extension, '_register' ) ); + }, 11 ); } diff --git a/wp-content/plugins/buddypress/bp-groups/classes/class-bp-group-member-query.php b/wp-content/plugins/buddypress/bp-groups/classes/class-bp-group-member-query.php index e6a55dbdc..cec4a7c68 100644 --- a/wp-content/plugins/buddypress/bp-groups/classes/class-bp-group-member-query.php +++ b/wp-content/plugins/buddypress/bp-groups/classes/class-bp-group-member-query.php @@ -330,7 +330,7 @@ class BP_Group_Member_Query extends BP_User_Query { } // Don't filter other BP_User_Query objects on the same page. - remove_action( 'bp_user_query_populate_extras', array( $this, 'populate_group_member_extras' ), 10, 2 ); + remove_action( 'bp_user_query_populate_extras', array( $this, 'populate_group_member_extras' ), 10 ); } /** diff --git a/wp-content/plugins/buddypress/bp-groups/classes/class-bp-groups-component.php b/wp-content/plugins/buddypress/bp-groups/classes/class-bp-groups-component.php index 769aa2cb9..8515a5b6c 100644 --- a/wp-content/plugins/buddypress/bp-groups/classes/class-bp-groups-component.php +++ b/wp-content/plugins/buddypress/bp-groups/classes/class-bp-groups-component.php @@ -135,10 +135,6 @@ class BP_Groups_Component extends BP_Component { 'notifications' ); - if ( ! buddypress()->do_autoload ) { - $includes[] = 'classes'; - } - if ( is_admin() ) { $includes[] = 'admin'; } @@ -271,6 +267,28 @@ class BP_Groups_Component extends BP_Component { $this->current_group = 0; } + // Set group type if available. + if ( bp_is_groups_directory() && bp_is_current_action( bp_get_groups_group_type_base() ) && bp_action_variable() ) { + $matched_types = bp_groups_get_group_types( array( + 'has_directory' => true, + 'directory_slug' => bp_action_variable(), + ) ); + + // Set 404 if we do not have a valid group type. + if ( empty( $matched_types ) ) { + bp_do_404(); + return; + } + + // Set our directory type marker. + $this->current_directory_type = reset( $matched_types ); + } + + // Set up variables specific to the group creation process. + if ( bp_is_groups_component() && bp_is_current_action( 'create' ) && bp_user_can_create_groups() && isset( $_COOKIE['bp_new_group_id'] ) ) { + $bp->groups->new_group_id = (int) $_COOKIE['bp_new_group_id']; + } + /** * Filters the list of illegal groups names/slugs. * @@ -296,7 +314,7 @@ class BP_Groups_Component extends BP_Component { ) ); // If the user was attempting to access a group, but no group by that name was found, 404. - if ( bp_is_groups_component() && empty( $this->current_group ) && bp_current_action() && !in_array( bp_current_action(), $this->forbidden_names ) ) { + if ( bp_is_groups_component() && empty( $this->current_group ) && empty( $this->current_directory_type ) && bp_current_action() && ! in_array( bp_current_action(), $this->forbidden_names ) ) { bp_do_404(); return; } diff --git a/wp-content/plugins/buddypress/bp-groups/classes/class-bp-groups-group-members-template.php b/wp-content/plugins/buddypress/bp-groups/classes/class-bp-groups-group-members-template.php index d2ac76c6a..8b25d7509 100644 --- a/wp-content/plugins/buddypress/bp-groups/classes/class-bp-groups-group-members-template.php +++ b/wp-content/plugins/buddypress/bp-groups/classes/class-bp-groups-group-members-template.php @@ -108,8 +108,7 @@ class BP_Groups_Group_Members_Template { 6 => 'group_role', ); - $func_args = func_get_args(); - $args = bp_core_parse_args_array( $old_args_keys, $func_args ); + $args = bp_core_parse_args_array( $old_args_keys, func_get_args() ); } $r = wp_parse_args( $args, array( diff --git a/wp-content/plugins/buddypress/bp-groups/classes/class-bp-groups-group.php b/wp-content/plugins/buddypress/bp-groups/classes/class-bp-groups-group.php index bac2609d7..742799d4a 100644 --- a/wp-content/plugins/buddypress/bp-groups/classes/class-bp-groups-group.php +++ b/wp-content/plugins/buddypress/bp-groups/classes/class-bp-groups-group.php @@ -677,37 +677,35 @@ class BP_Groups_Group { * @param int|null $page Optional. The page offset of results to return. * Default: null (no limit). * @return false|array { - * @type array $groups Array of matched and paginated group objects. + * @type array $groups Array of matched and paginated group IDs. * @type int $total Total count of groups matching the query. * } */ public static function filter_user_groups( $filter, $user_id = 0, $order = false, $limit = null, $page = null ) { - global $wpdb; - - if ( empty( $user_id ) ) + if ( empty( $user_id ) ) { $user_id = bp_displayed_user_id(); + } - $search_terms_like = '%' . bp_esc_like( $filter ) . '%'; - - $pag_sql = $order_sql = $hidden_sql = ''; - - if ( !empty( $limit ) && !empty( $page ) ) - $pag_sql = $wpdb->prepare( " LIMIT %d, %d", intval( ( $page - 1 ) * $limit), intval( $limit ) ); - - // Get all the group ids for the current user's groups. - $gids = BP_Groups_Member::get_group_ids( $user_id ); - - if ( empty( $gids['groups'] ) ) - return false; - - $bp = buddypress(); + $args = array( + 'search_terms' => $filter, + 'user_id' => $user_id, + 'per_page' => $limit, + 'page' => $page, + 'order' => $order, + ); - $gids = esc_sql( implode( ',', wp_parse_id_list( $gids['groups'] ) ) ); + $groups = BP_Groups_Group::get( $args ); - $paged_groups = $wpdb->get_results( $wpdb->prepare( "SELECT id as group_id FROM {$bp->groups->table_name} WHERE ( name LIKE %s OR description LIKE %s ) AND id IN ({$gids}) {$pag_sql}", $search_terms_like, $search_terms_like ) ); - $total_groups = $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(id) FROM {$bp->groups->table_name} WHERE ( name LIKE %s OR description LIKE %s ) AND id IN ({$gids})", $search_terms_like, $search_terms_like ) ); + // Modify the results to match the old format. + $paged_groups = array(); + $i = 0; + foreach ( $groups['groups'] as $group ) { + $paged_groups[ $i ] = new stdClass; + $paged_groups[ $i ]->group_id = $group->id; + $i++; + } - return array( 'groups' => $paged_groups, 'total' => $total_groups ); + return array( 'groups' => $paged_groups, 'total' => $groups['total'] ); } /** @@ -725,35 +723,31 @@ class BP_Groups_Group { * sort). * @param string|bool $order ASC or DESC. Default: false (default sort). * @return array { - * @type array $groups Array of matched and paginated group objects. + * @type array $groups Array of matched and paginated group IDs. * @type int $total Total count of groups matching the query. * } */ public static function search_groups( $filter, $limit = null, $page = null, $sort_by = false, $order = false ) { - global $wpdb; - - $search_terms_like = '%' . bp_esc_like( $filter ) . '%'; - - $pag_sql = $order_sql = $hidden_sql = ''; + $args = array( + 'search_terms' => $filter, + 'per_page' => $limit, + 'page' => $page, + 'orderby' => $sort_by, + 'order' => $order, + ); - if ( !empty( $limit ) && !empty( $page ) ) - $pag_sql = $wpdb->prepare( " LIMIT %d, %d", intval( ( $page - 1 ) * $limit), intval( $limit ) ); + $groups = BP_Groups_Group::get( $args ); - if ( !empty( $sort_by ) && !empty( $order ) ) { - $sort_by = esc_sql( $sort_by ); - $order = esc_sql( $order ); - $order_sql = "ORDER BY {$sort_by} {$order}"; + // Modify the results to match the old format. + $paged_groups = array(); + $i = 0; + foreach ( $groups['groups'] as $group ) { + $paged_groups[ $i ] = new stdClass; + $paged_groups[ $i ]->group_id = $group->id; + $i++; } - if ( !bp_current_user_can( 'bp_moderate' ) ) - $hidden_sql = "AND status != 'hidden'"; - - $bp = buddypress(); - - $paged_groups = $wpdb->get_results( $wpdb->prepare( "SELECT id as group_id FROM {$bp->groups->table_name} WHERE ( name LIKE %s OR description LIKE %s ) {$hidden_sql} {$order_sql} {$pag_sql}", $search_terms_like, $search_terms_like ) ); - $total_groups = $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(id) FROM {$bp->groups->table_name} WHERE ( name LIKE %s OR description LIKE %s ) {$hidden_sql}", $search_terms_like, $search_terms_like ) ); - - return array( 'groups' => $paged_groups, 'total' => $total_groups ); + return array( 'groups' => $paged_groups, 'total' => $groups['total'] ); } /** @@ -882,8 +876,14 @@ class BP_Groups_Group { * Default: null (no limit). * @type int $user_id Optional. If provided, results will be limited to groups * of which the specified user is a member. Default: null. - * @type string $search_terms Optional. If provided, only groups whose names or descriptions - * match the search terms will be returned. Default: false. + * @type string $search_terms Optional. If provided, only groups whose names or descriptions + * match the search terms will be returned. Allows specifying the + * wildcard position using a '*' character before or after the + * string or both. Works in concert with $search_columns. + * Default: false. + * @type string $search_columns Optional. If provided, only apply the search terms to the + * specified columns. Works in concert with $search_terms. + * Default: empty array. * @type array|string $group_type Array or comma-separated list of group types to limit results to. * @type array|string $group_type__in Array or comma-separated list of group types to limit results to. * @type array|string $group_type__not_in Array or comma-separated list of group types that will be @@ -928,8 +928,7 @@ class BP_Groups_Group { 8 => 'show_hidden', ); - $func_args = func_get_args(); - $args = bp_core_parse_args_array( $old_args_keys, $func_args ); + $args = bp_core_parse_args_array( $old_args_keys, func_get_args() ); } $defaults = array( @@ -940,6 +939,7 @@ class BP_Groups_Group { 'page' => null, 'user_id' => 0, 'search_terms' => false, + 'search_columns' => array(), 'group_type' => '', 'group_type__in' => '', 'group_type__not_in' => '', @@ -974,9 +974,41 @@ class BP_Groups_Group { $where_conditions['hidden'] = "g.status != 'hidden'"; } - if ( ! empty( $r['search_terms'] ) ) { - $search_terms_like = '%' . bp_esc_like( $r['search_terms'] ) . '%'; - $where_conditions['search'] = $wpdb->prepare( "( g.name LIKE %s OR g.description LIKE %s )", $search_terms_like, $search_terms_like ); + $search = ''; + if ( isset( $r['search_terms'] ) ) { + $search = trim( $r['search_terms'] ); + } + + if ( $search ) { + $leading_wild = ( ltrim( $search, '*' ) != $search ); + $trailing_wild = ( rtrim( $search, '*' ) != $search ); + if ( $leading_wild && $trailing_wild ) { + $wild = 'both'; + } elseif ( $leading_wild ) { + $wild = 'leading'; + } elseif ( $trailing_wild ) { + $wild = 'trailing'; + } else { + // Default is to wrap in wildcard characters. + $wild = 'both'; + } + $search = trim( $search, '*' ); + + $searches = array(); + $leading_wild = ( 'leading' == $wild || 'both' == $wild ) ? '%' : ''; + $trailing_wild = ( 'trailing' == $wild || 'both' == $wild ) ? '%' : ''; + $wildcarded = $leading_wild . bp_esc_like( $search ) . $trailing_wild; + + $search_columns = array( 'name', 'description' ); + if ( $r['search_columns'] ) { + $search_columns = array_intersect( $r['search_columns'], $search_columns ); + } + + foreach ( $search_columns as $search_column ) { + $searches[] = $wpdb->prepare( "$search_column LIKE %s", $wildcarded ); + } + + $where_conditions['search'] = '(' . implode(' OR ', $searches) . ')'; } $meta_query_sql = self::get_meta_query_sql( $r['meta_query'] ); @@ -1454,8 +1486,7 @@ class BP_Groups_Group { * Default: null (no limit). * @param int|null $page Optional. The page offset of results to return. * Default: null (no limit). - * @param bool $populate_extras Optional. Whether to fetch extra - * information about the groups. Default: true. + * @param bool $populate_extras Deprecated. * @param string|array|bool $exclude Optional. Array or comma-separated list of group * IDs to exclude from results. * @return false|array { @@ -1481,34 +1512,15 @@ class BP_Groups_Group { } } - $bp = buddypress(); - - if ( !empty( $exclude ) ) { - $exclude = implode( ',', wp_parse_id_list( $exclude ) ); - $exclude_sql = " AND g.id NOT IN ({$exclude})"; - } - - if ( !bp_current_user_can( 'bp_moderate' ) ) - $hidden_sql = " AND status != 'hidden'"; - - $letter_like = bp_esc_like( $letter ) . '%'; - - if ( !empty( $limit ) && !empty( $page ) ) { - $pag_sql = $wpdb->prepare( " LIMIT %d, %d", intval( ( $page - 1 ) * $limit), intval( $limit ) ); - } - - $total_groups = $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(DISTINCT g.id) FROM {$bp->groups->table_name_groupmeta} gm1, {$bp->groups->table_name_groupmeta} gm2, {$bp->groups->table_name} g WHERE g.id = gm1.group_id AND g.id = gm2.group_id AND gm2.meta_key = 'last_activity' AND gm1.meta_key = 'total_member_count' AND g.name LIKE %s {$hidden_sql} {$exclude_sql}", $letter_like ) ); - - $paged_groups = $wpdb->get_results( $wpdb->prepare( "SELECT g.*, gm1.meta_value as total_member_count, gm2.meta_value as last_activity FROM {$bp->groups->table_name_groupmeta} gm1, {$bp->groups->table_name_groupmeta} gm2, {$bp->groups->table_name} g WHERE g.id = gm1.group_id AND g.id = gm2.group_id AND gm2.meta_key = 'last_activity' AND gm1.meta_key = 'total_member_count' AND g.name LIKE %s {$hidden_sql} {$exclude_sql} ORDER BY g.name ASC {$pag_sql}", $letter_like ) ); - - if ( !empty( $populate_extras ) ) { - foreach ( (array) $paged_groups as $group ) { - $group_ids[] = $group->id; - } - $paged_groups = BP_Groups_Group::get_group_extras( $paged_groups, $group_ids, 'newest' ); - } + $args = array( + 'per_page' => $limit, + 'page' => $page, + 'search_terms' => $letter . '*', + 'search_columns' => array( 'name' ), + 'exclude' => $exclude, + ); - return array( 'groups' => $paged_groups, 'total' => $total_groups ); + return BP_Groups_Group::get( $args ); } /** @@ -1538,46 +1550,16 @@ class BP_Groups_Group { * } */ public static function get_random( $limit = null, $page = null, $user_id = 0, $search_terms = false, $populate_extras = true, $exclude = false ) { - global $wpdb; - - $pag_sql = $hidden_sql = $search_sql = $exclude_sql = ''; - - if ( !empty( $limit ) && !empty( $page ) ) - $pag_sql = $wpdb->prepare( " LIMIT %d, %d", intval( ( $page - 1 ) * $limit), intval( $limit ) ); - - if ( !is_user_logged_in() || ( !bp_current_user_can( 'bp_moderate' ) && ( $user_id != bp_loggedin_user_id() ) ) ) - $hidden_sql = "AND g.status != 'hidden'"; - - if ( !empty( $search_terms ) ) { - $search_terms_like = '%' . bp_esc_like( $search_terms ) . '%'; - $search_sql = $wpdb->prepare( " AND ( g.name LIKE %s OR g.description LIKE %s )", $search_terms_like, $search_terms_like ); - } - - if ( !empty( $exclude ) ) { - $exclude = wp_parse_id_list( $exclude ); - $exclude = esc_sql( implode( ',', $exclude ) ); - $exclude_sql = " AND g.id NOT IN ({$exclude})"; - } - - $bp = buddypress(); - - if ( !empty( $user_id ) ) { - $user_id = esc_sql( $user_id ); - $paged_groups = $wpdb->get_results( "SELECT g.*, gm1.meta_value as total_member_count, gm2.meta_value as last_activity FROM {$bp->groups->table_name_groupmeta} gm1, {$bp->groups->table_name_groupmeta} gm2, {$bp->groups->table_name_members} m, {$bp->groups->table_name} g WHERE g.id = m.group_id AND g.id = gm1.group_id AND g.id = gm2.group_id AND gm2.meta_key = 'last_activity' AND gm1.meta_key = 'total_member_count' {$hidden_sql} {$search_sql} AND m.user_id = {$user_id} AND m.is_confirmed = 1 AND m.is_banned = 0 {$exclude_sql} ORDER BY rand() {$pag_sql}" ); - $total_groups = $wpdb->get_var( "SELECT COUNT(DISTINCT m.group_id) FROM {$bp->groups->table_name_members} m LEFT JOIN {$bp->groups->table_name_groupmeta} gm ON m.group_id = gm.group_id INNER JOIN {$bp->groups->table_name} g ON m.group_id = g.id WHERE gm.meta_key = 'last_activity'{$hidden_sql} {$search_sql} AND m.user_id = {$user_id} AND m.is_confirmed = 1 AND m.is_banned = 0 {$exclude_sql}" ); - } else { - $paged_groups = $wpdb->get_results( "SELECT g.*, gm1.meta_value as total_member_count, gm2.meta_value as last_activity FROM {$bp->groups->table_name_groupmeta} gm1, {$bp->groups->table_name_groupmeta} gm2, {$bp->groups->table_name} g WHERE g.id = gm1.group_id AND g.id = gm2.group_id AND gm2.meta_key = 'last_activity' AND gm1.meta_key = 'total_member_count' {$hidden_sql} {$search_sql} {$exclude_sql} ORDER BY rand() {$pag_sql}" ); - $total_groups = $wpdb->get_var( "SELECT COUNT(DISTINCT g.id) FROM {$bp->groups->table_name_groupmeta} gm INNER JOIN {$bp->groups->table_name} g ON gm.group_id = g.id WHERE gm.meta_key = 'last_activity'{$hidden_sql} {$search_sql} {$exclude_sql}" ); - } - - if ( !empty( $populate_extras ) ) { - foreach ( (array) $paged_groups as $group ) { - $group_ids[] = $group->id; - } - $paged_groups = BP_Groups_Group::get_group_extras( $paged_groups, $group_ids, 'newest' ); - } + $args = array( + 'type' => 'random', + 'per_page' => $limit, + 'page' => $page, + 'user_id' => $user_id, + 'search_terms' => $search_terms, + 'exclude' => $exclude, + ); - return array( 'groups' => $paged_groups, 'total' => $total_groups ); + return BP_Groups_Group::get( $args ); } /** diff --git a/wp-content/plugins/buddypress/bp-groups/classes/class-bp-groups-invite-template.php b/wp-content/plugins/buddypress/bp-groups/classes/class-bp-groups-invite-template.php index b304f08d7..d6ab27604 100644 --- a/wp-content/plugins/buddypress/bp-groups/classes/class-bp-groups-invite-template.php +++ b/wp-content/plugins/buddypress/bp-groups/classes/class-bp-groups-invite-template.php @@ -88,8 +88,7 @@ class BP_Groups_Invite_Template { 1 => 'group_id', ); - $func_args = func_get_args(); - $args = bp_core_parse_args_array( $old_args_keys, $func_args ); + $args = bp_core_parse_args_array( $old_args_keys, func_get_args() ); } $r = wp_parse_args( $args, array( diff --git a/wp-content/plugins/buddypress/bp-groups/classes/class-bp-groups-list-table.php b/wp-content/plugins/buddypress/bp-groups/classes/class-bp-groups-list-table.php index e052da0bd..678b686ea 100644 --- a/wp-content/plugins/buddypress/bp-groups/classes/class-bp-groups-list-table.php +++ b/wp-content/plugins/buddypress/bp-groups/classes/class-bp-groups-list-table.php @@ -395,7 +395,7 @@ class BP_Groups_List_Table extends WP_List_Table { 'comment' => _x( 'Name', 'Groups admin Group Name column header', 'buddypress' ), 'description' => _x( 'Description', 'Groups admin Group Description column header', 'buddypress' ), 'status' => _x( 'Status', 'Groups admin Privacy Status column header', 'buddypress' ), - 'members' => _x( '# Members', 'Groups admin Members column header', 'buddypress' ), + 'members' => _x( 'Members', 'Groups admin Members column header', 'buddypress' ), 'last_active' => _x( 'Last Active', 'Groups admin Last Active column header', 'buddypress' ) ) ); } @@ -520,7 +520,7 @@ class BP_Groups_List_Table extends WP_List_Table { * @param string $value Name of the group being rendered. * @param array $item Array for the current group item. */ - $group_name = apply_filters_ref_array( 'bp_get_group_name', array( $item['name'] ), $item ); + $group_name = apply_filters_ref_array( 'bp_get_group_name', array( $item['name'], $item ) ); // Rollover actions. // Edit. @@ -722,7 +722,7 @@ class BP_Groups_List_Table extends WP_List_Table { 'label' => '', 'show_all' => true ) ); - remove_filter( 'bp_get_group_type_directory_permalink', array( $this, 'group_type_permalink_use_admin_filter' ), 10, 2 ); + remove_filter( 'bp_get_group_type_directory_permalink', array( $this, 'group_type_permalink_use_admin_filter' ), 10 ); /** * Filters the markup for the Group Type column. diff --git a/wp-content/plugins/buddypress/bp-groups/classes/class-bp-groups-member.php b/wp-content/plugins/buddypress/bp-groups/classes/class-bp-groups-member.php index a71d7fa9e..ff66d8ea0 100644 --- a/wp-content/plugins/buddypress/bp-groups/classes/class-bp-groups-member.php +++ b/wp-content/plugins/buddypress/bp-groups/classes/class-bp-groups-member.php @@ -129,7 +129,7 @@ class BP_Groups_Member { * @since 1.6.0 * @var WP_User */ - var $user; + protected $user; /** * Constructor method. @@ -197,9 +197,57 @@ class BP_Groups_Member { $this->is_confirmed = (int) $member->is_confirmed; $this->comments = $member->comments; $this->invite_sent = (int) $member->invite_sent; + } + } + /** + * Magic getter. + * + * @since 2.8.0 + * + * @param string $key Key. + * @return mixed + */ + public function __get( $key ) { + switch ( $key ) { + case 'user' : + return $this->get_user_object( $this->user_id ); + } + } + + /** + * Magic issetter. + * + * @since 2.8.0 + * + * @param string $key Key. + * @return mixed + */ + public function __isset( $key ) { + switch ( $key ) { + case 'user' : + return true; + + default : + return isset( $this->{$key} ); + } + } + + /** + * Get the user object corresponding to this membership. + * + * Used for lazyloading the protected `user` property. + * + * @since 2.8.0 + * + * @return BP_Core_User + */ + protected function get_user_object() { + if ( empty( $this->user ) ) { $this->user = new BP_Core_User( $this->user_id ); } + + return $this->user; } /** diff --git a/wp-content/plugins/buddypress/bp-groups/classes/class-bp-groups-membership-requests-template.php b/wp-content/plugins/buddypress/bp-groups/classes/class-bp-groups-membership-requests-template.php index 001484047..b0a011a19 100644 --- a/wp-content/plugins/buddypress/bp-groups/classes/class-bp-groups-membership-requests-template.php +++ b/wp-content/plugins/buddypress/bp-groups/classes/class-bp-groups-membership-requests-template.php @@ -96,8 +96,7 @@ class BP_Groups_Membership_Requests_Template { 2 => 'max', ); - $func_args = func_get_args(); - $args = bp_core_parse_args_array( $old_args_keys, $func_args ); + $args = bp_core_parse_args_array( $old_args_keys, func_get_args() ); } $r = wp_parse_args( $args, array( diff --git a/wp-content/plugins/buddypress/bp-groups/classes/class-bp-groups-template.php b/wp-content/plugins/buddypress/bp-groups/classes/class-bp-groups-template.php index 971d66974..ba5e41284 100644 --- a/wp-content/plugins/buddypress/bp-groups/classes/class-bp-groups-template.php +++ b/wp-content/plugins/buddypress/bp-groups/classes/class-bp-groups-template.php @@ -148,8 +148,7 @@ class BP_Groups_Template { 11 => 'page_arg', ); - $func_args = func_get_args(); - $args = bp_core_parse_args_array( $old_args_keys, $func_args ); + $args = bp_core_parse_args_array( $old_args_keys, func_get_args() ); } $defaults = array( @@ -167,6 +166,7 @@ class BP_Groups_Template { 'exclude' => false, 'parent_id' => null, 'search_terms' => '', + 'search_columns' => array(), 'group_type' => '', 'group_type__in' => '', 'group_type__not_in' => '', @@ -218,6 +218,7 @@ class BP_Groups_Template { 'page' => $this->pag_page, 'user_id' => $user_id, 'search_terms' => $search_terms, + 'search_columns' => $search_columns, 'meta_query' => $meta_query, 'group_type' => $group_type, 'group_type__in' => $group_type__in, diff --git a/wp-content/plugins/buddypress/bp-groups/classes/class-bp-groups-widget.php b/wp-content/plugins/buddypress/bp-groups/classes/class-bp-groups-widget.php index d0fda5f88..ac39d3d29 100644 --- a/wp-content/plugins/buddypress/bp-groups/classes/class-bp-groups-widget.php +++ b/wp-content/plugins/buddypress/bp-groups/classes/class-bp-groups-widget.php @@ -24,7 +24,7 @@ class BP_Groups_Widget extends WP_Widget { */ public function __construct() { $widget_ops = array( - 'description' => __( 'A dynamic list of recently active, popular, and newest groups', 'buddypress' ), + 'description' => __( 'A dynamic list of recently active, popular, newest, or alphabetical groups', 'buddypress' ), 'classname' => 'widget_bp_groups_widget buddypress widget', 'customize_selective_refresh' => true, ); @@ -46,7 +46,7 @@ class BP_Groups_Widget extends WP_Widget { } /** - * Extends our frontend output method. + * Extends our front-end output method. * * @since 1.0.3 * @@ -123,6 +123,8 @@ class BP_Groups_Widget extends WP_Widget { <a href="<?php bp_groups_directory_permalink(); ?>" id="recently-active-groups"<?php if ( $instance['group_default'] == 'active' ) : ?> class="selected"<?php endif; ?>><?php _e("Active", 'buddypress') ?></a> <span class="bp-separator" role="separator"><?php echo esc_html( $separator ); ?></span> <a href="<?php bp_groups_directory_permalink(); ?>" id="popular-groups" <?php if ( $instance['group_default'] == 'popular' ) : ?> class="selected"<?php endif; ?>><?php _e("Popular", 'buddypress') ?></a> + <span class="bp-separator" role="separator"><?php echo esc_html( $separator ); ?></span> + <a href="<?php bp_groups_directory_permalink(); ?>" id="alphabetical-groups" <?php if ( $instance['group_default'] == 'alphabetical' ) : ?> class="selected"<?php endif; ?>><?php _e("Alphabetical", 'buddypress') ?></a> </div> <ul id="groups-list" class="item-list" aria-live="polite" aria-relevant="all" aria-atomic="true"> @@ -133,16 +135,16 @@ class BP_Groups_Widget extends WP_Widget { </div> <div class="item"> - <div class="item-title"><a href="<?php bp_group_permalink() ?>" title="<?php bp_group_name() ?>"><?php bp_group_name() ?></a></div> + <div class="item-title"><a href="<?php bp_group_permalink() ?>"><?php bp_group_name() ?></a></div> <div class="item-meta"> <span class="activity"> <?php if ( 'newest' == $instance['group_default'] ) { printf( __( 'created %s', 'buddypress' ), bp_get_group_date_created() ); - } elseif ( 'active' == $instance['group_default'] ) { - printf( __( 'active %s', 'buddypress' ), bp_get_group_last_active() ); } elseif ( 'popular' == $instance['group_default'] ) { bp_group_member_count(); + } else { + printf( __( 'active %s', 'buddypress' ), bp_get_group_last_active() ); } ?> </span> @@ -224,6 +226,7 @@ class BP_Groups_Widget extends WP_Widget { <option value="newest" <?php selected( $group_default, 'newest' ); ?>><?php _e( 'Newest', 'buddypress' ) ?></option> <option value="active" <?php selected( $group_default, 'active' ); ?>><?php _e( 'Active', 'buddypress' ) ?></option> <option value="popular" <?php selected( $group_default, 'popular' ); ?>><?php _e( 'Popular', 'buddypress' ) ?></option> + <option value="alphabetical" <?php selected( $group_default, 'alphabetical' ); ?>><?php _e( 'Alphabetical', 'buddypress' ) ?></option> </select> </p> <?php diff --git a/wp-content/plugins/buddypress/bp-loader.php b/wp-content/plugins/buddypress/bp-loader.php index 103569cd8..8c8682ee8 100644 --- a/wp-content/plugins/buddypress/bp-loader.php +++ b/wp-content/plugins/buddypress/bp-loader.php @@ -15,769 +15,22 @@ * Description: BuddyPress helps site builders and WordPress developers add community features to their websites, with user profile fields, activity streams, messaging, and notifications. * Author: The BuddyPress Community * Author URI: https://buddypress.org/ - * Version: 2.7.3 + * Version: 2.8.2 * Text Domain: buddypress * Domain Path: /bp-languages/ * License: GPLv2 or later (license.txt) */ -// Exit if accessed directly -defined( 'ABSPATH' ) || exit; - -/** Constants *****************************************************************/ - -if ( !class_exists( 'BuddyPress' ) ) : /** - * Main BuddyPress Class. - * - * Tap tap tap... Is this thing on? - * - * @since 1.6.0 + * This files should always remain compatible with the minimum version of + * PHP supported by WordPress. */ -class BuddyPress { - - /** Magic *****************************************************************/ - - /** - * BuddyPress uses many variables, most of which can be filtered to - * customize the way that it works. To prevent unauthorized access, - * these variables are stored in a private array that is magically - * updated using PHP 5.2+ methods. This is to prevent third party - * plugins from tampering with essential information indirectly, which - * would cause issues later. - * - * @see BuddyPress::setup_globals() - * @var array - */ - private $data; - - /** Not Magic *************************************************************/ - - /** - * @var array Primary BuddyPress navigation. - */ - public $bp_nav = array(); - - /** - * @var array Secondary BuddyPress navigation to $bp_nav. - */ - public $bp_options_nav = array(); - - /** - * @var array The unfiltered URI broken down into chunks. - * @see bp_core_set_uri_globals() - */ - public $unfiltered_uri = array(); - - /** - * @var array The canonical URI stack. - * @see bp_redirect_canonical() - * @see bp_core_new_nav_item() - */ - public $canonical_stack = array(); - - /** - * @var array Additional navigation elements (supplemental). - */ - public $action_variables = array(); - - /** - * @var string Current member directory type. - */ - public $current_member_type = ''; - - /** - * @var array Required components (core, members). - */ - public $required_components = array(); - - /** - * @var array Additional active components. - */ - public $loaded_components = array(); - - /** - * @var array Active components. - */ - public $active_components = array(); - - /** - * Whether autoload is in use. - * - * @since 2.5.0 - * @var bool - */ - public $do_autoload = false; - - /** - * Whether to load backward compatibility classes for navigation globals. - * - * @since 2.6.0 - * @var bool - */ - public $do_nav_backcompat = false; - - /** Option Overload *******************************************************/ - - /** - * @var array Optional Overloads default options retrieved from get_option(). - */ - public $options = array(); - - /** Singleton *************************************************************/ - - /** - * Main BuddyPress Instance. - * - * BuddyPress is great. - * Please load it only one time. - * For this, we thank you. - * - * Insures that only one instance of BuddyPress exists in memory at any - * one time. Also prevents needing to define globals all over the place. - * - * @since 1.7.0 - * - * @static object $instance - * @see buddypress() - * - * @return BuddyPress The one true BuddyPress. - */ - public static function instance() { - - // Store the instance locally to avoid private static replication - static $instance = null; - - // Only run these methods if they haven't been run previously - if ( null === $instance ) { - $instance = new BuddyPress; - $instance->constants(); - $instance->setup_globals(); - $instance->legacy_constants(); - $instance->includes(); - $instance->setup_actions(); - } - - // Always return the instance - return $instance; - - // The last metroid is in captivity. The galaxy is at peace. - } - - /** Magic Methods *********************************************************/ - - /** - * A dummy constructor to prevent BuddyPress from being loaded more than once. - * - * @since 1.7.0 - * @see BuddyPress::instance() - * @see buddypress() - */ - private function __construct() { /* Do nothing here */ } - - /** - * A dummy magic method to prevent BuddyPress from being cloned. - * - * @since 1.7.0 - */ - public function __clone() { _doing_it_wrong( __FUNCTION__, __( 'Cheatin’ huh?', 'buddypress' ), '1.7' ); } - - /** - * A dummy magic method to prevent BuddyPress from being unserialized. - * - * @since 1.7.0 - */ - public function __wakeup() { _doing_it_wrong( __FUNCTION__, __( 'Cheatin’ huh?', 'buddypress' ), '1.7' ); } - - /** - * Magic method for checking the existence of a certain custom field. - * - * @since 1.7.0 - * - * @param string $key Key to check the set status for. - * - * @return bool - */ - public function __isset( $key ) { return isset( $this->data[$key] ); } - - /** - * Magic method for getting BuddyPress variables. - * - * @since 1.7.0 - * - * @param string $key Key to return the value for. - * - * @return mixed - */ - public function __get( $key ) { return isset( $this->data[$key] ) ? $this->data[$key] : null; } - - /** - * Magic method for setting BuddyPress variables. - * - * @since 1.7.0 - * - * @param string $key Key to set a value for. - * @param mixed $value Value to set. - */ - public function __set( $key, $value ) { $this->data[$key] = $value; } - - /** - * Magic method for unsetting BuddyPress variables. - * - * @since 1.7.0 - * - * @param string $key Key to unset a value for. - */ - public function __unset( $key ) { if ( isset( $this->data[$key] ) ) unset( $this->data[$key] ); } - - /** - * Magic method to prevent notices and errors from invalid method calls. - * - * @since 1.7.0 - * - * @param string $name - * @param array $args - * - * @return null - */ - public function __call( $name = '', $args = array() ) { unset( $name, $args ); return null; } - - /** Private Methods *******************************************************/ - - /** - * Bootstrap constants. - * - * @since 1.6.0 - * - */ - private function constants() { - - // Place your custom code (actions/filters) in a file called - // '/plugins/bp-custom.php' and it will be loaded before anything else. - if ( file_exists( WP_PLUGIN_DIR . '/bp-custom.php' ) ) { - require( WP_PLUGIN_DIR . '/bp-custom.php' ); - } - - // Path and URL - if ( ! defined( 'BP_PLUGIN_DIR' ) ) { - define( 'BP_PLUGIN_DIR', plugin_dir_path( __FILE__ ) ); - } - - if ( ! defined( 'BP_PLUGIN_URL' ) ) { - define( 'BP_PLUGIN_URL', plugin_dir_url( __FILE__ ) ); - } - - // Only applicable to those running trunk - if ( ! defined( 'BP_SOURCE_SUBDIRECTORY' ) ) { - define( 'BP_SOURCE_SUBDIRECTORY', '' ); - } - - // Define on which blog ID BuddyPress should run - if ( ! defined( 'BP_ROOT_BLOG' ) ) { - - // Default to use current blog ID - // Fulfills non-network installs and BP_ENABLE_MULTIBLOG installs - $root_blog_id = get_current_blog_id(); - - // Multisite check - if ( is_multisite() ) { - - // Multiblog isn't enabled - if ( ! defined( 'BP_ENABLE_MULTIBLOG' ) || ( defined( 'BP_ENABLE_MULTIBLOG' ) && (int) constant( 'BP_ENABLE_MULTIBLOG' ) === 0 ) ) { - // Check to see if BP is network-activated - // We're not using is_plugin_active_for_network() b/c you need to include the - // /wp-admin/includes/plugin.php file in order to use that function. - - // get network-activated plugins - $plugins = get_site_option( 'active_sitewide_plugins'); - - // basename - $basename = basename( constant( 'BP_PLUGIN_DIR' ) ) . '/bp-loader.php'; - - // plugin is network-activated; use main site ID instead - if ( isset( $plugins[ $basename ] ) ) { - $current_site = get_current_site(); - $root_blog_id = $current_site->blog_id; - } - } - - } - - define( 'BP_ROOT_BLOG', $root_blog_id ); - } - - // Whether to refrain from loading deprecated functions - if ( ! defined( 'BP_IGNORE_DEPRECATED' ) ) { - define( 'BP_IGNORE_DEPRECATED', false ); - } - - // The search slug has to be defined nice and early because of the way - // search requests are loaded - // - // @todo Make this better - if ( ! defined( 'BP_SEARCH_SLUG' ) ) { - define( 'BP_SEARCH_SLUG', 'search' ); - } - } - - /** - * Component global variables. - * - * @since 1.6.0 - * - */ - private function setup_globals() { - - /** Versions **********************************************************/ - - $this->version = '2.7.3'; - $this->db_version = 11105; - - /** Loading ***********************************************************/ - - /** - * Whether to load deprecated code or not. - * - * @since 2.0.0 - * - * @const constant BP_IGNORE_DEPRECATED Whether or not to ignore deprecated functionality. - */ - $this->load_deprecated = ! apply_filters( 'bp_ignore_deprecated', BP_IGNORE_DEPRECATED ); - - /** Toolbar ***********************************************************/ - /** - * @var string The primary toolbar ID. - */ - $this->my_account_menu_id = ''; - - /** URIs **************************************************************/ - - /** - * @var int The current offset of the URI. - * @see bp_core_set_uri_globals() - */ - $this->unfiltered_uri_offset = 0; - - /** - * @var bool Are status headers already sent? - */ - $this->no_status_set = false; - - /** Components ********************************************************/ - - /** - * @var string Name of the current BuddyPress component (primary). - */ - $this->current_component = ''; - - /** - * @var string Name of the current BuddyPress item (secondary). - */ - $this->current_item = ''; - - /** - * @var string Name of the current BuddyPress action (tertiary). - */ - $this->current_action = ''; - - /** - * @var bool Displaying custom 2nd level navigation menu (I.E a group). - */ - $this->is_single_item = false; - - /** Root **************************************************************/ - - /** - * Filters the BuddyPress Root blog ID. - * - * @since 1.5.0 - * - * @const constant BP_ROOT_BLOG BuddyPress Root blog ID. - */ - $this->root_blog_id = (int) apply_filters( 'bp_get_root_blog_id', BP_ROOT_BLOG ); - - /** Paths**************************************************************/ - - // BuddyPress root directory - $this->file = constant( 'BP_PLUGIN_DIR' ) . 'bp-loader.php'; - $this->basename = basename( constant( 'BP_PLUGIN_DIR' ) ) . '/bp-loader.php'; - $this->plugin_dir = trailingslashit( constant( 'BP_PLUGIN_DIR' ) . constant( 'BP_SOURCE_SUBDIRECTORY' ) ); - $this->plugin_url = trailingslashit( constant( 'BP_PLUGIN_URL' ) . constant( 'BP_SOURCE_SUBDIRECTORY' ) ); - - // Languages - $this->lang_dir = $this->plugin_dir . 'bp-languages'; - - // Templates (theme compatibility) - $this->themes_dir = $this->plugin_dir . 'bp-templates'; - $this->themes_url = $this->plugin_url . 'bp-templates'; - - // Themes (for bp-default) - $this->old_themes_dir = $this->plugin_dir . 'bp-themes'; - $this->old_themes_url = $this->plugin_url . 'bp-themes'; - - /** Theme Compat ******************************************************/ - - $this->theme_compat = new stdClass(); // Base theme compatibility class - $this->filters = new stdClass(); // Used when adding/removing filters - - /** Users *************************************************************/ - - $this->current_user = new stdClass(); - $this->displayed_user = new stdClass(); - - /** Post types and taxonomies *****************************************/ - $this->email_post_type = apply_filters( 'bp_email_post_type', 'bp-email' ); - $this->email_taxonomy_type = apply_filters( 'bp_email_tax_type', 'bp-email-type' ); - - /** Navigation backward compatibility *********************************/ - if ( interface_exists( 'ArrayAccess', false ) ) { - // bp_nav and bp_options_nav compatibility depends on SPL. - $this->do_nav_backcompat = true; - } - } - - /** - * Legacy BuddyPress constants. - * - * Try to avoid using these. Their values have been moved into variables - * in the instance, and have matching functions to get/set their values. - * - * @since 1.7.0 - */ - private function legacy_constants() { - - // Define the BuddyPress version - if ( ! defined( 'BP_VERSION' ) ) { - define( 'BP_VERSION', $this->version ); - } - - // Define the database version - if ( ! defined( 'BP_DB_VERSION' ) ) { - define( 'BP_DB_VERSION', $this->db_version ); - } - } - - /** - * Include required files. - * - * @since 1.6.0 - * - */ - private function includes() { - if ( function_exists( 'spl_autoload_register' ) ) { - spl_autoload_register( array( $this, 'autoload' ) ); - $this->do_autoload = true; - } - - // Load the WP abstraction file so BuddyPress can run on all WordPress setups. - require( $this->plugin_dir . 'bp-core/bp-core-wpabstraction.php' ); - - // Setup the versions (after we include multisite abstraction above) - $this->versions(); - - /** Update/Install ****************************************************/ - - // Theme compatibility - require( $this->plugin_dir . 'bp-core/bp-core-template-loader.php' ); - require( $this->plugin_dir . 'bp-core/bp-core-theme-compatibility.php' ); - - // Require all of the BuddyPress core libraries - require( $this->plugin_dir . 'bp-core/bp-core-dependency.php' ); - require( $this->plugin_dir . 'bp-core/bp-core-actions.php' ); - require( $this->plugin_dir . 'bp-core/bp-core-caps.php' ); - require( $this->plugin_dir . 'bp-core/bp-core-cache.php' ); - require( $this->plugin_dir . 'bp-core/bp-core-cssjs.php' ); - require( $this->plugin_dir . 'bp-core/bp-core-update.php' ); - require( $this->plugin_dir . 'bp-core/bp-core-options.php' ); - require( $this->plugin_dir . 'bp-core/bp-core-taxonomy.php' ); - require( $this->plugin_dir . 'bp-core/bp-core-filters.php' ); - require( $this->plugin_dir . 'bp-core/bp-core-attachments.php' ); - require( $this->plugin_dir . 'bp-core/bp-core-avatars.php' ); - require( $this->plugin_dir . 'bp-core/bp-core-widgets.php' ); - require( $this->plugin_dir . 'bp-core/bp-core-template.php' ); - require( $this->plugin_dir . 'bp-core/bp-core-adminbar.php' ); - require( $this->plugin_dir . 'bp-core/bp-core-buddybar.php' ); - require( $this->plugin_dir . 'bp-core/bp-core-catchuri.php' ); - require( $this->plugin_dir . 'bp-core/bp-core-functions.php' ); - require( $this->plugin_dir . 'bp-core/bp-core-moderation.php' ); - require( $this->plugin_dir . 'bp-core/bp-core-loader.php' ); - require( $this->plugin_dir . 'bp-core/bp-core-customizer-email.php' ); - - if ( ! $this->do_autoload ) { - require( $this->plugin_dir . 'bp-core/bp-core-classes.php' ); - } - - // Skip or load deprecated content - if ( true === $this->load_deprecated ) { - require( $this->plugin_dir . 'bp-core/deprecated/1.2.php' ); - require( $this->plugin_dir . 'bp-core/deprecated/1.5.php' ); - require( $this->plugin_dir . 'bp-core/deprecated/1.6.php' ); - require( $this->plugin_dir . 'bp-core/deprecated/1.7.php' ); - require( $this->plugin_dir . 'bp-core/deprecated/1.9.php' ); - require( $this->plugin_dir . 'bp-core/deprecated/2.0.php' ); - require( $this->plugin_dir . 'bp-core/deprecated/2.1.php' ); - require( $this->plugin_dir . 'bp-core/deprecated/2.2.php' ); - require( $this->plugin_dir . 'bp-core/deprecated/2.3.php' ); - require( $this->plugin_dir . 'bp-core/deprecated/2.4.php' ); - require( $this->plugin_dir . 'bp-core/deprecated/2.5.php' ); - require( $this->plugin_dir . 'bp-core/deprecated/2.6.php' ); - require( $this->plugin_dir . 'bp-core/deprecated/2.7.php' ); - } - } - - /** - * Autoload classes. - * - * @since 2.5.0 - * - * @param string $class - */ - public function autoload( $class ) { - $class_parts = explode( '_', strtolower( $class ) ); - - if ( 'bp' !== $class_parts[0] ) { - return; - } - - $components = array( - 'activity', - 'blogs', - 'core', - 'friends', - 'groups', - 'members', - 'messages', - 'notifications', - 'settings', - 'xprofile', - ); - - // These classes don't have a name that matches their component. - $irregular_map = array( - 'BP_Akismet' => 'activity', - - 'BP_Admin' => 'core', - 'BP_Attachment_Avatar' => 'core', - 'BP_Attachment_Cover_Image' => 'core', - 'BP_Attachment' => 'core', - 'BP_Button' => 'core', - 'BP_Component' => 'core', - 'BP_Customizer_Control_Range' => 'core', - 'BP_Date_Query' => 'core', - 'BP_Email_Delivery' => 'core', - 'BP_Email_Recipient' => 'core', - 'BP_Email' => 'core', - 'BP_Embed' => 'core', - 'BP_Media_Extractor' => 'core', - 'BP_Members_Suggestions' => 'core', - 'BP_PHPMailer' => 'core', - 'BP_Recursive_Query' => 'core', - 'BP_Suggestions' => 'core', - 'BP_Theme_Compat' => 'core', - 'BP_User_Query' => 'core', - 'BP_Walker_Category_Checklist' => 'core', - 'BP_Walker_Nav_Menu_Checklist' => 'core', - 'BP_Walker_Nav_Menu' => 'core', - - 'BP_Core_Friends_Widget' => 'friends', - - 'BP_Group_Extension' => 'groups', - 'BP_Group_Member_Query' => 'groups', - - 'BP_Core_Members_Template' => 'members', - 'BP_Core_Members_Widget' => 'members', - 'BP_Core_Recently_Active_Widget' => 'members', - 'BP_Core_Whos_Online_Widget' => 'members', - 'BP_Registration_Theme_Compat' => 'members', - 'BP_Signup' => 'members', - ); - - $component = null; - - // First check to see if the class is one without a properly namespaced name. - if ( isset( $irregular_map[ $class ] ) ) { - $component = $irregular_map[ $class ]; - - // Next chunk is usually the component name. - } elseif ( in_array( $class_parts[1], $components, true ) ) { - $component = $class_parts[1]; - } - - if ( ! $component ) { - return; - } - - // Sanitize class name. - $class = strtolower( str_replace( '_', '-', $class ) ); - - $path = dirname( __FILE__ ) . "/bp-{$component}/classes/class-{$class}.php"; - - // Sanity check. - if ( ! file_exists( $path ) ) { - return; - } - - /* - * Sanity check 2 - Check if component is active before loading class. - * Skip if PHPUnit is running, or BuddyPress is installing for the first time. - */ - if ( - ! in_array( $component, array( 'core', 'members' ), true ) && - ! bp_is_active( $component ) && - ! function_exists( 'tests_add_filter' ) - ) { - return; - } - - require $path; - } - - /** - * Set up the default hooks and actions. - * - * @since 1.6.0 - * - */ - private function setup_actions() { - - // Add actions to plugin activation and deactivation hooks - add_action( 'activate_' . $this->basename, 'bp_activation' ); - add_action( 'deactivate_' . $this->basename, 'bp_deactivation' ); - - // If BuddyPress is being deactivated, do not add any actions - if ( bp_is_deactivation( $this->basename ) ) { - return; - } - - // Array of BuddyPress core actions - $actions = array( - 'setup_theme', // Setup the default theme compat - 'setup_current_user', // Setup currently logged in user - 'register_post_types', // Register post types - 'register_post_statuses', // Register post statuses - 'register_taxonomies', // Register taxonomies - 'register_views', // Register the views - 'register_theme_directory', // Register the theme directory - 'register_theme_packages', // Register bundled theme packages (bp-themes) - 'load_textdomain', // Load textdomain - 'add_rewrite_tags', // Add rewrite tags - 'generate_rewrite_rules' // Generate rewrite rules - ); - - // Add the actions - foreach( $actions as $class_action ) { - if ( method_exists( $this, $class_action ) ) { - add_action( 'bp_' . $class_action, array( $this, $class_action ), 5 ); - } - } - - /** - * Fires after the setup of all BuddyPress actions. - * - * Includes bbp-core-hooks.php. - * - * @since 1.7.0 - * - * @param BuddyPress $this. Current BuddyPress instance. Passed by reference. - */ - do_action_ref_array( 'bp_after_setup_actions', array( &$this ) ); - } - - /** - * Private method to align the active and database versions. - * - * @since 1.7.0 - */ - private function versions() { - - // Get the possible DB versions (boy is this gross) - $versions = array(); - $versions['1.6-single'] = get_blog_option( $this->root_blog_id, '_bp_db_version' ); - - // 1.6-single exists, so trust it - if ( !empty( $versions['1.6-single'] ) ) { - $this->db_version_raw = (int) $versions['1.6-single']; - - // If no 1.6-single exists, use the max of the others - } else { - $versions['1.2'] = get_site_option( 'bp-core-db-version' ); - $versions['1.5-multi'] = get_site_option( 'bp-db-version' ); - $versions['1.6-multi'] = get_site_option( '_bp_db_version' ); - $versions['1.5-single'] = get_blog_option( $this->root_blog_id, 'bp-db-version' ); - - // Remove empty array items - $versions = array_filter( $versions ); - $this->db_version_raw = (int) ( !empty( $versions ) ) ? (int) max( $versions ) : 0; - } - } - - /** Public Methods ********************************************************/ - - /** - * Set up BuddyPress's legacy theme directory. - * - * Starting with version 1.2, and ending with version 1.8, BuddyPress - * registered a custom theme directory - bp-themes - which contained - * the bp-default theme. Since BuddyPress 1.9, bp-themes is no longer - * registered (and bp-default no longer offered) on new installations. - * Sites using bp-default (or a child theme of bp-default) will - * continue to have bp-themes registered as before. - * - * @since 1.5.0 - * - * @todo Move bp-default to wordpress.org/extend/themes and remove this. - */ - public function register_theme_directory() { - if ( ! bp_do_register_theme_directory() ) { - return; - } - - register_theme_directory( $this->old_themes_dir ); - } - - /** - * Register bundled theme packages. - * - * Note that since we currently have complete control over bp-themes and - * the bp-legacy folders, it's fine to hardcode these here. If at a - * later date we need to automate this, an API will need to be built. - * - * @since 1.7.0 - */ - public function register_theme_packages() { - - // Register the default theme compatibility package - bp_register_theme_package( array( - 'id' => 'legacy', - 'name' => __( 'BuddyPress Default', 'buddypress' ), - 'version' => bp_get_version(), - 'dir' => trailingslashit( $this->themes_dir . '/bp-legacy' ), - 'url' => trailingslashit( $this->themes_url . '/bp-legacy' ) - ) ); - - // Register the basic theme stack. This is really dope. - bp_register_template_stack( 'get_stylesheet_directory', 10 ); - bp_register_template_stack( 'get_template_directory', 12 ); - bp_register_template_stack( 'bp_get_theme_compat_dir', 14 ); - } - - /** - * Set up the default BuddyPress theme compatibility location. - * - * @since 1.7.0 - */ - public function setup_theme() { - - // Bail if something already has this under control - if ( ! empty( $this->theme_compat->theme ) ) { - return; - } +// Exit if accessed directly +defined( 'ABSPATH' ) || exit; - // Setup the theme package to use for compatibility - bp_setup_theme_compat( bp_get_theme_package_id() ); - } -} +// Required PHP version. +define( 'BP_REQUIRED_PHP_VERSION', '5.3.0' ); /** * The main function responsible for returning the one true BuddyPress Instance to functions everywhere. @@ -794,18 +47,46 @@ function buddypress() { } /** - * Hook BuddyPress early onto the 'plugins_loaded' action. + * Adds an admin notice to installations that don't meet BP's minimum PHP requirement. * - * This gives all other plugins the chance to load before BuddyPress, to get - * their actions, filters, and overrides setup without BuddyPress being in the - * way. + * @since 2.8.0 */ -if ( defined( 'BUDDYPRESS_LATE_LOAD' ) ) { - add_action( 'plugins_loaded', 'buddypress', (int) BUDDYPRESS_LATE_LOAD ); +function bp_php_requirements_notice() { + if ( ! current_user_can( 'update_core' ) ) { + return; + } -// "And now here's something we hope you'll really like!" -} else { - $GLOBALS['bp'] = buddypress(); + ?> + + <div id="message" class="error notice"> + <p><strong><?php esc_html_e( 'Your site does not support BuddyPress.', 'buddypress' ); ?></strong></p> + <?php /* translators: 1: current PHP version, 2: required PHP version */ ?> + <p><?php printf( esc_html__( 'Your site is currently running PHP version %1$s, while BuddyPress requires version %2$s or greater.', 'buddypress' ), esc_html( phpversion() ), esc_html( BP_REQUIRED_PHP_VERSION ) ); ?> <?php printf( __( 'See <a href="%s">the Codex guide</a> for more information.', 'buddypress' ), 'https://codex.buddypress.org/getting-started/buddypress-2-8-will-require-php-5-3/' ); ?></p> + <p><?php esc_html_e( 'Please update your server or deactivate BuddyPress.', 'buddypress' ); ?></p> + </div> + + <?php } -endif; +if ( version_compare( phpversion(), BP_REQUIRED_PHP_VERSION, '<' ) ) { + add_action( 'admin_notices', 'bp_php_requirements_notice' ); + add_action( 'network_admin_notices', 'bp_php_requirements_notice' ); + return; +} else { + require dirname( __FILE__ ) . '/class-buddypress.php'; + + /* + * Hook BuddyPress early onto the 'plugins_loaded' action. + * + * This gives all other plugins the chance to load before BuddyPress, + * to get their actions, filters, and overrides setup without + * BuddyPress being in the way. + */ + if ( defined( 'BUDDYPRESS_LATE_LOAD' ) ) { + add_action( 'plugins_loaded', 'buddypress', (int) BUDDYPRESS_LATE_LOAD ); + + // "And now here's something we hope you'll really like!" + } else { + $GLOBALS['bp'] = buddypress(); + } +} diff --git a/wp-content/plugins/buddypress/bp-members/admin/css/admin-rtl.css b/wp-content/plugins/buddypress/bp-members/admin/css/admin-rtl.css index 96da85fd4..44ab8a2a8 100644 --- a/wp-content/plugins/buddypress/bp-members/admin/css/admin-rtl.css +++ b/wp-content/plugins/buddypress/bp-members/admin/css/admin-rtl.css @@ -81,8 +81,6 @@ div#community-profile-page div#bp_xprofile_user_admin_avatar div.avatar img { div#community-profile-page div#bp_xprofile_user_admin_avatar a { display:block; margin:1em 0; - text-decoration:none; - color:#888; } div#community-profile-page p.not-activated { diff --git a/wp-content/plugins/buddypress/bp-members/admin/css/admin-rtl.min.css b/wp-content/plugins/buddypress/bp-members/admin/css/admin-rtl.min.css index c2b4feaee..c0cf0f83a 100644 --- a/wp-content/plugins/buddypress/bp-members/admin/css/admin-rtl.min.css +++ b/wp-content/plugins/buddypress/bp-members/admin/css/admin-rtl.min.css @@ -1 +1 @@ -div#profile-page.wrap form#your-profile{position:relative;padding-top:50px}div#profile-page.wrap form#your-profile h3:first-of-type{margin-top:5em}div#profile-page.wrap form#your-profile #profile-nav{position:absolute;top:0;width:97%}div#community-profile-page #profile-nav{margin-bottom:1em}#bp_members_admin_user_stats ul{margin-bottom:0}div#community-profile-page a.bp-xprofile-avatar-user-admin:before,div#community-profile-page a.bp-xprofile-avatar-user-edit:before,div#community-profile-page li.bp-blogs-profile-stats:before,div#community-profile-page li.bp-friends-profile-stats:before,div#community-profile-page li.bp-groups-profile-stats:before,div#community-profile-page li.bp-members-profile-stats:before{font:400 20px/1 dashicons;speak:none;display:inline-block;padding:0 0 0 2px;top:0;right:-1px;position:relative;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important;color:#888}div#community-profile-page li.bp-members-profile-stats:before{content:"\f130"}div#community-profile-page li.bp-friends-profile-stats:before{content:"\f454"}div#community-profile-page li.bp-groups-profile-stats:before{content:"\f456"}div#community-profile-page li.bp-blogs-profile-stats:before{content:"\f120"}div#community-profile-page a.bp-xprofile-avatar-user-admin:before{content:"\f182"}div#community-profile-page a.bp-xprofile-avatar-user-edit:before{content:"\f107"}div#community-profile-page div#bp_xprofile_user_admin_avatar div.avatar{width:150px;margin:0 auto}div#community-profile-page div#bp_xprofile_user_admin_avatar div.avatar img{max-width:100%;height:auto}div#community-profile-page div#bp_xprofile_user_admin_avatar a{display:block;margin:1em 0;text-decoration:none;color:#888}div#community-profile-page p.not-activated{margin:1em 1em 0;color:red}#community-profile-page #submitdiv #publishing-action{float:none;width:100%}.bp-view-profile{float:right}.alt{background:0 0}.bp-profile-field{border-bottom:dotted 1px #ccc;font-size:14px;margin:15px 0;padding:10px}.bp-profile-field:last-child{border-bottom:0}.bp-profile-field p{font-size:14px}.bp-profile-field>label{display:inline-block;font-weight:600;text-align:right;vertical-align:middle;width:200px}.clear-value,.field_type_checkbox .checkbox .input-options label,.field_type_radio .radio .input-options label{display:block}.field_type_checkbox .checkbox>label,.field_type_multiselectbox>label,.field_type_radio .radio>label,.field_type_textarea>label{vertical-align:top}.bp-profile-field .description{margin:10px 200px 12px 0;text-align:right}.clear-value{font-size:12px;margin-right:200px}.field_type_checkbox .checkbox>label+label{display:block;margin-right:200px;width:auto}.field_type_checkbox .checkbox .input-options,.field_type_datebox .datebox .input-options,.field_type_radio .radio .input-options{display:inline-block}.field-visibility-settings-notoggle,.field-visibility-settings-toggle{margin:10px 200px 10px 0;text-align:right}.field-visibility-settings{display:none;margin-right:200px}.field-visibility-settings .button{margin-bottom:15px}#normal-sortables .field-visibility-settings legend{font-size:14px;font-weight:600}#your-profile .bp-profile-field .checkbox legend,#your-profile .bp-profile-field .datebox legend,#your-profile .bp-profile-field .radio legend{float:right;font-size:14px;font-weight:600;line-height:1.4em;text-align:right;vertical-align:middle;width:192px}#your-profile .bp-profile-field .checkbox legend,#your-profile .bp-profile-field .radio legend{margin-bottom:20px}.bp-profile-field .radio .clear-value{margin-top:10px}@media screen and (max-width:782px){#your-profile .bp-profile-field .checkbox legend,#your-profile .bp-profile-field .datebox legend,#your-profile .bp-profile-field .radio legend,.bp-profile-field label{float:none;clear:right;display:block;margin-bottom:12px}.bp-profile-field .checkbox label,.bp-profile-field .radio label{line-height:1.4em;margin-bottom:12px;vertical-align:middle}.bp-profile-field .checkbox input[type=checkbox],.bp-profile-field .radio input[type=radio]{vertical-align:top}.bp-profile-field .clear-value,.bp-profile-field .description,.bp-profile-field .wp-editor-wrap,.bp-profile-field input[type=number],.bp-profile-field input[type=text],.bp-profile-field input[type=url],.bp-profile-field input[type=checkbox],.bp-profile-field input[type=radio],.bp-profile-field input[type=email],.bp-profile-field select:nth-of-type(1),.field-visibility-settings-notoggle,.field-visibility-settings-toggle{clear:right;margin-right:50px}.field-visibility-settings{margin-right:100px}#your-profile .field_multiselectbox select{height:auto}}@media screen and (max-width:480px){.bp-profile-field .clear-value,.bp-profile-field .description,.bp-profile-field .wp-editor-wrap,.bp-profile-field input[type=number],.bp-profile-field input[type=text],.bp-profile-field input[type=url],.bp-profile-field input[type=checkbox],.bp-profile-field input[type=radio],.bp-profile-field input[type=email],.bp-profile-field select:nth-of-type(1),.field-visibility-settings-notoggle,.field-visibility-settings-toggle{margin-right:0}.field-visibility-settings{margin-right:50px}} \ No newline at end of file +div#profile-page.wrap form#your-profile{position:relative;padding-top:50px}div#profile-page.wrap form#your-profile h3:first-of-type{margin-top:5em}div#profile-page.wrap form#your-profile #profile-nav{position:absolute;top:0;width:97%}div#community-profile-page #profile-nav{margin-bottom:1em}#bp_members_admin_user_stats ul{margin-bottom:0}div#community-profile-page a.bp-xprofile-avatar-user-admin:before,div#community-profile-page a.bp-xprofile-avatar-user-edit:before,div#community-profile-page li.bp-blogs-profile-stats:before,div#community-profile-page li.bp-friends-profile-stats:before,div#community-profile-page li.bp-groups-profile-stats:before,div#community-profile-page li.bp-members-profile-stats:before{font:400 20px/1 dashicons;speak:none;display:inline-block;padding:0 0 0 2px;top:0;right:-1px;position:relative;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important;color:#888}div#community-profile-page li.bp-members-profile-stats:before{content:"\f130"}div#community-profile-page li.bp-friends-profile-stats:before{content:"\f454"}div#community-profile-page li.bp-groups-profile-stats:before{content:"\f456"}div#community-profile-page li.bp-blogs-profile-stats:before{content:"\f120"}div#community-profile-page a.bp-xprofile-avatar-user-admin:before{content:"\f182"}div#community-profile-page a.bp-xprofile-avatar-user-edit:before{content:"\f107"}div#community-profile-page div#bp_xprofile_user_admin_avatar div.avatar{width:150px;margin:0 auto}div#community-profile-page div#bp_xprofile_user_admin_avatar div.avatar img{max-width:100%;height:auto}div#community-profile-page div#bp_xprofile_user_admin_avatar a{display:block;margin:1em 0}div#community-profile-page p.not-activated{margin:1em 1em 0;color:red}#community-profile-page #submitdiv #publishing-action{float:none;width:100%}.bp-view-profile{float:right}.alt{background:0 0}.bp-profile-field{border-bottom:dotted 1px #ccc;font-size:14px;margin:15px 0;padding:10px}.bp-profile-field:last-child{border-bottom:0}.bp-profile-field p{font-size:14px}.bp-profile-field>label{display:inline-block;font-weight:600;text-align:right;vertical-align:middle;width:200px}.clear-value,.field_type_checkbox .checkbox .input-options label,.field_type_radio .radio .input-options label{display:block}.field_type_checkbox .checkbox>label,.field_type_multiselectbox>label,.field_type_radio .radio>label,.field_type_textarea>label{vertical-align:top}.bp-profile-field .description{margin:10px 200px 12px 0;text-align:right}.clear-value{font-size:12px;margin-right:200px}.field_type_checkbox .checkbox>label+label{display:block;margin-right:200px;width:auto}.field_type_checkbox .checkbox .input-options,.field_type_datebox .datebox .input-options,.field_type_radio .radio .input-options{display:inline-block}.field-visibility-settings-notoggle,.field-visibility-settings-toggle{margin:10px 200px 10px 0;text-align:right}.field-visibility-settings{display:none;margin-right:200px}.field-visibility-settings .button{margin-bottom:15px}#normal-sortables .field-visibility-settings legend{font-size:14px;font-weight:600}#your-profile .bp-profile-field .checkbox legend,#your-profile .bp-profile-field .datebox legend,#your-profile .bp-profile-field .radio legend{float:right;font-size:14px;font-weight:600;line-height:1.4em;text-align:right;vertical-align:middle;width:192px}#your-profile .bp-profile-field .checkbox legend,#your-profile .bp-profile-field .radio legend{margin-bottom:20px}.bp-profile-field .radio .clear-value{margin-top:10px}@media screen and (max-width:782px){#your-profile .bp-profile-field .checkbox legend,#your-profile .bp-profile-field .datebox legend,#your-profile .bp-profile-field .radio legend,.bp-profile-field label{float:none;clear:right;display:block;margin-bottom:12px}.bp-profile-field .checkbox label,.bp-profile-field .radio label{line-height:1.4em;margin-bottom:12px;vertical-align:middle}.bp-profile-field .checkbox input[type=checkbox],.bp-profile-field .radio input[type=radio]{vertical-align:top}.bp-profile-field .clear-value,.bp-profile-field .description,.bp-profile-field .wp-editor-wrap,.bp-profile-field input[type=number],.bp-profile-field input[type=text],.bp-profile-field input[type=url],.bp-profile-field input[type=checkbox],.bp-profile-field input[type=radio],.bp-profile-field input[type=email],.bp-profile-field select:nth-of-type(1),.field-visibility-settings-notoggle,.field-visibility-settings-toggle{clear:right;margin-right:50px}.field-visibility-settings{margin-right:100px}#your-profile .field_multiselectbox select{height:auto}}@media screen and (max-width:480px){.bp-profile-field .clear-value,.bp-profile-field .description,.bp-profile-field .wp-editor-wrap,.bp-profile-field input[type=number],.bp-profile-field input[type=text],.bp-profile-field input[type=url],.bp-profile-field input[type=checkbox],.bp-profile-field input[type=radio],.bp-profile-field input[type=email],.bp-profile-field select:nth-of-type(1),.field-visibility-settings-notoggle,.field-visibility-settings-toggle{margin-right:0}.field-visibility-settings{margin-right:50px}} \ No newline at end of file diff --git a/wp-content/plugins/buddypress/bp-members/admin/css/admin.css b/wp-content/plugins/buddypress/bp-members/admin/css/admin.css index bda35a08e..32c4bec92 100644 --- a/wp-content/plugins/buddypress/bp-members/admin/css/admin.css +++ b/wp-content/plugins/buddypress/bp-members/admin/css/admin.css @@ -81,8 +81,6 @@ div#community-profile-page div#bp_xprofile_user_admin_avatar div.avatar img { div#community-profile-page div#bp_xprofile_user_admin_avatar a { display:block; margin:1em 0; - text-decoration:none; - color:#888; } div#community-profile-page p.not-activated { diff --git a/wp-content/plugins/buddypress/bp-members/admin/css/admin.min.css b/wp-content/plugins/buddypress/bp-members/admin/css/admin.min.css index 95faccfd3..4c723f879 100644 --- a/wp-content/plugins/buddypress/bp-members/admin/css/admin.min.css +++ b/wp-content/plugins/buddypress/bp-members/admin/css/admin.min.css @@ -1 +1 @@ -div#profile-page.wrap form#your-profile{position:relative;padding-top:50px}div#profile-page.wrap form#your-profile h3:first-of-type{margin-top:5em}div#profile-page.wrap form#your-profile #profile-nav{position:absolute;top:0;width:97%}div#community-profile-page #profile-nav{margin-bottom:1em}#bp_members_admin_user_stats ul{margin-bottom:0}div#community-profile-page a.bp-xprofile-avatar-user-admin:before,div#community-profile-page a.bp-xprofile-avatar-user-edit:before,div#community-profile-page li.bp-blogs-profile-stats:before,div#community-profile-page li.bp-friends-profile-stats:before,div#community-profile-page li.bp-groups-profile-stats:before,div#community-profile-page li.bp-members-profile-stats:before{font:400 20px/1 dashicons;speak:none;display:inline-block;padding:0 2px 0 0;top:0;left:-1px;position:relative;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important;color:#888}div#community-profile-page li.bp-members-profile-stats:before{content:"\f130"}div#community-profile-page li.bp-friends-profile-stats:before{content:"\f454"}div#community-profile-page li.bp-groups-profile-stats:before{content:"\f456"}div#community-profile-page li.bp-blogs-profile-stats:before{content:"\f120"}div#community-profile-page a.bp-xprofile-avatar-user-admin:before{content:"\f182"}div#community-profile-page a.bp-xprofile-avatar-user-edit:before{content:"\f107"}div#community-profile-page div#bp_xprofile_user_admin_avatar div.avatar{width:150px;margin:0 auto}div#community-profile-page div#bp_xprofile_user_admin_avatar div.avatar img{max-width:100%;height:auto}div#community-profile-page div#bp_xprofile_user_admin_avatar a{display:block;margin:1em 0;text-decoration:none;color:#888}div#community-profile-page p.not-activated{margin:1em 1em 0;color:red}#community-profile-page #submitdiv #publishing-action{float:none;width:100%}.bp-view-profile{float:left}.alt{background:0 0}.bp-profile-field{border-bottom:dotted 1px #ccc;font-size:14px;margin:15px 0;padding:10px}.bp-profile-field:last-child{border-bottom:0}.bp-profile-field p{font-size:14px}.bp-profile-field>label{display:inline-block;font-weight:600;text-align:left;vertical-align:middle;width:200px}.clear-value,.field_type_checkbox .checkbox .input-options label,.field_type_radio .radio .input-options label{display:block}.field_type_checkbox .checkbox>label,.field_type_multiselectbox>label,.field_type_radio .radio>label,.field_type_textarea>label{vertical-align:top}.bp-profile-field .description{margin:10px 0 12px 200px;text-align:left}.clear-value{font-size:12px;margin-left:200px}.field_type_checkbox .checkbox>label+label{display:block;margin-left:200px;width:auto}.field_type_checkbox .checkbox .input-options,.field_type_datebox .datebox .input-options,.field_type_radio .radio .input-options{display:inline-block}.field-visibility-settings-notoggle,.field-visibility-settings-toggle{margin:10px 0 10px 200px;text-align:left}.field-visibility-settings{display:none;margin-left:200px}.field-visibility-settings .button{margin-bottom:15px}#normal-sortables .field-visibility-settings legend{font-size:14px;font-weight:600}#your-profile .bp-profile-field .checkbox legend,#your-profile .bp-profile-field .datebox legend,#your-profile .bp-profile-field .radio legend{float:left;font-size:14px;font-weight:600;line-height:1.4em;text-align:left;vertical-align:middle;width:192px}#your-profile .bp-profile-field .checkbox legend,#your-profile .bp-profile-field .radio legend{margin-bottom:20px}.bp-profile-field .radio .clear-value{margin-top:10px}@media screen and (max-width:782px){#your-profile .bp-profile-field .checkbox legend,#your-profile .bp-profile-field .datebox legend,#your-profile .bp-profile-field .radio legend,.bp-profile-field label{float:none;clear:left;display:block;margin-bottom:12px}.bp-profile-field .checkbox label,.bp-profile-field .radio label{line-height:1.4em;margin-bottom:12px;vertical-align:middle}.bp-profile-field .checkbox input[type=checkbox],.bp-profile-field .radio input[type=radio]{vertical-align:top}.bp-profile-field .clear-value,.bp-profile-field .description,.bp-profile-field .wp-editor-wrap,.bp-profile-field input[type=number],.bp-profile-field input[type=text],.bp-profile-field input[type=url],.bp-profile-field input[type=checkbox],.bp-profile-field input[type=radio],.bp-profile-field input[type=email],.bp-profile-field select:nth-of-type(1),.field-visibility-settings-notoggle,.field-visibility-settings-toggle{clear:left;margin-left:50px}.field-visibility-settings{margin-left:100px}#your-profile .field_multiselectbox select{height:auto}}@media screen and (max-width:480px){.bp-profile-field .clear-value,.bp-profile-field .description,.bp-profile-field .wp-editor-wrap,.bp-profile-field input[type=number],.bp-profile-field input[type=text],.bp-profile-field input[type=url],.bp-profile-field input[type=checkbox],.bp-profile-field input[type=radio],.bp-profile-field input[type=email],.bp-profile-field select:nth-of-type(1),.field-visibility-settings-notoggle,.field-visibility-settings-toggle{margin-left:0}.field-visibility-settings{margin-left:50px}} \ No newline at end of file +div#profile-page.wrap form#your-profile{position:relative;padding-top:50px}div#profile-page.wrap form#your-profile h3:first-of-type{margin-top:5em}div#profile-page.wrap form#your-profile #profile-nav{position:absolute;top:0;width:97%}div#community-profile-page #profile-nav{margin-bottom:1em}#bp_members_admin_user_stats ul{margin-bottom:0}div#community-profile-page a.bp-xprofile-avatar-user-admin:before,div#community-profile-page a.bp-xprofile-avatar-user-edit:before,div#community-profile-page li.bp-blogs-profile-stats:before,div#community-profile-page li.bp-friends-profile-stats:before,div#community-profile-page li.bp-groups-profile-stats:before,div#community-profile-page li.bp-members-profile-stats:before{font:400 20px/1 dashicons;speak:none;display:inline-block;padding:0 2px 0 0;top:0;left:-1px;position:relative;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important;color:#888}div#community-profile-page li.bp-members-profile-stats:before{content:"\f130"}div#community-profile-page li.bp-friends-profile-stats:before{content:"\f454"}div#community-profile-page li.bp-groups-profile-stats:before{content:"\f456"}div#community-profile-page li.bp-blogs-profile-stats:before{content:"\f120"}div#community-profile-page a.bp-xprofile-avatar-user-admin:before{content:"\f182"}div#community-profile-page a.bp-xprofile-avatar-user-edit:before{content:"\f107"}div#community-profile-page div#bp_xprofile_user_admin_avatar div.avatar{width:150px;margin:0 auto}div#community-profile-page div#bp_xprofile_user_admin_avatar div.avatar img{max-width:100%;height:auto}div#community-profile-page div#bp_xprofile_user_admin_avatar a{display:block;margin:1em 0}div#community-profile-page p.not-activated{margin:1em 1em 0;color:red}#community-profile-page #submitdiv #publishing-action{float:none;width:100%}.bp-view-profile{float:left}.alt{background:0 0}.bp-profile-field{border-bottom:dotted 1px #ccc;font-size:14px;margin:15px 0;padding:10px}.bp-profile-field:last-child{border-bottom:0}.bp-profile-field p{font-size:14px}.bp-profile-field>label{display:inline-block;font-weight:600;text-align:left;vertical-align:middle;width:200px}.clear-value,.field_type_checkbox .checkbox .input-options label,.field_type_radio .radio .input-options label{display:block}.field_type_checkbox .checkbox>label,.field_type_multiselectbox>label,.field_type_radio .radio>label,.field_type_textarea>label{vertical-align:top}.bp-profile-field .description{margin:10px 0 12px 200px;text-align:left}.clear-value{font-size:12px;margin-left:200px}.field_type_checkbox .checkbox>label+label{display:block;margin-left:200px;width:auto}.field_type_checkbox .checkbox .input-options,.field_type_datebox .datebox .input-options,.field_type_radio .radio .input-options{display:inline-block}.field-visibility-settings-notoggle,.field-visibility-settings-toggle{margin:10px 0 10px 200px;text-align:left}.field-visibility-settings{display:none;margin-left:200px}.field-visibility-settings .button{margin-bottom:15px}#normal-sortables .field-visibility-settings legend{font-size:14px;font-weight:600}#your-profile .bp-profile-field .checkbox legend,#your-profile .bp-profile-field .datebox legend,#your-profile .bp-profile-field .radio legend{float:left;font-size:14px;font-weight:600;line-height:1.4em;text-align:left;vertical-align:middle;width:192px}#your-profile .bp-profile-field .checkbox legend,#your-profile .bp-profile-field .radio legend{margin-bottom:20px}.bp-profile-field .radio .clear-value{margin-top:10px}@media screen and (max-width:782px){#your-profile .bp-profile-field .checkbox legend,#your-profile .bp-profile-field .datebox legend,#your-profile .bp-profile-field .radio legend,.bp-profile-field label{float:none;clear:left;display:block;margin-bottom:12px}.bp-profile-field .checkbox label,.bp-profile-field .radio label{line-height:1.4em;margin-bottom:12px;vertical-align:middle}.bp-profile-field .checkbox input[type=checkbox],.bp-profile-field .radio input[type=radio]{vertical-align:top}.bp-profile-field .clear-value,.bp-profile-field .description,.bp-profile-field .wp-editor-wrap,.bp-profile-field input[type=number],.bp-profile-field input[type=text],.bp-profile-field input[type=url],.bp-profile-field input[type=checkbox],.bp-profile-field input[type=radio],.bp-profile-field input[type=email],.bp-profile-field select:nth-of-type(1),.field-visibility-settings-notoggle,.field-visibility-settings-toggle{clear:left;margin-left:50px}.field-visibility-settings{margin-left:100px}#your-profile .field_multiselectbox select{height:auto}}@media screen and (max-width:480px){.bp-profile-field .clear-value,.bp-profile-field .description,.bp-profile-field .wp-editor-wrap,.bp-profile-field input[type=number],.bp-profile-field input[type=text],.bp-profile-field input[type=url],.bp-profile-field input[type=checkbox],.bp-profile-field input[type=radio],.bp-profile-field input[type=email],.bp-profile-field select:nth-of-type(1),.field-visibility-settings-notoggle,.field-visibility-settings-toggle{margin-left:0}.field-visibility-settings{margin-left:50px}} \ No newline at end of file diff --git a/wp-content/plugins/buddypress/bp-members/bp-members-admin.php b/wp-content/plugins/buddypress/bp-members/bp-members-admin.php index 962aec762..1d3b875f0 100644 --- a/wp-content/plugins/buddypress/bp-members/bp-members-admin.php +++ b/wp-content/plugins/buddypress/bp-members/bp-members-admin.php @@ -10,9 +10,5 @@ // Exit if accessed directly. defined( 'ABSPATH' ) || exit; -if ( ! buddypress()->do_autoload ) { - require dirname( __FILE__ ) . '/classes/class-bp-members-admin.php'; -} - // Load the BP Members admin. add_action( 'bp_init', array( 'BP_Members_Admin', 'register_members_admin' ) ); diff --git a/wp-content/plugins/buddypress/bp-members/bp-members-functions.php b/wp-content/plugins/buddypress/bp-members/bp-members-functions.php index ea268e5d1..9d19915e7 100644 --- a/wp-content/plugins/buddypress/bp-members/bp-members-functions.php +++ b/wp-content/plugins/buddypress/bp-members/bp-members-functions.php @@ -522,7 +522,7 @@ function bp_core_get_userlink( $user_id, $no_anchor = false, $just_link = false * @param string $value Link text based on passed parameters. * @param int $user_id ID of the user to check. */ - return apply_filters( 'bp_core_get_userlink', '<a href="' . $url . '" title="' . $display_name . '">' . $display_name . '</a>', $user_id ); + return apply_filters( 'bp_core_get_userlink', '<a href="' . $url . '">' . $display_name . '</a>', $user_id ); } /** @@ -1162,8 +1162,8 @@ function bp_update_user_last_activity( $user_id = 0, $time = '' ) { // As of BuddyPress 2.0, last_activity is no longer stored in usermeta. // However, we mirror it there for backward compatibility. Do not use! // Remove our warning and re-add. - remove_filter( 'update_user_metadata', '_bp_update_user_meta_last_activity_warning', 10, 4 ); - remove_filter( 'get_user_metadata', '_bp_get_user_meta_last_activity_warning', 10, 3 ); + remove_filter( 'update_user_metadata', '_bp_update_user_meta_last_activity_warning', 10 ); + remove_filter( 'get_user_metadata', '_bp_get_user_meta_last_activity_warning', 10 ); bp_update_user_meta( $user_id, 'last_activity', $time ); add_filter( 'update_user_metadata', '_bp_update_user_meta_last_activity_warning', 10, 4 ); add_filter( 'get_user_metadata', '_bp_get_user_meta_last_activity_warning', 10, 3 ); @@ -1474,19 +1474,24 @@ add_action( 'bp_make_spam_user', 'bp_core_remove_data' ); * @return bool True if editing is allowed, otherwise false. */ function bp_core_can_edit_settings() { - if ( bp_is_my_profile() ) { - return true; - } - - if ( is_super_admin( bp_displayed_user_id() ) && ! is_super_admin() ) { - return false; - } + $status = false; - if ( bp_current_user_can( 'bp_moderate' ) || current_user_can( 'edit_users' ) ) { - return true; + if ( bp_is_my_profile() ) { + $status = true; + } elseif ( is_super_admin( bp_displayed_user_id() ) && ! is_super_admin() ) { + $status = false; + } elseif ( bp_current_user_can( 'bp_moderate' ) || current_user_can( 'edit_users' ) ) { + $status = true; } - return false; + /** + * Filters the status of whether the logged-in user can edit settings for the displayed user or not. + * + * @since 2.8.0 + * + * @param bool True if editing is allowed, otherwise false. + */ + return apply_filters( 'bp_core_can_edit_settings', $status ); } /** Sign-up *******************************************************************/ diff --git a/wp-content/plugins/buddypress/bp-members/bp-members-loader.php b/wp-content/plugins/buddypress/bp-members/bp-members-loader.php index 96edec6b1..86fffbdd3 100644 --- a/wp-content/plugins/buddypress/bp-members/bp-members-loader.php +++ b/wp-content/plugins/buddypress/bp-members/bp-members-loader.php @@ -10,10 +10,6 @@ // Exit if accessed directly. defined( 'ABSPATH' ) || exit; -if ( ! buddypress()->do_autoload ) { - require dirname( __FILE__ ) . '/classes/class-bp-members-component.php'; -} - /** * Set up the bp-members component. * diff --git a/wp-content/plugins/buddypress/bp-members/bp-members-screens.php b/wp-content/plugins/buddypress/bp-members/bp-members-screens.php index d90c24058..f7bc436a5 100644 --- a/wp-content/plugins/buddypress/bp-members/bp-members-screens.php +++ b/wp-content/plugins/buddypress/bp-members/bp-members-screens.php @@ -12,11 +12,6 @@ // Exit if accessed directly. defined( 'ABSPATH' ) || exit; -if ( ! buddypress()->do_autoload ) { - require dirname( __FILE__ ) . '/classes/class-bp-members-theme-compat.php'; - require dirname( __FILE__ ) . '/classes/class-bp-registration-theme-compat.php'; -} - /** * Handle the display of the profile page by loading the correct template file. * @@ -149,10 +144,7 @@ function bp_core_screen_signup() { // Loop through the posted fields formatting any datebox values then validate the field. foreach ( (array) $profile_field_ids as $field_id ) { - if ( !isset( $_POST['field_' . $field_id] ) ) { - if ( !empty( $_POST['field_' . $field_id . '_day'] ) && !empty( $_POST['field_' . $field_id . '_month'] ) && !empty( $_POST['field_' . $field_id . '_year'] ) ) - $_POST['field_' . $field_id] = date( 'Y-m-d H:i:s', strtotime( $_POST['field_' . $field_id . '_day'] . $_POST['field_' . $field_id . '_month'] . $_POST['field_' . $field_id . '_year'] ) ); - } + bp_xprofile_maybe_format_datebox_post_data( $field_id ); // Create errors for required fields without values. if ( xprofile_check_is_required_field( $field_id ) && empty( $_POST[ 'field_' . $field_id ] ) && ! bp_current_user_can( 'bp_moderate' ) ) @@ -218,18 +210,12 @@ function bp_core_screen_signup() { // Let's compact any profile field info into usermeta. $profile_field_ids = explode( ',', $_POST['signup_profile_field_ids'] ); - // Loop through the posted fields formatting any datebox values then add to usermeta - @todo This logic should be shared with the same in xprofile_screen_edit_profile(). + /* + * Loop through the posted fields, formatting any + * datebox values, then add to usermeta. + */ foreach ( (array) $profile_field_ids as $field_id ) { - if ( ! isset( $_POST['field_' . $field_id] ) ) { - - if ( ! empty( $_POST['field_' . $field_id . '_day'] ) && ! empty( $_POST['field_' . $field_id . '_month'] ) && ! empty( $_POST['field_' . $field_id . '_year'] ) ) { - // Concatenate the values. - $date_value = $_POST['field_' . $field_id . '_day'] . ' ' . $_POST['field_' . $field_id . '_month'] . ' ' . $_POST['field_' . $field_id . '_year']; - - // Turn the concatenated value into a timestamp. - $_POST['field_' . $field_id] = date( 'Y-m-d H:i:s', strtotime( $date_value ) ); - } - } + bp_xprofile_maybe_format_datebox_post_data( $field_id ); if ( !empty( $_POST['field_' . $field_id] ) ) $usermeta['field_' . $field_id] = $_POST['field_' . $field_id]; diff --git a/wp-content/plugins/buddypress/bp-members/bp-members-template.php b/wp-content/plugins/buddypress/bp-members/bp-members-template.php index 140f5d810..332b36f4a 100644 --- a/wp-content/plugins/buddypress/bp-members/bp-members-template.php +++ b/wp-content/plugins/buddypress/bp-members/bp-members-template.php @@ -12,10 +12,6 @@ // Exit if accessed directly. defined( 'ABSPATH' ) || exit; -if ( ! buddypress()->do_autoload ) { - require dirname( __FILE__ ) . '/classes/class-bp-core-members-template.php'; -} - /** * Output the profile component slug. * @@ -1001,7 +997,7 @@ function bp_member_last_active( $args = array() ) { * * @since 1.2.0 * - * @param array|string $args Array of arguments for latest update. + * @param array|string $args {@see bp_get_member_latest_update()}. */ function bp_member_latest_update( $args = '' ) { echo bp_get_member_latest_update( $args ); @@ -1524,7 +1520,7 @@ function bp_displayed_user_use_cover_image_header() { * * @see bp_get_loggedin_user_avatar() for a description of params. * - * @param array|string $args Array of arguments for logged in user avatar. + * @param array|string $args {@see bp_get_loggedin_user_avatar()}. */ function bp_loggedin_user_avatar( $args = '' ) { echo bp_get_loggedin_user_avatar( $args ); @@ -1579,7 +1575,7 @@ function bp_loggedin_user_avatar( $args = '' ) { * * @see bp_get_displayed_user_avatar() for a description of params. * - * @param array|string $args Array of arguments for displayed user avatar. + * @param array|string $args {@see bp_get_displayed_user_avatar()}. */ function bp_displayed_user_avatar( $args = '' ) { echo bp_get_displayed_user_avatar( $args ); diff --git a/wp-content/plugins/buddypress/bp-members/bp-members-widgets.php b/wp-content/plugins/buddypress/bp-members/bp-members-widgets.php index f83a24aab..58f52162a 100644 --- a/wp-content/plugins/buddypress/bp-members/bp-members-widgets.php +++ b/wp-content/plugins/buddypress/bp-members/bp-members-widgets.php @@ -10,12 +10,6 @@ // Exit if accessed directly. defined( 'ABSPATH' ) || exit; -if ( ! buddypress()->do_autoload ) { - require dirname( __FILE__ ) . '/classes/class-bp-core-members-widget.php'; - require dirname( __FILE__ ) . '/classes/class-bp-core-whos-online-widget.php'; - require dirname( __FILE__ ) . '/classes/class-bp-core-recently-active-widget.php'; -} - /** * Register bp-members widgets. * @@ -24,9 +18,9 @@ if ( ! buddypress()->do_autoload ) { * @since 2.2.0 */ function bp_members_register_widgets() { - add_action( 'widgets_init', create_function( '', 'return register_widget("BP_Core_Members_Widget");' ) ); - add_action( 'widgets_init', create_function( '', 'return register_widget("BP_Core_Whos_Online_Widget");' ) ); - add_action( 'widgets_init', create_function( '', 'return register_widget("BP_Core_Recently_Active_Widget");' ) ); + add_action( 'widgets_init', function() { return register_widget( 'BP_Core_Members_Widget' ); } ); + add_action( 'widgets_init', function() { return register_widget( 'BP_Core_Whos_Online_Widget' ); } ); + add_action( 'widgets_init', function() { return register_widget( 'BP_Core_Recently_Active_Widget' ); } ); } add_action( 'bp_register_widgets', 'bp_members_register_widgets' ); @@ -89,7 +83,7 @@ function bp_core_ajax_widget_members() { </div> <div class="item"> - <div class="item-title fn"><a href="<?php bp_member_permalink(); ?>" title="<?php bp_member_name(); ?>"><?php bp_member_name(); ?></a></div> + <div class="item-title fn"><a href="<?php bp_member_permalink(); ?>"><?php bp_member_name(); ?></a></div> <?php if ( 'active' === $type ) : ?> <div class="item-meta"><span class="activity"><?php bp_member_last_active(); ?></span></div> <?php elseif ( 'newest' === $type ) : ?> diff --git a/wp-content/plugins/buddypress/bp-members/classes/class-bp-core-members-widget.php b/wp-content/plugins/buddypress/bp-members/classes/class-bp-core-members-widget.php index 6a49de9fa..835207772 100644 --- a/wp-content/plugins/buddypress/bp-members/classes/class-bp-core-members-widget.php +++ b/wp-content/plugins/buddypress/bp-members/classes/class-bp-core-members-widget.php @@ -130,7 +130,7 @@ class BP_Core_Members_Widget extends WP_Widget { </div> <div class="item"> - <div class="item-title fn"><a href="<?php bp_member_permalink(); ?>" title="<?php bp_member_name(); ?>"><?php bp_member_name(); ?></a></div> + <div class="item-title fn"><a href="<?php bp_member_permalink(); ?>"><?php bp_member_name(); ?></a></div> <div class="item-meta"> <?php if ( 'newest' == $settings['member_default'] ) : ?> <span class="activity" data-livestamp="<?php bp_core_iso8601_date( bp_get_member_registered( array( 'relative' => false ) ) ); ?>"><?php bp_member_registered(); ?></span> diff --git a/wp-content/plugins/buddypress/bp-members/classes/class-bp-members-admin.php b/wp-content/plugins/buddypress/bp-members/classes/class-bp-members-admin.php index a0f19317e..214f1f416 100644 --- a/wp-content/plugins/buddypress/bp-members/classes/class-bp-members-admin.php +++ b/wp-content/plugins/buddypress/bp-members/classes/class-bp-members-admin.php @@ -1040,7 +1040,7 @@ class BP_Members_Admin { /** * In configs where BuddyPress is not network activated, * regular admins cannot mark a user as a spammer on front - * end. This prevent them to do it in backend. + * end. This prevent them to do it in the back end. * * Also prevent admins from marking themselves or other * admins as spammers. @@ -1306,7 +1306,7 @@ class BP_Members_Admin { * @since 2.1.0 */ public function remove_edit_profile_url_filter() { - remove_filter( 'bp_members_edit_profile_url', array( $this, 'filter_adminbar_profile_link' ), 10, 3 ); + remove_filter( 'bp_members_edit_profile_url', array( $this, 'filter_adminbar_profile_link' ), 10 ); } /** Signups Management ****************************************************/ @@ -1431,10 +1431,6 @@ class BP_Members_Admin { if ( ! empty( $required ) ) { require_once( ABSPATH . 'wp-admin/includes/class-wp-' . $required . '-list-table.php' ); - - if ( ! buddypress()->do_autoload ) { - require_once( buddypress()->members->admin->admin_dir . 'bp-members-admin-classes.php' ); - } } return new $class(); @@ -2044,6 +2040,21 @@ class BP_Members_Admin { 'signups_' . $action ); + // Prefetch registration field data. + $fdata = array(); + if ( 'activate' === $action && bp_is_active( 'xprofile' ) ) { + $fields = bp_xprofile_get_groups( array( + 'profile_group_id' => 1, + 'exclude_fields' => 1, + 'update_meta_cache' => false, + 'fetch_fields' => true, + ) ); + $fields = $fields[0]->fields; + foreach( $fields as $f ) { + $fdata[ $f->id ] = $f->name; + } + } + ?> <div class="wrap"> @@ -2052,11 +2063,46 @@ class BP_Members_Admin { <ol class="bp-signups-list"> <?php foreach ( $signups as $signup ) : + $last_notified = mysql2date( 'Y/m/d g:i:s a', $signup->date_sent ); + $profile_field_ids = array(); - $last_notified = mysql2date( 'Y/m/d g:i:s a', $signup->date_sent ); ?> + // Get all xprofile field IDs except field 1. + if ( ! empty( $signup->meta['profile_field_ids'] ) ) { + $profile_field_ids = array_flip( explode( ',', $signup->meta['profile_field_ids'] ) ); + unset( $profile_field_ids[1] ); + } ?> <li> - <?php echo esc_html( $signup->user_name ) ?> - <?php echo sanitize_email( $signup->user_email );?> + <strong><?php echo esc_html( $signup->user_login ) ?></strong> + + <?php if ( 'activate' == $action ) : ?> + <table class="wp-list-table widefat fixed striped"> + <tbody> + <tr> + <td class="column-fields"><?php esc_html_e( 'Display Name', 'buddypress' ); ?></td> + <td><?php echo esc_html( $signup->user_name ); ?></td> + </tr> + + <tr> + <td class="column-fields"><?php esc_html_e( 'Email', 'buddypress' ); ?></td> + <td><?php echo sanitize_email( $signup->user_email ); ?></td> + </tr> + + <?php if ( bp_is_active( 'xprofile' ) && ! empty( $profile_field_ids ) ) : ?> + <?php foreach ( $profile_field_ids as $pid => $noop ) : + $field_value = isset( $signup->meta[ "field_{$pid}" ] ) ? $signup->meta[ "field_{$pid}" ] : ''; ?> + <tr> + <td class="column-fields"><?php echo esc_html( $fdata[ $pid ] ); ?></td> + <td><?php echo $this->format_xprofile_field_for_display( $field_value ); ?></td> + </tr> + + <?php endforeach; ?> + + <?php endif; ?> + + </tbody> + </table> + <?php endif; ?> <?php if ( 'resend' == $action ) : ?> @@ -2243,7 +2289,7 @@ class BP_Members_Admin { * @return array $columns */ public function users_table_add_type_column( $columns = array() ) { - $columns[ bp_get_member_type_tax_name() ] = _x( 'Member Type', 'Label for the WP users table member type column' , 'buddypress' ); + $columns[ bp_get_member_type_tax_name() ] = _x( 'Member Type', 'Label for the WP users table member type column', 'buddypress' ); return $columns; } @@ -2309,5 +2355,27 @@ class BP_Members_Admin { } } } + + /** + * Formats a signup's xprofile field data for display. + * + * Operates recursively on arrays, which are then imploded with commas. + * + * @since 2.8.0 + * + * @param string|array $value Field value. + * @return string + */ + protected function format_xprofile_field_for_display( $value ) { + if ( is_array( $value ) ) { + $value = array_map( array( $this, 'format_xprofile_field_for_display' ), $value ); + $value = implode( ', ', $value ); + } else { + $value = stripslashes( $value ); + $value = esc_html( $value ); + } + + return $value; + } } endif; // End class_exists check. diff --git a/wp-content/plugins/buddypress/bp-members/classes/class-bp-members-component.php b/wp-content/plugins/buddypress/bp-members/classes/class-bp-members-component.php index 712f80d0f..0bc5a1277 100644 --- a/wp-content/plugins/buddypress/bp-members/classes/class-bp-members-component.php +++ b/wp-content/plugins/buddypress/bp-members/classes/class-bp-members-component.php @@ -67,10 +67,6 @@ class BP_Members_Component extends BP_Component { 'cache', ); - if ( ! buddypress()->do_autoload ) { - $includes[] = 'classes'; - } - if ( bp_is_active( 'activity' ) ) { $includes[] = 'activity'; } diff --git a/wp-content/plugins/buddypress/bp-members/classes/class-bp-signup.php b/wp-content/plugins/buddypress/bp-members/classes/class-bp-signup.php index bbf040828..bc17bac31 100644 --- a/wp-content/plugins/buddypress/bp-members/classes/class-bp-signup.php +++ b/wp-content/plugins/buddypress/bp-members/classes/class-bp-signup.php @@ -122,7 +122,17 @@ class BP_Signup { * * @since 2.0.0 * - * @param array $args the argument to retrieve desired signups. + * @param array $args { + * The argument to retrieve desired signups. + * @type int $offset Offset amount. Default 0. + * @type int $number How many to fetch. Default 1. + * @type bool|string $usersearch Whether or not to search for a username. Default false. + * @type string $orderby Order By parameter. Default 'signup_id'. + * @type string $order Order direction. Default 'DESC'. + * @type bool $include Whether or not to include more specific query params. + * @type string $activation_key Activation key to search for. + * @type string $user_login Specific user login to return. + * } * @return array { * @type array $signups Located signups. * @type int $total Total number of signups matching params. @@ -261,6 +271,7 @@ class BP_Signup { $total_signups = $wpdb->get_var( apply_filters( 'bp_members_signups_count_query', join( ' ', $sql ), $sql, $args, $r ) ); return array( 'signups' => $paged_signups, 'total' => $total_signups ); + } /** @@ -268,9 +279,18 @@ class BP_Signup { * * @since 2.0.0 * - * @param array $args Array of arguments for signup addition. - * @return int|bool ID of newly created signup on success, false on - * failure. + * @param array $args { + * Array of arguments for signup addition. + * @type string $domain New user's domain. + * @type string $path New user's path. + * @type string $title New user's title. + * @type string $user_login New user's user_login. + * @type string $user_email New user's email address. + * @type int|string $registered Time the user registered. + * @type string $activation_key New user's activation key. + * @type string $meta New user's user meta. + * } + * @return int|bool ID of newly created signup on success, false on failure. */ public static function add( $args = array() ) { global $wpdb; @@ -489,7 +509,11 @@ class BP_Signup { * * @since 2.0.0 * - * @param array $args Array of arguments for the signup update. + * @param array $args { + * Array of arguments for the signup update. + * @type int $signup_id User signup ID. + * @type array $meta Meta to update. + * } * @return int The signup id. */ public static function update( $args = array() ) { diff --git a/wp-content/plugins/buddypress/bp-messages/bp-messages-functions.php b/wp-content/plugins/buddypress/bp-messages/bp-messages-functions.php index 69e523fb0..4e78ea613 100644 --- a/wp-content/plugins/buddypress/bp-messages/bp-messages-functions.php +++ b/wp-content/plugins/buddypress/bp-messages/bp-messages-functions.php @@ -36,7 +36,8 @@ defined( 'ABSPATH' ) || exit; * @type string $date_sent Date sent, in 'Y-m-d H:i:s' format. Default: current date/time. * @type string $error_type Optional. Error type. Either 'bool' or 'wp_error'. Default: 'bool'. * } - * @return int|bool ID of the message thread on success, false on failure. + * + * @return int|bool|WP_Error ID of the message thread on success, false on failure. */ function messages_new_message( $args = '' ) { @@ -56,10 +57,10 @@ function messages_new_message( $args = '' ) { if ( 'wp_error' === $r['error_type'] ) { if ( empty( $r['sender_id'] ) ) { $error_code = 'messages_empty_sender'; - $feedback = __( 'Your message was not sent. Please use a valid sender.', 'buddypress' ); + $feedback = __( 'Your message was not sent. Please use a valid sender.', 'buddypress' ); } else { $error_code = 'messages_empty_content'; - $feedback = __( 'Your message was not sent. Please enter some content.', 'buddypress' ); + $feedback = __( 'Your message was not sent. Please enter some content.', 'buddypress' ); } return new WP_Error( $error_code, $feedback ); @@ -113,13 +114,13 @@ function messages_new_message( $args = '' ) { } // Setup the recipients array. - $recipient_ids = array(); + $recipient_ids = array(); // Invalid recipients are added to an array, for future enhancements. $invalid_recipients = array(); // Loop the recipients and convert all usernames to user_ids where needed. - foreach( (array) $r['recipients'] as $recipient ) { + foreach ( (array) $r['recipients'] as $recipient ) { // Trim spaces and skip if empty. $recipient = trim( $recipient ); @@ -168,9 +169,9 @@ function messages_new_message( $args = '' ) { } // Format this to match existing recipients. - foreach( (array) $recipient_ids as $i => $recipient_id ) { - $message->recipients[$i] = new stdClass; - $message->recipients[$i]->user_id = $recipient_id; + foreach ( (array) $recipient_ids as $i => $recipient_id ) { + $message->recipients[ $i ] = new stdClass; + $message->recipients[ $i ]->user_id = $recipient_id; } } @@ -324,6 +325,8 @@ function messages_check_thread_access( $thread_id, $user_id = 0 ) { * Wrapper for {@link BP_Messages_Thread::mark_as_read()}. * * @param int $thread_id ID of the thread. + * + * @return false|int Number of threads marked as read or false on error. */ function messages_mark_thread_read( $thread_id ) { return BP_Messages_Thread::mark_as_read( $thread_id ); @@ -335,6 +338,8 @@ function messages_mark_thread_read( $thread_id ) { * Wrapper for {@link BP_Messages_Thread::mark_as_unread()}. * * @param int $thread_id ID of the thread. + * + * @return false|int Number of threads marked as unread or false on error. */ function messages_mark_thread_unread( $thread_id ) { return BP_Messages_Thread::mark_as_unread( $thread_id ); @@ -445,7 +450,8 @@ function messages_get_message_thread_id( $message_id = 0 ) { * @param string|bool $meta_key Meta key to delete. Default false. * @param string|bool $meta_value Meta value to delete. Default false. * @param bool $delete_all Whether or not to delete all meta data. - * @return bool + * + * @return bool True on successful delete, false on failure. */ function bp_messages_delete_meta( $message_id, $meta_key = false, $meta_value = false, $delete_all = false ) { // Legacy - if no meta_key is passed, delete all for the item. @@ -460,9 +466,11 @@ function bp_messages_delete_meta( $message_id, $meta_key = false, $meta_value = $keys = array( $meta_key ); } + $retval = false; + // No keys, so stop now! if ( empty( $keys ) ) { - return false; + return $retval; } add_filter( 'query', 'bp_filter_metaid_column_name' ); diff --git a/wp-content/plugins/buddypress/bp-messages/bp-messages-loader.php b/wp-content/plugins/buddypress/bp-messages/bp-messages-loader.php index aad87f7bf..43f47e6a4 100644 --- a/wp-content/plugins/buddypress/bp-messages/bp-messages-loader.php +++ b/wp-content/plugins/buddypress/bp-messages/bp-messages-loader.php @@ -12,10 +12,6 @@ // Exit if accessed directly. defined( 'ABSPATH' ) || exit; -if ( ! buddypress()->do_autoload ) { - require dirname( __FILE__ ) . '/classes/class-bp-messages-component.php'; -} - /** * Set up the bp-messages component. * diff --git a/wp-content/plugins/buddypress/bp-messages/bp-messages-template.php b/wp-content/plugins/buddypress/bp-messages/bp-messages-template.php index 9f94e0962..7c46aad40 100644 --- a/wp-content/plugins/buddypress/bp-messages/bp-messages-template.php +++ b/wp-content/plugins/buddypress/bp-messages/bp-messages-template.php @@ -10,11 +10,6 @@ // Exit if accessed directly. defined( 'ABSPATH' ) || exit; -if ( ! buddypress()->do_autoload ) { - require dirname( __FILE__ ) . '/classes/class-bp-messages-box-template.php'; - require dirname( __FILE__ ) . '/classes/class-bp-messages-thread-template.php'; -} - /** * Retrieve private message threads for display in inbox/sentbox/notices. * @@ -947,10 +942,13 @@ function bp_messages_options() { <a href="#" id="mark_as_read"><?php _ex('Mark as Read', 'Message management markup', 'buddypress') ?></a> <a href="#" id="mark_as_unread"><?php _ex('Mark as Unread', 'Message management markup', 'buddypress') ?></a> + <?php wp_nonce_field( 'bp_messages_mark_messages_read', 'mark-messages-read-nonce', false ); ?> + <?php wp_nonce_field( 'bp_messages_mark_messages_unread', 'mark-messages-unread-nonce', false ); ?> + <?php endif; ?> <a href="#" id="delete_<?php echo bp_current_action(); ?>_messages"><?php _e( 'Delete Selected', 'buddypress' ); ?></a> - + <?php wp_nonce_field( 'bp_messages_delete_selected', 'delete-selected-nonce', false ); ?> <?php } @@ -1269,6 +1267,7 @@ function bp_message_get_notices() { <strong><?php echo stripslashes( wp_filter_kses( $notice->subject ) ) ?></strong><br /> <?php echo stripslashes( wp_filter_kses( $notice->message) ) ?> <a href="#" id="close-notice"><?php _e( 'Close', 'buddypress' ) ?></a> + <?php wp_nonce_field( 'bp_messages_close_notice', 'close-notice-nonce' ); ?> </p> </div> <?php @@ -1577,7 +1576,14 @@ function bp_get_the_thread_recipients() { */ function bp_get_thread_recipients_count() { global $thread_template; - return count( $thread_template->thread->recipients ); + /** + * Filters the total number of recipients in a thread. + * + * @since 2.8.0 + * + * @param int $count Total recipients number. + */ + return (int) apply_filters( 'bp_get_thread_recipients_count', count( $thread_template->thread->recipients ) ); } /** diff --git a/wp-content/plugins/buddypress/bp-messages/bp-messages-widgets.php b/wp-content/plugins/buddypress/bp-messages/bp-messages-widgets.php index 3eb8908b1..1ac59b1ef 100644 --- a/wp-content/plugins/buddypress/bp-messages/bp-messages-widgets.php +++ b/wp-content/plugins/buddypress/bp-messages/bp-messages-widgets.php @@ -10,16 +10,12 @@ // Exit if accessed directly. defined( 'ABSPATH' ) || exit; -if ( ! buddypress()->do_autoload ) { - require dirname( __FILE__ ) . '/classes/class-bp-messages-sitewide-notices-widget.php'; -} - /** * Register widgets for the Messages component. * * @since 1.9.0 */ function bp_messages_register_widgets() { - add_action( 'widgets_init', create_function('', 'return register_widget( "BP_Messages_Sitewide_Notices_Widget" );') ); + add_action( 'widgets_init', function() { register_widget( 'BP_Messages_Sitewide_Notices_Widget' ); } ); } add_action( 'bp_register_widgets', 'bp_messages_register_widgets' ); diff --git a/wp-content/plugins/buddypress/bp-messages/classes/class-bp-messages-box-template.php b/wp-content/plugins/buddypress/bp-messages/classes/class-bp-messages-box-template.php index 1487ff797..3afeb1c20 100644 --- a/wp-content/plugins/buddypress/bp-messages/classes/class-bp-messages-box-template.php +++ b/wp-content/plugins/buddypress/bp-messages/classes/class-bp-messages-box-template.php @@ -122,8 +122,7 @@ class BP_Messages_Box_Template { 6 => 'page_arg' ); - $func_args = func_get_args(); - $args = bp_core_parse_args_array( $old_args_keys, $func_args ); + $args = bp_core_parse_args_array( $old_args_keys, func_get_args() ); } $r = wp_parse_args( $args, array( diff --git a/wp-content/plugins/buddypress/bp-messages/classes/class-bp-messages-component.php b/wp-content/plugins/buddypress/bp-messages/classes/class-bp-messages-component.php index d3b8b5668..baf52071f 100644 --- a/wp-content/plugins/buddypress/bp-messages/classes/class-bp-messages-component.php +++ b/wp-content/plugins/buddypress/bp-messages/classes/class-bp-messages-component.php @@ -66,10 +66,6 @@ class BP_Messages_Component extends BP_Component { 'widgets', ); - if ( ! buddypress()->do_autoload ) { - $includes[] = 'classes'; - } - // Conditional includes. if ( bp_is_active( 'notifications' ) ) { $includes[] = 'notifications'; diff --git a/wp-content/plugins/buddypress/bp-messages/classes/class-bp-messages-message.php b/wp-content/plugins/buddypress/bp-messages/classes/class-bp-messages-message.php index 42f16fddc..63f6d2dfd 100644 --- a/wp-content/plugins/buddypress/bp-messages/classes/class-bp-messages-message.php +++ b/wp-content/plugins/buddypress/bp-messages/classes/class-bp-messages-message.php @@ -72,7 +72,7 @@ class BP_Messages_Message { $this->date_sent = bp_core_current_time(); $this->sender_id = bp_loggedin_user_id(); - if ( !empty( $id ) ) { + if ( ! empty( $id ) ) { $this->populate( $id ); } } @@ -109,8 +109,8 @@ class BP_Messages_Message { $this->sender_id = apply_filters( 'messages_message_sender_id_before_save', $this->sender_id, $this->id ); $this->thread_id = apply_filters( 'messages_message_thread_id_before_save', $this->thread_id, $this->id ); - $this->subject = apply_filters( 'messages_message_subject_before_save', $this->subject, $this->id ); - $this->message = apply_filters( 'messages_message_content_before_save', $this->message, $this->id ); + $this->subject = apply_filters( 'messages_message_subject_before_save', $this->subject, $this->id ); + $this->message = apply_filters( 'messages_message_content_before_save', $this->message, $this->id ); $this->date_sent = apply_filters( 'messages_message_date_sent_before_save', $this->date_sent, $this->id ); /** @@ -125,20 +125,22 @@ class BP_Messages_Message { do_action_ref_array( 'messages_message_before_save', array( &$this ) ); // Make sure we have at least one recipient before sending. - if ( empty( $this->recipients ) ) + if ( empty( $this->recipients ) ) { return false; + } $new_thread = false; // If we have no thread_id then this is the first message of a new thread. if ( empty( $this->thread_id ) ) { $this->thread_id = (int) $wpdb->get_var( "SELECT MAX(thread_id) FROM {$bp->messages->table_name_messages}" ) + 1; - $new_thread = true; + $new_thread = true; } // First insert the message into the messages table. - if ( !$wpdb->query( $wpdb->prepare( "INSERT INTO {$bp->messages->table_name_messages} ( thread_id, sender_id, subject, message, date_sent ) VALUES ( %d, %d, %s, %s, %s )", $this->thread_id, $this->sender_id, $this->subject, $this->message, $this->date_sent ) ) ) + if ( ! $wpdb->query( $wpdb->prepare( "INSERT INTO {$bp->messages->table_name_messages} ( thread_id, sender_id, subject, message, date_sent ) VALUES ( %d, %d, %s, %s, %s )", $this->thread_id, $this->sender_id, $this->subject, $this->message, $this->date_sent ) ) ) { return false; + } $this->id = $wpdb->insert_id; @@ -152,8 +154,9 @@ class BP_Messages_Message { } // Add a sender recipient entry if the sender is not in the list of recipients. - if ( !in_array( $this->sender_id, $recipient_ids ) ) + if ( ! in_array( $this->sender_id, $recipient_ids ) ) { $wpdb->query( $wpdb->prepare( "INSERT INTO {$bp->messages->table_name_recipients} ( user_id, thread_id, sender_only ) VALUES ( %d, %d, 1 )", $this->sender_id, $this->thread_id ) ); + } } else { // Update the unread count for all recipients. $wpdb->query( $wpdb->prepare( "UPDATE {$bp->messages->table_name_recipients} SET unread_count = unread_count + 1, sender_only = 0, is_deleted = 0 WHERE thread_id = %d AND user_id != %d", $this->thread_id, $this->sender_id ) ); @@ -192,27 +195,42 @@ class BP_Messages_Message { * Get list of recipient IDs from their usernames. * * @param array $recipient_usernames Usernames of recipients. - * @return array $recipient_ids Array of Recepient IDs. + * + * @return bool|array $recipient_ids Array of Recepient IDs. */ public static function get_recipient_ids( $recipient_usernames ) { - if ( !$recipient_usernames ) - return false; + $recipient_ids = false; + + if ( ! $recipient_usernames ) { + return $recipient_ids; + } if ( is_array( $recipient_usernames ) ) { - for ( $i = 0, $count = count( $recipient_usernames ); $i < $count; ++$i ) { - if ( $rid = bp_core_get_userid( trim($recipient_usernames[$i]) ) ) { + $rec_un_count = count( $recipient_usernames ); + + for ( $i = 0, $count = $rec_un_count; $i < $count; ++ $i ) { + if ( $rid = bp_core_get_userid( trim( $recipient_usernames[ $i ] ) ) ) { $recipient_ids[] = $rid; } } } - return $recipient_ids; + /** + * Filters the array of recipients IDs. + * + * @since 2.8.0 + * + * @param array $recipient_ids Array of recipients IDs that were retrieved based on submitted usernames. + * @param array $recipient_usernames Array of recipients usernames that were submitted by a user. + */ + return apply_filters( 'messages_message_get_recipient_ids', $recipient_ids, $recipient_usernames ); } /** * Get the ID of the message last sent by the logged-in user for a given thread. * * @param int $thread_id ID of the thread. + * * @return int|null ID of the message if found, otherwise null. */ public static function get_last_sent_for_user( $thread_id ) { @@ -228,8 +246,9 @@ class BP_Messages_Message { /** * Check whether a user is the sender of a message. * - * @param int $user_id ID of the user. + * @param int $user_id ID of the user. * @param int $message_id ID of the message. + * * @return int|null Returns the ID of the message if the user is the * sender, otherwise null. */ @@ -247,6 +266,7 @@ class BP_Messages_Message { * Get the ID of the sender of a message. * * @param int $message_id ID of the message. + * * @return int|null The ID of the sender if found, otherwise null. */ public static function get_message_sender( $message_id ) { diff --git a/wp-content/plugins/buddypress/bp-messages/classes/class-bp-messages-notice.php b/wp-content/plugins/buddypress/bp-messages/classes/class-bp-messages-notice.php index c228b9421..48b7ff07d 100644 --- a/wp-content/plugins/buddypress/bp-messages/classes/class-bp-messages-notice.php +++ b/wp-content/plugins/buddypress/bp-messages/classes/class-bp-messages-notice.php @@ -196,6 +196,15 @@ class BP_Messages_Notice { return false; } + /** + * Fires after the current message item has been deleted. + * + * @since 2.8.0 + * + * @param BP_Messages_Notice $this Current instance of the message notice item being deleted. + */ + do_action( 'messages_notice_after_delete', $this ); + return true; } @@ -238,7 +247,14 @@ class BP_Messages_Notice { $notices[ $key ]->is_active = (int) $notices[ $key ]->is_active; } - return $notices; + /** + * Filters the array of notices, sorted by date and paginated. + * + * @since 2.8.0 + * + * @param array $r Array of parameters. + */ + return apply_filters( 'messages_notice_get_notices', $notices, $r ); } /** @@ -255,11 +271,16 @@ class BP_Messages_Notice { $notice_count = $wpdb->get_var( "SELECT COUNT(id) FROM {$bp->messages->table_name_notices}" ); - return $notice_count; + /** + * Filters the total number of notices. + * + * @since 2.8.0 + */ + return (int) apply_filters( 'messages_notice_get_total_notice_count', $notice_count ); } /** - * Returns the active notice that should be displayed on the frontend. + * Returns the active notice that should be displayed on the front end. * * @since 1.0.0 * @@ -279,6 +300,11 @@ class BP_Messages_Notice { wp_cache_set( 'active_notice', $notice, 'bp_messages' ); } - return $notice; + /** + * Gives ability to filter the active notice that should be displayed on the front end. + * + * @since 2.8.0 + */ + return apply_filters( 'messages_notice_get_active', $notice ); } } diff --git a/wp-content/plugins/buddypress/bp-messages/classes/class-bp-messages-thread.php b/wp-content/plugins/buddypress/bp-messages/classes/class-bp-messages-thread.php index 61cefa84c..8901c2c75 100644 --- a/wp-content/plugins/buddypress/bp-messages/classes/class-bp-messages-thread.php +++ b/wp-content/plugins/buddypress/bp-messages/classes/class-bp-messages-thread.php @@ -453,8 +453,7 @@ class BP_Messages_Thread { 5 => 'search_terms', ); - $func_args = func_get_args(); - $args = bp_core_parse_args_array( $old_args_keys, $func_args ); + $args = bp_core_parse_args_array( $old_args_keys, func_get_args() ); } $r = bp_parse_args( $args, array( @@ -608,16 +607,28 @@ class BP_Messages_Thread { * @since 1.0.0 * * @param int $thread_id The message thread ID. + * + * @return false|int Number of threads marked as read or false on error. */ public static function mark_as_read( $thread_id = 0 ) { global $wpdb; - $bp = buddypress(); - $sql = $wpdb->prepare( "UPDATE {$bp->messages->table_name_recipients} SET unread_count = 0 WHERE user_id = %d AND thread_id = %d", bp_loggedin_user_id(), $thread_id ); - $wpdb->query( $sql ); + $bp = buddypress(); + $retval = $wpdb->query( $wpdb->prepare( "UPDATE {$bp->messages->table_name_recipients} SET unread_count = 0 WHERE user_id = %d AND thread_id = %d", bp_loggedin_user_id(), $thread_id ) ); wp_cache_delete( 'thread_recipients_' . $thread_id, 'bp_messages' ); wp_cache_delete( bp_loggedin_user_id(), 'bp_messages_unread_count' ); + + /** + * Fires when messages thread was marked as read. + * + * @since 2.8.0 + * + * @param int $thread_id The message thread ID. + */ + do_action( 'messages_thread_mark_as_read', $thread_id ); + + return $retval; } /** @@ -626,16 +637,28 @@ class BP_Messages_Thread { * @since 1.0.0 * * @param int $thread_id The message thread ID. + * + * @return false|int Number of threads marked as unread or false on error. */ public static function mark_as_unread( $thread_id = 0 ) { global $wpdb; - $bp = buddypress(); - $sql = $wpdb->prepare( "UPDATE {$bp->messages->table_name_recipients} SET unread_count = 1 WHERE user_id = %d AND thread_id = %d", bp_loggedin_user_id(), $thread_id ); - $wpdb->query( $sql ); + $bp = buddypress(); + $retval = $wpdb->query( $wpdb->prepare( "UPDATE {$bp->messages->table_name_recipients} SET unread_count = 1 WHERE user_id = %d AND thread_id = %d", bp_loggedin_user_id(), $thread_id ) ); wp_cache_delete( 'thread_recipients_' . $thread_id, 'bp_messages' ); wp_cache_delete( bp_loggedin_user_id(), 'bp_messages_unread_count' ); + + /** + * Fires when messages thread was marked as unread. + * + * @since 2.8.0 + * + * @param int $thread_id The message thread ID. + */ + do_action( 'messages_thread_mark_as_unread', $thread_id ); + + return $retval; } /** diff --git a/wp-content/plugins/buddypress/bp-messages/js/autocomplete/jquery.bgiframe.js b/wp-content/plugins/buddypress/bp-messages/js/autocomplete/jquery.bgiframe.js index ef2a9e218..f8be0b588 100644 --- a/wp-content/plugins/buddypress/bp-messages/js/autocomplete/jquery.bgiframe.js +++ b/wp-content/plugins/buddypress/bp-messages/js/autocomplete/jquery.bgiframe.js @@ -1,39 +1,69 @@ -/*! Copyright (c) 2010 Brandon Aaron (http://brandonaaron.net) - * Licensed under the MIT License (license.bgiframe.txt). +/*! Copyright (c) 2013 Brandon Aaron (http://brandon.aaron.sh) + * Licensed under the MIT License (LICENSE.txt). * - * Version 2.1.2 + * Version 3.0.1 + * + * Requires jQuery >= 1.2.6 */ -(function($){ - -$.fn.bgiframe = ($.browser.msie && /msie 6\.0/i.test(navigator.userAgent) ? function(s) { - s = $.extend({ - top : 'auto', // auto == .currentStyle.borderTopWidth - left : 'auto', // auto == .currentStyle.borderLeftWidth - width : 'auto', // auto == offsetWidth - height : 'auto', // auto == offsetHeight - opacity : true, - src : 'javascript:false;' - }, s); - var html = '<iframe class="bgiframe"frameborder="0"tabindex="-1"src="'+s.src+'"'+ - 'style="display:block;position:absolute;z-index:-1;'+ - (s.opacity !== false?'filter:Alpha(Opacity=\'0\');':'')+ - 'top:'+(s.top=='auto'?'expression(((parseInt(this.parentNode.currentStyle.borderTopWidth)||0)*-1)+\'px\')':prop(s.top))+';'+ - 'left:'+(s.left=='auto'?'expression(((parseInt(this.parentNode.currentStyle.borderLeftWidth)||0)*-1)+\'px\')':prop(s.left))+';'+ - 'width:'+(s.width=='auto'?'expression(this.parentNode.offsetWidth+\'px\')':prop(s.width))+';'+ - 'height:'+(s.height=='auto'?'expression(this.parentNode.offsetHeight+\'px\')':prop(s.height))+';'+ - '"/>'; - return this.each(function() { - if ( $(this).children('iframe.bgiframe').length === 0 ) - this.insertBefore( document.createElement(html), this.firstChild ); - }); -} : function() { return this; }); - -// old alias -$.fn.bgIframe = $.fn.bgiframe; - -function prop(n) { - return n && n.constructor === Number ? n + 'px' : n; -} - -})(jQuery); \ No newline at end of file +(function (factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(['jquery'], factory); + } else if (typeof exports === 'object') { + // Node/CommonJS style for Browserify + module.exports = factory; + } else { + // Browser globals + factory(jQuery); + } +}(function ($) { + $.fn.bgiframe = function(s) { + s = $.extend({ + top : 'auto', // auto == borderTopWidth + left : 'auto', // auto == borderLeftWidth + width : 'auto', // auto == offsetWidth + height : 'auto', // auto == offsetHeight + opacity : true, + src : 'javascript:false;', + conditional : /MSIE 6\.0/.test(navigator.userAgent) // expresion or function. return false to prevent iframe insertion + }, s); + + // wrap conditional in a function if it isn't already + if (!$.isFunction(s.conditional)) { + var condition = s.conditional; + s.conditional = function() { return condition; }; + } + + var $iframe = $('<iframe class="bgiframe"frameborder="0"tabindex="-1"src="'+s.src+'"'+ + 'style="display:block;position:absolute;z-index:-1;"/>'); + + return this.each(function() { + var $this = $(this); + if ( s.conditional(this) === false ) { return; } + var existing = $this.children('iframe.bgiframe'); + var $el = existing.length === 0 ? $iframe.clone() : existing; + $el.css({ + 'top': s.top == 'auto' ? + ((parseInt($this.css('borderTopWidth'),10)||0)*-1)+'px' : prop(s.top), + 'left': s.left == 'auto' ? + ((parseInt($this.css('borderLeftWidth'),10)||0)*-1)+'px' : prop(s.left), + 'width': s.width == 'auto' ? (this.offsetWidth + 'px') : prop(s.width), + 'height': s.height == 'auto' ? (this.offsetHeight + 'px') : prop(s.height), + 'opacity': s.opacity === true ? 0 : undefined + }); + + if ( existing.length === 0 ) { + $this.prepend($el); + } + }); + }; + + // old alias + $.fn.bgIframe = $.fn.bgiframe; + + function prop(n) { + return n && n.constructor === Number ? n + 'px' : n; + } + +})); diff --git a/wp-content/plugins/buddypress/bp-messages/js/autocomplete/jquery.bgiframe.min.js b/wp-content/plugins/buddypress/bp-messages/js/autocomplete/jquery.bgiframe.min.js index 6cd5e7968..5d71a50db 100644 --- a/wp-content/plugins/buddypress/bp-messages/js/autocomplete/jquery.bgiframe.min.js +++ b/wp-content/plugins/buddypress/bp-messages/js/autocomplete/jquery.bgiframe.min.js @@ -1 +1 @@ -!function(a){function b(a){return a&&a.constructor===Number?a+"px":a}a.fn.bgiframe=a.browser.msie&&/msie 6\.0/i.test(navigator.userAgent)?function(c){c=a.extend({top:"auto",left:"auto",width:"auto",height:"auto",opacity:!0,src:"javascript:false;"},c);var d='<iframe class="bgiframe"frameborder="0"tabindex="-1"src="'+c.src+'"style="display:block;position:absolute;z-index:-1;'+(c.opacity!==!1?"filter:Alpha(Opacity='0');":"")+"top:"+("auto"==c.top?"expression(((parseInt(this.parentNode.currentStyle.borderTopWidth)||0)*-1)+'px')":b(c.top))+";left:"+("auto"==c.left?"expression(((parseInt(this.parentNode.currentStyle.borderLeftWidth)||0)*-1)+'px')":b(c.left))+";width:"+("auto"==c.width?"expression(this.parentNode.offsetWidth+'px')":b(c.width))+";height:"+("auto"==c.height?"expression(this.parentNode.offsetHeight+'px')":b(c.height))+';"/>';return this.each(function(){0===a(this).children("iframe.bgiframe").length&&this.insertBefore(document.createElement(d),this.firstChild)})}:function(){return this},a.fn.bgIframe=a.fn.bgiframe}(jQuery); \ No newline at end of file +!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof exports?module.exports=a:a(jQuery)}(function(a){function b(a){return a&&a.constructor===Number?a+"px":a}a.fn.bgiframe=function(c){if(c=a.extend({top:"auto",left:"auto",width:"auto",height:"auto",opacity:!0,src:"javascript:false;",conditional:/MSIE 6\.0/.test(navigator.userAgent)},c),!a.isFunction(c.conditional)){var d=c.conditional;c.conditional=function(){return d}}var e=a('<iframe class="bgiframe"frameborder="0"tabindex="-1"src="'+c.src+'"style="display:block;position:absolute;z-index:-1;"/>');return this.each(function(){var d=a(this);if(c.conditional(this)!==!1){var f=d.children("iframe.bgiframe"),g=0===f.length?e.clone():f;g.css({top:"auto"==c.top?(parseInt(d.css("borderTopWidth"),10)||0)*-1+"px":b(c.top),left:"auto"==c.left?(parseInt(d.css("borderLeftWidth"),10)||0)*-1+"px":b(c.left),width:"auto"==c.width?this.offsetWidth+"px":b(c.width),height:"auto"==c.height?this.offsetHeight+"px":b(c.height),opacity:c.opacity===!0?0:void 0}),0===f.length&&d.prepend(g)}})},a.fn.bgIframe=a.fn.bgiframe}); \ No newline at end of file diff --git a/wp-content/plugins/buddypress/bp-messages/js/autocomplete/license.bgiframe.txt b/wp-content/plugins/buddypress/bp-messages/js/autocomplete/license.bgiframe.txt index 74c597096..3d22670c9 100644 --- a/wp-content/plugins/buddypress/bp-messages/js/autocomplete/license.bgiframe.txt +++ b/wp-content/plugins/buddypress/bp-messages/js/autocomplete/license.bgiframe.txt @@ -1,5 +1,5 @@ -Copyright 2010, Brandon Aaron (http://brandonaaron.net/) - +Copyright 2013, Brandon Aaron (http://brandonaaron.net/) + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -7,14 +7,14 @@ without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/wp-content/plugins/buddypress/bp-notifications/bp-notifications-loader.php b/wp-content/plugins/buddypress/bp-notifications/bp-notifications-loader.php index d178006a7..a65dba007 100644 --- a/wp-content/plugins/buddypress/bp-notifications/bp-notifications-loader.php +++ b/wp-content/plugins/buddypress/bp-notifications/bp-notifications-loader.php @@ -12,10 +12,6 @@ // Exit if accessed directly. defined( 'ABSPATH' ) || exit; -if ( ! buddypress()->do_autoload ) { - require dirname( __FILE__ ) . '/classes/class-bp-notifications-component.php'; -} - /** * Set up the bp-notifications component. * diff --git a/wp-content/plugins/buddypress/bp-notifications/bp-notifications-template.php b/wp-content/plugins/buddypress/bp-notifications/bp-notifications-template.php index 666c7b252..f82983db4 100644 --- a/wp-content/plugins/buddypress/bp-notifications/bp-notifications-template.php +++ b/wp-content/plugins/buddypress/bp-notifications/bp-notifications-template.php @@ -10,10 +10,6 @@ // Exit if accessed directly. defined( 'ABSPATH' ) || exit; -if ( ! buddypress()->do_autoload ) { - require dirname( __FILE__ ) . '/classes/class-bp-notifications-template.php'; -} - /** * Output the notifications component slug. * diff --git a/wp-content/plugins/buddypress/bp-notifications/classes/class-bp-notifications-component.php b/wp-content/plugins/buddypress/bp-notifications/classes/class-bp-notifications-component.php index 83d474f3e..8eaffe4db 100644 --- a/wp-content/plugins/buddypress/bp-notifications/classes/class-bp-notifications-component.php +++ b/wp-content/plugins/buddypress/bp-notifications/classes/class-bp-notifications-component.php @@ -52,10 +52,6 @@ class BP_Notifications_Component extends BP_Component { 'cache', ); - if ( ! buddypress()->do_autoload ) { - $includes[] = 'classes'; - } - parent::includes( $includes ); } diff --git a/wp-content/plugins/buddypress/bp-settings/bp-settings-actions.php b/wp-content/plugins/buddypress/bp-settings/bp-settings-actions.php index a9c620d0d..204b9a22a 100644 --- a/wp-content/plugins/buddypress/bp-settings/bp-settings-actions.php +++ b/wp-content/plugins/buddypress/bp-settings/bp-settings-actions.php @@ -472,8 +472,12 @@ function bp_settings_verify_email_change(){ // Email change is being dismissed. } elseif ( ! empty( $_GET['dismiss_email_change'] ) ) { - bp_delete_user_meta( bp_displayed_user_id(), 'pending_email_change' ); - bp_core_add_message( __( 'You have successfully dismissed your pending email change.', 'buddypress' ) ); + $nonce_check = isset( $_GET['_wpnonce'] ) && wp_verify_nonce( wp_unslash( $_GET['_wpnonce'] ), 'bp_dismiss_email_change' ); + + if ( $nonce_check ) { + bp_delete_user_meta( bp_displayed_user_id(), 'pending_email_change' ); + bp_core_add_message( __( 'You have successfully dismissed your pending email change.', 'buddypress' ) ); + } bp_core_redirect( $redirect_to ); die(); diff --git a/wp-content/plugins/buddypress/bp-settings/bp-settings-functions.php b/wp-content/plugins/buddypress/bp-settings/bp-settings-functions.php index aa7f776d8..0a7fb5318 100644 --- a/wp-content/plugins/buddypress/bp-settings/bp-settings-functions.php +++ b/wp-content/plugins/buddypress/bp-settings/bp-settings-functions.php @@ -90,6 +90,11 @@ function bp_settings_sanitize_notification_settings( $settings = array() ) { function bp_settings_get_registered_notification_keys() { ob_start(); + /** + * Fires at the start of the notification keys whitelisting. + * + * @since 1.0.0 + */ do_action( 'bp_notification_settings' ); $screen = ob_get_clean(); diff --git a/wp-content/plugins/buddypress/bp-settings/bp-settings-loader.php b/wp-content/plugins/buddypress/bp-settings/bp-settings-loader.php index 9687980b4..a19780d40 100644 --- a/wp-content/plugins/buddypress/bp-settings/bp-settings-loader.php +++ b/wp-content/plugins/buddypress/bp-settings/bp-settings-loader.php @@ -10,10 +10,6 @@ // Exit if accessed directly. defined( 'ABSPATH' ) || exit; -if ( ! buddypress()->do_autoload ) { - require dirname( __FILE__ ) . '/classes/class-bp-settings-component.php'; -} - /** * Set up the bp-settings component. * diff --git a/wp-content/plugins/buddypress/bp-settings/bp-settings-template.php b/wp-content/plugins/buddypress/bp-settings/bp-settings-template.php index cd3d4d98b..a97c0da52 100644 --- a/wp-content/plugins/buddypress/bp-settings/bp-settings-template.php +++ b/wp-content/plugins/buddypress/bp-settings/bp-settings-template.php @@ -93,7 +93,7 @@ function bp_settings_pending_email_notice() { <?php printf( __( 'Check your email (%1$s) for the verification link, or <a href="%2$s">cancel the pending change</a>.', 'buddypress' ), '<code>' . esc_html( bp_get_displayed_user_email() ) . '</code>', - esc_url( bp_displayed_user_domain() . bp_get_settings_slug() . '/?dismiss_email_change=1' ) + esc_url( wp_nonce_url( bp_displayed_user_domain() . bp_get_settings_slug() . '/?dismiss_email_change=1', 'bp_dismiss_email_change' ) ) ); ?></p> </div> diff --git a/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress-functions.php b/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress-functions.php index 175f60956..341ac79a5 100644 --- a/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress-functions.php +++ b/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress-functions.php @@ -300,7 +300,7 @@ class BP_Legacy extends BP_Theme_Compat { 'remove_fav' => __( 'Remove Favorite', 'buddypress' ), 'show_all' => __( 'Show all', 'buddypress' ), 'show_all_comments' => __( 'Show all comments for this thread', 'buddypress' ), - 'show_x_comments' => __( 'Show all %d comments', 'buddypress' ), + 'show_x_comments' => __( 'Show all comments (%d)', 'buddypress' ), 'unsaved_changes' => __( 'Your profile has unsaved changes. If you leave the page, the changes will be lost.', 'buddypress' ), 'view' => __( 'View', 'buddypress' ), ) ); @@ -687,8 +687,16 @@ function bp_legacy_theme_ajax_querystring( $query_string, $object ) { // Activity stream filtering on action. if ( ! empty( $_BP_COOKIE['bp-' . $object . '-filter'] ) && '-1' != $_BP_COOKIE['bp-' . $object . '-filter'] ) { - $qs[] = 'type=' . $_BP_COOKIE['bp-' . $object . '-filter']; - $qs[] = 'action=' . $_BP_COOKIE['bp-' . $object . '-filter']; + $qs[] = 'type=' . $_BP_COOKIE['bp-' . $object . '-filter']; + + if ( bp_is_active( 'activity' ) ) { + $actions = bp_activity_get_actions_for_context(); + foreach ( $actions as $action ) { + if ( $action['key'] === $_BP_COOKIE['bp-' . $object . '-filter'] ) { + $qs[] = 'action=' . $_BP_COOKIE['bp-' . $object . '-filter']; + } + } + } } if ( ! empty( $_BP_COOKIE['bp-' . $object . '-scope'] ) ) { @@ -865,7 +873,11 @@ function bp_legacy_theme_activity_template_loader() { break; case 'mentions': $feed_url = bp_loggedin_user_domain() . bp_get_activity_slug() . '/mentions/feed/'; - bp_activity_clear_new_mentions( bp_loggedin_user_id() ); + + if ( isset( $_POST['_wpnonce_activity_filter'] ) && wp_verify_nonce( wp_unslash( $_POST['_wpnonce_activity_filter'] ), 'activity_filter' ) ) { + bp_activity_clear_new_mentions( bp_loggedin_user_id() ); + } + break; default: $feed_url = home_url( bp_get_activity_root_slug() . '/feed/' ); @@ -969,7 +981,7 @@ function bp_legacy_theme_post_update() { } if ( ! empty( $last_recorded ) ) { - remove_filter( 'bp_get_activity_css_class', 'bp_activity_newest_class', 10, 1 ); + remove_filter( 'bp_get_activity_css_class', 'bp_activity_newest_class', 10 ); } exit; @@ -1103,8 +1115,13 @@ function bp_legacy_theme_delete_activity_comment() { // Check the nonce. check_admin_referer( 'bp_activity_delete_link' ); - if ( ! is_user_logged_in() ) + if ( empty( $_POST['id'] ) || ! is_numeric( $_POST['id'] ) ) { exit( '-1' ); + } + + if ( ! is_user_logged_in() ) { + exit( '-1' ); + } $comment = new BP_Activity_Activity( $_POST['id'] ); @@ -1112,9 +1129,6 @@ function bp_legacy_theme_delete_activity_comment() { if ( ! bp_current_user_can( 'bp_moderate' ) && $comment->user_id != bp_loggedin_user_id() ) exit( '-1' ); - if ( empty( $_POST['id'] ) || ! is_numeric( $_POST['id'] ) ) - exit( '-1' ); - /** This action is documented in bp-activity/bp-activity-actions.php */ do_action( 'bp_activity_before_action_delete_activity', $_POST['id'], $comment->user_id ); @@ -1184,6 +1198,16 @@ function bp_legacy_theme_mark_activity_favorite() { if ( 'POST' !== strtoupper( $_SERVER['REQUEST_METHOD'] ) ) return; + if ( ! isset( $_POST['nonce'] ) ) { + return; + } + + // Either the 'mark' or 'unmark' nonce is accepted, for backward compatibility. + $nonce = wp_unslash( $_POST['nonce'] ); + if ( ! wp_verify_nonce( $nonce, 'mark_favorite' ) && ! wp_verify_nonce( $nonce, 'unmark_favorite' ) ) { + return; + } + if ( bp_activity_add_user_favorite( $_POST['id'] ) ) _e( 'Remove Favorite', 'buddypress' ); else @@ -1204,6 +1228,16 @@ function bp_legacy_theme_unmark_activity_favorite() { if ( 'POST' !== strtoupper( $_SERVER['REQUEST_METHOD'] ) ) return; + if ( ! isset( $_POST['nonce'] ) ) { + return; + } + + // Either the 'mark' or 'unmark' nonce is accepted, for backward compatibility. + $nonce = wp_unslash( $_POST['nonce'] ); + if ( ! wp_verify_nonce( $nonce, 'mark_favorite' ) && ! wp_verify_nonce( $nonce, 'unmark_favorite' ) ) { + return; + } + if ( bp_activity_remove_user_favorite( $_POST['id'] ) ) _e( 'Favorite', 'buddypress' ); else @@ -1248,7 +1282,7 @@ function bp_legacy_theme_get_single_activity_content() { remove_filter( 'bp_get_activity_content_body', 'bp_activity_truncate_entry', 5 ); /** This filter is documented in bp-activity/bp-activity-template.php */ - $content = apply_filters( 'bp_get_activity_content_body', $activity->content ); + $content = apply_filters_ref_array( 'bp_get_activity_content_body', array( $activity->content, &$activity ) ); exit( $content ); } @@ -1513,12 +1547,18 @@ function bp_legacy_theme_ajax_close_notice() { if ( 'POST' !== strtoupper( $_SERVER['REQUEST_METHOD'] ) ) return; - if ( ! isset( $_POST['notice_id'] ) ) { + $nonce_check = isset( $_POST['nonce'] ) && wp_verify_nonce( wp_unslash( $_POST['nonce'] ), 'bp_messages_close_notice' ); + + if ( ! $nonce_check || ! isset( $_POST['notice_id'] ) ) { echo "-1<div id='message' class='error'><p>" . __( 'There was a problem closing the notice.', 'buddypress' ) . '</p></div>'; } else { - $user_id = get_current_user_id(); - $notice_ids = bp_get_user_meta( $user_id, 'closed_notices', true ); + $user_id = get_current_user_id(); + $notice_ids = bp_get_user_meta( $user_id, 'closed_notices', true ); + if ( ! is_array( $notice_ids ) ) { + $notice_ids = array(); + } + $notice_ids[] = (int) $_POST['notice_id']; bp_update_user_meta( $user_id, 'closed_notices', $notice_ids ); @@ -1586,78 +1626,43 @@ function bp_legacy_theme_ajax_messages_send_reply() { /** * Mark a private message as unread in your inbox via a POST request. * + * No longer used. + * * @since 1.2.0 + * @deprecated 2.2.0 * * @return mixed String on error, void on success. */ function bp_legacy_theme_ajax_message_markunread() { - // Bail if not a POST action. - if ( 'POST' !== strtoupper( $_SERVER['REQUEST_METHOD'] ) ) - return; - - if ( ! isset($_POST['thread_ids']) ) { - echo "-1<div id='message' class='error'><p>" . __( 'There was a problem marking messages as unread.', 'buddypress' ) . '</p></div>'; - - } else { - $thread_ids = explode( ',', $_POST['thread_ids'] ); - - for ( $i = 0, $count = count( $thread_ids ); $i < $count; ++$i ) { - BP_Messages_Thread::mark_as_unread( (int) $thread_ids[$i] ); - } - } - - exit; + die( '-1' ); } /** * Mark a private message as read in your inbox via a POST request. * + * No longer used. + * * @since 1.2.0 + * @deprecated 2.2.0 * * @return mixed String on error, void on success. */ function bp_legacy_theme_ajax_message_markread() { - // Bail if not a POST action. - if ( 'POST' !== strtoupper( $_SERVER['REQUEST_METHOD'] ) ) - return; - - if ( ! isset($_POST['thread_ids']) ) { - echo "-1<div id='message' class='error'><p>" . __('There was a problem marking messages as read.', 'buddypress' ) . '</p></div>'; - - } else { - $thread_ids = explode( ',', $_POST['thread_ids'] ); - - for ( $i = 0, $count = count( $thread_ids ); $i < $count; ++$i ) { - BP_Messages_Thread::mark_as_read( (int) $thread_ids[$i] ); - } - } - - exit; + die( '-1' ); } /** * Delete a private message(s) in your inbox via a POST request. * + * No longer used. + * * @since 1.2.0 + * @deprecated 2.2.0 * * @return string HTML */ function bp_legacy_theme_ajax_messages_delete() { - // Bail if not a POST action. - if ( 'POST' !== strtoupper( $_SERVER['REQUEST_METHOD'] ) ) - return; - - if ( ! isset($_POST['thread_ids']) ) { - echo "-1<div id='message' class='error'><p>" . __( 'There was a problem deleting messages.', 'buddypress' ) . '</p></div>'; - - } else { - $thread_ids = wp_parse_id_list( $_POST['thread_ids'] ); - messages_delete_thread( $thread_ids ); - - _e( 'Messages deleted.', 'buddypress' ); - } - - exit; + die( '-1' ); } /** diff --git a/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/activity/entry.php b/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/activity/entry.php index 7e7dd4e73..3182b2ef9 100644 --- a/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/activity/entry.php +++ b/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/activity/entry.php @@ -56,7 +56,7 @@ do_action( 'bp_before_activity_entry' ); ?> <?php if ( bp_get_activity_type() == 'activity_comment' ) : ?> - <a href="<?php bp_activity_thread_permalink(); ?>" class="button view bp-secondary-action" title="<?php esc_attr_e( 'View Conversation', 'buddypress' ); ?>"><?php _e( 'View Conversation', 'buddypress' ); ?></a> + <a href="<?php bp_activity_thread_permalink(); ?>" class="button view bp-secondary-action"><?php _e( 'View Conversation', 'buddypress' ); ?></a> <?php endif; ?> diff --git a/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/activity/post-form.php b/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/activity/post-form.php index e3b3d5014..f5bbe758d 100644 --- a/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/activity/post-form.php +++ b/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/activity/post-form.php @@ -8,7 +8,7 @@ ?> -<form action="<?php bp_activity_post_form_action(); ?>" method="post" id="whats-new-form" name="whats-new-form" role="complementary"> +<form action="<?php bp_activity_post_form_action(); ?>" method="post" id="whats-new-form" name="whats-new-form"> <?php diff --git a/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/members/register.php b/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/members/register.php index 795d338e2..0bf017d39 100644 --- a/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/members/register.php +++ b/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/members/register.php @@ -189,7 +189,7 @@ '<span class="current-visibility-level">' . bp_get_the_profile_field_visibility_level_label() . '</span>' ); ?> - <a href="#" class="visibility-toggle-link"><?php _ex( 'Change', 'Change profile field visibility level', 'buddypress' ); ?></a> + <button type="button" class="visibility-toggle-link"><?php _ex( 'Change', 'Change profile field visibility level', 'buddypress' ); ?></button> </p> <div class="field-visibility-settings" id="field-visibility-settings-<?php bp_the_profile_field_id() ?>"> @@ -199,7 +199,7 @@ <?php bp_profile_visibility_radio_buttons() ?> </fieldset> - <a class="field-visibility-settings-close" href="#"><?php _e( 'Close', 'buddypress' ) ?></a> + <button type="button" class="field-visibility-settings-close"><?php _e( 'Close', 'buddypress' ) ?></button> </div> <?php else : ?> diff --git a/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/members/single/profile/edit.php b/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/members/single/profile/edit.php index 7bfacf3b3..6dc0d21b2 100644 --- a/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/members/single/profile/edit.php +++ b/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/members/single/profile/edit.php @@ -59,7 +59,7 @@ if ( bp_has_profile( 'profile_group_id=' . bp_get_current_profile_group_id() ) ) '<span class="current-visibility-level">' . bp_get_the_profile_field_visibility_level_label() . '</span>' ); ?> - <a href="#" class="visibility-toggle-link"><?php _e( 'Change', 'buddypress' ); ?></a> + <button type="button" class="visibility-toggle-link"><?php _e( 'Change', 'buddypress' ); ?></button> </p> <div class="field-visibility-settings" id="field-visibility-settings-<?php bp_the_profile_field_id() ?>"> @@ -69,7 +69,7 @@ if ( bp_has_profile( 'profile_group_id=' . bp_get_current_profile_group_id() ) ) <?php bp_profile_visibility_radio_buttons() ?> </fieldset> - <a class="field-visibility-settings-close" href="#"><?php _e( 'Close', 'buddypress' ) ?></a> + <button type="button" class="field-visibility-settings-close"><?php _e( 'Close', 'buddypress' ) ?></button> </div> <?php else : ?> <div class="field-visibility-settings-notoggle" id="field-visibility-settings-toggle-<?php bp_the_profile_field_id() ?>"> diff --git a/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/buddypress-rtl.css b/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/buddypress-rtl.css index 7b78bc36a..bf133a577 100644 --- a/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/buddypress-rtl.css +++ b/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/buddypress-rtl.css @@ -880,15 +880,34 @@ fieldset.create-site label { } .bp-screen-reader-text { - position: absolute; - margin: -1px; - padding: 0; + clip: rect(1px, 1px, 1px, 1px); height: 1px; - width: 1px; overflow: hidden; - clip: rect(0 0 0 0); - border: 0; - word-wrap: normal !important; + position: absolute !important; + width: 1px; + word-wrap: normal !important; /* Many screen reader and browser combinations announce broken words as they would appear visually. */ +} + +.bp-screen-reader-text:focus { + background-color: #f1f1f1; + -webkit-border-radius: 3px; + border-radius: 3px; + -webkit-box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6); + box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6); + clip: auto !important; + color: #21759b; + display: block; + font-size: 14px; + font-size: 0.875rem; + font-weight: 700; + height: auto; + right: 5px; + line-height: normal; + padding: 15px 23px 14px; + text-decoration: none; + top: 5px; + width: auto; + z-index: 100000; /* Above WP toolbar. */ } /*-------------------------------------------------------------- diff --git a/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/buddypress-rtl.min.css b/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/buddypress-rtl.min.css index e0e9ef1ed..43e18a166 100644 --- a/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/buddypress-rtl.min.css +++ b/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/buddypress-rtl.min.css @@ -1 +1 @@ -#buddypress div.pagination .pagination-links a:hover,#buddypress ul.button-nav li.current a{font-weight:700}#buddypress div.pagination{background:0 0;border:none;color:#767676;font-size:small;margin:0;position:relative;display:block;float:right;width:100%;padding:10px 0}#buddypress div.pagination .pag-count{float:right;margin-right:10px}#buddypress div.pagination .pagination-links{float:left;margin-left:10px}#buddypress div.pagination .pagination-links a,#buddypress div.pagination .pagination-links span{font-size:90%;padding:0 5px}#buddypress noscript div.pagination{margin-bottom:15px}#buddypress #nav-above{display:none}#buddypress .paged #nav-above{display:block}#buddypress img.wp-smiley{border:none!important;clear:none!important;float:none!important;margin:0!important;padding:0!important}#buddypress .clear{clear:right}#buddypress #activity-stream{margin-top:-5px}#buddypress #activity-stream p{margin:5px 0}#buddypress #item-body form#whats-new-form{margin:0;padding:0}#buddypress .home-page form#whats-new-form{border-bottom:none;padding-bottom:0}#buddypress form#whats-new-form #whats-new-avatar{float:right}#buddypress form#whats-new-form #whats-new-content{margin-right:55px;padding:0 20px 20px 0}#buddypress form#whats-new-form p.activity-greeting{line-height:.5em;margin-bottom:15px;margin-right:75px}#buddypress form#whats-new-form textarea{background:#fff;box-sizing:border-box;color:#555;font-family:inherit;font-size:medium;height:2.2em;line-height:1.4;padding:6px;width:100%}body.no-js #buddypress form#whats-new-form textarea{height:50px}#buddypress form#whats-new-form #whats-new-options select{max-width:200px;margin-top:12px}#buddypress form#whats-new-form #whats-new-submit{float:left;margin-top:12px}#buddypress #whats-new-options:after{clear:both;content:"";display:table}body.no-js #buddypress #whats-new-options{height:auto}#buddypress #whats-new:focus{border-color:rgba(31,179,221,.9)!important;outline-color:rgba(31,179,221,.9)}#buddypress ul.activity-list li{overflow:hidden;padding:15px 0 0;list-style:none}#buddypress .activity-list .activity-avatar{float:right}#buddypress ul.item-list.activity-list li.has-comments{padding-bottom:15px}body.activity-permalink #buddypress ul.activity-list li.has-comments{padding-bottom:0}#buddypress .activity-list li.mini{font-size:80%;position:relative}#buddypress .activity-list li.mini .activity-avatar img.FB_profile_pic,#buddypress .activity-list li.mini .activity-avatar img.avatar{height:20px;margin-right:30px;width:20px}#buddypress .activity-permalink .activity-list li.mini .activity-avatar img.FB_profile_pic,#buddypress .activity-permalink .activity-list li.mini .activity-avatar img.avatar{height:auto;margin-right:0;width:auto}body.activity-permalink #buddypress .activity-list>li:first-child{padding-top:0}#buddypress .activity-list li .activity-content{position:relative}#buddypress .activity-list li.mini .activity-content p{margin:0}#buddypress .activity-list li.mini .activity-comments{clear:both;font-size:120%}body.activity-permalink #buddypress li.mini .activity-meta{margin-top:4px}#buddypress .activity-list li .activity-inreplyto{color:#767676;font-size:80%}#buddypress .activity-list li .activity-inreplyto>p{margin:0;display:inline}#buddypress .activity-list li .activity-inreplyto blockquote,#buddypress .activity-list li .activity-inreplyto div.activity-inner{background:0 0;border:none;display:inline;margin:0;overflow:hidden;padding:0}#buddypress .activity-list .activity-content{margin:0 70px 0 0}body.activity-permalink #buddypress .activity-list li .activity-content{border:none;font-size:100%;line-height:150%;margin-right:170px;margin-left:0;padding:0}body.activity-permalink #buddypress .activity-list li .activity-header>p{margin:0;padding:5px 0 0}#buddypress .activity-list .activity-content .activity-header,#buddypress .activity-list .activity-content .comment-header{color:#767676;line-height:220%}#buddypress .activity-header{margin-left:20px}#buddypress .acomment-meta a,#buddypress .activity-header a,#buddypress .comment-meta a{text-decoration:none}#buddypress .activity-list .activity-content .activity-header img.avatar{float:none!important;margin:0 0 -8px 5px!important}#buddypress a.bp-secondary-action,#buddypress span.highlight{font-size:80%;padding:0;margin-left:5px;text-decoration:none}#buddypress .activity-list .activity-content .activity-inner,#buddypress .activity-list .activity-content blockquote{margin:10px 0 5px 10px;overflow:hidden}#buddypress .activity-list li.new_forum_post .activity-content .activity-inner,#buddypress .activity-list li.new_forum_topic .activity-content .activity-inner{border-right:2px solid #EAEAEA;margin-right:5px;padding-right:10px}body.activity-permalink #buddypress .activity-content .activity-inner,body.activity-permalink #buddypress .activity-content blockquote{margin-right:0;margin-top:5px}#buddypress .activity-inner>p{word-wrap:break-word}#buddypress .activity-inner>.activity-inner,#buddypress .activity-inner>blockquote{margin:0}#buddypress .activity-list .activity-content img.thumbnail{border:2px solid #eee;float:right;margin:0 0 5px 10px}#buddypress .activity-read-more{margin-right:1em;white-space:nowrap}#buddypress .activity-list li.load-more,#buddypress .activity-list li.load-newest{background:#f0f0f0;font-size:110%;margin:15px 0;padding:10px 15px;text-align:center}#buddypress .activity-list li.load-more a,#buddypress .activity-list li.load-newest a{color:#4D4D4D}#buddypress div.activity-meta{margin:18px 0 0}body.activity-permalink #buddypress div.activity-meta{margin-bottom:6px}#buddypress div.activity-meta a{padding:4px 8px}#buddypress a.activity-time-since{color:#767676;text-decoration:none}#buddypress a.activity-time-since:hover{color:#767676;text-decoration:underline}#buddypress #reply-title small a,#buddypress a.bp-primary-action{font-size:80%;margin-left:5px;text-decoration:none}#buddypress #reply-title small a span,#buddypress a.bp-primary-action span{background:#767676;color:#fff;font-size:90%;margin-right:2px;padding:0 5px}#buddypress #reply-title small a:hover span,#buddypress a.bp-primary-action:hover span{background:#555;color:#fff}#buddypress div.activity-comments{margin:0 70px 0 0;overflow:hidden;position:relative;width:auto;clear:both}body.activity-permalink #buddypress div.activity-comments{background:0 0;margin-right:170px;width:auto}#buddypress div.activity-comments>ul{padding:0 10px 0 0}#buddypress div.activity-comments ul,#buddypress div.activity-comments ul li{border:none;list-style:none}#buddypress div.activity-comments ul{clear:both;margin:0}#buddypress div.activity-comments ul li{border-top:1px solid #eee;padding:10px 0 0}body.activity-permalink #buddypress .activity-list li.mini .activity-comments{clear:none;margin-top:0}body.activity-permalink #buddypress div.activity-comments ul li{border-width:1px;padding:10px 0 0}#buddypress div.activity-comments>ul>li:first-child{border-top:none}#buddypress div.activity-comments ul li:last-child{margin-bottom:0}#buddypress div.activity-comments ul li>ul{margin-right:30px;margin-top:0;padding-right:10px}body.activity-permalink #buddypress div.activity-comments ul li>ul{margin-top:10px}body.activity-permalink #buddypress div.activity-comments>ul{padding:0 15px 0 10px}#buddypress div.activity-comments div.acomment-avatar img{border-width:1px;float:right;height:25px;margin-left:10px;width:25px}#buddypress div.activity-comments div.acomment-content{font-size:80%;margin:5px 40px 0 0}#buddypress div.acomment-content .activity-delete-link,#buddypress div.acomment-content .comment-header,#buddypress div.acomment-content .time-since{display:none}body.activity-permalink #buddypress div.activity-comments div.acomment-content{font-size:90%}#buddypress div.activity-comments div.acomment-meta{color:#767676;font-size:80%}#buddypress div.activity-comments form.ac-form{display:none;padding:10px}#buddypress div.activity-comments li form.ac-form{margin-left:15px;clear:both}#buddypress div.activity-comments form.root{margin-right:0}#buddypress div.activity-comments div#message{margin-top:15px;margin-bottom:0}#buddypress div.activity-comments form .ac-textarea{background:#fff;border:1px inset #ccc;margin-bottom:10px;padding:8px}#buddypress div.activity-comments form textarea{border:none;background:0 0;box-shadow:none;outline:0;color:#555;font-family:inherit;font-size:100%;height:60px;padding:0;margin:0;width:100%}#buddypress div.activity-comments form input{margin-top:5px}#buddypress div.activity-comments form div.ac-reply-avatar{float:right}#buddypress div.ac-reply-avatar img{border:1px solid #eee}#buddypress div.activity-comments form div.ac-reply-content{color:#767676;margin-right:50px;padding-right:15px}#buddypress div.activity-comments form div.ac-reply-content a{text-decoration:none}#buddypress .acomment-options{float:right;margin:5px 40px 5px 0}#buddypress .acomment-options a{color:#767676}#buddypress .acomment-options a:hover{color:inherit}#buddypress div.dir-search{float:left;margin:-39px 0 0}#buddypress div.dir-search input[type=text],#buddypress li.groups-members-search input[type=text]{font-size:90%;padding:1px 3px}#buddypress .current-member-type{font-style:italic}#buddypress .dir-form{clear:both}#buddypress div#message{margin:0 0 15px}#buddypress #message.info{margin-bottom:0}#buddypress div#message.updated{clear:both;display:block}#buddypress div#message p,#sitewide-notice p{font-size:90%;display:block;padding:10px 15px}#buddypress div#message.error p{background-color:#fdc;border:1px solid #a00;clear:right;color:#800}#buddypress div#message.warning p{background-color:#ffe0af;border:1px solid #ffd087;clear:right;color:#800}#buddypress div#message.updated p{background-color:#efc;border:1px solid #591;color:#250}#buddypress #pass-strength-result{background-color:#eee;border-color:#ddd;border-style:solid;border-width:1px;display:none;margin:5px 0 5px 5px;padding:5px;text-align:center;width:150px}#buddypress .standard-form #basic-details-section #pass-strength-result{width:35%}#buddypress #pass-strength-result.bad,#buddypress #pass-strength-result.error{background-color:#ffb78c;border-color:#ff853c!important;display:block}#buddypress #pass-strength-result.good{background-color:#ffec8b;border-color:#fc0!important;display:block}#buddypress #pass-strength-result.short{background-color:#ffa0a0;border-color:#f04040!important;display:block}#buddypress #pass-strength-result.strong{background-color:#c3ff88;border-color:#8dff1c!important;display:block}#buddypress .standard-form#signup_form div div.error{background:#faa;color:#a00;margin:0 0 10px;padding:6px;width:90%}#buddypress div.accept,#buddypress div.reject{float:right;margin-right:10px}#buddypress ul.button-nav li{float:right;margin:0 0 10px 10px;list-style:none}#sitewide-notice #message{right:2%;position:fixed;top:1em;width:96%;z-index:9999}#sitewide-notice.admin-bar-on #message{top:3.3em}#sitewide-notice strong{display:block;margin-bottom:-1em}#buddypress form fieldset{border:0;padding:0}#buddypress .dir-search input[type=search],#buddypress .dir-search input[type=text],#buddypress .groups-members-search input[type=search],#buddypress .groups-members-search input[type=text],#buddypress .standard-form input[type=color],#buddypress .standard-form input[type=date],#buddypress .standard-form input[type=datetime-local],#buddypress .standard-form input[type=datetime],#buddypress .standard-form input[type=email],#buddypress .standard-form input[type=month],#buddypress .standard-form input[type=number],#buddypress .standard-form input[type=password],#buddypress .standard-form input[type=range],#buddypress .standard-form input[type=search],#buddypress .standard-form input[type=tel],#buddypress .standard-form input[type=text],#buddypress .standard-form input[type=time],#buddypress .standard-form input[type=url],#buddypress .standard-form input[type=week],#buddypress .standard-form select,#buddypress .standard-form textarea{border:1px solid #ccc;background:#fafafa;border-radius:0;color:#737373;font:inherit;font-size:100%;padding:6px}#buddypress .standard-form select{padding:3px}#buddypress .standard-form input[type=password]{margin-bottom:5px}#buddypress .standard-form label,#buddypress .standard-form legend,#buddypress .standard-form span.label{display:block;font-weight:700;margin:15px 0 5px;width:auto}#buddypress .standard-form #invite-list label,#buddypress .standard-form p label{font-weight:400;margin:auto}#buddypress .standard-form .checkbox label,#buddypress .standard-form .radio label{color:#767676;font-size:100%;font-weight:400;margin:5px 0 0}#buddypress .standard-form .checkbox label input,#buddypress .standard-form .radio label input{margin-left:3px}#buddypress .standard-form#sidebar-login-form label{margin-top:5px}#buddypress .standard-form input[type=text]{width:75%}#buddypress .standard-form#sidebar-login-form input[type=password],#buddypress .standard-form#sidebar-login-form input[type=text]{padding:4px;width:95%}#buddypress .standard-form #basic-details-section input[type=password],#buddypress .standard-form #blog-details-section input#signup_blog_url{width:35%}#buddypress #commentform input[type=text],#buddypress #commentform textarea,#buddypress .form-allowed-tags,#buddypress .standard-form#signup_form input[type=text],#buddypress .standard-form#signup_form textarea{width:90%}#buddypress .standard-form#signup_form div.submit{float:left}#buddypress div#signup-avatar img{margin:0 0 10px 15px}#buddypress .standard-form textarea{width:75%;height:120px}#buddypress .standard-form textarea#message_content{height:200px}#buddypress .standard-form#send-reply textarea{width:97.5%}#buddypress .standard-form p.description{color:#767676;font-size:80%;margin:5px 0}#buddypress .standard-form div.submit{clear:both;padding:15px 0 0}#buddypress .standard-form p.submit{margin-bottom:0;padding:15px 0 0}#buddypress .standard-form div.submit input{margin-left:15px}#buddypress .standard-form div.radio ul{margin:10px 38px 15px 0;list-style:disc}#buddypress .standard-form div.radio ul li{margin-bottom:5px}#buddypress .standard-form a.clear-value{display:block;margin-top:5px;outline:0}#buddypress table.notification-settings td:first-child,#buddypress table.notification-settings th.icon,#buddypress table.notifications td:first-child,#buddypress table.notifications th.icon,body.no-js #buddypress #delete_inbox_messages,body.no-js #buddypress #delete_sentbox_messages,body.no-js #buddypress #message-type-select,body.no-js #buddypress #messages-bulk-management #select-all-messages,body.no-js #buddypress #notifications-bulk-management #select-all-notifications,body.no-js #buddypress label[for=message-type-select]{display:none}#buddypress .standard-form #basic-details-section,#buddypress .standard-form #blog-details-section,#buddypress .standard-form #profile-details-section{float:right;width:48%}#buddypress .standard-form #profile-details-section{float:left}#buddypress #notifications-bulk-management,#buddypress .standard-form #blog-details-section{clear:right}#buddypress .standard-form input:focus,#buddypress .standard-form select:focus,#buddypress .standard-form textarea:focus{background:#fafafa;color:#555}#buddypress form#send-invite-form{margin-top:20px}#buddypress div#invite-list{background:#f5f5f5;height:400px;margin:0 0 10px;overflow:auto;padding:5px;width:160px}#buddypress .comment-reply-link,#buddypress .generic-button a,#buddypress .standard-form button,#buddypress a.button,#buddypress input[type=button],#buddypress input[type=reset],#buddypress input[type=submit],#buddypress ul.button-nav li a,a.bp-title-button{background:#fff;border:1px solid #ccc;color:#767676;font-size:small;cursor:pointer;outline:0;padding:4px 10px;text-align:center;text-decoration:none}#buddypress .comment-reply-link:hover,#buddypress .standard-form button:hover,#buddypress a.button:focus,#buddypress a.button:hover,#buddypress div.generic-button a:hover,#buddypress input[type=button]:hover,#buddypress input[type=reset]:hover,#buddypress input[type=submit]:hover,#buddypress ul.button-nav li a:hover,#buddypress ul.button-nav li.current a{background:#ededed;border:1px solid #bbb;color:#555;outline:0;text-decoration:none}#buddypress form.standard-form .left-menu{float:right}#buddypress form.standard-form .left-menu #invite-list ul{margin:1%;list-style:none}#buddypress form.standard-form .left-menu #invite-list ul li{margin:0 1% 0 0}#buddypress form.standard-form .main-column{margin-right:190px}#buddypress form.standard-form .main-column ul#friend-list{clear:none;float:right}#buddypress form.standard-form .main-column ul#friend-list h3,#buddypress form.standard-form .main-column ul#friend-list h4{clear:none}#buddypress .wp-editor-wrap a.button,#buddypress .wp-editor-wrap button,#buddypress .wp-editor-wrap input[type=button],#buddypress .wp-editor-wrap input[type=reset],#buddypress .wp-editor-wrap input[type=submit]{padding:0 8px 1px}#buddypress form [disabled=disabled]{cursor:default;opacity:.4}fieldset.register-site{margin-top:1em}fieldset.create-site{margin-bottom:2em}fieldset.create-site legend{margin-bottom:1em}fieldset.create-site label{margin-left:3em}.bp-screen-reader-text{position:absolute;margin:-1px;padding:0;height:1px;width:1px;overflow:hidden;clip:rect(0 0 0 0);border:0;word-wrap:normal!important}#buddypress a.loading,#buddypress input.loading{-webkit-animation:loader-pulsate .5s infinite ease-in-out alternate;-moz-animation:loader-pulsate .5s infinite ease-in-out alternate;border-color:#aaa}@-webkit-keyframes loader-pulsate{from{border-color:#aaa;-webkit-box-shadow:0 0 6px #ccc;box-shadow:0 0 6px #ccc}to{border-color:#ccc;-webkit-box-shadow:0 0 6px #f8f8f8;box-shadow:0 0 6px #f8f8f8}}@-moz-keyframes loader-pulsate{from{border-color:#aaa;-moz-box-shadow:0 0 6px #ccc;box-shadow:0 0 6px #ccc}to{border-color:#ccc;-moz-box-shadow:0 0 6px #f8f8f8;box-shadow:0 0 6px #f8f8f8}}#buddypress a.loading:hover,#buddypress input.loading:hover{color:#767676}#buddypress a.disabled,#buddypress button.disabled,#buddypress button.pending,#buddypress div.pending a,#buddypress input[type=submit].disabled,#buddypress input[type=submit].pending,#buddypress input[type=submit][disabled=disabled],#buddypress input[type=button].disabled,#buddypress input[type=button].pending,#buddypress input[type=reset].disabled,#buddypress input[type=reset].pending{border-color:#eee;color:#bbb;cursor:default}#buddypress a.disabled:hover,#buddypress button.disabled:hover,#buddypress button.pending:hover,#buddypress div.pending a:hover,#buddypress input[type=submit]:hover.disabled,#buddypress input[type=submit]:hover.pending,#buddypress input[type=button]:hover.disabled,#buddypress input[type=button]:hover.pending,#buddypress input[type=reset]:hover.disabled,#buddypress input[type=reset]:hover.pending{border-color:#eee;color:#bbb}#buddypress ul#topic-post-list{margin:0;width:auto}#buddypress ul#topic-post-list li{padding:15px;position:relative}#buddypress ul#topic-post-list li.alt{background:#f5f5f5}#buddypress ul#topic-post-list li div.poster-meta{color:#767676;margin-bottom:10px}#buddypress ul#topic-post-list li div.post-content{margin-right:54px}#buddypress div.topic-tags{font-size:80%}#buddypress div.admin-links{color:#767676;font-size:80%;position:absolute;top:15px;left:25px}#buddypress div#topic-meta{margin:0;padding:5px 19px 30px;position:relative}#buddypress div#topic-meta div.admin-links{left:19px;top:-36px}#buddypress div#topic-meta h3{margin:5px 0}#buddypress div#new-topic-post{display:none;margin:20px 0 0;padding:1px 0 0}#buddypress table.forum,#buddypress table.messages-notices,#buddypress table.notifications,#buddypress table.notifications-settings,#buddypress table.profile-fields,#buddypress table.profile-settings,#buddypress table.wp-profile-fields{width:100%}#buddypress table.forum thead tr,#buddypress table.messages-notices thead tr,#buddypress table.notifications thead tr,#buddypress table.notifications-settings thead tr,#buddypress table.profile-fields thead tr,#buddypress table.profile-settings thead tr,#buddypress table.wp-profile-fields thead tr{background:#eaeaea}#buddypress table#message-threads{clear:both}#buddypress table.profile-fields{margin-bottom:20px}#buddypress table tr td.thread-info p,#buddypress table.profile-fields p{margin:0}#buddypress table.profile-fields:last-child{margin-bottom:0}#buddypress table.profile-fields p:last-child{margin-top:0}#buddypress table.forum tr td,#buddypress table.forum tr th,#buddypress table.messages-notices tr td,#buddypress table.messages-notices tr th,#buddypress table.notifications tr td,#buddypress table.notifications tr th,#buddypress table.notifications-settings tr td,#buddypress table.notifications-settings tr th,#buddypress table.profile-fields tr td,#buddypress table.profile-fields tr th,#buddypress table.profile-settings tr td,#buddypress table.wp-profile-fields tr td,#buddypress table.wp-profile-fields tr th{padding:8px;vertical-align:middle}#buddypress table.forum tr td.label,#buddypress table.messages-notices tr td.label,#buddypress table.notifications tr td.label,#buddypress table.notifications-settings tr td.label,#buddypress table.profile-fields tr td.label,#buddypress table.wp-profile-fields tr td.label{border-left:1px solid #eaeaea;font-weight:700;width:25%}#buddypress #message-threads .thread-info{min-width:40%}#buddypress table tr td.thread-info p.thread-excerpt{color:#767676;font-size:80%;margin-top:3px}#buddypress table.forum td{text-align:center}#buddypress table.forum tr.alt td,#buddypress table.messages-notices tr.alt td,#buddypress table.notifications tr.alt td,#buddypress table.notifications-settings tr.alt td,#buddypress table.profile-fields tr.alt td,#buddypress table.profile-settings tr.alt td,#buddypress table.wp-profile-fields tr.alt td{background:#f5f5f5;color:#707070}#buddypress table.notification-settings{margin-bottom:20px;text-align:right}#buddypress #groups-notification-settings{margin-bottom:0}#buddypress table.notification-settings th.title,#buddypress table.profile-settings th.title{width:80%}#buddypress table.notification-settings .no,#buddypress table.notification-settings .yes{text-align:center;width:40px}#buddypress table.forum{margin:0;width:auto;clear:both}#buddypress table.forum tr.sticky td{font-size:110%;background:#fff9db;border-top:1px solid #ffe8c4;border-bottom:1px solid #ffe8c4}#buddypress table.forum tr.closed td.td-title{padding-right:35px}#buddypress table.forum td p.topic-text{color:#767676;font-size:100%}#buddypress table.forum tr>td:first-child,#buddypress table.forum tr>th:first-child{padding-right:15px}#buddypress table.forum tr>td:last-child,#buddypress table.forum tr>th:last-child{padding-left:15px}#buddypress table.forum td.td-group,#buddypress table.forum td.td-poster,#buddypress table.forum td.td-title,#buddypress table.forum tr th#th-group,#buddypress table.forum tr th#th-poster,#buddypress table.forum tr th#th-title{text-align:right}#buddypress table.forum tr td.td-title a.topic-title{font-size:110%}#buddypress table.forum td.td-freshness{white-space:nowrap}#buddypress table.forum td.td-freshness span.time-since{font-size:80%;color:#767676}#buddypress table.forum td img.avatar{float:none;margin:0 0 -8px 5px}#buddypress table.forum td.td-group,#buddypress table.forum td.td-poster{min-width:140px}#buddypress table.forum th#th-title{width:80%}#buddypress table.forum th#th-freshness{width:25%}#buddypress table.forum th#th-postcount{width:15%}#buddypress table.forum p.topic-meta{font-size:80%;margin:5px 0 0}#buddypress .item-body{margin:20px 0}#buddypress span.activity{display:inline-block;font-size:small;padding:0}#buddypress span.user-nicename{color:#767676;display:inline-block;font-size:120%;font-weight:700}#buddypress div#message p,#sitewide-notice p{font-weight:400;margin-top:3px;text-decoration:none;background-color:#ffd;border:1px solid #cb2;color:#440}#buddypress #item-header:after{clear:both;content:"";display:table}#buddypress div#item-header div#item-header-content{float:right;margin-right:0}#buddypress div#item-header h2{line-height:120%;margin:0 0 15px}#buddypress div#item-header h2 a{color:#767676;text-decoration:none}#buddypress div#item-header img.avatar{float:right;margin:0 0 19px 15px}#buddypress div#item-header h2{margin-bottom:5px}#buddypress div#item-header h2 span.highlight{font-size:60%;font-weight:400;line-height:170%;vertical-align:middle;display:inline-block}#buddypress div#item-header ul h5,#buddypress div#item-header ul hr,#buddypress div#item-header ul span,body.no-js #buddypress div#item-header .js-self-profile-button{display:none}#buddypress div#item-header h2 span.highlight span{background:#a1dcfa;color:#fff;cursor:pointer;font-weight:700;font-size:80%;margin-bottom:2px;padding:1px 4px;position:relative;left:-2px;top:-2px;vertical-align:middle}#buddypress div#item-header div#item-meta{font-size:80%;color:#767676;overflow:hidden;margin:15px 0 5px;padding-bottom:10px}#buddypress div#item-header div#item-actions{float:left;margin:0 15px 15px 0;text-align:left;width:20%}#buddypress div#item-header div#item-actions h2,#buddypress div#item-header div#item-actions h3{margin:0 0 5px}#buddypress div#item-header ul{margin-bottom:15px;overflow:hidden}#buddypress div#item-header ul li{float:left;list-style:none}#buddypress div#item-header ul img.avatar,#buddypress div#item-header ul.avatars img.avatar{height:30px;margin:2px;width:30px}#buddypress div#item-header a.button,#buddypress div#item-header div.generic-button{float:right;margin:10px 0 0 10px}#buddypress div#item-header div#message.info{line-height:80%}#buddypress ul.item-list{border-top:1px solid #eaeaea;width:100%;list-style:none;clear:both;margin:0;padding:0}body.activity-permalink #buddypress ul.item-list,body.activity-permalink #buddypress ul.item-list li.activity-item{border:none}#buddypress ul.item-list li{border-bottom:1px solid #eaeaea;padding:15px 0;margin:0;position:relative;list-style:none}#buddypress ul.single-line li{border:none}#buddypress ul.item-list li img.avatar{float:right;margin:0 0 0 10px}#buddypress ul.item-list li div.item-title,#buddypress ul.item-list li h3,#buddypress ul.item-list li h4{font-weight:400;font-size:90%;margin:0;width:75%}#buddypress ul.item-list li div.item-title span{color:#767676;font-size:80%}#buddypress ul.item-list li div.item-desc{color:#767676;font-size:80%;margin:10px 60px 0 0;width:50%}#buddypress ul.item-list li.group-no-avatar div.item-desc{margin-right:0}#buddypress ul.item-list li div.action{position:absolute;top:15px;left:0;text-align:left}#buddypress ul.item-list li div.meta{color:#767676;font-size:80%;margin-top:10px}#buddypress ul.item-list li h5 span.small{float:left;font-size:80%;font-weight:400}#buddypress div.item-list-tabs{background:0 0;clear:right;overflow:hidden}#buddypress div.item-list-tabs ul{margin:0;padding:0}#buddypress div.item-list-tabs ul li{float:right;margin:0;list-style:none}#buddypress div.item-list-tabs#subnav ul li{margin-top:0}#buddypress div.item-list-tabs ul li.last{float:left;margin:7px 0 0}#buddypress div.item-list-tabs#subnav ul li.last{margin-top:4px}#buddypress div.item-list-tabs ul li.last select{max-width:185px}#buddypress div.item-list-tabs ul li a,#buddypress div.item-list-tabs ul li span{display:block;padding:5px 10px;text-decoration:none}#buddypress div.item-list-tabs ul li a span{background:#eee;border-radius:50%;border:1px solid #ccc;color:#6c6c6c;display:inline;font-size:70%;margin-right:2px;padding:3px 6px;text-align:center;vertical-align:middle}#buddypress div.item-list-tabs ul li.current a,#buddypress div.item-list-tabs ul li.selected a{background-color:#eee;color:#555;opacity:.9;font-weight:700}#buddypress div.item-list-tabs ul li a:hover span,#buddypress div.item-list-tabs ul li.current a span,#buddypress div.item-list-tabs ul li.selected a span{background-color:#eee}#buddypress div.item-list-tabs ul li.current a span,#buddypress div.item-list-tabs ul li.selected a span{background-color:#fff}#buddypress div#item-nav ul li.loading a{background-position:12% 50%}#buddypress div.item-list-tabs#object-nav{margin-top:0}#buddypress div.item-list-tabs#subnav{background:0 0;margin:10px 0;overflow:hidden}#buddypress #admins-list li,#buddypress #members-list li,#buddypress #mods-list li{overflow:auto;list-style:none}#buddypress .group-members-list{width:100%;margin-top:1em;clear:both;overflow:auto}#buddypress div#message-thread div.message-metadata,.widget.buddypress div.avatar-block{overflow:hidden}#buddypress #item-buttons:empty{display:none}#buddypress #cover-image-container{position:relative;z-index:0}#buddypress #header-cover-image{background-color:#c5c5c5;background-position:center top;background-repeat:no-repeat;background-size:cover;border:0;display:block;right:0;margin:0;padding:0;position:absolute;top:0;width:100%;z-index:1}#buddypress #item-header-cover-image{padding:0 1em;position:relative;z-index:2}#buddypress table#message-threads tr.unread td{background:#fff9db;border-top:1px solid #ffe8c4;border-bottom:1px solid #ffe8c4;font-weight:700}#buddypress table#message-threads tr.unread td .activity,#buddypress table#message-threads tr.unread td .thread-excerpt,#buddypress table#message-threads tr.unread td.thread-options{font-weight:400}#buddypress li span.unread-count,#buddypress tr.unread span.unread-count{background:#d00;color:#fff;font-weight:700;padding:2px 8px}#buddypress div.item-list-tabs ul li a span.unread-count{padding:1px 6px;color:#fff}#buddypress div#message-thread div.message-box{margin:0;padding:15px}#buddypress div#message-thread div.alt{background:#f4f4f4}#buddypress div#message-thread p#message-recipients{margin:10px 0 20px}#buddypress div#message-thread img.avatar{float:right;margin:0 0 0 10px;vertical-align:middle}#buddypress div#message-thread strong{font-size:100%;margin:0}#buddypress div#message-thread strong a{text-decoration:none}#buddypress div#message-thread strong span.activity{margin-top:4px}#buddypress div#message-thread div.message-content{margin-right:45px}#buddypress div#message-thread div.message-options{text-align:left}#buddypress #message-threads img.avatar{max-width:none}#buddypress div.message-search{float:left;margin:0 20px}.message-metadata{position:relative}.message-star-actions{position:absolute;left:0;top:0}#buddypress a.message-action-star,#buddypress a.message-action-unstar{border-bottom:0;text-decoration:none;outline:0}a.message-action-star{opacity:.7}a.message-action-star:hover{opacity:1}.message-action-star span.icon:before,.message-action-unstar span.icon:before{font-family:dashicons;font-size:18px}.message-action-star span.icon:before{color:#767676;content:"\f154"}.message-action-unstar span.icon:before{color:#fcdd77;content:"\f155"}#buddypress div.profile h2{margin-bottom:auto;margin-top:15px}#buddypress #profile-edit-form ul.button-nav{margin-top:15px}body.no-js #buddypress .field-visibility-settings-close,body.no-js #buddypress .field-visibility-settings-toggle{display:none}#buddypress .field-visibility-settings{display:none;margin-top:10px}body.no-js #buddypress .field-visibility-settings{display:block}#buddypress .current-visibility-level{font-weight:700;font-style:normal}#buddypress .field-visibility-settings,#buddypress .field-visibility-settings-notoggle,#buddypress .field-visibility-settings-toggle{color:#707070}#buddypress .field-visibility-settings a,#buddypress .field-visibility-settings-toggle a{font-size:80%}body.register #buddypress div.page ul{list-style:none}#buddypress .standard-form .field-visibility-settings label{margin:0;font-weight:400}#buddypress .field-visibility-settings legend,#buddypress .field-visibility-settings-toggle{font-style:italic}#buddypress .field-visibility-settings .radio{list-style:none;margin-bottom:0}#buddypress .field-visibility select{margin:0}#buddypress .wp-editor-container{border:1px solid #dedede}#buddypress .html-active button.switch-html,#buddypress .tmce-active button.switch-tmce{border-bottom-color:transparent;border-bottom-right-radius:0;border-bottom-left-radius:0;background:#f5f5f5;color:#707070}#buddypress .standard-form .wp-editor-container textarea{width:100%;padding-top:0;padding-bottom:0}.widget.buddypress div.item-avatar img.avatar{float:right;margin:0 0 15px 10px}.widget.buddypress span.activity{display:inline-block;font-size:small;padding:0}.widget.buddypress div.item-options{font-size:90%;margin:0 0 1em;padding:1em 0}.widget.buddypress div.item{margin:0 0 1em}.widget.buddypress div.item-content,.widget.buddypress div.item-meta{font-size:11px;margin-right:50px}.widget.buddypress ul.item-list img.avatar{height:40px;margin-left:10px;width:40px}.widget.buddypress div.item-avatar img{height:40px;margin:1px;width:40px}.widget.buddypress #bp-login-widget-form label{display:block;margin:1rem 0 .5rem}.widget.buddypress #bp-login-widget-form #bp-login-widget-submit{margin-left:10px}.widget.buddypress .bp-login-widget-user-avatar{float:right}.bp-login-widget-user-avatar img.avatar{height:40px;width:40px}.widget.buddypress .bp-login-widget-user-links>div{padding-right:60px;margin-bottom:.5rem}.widget.buddypress .bp-login-widget-user-links>div.bp-login-widget-user-link a{font-weight:700}.widget.buddypress #friends-list,.widget.buddypress #groups-list,.widget.buddypress #members-list{margin-right:0;padding-right:0}.widget.buddypress #friends-list li,.widget.buddypress #groups-list li,.widget.buddypress #members-list li{clear:both;list-style-type:none}@media only screen and (max-width:480px){#buddypress div.dir-search{float:left;margin-top:-50px;text-align:left}#buddypress div.dir-search input[type=text]{margin-bottom:1em;width:50%}a.bp-title-button{margin-right:10px}#buddypress form.standard-form .main-column div.action{position:relative;margin-bottom:1em}#buddypress form.standard-form .main-column ul#friend-list h3,#buddypress form.standard-form .main-column ul#friend-list h4{width:100%}}@media only screen and (max-width:320px){#buddypress div.dir-search,#buddypress ul.item-list li div.action{margin-top:0;text-align:right;clear:right;float:right}#buddypress li#groups-order-select{clear:right;float:right}#buddypress ul.item-list li div.action{margin-right:70px;position:relative;top:0;left:0}#buddypress ul.item-list li div.item-desc{clear:right;float:right;margin:10px 0 0;width:auto}#buddypress li div.item{margin-right:70px;width:auto}#buddypress ul.item-list li div.meta{margin-top:0}#buddypress .item-desc p{margin:0 0 10px}#buddypress div.pagination .pag-count{margin-right:0}}@media only screen and (max-width:240px){#buddypress div.dir-search{float:right;margin:0}#buddypress div.dir-search input[type=text]{width:50%}#buddypress li#groups-order-select{float:right}#buddypress ul.item-list li img.avatar{width:30px;height:auto}#buddypress li div.item,#buddypress ul.item-list li div.action{margin-right:45px}h1 a.bp-title-button{clear:right;float:right;margin:10px 0 20px}} \ No newline at end of file +#buddypress div.pagination .pagination-links a:hover,#buddypress ul.button-nav li.current a{font-weight:700}#buddypress div.pagination{background:0 0;border:none;color:#767676;font-size:small;margin:0;position:relative;display:block;float:right;width:100%;padding:10px 0}#buddypress div.pagination .pag-count{float:right;margin-right:10px}#buddypress div.pagination .pagination-links{float:left;margin-left:10px}#buddypress div.pagination .pagination-links a,#buddypress div.pagination .pagination-links span{font-size:90%;padding:0 5px}#buddypress noscript div.pagination{margin-bottom:15px}#buddypress #nav-above{display:none}#buddypress .paged #nav-above{display:block}#buddypress img.wp-smiley{border:none!important;clear:none!important;float:none!important;margin:0!important;padding:0!important}#buddypress .clear{clear:right}#buddypress #activity-stream{margin-top:-5px}#buddypress #activity-stream p{margin:5px 0}#buddypress #item-body form#whats-new-form{margin:0;padding:0}#buddypress .home-page form#whats-new-form{border-bottom:none;padding-bottom:0}#buddypress form#whats-new-form #whats-new-avatar{float:right}#buddypress form#whats-new-form #whats-new-content{margin-right:55px;padding:0 20px 20px 0}#buddypress form#whats-new-form p.activity-greeting{line-height:.5em;margin-bottom:15px;margin-right:75px}#buddypress form#whats-new-form textarea{background:#fff;box-sizing:border-box;color:#555;font-family:inherit;font-size:medium;height:2.2em;line-height:1.4;padding:6px;width:100%}body.no-js #buddypress form#whats-new-form textarea{height:50px}#buddypress form#whats-new-form #whats-new-options select{max-width:200px;margin-top:12px}#buddypress form#whats-new-form #whats-new-submit{float:left;margin-top:12px}#buddypress #whats-new-options:after{clear:both;content:"";display:table}body.no-js #buddypress #whats-new-options{height:auto}#buddypress #whats-new:focus{border-color:rgba(31,179,221,.9)!important;outline-color:rgba(31,179,221,.9)}#buddypress ul.activity-list li{overflow:hidden;padding:15px 0 0;list-style:none}#buddypress .activity-list .activity-avatar{float:right}#buddypress ul.item-list.activity-list li.has-comments{padding-bottom:15px}body.activity-permalink #buddypress ul.activity-list li.has-comments{padding-bottom:0}#buddypress .activity-list li.mini{font-size:80%;position:relative}#buddypress .activity-list li.mini .activity-avatar img.FB_profile_pic,#buddypress .activity-list li.mini .activity-avatar img.avatar{height:20px;margin-right:30px;width:20px}#buddypress .activity-permalink .activity-list li.mini .activity-avatar img.FB_profile_pic,#buddypress .activity-permalink .activity-list li.mini .activity-avatar img.avatar{height:auto;margin-right:0;width:auto}body.activity-permalink #buddypress .activity-list>li:first-child{padding-top:0}#buddypress .activity-list li .activity-content{position:relative}#buddypress .activity-list li.mini .activity-content p{margin:0}#buddypress .activity-list li.mini .activity-comments{clear:both;font-size:120%}body.activity-permalink #buddypress li.mini .activity-meta{margin-top:4px}#buddypress .activity-list li .activity-inreplyto{color:#767676;font-size:80%}#buddypress .activity-list li .activity-inreplyto>p{margin:0;display:inline}#buddypress .activity-list li .activity-inreplyto blockquote,#buddypress .activity-list li .activity-inreplyto div.activity-inner{background:0 0;border:none;display:inline;margin:0;overflow:hidden;padding:0}#buddypress .activity-list .activity-content{margin:0 70px 0 0}body.activity-permalink #buddypress .activity-list li .activity-content{border:none;font-size:100%;line-height:150%;margin-right:170px;margin-left:0;padding:0}body.activity-permalink #buddypress .activity-list li .activity-header>p{margin:0;padding:5px 0 0}#buddypress .activity-list .activity-content .activity-header,#buddypress .activity-list .activity-content .comment-header{color:#767676;line-height:220%}#buddypress .activity-header{margin-left:20px}#buddypress .acomment-meta a,#buddypress .activity-header a,#buddypress .comment-meta a{text-decoration:none}#buddypress .activity-list .activity-content .activity-header img.avatar{float:none!important;margin:0 0 -8px 5px!important}#buddypress a.bp-secondary-action,#buddypress span.highlight{font-size:80%;padding:0;margin-left:5px;text-decoration:none}#buddypress .activity-list .activity-content .activity-inner,#buddypress .activity-list .activity-content blockquote{margin:10px 0 5px 10px;overflow:hidden}#buddypress .activity-list li.new_forum_post .activity-content .activity-inner,#buddypress .activity-list li.new_forum_topic .activity-content .activity-inner{border-right:2px solid #EAEAEA;margin-right:5px;padding-right:10px}body.activity-permalink #buddypress .activity-content .activity-inner,body.activity-permalink #buddypress .activity-content blockquote{margin-right:0;margin-top:5px}#buddypress .activity-inner>p{word-wrap:break-word}#buddypress .activity-inner>.activity-inner,#buddypress .activity-inner>blockquote{margin:0}#buddypress .activity-list .activity-content img.thumbnail{border:2px solid #eee;float:right;margin:0 0 5px 10px}#buddypress .activity-read-more{margin-right:1em;white-space:nowrap}#buddypress .activity-list li.load-more,#buddypress .activity-list li.load-newest{background:#f0f0f0;font-size:110%;margin:15px 0;padding:10px 15px;text-align:center}#buddypress .activity-list li.load-more a,#buddypress .activity-list li.load-newest a{color:#4D4D4D}#buddypress div.activity-meta{margin:18px 0 0}body.activity-permalink #buddypress div.activity-meta{margin-bottom:6px}#buddypress div.activity-meta a{padding:4px 8px}#buddypress a.activity-time-since{color:#767676;text-decoration:none}#buddypress a.activity-time-since:hover{color:#767676;text-decoration:underline}#buddypress #reply-title small a,#buddypress a.bp-primary-action{font-size:80%;margin-left:5px;text-decoration:none}#buddypress #reply-title small a span,#buddypress a.bp-primary-action span{background:#767676;color:#fff;font-size:90%;margin-right:2px;padding:0 5px}#buddypress #reply-title small a:hover span,#buddypress a.bp-primary-action:hover span{background:#555;color:#fff}#buddypress div.activity-comments{margin:0 70px 0 0;overflow:hidden;position:relative;width:auto;clear:both}body.activity-permalink #buddypress div.activity-comments{background:0 0;margin-right:170px;width:auto}#buddypress div.activity-comments>ul{padding:0 10px 0 0}#buddypress div.activity-comments ul,#buddypress div.activity-comments ul li{border:none;list-style:none}#buddypress div.activity-comments ul{clear:both;margin:0}#buddypress div.activity-comments ul li{border-top:1px solid #eee;padding:10px 0 0}body.activity-permalink #buddypress .activity-list li.mini .activity-comments{clear:none;margin-top:0}body.activity-permalink #buddypress div.activity-comments ul li{border-width:1px;padding:10px 0 0}#buddypress div.activity-comments>ul>li:first-child{border-top:none}#buddypress div.activity-comments ul li:last-child{margin-bottom:0}#buddypress div.activity-comments ul li>ul{margin-right:30px;margin-top:0;padding-right:10px}body.activity-permalink #buddypress div.activity-comments ul li>ul{margin-top:10px}body.activity-permalink #buddypress div.activity-comments>ul{padding:0 15px 0 10px}#buddypress div.activity-comments div.acomment-avatar img{border-width:1px;float:right;height:25px;margin-left:10px;width:25px}#buddypress div.activity-comments div.acomment-content{font-size:80%;margin:5px 40px 0 0}#buddypress div.acomment-content .activity-delete-link,#buddypress div.acomment-content .comment-header,#buddypress div.acomment-content .time-since{display:none}body.activity-permalink #buddypress div.activity-comments div.acomment-content{font-size:90%}#buddypress div.activity-comments div.acomment-meta{color:#767676;font-size:80%}#buddypress div.activity-comments form.ac-form{display:none;padding:10px}#buddypress div.activity-comments li form.ac-form{margin-left:15px;clear:both}#buddypress div.activity-comments form.root{margin-right:0}#buddypress div.activity-comments div#message{margin-top:15px;margin-bottom:0}#buddypress div.activity-comments form .ac-textarea{background:#fff;border:1px inset #ccc;margin-bottom:10px;padding:8px}#buddypress div.activity-comments form textarea{border:none;background:0 0;box-shadow:none;outline:0;color:#555;font-family:inherit;font-size:100%;height:60px;padding:0;margin:0;width:100%}#buddypress div.activity-comments form input{margin-top:5px}#buddypress div.activity-comments form div.ac-reply-avatar{float:right}#buddypress div.ac-reply-avatar img{border:1px solid #eee}#buddypress div.activity-comments form div.ac-reply-content{color:#767676;margin-right:50px;padding-right:15px}#buddypress div.activity-comments form div.ac-reply-content a{text-decoration:none}#buddypress .acomment-options{float:right;margin:5px 40px 5px 0}#buddypress .acomment-options a{color:#767676}#buddypress .acomment-options a:hover{color:inherit}#buddypress div.dir-search{float:left;margin:-39px 0 0}#buddypress div.dir-search input[type=text],#buddypress li.groups-members-search input[type=text]{font-size:90%;padding:1px 3px}#buddypress .current-member-type{font-style:italic}#buddypress .dir-form{clear:both}#buddypress div#message{margin:0 0 15px}#buddypress #message.info{margin-bottom:0}#buddypress div#message.updated{clear:both;display:block}#buddypress div#message p,#sitewide-notice p{font-size:90%;display:block;padding:10px 15px}#buddypress div#message.error p{background-color:#fdc;border:1px solid #a00;clear:right;color:#800}#buddypress div#message.warning p{background-color:#ffe0af;border:1px solid #ffd087;clear:right;color:#800}#buddypress div#message.updated p{background-color:#efc;border:1px solid #591;color:#250}#buddypress #pass-strength-result{background-color:#eee;border-color:#ddd;border-style:solid;border-width:1px;display:none;margin:5px 0 5px 5px;padding:5px;text-align:center;width:150px}#buddypress .standard-form #basic-details-section #pass-strength-result{width:35%}#buddypress #pass-strength-result.bad,#buddypress #pass-strength-result.error{background-color:#ffb78c;border-color:#ff853c!important;display:block}#buddypress #pass-strength-result.good{background-color:#ffec8b;border-color:#fc0!important;display:block}#buddypress #pass-strength-result.short{background-color:#ffa0a0;border-color:#f04040!important;display:block}#buddypress #pass-strength-result.strong{background-color:#c3ff88;border-color:#8dff1c!important;display:block}#buddypress .standard-form#signup_form div div.error{background:#faa;color:#a00;margin:0 0 10px;padding:6px;width:90%}#buddypress div.accept,#buddypress div.reject{float:right;margin-right:10px}#buddypress ul.button-nav li{float:right;margin:0 0 10px 10px;list-style:none}#sitewide-notice #message{right:2%;position:fixed;top:1em;width:96%;z-index:9999}#sitewide-notice.admin-bar-on #message{top:3.3em}#sitewide-notice strong{display:block;margin-bottom:-1em}#buddypress form fieldset{border:0;padding:0}#buddypress .dir-search input[type=search],#buddypress .dir-search input[type=text],#buddypress .groups-members-search input[type=search],#buddypress .groups-members-search input[type=text],#buddypress .standard-form input[type=color],#buddypress .standard-form input[type=date],#buddypress .standard-form input[type=datetime-local],#buddypress .standard-form input[type=datetime],#buddypress .standard-form input[type=email],#buddypress .standard-form input[type=month],#buddypress .standard-form input[type=number],#buddypress .standard-form input[type=password],#buddypress .standard-form input[type=range],#buddypress .standard-form input[type=search],#buddypress .standard-form input[type=tel],#buddypress .standard-form input[type=text],#buddypress .standard-form input[type=time],#buddypress .standard-form input[type=url],#buddypress .standard-form input[type=week],#buddypress .standard-form select,#buddypress .standard-form textarea{border:1px solid #ccc;background:#fafafa;border-radius:0;color:#737373;font:inherit;font-size:100%;padding:6px}#buddypress .standard-form select{padding:3px}#buddypress .standard-form input[type=password]{margin-bottom:5px}#buddypress .standard-form label,#buddypress .standard-form legend,#buddypress .standard-form span.label{display:block;font-weight:700;margin:15px 0 5px;width:auto}#buddypress .standard-form #invite-list label,#buddypress .standard-form p label{font-weight:400;margin:auto}#buddypress .standard-form .checkbox label,#buddypress .standard-form .radio label{color:#767676;font-size:100%;font-weight:400;margin:5px 0 0}#buddypress .standard-form .checkbox label input,#buddypress .standard-form .radio label input{margin-left:3px}#buddypress .standard-form#sidebar-login-form label{margin-top:5px}#buddypress .standard-form input[type=text]{width:75%}#buddypress .standard-form#sidebar-login-form input[type=password],#buddypress .standard-form#sidebar-login-form input[type=text]{padding:4px;width:95%}#buddypress .standard-form #basic-details-section input[type=password],#buddypress .standard-form #blog-details-section input#signup_blog_url{width:35%}#buddypress #commentform input[type=text],#buddypress #commentform textarea,#buddypress .form-allowed-tags,#buddypress .standard-form#signup_form input[type=text],#buddypress .standard-form#signup_form textarea{width:90%}#buddypress .standard-form#signup_form div.submit{float:left}#buddypress div#signup-avatar img{margin:0 0 10px 15px}#buddypress .standard-form textarea{width:75%;height:120px}#buddypress .standard-form textarea#message_content{height:200px}#buddypress .standard-form#send-reply textarea{width:97.5%}#buddypress .standard-form p.description{color:#767676;font-size:80%;margin:5px 0}#buddypress .standard-form div.submit{clear:both;padding:15px 0 0}#buddypress .standard-form p.submit{margin-bottom:0;padding:15px 0 0}#buddypress .standard-form div.submit input{margin-left:15px}#buddypress .standard-form div.radio ul{margin:10px 38px 15px 0;list-style:disc}#buddypress .standard-form div.radio ul li{margin-bottom:5px}#buddypress .standard-form a.clear-value{display:block;margin-top:5px;outline:0}#buddypress .standard-form #basic-details-section,#buddypress .standard-form #blog-details-section,#buddypress .standard-form #profile-details-section{float:right;width:48%}#buddypress .standard-form #profile-details-section{float:left}#buddypress #notifications-bulk-management,#buddypress .standard-form #blog-details-section{clear:right}body.no-js #buddypress #delete_inbox_messages,body.no-js #buddypress #delete_sentbox_messages,body.no-js #buddypress #message-type-select,body.no-js #buddypress #messages-bulk-management #select-all-messages,body.no-js #buddypress #notifications-bulk-management #select-all-notifications,body.no-js #buddypress label[for=message-type-select]{display:none}#buddypress .standard-form input:focus,#buddypress .standard-form select:focus,#buddypress .standard-form textarea:focus{background:#fafafa;color:#555}#buddypress form#send-invite-form{margin-top:20px}#buddypress div#invite-list{background:#f5f5f5;height:400px;margin:0 0 10px;overflow:auto;padding:5px;width:160px}#buddypress .comment-reply-link,#buddypress .generic-button a,#buddypress .standard-form button,#buddypress a.button,#buddypress input[type=button],#buddypress input[type=reset],#buddypress input[type=submit],#buddypress ul.button-nav li a,a.bp-title-button{background:#fff;border:1px solid #ccc;color:#767676;font-size:small;cursor:pointer;outline:0;padding:4px 10px;text-align:center;text-decoration:none}#buddypress .comment-reply-link:hover,#buddypress .standard-form button:hover,#buddypress a.button:focus,#buddypress a.button:hover,#buddypress div.generic-button a:hover,#buddypress input[type=button]:hover,#buddypress input[type=reset]:hover,#buddypress input[type=submit]:hover,#buddypress ul.button-nav li a:hover,#buddypress ul.button-nav li.current a{background:#ededed;border:1px solid #bbb;color:#555;outline:0;text-decoration:none}#buddypress form.standard-form .left-menu{float:right}#buddypress form.standard-form .left-menu #invite-list ul{margin:1%;list-style:none}#buddypress form.standard-form .left-menu #invite-list ul li{margin:0 1% 0 0}#buddypress form.standard-form .main-column{margin-right:190px}#buddypress form.standard-form .main-column ul#friend-list{clear:none;float:right}#buddypress form.standard-form .main-column ul#friend-list h3,#buddypress form.standard-form .main-column ul#friend-list h4{clear:none}#buddypress .wp-editor-wrap a.button,#buddypress .wp-editor-wrap button,#buddypress .wp-editor-wrap input[type=button],#buddypress .wp-editor-wrap input[type=reset],#buddypress .wp-editor-wrap input[type=submit]{padding:0 8px 1px}#buddypress form [disabled=disabled]{cursor:default;opacity:.4}fieldset.register-site{margin-top:1em}fieldset.create-site{margin-bottom:2em}fieldset.create-site legend{margin-bottom:1em}fieldset.create-site label{margin-left:3em}.bp-screen-reader-text{clip:rect(1px,1px,1px,1px);height:1px;overflow:hidden;position:absolute!important;width:1px;word-wrap:normal!important}.bp-screen-reader-text:focus{background-color:#f1f1f1;-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 0 2px 2px rgba(0,0,0,.6);box-shadow:0 0 2px 2px rgba(0,0,0,.6);clip:auto!important;color:#21759b;display:block;font-size:14px;font-size:.875rem;font-weight:700;height:auto;right:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}#buddypress a.loading,#buddypress input.loading{-webkit-animation:loader-pulsate .5s infinite ease-in-out alternate;-moz-animation:loader-pulsate .5s infinite ease-in-out alternate;border-color:#aaa}@-webkit-keyframes loader-pulsate{from{border-color:#aaa;-webkit-box-shadow:0 0 6px #ccc;box-shadow:0 0 6px #ccc}to{border-color:#ccc;-webkit-box-shadow:0 0 6px #f8f8f8;box-shadow:0 0 6px #f8f8f8}}@-moz-keyframes loader-pulsate{from{border-color:#aaa;-moz-box-shadow:0 0 6px #ccc;box-shadow:0 0 6px #ccc}to{border-color:#ccc;-moz-box-shadow:0 0 6px #f8f8f8;box-shadow:0 0 6px #f8f8f8}}#buddypress a.loading:hover,#buddypress input.loading:hover{color:#767676}#buddypress a.disabled,#buddypress button.disabled,#buddypress button.pending,#buddypress div.pending a,#buddypress input[type=submit].disabled,#buddypress input[type=submit].pending,#buddypress input[type=submit][disabled=disabled],#buddypress input[type=button].disabled,#buddypress input[type=button].pending,#buddypress input[type=reset].disabled,#buddypress input[type=reset].pending{border-color:#eee;color:#bbb;cursor:default}#buddypress a.disabled:hover,#buddypress button.disabled:hover,#buddypress button.pending:hover,#buddypress div.pending a:hover,#buddypress input[type=submit]:hover.disabled,#buddypress input[type=submit]:hover.pending,#buddypress input[type=button]:hover.disabled,#buddypress input[type=button]:hover.pending,#buddypress input[type=reset]:hover.disabled,#buddypress input[type=reset]:hover.pending{border-color:#eee;color:#bbb}#buddypress ul#topic-post-list{margin:0;width:auto}#buddypress ul#topic-post-list li{padding:15px;position:relative}#buddypress ul#topic-post-list li.alt{background:#f5f5f5}#buddypress ul#topic-post-list li div.poster-meta{color:#767676;margin-bottom:10px}#buddypress ul#topic-post-list li div.post-content{margin-right:54px}#buddypress div.topic-tags{font-size:80%}#buddypress div.admin-links{color:#767676;font-size:80%;position:absolute;top:15px;left:25px}#buddypress div#topic-meta{margin:0;padding:5px 19px 30px;position:relative}#buddypress div#topic-meta div.admin-links{left:19px;top:-36px}#buddypress div#topic-meta h3{margin:5px 0}#buddypress div#new-topic-post{display:none;margin:20px 0 0;padding:1px 0 0}#buddypress table.forum,#buddypress table.messages-notices,#buddypress table.notifications,#buddypress table.notifications-settings,#buddypress table.profile-fields,#buddypress table.profile-settings,#buddypress table.wp-profile-fields{width:100%}#buddypress table.forum thead tr,#buddypress table.messages-notices thead tr,#buddypress table.notifications thead tr,#buddypress table.notifications-settings thead tr,#buddypress table.profile-fields thead tr,#buddypress table.profile-settings thead tr,#buddypress table.wp-profile-fields thead tr{background:#eaeaea}#buddypress table#message-threads{clear:both}#buddypress table.profile-fields{margin-bottom:20px}#buddypress table tr td.thread-info p,#buddypress table.profile-fields p{margin:0}#buddypress table.profile-fields:last-child{margin-bottom:0}#buddypress table.profile-fields p:last-child{margin-top:0}#buddypress table.forum tr td,#buddypress table.forum tr th,#buddypress table.messages-notices tr td,#buddypress table.messages-notices tr th,#buddypress table.notifications tr td,#buddypress table.notifications tr th,#buddypress table.notifications-settings tr td,#buddypress table.notifications-settings tr th,#buddypress table.profile-fields tr td,#buddypress table.profile-fields tr th,#buddypress table.profile-settings tr td,#buddypress table.wp-profile-fields tr td,#buddypress table.wp-profile-fields tr th{padding:8px;vertical-align:middle}#buddypress table.forum tr td.label,#buddypress table.messages-notices tr td.label,#buddypress table.notifications tr td.label,#buddypress table.notifications-settings tr td.label,#buddypress table.profile-fields tr td.label,#buddypress table.wp-profile-fields tr td.label{border-left:1px solid #eaeaea;font-weight:700;width:25%}#buddypress #message-threads .thread-info{min-width:40%}#buddypress table tr td.thread-info p.thread-excerpt{color:#767676;font-size:80%;margin-top:3px}#buddypress table.forum td{text-align:center}#buddypress table.forum tr.alt td,#buddypress table.messages-notices tr.alt td,#buddypress table.notifications tr.alt td,#buddypress table.notifications-settings tr.alt td,#buddypress table.profile-fields tr.alt td,#buddypress table.profile-settings tr.alt td,#buddypress table.wp-profile-fields tr.alt td{background:#f5f5f5;color:#707070}#buddypress table.notification-settings{margin-bottom:20px;text-align:right}#buddypress #groups-notification-settings{margin-bottom:0}#buddypress table.notification-settings td:first-child,#buddypress table.notification-settings th.icon,#buddypress table.notifications td:first-child,#buddypress table.notifications th.icon{display:none}#buddypress table.notification-settings th.title,#buddypress table.profile-settings th.title{width:80%}#buddypress table.notification-settings .no,#buddypress table.notification-settings .yes{text-align:center;width:40px}#buddypress table.forum{margin:0;width:auto;clear:both}#buddypress table.forum tr.sticky td{font-size:110%;background:#fff9db;border-top:1px solid #ffe8c4;border-bottom:1px solid #ffe8c4}#buddypress table.forum tr.closed td.td-title{padding-right:35px}#buddypress table.forum td p.topic-text{color:#767676;font-size:100%}#buddypress table.forum tr>td:first-child,#buddypress table.forum tr>th:first-child{padding-right:15px}#buddypress table.forum tr>td:last-child,#buddypress table.forum tr>th:last-child{padding-left:15px}#buddypress table.forum td.td-group,#buddypress table.forum td.td-poster,#buddypress table.forum td.td-title,#buddypress table.forum tr th#th-group,#buddypress table.forum tr th#th-poster,#buddypress table.forum tr th#th-title{text-align:right}#buddypress table.forum tr td.td-title a.topic-title{font-size:110%}#buddypress table.forum td.td-freshness{white-space:nowrap}#buddypress table.forum td.td-freshness span.time-since{font-size:80%;color:#767676}#buddypress table.forum td img.avatar{float:none;margin:0 0 -8px 5px}#buddypress table.forum td.td-group,#buddypress table.forum td.td-poster{min-width:140px}#buddypress table.forum th#th-title{width:80%}#buddypress table.forum th#th-freshness{width:25%}#buddypress table.forum th#th-postcount{width:15%}#buddypress table.forum p.topic-meta{font-size:80%;margin:5px 0 0}#buddypress .item-body{margin:20px 0}#buddypress span.activity{display:inline-block;font-size:small;padding:0}#buddypress span.user-nicename{color:#767676;display:inline-block;font-size:120%;font-weight:700}#buddypress div#message p,#sitewide-notice p{font-weight:400;margin-top:3px;text-decoration:none;background-color:#ffd;border:1px solid #cb2;color:#440}#buddypress #item-header:after{clear:both;content:"";display:table}#buddypress div#item-header div#item-header-content{float:right;margin-right:0}#buddypress div#item-header h2{line-height:120%;margin:0 0 15px}#buddypress div#item-header h2 a{color:#767676;text-decoration:none}#buddypress div#item-header img.avatar{float:right;margin:0 0 19px 15px}#buddypress div#item-header h2{margin-bottom:5px}#buddypress div#item-header h2 span.highlight{font-size:60%;font-weight:400;line-height:170%;vertical-align:middle;display:inline-block}#buddypress div#item-header ul h5,#buddypress div#item-header ul hr,#buddypress div#item-header ul span,body.no-js #buddypress div#item-header .js-self-profile-button{display:none}#buddypress div#item-header h2 span.highlight span{background:#a1dcfa;color:#fff;cursor:pointer;font-weight:700;font-size:80%;margin-bottom:2px;padding:1px 4px;position:relative;left:-2px;top:-2px;vertical-align:middle}#buddypress div#item-header div#item-meta{font-size:80%;color:#767676;overflow:hidden;margin:15px 0 5px;padding-bottom:10px}#buddypress div#item-header div#item-actions{float:left;margin:0 15px 15px 0;text-align:left;width:20%}#buddypress div#item-header div#item-actions h2,#buddypress div#item-header div#item-actions h3{margin:0 0 5px}#buddypress div#item-header ul{margin-bottom:15px;overflow:hidden}#buddypress div#item-header ul li{float:left;list-style:none}#buddypress div#item-header ul img.avatar,#buddypress div#item-header ul.avatars img.avatar{height:30px;margin:2px;width:30px}#buddypress div#item-header a.button,#buddypress div#item-header div.generic-button{float:right;margin:10px 0 0 10px}#buddypress div#item-header div#message.info{line-height:80%}#buddypress ul.item-list{border-top:1px solid #eaeaea;width:100%;list-style:none;clear:both;margin:0;padding:0}body.activity-permalink #buddypress ul.item-list,body.activity-permalink #buddypress ul.item-list li.activity-item{border:none}#buddypress ul.item-list li{border-bottom:1px solid #eaeaea;padding:15px 0;margin:0;position:relative;list-style:none}#buddypress ul.single-line li{border:none}#buddypress ul.item-list li img.avatar{float:right;margin:0 0 0 10px}#buddypress ul.item-list li div.item-title,#buddypress ul.item-list li h3,#buddypress ul.item-list li h4{font-weight:400;font-size:90%;margin:0;width:75%}#buddypress ul.item-list li div.item-title span{color:#767676;font-size:80%}#buddypress ul.item-list li div.item-desc{color:#767676;font-size:80%;margin:10px 60px 0 0;width:50%}#buddypress ul.item-list li.group-no-avatar div.item-desc{margin-right:0}#buddypress ul.item-list li div.action{position:absolute;top:15px;left:0;text-align:left}#buddypress ul.item-list li div.meta{color:#767676;font-size:80%;margin-top:10px}#buddypress ul.item-list li h5 span.small{float:left;font-size:80%;font-weight:400}#buddypress div.item-list-tabs{background:0 0;clear:right;overflow:hidden}#buddypress div.item-list-tabs ul{margin:0;padding:0}#buddypress div.item-list-tabs ul li{float:right;margin:0;list-style:none}#buddypress div.item-list-tabs#subnav ul li{margin-top:0}#buddypress div.item-list-tabs ul li.last{float:left;margin:7px 0 0}#buddypress div.item-list-tabs#subnav ul li.last{margin-top:4px}#buddypress div.item-list-tabs ul li.last select{max-width:185px}#buddypress div.item-list-tabs ul li a,#buddypress div.item-list-tabs ul li span{display:block;padding:5px 10px;text-decoration:none}#buddypress div.item-list-tabs ul li a span{background:#eee;border-radius:50%;border:1px solid #ccc;color:#6c6c6c;display:inline;font-size:70%;margin-right:2px;padding:3px 6px;text-align:center;vertical-align:middle}#buddypress div.item-list-tabs ul li.current a,#buddypress div.item-list-tabs ul li.selected a{background-color:#eee;color:#555;opacity:.9;font-weight:700}#buddypress div.item-list-tabs ul li a:hover span,#buddypress div.item-list-tabs ul li.current a span,#buddypress div.item-list-tabs ul li.selected a span{background-color:#eee}#buddypress div.item-list-tabs ul li.current a span,#buddypress div.item-list-tabs ul li.selected a span{background-color:#fff}#buddypress div#item-nav ul li.loading a{background-position:12% 50%}#buddypress div.item-list-tabs#object-nav{margin-top:0}#buddypress div.item-list-tabs#subnav{background:0 0;margin:10px 0;overflow:hidden}#buddypress #admins-list li,#buddypress #members-list li,#buddypress #mods-list li{overflow:auto;list-style:none}#buddypress .group-members-list{width:100%;margin-top:1em;clear:both;overflow:auto}#buddypress div#message-thread div.message-metadata,.widget.buddypress div.avatar-block{overflow:hidden}#buddypress #item-buttons:empty{display:none}#buddypress #cover-image-container{position:relative;z-index:0}#buddypress #header-cover-image{background-color:#c5c5c5;background-position:center top;background-repeat:no-repeat;background-size:cover;border:0;display:block;right:0;margin:0;padding:0;position:absolute;top:0;width:100%;z-index:1}#buddypress #item-header-cover-image{padding:0 1em;position:relative;z-index:2}#buddypress table#message-threads tr.unread td{background:#fff9db;border-top:1px solid #ffe8c4;border-bottom:1px solid #ffe8c4;font-weight:700}#buddypress table#message-threads tr.unread td .activity,#buddypress table#message-threads tr.unread td .thread-excerpt,#buddypress table#message-threads tr.unread td.thread-options{font-weight:400}#buddypress li span.unread-count,#buddypress tr.unread span.unread-count{background:#d00;color:#fff;font-weight:700;padding:2px 8px}#buddypress div.item-list-tabs ul li a span.unread-count{padding:1px 6px;color:#fff}#buddypress div#message-thread div.message-box{margin:0;padding:15px}#buddypress div#message-thread div.alt{background:#f4f4f4}#buddypress div#message-thread p#message-recipients{margin:10px 0 20px}#buddypress div#message-thread img.avatar{float:right;margin:0 0 0 10px;vertical-align:middle}#buddypress div#message-thread strong{font-size:100%;margin:0}#buddypress div#message-thread strong a{text-decoration:none}#buddypress div#message-thread strong span.activity{margin-top:4px}#buddypress div#message-thread div.message-content{margin-right:45px}#buddypress div#message-thread div.message-options{text-align:left}#buddypress #message-threads img.avatar{max-width:none}#buddypress div.message-search{float:left;margin:0 20px}.message-metadata{position:relative}.message-star-actions{position:absolute;left:0;top:0}#buddypress a.message-action-star,#buddypress a.message-action-unstar{border-bottom:0;text-decoration:none;outline:0}a.message-action-star{opacity:.7}a.message-action-star:hover{opacity:1}.message-action-star span.icon:before,.message-action-unstar span.icon:before{font-family:dashicons;font-size:18px}.message-action-star span.icon:before{color:#767676;content:"\f154"}.message-action-unstar span.icon:before{color:#fcdd77;content:"\f155"}#buddypress div.profile h2{margin-bottom:auto;margin-top:15px}#buddypress #profile-edit-form ul.button-nav{margin-top:15px}body.no-js #buddypress .field-visibility-settings-close,body.no-js #buddypress .field-visibility-settings-toggle{display:none}#buddypress .field-visibility-settings{display:none;margin-top:10px}body.no-js #buddypress .field-visibility-settings{display:block}#buddypress .current-visibility-level{font-weight:700;font-style:normal}#buddypress .field-visibility-settings,#buddypress .field-visibility-settings-notoggle,#buddypress .field-visibility-settings-toggle{color:#707070}#buddypress .field-visibility-settings a,#buddypress .field-visibility-settings-toggle a{font-size:80%}body.register #buddypress div.page ul{list-style:none}#buddypress .standard-form .field-visibility-settings label{margin:0;font-weight:400}#buddypress .field-visibility-settings legend,#buddypress .field-visibility-settings-toggle{font-style:italic}#buddypress .field-visibility-settings .radio{list-style:none;margin-bottom:0}#buddypress .field-visibility select{margin:0}#buddypress .wp-editor-container{border:1px solid #dedede}#buddypress .html-active button.switch-html,#buddypress .tmce-active button.switch-tmce{border-bottom-color:transparent;border-bottom-right-radius:0;border-bottom-left-radius:0;background:#f5f5f5;color:#707070}#buddypress .standard-form .wp-editor-container textarea{width:100%;padding-top:0;padding-bottom:0}.widget.buddypress div.item-avatar img.avatar{float:right;margin:0 0 15px 10px}.widget.buddypress span.activity{display:inline-block;font-size:small;padding:0}.widget.buddypress div.item-options{font-size:90%;margin:0 0 1em;padding:1em 0}.widget.buddypress div.item{margin:0 0 1em}.widget.buddypress div.item-content,.widget.buddypress div.item-meta{font-size:11px;margin-right:50px}.widget.buddypress ul.item-list img.avatar{height:40px;margin-left:10px;width:40px}.widget.buddypress div.item-avatar img{height:40px;margin:1px;width:40px}.widget.buddypress #bp-login-widget-form label{display:block;margin:1rem 0 .5rem}.widget.buddypress #bp-login-widget-form #bp-login-widget-submit{margin-left:10px}.widget.buddypress .bp-login-widget-user-avatar{float:right}.bp-login-widget-user-avatar img.avatar{height:40px;width:40px}.widget.buddypress .bp-login-widget-user-links>div{padding-right:60px;margin-bottom:.5rem}.widget.buddypress .bp-login-widget-user-links>div.bp-login-widget-user-link a{font-weight:700}.widget.buddypress #friends-list,.widget.buddypress #groups-list,.widget.buddypress #members-list{margin-right:0;padding-right:0}.widget.buddypress #friends-list li,.widget.buddypress #groups-list li,.widget.buddypress #members-list li{clear:both;list-style-type:none}@media only screen and (max-width:480px){#buddypress div.dir-search{float:left;margin-top:-50px;text-align:left}#buddypress div.dir-search input[type=text]{margin-bottom:1em;width:50%}a.bp-title-button{margin-right:10px}#buddypress form.standard-form .main-column div.action{position:relative;margin-bottom:1em}#buddypress form.standard-form .main-column ul#friend-list h3,#buddypress form.standard-form .main-column ul#friend-list h4{width:100%}}@media only screen and (max-width:320px){#buddypress div.dir-search,#buddypress ul.item-list li div.action{margin-top:0;text-align:right;clear:right;float:right}#buddypress li#groups-order-select{clear:right;float:right}#buddypress ul.item-list li div.action{margin-right:70px;position:relative;top:0;left:0}#buddypress ul.item-list li div.item-desc{clear:right;float:right;margin:10px 0 0;width:auto}#buddypress li div.item{margin-right:70px;width:auto}#buddypress ul.item-list li div.meta{margin-top:0}#buddypress .item-desc p{margin:0 0 10px}#buddypress div.pagination .pag-count{margin-right:0}}@media only screen and (max-width:240px){#buddypress div.dir-search{float:right;margin:0}#buddypress div.dir-search input[type=text]{width:50%}#buddypress li#groups-order-select{float:right}#buddypress ul.item-list li img.avatar{width:30px;height:auto}#buddypress li div.item,#buddypress ul.item-list li div.action{margin-right:45px}h1 a.bp-title-button{clear:right;float:right;margin:10px 0 20px}} \ No newline at end of file diff --git a/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/buddypress.css b/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/buddypress.css index 46a9dd265..4eb280727 100644 --- a/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/buddypress.css +++ b/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/buddypress.css @@ -880,15 +880,34 @@ fieldset.create-site label { } .bp-screen-reader-text { - position: absolute; - margin: -1px; - padding: 0; + clip: rect(1px, 1px, 1px, 1px); height: 1px; - width: 1px; overflow: hidden; - clip: rect(0 0 0 0); - border: 0; - word-wrap: normal !important; + position: absolute !important; + width: 1px; + word-wrap: normal !important; /* Many screen reader and browser combinations announce broken words as they would appear visually. */ +} + +.bp-screen-reader-text:focus { + background-color: #f1f1f1; + -webkit-border-radius: 3px; + border-radius: 3px; + -webkit-box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6); + box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6); + clip: auto !important; + color: #21759b; + display: block; + font-size: 14px; + font-size: 0.875rem; + font-weight: 700; + height: auto; + left: 5px; + line-height: normal; + padding: 15px 23px 14px; + text-decoration: none; + top: 5px; + width: auto; + z-index: 100000; /* Above WP toolbar. */ } /*-------------------------------------------------------------- diff --git a/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/buddypress.min.css b/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/buddypress.min.css index cdec06de0..3bc65df6f 100644 --- a/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/buddypress.min.css +++ b/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/buddypress.min.css @@ -1 +1 @@ -#buddypress div.pagination .pagination-links a:hover,#buddypress ul.button-nav li.current a{font-weight:700}#buddypress div.pagination{background:0 0;border:none;color:#767676;font-size:small;margin:0;position:relative;display:block;float:left;width:100%;padding:10px 0}#buddypress div.pagination .pag-count{float:left;margin-left:10px}#buddypress div.pagination .pagination-links{float:right;margin-right:10px}#buddypress div.pagination .pagination-links a,#buddypress div.pagination .pagination-links span{font-size:90%;padding:0 5px}#buddypress noscript div.pagination{margin-bottom:15px}#buddypress #nav-above{display:none}#buddypress .paged #nav-above{display:block}#buddypress img.wp-smiley{border:none!important;clear:none!important;float:none!important;margin:0!important;padding:0!important}#buddypress .clear{clear:left}#buddypress #activity-stream{margin-top:-5px}#buddypress #activity-stream p{margin:5px 0}#buddypress #item-body form#whats-new-form{margin:0;padding:0}#buddypress .home-page form#whats-new-form{border-bottom:none;padding-bottom:0}#buddypress form#whats-new-form #whats-new-avatar{float:left}#buddypress form#whats-new-form #whats-new-content{margin-left:55px;padding:0 0 20px 20px}#buddypress form#whats-new-form p.activity-greeting{line-height:.5em;margin-bottom:15px;margin-left:75px}#buddypress form#whats-new-form textarea{background:#fff;box-sizing:border-box;color:#555;font-family:inherit;font-size:medium;height:2.2em;line-height:1.4;padding:6px;width:100%}body.no-js #buddypress form#whats-new-form textarea{height:50px}#buddypress form#whats-new-form #whats-new-options select{max-width:200px;margin-top:12px}#buddypress form#whats-new-form #whats-new-submit{float:right;margin-top:12px}#buddypress #whats-new-options:after{clear:both;content:"";display:table}body.no-js #buddypress #whats-new-options{height:auto}#buddypress #whats-new:focus{border-color:rgba(31,179,221,.9)!important;outline-color:rgba(31,179,221,.9)}#buddypress ul.activity-list li{overflow:hidden;padding:15px 0 0;list-style:none}#buddypress .activity-list .activity-avatar{float:left}#buddypress ul.item-list.activity-list li.has-comments{padding-bottom:15px}body.activity-permalink #buddypress ul.activity-list li.has-comments{padding-bottom:0}#buddypress .activity-list li.mini{font-size:80%;position:relative}#buddypress .activity-list li.mini .activity-avatar img.FB_profile_pic,#buddypress .activity-list li.mini .activity-avatar img.avatar{height:20px;margin-left:30px;width:20px}#buddypress .activity-permalink .activity-list li.mini .activity-avatar img.FB_profile_pic,#buddypress .activity-permalink .activity-list li.mini .activity-avatar img.avatar{height:auto;margin-left:0;width:auto}body.activity-permalink #buddypress .activity-list>li:first-child{padding-top:0}#buddypress .activity-list li .activity-content{position:relative}#buddypress .activity-list li.mini .activity-content p{margin:0}#buddypress .activity-list li.mini .activity-comments{clear:both;font-size:120%}body.activity-permalink #buddypress li.mini .activity-meta{margin-top:4px}#buddypress .activity-list li .activity-inreplyto{color:#767676;font-size:80%}#buddypress .activity-list li .activity-inreplyto>p{margin:0;display:inline}#buddypress .activity-list li .activity-inreplyto blockquote,#buddypress .activity-list li .activity-inreplyto div.activity-inner{background:0 0;border:none;display:inline;margin:0;overflow:hidden;padding:0}#buddypress .activity-list .activity-content{margin:0 0 0 70px}body.activity-permalink #buddypress .activity-list li .activity-content{border:none;font-size:100%;line-height:150%;margin-left:170px;margin-right:0;padding:0}body.activity-permalink #buddypress .activity-list li .activity-header>p{margin:0;padding:5px 0 0}#buddypress .activity-list .activity-content .activity-header,#buddypress .activity-list .activity-content .comment-header{color:#767676;line-height:220%}#buddypress .activity-header{margin-right:20px}#buddypress .acomment-meta a,#buddypress .activity-header a,#buddypress .comment-meta a{text-decoration:none}#buddypress .activity-list .activity-content .activity-header img.avatar{float:none!important;margin:0 5px -8px 0!important}#buddypress a.bp-secondary-action,#buddypress span.highlight{font-size:80%;padding:0;margin-right:5px;text-decoration:none}#buddypress .activity-list .activity-content .activity-inner,#buddypress .activity-list .activity-content blockquote{margin:10px 10px 5px 0;overflow:hidden}#buddypress .activity-list li.new_forum_post .activity-content .activity-inner,#buddypress .activity-list li.new_forum_topic .activity-content .activity-inner{border-left:2px solid #EAEAEA;margin-left:5px;padding-left:10px}body.activity-permalink #buddypress .activity-content .activity-inner,body.activity-permalink #buddypress .activity-content blockquote{margin-left:0;margin-top:5px}#buddypress .activity-inner>p{word-wrap:break-word}#buddypress .activity-inner>.activity-inner,#buddypress .activity-inner>blockquote{margin:0}#buddypress .activity-list .activity-content img.thumbnail{border:2px solid #eee;float:left;margin:0 10px 5px 0}#buddypress .activity-read-more{margin-left:1em;white-space:nowrap}#buddypress .activity-list li.load-more,#buddypress .activity-list li.load-newest{background:#f0f0f0;font-size:110%;margin:15px 0;padding:10px 15px;text-align:center}#buddypress .activity-list li.load-more a,#buddypress .activity-list li.load-newest a{color:#4D4D4D}#buddypress div.activity-meta{margin:18px 0 0}body.activity-permalink #buddypress div.activity-meta{margin-bottom:6px}#buddypress div.activity-meta a{padding:4px 8px}#buddypress a.activity-time-since{color:#767676;text-decoration:none}#buddypress a.activity-time-since:hover{color:#767676;text-decoration:underline}#buddypress #reply-title small a,#buddypress a.bp-primary-action{font-size:80%;margin-right:5px;text-decoration:none}#buddypress #reply-title small a span,#buddypress a.bp-primary-action span{background:#767676;color:#fff;font-size:90%;margin-left:2px;padding:0 5px}#buddypress #reply-title small a:hover span,#buddypress a.bp-primary-action:hover span{background:#555;color:#fff}#buddypress div.activity-comments{margin:0 0 0 70px;overflow:hidden;position:relative;width:auto;clear:both}body.activity-permalink #buddypress div.activity-comments{background:0 0;margin-left:170px;width:auto}#buddypress div.activity-comments>ul{padding:0 0 0 10px}#buddypress div.activity-comments ul,#buddypress div.activity-comments ul li{border:none;list-style:none}#buddypress div.activity-comments ul{clear:both;margin:0}#buddypress div.activity-comments ul li{border-top:1px solid #eee;padding:10px 0 0}body.activity-permalink #buddypress .activity-list li.mini .activity-comments{clear:none;margin-top:0}body.activity-permalink #buddypress div.activity-comments ul li{border-width:1px;padding:10px 0 0}#buddypress div.activity-comments>ul>li:first-child{border-top:none}#buddypress div.activity-comments ul li:last-child{margin-bottom:0}#buddypress div.activity-comments ul li>ul{margin-left:30px;margin-top:0;padding-left:10px}body.activity-permalink #buddypress div.activity-comments ul li>ul{margin-top:10px}body.activity-permalink #buddypress div.activity-comments>ul{padding:0 10px 0 15px}#buddypress div.activity-comments div.acomment-avatar img{border-width:1px;float:left;height:25px;margin-right:10px;width:25px}#buddypress div.activity-comments div.acomment-content{font-size:80%;margin:5px 0 0 40px}#buddypress div.acomment-content .activity-delete-link,#buddypress div.acomment-content .comment-header,#buddypress div.acomment-content .time-since{display:none}body.activity-permalink #buddypress div.activity-comments div.acomment-content{font-size:90%}#buddypress div.activity-comments div.acomment-meta{color:#767676;font-size:80%}#buddypress div.activity-comments form.ac-form{display:none;padding:10px}#buddypress div.activity-comments li form.ac-form{margin-right:15px;clear:both}#buddypress div.activity-comments form.root{margin-left:0}#buddypress div.activity-comments div#message{margin-top:15px;margin-bottom:0}#buddypress div.activity-comments form .ac-textarea{background:#fff;border:1px inset #ccc;margin-bottom:10px;padding:8px}#buddypress div.activity-comments form textarea{border:none;background:0 0;box-shadow:none;outline:0;color:#555;font-family:inherit;font-size:100%;height:60px;padding:0;margin:0;width:100%}#buddypress div.activity-comments form input{margin-top:5px}#buddypress div.activity-comments form div.ac-reply-avatar{float:left}#buddypress div.ac-reply-avatar img{border:1px solid #eee}#buddypress div.activity-comments form div.ac-reply-content{color:#767676;margin-left:50px;padding-left:15px}#buddypress div.activity-comments form div.ac-reply-content a{text-decoration:none}#buddypress .acomment-options{float:left;margin:5px 0 5px 40px}#buddypress .acomment-options a{color:#767676}#buddypress .acomment-options a:hover{color:inherit}#buddypress div.dir-search{float:right;margin:-39px 0 0}#buddypress div.dir-search input[type=text],#buddypress li.groups-members-search input[type=text]{font-size:90%;padding:1px 3px}#buddypress .current-member-type{font-style:italic}#buddypress .dir-form{clear:both}#buddypress div#message{margin:0 0 15px}#buddypress #message.info{margin-bottom:0}#buddypress div#message.updated{clear:both;display:block}#buddypress div#message p,#sitewide-notice p{font-size:90%;display:block;padding:10px 15px}#buddypress div#message.error p{background-color:#fdc;border:1px solid #a00;clear:left;color:#800}#buddypress div#message.warning p{background-color:#ffe0af;border:1px solid #ffd087;clear:left;color:#800}#buddypress div#message.updated p{background-color:#efc;border:1px solid #591;color:#250}#buddypress #pass-strength-result{background-color:#eee;border-color:#ddd;border-style:solid;border-width:1px;display:none;margin:5px 5px 5px 0;padding:5px;text-align:center;width:150px}#buddypress .standard-form #basic-details-section #pass-strength-result{width:35%}#buddypress #pass-strength-result.bad,#buddypress #pass-strength-result.error{background-color:#ffb78c;border-color:#ff853c!important;display:block}#buddypress #pass-strength-result.good{background-color:#ffec8b;border-color:#fc0!important;display:block}#buddypress #pass-strength-result.short{background-color:#ffa0a0;border-color:#f04040!important;display:block}#buddypress #pass-strength-result.strong{background-color:#c3ff88;border-color:#8dff1c!important;display:block}#buddypress .standard-form#signup_form div div.error{background:#faa;color:#a00;margin:0 0 10px;padding:6px;width:90%}#buddypress div.accept,#buddypress div.reject{float:left;margin-left:10px}#buddypress ul.button-nav li{float:left;margin:0 10px 10px 0;list-style:none}#sitewide-notice #message{left:2%;position:fixed;top:1em;width:96%;z-index:9999}#sitewide-notice.admin-bar-on #message{top:3.3em}#sitewide-notice strong{display:block;margin-bottom:-1em}#buddypress form fieldset{border:0;padding:0}#buddypress .dir-search input[type=search],#buddypress .dir-search input[type=text],#buddypress .groups-members-search input[type=search],#buddypress .groups-members-search input[type=text],#buddypress .standard-form input[type=color],#buddypress .standard-form input[type=date],#buddypress .standard-form input[type=datetime-local],#buddypress .standard-form input[type=datetime],#buddypress .standard-form input[type=email],#buddypress .standard-form input[type=month],#buddypress .standard-form input[type=number],#buddypress .standard-form input[type=password],#buddypress .standard-form input[type=range],#buddypress .standard-form input[type=search],#buddypress .standard-form input[type=tel],#buddypress .standard-form input[type=text],#buddypress .standard-form input[type=time],#buddypress .standard-form input[type=url],#buddypress .standard-form input[type=week],#buddypress .standard-form select,#buddypress .standard-form textarea{border:1px solid #ccc;background:#fafafa;border-radius:0;color:#737373;font:inherit;font-size:100%;padding:6px}#buddypress .standard-form select{padding:3px}#buddypress .standard-form input[type=password]{margin-bottom:5px}#buddypress .standard-form label,#buddypress .standard-form legend,#buddypress .standard-form span.label{display:block;font-weight:700;margin:15px 0 5px;width:auto}#buddypress .standard-form #invite-list label,#buddypress .standard-form p label{font-weight:400;margin:auto}#buddypress .standard-form .checkbox label,#buddypress .standard-form .radio label{color:#767676;font-size:100%;font-weight:400;margin:5px 0 0}#buddypress .standard-form .checkbox label input,#buddypress .standard-form .radio label input{margin-right:3px}#buddypress .standard-form#sidebar-login-form label{margin-top:5px}#buddypress .standard-form input[type=text]{width:75%}#buddypress .standard-form#sidebar-login-form input[type=password],#buddypress .standard-form#sidebar-login-form input[type=text]{padding:4px;width:95%}#buddypress .standard-form #basic-details-section input[type=password],#buddypress .standard-form #blog-details-section input#signup_blog_url{width:35%}#buddypress #commentform input[type=text],#buddypress #commentform textarea,#buddypress .form-allowed-tags,#buddypress .standard-form#signup_form input[type=text],#buddypress .standard-form#signup_form textarea{width:90%}#buddypress .standard-form#signup_form div.submit{float:right}#buddypress div#signup-avatar img{margin:0 15px 10px 0}#buddypress .standard-form textarea{width:75%;height:120px}#buddypress .standard-form textarea#message_content{height:200px}#buddypress .standard-form#send-reply textarea{width:97.5%}#buddypress .standard-form p.description{color:#767676;font-size:80%;margin:5px 0}#buddypress .standard-form div.submit{clear:both;padding:15px 0 0}#buddypress .standard-form p.submit{margin-bottom:0;padding:15px 0 0}#buddypress .standard-form div.submit input{margin-right:15px}#buddypress .standard-form div.radio ul{margin:10px 0 15px 38px;list-style:disc}#buddypress .standard-form div.radio ul li{margin-bottom:5px}#buddypress .standard-form a.clear-value{display:block;margin-top:5px;outline:0}#buddypress table.notification-settings td:first-child,#buddypress table.notification-settings th.icon,#buddypress table.notifications td:first-child,#buddypress table.notifications th.icon,body.no-js #buddypress #delete_inbox_messages,body.no-js #buddypress #delete_sentbox_messages,body.no-js #buddypress #message-type-select,body.no-js #buddypress #messages-bulk-management #select-all-messages,body.no-js #buddypress #notifications-bulk-management #select-all-notifications,body.no-js #buddypress label[for=message-type-select]{display:none}#buddypress .standard-form #basic-details-section,#buddypress .standard-form #blog-details-section,#buddypress .standard-form #profile-details-section{float:left;width:48%}#buddypress .standard-form #profile-details-section{float:right}#buddypress #notifications-bulk-management,#buddypress .standard-form #blog-details-section{clear:left}#buddypress .standard-form input:focus,#buddypress .standard-form select:focus,#buddypress .standard-form textarea:focus{background:#fafafa;color:#555}#buddypress form#send-invite-form{margin-top:20px}#buddypress div#invite-list{background:#f5f5f5;height:400px;margin:0 0 10px;overflow:auto;padding:5px;width:160px}#buddypress .comment-reply-link,#buddypress .generic-button a,#buddypress .standard-form button,#buddypress a.button,#buddypress input[type=button],#buddypress input[type=reset],#buddypress input[type=submit],#buddypress ul.button-nav li a,a.bp-title-button{background:#fff;border:1px solid #ccc;color:#767676;font-size:small;cursor:pointer;outline:0;padding:4px 10px;text-align:center;text-decoration:none}#buddypress .comment-reply-link:hover,#buddypress .standard-form button:hover,#buddypress a.button:focus,#buddypress a.button:hover,#buddypress div.generic-button a:hover,#buddypress input[type=button]:hover,#buddypress input[type=reset]:hover,#buddypress input[type=submit]:hover,#buddypress ul.button-nav li a:hover,#buddypress ul.button-nav li.current a{background:#ededed;border:1px solid #bbb;color:#555;outline:0;text-decoration:none}#buddypress form.standard-form .left-menu{float:left}#buddypress form.standard-form .left-menu #invite-list ul{margin:1%;list-style:none}#buddypress form.standard-form .left-menu #invite-list ul li{margin:0 0 0 1%}#buddypress form.standard-form .main-column{margin-left:190px}#buddypress form.standard-form .main-column ul#friend-list{clear:none;float:left}#buddypress form.standard-form .main-column ul#friend-list h3,#buddypress form.standard-form .main-column ul#friend-list h4{clear:none}#buddypress .wp-editor-wrap a.button,#buddypress .wp-editor-wrap button,#buddypress .wp-editor-wrap input[type=button],#buddypress .wp-editor-wrap input[type=reset],#buddypress .wp-editor-wrap input[type=submit]{padding:0 8px 1px}#buddypress form [disabled=disabled]{cursor:default;opacity:.4}fieldset.register-site{margin-top:1em}fieldset.create-site{margin-bottom:2em}fieldset.create-site legend{margin-bottom:1em}fieldset.create-site label{margin-right:3em}.bp-screen-reader-text{position:absolute;margin:-1px;padding:0;height:1px;width:1px;overflow:hidden;clip:rect(0 0 0 0);border:0;word-wrap:normal!important}#buddypress a.loading,#buddypress input.loading{-webkit-animation:loader-pulsate .5s infinite ease-in-out alternate;-moz-animation:loader-pulsate .5s infinite ease-in-out alternate;border-color:#aaa}@-webkit-keyframes loader-pulsate{from{border-color:#aaa;-webkit-box-shadow:0 0 6px #ccc;box-shadow:0 0 6px #ccc}to{border-color:#ccc;-webkit-box-shadow:0 0 6px #f8f8f8;box-shadow:0 0 6px #f8f8f8}}@-moz-keyframes loader-pulsate{from{border-color:#aaa;-moz-box-shadow:0 0 6px #ccc;box-shadow:0 0 6px #ccc}to{border-color:#ccc;-moz-box-shadow:0 0 6px #f8f8f8;box-shadow:0 0 6px #f8f8f8}}#buddypress a.loading:hover,#buddypress input.loading:hover{color:#767676}#buddypress a.disabled,#buddypress button.disabled,#buddypress button.pending,#buddypress div.pending a,#buddypress input[type=submit].disabled,#buddypress input[type=submit].pending,#buddypress input[type=submit][disabled=disabled],#buddypress input[type=button].disabled,#buddypress input[type=button].pending,#buddypress input[type=reset].disabled,#buddypress input[type=reset].pending{border-color:#eee;color:#bbb;cursor:default}#buddypress a.disabled:hover,#buddypress button.disabled:hover,#buddypress button.pending:hover,#buddypress div.pending a:hover,#buddypress input[type=submit]:hover.disabled,#buddypress input[type=submit]:hover.pending,#buddypress input[type=button]:hover.disabled,#buddypress input[type=button]:hover.pending,#buddypress input[type=reset]:hover.disabled,#buddypress input[type=reset]:hover.pending{border-color:#eee;color:#bbb}#buddypress ul#topic-post-list{margin:0;width:auto}#buddypress ul#topic-post-list li{padding:15px;position:relative}#buddypress ul#topic-post-list li.alt{background:#f5f5f5}#buddypress ul#topic-post-list li div.poster-meta{color:#767676;margin-bottom:10px}#buddypress ul#topic-post-list li div.post-content{margin-left:54px}#buddypress div.topic-tags{font-size:80%}#buddypress div.admin-links{color:#767676;font-size:80%;position:absolute;top:15px;right:25px}#buddypress div#topic-meta{margin:0;padding:5px 19px 30px;position:relative}#buddypress div#topic-meta div.admin-links{right:19px;top:-36px}#buddypress div#topic-meta h3{margin:5px 0}#buddypress div#new-topic-post{display:none;margin:20px 0 0;padding:1px 0 0}#buddypress table.forum,#buddypress table.messages-notices,#buddypress table.notifications,#buddypress table.notifications-settings,#buddypress table.profile-fields,#buddypress table.profile-settings,#buddypress table.wp-profile-fields{width:100%}#buddypress table.forum thead tr,#buddypress table.messages-notices thead tr,#buddypress table.notifications thead tr,#buddypress table.notifications-settings thead tr,#buddypress table.profile-fields thead tr,#buddypress table.profile-settings thead tr,#buddypress table.wp-profile-fields thead tr{background:#eaeaea}#buddypress table#message-threads{clear:both}#buddypress table.profile-fields{margin-bottom:20px}#buddypress table tr td.thread-info p,#buddypress table.profile-fields p{margin:0}#buddypress table.profile-fields:last-child{margin-bottom:0}#buddypress table.profile-fields p:last-child{margin-top:0}#buddypress table.forum tr td,#buddypress table.forum tr th,#buddypress table.messages-notices tr td,#buddypress table.messages-notices tr th,#buddypress table.notifications tr td,#buddypress table.notifications tr th,#buddypress table.notifications-settings tr td,#buddypress table.notifications-settings tr th,#buddypress table.profile-fields tr td,#buddypress table.profile-fields tr th,#buddypress table.profile-settings tr td,#buddypress table.wp-profile-fields tr td,#buddypress table.wp-profile-fields tr th{padding:8px;vertical-align:middle}#buddypress table.forum tr td.label,#buddypress table.messages-notices tr td.label,#buddypress table.notifications tr td.label,#buddypress table.notifications-settings tr td.label,#buddypress table.profile-fields tr td.label,#buddypress table.wp-profile-fields tr td.label{border-right:1px solid #eaeaea;font-weight:700;width:25%}#buddypress #message-threads .thread-info{min-width:40%}#buddypress table tr td.thread-info p.thread-excerpt{color:#767676;font-size:80%;margin-top:3px}#buddypress table.forum td{text-align:center}#buddypress table.forum tr.alt td,#buddypress table.messages-notices tr.alt td,#buddypress table.notifications tr.alt td,#buddypress table.notifications-settings tr.alt td,#buddypress table.profile-fields tr.alt td,#buddypress table.profile-settings tr.alt td,#buddypress table.wp-profile-fields tr.alt td{background:#f5f5f5;color:#707070}#buddypress table.notification-settings{margin-bottom:20px;text-align:left}#buddypress #groups-notification-settings{margin-bottom:0}#buddypress table.notification-settings th.title,#buddypress table.profile-settings th.title{width:80%}#buddypress table.notification-settings .no,#buddypress table.notification-settings .yes{text-align:center;width:40px}#buddypress table.forum{margin:0;width:auto;clear:both}#buddypress table.forum tr.sticky td{font-size:110%;background:#fff9db;border-top:1px solid #ffe8c4;border-bottom:1px solid #ffe8c4}#buddypress table.forum tr.closed td.td-title{padding-left:35px}#buddypress table.forum td p.topic-text{color:#767676;font-size:100%}#buddypress table.forum tr>td:first-child,#buddypress table.forum tr>th:first-child{padding-left:15px}#buddypress table.forum tr>td:last-child,#buddypress table.forum tr>th:last-child{padding-right:15px}#buddypress table.forum td.td-group,#buddypress table.forum td.td-poster,#buddypress table.forum td.td-title,#buddypress table.forum tr th#th-group,#buddypress table.forum tr th#th-poster,#buddypress table.forum tr th#th-title{text-align:left}#buddypress table.forum tr td.td-title a.topic-title{font-size:110%}#buddypress table.forum td.td-freshness{white-space:nowrap}#buddypress table.forum td.td-freshness span.time-since{font-size:80%;color:#767676}#buddypress table.forum td img.avatar{float:none;margin:0 5px -8px 0}#buddypress table.forum td.td-group,#buddypress table.forum td.td-poster{min-width:140px}#buddypress table.forum th#th-title{width:80%}#buddypress table.forum th#th-freshness{width:25%}#buddypress table.forum th#th-postcount{width:15%}#buddypress table.forum p.topic-meta{font-size:80%;margin:5px 0 0}#buddypress .item-body{margin:20px 0}#buddypress span.activity{display:inline-block;font-size:small;padding:0}#buddypress span.user-nicename{color:#767676;display:inline-block;font-size:120%;font-weight:700}#buddypress div#message p,#sitewide-notice p{font-weight:400;margin-top:3px;text-decoration:none;background-color:#ffd;border:1px solid #cb2;color:#440}#buddypress #item-header:after{clear:both;content:"";display:table}#buddypress div#item-header div#item-header-content{float:left;margin-left:0}#buddypress div#item-header h2{line-height:120%;margin:0 0 15px}#buddypress div#item-header h2 a{color:#767676;text-decoration:none}#buddypress div#item-header img.avatar{float:left;margin:0 15px 19px 0}#buddypress div#item-header h2{margin-bottom:5px}#buddypress div#item-header h2 span.highlight{font-size:60%;font-weight:400;line-height:170%;vertical-align:middle;display:inline-block}#buddypress div#item-header ul h5,#buddypress div#item-header ul hr,#buddypress div#item-header ul span,body.no-js #buddypress div#item-header .js-self-profile-button{display:none}#buddypress div#item-header h2 span.highlight span{background:#a1dcfa;color:#fff;cursor:pointer;font-weight:700;font-size:80%;margin-bottom:2px;padding:1px 4px;position:relative;right:-2px;top:-2px;vertical-align:middle}#buddypress div#item-header div#item-meta{font-size:80%;color:#767676;overflow:hidden;margin:15px 0 5px;padding-bottom:10px}#buddypress div#item-header div#item-actions{float:right;margin:0 0 15px 15px;text-align:right;width:20%}#buddypress div#item-header div#item-actions h2,#buddypress div#item-header div#item-actions h3{margin:0 0 5px}#buddypress div#item-header ul{margin-bottom:15px;overflow:hidden}#buddypress div#item-header ul li{float:right;list-style:none}#buddypress div#item-header ul img.avatar,#buddypress div#item-header ul.avatars img.avatar{height:30px;margin:2px;width:30px}#buddypress div#item-header a.button,#buddypress div#item-header div.generic-button{float:left;margin:10px 10px 0 0}#buddypress div#item-header div#message.info{line-height:80%}#buddypress ul.item-list{border-top:1px solid #eaeaea;width:100%;list-style:none;clear:both;margin:0;padding:0}body.activity-permalink #buddypress ul.item-list,body.activity-permalink #buddypress ul.item-list li.activity-item{border:none}#buddypress ul.item-list li{border-bottom:1px solid #eaeaea;padding:15px 0;margin:0;position:relative;list-style:none}#buddypress ul.single-line li{border:none}#buddypress ul.item-list li img.avatar{float:left;margin:0 10px 0 0}#buddypress ul.item-list li div.item-title,#buddypress ul.item-list li h3,#buddypress ul.item-list li h4{font-weight:400;font-size:90%;margin:0;width:75%}#buddypress ul.item-list li div.item-title span{color:#767676;font-size:80%}#buddypress ul.item-list li div.item-desc{color:#767676;font-size:80%;margin:10px 0 0 60px;width:50%}#buddypress ul.item-list li.group-no-avatar div.item-desc{margin-left:0}#buddypress ul.item-list li div.action{position:absolute;top:15px;right:0;text-align:right}#buddypress ul.item-list li div.meta{color:#767676;font-size:80%;margin-top:10px}#buddypress ul.item-list li h5 span.small{float:right;font-size:80%;font-weight:400}#buddypress div.item-list-tabs{background:0 0;clear:left;overflow:hidden}#buddypress div.item-list-tabs ul{margin:0;padding:0}#buddypress div.item-list-tabs ul li{float:left;margin:0;list-style:none}#buddypress div.item-list-tabs#subnav ul li{margin-top:0}#buddypress div.item-list-tabs ul li.last{float:right;margin:7px 0 0}#buddypress div.item-list-tabs#subnav ul li.last{margin-top:4px}#buddypress div.item-list-tabs ul li.last select{max-width:185px}#buddypress div.item-list-tabs ul li a,#buddypress div.item-list-tabs ul li span{display:block;padding:5px 10px;text-decoration:none}#buddypress div.item-list-tabs ul li a span{background:#eee;border-radius:50%;border:1px solid #ccc;color:#6c6c6c;display:inline;font-size:70%;margin-left:2px;padding:3px 6px;text-align:center;vertical-align:middle}#buddypress div.item-list-tabs ul li.current a,#buddypress div.item-list-tabs ul li.selected a{background-color:#eee;color:#555;opacity:.9;font-weight:700}#buddypress div.item-list-tabs ul li a:hover span,#buddypress div.item-list-tabs ul li.current a span,#buddypress div.item-list-tabs ul li.selected a span{background-color:#eee}#buddypress div.item-list-tabs ul li.current a span,#buddypress div.item-list-tabs ul li.selected a span{background-color:#fff}#buddypress div#item-nav ul li.loading a{background-position:88% 50%}#buddypress div.item-list-tabs#object-nav{margin-top:0}#buddypress div.item-list-tabs#subnav{background:0 0;margin:10px 0;overflow:hidden}#buddypress #admins-list li,#buddypress #members-list li,#buddypress #mods-list li{overflow:auto;list-style:none}#buddypress .group-members-list{width:100%;margin-top:1em;clear:both;overflow:auto}#buddypress div#message-thread div.message-metadata,.widget.buddypress div.avatar-block{overflow:hidden}#buddypress #item-buttons:empty{display:none}#buddypress #cover-image-container{position:relative;z-index:0}#buddypress #header-cover-image{background-color:#c5c5c5;background-position:center top;background-repeat:no-repeat;background-size:cover;border:0;display:block;left:0;margin:0;padding:0;position:absolute;top:0;width:100%;z-index:1}#buddypress #item-header-cover-image{padding:0 1em;position:relative;z-index:2}#buddypress table#message-threads tr.unread td{background:#fff9db;border-top:1px solid #ffe8c4;border-bottom:1px solid #ffe8c4;font-weight:700}#buddypress table#message-threads tr.unread td .activity,#buddypress table#message-threads tr.unread td .thread-excerpt,#buddypress table#message-threads tr.unread td.thread-options{font-weight:400}#buddypress li span.unread-count,#buddypress tr.unread span.unread-count{background:#d00;color:#fff;font-weight:700;padding:2px 8px}#buddypress div.item-list-tabs ul li a span.unread-count{padding:1px 6px;color:#fff}#buddypress div#message-thread div.message-box{margin:0;padding:15px}#buddypress div#message-thread div.alt{background:#f4f4f4}#buddypress div#message-thread p#message-recipients{margin:10px 0 20px}#buddypress div#message-thread img.avatar{float:left;margin:0 10px 0 0;vertical-align:middle}#buddypress div#message-thread strong{font-size:100%;margin:0}#buddypress div#message-thread strong a{text-decoration:none}#buddypress div#message-thread strong span.activity{margin-top:4px}#buddypress div#message-thread div.message-content{margin-left:45px}#buddypress div#message-thread div.message-options{text-align:right}#buddypress #message-threads img.avatar{max-width:none}#buddypress div.message-search{float:right;margin:0 20px}.message-metadata{position:relative}.message-star-actions{position:absolute;right:0;top:0}#buddypress a.message-action-star,#buddypress a.message-action-unstar{border-bottom:0;text-decoration:none;outline:0}a.message-action-star{opacity:.7}a.message-action-star:hover{opacity:1}.message-action-star span.icon:before,.message-action-unstar span.icon:before{font-family:dashicons;font-size:18px}.message-action-star span.icon:before{color:#767676;content:"\f154"}.message-action-unstar span.icon:before{color:#fcdd77;content:"\f155"}#buddypress div.profile h2{margin-bottom:auto;margin-top:15px}#buddypress #profile-edit-form ul.button-nav{margin-top:15px}body.no-js #buddypress .field-visibility-settings-close,body.no-js #buddypress .field-visibility-settings-toggle{display:none}#buddypress .field-visibility-settings{display:none;margin-top:10px}body.no-js #buddypress .field-visibility-settings{display:block}#buddypress .current-visibility-level{font-weight:700;font-style:normal}#buddypress .field-visibility-settings,#buddypress .field-visibility-settings-notoggle,#buddypress .field-visibility-settings-toggle{color:#707070}#buddypress .field-visibility-settings a,#buddypress .field-visibility-settings-toggle a{font-size:80%}body.register #buddypress div.page ul{list-style:none}#buddypress .standard-form .field-visibility-settings label{margin:0;font-weight:400}#buddypress .field-visibility-settings legend,#buddypress .field-visibility-settings-toggle{font-style:italic}#buddypress .field-visibility-settings .radio{list-style:none;margin-bottom:0}#buddypress .field-visibility select{margin:0}#buddypress .wp-editor-container{border:1px solid #dedede}#buddypress .html-active button.switch-html,#buddypress .tmce-active button.switch-tmce{border-bottom-color:transparent;border-bottom-left-radius:0;border-bottom-right-radius:0;background:#f5f5f5;color:#707070}#buddypress .standard-form .wp-editor-container textarea{width:100%;padding-top:0;padding-bottom:0}.widget.buddypress div.item-avatar img.avatar{float:left;margin:0 10px 15px 0}.widget.buddypress span.activity{display:inline-block;font-size:small;padding:0}.widget.buddypress div.item-options{font-size:90%;margin:0 0 1em;padding:1em 0}.widget.buddypress div.item{margin:0 0 1em}.widget.buddypress div.item-content,.widget.buddypress div.item-meta{font-size:11px;margin-left:50px}.widget.buddypress ul.item-list img.avatar{height:40px;margin-right:10px;width:40px}.widget.buddypress div.item-avatar img{height:40px;margin:1px;width:40px}.widget.buddypress #bp-login-widget-form label{display:block;margin:1rem 0 .5rem}.widget.buddypress #bp-login-widget-form #bp-login-widget-submit{margin-right:10px}.widget.buddypress .bp-login-widget-user-avatar{float:left}.bp-login-widget-user-avatar img.avatar{height:40px;width:40px}.widget.buddypress .bp-login-widget-user-links>div{padding-left:60px;margin-bottom:.5rem}.widget.buddypress .bp-login-widget-user-links>div.bp-login-widget-user-link a{font-weight:700}.widget.buddypress #friends-list,.widget.buddypress #groups-list,.widget.buddypress #members-list{margin-left:0;padding-left:0}.widget.buddypress #friends-list li,.widget.buddypress #groups-list li,.widget.buddypress #members-list li{clear:both;list-style-type:none}@media only screen and (max-width:480px){#buddypress div.dir-search{float:right;margin-top:-50px;text-align:right}#buddypress div.dir-search input[type=text]{margin-bottom:1em;width:50%}a.bp-title-button{margin-left:10px}#buddypress form.standard-form .main-column div.action{position:relative;margin-bottom:1em}#buddypress form.standard-form .main-column ul#friend-list h3,#buddypress form.standard-form .main-column ul#friend-list h4{width:100%}}@media only screen and (max-width:320px){#buddypress div.dir-search,#buddypress ul.item-list li div.action{margin-top:0;text-align:left;clear:left;float:left}#buddypress li#groups-order-select{clear:left;float:left}#buddypress ul.item-list li div.action{margin-left:70px;position:relative;top:0;right:0}#buddypress ul.item-list li div.item-desc{clear:left;float:left;margin:10px 0 0;width:auto}#buddypress li div.item{margin-left:70px;width:auto}#buddypress ul.item-list li div.meta{margin-top:0}#buddypress .item-desc p{margin:0 0 10px}#buddypress div.pagination .pag-count{margin-left:0}}@media only screen and (max-width:240px){#buddypress div.dir-search{float:left;margin:0}#buddypress div.dir-search input[type=text]{width:50%}#buddypress li#groups-order-select{float:left}#buddypress ul.item-list li img.avatar{width:30px;height:auto}#buddypress li div.item,#buddypress ul.item-list li div.action{margin-left:45px}h1 a.bp-title-button{clear:left;float:left;margin:10px 0 20px}} \ No newline at end of file +#buddypress div.pagination .pagination-links a:hover,#buddypress ul.button-nav li.current a{font-weight:700}#buddypress div.pagination{background:0 0;border:none;color:#767676;font-size:small;margin:0;position:relative;display:block;float:left;width:100%;padding:10px 0}#buddypress div.pagination .pag-count{float:left;margin-left:10px}#buddypress div.pagination .pagination-links{float:right;margin-right:10px}#buddypress div.pagination .pagination-links a,#buddypress div.pagination .pagination-links span{font-size:90%;padding:0 5px}#buddypress noscript div.pagination{margin-bottom:15px}#buddypress #nav-above{display:none}#buddypress .paged #nav-above{display:block}#buddypress img.wp-smiley{border:none!important;clear:none!important;float:none!important;margin:0!important;padding:0!important}#buddypress .clear{clear:left}#buddypress #activity-stream{margin-top:-5px}#buddypress #activity-stream p{margin:5px 0}#buddypress #item-body form#whats-new-form{margin:0;padding:0}#buddypress .home-page form#whats-new-form{border-bottom:none;padding-bottom:0}#buddypress form#whats-new-form #whats-new-avatar{float:left}#buddypress form#whats-new-form #whats-new-content{margin-left:55px;padding:0 0 20px 20px}#buddypress form#whats-new-form p.activity-greeting{line-height:.5em;margin-bottom:15px;margin-left:75px}#buddypress form#whats-new-form textarea{background:#fff;box-sizing:border-box;color:#555;font-family:inherit;font-size:medium;height:2.2em;line-height:1.4;padding:6px;width:100%}body.no-js #buddypress form#whats-new-form textarea{height:50px}#buddypress form#whats-new-form #whats-new-options select{max-width:200px;margin-top:12px}#buddypress form#whats-new-form #whats-new-submit{float:right;margin-top:12px}#buddypress #whats-new-options:after{clear:both;content:"";display:table}body.no-js #buddypress #whats-new-options{height:auto}#buddypress #whats-new:focus{border-color:rgba(31,179,221,.9)!important;outline-color:rgba(31,179,221,.9)}#buddypress ul.activity-list li{overflow:hidden;padding:15px 0 0;list-style:none}#buddypress .activity-list .activity-avatar{float:left}#buddypress ul.item-list.activity-list li.has-comments{padding-bottom:15px}body.activity-permalink #buddypress ul.activity-list li.has-comments{padding-bottom:0}#buddypress .activity-list li.mini{font-size:80%;position:relative}#buddypress .activity-list li.mini .activity-avatar img.FB_profile_pic,#buddypress .activity-list li.mini .activity-avatar img.avatar{height:20px;margin-left:30px;width:20px}#buddypress .activity-permalink .activity-list li.mini .activity-avatar img.FB_profile_pic,#buddypress .activity-permalink .activity-list li.mini .activity-avatar img.avatar{height:auto;margin-left:0;width:auto}body.activity-permalink #buddypress .activity-list>li:first-child{padding-top:0}#buddypress .activity-list li .activity-content{position:relative}#buddypress .activity-list li.mini .activity-content p{margin:0}#buddypress .activity-list li.mini .activity-comments{clear:both;font-size:120%}body.activity-permalink #buddypress li.mini .activity-meta{margin-top:4px}#buddypress .activity-list li .activity-inreplyto{color:#767676;font-size:80%}#buddypress .activity-list li .activity-inreplyto>p{margin:0;display:inline}#buddypress .activity-list li .activity-inreplyto blockquote,#buddypress .activity-list li .activity-inreplyto div.activity-inner{background:0 0;border:none;display:inline;margin:0;overflow:hidden;padding:0}#buddypress .activity-list .activity-content{margin:0 0 0 70px}body.activity-permalink #buddypress .activity-list li .activity-content{border:none;font-size:100%;line-height:150%;margin-left:170px;margin-right:0;padding:0}body.activity-permalink #buddypress .activity-list li .activity-header>p{margin:0;padding:5px 0 0}#buddypress .activity-list .activity-content .activity-header,#buddypress .activity-list .activity-content .comment-header{color:#767676;line-height:220%}#buddypress .activity-header{margin-right:20px}#buddypress .acomment-meta a,#buddypress .activity-header a,#buddypress .comment-meta a{text-decoration:none}#buddypress .activity-list .activity-content .activity-header img.avatar{float:none!important;margin:0 5px -8px 0!important}#buddypress a.bp-secondary-action,#buddypress span.highlight{font-size:80%;padding:0;margin-right:5px;text-decoration:none}#buddypress .activity-list .activity-content .activity-inner,#buddypress .activity-list .activity-content blockquote{margin:10px 10px 5px 0;overflow:hidden}#buddypress .activity-list li.new_forum_post .activity-content .activity-inner,#buddypress .activity-list li.new_forum_topic .activity-content .activity-inner{border-left:2px solid #EAEAEA;margin-left:5px;padding-left:10px}body.activity-permalink #buddypress .activity-content .activity-inner,body.activity-permalink #buddypress .activity-content blockquote{margin-left:0;margin-top:5px}#buddypress .activity-inner>p{word-wrap:break-word}#buddypress .activity-inner>.activity-inner,#buddypress .activity-inner>blockquote{margin:0}#buddypress .activity-list .activity-content img.thumbnail{border:2px solid #eee;float:left;margin:0 10px 5px 0}#buddypress .activity-read-more{margin-left:1em;white-space:nowrap}#buddypress .activity-list li.load-more,#buddypress .activity-list li.load-newest{background:#f0f0f0;font-size:110%;margin:15px 0;padding:10px 15px;text-align:center}#buddypress .activity-list li.load-more a,#buddypress .activity-list li.load-newest a{color:#4D4D4D}#buddypress div.activity-meta{margin:18px 0 0}body.activity-permalink #buddypress div.activity-meta{margin-bottom:6px}#buddypress div.activity-meta a{padding:4px 8px}#buddypress a.activity-time-since{color:#767676;text-decoration:none}#buddypress a.activity-time-since:hover{color:#767676;text-decoration:underline}#buddypress #reply-title small a,#buddypress a.bp-primary-action{font-size:80%;margin-right:5px;text-decoration:none}#buddypress #reply-title small a span,#buddypress a.bp-primary-action span{background:#767676;color:#fff;font-size:90%;margin-left:2px;padding:0 5px}#buddypress #reply-title small a:hover span,#buddypress a.bp-primary-action:hover span{background:#555;color:#fff}#buddypress div.activity-comments{margin:0 0 0 70px;overflow:hidden;position:relative;width:auto;clear:both}body.activity-permalink #buddypress div.activity-comments{background:0 0;margin-left:170px;width:auto}#buddypress div.activity-comments>ul{padding:0 0 0 10px}#buddypress div.activity-comments ul,#buddypress div.activity-comments ul li{border:none;list-style:none}#buddypress div.activity-comments ul{clear:both;margin:0}#buddypress div.activity-comments ul li{border-top:1px solid #eee;padding:10px 0 0}body.activity-permalink #buddypress .activity-list li.mini .activity-comments{clear:none;margin-top:0}body.activity-permalink #buddypress div.activity-comments ul li{border-width:1px;padding:10px 0 0}#buddypress div.activity-comments>ul>li:first-child{border-top:none}#buddypress div.activity-comments ul li:last-child{margin-bottom:0}#buddypress div.activity-comments ul li>ul{margin-left:30px;margin-top:0;padding-left:10px}body.activity-permalink #buddypress div.activity-comments ul li>ul{margin-top:10px}body.activity-permalink #buddypress div.activity-comments>ul{padding:0 10px 0 15px}#buddypress div.activity-comments div.acomment-avatar img{border-width:1px;float:left;height:25px;margin-right:10px;width:25px}#buddypress div.activity-comments div.acomment-content{font-size:80%;margin:5px 0 0 40px}#buddypress div.acomment-content .activity-delete-link,#buddypress div.acomment-content .comment-header,#buddypress div.acomment-content .time-since{display:none}body.activity-permalink #buddypress div.activity-comments div.acomment-content{font-size:90%}#buddypress div.activity-comments div.acomment-meta{color:#767676;font-size:80%}#buddypress div.activity-comments form.ac-form{display:none;padding:10px}#buddypress div.activity-comments li form.ac-form{margin-right:15px;clear:both}#buddypress div.activity-comments form.root{margin-left:0}#buddypress div.activity-comments div#message{margin-top:15px;margin-bottom:0}#buddypress div.activity-comments form .ac-textarea{background:#fff;border:1px inset #ccc;margin-bottom:10px;padding:8px}#buddypress div.activity-comments form textarea{border:none;background:0 0;box-shadow:none;outline:0;color:#555;font-family:inherit;font-size:100%;height:60px;padding:0;margin:0;width:100%}#buddypress div.activity-comments form input{margin-top:5px}#buddypress div.activity-comments form div.ac-reply-avatar{float:left}#buddypress div.ac-reply-avatar img{border:1px solid #eee}#buddypress div.activity-comments form div.ac-reply-content{color:#767676;margin-left:50px;padding-left:15px}#buddypress div.activity-comments form div.ac-reply-content a{text-decoration:none}#buddypress .acomment-options{float:left;margin:5px 0 5px 40px}#buddypress .acomment-options a{color:#767676}#buddypress .acomment-options a:hover{color:inherit}#buddypress div.dir-search{float:right;margin:-39px 0 0}#buddypress div.dir-search input[type=text],#buddypress li.groups-members-search input[type=text]{font-size:90%;padding:1px 3px}#buddypress .current-member-type{font-style:italic}#buddypress .dir-form{clear:both}#buddypress div#message{margin:0 0 15px}#buddypress #message.info{margin-bottom:0}#buddypress div#message.updated{clear:both;display:block}#buddypress div#message p,#sitewide-notice p{font-size:90%;display:block;padding:10px 15px}#buddypress div#message.error p{background-color:#fdc;border:1px solid #a00;clear:left;color:#800}#buddypress div#message.warning p{background-color:#ffe0af;border:1px solid #ffd087;clear:left;color:#800}#buddypress div#message.updated p{background-color:#efc;border:1px solid #591;color:#250}#buddypress #pass-strength-result{background-color:#eee;border-color:#ddd;border-style:solid;border-width:1px;display:none;margin:5px 5px 5px 0;padding:5px;text-align:center;width:150px}#buddypress .standard-form #basic-details-section #pass-strength-result{width:35%}#buddypress #pass-strength-result.bad,#buddypress #pass-strength-result.error{background-color:#ffb78c;border-color:#ff853c!important;display:block}#buddypress #pass-strength-result.good{background-color:#ffec8b;border-color:#fc0!important;display:block}#buddypress #pass-strength-result.short{background-color:#ffa0a0;border-color:#f04040!important;display:block}#buddypress #pass-strength-result.strong{background-color:#c3ff88;border-color:#8dff1c!important;display:block}#buddypress .standard-form#signup_form div div.error{background:#faa;color:#a00;margin:0 0 10px;padding:6px;width:90%}#buddypress div.accept,#buddypress div.reject{float:left;margin-left:10px}#buddypress ul.button-nav li{float:left;margin:0 10px 10px 0;list-style:none}#sitewide-notice #message{left:2%;position:fixed;top:1em;width:96%;z-index:9999}#sitewide-notice.admin-bar-on #message{top:3.3em}#sitewide-notice strong{display:block;margin-bottom:-1em}#buddypress form fieldset{border:0;padding:0}#buddypress .dir-search input[type=search],#buddypress .dir-search input[type=text],#buddypress .groups-members-search input[type=search],#buddypress .groups-members-search input[type=text],#buddypress .standard-form input[type=color],#buddypress .standard-form input[type=date],#buddypress .standard-form input[type=datetime-local],#buddypress .standard-form input[type=datetime],#buddypress .standard-form input[type=email],#buddypress .standard-form input[type=month],#buddypress .standard-form input[type=number],#buddypress .standard-form input[type=password],#buddypress .standard-form input[type=range],#buddypress .standard-form input[type=search],#buddypress .standard-form input[type=tel],#buddypress .standard-form input[type=text],#buddypress .standard-form input[type=time],#buddypress .standard-form input[type=url],#buddypress .standard-form input[type=week],#buddypress .standard-form select,#buddypress .standard-form textarea{border:1px solid #ccc;background:#fafafa;border-radius:0;color:#737373;font:inherit;font-size:100%;padding:6px}#buddypress .standard-form select{padding:3px}#buddypress .standard-form input[type=password]{margin-bottom:5px}#buddypress .standard-form label,#buddypress .standard-form legend,#buddypress .standard-form span.label{display:block;font-weight:700;margin:15px 0 5px;width:auto}#buddypress .standard-form #invite-list label,#buddypress .standard-form p label{font-weight:400;margin:auto}#buddypress .standard-form .checkbox label,#buddypress .standard-form .radio label{color:#767676;font-size:100%;font-weight:400;margin:5px 0 0}#buddypress .standard-form .checkbox label input,#buddypress .standard-form .radio label input{margin-right:3px}#buddypress .standard-form#sidebar-login-form label{margin-top:5px}#buddypress .standard-form input[type=text]{width:75%}#buddypress .standard-form#sidebar-login-form input[type=password],#buddypress .standard-form#sidebar-login-form input[type=text]{padding:4px;width:95%}#buddypress .standard-form #basic-details-section input[type=password],#buddypress .standard-form #blog-details-section input#signup_blog_url{width:35%}#buddypress #commentform input[type=text],#buddypress #commentform textarea,#buddypress .form-allowed-tags,#buddypress .standard-form#signup_form input[type=text],#buddypress .standard-form#signup_form textarea{width:90%}#buddypress .standard-form#signup_form div.submit{float:right}#buddypress div#signup-avatar img{margin:0 15px 10px 0}#buddypress .standard-form textarea{width:75%;height:120px}#buddypress .standard-form textarea#message_content{height:200px}#buddypress .standard-form#send-reply textarea{width:97.5%}#buddypress .standard-form p.description{color:#767676;font-size:80%;margin:5px 0}#buddypress .standard-form div.submit{clear:both;padding:15px 0 0}#buddypress .standard-form p.submit{margin-bottom:0;padding:15px 0 0}#buddypress .standard-form div.submit input{margin-right:15px}#buddypress .standard-form div.radio ul{margin:10px 0 15px 38px;list-style:disc}#buddypress .standard-form div.radio ul li{margin-bottom:5px}#buddypress .standard-form a.clear-value{display:block;margin-top:5px;outline:0}#buddypress .standard-form #basic-details-section,#buddypress .standard-form #blog-details-section,#buddypress .standard-form #profile-details-section{float:left;width:48%}#buddypress .standard-form #profile-details-section{float:right}#buddypress #notifications-bulk-management,#buddypress .standard-form #blog-details-section{clear:left}body.no-js #buddypress #delete_inbox_messages,body.no-js #buddypress #delete_sentbox_messages,body.no-js #buddypress #message-type-select,body.no-js #buddypress #messages-bulk-management #select-all-messages,body.no-js #buddypress #notifications-bulk-management #select-all-notifications,body.no-js #buddypress label[for=message-type-select]{display:none}#buddypress .standard-form input:focus,#buddypress .standard-form select:focus,#buddypress .standard-form textarea:focus{background:#fafafa;color:#555}#buddypress form#send-invite-form{margin-top:20px}#buddypress div#invite-list{background:#f5f5f5;height:400px;margin:0 0 10px;overflow:auto;padding:5px;width:160px}#buddypress .comment-reply-link,#buddypress .generic-button a,#buddypress .standard-form button,#buddypress a.button,#buddypress input[type=button],#buddypress input[type=reset],#buddypress input[type=submit],#buddypress ul.button-nav li a,a.bp-title-button{background:#fff;border:1px solid #ccc;color:#767676;font-size:small;cursor:pointer;outline:0;padding:4px 10px;text-align:center;text-decoration:none}#buddypress .comment-reply-link:hover,#buddypress .standard-form button:hover,#buddypress a.button:focus,#buddypress a.button:hover,#buddypress div.generic-button a:hover,#buddypress input[type=button]:hover,#buddypress input[type=reset]:hover,#buddypress input[type=submit]:hover,#buddypress ul.button-nav li a:hover,#buddypress ul.button-nav li.current a{background:#ededed;border:1px solid #bbb;color:#555;outline:0;text-decoration:none}#buddypress form.standard-form .left-menu{float:left}#buddypress form.standard-form .left-menu #invite-list ul{margin:1%;list-style:none}#buddypress form.standard-form .left-menu #invite-list ul li{margin:0 0 0 1%}#buddypress form.standard-form .main-column{margin-left:190px}#buddypress form.standard-form .main-column ul#friend-list{clear:none;float:left}#buddypress form.standard-form .main-column ul#friend-list h3,#buddypress form.standard-form .main-column ul#friend-list h4{clear:none}#buddypress .wp-editor-wrap a.button,#buddypress .wp-editor-wrap button,#buddypress .wp-editor-wrap input[type=button],#buddypress .wp-editor-wrap input[type=reset],#buddypress .wp-editor-wrap input[type=submit]{padding:0 8px 1px}#buddypress form [disabled=disabled]{cursor:default;opacity:.4}fieldset.register-site{margin-top:1em}fieldset.create-site{margin-bottom:2em}fieldset.create-site legend{margin-bottom:1em}fieldset.create-site label{margin-right:3em}.bp-screen-reader-text{clip:rect(1px,1px,1px,1px);height:1px;overflow:hidden;position:absolute!important;width:1px;word-wrap:normal!important}.bp-screen-reader-text:focus{background-color:#f1f1f1;-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 0 2px 2px rgba(0,0,0,.6);box-shadow:0 0 2px 2px rgba(0,0,0,.6);clip:auto!important;color:#21759b;display:block;font-size:14px;font-size:.875rem;font-weight:700;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}#buddypress a.loading,#buddypress input.loading{-webkit-animation:loader-pulsate .5s infinite ease-in-out alternate;-moz-animation:loader-pulsate .5s infinite ease-in-out alternate;border-color:#aaa}@-webkit-keyframes loader-pulsate{from{border-color:#aaa;-webkit-box-shadow:0 0 6px #ccc;box-shadow:0 0 6px #ccc}to{border-color:#ccc;-webkit-box-shadow:0 0 6px #f8f8f8;box-shadow:0 0 6px #f8f8f8}}@-moz-keyframes loader-pulsate{from{border-color:#aaa;-moz-box-shadow:0 0 6px #ccc;box-shadow:0 0 6px #ccc}to{border-color:#ccc;-moz-box-shadow:0 0 6px #f8f8f8;box-shadow:0 0 6px #f8f8f8}}#buddypress a.loading:hover,#buddypress input.loading:hover{color:#767676}#buddypress a.disabled,#buddypress button.disabled,#buddypress button.pending,#buddypress div.pending a,#buddypress input[type=submit].disabled,#buddypress input[type=submit].pending,#buddypress input[type=submit][disabled=disabled],#buddypress input[type=button].disabled,#buddypress input[type=button].pending,#buddypress input[type=reset].disabled,#buddypress input[type=reset].pending{border-color:#eee;color:#bbb;cursor:default}#buddypress a.disabled:hover,#buddypress button.disabled:hover,#buddypress button.pending:hover,#buddypress div.pending a:hover,#buddypress input[type=submit]:hover.disabled,#buddypress input[type=submit]:hover.pending,#buddypress input[type=button]:hover.disabled,#buddypress input[type=button]:hover.pending,#buddypress input[type=reset]:hover.disabled,#buddypress input[type=reset]:hover.pending{border-color:#eee;color:#bbb}#buddypress ul#topic-post-list{margin:0;width:auto}#buddypress ul#topic-post-list li{padding:15px;position:relative}#buddypress ul#topic-post-list li.alt{background:#f5f5f5}#buddypress ul#topic-post-list li div.poster-meta{color:#767676;margin-bottom:10px}#buddypress ul#topic-post-list li div.post-content{margin-left:54px}#buddypress div.topic-tags{font-size:80%}#buddypress div.admin-links{color:#767676;font-size:80%;position:absolute;top:15px;right:25px}#buddypress div#topic-meta{margin:0;padding:5px 19px 30px;position:relative}#buddypress div#topic-meta div.admin-links{right:19px;top:-36px}#buddypress div#topic-meta h3{margin:5px 0}#buddypress div#new-topic-post{display:none;margin:20px 0 0;padding:1px 0 0}#buddypress table.forum,#buddypress table.messages-notices,#buddypress table.notifications,#buddypress table.notifications-settings,#buddypress table.profile-fields,#buddypress table.profile-settings,#buddypress table.wp-profile-fields{width:100%}#buddypress table.forum thead tr,#buddypress table.messages-notices thead tr,#buddypress table.notifications thead tr,#buddypress table.notifications-settings thead tr,#buddypress table.profile-fields thead tr,#buddypress table.profile-settings thead tr,#buddypress table.wp-profile-fields thead tr{background:#eaeaea}#buddypress table#message-threads{clear:both}#buddypress table.profile-fields{margin-bottom:20px}#buddypress table tr td.thread-info p,#buddypress table.profile-fields p{margin:0}#buddypress table.profile-fields:last-child{margin-bottom:0}#buddypress table.profile-fields p:last-child{margin-top:0}#buddypress table.forum tr td,#buddypress table.forum tr th,#buddypress table.messages-notices tr td,#buddypress table.messages-notices tr th,#buddypress table.notifications tr td,#buddypress table.notifications tr th,#buddypress table.notifications-settings tr td,#buddypress table.notifications-settings tr th,#buddypress table.profile-fields tr td,#buddypress table.profile-fields tr th,#buddypress table.profile-settings tr td,#buddypress table.wp-profile-fields tr td,#buddypress table.wp-profile-fields tr th{padding:8px;vertical-align:middle}#buddypress table.forum tr td.label,#buddypress table.messages-notices tr td.label,#buddypress table.notifications tr td.label,#buddypress table.notifications-settings tr td.label,#buddypress table.profile-fields tr td.label,#buddypress table.wp-profile-fields tr td.label{border-right:1px solid #eaeaea;font-weight:700;width:25%}#buddypress #message-threads .thread-info{min-width:40%}#buddypress table tr td.thread-info p.thread-excerpt{color:#767676;font-size:80%;margin-top:3px}#buddypress table.forum td{text-align:center}#buddypress table.forum tr.alt td,#buddypress table.messages-notices tr.alt td,#buddypress table.notifications tr.alt td,#buddypress table.notifications-settings tr.alt td,#buddypress table.profile-fields tr.alt td,#buddypress table.profile-settings tr.alt td,#buddypress table.wp-profile-fields tr.alt td{background:#f5f5f5;color:#707070}#buddypress table.notification-settings{margin-bottom:20px;text-align:left}#buddypress #groups-notification-settings{margin-bottom:0}#buddypress table.notification-settings td:first-child,#buddypress table.notification-settings th.icon,#buddypress table.notifications td:first-child,#buddypress table.notifications th.icon{display:none}#buddypress table.notification-settings th.title,#buddypress table.profile-settings th.title{width:80%}#buddypress table.notification-settings .no,#buddypress table.notification-settings .yes{text-align:center;width:40px}#buddypress table.forum{margin:0;width:auto;clear:both}#buddypress table.forum tr.sticky td{font-size:110%;background:#fff9db;border-top:1px solid #ffe8c4;border-bottom:1px solid #ffe8c4}#buddypress table.forum tr.closed td.td-title{padding-left:35px}#buddypress table.forum td p.topic-text{color:#767676;font-size:100%}#buddypress table.forum tr>td:first-child,#buddypress table.forum tr>th:first-child{padding-left:15px}#buddypress table.forum tr>td:last-child,#buddypress table.forum tr>th:last-child{padding-right:15px}#buddypress table.forum td.td-group,#buddypress table.forum td.td-poster,#buddypress table.forum td.td-title,#buddypress table.forum tr th#th-group,#buddypress table.forum tr th#th-poster,#buddypress table.forum tr th#th-title{text-align:left}#buddypress table.forum tr td.td-title a.topic-title{font-size:110%}#buddypress table.forum td.td-freshness{white-space:nowrap}#buddypress table.forum td.td-freshness span.time-since{font-size:80%;color:#767676}#buddypress table.forum td img.avatar{float:none;margin:0 5px -8px 0}#buddypress table.forum td.td-group,#buddypress table.forum td.td-poster{min-width:140px}#buddypress table.forum th#th-title{width:80%}#buddypress table.forum th#th-freshness{width:25%}#buddypress table.forum th#th-postcount{width:15%}#buddypress table.forum p.topic-meta{font-size:80%;margin:5px 0 0}#buddypress .item-body{margin:20px 0}#buddypress span.activity{display:inline-block;font-size:small;padding:0}#buddypress span.user-nicename{color:#767676;display:inline-block;font-size:120%;font-weight:700}#buddypress div#message p,#sitewide-notice p{font-weight:400;margin-top:3px;text-decoration:none;background-color:#ffd;border:1px solid #cb2;color:#440}#buddypress #item-header:after{clear:both;content:"";display:table}#buddypress div#item-header div#item-header-content{float:left;margin-left:0}#buddypress div#item-header h2{line-height:120%;margin:0 0 15px}#buddypress div#item-header h2 a{color:#767676;text-decoration:none}#buddypress div#item-header img.avatar{float:left;margin:0 15px 19px 0}#buddypress div#item-header h2{margin-bottom:5px}#buddypress div#item-header h2 span.highlight{font-size:60%;font-weight:400;line-height:170%;vertical-align:middle;display:inline-block}#buddypress div#item-header ul h5,#buddypress div#item-header ul hr,#buddypress div#item-header ul span,body.no-js #buddypress div#item-header .js-self-profile-button{display:none}#buddypress div#item-header h2 span.highlight span{background:#a1dcfa;color:#fff;cursor:pointer;font-weight:700;font-size:80%;margin-bottom:2px;padding:1px 4px;position:relative;right:-2px;top:-2px;vertical-align:middle}#buddypress div#item-header div#item-meta{font-size:80%;color:#767676;overflow:hidden;margin:15px 0 5px;padding-bottom:10px}#buddypress div#item-header div#item-actions{float:right;margin:0 0 15px 15px;text-align:right;width:20%}#buddypress div#item-header div#item-actions h2,#buddypress div#item-header div#item-actions h3{margin:0 0 5px}#buddypress div#item-header ul{margin-bottom:15px;overflow:hidden}#buddypress div#item-header ul li{float:right;list-style:none}#buddypress div#item-header ul img.avatar,#buddypress div#item-header ul.avatars img.avatar{height:30px;margin:2px;width:30px}#buddypress div#item-header a.button,#buddypress div#item-header div.generic-button{float:left;margin:10px 10px 0 0}#buddypress div#item-header div#message.info{line-height:80%}#buddypress ul.item-list{border-top:1px solid #eaeaea;width:100%;list-style:none;clear:both;margin:0;padding:0}body.activity-permalink #buddypress ul.item-list,body.activity-permalink #buddypress ul.item-list li.activity-item{border:none}#buddypress ul.item-list li{border-bottom:1px solid #eaeaea;padding:15px 0;margin:0;position:relative;list-style:none}#buddypress ul.single-line li{border:none}#buddypress ul.item-list li img.avatar{float:left;margin:0 10px 0 0}#buddypress ul.item-list li div.item-title,#buddypress ul.item-list li h3,#buddypress ul.item-list li h4{font-weight:400;font-size:90%;margin:0;width:75%}#buddypress ul.item-list li div.item-title span{color:#767676;font-size:80%}#buddypress ul.item-list li div.item-desc{color:#767676;font-size:80%;margin:10px 0 0 60px;width:50%}#buddypress ul.item-list li.group-no-avatar div.item-desc{margin-left:0}#buddypress ul.item-list li div.action{position:absolute;top:15px;right:0;text-align:right}#buddypress ul.item-list li div.meta{color:#767676;font-size:80%;margin-top:10px}#buddypress ul.item-list li h5 span.small{float:right;font-size:80%;font-weight:400}#buddypress div.item-list-tabs{background:0 0;clear:left;overflow:hidden}#buddypress div.item-list-tabs ul{margin:0;padding:0}#buddypress div.item-list-tabs ul li{float:left;margin:0;list-style:none}#buddypress div.item-list-tabs#subnav ul li{margin-top:0}#buddypress div.item-list-tabs ul li.last{float:right;margin:7px 0 0}#buddypress div.item-list-tabs#subnav ul li.last{margin-top:4px}#buddypress div.item-list-tabs ul li.last select{max-width:185px}#buddypress div.item-list-tabs ul li a,#buddypress div.item-list-tabs ul li span{display:block;padding:5px 10px;text-decoration:none}#buddypress div.item-list-tabs ul li a span{background:#eee;border-radius:50%;border:1px solid #ccc;color:#6c6c6c;display:inline;font-size:70%;margin-left:2px;padding:3px 6px;text-align:center;vertical-align:middle}#buddypress div.item-list-tabs ul li.current a,#buddypress div.item-list-tabs ul li.selected a{background-color:#eee;color:#555;opacity:.9;font-weight:700}#buddypress div.item-list-tabs ul li a:hover span,#buddypress div.item-list-tabs ul li.current a span,#buddypress div.item-list-tabs ul li.selected a span{background-color:#eee}#buddypress div.item-list-tabs ul li.current a span,#buddypress div.item-list-tabs ul li.selected a span{background-color:#fff}#buddypress div#item-nav ul li.loading a{background-position:88% 50%}#buddypress div.item-list-tabs#object-nav{margin-top:0}#buddypress div.item-list-tabs#subnav{background:0 0;margin:10px 0;overflow:hidden}#buddypress #admins-list li,#buddypress #members-list li,#buddypress #mods-list li{overflow:auto;list-style:none}#buddypress .group-members-list{width:100%;margin-top:1em;clear:both;overflow:auto}#buddypress div#message-thread div.message-metadata,.widget.buddypress div.avatar-block{overflow:hidden}#buddypress #item-buttons:empty{display:none}#buddypress #cover-image-container{position:relative;z-index:0}#buddypress #header-cover-image{background-color:#c5c5c5;background-position:center top;background-repeat:no-repeat;background-size:cover;border:0;display:block;left:0;margin:0;padding:0;position:absolute;top:0;width:100%;z-index:1}#buddypress #item-header-cover-image{padding:0 1em;position:relative;z-index:2}#buddypress table#message-threads tr.unread td{background:#fff9db;border-top:1px solid #ffe8c4;border-bottom:1px solid #ffe8c4;font-weight:700}#buddypress table#message-threads tr.unread td .activity,#buddypress table#message-threads tr.unread td .thread-excerpt,#buddypress table#message-threads tr.unread td.thread-options{font-weight:400}#buddypress li span.unread-count,#buddypress tr.unread span.unread-count{background:#d00;color:#fff;font-weight:700;padding:2px 8px}#buddypress div.item-list-tabs ul li a span.unread-count{padding:1px 6px;color:#fff}#buddypress div#message-thread div.message-box{margin:0;padding:15px}#buddypress div#message-thread div.alt{background:#f4f4f4}#buddypress div#message-thread p#message-recipients{margin:10px 0 20px}#buddypress div#message-thread img.avatar{float:left;margin:0 10px 0 0;vertical-align:middle}#buddypress div#message-thread strong{font-size:100%;margin:0}#buddypress div#message-thread strong a{text-decoration:none}#buddypress div#message-thread strong span.activity{margin-top:4px}#buddypress div#message-thread div.message-content{margin-left:45px}#buddypress div#message-thread div.message-options{text-align:right}#buddypress #message-threads img.avatar{max-width:none}#buddypress div.message-search{float:right;margin:0 20px}.message-metadata{position:relative}.message-star-actions{position:absolute;right:0;top:0}#buddypress a.message-action-star,#buddypress a.message-action-unstar{border-bottom:0;text-decoration:none;outline:0}a.message-action-star{opacity:.7}a.message-action-star:hover{opacity:1}.message-action-star span.icon:before,.message-action-unstar span.icon:before{font-family:dashicons;font-size:18px}.message-action-star span.icon:before{color:#767676;content:"\f154"}.message-action-unstar span.icon:before{color:#fcdd77;content:"\f155"}#buddypress div.profile h2{margin-bottom:auto;margin-top:15px}#buddypress #profile-edit-form ul.button-nav{margin-top:15px}body.no-js #buddypress .field-visibility-settings-close,body.no-js #buddypress .field-visibility-settings-toggle{display:none}#buddypress .field-visibility-settings{display:none;margin-top:10px}body.no-js #buddypress .field-visibility-settings{display:block}#buddypress .current-visibility-level{font-weight:700;font-style:normal}#buddypress .field-visibility-settings,#buddypress .field-visibility-settings-notoggle,#buddypress .field-visibility-settings-toggle{color:#707070}#buddypress .field-visibility-settings a,#buddypress .field-visibility-settings-toggle a{font-size:80%}body.register #buddypress div.page ul{list-style:none}#buddypress .standard-form .field-visibility-settings label{margin:0;font-weight:400}#buddypress .field-visibility-settings legend,#buddypress .field-visibility-settings-toggle{font-style:italic}#buddypress .field-visibility-settings .radio{list-style:none;margin-bottom:0}#buddypress .field-visibility select{margin:0}#buddypress .wp-editor-container{border:1px solid #dedede}#buddypress .html-active button.switch-html,#buddypress .tmce-active button.switch-tmce{border-bottom-color:transparent;border-bottom-left-radius:0;border-bottom-right-radius:0;background:#f5f5f5;color:#707070}#buddypress .standard-form .wp-editor-container textarea{width:100%;padding-top:0;padding-bottom:0}.widget.buddypress div.item-avatar img.avatar{float:left;margin:0 10px 15px 0}.widget.buddypress span.activity{display:inline-block;font-size:small;padding:0}.widget.buddypress div.item-options{font-size:90%;margin:0 0 1em;padding:1em 0}.widget.buddypress div.item{margin:0 0 1em}.widget.buddypress div.item-content,.widget.buddypress div.item-meta{font-size:11px;margin-left:50px}.widget.buddypress ul.item-list img.avatar{height:40px;margin-right:10px;width:40px}.widget.buddypress div.item-avatar img{height:40px;margin:1px;width:40px}.widget.buddypress #bp-login-widget-form label{display:block;margin:1rem 0 .5rem}.widget.buddypress #bp-login-widget-form #bp-login-widget-submit{margin-right:10px}.widget.buddypress .bp-login-widget-user-avatar{float:left}.bp-login-widget-user-avatar img.avatar{height:40px;width:40px}.widget.buddypress .bp-login-widget-user-links>div{padding-left:60px;margin-bottom:.5rem}.widget.buddypress .bp-login-widget-user-links>div.bp-login-widget-user-link a{font-weight:700}.widget.buddypress #friends-list,.widget.buddypress #groups-list,.widget.buddypress #members-list{margin-left:0;padding-left:0}.widget.buddypress #friends-list li,.widget.buddypress #groups-list li,.widget.buddypress #members-list li{clear:both;list-style-type:none}@media only screen and (max-width:480px){#buddypress div.dir-search{float:right;margin-top:-50px;text-align:right}#buddypress div.dir-search input[type=text]{margin-bottom:1em;width:50%}a.bp-title-button{margin-left:10px}#buddypress form.standard-form .main-column div.action{position:relative;margin-bottom:1em}#buddypress form.standard-form .main-column ul#friend-list h3,#buddypress form.standard-form .main-column ul#friend-list h4{width:100%}}@media only screen and (max-width:320px){#buddypress div.dir-search,#buddypress ul.item-list li div.action{margin-top:0;text-align:left;clear:left;float:left}#buddypress li#groups-order-select{clear:left;float:left}#buddypress ul.item-list li div.action{margin-left:70px;position:relative;top:0;right:0}#buddypress ul.item-list li div.item-desc{clear:left;float:left;margin:10px 0 0;width:auto}#buddypress li div.item{margin-left:70px;width:auto}#buddypress ul.item-list li div.meta{margin-top:0}#buddypress .item-desc p{margin:0 0 10px}#buddypress div.pagination .pag-count{margin-left:0}}@media only screen and (max-width:240px){#buddypress div.dir-search{float:left;margin:0}#buddypress div.dir-search input[type=text]{width:50%}#buddypress li#groups-order-select{float:left}#buddypress ul.item-list li img.avatar{width:30px;height:auto}#buddypress li div.item,#buddypress ul.item-list li div.action{margin-left:45px}h1 a.bp-title-button{clear:left;float:left;margin:10px 0 20px}} \ No newline at end of file diff --git a/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/twentyseventeen-rtl.css b/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/twentyseventeen-rtl.css new file mode 100644 index 000000000..dea049928 --- /dev/null +++ b/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/twentyseventeen-rtl.css @@ -0,0 +1,2194 @@ +@charset "UTF-8"; +/*-------------------------------------------------------------- + +This is the BuddyPress companion stylesheet for +the WordPress twentyseventeen theme. + +This sheet supports the primary BuddyPress styles in buddypress.css + +If you are running as a child theme of twentyseventeen this stylesheet will be +loaded by default. If you want to modify the styles the normal BP Theme Compat +hierarchy works and you can copy the file to buddypress/css/ or community/css/ +in your child themes root & either start over or modify the rulesets. + +If you do not require the styles you can dequeue them from the themes functions file. + +Please see this codex article for more information: +http://codex.buddypress.org/themes/buddypress-companion-stylesheets/ + +---------------------------------------------------------------- +>>> TABLE OF CONTENTS: +---------------------------------------------------------------- +1.0 Theme Structural Elements & overrides +2.0 - Navigation - General + 2.1 - Navs - Object Nav / Sub Nav (item-list-tabs) + 2.2 - Pagination +3.0 - Images +4.0 - BP Lists / Loops Generic + 4.1 - Activity Loop + 4.1.1 Whats New Activity + 4.1.2 - Activity Listing + 4.1.3 - Activity Comments + 4.2 - Members Loop + 4.3 - Groups Loop + 4.4 - Blogs Loop +5.0 - Directories - Members, Groups, Blogs, Register, activation +6.0 - Single Item screens: User Account & Single Group Screens + 6.1 - Item Headers: Global + 6.1.1 - item-header: Groups + 6.1.2 - item-header: User Accounts + 6.2 - Item Body: Global + 6.2.1 - item-body: Groups + 6.2.1.1 - Management settings screens + 6.2.1.2 - Group members list + 6.2.2 - item-body: User Accounts + 6.2.2.1 - classes, pag, filters + 6.2.2.2 - Extended Profiles + 6.2.2.3 - Groups + 6.2.2.4 - friends + 6.2.2.5 - Private Messaging Threads + 6.2.2.6 - Settings +7.0 - Forms - General +8.0 - Tables - General +9.0 - Error / Success Messages +10.0 - Ajax Loading, Widgets, General classes +--------------------------------------------------------------*/ +/** +*------------------------------------------------------------------------------- +* @section 1.0 - Theme - Structural Elements. overrides, Globals +*------------------------------------------------------------------------------- +*/ +.buddypress div.clear { + display: none; +} + +.buddypress ul.item-list h1, +.buddypress ul.item-list h2, +.buddypress ul.item-list h3, +.buddypress ul.item-list h4, +.buddypress ul.item-list h5, +.buddypress ul.item-list h6 { + clear: none; + padding: 0; +} + +.buddypress #page a { + box-shadow: none; + text-decoration: none !important; +} + +.buddypress .entry-title { + text-align: center; +} + +@media screen and (min-width: 55em) { + .buddypress .entry-title { + text-align: right; + } +} + +@media screen and (min-width: 55em) { + .buddypress.bp-user.page .site-content, + .buddypress.single-item.groups .site-content, + .buddypress.groups.group-create .site-content, + .directory.buddypress.page-one-column .site-content { + padding-top: 40px; + } + .buddypress.bp-user.page .entry-header, + .buddypress.single-item.groups .entry-header, + .buddypress.groups.group-create .entry-header, + .directory.buddypress.page-one-column .entry-header { + margin: 10px 0; + } +} + +@media screen and (min-width: 48em) { + body.buddypress.page.page-two-column #primary .entry-header { + width: 30%; + } + body.buddypress.page.page-two-column #primary .entry-content { + width: 68%; + } + body.buddypress:not(.has-sidebar) #primary.content-area, + body.buddypress:not(.page-two-column) #primary.content-area { + max-width: 100%; + width: 100%; + } + body.buddypress:not(.has-sidebar) #primary.content-area .entry-content, + body.buddypress:not(.has-sidebar) #primary.content-area .content-bottom-widgets, + body.buddypress:not(.page-two-column) #primary.content-area .entry-content, + body.buddypress:not(.page-two-column) #primary.content-area .content-bottom-widgets { + margin-right: 0; + margin-left: 0; + } + body.buddypress:not(.has-sidebar) .sidebar, + body.buddypress:not(.page-two-column) .sidebar { + float: right; + margin-right: 75%; + padding: 0; + width: 25%; + } +} + +body.colors-dark #buddypress #group-create-tabs.item-list-tabs li.selected, +body.colors-dark #buddypress #group-create-tabs.item-list-tabs li.current { + border-bottom-color: #222; +} + +body.colors-dark #buddypress #group-create-tabs.item-list-tabs li.selected a, +body.colors-dark #buddypress #group-create-tabs.item-list-tabs li.current a { + color: inherit; +} + +body.colors-dark #buddypress div.item-list-tabs ul li.selected a, +body.colors-dark #buddypress div.item-list-tabs ul li.current a { + background: none; + color: inherit; +} + +body.colors-dark #buddypress #object-nav li:not(.current):focus a, +body.colors-dark #buddypress #object-nav li:not(.current):hover a { + color: #555; +} + +body.colors-dark #buddypress #subnav.item-list-tabs ul { + border-bottom: 1px solid rgba(234, 234, 234, 0.9); + margin-bottom: 20px; +} + +body.colors-dark #buddypress #subnav.item-list-tabs ul li.last { + border-top: 1px solid rgba(234, 234, 234, 0.9); +} + +body.colors-dark #buddypress .item-list div.meta { + color: #ddd; +} + +body.colors-dark #buddypress .item-list div.item-desc, +body.colors-dark #buddypress .item-list .activity-header p, +body.colors-dark #buddypress .item-list .activity-comments ul, +body.colors-dark #buddypress .item-list .acomment-meta { + color: #eee; +} + +body.colors-dark #buddypress .item-list .activity-meta a, +body.colors-dark #buddypress .item-list .action a { + background: #fafafa; +} + +body.colors-dark #buddypress .item-list .activity-meta a:focus, body.colors-dark #buddypress .item-list .activity-meta a:hover, +body.colors-dark #buddypress .item-list .action a:focus, +body.colors-dark #buddypress .item-list .action a:hover { + background: #fff; +} + +body.colors-dark #buddypress #latest-update { + color: #eee; +} + +body.colors-dark #buddypress div.pagination * { + color: #ddd; +} + +body.colors-dark #buddypress #item-header .user-nicename { + color: #eee; +} + +body.colors-dark #buddypress #item-body table thead tr, +body.colors-dark #buddypress #item-body table thead th { + background: none; + color: #eee; +} + +body.colors-dark #buddypress #item-body table tr.alt td { + background: none; + color: #eee; +} + +body.colors-dark #buddypress #item-body table .field-visibility-settings, +body.colors-dark #buddypress #item-body table .field-visibility-settings-notoggle { + color: #eee; +} + +body.colors-dark #buddypress #item-body fieldset { + background: none; +} + +body.colors-dark #buddypress #item-body .checkbox label, +body.colors-dark #buddypress #item-body .radio label { + color: #eee; +} + +body.colors-dark #buddypress #item-body div#invite-list { + background: none; +} + +body.colors-dark.group-members #buddypress #subnav li { + background: none; +} + +body.colors-dark.group-members #buddypress #subnav .groups-members-search form { + margin-bottom: 20px; + margin-top: 0; +} + +.directory.colors-dark #buddypress #subnav.item-list-tabs ul { + border-bottom: 0; + border-top: 0; +} + +.directory.colors-dark #buddypress #subnav.item-list-tabs ul li.last.filter { + border-top: 0; +} + +.directory.colors-dark #buddypress div.activity ul.item-list { + border-top: 0; +} + +body.colors-light #buddypress div.item-list-tabs ul { + background-color: #fafafa; +} + +body.colors-light #buddypress div#subnav.item-list-tabs ul { + background-color: #f7f7f7; +} + +body.colors-light #buddypress div#subnav.item-list-tabs ul li.last { + background: #fff; +} + +body.colors-light #buddypress .item-list .activity-header p { + background-color: #f7f7f7; + color: #878787; +} + +body.colors-light #buddypress .item-list .activity-comments .acomment-meta { + color: #737373; +} + +body.colors-light #buddypress #item-body .profile h2 { + background: #878787; + color: #fff; +} + +body.colors-light #buddypress table tr.alt td { + background: #f5f5f5; + color: #333; +} + +body.colors-light #buddypress div#invite-list { + background: #fafafa; +} + +/** +*------------------------------------------------------------------------------- +* @section 2.0 - Navigation - General +*------------------------------------------------------------------------------- +*/ +/** +*---------------------------------------------------------- +* @section 2.1 - Navs Object Nav / Sub Nav (item-list-tabs) +* +* The main navigational elements for all BP screens +*---------------------------------------------------------- +*/ +#buddypress div.item-list-tabs ul li.selected a { + background: inherit; + opacity: 1; +} + +#buddypress div.item-list-tabs ul { + border-bottom: 1px solid rgba(234, 234, 234, 0.9); + overflow: hidden; + padding: 0; +} + +#buddypress div.item-list-tabs ul li a span { + border-radius: 25%; +} + +/*__ Horizontal menus __*/ +#buddypress #object-nav ul { + overflow: hidden; +} + +#buddypress #object-nav ul li { + float: none; +} + +@media screen and (max-width: 38.75em) { + #buddypress #object-nav ul li:not(:last-child) { + border-bottom: 1px solid #eaeaea; + } +} + +@media screen and (max-width: 38.75em) { + #buddypress #object-nav ul li:not(.selected):focus, #buddypress #object-nav ul li:not(.selected):hover { + background: #f4f2df; + } +} + +@media screen and (min-width: 38.75em) { + #buddypress #object-nav ul li { + float: right; + } +} + +#buddypress div#subnav.item-list-tabs { + margin-top: 0; +} + +#buddypress div#subnav.item-list-tabs ul { + border-bottom: 0; + margin-top: 5px; + padding: 0; +} + +#buddypress div#subnav.item-list-tabs ul li.last { + margin-top: 0; + padding: 5px 0 5px 5px; + width: 100%; +} + +#buddypress div#subnav.item-list-tabs ul li.last select, +#buddypress div#subnav.item-list-tabs ul li.last select:focus { + background: transparent; + border: 0; + outline: 0; +} + +#buddypress div#subnav.item-list-tabs ul li.last label { + display: inline; +} + +#buddypress div#subnav.item-list-tabs ul li.last select, +#buddypress div#subnav.item-list-tabs ul li.last label, +#buddypress div#subnav.item-list-tabs ul li.last option { + font-size: 14px; + font-size: 0.875rem; +} + +#buddypress div#subnav.item-list-tabs ul li.last select { + font-style: italic; + height: auto; +} + +@media screen and (min-width: 38.75em) { + #buddypress div#subnav.item-list-tabs ul li.last { + text-align: left; + } +} + +/*__ Vertical menu User Account / Group single screens __*/ +@media screen and (min-width: 55em) { + body:not(.page-two-column) #buddypress #object-nav { + border-left: 1px solid #ddd; + float: right; + margin-left: -1px; + width: 200px; + } + body:not(.page-two-column) #buddypress #object-nav ul { + background: none; + border-bottom: 0; + padding: 0; + } + body:not(.page-two-column) #buddypress #object-nav ul li { + float: none; + overflow: hidden; + } + body:not(.page-two-column) #buddypress #object-nav ul li span { + background: #fff; + border-radius: 10%; + float: left; + margin-left: 2px; + } + body:not(.page-two-column) #buddypress #item-body { + border-right: 1px solid #ddd; + overflow: hidden; + padding: 0 20px 0 0; + width: auto; + } + body:not(.page-two-column) #buddypress #item-body #subnav { + margin: 0 -20px 0 0; + } + body:not(.page-two-column) #buddypress #item-body #subnav ul { + margin-top: 0; + } +} + +@media screen and (min-width: 48em) { + #buddypress #group-create-tabs.item-list-tabs ul:before, + #buddypress #group-create-tabs.item-list-tabs ul:after { + content: " "; + display: table; + } + #buddypress #group-create-tabs.item-list-tabs ul:after { + clear: both; + } + #buddypress #group-create-tabs.item-list-tabs ul { + background: none; + border: 0; + border-bottom: 1px solid #ddd; + overflow: visible; + padding-bottom: 0; + } + #buddypress #group-create-tabs.item-list-tabs ul li { + float: right; + width: auto; + } + #buddypress #group-create-tabs.item-list-tabs ul li.selected, + #buddypress #group-create-tabs.item-list-tabs ul li.current { + border: 1px solid #ddd; + border-bottom-color: #fff; + -webkit-border-top-left-radius: 4px; + border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + border-top-right-radius: 4px; + background-clip: padding-box; + margin-bottom: -1px; + } + #buddypress #group-create-tabs.item-list-tabs ul li.selected a, + #buddypress #group-create-tabs.item-list-tabs ul li.current a { + background: none; + color: #333; + outline: none; + } + #buddypress #subnav ul { + border-bottom: 0; + } +} + +/** +*---------------------------------------------------------- +* @section 2.2 - Pagination +*---------------------------------------------------------- +*/ +#buddypress div.pagination { + box-shadow: none; + font-weight: 400; + min-height: 0; +} + +#buddypress div.pagination:before, #buddypress div.pagination:after { + height: 0; + width: 0; +} + +#buddypress div.pagination .pag-count { + margin-right: 0; +} + +#buddypress div.pagination .pagination-links { + margin-left: 0; +} + +#buddypress div.pagination .pagination-links span, +#buddypress div.pagination .pagination-links a { + height: auto; + line-height: 1; + padding: 5px; +} + +#buddypress div.pagination .pagination-links .prev, +#buddypress div.pagination .pagination-links .next { + background-color: transparent; + color: inherit; + overflow: visible; + width: auto; +} + +#buddypress div.pagination .pagination-links .prev:before, +#buddypress div.pagination .pagination-links .next:before { + display: none; +} + +#buddypress div.pagination .pagination-links .prev { + right: auto; + position: static; +} + +#buddypress div.pagination .pagination-links .next { + position: static; + left: auto; +} + +/** +*------------------------------------------------------------------------------- +* @section 4.0 - BP Lists / Loops Generic +*------------------------------------------------------------------------------- +*/ +#buddypress .item-list .activity-header, +#buddypress .item-list .activity-meta { + font-family: "Libre Franklin", "Helvetica Neue", helvetica, arial, sans-serif; +} + +#buddypress .activity-meta .button:focus, #buddypress .activity-meta .button:hover { + background: inherit; + color: #000; +} + +#buddypress .action .generic-button a:focus, #buddypress .action .generic-button a:hover { + background: inherit; + color: #000; +} + +#buddypress ul.item-list li { + overflow: hidden !important; +} + +#buddypress ul.item-list li .item-avatar { + margin-bottom: 10px; + text-align: center; +} + +@media screen and (min-width: 38.75em) { + #buddypress ul.item-list li .item-avatar { + margin-bottom: 0; + } +} + +#buddypress ul.item-list li .item-avatar a { + border-bottom: 0; +} + +#buddypress ul.item-list li .item-avatar img.avatar { + display: inline-block; + float: none; + margin-bottom: 10px; +} + +@media screen and (min-width: 30em) { + #buddypress ul.item-list li .item-avatar img.avatar { + display: block; + float: right; + } +} + +#buddypress ul.item-list li .item { + overflow: hidden; +} + +@media screen and (min-width: 48em) { + #buddypress ul.item-list li .item { + margin-right: 15%; + } +} + +#buddypress ul.item-list li .item span.activity { + font-style: italic; +} + +#buddypress ul.item-list li .item .item-desc { + margin-right: 0; + width: 94%; +} + +#buddypress ul.item-list li .item .item-title { + font-size: 18px; + font-size: 1.125rem; + line-height: 1.2; + text-align: center; + width: 100%; +} + +@media screen and (min-width: 30em) { + #buddypress ul.item-list li .item .item-title { + text-align: right; + } +} + +#buddypress ul.item-list li .item .item-title .update { + display: block; + font-size: 13px; + font-size: 0.8125rem; + padding: 10px 0; + text-align: right; +} + +@media screen and (min-width: 55em) { + #buddypress ul.item-list li .item .item-title .update { + font-size: 14px; + font-size: 0.875rem; + } +} + +@media screen and (min-width: 55em) { + #buddypress ul.item-list li .item-avatar, + #buddypress ul.item-list li .item, + #buddypress ul.item-list li .action { + float: right; + } + #buddypress ul.item-list li .item { + right: 5%; + margin-right: 0; + position: relative; + width: 55%; + } + #buddypress ul.item-list li .item .item-title { + font-size: 22px; + font-size: 1.375rem; + } +} + +#buddypress ul.item-list li div.action { + clear: right; + float: none; + margin-bottom: -20px; + margin-right: 0; + padding: 20px 0 5px; + position: relative; + text-align: right; + top: 0; +} + +@media screen and (min-width: 55em) { + #buddypress ul.item-list li div.action { + clear: none; + float: left; + margin-bottom: 0; + padding: 0; + } +} + +#buddypress ul.item-list li div.action div { + display: inline-block; + margin: 10px 0; + width: 100%; +} + +#buddypress ul.item-list li div.action div a { + display: block; + width: 100%; +} + +@media screen and (min-width: 30em) { + #buddypress ul.item-list li div.action div { + margin: 0 0 10px 10px; + width: auto; + } +} + +@media screen and (min-width: 55em) { + #buddypress ul.item-list li div.action div { + clear: left; + float: left; + margin: 0 0 10px 0; + } +} + +#buddypress ul.item-list li div.action .meta { + font-style: italic; +} + +/** +*---------------------------------------------------------- +* @section 4.1 - Activity +*---------------------------------------------------------- +*/ +/** +*----------------------------------------------------- +* @section 4.1.1 - Activity Whats New +*----------------------------------------------------- +*/ +#buddypress form#whats-new-form p.activity-greeting { + line-height: 1.4; +} + +@media screen and (max-width: 46.25em) { + #buddypress form#whats-new-form #whats-new-content { + clear: right; + margin: 10px 0 20px; + padding: 10px 0 0; + } +} + +#buddypress form#whats-new-form #whats-new-content.active #whats-new-options[style] #whats-new-post-in-box { + border: 1px solid rgba(190, 190, 190, 0.5); + float: right; + line-height: 1.5em; + margin-top: 12px; + padding-right: 0.2em; + width: 100%; +} + +#buddypress form#whats-new-form #whats-new-content.active #whats-new-options[style] #whats-new-post-in-box select { + background: none; + border: 0; + float: left; + margin: 0; + min-height: 1.5em; + padding-right: 0.4em; +} + +@media screen and (min-width: 30em) { + #buddypress form#whats-new-form #whats-new-content.active #whats-new-options[style] #whats-new-post-in-box { + width: auto; + } + #buddypress form#whats-new-form #whats-new-content.active #whats-new-options[style] #whats-new-submit { + float: left; + } +} + +#buddypress #item-body form#whats-new-form { + margin: 40px 0; +} + +/** +*----------------------------------------------------- +* @section 4.1.2 - Activity Listing +*----------------------------------------------------- +*/ +#buddypress #activity-stream li { + padding: 25px 0 15px; +} + +#buddypress #activity-stream li .activity-avatar { + float: none; + text-align: center; +} + +#buddypress #activity-stream li .activity-avatar a { + display: inline-block; +} + +#buddypress #activity-stream li .activity-avatar a img.avatar { + display: inline; + float: none; + height: 60px; + margin-bottom: 20px; + margin-right: 0; + width: 60px; +} + +#buddypress #activity-stream li .activity-content { + margin-right: 0; +} + +#buddypress #activity-stream li .activity-content .activity-header { + font-size: 14px; + font-size: 0.875rem; +} + +#buddypress #activity-stream li .activity-content .activity-header a { + color: #0075c4; +} + +@media screen and (min-width: 48em) { + #buddypress #activity-stream li .activity-avatar { + float: right; + margin-left: 10px; + text-align: right; + } + #buddypress #activity-stream li .activity-avatar a { + border-bottom: 0; + } + #buddypress #activity-stream li .activity-content { + margin: 0; + overflow: hidden; + } + #buddypress #activity-stream li .activity-content .activity-header { + font-size: 16px; + font-size: 1rem; + } +} + +#buddypress #activity-stream li.mini .activity-avatar a img.avatar { + height: 30px; + margin-right: 15px; + width: 30px; +} + +#buddypress #activity-stream li.mini .activity-content .activity-header { + font-size: 14px; + font-size: 0.875rem; +} + +#buddypress #activity-stream .activity-content { + margin-top: -12px; +} + +#buddypress #activity-stream .activity-content .activity-header { + margin-left: 0; +} + +#buddypress #activity-stream .activity-content .activity-header p { + border: 1px solid rgba(234, 234, 234, 0.6); + margin-top: 0; + padding: 0 0.2em; +} + +#buddypress #activity-stream .activity-content .activity-header img.avatar { + box-shadow: none; + display: inline-block; + margin: 0 5px !important; + vertical-align: middle; +} + +#buddypress #activity-stream .activity-content .activity-meta a { + display: block; + margin-bottom: 5px; +} + +@media screen and (min-width: 30em) { + #buddypress #activity-stream .activity-content .activity-meta a { + display: inline-block; + margin-bottom: 0; + width: auto; + } +} + +#buddypress #activity-stream .load-more { + background: #f7f7f7; + border: 1px solid transparent; + padding: 10px; +} + +#buddypress #activity-stream .load-more:focus, #buddypress #activity-stream .load-more:hover { + background: #f4f4f4; + border: 1px solid rgba(159, 209, 226, 0.3); +} + +#buddypress #activity-stream .load-more:focus a, #buddypress #activity-stream .load-more:hover a { + font-style: italic; +} + +#buddypress #activity-stream .load-more a { + display: block; +} + +/* Single activity view - activity permalink */ +.activity-permalink #buddypress #activity-stream li.activity-item { + padding: 20px; +} + +.activity-permalink #buddypress #activity-stream li.mini .activity-header { + font-size: 16px; + font-size: 1rem; + margin-bottom: 40px; +} + +@media screen and (min-width: 48em) { + .activity-permalink #buddypress #activity-stream li.mini .activity-header { + font-size: 20px; + font-size: 1.25rem; + } +} + +.activity-permalink #buddypress #activity-stream li.mini .activity-header p { + padding: 20px; +} + +/** +*----------------------------------------------------- +* @section 4.1.3 - Activity Comments +*----------------------------------------------------- +*/ +#buddypress #activity-stream .activity-comments { + border-right: 1px solid #eaeaea; + margin: 20px 0 20px; +} + +@media screen and (min-width: 30em) { + #buddypress #activity-stream .activity-comments { + margin-right: 20px; + } +} + +#buddypress #activity-stream .activity-comments ul { + margin: 15px 2px 0 0; +} + +#buddypress #activity-stream .activity-comments ul li { + border-top: 1px solid #bebebe; +} + +#buddypress #activity-stream .activity-comments ul a { + color: #0077c7; +} + +#buddypress #activity-stream .activity-comments .acomment-meta { + border-bottom: 1px solid #eaeaea; +} + +#buddypress #activity-stream .activity-comments .ac-form input[type="submit"], +#buddypress #activity-stream .activity-comments .ac-form .ac-reply-cancel { + color: rgba(51, 51, 51, 0.8); + display: inline-block; + font-family: inherit; + font-size: 12px; + font-size: 0.75rem; + font-weight: normal; + line-height: 1.2; + padding: 4px 10px; + text-transform: lowercase; + width: 100px; +} + +#buddypress #activity-stream .activity-comments .ac-form .ac-reply-cancel { + border: 1px solid rgba(190, 190, 190, 0.7); + text-align: center; +} + +#buddypress #activity-stream .activity-comments .ac-form .ac-reply-cancel:focus, #buddypress #activity-stream .activity-comments .ac-form .ac-reply-cancel:hover { + background: #ededed; +} + +/** +*---------------------------------------------------------- +* @section 4.2 - Members Loop +*---------------------------------------------------------- +*/ +@media screen and (min-width: 55em) { + #buddypress #members-list li .item-avatar, + #buddypress #members-list li .item { + float: right; + } + #buddypress #members-list li .action { + float: left; + } + #buddypress #members-list li.is-current-user .item { + float: none; + right: 0; + padding-right: 5%; + width: auto; + } +} + +/** +*------------------------------------------------------------------------------- +* @section 5.0 - Directories +*------------------------------------------------------------------------------- +*/ +/** +*----------------------------------------------------------- +* @subsection Registration +*----------------------------------------------------------- +*/ +#buddypress #signup_form.standard-form #profile-details-section, +#buddypress #signup_form.standard-form #basic-details-section, +#buddypress #signup_form.standard-form #blog-details-section { + float: none; + width: 100%; +} + +@media screen and (min-width: 38.75em) { + #buddypress #signup_form.standard-form #profile-details-section, + #buddypress #signup_form.standard-form #basic-details-section, + #buddypress #signup_form.standard-form #blog-details-section { + width: 48%; + } +} + +@media screen and (min-width: 30em) { + #buddypress #signup_form.standard-form #profile-details-section { + float: left; + } + #buddypress #signup_form.standard-form #basic-details-section { + float: right; + } +} + +/** +*------------------------------------------------------------------------------- +* @section 6.0 - Single Item screens: User Account & Single Group Screens +*------------------------------------------------------------------------------- +*/ +/** +*----------------------------------------------------------- +* @subsection 6.1 - Item Header Global +*----------------------------------------------------------- +*/ +@media screen and (min-width: 48em) { + .bp-user.page-two-column #buddypress #cover-image-container #item-header-cover-image #item-header-content { + margin-right: 140px; + margin-top: -100px; + } + .single-item.groups.page-two-column #buddypress #cover-image-container #item-header-cover-image #item-header-content { + margin-right: 10px; + } +} + +.bp-user #buddypress #item-header-cover-image .user-nicename, +.single-item.groups #buddypress #item-header-cover-image .user-nicename { + color: #333; + text-shadow: none; +} + +@media screen and (min-width: 48em) { + .bp-user #buddypress #item-header-cover-image .user-nicename, + .single-item.groups #buddypress #item-header-cover-image .user-nicename { + color: #fff; + text-shadow: 0 0 3px rgba(0, 0, 0, 0.8); + } +} + +.bp-user #buddypress #item-header-content #item-meta, +.single-item.groups #buddypress #item-header-content #item-meta { + font-size: 14px; + font-size: 0.875rem; + text-align: right; +} + +.bp-user #buddypress #item-header-content #item-meta p, +.single-item.groups #buddypress #item-header-content #item-meta p { + margin-bottom: 0.5em; +} + +@media screen and (max-width: 46.25em) { + .bp-user main header.entry-header, + .single-item.groups main header.entry-header { + padding-bottom: 1rem; + } +} + +@media screen and (max-width: 38.75em) { + .bp-user h1, + .bp-user #item-header-content, + .single-item.groups h1, + .single-item.groups #item-header-content { + text-align: center; + } +} + +@media screen and (max-width: 46.25em) { + .bp-user #buddypress #item-header .generic-button, + .single-item.groups #buddypress #item-header .generic-button { + float: none; + margin: 1.5em 0 0 0; + } +} + +@media screen and (max-width: 38.75em) { + .bp-user #buddypress h1, + .single-item.groups #buddypress h1 { + margin-bottom: 0; + } + .bp-user #buddypress #item-header-avatar img.avatar, + .single-item.groups #buddypress #item-header-avatar img.avatar { + margin-left: 0; + } + .bp-user #buddypress #item-header-content, + .single-item.groups #buddypress #item-header-content { + width: 100%; + } +} + +/** +*----------------------------------------------------- +* @subsection 6.1.1 - item-header Groups +* +* Group Specific Item Header +*----------------------------------------------------- +*/ +@media screen and (max-width: 46.25em) { + .single-item.groups #buddypress #item-header #item-meta { + margin-bottom: 20px; + } +} + +@media screen and (max-width: 38.75em) { + .single-item.groups #buddypress div#item-header { + display: flex; + flex-direction: column; + } + .single-item.groups #buddypress div#item-header #item-header-avatar { + order: 1; + text-align: center; + } + .single-item.groups #buddypress div#item-header #item-header-avatar a img { + display: inline-block; + float: none; + } + .single-item.groups #buddypress div#item-header #item-header-content { + order: 2; + } + .single-item.groups #buddypress div#item-header #item-actions { + order: 3; + } + .single-item.groups #buddypress div#item-header #item-actions h2 { + border-bottom: 1px solid #eaeaea; + text-align: center; + } +} + +.single-item.groups #buddypress div#item-header { + padding-bottom: 40px; +} + +.single-item.groups #buddypress div#item-header div#item-actions { + margin: 0; + width: 100%; +} + +@media screen and (min-width: 38.75em) { + .single-item.groups #buddypress div#item-header div#item-actions { + border-right: 1px solid #eaeaea; + clear: none; + float: left; + padding-right: 0.2em; + width: 30%; + } +} + +@media screen and (min-width: 48em) { + .single-item.groups #buddypress div#item-header div#item-actions { + width: 40%; + } +} + +.single-item.groups #buddypress div#item-header div#item-actions ul { + margin-top: 0; + padding-right: 0; +} + +.single-item.groups #buddypress div#item-header div#item-actions h2 { + font-size: 14px; + font-size: 0.875rem; + padding: 0.2em; +} + +@media screen and (min-width: 48em) { + .single-item.groups #buddypress div#item-header div#item-actions h2 { + font-size: 16px; + font-size: 1rem; + } +} + +@media screen and (min-width: 48em) { + .single-item.groups #buddypress div#item-header #item-header-avatar, + .single-item.groups #buddypress div#item-header #item-header-content { + float: right; + } + .single-item.groups #buddypress div#item-header #item-header-avatar { + width: 21%; + } + .single-item.groups #buddypress div#item-header #item-header-content { + margin-right: 4%; + width: 40%; + } + .single-item.groups #buddypress div#item-header div#item-actions { + float: left; + width: 28%; + } +} + +/** +*----------------------------------------------------- +* @subsection 6.1.2 - Item Header User Accounts +* +* User Accounts Specific Item Header +*----------------------------------------------------- +*/ +.bp-user #buddypress #item-header { + padding: 20px 0; +} + +.bp-user #buddypress #item-header #item-header-avatar { + text-align: center; + width: 100%; +} + +.bp-user #buddypress #item-header #item-header-avatar img.avatar, +.bp-user #buddypress #item-header #item-header-avatar a { + display: inline-block; + float: none; +} + +@media screen and (min-width: 48em) { + .bp-user #buddypress #item-header #item-header-avatar { + float: right; + width: 20%; + } + .bp-user #buddypress #item-header #item-header-avatar a { + float: right; + } + .bp-user #buddypress #item-header #item-header-content { + float: left; + margin-left: 5%; + width: 69%; + } +} + +/** +*----------------------------------------------------------- +* @subsection 6.2 - Item Body: Global +*----------------------------------------------------------- +*/ +/** +*---------------------------------------------------- +* @subsection 6.2.1 - Item Body Groups +* +* Groups specific item body rules - screens +*---------------------------------------------------- +*/ +.groups.single-item.members #buddypress #subnav.item-list-tabs ul { + background: none; + border-top: 0; +} + +/** +*----------------------------------------- +* @subsection 6.2.1.1 - Group Management +*----------------------------------------- +*/ +.groups #group-settings-form h3 { + background: #555; + color: #fff; + padding: 0.2em; +} + +.groups.edit-details #group-settings-form label { + margin-bottom: 0; + padding: 0.2em; + width: 80%; +} + +.groups.edit-details #group-settings-form textarea + p label { + background: none; + color: inherit; + font-size: 14px; + font-size: 0.875rem; + width: auto; +} + +.groups.edit-details #group-settings-form textarea { + height: auto; + min-height: 100px; + overflow: auto; +} + +.groups.group-settings #group-settings-form div.radio label { + border: 1px solid #eaeaea; + padding: 0.2em; +} + +.groups.group-settings #group-settings-form div.radio label ul { + color: rgba(51, 51, 51, 0.6); + font-size: 14px; + font-size: 0.875rem; +} + +.groups.group-avatar form > p { + margin-top: 20px; +} + +.groups.manage-members #group-settings-form .item-list li { + border-bottom: 1px solid #eaeaea; +} + +.groups.manage-members #group-settings-form .item-list li img, +.groups.manage-members #group-settings-form .item-list li h5 { + float: right; +} + +.groups.manage-members #group-settings-form .item-list li img > a, +.groups.manage-members #group-settings-form .item-list li h5 > a { + border-bottom: 0; +} + +.groups.manage-members #group-settings-form .item-list li span.small { + clear: right; + display: block; + float: none; + margin-top: 10px; +} + +.groups.manage-members #group-settings-form .item-list li span.small a { + display: inline-block; + margin: 5px 0; + width: 100%; +} + +@media screen and (min-width: 38.75em) { + .groups.manage-members #group-settings-form .item-list li span.small a { + width: auto; + } +} + +.groups.manage-members #group-settings-form .item-list li h5 { + margin: 0; +} + +/** +*----------------------------------------- +* @subsection 6.2.1.2 - Group members +*----------------------------------------- +*/ +.groups.group-members #subnav li { + width: 100%; +} + +@media screen and (max-width: 38.75em) { + .groups.group-members #subnav li { + background: #fff; + padding: 20px 0; + } +} + +.groups.group-members #subnav li #search-members-form { + float: left; + margin: 5px 0 0; +} + +@media screen and (max-width: 38.75em) { + .groups.group-members #subnav li #search-members-form { + margin: 0; + width: 100%; + } + .groups.group-members #subnav li #search-members-form label input[type="text"] { + width: 100%; + } +} + +/** +*----------------------------------------------------- +* @subsection 6.2.2 - Item Body User Accounts +* +* User Account specific item body rules +*----------------------------------------------------- +*/ +.bp-user .entry-title { + margin-bottom: 0.5em; +} + +/** +*-------------------------------------------- +* @subsection 6.2.2.1 - classes, pag, filters +*-------------------------------------------- +*/ +.bp-user #buddypress table th { + font-size: 14px; + font-size: 0.875rem; +} + +.bp-user #buddypress table td { + font-size: 12px; + font-size: 0.75rem; +} + +.bp-user #buddypress table a { + color: #0074c2; +} + +@media screen and (min-width: 55em) { + .bp-user #buddypress table th { + font-size: 16px; + font-size: 1rem; + } + .bp-user #buddypress table td { + font-size: 14px; + font-size: 0.875rem; + } +} + +@media screen and (min-width: 67em) { + .bp-user #buddypress table th { + font-size: 18px; + font-size: 1.125rem; + } + .bp-user #buddypress table td { + font-size: 16px; + font-size: 1rem; + } +} + +.bp-user #buddypress .pag-count { + font-style: italic; +} + +.bp-user #buddypress .notifications-options-nav, +.bp-user #buddypress .messages-options-nav { + float: right; + width: 100%; +} + +@media screen and (min-width: 38.75em) { + .bp-user #buddypress .notifications-options-nav, + .bp-user #buddypress .messages-options-nav { + width: 300px; + } +} + +.bp-user #buddypress .notifications-options-nav select, +.bp-user #buddypress .messages-options-nav select { + height: auto; +} + +.bp-user #buddypress .notifications-options-nav select, +.bp-user #buddypress .notifications-options-nav input, +.bp-user #buddypress .messages-options-nav select, +.bp-user #buddypress .messages-options-nav input { + font-size: 14px; + font-size: 0.875rem; + outline: 0; + padding: 0; +} + +.bp-user #buddypress .notifications-options-nav select, +.bp-user #buddypress .messages-options-nav select { + float: right; + margin-left: 1%; + width: 59%; +} + +.bp-user #buddypress .notifications-options-nav input, +.bp-user #buddypress .messages-options-nav input { + float: left; + font-family: inherit; + line-height: 20px; + width: 40%; +} + +.bp-user #buddypress .notifications-options-nav input[disabled="disabled"]:focus, +.bp-user #buddypress .notifications-options-nav input[disabled="disabled"]:hover, +.bp-user #buddypress .messages-options-nav input[disabled="disabled"]:focus, +.bp-user #buddypress .messages-options-nav input[disabled="disabled"]:hover { + background: none; +} + +/** + *------------------------------------------- + * @subsection 6.2.2.2 - Extended Profiles + *------------------------------------------- + */ +.bp-user #buddypress .profile { + /* Edit profile */ +} + +.bp-user #buddypress .profile h2 { + margin: 40px 0 10px; + padding: 0.1em 0.4em 0.1em 0; +} + +.bp-user #buddypress .profile table { + margin-top: 0; +} + +.bp-user #buddypress .profile .profile-fields tr.alt td { + color: #333; +} + +.bp-user #buddypress .profile .profile-fields tr:last-child { + border-bottom: 0; +} + +.bp-user #buddypress .profile #profile-edit-form .button-nav:before, +.bp-user #buddypress .profile #profile-edit-form .button-nav:after { + content: " "; + display: table; +} + +.bp-user #buddypress .profile #profile-edit-form .button-nav:after { + clear: both; +} + +.bp-user #buddypress .profile #profile-edit-form ul.button-nav { + border-bottom: 1px solid #eaeaea; + margin-right: 0; +} + +.bp-user #buddypress .profile #profile-edit-form ul.button-nav li { + float: right; + margin-bottom: 0; +} + +.bp-user #buddypress .profile #profile-edit-form ul.button-nav li.current { + border: 1px solid #eaeaea; + border-bottom-color: #fff; + margin-bottom: -1px; +} + +.bp-user #buddypress .profile #profile-edit-form ul.button-nav a { + background: none; + border: 0; + font-size: 18px; + font-size: 1.125rem; +} + +.bp-user #buddypress .profile #profile-edit-form .field-visibility-settings-toggle, +.bp-user #buddypress .profile #profile-edit-form .field-visibility-settings-notoggle, +.bp-user #buddypress .profile #profile-edit-form .field-visibility-settings { + font-size: 14px; + font-size: 0.875rem; + margin-top: 10px; +} + +.bp-user #buddypress .profile #profile-edit-form .field-visibility-settings-close, +.bp-user #buddypress .profile #profile-edit-form .visibility-toggle-link { + background: #555; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + -ms-border-radius: 3px; + border-radius: 3px; + background-clip: padding-box; + color: #fff; + padding: 0.2em 0.5em; +} + +.bp-user #buddypress .profile .bp-avatar #bp-delete-avatar a { + font-size: inherit; +} + +/** + *------------------------------------------- + * @subsection 6.2.2.3 - Groups + *------------------------------------------- + */ +@media screen and (min-width: 77.5em) { + .bp-user #buddypress #groups-list li .item { + right: 5%; + width: 50%; + } +} + +/** + *------------------------------------------- + * @subsection 6.2.2.5 - Private Messaging + *------------------------------------------- + */ +.bp-user #buddypress #message-thread a { + border-bottom: 0; +} + +.bp-user #buddypress #message-thread #message-subject { + background: #6f6f6f; + color: #fff; + padding: 0.3em 0.2em 0.3em 0; +} + +.bp-user #buddypress #message-thread #message-recipients { + font-style: italic; +} + +.bp-user #buddypress #message-thread #message-recipients a.confirm { + border: 1px solid #eaeaea; + font-style: normal; +} + +.bp-user #buddypress #message-thread .message-metadata { + overflow: hidden; +} + +.bp-user #buddypress #message-thread .message-metadata img.avatar { + float: none; +} + +@media screen and (min-width: 48em) { + .bp-user #buddypress #message-thread .message-metadata img.avatar { + float: right; + } +} + +.bp-user #buddypress #message-thread .message-metadata .message-star-actions { + float: left; + margin-left: 5px; + position: static; +} + +.bp-user #buddypress #message-thread .message-content { + background: #f7f7f7; + border: 1px solid #eaeaea; + margin: 10px 0 0 0; + padding: 0.3em; +} + +.bp-user #buddypress #message-thread #send-reply .message-content { + background: #fff; + border: 0; +} + +.bp-user #buddypress #message-thread .alt { + background: #fff; +} + +.bp-user #buddypress #message-threads thead tr { + background: none; + border-bottom: 1px solid #bebebe; +} + +.bp-user #buddypress #message-threads thead tr th { + background: #555; +} + +.bp-user #buddypress #message-threads tr { + border-bottom: 5px solid #878787; +} + +.bp-user #buddypress #message-threads tr td { + display: inline-block; + float: right; +} + +.bp-user #buddypress #message-threads tr td.thread-star, +.bp-user #buddypress #message-threads tr td.thread-options { + border-bottom-color: #bebebe; + border-bottom-width: 1px; + height: 2.4em; + padding-bottom: 0.2em; + padding-top: 0.2em; +} + +@media screen and (max-width: 46.25em) { + .bp-user #buddypress #message-threads tr td.thread-star, + .bp-user #buddypress #message-threads tr td.thread-options { + padding-top: 0; + } +} + +.bp-user #buddypress #message-threads tr td.bulk-select-check, +.bp-user #buddypress #message-threads tr td.thread-star, +.bp-user #buddypress #message-threads tr td.thread-from, +.bp-user #buddypress #message-threads tr td.thread-info, +.bp-user #buddypress #message-threads tr td.thread-options { + border-top: 0; +} + +.bp-user #buddypress #message-threads tr td.thread-star { + vertical-align: middle; +} + +.bp-user #buddypress #message-threads tr td.thread-star .message-action-star { + line-height: 1.2; +} + +.bp-user #buddypress #message-threads tr td.bulk-select-check, +.bp-user #buddypress #message-threads tr td.thread-from { + height: 3em; +} + +@media screen and (max-width: 38.75em) { + .bp-user #buddypress #message-threads tr td.bulk-select-check, + .bp-user #buddypress #message-threads tr td.thread-from { + height: 5.2em; + } +} + +.bp-user #buddypress #message-threads tr td.thread-from, +.bp-user #buddypress #message-threads tr td.thread-options { + border-right: 0 !important; + width: -webkit-calc(100% - 30px); + width: -moz-calc(100% - 30px); + width: calc(100% - 30px); + margin-right: 0; +} + +.bp-user #buddypress #message-threads tr td.thread-info { + padding-right: 41px; + width: 100%; +} + +.bp-user #buddypress #message-threads tr td.thread-info a::after { + content: " ‗ " attr(title); + font-size: 12px; + font-size: 0.75rem; +} + +.bp-user #buddypress #message-threads tr td.thread-options { + text-align: left; +} + +.bp-user #buddypress #message-threads tr td.thread-options a { + font-size: 12px; + font-size: 0.75rem; + line-height: 2.2; +} + +.bp-user #buddypress #message-threads tr span.from { + display: none; +} + +.bp-user #buddypress #message-threads tr span.activity { + display: block; + float: left; + line-height: 2; +} + +@media screen and (max-width: 38.75em) { + .bp-user #buddypress #message-threads tr span.activity { + clear: both; + font-size: 11px; + font-size: 0.6875rem; + width: 100%; + } +} + +.bp-user #buddypress #message-threads tr.unread td { + background: none; + border-color: #bebebe; +} + +.bp-user #buddypress #message-threads th { + display: none; +} + +.bp-user #buddypress #message-threads th.bulk-select-all { + border-bottom: 0; + display: inline-block; + text-align: right; +} + +.bp-user #buddypress #message-threads th.bulk-select-all, +.bp-user #buddypress #message-threads td.bulk-select-check, +.bp-user #buddypress #message-threads td.thread-star { + border-left: 0; + width: 30px; +} + +.bp-user #buddypress .acfb-holder { + list-style: none; +} + +.bp-user #buddypress .acfb-holder li { + margin-right: 0; +} + +.bp-user #buddypress .acfb-holder li.friend-tab { + background: #e3f6ff; + border: inherit; + margin-left: 0; + padding: 0.5em; +} + +.bp-user #buddypress .acfb-holder li.friend-tab span.p { + padding-right: 10px; +} + +.bp-user #buddypress .acfb-holder li.friend-tab span.p:focus, .bp-user #buddypress .acfb-holder li.friend-tab span.p:hover { + color: #c82b2b; + cursor: pointer; +} + +.bp-user #buddypress .acfb-holder li.friend-tab a { + border-bottom: 0; + text-decoration: none; +} + +.bp-user #buddypress .acfb-holder li.friend-tab a img { + display: inline; + height: 20px; + vertical-align: middle; + width: 20px !important; +} + +.bp-user #buddypress #message-threads.sitewide-notices td { + width: 100%; +} + +.bp-user #buddypress #message-threads.sitewide-notices td strong { + background: #6f6f6f; + color: #fff; + display: block; + margin-bottom: 0.4em; + padding-right: 0.2em; +} + +.bp-user #buddypress #message-threads.sitewide-notices td a { + display: inline-block; +} + +.bp-user #buddypress #message-threads.sitewide-notices td:first-child { + display: none; +} + +.bp-user #buddypress #message-threads.sitewide-notices td:nth-child(2) strong { + margin: -8px -8px 8px; +} + +.bp-user #buddypress #message-threads.sitewide-notices td:first-child + td + td { + border-bottom: 0; +} + +.bp-user #buddypress #message-threads.sitewide-notices td:first-child + td + td span { + line-height: 1; +} + +.bp-user #buddypress #message-threads.sitewide-notices td:last-child { + border-bottom-color: #b7b7b7; + line-height: 1; + text-align: left; +} + +.bp-user #buddypress #message-threads.sitewide-notices td:last-child a:last-child { + line-height: 0; + margin-right: 0.7em; + text-indent: -999em; +} + +.bp-user #buddypress #message-threads.sitewide-notices td:last-child a:last-child::after { + content: attr(title); + display: block; + line-height: initial; + text-indent: 0; +} + +.bp-user .ac_results { + background: #eee; + padding-right: 10px; +} + +.bp-user .ac_results ul { + margin: 0; +} + +.bp-user .ac_results li { + margin: 10px 0; +} + +.bp-user .ac_results li:focus, .bp-user .ac_results li:hover { + cursor: pointer; +} + +/** + *------------------------------ + * @subsection 6.2.2.6 - Settings + *------------------------------ + */ +.bp-user #buddypress #settings-form > p { + font-size: 20px; + font-size: 1.25rem; + margin: 20px 0 10px; +} + +.bp-user #buddypress table.notification-settings td.yes, +.bp-user #buddypress table.notification-settings td.no { + vertical-align: middle; +} + +.bp-user #buddypress table.profile-settings { + width: 100%; +} + +.bp-user #buddypress table.profile-settings th.field-group-name, +.bp-user #buddypress table.profile-settings td.field-name { + width: 50%; +} + +@media screen and (min-width: 48em) { + .bp-user #buddypress table.profile-settings th.field-group-name, + .bp-user #buddypress table.profile-settings td.field-name { + width: 70%; + } +} + +.bp-user #buddypress table.profile-settings th.title, +.bp-user #buddypress table.profile-settings td.field-visibility { + width: 30%; +} + +.bp-user #buddypress table.profile-settings td.field-visibility select { + width: 100%; +} + +/** +*------------------------------------------------------------------------------- +* @section 7.0 - Forms - General +*------------------------------------------------------------------------------- +*/ +#main #buddypress .standard-form li { + float: none; +} + +#main #buddypress .standard-form input[type='text'], +#main #buddypress .standard-form input[type='email'], +#main #buddypress .standard-form input[type='password'], +#main #buddypress .standard-form textarea { + width: 100%; +} + +#buddypress div.activity-comments form .ac-textarea { + background: #f7f7f7; + border: 1px solid rgba(190, 190, 190, 0.5); +} + +#buddypress div.activity-comments form .ac-textarea textarea { + background: none; + border: 0; +} + +#buddypress select { + height: auto; +} + +#buddypress .standard-form input[type="text"], +#buddypress .standard-form input[type="email"], +#buddypress .standard-form input[type="password"], +#buddypress .standard-form button, +#buddypress .standard-form select, +#buddypress .standard-form textarea { + border-color: rgba(190, 190, 190, 0.5); + border-width: 1px; +} + +#buddypress .standard-form select { + color: #737373; +} + +#buddypress #signup_form.standard-form div.submit { + float: none; +} + +#buddypress #signup_form.standard-form div.submit input { + margin-left: 0; +} + +#buddypress div.dir-search, +#buddypress div.message-search, +#buddypress li.groups-members-search { + float: none; + margin: 10px 0; +} + +#buddypress div.dir-search form, +#buddypress div.message-search form, +#buddypress li.groups-members-search form { + border: 1px solid rgba(190, 190, 190, 0.6); + -webkit-border-radius: 2px; + -moz-border-radius: 2px; + -ms-border-radius: 2px; + border-radius: 2px; + background-clip: padding-box; + overflow: hidden; +} + +#buddypress div.dir-search form label, +#buddypress div.message-search form label, +#buddypress li.groups-members-search form label { + float: right; + margin: 0; + width: 70%; +} + +#buddypress div.dir-search form input[type="text"], +#buddypress div.message-search form input[type="text"], +#buddypress li.groups-members-search form input[type="text"] { + float: right; + margin: 0; + width: 100%; +} + +#buddypress div.dir-search form input[type="text"], +#buddypress div.dir-search form input[type="submit"], +#buddypress div.message-search form input[type="text"], +#buddypress div.message-search form input[type="submit"], +#buddypress li.groups-members-search form input[type="text"], +#buddypress li.groups-members-search form input[type="submit"] { + border: 0; + font-size: 14px; + font-size: 0.875rem; + line-height: inherit; +} + +#buddypress div.dir-search form input[type="text"], +#buddypress div.message-search form input[type="text"], +#buddypress li.groups-members-search form input[type="text"] { + border-left: 1px solid rgba(190, 190, 190, 0.6); + font-weight: 400; + padding: 0.2em 0.2em 0.2em 0; +} + +#buddypress div.dir-search form input[type="submit"], +#buddypress div.message-search form input[type="submit"], +#buddypress li.groups-members-search form input[type="submit"] { + -webkit-border-radius: none; + -moz-border-radius: none; + -ms-border-radius: none; + border-radius: none; + float: left; + font-weight: normal; + padding: 0.2em 1em; + text-align: center; + text-transform: none; + width: 30%; +} + +#buddypress div.dir-search { + margin-top: 0; +} + +#buddypress .dir-search #search-members-form input[type='text'], +#buddypress #search-groups-form input[type='text'], +#buddypress #search-message-form input[type='text'] { + float: right; + margin: 0; + width: 70%; +} + +@media screen and (min-width: 30em) { + #buddypress div.dir-search, + #buddypress div.message-search, + #buddypress li.groups-members-search { + float: left; + margin-bottom: 5px !important; + } +} + +@media screen and (min-width: 67em) { + #buddypress .dir-search form input[type='text'], + #buddypress .message-search form input[type='text'], + #buddypress li.groups-members-search form input[type='text'] { + font-size: 16px; + font-size: 1rem; + } + #buddypress .dir-search form input[type='submit'], + #buddypress .message-search form input[type='submit'], + #buddypress li.groups-members-search form input[type='submit'] { + font-size: 16px; + font-size: 1rem; + } +} + +body.colors-dark #page #buddypress .dir-search form, +body.colors-dark #page #buddypress .groups-members-search form, +body.colors-dark #page #buddypress .message-search form { + background: #333; + border-color: #555; + -webkit-border-radius: 2px; + -moz-border-radius: 2px; + -ms-border-radius: 2px; + border-radius: 2px; + background-clip: padding-box; + padding: 1px; +} + +body.colors-dark #page #buddypress .dir-search input[type="text"], +body.colors-dark #page #buddypress .groups-members-search input[type="text"], +body.colors-dark #page #buddypress .message-search input[type="text"] { + background: none; +} + +body.colors-dark #page #buddypress .dir-search input[type="submit"], +body.colors-dark #page #buddypress .groups-members-search input[type="submit"], +body.colors-dark #page #buddypress .message-search input[type="submit"] { + -webkit-border-radius: 2px; + -moz-border-radius: 2px; + -ms-border-radius: 2px; + border-radius: 2px; + background-clip: padding-box; +} + +body.colors-dark #page .message-search { + margin-top: 0; +} + +/** +*------------------------------------------------------------------------------- +* @section 8.0 - Tables - General +*------------------------------------------------------------------------------- +*/ +#buddypress table { + font-size: 14px; + font-size: 0.875rem; + margin: 20px 0; +} + +#buddypress table tr th { + background: #f7f7f7; + border-color: #eaeaea; + color: #333; +} + +#buddypress table p { + margin-bottom: 0.5em; +} + +@media screen and (min-width: 55em) { + #buddypress table { + font-size: 16px; + font-size: 1rem; + } +} + +/*__ User Account tables __*/ +#buddypress .notifications th, +#buddypress .messages-notices th { + width: 30%; +} + +#buddypress .notifications th.bulk-select-all, +#buddypress .messages-notices th.bulk-select-all { + text-align: center; + width: 10%; +} + +#buddypress .notifications .bulk-select-check, +#buddypress .notifications .thread-star, +#buddypress .messages-notices .bulk-select-check, +#buddypress .messages-notices .thread-star { + text-align: center; +} + +#buddypress .notifications .notification-actions, +#buddypress .notifications td.thread-options, +#buddypress .messages-notices .notification-actions, +#buddypress .messages-notices td.thread-options { + text-align: center; +} + +#buddypress .notifications .notification-actions a, +#buddypress .notifications td.thread-options a, +#buddypress .messages-notices .notification-actions a, +#buddypress .messages-notices td.thread-options a { + display: inline-block; + margin: 0; + padding: 0; +} + +#buddypress .notifications td .button, +#buddypress .messages-notices td .button { + border: 0; + display: block; + padding: 0; + text-align: center; +} + +#buddypress .notifications .actions { + text-align: center; +} + +/** +*------------------------------------------------------------------------------- +* @section 9.0 - Error / Success messages +*------------------------------------------------------------------------------- +*/ +#buddypress div#message p { + font-size: 18px; + font-size: 1.125rem; + font-weight: bold; +} + +#buddypress div#message.info p { + background: #b0e5ff; + border: 1px solid #4ac3ff; + color: #00547d; +} + +#buddypress div#message.updated p { + background: #dee6b2; + border: 1px solid #becc66; + color: #454d19; +} + +#buddypress .bp-avatar-status .warning, +#buddypress .bp-cover-image-status .warning { + background: #7dd4ff; + border: 1px solid #000; + color: #333; + font-size: 16px; + font-size: 1rem; +} + +.delete-group #buddypress div#message.info p { + background: #db7e7e; + border: 1px solid #be3535; + color: #1f0808; +} + +/** +*------------------------------------------------------------------------------- +* @section 10.0 - Ajax Loading, Widgets, General classes +*------------------------------------------------------------------------------- +*/ +#buddypress .acfb-holder li.friend-tab { + background: #7dd4ff; + border: inherit; +} diff --git a/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/twentyseventeen-rtl.min.css b/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/twentyseventeen-rtl.min.css new file mode 100644 index 000000000..d099373f2 --- /dev/null +++ b/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/twentyseventeen-rtl.min.css @@ -0,0 +1 @@ +@charset "UTF-8";#buddypress #activity-stream .load-more:focus a,#buddypress #activity-stream .load-more:hover a,#buddypress ul.item-list li .item span.activity,#buddypress ul.item-list li div.action .meta,.bp-user #buddypress #message-thread #message-recipients,.bp-user #buddypress .pag-count{font-style:italic}.buddypress div.clear{display:none}.buddypress ul.item-list h1,.buddypress ul.item-list h2,.buddypress ul.item-list h3,.buddypress ul.item-list h4,.buddypress ul.item-list h5,.buddypress ul.item-list h6{clear:none;padding:0}.buddypress #page a{box-shadow:none;text-decoration:none!important}.buddypress .entry-title{text-align:center}@media screen and (min-width:55em){.buddypress .entry-title{text-align:right}.buddypress.bp-user.page .site-content,.buddypress.groups.group-create .site-content,.buddypress.single-item.groups .site-content,.directory.buddypress.page-one-column .site-content{padding-top:40px}.buddypress.bp-user.page .entry-header,.buddypress.groups.group-create .entry-header,.buddypress.single-item.groups .entry-header,.directory.buddypress.page-one-column .entry-header{margin:10px 0}}@media screen and (min-width:48em){body.buddypress.page.page-two-column #primary .entry-header{width:30%}body.buddypress.page.page-two-column #primary .entry-content{width:68%}body.buddypress:not(.has-sidebar) #primary.content-area,body.buddypress:not(.page-two-column) #primary.content-area{max-width:100%;width:100%}body.buddypress:not(.has-sidebar) #primary.content-area .content-bottom-widgets,body.buddypress:not(.has-sidebar) #primary.content-area .entry-content,body.buddypress:not(.page-two-column) #primary.content-area .content-bottom-widgets,body.buddypress:not(.page-two-column) #primary.content-area .entry-content{margin-right:0;margin-left:0}body.buddypress:not(.has-sidebar) .sidebar,body.buddypress:not(.page-two-column) .sidebar{float:right;margin-right:75%;padding:0;width:25%}}body.colors-dark #buddypress #group-create-tabs.item-list-tabs li.current,body.colors-dark #buddypress #group-create-tabs.item-list-tabs li.selected{border-bottom-color:#222}body.colors-dark #buddypress #group-create-tabs.item-list-tabs li.current a,body.colors-dark #buddypress #group-create-tabs.item-list-tabs li.selected a{color:inherit}body.colors-dark #buddypress div.item-list-tabs ul li.current a,body.colors-dark #buddypress div.item-list-tabs ul li.selected a{background:0 0;color:inherit}body.colors-dark #buddypress #object-nav li:not(.current):focus a,body.colors-dark #buddypress #object-nav li:not(.current):hover a{color:#555}body.colors-dark #buddypress #subnav.item-list-tabs ul{border-bottom:1px solid rgba(234,234,234,.9);margin-bottom:20px}body.colors-dark #buddypress #subnav.item-list-tabs ul li.last{border-top:1px solid rgba(234,234,234,.9)}body.colors-dark #buddypress .item-list div.meta{color:#ddd}body.colors-dark #buddypress #latest-update,body.colors-dark #buddypress .item-list .acomment-meta,body.colors-dark #buddypress .item-list .activity-comments ul,body.colors-dark #buddypress .item-list .activity-header p,body.colors-dark #buddypress .item-list div.item-desc{color:#eee}body.colors-dark #buddypress .item-list .action a,body.colors-dark #buddypress .item-list .activity-meta a{background:#fafafa}body.colors-dark #buddypress .item-list .action a:focus,body.colors-dark #buddypress .item-list .action a:hover,body.colors-dark #buddypress .item-list .activity-meta a:focus,body.colors-dark #buddypress .item-list .activity-meta a:hover{background:#fff}body.colors-dark #buddypress #item-body div#invite-list,body.colors-dark #buddypress #item-body fieldset,body.colors-dark.group-members #buddypress #subnav li{background:0 0}body.colors-dark #buddypress div.pagination *{color:#ddd}body.colors-dark #buddypress #item-body .checkbox label,body.colors-dark #buddypress #item-body .radio label,body.colors-dark #buddypress #item-body table .field-visibility-settings,body.colors-dark #buddypress #item-body table .field-visibility-settings-notoggle,body.colors-dark #buddypress #item-header .user-nicename{color:#eee}body.colors-dark #buddypress #item-body table thead th,body.colors-dark #buddypress #item-body table thead tr,body.colors-dark #buddypress #item-body table tr.alt td{background:0 0;color:#eee}body.colors-dark.group-members #buddypress #subnav .groups-members-search form{margin-bottom:20px;margin-top:0}.directory.colors-dark #buddypress #subnav.item-list-tabs ul{border-bottom:0;border-top:0}.directory.colors-dark #buddypress #subnav.item-list-tabs ul li.last.filter,.directory.colors-dark #buddypress div.activity ul.item-list{border-top:0}body.colors-light #buddypress div.item-list-tabs ul{background-color:#fafafa}body.colors-light #buddypress div#subnav.item-list-tabs ul{background-color:#f7f7f7}body.colors-light #buddypress div#subnav.item-list-tabs ul li.last{background:#fff}body.colors-light #buddypress .item-list .activity-header p{background-color:#f7f7f7;color:#878787}body.colors-light #buddypress .item-list .activity-comments .acomment-meta{color:#737373}body.colors-light #buddypress #item-body .profile h2{background:#878787;color:#fff}body.colors-light #buddypress table tr.alt td{background:#f5f5f5;color:#333}body.colors-light #buddypress div#invite-list{background:#fafafa}#buddypress div.item-list-tabs ul li.selected a{background:inherit;opacity:1}#buddypress div.item-list-tabs ul{border-bottom:1px solid rgba(234,234,234,.9);overflow:hidden;padding:0}#buddypress div.item-list-tabs ul li a span{border-radius:25%}#buddypress #object-nav ul{overflow:hidden}#buddypress #object-nav ul li{float:none}@media screen and (max-width:38.75em){#buddypress #object-nav ul li:not(:last-child){border-bottom:1px solid #eaeaea}#buddypress #object-nav ul li:not(.selected):focus,#buddypress #object-nav ul li:not(.selected):hover{background:#f4f2df}}#buddypress div#subnav.item-list-tabs{margin-top:0}#buddypress div#subnav.item-list-tabs ul{border-bottom:0;margin-top:5px;padding:0}#buddypress div#subnav.item-list-tabs ul li.last{margin-top:0;padding:5px 0 5px 5px;width:100%}#buddypress div#subnav.item-list-tabs ul li.last select,#buddypress div#subnav.item-list-tabs ul li.last select:focus{background:0 0;border:0;outline:0}#buddypress div#subnav.item-list-tabs ul li.last label{display:inline}#buddypress div#subnav.item-list-tabs ul li.last label,#buddypress div#subnav.item-list-tabs ul li.last option,#buddypress div#subnav.item-list-tabs ul li.last select{font-size:14px;font-size:.875rem}#buddypress div#subnav.item-list-tabs ul li.last select{font-style:italic;height:auto}@media screen and (min-width:38.75em){#buddypress #object-nav ul li{float:right}#buddypress div#subnav.item-list-tabs ul li.last{text-align:left}}@media screen and (min-width:55em){body:not(.page-two-column) #buddypress #object-nav{border-left:1px solid #ddd;float:right;margin-left:-1px;width:200px}body:not(.page-two-column) #buddypress #object-nav ul{background:0 0;border-bottom:0;padding:0}body:not(.page-two-column) #buddypress #object-nav ul li{float:none;overflow:hidden}body:not(.page-two-column) #buddypress #object-nav ul li span{background:#fff;border-radius:10%;float:left;margin-left:2px}body:not(.page-two-column) #buddypress #item-body{border-right:1px solid #ddd;overflow:hidden;padding:0 20px 0 0;width:auto}body:not(.page-two-column) #buddypress #item-body #subnav{margin:0 -20px 0 0}body:not(.page-two-column) #buddypress #item-body #subnav ul{margin-top:0}}@media screen and (min-width:48em){#buddypress #group-create-tabs.item-list-tabs ul:after,#buddypress #group-create-tabs.item-list-tabs ul:before{content:" ";display:table}#buddypress #group-create-tabs.item-list-tabs ul:after{clear:both}#buddypress #group-create-tabs.item-list-tabs ul{background:0 0;border:0;border-bottom:1px solid #ddd;overflow:visible;padding-bottom:0}#buddypress #group-create-tabs.item-list-tabs ul li{float:right;width:auto}#buddypress #group-create-tabs.item-list-tabs ul li.current,#buddypress #group-create-tabs.item-list-tabs ul li.selected{border:1px solid #ddd;border-bottom-color:#fff;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-webkit-border-top-right-radius:4px;border-top-right-radius:4px;background-clip:padding-box;margin-bottom:-1px}#buddypress #group-create-tabs.item-list-tabs ul li.current a,#buddypress #group-create-tabs.item-list-tabs ul li.selected a{background:0 0;color:#333;outline:0}#buddypress #subnav ul{border-bottom:0}}#buddypress div.pagination{box-shadow:none;font-weight:400;min-height:0}#buddypress div.pagination:after,#buddypress div.pagination:before{height:0;width:0}#buddypress div.pagination .pag-count{margin-right:0}#buddypress div.pagination .pagination-links{margin-left:0}#buddypress div.pagination .pagination-links a,#buddypress div.pagination .pagination-links span{height:auto;line-height:1;padding:5px}#buddypress div.pagination .pagination-links .next,#buddypress div.pagination .pagination-links .prev{background-color:transparent;color:inherit;overflow:visible;width:auto}#buddypress div.pagination .pagination-links .next:before,#buddypress div.pagination .pagination-links .prev:before{display:none}#buddypress div.pagination .pagination-links .prev{right:auto;position:static}#buddypress div.pagination .pagination-links .next{position:static;left:auto}#buddypress .item-list .activity-header,#buddypress .item-list .activity-meta{font-family:"Libre Franklin","Helvetica Neue",helvetica,arial,sans-serif}#buddypress .action .generic-button a:focus,#buddypress .action .generic-button a:hover,#buddypress .activity-meta .button:focus,#buddypress .activity-meta .button:hover{background:inherit;color:#000}#buddypress ul.item-list li{overflow:hidden!important}#buddypress ul.item-list li .item-avatar{margin-bottom:10px;text-align:center}@media screen and (min-width:38.75em){#buddypress ul.item-list li .item-avatar{margin-bottom:0}}#buddypress ul.item-list li .item-avatar a{border-bottom:0}#buddypress ul.item-list li .item-avatar img.avatar{display:inline-block;float:none;margin-bottom:10px}#buddypress ul.item-list li .item{overflow:hidden}@media screen and (min-width:48em){#buddypress ul.item-list li .item{margin-right:15%}}#buddypress ul.item-list li .item .item-desc{margin-right:0;width:94%}#buddypress ul.item-list li .item .item-title{font-size:18px;font-size:1.125rem;line-height:1.2;text-align:center;width:100%}@media screen and (min-width:30em){#buddypress ul.item-list li .item-avatar img.avatar{display:block;float:right}#buddypress ul.item-list li .item .item-title{text-align:right}}#buddypress ul.item-list li .item .item-title .update{display:block;font-size:13px;font-size:.8125rem;padding:10px 0;text-align:right}@media screen and (min-width:55em){#buddypress ul.item-list li .item .item-title .update{font-size:14px;font-size:.875rem}#buddypress ul.item-list li .action,#buddypress ul.item-list li .item,#buddypress ul.item-list li .item-avatar{float:right}#buddypress ul.item-list li .item{right:5%;margin-right:0;position:relative;width:55%}#buddypress ul.item-list li .item .item-title{font-size:22px;font-size:1.375rem}}#buddypress ul.item-list li div.action{clear:right;float:none;margin-bottom:-20px;margin-right:0;padding:20px 0 5px;position:relative;text-align:right;top:0}@media screen and (min-width:55em){#buddypress ul.item-list li div.action{clear:none;float:left;margin-bottom:0;padding:0}}#buddypress ul.item-list li div.action div{display:inline-block;margin:10px 0;width:100%}#buddypress ul.item-list li div.action div a{display:block;width:100%}@media screen and (min-width:30em){#buddypress ul.item-list li div.action div{margin:0 0 10px 10px;width:auto}}@media screen and (min-width:55em){#buddypress ul.item-list li div.action div{clear:left;float:left;margin:0 0 10px}}#buddypress form#whats-new-form p.activity-greeting{line-height:1.4}@media screen and (max-width:46.25em){#buddypress form#whats-new-form #whats-new-content{clear:right;margin:10px 0 20px;padding:10px 0 0}}#buddypress form#whats-new-form #whats-new-content.active #whats-new-options[style] #whats-new-post-in-box{border:1px solid rgba(190,190,190,.5);float:right;line-height:1.5em;margin-top:12px;padding-right:.2em;width:100%}#buddypress form#whats-new-form #whats-new-content.active #whats-new-options[style] #whats-new-post-in-box select{background:0 0;border:0;float:left;margin:0;min-height:1.5em;padding-right:.4em}@media screen and (min-width:30em){#buddypress form#whats-new-form #whats-new-content.active #whats-new-options[style] #whats-new-post-in-box{width:auto}#buddypress form#whats-new-form #whats-new-content.active #whats-new-options[style] #whats-new-submit{float:left}}#buddypress #item-body form#whats-new-form{margin:40px 0}#buddypress #activity-stream li{padding:25px 0 15px}#buddypress #activity-stream li .activity-avatar{float:none;text-align:center}#buddypress #activity-stream li .activity-avatar a{display:inline-block}#buddypress #activity-stream li .activity-avatar a img.avatar{display:inline;float:none;height:60px;margin-bottom:20px;margin-right:0;width:60px}#buddypress #activity-stream li .activity-content{margin-right:0}#buddypress #activity-stream li .activity-content .activity-header{font-size:14px;font-size:.875rem}#buddypress #activity-stream li .activity-content .activity-header a{color:#0075c4}@media screen and (min-width:48em){#buddypress #activity-stream li .activity-avatar{float:right;margin-left:10px;text-align:right}#buddypress #activity-stream li .activity-avatar a{border-bottom:0}#buddypress #activity-stream li .activity-content{margin:0;overflow:hidden}#buddypress #activity-stream li .activity-content .activity-header{font-size:16px;font-size:1rem}}#buddypress #activity-stream li.mini .activity-avatar a img.avatar{height:30px;margin-right:15px;width:30px}#buddypress #activity-stream li.mini .activity-content .activity-header{font-size:14px;font-size:.875rem}#buddypress #activity-stream .activity-content{margin-top:-12px}#buddypress #activity-stream .activity-content .activity-header{margin-left:0}#buddypress #activity-stream .activity-content .activity-header p{border:1px solid rgba(234,234,234,.6);margin-top:0;padding:0 .2em}#buddypress #activity-stream .activity-content .activity-header img.avatar{box-shadow:none;display:inline-block;margin:0 5px!important;vertical-align:middle}#buddypress #activity-stream .activity-content .activity-meta a{display:block;margin-bottom:5px}@media screen and (min-width:30em){#buddypress #activity-stream .activity-content .activity-meta a{display:inline-block;margin-bottom:0;width:auto}}#buddypress #activity-stream .load-more{background:#f7f7f7;border:1px solid transparent;padding:10px}.activity-permalink #buddypress #activity-stream li.activity-item,.activity-permalink #buddypress #activity-stream li.mini .activity-header p{padding:20px}#buddypress #activity-stream .load-more:focus,#buddypress #activity-stream .load-more:hover{background:#f4f4f4;border:1px solid rgba(159,209,226,.3)}#buddypress #activity-stream .load-more a{display:block}.activity-permalink #buddypress #activity-stream li.mini .activity-header{font-size:16px;font-size:1rem;margin-bottom:40px}@media screen and (min-width:48em){.activity-permalink #buddypress #activity-stream li.mini .activity-header{font-size:20px;font-size:1.25rem}}#buddypress #activity-stream .activity-comments{border-right:1px solid #eaeaea;margin:20px 0}@media screen and (min-width:30em){#buddypress #activity-stream .activity-comments{margin-right:20px}}#buddypress #activity-stream .activity-comments ul{margin:15px 2px 0 0}#buddypress #activity-stream .activity-comments ul li{border-top:1px solid #bebebe}#buddypress #activity-stream .activity-comments ul a{color:#0077c7}#buddypress #activity-stream .activity-comments .acomment-meta{border-bottom:1px solid #eaeaea}#buddypress #activity-stream .activity-comments .ac-form .ac-reply-cancel,#buddypress #activity-stream .activity-comments .ac-form input[type=submit]{color:rgba(51,51,51,.8);display:inline-block;font-family:inherit;font-size:12px;font-size:.75rem;font-weight:400;line-height:1.2;padding:4px 10px;text-transform:lowercase;width:100px}#buddypress #activity-stream .activity-comments .ac-form .ac-reply-cancel{border:1px solid rgba(190,190,190,.7);text-align:center}#buddypress #activity-stream .activity-comments .ac-form .ac-reply-cancel:focus,#buddypress #activity-stream .activity-comments .ac-form .ac-reply-cancel:hover{background:#ededed}@media screen and (min-width:55em){#buddypress #members-list li .item,#buddypress #members-list li .item-avatar{float:right}#buddypress #members-list li .action{float:left}#buddypress #members-list li.is-current-user .item{float:none;right:0;padding-right:5%;width:auto}}#buddypress #signup_form.standard-form #basic-details-section,#buddypress #signup_form.standard-form #blog-details-section,#buddypress #signup_form.standard-form #profile-details-section{float:none;width:100%}@media screen and (min-width:38.75em){#buddypress #signup_form.standard-form #basic-details-section,#buddypress #signup_form.standard-form #blog-details-section,#buddypress #signup_form.standard-form #profile-details-section{width:48%}}@media screen and (min-width:30em){#buddypress #signup_form.standard-form #profile-details-section{float:left}#buddypress #signup_form.standard-form #basic-details-section{float:right}}.bp-user #buddypress #item-header-cover-image .user-nicename,.single-item.groups #buddypress #item-header-cover-image .user-nicename{color:#333;text-shadow:none}@media screen and (min-width:48em){.bp-user.page-two-column #buddypress #cover-image-container #item-header-cover-image #item-header-content{margin-right:140px;margin-top:-100px}.single-item.groups.page-two-column #buddypress #cover-image-container #item-header-cover-image #item-header-content{margin-right:10px}.bp-user #buddypress #item-header-cover-image .user-nicename,.single-item.groups #buddypress #item-header-cover-image .user-nicename{color:#fff;text-shadow:0 0 3px rgba(0,0,0,.8)}}.bp-user #buddypress #item-header-content #item-meta,.single-item.groups #buddypress #item-header-content #item-meta{font-size:14px;font-size:.875rem;text-align:right}.bp-user #buddypress #item-header-content #item-meta p,.single-item.groups #buddypress #item-header-content #item-meta p{margin-bottom:.5em}@media screen and (max-width:46.25em){.bp-user main header.entry-header,.single-item.groups main header.entry-header{padding-bottom:1rem}.bp-user #buddypress #item-header .generic-button,.single-item.groups #buddypress #item-header .generic-button{float:none;margin:1.5em 0 0}}@media screen and (max-width:38.75em){.bp-user #item-header-content,.bp-user h1,.single-item.groups #item-header-content,.single-item.groups h1{text-align:center}.bp-user #buddypress h1,.single-item.groups #buddypress h1{margin-bottom:0}.bp-user #buddypress #item-header-avatar img.avatar,.single-item.groups #buddypress #item-header-avatar img.avatar{margin-left:0}.bp-user #buddypress #item-header-content,.single-item.groups #buddypress #item-header-content{width:100%}.single-item.groups #buddypress div#item-header{display:flex;flex-direction:column}.single-item.groups #buddypress div#item-header #item-header-avatar{order:1;text-align:center}.single-item.groups #buddypress div#item-header #item-header-avatar a img{display:inline-block;float:none}.single-item.groups #buddypress div#item-header #item-header-content{order:2}.single-item.groups #buddypress div#item-header #item-actions{order:3}.single-item.groups #buddypress div#item-header #item-actions h2{border-bottom:1px solid #eaeaea;text-align:center}}@media screen and (max-width:46.25em){.single-item.groups #buddypress #item-header #item-meta{margin-bottom:20px}}.single-item.groups #buddypress div#item-header{padding-bottom:40px}.single-item.groups #buddypress div#item-header div#item-actions{margin:0;width:100%}@media screen and (min-width:38.75em){.single-item.groups #buddypress div#item-header div#item-actions{border-right:1px solid #eaeaea;clear:none;float:left;padding-right:.2em;width:30%}}.single-item.groups #buddypress div#item-header div#item-actions ul{margin-top:0;padding-right:0}.single-item.groups #buddypress div#item-header div#item-actions h2{font-size:14px;font-size:.875rem;padding:.2em}@media screen and (min-width:48em){.single-item.groups #buddypress div#item-header div#item-actions h2{font-size:16px;font-size:1rem}.single-item.groups #buddypress div#item-header #item-header-avatar,.single-item.groups #buddypress div#item-header #item-header-content{float:right}.single-item.groups #buddypress div#item-header #item-header-avatar{width:21%}.single-item.groups #buddypress div#item-header #item-header-content{margin-right:4%;width:40%}.single-item.groups #buddypress div#item-header div#item-actions{float:left;width:28%}}.bp-user #buddypress #item-header{padding:20px 0}.bp-user #buddypress #item-header #item-header-avatar{text-align:center;width:100%}.bp-user #buddypress #item-header #item-header-avatar a,.bp-user #buddypress #item-header #item-header-avatar img.avatar{display:inline-block;float:none}@media screen and (min-width:48em){.bp-user #buddypress #item-header #item-header-avatar{float:right;width:20%}.bp-user #buddypress #item-header #item-header-avatar a{float:right}.bp-user #buddypress #item-header #item-header-content{float:left;margin-left:5%;width:69%}}.groups.single-item.members #buddypress #subnav.item-list-tabs ul{background:0 0;border-top:0}.groups #group-settings-form h3{background:#555;color:#fff;padding:.2em}.groups.edit-details #group-settings-form label{margin-bottom:0;padding:.2em;width:80%}.groups.edit-details #group-settings-form textarea+p label{background:0 0;color:inherit;font-size:14px;font-size:.875rem;width:auto}.groups.edit-details #group-settings-form textarea{height:auto;min-height:100px;overflow:auto}.groups.group-settings #group-settings-form div.radio label{border:1px solid #eaeaea;padding:.2em}.groups.group-settings #group-settings-form div.radio label ul{color:rgba(51,51,51,.6);font-size:14px;font-size:.875rem}.groups.group-avatar form>p{margin-top:20px}.groups.manage-members #group-settings-form .item-list li{border-bottom:1px solid #eaeaea}.bp-user #buddypress .profile .profile-fields tr:last-child,.groups.manage-members #group-settings-form .item-list li h5>a,.groups.manage-members #group-settings-form .item-list li img>a{border-bottom:0}.groups.manage-members #group-settings-form .item-list li h5,.groups.manage-members #group-settings-form .item-list li img{float:right}.groups.manage-members #group-settings-form .item-list li span.small{clear:right;display:block;float:none;margin-top:10px}.groups.manage-members #group-settings-form .item-list li span.small a{display:inline-block;margin:5px 0;width:100%}@media screen and (min-width:38.75em){.groups.manage-members #group-settings-form .item-list li span.small a{width:auto}}.groups.manage-members #group-settings-form .item-list li h5{margin:0}.groups.group-members #subnav li{width:100%}.groups.group-members #subnav li #search-members-form{float:left;margin:5px 0 0}@media screen and (max-width:38.75em){.groups.group-members #subnav li{background:#fff;padding:20px 0}.groups.group-members #subnav li #search-members-form{margin:0;width:100%}.groups.group-members #subnav li #search-members-form label input[type=text]{width:100%}}.bp-user .entry-title{margin-bottom:.5em}.bp-user #buddypress table th{font-size:14px;font-size:.875rem}.bp-user #buddypress table td{font-size:12px;font-size:.75rem}.bp-user #buddypress table a{color:#0074c2}@media screen and (min-width:55em){.bp-user #buddypress table th{font-size:16px;font-size:1rem}.bp-user #buddypress table td{font-size:14px;font-size:.875rem}}@media screen and (min-width:67em){.bp-user #buddypress table th{font-size:18px;font-size:1.125rem}.bp-user #buddypress table td{font-size:16px;font-size:1rem}}.bp-user #buddypress .messages-options-nav,.bp-user #buddypress .notifications-options-nav{float:right;width:100%}@media screen and (min-width:38.75em){.bp-user #buddypress .messages-options-nav,.bp-user #buddypress .notifications-options-nav{width:300px}}.bp-user #buddypress .messages-options-nav select,.bp-user #buddypress .notifications-options-nav select{height:auto;float:right;margin-left:1%;width:59%}.bp-user #buddypress .messages-options-nav input,.bp-user #buddypress .messages-options-nav select,.bp-user #buddypress .notifications-options-nav input,.bp-user #buddypress .notifications-options-nav select{font-size:14px;font-size:.875rem;outline:0;padding:0}.bp-user #buddypress .messages-options-nav input,.bp-user #buddypress .notifications-options-nav input{float:left;font-family:inherit;line-height:20px;width:40%}.bp-user #buddypress .messages-options-nav input[disabled=disabled]:focus,.bp-user #buddypress .messages-options-nav input[disabled=disabled]:hover,.bp-user #buddypress .notifications-options-nav input[disabled=disabled]:focus,.bp-user #buddypress .notifications-options-nav input[disabled=disabled]:hover{background:0 0}.bp-user #buddypress .profile h2{margin:40px 0 10px;padding:.1em .4em .1em 0}.bp-user #buddypress .profile table{margin-top:0}.bp-user #buddypress .profile .profile-fields tr.alt td{color:#333}.bp-user #buddypress .profile #profile-edit-form .button-nav:after,.bp-user #buddypress .profile #profile-edit-form .button-nav:before{content:" ";display:table}.bp-user #buddypress .profile #profile-edit-form .button-nav:after{clear:both}.bp-user #buddypress .profile #profile-edit-form ul.button-nav{border-bottom:1px solid #eaeaea;margin-right:0}.bp-user #buddypress .profile #profile-edit-form ul.button-nav li{float:right;margin-bottom:0}.bp-user #buddypress .profile #profile-edit-form ul.button-nav li.current{border:1px solid #eaeaea;border-bottom-color:#fff;margin-bottom:-1px}.bp-user #buddypress .profile #profile-edit-form ul.button-nav a{background:0 0;border:0;font-size:18px;font-size:1.125rem}.bp-user #buddypress .profile #profile-edit-form .field-visibility-settings,.bp-user #buddypress .profile #profile-edit-form .field-visibility-settings-notoggle,.bp-user #buddypress .profile #profile-edit-form .field-visibility-settings-toggle{font-size:14px;font-size:.875rem;margin-top:10px}.bp-user #buddypress .profile #profile-edit-form .field-visibility-settings-close,.bp-user #buddypress .profile #profile-edit-form .visibility-toggle-link{background:#555;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;border-radius:3px;background-clip:padding-box;color:#fff;padding:.2em .5em}.bp-user #buddypress .profile .bp-avatar #bp-delete-avatar a{font-size:inherit}@media screen and (min-width:77.5em){.bp-user #buddypress #groups-list li .item{right:5%;width:50%}}.bp-user #buddypress #message-thread a{border-bottom:0}.bp-user #buddypress #message-thread #message-subject{background:#6f6f6f;color:#fff;padding:.3em .2em .3em 0}.bp-user #buddypress #message-thread #message-recipients a.confirm{border:1px solid #eaeaea;font-style:normal}.bp-user #buddypress #message-thread .message-metadata{overflow:hidden}.bp-user #buddypress #message-thread .message-metadata img.avatar{float:none}@media screen and (min-width:48em){.bp-user #buddypress #message-thread .message-metadata img.avatar{float:right}}.bp-user #buddypress #message-thread .message-metadata .message-star-actions{float:left;margin-left:5px;position:static}.bp-user #buddypress #message-thread .message-content{background:#f7f7f7;border:1px solid #eaeaea;margin:10px 0 0;padding:.3em}.bp-user #buddypress #message-thread #send-reply .message-content{background:#fff;border:0}.bp-user #buddypress #message-thread .alt{background:#fff}.bp-user #buddypress #message-threads thead tr{background:0 0;border-bottom:1px solid #bebebe}.bp-user #buddypress #message-threads thead tr th{background:#555}.bp-user #buddypress #message-threads tr{border-bottom:5px solid #878787}.bp-user #buddypress #message-threads tr td{display:inline-block;float:right}.bp-user #buddypress #message-threads tr td.thread-options,.bp-user #buddypress #message-threads tr td.thread-star{border-bottom-color:#bebebe;border-bottom-width:1px;height:2.4em;padding-bottom:.2em;padding-top:.2em}@media screen and (max-width:46.25em){.bp-user #buddypress #message-threads tr td.thread-options,.bp-user #buddypress #message-threads tr td.thread-star{padding-top:0}}.bp-user #buddypress #message-threads tr td.bulk-select-check,.bp-user #buddypress #message-threads tr td.thread-from,.bp-user #buddypress #message-threads tr td.thread-info,.bp-user #buddypress #message-threads tr td.thread-options,.bp-user #buddypress #message-threads tr td.thread-star{border-top:0}.bp-user #buddypress #message-threads tr td.thread-star{vertical-align:middle}.bp-user #buddypress #message-threads tr td.thread-star .message-action-star{line-height:1.2}.bp-user #buddypress #message-threads tr td.bulk-select-check,.bp-user #buddypress #message-threads tr td.thread-from{height:3em}.bp-user #buddypress #message-threads tr td.thread-from,.bp-user #buddypress #message-threads tr td.thread-options{border-right:0!important;width:-webkit-calc(100% - 30px);width:-moz-calc(100% - 30px);width:calc(100% - 30px);margin-right:0}.bp-user #buddypress #message-threads tr td.thread-info{padding-right:41px;width:100%}.bp-user #buddypress #message-threads tr td.thread-info a::after{content:" ‗ " attr(title);font-size:12px;font-size:.75rem}.bp-user #buddypress #message-threads tr td.thread-options{text-align:left}.bp-user #buddypress #message-threads tr td.thread-options a{font-size:12px;font-size:.75rem;line-height:2.2}.bp-user #buddypress #message-threads tr span.from{display:none}.bp-user #buddypress #message-threads tr span.activity{display:block;float:left;line-height:2}#buddypress #signup_form.standard-form div.submit,#main #buddypress .standard-form li{float:none}@media screen and (max-width:38.75em){.bp-user #buddypress #message-threads tr td.bulk-select-check,.bp-user #buddypress #message-threads tr td.thread-from{height:5.2em}.bp-user #buddypress #message-threads tr span.activity{clear:both;font-size:11px;font-size:.6875rem;width:100%}}.bp-user #buddypress #message-threads tr.unread td{background:0 0;border-color:#bebebe}.bp-user #buddypress #message-threads th{display:none}.bp-user #buddypress #message-threads th.bulk-select-all{border-bottom:0;display:inline-block;text-align:right}.bp-user #buddypress #message-threads td.bulk-select-check,.bp-user #buddypress #message-threads td.thread-star,.bp-user #buddypress #message-threads th.bulk-select-all{border-left:0;width:30px}.bp-user #buddypress .acfb-holder{list-style:none}.bp-user #buddypress .acfb-holder li{margin-right:0}.bp-user #buddypress .acfb-holder li.friend-tab{background:#e3f6ff;border:inherit;margin-left:0;padding:.5em}.bp-user #buddypress .acfb-holder li.friend-tab span.p{padding-right:10px}.bp-user #buddypress .acfb-holder li.friend-tab span.p:focus,.bp-user #buddypress .acfb-holder li.friend-tab span.p:hover{color:#c82b2b;cursor:pointer}.bp-user #buddypress .acfb-holder li.friend-tab a{border-bottom:0;text-decoration:none}.bp-user #buddypress .acfb-holder li.friend-tab a img{display:inline;height:20px;vertical-align:middle;width:20px!important}.bp-user #buddypress #message-threads.sitewide-notices td,.bp-user #buddypress table.profile-settings{width:100%}.bp-user #buddypress #message-threads.sitewide-notices td strong{background:#6f6f6f;color:#fff;display:block;margin-bottom:.4em;padding-right:.2em}.bp-user #buddypress #message-threads.sitewide-notices td a{display:inline-block}.bp-user #buddypress #message-threads.sitewide-notices td:first-child{display:none}.bp-user #buddypress #message-threads.sitewide-notices td:nth-child(2) strong{margin:-8px -8px 8px}.bp-user #buddypress #message-threads.sitewide-notices td:first-child+td+td{border-bottom:0}.bp-user #buddypress #message-threads.sitewide-notices td:first-child+td+td span{line-height:1}.bp-user #buddypress #message-threads.sitewide-notices td:last-child{border-bottom-color:#b7b7b7;line-height:1;text-align:left}.bp-user #buddypress #message-threads.sitewide-notices td:last-child a:last-child{line-height:0;margin-right:.7em;text-indent:-999em}.bp-user #buddypress #message-threads.sitewide-notices td:last-child a:last-child::after{content:attr(title);display:block;line-height:initial;text-indent:0}.bp-user .ac_results{background:#eee;padding-right:10px}.bp-user .ac_results ul{margin:0}.bp-user .ac_results li{margin:10px 0}.bp-user .ac_results li:focus,.bp-user .ac_results li:hover{cursor:pointer}.bp-user #buddypress #settings-form>p{font-size:20px;font-size:1.25rem;margin:20px 0 10px}.bp-user #buddypress table.notification-settings td.no,.bp-user #buddypress table.notification-settings td.yes{vertical-align:middle}.bp-user #buddypress table.profile-settings td.field-name,.bp-user #buddypress table.profile-settings th.field-group-name{width:50%}@media screen and (min-width:48em){.bp-user #buddypress table.profile-settings td.field-name,.bp-user #buddypress table.profile-settings th.field-group-name{width:70%}}.bp-user #buddypress table.profile-settings td.field-visibility,.bp-user #buddypress table.profile-settings th.title{width:30%}#main #buddypress .standard-form input[type=password],#main #buddypress .standard-form input[type=text],#main #buddypress .standard-form input[type=email],#main #buddypress .standard-form textarea,.bp-user #buddypress table.profile-settings td.field-visibility select{width:100%}#buddypress div.activity-comments form .ac-textarea{background:#f7f7f7;border:1px solid rgba(190,190,190,.5)}#buddypress div.activity-comments form .ac-textarea textarea{background:0 0;border:0}#buddypress select{height:auto}#buddypress .standard-form button,#buddypress .standard-form input[type=email],#buddypress .standard-form input[type=password],#buddypress .standard-form input[type=text],#buddypress .standard-form select,#buddypress .standard-form textarea{border-color:rgba(190,190,190,.5);border-width:1px}#buddypress .standard-form select{color:#737373}#buddypress #signup_form.standard-form div.submit input{margin-left:0}#buddypress div.dir-search,#buddypress div.message-search,#buddypress li.groups-members-search{float:none;margin:10px 0}#buddypress div.dir-search,body.colors-dark #page .message-search{margin-top:0}#buddypress div.dir-search form,#buddypress div.message-search form,#buddypress li.groups-members-search form{border:1px solid rgba(190,190,190,.6);-webkit-border-radius:2px;-moz-border-radius:2px;-ms-border-radius:2px;border-radius:2px;background-clip:padding-box;overflow:hidden}#buddypress div.dir-search form label,#buddypress div.message-search form label,#buddypress li.groups-members-search form label{float:right;margin:0;width:70%}#buddypress div.dir-search form input[type=submit],#buddypress div.dir-search form input[type=text],#buddypress div.message-search form input[type=submit],#buddypress div.message-search form input[type=text],#buddypress li.groups-members-search form input[type=submit],#buddypress li.groups-members-search form input[type=text]{border:0;font-size:14px;font-size:.875rem;line-height:inherit}#buddypress div.dir-search form input[type=text],#buddypress div.message-search form input[type=text],#buddypress li.groups-members-search form input[type=text]{float:right;margin:0;width:100%;border-left:1px solid rgba(190,190,190,.6);font-weight:400;padding:.2em .2em .2em 0}#buddypress div.dir-search form input[type=submit],#buddypress div.message-search form input[type=submit],#buddypress li.groups-members-search form input[type=submit]{-webkit-border-radius:none;-moz-border-radius:none;-ms-border-radius:none;border-radius:none;float:left;font-weight:400;padding:.2em 1em;text-align:center;text-transform:none;width:30%}#buddypress #search-groups-form input[type=text],#buddypress #search-message-form input[type=text],#buddypress .dir-search #search-members-form input[type=text]{float:right;margin:0;width:70%}@media screen and (min-width:30em){#buddypress div.dir-search,#buddypress div.message-search,#buddypress li.groups-members-search{float:left;margin-bottom:5px!important}}@media screen and (min-width:67em){#buddypress .dir-search form input[type=submit],#buddypress .dir-search form input[type=text],#buddypress .message-search form input[type=submit],#buddypress .message-search form input[type=text],#buddypress li.groups-members-search form input[type=submit],#buddypress li.groups-members-search form input[type=text]{font-size:16px;font-size:1rem}}body.colors-dark #page #buddypress .dir-search form,body.colors-dark #page #buddypress .groups-members-search form,body.colors-dark #page #buddypress .message-search form{background:#333;border-color:#555;-webkit-border-radius:2px;-moz-border-radius:2px;-ms-border-radius:2px;border-radius:2px;background-clip:padding-box;padding:1px}body.colors-dark #page #buddypress .dir-search input[type=text],body.colors-dark #page #buddypress .groups-members-search input[type=text],body.colors-dark #page #buddypress .message-search input[type=text]{background:0 0}body.colors-dark #page #buddypress .dir-search input[type=submit],body.colors-dark #page #buddypress .groups-members-search input[type=submit],body.colors-dark #page #buddypress .message-search input[type=submit]{-webkit-border-radius:2px;-moz-border-radius:2px;-ms-border-radius:2px;border-radius:2px;background-clip:padding-box}#buddypress table{font-size:14px;font-size:.875rem;margin:20px 0}#buddypress table tr th{background:#f7f7f7;border-color:#eaeaea;color:#333}#buddypress table p{margin-bottom:.5em}@media screen and (min-width:55em){#buddypress table{font-size:16px;font-size:1rem}}#buddypress .messages-notices th,#buddypress .notifications th{width:30%}#buddypress .messages-notices th.bulk-select-all,#buddypress .notifications th.bulk-select-all{text-align:center;width:10%}#buddypress .messages-notices .bulk-select-check,#buddypress .messages-notices .notification-actions,#buddypress .messages-notices .thread-star,#buddypress .messages-notices td.thread-options,#buddypress .notifications .bulk-select-check,#buddypress .notifications .notification-actions,#buddypress .notifications .thread-star,#buddypress .notifications td.thread-options{text-align:center}#buddypress .messages-notices .notification-actions a,#buddypress .messages-notices td.thread-options a,#buddypress .notifications .notification-actions a,#buddypress .notifications td.thread-options a{display:inline-block;margin:0;padding:0}#buddypress .messages-notices td .button,#buddypress .notifications td .button{border:0;display:block;padding:0;text-align:center}#buddypress .notifications .actions{text-align:center}#buddypress div#message p{font-size:18px;font-size:1.125rem;font-weight:700}#buddypress div#message.info p{background:#b0e5ff;border:1px solid #4ac3ff;color:#00547d}#buddypress div#message.updated p{background:#dee6b2;border:1px solid #becc66;color:#454d19}#buddypress .bp-avatar-status .warning,#buddypress .bp-cover-image-status .warning{background:#7dd4ff;border:1px solid #000;color:#333;font-size:16px;font-size:1rem}.delete-group #buddypress div#message.info p{background:#db7e7e;border:1px solid #be3535;color:#1f0808}#buddypress .acfb-holder li.friend-tab{background:#7dd4ff;border:inherit} \ No newline at end of file diff --git a/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/twentyseventeen.css b/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/twentyseventeen.css new file mode 100644 index 000000000..edad066a9 --- /dev/null +++ b/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/twentyseventeen.css @@ -0,0 +1,2194 @@ +@charset "UTF-8"; +/*-------------------------------------------------------------- + +This is the BuddyPress companion stylesheet for +the WordPress twentyseventeen theme. + +This sheet supports the primary BuddyPress styles in buddypress.css + +If you are running as a child theme of twentyseventeen this stylesheet will be +loaded by default. If you want to modify the styles the normal BP Theme Compat +hierarchy works and you can copy the file to buddypress/css/ or community/css/ +in your child themes root & either start over or modify the rulesets. + +If you do not require the styles you can dequeue them from the themes functions file. + +Please see this codex article for more information: +http://codex.buddypress.org/themes/buddypress-companion-stylesheets/ + +---------------------------------------------------------------- +>>> TABLE OF CONTENTS: +---------------------------------------------------------------- +1.0 Theme Structural Elements & overrides +2.0 - Navigation - General + 2.1 - Navs - Object Nav / Sub Nav (item-list-tabs) + 2.2 - Pagination +3.0 - Images +4.0 - BP Lists / Loops Generic + 4.1 - Activity Loop + 4.1.1 Whats New Activity + 4.1.2 - Activity Listing + 4.1.3 - Activity Comments + 4.2 - Members Loop + 4.3 - Groups Loop + 4.4 - Blogs Loop +5.0 - Directories - Members, Groups, Blogs, Register, activation +6.0 - Single Item screens: User Account & Single Group Screens + 6.1 - Item Headers: Global + 6.1.1 - item-header: Groups + 6.1.2 - item-header: User Accounts + 6.2 - Item Body: Global + 6.2.1 - item-body: Groups + 6.2.1.1 - Management settings screens + 6.2.1.2 - Group members list + 6.2.2 - item-body: User Accounts + 6.2.2.1 - classes, pag, filters + 6.2.2.2 - Extended Profiles + 6.2.2.3 - Groups + 6.2.2.4 - friends + 6.2.2.5 - Private Messaging Threads + 6.2.2.6 - Settings +7.0 - Forms - General +8.0 - Tables - General +9.0 - Error / Success Messages +10.0 - Ajax Loading, Widgets, General classes +--------------------------------------------------------------*/ +/** +*------------------------------------------------------------------------------- +* @section 1.0 - Theme - Structural Elements. overrides, Globals +*------------------------------------------------------------------------------- +*/ +.buddypress div.clear { + display: none; +} + +.buddypress ul.item-list h1, +.buddypress ul.item-list h2, +.buddypress ul.item-list h3, +.buddypress ul.item-list h4, +.buddypress ul.item-list h5, +.buddypress ul.item-list h6 { + clear: none; + padding: 0; +} + +.buddypress #page a { + box-shadow: none; + text-decoration: none !important; +} + +.buddypress .entry-title { + text-align: center; +} + +@media screen and (min-width: 55em) { + .buddypress .entry-title { + text-align: left; + } +} + +@media screen and (min-width: 55em) { + .buddypress.bp-user.page .site-content, + .buddypress.single-item.groups .site-content, + .buddypress.groups.group-create .site-content, + .directory.buddypress.page-one-column .site-content { + padding-top: 40px; + } + .buddypress.bp-user.page .entry-header, + .buddypress.single-item.groups .entry-header, + .buddypress.groups.group-create .entry-header, + .directory.buddypress.page-one-column .entry-header { + margin: 10px 0; + } +} + +@media screen and (min-width: 48em) { + body.buddypress.page.page-two-column #primary .entry-header { + width: 30%; + } + body.buddypress.page.page-two-column #primary .entry-content { + width: 68%; + } + body.buddypress:not(.has-sidebar) #primary.content-area, + body.buddypress:not(.page-two-column) #primary.content-area { + max-width: 100%; + width: 100%; + } + body.buddypress:not(.has-sidebar) #primary.content-area .entry-content, + body.buddypress:not(.has-sidebar) #primary.content-area .content-bottom-widgets, + body.buddypress:not(.page-two-column) #primary.content-area .entry-content, + body.buddypress:not(.page-two-column) #primary.content-area .content-bottom-widgets { + margin-left: 0; + margin-right: 0; + } + body.buddypress:not(.has-sidebar) .sidebar, + body.buddypress:not(.page-two-column) .sidebar { + float: left; + margin-left: 75%; + padding: 0; + width: 25%; + } +} + +body.colors-dark #buddypress #group-create-tabs.item-list-tabs li.selected, +body.colors-dark #buddypress #group-create-tabs.item-list-tabs li.current { + border-bottom-color: #222; +} + +body.colors-dark #buddypress #group-create-tabs.item-list-tabs li.selected a, +body.colors-dark #buddypress #group-create-tabs.item-list-tabs li.current a { + color: inherit; +} + +body.colors-dark #buddypress div.item-list-tabs ul li.selected a, +body.colors-dark #buddypress div.item-list-tabs ul li.current a { + background: none; + color: inherit; +} + +body.colors-dark #buddypress #object-nav li:not(.current):focus a, +body.colors-dark #buddypress #object-nav li:not(.current):hover a { + color: #555; +} + +body.colors-dark #buddypress #subnav.item-list-tabs ul { + border-bottom: 1px solid rgba(234, 234, 234, 0.9); + margin-bottom: 20px; +} + +body.colors-dark #buddypress #subnav.item-list-tabs ul li.last { + border-top: 1px solid rgba(234, 234, 234, 0.9); +} + +body.colors-dark #buddypress .item-list div.meta { + color: #ddd; +} + +body.colors-dark #buddypress .item-list div.item-desc, +body.colors-dark #buddypress .item-list .activity-header p, +body.colors-dark #buddypress .item-list .activity-comments ul, +body.colors-dark #buddypress .item-list .acomment-meta { + color: #eee; +} + +body.colors-dark #buddypress .item-list .activity-meta a, +body.colors-dark #buddypress .item-list .action a { + background: #fafafa; +} + +body.colors-dark #buddypress .item-list .activity-meta a:focus, body.colors-dark #buddypress .item-list .activity-meta a:hover, +body.colors-dark #buddypress .item-list .action a:focus, +body.colors-dark #buddypress .item-list .action a:hover { + background: #fff; +} + +body.colors-dark #buddypress #latest-update { + color: #eee; +} + +body.colors-dark #buddypress div.pagination * { + color: #ddd; +} + +body.colors-dark #buddypress #item-header .user-nicename { + color: #eee; +} + +body.colors-dark #buddypress #item-body table thead tr, +body.colors-dark #buddypress #item-body table thead th { + background: none; + color: #eee; +} + +body.colors-dark #buddypress #item-body table tr.alt td { + background: none; + color: #eee; +} + +body.colors-dark #buddypress #item-body table .field-visibility-settings, +body.colors-dark #buddypress #item-body table .field-visibility-settings-notoggle { + color: #eee; +} + +body.colors-dark #buddypress #item-body fieldset { + background: none; +} + +body.colors-dark #buddypress #item-body .checkbox label, +body.colors-dark #buddypress #item-body .radio label { + color: #eee; +} + +body.colors-dark #buddypress #item-body div#invite-list { + background: none; +} + +body.colors-dark.group-members #buddypress #subnav li { + background: none; +} + +body.colors-dark.group-members #buddypress #subnav .groups-members-search form { + margin-bottom: 20px; + margin-top: 0; +} + +.directory.colors-dark #buddypress #subnav.item-list-tabs ul { + border-bottom: 0; + border-top: 0; +} + +.directory.colors-dark #buddypress #subnav.item-list-tabs ul li.last.filter { + border-top: 0; +} + +.directory.colors-dark #buddypress div.activity ul.item-list { + border-top: 0; +} + +body.colors-light #buddypress div.item-list-tabs ul { + background-color: #fafafa; +} + +body.colors-light #buddypress div#subnav.item-list-tabs ul { + background-color: #f7f7f7; +} + +body.colors-light #buddypress div#subnav.item-list-tabs ul li.last { + background: #fff; +} + +body.colors-light #buddypress .item-list .activity-header p { + background-color: #f7f7f7; + color: #878787; +} + +body.colors-light #buddypress .item-list .activity-comments .acomment-meta { + color: #737373; +} + +body.colors-light #buddypress #item-body .profile h2 { + background: #878787; + color: #fff; +} + +body.colors-light #buddypress table tr.alt td { + background: #f5f5f5; + color: #333; +} + +body.colors-light #buddypress div#invite-list { + background: #fafafa; +} + +/** +*------------------------------------------------------------------------------- +* @section 2.0 - Navigation - General +*------------------------------------------------------------------------------- +*/ +/** +*---------------------------------------------------------- +* @section 2.1 - Navs Object Nav / Sub Nav (item-list-tabs) +* +* The main navigational elements for all BP screens +*---------------------------------------------------------- +*/ +#buddypress div.item-list-tabs ul li.selected a { + background: inherit; + opacity: 1; +} + +#buddypress div.item-list-tabs ul { + border-bottom: 1px solid rgba(234, 234, 234, 0.9); + overflow: hidden; + padding: 0; +} + +#buddypress div.item-list-tabs ul li a span { + border-radius: 25%; +} + +/*__ Horizontal menus __*/ +#buddypress #object-nav ul { + overflow: hidden; +} + +#buddypress #object-nav ul li { + float: none; +} + +@media screen and (max-width: 38.75em) { + #buddypress #object-nav ul li:not(:last-child) { + border-bottom: 1px solid #eaeaea; + } +} + +@media screen and (max-width: 38.75em) { + #buddypress #object-nav ul li:not(.selected):focus, #buddypress #object-nav ul li:not(.selected):hover { + background: #f4f2df; + } +} + +@media screen and (min-width: 38.75em) { + #buddypress #object-nav ul li { + float: left; + } +} + +#buddypress div#subnav.item-list-tabs { + margin-top: 0; +} + +#buddypress div#subnav.item-list-tabs ul { + border-bottom: 0; + margin-top: 5px; + padding: 0; +} + +#buddypress div#subnav.item-list-tabs ul li.last { + margin-top: 0; + padding: 5px 5px 5px 0; + width: 100%; +} + +#buddypress div#subnav.item-list-tabs ul li.last select, +#buddypress div#subnav.item-list-tabs ul li.last select:focus { + background: transparent; + border: 0; + outline: 0; +} + +#buddypress div#subnav.item-list-tabs ul li.last label { + display: inline; +} + +#buddypress div#subnav.item-list-tabs ul li.last select, +#buddypress div#subnav.item-list-tabs ul li.last label, +#buddypress div#subnav.item-list-tabs ul li.last option { + font-size: 14px; + font-size: 0.875rem; +} + +#buddypress div#subnav.item-list-tabs ul li.last select { + font-style: italic; + height: auto; +} + +@media screen and (min-width: 38.75em) { + #buddypress div#subnav.item-list-tabs ul li.last { + text-align: right; + } +} + +/*__ Vertical menu User Account / Group single screens __*/ +@media screen and (min-width: 55em) { + body:not(.page-two-column) #buddypress #object-nav { + border-right: 1px solid #ddd; + float: left; + margin-right: -1px; + width: 200px; + } + body:not(.page-two-column) #buddypress #object-nav ul { + background: none; + border-bottom: 0; + padding: 0; + } + body:not(.page-two-column) #buddypress #object-nav ul li { + float: none; + overflow: hidden; + } + body:not(.page-two-column) #buddypress #object-nav ul li span { + background: #fff; + border-radius: 10%; + float: right; + margin-right: 2px; + } + body:not(.page-two-column) #buddypress #item-body { + border-left: 1px solid #ddd; + overflow: hidden; + padding: 0 0 0 20px; + width: auto; + } + body:not(.page-two-column) #buddypress #item-body #subnav { + margin: 0 0 0 -20px; + } + body:not(.page-two-column) #buddypress #item-body #subnav ul { + margin-top: 0; + } +} + +@media screen and (min-width: 48em) { + #buddypress #group-create-tabs.item-list-tabs ul:before, + #buddypress #group-create-tabs.item-list-tabs ul:after { + content: " "; + display: table; + } + #buddypress #group-create-tabs.item-list-tabs ul:after { + clear: both; + } + #buddypress #group-create-tabs.item-list-tabs ul { + background: none; + border: 0; + border-bottom: 1px solid #ddd; + overflow: visible; + padding-bottom: 0; + } + #buddypress #group-create-tabs.item-list-tabs ul li { + float: left; + width: auto; + } + #buddypress #group-create-tabs.item-list-tabs ul li.selected, + #buddypress #group-create-tabs.item-list-tabs ul li.current { + border: 1px solid #ddd; + border-bottom-color: #fff; + -webkit-border-top-right-radius: 4px; + border-top-right-radius: 4px; + -webkit-border-top-left-radius: 4px; + border-top-left-radius: 4px; + background-clip: padding-box; + margin-bottom: -1px; + } + #buddypress #group-create-tabs.item-list-tabs ul li.selected a, + #buddypress #group-create-tabs.item-list-tabs ul li.current a { + background: none; + color: #333; + outline: none; + } + #buddypress #subnav ul { + border-bottom: 0; + } +} + +/** +*---------------------------------------------------------- +* @section 2.2 - Pagination +*---------------------------------------------------------- +*/ +#buddypress div.pagination { + box-shadow: none; + font-weight: 400; + min-height: 0; +} + +#buddypress div.pagination:before, #buddypress div.pagination:after { + height: 0; + width: 0; +} + +#buddypress div.pagination .pag-count { + margin-left: 0; +} + +#buddypress div.pagination .pagination-links { + margin-right: 0; +} + +#buddypress div.pagination .pagination-links span, +#buddypress div.pagination .pagination-links a { + height: auto; + line-height: 1; + padding: 5px; +} + +#buddypress div.pagination .pagination-links .prev, +#buddypress div.pagination .pagination-links .next { + background-color: transparent; + color: inherit; + overflow: visible; + width: auto; +} + +#buddypress div.pagination .pagination-links .prev:before, +#buddypress div.pagination .pagination-links .next:before { + display: none; +} + +#buddypress div.pagination .pagination-links .prev { + left: auto; + position: static; +} + +#buddypress div.pagination .pagination-links .next { + position: static; + right: auto; +} + +/** +*------------------------------------------------------------------------------- +* @section 4.0 - BP Lists / Loops Generic +*------------------------------------------------------------------------------- +*/ +#buddypress .item-list .activity-header, +#buddypress .item-list .activity-meta { + font-family: "Libre Franklin", "Helvetica Neue", helvetica, arial, sans-serif; +} + +#buddypress .activity-meta .button:focus, #buddypress .activity-meta .button:hover { + background: inherit; + color: #000; +} + +#buddypress .action .generic-button a:focus, #buddypress .action .generic-button a:hover { + background: inherit; + color: #000; +} + +#buddypress ul.item-list li { + overflow: hidden !important; +} + +#buddypress ul.item-list li .item-avatar { + margin-bottom: 10px; + text-align: center; +} + +@media screen and (min-width: 38.75em) { + #buddypress ul.item-list li .item-avatar { + margin-bottom: 0; + } +} + +#buddypress ul.item-list li .item-avatar a { + border-bottom: 0; +} + +#buddypress ul.item-list li .item-avatar img.avatar { + display: inline-block; + float: none; + margin-bottom: 10px; +} + +@media screen and (min-width: 30em) { + #buddypress ul.item-list li .item-avatar img.avatar { + display: block; + float: left; + } +} + +#buddypress ul.item-list li .item { + overflow: hidden; +} + +@media screen and (min-width: 48em) { + #buddypress ul.item-list li .item { + margin-left: 15%; + } +} + +#buddypress ul.item-list li .item span.activity { + font-style: italic; +} + +#buddypress ul.item-list li .item .item-desc { + margin-left: 0; + width: 94%; +} + +#buddypress ul.item-list li .item .item-title { + font-size: 18px; + font-size: 1.125rem; + line-height: 1.2; + text-align: center; + width: 100%; +} + +@media screen and (min-width: 30em) { + #buddypress ul.item-list li .item .item-title { + text-align: left; + } +} + +#buddypress ul.item-list li .item .item-title .update { + display: block; + font-size: 13px; + font-size: 0.8125rem; + padding: 10px 0; + text-align: left; +} + +@media screen and (min-width: 55em) { + #buddypress ul.item-list li .item .item-title .update { + font-size: 14px; + font-size: 0.875rem; + } +} + +@media screen and (min-width: 55em) { + #buddypress ul.item-list li .item-avatar, + #buddypress ul.item-list li .item, + #buddypress ul.item-list li .action { + float: left; + } + #buddypress ul.item-list li .item { + left: 5%; + margin-left: 0; + position: relative; + width: 55%; + } + #buddypress ul.item-list li .item .item-title { + font-size: 22px; + font-size: 1.375rem; + } +} + +#buddypress ul.item-list li div.action { + clear: left; + float: none; + margin-bottom: -20px; + margin-left: 0; + padding: 20px 0 5px; + position: relative; + text-align: left; + top: 0; +} + +@media screen and (min-width: 55em) { + #buddypress ul.item-list li div.action { + clear: none; + float: right; + margin-bottom: 0; + padding: 0; + } +} + +#buddypress ul.item-list li div.action div { + display: inline-block; + margin: 10px 0; + width: 100%; +} + +#buddypress ul.item-list li div.action div a { + display: block; + width: 100%; +} + +@media screen and (min-width: 30em) { + #buddypress ul.item-list li div.action div { + margin: 0 10px 10px 0; + width: auto; + } +} + +@media screen and (min-width: 55em) { + #buddypress ul.item-list li div.action div { + clear: right; + float: right; + margin: 0 0 10px 0; + } +} + +#buddypress ul.item-list li div.action .meta { + font-style: italic; +} + +/** +*---------------------------------------------------------- +* @section 4.1 - Activity +*---------------------------------------------------------- +*/ +/** +*----------------------------------------------------- +* @section 4.1.1 - Activity Whats New +*----------------------------------------------------- +*/ +#buddypress form#whats-new-form p.activity-greeting { + line-height: 1.4; +} + +@media screen and (max-width: 46.25em) { + #buddypress form#whats-new-form #whats-new-content { + clear: left; + margin: 10px 0 20px; + padding: 10px 0 0; + } +} + +#buddypress form#whats-new-form #whats-new-content.active #whats-new-options[style] #whats-new-post-in-box { + border: 1px solid rgba(190, 190, 190, 0.5); + float: left; + line-height: 1.5em; + margin-top: 12px; + padding-left: 0.2em; + width: 100%; +} + +#buddypress form#whats-new-form #whats-new-content.active #whats-new-options[style] #whats-new-post-in-box select { + background: none; + border: 0; + float: right; + margin: 0; + min-height: 1.5em; + padding-left: 0.4em; +} + +@media screen and (min-width: 30em) { + #buddypress form#whats-new-form #whats-new-content.active #whats-new-options[style] #whats-new-post-in-box { + width: auto; + } + #buddypress form#whats-new-form #whats-new-content.active #whats-new-options[style] #whats-new-submit { + float: right; + } +} + +#buddypress #item-body form#whats-new-form { + margin: 40px 0; +} + +/** +*----------------------------------------------------- +* @section 4.1.2 - Activity Listing +*----------------------------------------------------- +*/ +#buddypress #activity-stream li { + padding: 25px 0 15px; +} + +#buddypress #activity-stream li .activity-avatar { + float: none; + text-align: center; +} + +#buddypress #activity-stream li .activity-avatar a { + display: inline-block; +} + +#buddypress #activity-stream li .activity-avatar a img.avatar { + display: inline; + float: none; + height: 60px; + margin-bottom: 20px; + margin-left: 0; + width: 60px; +} + +#buddypress #activity-stream li .activity-content { + margin-left: 0; +} + +#buddypress #activity-stream li .activity-content .activity-header { + font-size: 14px; + font-size: 0.875rem; +} + +#buddypress #activity-stream li .activity-content .activity-header a { + color: #0075c4; +} + +@media screen and (min-width: 48em) { + #buddypress #activity-stream li .activity-avatar { + float: left; + margin-right: 10px; + text-align: left; + } + #buddypress #activity-stream li .activity-avatar a { + border-bottom: 0; + } + #buddypress #activity-stream li .activity-content { + margin: 0; + overflow: hidden; + } + #buddypress #activity-stream li .activity-content .activity-header { + font-size: 16px; + font-size: 1rem; + } +} + +#buddypress #activity-stream li.mini .activity-avatar a img.avatar { + height: 30px; + margin-left: 15px; + width: 30px; +} + +#buddypress #activity-stream li.mini .activity-content .activity-header { + font-size: 14px; + font-size: 0.875rem; +} + +#buddypress #activity-stream .activity-content { + margin-top: -12px; +} + +#buddypress #activity-stream .activity-content .activity-header { + margin-right: 0; +} + +#buddypress #activity-stream .activity-content .activity-header p { + border: 1px solid rgba(234, 234, 234, 0.6); + margin-top: 0; + padding: 0 0.2em; +} + +#buddypress #activity-stream .activity-content .activity-header img.avatar { + box-shadow: none; + display: inline-block; + margin: 0 5px !important; + vertical-align: middle; +} + +#buddypress #activity-stream .activity-content .activity-meta a { + display: block; + margin-bottom: 5px; +} + +@media screen and (min-width: 30em) { + #buddypress #activity-stream .activity-content .activity-meta a { + display: inline-block; + margin-bottom: 0; + width: auto; + } +} + +#buddypress #activity-stream .load-more { + background: #f7f7f7; + border: 1px solid transparent; + padding: 10px; +} + +#buddypress #activity-stream .load-more:focus, #buddypress #activity-stream .load-more:hover { + background: #f4f4f4; + border: 1px solid rgba(159, 209, 226, 0.3); +} + +#buddypress #activity-stream .load-more:focus a, #buddypress #activity-stream .load-more:hover a { + font-style: italic; +} + +#buddypress #activity-stream .load-more a { + display: block; +} + +/* Single activity view - activity permalink */ +.activity-permalink #buddypress #activity-stream li.activity-item { + padding: 20px; +} + +.activity-permalink #buddypress #activity-stream li.mini .activity-header { + font-size: 16px; + font-size: 1rem; + margin-bottom: 40px; +} + +@media screen and (min-width: 48em) { + .activity-permalink #buddypress #activity-stream li.mini .activity-header { + font-size: 20px; + font-size: 1.25rem; + } +} + +.activity-permalink #buddypress #activity-stream li.mini .activity-header p { + padding: 20px; +} + +/** +*----------------------------------------------------- +* @section 4.1.3 - Activity Comments +*----------------------------------------------------- +*/ +#buddypress #activity-stream .activity-comments { + border-left: 1px solid #eaeaea; + margin: 20px 0 20px; +} + +@media screen and (min-width: 30em) { + #buddypress #activity-stream .activity-comments { + margin-left: 20px; + } +} + +#buddypress #activity-stream .activity-comments ul { + margin: 15px 0 0 2px; +} + +#buddypress #activity-stream .activity-comments ul li { + border-top: 1px solid #bebebe; +} + +#buddypress #activity-stream .activity-comments ul a { + color: #0077c7; +} + +#buddypress #activity-stream .activity-comments .acomment-meta { + border-bottom: 1px solid #eaeaea; +} + +#buddypress #activity-stream .activity-comments .ac-form input[type="submit"], +#buddypress #activity-stream .activity-comments .ac-form .ac-reply-cancel { + color: rgba(51, 51, 51, 0.8); + display: inline-block; + font-family: inherit; + font-size: 12px; + font-size: 0.75rem; + font-weight: normal; + line-height: 1.2; + padding: 4px 10px; + text-transform: lowercase; + width: 100px; +} + +#buddypress #activity-stream .activity-comments .ac-form .ac-reply-cancel { + border: 1px solid rgba(190, 190, 190, 0.7); + text-align: center; +} + +#buddypress #activity-stream .activity-comments .ac-form .ac-reply-cancel:focus, #buddypress #activity-stream .activity-comments .ac-form .ac-reply-cancel:hover { + background: #ededed; +} + +/** +*---------------------------------------------------------- +* @section 4.2 - Members Loop +*---------------------------------------------------------- +*/ +@media screen and (min-width: 55em) { + #buddypress #members-list li .item-avatar, + #buddypress #members-list li .item { + float: left; + } + #buddypress #members-list li .action { + float: right; + } + #buddypress #members-list li.is-current-user .item { + float: none; + left: 0; + padding-left: 5%; + width: auto; + } +} + +/** +*------------------------------------------------------------------------------- +* @section 5.0 - Directories +*------------------------------------------------------------------------------- +*/ +/** +*----------------------------------------------------------- +* @subsection Registration +*----------------------------------------------------------- +*/ +#buddypress #signup_form.standard-form #profile-details-section, +#buddypress #signup_form.standard-form #basic-details-section, +#buddypress #signup_form.standard-form #blog-details-section { + float: none; + width: 100%; +} + +@media screen and (min-width: 38.75em) { + #buddypress #signup_form.standard-form #profile-details-section, + #buddypress #signup_form.standard-form #basic-details-section, + #buddypress #signup_form.standard-form #blog-details-section { + width: 48%; + } +} + +@media screen and (min-width: 30em) { + #buddypress #signup_form.standard-form #profile-details-section { + float: right; + } + #buddypress #signup_form.standard-form #basic-details-section { + float: left; + } +} + +/** +*------------------------------------------------------------------------------- +* @section 6.0 - Single Item screens: User Account & Single Group Screens +*------------------------------------------------------------------------------- +*/ +/** +*----------------------------------------------------------- +* @subsection 6.1 - Item Header Global +*----------------------------------------------------------- +*/ +@media screen and (min-width: 48em) { + .bp-user.page-two-column #buddypress #cover-image-container #item-header-cover-image #item-header-content { + margin-left: 140px; + margin-top: -100px; + } + .single-item.groups.page-two-column #buddypress #cover-image-container #item-header-cover-image #item-header-content { + margin-left: 10px; + } +} + +.bp-user #buddypress #item-header-cover-image .user-nicename, +.single-item.groups #buddypress #item-header-cover-image .user-nicename { + color: #333; + text-shadow: none; +} + +@media screen and (min-width: 48em) { + .bp-user #buddypress #item-header-cover-image .user-nicename, + .single-item.groups #buddypress #item-header-cover-image .user-nicename { + color: #fff; + text-shadow: 0 0 3px rgba(0, 0, 0, 0.8); + } +} + +.bp-user #buddypress #item-header-content #item-meta, +.single-item.groups #buddypress #item-header-content #item-meta { + font-size: 14px; + font-size: 0.875rem; + text-align: left; +} + +.bp-user #buddypress #item-header-content #item-meta p, +.single-item.groups #buddypress #item-header-content #item-meta p { + margin-bottom: 0.5em; +} + +@media screen and (max-width: 46.25em) { + .bp-user main header.entry-header, + .single-item.groups main header.entry-header { + padding-bottom: 1rem; + } +} + +@media screen and (max-width: 38.75em) { + .bp-user h1, + .bp-user #item-header-content, + .single-item.groups h1, + .single-item.groups #item-header-content { + text-align: center; + } +} + +@media screen and (max-width: 46.25em) { + .bp-user #buddypress #item-header .generic-button, + .single-item.groups #buddypress #item-header .generic-button { + float: none; + margin: 1.5em 0 0 0; + } +} + +@media screen and (max-width: 38.75em) { + .bp-user #buddypress h1, + .single-item.groups #buddypress h1 { + margin-bottom: 0; + } + .bp-user #buddypress #item-header-avatar img.avatar, + .single-item.groups #buddypress #item-header-avatar img.avatar { + margin-right: 0; + } + .bp-user #buddypress #item-header-content, + .single-item.groups #buddypress #item-header-content { + width: 100%; + } +} + +/** +*----------------------------------------------------- +* @subsection 6.1.1 - item-header Groups +* +* Group Specific Item Header +*----------------------------------------------------- +*/ +@media screen and (max-width: 46.25em) { + .single-item.groups #buddypress #item-header #item-meta { + margin-bottom: 20px; + } +} + +@media screen and (max-width: 38.75em) { + .single-item.groups #buddypress div#item-header { + display: flex; + flex-direction: column; + } + .single-item.groups #buddypress div#item-header #item-header-avatar { + order: 1; + text-align: center; + } + .single-item.groups #buddypress div#item-header #item-header-avatar a img { + display: inline-block; + float: none; + } + .single-item.groups #buddypress div#item-header #item-header-content { + order: 2; + } + .single-item.groups #buddypress div#item-header #item-actions { + order: 3; + } + .single-item.groups #buddypress div#item-header #item-actions h2 { + border-bottom: 1px solid #eaeaea; + text-align: center; + } +} + +.single-item.groups #buddypress div#item-header { + padding-bottom: 40px; +} + +.single-item.groups #buddypress div#item-header div#item-actions { + margin: 0; + width: 100%; +} + +@media screen and (min-width: 38.75em) { + .single-item.groups #buddypress div#item-header div#item-actions { + border-left: 1px solid #eaeaea; + clear: none; + float: right; + padding-left: 0.2em; + width: 30%; + } +} + +@media screen and (min-width: 48em) { + .single-item.groups #buddypress div#item-header div#item-actions { + width: 40%; + } +} + +.single-item.groups #buddypress div#item-header div#item-actions ul { + margin-top: 0; + padding-left: 0; +} + +.single-item.groups #buddypress div#item-header div#item-actions h2 { + font-size: 14px; + font-size: 0.875rem; + padding: 0.2em; +} + +@media screen and (min-width: 48em) { + .single-item.groups #buddypress div#item-header div#item-actions h2 { + font-size: 16px; + font-size: 1rem; + } +} + +@media screen and (min-width: 48em) { + .single-item.groups #buddypress div#item-header #item-header-avatar, + .single-item.groups #buddypress div#item-header #item-header-content { + float: left; + } + .single-item.groups #buddypress div#item-header #item-header-avatar { + width: 21%; + } + .single-item.groups #buddypress div#item-header #item-header-content { + margin-left: 4%; + width: 40%; + } + .single-item.groups #buddypress div#item-header div#item-actions { + float: right; + width: 28%; + } +} + +/** +*----------------------------------------------------- +* @subsection 6.1.2 - Item Header User Accounts +* +* User Accounts Specific Item Header +*----------------------------------------------------- +*/ +.bp-user #buddypress #item-header { + padding: 20px 0; +} + +.bp-user #buddypress #item-header #item-header-avatar { + text-align: center; + width: 100%; +} + +.bp-user #buddypress #item-header #item-header-avatar img.avatar, +.bp-user #buddypress #item-header #item-header-avatar a { + display: inline-block; + float: none; +} + +@media screen and (min-width: 48em) { + .bp-user #buddypress #item-header #item-header-avatar { + float: left; + width: 20%; + } + .bp-user #buddypress #item-header #item-header-avatar a { + float: left; + } + .bp-user #buddypress #item-header #item-header-content { + float: right; + margin-right: 5%; + width: 69%; + } +} + +/** +*----------------------------------------------------------- +* @subsection 6.2 - Item Body: Global +*----------------------------------------------------------- +*/ +/** +*---------------------------------------------------- +* @subsection 6.2.1 - Item Body Groups +* +* Groups specific item body rules - screens +*---------------------------------------------------- +*/ +.groups.single-item.members #buddypress #subnav.item-list-tabs ul { + background: none; + border-top: 0; +} + +/** +*----------------------------------------- +* @subsection 6.2.1.1 - Group Management +*----------------------------------------- +*/ +.groups #group-settings-form h3 { + background: #555; + color: #fff; + padding: 0.2em; +} + +.groups.edit-details #group-settings-form label { + margin-bottom: 0; + padding: 0.2em; + width: 80%; +} + +.groups.edit-details #group-settings-form textarea + p label { + background: none; + color: inherit; + font-size: 14px; + font-size: 0.875rem; + width: auto; +} + +.groups.edit-details #group-settings-form textarea { + height: auto; + min-height: 100px; + overflow: auto; +} + +.groups.group-settings #group-settings-form div.radio label { + border: 1px solid #eaeaea; + padding: 0.2em; +} + +.groups.group-settings #group-settings-form div.radio label ul { + color: rgba(51, 51, 51, 0.6); + font-size: 14px; + font-size: 0.875rem; +} + +.groups.group-avatar form > p { + margin-top: 20px; +} + +.groups.manage-members #group-settings-form .item-list li { + border-bottom: 1px solid #eaeaea; +} + +.groups.manage-members #group-settings-form .item-list li img, +.groups.manage-members #group-settings-form .item-list li h5 { + float: left; +} + +.groups.manage-members #group-settings-form .item-list li img > a, +.groups.manage-members #group-settings-form .item-list li h5 > a { + border-bottom: 0; +} + +.groups.manage-members #group-settings-form .item-list li span.small { + clear: left; + display: block; + float: none; + margin-top: 10px; +} + +.groups.manage-members #group-settings-form .item-list li span.small a { + display: inline-block; + margin: 5px 0; + width: 100%; +} + +@media screen and (min-width: 38.75em) { + .groups.manage-members #group-settings-form .item-list li span.small a { + width: auto; + } +} + +.groups.manage-members #group-settings-form .item-list li h5 { + margin: 0; +} + +/** +*----------------------------------------- +* @subsection 6.2.1.2 - Group members +*----------------------------------------- +*/ +.groups.group-members #subnav li { + width: 100%; +} + +@media screen and (max-width: 38.75em) { + .groups.group-members #subnav li { + background: #fff; + padding: 20px 0; + } +} + +.groups.group-members #subnav li #search-members-form { + float: right; + margin: 5px 0 0; +} + +@media screen and (max-width: 38.75em) { + .groups.group-members #subnav li #search-members-form { + margin: 0; + width: 100%; + } + .groups.group-members #subnav li #search-members-form label input[type="text"] { + width: 100%; + } +} + +/** +*----------------------------------------------------- +* @subsection 6.2.2 - Item Body User Accounts +* +* User Account specific item body rules +*----------------------------------------------------- +*/ +.bp-user .entry-title { + margin-bottom: 0.5em; +} + +/** +*-------------------------------------------- +* @subsection 6.2.2.1 - classes, pag, filters +*-------------------------------------------- +*/ +.bp-user #buddypress table th { + font-size: 14px; + font-size: 0.875rem; +} + +.bp-user #buddypress table td { + font-size: 12px; + font-size: 0.75rem; +} + +.bp-user #buddypress table a { + color: #0074c2; +} + +@media screen and (min-width: 55em) { + .bp-user #buddypress table th { + font-size: 16px; + font-size: 1rem; + } + .bp-user #buddypress table td { + font-size: 14px; + font-size: 0.875rem; + } +} + +@media screen and (min-width: 67em) { + .bp-user #buddypress table th { + font-size: 18px; + font-size: 1.125rem; + } + .bp-user #buddypress table td { + font-size: 16px; + font-size: 1rem; + } +} + +.bp-user #buddypress .pag-count { + font-style: italic; +} + +.bp-user #buddypress .notifications-options-nav, +.bp-user #buddypress .messages-options-nav { + float: left; + width: 100%; +} + +@media screen and (min-width: 38.75em) { + .bp-user #buddypress .notifications-options-nav, + .bp-user #buddypress .messages-options-nav { + width: 300px; + } +} + +.bp-user #buddypress .notifications-options-nav select, +.bp-user #buddypress .messages-options-nav select { + height: auto; +} + +.bp-user #buddypress .notifications-options-nav select, +.bp-user #buddypress .notifications-options-nav input, +.bp-user #buddypress .messages-options-nav select, +.bp-user #buddypress .messages-options-nav input { + font-size: 14px; + font-size: 0.875rem; + outline: 0; + padding: 0; +} + +.bp-user #buddypress .notifications-options-nav select, +.bp-user #buddypress .messages-options-nav select { + float: left; + margin-right: 1%; + width: 59%; +} + +.bp-user #buddypress .notifications-options-nav input, +.bp-user #buddypress .messages-options-nav input { + float: right; + font-family: inherit; + line-height: 20px; + width: 40%; +} + +.bp-user #buddypress .notifications-options-nav input[disabled="disabled"]:focus, +.bp-user #buddypress .notifications-options-nav input[disabled="disabled"]:hover, +.bp-user #buddypress .messages-options-nav input[disabled="disabled"]:focus, +.bp-user #buddypress .messages-options-nav input[disabled="disabled"]:hover { + background: none; +} + +/** + *------------------------------------------- + * @subsection 6.2.2.2 - Extended Profiles + *------------------------------------------- + */ +.bp-user #buddypress .profile { + /* Edit profile */ +} + +.bp-user #buddypress .profile h2 { + margin: 40px 0 10px; + padding: 0.1em 0 0.1em 0.4em; +} + +.bp-user #buddypress .profile table { + margin-top: 0; +} + +.bp-user #buddypress .profile .profile-fields tr.alt td { + color: #333; +} + +.bp-user #buddypress .profile .profile-fields tr:last-child { + border-bottom: 0; +} + +.bp-user #buddypress .profile #profile-edit-form .button-nav:before, +.bp-user #buddypress .profile #profile-edit-form .button-nav:after { + content: " "; + display: table; +} + +.bp-user #buddypress .profile #profile-edit-form .button-nav:after { + clear: both; +} + +.bp-user #buddypress .profile #profile-edit-form ul.button-nav { + border-bottom: 1px solid #eaeaea; + margin-left: 0; +} + +.bp-user #buddypress .profile #profile-edit-form ul.button-nav li { + float: left; + margin-bottom: 0; +} + +.bp-user #buddypress .profile #profile-edit-form ul.button-nav li.current { + border: 1px solid #eaeaea; + border-bottom-color: #fff; + margin-bottom: -1px; +} + +.bp-user #buddypress .profile #profile-edit-form ul.button-nav a { + background: none; + border: 0; + font-size: 18px; + font-size: 1.125rem; +} + +.bp-user #buddypress .profile #profile-edit-form .field-visibility-settings-toggle, +.bp-user #buddypress .profile #profile-edit-form .field-visibility-settings-notoggle, +.bp-user #buddypress .profile #profile-edit-form .field-visibility-settings { + font-size: 14px; + font-size: 0.875rem; + margin-top: 10px; +} + +.bp-user #buddypress .profile #profile-edit-form .field-visibility-settings-close, +.bp-user #buddypress .profile #profile-edit-form .visibility-toggle-link { + background: #555; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + -ms-border-radius: 3px; + border-radius: 3px; + background-clip: padding-box; + color: #fff; + padding: 0.2em 0.5em; +} + +.bp-user #buddypress .profile .bp-avatar #bp-delete-avatar a { + font-size: inherit; +} + +/** + *------------------------------------------- + * @subsection 6.2.2.3 - Groups + *------------------------------------------- + */ +@media screen and (min-width: 77.5em) { + .bp-user #buddypress #groups-list li .item { + left: 5%; + width: 50%; + } +} + +/** + *------------------------------------------- + * @subsection 6.2.2.5 - Private Messaging + *------------------------------------------- + */ +.bp-user #buddypress #message-thread a { + border-bottom: 0; +} + +.bp-user #buddypress #message-thread #message-subject { + background: #6f6f6f; + color: #fff; + padding: 0.3em 0 0.3em 0.2em; +} + +.bp-user #buddypress #message-thread #message-recipients { + font-style: italic; +} + +.bp-user #buddypress #message-thread #message-recipients a.confirm { + border: 1px solid #eaeaea; + font-style: normal; +} + +.bp-user #buddypress #message-thread .message-metadata { + overflow: hidden; +} + +.bp-user #buddypress #message-thread .message-metadata img.avatar { + float: none; +} + +@media screen and (min-width: 48em) { + .bp-user #buddypress #message-thread .message-metadata img.avatar { + float: left; + } +} + +.bp-user #buddypress #message-thread .message-metadata .message-star-actions { + float: right; + margin-right: 5px; + position: static; +} + +.bp-user #buddypress #message-thread .message-content { + background: #f7f7f7; + border: 1px solid #eaeaea; + margin: 10px 0 0 0; + padding: 0.3em; +} + +.bp-user #buddypress #message-thread #send-reply .message-content { + background: #fff; + border: 0; +} + +.bp-user #buddypress #message-thread .alt { + background: #fff; +} + +.bp-user #buddypress #message-threads thead tr { + background: none; + border-bottom: 1px solid #bebebe; +} + +.bp-user #buddypress #message-threads thead tr th { + background: #555; +} + +.bp-user #buddypress #message-threads tr { + border-bottom: 5px solid #878787; +} + +.bp-user #buddypress #message-threads tr td { + display: inline-block; + float: left; +} + +.bp-user #buddypress #message-threads tr td.thread-star, +.bp-user #buddypress #message-threads tr td.thread-options { + border-bottom-color: #bebebe; + border-bottom-width: 1px; + height: 2.4em; + padding-bottom: 0.2em; + padding-top: 0.2em; +} + +@media screen and (max-width: 46.25em) { + .bp-user #buddypress #message-threads tr td.thread-star, + .bp-user #buddypress #message-threads tr td.thread-options { + padding-top: 0; + } +} + +.bp-user #buddypress #message-threads tr td.bulk-select-check, +.bp-user #buddypress #message-threads tr td.thread-star, +.bp-user #buddypress #message-threads tr td.thread-from, +.bp-user #buddypress #message-threads tr td.thread-info, +.bp-user #buddypress #message-threads tr td.thread-options { + border-top: 0; +} + +.bp-user #buddypress #message-threads tr td.thread-star { + vertical-align: middle; +} + +.bp-user #buddypress #message-threads tr td.thread-star .message-action-star { + line-height: 1.2; +} + +.bp-user #buddypress #message-threads tr td.bulk-select-check, +.bp-user #buddypress #message-threads tr td.thread-from { + height: 3em; +} + +@media screen and (max-width: 38.75em) { + .bp-user #buddypress #message-threads tr td.bulk-select-check, + .bp-user #buddypress #message-threads tr td.thread-from { + height: 5.2em; + } +} + +.bp-user #buddypress #message-threads tr td.thread-from, +.bp-user #buddypress #message-threads tr td.thread-options { + border-left: 0 !important; + width: -webkit-calc(100% - 30px); + width: -moz-calc(100% - 30px); + width: calc(100% - 30px); + margin-left: 0; +} + +.bp-user #buddypress #message-threads tr td.thread-info { + padding-left: 41px; + width: 100%; +} + +.bp-user #buddypress #message-threads tr td.thread-info a::after { + content: " ‗ " attr(title); + font-size: 12px; + font-size: 0.75rem; +} + +.bp-user #buddypress #message-threads tr td.thread-options { + text-align: right; +} + +.bp-user #buddypress #message-threads tr td.thread-options a { + font-size: 12px; + font-size: 0.75rem; + line-height: 2.2; +} + +.bp-user #buddypress #message-threads tr span.from { + display: none; +} + +.bp-user #buddypress #message-threads tr span.activity { + display: block; + float: right; + line-height: 2; +} + +@media screen and (max-width: 38.75em) { + .bp-user #buddypress #message-threads tr span.activity { + clear: both; + font-size: 11px; + font-size: 0.6875rem; + width: 100%; + } +} + +.bp-user #buddypress #message-threads tr.unread td { + background: none; + border-color: #bebebe; +} + +.bp-user #buddypress #message-threads th { + display: none; +} + +.bp-user #buddypress #message-threads th.bulk-select-all { + border-bottom: 0; + display: inline-block; + text-align: left; +} + +.bp-user #buddypress #message-threads th.bulk-select-all, +.bp-user #buddypress #message-threads td.bulk-select-check, +.bp-user #buddypress #message-threads td.thread-star { + border-right: 0; + width: 30px; +} + +.bp-user #buddypress .acfb-holder { + list-style: none; +} + +.bp-user #buddypress .acfb-holder li { + margin-left: 0; +} + +.bp-user #buddypress .acfb-holder li.friend-tab { + background: #e3f6ff; + border: inherit; + margin-right: 0; + padding: 0.5em; +} + +.bp-user #buddypress .acfb-holder li.friend-tab span.p { + padding-left: 10px; +} + +.bp-user #buddypress .acfb-holder li.friend-tab span.p:focus, .bp-user #buddypress .acfb-holder li.friend-tab span.p:hover { + color: #c82b2b; + cursor: pointer; +} + +.bp-user #buddypress .acfb-holder li.friend-tab a { + border-bottom: 0; + text-decoration: none; +} + +.bp-user #buddypress .acfb-holder li.friend-tab a img { + display: inline; + height: 20px; + vertical-align: middle; + width: 20px !important; +} + +.bp-user #buddypress #message-threads.sitewide-notices td { + width: 100%; +} + +.bp-user #buddypress #message-threads.sitewide-notices td strong { + background: #6f6f6f; + color: #fff; + display: block; + margin-bottom: 0.4em; + padding-left: 0.2em; +} + +.bp-user #buddypress #message-threads.sitewide-notices td a { + display: inline-block; +} + +.bp-user #buddypress #message-threads.sitewide-notices td:first-child { + display: none; +} + +.bp-user #buddypress #message-threads.sitewide-notices td:nth-child(2) strong { + margin: -8px -8px 8px; +} + +.bp-user #buddypress #message-threads.sitewide-notices td:first-child + td + td { + border-bottom: 0; +} + +.bp-user #buddypress #message-threads.sitewide-notices td:first-child + td + td span { + line-height: 1; +} + +.bp-user #buddypress #message-threads.sitewide-notices td:last-child { + border-bottom-color: #b7b7b7; + line-height: 1; + text-align: right; +} + +.bp-user #buddypress #message-threads.sitewide-notices td:last-child a:last-child { + line-height: 0; + margin-left: 0.7em; + text-indent: -999em; +} + +.bp-user #buddypress #message-threads.sitewide-notices td:last-child a:last-child::after { + content: attr(title); + display: block; + line-height: initial; + text-indent: 0; +} + +.bp-user .ac_results { + background: #eee; + padding-left: 10px; +} + +.bp-user .ac_results ul { + margin: 0; +} + +.bp-user .ac_results li { + margin: 10px 0; +} + +.bp-user .ac_results li:focus, .bp-user .ac_results li:hover { + cursor: pointer; +} + +/** + *------------------------------ + * @subsection 6.2.2.6 - Settings + *------------------------------ + */ +.bp-user #buddypress #settings-form > p { + font-size: 20px; + font-size: 1.25rem; + margin: 20px 0 10px; +} + +.bp-user #buddypress table.notification-settings td.yes, +.bp-user #buddypress table.notification-settings td.no { + vertical-align: middle; +} + +.bp-user #buddypress table.profile-settings { + width: 100%; +} + +.bp-user #buddypress table.profile-settings th.field-group-name, +.bp-user #buddypress table.profile-settings td.field-name { + width: 50%; +} + +@media screen and (min-width: 48em) { + .bp-user #buddypress table.profile-settings th.field-group-name, + .bp-user #buddypress table.profile-settings td.field-name { + width: 70%; + } +} + +.bp-user #buddypress table.profile-settings th.title, +.bp-user #buddypress table.profile-settings td.field-visibility { + width: 30%; +} + +.bp-user #buddypress table.profile-settings td.field-visibility select { + width: 100%; +} + +/** +*------------------------------------------------------------------------------- +* @section 7.0 - Forms - General +*------------------------------------------------------------------------------- +*/ +#main #buddypress .standard-form li { + float: none; +} + +#main #buddypress .standard-form input[type='text'], +#main #buddypress .standard-form input[type='email'], +#main #buddypress .standard-form input[type='password'], +#main #buddypress .standard-form textarea { + width: 100%; +} + +#buddypress div.activity-comments form .ac-textarea { + background: #f7f7f7; + border: 1px solid rgba(190, 190, 190, 0.5); +} + +#buddypress div.activity-comments form .ac-textarea textarea { + background: none; + border: 0; +} + +#buddypress select { + height: auto; +} + +#buddypress .standard-form input[type="text"], +#buddypress .standard-form input[type="email"], +#buddypress .standard-form input[type="password"], +#buddypress .standard-form button, +#buddypress .standard-form select, +#buddypress .standard-form textarea { + border-color: rgba(190, 190, 190, 0.5); + border-width: 1px; +} + +#buddypress .standard-form select { + color: #737373; +} + +#buddypress #signup_form.standard-form div.submit { + float: none; +} + +#buddypress #signup_form.standard-form div.submit input { + margin-right: 0; +} + +#buddypress div.dir-search, +#buddypress div.message-search, +#buddypress li.groups-members-search { + float: none; + margin: 10px 0; +} + +#buddypress div.dir-search form, +#buddypress div.message-search form, +#buddypress li.groups-members-search form { + border: 1px solid rgba(190, 190, 190, 0.6); + -webkit-border-radius: 2px; + -moz-border-radius: 2px; + -ms-border-radius: 2px; + border-radius: 2px; + background-clip: padding-box; + overflow: hidden; +} + +#buddypress div.dir-search form label, +#buddypress div.message-search form label, +#buddypress li.groups-members-search form label { + float: left; + margin: 0; + width: 70%; +} + +#buddypress div.dir-search form input[type="text"], +#buddypress div.message-search form input[type="text"], +#buddypress li.groups-members-search form input[type="text"] { + float: left; + margin: 0; + width: 100%; +} + +#buddypress div.dir-search form input[type="text"], +#buddypress div.dir-search form input[type="submit"], +#buddypress div.message-search form input[type="text"], +#buddypress div.message-search form input[type="submit"], +#buddypress li.groups-members-search form input[type="text"], +#buddypress li.groups-members-search form input[type="submit"] { + border: 0; + font-size: 14px; + font-size: 0.875rem; + line-height: inherit; +} + +#buddypress div.dir-search form input[type="text"], +#buddypress div.message-search form input[type="text"], +#buddypress li.groups-members-search form input[type="text"] { + border-right: 1px solid rgba(190, 190, 190, 0.6); + font-weight: 400; + padding: 0.2em 0 0.2em 0.2em; +} + +#buddypress div.dir-search form input[type="submit"], +#buddypress div.message-search form input[type="submit"], +#buddypress li.groups-members-search form input[type="submit"] { + -webkit-border-radius: none; + -moz-border-radius: none; + -ms-border-radius: none; + border-radius: none; + float: right; + font-weight: normal; + padding: 0.2em 1em; + text-align: center; + text-transform: none; + width: 30%; +} + +#buddypress div.dir-search { + margin-top: 0; +} + +#buddypress .dir-search #search-members-form input[type='text'], +#buddypress #search-groups-form input[type='text'], +#buddypress #search-message-form input[type='text'] { + float: left; + margin: 0; + width: 70%; +} + +@media screen and (min-width: 30em) { + #buddypress div.dir-search, + #buddypress div.message-search, + #buddypress li.groups-members-search { + float: right; + margin-bottom: 5px !important; + } +} + +@media screen and (min-width: 67em) { + #buddypress .dir-search form input[type='text'], + #buddypress .message-search form input[type='text'], + #buddypress li.groups-members-search form input[type='text'] { + font-size: 16px; + font-size: 1rem; + } + #buddypress .dir-search form input[type='submit'], + #buddypress .message-search form input[type='submit'], + #buddypress li.groups-members-search form input[type='submit'] { + font-size: 16px; + font-size: 1rem; + } +} + +body.colors-dark #page #buddypress .dir-search form, +body.colors-dark #page #buddypress .groups-members-search form, +body.colors-dark #page #buddypress .message-search form { + background: #333; + border-color: #555; + -webkit-border-radius: 2px; + -moz-border-radius: 2px; + -ms-border-radius: 2px; + border-radius: 2px; + background-clip: padding-box; + padding: 1px; +} + +body.colors-dark #page #buddypress .dir-search input[type="text"], +body.colors-dark #page #buddypress .groups-members-search input[type="text"], +body.colors-dark #page #buddypress .message-search input[type="text"] { + background: none; +} + +body.colors-dark #page #buddypress .dir-search input[type="submit"], +body.colors-dark #page #buddypress .groups-members-search input[type="submit"], +body.colors-dark #page #buddypress .message-search input[type="submit"] { + -webkit-border-radius: 2px; + -moz-border-radius: 2px; + -ms-border-radius: 2px; + border-radius: 2px; + background-clip: padding-box; +} + +body.colors-dark #page .message-search { + margin-top: 0; +} + +/** +*------------------------------------------------------------------------------- +* @section 8.0 - Tables - General +*------------------------------------------------------------------------------- +*/ +#buddypress table { + font-size: 14px; + font-size: 0.875rem; + margin: 20px 0; +} + +#buddypress table tr th { + background: #f7f7f7; + border-color: #eaeaea; + color: #333; +} + +#buddypress table p { + margin-bottom: 0.5em; +} + +@media screen and (min-width: 55em) { + #buddypress table { + font-size: 16px; + font-size: 1rem; + } +} + +/*__ User Account tables __*/ +#buddypress .notifications th, +#buddypress .messages-notices th { + width: 30%; +} + +#buddypress .notifications th.bulk-select-all, +#buddypress .messages-notices th.bulk-select-all { + text-align: center; + width: 10%; +} + +#buddypress .notifications .bulk-select-check, +#buddypress .notifications .thread-star, +#buddypress .messages-notices .bulk-select-check, +#buddypress .messages-notices .thread-star { + text-align: center; +} + +#buddypress .notifications .notification-actions, +#buddypress .notifications td.thread-options, +#buddypress .messages-notices .notification-actions, +#buddypress .messages-notices td.thread-options { + text-align: center; +} + +#buddypress .notifications .notification-actions a, +#buddypress .notifications td.thread-options a, +#buddypress .messages-notices .notification-actions a, +#buddypress .messages-notices td.thread-options a { + display: inline-block; + margin: 0; + padding: 0; +} + +#buddypress .notifications td .button, +#buddypress .messages-notices td .button { + border: 0; + display: block; + padding: 0; + text-align: center; +} + +#buddypress .notifications .actions { + text-align: center; +} + +/** +*------------------------------------------------------------------------------- +* @section 9.0 - Error / Success messages +*------------------------------------------------------------------------------- +*/ +#buddypress div#message p { + font-size: 18px; + font-size: 1.125rem; + font-weight: bold; +} + +#buddypress div#message.info p { + background: #b0e5ff; + border: 1px solid #4ac3ff; + color: #00547d; +} + +#buddypress div#message.updated p { + background: #dee6b2; + border: 1px solid #becc66; + color: #454d19; +} + +#buddypress .bp-avatar-status .warning, +#buddypress .bp-cover-image-status .warning { + background: #7dd4ff; + border: 1px solid #000; + color: #333; + font-size: 16px; + font-size: 1rem; +} + +.delete-group #buddypress div#message.info p { + background: #db7e7e; + border: 1px solid #be3535; + color: #1f0808; +} + +/** +*------------------------------------------------------------------------------- +* @section 10.0 - Ajax Loading, Widgets, General classes +*------------------------------------------------------------------------------- +*/ +#buddypress .acfb-holder li.friend-tab { + background: #7dd4ff; + border: inherit; +} diff --git a/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/twentyseventeen.min.css b/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/twentyseventeen.min.css new file mode 100644 index 000000000..6680a733b --- /dev/null +++ b/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/twentyseventeen.min.css @@ -0,0 +1 @@ +@charset "UTF-8";#buddypress #activity-stream .load-more:focus a,#buddypress #activity-stream .load-more:hover a,#buddypress ul.item-list li .item span.activity,#buddypress ul.item-list li div.action .meta,.bp-user #buddypress #message-thread #message-recipients,.bp-user #buddypress .pag-count{font-style:italic}.buddypress div.clear{display:none}.buddypress ul.item-list h1,.buddypress ul.item-list h2,.buddypress ul.item-list h3,.buddypress ul.item-list h4,.buddypress ul.item-list h5,.buddypress ul.item-list h6{clear:none;padding:0}.buddypress #page a{box-shadow:none;text-decoration:none!important}.buddypress .entry-title{text-align:center}@media screen and (min-width:55em){.buddypress .entry-title{text-align:left}.buddypress.bp-user.page .site-content,.buddypress.groups.group-create .site-content,.buddypress.single-item.groups .site-content,.directory.buddypress.page-one-column .site-content{padding-top:40px}.buddypress.bp-user.page .entry-header,.buddypress.groups.group-create .entry-header,.buddypress.single-item.groups .entry-header,.directory.buddypress.page-one-column .entry-header{margin:10px 0}}@media screen and (min-width:48em){body.buddypress.page.page-two-column #primary .entry-header{width:30%}body.buddypress.page.page-two-column #primary .entry-content{width:68%}body.buddypress:not(.has-sidebar) #primary.content-area,body.buddypress:not(.page-two-column) #primary.content-area{max-width:100%;width:100%}body.buddypress:not(.has-sidebar) #primary.content-area .content-bottom-widgets,body.buddypress:not(.has-sidebar) #primary.content-area .entry-content,body.buddypress:not(.page-two-column) #primary.content-area .content-bottom-widgets,body.buddypress:not(.page-two-column) #primary.content-area .entry-content{margin-left:0;margin-right:0}body.buddypress:not(.has-sidebar) .sidebar,body.buddypress:not(.page-two-column) .sidebar{float:left;margin-left:75%;padding:0;width:25%}}body.colors-dark #buddypress #group-create-tabs.item-list-tabs li.current,body.colors-dark #buddypress #group-create-tabs.item-list-tabs li.selected{border-bottom-color:#222}body.colors-dark #buddypress #group-create-tabs.item-list-tabs li.current a,body.colors-dark #buddypress #group-create-tabs.item-list-tabs li.selected a{color:inherit}body.colors-dark #buddypress div.item-list-tabs ul li.current a,body.colors-dark #buddypress div.item-list-tabs ul li.selected a{background:0 0;color:inherit}body.colors-dark #buddypress #object-nav li:not(.current):focus a,body.colors-dark #buddypress #object-nav li:not(.current):hover a{color:#555}body.colors-dark #buddypress #subnav.item-list-tabs ul{border-bottom:1px solid rgba(234,234,234,.9);margin-bottom:20px}body.colors-dark #buddypress #subnav.item-list-tabs ul li.last{border-top:1px solid rgba(234,234,234,.9)}body.colors-dark #buddypress .item-list div.meta{color:#ddd}body.colors-dark #buddypress #latest-update,body.colors-dark #buddypress .item-list .acomment-meta,body.colors-dark #buddypress .item-list .activity-comments ul,body.colors-dark #buddypress .item-list .activity-header p,body.colors-dark #buddypress .item-list div.item-desc{color:#eee}body.colors-dark #buddypress .item-list .action a,body.colors-dark #buddypress .item-list .activity-meta a{background:#fafafa}body.colors-dark #buddypress .item-list .action a:focus,body.colors-dark #buddypress .item-list .action a:hover,body.colors-dark #buddypress .item-list .activity-meta a:focus,body.colors-dark #buddypress .item-list .activity-meta a:hover{background:#fff}body.colors-dark #buddypress #item-body div#invite-list,body.colors-dark #buddypress #item-body fieldset,body.colors-dark.group-members #buddypress #subnav li{background:0 0}body.colors-dark #buddypress div.pagination *{color:#ddd}body.colors-dark #buddypress #item-body .checkbox label,body.colors-dark #buddypress #item-body .radio label,body.colors-dark #buddypress #item-body table .field-visibility-settings,body.colors-dark #buddypress #item-body table .field-visibility-settings-notoggle,body.colors-dark #buddypress #item-header .user-nicename{color:#eee}body.colors-dark #buddypress #item-body table thead th,body.colors-dark #buddypress #item-body table thead tr,body.colors-dark #buddypress #item-body table tr.alt td{background:0 0;color:#eee}body.colors-dark.group-members #buddypress #subnav .groups-members-search form{margin-bottom:20px;margin-top:0}.directory.colors-dark #buddypress #subnav.item-list-tabs ul{border-bottom:0;border-top:0}.directory.colors-dark #buddypress #subnav.item-list-tabs ul li.last.filter,.directory.colors-dark #buddypress div.activity ul.item-list{border-top:0}body.colors-light #buddypress div.item-list-tabs ul{background-color:#fafafa}body.colors-light #buddypress div#subnav.item-list-tabs ul{background-color:#f7f7f7}body.colors-light #buddypress div#subnav.item-list-tabs ul li.last{background:#fff}body.colors-light #buddypress .item-list .activity-header p{background-color:#f7f7f7;color:#878787}body.colors-light #buddypress .item-list .activity-comments .acomment-meta{color:#737373}body.colors-light #buddypress #item-body .profile h2{background:#878787;color:#fff}body.colors-light #buddypress table tr.alt td{background:#f5f5f5;color:#333}body.colors-light #buddypress div#invite-list{background:#fafafa}#buddypress div.item-list-tabs ul li.selected a{background:inherit;opacity:1}#buddypress div.item-list-tabs ul{border-bottom:1px solid rgba(234,234,234,.9);overflow:hidden;padding:0}#buddypress div.item-list-tabs ul li a span{border-radius:25%}#buddypress #object-nav ul{overflow:hidden}#buddypress #object-nav ul li{float:none}@media screen and (max-width:38.75em){#buddypress #object-nav ul li:not(:last-child){border-bottom:1px solid #eaeaea}#buddypress #object-nav ul li:not(.selected):focus,#buddypress #object-nav ul li:not(.selected):hover{background:#f4f2df}}#buddypress div#subnav.item-list-tabs{margin-top:0}#buddypress div#subnav.item-list-tabs ul{border-bottom:0;margin-top:5px;padding:0}#buddypress div#subnav.item-list-tabs ul li.last{margin-top:0;padding:5px 5px 5px 0;width:100%}#buddypress div#subnav.item-list-tabs ul li.last select,#buddypress div#subnav.item-list-tabs ul li.last select:focus{background:0 0;border:0;outline:0}#buddypress div#subnav.item-list-tabs ul li.last label{display:inline}#buddypress div#subnav.item-list-tabs ul li.last label,#buddypress div#subnav.item-list-tabs ul li.last option,#buddypress div#subnav.item-list-tabs ul li.last select{font-size:14px;font-size:.875rem}#buddypress div#subnav.item-list-tabs ul li.last select{font-style:italic;height:auto}@media screen and (min-width:38.75em){#buddypress #object-nav ul li{float:left}#buddypress div#subnav.item-list-tabs ul li.last{text-align:right}}@media screen and (min-width:55em){body:not(.page-two-column) #buddypress #object-nav{border-right:1px solid #ddd;float:left;margin-right:-1px;width:200px}body:not(.page-two-column) #buddypress #object-nav ul{background:0 0;border-bottom:0;padding:0}body:not(.page-two-column) #buddypress #object-nav ul li{float:none;overflow:hidden}body:not(.page-two-column) #buddypress #object-nav ul li span{background:#fff;border-radius:10%;float:right;margin-right:2px}body:not(.page-two-column) #buddypress #item-body{border-left:1px solid #ddd;overflow:hidden;padding:0 0 0 20px;width:auto}body:not(.page-two-column) #buddypress #item-body #subnav{margin:0 0 0 -20px}body:not(.page-two-column) #buddypress #item-body #subnav ul{margin-top:0}}@media screen and (min-width:48em){#buddypress #group-create-tabs.item-list-tabs ul:after,#buddypress #group-create-tabs.item-list-tabs ul:before{content:" ";display:table}#buddypress #group-create-tabs.item-list-tabs ul:after{clear:both}#buddypress #group-create-tabs.item-list-tabs ul{background:0 0;border:0;border-bottom:1px solid #ddd;overflow:visible;padding-bottom:0}#buddypress #group-create-tabs.item-list-tabs ul li{float:left;width:auto}#buddypress #group-create-tabs.item-list-tabs ul li.current,#buddypress #group-create-tabs.item-list-tabs ul li.selected{border:1px solid #ddd;border-bottom-color:#fff;-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;background-clip:padding-box;margin-bottom:-1px}#buddypress #group-create-tabs.item-list-tabs ul li.current a,#buddypress #group-create-tabs.item-list-tabs ul li.selected a{background:0 0;color:#333;outline:0}#buddypress #subnav ul{border-bottom:0}}#buddypress div.pagination{box-shadow:none;font-weight:400;min-height:0}#buddypress div.pagination:after,#buddypress div.pagination:before{height:0;width:0}#buddypress div.pagination .pag-count{margin-left:0}#buddypress div.pagination .pagination-links{margin-right:0}#buddypress div.pagination .pagination-links a,#buddypress div.pagination .pagination-links span{height:auto;line-height:1;padding:5px}#buddypress div.pagination .pagination-links .next,#buddypress div.pagination .pagination-links .prev{background-color:transparent;color:inherit;overflow:visible;width:auto}#buddypress div.pagination .pagination-links .next:before,#buddypress div.pagination .pagination-links .prev:before{display:none}#buddypress div.pagination .pagination-links .prev{left:auto;position:static}#buddypress div.pagination .pagination-links .next{position:static;right:auto}#buddypress .item-list .activity-header,#buddypress .item-list .activity-meta{font-family:"Libre Franklin","Helvetica Neue",helvetica,arial,sans-serif}#buddypress .action .generic-button a:focus,#buddypress .action .generic-button a:hover,#buddypress .activity-meta .button:focus,#buddypress .activity-meta .button:hover{background:inherit;color:#000}#buddypress ul.item-list li{overflow:hidden!important}#buddypress ul.item-list li .item-avatar{margin-bottom:10px;text-align:center}@media screen and (min-width:38.75em){#buddypress ul.item-list li .item-avatar{margin-bottom:0}}#buddypress ul.item-list li .item-avatar a{border-bottom:0}#buddypress ul.item-list li .item-avatar img.avatar{display:inline-block;float:none;margin-bottom:10px}#buddypress ul.item-list li .item{overflow:hidden}@media screen and (min-width:48em){#buddypress ul.item-list li .item{margin-left:15%}}#buddypress ul.item-list li .item .item-desc{margin-left:0;width:94%}#buddypress ul.item-list li .item .item-title{font-size:18px;font-size:1.125rem;line-height:1.2;text-align:center;width:100%}@media screen and (min-width:30em){#buddypress ul.item-list li .item-avatar img.avatar{display:block;float:left}#buddypress ul.item-list li .item .item-title{text-align:left}}#buddypress ul.item-list li .item .item-title .update{display:block;font-size:13px;font-size:.8125rem;padding:10px 0;text-align:left}@media screen and (min-width:55em){#buddypress ul.item-list li .item .item-title .update{font-size:14px;font-size:.875rem}#buddypress ul.item-list li .action,#buddypress ul.item-list li .item,#buddypress ul.item-list li .item-avatar{float:left}#buddypress ul.item-list li .item{left:5%;margin-left:0;position:relative;width:55%}#buddypress ul.item-list li .item .item-title{font-size:22px;font-size:1.375rem}}#buddypress ul.item-list li div.action{clear:left;float:none;margin-bottom:-20px;margin-left:0;padding:20px 0 5px;position:relative;text-align:left;top:0}@media screen and (min-width:55em){#buddypress ul.item-list li div.action{clear:none;float:right;margin-bottom:0;padding:0}}#buddypress ul.item-list li div.action div{display:inline-block;margin:10px 0;width:100%}#buddypress ul.item-list li div.action div a{display:block;width:100%}@media screen and (min-width:30em){#buddypress ul.item-list li div.action div{margin:0 10px 10px 0;width:auto}}@media screen and (min-width:55em){#buddypress ul.item-list li div.action div{clear:right;float:right;margin:0 0 10px}}#buddypress form#whats-new-form p.activity-greeting{line-height:1.4}@media screen and (max-width:46.25em){#buddypress form#whats-new-form #whats-new-content{clear:left;margin:10px 0 20px;padding:10px 0 0}}#buddypress form#whats-new-form #whats-new-content.active #whats-new-options[style] #whats-new-post-in-box{border:1px solid rgba(190,190,190,.5);float:left;line-height:1.5em;margin-top:12px;padding-left:.2em;width:100%}#buddypress form#whats-new-form #whats-new-content.active #whats-new-options[style] #whats-new-post-in-box select{background:0 0;border:0;float:right;margin:0;min-height:1.5em;padding-left:.4em}@media screen and (min-width:30em){#buddypress form#whats-new-form #whats-new-content.active #whats-new-options[style] #whats-new-post-in-box{width:auto}#buddypress form#whats-new-form #whats-new-content.active #whats-new-options[style] #whats-new-submit{float:right}}#buddypress #item-body form#whats-new-form{margin:40px 0}#buddypress #activity-stream li{padding:25px 0 15px}#buddypress #activity-stream li .activity-avatar{float:none;text-align:center}#buddypress #activity-stream li .activity-avatar a{display:inline-block}#buddypress #activity-stream li .activity-avatar a img.avatar{display:inline;float:none;height:60px;margin-bottom:20px;margin-left:0;width:60px}#buddypress #activity-stream li .activity-content{margin-left:0}#buddypress #activity-stream li .activity-content .activity-header{font-size:14px;font-size:.875rem}#buddypress #activity-stream li .activity-content .activity-header a{color:#0075c4}@media screen and (min-width:48em){#buddypress #activity-stream li .activity-avatar{float:left;margin-right:10px;text-align:left}#buddypress #activity-stream li .activity-avatar a{border-bottom:0}#buddypress #activity-stream li .activity-content{margin:0;overflow:hidden}#buddypress #activity-stream li .activity-content .activity-header{font-size:16px;font-size:1rem}}#buddypress #activity-stream li.mini .activity-avatar a img.avatar{height:30px;margin-left:15px;width:30px}#buddypress #activity-stream li.mini .activity-content .activity-header{font-size:14px;font-size:.875rem}#buddypress #activity-stream .activity-content{margin-top:-12px}#buddypress #activity-stream .activity-content .activity-header{margin-right:0}#buddypress #activity-stream .activity-content .activity-header p{border:1px solid rgba(234,234,234,.6);margin-top:0;padding:0 .2em}#buddypress #activity-stream .activity-content .activity-header img.avatar{box-shadow:none;display:inline-block;margin:0 5px!important;vertical-align:middle}#buddypress #activity-stream .activity-content .activity-meta a{display:block;margin-bottom:5px}@media screen and (min-width:30em){#buddypress #activity-stream .activity-content .activity-meta a{display:inline-block;margin-bottom:0;width:auto}}#buddypress #activity-stream .load-more{background:#f7f7f7;border:1px solid transparent;padding:10px}.activity-permalink #buddypress #activity-stream li.activity-item,.activity-permalink #buddypress #activity-stream li.mini .activity-header p{padding:20px}#buddypress #activity-stream .load-more:focus,#buddypress #activity-stream .load-more:hover{background:#f4f4f4;border:1px solid rgba(159,209,226,.3)}#buddypress #activity-stream .load-more a{display:block}.activity-permalink #buddypress #activity-stream li.mini .activity-header{font-size:16px;font-size:1rem;margin-bottom:40px}@media screen and (min-width:48em){.activity-permalink #buddypress #activity-stream li.mini .activity-header{font-size:20px;font-size:1.25rem}}#buddypress #activity-stream .activity-comments{border-left:1px solid #eaeaea;margin:20px 0}@media screen and (min-width:30em){#buddypress #activity-stream .activity-comments{margin-left:20px}}#buddypress #activity-stream .activity-comments ul{margin:15px 0 0 2px}#buddypress #activity-stream .activity-comments ul li{border-top:1px solid #bebebe}#buddypress #activity-stream .activity-comments ul a{color:#0077c7}#buddypress #activity-stream .activity-comments .acomment-meta{border-bottom:1px solid #eaeaea}#buddypress #activity-stream .activity-comments .ac-form .ac-reply-cancel,#buddypress #activity-stream .activity-comments .ac-form input[type=submit]{color:rgba(51,51,51,.8);display:inline-block;font-family:inherit;font-size:12px;font-size:.75rem;font-weight:400;line-height:1.2;padding:4px 10px;text-transform:lowercase;width:100px}#buddypress #activity-stream .activity-comments .ac-form .ac-reply-cancel{border:1px solid rgba(190,190,190,.7);text-align:center}#buddypress #activity-stream .activity-comments .ac-form .ac-reply-cancel:focus,#buddypress #activity-stream .activity-comments .ac-form .ac-reply-cancel:hover{background:#ededed}@media screen and (min-width:55em){#buddypress #members-list li .item,#buddypress #members-list li .item-avatar{float:left}#buddypress #members-list li .action{float:right}#buddypress #members-list li.is-current-user .item{float:none;left:0;padding-left:5%;width:auto}}#buddypress #signup_form.standard-form #basic-details-section,#buddypress #signup_form.standard-form #blog-details-section,#buddypress #signup_form.standard-form #profile-details-section{float:none;width:100%}@media screen and (min-width:38.75em){#buddypress #signup_form.standard-form #basic-details-section,#buddypress #signup_form.standard-form #blog-details-section,#buddypress #signup_form.standard-form #profile-details-section{width:48%}}@media screen and (min-width:30em){#buddypress #signup_form.standard-form #profile-details-section{float:right}#buddypress #signup_form.standard-form #basic-details-section{float:left}}.bp-user #buddypress #item-header-cover-image .user-nicename,.single-item.groups #buddypress #item-header-cover-image .user-nicename{color:#333;text-shadow:none}@media screen and (min-width:48em){.bp-user.page-two-column #buddypress #cover-image-container #item-header-cover-image #item-header-content{margin-left:140px;margin-top:-100px}.single-item.groups.page-two-column #buddypress #cover-image-container #item-header-cover-image #item-header-content{margin-left:10px}.bp-user #buddypress #item-header-cover-image .user-nicename,.single-item.groups #buddypress #item-header-cover-image .user-nicename{color:#fff;text-shadow:0 0 3px rgba(0,0,0,.8)}}.bp-user #buddypress #item-header-content #item-meta,.single-item.groups #buddypress #item-header-content #item-meta{font-size:14px;font-size:.875rem;text-align:left}.bp-user #buddypress #item-header-content #item-meta p,.single-item.groups #buddypress #item-header-content #item-meta p{margin-bottom:.5em}@media screen and (max-width:46.25em){.bp-user main header.entry-header,.single-item.groups main header.entry-header{padding-bottom:1rem}.bp-user #buddypress #item-header .generic-button,.single-item.groups #buddypress #item-header .generic-button{float:none;margin:1.5em 0 0}}@media screen and (max-width:38.75em){.bp-user #item-header-content,.bp-user h1,.single-item.groups #item-header-content,.single-item.groups h1{text-align:center}.bp-user #buddypress h1,.single-item.groups #buddypress h1{margin-bottom:0}.bp-user #buddypress #item-header-avatar img.avatar,.single-item.groups #buddypress #item-header-avatar img.avatar{margin-right:0}.bp-user #buddypress #item-header-content,.single-item.groups #buddypress #item-header-content{width:100%}.single-item.groups #buddypress div#item-header{display:flex;flex-direction:column}.single-item.groups #buddypress div#item-header #item-header-avatar{order:1;text-align:center}.single-item.groups #buddypress div#item-header #item-header-avatar a img{display:inline-block;float:none}.single-item.groups #buddypress div#item-header #item-header-content{order:2}.single-item.groups #buddypress div#item-header #item-actions{order:3}.single-item.groups #buddypress div#item-header #item-actions h2{border-bottom:1px solid #eaeaea;text-align:center}}@media screen and (max-width:46.25em){.single-item.groups #buddypress #item-header #item-meta{margin-bottom:20px}}.single-item.groups #buddypress div#item-header{padding-bottom:40px}.single-item.groups #buddypress div#item-header div#item-actions{margin:0;width:100%}@media screen and (min-width:38.75em){.single-item.groups #buddypress div#item-header div#item-actions{border-left:1px solid #eaeaea;clear:none;float:right;padding-left:.2em;width:30%}}.single-item.groups #buddypress div#item-header div#item-actions ul{margin-top:0;padding-left:0}.single-item.groups #buddypress div#item-header div#item-actions h2{font-size:14px;font-size:.875rem;padding:.2em}@media screen and (min-width:48em){.single-item.groups #buddypress div#item-header div#item-actions h2{font-size:16px;font-size:1rem}.single-item.groups #buddypress div#item-header #item-header-avatar,.single-item.groups #buddypress div#item-header #item-header-content{float:left}.single-item.groups #buddypress div#item-header #item-header-avatar{width:21%}.single-item.groups #buddypress div#item-header #item-header-content{margin-left:4%;width:40%}.single-item.groups #buddypress div#item-header div#item-actions{float:right;width:28%}}.bp-user #buddypress #item-header{padding:20px 0}.bp-user #buddypress #item-header #item-header-avatar{text-align:center;width:100%}.bp-user #buddypress #item-header #item-header-avatar a,.bp-user #buddypress #item-header #item-header-avatar img.avatar{display:inline-block;float:none}@media screen and (min-width:48em){.bp-user #buddypress #item-header #item-header-avatar{float:left;width:20%}.bp-user #buddypress #item-header #item-header-avatar a{float:left}.bp-user #buddypress #item-header #item-header-content{float:right;margin-right:5%;width:69%}}.groups.single-item.members #buddypress #subnav.item-list-tabs ul{background:0 0;border-top:0}.groups #group-settings-form h3{background:#555;color:#fff;padding:.2em}.groups.edit-details #group-settings-form label{margin-bottom:0;padding:.2em;width:80%}.groups.edit-details #group-settings-form textarea+p label{background:0 0;color:inherit;font-size:14px;font-size:.875rem;width:auto}.groups.edit-details #group-settings-form textarea{height:auto;min-height:100px;overflow:auto}.groups.group-settings #group-settings-form div.radio label{border:1px solid #eaeaea;padding:.2em}.groups.group-settings #group-settings-form div.radio label ul{color:rgba(51,51,51,.6);font-size:14px;font-size:.875rem}.groups.group-avatar form>p{margin-top:20px}.groups.manage-members #group-settings-form .item-list li{border-bottom:1px solid #eaeaea}.bp-user #buddypress .profile .profile-fields tr:last-child,.groups.manage-members #group-settings-form .item-list li h5>a,.groups.manage-members #group-settings-form .item-list li img>a{border-bottom:0}.groups.manage-members #group-settings-form .item-list li h5,.groups.manage-members #group-settings-form .item-list li img{float:left}.groups.manage-members #group-settings-form .item-list li span.small{clear:left;display:block;float:none;margin-top:10px}.groups.manage-members #group-settings-form .item-list li span.small a{display:inline-block;margin:5px 0;width:100%}@media screen and (min-width:38.75em){.groups.manage-members #group-settings-form .item-list li span.small a{width:auto}}.groups.manage-members #group-settings-form .item-list li h5{margin:0}.groups.group-members #subnav li{width:100%}.groups.group-members #subnav li #search-members-form{float:right;margin:5px 0 0}@media screen and (max-width:38.75em){.groups.group-members #subnav li{background:#fff;padding:20px 0}.groups.group-members #subnav li #search-members-form{margin:0;width:100%}.groups.group-members #subnav li #search-members-form label input[type=text]{width:100%}}.bp-user .entry-title{margin-bottom:.5em}.bp-user #buddypress table th{font-size:14px;font-size:.875rem}.bp-user #buddypress table td{font-size:12px;font-size:.75rem}.bp-user #buddypress table a{color:#0074c2}@media screen and (min-width:55em){.bp-user #buddypress table th{font-size:16px;font-size:1rem}.bp-user #buddypress table td{font-size:14px;font-size:.875rem}}@media screen and (min-width:67em){.bp-user #buddypress table th{font-size:18px;font-size:1.125rem}.bp-user #buddypress table td{font-size:16px;font-size:1rem}}.bp-user #buddypress .messages-options-nav,.bp-user #buddypress .notifications-options-nav{float:left;width:100%}@media screen and (min-width:38.75em){.bp-user #buddypress .messages-options-nav,.bp-user #buddypress .notifications-options-nav{width:300px}}.bp-user #buddypress .messages-options-nav select,.bp-user #buddypress .notifications-options-nav select{height:auto;float:left;margin-right:1%;width:59%}.bp-user #buddypress .messages-options-nav input,.bp-user #buddypress .messages-options-nav select,.bp-user #buddypress .notifications-options-nav input,.bp-user #buddypress .notifications-options-nav select{font-size:14px;font-size:.875rem;outline:0;padding:0}.bp-user #buddypress .messages-options-nav input,.bp-user #buddypress .notifications-options-nav input{float:right;font-family:inherit;line-height:20px;width:40%}.bp-user #buddypress .messages-options-nav input[disabled=disabled]:focus,.bp-user #buddypress .messages-options-nav input[disabled=disabled]:hover,.bp-user #buddypress .notifications-options-nav input[disabled=disabled]:focus,.bp-user #buddypress .notifications-options-nav input[disabled=disabled]:hover{background:0 0}.bp-user #buddypress .profile h2{margin:40px 0 10px;padding:.1em 0 .1em .4em}.bp-user #buddypress .profile table{margin-top:0}.bp-user #buddypress .profile .profile-fields tr.alt td{color:#333}.bp-user #buddypress .profile #profile-edit-form .button-nav:after,.bp-user #buddypress .profile #profile-edit-form .button-nav:before{content:" ";display:table}.bp-user #buddypress .profile #profile-edit-form .button-nav:after{clear:both}.bp-user #buddypress .profile #profile-edit-form ul.button-nav{border-bottom:1px solid #eaeaea;margin-left:0}.bp-user #buddypress .profile #profile-edit-form ul.button-nav li{float:left;margin-bottom:0}.bp-user #buddypress .profile #profile-edit-form ul.button-nav li.current{border:1px solid #eaeaea;border-bottom-color:#fff;margin-bottom:-1px}.bp-user #buddypress .profile #profile-edit-form ul.button-nav a{background:0 0;border:0;font-size:18px;font-size:1.125rem}.bp-user #buddypress .profile #profile-edit-form .field-visibility-settings,.bp-user #buddypress .profile #profile-edit-form .field-visibility-settings-notoggle,.bp-user #buddypress .profile #profile-edit-form .field-visibility-settings-toggle{font-size:14px;font-size:.875rem;margin-top:10px}.bp-user #buddypress .profile #profile-edit-form .field-visibility-settings-close,.bp-user #buddypress .profile #profile-edit-form .visibility-toggle-link{background:#555;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;border-radius:3px;background-clip:padding-box;color:#fff;padding:.2em .5em}.bp-user #buddypress .profile .bp-avatar #bp-delete-avatar a{font-size:inherit}@media screen and (min-width:77.5em){.bp-user #buddypress #groups-list li .item{left:5%;width:50%}}.bp-user #buddypress #message-thread a{border-bottom:0}.bp-user #buddypress #message-thread #message-subject{background:#6f6f6f;color:#fff;padding:.3em 0 .3em .2em}.bp-user #buddypress #message-thread #message-recipients a.confirm{border:1px solid #eaeaea;font-style:normal}.bp-user #buddypress #message-thread .message-metadata{overflow:hidden}.bp-user #buddypress #message-thread .message-metadata img.avatar{float:none}@media screen and (min-width:48em){.bp-user #buddypress #message-thread .message-metadata img.avatar{float:left}}.bp-user #buddypress #message-thread .message-metadata .message-star-actions{float:right;margin-right:5px;position:static}.bp-user #buddypress #message-thread .message-content{background:#f7f7f7;border:1px solid #eaeaea;margin:10px 0 0;padding:.3em}.bp-user #buddypress #message-thread #send-reply .message-content{background:#fff;border:0}.bp-user #buddypress #message-thread .alt{background:#fff}.bp-user #buddypress #message-threads thead tr{background:0 0;border-bottom:1px solid #bebebe}.bp-user #buddypress #message-threads thead tr th{background:#555}.bp-user #buddypress #message-threads tr{border-bottom:5px solid #878787}.bp-user #buddypress #message-threads tr td{display:inline-block;float:left}.bp-user #buddypress #message-threads tr td.thread-options,.bp-user #buddypress #message-threads tr td.thread-star{border-bottom-color:#bebebe;border-bottom-width:1px;height:2.4em;padding-bottom:.2em;padding-top:.2em}@media screen and (max-width:46.25em){.bp-user #buddypress #message-threads tr td.thread-options,.bp-user #buddypress #message-threads tr td.thread-star{padding-top:0}}.bp-user #buddypress #message-threads tr td.bulk-select-check,.bp-user #buddypress #message-threads tr td.thread-from,.bp-user #buddypress #message-threads tr td.thread-info,.bp-user #buddypress #message-threads tr td.thread-options,.bp-user #buddypress #message-threads tr td.thread-star{border-top:0}.bp-user #buddypress #message-threads tr td.thread-star{vertical-align:middle}.bp-user #buddypress #message-threads tr td.thread-star .message-action-star{line-height:1.2}.bp-user #buddypress #message-threads tr td.bulk-select-check,.bp-user #buddypress #message-threads tr td.thread-from{height:3em}.bp-user #buddypress #message-threads tr td.thread-from,.bp-user #buddypress #message-threads tr td.thread-options{border-left:0!important;width:-webkit-calc(100% - 30px);width:-moz-calc(100% - 30px);width:calc(100% - 30px);margin-left:0}.bp-user #buddypress #message-threads tr td.thread-info{padding-left:41px;width:100%}.bp-user #buddypress #message-threads tr td.thread-info a::after{content:" ‗ " attr(title);font-size:12px;font-size:.75rem}.bp-user #buddypress #message-threads tr td.thread-options{text-align:right}.bp-user #buddypress #message-threads tr td.thread-options a{font-size:12px;font-size:.75rem;line-height:2.2}.bp-user #buddypress #message-threads tr span.from{display:none}.bp-user #buddypress #message-threads tr span.activity{display:block;float:right;line-height:2}#buddypress #signup_form.standard-form div.submit,#main #buddypress .standard-form li{float:none}@media screen and (max-width:38.75em){.bp-user #buddypress #message-threads tr td.bulk-select-check,.bp-user #buddypress #message-threads tr td.thread-from{height:5.2em}.bp-user #buddypress #message-threads tr span.activity{clear:both;font-size:11px;font-size:.6875rem;width:100%}}.bp-user #buddypress #message-threads tr.unread td{background:0 0;border-color:#bebebe}.bp-user #buddypress #message-threads th{display:none}.bp-user #buddypress #message-threads th.bulk-select-all{border-bottom:0;display:inline-block;text-align:left}.bp-user #buddypress #message-threads td.bulk-select-check,.bp-user #buddypress #message-threads td.thread-star,.bp-user #buddypress #message-threads th.bulk-select-all{border-right:0;width:30px}.bp-user #buddypress .acfb-holder{list-style:none}.bp-user #buddypress .acfb-holder li{margin-left:0}.bp-user #buddypress .acfb-holder li.friend-tab{background:#e3f6ff;border:inherit;margin-right:0;padding:.5em}.bp-user #buddypress .acfb-holder li.friend-tab span.p{padding-left:10px}.bp-user #buddypress .acfb-holder li.friend-tab span.p:focus,.bp-user #buddypress .acfb-holder li.friend-tab span.p:hover{color:#c82b2b;cursor:pointer}.bp-user #buddypress .acfb-holder li.friend-tab a{border-bottom:0;text-decoration:none}.bp-user #buddypress .acfb-holder li.friend-tab a img{display:inline;height:20px;vertical-align:middle;width:20px!important}.bp-user #buddypress #message-threads.sitewide-notices td,.bp-user #buddypress table.profile-settings{width:100%}.bp-user #buddypress #message-threads.sitewide-notices td strong{background:#6f6f6f;color:#fff;display:block;margin-bottom:.4em;padding-left:.2em}.bp-user #buddypress #message-threads.sitewide-notices td a{display:inline-block}.bp-user #buddypress #message-threads.sitewide-notices td:first-child{display:none}.bp-user #buddypress #message-threads.sitewide-notices td:nth-child(2) strong{margin:-8px -8px 8px}.bp-user #buddypress #message-threads.sitewide-notices td:first-child+td+td{border-bottom:0}.bp-user #buddypress #message-threads.sitewide-notices td:first-child+td+td span{line-height:1}.bp-user #buddypress #message-threads.sitewide-notices td:last-child{border-bottom-color:#b7b7b7;line-height:1;text-align:right}.bp-user #buddypress #message-threads.sitewide-notices td:last-child a:last-child{line-height:0;margin-left:.7em;text-indent:-999em}.bp-user #buddypress #message-threads.sitewide-notices td:last-child a:last-child::after{content:attr(title);display:block;line-height:initial;text-indent:0}.bp-user .ac_results{background:#eee;padding-left:10px}.bp-user .ac_results ul{margin:0}.bp-user .ac_results li{margin:10px 0}.bp-user .ac_results li:focus,.bp-user .ac_results li:hover{cursor:pointer}.bp-user #buddypress #settings-form>p{font-size:20px;font-size:1.25rem;margin:20px 0 10px}.bp-user #buddypress table.notification-settings td.no,.bp-user #buddypress table.notification-settings td.yes{vertical-align:middle}.bp-user #buddypress table.profile-settings td.field-name,.bp-user #buddypress table.profile-settings th.field-group-name{width:50%}@media screen and (min-width:48em){.bp-user #buddypress table.profile-settings td.field-name,.bp-user #buddypress table.profile-settings th.field-group-name{width:70%}}.bp-user #buddypress table.profile-settings td.field-visibility,.bp-user #buddypress table.profile-settings th.title{width:30%}#main #buddypress .standard-form input[type=password],#main #buddypress .standard-form input[type=text],#main #buddypress .standard-form input[type=email],#main #buddypress .standard-form textarea,.bp-user #buddypress table.profile-settings td.field-visibility select{width:100%}#buddypress div.activity-comments form .ac-textarea{background:#f7f7f7;border:1px solid rgba(190,190,190,.5)}#buddypress div.activity-comments form .ac-textarea textarea{background:0 0;border:0}#buddypress select{height:auto}#buddypress .standard-form button,#buddypress .standard-form input[type=email],#buddypress .standard-form input[type=password],#buddypress .standard-form input[type=text],#buddypress .standard-form select,#buddypress .standard-form textarea{border-color:rgba(190,190,190,.5);border-width:1px}#buddypress .standard-form select{color:#737373}#buddypress #signup_form.standard-form div.submit input{margin-right:0}#buddypress div.dir-search,#buddypress div.message-search,#buddypress li.groups-members-search{float:none;margin:10px 0}#buddypress div.dir-search,body.colors-dark #page .message-search{margin-top:0}#buddypress div.dir-search form,#buddypress div.message-search form,#buddypress li.groups-members-search form{border:1px solid rgba(190,190,190,.6);-webkit-border-radius:2px;-moz-border-radius:2px;-ms-border-radius:2px;border-radius:2px;background-clip:padding-box;overflow:hidden}#buddypress div.dir-search form label,#buddypress div.message-search form label,#buddypress li.groups-members-search form label{float:left;margin:0;width:70%}#buddypress div.dir-search form input[type=submit],#buddypress div.dir-search form input[type=text],#buddypress div.message-search form input[type=submit],#buddypress div.message-search form input[type=text],#buddypress li.groups-members-search form input[type=submit],#buddypress li.groups-members-search form input[type=text]{border:0;font-size:14px;font-size:.875rem;line-height:inherit}#buddypress div.dir-search form input[type=text],#buddypress div.message-search form input[type=text],#buddypress li.groups-members-search form input[type=text]{float:left;margin:0;width:100%;border-right:1px solid rgba(190,190,190,.6);font-weight:400;padding:.2em 0 .2em .2em}#buddypress div.dir-search form input[type=submit],#buddypress div.message-search form input[type=submit],#buddypress li.groups-members-search form input[type=submit]{-webkit-border-radius:none;-moz-border-radius:none;-ms-border-radius:none;border-radius:none;float:right;font-weight:400;padding:.2em 1em;text-align:center;text-transform:none;width:30%}#buddypress #search-groups-form input[type=text],#buddypress #search-message-form input[type=text],#buddypress .dir-search #search-members-form input[type=text]{float:left;margin:0;width:70%}@media screen and (min-width:30em){#buddypress div.dir-search,#buddypress div.message-search,#buddypress li.groups-members-search{float:right;margin-bottom:5px!important}}@media screen and (min-width:67em){#buddypress .dir-search form input[type=submit],#buddypress .dir-search form input[type=text],#buddypress .message-search form input[type=submit],#buddypress .message-search form input[type=text],#buddypress li.groups-members-search form input[type=submit],#buddypress li.groups-members-search form input[type=text]{font-size:16px;font-size:1rem}}body.colors-dark #page #buddypress .dir-search form,body.colors-dark #page #buddypress .groups-members-search form,body.colors-dark #page #buddypress .message-search form{background:#333;border-color:#555;-webkit-border-radius:2px;-moz-border-radius:2px;-ms-border-radius:2px;border-radius:2px;background-clip:padding-box;padding:1px}body.colors-dark #page #buddypress .dir-search input[type=text],body.colors-dark #page #buddypress .groups-members-search input[type=text],body.colors-dark #page #buddypress .message-search input[type=text]{background:0 0}body.colors-dark #page #buddypress .dir-search input[type=submit],body.colors-dark #page #buddypress .groups-members-search input[type=submit],body.colors-dark #page #buddypress .message-search input[type=submit]{-webkit-border-radius:2px;-moz-border-radius:2px;-ms-border-radius:2px;border-radius:2px;background-clip:padding-box}#buddypress table{font-size:14px;font-size:.875rem;margin:20px 0}#buddypress table tr th{background:#f7f7f7;border-color:#eaeaea;color:#333}#buddypress table p{margin-bottom:.5em}@media screen and (min-width:55em){#buddypress table{font-size:16px;font-size:1rem}}#buddypress .messages-notices th,#buddypress .notifications th{width:30%}#buddypress .messages-notices th.bulk-select-all,#buddypress .notifications th.bulk-select-all{text-align:center;width:10%}#buddypress .messages-notices .bulk-select-check,#buddypress .messages-notices .notification-actions,#buddypress .messages-notices .thread-star,#buddypress .messages-notices td.thread-options,#buddypress .notifications .bulk-select-check,#buddypress .notifications .notification-actions,#buddypress .notifications .thread-star,#buddypress .notifications td.thread-options{text-align:center}#buddypress .messages-notices .notification-actions a,#buddypress .messages-notices td.thread-options a,#buddypress .notifications .notification-actions a,#buddypress .notifications td.thread-options a{display:inline-block;margin:0;padding:0}#buddypress .messages-notices td .button,#buddypress .notifications td .button{border:0;display:block;padding:0;text-align:center}#buddypress .notifications .actions{text-align:center}#buddypress div#message p{font-size:18px;font-size:1.125rem;font-weight:700}#buddypress div#message.info p{background:#b0e5ff;border:1px solid #4ac3ff;color:#00547d}#buddypress div#message.updated p{background:#dee6b2;border:1px solid #becc66;color:#454d19}#buddypress .bp-avatar-status .warning,#buddypress .bp-cover-image-status .warning{background:#7dd4ff;border:1px solid #000;color:#333;font-size:16px;font-size:1rem}.delete-group #buddypress div#message.info p{background:#db7e7e;border:1px solid #be3535;color:#1f0808}#buddypress .acfb-holder li.friend-tab{background:#7dd4ff;border:inherit} \ No newline at end of file diff --git a/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/twentyseventeen.scss b/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/twentyseventeen.scss new file mode 100644 index 000000000..bc3bfa3a3 --- /dev/null +++ b/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/twentyseventeen.scss @@ -0,0 +1,3036 @@ + +// Stylesheet Guidence Notes +// Table of content represents a guide to sections of the sheet. +// Note that not all sections may be described in the body of the +// rulesets only those that require styles for a given theme. +// Sub sections might not exist but can be added as required +// as per BP Lists - 'activity' section. + +// We follow the dictats of the parent theme in respect of media queries, +// font sizing etc. Media queries are used in a modular sense (OOCSS) +// rather than described as blocks to the end of the sheet, this aids ease +// of managing media queries, scalability & flexibility. + +// 2017 Media Queries / Breakpoints. +$small-up-2017: "min-width: 30em"; +$med-small-up-2017: "min-width: 48em"; +$medium-up-2017: "min-width: 55em"; +$large-up-2017: "min-width: 67em"; +$x-large-up-2017: "min-width: 79em"; + + +// In addition BP will use the em breakpoints as referenced below to provide +// a series of finer breakpoints for max widths, to allow fine adjustments; +// For main structural elements we use the themes values, only using bp breakpoints +// to manage granular elements in loops etc. + +$x-small-only-bp: "max-width: 22em"; // for xtra small mobile only +$small-only-bp: "max-width: 38.75em"; // small only +$small-up-bp: "min-width: 38.75em"; // small only +$med-only-bp: "max-width: 46.25em"; // med small only + +// Mixins and Variables + +// simplify remembering/writing media queries +// written as: +// @include medium-up { +// body {property: value;} +// } +// + +@mixin x-small-only { + @media screen and ($x-small-only-bp){ + @content; + } +} + +@mixin small-only { + @media screen and ($small-only-bp){ + @content; + } +} + +@mixin medium-only-bp { + @media screen and ($med-only-bp){ + @content; + } +} + +@mixin small-up-bp { + @media screen and ($small-up-bp){ + @content; + } +} + +@mixin small-up { + @media screen and ($small-up-2017){ + @content; + } +} + +@mixin med-small-up { + @media screen and ($med-small-up-2017) { + @content; + } +} + +@mixin medium-up { + @media screen and ($medium-up-2017) { + @content; + } +} + +@mixin large-up { + @media screen and ($large-up-2017) { + @content; + } +} + +@mixin x-large-up { + @media screen and ($x-large-up-2017) { + @content; + } +} + +// Common spacing values +$spacing-val-lg: 40px; +$spacing-val-md: 20px; +$spacing-val-sm: 10px; +$spacing-val-xs: 5px; + +// A simple mixin to handle font-sizing +// 2017 uses a basic pixel font size approach, we'll stick with rem/px +@mixin font-size($font-size: 16) { + $rem-font-value: ($font-size / 16); + font-size: ($font-size * 1px); + font-size: $rem-font-value + rem; +} + +// To allow mixins to pass VendorPrefix scss-lint tests we disable lint-test +// for specific blocks / rulesets +// until such time as exemption lists can be built for the scss-lint.yml? +// Any vendor prefix properties / mixins need to be in this block + +// scss-lint:disable VendorPrefix + +// Border border-radius mixins +@mixin border-radius($radius) { + -webkit-border-radius: $radius; + -moz-border-radius: $radius; + -ms-border-radius: $radius; + border-radius: $radius; + background-clip: padding-box; +} + +@mixin border-top-radius($radius) { + -webkit-border-top-right-radius: $radius; + border-top-right-radius: $radius; + -webkit-border-top-left-radius: $radius; + border-top-left-radius: $radius; + background-clip: padding-box; +} + +@mixin border-right-radius($radius) { + -webkit-border-bottom-right-radius: $radius; + border-bottom-right-radius: $radius; + -webkit-border-top-right-radius: $radius; + border-top-right-radius: $radius; + background-clip: padding-box; +} + +@mixin border-bottom-radius($radius) { + -webkit-border-bottom-right-radius: $radius; + border-bottom-right-radius: $radius; + -webkit-border-bottom-left-radius: $radius; + border-bottom-left-radius: $radius; + background-clip: padding-box; +} + +@mixin border-left-radius($radius) { + -webkit-border-bottom-left-radius: $radius; + border-bottom-left-radius: $radius; + -webkit-border-top-left-radius: $radius; + border-top-left-radius: $radius; + background-clip: padding-box; +} + +@mixin border-radius-none() { + -webkit-border-radius: none; + -moz-border-radius: none; + -ms-border-radius: none; + border-radius: none; +} + +// Box sizing +@mixin box-model($box-model) { + -webkit-box-sizing: $box-model; + -moz-box-sizing: $box-model; + box-sizing: $box-model; +} + +// Calc +@mixin calc($property, $expression) { + #{$property}: -webkit-calc(#{$expression}); + #{$property}: -moz-calc(#{$expression}); + #{$property}: calc(#{$expression}); +} + +// Re-enable the VendorPrefix lint test +// scss-lint:enable VendorPrefix + +// BP message boxes +@mixin message-box($background, $text-color: null) { + + @if $text-color { + // if a param was passed through + $text-color: $text-color; + } @else { + $text-color: darken($background, 50%); + } + + background: lighten($background, 10%); + border: 1px solid darken($background, 10%); + color: $text-color; +} + +// 2017 font family +@mixin default-font-sans() { + font-family: "Libre Franklin", "Helvetica Neue", helvetica, arial, sans-serif; +} + +// Variables: color definitions + +$dark-grey: #555; +$medium-grey: #878787; +$light-grey: #dcdcdc; +$x-light-grey: #f7f7f7; +$white: #fff; + +$body-text: #333; +$bp-light-text: $medium-grey; +$bp-xlight-text: #eee; +$content-background: #fff; +$off-white: #fafafa; +$cream-background: #f7f5e7; +$light-background: $x-light-grey; +$medium-background: $medium-grey; +$dark-background: $dark-grey; +$border-color: #bebebe; +$border-light: #eaeaea; // BP dividers +$border-med: #ddd; +$background-hover: #db572f; // 2017 link background hover +$bp-button-hover: #ededed; // this is the default BP button hover background +$notice-error: #c85a6e; +$notice-warning: #d05656; +$notice-info: #7dd4ff; +$notice-update: #ced98c; +$stripe-odd: #ebf0ff; +$stripe-even: #dbe5ff; +$unread: $x-light-grey; +$link-action: #c82b2b; +/*-------------------------------------------------------------- + +This is the BuddyPress companion stylesheet for +the WordPress twentyseventeen theme. + +This sheet supports the primary BuddyPress styles in buddypress.css + +If you are running as a child theme of twentyseventeen this stylesheet will be +loaded by default. If you want to modify the styles the normal BP Theme Compat +hierarchy works and you can copy the file to buddypress/css/ or community/css/ +in your child themes root & either start over or modify the rulesets. + +If you do not require the styles you can dequeue them from the themes functions file. + +Please see this codex article for more information: +http://codex.buddypress.org/themes/buddypress-companion-stylesheets/ + +---------------------------------------------------------------- +>>> TABLE OF CONTENTS: +---------------------------------------------------------------- +1.0 Theme Structural Elements & overrides +2.0 - Navigation - General + 2.1 - Navs - Object Nav / Sub Nav (item-list-tabs) + 2.2 - Pagination +3.0 - Images +4.0 - BP Lists / Loops Generic + 4.1 - Activity Loop + 4.1.1 Whats New Activity + 4.1.2 - Activity Listing + 4.1.3 - Activity Comments + 4.2 - Members Loop + 4.3 - Groups Loop + 4.4 - Blogs Loop +5.0 - Directories - Members, Groups, Blogs, Register, activation +6.0 - Single Item screens: User Account & Single Group Screens + 6.1 - Item Headers: Global + 6.1.1 - item-header: Groups + 6.1.2 - item-header: User Accounts + 6.2 - Item Body: Global + 6.2.1 - item-body: Groups + 6.2.1.1 - Management settings screens + 6.2.1.2 - Group members list + 6.2.2 - item-body: User Accounts + 6.2.2.1 - classes, pag, filters + 6.2.2.2 - Extended Profiles + 6.2.2.3 - Groups + 6.2.2.4 - friends + 6.2.2.5 - Private Messaging Threads + 6.2.2.6 - Settings +7.0 - Forms - General +8.0 - Tables - General +9.0 - Error / Success Messages +10.0 - Ajax Loading, Widgets, General classes +--------------------------------------------------------------*/ + +/** +*------------------------------------------------------------------------------- +* @section 1.0 - Theme - Structural Elements. overrides, Globals +*------------------------------------------------------------------------------- +*/ + +.buddypress { + // Remove any empty clearing elements, CSS provides clearing. + div.clear {display: none;} + + // deal with global clearing property set on heading elements + // - for the moment we'll just specify this on lists ul only + + ul.item-list { + h1, + h2, + h3, + h4, + h5, + h6 { + clear: none; + padding: 0; + } + } + + // Ensure no text decoration or box shadow causing underlined effect. + #page a { + box-shadow: none; + text-decoration: none !important; + } + + .entry-title { + text-align: center; + + @include medium-up { + text-align: left; + } + } + +} // close .buddypress + +// reduce the overlarge entry title margins +@include medium-up { + + .buddypress.bp-user.page, + .buddypress.single-item.groups, + .buddypress.groups.group-create, + .directory.buddypress.page-one-column { + + .site-content { + padding-top: $spacing-val-lg; + } + + .entry-header { + margin: $spacing-val-sm 0; + } + } +} + +// Open up the content width areas for BP screens to allow max widths. +// This takes into account the ability to columnize pages in 2017. +// Only effect changes based on breakpoints. + +@include med-small-up { + + body.buddypress.page.page-two-column { + + #primary { + + .entry-header { + width: 30%; + } + + .entry-content { + width: 68%; + } + } + } + + body.buddypress:not(.has-sidebar), + body.buddypress:not(.page-two-column) { + + #primary.content-area { + max-width: 100%; + width: 100%; + + .entry-content, + .content-bottom-widgets { + margin-left: 0; + margin-right: 0; + } + } + + .sidebar { + float: left; + margin-left: 75%; + padding: 0; + width: 25%; + } + + } // body.buddypress +} + +// 2017 allows for selecting two distinct color schemes. +// Our companion styles respect themes colors & inherit or avoid +// setting backgrounds/colors so selecting the dark scheme generally +// allows the theme to reset the BP text/headings etc to white +// In places we do set backgrounds, Navs, search forms etc these +// are added here under the themes body class to enable changing + +// Some element colors are inherited from BP original sheet so need to +// to be reset under the dark scheme, where set in this sheet we simply state them +// only for the light scheme, additionally elements such as BP form styles +// need styles removing & are handled later in 'Forms' section +body.colors-dark { + + #buddypress { + + //tabs border bottom color needs to match dark background + #group-create-tabs.item-list-tabs { + + li.selected, + li.current { + border-bottom-color: #222; + + a { + color: inherit; + } + } + } + + div.item-list-tabs { + + ul { + + li.selected, + li.current { + + a { + background: none; + color: inherit; + } + } + } + } + + #object-nav { + + li:not(.current):focus, + li:not(.current):hover { + + a { + color: #555; + } + } + } + + // With the dark scheme the subnav links lose definition as + // nav menu links, add a border top to clarify the li.last element seperated from links. + #subnav.item-list-tabs { + + ul { + border-bottom: 1px solid rgba($border-light, 0.9); + margin-bottom: $spacing-val-md; + + li.last { + border-top: 1px solid rgba($border-light, 0.9); + } + } + } + + // lists text: descr, meta, etc + .item-list { + + div.meta { + color: #ddd; + } + + div.item-desc, + .activity-header p, + .activity-comments ul, + .acomment-meta { + color: $bp-xlight-text; + } + + .activity-meta, + .action { + a { + background: $off-white; + + &:focus, + &:hover { + background: $white; + } + } + } + } + + #latest-update { + color: $bp-xlight-text; + } + + div.pagination * { + color: #ddd; + } + + #item-header { + .user-nicename { + color: $bp-xlight-text; + } + } + + #item-body { + + table { + + thead { + + tr, + th { + background: none; + color: $bp-xlight-text; + } + } + + tr.alt { + + td { + background: none; + color: $bp-xlight-text; + } + } + + .field-visibility-settings, + .field-visibility-settings-notoggle { + color: #eee; + } + + } + + fieldset { + background: none; + } + + .checkbox, + .radio { + + label { + color: #eee; + } + } + + div#invite-list { + background: none; + } + } + + } // close #buddypress +} + + +body.colors-dark.group-members { + + #buddypress { + + #subnav { + + li {background: none;} + + .groups-members-search { + + form { + margin-bottom: $spacing-val-md; + margin-top: 0; + } + } + } + } +} + +// remove borders for dir component screens. +.directory.colors-dark { + + #buddypress { + + #subnav.item-list-tabs { + + ul { + border-bottom: 0; + border-top: 0; + + li.last.filter { + border-top: 0; + } + } + } + + div.activity { + + ul.item-list { + border-top: 0; + } + } + } +} + +body.colors-light { + + #buddypress { + + div.item-list-tabs { + + ul { + background-color: $off-white; + } + } + + div#subnav.item-list-tabs { + + ul { + background-color: $light-background; + + li.last { + background: $content-background; + } + } + } + + .item-list { + + .activity-header { + + p { + background-color: $light-background; + color: $bp-light-text; + } + } + + .activity-comments { + + .acomment-meta { + color: #737373; + } + } + } + + #item-body { + + .profile { + + h2 { + background: $medium-grey; + color: #fff; + } + } + } + + table { + + tr.alt { + + td { + background: #f5f5f5; + color: $body-text; + } + } + } + + div#invite-list { + background: $off-white; + } + } // close #buddypress +} + +/** +*------------------------------------------------------------------------------- +* @section 2.0 - Navigation - General +*------------------------------------------------------------------------------- +*/ + +/** +*---------------------------------------------------------- +* @section 2.1 - Navs Object Nav / Sub Nav (item-list-tabs) +* +* The main navigational elements for all BP screens +*---------------------------------------------------------- +*/ + +// We have a need to override BP specifity +// so some rulesets sets will appear over weighted in selectors + +#buddypress { + + // active/current states all navs + div.item-list-tabs { + + ul { + + li.selected { + + a { + background: inherit; + opacity: 1; + } + } + } + } + + // global nav styles + div.item-list-tabs { + + ul { + border-bottom: 1px solid rgba($border-light, 0.9); + overflow: hidden; + padding: 0; + + li { + + a { + + span {border-radius: 25%;} + } + } + } + } // close item-list-tabs + +} // close #buddypress + + +/*__ Horizontal menus __*/ +#buddypress { + + #object-nav { + + ul { + overflow: hidden; + + li { + float: none; + } + + @include small-only { + + li:not(:last-child) { + border-bottom: 1px solid $border-light; + } + } + + li:not(.selected) { + + @include small-only { + + &:focus, + &:hover { + background: darken($cream-background, 2%); + } + } + } + + @include small-up-bp { + li { + float: left; + } + } + } + } + + div#subnav.item-list-tabs { + margin-top: 0; + + ul { + border-bottom: 0; + margin-top: $spacing-val-xs; + padding: 0; + + li.last { + margin-top: 0; + padding: $spacing-val-xs $spacing-val-xs $spacing-val-xs 0; + width: 100%; + + select, + select:focus { + background: transparent; + border: 0; + outline: 0; + } + + label { + display: inline; + } + + select, + label, + option { + @include font-size(14); + } + + select { + font-style: italic; + height: auto; + } + } + + @include small-up-bp { + li.last { + text-align: right; + } + } + } // close ul + } // close #subnav + +} // close #buddypress + + +/*__ Vertical menu User Account / Group single screens __*/ + +// This block contains rules to re-factor the item-body structural element +// to sit alongside the vert menu +// 2017 right sidebar is displayed if the widget sidebar has widgets; +// we'll only display object nav as a vert menu if not .two-column-page. + +@include medium-up { + + body:not(.page-two-column) { + + #buddypress { + + #object-nav { + border-right: 1px solid $border-med; + float: left; + margin-right: -1px; + width: 200px; + + ul { + background: none; + border-bottom: 0; + padding: 0; + + li { + float: none; + overflow: hidden; + + span { + background: $content-background; + border-radius: 10%; + float: right; + margin-right: 2px; + } + } + } + } + + #item-body { + border-left: 1px solid $border-med; + overflow: hidden; + padding: 0 0 0 $spacing-val-md; + width: auto; + + #subnav { + margin: 0 0 0 (-$spacing-val-md); + + ul {margin-top: 0;} + } + } + + } // close #buddypress + } // close body:not(.sidebar) +} // close @media + + +// Tabbed Nav styling +// Primarilly used for group create screens & ? directory nav. + +@include med-small-up { + + #buddypress { + + #group-create-tabs.item-list-tabs { + + ul:before, + ul:after { + content: " "; + display: table; + } + + ul:after { + clear: both; + } + + ul { + background: none; + border: 0; + border-bottom: 1px solid $border-med; + overflow: visible; + padding-bottom: 0; + + li { + float: left; + width: auto; + } + + li.selected, + li.current { + border: 1px solid $border-med; + border-bottom-color: $content-background; + @include border-top-radius(4px); + margin-bottom: -1px; + + a { + background: none; + color: $body-text; + outline: none; + } + } + } + + } // close .item-list-tabs + + #subnav { + ul { + border-bottom: 0; + } + + } // close #subnav + } // close #buddypress + +} // close @media + +/** +*---------------------------------------------------------- +* @section 2.2 - Pagination +*---------------------------------------------------------- +*/ + +#buddypress { + + div.pagination { + box-shadow: none; + font-weight: 400; + min-height: 0; + + &:before, + &:after { + height: 0; + width: 0; + } + + .pag-count {margin-left: 0;} + .pagination-links { + margin-right: 0; + + span, + a { + height: auto; + line-height: 1; + padding: 5px; + } + + .prev, + .next { + background-color: transparent; + color: inherit; + overflow: visible; + width: auto; + &:before {display: none;} + } + + .prev { + left: auto; + position: static; + } + + .next { + position: static; + right: auto; + } + } // close .pagination-links + } // close .pagination +} // close #buddypress + +/** +*------------------------------------------------------------------------------- +* @section 4.0 - BP Lists / Loops Generic +*------------------------------------------------------------------------------- +*/ + +// Adjusts Meta items and various elements to match 2017 font-family +#buddypress { + + .item-list { + + .activity-header, + .activity-meta { + @include default-font-sans(); + } + } +} + +#buddypress { + + .activity-meta { + + .button { + + &:focus, + &:hover { + background: inherit; + color: #000; + } + } + } + + .action { + + .generic-button { + + a { + + &:focus, + &:hover { + background: inherit; + color: #000; + } + } + } + } +} // close #buddypress + +// Trying to position the action div absolute has bad consequences where +// aditional items are displayed, floating is an alternative that +// allows natural flow expansion. +// This block: +// * Manages li items, Stacks them small screen, floated left at wider screens. +// * Adjusts display of action buttons at small screen mobile up. +// Adjusts Meta items to match 2017 font-family + +#buddypress { + + ul.item-list { + + li { + overflow: hidden !important; + + // Undo BP floats to center avatars initially mobile up + .item-avatar { + margin-bottom: $spacing-val-sm; + + @include small-up-bp { + margin-bottom: 0; + } + + text-align: center; + + a {border-bottom: 0;} + + img.avatar { + display: inline-block; + float: none; + margin-bottom: $spacing-val-sm; + + // Quite early on we need to move avatars to the left(right) + @include small-up { + display: block; + float: left; + } + } + } + + .item { + overflow: hidden; + + @include med-small-up { + margin-left: 15%; + } + + span.activity { + font-style: italic; + } + + .item-desc { + margin-left: 0; + width: 94%; + } + + .item-title { + @include font-size(18); + line-height: 1.2; + text-align: center; + + @include small-up { + text-align: left; + } + + width: 100%; + + .update { + display: block; + @include font-size(13); + + @include medium-up { + @include font-size(14); + } + + padding: $spacing-val-sm 0; + text-align: left; + } + } + + } + + @include medium-up { + + .item-avatar, + .item, + .action { + float: left; + } + + .item { + left: 5%; + margin-left: 0; + position: relative; + width: 55%; + + .item-title { + @include font-size(22) + } + } + + }// close medium-up + + div.action { + clear: left; + float: none; + margin-bottom: -$spacing-val-md; + // remove BP margin left + margin-left: 0; + padding: $spacing-val-md 0 $spacing-val-xs; + + // push the actions to the right + @include medium-up { + clear: none; + float: right; + margin-bottom: 0; + padding: 0; + } + + position: relative; + text-align: left; + top: 0; + + div { + display: inline-block; + margin: $spacing-val-sm 0; + width: 100%; + + a { + display: block; + width: 100%; + } + // Provisionally lets keep the 'action' div + // position but inline-block the buttons + + @include small-up { + // keep buttons to a row small tablet up + margin: 0 $spacing-val-sm $spacing-val-sm 0; + width: auto; + } // close @media + + @include medium-up { + // take buttons to block to stack them when floated right + clear: right; + float: right; + margin: 0 0 $spacing-val-sm 0; + } // close @media + + } // close div + + .meta { + font-style: italic; + } + + } // close .action + + } // close li + } // close .item-list +} // close #buddypress + +/** +*---------------------------------------------------------- +* @section 4.1 - Activity +*---------------------------------------------------------- +*/ + +/** +*----------------------------------------------------- +* @section 4.1.1 - Activity Whats New +*----------------------------------------------------- +*/ + +#buddypress { + form#whats-new-form { + + // Line-height issue inherited from BP rules, override. + p.activity-greeting { + line-height: 1.4; + } + + // corrective measure for clipped elements due to JS inline styling + + @include medium-only-bp { + + #whats-new-content { + clear: left; + margin: $spacing-val-sm 0 $spacing-val-md; + padding: $spacing-val-sm 0 0; + } + } + + #whats-new-content.active { + + #whats-new-options[style] { + + #whats-new-post-in-box { + border: 1px solid rgba($border-color, 0.5); + float: left; + line-height: 1.5em; + margin-top: 12px; + padding-left: 0.2em; + width: 100%; + + select { + background: none; + border: 0; + float: right; + margin: 0; + min-height: 1.5em; + padding-left: 0.4em; + } + } + + @include small-up { + #whats-new-post-in-box { + width: auto; + } + + #whats-new-submit { + float: right; + } + } + + } // close #whats-new-options + } // close #whats-new-content.active + + } // close #whats-new-form + + // User account form requires matching bp default specificity + #item-body { + form#whats-new-form { + margin: $spacing-val-lg 0; + } + } +} // close #buddypress + +/** +*----------------------------------------------------- +* @section 4.1.2 - Activity Listing +*----------------------------------------------------- +*/ + +#buddypress { + + #activity-stream { + + // re-size activity avatars and stack small screen + // refactor main elements positioning medium up. + li { + padding: 25px 0 15px; + + .activity-avatar { + float: none; + text-align: center; + + a { + display: inline-block; + + img.avatar { + display: inline; + float: none; + height: 60px; + margin-bottom: $spacing-val-md; + margin-left: 0; + width: 60px; + } + } + } // close .activity-avatar + + .activity-content { + margin-left: 0; + + .activity-header { + @include font-size(14); + + a { + color: #0075c4; + } + } + } + + @include med-small-up { + + .activity-avatar { + float: left; + margin-right: $spacing-val-sm; + text-align: left; + a {border-bottom: 0;} + } + + .activity-content { + margin: 0; + overflow: hidden; + + .activity-header { + @include font-size(16); + } + } + + } // close @media + + } // close li + + li.mini { + + .activity-avatar { + + a { + + img.avatar { + height: 30px; + margin-left: 15px; + width: 30px; + } + } + } + + .activity-content { + + .activity-header { + @include font-size(14); + } + } + } + + .activity-content { + margin-top: -12px; + + .activity-header { + margin-right: 0; + + p { + border: 1px solid rgba($border-light, 0.6); + margin-top: 0; + padding: 0 0.2em; + } + + img.avatar { + box-shadow: none; + display: inline-block; + margin: 0 5px !important; // have to match to BP + vertical-align: middle; + } + } // close .activity-header + + .activity-meta { + + a { + display: block; + margin-bottom: $spacing-val-xs; + + @include small-up { + display: inline-block; + margin-bottom: 0; + width: auto; + } + } + } + + } // close .activity-content + + .load-more { + background: $light-background; + border: 1px solid transparent; + padding: $spacing-val-sm; + + &:focus, + &:hover { + background: darken($light-background, 1%); + border: 1px solid rgba(#9fd1e2, 0.3); + a { font-style: italic; } + } + + a { + display: block; + } + } + + } // close #activity-stream +} // close #buddypress + +/* Single activity view - activity permalink */ + +.activity-permalink { + #buddypress { + + #activity-stream { + + li.activity-item { + padding: $spacing-val-md; + } + + li.mini { + .activity-header { + @include font-size(16); + @include med-small-up { + @include font-size(20); + } + + margin-bottom: $spacing-val-lg; + p {padding: $spacing-val-md;} + } + } + } + } +} + +/** +*----------------------------------------------------- +* @section 4.1.3 - Activity Comments +*----------------------------------------------------- +*/ +#buddypress { + + #activity-stream { + + .activity-comments { + border-left: 1px solid $border-light; + margin: $spacing-val-md 0 $spacing-val-md; + + @include small-up { + margin-left: $spacing-val-md; + } + + ul { + margin: 15px 0 0 2px; + + li { + border-top: 1px solid $border-color; + } + + a { + color: #0077c7; + } + } + + .acomment-meta { + border-bottom: 1px solid $border-light; + } + + .ac-form { + + input[type="submit"], + .ac-reply-cancel { + color: rgba($body-text, 0.8); + display: inline-block; + font-family: inherit; + @include font-size(12); + font-weight: normal; + line-height: 1.2; + padding: 4px 10px; + text-transform: lowercase; + width: 100px; + } + + .ac-reply-cancel { + border: 1px solid rgba($border-color, 0.7); + text-align: center; + + &:focus, + &:hover { + background: $bp-button-hover; + } + } + + } // close .ac-form + + } // close .activity-comments + } // close .activity + +} // close #buddypress + +/** +*---------------------------------------------------------- +* @section 4.2 - Members Loop +*---------------------------------------------------------- +*/ + +#buddypress { + + #members-list { + + @include medium-up { + + li { + .item-avatar, + .item { + float: left; + } + + .action { + float: right; + } + } + + li.is-current-user { + + .item { + float: none; + left: 0; + padding-left: 5%; + width: auto; + } + } + } + + } // close #members-list +} //close #BuddyPress + +/** +*------------------------------------------------------------------------------- +* @section 5.0 - Directories +*------------------------------------------------------------------------------- +*/ + +/** +*----------------------------------------------------------- +* @subsection Registration +*----------------------------------------------------------- +*/ + +#buddypress { + + #signup_form.standard-form { + + #profile-details-section, + #basic-details-section, + #blog-details-section { + float: none; + width: 100%; + + @include small-up-bp { + width: 48%; + } + } + + @include small-up { + #profile-details-section {float: right;} + #basic-details-section {float: left;} + } + + } +} + +/** +*------------------------------------------------------------------------------- +* @section 6.0 - Single Item screens: User Account & Single Group Screens +*------------------------------------------------------------------------------- +*/ + + +/** +*----------------------------------------------------------- +* @subsection 6.1 - Item Header Global +*----------------------------------------------------------- +*/ +@include med-small-up { + + + .bp-user.page-two-column { + + #buddypress { + + #cover-image-container { + + #item-header-cover-image { + + #item-header-content { + margin-left: 140px; + margin-top: -100px; + } + } + } + } + } + + .single-item.groups.page-two-column { + + #buddypress { + + #cover-image-container { + + #item-header-cover-image { + + #item-header-content { + margin-left: 10px; + } + } + } + } + } + +} // close media + +.bp-user, +.single-item.groups { + + #buddypress { + + // we need to remove the cover image dec styles + // & reset them for med up only. + #item-header-cover-image { + .user-nicename { + color: $body-text; + text-shadow: none; + } + } + + @include med-small-up { + + #item-header-cover-image { + + .user-nicename { + color: $white; + text-shadow: 0 0 3px rgba(0, 0, 0, 0.8); + } + } + } + + #item-header-content { + + #item-meta { + @include font-size(14); + text-align: left; + + p {margin-bottom: 0.5em;} + } + } + } + + @include medium-only-bp { + + main { + header.entry-header { + padding-bottom: 1rem; + } + } + } + + @include small-only { + + h1, + #item-header-content { + text-align: center; + } + } + + #buddypress { + + @include medium-only-bp { + + #item-header { + + .generic-button { + float: none; + margin: 1.5em 0 0 0; + } + } + } + + @include small-only { + + h1 { + margin-bottom: 0; + } + + #item-header-avatar { + img.avatar { + margin-right: 0; + } + } + + #item-header-content { + width: 100%; + } + } + } +} + +/** +*----------------------------------------------------- +* @subsection 6.1.1 - item-header Groups +* +* Group Specific Item Header +*----------------------------------------------------- +*/ + +.single-item.groups { + + #buddypress { + + @include medium-only-bp { + #item-header { + #item-meta { + margin-bottom: $spacing-val-md; + } + } + } + + // Move visual flow of avatar & item-actions at narrow width, + // avatar first after group title + @include small-only { + + div#item-header { + display: flex; + flex-direction: column; + + #item-header-avatar { + order: 1; + text-align: center; + + a { + + img { + display: inline-block; + float: none; + } + } + } + + #item-header-content { + order: 2; + } + + #item-actions { + order: 3; + + h2 { + border-bottom: 1px solid $border-light; + text-align: center; + } + } + } + } // close @media + + div#item-header { + padding-bottom: $spacing-val-lg; + + div#item-actions { + margin: 0; + width: 100%; + + @include small-up-bp { + border-left: 1px solid $border-light; + clear: none; + float: right; + padding-left: 0.2em; + width: 30%; + } // close @media + + @include med-small-up { + width: 40%; + } + + ul { + margin-top: 0; + padding-left: 0; + } + + h2 { + @include font-size(14); + + @include med-small-up { + @include font-size(16); + } + + padding: 0.2em; + } + } // close item-actions + + @include med-small-up { + + #item-header-avatar, + #item-header-content { + float: left; + } + + #item-header-avatar { + width: 21%; + } + + #item-header-content { + margin-left: 4%; + width: 40%; + } + + div#item-actions { + float: right; + width: 28%; + } + + } // close @media + + } // close #item-header + } // close #buddypress +} // close .groups + +/** +*----------------------------------------------------- +* @subsection 6.1.2 - Item Header User Accounts +* +* User Accounts Specific Item Header +*----------------------------------------------------- +*/ + +.bp-user { + #buddypress { + + #item-header { + padding: $spacing-val-md 0; + + #item-header-avatar { + text-align: center; + width: 100%; + + img.avatar, + + a { + display: inline-block; + float: none; + } + } + + @include med-small-up { + + #item-header-avatar { + float: left; + width: 20%; + + a { + float: left; + } + } + + #item-header-content { + float: right; + margin-right: 5%; + width: 69%; + } + + } // close @media + + } // close #item-header + + } // close #buddypress +} // close .bp-user + +/** +*----------------------------------------------------------- +* @subsection 6.2 - Item Body: Global +*----------------------------------------------------------- +*/ + + +/** +*---------------------------------------------------- +* @subsection 6.2.1 - Item Body Groups +* +* Groups specific item body rules - screens +*---------------------------------------------------- +*/ + +.groups.single-item.members { + + #buddypress { + + #subnav.item-list-tabs { + + ul { + background: none; + border-top: 0; + } + + } + } + +} + +/** +*----------------------------------------- +* @subsection 6.2.1.1 - Group Management +*----------------------------------------- +*/ + +// headings settings screens & general global settings styles +.groups { + + #group-settings-form { + + h3 { + background: $dark-background; + color: $content-background; + padding: 0.2em; + } + } +} + +.groups.edit-details { + + #group-settings-form { + + label { + margin-bottom: 0; + padding: 0.2em; + width: 80%; + } + + textarea + p label { + background: none; + color: inherit; + @include font-size(14); + width: auto; + } + + textarea { + height: auto; + min-height: 100px; + overflow: auto; + } + } +} // close .groups.edit-details + +.groups.group-settings { + + #group-settings-form { + + div.radio label { + border: 1px solid $border-light; + padding: 0.2em; + + ul { + color: rgba($body-text, 0.6); + @include font-size(14); + } + } + + } +} // close .groups.group-settings + +.groups.group-avatar { + + form > p { + margin-top: $spacing-val-md; + } + +} + +.groups.manage-members { + + #group-settings-form { + + .item-list { + + li { + border-bottom: 1px solid $border-light; + + img, + h5 { + float: left; + + > a {border-bottom: 0;} + } + + span.small { + clear: left; + display: block; + float: none; + margin-top: $spacing-val-sm; + + a { + display: inline-block; + margin: $spacing-val-xs 0; + width: 100%; + + @media screen and (min-width: 38.75em) { + width: auto; + } + } + } + + h5 { + margin: 0; + } + + } + } + } +} // close .groups.manage-members + +/** +*----------------------------------------- +* @subsection 6.2.1.2 - Group members +*----------------------------------------- +*/ + +// Massage the members search for groups nav specifically. +.groups.group-members { + + #subnav { + li { + @include small-only { + background: $content-background; + padding: $spacing-val-md 0; + } + + width: 100%; + + #search-members-form { + float: right; + + @include small-only { + margin: 0; + width: 100%; + + label { + input[type="text"] {width: 100%;} + } + } + + margin: $spacing-val-xs 0 0; + } + } + } +} + +/** +*----------------------------------------------------- +* @subsection 6.2.2 - Item Body User Accounts +* +* User Account specific item body rules +*----------------------------------------------------- +*/ + +.bp-user { + + .entry-title { + margin-bottom: 0.5em; + } +} + +/** +*-------------------------------------------- +* @subsection 6.2.2.1 - classes, pag, filters +*-------------------------------------------- +*/ +.bp-user { + + #buddypress { + + table { + + th { + @include font-size(14) + } + + td { + @include font-size(12) + } + + a { + color: #0074c2; + } + + @include medium-up { + + th { + @include font-size(16) + } + + td { + @include font-size(14) + } + } + + @include large-up { + + th { + @include font-size(18) + } + + td { + @include font-size(16) + } + } + } + + .pag-count {font-style: italic;} + + .notifications-options-nav, + .messages-options-nav { + + float: left; + width: 100%; + + @include small-up-bp { + width: 300px; + } + + select { + height: auto; + } + + select, + input { + + @include font-size(14); + outline: 0; + padding: 0; + } + + select { + float: left; + margin-right: 1%; + width: 59%; + } + + input { + float: right; + font-family: inherit; + line-height: 20px; + width: 40%; + } + + input[disabled="disabled"]:focus, + input[disabled="disabled"]:hover { + background: none; + } + + + } // close .notifications-options-nav/.messages-options-nav + + } //close #buddypress +} // close .bp-user + +/** + *------------------------------------------- + * @subsection 6.2.2.2 - Extended Profiles + *------------------------------------------- + */ + +.bp-user { + + #buddypress { + + .profile { + + h2 { + margin: $spacing-val-lg 0 $spacing-val-sm; + padding: 0.1em 0 0.1em 0.4em; + } + + table {margin-top: 0;} + + .profile-fields { + + tr.alt { + + td { + color: $body-text; + } + } + + tr:last-child { + border-bottom: 0; + } + } + + /* Edit profile */ + + #profile-edit-form { + + .button-nav:before, + .button-nav:after { + content: " "; + display: table; + } + + .button-nav:after { + clear: both; + } + + ul.button-nav { + border-bottom: 1px solid $border-light; + margin-left: 0; + + li { + float: left; + margin-bottom: 0; + + &.current { + border: 1px solid $border-light; + border-bottom-color: #fff; + margin-bottom: -1px; + } + } // li + + a { + background: none; + border: 0; + @include font-size(18) + } + } //.button-nav + + .field-visibility-settings-toggle, + .field-visibility-settings-notoggle, + .field-visibility-settings { + @include font-size(14); + margin-top: $spacing-val-sm; + } + + .field-visibility-settings-close, + .visibility-toggle-link { + background: $dark-background; + @include border-radius(3px); + color: #fff; + padding: 0.2em 0.5em; + } + } // close profile form + + .bp-avatar { + #bp-delete-avatar { + a {font-size: inherit; } + } + } + } // close .profile + + } // close #buddypress +} // close .bp-user + +/** + *------------------------------------------- + * @subsection 6.2.2.3 - Groups + *------------------------------------------- + */ + +.bp-user { + + #buddypress { + + #groups-list { + li { + .item { + @media screen and (min-width: 77.5em) { + left: 5%; + width: 50%; + } + } + } + } + + } // close #buddypress +} // close .bp-user + +/** + *------------------------------------------- + * @subsection 6.2.2.5 - Private Messaging + *------------------------------------------- + */ + +.bp-user { + + #buddypress { + + #message-thread { + //Single message view + + a { + border-bottom: 0; + } + + #message-subject { + background: lighten($dark-background, 10%); + color: $content-background; + padding: 0.3em 0 0.3em 0.2em; + } + + #message-recipients { + font-style: italic; + + a.confirm { + border: 1px solid $border-light; + font-style: normal; + } + } + + .message-metadata { + overflow: hidden; + + img.avatar { + float: none; + } + + @include med-small-up { + img.avatar { + float: left; + } + } + + .message-star-actions { + float: right; + margin-right: $spacing-val-xs; + position: static; + } + } // close .message-meta + + .message-content { + background: $light-background; + border: 1px solid $border-light; + margin: $spacing-val-sm 0 0 0; + padding: 0.3em; + } + + #send-reply { + + .message-content { + background: $content-background; + border: 0; + } + } + + .alt { + background: $content-background; + } + + } // close message-thread Singular view! + + #message-threads { + + thead { + + tr { + background: none; + border-bottom: 1px solid $border-color; + + + th { + background: #555; + } + } + } + + tr { + border-bottom: 5px solid $medium-grey; + + td { + display: inline-block; + float: left; + } + + td.thread-star, + td.thread-options { + border-bottom-color: $border-color; + border-bottom-width: 1px; + height: 2.4em; + padding-bottom: 0.2em; + padding-top: 0.2em; + + @media screen and (max-width: 46.25em) { + padding-top: 0; + } + } + + td.bulk-select-check, + td.thread-star, + td.thread-from, + td.thread-info, + td.thread-options { + border-top: 0; + } + + td.thread-star { + vertical-align: middle; + + .message-action-star { + line-height: 1.2; + } + } + + td.bulk-select-check, + td.thread-from { + height: 3em; + + @include small-only { + height: 5.2em; + } + } + + td.thread-from, + td.thread-options { + border-left: 0 !important; + @include calc(width, "100% - 30px"); + margin-left: 0; + } + + td.thread-info { + padding-left: 41px; + width: 100%; + + a::after { + content: " \2017 \00a0"attr(title); + @include font-size(12); + } + } + + td.thread-options { + text-align: right; + + a { + @include font-size(12); + line-height: 2.2; + } + } + + span.from { + display: none; + } + + span.activity { + display: block; + float: right; + line-height: 2; + + @include small-only { + clear: both; + @include font-size(11); + width: 100%; + } + } + } + + tr.unread { + + td { + background: none; + border-color: $border-color; + } + } + + th { + display: none; + } + + th.bulk-select-all { + border-bottom: 0; + display: inline-block; + text-align: left; + } + + th.bulk-select-all, + td.bulk-select-check, + td.thread-star { + border-right: 0; + width: 30px; + } + } + + .acfb-holder { + list-style: none; + + li {margin-left: 0;} + + li.friend-tab { + background: lighten($notice-info, 20%); + border: inherit; + margin-right: 0; + padding: 0.5em; + + span.p { + // the 'X' close + padding-left: $spacing-val-sm; + + &:focus, + &:hover { + color: $link-action; + cursor: pointer; + } + } + + a { + border-bottom: 0; + text-decoration: none; + + img { + // this is the tiny user avatar + display: inline; + height: 20px; + vertical-align: middle; + width: 20px !important; // override inline style + } + } + } + } + + #message-threads.sitewide-notices { + + td { + width: 100%; + + strong { + background: lighten($dark-background, 10%); + color: $content-background; + display: block; + margin-bottom: 0.4em; + padding-left: 0.2em; + } + + a { + display: inline-block; + } + } + + td:first-child { + display: none; + } + + td:nth-child(2) { + strong { + margin: -8px -8px 8px; + } + } + + td:first-child + td + td { + // notice date + border-bottom: 0; + + span { + line-height: 1; + } + } + + td:last-child { + // notice actions + border-bottom-color: darken($border-light, 20%); + line-height: 1; + text-align: right; + + a:last-child { + // hide the 'x' text + line-height: 0; + margin-left: 0.7em; + text-indent: -999em; + } + + a:last-child::after { + content: attr(title); + display: block; + line-height: initial; + text-indent: 0; + } + } + } + + } // #buddypress + + // acfb auto complete name list sits in doc footer before body close + .ac_results { + background: #eee; + padding-left: $spacing-val-sm; + + ul { margin: 0; } + + li { + margin: $spacing-val-sm 0; + + &:focus, + &:hover { + cursor: pointer; + } + } + } + +} // close .bp-user + +/** + *------------------------------ + * @subsection 6.2.2.6 - Settings + *------------------------------ + */ + +.bp-user { + + #buddypress { + + #settings-form { + // 'p' = email notification screen sub heading + > p { + @include font-size(20); + margin: $spacing-val-md 0 $spacing-val-sm; + } + } + + table.notification-settings { + + td.yes, + td.no { + vertical-align: middle; + } + } + + // Profile table td widths + table.profile-settings { + width: 100%; + + th.field-group-name, + td.field-name { + width: 50%; + } + + @include med-small-up { + + th.field-group-name, + td.field-name { + width: 70%; + } + } + + th.title, + td.field-visibility { + width: 30%; + } + + td.field-visibility { + + select { + width: 100%; + } + } + } + + } // close #buddyPress + +} // close .bp-user + +/** +*------------------------------------------------------------------------------- +* @section 7.0 - Forms - General +*------------------------------------------------------------------------------- +*/ + +// Attempt to reset form control widths +#main { + + #buddypress { + + .standard-form { + + li { + float: none; + } + + input[type='text'], + input[type='email'], + input[type='password'], + textarea { + width: 100%; + } + } + } +} + +#buddypress { + + // Match BP form elements to Themes(2017) styling where styles + // are not inherited or being overriden. + div.activity-comments { + + form { + .ac-textarea { + background: $light-background; + border: 1px solid rgba($border-color, 0.5); + + textarea { + background: none; + border: 0; + } + } + } + } + + // 2017 sets large height on selects lets try to manage that + select { + height: auto; + } + + .standard-form { + + // Keep BP form element borders to 1px rather than 2013 2px + input[type="text"], + input[type="email"], + input[type="password"], + button, + select, + textarea { + border-color: rgba($border-color, 0.5); + border-width: 1px; + } + + select { + color: #737373; + } + + } // close .standard-form + + #signup_form.standard-form { + div.submit { + float: none; + + input {margin-right: 0;} + } + } + +} // close #buddypress + +#buddypress { + + div.dir-search, + div.message-search, + li.groups-members-search { + float: none; + margin: $spacing-val-sm 0; + + // Stylise the seach form elements, in part this deals with padding + // issues on the submit & sizing issues between bp styles & 2017 + + form { // *sigh* only to bludgeon over specified rules + border: 1px solid rgba($border-color, 0.6); + @include border-radius(2px); + overflow: hidden; + + label { + float: left; + margin: 0; + width: 70%; + } + + input[type="text"] { + float: left; + margin: 0; + width: 100%; + } + + input[type="text"], + input[type="submit"] { + border: 0; + @include font-size(14); + line-height: inherit; + } + + input[type="text"] { + border-right: 1px solid rgba($border-color, 0.6); + font-weight: 400; + padding: 0.2em 0 0.2em 0.2em; + } + + input[type="submit"] { + @include border-radius-none(); + float: right; + font-weight: normal; + padding: 0.2em 1em; + text-align: center; + text-transform: none; + width: 30%; + } + } // close form + + } // close .dir-search, .message-search + + // Dirs & certain components hide search hides labels so can't width the label element + // adjust so that the input takes reduced width. + + div.dir-search { + margin-top: 0; + } + + .dir-search #search-members-form, + #search-groups-form, + #search-message-form { + + input[type='text'] { + float: left; + margin: 0; + width: 70%; + } + } + + // Shift the search parent to the right and allow to shrinkwrap + + @include small-up { + div.dir-search, + div.message-search, + li.groups-members-search { + float: right; + margin-bottom: 5px !important; + } + + } // close @media + + + @include large-up { + + .dir-search, + .message-search, + li.groups-members-search { + + form { + + input[type='text'] { + @include font-size(16) ; + } + + input[type='submit'] { + @include font-size(16) ; + } + } + } + } + +} // close #buddypress + +// Adjustments for form elements colors, backgrounds, borders under the dark scheme. +body.colors-dark { + + #page { // for weight + + #buddypress { + + .dir-search, + .groups-members-search, + .message-search { + + form { + background: #333; + border-color: #555; + @include border-radius(2px); + padding: 1px; + } + + input[type="text"] { + background: none; + } + + input[type="submit"] { + @include border-radius(2px); + } + } + } + + .message-search { + margin-top: 0; + } + } +} +/** +*------------------------------------------------------------------------------- +* @section 8.0 - Tables - General +*------------------------------------------------------------------------------- +*/ + +// Adjust table font sizes, default too large proportionally +// This approach will require refinement and perhaps re-location to +// a more general typography section to manage BP elements grouped under +// breakpoints. Provide top/bottom margins for tables, lacking in BP styles + +#buddypress { + + table { + @include font-size(14); + margin: $spacing-val-md 0; + + tr th { + background: $light-background; + border-color: $border-light; + color: $body-text; + } + + // Reduce the themes inherited paragraph margins in tables + p { + margin-bottom: 0.5em; + } + } + + @include medium-up { + table { + @include font-size(16); + } + } +} + +/*__ User Account tables __*/ + +#buddypress { + + // Manage some table cells widths that are disproportionate to their content + .notifications, + .messages-notices { + + th { + width: 30%; + + &.bulk-select-all { + text-align: center; + width: 10%; + } + } + + .bulk-select-check, + .thread-star { + text-align: center; + } + + .notification-actions, + td.thread-options { + text-align: center; + + a { + display: inline-block; + margin: 0; + padding: 0; + } + } + + // Notices action buttons, this maybe better moved, temp for now to address + // styling issues - this will need styling ideas + td { + + .button { + border: 0; + display: block; + padding: 0; + text-align: center; + } + } + + } // .notifications, .message-notices + + .notifications { // table element + .actions { // th element + text-align: center; + } + } +} // #buddypress + +/** +*------------------------------------------------------------------------------- +* @section 9.0 - Error / Success messages +*------------------------------------------------------------------------------- +*/ + +// message args ($variable-color, text-color) +// Leave text-color undefined to automagically set text color +// to background color darker by 50% + +#buddypress { + + div#message { + + p { + @include font-size(18); + font-weight: bold; + } + + &.info { + + p { + @include message-box($notice-info); + } + } + + &.updated { + + p { + @include message-box($notice-update); + } + } + + } // close #message + + .bp-avatar-status, + .bp-cover-image-status { + + .warning { + background: #7dd4ff; + border: 1px solid #000; + color: $body-text; + @include font-size(16); + } + } + +} // close #buddypress + +// Without direct classes on our mesages ( 'warning') +// we need to use the body classes +// todo: If this is class .warning is included in main BP styles remove from here + +.delete-group { + + #buddypress { + + div#message.info { + + p { + @include message-box($notice-warning); + } + } + } +} + +/** +*------------------------------------------------------------------------------- +* @section 10.0 - Ajax Loading, Widgets, General classes +*------------------------------------------------------------------------------- +*/ + +#buddypress { + + .acfb-holder { + + li.friend-tab { + background: $notice-info; + border: inherit; + } + } +} diff --git a/wp-content/plugins/buddypress/bp-templates/bp-legacy/js/buddypress.js b/wp-content/plugins/buddypress/bp-templates/bp-legacy/js/buddypress.js index d80e0d752..aa76f1be4 100644 --- a/wp-content/plugins/buddypress/bp-templates/bp-legacy/js/buddypress.js +++ b/wp-content/plugins/buddypress/bp-templates/bp-legacy/js/buddypress.js @@ -316,13 +316,15 @@ jq(document).ready( function() { type = target.hasClass('fav') ? 'fav' : 'unfav'; parent = target.closest('.activity-item'); parent_id = parent.attr('id').substr( 9, parent.attr('id').length ); + nonce = bp_get_query_var( '_wpnonce', target.attr( 'href' ) ); target.addClass('loading'); jq.post( ajaxurl, { action: 'activity_mark_' + type, 'cookie': bp_get_cookies(), - 'id': parent_id + 'id': parent_id, + nonce: nonce }, function(response) { target.removeClass('loading'); @@ -1489,57 +1491,6 @@ jq(document).ready( function() { } ); - /* Marking private messages as read and unread */ - jq('#mark_as_read, #mark_as_unread').click(function() { - var checkboxes_tosend = '', - checkboxes = jq('#message-threads tr td input[type="checkbox"]'), - currentClass, newClass, unreadCount, inboxCount, unreadCountDisplay, action, - inboxcount, thread_count; - - if ( 'mark_as_unread' === jq(this).attr('id') ) { - currentClass = 'read'; - newClass = 'unread'; - unreadCount = 1; - inboxCount = 0; - unreadCountDisplay = 'inline'; - action = 'messages_markunread'; - } else { - currentClass = 'unread'; - newClass = 'read'; - unreadCount = 0; - inboxCount = 1; - unreadCountDisplay = 'none'; - action = 'messages_markread'; - } - - checkboxes.each( function(i) { - if(jq(this).is(':checked')) { - if ( jq('#m-' + jq(this).attr('value')).hasClass(currentClass) ) { - checkboxes_tosend += jq(this).attr('value'); - jq('#m-' + jq(this).attr('value')).removeClass(currentClass); - jq('#m-' + jq(this).attr('value')).addClass(newClass); - thread_count = jq('#m-' + jq(this).attr('value') + ' td span.unread-count').html(); - - jq('#m-' + jq(this).attr('value') + ' td span.unread-count').html(unreadCount); - jq('#m-' + jq(this).attr('value') + ' td span.unread-count').css('display', unreadCountDisplay); - - inboxcount = jq('tr.unread').length; - - jq('#user-messages span').html( inboxcount ); - - if ( i !== checkboxes.length - 1 ) { - checkboxes_tosend += ','; - } - } - } - }); - jq.post( ajaxurl, { - action: action, - 'thread_ids': checkboxes_tosend - }); - return false; - }); - /* Selecting unread and read messages in inbox */ jq( 'body.messages #item-body div.messages' ).on( 'change', '#message-type-select', function() { var selection = this.value, @@ -1567,55 +1518,6 @@ jq(document).ready( function() { }); }); - /* Bulk delete messages */ - jq( 'body.messages #item-body div.messages' ).on( 'click', '.messages-options-nav a', function() { - if ( -1 === jq.inArray( this.id, Array( 'delete_sentbox_messages', 'delete_inbox_messages' ) ) ) { - return; - } - - checkboxes_tosend = ''; - checkboxes = jq('#message-threads tr td input[type="checkbox"]'); - - jq('#message').remove(); - jq(this).addClass('loading'); - - jq(checkboxes).each( function(i) { - if( jq(this).is(':checked') ) { - checkboxes_tosend += jq(this).attr('value') + ','; - } - }); - - if ( '' === checkboxes_tosend ) { - jq(this).removeClass('loading'); - return false; - } - - jq.post( ajaxurl, { - action: 'messages_delete', - 'thread_ids': checkboxes_tosend - }, function(response) { - if ( response[0] + response[1] === '-1' ) { - jq('#message-threads').prepend( response.substr( 2, response.length ) ); - } else { - jq('#message-threads').before( '<div id="message" class="updated"><p>' + response + '</p></div>' ); - - jq(checkboxes).each( function(i) { - if( jq(this).is(':checked') ) { - // We need to uncheck because message is only hidden - // Otherwise, AJAX will be fired again with same data - jq(this).attr( 'checked', false ); - jq(this).parent().parent().fadeOut(150); - } - }); - } - - jq('#message').hide().slideDown(150); - jq('#delete_inbox_messages, #delete_sentbox_messages').removeClass('loading'); - }); - - return false; - }); - /* Selecting/Deselecting all messages */ jq('#select-all-messages').click(function(event) { if( this.checked ) { @@ -1743,7 +1645,8 @@ jq(document).ready( function() { jq.post( ajaxurl, { action: 'messages_close_notice', - 'notice_id': jq('.notice').attr('rel').substr( 2, jq('.notice').attr('rel').length ) + 'notice_id': jq('.notice').attr('rel').substr( 2, jq('.notice').attr('rel').length ), + nonce: jq( '#close-notice-nonce' ).val() }, function(response) { jq('#close-notice').removeClass('loading'); @@ -2150,3 +2053,32 @@ function bp_get_cookies() { // returns BP cookies as querystring return encodeURIComponent( jq.param(bpCookies) ); } + +/** + * Get a querystring parameter from a URL. + * + * @param {String} Query string parameter name. + * @param {String} URL to parse. Defaults to current URL. + */ +function bp_get_query_var( param, url ) { + var qs = {}; + + // Use current URL if no URL passed. + if ( typeof url === 'undefined' ) { + url = location.search.substr(1).split('&'); + } else { + url = url.split('?')[1].split('&'); + } + + // Parse querystring into object props. + // http://stackoverflow.com/a/21152762 + url.forEach(function(item) { + qs[item.split("=")[0]] = item.split("=")[1] && decodeURIComponent( item.split("=")[1] ); + }); + + if ( qs.hasOwnProperty( param ) && qs[param] != null ) { + return qs[param]; + } else { + return false; + } +} diff --git a/wp-content/plugins/buddypress/bp-templates/bp-legacy/js/buddypress.min.js b/wp-content/plugins/buddypress/bp-templates/bp-legacy/js/buddypress.min.js index 69df73008..38423ff95 100644 --- a/wp-content/plugins/buddypress/bp-templates/bp-legacy/js/buddypress.min.js +++ b/wp-content/plugins/buddypress/bp-templates/bp-legacy/js/buddypress.min.js @@ -1,2 +1,2 @@ -function bp_init_activity(){jq.cookie("bp-activity-oldestpage",1,{path:"/",secure:"https:"===window.location.protocol}),void 0!==jq.cookie("bp-activity-filter")&&jq("#activity-filter-select").length&&jq('#activity-filter-select select option[value="'+jq.cookie("bp-activity-filter")+'"]').prop("selected",!0),void 0!==jq.cookie("bp-activity-scope")&&jq(".activity-type-tabs").length&&(jq(".activity-type-tabs li").each(function(){jq(this).removeClass("selected")}),jq("#activity-"+jq.cookie("bp-activity-scope")+", .item-list-tabs li.current").addClass("selected"))}function bp_init_objects(a){jq(a).each(function(b){void 0!==jq.cookie("bp-"+a[b]+"-filter")&&jq("#"+a[b]+"-order-select select").length&&jq("#"+a[b]+'-order-select select option[value="'+jq.cookie("bp-"+a[b]+"-filter")+'"]').prop("selected",!0),void 0!==jq.cookie("bp-"+a[b]+"-scope")&&jq("div."+a[b]).length&&(jq(".item-list-tabs li").each(function(){jq(this).removeClass("selected")}),jq("#"+a[b]+"-"+jq.cookie("bp-"+a[b]+"-scope")+", #object-nav li.current").addClass("selected"))})}function bp_filter_request(a,b,c,d,e,f,g,h,i){return"activity"!==a&&(null===c&&(c="all"),jq.cookie("bp-"+a+"-scope",c,{path:"/",secure:"https:"===window.location.protocol}),jq.cookie("bp-"+a+"-filter",b,{path:"/",secure:"https:"===window.location.protocol}),jq.cookie("bp-"+a+"-extras",g,{path:"/",secure:"https:"===window.location.protocol}),jq(".item-list-tabs li").each(function(){jq(this).removeClass("selected")}),jq("#"+a+"-"+c+", #object-nav li.current").addClass("selected"),jq(".item-list-tabs li.selected").addClass("loading"),jq('.item-list-tabs select option[value="'+b+'"]').prop("selected",!0),"friends"!==a&&"group_members"!==a||(a="members"),bp_ajax_request&&bp_ajax_request.abort(),void(bp_ajax_request=jq.post(ajaxurl,{action:a+"_filter",cookie:bp_get_cookies(),object:a,filter:b,search_terms:e,scope:c,page:f,extras:g,template:i},function(a){if("pag-bottom"===h&&jq("#subnav").length){var b=jq("#subnav").parent();jq("html,body").animate({scrollTop:b.offset().top},"slow",function(){jq(d).fadeOut(100,function(){jq(this).html(a),jq(this).fadeIn(100)})})}else jq(d).fadeOut(100,function(){jq(this).html(a),jq(this).fadeIn(100)});jq(".item-list-tabs li.selected").removeClass("loading")})))}function bp_activity_request(a,b){null!==a&&jq.cookie("bp-activity-scope",a,{path:"/",secure:"https:"===window.location.protocol}),null!==b&&jq.cookie("bp-activity-filter",b,{path:"/",secure:"https:"===window.location.protocol}),jq.cookie("bp-activity-oldestpage",1,{path:"/",secure:"https:"===window.location.protocol}),jq(".item-list-tabs li").each(function(){jq(this).removeClass("selected loading")}),jq("#activity-"+a+", .item-list-tabs li.current").addClass("selected"),jq("#object-nav.item-list-tabs li.selected, div.activity-type-tabs li.selected").addClass("loading"),jq('#activity-filter-select select option[value="'+b+'"]').prop("selected",!0),jq(".widget_bp_activity_widget h2 span.ajax-loader").show(),bp_ajax_request&&bp_ajax_request.abort(),bp_ajax_request=jq.post(ajaxurl,{action:"activity_widget_filter",cookie:bp_get_cookies(),_wpnonce_activity_filter:jq("#_wpnonce_activity_filter").val(),scope:a,filter:b},function(a){jq(".widget_bp_activity_widget h2 span.ajax-loader").hide(),jq("div.activity").fadeOut(100,function(){jq(this).html(a.contents),jq(this).fadeIn(100),bp_legacy_theme_hide_comments()}),void 0!==a.feed_url&&jq(".directory #subnav li.feed a, .home-page #subnav li.feed a").attr("href",a.feed_url),jq(".item-list-tabs li.selected").removeClass("loading")},"json")}function bp_legacy_theme_hide_comments(){var a,b,c,d=jq("div.activity-comments");return!!d.length&&void d.each(function(){jq(this).children("ul").children("li").length<5||(comments_div=jq(this),a=comments_div.parents("#activity-stream > li"),b=jq(this).children("ul").children("li"),c=" ",jq("#"+a.attr("id")+" a.acomment-reply span").length&&(c=jq("#"+a.attr("id")+" a.acomment-reply span").html()),b.each(function(d){d<b.length-5&&(jq(this).addClass("hidden"),jq(this).toggle(),d||jq(this).before('<li class="show-all"><a href="#'+a.attr("id")+'/show-all/" title="'+BP_DTheme.show_all_comments+'">'+BP_DTheme.show_x_comments.replace("%d",c)+"</a></li>"))}))})}function checkAll(){var a,b=document.getElementsByTagName("input");for(a=0;a<b.length;a++)"checkbox"===b[a].type&&(""===$("check_all").checked?b[a].checked="":b[a].checked="checked")}function clear(a){if(a=document.getElementById(a)){var b=a.getElementsByTagName("INPUT"),c=a.getElementsByTagName("OPTION"),d=0;if(b)for(d=0;d<b.length;d++)b[d].checked="";if(c)for(d=0;d<c.length;d++)c[d].selected=!1}}function bp_get_cookies(){var a,b,c,d,e,f=document.cookie.split(";"),g={},h="bp-";for(a=0;a<f.length;a++)b=f[a],c=b.indexOf("="),d=jq.trim(unescape(b.slice(0,c))),e=unescape(b.slice(c+1)),0===d.indexOf(h)&&(g[d]=e);return encodeURIComponent(jq.param(g))}var jq=jQuery,bp_ajax_request=null,newest_activities="",activity_last_recorded=0;jq(document).ready(function(){"-1"===window.location.search.indexOf("new")&&jq("div.forums").length?jq("#new-topic-post").hide():jq("#new-topic-post").show(),bp_init_activity();var a=["members","groups","blogs","forums","group_members"],b=jq("#whats-new");if(bp_init_objects(a),b.length&&bp_get_querystring("r")){var c=b.val();jq("#whats-new-options").slideDown(),b.animate({height:"3.8em"}),jq.scrollTo(b,500,{offset:-125,easing:"swing"}),b.val("").focus().val(c)}else jq("#whats-new-options").hide();if(b.focus(function(){jq("#whats-new-options").slideDown(),jq(this).animate({height:"3.8em"}),jq("#aw-whats-new-submit").prop("disabled",!1),jq(this).parent().addClass("active"),jq("#whats-new-content").addClass("active");var a=jq("form#whats-new-form"),b=jq("#activity-all");a.hasClass("submitted")&&a.removeClass("submitted"),b.length&&(b.hasClass("selected")?"-1"!==jq("#activity-filter-select select").val()&&(jq("#activity-filter-select select").val("-1"),jq("#activity-filter-select select").trigger("change")):(jq("#activity-filter-select select").val("-1"),b.children("a").trigger("click")))}),jq("#whats-new-form").on("focusout",function(a){var c=jq(this);setTimeout(function(){if(!c.find(":hover").length){if(""!==b.val())return;b.animate({height:"2.2em"}),jq("#whats-new-options").slideUp(),jq("#aw-whats-new-submit").prop("disabled",!0),jq("#whats-new-content").removeClass("active"),b.parent().removeClass("active")}},0)}),jq("#aw-whats-new-submit").on("click",function(){var a,b=0,c=jq(this),d=c.closest("form#whats-new-form"),e={};return jq.each(d.serializeArray(),function(a,b){"_"!==b.name.substr(0,1)&&"whats-new"!==b.name.substr(0,9)&&(e[b.name]?jq.isArray(e[b.name])?e[b.name].push(b.value):e[b.name]=new Array(e[b.name],b.value):e[b.name]=b.value)}),d.find("*").each(function(){(jq.nodeName(this,"textarea")||jq.nodeName(this,"input"))&&jq(this).prop("disabled",!0)}),jq("div.error").remove(),c.addClass("loading"),c.prop("disabled",!0),d.addClass("submitted"),object="",item_id=jq("#whats-new-post-in").val(),content=jq("#whats-new").val(),firstrow=jq("#buddypress ul.activity-list li").first(),activity_row=firstrow,timestamp=null,firstrow.length&&(activity_row.hasClass("load-newest")&&(activity_row=firstrow.next()),timestamp=activity_row.prop("class").match(/date-recorded-([0-9]+)/)),timestamp&&(b=timestamp[1]),item_id>0&&(object=jq("#whats-new-post-object").val()),a=jq.extend({action:"post_update",cookie:bp_get_cookies(),_wpnonce_post_update:jq("#_wpnonce_post_update").val(),content:content,object:object,item_id:item_id,since:b,_bp_as_nonce:jq("#_bp_as_nonce").val()||""},e),jq.post(ajaxurl,a,function(a){if(d.find("*").each(function(){(jq.nodeName(this,"textarea")||jq.nodeName(this,"input"))&&jq(this).prop("disabled",!1)}),a[0]+a[1]==="-1")d.prepend(a.substr(2,a.length)),jq("#"+d.attr("id")+" div.error").hide().fadeIn(200);else{if(0===jq("ul.activity-list").length&&(jq("div.error").slideUp(100).remove(),jq("#message").slideUp(100).remove(),jq("div.activity").append('<ul id="activity-stream" class="activity-list item-list">')),firstrow.hasClass("load-newest")&&firstrow.remove(),jq("#activity-stream").prepend(a),b||jq("#activity-stream li:first").addClass("new-update just-posted"),0!==jq("#latest-update").length){var c=jq("#activity-stream li.new-update .activity-content .activity-inner p").html(),e=jq("#activity-stream li.new-update .activity-content .activity-header p a.view").attr("href"),f=jq("#activity-stream li.new-update .activity-content .activity-inner p").text(),g="";""!==f&&(g=c+" "),g+='<a href="'+e+'" rel="nofollow">'+BP_DTheme.view+"</a>",jq("#latest-update").slideUp(300,function(){jq("#latest-update").html(g),jq("#latest-update").slideDown(300)})}jq("li.new-update").hide().slideDown(300),jq("li.new-update").removeClass("new-update"),jq("#whats-new").val(""),d.get(0).reset(),newest_activities="",activity_last_recorded=0}jq("#whats-new-options").slideUp(),jq("#whats-new-form textarea").animate({height:"2.2em"}),jq("#aw-whats-new-submit").prop("disabled",!0).removeClass("loading"),jq("#whats-new-content").removeClass("active")}),!1}),jq("div.activity-type-tabs").on("click",function(a){var b,c,d=jq(a.target).parent();if("STRONG"===a.target.nodeName||"SPAN"===a.target.nodeName)d=d.parent();else if("A"!==a.target.nodeName)return!1;return jq.cookie("bp-activity-oldestpage",1,{path:"/",secure:"https:"===window.location.protocol}),b=d.attr("id").substr(9,d.attr("id").length),c=jq("#activity-filter-select select").val(),"mentions"===b&&jq("#"+d.attr("id")+" a strong").remove(),bp_activity_request(b,c),!1}),jq("#activity-filter-select select").change(function(){var a,b=jq("div.activity-type-tabs li.selected"),c=jq(this).val();return a=b.length?b.attr("id").substr(9,b.attr("id").length):null,bp_activity_request(a,c),!1}),jq("div.activity").on("click",function(a){var b,c,d,e,f,g,h,i,j,k,l=jq(a.target);return l.hasClass("fav")||l.hasClass("unfav")?!l.hasClass("loading")&&(b=l.hasClass("fav")?"fav":"unfav",c=l.closest(".activity-item"),d=c.attr("id").substr(9,c.attr("id").length),l.addClass("loading"),jq.post(ajaxurl,{action:"activity_mark_"+b,cookie:bp_get_cookies(),id:d},function(a){l.removeClass("loading"),l.fadeOut(200,function(){jq(this).html(a),jq(this).attr("title","fav"===b?BP_DTheme.remove_fav:BP_DTheme.mark_as_fav),jq(this).fadeIn(200)}),"fav"===b?(jq(".item-list-tabs #activity-favs-personal-li").length||(jq(".item-list-tabs #activity-favorites").length||jq(".item-list-tabs ul #activity-mentions").before('<li id="activity-favorites"><a href="#">'+BP_DTheme.my_favs+" <span>0</span></a></li>"),jq(".item-list-tabs ul #activity-favorites span").html(Number(jq(".item-list-tabs ul #activity-favorites span").html())+1)),l.removeClass("fav"),l.addClass("unfav")):(l.removeClass("unfav"),l.addClass("fav"),jq(".item-list-tabs ul #activity-favorites span").html(Number(jq(".item-list-tabs ul #activity-favorites span").html())-1),Number(jq(".item-list-tabs ul #activity-favorites span").html())||(jq(".item-list-tabs ul #activity-favorites").hasClass("selected")&&bp_activity_request(null,null),jq(".item-list-tabs ul #activity-favorites").remove())),"activity-favorites"===jq(".item-list-tabs li.selected").attr("id")&&l.closest(".activity-item").slideUp(100)}),!1):l.hasClass("delete-activity")?(e=l.parents("div.activity ul li"),f=e.attr("id").substr(9,e.attr("id").length),g=l.attr("href"),h=g.split("_wpnonce="),i=e.prop("class").match(/date-recorded-([0-9]+)/),h=h[1],l.addClass("loading"),jq.post(ajaxurl,{action:"delete_activity",cookie:bp_get_cookies(),id:f,_wpnonce:h},function(a){a[0]+a[1]==="-1"?(e.prepend(a.substr(2,a.length)),e.children("#message").hide().fadeIn(300)):(e.slideUp(300),i&&activity_last_recorded===i[1]&&(newest_activities="",activity_last_recorded=0))}),!1):l.hasClass("spam-activity")?(e=l.parents("div.activity ul li"),i=e.prop("class").match(/date-recorded-([0-9]+)/),l.addClass("loading"),jq.post(ajaxurl,{action:"bp_spam_activity",cookie:encodeURIComponent(document.cookie),id:e.attr("id").substr(9,e.attr("id").length),_wpnonce:l.attr("href").split("_wpnonce=")[1]},function(a){a[0]+a[1]==="-1"?(e.prepend(a.substr(2,a.length)),e.children("#message").hide().fadeIn(300)):(e.slideUp(300),i&&activity_last_recorded===i[1]&&(newest_activities="",activity_last_recorded=0))}),!1):l.parent().hasClass("load-more")?(bp_ajax_request&&bp_ajax_request.abort(),jq("#buddypress li.load-more").addClass("loading"),null===jq.cookie("bp-activity-oldestpage")&&jq.cookie("bp-activity-oldestpage",1,{path:"/",secure:"https:"===window.location.protocol}),j=1*jq.cookie("bp-activity-oldestpage")+1,k=[],jq(".activity-list li.just-posted").each(function(){k.push(jq(this).attr("id").replace("activity-",""))}),load_more_args={action:"activity_get_older_updates",cookie:bp_get_cookies(),page:j,exclude_just_posted:k.join(",")},load_more_search=bp_get_querystring("s"),load_more_search&&(load_more_args.search_terms=load_more_search),bp_ajax_request=jq.post(ajaxurl,load_more_args,function(a){jq("#buddypress li.load-more").removeClass("loading"),jq.cookie("bp-activity-oldestpage",j,{path:"/",secure:"https:"===window.location.protocol}),jq("#buddypress ul.activity-list").append(a.contents),l.parent().hide()},"json"),!1):void(l.parent().hasClass("load-newest")&&(a.preventDefault(),l.parent().hide(),activity_html=jq.parseHTML(newest_activities),jq.each(activity_html,function(a,b){"LI"===b.nodeName&&jq(b).hasClass("just-posted")&&jq("#"+jq(b).attr("id")).length&&jq("#"+jq(b).attr("id")).remove()}),jq("#buddypress ul.activity-list").prepend(newest_activities),newest_activities=""))}),jq("div.activity").on("click",".activity-read-more a",function(a){var b,c,d=jq(a.target),e=d.parent().attr("id").split("-"),f=e[3],g=e[0];return b="acomment"===g?"acomment-content":"activity-inner",c=jq("#"+g+"-"+f+" ."+b+":first"),jq(d).addClass("loading"),jq.post(ajaxurl,{action:"get_single_activity_content",activity_id:f},function(a){jq(c).slideUp(300).html(a).slideDown(300)}),!1}),jq("form.ac-form").hide(),jq(".activity-comments").length&&bp_legacy_theme_hide_comments(),jq("div.activity").on("click",function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r=jq(a.target);return r.hasClass("acomment-reply")||r.parent().hasClass("acomment-reply")?(r.parent().hasClass("acomment-reply")&&(r=r.parent()),b=r.attr("id"),c=b.split("-"),d=c[2],e=r.attr("href").substr(10,r.attr("href").length),f=jq("#ac-form-"+d),f.css("display","none"),f.removeClass("root"),jq(".ac-form").hide(),f.children("div").each(function(){jq(this).hasClass("error")&&jq(this).hide()}),"comment"!==c[1]?jq("#acomment-"+e).append(f):jq("#activity-"+d+" .activity-comments").append(f),f.parent().hasClass("activity-comments")&&f.addClass("root"),f.slideDown(200),jq.scrollTo(f,500,{offset:-100,easing:"swing"}),jq("#ac-form-"+c[2]+" textarea").focus(),!1):"ac_form_submit"===r.attr("name")?(f=r.parents("form"),g=f.parent(),h=f.attr("id").split("-"),g.hasClass("activity-comments")?j=h[2]:(i=g.attr("id").split("-"),j=i[1]),content=jq("#"+f.attr("id")+" textarea"),jq("#"+f.attr("id")+" div.error").hide(),r.addClass("loading").prop("disabled",!0),content.addClass("loading").prop("disabled",!0),k={action:"new_activity_comment",cookie:bp_get_cookies(),_wpnonce_new_activity_comment:jq("#_wpnonce_new_activity_comment").val(),comment_id:j,form_id:h[2],content:content.val()},l=jq("#_bp_as_nonce_"+j).val(),l&&(k["_bp_as_nonce_"+j]=l),jq.post(ajaxurl,k,function(a){if(r.removeClass("loading"),content.removeClass("loading"),a[0]+a[1]==="-1")f.append(jq(a.substr(2,a.length)).hide().fadeIn(200));else{var b=f.parent();f.fadeOut(200,function(){0===b.children("ul").length&&(b.hasClass("activity-comments")?b.prepend("<ul></ul>"):b.append("<ul></ul>"));var c=jq.trim(a);b.children("ul").append(jq(c).hide().fadeIn(200)),f.children("textarea").val(""),b.parent().addClass("has-comments")}),jq("#"+f.attr("id")+" textarea").val(""),jq("#activity-"+h[2]+" a.acomment-reply span").html(Number(jq("#activity-"+h[2]+" a.acomment-reply span").html())+1),m=b.find(".show-all").find("a"),m&&(n=jq("li#activity-"+h[2]+" a.acomment-reply span").html(),m.html(BP_DTheme.show_x_comments.replace("%d",n)))}jq(r).prop("disabled",!1),jq(content).prop("disabled",!1)}),!1):r.hasClass("acomment-delete")?(o=r.attr("href"),p=r.parent().parent(),f=p.parents("div.activity-comments").children("form"),q=o.split("_wpnonce="),q=q[1],j=o.split("cid="),j=j[1].split("&"),j=j[0],r.addClass("loading"),jq(".activity-comments ul .error").remove(),p.parents(".activity-comments").append(f),jq.post(ajaxurl,{action:"delete_activity_comment",cookie:bp_get_cookies(),_wpnonce:q,id:j},function(a){if(a[0]+a[1]==="-1")p.prepend(jq(a.substr(2,a.length)).hide().fadeIn(200));else{var b,c,d,e=jq("#"+p.attr("id")+" ul").children("li"),f=0;jq(e).each(function(){jq(this).is(":hidden")||f++}),p.fadeOut(200,function(){p.remove()}),b=jq("#"+p.parents("#activity-stream > li").attr("id")+" a.acomment-reply span"),c=b.html()-(1+f),b.html(c),d=p.siblings(".show-all").find("a"),d&&d.html(BP_DTheme.show_x_comments.replace("%d",c)),0===c&&jq(p.parents("#activity-stream > li")).removeClass("has-comments")}}),!1):r.hasClass("spam-activity-comment")?(o=r.attr("href"),p=r.parent().parent(),r.addClass("loading"),jq(".activity-comments ul div.error").remove(),p.parents(".activity-comments").append(p.parents(".activity-comments").children("form")),jq.post(ajaxurl,{action:"bp_spam_activity_comment",cookie:encodeURIComponent(document.cookie),_wpnonce:o.split("_wpnonce=")[1],id:o.split("cid=")[1].split("&")[0]},function(a){if(a[0]+a[1]==="-1")p.prepend(jq(a.substr(2,a.length)).hide().fadeIn(200));else{var b,c=jq("#"+p.attr("id")+" ul").children("li"),d=0;jq(c).each(function(){jq(this).is(":hidden")||d++}),p.fadeOut(200),b=p.parents("#activity-stream > li"),jq("#"+b.attr("id")+" a.acomment-reply span").html(jq("#"+b.attr("id")+" a.acomment-reply span").html()-(1+d))}}),!1):r.parent().hasClass("show-all")?(r.parent().addClass("loading"),setTimeout(function(){r.parent().parent().children("li").fadeIn(200,function(){r.parent().remove()})},600),!1):r.hasClass("ac-reply-cancel")?(jq(r).closest(".ac-form").slideUp(200),!1):void 0}),jq(document).keydown(function(a){if(a=a||window.event,a.target?element=a.target:a.srcElement&&(element=a.srcElement),3===element.nodeType&&(element=element.parentNode),a.ctrlKey!==!0&&a.altKey!==!0&&a.metaKey!==!0){var b=a.keyCode?a.keyCode:a.which;27===b&&"TEXTAREA"===element.tagName&&jq(element).hasClass("ac-input")&&jq(element).parent().parent().parent().slideUp(200)}}),jq(".dir-search, .groups-members-search").on("click",function(a){if(!jq(this).hasClass("no-ajax")){var b,c,d,e,f=jq(a.target);return"submit"===f.attr("type")?(b=jq(".item-list-tabs li.selected").attr("id").split("-"),c=b[0],d=null,e=f.parent().find("#"+c+"_search").val(),"groups-members-search"===a.currentTarget.className&&(c="group_members",d="groups/single/members"),bp_filter_request(c,jq.cookie("bp-"+c+"-filter"),jq.cookie("bp-"+c+"-scope"),"div."+c,e,1,jq.cookie("bp-"+c+"-extras"),null,d),!1):void 0}}),jq("div.item-list-tabs").on("click",function(a){if(jq("body").hasClass("type")&&jq("body").hasClass("directory")&&jq(this).addClass("no-ajax"),!jq(this).hasClass("no-ajax")&&!jq(a.target).hasClass("no-ajax")){var b,c,d,e,f,g="SPAN"===a.target.nodeName?a.target.parentNode:a.target,h=jq(g).parent();return"LI"!==h[0].nodeName||h.hasClass("last")?void 0:(b=h.attr("id").split("-"),c=b[0],"activity"!==c&&(d=b[1],e=jq("#"+c+"-order-select select").val(),f=jq("#"+c+"_search").val(),bp_filter_request(c,e,d,"div."+c,f,1,jq.cookie("bp-"+c+"-extras")),!1))}}),jq("li.filter select").change(function(){var a,b,c,d,e,f,g,h;return a=jq(jq(".item-list-tabs li.selected").length?".item-list-tabs li.selected":this),b=a.attr("id").split("-"),c=b[0],d=b[1],e=jq(this).val(),f=!1,g=null,jq(".dir-search input").length&&(f=jq(".dir-search input").val()),h=jq(".groups-members-search input"),h.length&&(f=h.val(),c="members",d="groups"),"members"===c&&"groups"===d&&(c="group_members",g="groups/single/members"),"friends"===c&&(c="members"),bp_filter_request(c,e,d,"div."+c,f,1,jq.cookie("bp-"+c+"-extras"),null,g),!1}),jq("#buddypress").on("click",function(a){var b,c,d,e,f,g,h,i,j,k=jq(a.target);return!!k.hasClass("button")||(k.parent().parent().hasClass("pagination")&&!k.parent().parent().hasClass("no-ajax")?!k.hasClass("dots")&&!k.hasClass("current")&&(b=jq(jq(".item-list-tabs li.selected").length?".item-list-tabs li.selected":"li.filter select"),c=b.attr("id").split("-"),d=c[0],e=!1,f=jq(k).closest(".pagination-links").attr("id"),g=null,jq("div.dir-search input").length&&(e=jq(".dir-search input"),e=!e.val()&&bp_get_querystring(e.attr("name"))?jq(".dir-search input").prop("placeholder"):e.val()),h=jq(k).hasClass("next")||jq(k).hasClass("prev")?jq(".pagination span.current").html():jq(k).html(),h=Number(h.replace(/\D/g,"")),jq(k).hasClass("next")?h++:jq(k).hasClass("prev")&&h--,i=jq(".groups-members-search input"),i.length&&(e=i.val(),d="members"),"members"===d&&"groups"===c[1]&&(d="group_members",g="groups/single/members"),"admin"===d&&jq("body").hasClass("membership-requests")&&(d="requests"),j=f.indexOf("pag-bottom")!==-1?"pag-bottom":null,bp_filter_request(d,jq.cookie("bp-"+d+"-filter"),jq.cookie("bp-"+d+"-scope"),"div."+d,e,h,jq.cookie("bp-"+d+"-extras"),j,g),!1):void 0)}),jq("a.show-hide-new").on("click",function(){return!!jq("#new-topic-post").length&&(jq("#new-topic-post").is(":visible")?jq("#new-topic-post").slideUp(200):jq("#new-topic-post").slideDown(200,function(){jq("#topic_title").focus()}),!1)}),jq("#submit_topic_cancel").on("click",function(){return!!jq("#new-topic-post").length&&(jq("#new-topic-post").slideUp(200),!1)}),jq("#forum-directory-tags a").on("click",function(){return bp_filter_request("forums","tags",jq.cookie("bp-forums-scope"),"div.forums",jq(this).html().replace(/ /g,"-"),1,jq.cookie("bp-forums-extras")),!1}),jq("#send-invite-form").on("click","#invite-list input",function(){var a,b,c=jq("#send-invite-form > .invite").length;jq(".ajax-loader").toggle(),c&&jq(this).parents("ul").find("input").prop("disabled",!0),a=jq(this).val(),b=jq(this).prop("checked")===!0?"invite":"uninvite",c||jq(".item-list-tabs li.selected").addClass("loading"),jq.post(ajaxurl,{action:"groups_invite_user",friend_action:b,cookie:bp_get_cookies(),_wpnonce:jq("#_wpnonce_invite_uninvite_user").val(),friend_id:a,group_id:jq("#group_id").val()},function(d){jq("#message")&&jq("#message").hide(),c?bp_filter_request("invite","bp-invite-filter","bp-invite-scope","div.invite",!1,1,"","",""):(jq(".ajax-loader").toggle(),"invite"===b?jq("#friend-list").append(d):"uninvite"===b&&jq("#friend-list li#uid-"+a).remove(),jq(".item-list-tabs li.selected").removeClass("loading"))})}),jq("#send-invite-form").on("click","a.remove",function(){var a=jq("#send-invite-form > .invite").length,b=jq(this).attr("id");return jq(".ajax-loader").toggle(),b=b.split("-"),b=b[1],jq.post(ajaxurl,{action:"groups_invite_user",friend_action:"uninvite",cookie:bp_get_cookies(),_wpnonce:jq("#_wpnonce_invite_uninvite_user").val(),friend_id:b,group_id:jq("#group_id").val()},function(c){a?bp_filter_request("invite","bp-invite-filter","bp-invite-scope","div.invite",!1,1,"","",""):(jq(".ajax-loader").toggle(),jq("#friend-list #uid-"+b).remove(),jq("#invite-list #f-"+b).prop("checked",!1))}),!1}),jq(".visibility-toggle-link").on("click",function(a){a.preventDefault(),jq(this).parent().hide().addClass("field-visibility-settings-hide").siblings(".field-visibility-settings").show().addClass("field-visibility-settings-open")}),jq(".field-visibility-settings-close").on("click",function(a){a.preventDefault();var b=jq(this).parent(),c=b.find("input:checked").parent().text();b.hide().removeClass("field-visibility-settings-open").siblings(".field-visibility-settings-toggle").children(".current-visibility-level").text(c).end().show().removeClass("field-visibility-settings-hide")}),jq("#profile-edit-form input:not(:submit), #profile-edit-form textarea, #profile-edit-form select, #signup_form input:not(:submit), #signup_form textarea, #signup_form select").change(function(){var a=!0;jq("#profile-edit-form input:submit, #signup_form input:submit").on("click",function(){a=!1}),window.onbeforeunload=function(b){if(a)return BP_DTheme.unsaved_changes}}),jq("#friend-list a.accept, #friend-list a.reject").on("click",function(){var a,b=jq(this),c=jq(this).parents("#friend-list li"),d=jq(this).parents("li div.action"),e=c.attr("id").substr(11,c.attr("id").length),f=b.attr("href"),g=f.split("_wpnonce=")[1];return!jq(this).hasClass("accepted")&&!jq(this).hasClass("rejected")&&(jq(this).hasClass("accept")?(a="accept_friendship",d.children("a.reject").css("visibility","hidden")):(a="reject_friendship",d.children("a.accept").css("visibility","hidden")),b.addClass("loading"),jq.post(ajaxurl,{action:a,cookie:bp_get_cookies(),id:e,_wpnonce:g},function(a){b.removeClass("loading"),a[0]+a[1]==="-1"?(c.prepend(a.substr(2,a.length)),c.children("#message").hide().fadeIn(200)):b.fadeOut(100,function(){jq(this).hasClass("accept")?(d.children("a.reject").hide(),jq(this).html(BP_DTheme.accepted).contents().unwrap()):(d.children("a.accept").hide(),jq(this).html(BP_DTheme.rejected).contents().unwrap())})}),!1)}),jq("#members-dir-list, #members-group-list, #item-header").on("click",".friendship-button a",function(){jq(this).parent().addClass("loading");var a=jq(this).attr("id"),b=jq(this).attr("href"),c=jq(this);return a=a.split("-"),a=a[1],b=b.split("?_wpnonce="),b=b[1].split("&"),b=b[0],jq.post(ajaxurl,{action:"addremove_friend",cookie:bp_get_cookies(),fid:a,_wpnonce:b},function(a){var b=c.attr("rel");parentdiv=c.parent(),"add"===b?jq(parentdiv).fadeOut(200,function(){parentdiv.removeClass("add_friend"),parentdiv.removeClass("loading"),parentdiv.addClass("pending_friend"),parentdiv.fadeIn(200).html(a)}):"remove"===b&&jq(parentdiv).fadeOut(200,function(){parentdiv.removeClass("remove_friend"),parentdiv.removeClass("loading"),parentdiv.addClass("add"),parentdiv.fadeIn(200).html(a)})}),!1}),jq("#buddypress").on("click",".group-button .leave-group",function(){if(!1===confirm(BP_DTheme.leave_group_confirm))return!1}),jq("#groups-dir-list").on("click",".group-button a",function(){var a=jq(this).parent().attr("id"),b=jq(this).attr("href"),c=jq(this);return a=a.split("-"),a=a[1],b=b.split("?_wpnonce="),b=b[1].split("&"),b=b[0],(!c.hasClass("leave-group")||!1!==confirm(BP_DTheme.leave_group_confirm))&&(jq.post(ajaxurl,{action:"joinleave_group",cookie:bp_get_cookies(),gid:a,_wpnonce:b},function(a){var b=c.parent();jq("body.directory").length?jq(b).fadeOut(200,function(){b.fadeIn(200).html(a);var d=jq("#groups-personal span"),e=1;c.hasClass("leave-group")?(b.hasClass("hidden")&&b.closest("li").slideUp(200),e=0):c.hasClass("request-membership")&&(e=!1),d.length&&e!==!1&&(e?d.text((d.text()>>0)+1):d.text((d.text()>>0)-1))}):window.location.reload()}),!1)}),jq("#buddypress").on("click",".pending",function(){return!1}),jq("body").hasClass("register")){var d=jq("#signup_with_blog");d.prop("checked")||jq("#blog-details").toggle(),d.change(function(){jq("#blog-details").toggle()})}jq(".message-search").on("click",function(a){if(!jq(this).hasClass("no-ajax")){var b,c=jq(a.target);return"submit"===c.attr("type")||"button"===c.attr("type")?(b="messages",bp_filter_request(b,jq.cookie("bp-"+b+"-filter"),jq.cookie("bp-"+b+"-scope"),"div."+b,jq("#messages_search").val(),1,jq.cookie("bp-"+b+"-extras")),!1):void 0}}),jq("#send_reply_button").click(function(){var a=jq("#messages_order").val()||"ASC",b=jq("#message-recipients").offset(),c=jq("#send_reply_button");return jq(c).addClass("loading"),jq.post(ajaxurl,{action:"messages_send_reply",cookie:bp_get_cookies(),_wpnonce:jq("#send_message_nonce").val(),content:jq("#message_content").val(),send_to:jq("#send_to").val(),subject:jq("#subject").val(),thread_id:jq("#thread_id").val()},function(d){d[0]+d[1]==="-1"?jq("#send-reply").prepend(d.substr(2,d.length)):(jq("#send-reply #message").remove(),jq("#message_content").val(""),"ASC"===a?jq("#send-reply").before(d):(jq("#message-recipients").after(d),jq(window).scrollTop(b.top)),jq(".new-message").hide().slideDown(200,function(){jq(".new-message").removeClass("new-message")})),jq(c).removeClass("loading")}),!1}),jq("#mark_as_read, #mark_as_unread").click(function(){var a,b,c,d,e,f,g,h,i="",j=jq('#message-threads tr td input[type="checkbox"]');return"mark_as_unread"===jq(this).attr("id")?(a="read",b="unread",c=1,d=0,e="inline",f="messages_markunread"):(a="unread",b="read",c=0,d=1,e="none",f="messages_markread"),j.each(function(d){jq(this).is(":checked")&&jq("#m-"+jq(this).attr("value")).hasClass(a)&&(i+=jq(this).attr("value"),jq("#m-"+jq(this).attr("value")).removeClass(a),jq("#m-"+jq(this).attr("value")).addClass(b),h=jq("#m-"+jq(this).attr("value")+" td span.unread-count").html(),jq("#m-"+jq(this).attr("value")+" td span.unread-count").html(c),jq("#m-"+jq(this).attr("value")+" td span.unread-count").css("display",e),g=jq("tr.unread").length,jq("#user-messages span").html(g),d!==j.length-1&&(i+=","))}),jq.post(ajaxurl,{action:f,thread_ids:i}),!1}),jq("body.messages #item-body div.messages").on("change","#message-type-select",function(){var a=this.value,b=jq('td input[type="checkbox"]'),c="checked";switch(b.each(function(a){b[a].checked=""}),a){case"unread":b=jq('tr.unread td input[type="checkbox"]');break;case"read":b=jq('tr.read td input[type="checkbox"]');break;case"":c=""}b.each(function(a){b[a].checked=c})}),jq("body.messages #item-body div.messages").on("click",".messages-options-nav a",function(){if(-1!==jq.inArray(this.id,Array("delete_sentbox_messages","delete_inbox_messages")))return checkboxes_tosend="",checkboxes=jq('#message-threads tr td input[type="checkbox"]'),jq("#message").remove(),jq(this).addClass("loading"),jq(checkboxes).each(function(a){jq(this).is(":checked")&&(checkboxes_tosend+=jq(this).attr("value")+",")}),""===checkboxes_tosend?(jq(this).removeClass("loading"),!1):(jq.post(ajaxurl,{action:"messages_delete",thread_ids:checkboxes_tosend},function(a){a[0]+a[1]==="-1"?jq("#message-threads").prepend(a.substr(2,a.length)):(jq("#message-threads").before('<div id="message" class="updated"><p>'+a+"</p></div>"),jq(checkboxes).each(function(a){jq(this).is(":checked")&&(jq(this).attr("checked",!1),jq(this).parent().parent().fadeOut(150))})),jq("#message").hide().slideDown(150),jq("#delete_inbox_messages, #delete_sentbox_messages").removeClass("loading")}),!1)}),jq("#select-all-messages").click(function(a){this.checked?jq(".message-check").each(function(){this.checked=!0}):jq(".message-check").each(function(){this.checked=!1})}),jq("#messages-bulk-manage").attr("disabled","disabled"),jq("#messages-select").on("change",function(){jq("#messages-bulk-manage").attr("disabled",jq(this).val().length<=0)}),starAction=function(){var a=jq(this);return jq.post(ajaxurl,{action:"messages_star",message_id:a.data("message-id"),star_status:a.data("star-status"),nonce:a.data("star-nonce"),bulk:a.data("star-bulk")},function(b){1===parseInt(b,10)&&("unstar"===a.data("star-status")?(a.data("star-status","star"),a.removeClass("message-action-unstar").addClass("message-action-star"),a.find(".bp-screen-reader-text").text(BP_PM_Star.strings.text_star),1===BP_PM_Star.is_single_thread?a.prop("title",BP_PM_Star.strings.title_star):a.prop("title",BP_PM_Star.strings.title_star_thread)):(a.data("star-status","unstar"),a.removeClass("message-action-star").addClass("message-action-unstar"),a.find(".bp-screen-reader-text").text(BP_PM_Star.strings.text_unstar),1===BP_PM_Star.is_single_thread?a.prop("title",BP_PM_Star.strings.title_unstar):a.prop("title",BP_PM_Star.strings.title_unstar_thread)))}),!1},jq("#message-threads").on("click","td.thread-star a",starAction),jq("#message-thread").on("click",".message-star-actions a",starAction),jq("#message-threads td.bulk-select-check :checkbox").on("change",function(){var a=jq(this),b=a.closest("tr").find(".thread-star a");a.prop("checked")?"unstar"===b.data("star-status")?BP_PM_Star.star_counter++:BP_PM_Star.unstar_counter++:"unstar"===b.data("star-status")?BP_PM_Star.star_counter--:BP_PM_Star.unstar_counter--, -BP_PM_Star.star_counter>0&&0===parseInt(BP_PM_Star.unstar_counter,10)?jq('option[value="star"]').hide():jq('option[value="star"]').show(),BP_PM_Star.unstar_counter>0&&0===parseInt(BP_PM_Star.star_counter,10)?jq('option[value="unstar"]').hide():jq('option[value="unstar"]').show()}),jq("#select-all-notifications").click(function(a){this.checked?jq(".notification-check").each(function(){this.checked=!0}):jq(".notification-check").each(function(){this.checked=!1})}),jq("#notification-bulk-manage").attr("disabled","disabled"),jq("#notification-select").on("change",function(){jq("#notification-bulk-manage").attr("disabled",jq(this).val().length<=0)}),jq("#close-notice").on("click",function(){return jq(this).addClass("loading"),jq("#sidebar div.error").remove(),jq.post(ajaxurl,{action:"messages_close_notice",notice_id:jq(".notice").attr("rel").substr(2,jq(".notice").attr("rel").length)},function(a){jq("#close-notice").removeClass("loading"),a[0]+a[1]==="-1"?(jq(".notice").prepend(a.substr(2,a.length)),jq("#sidebar div.error").hide().fadeIn(200)):jq(".notice").slideUp(100)}),!1}),jq("#wp-admin-bar ul.main-nav li, #nav li").mouseover(function(){jq(this).addClass("sfhover")}),jq("#wp-admin-bar ul.main-nav li, #nav li").mouseout(function(){jq(this).removeClass("sfhover")}),jq("#wp-admin-bar-logout, a.logout").on("click",function(){jq.removeCookie("bp-activity-scope",{path:"/",secure:"https:"===window.location.protocol}),jq.removeCookie("bp-activity-filter",{path:"/",secure:"https:"===window.location.protocol}),jq.removeCookie("bp-activity-oldestpage",{path:"/",secure:"https:"===window.location.protocol});var a=["members","groups","blogs","forums"];jq(a).each(function(b){jq.removeCookie("bp-"+a[b]+"-scope",{path:"/",secure:"https:"===window.location.protocol}),jq.removeCookie("bp-"+a[b]+"-filter",{path:"/",secure:"https:"===window.location.protocol}),jq.removeCookie("bp-"+a[b]+"-extras",{path:"/",secure:"https:"===window.location.protocol})})}),jq("body").hasClass("no-js")&&jq("body").attr("class",jq("body").attr("class").replace(/no-js/,"js")),"undefined"!=typeof wp&&"undefined"!=typeof wp.heartbeat&&"undefined"!=typeof BP_DTheme.pulse&&(wp.heartbeat.interval(Number(BP_DTheme.pulse)),jq.fn.extend({"heartbeat-send":function(){return this.bind("heartbeat-send.buddypress")}}));var e=0;jq(document).on("heartbeat-send.buddypress",function(a,b){e=0,jq("#buddypress ul.activity-list li").first().prop("id")&&(timestamp=jq("#buddypress ul.activity-list li").first().prop("class").match(/date-recorded-([0-9]+)/),timestamp&&(e=timestamp[1])),(0===activity_last_recorded||Number(e)>activity_last_recorded)&&(activity_last_recorded=Number(e)),b.bp_activity_last_recorded=activity_last_recorded,last_recorded_search=bp_get_querystring("s"),last_recorded_search&&(b.bp_activity_last_recorded_search_terms=last_recorded_search)}),jq(document).on("heartbeat-tick",function(a,b){b.bp_activity_newest_activities&&(newest_activities=b.bp_activity_newest_activities.activities+newest_activities,activity_last_recorded=Number(b.bp_activity_newest_activities.last_recorded),jq("#buddypress ul.activity-list li").first().hasClass("load-newest")||jq("#buddypress ul.activity-list").prepend('<li class="load-newest"><a href="#newest">'+BP_DTheme.newest+"</a></li>"))})}); \ No newline at end of file +function bp_init_activity(){jq.cookie("bp-activity-oldestpage",1,{path:"/",secure:"https:"===window.location.protocol}),void 0!==jq.cookie("bp-activity-filter")&&jq("#activity-filter-select").length&&jq('#activity-filter-select select option[value="'+jq.cookie("bp-activity-filter")+'"]').prop("selected",!0),void 0!==jq.cookie("bp-activity-scope")&&jq(".activity-type-tabs").length&&(jq(".activity-type-tabs li").each(function(){jq(this).removeClass("selected")}),jq("#activity-"+jq.cookie("bp-activity-scope")+", .item-list-tabs li.current").addClass("selected"))}function bp_init_objects(a){jq(a).each(function(b){void 0!==jq.cookie("bp-"+a[b]+"-filter")&&jq("#"+a[b]+"-order-select select").length&&jq("#"+a[b]+'-order-select select option[value="'+jq.cookie("bp-"+a[b]+"-filter")+'"]').prop("selected",!0),void 0!==jq.cookie("bp-"+a[b]+"-scope")&&jq("div."+a[b]).length&&(jq(".item-list-tabs li").each(function(){jq(this).removeClass("selected")}),jq("#"+a[b]+"-"+jq.cookie("bp-"+a[b]+"-scope")+", #object-nav li.current").addClass("selected"))})}function bp_filter_request(a,b,c,d,e,f,g,h,i){return"activity"!==a&&(null===c&&(c="all"),jq.cookie("bp-"+a+"-scope",c,{path:"/",secure:"https:"===window.location.protocol}),jq.cookie("bp-"+a+"-filter",b,{path:"/",secure:"https:"===window.location.protocol}),jq.cookie("bp-"+a+"-extras",g,{path:"/",secure:"https:"===window.location.protocol}),jq(".item-list-tabs li").each(function(){jq(this).removeClass("selected")}),jq("#"+a+"-"+c+", #object-nav li.current").addClass("selected"),jq(".item-list-tabs li.selected").addClass("loading"),jq('.item-list-tabs select option[value="'+b+'"]').prop("selected",!0),"friends"!==a&&"group_members"!==a||(a="members"),bp_ajax_request&&bp_ajax_request.abort(),void(bp_ajax_request=jq.post(ajaxurl,{action:a+"_filter",cookie:bp_get_cookies(),object:a,filter:b,search_terms:e,scope:c,page:f,extras:g,template:i},function(a){if("pag-bottom"===h&&jq("#subnav").length){var b=jq("#subnav").parent();jq("html,body").animate({scrollTop:b.offset().top},"slow",function(){jq(d).fadeOut(100,function(){jq(this).html(a),jq(this).fadeIn(100)})})}else jq(d).fadeOut(100,function(){jq(this).html(a),jq(this).fadeIn(100)});jq(".item-list-tabs li.selected").removeClass("loading")})))}function bp_activity_request(a,b){null!==a&&jq.cookie("bp-activity-scope",a,{path:"/",secure:"https:"===window.location.protocol}),null!==b&&jq.cookie("bp-activity-filter",b,{path:"/",secure:"https:"===window.location.protocol}),jq.cookie("bp-activity-oldestpage",1,{path:"/",secure:"https:"===window.location.protocol}),jq(".item-list-tabs li").each(function(){jq(this).removeClass("selected loading")}),jq("#activity-"+a+", .item-list-tabs li.current").addClass("selected"),jq("#object-nav.item-list-tabs li.selected, div.activity-type-tabs li.selected").addClass("loading"),jq('#activity-filter-select select option[value="'+b+'"]').prop("selected",!0),jq(".widget_bp_activity_widget h2 span.ajax-loader").show(),bp_ajax_request&&bp_ajax_request.abort(),bp_ajax_request=jq.post(ajaxurl,{action:"activity_widget_filter",cookie:bp_get_cookies(),_wpnonce_activity_filter:jq("#_wpnonce_activity_filter").val(),scope:a,filter:b},function(a){jq(".widget_bp_activity_widget h2 span.ajax-loader").hide(),jq("div.activity").fadeOut(100,function(){jq(this).html(a.contents),jq(this).fadeIn(100),bp_legacy_theme_hide_comments()}),void 0!==a.feed_url&&jq(".directory #subnav li.feed a, .home-page #subnav li.feed a").attr("href",a.feed_url),jq(".item-list-tabs li.selected").removeClass("loading")},"json")}function bp_legacy_theme_hide_comments(){var a,b,c,d=jq("div.activity-comments");return!!d.length&&void d.each(function(){jq(this).children("ul").children("li").length<5||(comments_div=jq(this),a=comments_div.parents("#activity-stream > li"),b=jq(this).children("ul").children("li"),c=" ",jq("#"+a.attr("id")+" a.acomment-reply span").length&&(c=jq("#"+a.attr("id")+" a.acomment-reply span").html()),b.each(function(d){d<b.length-5&&(jq(this).addClass("hidden"),jq(this).toggle(),d||jq(this).before('<li class="show-all"><a href="#'+a.attr("id")+'/show-all/" title="'+BP_DTheme.show_all_comments+'">'+BP_DTheme.show_x_comments.replace("%d",c)+"</a></li>"))}))})}function checkAll(){var a,b=document.getElementsByTagName("input");for(a=0;a<b.length;a++)"checkbox"===b[a].type&&(""===$("check_all").checked?b[a].checked="":b[a].checked="checked")}function clear(a){if(a=document.getElementById(a)){var b=a.getElementsByTagName("INPUT"),c=a.getElementsByTagName("OPTION"),d=0;if(b)for(d=0;d<b.length;d++)b[d].checked="";if(c)for(d=0;d<c.length;d++)c[d].selected=!1}}function bp_get_cookies(){var a,b,c,d,e,f=document.cookie.split(";"),g={},h="bp-";for(a=0;a<f.length;a++)b=f[a],c=b.indexOf("="),d=jq.trim(unescape(b.slice(0,c))),e=unescape(b.slice(c+1)),0===d.indexOf(h)&&(g[d]=e);return encodeURIComponent(jq.param(g))}function bp_get_query_var(a,b){var c={};return b="undefined"==typeof b?location.search.substr(1).split("&"):b.split("?")[1].split("&"),b.forEach(function(a){c[a.split("=")[0]]=a.split("=")[1]&&decodeURIComponent(a.split("=")[1])}),!(!c.hasOwnProperty(a)||null==c[a])&&c[a]}var jq=jQuery,bp_ajax_request=null,newest_activities="",activity_last_recorded=0;jq(document).ready(function(){"-1"===window.location.search.indexOf("new")&&jq("div.forums").length?jq("#new-topic-post").hide():jq("#new-topic-post").show(),bp_init_activity();var a=["members","groups","blogs","forums","group_members"],b=jq("#whats-new");if(bp_init_objects(a),b.length&&bp_get_querystring("r")){var c=b.val();jq("#whats-new-options").slideDown(),b.animate({height:"3.8em"}),jq.scrollTo(b,500,{offset:-125,easing:"swing"}),b.val("").focus().val(c)}else jq("#whats-new-options").hide();if(b.focus(function(){jq("#whats-new-options").slideDown(),jq(this).animate({height:"3.8em"}),jq("#aw-whats-new-submit").prop("disabled",!1),jq(this).parent().addClass("active"),jq("#whats-new-content").addClass("active");var a=jq("form#whats-new-form"),b=jq("#activity-all");a.hasClass("submitted")&&a.removeClass("submitted"),b.length&&(b.hasClass("selected")?"-1"!==jq("#activity-filter-select select").val()&&(jq("#activity-filter-select select").val("-1"),jq("#activity-filter-select select").trigger("change")):(jq("#activity-filter-select select").val("-1"),b.children("a").trigger("click")))}),jq("#whats-new-form").on("focusout",function(a){var c=jq(this);setTimeout(function(){if(!c.find(":hover").length){if(""!==b.val())return;b.animate({height:"2.2em"}),jq("#whats-new-options").slideUp(),jq("#aw-whats-new-submit").prop("disabled",!0),jq("#whats-new-content").removeClass("active"),b.parent().removeClass("active")}},0)}),jq("#aw-whats-new-submit").on("click",function(){var a,b=0,c=jq(this),d=c.closest("form#whats-new-form"),e={};return jq.each(d.serializeArray(),function(a,b){"_"!==b.name.substr(0,1)&&"whats-new"!==b.name.substr(0,9)&&(e[b.name]?jq.isArray(e[b.name])?e[b.name].push(b.value):e[b.name]=new Array(e[b.name],b.value):e[b.name]=b.value)}),d.find("*").each(function(){(jq.nodeName(this,"textarea")||jq.nodeName(this,"input"))&&jq(this).prop("disabled",!0)}),jq("div.error").remove(),c.addClass("loading"),c.prop("disabled",!0),d.addClass("submitted"),object="",item_id=jq("#whats-new-post-in").val(),content=jq("#whats-new").val(),firstrow=jq("#buddypress ul.activity-list li").first(),activity_row=firstrow,timestamp=null,firstrow.length&&(activity_row.hasClass("load-newest")&&(activity_row=firstrow.next()),timestamp=activity_row.prop("class").match(/date-recorded-([0-9]+)/)),timestamp&&(b=timestamp[1]),item_id>0&&(object=jq("#whats-new-post-object").val()),a=jq.extend({action:"post_update",cookie:bp_get_cookies(),_wpnonce_post_update:jq("#_wpnonce_post_update").val(),content:content,object:object,item_id:item_id,since:b,_bp_as_nonce:jq("#_bp_as_nonce").val()||""},e),jq.post(ajaxurl,a,function(a){if(d.find("*").each(function(){(jq.nodeName(this,"textarea")||jq.nodeName(this,"input"))&&jq(this).prop("disabled",!1)}),a[0]+a[1]==="-1")d.prepend(a.substr(2,a.length)),jq("#"+d.attr("id")+" div.error").hide().fadeIn(200);else{if(0===jq("ul.activity-list").length&&(jq("div.error").slideUp(100).remove(),jq("#message").slideUp(100).remove(),jq("div.activity").append('<ul id="activity-stream" class="activity-list item-list">')),firstrow.hasClass("load-newest")&&firstrow.remove(),jq("#activity-stream").prepend(a),b||jq("#activity-stream li:first").addClass("new-update just-posted"),0!==jq("#latest-update").length){var c=jq("#activity-stream li.new-update .activity-content .activity-inner p").html(),e=jq("#activity-stream li.new-update .activity-content .activity-header p a.view").attr("href"),f=jq("#activity-stream li.new-update .activity-content .activity-inner p").text(),g="";""!==f&&(g=c+" "),g+='<a href="'+e+'" rel="nofollow">'+BP_DTheme.view+"</a>",jq("#latest-update").slideUp(300,function(){jq("#latest-update").html(g),jq("#latest-update").slideDown(300)})}jq("li.new-update").hide().slideDown(300),jq("li.new-update").removeClass("new-update"),jq("#whats-new").val(""),d.get(0).reset(),newest_activities="",activity_last_recorded=0}jq("#whats-new-options").slideUp(),jq("#whats-new-form textarea").animate({height:"2.2em"}),jq("#aw-whats-new-submit").prop("disabled",!0).removeClass("loading"),jq("#whats-new-content").removeClass("active")}),!1}),jq("div.activity-type-tabs").on("click",function(a){var b,c,d=jq(a.target).parent();if("STRONG"===a.target.nodeName||"SPAN"===a.target.nodeName)d=d.parent();else if("A"!==a.target.nodeName)return!1;return jq.cookie("bp-activity-oldestpage",1,{path:"/",secure:"https:"===window.location.protocol}),b=d.attr("id").substr(9,d.attr("id").length),c=jq("#activity-filter-select select").val(),"mentions"===b&&jq("#"+d.attr("id")+" a strong").remove(),bp_activity_request(b,c),!1}),jq("#activity-filter-select select").change(function(){var a,b=jq("div.activity-type-tabs li.selected"),c=jq(this).val();return a=b.length?b.attr("id").substr(9,b.attr("id").length):null,bp_activity_request(a,c),!1}),jq("div.activity").on("click",function(a){var b,c,d,e,f,g,h,i,j,k,l=jq(a.target);return l.hasClass("fav")||l.hasClass("unfav")?!l.hasClass("loading")&&(b=l.hasClass("fav")?"fav":"unfav",c=l.closest(".activity-item"),d=c.attr("id").substr(9,c.attr("id").length),h=bp_get_query_var("_wpnonce",l.attr("href")),l.addClass("loading"),jq.post(ajaxurl,{action:"activity_mark_"+b,cookie:bp_get_cookies(),id:d,nonce:h},function(a){l.removeClass("loading"),l.fadeOut(200,function(){jq(this).html(a),jq(this).attr("title","fav"===b?BP_DTheme.remove_fav:BP_DTheme.mark_as_fav),jq(this).fadeIn(200)}),"fav"===b?(jq(".item-list-tabs #activity-favs-personal-li").length||(jq(".item-list-tabs #activity-favorites").length||jq(".item-list-tabs ul #activity-mentions").before('<li id="activity-favorites"><a href="#">'+BP_DTheme.my_favs+" <span>0</span></a></li>"),jq(".item-list-tabs ul #activity-favorites span").html(Number(jq(".item-list-tabs ul #activity-favorites span").html())+1)),l.removeClass("fav"),l.addClass("unfav")):(l.removeClass("unfav"),l.addClass("fav"),jq(".item-list-tabs ul #activity-favorites span").html(Number(jq(".item-list-tabs ul #activity-favorites span").html())-1),Number(jq(".item-list-tabs ul #activity-favorites span").html())||(jq(".item-list-tabs ul #activity-favorites").hasClass("selected")&&bp_activity_request(null,null),jq(".item-list-tabs ul #activity-favorites").remove())),"activity-favorites"===jq(".item-list-tabs li.selected").attr("id")&&l.closest(".activity-item").slideUp(100)}),!1):l.hasClass("delete-activity")?(e=l.parents("div.activity ul li"),f=e.attr("id").substr(9,e.attr("id").length),g=l.attr("href"),h=g.split("_wpnonce="),i=e.prop("class").match(/date-recorded-([0-9]+)/),h=h[1],l.addClass("loading"),jq.post(ajaxurl,{action:"delete_activity",cookie:bp_get_cookies(),id:f,_wpnonce:h},function(a){a[0]+a[1]==="-1"?(e.prepend(a.substr(2,a.length)),e.children("#message").hide().fadeIn(300)):(e.slideUp(300),i&&activity_last_recorded===i[1]&&(newest_activities="",activity_last_recorded=0))}),!1):l.hasClass("spam-activity")?(e=l.parents("div.activity ul li"),i=e.prop("class").match(/date-recorded-([0-9]+)/),l.addClass("loading"),jq.post(ajaxurl,{action:"bp_spam_activity",cookie:encodeURIComponent(document.cookie),id:e.attr("id").substr(9,e.attr("id").length),_wpnonce:l.attr("href").split("_wpnonce=")[1]},function(a){a[0]+a[1]==="-1"?(e.prepend(a.substr(2,a.length)),e.children("#message").hide().fadeIn(300)):(e.slideUp(300),i&&activity_last_recorded===i[1]&&(newest_activities="",activity_last_recorded=0))}),!1):l.parent().hasClass("load-more")?(bp_ajax_request&&bp_ajax_request.abort(),jq("#buddypress li.load-more").addClass("loading"),null===jq.cookie("bp-activity-oldestpage")&&jq.cookie("bp-activity-oldestpage",1,{path:"/",secure:"https:"===window.location.protocol}),j=1*jq.cookie("bp-activity-oldestpage")+1,k=[],jq(".activity-list li.just-posted").each(function(){k.push(jq(this).attr("id").replace("activity-",""))}),load_more_args={action:"activity_get_older_updates",cookie:bp_get_cookies(),page:j,exclude_just_posted:k.join(",")},load_more_search=bp_get_querystring("s"),load_more_search&&(load_more_args.search_terms=load_more_search),bp_ajax_request=jq.post(ajaxurl,load_more_args,function(a){jq("#buddypress li.load-more").removeClass("loading"),jq.cookie("bp-activity-oldestpage",j,{path:"/",secure:"https:"===window.location.protocol}),jq("#buddypress ul.activity-list").append(a.contents),l.parent().hide()},"json"),!1):void(l.parent().hasClass("load-newest")&&(a.preventDefault(),l.parent().hide(),activity_html=jq.parseHTML(newest_activities),jq.each(activity_html,function(a,b){"LI"===b.nodeName&&jq(b).hasClass("just-posted")&&jq("#"+jq(b).attr("id")).length&&jq("#"+jq(b).attr("id")).remove()}),jq("#buddypress ul.activity-list").prepend(newest_activities),newest_activities=""))}),jq("div.activity").on("click",".activity-read-more a",function(a){var b,c,d=jq(a.target),e=d.parent().attr("id").split("-"),f=e[3],g=e[0];return b="acomment"===g?"acomment-content":"activity-inner",c=jq("#"+g+"-"+f+" ."+b+":first"),jq(d).addClass("loading"),jq.post(ajaxurl,{action:"get_single_activity_content",activity_id:f},function(a){jq(c).slideUp(300).html(a).slideDown(300)}),!1}),jq("form.ac-form").hide(),jq(".activity-comments").length&&bp_legacy_theme_hide_comments(),jq("div.activity").on("click",function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r=jq(a.target);return r.hasClass("acomment-reply")||r.parent().hasClass("acomment-reply")?(r.parent().hasClass("acomment-reply")&&(r=r.parent()),b=r.attr("id"),c=b.split("-"),d=c[2],e=r.attr("href").substr(10,r.attr("href").length),f=jq("#ac-form-"+d),f.css("display","none"),f.removeClass("root"),jq(".ac-form").hide(),f.children("div").each(function(){jq(this).hasClass("error")&&jq(this).hide()}),"comment"!==c[1]?jq("#acomment-"+e).append(f):jq("#activity-"+d+" .activity-comments").append(f),f.parent().hasClass("activity-comments")&&f.addClass("root"),f.slideDown(200),jq.scrollTo(f,500,{offset:-100,easing:"swing"}),jq("#ac-form-"+c[2]+" textarea").focus(),!1):"ac_form_submit"===r.attr("name")?(f=r.parents("form"),g=f.parent(),h=f.attr("id").split("-"),g.hasClass("activity-comments")?j=h[2]:(i=g.attr("id").split("-"),j=i[1]),content=jq("#"+f.attr("id")+" textarea"),jq("#"+f.attr("id")+" div.error").hide(),r.addClass("loading").prop("disabled",!0),content.addClass("loading").prop("disabled",!0),k={action:"new_activity_comment",cookie:bp_get_cookies(),_wpnonce_new_activity_comment:jq("#_wpnonce_new_activity_comment").val(),comment_id:j,form_id:h[2],content:content.val()},l=jq("#_bp_as_nonce_"+j).val(),l&&(k["_bp_as_nonce_"+j]=l),jq.post(ajaxurl,k,function(a){if(r.removeClass("loading"),content.removeClass("loading"),a[0]+a[1]==="-1")f.append(jq(a.substr(2,a.length)).hide().fadeIn(200));else{var b=f.parent();f.fadeOut(200,function(){0===b.children("ul").length&&(b.hasClass("activity-comments")?b.prepend("<ul></ul>"):b.append("<ul></ul>"));var c=jq.trim(a);b.children("ul").append(jq(c).hide().fadeIn(200)),f.children("textarea").val(""),b.parent().addClass("has-comments")}),jq("#"+f.attr("id")+" textarea").val(""),jq("#activity-"+h[2]+" a.acomment-reply span").html(Number(jq("#activity-"+h[2]+" a.acomment-reply span").html())+1),m=b.find(".show-all").find("a"),m&&(n=jq("li#activity-"+h[2]+" a.acomment-reply span").html(),m.html(BP_DTheme.show_x_comments.replace("%d",n)))}jq(r).prop("disabled",!1),jq(content).prop("disabled",!1)}),!1):r.hasClass("acomment-delete")?(o=r.attr("href"),p=r.parent().parent(),f=p.parents("div.activity-comments").children("form"),q=o.split("_wpnonce="),q=q[1],j=o.split("cid="),j=j[1].split("&"),j=j[0],r.addClass("loading"),jq(".activity-comments ul .error").remove(),p.parents(".activity-comments").append(f),jq.post(ajaxurl,{action:"delete_activity_comment",cookie:bp_get_cookies(),_wpnonce:q,id:j},function(a){if(a[0]+a[1]==="-1")p.prepend(jq(a.substr(2,a.length)).hide().fadeIn(200));else{var b,c,d,e=jq("#"+p.attr("id")+" ul").children("li"),f=0;jq(e).each(function(){jq(this).is(":hidden")||f++}),p.fadeOut(200,function(){p.remove()}),b=jq("#"+p.parents("#activity-stream > li").attr("id")+" a.acomment-reply span"),c=b.html()-(1+f),b.html(c),d=p.siblings(".show-all").find("a"),d&&d.html(BP_DTheme.show_x_comments.replace("%d",c)),0===c&&jq(p.parents("#activity-stream > li")).removeClass("has-comments")}}),!1):r.hasClass("spam-activity-comment")?(o=r.attr("href"),p=r.parent().parent(),r.addClass("loading"),jq(".activity-comments ul div.error").remove(),p.parents(".activity-comments").append(p.parents(".activity-comments").children("form")),jq.post(ajaxurl,{action:"bp_spam_activity_comment",cookie:encodeURIComponent(document.cookie),_wpnonce:o.split("_wpnonce=")[1],id:o.split("cid=")[1].split("&")[0]},function(a){if(a[0]+a[1]==="-1")p.prepend(jq(a.substr(2,a.length)).hide().fadeIn(200));else{var b,c=jq("#"+p.attr("id")+" ul").children("li"),d=0;jq(c).each(function(){jq(this).is(":hidden")||d++}),p.fadeOut(200),b=p.parents("#activity-stream > li"),jq("#"+b.attr("id")+" a.acomment-reply span").html(jq("#"+b.attr("id")+" a.acomment-reply span").html()-(1+d))}}),!1):r.parent().hasClass("show-all")?(r.parent().addClass("loading"),setTimeout(function(){r.parent().parent().children("li").fadeIn(200,function(){r.parent().remove()})},600),!1):r.hasClass("ac-reply-cancel")?(jq(r).closest(".ac-form").slideUp(200),!1):void 0}),jq(document).keydown(function(a){if(a=a||window.event,a.target?element=a.target:a.srcElement&&(element=a.srcElement),3===element.nodeType&&(element=element.parentNode),a.ctrlKey!==!0&&a.altKey!==!0&&a.metaKey!==!0){var b=a.keyCode?a.keyCode:a.which;27===b&&"TEXTAREA"===element.tagName&&jq(element).hasClass("ac-input")&&jq(element).parent().parent().parent().slideUp(200)}}),jq(".dir-search, .groups-members-search").on("click",function(a){if(!jq(this).hasClass("no-ajax")){var b,c,d,e,f=jq(a.target);return"submit"===f.attr("type")?(b=jq(".item-list-tabs li.selected").attr("id").split("-"),c=b[0],d=null,e=f.parent().find("#"+c+"_search").val(),"groups-members-search"===a.currentTarget.className&&(c="group_members",d="groups/single/members"),bp_filter_request(c,jq.cookie("bp-"+c+"-filter"),jq.cookie("bp-"+c+"-scope"),"div."+c,e,1,jq.cookie("bp-"+c+"-extras"),null,d),!1):void 0}}),jq("div.item-list-tabs").on("click",function(a){if(jq("body").hasClass("type")&&jq("body").hasClass("directory")&&jq(this).addClass("no-ajax"),!jq(this).hasClass("no-ajax")&&!jq(a.target).hasClass("no-ajax")){var b,c,d,e,f,g="SPAN"===a.target.nodeName?a.target.parentNode:a.target,h=jq(g).parent();return"LI"!==h[0].nodeName||h.hasClass("last")?void 0:(b=h.attr("id").split("-"),c=b[0],"activity"!==c&&(d=b[1],e=jq("#"+c+"-order-select select").val(),f=jq("#"+c+"_search").val(),bp_filter_request(c,e,d,"div."+c,f,1,jq.cookie("bp-"+c+"-extras")),!1))}}),jq("li.filter select").change(function(){var a,b,c,d,e,f,g,h;return a=jq(jq(".item-list-tabs li.selected").length?".item-list-tabs li.selected":this),b=a.attr("id").split("-"),c=b[0],d=b[1],e=jq(this).val(),f=!1,g=null,jq(".dir-search input").length&&(f=jq(".dir-search input").val()),h=jq(".groups-members-search input"),h.length&&(f=h.val(),c="members",d="groups"),"members"===c&&"groups"===d&&(c="group_members",g="groups/single/members"),"friends"===c&&(c="members"),bp_filter_request(c,e,d,"div."+c,f,1,jq.cookie("bp-"+c+"-extras"),null,g),!1}),jq("#buddypress").on("click",function(a){var b,c,d,e,f,g,h,i,j,k=jq(a.target);return!!k.hasClass("button")||(k.parent().parent().hasClass("pagination")&&!k.parent().parent().hasClass("no-ajax")?!k.hasClass("dots")&&!k.hasClass("current")&&(b=jq(jq(".item-list-tabs li.selected").length?".item-list-tabs li.selected":"li.filter select"),c=b.attr("id").split("-"),d=c[0],e=!1,f=jq(k).closest(".pagination-links").attr("id"),g=null,jq("div.dir-search input").length&&(e=jq(".dir-search input"),e=!e.val()&&bp_get_querystring(e.attr("name"))?jq(".dir-search input").prop("placeholder"):e.val()),h=jq(k).hasClass("next")||jq(k).hasClass("prev")?jq(".pagination span.current").html():jq(k).html(),h=Number(h.replace(/\D/g,"")),jq(k).hasClass("next")?h++:jq(k).hasClass("prev")&&h--,i=jq(".groups-members-search input"),i.length&&(e=i.val(),d="members"),"members"===d&&"groups"===c[1]&&(d="group_members",g="groups/single/members"),"admin"===d&&jq("body").hasClass("membership-requests")&&(d="requests"),j=f.indexOf("pag-bottom")!==-1?"pag-bottom":null,bp_filter_request(d,jq.cookie("bp-"+d+"-filter"),jq.cookie("bp-"+d+"-scope"),"div."+d,e,h,jq.cookie("bp-"+d+"-extras"),j,g),!1):void 0)}),jq("a.show-hide-new").on("click",function(){return!!jq("#new-topic-post").length&&(jq("#new-topic-post").is(":visible")?jq("#new-topic-post").slideUp(200):jq("#new-topic-post").slideDown(200,function(){jq("#topic_title").focus()}),!1)}),jq("#submit_topic_cancel").on("click",function(){return!!jq("#new-topic-post").length&&(jq("#new-topic-post").slideUp(200),!1)}),jq("#forum-directory-tags a").on("click",function(){return bp_filter_request("forums","tags",jq.cookie("bp-forums-scope"),"div.forums",jq(this).html().replace(/ /g,"-"),1,jq.cookie("bp-forums-extras")),!1}),jq("#send-invite-form").on("click","#invite-list input",function(){var a,b,c=jq("#send-invite-form > .invite").length;jq(".ajax-loader").toggle(),c&&jq(this).parents("ul").find("input").prop("disabled",!0),a=jq(this).val(),b=jq(this).prop("checked")===!0?"invite":"uninvite",c||jq(".item-list-tabs li.selected").addClass("loading"),jq.post(ajaxurl,{action:"groups_invite_user",friend_action:b,cookie:bp_get_cookies(),_wpnonce:jq("#_wpnonce_invite_uninvite_user").val(),friend_id:a,group_id:jq("#group_id").val()},function(d){jq("#message")&&jq("#message").hide(),c?bp_filter_request("invite","bp-invite-filter","bp-invite-scope","div.invite",!1,1,"","",""):(jq(".ajax-loader").toggle(),"invite"===b?jq("#friend-list").append(d):"uninvite"===b&&jq("#friend-list li#uid-"+a).remove(),jq(".item-list-tabs li.selected").removeClass("loading"))})}),jq("#send-invite-form").on("click","a.remove",function(){var a=jq("#send-invite-form > .invite").length,b=jq(this).attr("id");return jq(".ajax-loader").toggle(),b=b.split("-"),b=b[1],jq.post(ajaxurl,{action:"groups_invite_user",friend_action:"uninvite",cookie:bp_get_cookies(),_wpnonce:jq("#_wpnonce_invite_uninvite_user").val(),friend_id:b,group_id:jq("#group_id").val()},function(c){a?bp_filter_request("invite","bp-invite-filter","bp-invite-scope","div.invite",!1,1,"","",""):(jq(".ajax-loader").toggle(),jq("#friend-list #uid-"+b).remove(),jq("#invite-list #f-"+b).prop("checked",!1))}),!1}),jq(".visibility-toggle-link").on("click",function(a){a.preventDefault(),jq(this).parent().hide().addClass("field-visibility-settings-hide").siblings(".field-visibility-settings").show().addClass("field-visibility-settings-open")}),jq(".field-visibility-settings-close").on("click",function(a){a.preventDefault();var b=jq(this).parent(),c=b.find("input:checked").parent().text();b.hide().removeClass("field-visibility-settings-open").siblings(".field-visibility-settings-toggle").children(".current-visibility-level").text(c).end().show().removeClass("field-visibility-settings-hide")}),jq("#profile-edit-form input:not(:submit), #profile-edit-form textarea, #profile-edit-form select, #signup_form input:not(:submit), #signup_form textarea, #signup_form select").change(function(){var a=!0;jq("#profile-edit-form input:submit, #signup_form input:submit").on("click",function(){a=!1}),window.onbeforeunload=function(b){if(a)return BP_DTheme.unsaved_changes}}),jq("#friend-list a.accept, #friend-list a.reject").on("click",function(){var a,b=jq(this),c=jq(this).parents("#friend-list li"),d=jq(this).parents("li div.action"),e=c.attr("id").substr(11,c.attr("id").length),f=b.attr("href"),g=f.split("_wpnonce=")[1];return!jq(this).hasClass("accepted")&&!jq(this).hasClass("rejected")&&(jq(this).hasClass("accept")?(a="accept_friendship",d.children("a.reject").css("visibility","hidden")):(a="reject_friendship",d.children("a.accept").css("visibility","hidden")),b.addClass("loading"),jq.post(ajaxurl,{action:a,cookie:bp_get_cookies(),id:e,_wpnonce:g},function(a){b.removeClass("loading"),a[0]+a[1]==="-1"?(c.prepend(a.substr(2,a.length)),c.children("#message").hide().fadeIn(200)):b.fadeOut(100,function(){jq(this).hasClass("accept")?(d.children("a.reject").hide(),jq(this).html(BP_DTheme.accepted).contents().unwrap()):(d.children("a.accept").hide(),jq(this).html(BP_DTheme.rejected).contents().unwrap())})}),!1)}),jq("#members-dir-list, #members-group-list, #item-header").on("click",".friendship-button a",function(){jq(this).parent().addClass("loading");var a=jq(this).attr("id"),b=jq(this).attr("href"),c=jq(this);return a=a.split("-"),a=a[1],b=b.split("?_wpnonce="),b=b[1].split("&"),b=b[0],jq.post(ajaxurl,{action:"addremove_friend",cookie:bp_get_cookies(),fid:a,_wpnonce:b},function(a){var b=c.attr("rel");parentdiv=c.parent(),"add"===b?jq(parentdiv).fadeOut(200,function(){parentdiv.removeClass("add_friend"),parentdiv.removeClass("loading"),parentdiv.addClass("pending_friend"),parentdiv.fadeIn(200).html(a)}):"remove"===b&&jq(parentdiv).fadeOut(200,function(){parentdiv.removeClass("remove_friend"),parentdiv.removeClass("loading"),parentdiv.addClass("add"),parentdiv.fadeIn(200).html(a)})}),!1}),jq("#buddypress").on("click",".group-button .leave-group",function(){if(!1===confirm(BP_DTheme.leave_group_confirm))return!1}),jq("#groups-dir-list").on("click",".group-button a",function(){var a=jq(this).parent().attr("id"),b=jq(this).attr("href"),c=jq(this);return a=a.split("-"),a=a[1],b=b.split("?_wpnonce="),b=b[1].split("&"),b=b[0],(!c.hasClass("leave-group")||!1!==confirm(BP_DTheme.leave_group_confirm))&&(jq.post(ajaxurl,{action:"joinleave_group",cookie:bp_get_cookies(),gid:a,_wpnonce:b},function(a){var b=c.parent();jq("body.directory").length?jq(b).fadeOut(200,function(){b.fadeIn(200).html(a);var d=jq("#groups-personal span"),e=1;c.hasClass("leave-group")?(b.hasClass("hidden")&&b.closest("li").slideUp(200),e=0):c.hasClass("request-membership")&&(e=!1),d.length&&e!==!1&&(e?d.text((d.text()>>0)+1):d.text((d.text()>>0)-1))}):window.location.reload()}),!1)}),jq("#buddypress").on("click",".pending",function(){return!1}),jq("body").hasClass("register")){var d=jq("#signup_with_blog");d.prop("checked")||jq("#blog-details").toggle(),d.change(function(){jq("#blog-details").toggle()})}jq(".message-search").on("click",function(a){if(!jq(this).hasClass("no-ajax")){var b,c=jq(a.target);return"submit"===c.attr("type")||"button"===c.attr("type")?(b="messages",bp_filter_request(b,jq.cookie("bp-"+b+"-filter"),jq.cookie("bp-"+b+"-scope"),"div."+b,jq("#messages_search").val(),1,jq.cookie("bp-"+b+"-extras")),!1):void 0}}),jq("#send_reply_button").click(function(){var a=jq("#messages_order").val()||"ASC",b=jq("#message-recipients").offset(),c=jq("#send_reply_button");return jq(c).addClass("loading"),jq.post(ajaxurl,{action:"messages_send_reply",cookie:bp_get_cookies(),_wpnonce:jq("#send_message_nonce").val(),content:jq("#message_content").val(),send_to:jq("#send_to").val(),subject:jq("#subject").val(),thread_id:jq("#thread_id").val()},function(d){d[0]+d[1]==="-1"?jq("#send-reply").prepend(d.substr(2,d.length)):(jq("#send-reply #message").remove(),jq("#message_content").val(""),"ASC"===a?jq("#send-reply").before(d):(jq("#message-recipients").after(d),jq(window).scrollTop(b.top)),jq(".new-message").hide().slideDown(200,function(){jq(".new-message").removeClass("new-message")})),jq(c).removeClass("loading")}),!1}),jq("body.messages #item-body div.messages").on("change","#message-type-select",function(){var a=this.value,b=jq('td input[type="checkbox"]'),c="checked";switch(b.each(function(a){b[a].checked=""}),a){case"unread":b=jq('tr.unread td input[type="checkbox"]');break;case"read":b=jq('tr.read td input[type="checkbox"]');break;case"":c=""}b.each(function(a){b[a].checked=c})}),jq("#select-all-messages").click(function(a){this.checked?jq(".message-check").each(function(){this.checked=!0}):jq(".message-check").each(function(){this.checked=!1})}),jq("#messages-bulk-manage").attr("disabled","disabled"),jq("#messages-select").on("change",function(){jq("#messages-bulk-manage").attr("disabled",jq(this).val().length<=0)}),starAction=function(){var a=jq(this);return jq.post(ajaxurl,{action:"messages_star",message_id:a.data("message-id"),star_status:a.data("star-status"),nonce:a.data("star-nonce"),bulk:a.data("star-bulk")},function(b){1===parseInt(b,10)&&("unstar"===a.data("star-status")?(a.data("star-status","star"),a.removeClass("message-action-unstar").addClass("message-action-star"),a.find(".bp-screen-reader-text").text(BP_PM_Star.strings.text_star),1===BP_PM_Star.is_single_thread?a.prop("title",BP_PM_Star.strings.title_star):a.prop("title",BP_PM_Star.strings.title_star_thread)):(a.data("star-status","unstar"),a.removeClass("message-action-star").addClass("message-action-unstar"),a.find(".bp-screen-reader-text").text(BP_PM_Star.strings.text_unstar),1===BP_PM_Star.is_single_thread?a.prop("title",BP_PM_Star.strings.title_unstar):a.prop("title",BP_PM_Star.strings.title_unstar_thread)))}),!1},jq("#message-threads").on("click","td.thread-star a",starAction),jq("#message-thread").on("click",".message-star-actions a",starAction),jq("#message-threads td.bulk-select-check :checkbox").on("change",function(){var a=jq(this),b=a.closest("tr").find(".thread-star a");a.prop("checked")?"unstar"===b.data("star-status")?BP_PM_Star.star_counter++:BP_PM_Star.unstar_counter++:"unstar"===b.data("star-status")?BP_PM_Star.star_counter--:BP_PM_Star.unstar_counter--,BP_PM_Star.star_counter>0&&0===parseInt(BP_PM_Star.unstar_counter,10)?jq('option[value="star"]').hide():jq('option[value="star"]').show(),BP_PM_Star.unstar_counter>0&&0===parseInt(BP_PM_Star.star_counter,10)?jq('option[value="unstar"]').hide():jq('option[value="unstar"]').show()}),jq("#select-all-notifications").click(function(a){this.checked?jq(".notification-check").each(function(){this.checked=!0}):jq(".notification-check").each(function(){this.checked=!1})}),jq("#notification-bulk-manage").attr("disabled","disabled"),jq("#notification-select").on("change",function(){jq("#notification-bulk-manage").attr("disabled",jq(this).val().length<=0)}),jq("#close-notice").on("click",function(){return jq(this).addClass("loading"),jq("#sidebar div.error").remove(),jq.post(ajaxurl,{action:"messages_close_notice",notice_id:jq(".notice").attr("rel").substr(2,jq(".notice").attr("rel").length),nonce:jq("#close-notice-nonce").val()},function(a){jq("#close-notice").removeClass("loading"),a[0]+a[1]==="-1"?(jq(".notice").prepend(a.substr(2,a.length)),jq("#sidebar div.error").hide().fadeIn(200)):jq(".notice").slideUp(100)}),!1}),jq("#wp-admin-bar ul.main-nav li, #nav li").mouseover(function(){jq(this).addClass("sfhover")}),jq("#wp-admin-bar ul.main-nav li, #nav li").mouseout(function(){jq(this).removeClass("sfhover")}),jq("#wp-admin-bar-logout, a.logout").on("click",function(){ +jq.removeCookie("bp-activity-scope",{path:"/",secure:"https:"===window.location.protocol}),jq.removeCookie("bp-activity-filter",{path:"/",secure:"https:"===window.location.protocol}),jq.removeCookie("bp-activity-oldestpage",{path:"/",secure:"https:"===window.location.protocol});var a=["members","groups","blogs","forums"];jq(a).each(function(b){jq.removeCookie("bp-"+a[b]+"-scope",{path:"/",secure:"https:"===window.location.protocol}),jq.removeCookie("bp-"+a[b]+"-filter",{path:"/",secure:"https:"===window.location.protocol}),jq.removeCookie("bp-"+a[b]+"-extras",{path:"/",secure:"https:"===window.location.protocol})})}),jq("body").hasClass("no-js")&&jq("body").attr("class",jq("body").attr("class").replace(/no-js/,"js")),"undefined"!=typeof wp&&"undefined"!=typeof wp.heartbeat&&"undefined"!=typeof BP_DTheme.pulse&&(wp.heartbeat.interval(Number(BP_DTheme.pulse)),jq.fn.extend({"heartbeat-send":function(){return this.bind("heartbeat-send.buddypress")}}));var e=0;jq(document).on("heartbeat-send.buddypress",function(a,b){e=0,jq("#buddypress ul.activity-list li").first().prop("id")&&(timestamp=jq("#buddypress ul.activity-list li").first().prop("class").match(/date-recorded-([0-9]+)/),timestamp&&(e=timestamp[1])),(0===activity_last_recorded||Number(e)>activity_last_recorded)&&(activity_last_recorded=Number(e)),b.bp_activity_last_recorded=activity_last_recorded,last_recorded_search=bp_get_querystring("s"),last_recorded_search&&(b.bp_activity_last_recorded_search_terms=last_recorded_search)}),jq(document).on("heartbeat-tick",function(a,b){b.bp_activity_newest_activities&&(newest_activities=b.bp_activity_newest_activities.activities+newest_activities,activity_last_recorded=Number(b.bp_activity_newest_activities.last_recorded),jq("#buddypress ul.activity-list li").first().hasClass("load-newest")||jq("#buddypress ul.activity-list").prepend('<li class="load-newest"><a href="#newest">'+BP_DTheme.newest+"</a></li>"))})}); \ No newline at end of file diff --git a/wp-content/plugins/buddypress/bp-themes/bp-default/_inc/ajax.php b/wp-content/plugins/buddypress/bp-themes/bp-default/_inc/ajax.php index dc989db42..87fbad701 100644 --- a/wp-content/plugins/buddypress/bp-themes/bp-default/_inc/ajax.php +++ b/wp-content/plugins/buddypress/bp-themes/bp-default/_inc/ajax.php @@ -238,7 +238,10 @@ function bp_dtheme_activity_template_loader() { break; case 'mentions': $feed_url = bp_loggedin_user_domain() . bp_get_activity_slug() . '/mentions/feed/'; - bp_activity_clear_new_mentions( bp_loggedin_user_id() ); + + if ( isset( $_POST['_wpnonce_activity_filter'] ) && wp_verify_nonce( wp_unslash( $_POST['_wpnonce_activity_filter'] ), 'activity_filter' ) ) { + bp_activity_clear_new_mentions( bp_loggedin_user_id() ); + } break; default: $feed_url = home_url( bp_get_activity_root_slug() . '/feed/' ); @@ -495,6 +498,16 @@ function bp_dtheme_mark_activity_favorite() { if ( 'POST' !== strtoupper( $_SERVER['REQUEST_METHOD'] ) ) return; + if ( ! isset( $_POST['nonce'] ) ) { + return; + } + + // Either the 'mark' or 'unmark' nonce is accepted, for backward compatibility. + $nonce = wp_unslash( $_POST['nonce'] ); + if ( ! wp_verify_nonce( $nonce, 'mark_favorite' ) && ! wp_verify_nonce( $nonce, 'unmark_favorite' ) ) { + return; + } + if ( bp_activity_add_user_favorite( $_POST['id'] ) ) _e( 'Remove Favorite', 'buddypress' ); else @@ -514,6 +527,16 @@ function bp_dtheme_unmark_activity_favorite() { if ( 'POST' !== strtoupper( $_SERVER['REQUEST_METHOD'] ) ) return; + if ( ! isset( $_POST['nonce'] ) ) { + return; + } + + // Either the 'mark' or 'unmark' nonce is accepted, for backward compatibility. + $nonce = wp_unslash( $_POST['nonce'] ); + if ( ! wp_verify_nonce( $nonce, 'mark_favorite' ) && ! wp_verify_nonce( $nonce, 'unmark_favorite' ) ) { + return; + } + if ( bp_activity_remove_user_favorite( $_POST['id'] ) ) _e( 'Favorite', 'buddypress' ); else @@ -802,7 +825,9 @@ function bp_dtheme_ajax_close_notice() { if ( 'POST' !== strtoupper( $_SERVER['REQUEST_METHOD'] ) ) return; - if ( ! isset( $_POST['notice_id'] ) ) { + $nonce_check = isset( $_POST['nonce'] ) && wp_verify_nonce( wp_unslash( $_POST['nonce'] ), 'bp_messages_close_notice' ); + + if ( ! $nonce_check || ! isset( $_POST['notice_id'] ) ) { echo "-1<div id='message' class='error'><p>" . __( 'There was a problem closing the notice.', 'buddypress' ) . '</p></div>'; } else { @@ -871,7 +896,9 @@ function bp_dtheme_ajax_message_markunread() { if ( 'POST' !== strtoupper( $_SERVER['REQUEST_METHOD'] ) ) return; - if ( ! isset($_POST['thread_ids']) ) { + $nonce_check = isset( $_POST['nonce'] ) && wp_verify_nonce( wp_unslash( $_POST['nonce'] ), 'bp_messages_mark_messages_unread' ); + + if ( ! $nonce_check || ! isset( $_POST['thread_ids'] ) ) { echo "-1<div id='message' class='error'><p>" . __( 'There was a problem marking messages as unread.', 'buddypress' ) . '</p></div>'; } else { @@ -896,7 +923,9 @@ function bp_dtheme_ajax_message_markread() { if ( 'POST' !== strtoupper( $_SERVER['REQUEST_METHOD'] ) ) return; - if ( ! isset($_POST['thread_ids']) ) { + $nonce_check = isset( $_POST['nonce'] ) && wp_verify_nonce( wp_unslash( $_POST['nonce'] ), 'bp_messages_mark_messages_read' ); + + if ( ! $nonce_check || ! isset( $_POST['thread_ids'] ) ) { echo "-1<div id='message' class='error'><p>" . __('There was a problem marking messages as read.', 'buddypress' ) . '</p></div>'; } else { @@ -921,7 +950,9 @@ function bp_dtheme_ajax_messages_delete() { if ( 'POST' !== strtoupper( $_SERVER['REQUEST_METHOD'] ) ) return; - if ( ! isset($_POST['thread_ids']) ) { + $nonce_check = isset( $_POST['nonce'] ) && wp_verify_nonce( wp_unslash( $_POST['nonce'] ), 'bp_messages_delete_selected' ); + + if ( ! $nonce_check || ! isset($_POST['thread_ids']) ) { echo "-1<div id='message' class='error'><p>" . __( 'There was a problem deleting messages.', 'buddypress' ) . '</p></div>'; } else { diff --git a/wp-content/plugins/buddypress/bp-themes/bp-default/_inc/global.js b/wp-content/plugins/buddypress/bp-themes/bp-default/_inc/global.js index 6e0be1301..4bbbd6201 100644 --- a/wp-content/plugins/buddypress/bp-themes/bp-default/_inc/global.js +++ b/wp-content/plugins/buddypress/bp-themes/bp-default/_inc/global.js @@ -217,13 +217,15 @@ jq(document).ready( function() { var type = target.hasClass('fav') ? 'fav' : 'unfav'; var parent = target.closest('.activity-item'); var parent_id = parent.attr('id').substr( 9, parent.attr('id').length ); + var nonce = bp_get_query_var( '_wpnonce', target.attr( 'href' ) ); target.addClass('loading'); jq.post( ajaxurl, { action: 'activity_mark_' + type, 'cookie': bp_get_cookies(), - 'id': parent_id + 'id': parent_id, + nonce: nonce }, function(response) { target.removeClass('loading'); @@ -1150,6 +1152,7 @@ jq(document).ready( function() { var inboxCount = 0; var unreadCountDisplay = 'inline'; var action = 'messages_markunread'; + var nonce = jq( '#mark-messages-unread-nonce' ).val(); } else { var currentClass = 'unread' var newClass = 'read' @@ -1157,6 +1160,7 @@ jq(document).ready( function() { var inboxCount = 1; var unreadCountDisplay = 'none'; var action = 'messages_markread'; + var nonce = jq( '#mark-messages-read-nonce' ).val(); } checkboxes.each( function(i) { @@ -1182,7 +1186,8 @@ jq(document).ready( function() { }); jq.post( ajaxurl, { action: action, - 'thread_ids': checkboxes_tosend + 'thread_ids': checkboxes_tosend, + nonce : nonce }); return false; }); @@ -1238,7 +1243,8 @@ jq(document).ready( function() { jq.post( ajaxurl, { action: 'messages_delete', - 'thread_ids': checkboxes_tosend + 'thread_ids': checkboxes_tosend, + nonce: jq( '#delete-selected-nonce' ).val() }, function(response) { if ( response[0] + response[1] == "-1" ) { jq('#message-threads').prepend( response.substr( 2, response.length ) ); @@ -1269,7 +1275,8 @@ jq(document).ready( function() { jq.post( ajaxurl, { action: 'messages_close_notice', - 'notice_id': jq('.notice').attr('rel').substr( 2, jq('.notice').attr('rel').length ) + 'notice_id': jq('.notice').attr('rel').substr( 2, jq('.notice').attr('rel').length ), + nonce: jq( '#close-notice-nonce' ).val() }, function(response) { jq("a#close-notice").removeClass('loading'); @@ -1571,3 +1578,32 @@ function bp_get_cookies() { // returns BP cookies as querystring return encodeURIComponent( jq.param(bpCookies) ); } + +/** + * Get a querystring parameter from a URL. + * + * @param {String} Query string parameter name. + * @param {String} URL to parse. Defaults to current URL. + */ +function bp_get_query_var( param, url ) { + var qs = {}; + + // Use current URL if no URL passed. + if ( typeof url === 'undefined' ) { + url = location.search.substr(1).split('&'); + } else { + url = url.split('?')[1].split('&'); + } + + // Parse querystring into object props. + // http://stackoverflow.com/a/21152762 + url.forEach(function(item) { + qs[item.split("=")[0]] = item.split("=")[1] && decodeURIComponent( item.split("=")[1] ); + }); + + if ( qs.hasOwnProperty( param ) && qs[param] != null ) { + return qs[param]; + } else { + return false; + } +} \ No newline at end of file diff --git a/wp-content/plugins/buddypress/bp-xprofile/admin/css/admin-rtl.css b/wp-content/plugins/buddypress/bp-xprofile/admin/css/admin-rtl.css index b99b3d79a..31d5cf111 100644 --- a/wp-content/plugins/buddypress/bp-xprofile/admin/css/admin-rtl.css +++ b/wp-content/plugins/buddypress/bp-xprofile/admin/css/admin-rtl.css @@ -96,8 +96,8 @@ .bp-option a.delete, .field-wrapper a.deletion, .tab-toolbar a.deletion { - color: #f00; - border-bottom: 1px solid #f00; + color: #a00; + border-bottom: 1px solid #a00; text-decoration: none; padding: 0; } diff --git a/wp-content/plugins/buddypress/bp-xprofile/admin/css/admin-rtl.min.css b/wp-content/plugins/buddypress/bp-xprofile/admin/css/admin-rtl.min.css index 2d86c5062..401f62d26 100644 --- a/wp-content/plugins/buddypress/bp-xprofile/admin/css/admin-rtl.min.css +++ b/wp-content/plugins/buddypress/bp-xprofile/admin/css/admin-rtl.min.css @@ -1 +1 @@ -#tabs,.field-group .xprofile-field{position:relative}@-o-keyframes tab-throb{from,to{box-shadow:0 0 10px #1e8cbe}50%{box-shadow:0 0 0 #1e8cbe}}@-webkit-keyframes tab-throb{from,to{box-shadow:0 0 10px #1e8cbe}50%{box-shadow:0 0 0 #1e8cbe}}@-moz-keyframes tab-throb{from,to{box-shadow:0 0 10px #1e8cbe}50%{box-shadow:0 0 0 #1e8cbe}}#profile-field-form{margin-top:12px}p.nofields{margin:20px 0 0}ul#field-group-tabs{float:right;padding:0 15px 0 0;margin:0;display:none}ul#field-group-tabs li{float:right;margin-left:8px;margin-bottom:-1px}ul#field-group-tabs li.ui-state-hover a.ui-tab{color:#d54e21}ul#field-group-tabs li.ui-state-acceptable:not(.ui-state-active) a.ui-tab{-webkit-animation:tab-throb 2s infinite;-moz-animation:tab-throb 2s infinite;-o-animation:tab-throb 2s infinite;animation:tab-throb 2s infinite}ul#field-group-tabs li.drop-candidate.ui-state-acceptable:not(.ui-state-active) a.ui-tab{-webkit-box-shadow:0 0 10px green;-moz-box-shadow:0 0 10px green;-o-box-shadow:0 0 10px green;box-shadow:0 0 10px green;-webkit-animation:none;-moz-animation:none;-o-animation:none;animation:none;color:#000}ul#field-group-tabs li a.ui-tab{font-size:14px;display:block;margin-top:3px;padding:5px 10px 6px;border:1px solid #e5e5e5;background-color:#f5f5f5;text-decoration:none;color:#000;outline:0}ul#field-group-tabs li.ui-state-active a.ui-tab{background-color:#fff;margin-top:0;padding:7px 10px;border-bottom:1px solid transparent;color:#000}.tab-toolbar{clear:right;background:#fff;border-width:1px;border-color:#e5e5e5;border-style:solid;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04);padding:10px;margin-bottom:10px}.bp-option a.delete,.field-wrapper a.deletion,.tab-toolbar a.deletion{color:red;border-bottom:1px solid red;text-decoration:none;padding:0}div.delete-button{float:left;line-height:28px}div.field-group{clear:right}.field-group{cursor:default;border:1px solid #e5e5e5;background:#fff;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04);margin-top:10px;padding:0 20px 20px}.field-group fieldset{position:relative;border:1px solid #ddd;margin:20px 0 0;cursor:move;background:#fafafa;padding:10px 0 0}.field-group fieldset legend{position:absolute;top:10px;right:10px;padding:0}fieldset.checkbox div label,fieldset.radio div div label{margin-left:20px}fieldset.clear-value{margin-right:10px}fieldset div.field-wrapper{padding:25px 10px 10px}.field-group div.actions{float:none;border-top:1px solid #ddd;margin:10px 0 0;padding-top:10px}.field-group div.actions a,.field-group div.actions button,.field-group div.actions input{float:none}.field-group fieldset:hover{border-color:#999}.field-group fieldset:hover div.actions{display:block}#field-group-tabs .ui-sortable-placeholder,.bp-options-box .ui-sortable-placeholder,.field-group fieldset.ui-sortable-placeholder{border:1px dashed #999;background-color:#fff;visibility:visible!important}#field-group-tabs .ui-sortable-placeholder{background:0 0;border-bottom:none;margin:-1px 0 -1px 6px}ul.forTab{list-style:none;padding:0;margin:0 1em 0 0}ul.forTab li{margin:0 0 1em}ul.forTab li label{display:block}ul.forTab li input{font-size:1.4em}p.success{background:green}p.err{border-top:2px solid red;border-bottom:2px solid red;color:red;padding:5px 0;width:40%}span.desc,span.signup-description{display:block;font-size:11px;color:#555}ul.multi-checkbox{margin:0 0 0 5px;padding:.5em .9em;height:10em;overflow:auto;list-style:none;border:1px solid #ccc;width:90%}ul.multi-checkbox li{padding:0;margin:0}div.bp-option{background:#fafafa;border:1px solid #dfdfdf;margin:10px 0;padding:10px 5px}div.bp-option:hover{border:1px solid #999}.bp-option-icon{font:400 20px/1 dashicons;speak:none;display:inline-block;padding:0 2px 0 0;top:5px;position:relative;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important;color:#888}div.bp-option .grabber:before{content:"\f329"}th a{background:#fff;padding:2px 5px;top:-2px}textarea#description,textarea#group_description{border:1px solid #ddd;width:100%}#bp-xprofile-add-field .titlewrap,#bp-xprofile-add-field-group .titlewrap{margin-bottom:20px}#bp-xprofile-add-field #post-body-content{margin-bottom:0}p.member-type-none-notice,span.member-type-none-notice{color:red}.hide{display:none;visibility:hidden}.form-table.bp-date-options{margin:0 8px}.form-table.bp-date-options th{width:150px}.form-table td .date-format-section select{margin-top:-2px}.date-format-label{display:inline-block;width:150px}.date-format-custom-value,.date-range-numeric{width:56px}.bp-date-range-type-label{float:right;font-style:italic;width:80px}.bp-date-range-type-values{margin-left:25px;padding-right:100px}#bp-xprofile-add-field select#fieldtype{max-width:100%;word-wrap:break-word;word-break:break-all}@media screen and (max-width:782px){.bp-date-formats .bp-date-format-option:first-of-type{margin-top:1em}.bp-range-types .bp-date-format-option{margin-bottom:1em;margin-top:1em}.form-table td input.date-format-custom-value,.form-table td input.date-range-numeric{display:inline-block;margin-left:10px;width:56px}.form-table td .bp-date-range-type-values select{display:inline-block;width:auto}.bp-date-range-type-label{float:none;width:auto}.bp-date-range-type-values{padding-right:0;margin-right:35px}}@media screen and (max-width:480px){.form-table .bp-range-types label{clear:both;display:block}} \ No newline at end of file +#tabs,.field-group .xprofile-field{position:relative}@-o-keyframes tab-throb{from,to{box-shadow:0 0 10px #1e8cbe}50%{box-shadow:0 0 0 #1e8cbe}}@-webkit-keyframes tab-throb{from,to{box-shadow:0 0 10px #1e8cbe}50%{box-shadow:0 0 0 #1e8cbe}}@-moz-keyframes tab-throb{from,to{box-shadow:0 0 10px #1e8cbe}50%{box-shadow:0 0 0 #1e8cbe}}#profile-field-form{margin-top:12px}p.nofields{margin:20px 0 0}ul#field-group-tabs{float:right;padding:0 15px 0 0;margin:0;display:none}ul#field-group-tabs li{float:right;margin-left:8px;margin-bottom:-1px}ul#field-group-tabs li.ui-state-hover a.ui-tab{color:#d54e21}ul#field-group-tabs li.ui-state-acceptable:not(.ui-state-active) a.ui-tab{-webkit-animation:tab-throb 2s infinite;-moz-animation:tab-throb 2s infinite;-o-animation:tab-throb 2s infinite;animation:tab-throb 2s infinite}ul#field-group-tabs li.drop-candidate.ui-state-acceptable:not(.ui-state-active) a.ui-tab{-webkit-box-shadow:0 0 10px green;-moz-box-shadow:0 0 10px green;-o-box-shadow:0 0 10px green;box-shadow:0 0 10px green;-webkit-animation:none;-moz-animation:none;-o-animation:none;animation:none;color:#000}ul#field-group-tabs li a.ui-tab{font-size:14px;display:block;margin-top:3px;padding:5px 10px 6px;border:1px solid #e5e5e5;background-color:#f5f5f5;text-decoration:none;color:#000;outline:0}ul#field-group-tabs li.ui-state-active a.ui-tab{background-color:#fff;margin-top:0;padding:7px 10px;border-bottom:1px solid transparent;color:#000}.tab-toolbar{clear:right;background:#fff;border-width:1px;border-color:#e5e5e5;border-style:solid;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04);padding:10px;margin-bottom:10px}.bp-option a.delete,.field-wrapper a.deletion,.tab-toolbar a.deletion{color:#a00;border-bottom:1px solid #a00;text-decoration:none;padding:0}div.delete-button{float:left;line-height:28px}div.field-group{clear:right}.field-group{cursor:default;border:1px solid #e5e5e5;background:#fff;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04);margin-top:10px;padding:0 20px 20px}.field-group fieldset{position:relative;border:1px solid #ddd;margin:20px 0 0;cursor:move;background:#fafafa;padding:10px 0 0}.field-group fieldset legend{position:absolute;top:10px;right:10px;padding:0}fieldset.checkbox div label,fieldset.radio div div label{margin-left:20px}fieldset.clear-value{margin-right:10px}fieldset div.field-wrapper{padding:25px 10px 10px}.field-group div.actions{float:none;border-top:1px solid #ddd;margin:10px 0 0;padding-top:10px}.field-group div.actions a,.field-group div.actions button,.field-group div.actions input{float:none}.field-group fieldset:hover{border-color:#999}.field-group fieldset:hover div.actions{display:block}#field-group-tabs .ui-sortable-placeholder,.bp-options-box .ui-sortable-placeholder,.field-group fieldset.ui-sortable-placeholder{border:1px dashed #999;background-color:#fff;visibility:visible!important}#field-group-tabs .ui-sortable-placeholder{background:0 0;border-bottom:none;margin:-1px 0 -1px 6px}ul.forTab{list-style:none;padding:0;margin:0 1em 0 0}ul.forTab li{margin:0 0 1em}ul.forTab li label{display:block}ul.forTab li input{font-size:1.4em}p.success{background:green}p.err{border-top:2px solid red;border-bottom:2px solid red;color:red;padding:5px 0;width:40%}span.desc,span.signup-description{display:block;font-size:11px;color:#555}ul.multi-checkbox{margin:0 0 0 5px;padding:.5em .9em;height:10em;overflow:auto;list-style:none;border:1px solid #ccc;width:90%}ul.multi-checkbox li{padding:0;margin:0}div.bp-option{background:#fafafa;border:1px solid #dfdfdf;margin:10px 0;padding:10px 5px}div.bp-option:hover{border:1px solid #999}.bp-option-icon{font:400 20px/1 dashicons;speak:none;display:inline-block;padding:0 2px 0 0;top:5px;position:relative;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important;color:#888}div.bp-option .grabber:before{content:"\f329"}th a{background:#fff;padding:2px 5px;top:-2px}textarea#description,textarea#group_description{border:1px solid #ddd;width:100%}#bp-xprofile-add-field .titlewrap,#bp-xprofile-add-field-group .titlewrap{margin-bottom:20px}#bp-xprofile-add-field #post-body-content{margin-bottom:0}p.member-type-none-notice,span.member-type-none-notice{color:red}.hide{display:none;visibility:hidden}.form-table.bp-date-options{margin:0 8px}.form-table.bp-date-options th{width:150px}.form-table td .date-format-section select{margin-top:-2px}.date-format-label{display:inline-block;width:150px}.date-format-custom-value,.date-range-numeric{width:56px}.bp-date-range-type-label{float:right;font-style:italic;width:80px}.bp-date-range-type-values{margin-left:25px;padding-right:100px}#bp-xprofile-add-field select#fieldtype{max-width:100%;word-wrap:break-word;word-break:break-all}@media screen and (max-width:782px){.bp-date-formats .bp-date-format-option:first-of-type{margin-top:1em}.bp-range-types .bp-date-format-option{margin-bottom:1em;margin-top:1em}.form-table td input.date-format-custom-value,.form-table td input.date-range-numeric{display:inline-block;margin-left:10px;width:56px}.form-table td .bp-date-range-type-values select{display:inline-block;width:auto}.bp-date-range-type-label{float:none;width:auto}.bp-date-range-type-values{padding-right:0;margin-right:35px}}@media screen and (max-width:480px){.form-table .bp-range-types label{clear:both;display:block}} \ No newline at end of file diff --git a/wp-content/plugins/buddypress/bp-xprofile/admin/css/admin.css b/wp-content/plugins/buddypress/bp-xprofile/admin/css/admin.css index 9862f064c..34d8de063 100644 --- a/wp-content/plugins/buddypress/bp-xprofile/admin/css/admin.css +++ b/wp-content/plugins/buddypress/bp-xprofile/admin/css/admin.css @@ -96,8 +96,8 @@ .bp-option a.delete, .field-wrapper a.deletion, .tab-toolbar a.deletion { - color: #f00; - border-bottom: 1px solid #f00; + color: #a00; + border-bottom: 1px solid #a00; text-decoration: none; padding: 0; } diff --git a/wp-content/plugins/buddypress/bp-xprofile/admin/css/admin.min.css b/wp-content/plugins/buddypress/bp-xprofile/admin/css/admin.min.css index f9596d807..ff98adc00 100644 --- a/wp-content/plugins/buddypress/bp-xprofile/admin/css/admin.min.css +++ b/wp-content/plugins/buddypress/bp-xprofile/admin/css/admin.min.css @@ -1 +1 @@ -#tabs,.field-group .xprofile-field{position:relative}@-o-keyframes tab-throb{from,to{box-shadow:0 0 10px #1e8cbe}50%{box-shadow:0 0 0 #1e8cbe}}@-webkit-keyframes tab-throb{from,to{box-shadow:0 0 10px #1e8cbe}50%{box-shadow:0 0 0 #1e8cbe}}@-moz-keyframes tab-throb{from,to{box-shadow:0 0 10px #1e8cbe}50%{box-shadow:0 0 0 #1e8cbe}}#profile-field-form{margin-top:12px}p.nofields{margin:20px 0 0}ul#field-group-tabs{float:left;padding:0 0 0 15px;margin:0;display:none}ul#field-group-tabs li{float:left;margin-right:8px;margin-bottom:-1px}ul#field-group-tabs li.ui-state-hover a.ui-tab{color:#d54e21}ul#field-group-tabs li.ui-state-acceptable:not(.ui-state-active) a.ui-tab{-webkit-animation:tab-throb 2s infinite;-moz-animation:tab-throb 2s infinite;-o-animation:tab-throb 2s infinite;animation:tab-throb 2s infinite}ul#field-group-tabs li.drop-candidate.ui-state-acceptable:not(.ui-state-active) a.ui-tab{-webkit-box-shadow:0 0 10px green;-moz-box-shadow:0 0 10px green;-o-box-shadow:0 0 10px green;box-shadow:0 0 10px green;-webkit-animation:none;-moz-animation:none;-o-animation:none;animation:none;color:#000}ul#field-group-tabs li a.ui-tab{font-size:14px;display:block;margin-top:3px;padding:5px 10px 6px;border:1px solid #e5e5e5;background-color:#f5f5f5;text-decoration:none;color:#000;outline:0}ul#field-group-tabs li.ui-state-active a.ui-tab{background-color:#fff;margin-top:0;padding:7px 10px;border-bottom:1px solid transparent;color:#000}.tab-toolbar{clear:left;background:#fff;border-width:1px;border-color:#e5e5e5;border-style:solid;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04);padding:10px;margin-bottom:10px}.bp-option a.delete,.field-wrapper a.deletion,.tab-toolbar a.deletion{color:red;border-bottom:1px solid red;text-decoration:none;padding:0}div.delete-button{float:right;line-height:28px}div.field-group{clear:left}.field-group{cursor:default;border:1px solid #e5e5e5;background:#fff;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04);margin-top:10px;padding:0 20px 20px}.field-group fieldset{position:relative;border:1px solid #ddd;margin:20px 0 0;cursor:move;background:#fafafa;padding:10px 0 0}.field-group fieldset legend{position:absolute;top:10px;left:10px;padding:0}fieldset.checkbox div label,fieldset.radio div div label{margin-right:20px}fieldset.clear-value{margin-left:10px}fieldset div.field-wrapper{padding:25px 10px 10px}.field-group div.actions{float:none;border-top:1px solid #ddd;margin:10px 0 0;padding-top:10px}.field-group div.actions a,.field-group div.actions button,.field-group div.actions input{float:none}.field-group fieldset:hover{border-color:#999}.field-group fieldset:hover div.actions{display:block}#field-group-tabs .ui-sortable-placeholder,.bp-options-box .ui-sortable-placeholder,.field-group fieldset.ui-sortable-placeholder{border:1px dashed #999;background-color:#fff;visibility:visible!important}#field-group-tabs .ui-sortable-placeholder{background:0 0;border-bottom:none;margin:-1px 6px -1px 0}ul.forTab{list-style:none;padding:0;margin:0 0 0 1em}ul.forTab li{margin:0 0 1em}ul.forTab li label{display:block}ul.forTab li input{font-size:1.4em}p.success{background:green}p.err{border-top:2px solid red;border-bottom:2px solid red;color:red;padding:5px 0;width:40%}span.desc,span.signup-description{display:block;font-size:11px;color:#555}ul.multi-checkbox{margin:0 5px 0 0;padding:.5em .9em;height:10em;overflow:auto;list-style:none;border:1px solid #ccc;width:90%}ul.multi-checkbox li{padding:0;margin:0}div.bp-option{background:#fafafa;border:1px solid #dfdfdf;margin:10px 0;padding:10px 5px}div.bp-option:hover{border:1px solid #999}.bp-option-icon{font:400 20px/1 dashicons;speak:none;display:inline-block;padding:0 0 0 2px;top:5px;position:relative;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important;color:#888}div.bp-option .grabber:before{content:"\f329"}th a{background:#fff;padding:2px 5px;top:-2px}textarea#description,textarea#group_description{border:1px solid #ddd;width:100%}#bp-xprofile-add-field .titlewrap,#bp-xprofile-add-field-group .titlewrap{margin-bottom:20px}#bp-xprofile-add-field #post-body-content{margin-bottom:0}p.member-type-none-notice,span.member-type-none-notice{color:red}.hide{display:none;visibility:hidden}.form-table.bp-date-options{margin:0 8px}.form-table.bp-date-options th{width:150px}.form-table td .date-format-section select{margin-top:-2px}.date-format-label{display:inline-block;width:150px}.date-format-custom-value,.date-range-numeric{width:56px}.bp-date-range-type-label{float:left;font-style:italic;width:80px}.bp-date-range-type-values{margin-right:25px;padding-left:100px}#bp-xprofile-add-field select#fieldtype{max-width:100%;word-wrap:break-word;word-break:break-all}@media screen and (max-width:782px){.bp-date-formats .bp-date-format-option:first-of-type{margin-top:1em}.bp-range-types .bp-date-format-option{margin-bottom:1em;margin-top:1em}.form-table td input.date-format-custom-value,.form-table td input.date-range-numeric{display:inline-block;margin-right:10px;width:56px}.form-table td .bp-date-range-type-values select{display:inline-block;width:auto}.bp-date-range-type-label{float:none;width:auto}.bp-date-range-type-values{padding-left:0;margin-left:35px}}@media screen and (max-width:480px){.form-table .bp-range-types label{clear:both;display:block}} \ No newline at end of file +#tabs,.field-group .xprofile-field{position:relative}@-o-keyframes tab-throb{from,to{box-shadow:0 0 10px #1e8cbe}50%{box-shadow:0 0 0 #1e8cbe}}@-webkit-keyframes tab-throb{from,to{box-shadow:0 0 10px #1e8cbe}50%{box-shadow:0 0 0 #1e8cbe}}@-moz-keyframes tab-throb{from,to{box-shadow:0 0 10px #1e8cbe}50%{box-shadow:0 0 0 #1e8cbe}}#profile-field-form{margin-top:12px}p.nofields{margin:20px 0 0}ul#field-group-tabs{float:left;padding:0 0 0 15px;margin:0;display:none}ul#field-group-tabs li{float:left;margin-right:8px;margin-bottom:-1px}ul#field-group-tabs li.ui-state-hover a.ui-tab{color:#d54e21}ul#field-group-tabs li.ui-state-acceptable:not(.ui-state-active) a.ui-tab{-webkit-animation:tab-throb 2s infinite;-moz-animation:tab-throb 2s infinite;-o-animation:tab-throb 2s infinite;animation:tab-throb 2s infinite}ul#field-group-tabs li.drop-candidate.ui-state-acceptable:not(.ui-state-active) a.ui-tab{-webkit-box-shadow:0 0 10px green;-moz-box-shadow:0 0 10px green;-o-box-shadow:0 0 10px green;box-shadow:0 0 10px green;-webkit-animation:none;-moz-animation:none;-o-animation:none;animation:none;color:#000}ul#field-group-tabs li a.ui-tab{font-size:14px;display:block;margin-top:3px;padding:5px 10px 6px;border:1px solid #e5e5e5;background-color:#f5f5f5;text-decoration:none;color:#000;outline:0}ul#field-group-tabs li.ui-state-active a.ui-tab{background-color:#fff;margin-top:0;padding:7px 10px;border-bottom:1px solid transparent;color:#000}.tab-toolbar{clear:left;background:#fff;border-width:1px;border-color:#e5e5e5;border-style:solid;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04);padding:10px;margin-bottom:10px}.bp-option a.delete,.field-wrapper a.deletion,.tab-toolbar a.deletion{color:#a00;border-bottom:1px solid #a00;text-decoration:none;padding:0}div.delete-button{float:right;line-height:28px}div.field-group{clear:left}.field-group{cursor:default;border:1px solid #e5e5e5;background:#fff;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04);margin-top:10px;padding:0 20px 20px}.field-group fieldset{position:relative;border:1px solid #ddd;margin:20px 0 0;cursor:move;background:#fafafa;padding:10px 0 0}.field-group fieldset legend{position:absolute;top:10px;left:10px;padding:0}fieldset.checkbox div label,fieldset.radio div div label{margin-right:20px}fieldset.clear-value{margin-left:10px}fieldset div.field-wrapper{padding:25px 10px 10px}.field-group div.actions{float:none;border-top:1px solid #ddd;margin:10px 0 0;padding-top:10px}.field-group div.actions a,.field-group div.actions button,.field-group div.actions input{float:none}.field-group fieldset:hover{border-color:#999}.field-group fieldset:hover div.actions{display:block}#field-group-tabs .ui-sortable-placeholder,.bp-options-box .ui-sortable-placeholder,.field-group fieldset.ui-sortable-placeholder{border:1px dashed #999;background-color:#fff;visibility:visible!important}#field-group-tabs .ui-sortable-placeholder{background:0 0;border-bottom:none;margin:-1px 6px -1px 0}ul.forTab{list-style:none;padding:0;margin:0 0 0 1em}ul.forTab li{margin:0 0 1em}ul.forTab li label{display:block}ul.forTab li input{font-size:1.4em}p.success{background:green}p.err{border-top:2px solid red;border-bottom:2px solid red;color:red;padding:5px 0;width:40%}span.desc,span.signup-description{display:block;font-size:11px;color:#555}ul.multi-checkbox{margin:0 5px 0 0;padding:.5em .9em;height:10em;overflow:auto;list-style:none;border:1px solid #ccc;width:90%}ul.multi-checkbox li{padding:0;margin:0}div.bp-option{background:#fafafa;border:1px solid #dfdfdf;margin:10px 0;padding:10px 5px}div.bp-option:hover{border:1px solid #999}.bp-option-icon{font:400 20px/1 dashicons;speak:none;display:inline-block;padding:0 0 0 2px;top:5px;position:relative;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important;color:#888}div.bp-option .grabber:before{content:"\f329"}th a{background:#fff;padding:2px 5px;top:-2px}textarea#description,textarea#group_description{border:1px solid #ddd;width:100%}#bp-xprofile-add-field .titlewrap,#bp-xprofile-add-field-group .titlewrap{margin-bottom:20px}#bp-xprofile-add-field #post-body-content{margin-bottom:0}p.member-type-none-notice,span.member-type-none-notice{color:red}.hide{display:none;visibility:hidden}.form-table.bp-date-options{margin:0 8px}.form-table.bp-date-options th{width:150px}.form-table td .date-format-section select{margin-top:-2px}.date-format-label{display:inline-block;width:150px}.date-format-custom-value,.date-range-numeric{width:56px}.bp-date-range-type-label{float:left;font-style:italic;width:80px}.bp-date-range-type-values{margin-right:25px;padding-left:100px}#bp-xprofile-add-field select#fieldtype{max-width:100%;word-wrap:break-word;word-break:break-all}@media screen and (max-width:782px){.bp-date-formats .bp-date-format-option:first-of-type{margin-top:1em}.bp-range-types .bp-date-format-option{margin-bottom:1em;margin-top:1em}.form-table td input.date-format-custom-value,.form-table td input.date-range-numeric{display:inline-block;margin-right:10px;width:56px}.form-table td .bp-date-range-type-values select{display:inline-block;width:auto}.bp-date-range-type-label{float:none;width:auto}.bp-date-range-type-values{padding-left:0;margin-left:35px}}@media screen and (max-width:480px){.form-table .bp-range-types label{clear:both;display:block}} \ No newline at end of file diff --git a/wp-content/plugins/buddypress/bp-xprofile/bp-xprofile-admin.php b/wp-content/plugins/buddypress/bp-xprofile/bp-xprofile-admin.php index 00778d020..086250cef 100644 --- a/wp-content/plugins/buddypress/bp-xprofile/bp-xprofile-admin.php +++ b/wp-content/plugins/buddypress/bp-xprofile/bp-xprofile-admin.php @@ -10,10 +10,6 @@ // Exit if accessed directly. defined( 'ABSPATH' ) || exit; -if ( ! buddypress()->do_autoload ) { - require dirname( __FILE__ ) . '/classes/class-bp-xprofile-user-admin.php'; -} - /** * Creates the administration interface menus and checks to see if the DB * tables are set up. @@ -44,26 +40,72 @@ add_action( bp_core_admin_hook(), 'xprofile_add_admin_menu' ); */ function xprofile_admin( $message = '', $type = 'error' ) { - if ( isset( $_GET['mode'] ) && isset( $_GET['group_id'] ) && 'add_field' == $_GET['mode'] ) { - xprofile_admin_manage_field( $_GET['group_id'] ); - - } elseif ( isset( $_GET['mode'] ) && isset( $_GET['group_id'] ) && isset( $_GET['field_id'] ) && 'edit_field' == $_GET['mode'] ) { - xprofile_admin_manage_field( $_GET['group_id'], $_GET['field_id'] ); - - } elseif ( isset( $_GET['mode'] ) && isset( $_GET['field_id'] ) && 'delete_field' == $_GET['mode'] ) { - xprofile_admin_delete_field( $_GET['field_id'], 'field'); - - } elseif ( isset( $_GET['mode'] ) && isset( $_GET['option_id'] ) && 'delete_option' == $_GET['mode'] ) { - xprofile_admin_delete_field( $_GET['option_id'], 'option' ); + // What mode? + $mode = ! empty( $_GET['mode'] ) + ? sanitize_key( $_GET['mode'] ) + : false; + + // Group ID + $group_id = ! empty( $_GET['group_id'] ) + ? intval( $_GET['group_id'] ) + : false; + + // Field ID + $field_id = ! empty( $_GET['field_id'] ) + ? intval( $_GET['field_id'] ) + : false; + + // Option ID + $option_id = ! empty( $_GET['option_id'] ) + ? intval( $_GET['option_id'] ) + : false; + + // Allowed modes + $allowed_modes = array( + 'add_group', + 'edit_group', + 'delete_group', + 'add_field', + 'edit_field', + 'delete_field', + 'delete_option' + ); + + // Is an allowed mode + if ( in_array( $mode, $allowed_modes, true ) ) { + + // All group actions + if ( false !== $group_id ) { + + // Add field to group + if ( 'add_field' == $mode ) { + xprofile_admin_manage_field( $group_id ); + + // Edit field of group + } elseif ( ! empty( $field_id ) && 'edit_field' === $mode ) { + xprofile_admin_manage_field( $group_id, $field_id ); + + // Delete group + } elseif ( 'delete_group' === $mode ) { + xprofile_admin_delete_group( $group_id ); + + // Edit group + } elseif ( 'edit_group' === $mode ) { + xprofile_admin_manage_group( $group_id ); + } - } elseif ( isset( $_GET['mode'] ) && 'add_group' == $_GET['mode'] ) { - xprofile_admin_manage_group(); + // Delete field + } elseif ( ( false !== $field_id ) && ( 'delete_field' === $mode ) ) { + xprofile_admin_delete_field( $field_id, 'field'); - } elseif ( isset( $_GET['mode'] ) && isset( $_GET['group_id'] ) && 'delete_group' == $_GET['mode'] ) { - xprofile_admin_delete_group( $_GET['group_id'] ); + // Delete option + } elseif ( ! empty( $option_id ) && 'delete_option' === $mode ) { + xprofile_admin_delete_field( $option_id, 'option' ); - } elseif ( isset( $_GET['mode'] ) && isset( $_GET['group_id'] ) && 'edit_group' == $_GET['mode'] ) { - xprofile_admin_manage_group( $_GET['group_id'] ); + // Add group + } elseif ( 'add_group' == $mode ) { + xprofile_admin_manage_group(); + } } else { xprofile_admin_screen( $message, $type ); @@ -104,7 +146,7 @@ function xprofile_admin_screen( $message = '', $type = 'error' ) { wp_nonce_field( 'bp_reorder_fields', '_wpnonce_reorder_fields' ); wp_nonce_field( 'bp_reorder_groups', '_wpnonce_reorder_groups', false ); - if ( !empty( $message ) ) : + if ( ! empty( $message ) ) : $type = ( $type == 'error' ) ? 'error' : 'updated'; ?> <div id="message" class="<?php echo $type; ?> fade"> @@ -149,12 +191,12 @@ function xprofile_admin_screen( $message = '', $type = 'error' ) { <div class="tab-toolbar"> <div class="tab-toolbar-left"> <a class="button-primary" href="users.php?page=bp-profile-setup&group_id=<?php echo esc_attr( $group->id ); ?>&mode=add_field"><?php _e( 'Add New Field', 'buddypress' ); ?></a> - <a class="button edit" href="users.php?page=bp-profile-setup&mode=edit_group&group_id=<?php echo esc_attr( $group->id ); ?>"><?php _e( 'Edit Group', 'buddypress' ); ?></a> + <a class="button edit" href="users.php?page=bp-profile-setup&mode=edit_group&group_id=<?php echo esc_attr( $group->id ); ?>"><?php _ex( 'Edit Group', 'Edit Profile Fields Group', 'buddypress' ); ?></a> <?php if ( $group->can_delete ) : ?> <div class="delete-button"> - <a class="confirm submitdelete deletion ajax-option-delete" href="users.php?page=bp-profile-setup&mode=delete_group&group_id=<?php echo esc_attr( $group->id ); ?>"><?php _e( 'Delete Group', 'buddypress' ); ?></a> + <a class="confirm submitdelete deletion ajax-option-delete" href="users.php?page=bp-profile-setup&mode=delete_group&group_id=<?php echo esc_attr( $group->id ); ?>"><?php _ex( 'Delete Group', 'Delete Profile Fields Group', 'buddypress' ); ?></a> </div> <?php endif; ?> @@ -229,8 +271,8 @@ function xprofile_admin_screen( $message = '', $type = 'error' ) { <?php endforeach; else : ?> - <div id="message" class="error"><p><?php _e( 'You have no groups.', 'buddypress' ); ?></p></div> - <p><a href="users.php?page=bp-profile-setup&mode=add_group"><?php _e( 'Add New Group', 'buddypress' ); ?></a></p> + <div id="message" class="error"><p><?php _ex( 'You have no groups.', 'You have no profile fields groups.', 'buddypress' ); ?></p></div> + <p><a href="users.php?page=bp-profile-setup&mode=add_group"><?php _ex( 'Add New Group', 'Add New Profile Fields Group', 'buddypress' ); ?></a></p> <?php endif; ?> @@ -257,6 +299,9 @@ function xprofile_admin_manage_group( $group_id = null ) { // Updating. if ( isset( $_POST['save_group'] ) ) { + // Check nonce + check_admin_referer( 'bp_xprofile_admin_group', 'bp_xprofile_admin_group' ); + // Validate $_POSTed data. if ( BP_XProfile_Group::admin_validate() ) { @@ -295,8 +340,7 @@ function xprofile_admin_manage_group( $group_id = null ) { do_action( 'xprofile_groups_saved_group', $group ); } - unset( $_GET['mode'] ); - xprofile_admin( $message, $type ); + xprofile_admin_screen( $message, $type ); } else { $group->render_admin_form( $message ); @@ -319,10 +363,10 @@ function xprofile_admin_delete_group( $group_id ) { $group = new BP_XProfile_Group( $group_id ); if ( !$group->delete() ) { - $message = __( 'There was an error deleting the group. Please try again.', 'buddypress' ); + $message = _x( 'There was an error deleting the group. Please try again.', 'Error when deleting profile fields group', 'buddypress' ); $type = 'error'; } else { - $message = __( 'The group was deleted successfully.', 'buddypress' ); + $message = _x( 'The group was deleted successfully.', 'Profile fields group was deleted successfully', 'buddypress' ); $type = 'success'; /** @@ -335,8 +379,7 @@ function xprofile_admin_delete_group( $group_id ) { do_action( 'xprofile_groups_deleted_group', $group ); } - unset( $_GET['mode'] ); - xprofile_admin( $message, $type ); + xprofile_admin_screen( $message, $type ); } /** @@ -361,6 +404,10 @@ function xprofile_admin_manage_field( $group_id, $field_id = null ) { $field->group_id = $group_id; if ( isset( $_POST['saveField'] ) ) { + + // Check nonce + check_admin_referer( 'bp_xprofile_admin_field', 'bp_xprofile_admin_field' ); + if ( BP_XProfile_Field::admin_validate() ) { $field->is_required = $_POST['required']; $field->type = $_POST['fieldtype']; @@ -377,7 +424,7 @@ function xprofile_admin_manage_field( $group_id, $field_id = null ) { } $field->field_order = $wpdb->get_var( $wpdb->prepare( "SELECT field_order FROM {$bp->profile->table_name_fields} WHERE id = %d", $field_id ) ); - if ( empty( $field->field_order ) || is_wp_error( $field->field_order ) ) { + if ( ! is_numeric( $field->field_order ) || is_wp_error( $field->field_order ) ) { $field->field_order = (int) $wpdb->get_var( $wpdb->prepare( "SELECT max(field_order) FROM {$bp->profile->table_name_fields} WHERE group_id = %d", $group_id ) ); $field->field_order++; } @@ -449,9 +496,7 @@ function xprofile_admin_manage_field( $group_id, $field_id = null ) { $groups = bp_xprofile_get_groups(); } - unset( $_GET['mode'] ); - - xprofile_admin( $message, $type ); + xprofile_admin_screen( $message, $type ); } else { $field->render_admin_form( $message ); @@ -467,7 +512,7 @@ function xprofile_admin_manage_field( $group_id, $field_id = null ) { * @since 1.0.0 * * @global string $message The feedback message to show. - * @global $type The type of feedback message to show. + * @global string $type The type of feedback message to show. * * @param int $field_id The field to delete. * @param string $field_type The type of field being deleted. @@ -498,8 +543,7 @@ function xprofile_admin_delete_field( $field_id, $field_type = 'field', $delete_ do_action( 'xprofile_fields_deleted_field', $field ); } - unset( $_GET['mode'] ); - xprofile_admin( $message, $type ); + xprofile_admin_screen( $message, $type ); } /** @@ -560,9 +604,31 @@ add_action( 'wp_ajax_xprofile_reorder_groups', 'xprofile_ajax_reorder_field_grou function xprofile_admin_field( $admin_field, $admin_group, $class = '' ) { global $field; - $field = $admin_field; ?> + $field = $admin_field; + + $field_edit_url = add_query_arg( + array( + 'page' => 'bp-profile-setup', + 'group_id' => (int) $field->group_id, + 'field_id' => (int) $field->id, + 'mode' => 'edit_field' + ), + network_admin_url( 'users.php' ) + ); + + if ( $field->can_delete ) { + $field_delete_url = add_query_arg( + array( + 'page' => 'bp-profile-setup', + 'field_id' => (int) $field->id, + 'mode' => 'delete_field' + ), + network_admin_url( 'users.php' ) . '#tabs-' . (int) $field->group_id + ); + } + ?> - <fieldset id="draggable_field_<?php echo esc_attr( $field->id ); ?>"class="sortable<?php echo ' ' . $field->type; if ( !empty( $class ) ) echo ' ' . $class; ?>"> + <fieldset id="draggable_field_<?php echo esc_attr( $field->id ); ?>" class="sortable<?php echo ' ' . $field->type; if ( !empty( $class ) ) echo ' ' . $class; ?>"> <legend> <span> <?php bp_the_profile_field_name(); ?> @@ -613,12 +679,12 @@ function xprofile_admin_field( $admin_field, $admin_group, $class = '' ) { <?php endif; ?> <div class="actions"> - <a class="button edit" href="users.php?page=bp-profile-setup&group_id=<?php echo esc_attr( $admin_group->id ); ?>&field_id=<?php echo esc_attr( $field->id ); ?>&mode=edit_field"><?php _e( 'Edit', 'buddypress' ); ?></a> + <a class="button edit" href="<?php echo esc_url( $field_edit_url ); ?>"><?php _ex( 'Edit', 'Edit field link', 'buddypress' ); ?></a> <?php if ( $field->can_delete ) : ?> <div class="delete-button"> - <a class="confirm submit-delete deletion" href="users.php?page=bp-profile-setup&field_id=<?php echo esc_attr( $field->id ); ?>&mode=delete_field"><?php _e( 'Delete', 'buddypress' ); ?></a> + <a class="confirm submit-delete deletion" href="<?php echo esc_url( $field_delete_url ); ?>"><?php _ex( 'Delete', 'Delete field link', 'buddypress' ); ?></a> </div> <?php endif; ?> @@ -682,7 +748,7 @@ function bp_xprofile_admin_form_field_types( $select_field_type ) { printf( '<optgroup label="%1$s">', esc_attr( $category ) ); // Already i18n'd in each profile type class. // Sort these fields types alphabetically. - uasort( $fields, create_function( '$a, $b', 'return strnatcmp( $a[1]->name, $b[1]->name );' ) ); + uasort( $fields, function( $a, $b ) { return strnatcmp( $a[1]->name, $b[1]->name ); } ); foreach ( $fields as $field_type_obj ) { $field_name = $field_type_obj[0]; diff --git a/wp-content/plugins/buddypress/bp-xprofile/bp-xprofile-cache.php b/wp-content/plugins/buddypress/bp-xprofile/bp-xprofile-cache.php index 12f9acfdf..ab5153b67 100644 --- a/wp-content/plugins/buddypress/bp-xprofile/bp-xprofile-cache.php +++ b/wp-content/plugins/buddypress/bp-xprofile/bp-xprofile-cache.php @@ -306,5 +306,15 @@ function bp_xprofile_clear_field_cache( $field ) { } add_action( 'xprofile_field_after_save', 'bp_xprofile_clear_field_cache' ); +/** + * Clear the field-name cache. + * + * @since 2.8.0 + */ +function bp_xprofile_reset_fields_by_name_cache_incrementor() { + bp_core_reset_incrementor( 'bp_xprofile_fields_by_name' ); +} +add_action( 'xprofile_field_before_save', 'bp_xprofile_reset_fields_by_name_cache_incrementor' ); + // List actions to clear super cached pages on, if super cache is installed. add_action( 'xprofile_updated_profile', 'bp_core_clear_cache' ); diff --git a/wp-content/plugins/buddypress/bp-xprofile/bp-xprofile-caps.php b/wp-content/plugins/buddypress/bp-xprofile/bp-xprofile-caps.php index 6d35bfaa7..e93c74899 100644 --- a/wp-content/plugins/buddypress/bp-xprofile/bp-xprofile-caps.php +++ b/wp-content/plugins/buddypress/bp-xprofile/bp-xprofile-caps.php @@ -28,8 +28,14 @@ function bp_xprofile_map_meta_caps( $caps, $cap, $user_id, $args ) { $caps = array( 'exist' ); // You may pass args manually: $field_id, $profile_user_id. - $field_id = ! empty( $args[0] ) ? (int) $args[0] : bp_get_the_profile_field_id(); - $profile_user_id = isset( $args[1] ) ? (int) $args[1] : bp_displayed_user_id(); + $field_id = 0; + $profile_user_id = isset( $args[1] ) ? (int) $args[1] : bp_displayed_user_id(); + + if ( ! empty( $args[0] ) ) { + $field_id = (int) $args[0]; + } elseif ( isset( $GLOBALS['profile_template'] ) && $GLOBALS['profile_template']->in_the_loop ) { + $field_id = bp_get_the_profile_field_id(); + } // Visibility on the fullname field is not editable. if ( 1 == $field_id ) { @@ -78,7 +84,10 @@ add_filter( 'bp_map_meta_caps', 'bp_xprofile_map_meta_caps', 10, 4 ); */ function bp_xprofile_grant_bp_xprofile_change_field_visibility_for_logged_out_users( $user_can, $user_id, $capability ) { if ( 'bp_xprofile_change_field_visibility' === $capability && 0 === $user_id ) { - $user_can = true; + $field_id = bp_get_the_profile_field_id(); + if ( $field_id && $field = xprofile_get_field( $field_id ) ) { + $user_can = 'allowed' === $field->allow_custom_visibility; + } } return $user_can; diff --git a/wp-content/plugins/buddypress/bp-xprofile/bp-xprofile-filters.php b/wp-content/plugins/buddypress/bp-xprofile/bp-xprofile-filters.php index d5d4f85b0..a59bc06a3 100644 --- a/wp-content/plugins/buddypress/bp-xprofile/bp-xprofile-filters.php +++ b/wp-content/plugins/buddypress/bp-xprofile/bp-xprofile-filters.php @@ -349,13 +349,19 @@ function xprofile_filter_link_profile_data( $field_value, $field_type = 'textbox return $field_value; } - if ( !strpos( $field_value, ',' ) && ( count( explode( ' ', $field_value ) ) > 5 ) ) { + if ( strpos( $field_value, ',' ) === false && strpos( $field_value, ';' ) === false && ( count( explode( ' ', $field_value ) ) > 5 ) ) { return $field_value; } - $values = explode( ',', $field_value ); + if ( strpos( $field_value, ',' ) !== false ) { + $list_type = 'comma'; + $values = explode( ',', $field_value ); // Comma-separated lists. + } else { + $list_type = 'semicolon'; + $values = explode( ';', $field_value ); // Semicolon-separated lists. + } - if ( !empty( $values ) ) { + if ( ! empty( $values ) ) { foreach ( (array) $values as $value ) { $value = trim( $value ); @@ -379,7 +385,11 @@ function xprofile_filter_link_profile_data( $field_value, $field_type = 'textbox } } - $values = implode( ', ', $new_values ); + if ( 'comma' === $list_type ) { + $values = implode( ', ', $new_values ); + } else { + $values = implode( '; ', $new_values ); + } } return $values; diff --git a/wp-content/plugins/buddypress/bp-xprofile/bp-xprofile-functions.php b/wp-content/plugins/buddypress/bp-xprofile/bp-xprofile-functions.php index 0fdd7ad14..fb1bf33b1 100644 --- a/wp-content/plugins/buddypress/bp-xprofile/bp-xprofile-functions.php +++ b/wp-content/plugins/buddypress/bp-xprofile/bp-xprofile-functions.php @@ -282,18 +282,24 @@ function xprofile_insert_field( $args = '' ) { * Get a profile field object. * * @since 1.1.0 - * - * @param int|object $field ID of the field or object representing field data. + * @since 2.8.0 Added `$user_id` and `$get_data` parameters. + * + * @param int|object $field ID of the field or object representing field data. + * @param int $user_id Optional. ID of the user associated with the field. + * Ignored if `$get_data` is false. If `$get_data` is + * true, but no `$user_id` is provided, defaults to + * logged-in user ID. + * @param bool $get_data Whether to fetch data for the specified `$user_id`. * @return BP_XProfile_Field|null Field object if found, otherwise null. */ -function xprofile_get_field( $field ) { +function xprofile_get_field( $field, $user_id = null, $get_data = true ) { if ( $field instanceof BP_XProfile_Field ) { $_field = $field; } elseif ( is_object( $field ) ) { $_field = new BP_XProfile_Field(); $_field->fill_data( $field ); } else { - $_field = BP_XProfile_Field::get_instance( $field ); + $_field = BP_XProfile_Field::get_instance( $field, $user_id, $get_data ); } if ( ! $_field ) { @@ -1063,7 +1069,7 @@ function bp_xprofile_fullname_field_id() { global $wpdb; $bp = buddypress(); - $id = $wpdb->get_var( $wpdb->prepare( "SELECT id FROM {$bp->profile->table_name_fields} WHERE name = %s", bp_xprofile_fullname_field_name() ) ); + $id = $wpdb->get_var( $wpdb->prepare( "SELECT id FROM {$bp->profile->table_name_fields} WHERE name = %s", addslashes( bp_xprofile_fullname_field_name() ) ) ); wp_cache_set( 'fullname_field_id', $id, 'bp_xprofile' ); } @@ -1287,3 +1293,27 @@ function bp_xprofile_get_fields_by_visibility_levels( $user_id, $levels = array( return $field_ids; } + +/** + * Formats datebox field values passed through a POST request. + * + * @since 2.8.0 + * + * @param int $field_id The id of the current field being looped through. + * @return void This function only changes the global $_POST that should contain + * the datebox data. + */ +function bp_xprofile_maybe_format_datebox_post_data( $field_id ) { + if ( ! isset( $_POST['field_' . $field_id] ) ) { + if ( ! empty( $_POST['field_' . $field_id . '_day'] ) && ! empty( $_POST['field_' . $field_id . '_month'] ) && ! empty( $_POST['field_' . $field_id . '_year'] ) ) { + // Concatenate the values. + $date_value = $_POST['field_' . $field_id . '_day'] . ' ' . $_POST['field_' . $field_id . '_month'] . ' ' . $_POST['field_' . $field_id . '_year']; + + // Check that the concatenated value can be turned into a timestamp. + if ( $timestamp = strtotime( $date_value ) ) { + // Add the timestamp to the global $_POST that should contain the datebox data. + $_POST['field_' . $field_id] = date( 'Y-m-d H:i:s', $timestamp ); + } + } + } +} diff --git a/wp-content/plugins/buddypress/bp-xprofile/bp-xprofile-loader.php b/wp-content/plugins/buddypress/bp-xprofile/bp-xprofile-loader.php index d8970213b..b83c764d7 100644 --- a/wp-content/plugins/buddypress/bp-xprofile/bp-xprofile-loader.php +++ b/wp-content/plugins/buddypress/bp-xprofile/bp-xprofile-loader.php @@ -13,10 +13,6 @@ // Exit if accessed directly. defined( 'ABSPATH' ) || exit; -if ( ! buddypress()->do_autoload ) { - require dirname( __FILE__ ) . '/classes/class-bp-xprofile-component.php'; -} - /** * Set up the bp-xprofile component. * diff --git a/wp-content/plugins/buddypress/bp-xprofile/bp-xprofile-screens.php b/wp-content/plugins/buddypress/bp-xprofile/bp-xprofile-screens.php index 3b1d3c748..1acbd6181 100644 --- a/wp-content/plugins/buddypress/bp-xprofile/bp-xprofile-screens.php +++ b/wp-content/plugins/buddypress/bp-xprofile/bp-xprofile-screens.php @@ -85,20 +85,9 @@ function xprofile_screen_edit_profile() { $posted_field_ids = wp_parse_id_list( $_POST['field_ids'] ); $is_required = array(); - // Loop through the posted fields formatting any datebox values - // then validate the field. + // Loop through the posted fields formatting any datebox values then validate the field. foreach ( (array) $posted_field_ids as $field_id ) { - if ( !isset( $_POST['field_' . $field_id] ) ) { - - if ( !empty( $_POST['field_' . $field_id . '_day'] ) && !empty( $_POST['field_' . $field_id . '_month'] ) && !empty( $_POST['field_' . $field_id . '_year'] ) ) { - // Concatenate the values. - $date_value = $_POST['field_' . $field_id . '_day'] . ' ' . $_POST['field_' . $field_id . '_month'] . ' ' . $_POST['field_' . $field_id . '_year']; - - // Turn the concatenated value into a timestamp. - $_POST['field_' . $field_id] = date( 'Y-m-d H:i:s', strtotime( $date_value ) ); - } - - } + bp_xprofile_maybe_format_datebox_post_data( $field_id ); $is_required[ $field_id ] = xprofile_check_is_required_field( $field_id ) && ! bp_current_user_can( 'bp_moderate' ); if ( $is_required[$field_id] && empty( $_POST['field_' . $field_id] ) ) { diff --git a/wp-content/plugins/buddypress/bp-xprofile/bp-xprofile-template.php b/wp-content/plugins/buddypress/bp-xprofile/bp-xprofile-template.php index e233f23de..b5e45ba9f 100644 --- a/wp-content/plugins/buddypress/bp-xprofile/bp-xprofile-template.php +++ b/wp-content/plugins/buddypress/bp-xprofile/bp-xprofile-template.php @@ -10,10 +10,6 @@ // Exit if accessed directly. defined( 'ABSPATH' ) || exit; -if ( ! buddypress()->do_autoload ) { - require dirname( __FILE__ ) . '/classes/class-bp-xprofile-data-template.php'; -} - /** * Query for XProfile groups and fields. * @@ -203,7 +199,18 @@ function bp_field_css_class( $class = false ) { */ function bp_field_has_data() { global $profile_template; - return $profile_template->field_has_data; + + /** + * Filters whether or not the XProfile field has data to display. + * + * @since 2.8.0 + * + * @param bool $value Whether or not there is data to display. + * @param object $profile_template Profile template object. + * @param string $value Profile field being displayed. + * @param string $value Profile field ID being displayed. + */ + return apply_filters( 'bp_field_has_data', $profile_template->field_has_data, $profile_template, $profile_template->field, $profile_template->field->id ); } /** @@ -218,11 +225,17 @@ function bp_field_has_data() { function bp_field_has_public_data() { global $profile_template; - if ( ! empty( $profile_template->field_has_data ) ) { - return true; - } - - return false; + /** + * Filters whether or not the XProfile field has public data to display. + * + * @since 2.8.0 + * + * @param bool $value Whether or not there is public data to display. + * @param object $profile_template Profile template object. + * @param string $value Profile field being displayed. + * @param string $value Profile field ID being displayed. + */ + return apply_filters( 'bp_field_has_public_data', ( ! empty( $profile_template->field_has_data ) ), $profile_template, $profile_template->field, $profile_template->field->id ); } /** @@ -239,7 +252,7 @@ function bp_the_profile_group_id() { * * @since 1.1.0 * - * @return mixed|void + * @return int */ function bp_get_the_profile_group_id() { global $group; @@ -251,7 +264,7 @@ function bp_the_profile_group_id() { * * @param int $id ID for the profile group. */ - return apply_filters( 'bp_get_the_profile_group_id', $group->id ); + return (int) apply_filters( 'bp_get_the_profile_group_id', $group->id ); } /** @@ -268,7 +281,7 @@ function bp_the_profile_group_name() { * * @since 1.0.0 * - * @return mixed|void + * @return string */ function bp_get_the_profile_group_name() { global $group; @@ -297,7 +310,7 @@ function bp_the_profile_group_slug() { * * @since 1.1.0 * - * @return mixed|void + * @return string */ function bp_get_the_profile_group_slug() { global $group; @@ -326,7 +339,7 @@ function bp_the_profile_group_description() { * * @since 1.0.0 * - * @return mixed|void + * @return string */ function bp_get_the_profile_group_description() { global $group; @@ -355,7 +368,7 @@ function bp_the_profile_group_edit_form_action() { * * @since 1.1.0 * - * @return mixed|void + * @return string */ function bp_get_the_profile_group_edit_form_action() { global $group; @@ -479,7 +492,7 @@ function bp_the_profile_field_id() { * * @since 1.1.0 * - * @return mixed|void + * @return int */ function bp_get_the_profile_field_id() { global $field; @@ -491,7 +504,7 @@ function bp_the_profile_field_id() { * * @param int $id ID for the profile field. */ - return apply_filters( 'bp_get_the_profile_field_id', $field->id ); + return (int) apply_filters( 'bp_get_the_profile_field_id', $field->id ); } /** @@ -508,7 +521,7 @@ function bp_the_profile_field_name() { * * @since 1.0.0 * - * @return mixed|void + * @return string */ function bp_get_the_profile_field_name() { global $field; @@ -537,7 +550,7 @@ function bp_the_profile_field_value() { * * @since 1.0.0 * - * @return mixed|void + * @return string */ function bp_get_the_profile_field_value() { global $field; @@ -570,7 +583,7 @@ function bp_the_profile_field_edit_value() { * * @since 1.1.0 * - * @return mixed|void + * @return string */ function bp_get_the_profile_field_edit_value() { global $field; @@ -623,7 +636,7 @@ function bp_the_profile_field_type() { * * @since 1.1.0 * - * @return mixed|void + * @return string */ function bp_get_the_profile_field_type() { global $field; @@ -652,7 +665,7 @@ function bp_the_profile_field_description() { * * @since 1.1.0 * - * @return mixed|void + * @return string */ function bp_get_the_profile_field_description() { global $field; @@ -681,7 +694,7 @@ function bp_the_profile_field_input_name() { * * @since 1.1.0 * - * @return mixed|void + * @return string */ function bp_get_the_profile_field_input_name() { global $field; @@ -787,7 +800,7 @@ function bp_the_profile_field_is_required() { * * @since 1.1.0 * - * @return mixed|void + * @return bool */ function bp_get_the_profile_field_is_required() { global $field; @@ -802,10 +815,12 @@ function bp_the_profile_field_is_required() { * Filters whether or not a profile field is required. * * @since 1.1.0 + * @since 2.8.0 Added field ID. * - * @param bool $retval Whether or not the field is required. + * @param bool $retval Whether or not the field is required. + * @param string $value Field ID that may be required. */ - return apply_filters( 'bp_get_the_profile_field_is_required', (bool) $retval ); + return (bool) apply_filters( 'bp_get_the_profile_field_is_required', $retval, $field->id ); } /** @@ -822,7 +837,7 @@ function bp_the_profile_field_visibility_level() { * * @since 1.6.0 * - * @return mixed|void + * @return string */ function bp_get_the_profile_field_visibility_level() { global $field; @@ -860,7 +875,7 @@ function bp_the_profile_field_visibility_level_label() { * * @since 1.6.0 * - * @return mixed|void + * @return string */ function bp_get_the_profile_field_visibility_level_label() { global $field; @@ -928,7 +943,7 @@ function bp_profile_field_data( $args = '' ) { * @type string|int|bool $field Field identifier. * @type int $user_id ID of the user to get field data for. * } - * @return mixed|void + * @return mixed */ function bp_get_profile_field_data( $args = '' ) { @@ -1071,10 +1086,11 @@ function bp_get_profile_group_tabs() { * @since 1.0.0 * * @param bool $deprecated Deprecated boolean parameter. - * @return mixed|void + * + * @return string|mixed */ function bp_profile_group_name( $deprecated = true ) { - if ( !$deprecated ) { + if ( ! $deprecated ) { return bp_get_profile_group_name(); } else { echo bp_get_profile_group_name(); @@ -1086,7 +1102,7 @@ function bp_profile_group_name( $deprecated = true ) { * * @since 1.0.0 * - * @return mixed|void + * @return string */ function bp_get_profile_group_name() { @@ -1132,7 +1148,7 @@ function bp_profile_last_updated() { * * @since 1.0.0 * - * @return bool|mixed|void + * @return bool|string */ function bp_get_profile_last_updated() { @@ -1167,7 +1183,7 @@ function bp_current_profile_group_id() { * * @since 1.1.0 * - * @return mixed|void + * @return int */ function bp_get_current_profile_group_id() { $profile_group_id = bp_action_variable( 1 ); @@ -1182,9 +1198,9 @@ function bp_current_profile_group_id() { * * @since 1.1.0 * - * @param string $profile_group_id Current profile group ID. + * @param int $profile_group_id Current profile group ID. */ - return apply_filters( 'bp_get_current_profile_group_id', $profile_group_id ); + return (int) apply_filters( 'bp_get_current_profile_group_id', $profile_group_id ); } /** @@ -1201,7 +1217,7 @@ function bp_avatar_delete_link() { * * @since 1.1.0 * - * @return mixed|void + * @return string */ function bp_get_avatar_delete_link() { @@ -1341,8 +1357,13 @@ function bp_profile_settings_visibility_select( $args = '' ) { * * @type int $field_id ID of the field to render. * @type string $before Markup to render before the field. + * @type string $before_controls markup before form controls. * @type string $after Markup to render after the field. + * @type string $after_controls Markup after the form controls. * @type string $class Class to apply to the field markup. + * @type string $label_class Class to apply for the label element. + * @type string $notoggle_tag Markup element to use for notoggle tag. + * @type string $notoggle_class Class to apply to the notoggle element. * } * @return string $retval */ @@ -1350,10 +1371,15 @@ function bp_profile_settings_visibility_select( $args = '' ) { // Parse optional arguments. $r = bp_parse_args( $args, array( - 'field_id' => bp_get_the_profile_field_id(), - 'before' => '', - 'after' => '', - 'class' => 'bp-xprofile-visibility' + 'field_id' => bp_get_the_profile_field_id(), + 'before' => '', + 'before_controls' => '', + 'after' => '', + 'after_controls' => '', + 'class' => 'bp-xprofile-visibility', + 'label_class' => 'bp-screen-reader-text', + 'notoggle_tag' => 'span', + 'notoggle_class' => 'field-visibility-settings-notoggle', ), 'xprofile_settings_visibility_select' ); // Empty return value, filled in below if a valid field ID is found. @@ -1370,7 +1396,9 @@ function bp_profile_settings_visibility_select( $args = '' ) { <?php if ( bp_current_user_can( 'bp_xprofile_change_field_visibility' ) ) : ?> - <label for="<?php echo esc_attr( 'field_' . $r['field_id'] ) ; ?>_visibility" class="bp-screen-reader-text"><?php + <?php echo $r['before_controls']; ?> + + <label for="<?php echo esc_attr( 'field_' . $r['field_id'] ) ; ?>_visibility" class="<?php echo esc_attr( $r['label_class'] ); ?>"><?php /* translators: accessibility text */ _e( 'Select visibility', 'buddypress' ); ?></label> @@ -1384,9 +1412,11 @@ function bp_profile_settings_visibility_select( $args = '' ) { </select> + <?php echo $r['after_controls']; ?> + <?php else : ?> - <span class="field-visibility-settings-notoggle"><?php bp_the_profile_field_visibility_level_label(); ?></span> + <<?php echo esc_html( $r['notoggle_tag'] ); ?> class="<?php echo esc_attr( $r['notoggle_class'] ); ?>"><?php bp_the_profile_field_visibility_level_label(); ?></<?php echo esc_html( $r['notoggle_tag'] ); ?>> <?php endif; diff --git a/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-xprofile-component.php b/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-xprofile-component.php index f25edec4f..e9bfa443e 100644 --- a/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-xprofile-component.php +++ b/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-xprofile-component.php @@ -78,10 +78,6 @@ class BP_XProfile_Component extends BP_Component { 'notifications', ); - if ( ! buddypress()->do_autoload ) { - $includes[] = 'classes'; - } - if ( is_admin() ) { $includes[] = 'admin'; } diff --git a/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-xprofile-data-template.php b/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-xprofile-data-template.php index 15823435d..aa158873e 100644 --- a/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-xprofile-data-template.php +++ b/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-xprofile-data-template.php @@ -141,8 +141,7 @@ class BP_XProfile_Data_Template { 9 => 'update_meta_cache' ); - $func_args = func_get_args(); - $args = bp_core_parse_args_array( $old_args_keys, $func_args ); + $args = bp_core_parse_args_array( $old_args_keys, func_get_args() ); } $r = wp_parse_args( $args, array( diff --git a/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-xprofile-field-type-checkbox.php b/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-xprofile-field-type-checkbox.php index d986cd0b4..7267ad967 100644 --- a/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-xprofile-field-type-checkbox.php +++ b/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-xprofile-field-type-checkbox.php @@ -156,7 +156,7 @@ class BP_XProfile_Field_Type_Checkbox extends BP_XProfile_Field_Type { $new_html = sprintf( '<label for="%3$s" class="option-label"><input %1$s type="checkbox" name="%2$s" id="%3$s" value="%4$s">%5$s</label>', $selected, - esc_attr( "field_{$this->field_obj->id}[]" ), + esc_attr( bp_get_the_profile_field_input_name() . '[]' ), esc_attr( "field_{$options[$k]->id}_{$k}" ), esc_attr( stripslashes( $options[$k]->name ) ), esc_html( stripslashes( $options[$k]->name ) ) diff --git a/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-xprofile-field-type-radiobutton.php b/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-xprofile-field-type-radiobutton.php index f8e0d5dcf..6c039bb20 100644 --- a/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-xprofile-field-type-radiobutton.php +++ b/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-xprofile-field-type-radiobutton.php @@ -134,7 +134,7 @@ class BP_XProfile_Field_Type_Radiobutton extends BP_XProfile_Field_Type { $new_html = sprintf( '<label for="%3$s" class="option-label"><input %1$s type="radio" name="%2$s" id="%3$s" value="%4$s">%5$s</label>', $selected, - esc_attr( "field_{$this->field_obj->id}" ), + esc_attr( bp_get_the_profile_field_input_name() ), esc_attr( "option_{$options[$k]->id}" ), esc_attr( stripslashes( $options[$k]->name ) ), esc_html( stripslashes( $options[$k]->name ) ) diff --git a/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-xprofile-field.php b/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-xprofile-field.php index bb75f2913..e9361d9cc 100644 --- a/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-xprofile-field.php +++ b/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-xprofile-field.php @@ -227,13 +227,19 @@ class BP_XProfile_Field { * Retrieve a `BP_XProfile_Field` instance. * * @since 2.4.0 + * @since 2.8.0 Added `$user_id` and `$get_data` parameters. * * @static * - * @param int $field_id ID of the field. + * @param int $field_id ID of the field. + * @param int $user_id Optional. ID of the user associated with the field. + * Ignored if `$get_data` is false. If `$get_data` is + * true, but no `$user_id` is provided, defaults to + * logged-in user ID. + * @param bool $get_data Whether to fetch data for the specified `$user_id`. * @return BP_XProfile_Field|false Field object if found, otherwise false. */ - public static function get_instance( $field_id ) { + public static function get_instance( $field_id, $user_id = null, $get_data = true ) { global $wpdb; $field_id = (int) $field_id; @@ -241,7 +247,7 @@ class BP_XProfile_Field { return false; } - return new self( $field_id ); + return new self( $field_id, $user_id, $get_data ); } /** @@ -911,11 +917,14 @@ class BP_XProfile_Field { return false; } - $sql = $wpdb->prepare( "SELECT id FROM {$bp->profile->table_name_fields} WHERE name = %s AND parent_id = 0", $field_name ); - - $query = $wpdb->get_var( $sql ); + $id = bp_core_get_incremented_cache( $field_name, 'bp_xprofile_fields_by_name' ); + if ( false === $id ) { + $sql = $wpdb->prepare( "SELECT id FROM {$bp->profile->table_name_fields} WHERE name = %s AND parent_id = 0", $field_name ); + $id = $wpdb->get_var( $sql ); + bp_core_set_incremented_cache( $field_name, 'bp_xprofile_fields_by_name', $id ); + } - return is_numeric( $query ) ? (int) $query : $query; + return is_numeric( $id ) ? (int) $id : $id; } /** @@ -1553,6 +1562,9 @@ class BP_XProfile_Field { */ private function default_field_hidden_inputs() { + // Nonce + wp_nonce_field( 'bp_xprofile_admin_field', 'bp_xprofile_admin_field' ); + // Field 1 is the fullname field, which cannot have custom visibility. if ( false === $this->is_default_field() ) { return; diff --git a/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-xprofile-group.php b/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-xprofile-group.php index a3934a558..a94d44d69 100644 --- a/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-xprofile-group.php +++ b/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-xprofile-group.php @@ -396,7 +396,7 @@ class BP_XProfile_Group { // Pull field objects from the cache. $fields = array(); foreach ( $field_ids as $field_id ) { - $fields[] = xprofile_get_field( $field_id ); + $fields[] = xprofile_get_field( $field_id, null, false ); } // Store field IDs for meta cache priming. @@ -796,6 +796,9 @@ class BP_XProfile_Group { <?php + // Nonce fields + wp_nonce_field( 'bp_xprofile_admin_group', 'bp_xprofile_admin_group' ); + /** * Fires at the beginning of the XProfile Group publishing actions section. * diff --git a/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-xprofile-profiledata.php b/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-xprofile-profiledata.php index 8dc10f9d2..62603e7c0 100644 --- a/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-xprofile-profiledata.php +++ b/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-xprofile-profiledata.php @@ -323,7 +323,7 @@ class BP_XProfile_ProfileData { } else { $d = new stdClass; $d->id = ''; - $d->user_id = ''; + $d->user_id = $user_id; $d->field_id = $field_id; $d->value = ''; $d->last_updated = ''; @@ -489,7 +489,7 @@ class BP_XProfile_ProfileData { $d = new stdClass; $d->id = ''; $d->user_id = $id; - $d->field_id = ''; + $d->field_id = $field_id; $d->value = ''; $d->last_updated = ''; } diff --git a/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-xprofile-user-admin.php b/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-xprofile-user-admin.php index e95fa57de..e958ce00f 100644 --- a/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-xprofile-user-admin.php +++ b/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-xprofile-user-admin.php @@ -138,7 +138,7 @@ class BP_XProfile_User_Admin { $screen_id, 'normal', 'core', - array( 'profile_group_id' => absint( bp_get_the_profile_group_id() ) ) + array( 'profile_group_id' => bp_get_the_profile_group_id() ) ); endwhile; @@ -227,16 +227,7 @@ class BP_XProfile_User_Admin { // Loop through the posted fields formatting any datebox values then validate the field. foreach ( (array) $posted_field_ids as $field_id ) { - if ( ! isset( $_POST['field_' . $field_id ] ) ) { - if ( ! empty( $_POST['field_' . $field_id . '_day'] ) && ! empty( $_POST['field_' . $field_id . '_month'] ) && ! empty( $_POST['field_' . $field_id . '_year'] ) ) { - - // Concatenate the values. - $date_value = $_POST['field_' . $field_id . '_day'] . ' ' . $_POST['field_' . $field_id . '_month'] . ' ' . $_POST['field_' . $field_id . '_year']; - - // Turn the concatenated value into a timestamp. - $_POST['field_' . $field_id] = date( 'Y-m-d H:i:s', strtotime( $date_value ) ); - } - } + bp_xprofile_maybe_format_datebox_post_data( $field_id ); $is_required[ $field_id ] = xprofile_check_is_required_field( $field_id ) && ! bp_current_user_can( 'bp_moderate' ); if ( $is_required[ $field_id ] && empty( $_POST['field_' . $field_id ] ) ) { @@ -397,7 +388,7 @@ class BP_XProfile_User_Admin { <?php if ( $can_change_visibility ) : ?> - <a href="#" class="button visibility-toggle-link"><?php esc_html_e( 'Change', 'buddypress' ); ?></a> + <button type="button" class="button visibility-toggle-link"><?php esc_html_e( 'Change', 'buddypress' ); ?></button> <?php endif; ?> </p> @@ -411,7 +402,7 @@ class BP_XProfile_User_Admin { <?php bp_profile_visibility_radio_buttons(); ?> </fieldset> - <a class="button field-visibility-settings-close" href="#"><?php esc_html_e( 'Close', 'buddypress' ); ?></a> + <button type="button" class="button field-visibility-settings-close"><?php esc_html_e( 'Close', 'buddypress' ); ?></button> </div> <?php endif; ?> diff --git a/wp-content/plugins/buddypress/buddypress.pot b/wp-content/plugins/buddypress/buddypress.pot index ff9d1aa22..db2b26e86 100644 --- a/wp-content/plugins/buddypress/buddypress.pot +++ b/wp-content/plugins/buddypress/buddypress.pot @@ -1,14 +1,14 @@ -# Copyright (C) 2016 The BuddyPress Community +# Copyright (C) 2017 The BuddyPress Community # This file is distributed under the GPLv2 or later (license.txt). msgid "" msgstr "" -"Project-Id-Version: BuddyPress 2.7.3\n" +"Project-Id-Version: BuddyPress 2.8.1\n" "Report-Msgid-Bugs-To: https://buddypress.trac.wordpress.org\n" -"POT-Creation-Date: 2016-12-07 21:14:32+00:00\n" +"POT-Creation-Date: 2017-02-22 18:44:24+00:00\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"PO-Revision-Date: 2016-MO-DA HO:MI+ZONE\n" +"PO-Revision-Date: 2017-MO-DA HO:MI+ZONE\n" "Last-Translator: JOHN JAMES JACOBY <jjj@buddypress.org>\n" "Language-Team: ENGLISH <jjj@buddypress.org>\n" "X-Generator: grunt-wp-i18n 0.5.4\n" @@ -26,7 +26,7 @@ msgid "The activity item has been marked as spam and is no longer visible." msgstr "" #: bp-activity/bp-activity-actions.php:292 -#: bp-templates/bp-legacy/buddypress-functions.php:914 +#: bp-templates/bp-legacy/buddypress-functions.php:922 msgid "Please enter some content to post." msgstr "" @@ -39,7 +39,7 @@ msgid "There was an error when posting your update. Please try again." msgstr "" #: bp-activity/bp-activity-actions.php:365 -#: bp-templates/bp-legacy/buddypress-functions.php:1007 +#: bp-templates/bp-legacy/buddypress-functions.php:1015 msgid "Please do not leave the comment area blank." msgstr "" @@ -77,7 +77,7 @@ msgstr "" msgid "Activity feed for the entire site." msgstr "" -#: bp-activity/bp-activity-actions.php:476 bp-groups/bp-groups-actions.php:562 +#: bp-activity/bp-activity-actions.php:476 bp-groups/bp-groups-actions.php:585 #. translators: Personal activity RSS title - "[Site Name] | [User Display #. Name] | Activity" #. translators: Group activity RSS title - "[Site Name] | [Group Name] | @@ -129,35 +129,35 @@ msgstr "" msgid "Activity feed of %s's favorites." msgstr "" -#: bp-activity/bp-activity-admin.php:92 +#: bp-activity/bp-activity-admin.php:88 msgid "ERROR: Please type a reply." msgstr "" -#: bp-activity/bp-activity-admin.php:97 +#: bp-activity/bp-activity-admin.php:93 msgid "" "ERROR: The item you are trying to reply to cannot be found, or it has been " "deleted." msgstr "" -#: bp-activity/bp-activity-admin.php:226 bp-activity/bp-activity-admin.php:280 +#: bp-activity/bp-activity-admin.php:223 bp-activity/bp-activity-admin.php:277 #: bp-core/admin/bp-core-admin-functions.php:488 #: bp-core/admin/bp-core-admin-functions.php:506 #: bp-core/admin/bp-core-admin-functions.php:525 #: bp-core/admin/bp-core-admin-functions.php:544 -#: bp-groups/bp-groups-admin.php:119 bp-groups/bp-groups-admin.php:172 +#: bp-groups/bp-groups-admin.php:115 bp-groups/bp-groups-admin.php:168 #: bp-members/classes/class-bp-members-admin.php:771 -#: bp-members/classes/class-bp-members-admin.php:1494 +#: bp-members/classes/class-bp-members-admin.php:1490 msgid "Overview" msgstr "" -#: bp-activity/bp-activity-admin.php:228 +#: bp-activity/bp-activity-admin.php:225 msgid "" "You edit activities made on your site similar to the way you edit a " "comment. This is useful if you need to change which page the activity links " "to, or when you notice that the author has made a typographical error." msgstr "" -#: bp-activity/bp-activity-admin.php:229 +#: bp-activity/bp-activity-admin.php:226 msgid "" "The two big editing areas for the activity title and content are fixed in " "place, but you can reposition all the other boxes using drag and drop, and " @@ -166,17 +166,17 @@ msgid "" "Type, Author ID) or to choose a 1- or 2-column layout for this screen." msgstr "" -#: bp-activity/bp-activity-admin.php:230 +#: bp-activity/bp-activity-admin.php:227 msgid "" "You can also moderate the activity from this screen using the Status box, " "where you can also change the timestamp of the activity." msgstr "" -#: bp-activity/bp-activity-admin.php:235 +#: bp-activity/bp-activity-admin.php:232 msgid "Item, Link, Type" msgstr "" -#: bp-activity/bp-activity-admin.php:237 +#: bp-activity/bp-activity-admin.php:234 msgid "" "<strong>Primary Item/Secondary Item</strong> - These identify the object " "that created the activity. For example, the fields could reference a " @@ -184,56 +184,56 @@ msgid "" "or none, of these fields." msgstr "" -#: bp-activity/bp-activity-admin.php:238 +#: bp-activity/bp-activity-admin.php:235 msgid "" "<strong>Link</strong> - Used by some types of activity (e.g blog posts and " "comments, and forum topics and replies) to store a link back to the " "original content." msgstr "" -#: bp-activity/bp-activity-admin.php:239 +#: bp-activity/bp-activity-admin.php:236 msgid "" "<strong>Type</strong> - Each distinct kind of activity has its own type. " "For example, <code>created_group</code> is used when a group is created and " "<code>joined_group</code> is used when a user joins a group." msgstr "" -#: bp-activity/bp-activity-admin.php:240 +#: bp-activity/bp-activity-admin.php:237 msgid "" "For information about when and how BuddyPress uses all of these settings, " "see the Managing Activity link in the panel to the side." msgstr "" -#: bp-activity/bp-activity-admin.php:245 bp-activity/bp-activity-admin.php:297 +#: bp-activity/bp-activity-admin.php:242 bp-activity/bp-activity-admin.php:294 #: bp-core/admin/bp-core-admin-functions.php:494 #: bp-core/admin/bp-core-admin-functions.php:512 #: bp-core/admin/bp-core-admin-functions.php:531 #: bp-core/admin/bp-core-admin-functions.php:550 -#: bp-groups/bp-groups-admin.php:127 bp-groups/bp-groups-admin.php:188 +#: bp-groups/bp-groups-admin.php:123 bp-groups/bp-groups-admin.php:184 #: bp-members/classes/class-bp-members-admin.php:780 -#: bp-members/classes/class-bp-members-admin.php:1515 +#: bp-members/classes/class-bp-members-admin.php:1511 msgid "For more information:" msgstr "" -#: bp-activity/bp-activity-admin.php:246 +#: bp-activity/bp-activity-admin.php:243 msgid "" "<a " "href=\"https://codex.buddypress.org/administrator-guide/activity-stream-" "management-panels/\">Managing Activity</a>" msgstr "" -#: bp-activity/bp-activity-admin.php:247 bp-activity/bp-activity-admin.php:298 +#: bp-activity/bp-activity-admin.php:244 bp-activity/bp-activity-admin.php:295 #: bp-core/admin/bp-core-admin-functions.php:496 #: bp-core/admin/bp-core-admin-functions.php:514 #: bp-core/admin/bp-core-admin-functions.php:533 #: bp-core/admin/bp-core-admin-functions.php:552 -#: bp-groups/bp-groups-admin.php:189 +#: bp-groups/bp-groups-admin.php:185 #: bp-members/classes/class-bp-members-admin.php:782 -#: bp-members/classes/class-bp-members-admin.php:1516 +#: bp-members/classes/class-bp-members-admin.php:1512 msgid "<a href=\"https://buddypress.org/support/\">Support Forums</a>" msgstr "" -#: bp-activity/bp-activity-admin.php:282 +#: bp-activity/bp-activity-admin.php:279 msgid "" "You can manage activities made on your site similar to the way you manage " "comments and other content. This screen is customizable in the same ways as " @@ -241,7 +241,7 @@ msgid "" "action links or the Bulk Actions." msgstr "" -#: bp-activity/bp-activity-admin.php:283 +#: bp-activity/bp-activity-admin.php:280 msgid "" "There are many different types of activities. Some are generated " "automatically by BuddyPress and other plugins, and some are entered " @@ -250,11 +250,11 @@ msgid "" "them." msgstr "" -#: bp-activity/bp-activity-admin.php:289 +#: bp-activity/bp-activity-admin.php:286 msgid "Moderating Activity" msgstr "" -#: bp-activity/bp-activity-admin.php:291 +#: bp-activity/bp-activity-admin.php:288 msgid "" "In the <strong>Activity</strong> column, above each activity it says " "“Submitted on,” followed by the date and time the activity item " @@ -263,7 +263,7 @@ msgid "" "options to reply, edit, spam mark, or delete that activity." msgstr "" -#: bp-activity/bp-activity-admin.php:292 +#: bp-activity/bp-activity-admin.php:289 msgid "" "In the <strong>In Response To</strong> column, if the activity was in reply " "to another activity, it shows that activity's author's picture and name, " @@ -273,52 +273,52 @@ msgid "" "screen to show only related activity items." msgstr "" -#: bp-activity/bp-activity-admin.php:305 +#: bp-activity/bp-activity-admin.php:302 #. translators: accessibility text msgid "Activity list navigation" msgstr "" -#: bp-activity/bp-activity-admin.php:667 +#: bp-activity/bp-activity-admin.php:664 msgid "Editing Activity (ID #%s)" msgstr "" -#: bp-activity/bp-activity-admin.php:678 +#: bp-activity/bp-activity-admin.php:675 msgid "Action" msgstr "" -#: bp-activity/bp-activity-admin.php:682 +#: bp-activity/bp-activity-admin.php:679 #. translators: accessibility text msgid "Edit activity action" msgstr "" -#: bp-activity/bp-activity-admin.php:689 +#: bp-activity/bp-activity-admin.php:686 msgid "Content" msgstr "" -#: bp-activity/bp-activity-admin.php:693 +#: bp-activity/bp-activity-admin.php:690 #. translators: accessibility text msgid "Edit activity content" msgstr "" -#: bp-activity/bp-activity-admin.php:722 +#: bp-activity/bp-activity-admin.php:719 msgid "No activity found with this ID." msgstr "" -#: bp-activity/bp-activity-admin.php:724 bp-groups/bp-groups-admin.php:655 +#: bp-activity/bp-activity-admin.php:721 bp-groups/bp-groups-admin.php:651 #: bp-members/classes/class-bp-members-admin.php:995 msgid "Go back and try again." msgstr "" -#: bp-activity/bp-activity-admin.php:750 -#: bp-activity/classes/class-bp-activity-list-table.php:695 +#: bp-activity/bp-activity-admin.php:747 +#: bp-activity/classes/class-bp-activity-list-table.php:690 msgid "View Activity" msgstr "" -#: bp-activity/bp-activity-admin.php:758 +#: bp-activity/bp-activity-admin.php:755 msgid "Approved" msgstr "" -#: bp-activity/bp-activity-admin.php:759 +#: bp-activity/bp-activity-admin.php:756 #: bp-activity/classes/class-bp-activity-list-table.php:606 #: bp-activity/classes/class-bp-akismet.php:205 #: bp-activity/classes/class-bp-akismet.php:234 @@ -326,126 +326,125 @@ msgstr "" msgid "Spam" msgstr "" -#: bp-activity/bp-activity-admin.php:765 +#: bp-activity/bp-activity-admin.php:762 #: bp-members/classes/class-bp-members-admin.php:1061 #: bp-members/classes/class-bp-members-admin.php:1121 #. Translators: Publish box date format, see http:php.net/date. msgid "M j, Y @ G:i" msgstr "" -#: bp-activity/bp-activity-admin.php:768 +#: bp-activity/bp-activity-admin.php:765 msgid "Submitted on: %s" msgstr "" -#: bp-activity/bp-activity-admin.php:768 +#: bp-activity/bp-activity-admin.php:765 #: bp-activity/classes/class-bp-activity-list-table.php:599 #: bp-forums/bp-forums-template.php:2781 #: bp-groups/classes/class-bp-groups-list-table.php:527 -#: bp-xprofile/bp-xprofile-admin.php:616 msgid "Edit" msgstr "" -#: bp-activity/bp-activity-admin.php:781 -#: bp-xprofile/classes/class-bp-xprofile-field.php:1158 +#: bp-activity/bp-activity-admin.php:778 +#: bp-xprofile/classes/class-bp-xprofile-field.php:1167 #: bp-xprofile/classes/class-bp-xprofile-group.php:729 msgid "Update" msgstr "" -#: bp-activity/bp-activity-admin.php:803 +#: bp-activity/bp-activity-admin.php:800 #. translators: accessibility text msgid "Link" msgstr "" -#: bp-activity/bp-activity-admin.php:806 +#: bp-activity/bp-activity-admin.php:803 msgid "" "Activity generated by posts and comments, forum topics and replies, and " "some plugins, uses the link field for a permalink back to the content item." msgstr "" -#: bp-activity/bp-activity-admin.php:823 +#: bp-activity/bp-activity-admin.php:820 #. translators: accessibility text msgid "Author ID" msgstr "" -#: bp-activity/bp-activity-admin.php:893 +#: bp-activity/bp-activity-admin.php:890 msgid "" "This activity item has a type (%s) that is not registered using " "bp_activity_set_action(), so no label is available." msgstr "" -#: bp-activity/bp-activity-admin.php:901 +#: bp-activity/bp-activity-admin.php:898 #. translators: accessibility text msgid "Select activity type" msgstr "" -#: bp-activity/bp-activity-admin.php:922 +#: bp-activity/bp-activity-admin.php:919 msgid "Primary Item ID" msgstr "" -#: bp-activity/bp-activity-admin.php:926 +#: bp-activity/bp-activity-admin.php:923 msgid "Secondary Item ID" msgstr "" -#: bp-activity/bp-activity-admin.php:929 +#: bp-activity/bp-activity-admin.php:926 msgid "" "These identify the object that created this activity. For example, the " "fields could reference a pair of site and comment IDs." msgstr "" -#: bp-activity/bp-activity-admin.php:968 +#: bp-activity/bp-activity-admin.php:965 msgid "%s activity item has been permanently deleted." msgid_plural "%s activity items have been permanently deleted." msgstr[0] "" msgstr[1] "" -#: bp-activity/bp-activity-admin.php:972 +#: bp-activity/bp-activity-admin.php:969 msgid "An error occurred when trying to update activity ID #%s." msgstr "" -#: bp-activity/bp-activity-admin.php:975 +#: bp-activity/bp-activity-admin.php:972 msgid "Errors occurred when trying to update these activity items:" msgstr "" -#: bp-activity/bp-activity-admin.php:981 +#: bp-activity/bp-activity-admin.php:978 #. Translators: This is a bulleted list of item IDs. msgid "#%s" msgstr "" -#: bp-activity/bp-activity-admin.php:990 +#: bp-activity/bp-activity-admin.php:987 msgid "%s activity item has been successfully spammed." msgid_plural "%s activity items have been successfully spammed." msgstr[0] "" msgstr[1] "" -#: bp-activity/bp-activity-admin.php:993 +#: bp-activity/bp-activity-admin.php:990 msgid "%s activity item has been successfully unspammed." msgid_plural "%s activity items have been successfully unspammed." msgstr[0] "" msgstr[1] "" -#: bp-activity/bp-activity-admin.php:996 +#: bp-activity/bp-activity-admin.php:993 msgid "The activity item has been updated successfully." msgstr "" -#: bp-activity/bp-activity-admin.php:1014 +#: bp-activity/bp-activity-admin.php:1011 msgid "Activity related to ID #%s" msgstr "" -#: bp-activity/bp-activity-admin.php:1020 bp-groups/bp-groups-admin.php:765 -#: bp-members/classes/class-bp-members-admin.php:1937 +#: bp-activity/bp-activity-admin.php:1017 bp-groups/bp-groups-admin.php:761 +#: bp-members/classes/class-bp-members-admin.php:1933 msgid "Search results for “%s”" msgstr "" -#: bp-activity/bp-activity-admin.php:1033 +#: bp-activity/bp-activity-admin.php:1030 msgid "Search all Activity" msgstr "" -#: bp-activity/bp-activity-admin.php:1044 +#: bp-activity/bp-activity-admin.php:1041 msgid "Reply to Activity" msgstr "" -#: bp-activity/bp-activity-admin.php:1047 -#: bp-activity/bp-activity-admin.php:1053 +#: bp-activity/bp-activity-admin.php:1044 +#: bp-activity/bp-activity-admin.php:1050 #: bp-activity/classes/class-bp-activity-list-table.php:593 #: bp-templates/bp-legacy/buddypress/activity/comment.php:39 #: bp-templates/bp-legacy/buddypress/groups/single/forum/edit.php:23 @@ -454,11 +453,11 @@ msgstr "" msgid "Reply" msgstr "" -#: bp-activity/bp-activity-admin.php:1052 bp-groups/bp-groups-admin.php:712 -#: bp-members/classes/class-bp-members-admin.php:2087 +#: bp-activity/bp-activity-admin.php:1049 bp-groups/bp-groups-admin.php:708 +#: bp-members/classes/class-bp-members-admin.php:2133 #: bp-templates/bp-legacy/buddypress/activity/entry.php:129 #: bp-templates/bp-legacy/buddypress/forums/index.php:216 -#: bp-xprofile/classes/class-bp-xprofile-field.php:1299 +#: bp-xprofile/classes/class-bp-xprofile-field.php:1308 #: bp-xprofile/classes/class-bp-xprofile-group.php:813 msgid "Cancel" msgstr "" @@ -489,48 +488,48 @@ msgstr "" msgid "[Read more]" msgstr "" -#: bp-activity/bp-activity-filters.php:462 +#: bp-activity/bp-activity-filters.php:455 msgid "…" msgstr "" -#: bp-activity/bp-activity-filters.php:668 +#: bp-activity/bp-activity-filters.php:661 msgid "Load Newest" msgstr "" -#: bp-activity/bp-activity-functions.php:1384 +#: bp-activity/bp-activity-functions.php:1441 msgid "Posted a status update" msgstr "" -#: bp-activity/bp-activity-functions.php:1386 +#: bp-activity/bp-activity-functions.php:1443 msgid "Updates" msgstr "" -#: bp-activity/bp-activity-functions.php:1393 +#: bp-activity/bp-activity-functions.php:1450 msgid "Replied to a status update" msgstr "" -#: bp-activity/bp-activity-functions.php:1395 +#: bp-activity/bp-activity-functions.php:1452 msgid "Activity Comments" msgstr "" -#: bp-activity/bp-activity-functions.php:1463 +#: bp-activity/bp-activity-functions.php:1520 msgid "%s posted an update" msgstr "" -#: bp-activity/bp-activity-functions.php:1486 +#: bp-activity/bp-activity-functions.php:1543 msgid "%s posted a new activity comment" msgstr "" -#: bp-activity/bp-activity-functions.php:2527 -#: bp-templates/bp-legacy/buddypress-functions.php:1004 +#: bp-activity/bp-activity-functions.php:2584 +#: bp-templates/bp-legacy/buddypress-functions.php:1012 msgid "There was an error posting your reply. Please try again." msgstr "" -#: bp-activity/bp-activity-functions.php:2555 +#: bp-activity/bp-activity-functions.php:2612 msgid "The item you were replying to no longer exists." msgstr "" -#: bp-activity/bp-activity-functions.php:3093 +#: bp-activity/bp-activity-functions.php:3150 msgid "Thumbnail" msgstr "" @@ -570,168 +569,167 @@ msgstr "" msgid "%1$s replied to one your activity comments" msgstr "" -#: bp-activity/bp-activity-screens.php:280 +#: bp-activity/bp-activity-screens.php:276 msgid "You do not have access to this activity." msgstr "" -#: bp-activity/bp-activity-screens.php:331 +#: bp-activity/bp-activity-screens.php:327 #: bp-activity/classes/class-bp-activity-oembed-extension.php:138 #: bp-activity/classes/class-bp-activity-theme-compat.php:161 msgid "Activity" msgstr "" -#: bp-activity/bp-activity-screens.php:332 bp-blogs/bp-blogs-template.php:1119 -#: bp-friends/bp-friends-screens.php:116 bp-groups/bp-groups-screens.php:1480 +#: bp-activity/bp-activity-screens.php:328 bp-blogs/bp-blogs-template.php:1112 +#: bp-friends/bp-friends-screens.php:116 bp-groups/bp-groups-screens.php:1470 #: bp-messages/bp-messages-screens.php:210 #: bp-templates/bp-legacy/buddypress/members/register.php:316 msgid "Yes" msgstr "" -#: bp-activity/bp-activity-screens.php:333 bp-blogs/bp-blogs-template.php:1123 -#: bp-friends/bp-friends-screens.php:117 bp-groups/bp-groups-screens.php:1481 +#: bp-activity/bp-activity-screens.php:329 bp-blogs/bp-blogs-template.php:1116 +#: bp-friends/bp-friends-screens.php:117 bp-groups/bp-groups-screens.php:1471 #: bp-messages/bp-messages-screens.php:211 #: bp-templates/bp-legacy/buddypress/members/register.php:317 msgid "No" msgstr "" -#: bp-activity/bp-activity-screens.php:341 +#: bp-activity/bp-activity-screens.php:337 msgid "A member mentions you in an update using \"@%s\"" msgstr "" -#: bp-activity/bp-activity-screens.php:344 -#: bp-activity/bp-activity-screens.php:358 +#: bp-activity/bp-activity-screens.php:340 +#: bp-activity/bp-activity-screens.php:354 #: bp-friends/bp-friends-screens.php:127 bp-friends/bp-friends-screens.php:139 -#: bp-groups/bp-groups-screens.php:1491 bp-groups/bp-groups-screens.php:1503 -#: bp-groups/bp-groups-screens.php:1515 bp-groups/bp-groups-screens.php:1527 -#: bp-groups/bp-groups-screens.php:1539 bp-messages/bp-messages-screens.php:221 +#: bp-groups/bp-groups-screens.php:1481 bp-groups/bp-groups-screens.php:1493 +#: bp-groups/bp-groups-screens.php:1505 bp-groups/bp-groups-screens.php:1517 +#: bp-groups/bp-groups-screens.php:1529 bp-messages/bp-messages-screens.php:221 #. translators: accessibility text msgid "Yes, send email" msgstr "" -#: bp-activity/bp-activity-screens.php:348 -#: bp-activity/bp-activity-screens.php:362 +#: bp-activity/bp-activity-screens.php:344 +#: bp-activity/bp-activity-screens.php:358 #: bp-friends/bp-friends-screens.php:131 bp-friends/bp-friends-screens.php:143 -#: bp-groups/bp-groups-screens.php:1495 bp-groups/bp-groups-screens.php:1507 -#: bp-groups/bp-groups-screens.php:1519 bp-groups/bp-groups-screens.php:1531 -#: bp-groups/bp-groups-screens.php:1543 bp-messages/bp-messages-screens.php:225 +#: bp-groups/bp-groups-screens.php:1485 bp-groups/bp-groups-screens.php:1497 +#: bp-groups/bp-groups-screens.php:1509 bp-groups/bp-groups-screens.php:1521 +#: bp-groups/bp-groups-screens.php:1533 bp-messages/bp-messages-screens.php:225 #. translators: accessibility text msgid "No, do not send email" msgstr "" -#: bp-activity/bp-activity-screens.php:355 +#: bp-activity/bp-activity-screens.php:351 msgid "A member replies to an update or comment you've posted" msgstr "" -#: bp-activity/bp-activity-template.php:457 +#: bp-activity/bp-activity-template.php:453 msgid "Viewing 1 item" msgstr "" -#: bp-activity/bp-activity-template.php:459 +#: bp-activity/bp-activity-template.php:455 msgid "Viewing %1$s - %2$s of %3$s item" msgid_plural "Viewing %1$s - %2$s of %3$s items" msgstr[0] "" msgstr[1] "" -#: bp-activity/bp-activity-template.php:1041 -#: bp-activity/bp-activity-template.php:1210 -#: bp-activity/bp-activity-template.php:1221 -#: bp-activity/classes/class-bp-activity-component.php:363 -#: bp-blogs/classes/class-bp-blogs-component.php:298 +#: bp-activity/bp-activity-template.php:1037 +#: bp-activity/bp-activity-template.php:1206 +#: bp-activity/bp-activity-template.php:1217 +#: bp-activity/classes/class-bp-activity-component.php:359 +#: bp-blogs/classes/class-bp-blogs-component.php:294 #: bp-core/deprecated/2.1.php:459 bp-forums/bp-forums-loader.php:263 #: bp-forums/bp-forums-template.php:893 bp-forums/bp-forums-template.php:1224 #: bp-forums/bp-forums-template.php:2611 -#: bp-friends/classes/class-bp-friends-component.php:273 -#: bp-groups/bp-groups-template.php:1586 bp-groups/bp-groups-template.php:1618 -#: bp-groups/bp-groups-template.php:2385 bp-groups/bp-groups-template.php:2401 -#: bp-groups/bp-groups-template.php:2461 bp-groups/bp-groups-template.php:2477 -#: bp-groups/bp-groups-template.php:3915 bp-groups/bp-groups-template.php:3954 -#: bp-groups/bp-groups-template.php:3995 bp-groups/bp-groups-template.php:5565 -#: bp-groups/classes/class-bp-groups-component.php:811 -#: bp-members/bp-members-template.php:808 -#: bp-members/bp-members-template.php:1560 -#: bp-members/bp-members-template.php:1615 -#: bp-members/classes/class-bp-members-component.php:385 -#: bp-messages/bp-messages-template.php:671 -#: bp-messages/classes/class-bp-messages-component.php:342 -#: bp-notifications/classes/class-bp-notifications-component.php:267 +#: bp-friends/classes/class-bp-friends-component.php:269 +#: bp-groups/bp-groups-template.php:1585 bp-groups/bp-groups-template.php:1617 +#: bp-groups/bp-groups-template.php:2384 bp-groups/bp-groups-template.php:2400 +#: bp-groups/bp-groups-template.php:2460 bp-groups/bp-groups-template.php:2476 +#: bp-groups/bp-groups-template.php:3914 bp-groups/bp-groups-template.php:3953 +#: bp-groups/bp-groups-template.php:3994 bp-groups/bp-groups-template.php:5564 +#: bp-groups/classes/class-bp-groups-component.php:829 +#: bp-members/bp-members-template.php:804 +#: bp-members/bp-members-template.php:1556 +#: bp-members/bp-members-template.php:1611 +#: bp-members/classes/class-bp-members-component.php:381 +#: bp-messages/bp-messages-template.php:666 +#: bp-messages/classes/class-bp-messages-component.php:338 +#: bp-notifications/classes/class-bp-notifications-component.php:263 msgid "Profile picture of %s" msgstr "" -#: bp-activity/bp-activity-template.php:1041 +#: bp-activity/bp-activity-template.php:1037 msgid "Profile picture" msgstr "" -#: bp-activity/bp-activity-template.php:1186 +#: bp-activity/bp-activity-template.php:1182 msgid "Group logo" msgstr "" -#: bp-activity/bp-activity-template.php:1189 +#: bp-activity/bp-activity-template.php:1185 #: bp-groups/bp-groups-template.php:792 #: bp-groups/classes/class-bp-groups-list-table.php:554 msgid "Group logo of %s" msgstr "" -#: bp-activity/bp-activity-template.php:1200 +#: bp-activity/bp-activity-template.php:1196 msgid "Profile picture of the author of the site %s" msgstr "" -#: bp-activity/bp-activity-template.php:1502 +#: bp-activity/bp-activity-template.php:1499 msgid "View Discussion" msgstr "" -#: bp-activity/bp-activity-template.php:2173 +#: bp-activity/bp-activity-template.php:2170 msgid "" "%1$s no longer accepts arguments. See the inline documentation at %2$s for " "more details." msgstr "" -#: bp-activity/bp-activity-template.php:2601 +#: bp-activity/bp-activity-template.php:2640 #: bp-core/bp-core-attachments.php:724 bp-forums/bp-forums-template.php:2782 -#: bp-groups/classes/class-bp-groups-component.php:688 +#: bp-groups/classes/class-bp-groups-component.php:706 #: bp-groups/classes/class-bp-groups-list-table.php:371 #: bp-groups/classes/class-bp-groups-list-table.php:530 #: bp-members/classes/class-bp-members-list-table.php:171 #: bp-members/classes/class-bp-members-list-table.php:319 #: bp-members/classes/class-bp-members-ms-list-table.php:158 #: bp-members/classes/class-bp-members-ms-list-table.php:312 -#: bp-messages/bp-messages-template.php:971 -#: bp-notifications/bp-notifications-template.php:788 -#: bp-notifications/bp-notifications-template.php:1038 +#: bp-messages/bp-messages-template.php:966 +#: bp-notifications/bp-notifications-template.php:784 +#: bp-notifications/bp-notifications-template.php:1034 #: bp-templates/bp-legacy/buddypress/activity/comment.php:45 #: bp-templates/bp-legacy/buddypress/members/single/messages/messages-loop.php:147 #: bp-templates/bp-legacy/buddypress/members/single/messages/single.php:44 -#: bp-xprofile/bp-xprofile-admin.php:621 #: bp-xprofile/classes/class-bp-xprofile-field-type.php:405 msgid "Delete" msgstr "" -#: bp-activity/bp-activity-template.php:2706 +#: bp-activity/bp-activity-template.php:2745 #: bp-core/admin/bp-core-admin-functions.php:1039 #: bp-core/admin/bp-core-admin-slugs.php:149 #: bp-core/admin/bp-core-admin-slugs.php:220 #: bp-groups/classes/class-bp-groups-list-table.php:533 -#: bp-members/bp-members-template.php:1052 +#: bp-members/bp-members-template.php:1048 #: bp-templates/bp-legacy/buddypress-functions.php:305 msgid "View" msgstr "" -#: bp-activity/bp-activity-template.php:2815 +#: bp-activity/bp-activity-template.php:2854 msgid "Clear Filter" msgstr "" -#: bp-activity/bp-activity-template.php:3125 +#: bp-activity/bp-activity-template.php:3164 msgid "a user" msgstr "" -#: bp-activity/bp-activity-template.php:3182 +#: bp-activity/bp-activity-template.php:3221 msgid "Public Message" msgstr "" -#: bp-activity/bp-activity-template.php:3774 +#: bp-activity/bp-activity-template.php:3813 msgid "Site Wide Activity RSS Feed" msgstr "" -#: bp-activity/classes/class-bp-activity-activity.php:360 +#: bp-activity/classes/class-bp-activity-activity.php:363 #: bp-activity/classes/class-bp-activity-template.php:144 #: bp-groups/bp-groups-functions.php:603 #: bp-groups/classes/class-bp-groups-group-members-template.php:99 @@ -748,11 +746,11 @@ msgid "" msgstr "" #: bp-activity/classes/class-bp-activity-component.php:30 -#: bp-core/bp-core-functions.php:2459 +#: bp-core/bp-core-functions.php:2489 msgid "Activity Streams" msgstr "" -#: bp-activity/classes/class-bp-activity-component.php:135 +#: bp-activity/classes/class-bp-activity-component.php:131 msgid "Search Activity..." msgstr "" @@ -799,7 +797,7 @@ msgstr "" #: bp-activity/classes/class-bp-activity-list-table.php:345 #: bp-activity/classes/class-bp-activity-list-table.php:609 -#: bp-groups/bp-groups-admin.php:711 +#: bp-groups/bp-groups-admin.php:707 msgid "Delete Permanently" msgstr "" @@ -849,7 +847,7 @@ msgstr "" msgid "%1$s at %2$s" msgstr "" -#: bp-activity/classes/class-bp-activity-list-table.php:714 +#: bp-activity/classes/class-bp-activity-list-table.php:709 msgid "%s related activity" msgid_plural "%s related activities" msgstr[0] "" @@ -954,138 +952,138 @@ msgstr "" msgid "%1$s commented on the post, %2$s" msgstr "" -#: bp-blogs/bp-blogs-template.php:245 +#: bp-blogs/bp-blogs-template.php:241 msgid "Viewing 1 site" msgstr "" -#: bp-blogs/bp-blogs-template.php:247 +#: bp-blogs/bp-blogs-template.php:243 msgid "Viewing %1$s - %2$s of %3$s site" msgid_plural "Viewing %1$s - %2$s of %3$s sites" msgstr[0] "" msgstr[1] "" -#: bp-blogs/bp-blogs-template.php:342 bp-blogs/bp-blogs-template.php:344 +#: bp-blogs/bp-blogs-template.php:338 msgid "Profile picture of site author %s" msgstr "" -#: bp-blogs/bp-blogs-template.php:399 +#: bp-blogs/bp-blogs-template.php:393 msgid "Site icon for %s" msgstr "" -#: bp-blogs/bp-blogs-template.php:629 +#: bp-blogs/bp-blogs-template.php:622 #: bp-core/classes/class-bp-core-user.php:177 -#: bp-groups/bp-groups-widgets.php:71 -#: bp-groups/classes/class-bp-groups-invite-template.php:241 -#: bp-groups/classes/class-bp-groups-widget.php:143 -#: bp-members/bp-members-template.php:967 -#: bp-members/bp-members-template.php:1697 +#: bp-groups/bp-groups-widgets.php:72 +#: bp-groups/classes/class-bp-groups-invite-template.php:240 +#: bp-groups/classes/class-bp-groups-widget.php:147 +#: bp-members/bp-members-template.php:963 +#: bp-members/bp-members-template.php:1693 #: bp-templates/bp-legacy/buddypress/groups/groups-loop.php:66 #: bp-templates/bp-legacy/buddypress/groups/single/cover-image-header.php:62 #: bp-templates/bp-legacy/buddypress/groups/single/group-header.php:71 msgid "active %s" msgstr "" -#: bp-blogs/bp-blogs-template.php:642 bp-members/bp-members-template.php:985 +#: bp-blogs/bp-blogs-template.php:635 bp-members/bp-members-template.php:981 msgid "Never active" msgstr "" -#: bp-blogs/bp-blogs-template.php:694 +#: bp-blogs/bp-blogs-template.php:687 msgid "Latest Post: %s" msgstr "" -#: bp-blogs/bp-blogs-template.php:1031 +#: bp-blogs/bp-blogs-template.php:1024 msgid "There was a problem; please correct the form below and try again." msgstr "" -#: bp-blogs/bp-blogs-template.php:1034 +#: bp-blogs/bp-blogs-template.php:1027 msgid "" "By filling out the form below, you can <strong>add a site to your " "account</strong>. There is no limit to the number of sites that you can " "have, so create to your heart's content, but blog responsibly!" msgstr "" -#: bp-blogs/bp-blogs-template.php:1036 +#: bp-blogs/bp-blogs-template.php:1029 msgid "" "If you’re not going to use a great domain, leave it for a new user. " "Now have at it!" msgstr "" -#: bp-blogs/bp-blogs-template.php:1052 +#: bp-blogs/bp-blogs-template.php:1045 msgid "Create Site" msgstr "" -#: bp-blogs/bp-blogs-template.php:1074 +#: bp-blogs/bp-blogs-template.php:1067 msgid "Site Name:" msgstr "" -#: bp-blogs/bp-blogs-template.php:1076 +#: bp-blogs/bp-blogs-template.php:1069 msgid "Site Domain:" msgstr "" -#: bp-blogs/bp-blogs-template.php:1090 +#: bp-blogs/bp-blogs-template.php:1083 msgid "Your address will be " msgstr "" -#: bp-blogs/bp-blogs-template.php:1093 +#: bp-blogs/bp-blogs-template.php:1086 msgid "blogname" msgstr "" -#: bp-blogs/bp-blogs-template.php:1095 +#: bp-blogs/bp-blogs-template.php:1088 msgid "domain." msgstr "" -#: bp-blogs/bp-blogs-template.php:1098 +#: bp-blogs/bp-blogs-template.php:1091 msgid "" "Must be at least 4 characters, letters and numbers only. It cannot be " "changed so choose carefully!)" msgstr "" -#: bp-blogs/bp-blogs-template.php:1104 +#: bp-blogs/bp-blogs-template.php:1097 msgid "Site Title:" msgstr "" -#: bp-blogs/bp-blogs-template.php:1115 +#: bp-blogs/bp-blogs-template.php:1108 msgid "" "Privacy: I would like my site to appear in search engines, and in public " "listings around this network" msgstr "" -#: bp-blogs/bp-blogs-template.php:1227 +#: bp-blogs/bp-blogs-template.php:1220 msgid "Congratulations! You have successfully registered a new site." msgstr "" -#: bp-blogs/bp-blogs-template.php:1232 +#: bp-blogs/bp-blogs-template.php:1225 msgid "%s is your new site." msgstr "" -#: bp-blogs/bp-blogs-template.php:1237 +#: bp-blogs/bp-blogs-template.php:1230 #. translators: 1: Login URL, 2: User name msgid "<a href=\"%1$s\">Log in</a> as \"%2$s\" using your existing password." msgstr "" -#: bp-blogs/bp-blogs-template.php:1274 bp-blogs/bp-blogs-template.php:1360 -#: bp-blogs/classes/class-bp-blogs-component.php:268 +#: bp-blogs/bp-blogs-template.php:1267 bp-blogs/bp-blogs-template.php:1353 +#: bp-blogs/classes/class-bp-blogs-component.php:264 #: bp-blogs/classes/class-bp-blogs-theme-compat.php:175 #: bp-core/bp-core-template.php:3206 msgid "Create a Site" msgstr "" -#: bp-blogs/bp-blogs-template.php:1290 +#: bp-blogs/bp-blogs-template.php:1283 msgid "%s's Sites" msgstr "" -#: bp-blogs/bp-blogs-template.php:1291 +#: bp-blogs/bp-blogs-template.php:1284 msgid "%s's Recent Posts" msgstr "" -#: bp-blogs/bp-blogs-template.php:1292 +#: bp-blogs/bp-blogs-template.php:1285 msgid "%s's Recent Comments" msgstr "" -#: bp-blogs/bp-blogs-template.php:1320 bp-core/deprecated/1.5.php:426 -#: bp-forums/bp-forums-template.php:2925 bp-groups/bp-groups-template.php:5222 -#: bp-members/bp-members-template.php:1275 -#: bp-messages/bp-messages-template.php:794 +#: bp-blogs/bp-blogs-template.php:1313 bp-core/deprecated/1.5.php:426 +#: bp-forums/bp-forums-template.php:2925 bp-groups/bp-groups-template.php:5221 +#: bp-members/bp-members-template.php:1271 +#: bp-messages/bp-messages-template.php:789 #: bp-templates/bp-legacy/buddypress/common/search/dir-search-form.php:14 msgid "Search" msgstr "" @@ -1108,19 +1106,19 @@ msgstr "" msgid "Search sites..." msgstr "" -#: bp-blogs/classes/class-bp-blogs-component.php:189 +#: bp-blogs/classes/class-bp-blogs-component.php:185 #. translators: %s: Site count for the current user msgid "Sites %s" msgstr "" -#: bp-blogs/classes/class-bp-blogs-component.php:206 -#: bp-blogs/classes/class-bp-blogs-component.php:258 -#: bp-blogs/classes/class-bp-blogs-component.php:289 +#: bp-blogs/classes/class-bp-blogs-component.php:202 +#: bp-blogs/classes/class-bp-blogs-component.php:254 +#: bp-blogs/classes/class-bp-blogs-component.php:285 #: bp-core/deprecated/2.1.php:62 msgid "My Sites" msgstr "" -#: bp-blogs/classes/class-bp-blogs-component.php:250 +#: bp-blogs/classes/class-bp-blogs-component.php:246 #: bp-blogs/classes/class-bp-blogs-theme-compat.php:113 #: bp-blogs/classes/class-bp-blogs-theme-compat.php:177 msgid "Sites" @@ -1166,39 +1164,39 @@ msgid "Save Settings" msgstr "" #: bp-core/admin/bp-core-admin-components.php:67 -#: bp-core/bp-core-functions.php:2443 +#: bp-core/bp-core-functions.php:2473 msgid "Extended Profiles" msgstr "" #: bp-core/admin/bp-core-admin-components.php:68 -#: bp-core/bp-core-functions.php:2444 +#: bp-core/bp-core-functions.php:2474 msgid "" "Customize your community with fully editable profile fields that allow your " "users to describe themselves." msgstr "" #: bp-core/admin/bp-core-admin-components.php:71 -#: bp-core/bp-core-functions.php:2447 +#: bp-core/bp-core-functions.php:2477 msgid "Account Settings" msgstr "" #: bp-core/admin/bp-core-admin-components.php:72 -#: bp-core/bp-core-functions.php:2448 +#: bp-core/bp-core-functions.php:2478 msgid "" "Allow your users to modify their account and notification settings directly " "from within their profiles." msgstr "" #: bp-core/admin/bp-core-admin-components.php:75 -#: bp-core/bp-core-functions.php:2463 bp-core/deprecated/2.1.php:530 -#: bp-notifications/classes/class-bp-notifications-component.php:262 +#: bp-core/bp-core-functions.php:2493 bp-core/deprecated/2.1.php:530 +#: bp-notifications/classes/class-bp-notifications-component.php:258 #: bp-templates/bp-legacy/buddypress/members/single/notifications/read.php:15 #. translators: accessibility text msgid "Notifications" msgstr "" #: bp-core/admin/bp-core-admin-components.php:76 -#: bp-core/bp-core-functions.php:2464 +#: bp-core/bp-core-functions.php:2494 msgid "" "Notify members of relevant activity with a toolbar bubble and/or via email, " "and allow them to customize their notification settings." @@ -1299,7 +1297,7 @@ msgstr "" #: bp-members/classes/class-bp-members-list-table.php:315 #: bp-members/classes/class-bp-members-ms-list-table.php:304 #: bp-members/classes/class-bp-members-ms-list-table.php:308 -#: bp-messages/bp-messages-template.php:1207 +#: bp-messages/bp-messages-template.php:1202 #: bp-templates/bp-legacy/buddypress/members/activate.php:59 msgid "Activate" msgstr "" @@ -1344,7 +1342,7 @@ msgstr "" #: bp-forums/bp-forums-loader.php:159 bp-forums/bp-forums-loader.php:214 #: bp-forums/bp-forums-loader.php:258 bp-forums/bp-forums-screens.php:301 #: bp-forums/bp-forums-screens.php:303 bp-forums/deprecated/1.6.php:39 -#: bp-forums/deprecated/1.7.php:24 bp-forums/deprecated/1.7.php:101 +#: bp-forums/deprecated/1.7.php:101 msgid "Forums" msgstr "" @@ -1479,25 +1477,6 @@ msgstr "" msgid "User removed from spam." msgstr "" -#: bp-core/admin/bp-core-admin-functions.php:1239 -msgid "A BuddyPress update is available, but your system is not compatible." -msgstr "" - -#: bp-core/admin/bp-core-admin-functions.php:1240 -#: bp-core/admin/bp-core-admin-functions.php:1294 -msgid "See <a href=\"%s\">the Codex guide</a> for more information." -msgstr "" - -#: bp-core/admin/bp-core-admin-functions.php:1293 -msgid "Your site is not ready for BuddyPress 2.8." -msgstr "" - -#: bp-core/admin/bp-core-admin-functions.php:1294 -msgid "" -"Your site is currently running PHP version %s, while BuddyPress 2.8 will " -"require version 5.3+." -msgstr "" - #: bp-core/admin/bp-core-admin-settings.php:30 msgid "Show the Toolbar for logged out users" msgstr "" @@ -1597,7 +1576,7 @@ msgstr "" #: bp-core/admin/bp-core-admin-tools.php:22 #: bp-core/admin/bp-core-admin-tools.php:407 #: bp-core/admin/bp-core-admin-tools.php:410 -#: bp-core/classes/class-bp-admin.php:300 +#: bp-core/classes/class-bp-admin.php:296 msgid "BuddyPress Tools" msgstr "" @@ -1685,8 +1664,8 @@ msgid "Determining last activity dates for each user… %s" msgstr "" #: bp-core/admin/bp-core-admin-tools.php:378 -#: bp-core/classes/class-bp-admin.php:277 -#: bp-core/classes/class-bp-admin.php:278 +#: bp-core/classes/class-bp-admin.php:273 +#: bp-core/classes/class-bp-admin.php:274 msgid "Tools" msgstr "" @@ -1707,39 +1686,39 @@ msgid "" "the \"Repopulate site tracking records\" option." msgstr "" -#: bp-core/bp-core-admin.php:29 +#: bp-core/bp-core-admin.php:25 msgid "Maintenance Release" msgid_plural "Maintenance Releases" msgstr[0] "" msgstr[1] "" -#: bp-core/bp-core-admin.php:30 +#: bp-core/bp-core-admin.php:26 msgid "Security Release" msgid_plural "Security Releases" msgstr[0] "" msgstr[1] "" -#: bp-core/bp-core-admin.php:31 +#: bp-core/bp-core-admin.php:27 msgid "Maintenance and Security Release" msgid_plural "Maintenance and Security Releases" msgstr[0] "" msgstr[1] "" -#: bp-core/bp-core-admin.php:34 +#: bp-core/bp-core-admin.php:30 #. translators: 1: BuddyPress version number. msgid "<strong>Version %1$s</strong> addressed a security issue." msgid_plural "<strong>Version %1$s</strong> addressed some security issues." msgstr[0] "" msgstr[1] "" -#: bp-core/bp-core-admin.php:41 +#: bp-core/bp-core-admin.php:37 #. translators: 1: BuddyPress version number, 2: plural number of bugs. msgid "<strong>Version %1$s</strong> addressed %2$s bug." msgid_plural "<strong>Version %1$s</strong> addressed %2$s bugs." msgstr[0] "" msgstr[1] "" -#: bp-core/bp-core-admin.php:48 +#: bp-core/bp-core-admin.php:44 #. translators: 1: BuddyPress version number, 2: plural number of bugs. #. Singular security issue. msgid "<strong>Version %1$s</strong> addressed a security issue and fixed %2$s bug." @@ -1749,7 +1728,7 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: bp-core/bp-core-admin.php:55 +#: bp-core/bp-core-admin.php:51 #. translators: 1: BuddyPress version number, 2: plural number of bugs. More #. than one security issue. msgid "" @@ -1761,7 +1740,7 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: bp-core/bp-core-admin.php:61 +#: bp-core/bp-core-admin.php:57 msgid "For more information, see <a href=\"%s\">the release notes</a>." msgstr "" @@ -1941,13 +1920,13 @@ msgid "" "results, upload a picture larger than %d x %d pixels." msgstr "" -#: bp-core/bp-core-avatars.php:1416 bp-core/bp-core-template.php:199 +#: bp-core/bp-core-avatars.php:1411 bp-core/bp-core-template.php:199 #: bp-core/bp-core-template.php:218 bp-core/classes/class-bp-core-user.php:174 #: bp-core/classes/class-bp-core-user.php:175 #: bp-core/classes/class-bp-core-user.php:176 +#: bp-groups/classes/class-bp-groups-invite-template.php:234 #: bp-groups/classes/class-bp-groups-invite-template.php:235 #: bp-groups/classes/class-bp-groups-invite-template.php:236 -#: bp-groups/classes/class-bp-groups-invite-template.php:237 msgid "Profile photo of %s" msgstr "" @@ -1975,44 +1954,44 @@ msgstr "" msgid "Customize the appearance of emails sent by BuddyPress." msgstr "" -#: bp-core/bp-core-customizer-email.php:284 +#: bp-core/bp-core-customizer-email.php:277 msgid "Email background color" msgstr "" -#: bp-core/bp-core-customizer-email.php:291 +#: bp-core/bp-core-customizer-email.php:284 msgid "Header background color" msgstr "" -#: bp-core/bp-core-customizer-email.php:298 +#: bp-core/bp-core-customizer-email.php:291 msgid "Applied to links and other decorative areas." msgstr "" -#: bp-core/bp-core-customizer-email.php:299 +#: bp-core/bp-core-customizer-email.php:292 msgid "Highlight color" msgstr "" -#: bp-core/bp-core-customizer-email.php:306 -#: bp-core/bp-core-customizer-email.php:335 -#: bp-core/bp-core-customizer-email.php:372 +#: bp-core/bp-core-customizer-email.php:299 +#: bp-core/bp-core-customizer-email.php:328 +#: bp-core/bp-core-customizer-email.php:365 msgid "Text color" msgstr "" -#: bp-core/bp-core-customizer-email.php:313 -#: bp-core/bp-core-customizer-email.php:342 -#: bp-core/bp-core-customizer-email.php:379 +#: bp-core/bp-core-customizer-email.php:306 +#: bp-core/bp-core-customizer-email.php:335 +#: bp-core/bp-core-customizer-email.php:372 msgid "Text size" msgstr "" -#: bp-core/bp-core-customizer-email.php:327 -#: bp-core/bp-core-customizer-email.php:365 +#: bp-core/bp-core-customizer-email.php:320 +#: bp-core/bp-core-customizer-email.php:358 msgid "Background color" msgstr "" -#: bp-core/bp-core-customizer-email.php:356 +#: bp-core/bp-core-customizer-email.php:349 msgid "Change the email footer here" msgstr "" -#: bp-core/bp-core-customizer-email.php:357 +#: bp-core/bp-core-customizer-email.php:350 msgid "Footer text" msgstr "" @@ -2024,167 +2003,167 @@ msgstr "" msgid "Page %s" msgstr "" -#: bp-core/bp-core-functions.php:1136 +#: bp-core/bp-core-functions.php:1166 msgid "sometime" msgstr "" -#: bp-core/bp-core-functions.php:1145 +#: bp-core/bp-core-functions.php:1175 msgid "right now" msgstr "" -#: bp-core/bp-core-functions.php:1154 +#: bp-core/bp-core-functions.php:1184 msgid "%s ago" msgstr "" -#: bp-core/bp-core-functions.php:1215 +#: bp-core/bp-core-functions.php:1245 msgid "%s year" msgid_plural "%s years" msgstr[0] "" msgstr[1] "" -#: bp-core/bp-core-functions.php:1218 bp-core/bp-core-functions.php:1252 +#: bp-core/bp-core-functions.php:1248 bp-core/bp-core-functions.php:1282 msgid "%s month" msgid_plural "%s months" msgstr[0] "" msgstr[1] "" -#: bp-core/bp-core-functions.php:1221 bp-core/bp-core-functions.php:1255 +#: bp-core/bp-core-functions.php:1251 bp-core/bp-core-functions.php:1285 msgid "%s week" msgid_plural "%s weeks" msgstr[0] "" msgstr[1] "" -#: bp-core/bp-core-functions.php:1224 bp-core/bp-core-functions.php:1258 +#: bp-core/bp-core-functions.php:1254 bp-core/bp-core-functions.php:1288 msgid "%s day" msgid_plural "%s days" msgstr[0] "" msgstr[1] "" -#: bp-core/bp-core-functions.php:1227 bp-core/bp-core-functions.php:1261 +#: bp-core/bp-core-functions.php:1257 bp-core/bp-core-functions.php:1291 msgid "%s hour" msgid_plural "%s hours" msgstr[0] "" msgstr[1] "" -#: bp-core/bp-core-functions.php:1230 bp-core/bp-core-functions.php:1264 +#: bp-core/bp-core-functions.php:1260 bp-core/bp-core-functions.php:1294 msgid "%s minute" msgid_plural "%s minutes" msgstr[0] "" msgstr[1] "" -#: bp-core/bp-core-functions.php:1233 bp-core/bp-core-functions.php:1267 +#: bp-core/bp-core-functions.php:1263 bp-core/bp-core-functions.php:1297 msgid "%s second" msgid_plural "%s seconds" msgstr[0] "" msgstr[1] "" -#: bp-core/bp-core-functions.php:1531 +#: bp-core/bp-core-functions.php:1561 msgid "Not recently active" msgstr "" -#: bp-core/bp-core-functions.php:2425 bp-core/classes/class-bp-core.php:31 +#: bp-core/bp-core-functions.php:2455 bp-core/classes/class-bp-core.php:31 msgid "BuddyPress Core" msgstr "" -#: bp-core/bp-core-functions.php:2426 +#: bp-core/bp-core-functions.php:2456 msgid "It‘s what makes <del>time travel</del> BuddyPress possible!" msgstr "" -#: bp-core/bp-core-functions.php:2429 +#: bp-core/bp-core-functions.php:2459 msgid "Community Members" msgstr "" -#: bp-core/bp-core-functions.php:2430 +#: bp-core/bp-core-functions.php:2460 msgid "Everything in a BuddyPress community revolves around its members." msgstr "" -#: bp-core/bp-core-functions.php:2436 +#: bp-core/bp-core-functions.php:2466 #: bp-templates/bp-legacy/buddypress/groups/create.php:194 msgid "Group Forums" msgstr "" -#: bp-core/bp-core-functions.php:2437 +#: bp-core/bp-core-functions.php:2467 msgid "BuddyPress Forums are retired. Use %s." msgstr "" -#: bp-core/bp-core-functions.php:2451 +#: bp-core/bp-core-functions.php:2481 msgid "Friend Connections" msgstr "" -#: bp-core/bp-core-functions.php:2452 +#: bp-core/bp-core-functions.php:2482 msgid "" "Let your users make connections so they can track the activity of others " "and focus on the people they care about the most." msgstr "" -#: bp-core/bp-core-functions.php:2455 +#: bp-core/bp-core-functions.php:2485 msgid "Private Messaging" msgstr "" -#: bp-core/bp-core-functions.php:2456 +#: bp-core/bp-core-functions.php:2486 msgid "" "Allow your users to talk to each other directly and in private. Not just " "limited to one-on-one discussions, messages can be sent between any number " "of members." msgstr "" -#: bp-core/bp-core-functions.php:2460 +#: bp-core/bp-core-functions.php:2490 msgid "" "Global, personal, and group activity streams with threaded commenting, " "direct posting, favoriting, and @mentions, all with full RSS feed and email " "notification support." msgstr "" -#: bp-core/bp-core-functions.php:2467 +#: bp-core/bp-core-functions.php:2497 msgid "User Groups" msgstr "" -#: bp-core/bp-core-functions.php:2468 +#: bp-core/bp-core-functions.php:2498 msgid "" "Groups allow your users to organize themselves into specific public, " "private or hidden sections with separate activity streams and member " "listings." msgstr "" -#: bp-core/bp-core-functions.php:2471 +#: bp-core/bp-core-functions.php:2501 msgid "Group Forums (Legacy)" msgstr "" -#: bp-core/bp-core-functions.php:2472 +#: bp-core/bp-core-functions.php:2502 msgid "Group forums allow for focused, bulletin-board style conversations." msgstr "" -#: bp-core/bp-core-functions.php:2475 +#: bp-core/bp-core-functions.php:2505 msgid "Site Tracking" msgstr "" -#: bp-core/bp-core-functions.php:2476 +#: bp-core/bp-core-functions.php:2506 msgid "Record activity for new posts and comments from your site." msgstr "" -#: bp-core/bp-core-functions.php:2482 +#: bp-core/bp-core-functions.php:2512 msgid "Record activity for new sites, posts, and comments across your network." msgstr "" -#: bp-core/bp-core-functions.php:2546 +#: bp-core/bp-core-functions.php:2576 #: bp-core/classes/class-bp-core-login-widget.php:84 #: bp-core/deprecated/1.5.php:313 bp-core/deprecated/2.1.php:258 -#: bp-members/bp-members-template.php:1368 +#: bp-members/bp-members-template.php:1364 msgid "Log Out" msgstr "" -#: bp-core/bp-core-functions.php:2611 +#: bp-core/bp-core-functions.php:2641 #: bp-core/classes/class-bp-core-login-widget.php:116 #: bp-core/deprecated/2.1.php:190 msgid "Log In" msgstr "" -#: bp-core/bp-core-functions.php:3309 +#: bp-core/bp-core-functions.php:3356 #. translators: do not remove {} brackets or translate its contents. msgid "[{{{site.name}}}] {{poster.name}} replied to one of your updates" msgstr "" -#: bp-core/bp-core-functions.php:3311 +#: bp-core/bp-core-functions.php:3358 #. translators: do not remove {} brackets or translate its contents. msgid "" "{{poster.name}} replied to one of your updates:\n" @@ -2195,7 +2174,7 @@ msgid "" "on the conversation." msgstr "" -#: bp-core/bp-core-functions.php:3313 +#: bp-core/bp-core-functions.php:3360 #. translators: do not remove {} brackets or translate its contents. msgid "" "{{poster.name}} replied to one of your updates:\n" @@ -2206,12 +2185,12 @@ msgid "" "{{{thread.url}}}" msgstr "" -#: bp-core/bp-core-functions.php:3317 +#: bp-core/bp-core-functions.php:3364 #. translators: do not remove {} brackets or translate its contents. msgid "[{{{site.name}}}] {{poster.name}} replied to one of your comments" msgstr "" -#: bp-core/bp-core-functions.php:3319 +#: bp-core/bp-core-functions.php:3366 #. translators: do not remove {} brackets or translate its contents. msgid "" "{{poster.name}} replied to one of your comments:\n" @@ -2222,7 +2201,7 @@ msgid "" "on the conversation." msgstr "" -#: bp-core/bp-core-functions.php:3321 +#: bp-core/bp-core-functions.php:3368 #. translators: do not remove {} brackets or translate its contents. msgid "" "{{poster.name}} replied to one of your comments:\n" @@ -2233,12 +2212,12 @@ msgid "" "{{{thread.url}}}" msgstr "" -#: bp-core/bp-core-functions.php:3325 +#: bp-core/bp-core-functions.php:3372 #. translators: do not remove {} brackets or translate its contents. msgid "[{{{site.name}}}] {{poster.name}} mentioned you in a status update" msgstr "" -#: bp-core/bp-core-functions.php:3327 +#: bp-core/bp-core-functions.php:3374 #. translators: do not remove {} brackets or translate its contents. msgid "" "{{poster.name}} mentioned you in a status update:\n" @@ -2249,7 +2228,7 @@ msgid "" "up on the conversation." msgstr "" -#: bp-core/bp-core-functions.php:3329 +#: bp-core/bp-core-functions.php:3376 #. translators: do not remove {} brackets or translate its contents. msgid "" "{{poster.name}} mentioned you in a status update:\n" @@ -2260,12 +2239,12 @@ msgid "" "{{{mentioned.url}}}" msgstr "" -#: bp-core/bp-core-functions.php:3333 +#: bp-core/bp-core-functions.php:3380 #. translators: do not remove {} brackets or translate its contents. msgid "[{{{site.name}}}] {{poster.name}} mentioned you in an update" msgstr "" -#: bp-core/bp-core-functions.php:3335 +#: bp-core/bp-core-functions.php:3382 #. translators: do not remove {} brackets or translate its contents. msgid "" "{{poster.name}} mentioned you in the group \"{{group.name}}\":\n" @@ -2276,7 +2255,7 @@ msgid "" "up on the conversation." msgstr "" -#: bp-core/bp-core-functions.php:3337 +#: bp-core/bp-core-functions.php:3384 #. translators: do not remove {} brackets or translate its contents. msgid "" "{{poster.name}} mentioned you in the group \"{{group.name}}\":\n" @@ -2287,12 +2266,12 @@ msgid "" "{{{mentioned.url}}}" msgstr "" -#: bp-core/bp-core-functions.php:3341 +#: bp-core/bp-core-functions.php:3388 #. translators: do not remove {} brackets or translate its contents. msgid "[{{{site.name}}}] Activate your account" msgstr "" -#: bp-core/bp-core-functions.php:3343 +#: bp-core/bp-core-functions.php:3390 #. translators: do not remove {} brackets or translate its contents. msgid "" "Thanks for registering!\n" @@ -2301,7 +2280,7 @@ msgid "" "href=\"{{{activate.url}}}\">{{{activate.url}}}</a>" msgstr "" -#: bp-core/bp-core-functions.php:3345 +#: bp-core/bp-core-functions.php:3392 #. translators: do not remove {} brackets or translate its contents. msgid "" "Thanks for registering!\n" @@ -2310,12 +2289,12 @@ msgid "" "{{{activate.url}}}" msgstr "" -#: bp-core/bp-core-functions.php:3349 +#: bp-core/bp-core-functions.php:3396 #. translators: do not remove {} brackets or translate its contents. msgid "[{{{site.name}}}] Activate {{{user-site.url}}}" msgstr "" -#: bp-core/bp-core-functions.php:3351 +#: bp-core/bp-core-functions.php:3398 #. translators: do not remove {} brackets or translate its contents. msgid "" "Thanks for registering!\n" @@ -2327,7 +2306,7 @@ msgid "" "href=\"{{{user-site.url}}}\">{{{user-site.url}}}</a>." msgstr "" -#: bp-core/bp-core-functions.php:3353 +#: bp-core/bp-core-functions.php:3400 #. translators: do not remove {} brackets or translate its contents. msgid "" "Thanks for registering!\n" @@ -2338,12 +2317,12 @@ msgid "" "After you activate, you can visit your site at {{{user-site.url}}}." msgstr "" -#: bp-core/bp-core-functions.php:3357 +#: bp-core/bp-core-functions.php:3404 #. translators: do not remove {} brackets or translate its contents. msgid "[{{{site.name}}}] New friendship request from {{initiator.name}}" msgstr "" -#: bp-core/bp-core-functions.php:3359 +#: bp-core/bp-core-functions.php:3406 #. translators: do not remove {} brackets or translate its contents. msgid "" "<a href=\"{{{initiator.url}}}\">{{initiator.name}}</a> wants to add you as " @@ -2353,7 +2332,7 @@ msgid "" "href=\"{{{friend-requests.url}}}\">{{{friend-requests.url}}}</a>" msgstr "" -#: bp-core/bp-core-functions.php:3361 +#: bp-core/bp-core-functions.php:3408 #. translators: do not remove {} brackets or translate its contents. msgid "" "{{initiator.name}} wants to add you as a friend.\n" @@ -2364,19 +2343,19 @@ msgid "" "To view {{initiator.name}}'s profile, visit: {{{initiator.url}}}" msgstr "" -#: bp-core/bp-core-functions.php:3365 +#: bp-core/bp-core-functions.php:3412 #. translators: do not remove {} brackets or translate its contents. msgid "[{{{site.name}}}] {{friend.name}} accepted your friendship request" msgstr "" -#: bp-core/bp-core-functions.php:3367 +#: bp-core/bp-core-functions.php:3414 #. translators: do not remove {} brackets or translate its contents. msgid "" "<a href=\"{{{friendship.url}}}\">{{friend.name}}</a> accepted your friend " "request." msgstr "" -#: bp-core/bp-core-functions.php:3369 +#: bp-core/bp-core-functions.php:3416 #. translators: do not remove {} brackets or translate its contents. msgid "" "{{friend.name}} accepted your friend request.\n" @@ -2384,12 +2363,12 @@ msgid "" "To learn more about them, visit their profile: {{{friendship.url}}}" msgstr "" -#: bp-core/bp-core-functions.php:3373 +#: bp-core/bp-core-functions.php:3420 #. translators: do not remove {} brackets or translate its contents. msgid "[{{{site.name}}}] Group details updated" msgstr "" -#: bp-core/bp-core-functions.php:3375 +#: bp-core/bp-core-functions.php:3422 #. translators: do not remove {} brackets or translate its contents. msgid "" "Group details for the group "<a " @@ -2397,7 +2376,7 @@ msgid "" "<blockquote>{{changed_text}}</blockquote>" msgstr "" -#: bp-core/bp-core-functions.php:3377 +#: bp-core/bp-core-functions.php:3424 #. translators: do not remove {} brackets or translate its contents. msgid "" "Group details for the group \"{{group.name}}\" were updated:\n" @@ -2407,12 +2386,12 @@ msgid "" "To view the group, visit: {{{group.url}}}" msgstr "" -#: bp-core/bp-core-functions.php:3381 +#: bp-core/bp-core-functions.php:3428 #. translators: do not remove {} brackets or translate its contents. msgid "[{{{site.name}}}] You have an invitation to the group: \"{{group.name}}\"" msgstr "" -#: bp-core/bp-core-functions.php:3383 +#: bp-core/bp-core-functions.php:3430 #. translators: do not remove {} brackets or translate its contents. msgid "" "<a href=\"{{{inviter.url}}}\">{{inviter.name}}</a> has invited you to join " @@ -2421,30 +2400,30 @@ msgid "" "href=\"{{{group.url}}}\">visit the group</a> to learn more." msgstr "" -#: bp-core/bp-core-functions.php:3385 +#: bp-core/bp-core-functions.php:3432 #. translators: do not remove {} brackets or translate its contents. msgid "" "{{inviter.name}} has invited you to join the group: \"{{group.name}}\".\n" "\n" "To accept your invitation, visit: {{{invites.url}}}\n" "\n" -"To learn more about the group, visit {{{group.url}}}.\n" +"To learn more about the group, visit: {{{group.url}}}.\n" "To view {{inviter.name}}'s profile, visit: {{{inviter.url}}}" msgstr "" -#: bp-core/bp-core-functions.php:3389 +#: bp-core/bp-core-functions.php:3436 #. translators: do not remove {} brackets or translate its contents. msgid "[{{{site.name}}}] You have been promoted in the group: \"{{group.name}}\"" msgstr "" -#: bp-core/bp-core-functions.php:3391 +#: bp-core/bp-core-functions.php:3438 #. translators: do not remove {} brackets or translate its contents. msgid "" "You have been promoted to <b>{{promoted_to}}</b> in the group "<a " "href=\"{{{group.url}}}\">{{group.name}}</a>"." msgstr "" -#: bp-core/bp-core-functions.php:3393 +#: bp-core/bp-core-functions.php:3440 #. translators: do not remove {} brackets or translate its contents. msgid "" "You have been promoted to {{promoted_to}} in the group: \"{{group.name}}\".\n" @@ -2452,12 +2431,12 @@ msgid "" "To visit the group, go to: {{{group.url}}}" msgstr "" -#: bp-core/bp-core-functions.php:3397 +#: bp-core/bp-core-functions.php:3444 #. translators: do not remove {} brackets or translate its contents. msgid "[{{{site.name}}}] Membership request for group: {{group.name}}" msgstr "" -#: bp-core/bp-core-functions.php:3399 +#: bp-core/bp-core-functions.php:3446 #. translators: do not remove {} brackets or translate its contents. msgid "" "<a href=\"{{{profile.url}}}\">{{requesting-user.name}}</a> wants to join " @@ -2468,7 +2447,7 @@ msgid "" "other pending requests." msgstr "" -#: bp-core/bp-core-functions.php:3401 +#: bp-core/bp-core-functions.php:3448 #. translators: do not remove {} brackets or translate its contents. msgid "" "{{requesting-user.name}} wants to join the group \"{{group.name}}\". As you " @@ -2481,12 +2460,12 @@ msgid "" "To view {{requesting-user.name}}'s profile, visit: {{{profile.url}}}" msgstr "" -#: bp-core/bp-core-functions.php:3405 +#: bp-core/bp-core-functions.php:3452 #. translators: do not remove {} brackets or translate its contents. msgid "[{{{site.name}}}] New message from {{sender.name}}" msgstr "" -#: bp-core/bp-core-functions.php:3407 +#: bp-core/bp-core-functions.php:3454 #. translators: do not remove {} brackets or translate its contents. msgid "" "{{sender.name}} sent you a new message: "{{usersubject}}"\n" @@ -2497,7 +2476,7 @@ msgid "" "on the conversation." msgstr "" -#: bp-core/bp-core-functions.php:3409 +#: bp-core/bp-core-functions.php:3456 #. translators: do not remove {} brackets or translate its contents. msgid "" "{{sender.name}} sent you a new message: \"{{usersubject}}\"\n" @@ -2508,12 +2487,12 @@ msgid "" "{{{message.url}}}" msgstr "" -#: bp-core/bp-core-functions.php:3413 +#: bp-core/bp-core-functions.php:3460 #. translators: do not remove {} brackets or translate its contents. msgid "[{{{site.name}}}] Verify your new email address" msgstr "" -#: bp-core/bp-core-functions.php:3415 +#: bp-core/bp-core-functions.php:3462 #. translators: do not remove {} brackets or translate its contents. msgid "" "You recently changed the email address associated with your account on " @@ -2524,7 +2503,7 @@ msgid "" "your mind, or if you think you have received this email in error." msgstr "" -#: bp-core/bp-core-functions.php:3417 +#: bp-core/bp-core-functions.php:3464 #. translators: do not remove {} brackets or translate its contents. msgid "" "You recently changed the email address associated with your account on " @@ -2535,19 +2514,19 @@ msgid "" "your mind, or if you think you have received this email in error." msgstr "" -#: bp-core/bp-core-functions.php:3421 +#: bp-core/bp-core-functions.php:3468 #. translators: do not remove {} brackets or translate its contents. msgid "[{{{site.name}}}] Membership request for group \"{{group.name}}\" accepted" msgstr "" -#: bp-core/bp-core-functions.php:3423 +#: bp-core/bp-core-functions.php:3470 #. translators: do not remove {} brackets or translate its contents. msgid "" "Your membership request for the group "<a " "href=\"{{{group.url}}}\">{{group.name}}</a>" has been accepted." msgstr "" -#: bp-core/bp-core-functions.php:3425 +#: bp-core/bp-core-functions.php:3472 #. translators: do not remove {} brackets or translate its contents. msgid "" "Your membership request for the group \"{{group.name}}\" has been accepted.\n" @@ -2555,19 +2534,19 @@ msgid "" "To view the group, visit: {{{group.url}}}" msgstr "" -#: bp-core/bp-core-functions.php:3429 +#: bp-core/bp-core-functions.php:3476 #. translators: do not remove {} brackets or translate its contents. msgid "[{{{site.name}}}] Membership request for group \"{{group.name}}\" rejected" msgstr "" -#: bp-core/bp-core-functions.php:3431 +#: bp-core/bp-core-functions.php:3478 #. translators: do not remove {} brackets or translate its contents. msgid "" "Your membership request for the group "<a " "href=\"{{{group.url}}}\">{{group.name}}</a>" has been rejected." msgstr "" -#: bp-core/bp-core-functions.php:3433 +#: bp-core/bp-core-functions.php:3480 #. translators: do not remove {} brackets or translate its contents. msgid "" "Your membership request for the group \"{{group.name}}\" has been rejected.\n" @@ -2575,136 +2554,136 @@ msgid "" "To request membership again, visit: {{{group.url}}}" msgstr "" -#: bp-core/bp-core-functions.php:3458 +#: bp-core/bp-core-functions.php:3505 msgid "A member has replied to an activity update that the recipient posted." msgstr "" -#: bp-core/bp-core-functions.php:3461 bp-core/bp-core-functions.php:3469 +#: bp-core/bp-core-functions.php:3508 bp-core/bp-core-functions.php:3516 msgid "" "You will no longer receive emails when someone replies to an update or " "comment you posted." msgstr "" -#: bp-core/bp-core-functions.php:3466 +#: bp-core/bp-core-functions.php:3513 msgid "" "A member has replied to a comment on an activity update that the recipient " "posted." msgstr "" -#: bp-core/bp-core-functions.php:3474 +#: bp-core/bp-core-functions.php:3521 msgid "Recipient was mentioned in an activity update." msgstr "" -#: bp-core/bp-core-functions.php:3477 bp-core/bp-core-functions.php:3485 +#: bp-core/bp-core-functions.php:3524 bp-core/bp-core-functions.php:3532 msgid "You will no longer receive emails when someone mentions you in an update." msgstr "" -#: bp-core/bp-core-functions.php:3482 +#: bp-core/bp-core-functions.php:3529 msgid "Recipient was mentioned in a group activity update." msgstr "" -#: bp-core/bp-core-functions.php:3490 +#: bp-core/bp-core-functions.php:3537 msgid "Recipient has registered for an account." msgstr "" -#: bp-core/bp-core-functions.php:3495 +#: bp-core/bp-core-functions.php:3542 msgid "Recipient has registered for an account and site." msgstr "" -#: bp-core/bp-core-functions.php:3500 +#: bp-core/bp-core-functions.php:3547 msgid "A member has sent a friend request to the recipient." msgstr "" -#: bp-core/bp-core-functions.php:3503 +#: bp-core/bp-core-functions.php:3550 msgid "You will no longer receive emails when someone sends you a friend request." msgstr "" -#: bp-core/bp-core-functions.php:3508 +#: bp-core/bp-core-functions.php:3555 msgid "Recipient has had a friend request accepted by a member." msgstr "" -#: bp-core/bp-core-functions.php:3511 +#: bp-core/bp-core-functions.php:3558 msgid "" "You will no longer receive emails when someone accepts your friendship " "request." msgstr "" -#: bp-core/bp-core-functions.php:3516 bp-core/bp-core-functions.php:3524 +#: bp-core/bp-core-functions.php:3563 bp-core/bp-core-functions.php:3571 msgid "A group's details were updated." msgstr "" -#: bp-core/bp-core-functions.php:3519 bp-core/bp-core-functions.php:3527 +#: bp-core/bp-core-functions.php:3566 bp-core/bp-core-functions.php:3574 msgid "You will no longer receive emails when one of your groups is updated." msgstr "" -#: bp-core/bp-core-functions.php:3532 +#: bp-core/bp-core-functions.php:3579 msgid "A member has sent a group invitation to the recipient." msgstr "" -#: bp-core/bp-core-functions.php:3535 +#: bp-core/bp-core-functions.php:3582 msgid "You will no longer receive emails when you are invited to join a group." msgstr "" -#: bp-core/bp-core-functions.php:3540 bp-core/bp-core-functions.php:3548 +#: bp-core/bp-core-functions.php:3587 bp-core/bp-core-functions.php:3595 msgid "Recipient's status within a group has changed." msgstr "" -#: bp-core/bp-core-functions.php:3543 bp-core/bp-core-functions.php:3551 +#: bp-core/bp-core-functions.php:3590 bp-core/bp-core-functions.php:3598 msgid "You will no longer receive emails when you have been promoted in a group." msgstr "" -#: bp-core/bp-core-functions.php:3556 +#: bp-core/bp-core-functions.php:3603 msgid "A member has requested permission to join a group." msgstr "" -#: bp-core/bp-core-functions.php:3559 +#: bp-core/bp-core-functions.php:3606 msgid "" "You will no longer receive emails when someone requests to be a member of " "your group." msgstr "" -#: bp-core/bp-core-functions.php:3564 +#: bp-core/bp-core-functions.php:3611 msgid "Recipient has received a private message." msgstr "" -#: bp-core/bp-core-functions.php:3567 +#: bp-core/bp-core-functions.php:3614 msgid "You will no longer receive emails when someone sends you a message." msgstr "" -#: bp-core/bp-core-functions.php:3572 +#: bp-core/bp-core-functions.php:3619 msgid "Recipient has changed their email address." msgstr "" -#: bp-core/bp-core-functions.php:3577 +#: bp-core/bp-core-functions.php:3624 msgid "Recipient had requested to join a group, which was accepted." msgstr "" -#: bp-core/bp-core-functions.php:3580 bp-core/bp-core-functions.php:3588 +#: bp-core/bp-core-functions.php:3627 bp-core/bp-core-functions.php:3635 msgid "" "You will no longer receive emails when your request to join a group has " "been accepted or denied." msgstr "" -#: bp-core/bp-core-functions.php:3585 +#: bp-core/bp-core-functions.php:3632 msgid "Recipient had requested to join a group, which was rejected." msgstr "" -#: bp-core/bp-core-functions.php:3633 bp-core/bp-core-functions.php:3639 -#: bp-core/bp-core-functions.php:3644 +#: bp-core/bp-core-functions.php:3680 bp-core/bp-core-functions.php:3686 +#: bp-core/bp-core-functions.php:3691 msgid "Something has gone wrong." msgstr "" -#: bp-core/bp-core-functions.php:3634 bp-core/bp-core-functions.php:3640 +#: bp-core/bp-core-functions.php:3681 bp-core/bp-core-functions.php:3687 msgid "" "Please log in and go to your settings to unsubscribe from notification " "emails." msgstr "" -#: bp-core/bp-core-functions.php:3645 +#: bp-core/bp-core-functions.php:3692 msgid "Please go to your notifications settings to unsubscribe from emails." msgstr "" -#: bp-core/bp-core-functions.php:3673 +#: bp-core/bp-core-functions.php:3720 msgid "" "You can change this or any other email notification preferences in your " "email settings." @@ -2740,417 +2719,417 @@ msgstr "" msgid "Activate Your Account" msgstr "" -#: bp-core/bp-core-template.php:3202 bp-groups/bp-groups-template.php:3566 +#: bp-core/bp-core-template.php:3202 bp-groups/bp-groups-template.php:3565 msgid "Create a Group" msgstr "" -#: bp-core/classes/class-bp-admin.php:206 -#: bp-core/classes/class-bp-admin.php:207 -#: bp-core/classes/class-bp-admin.php:215 -#: bp-core/classes/class-bp-admin.php:216 +#: bp-core/classes/class-bp-admin.php:202 +#: bp-core/classes/class-bp-admin.php:203 +#: bp-core/classes/class-bp-admin.php:211 +#: bp-core/classes/class-bp-admin.php:212 msgid "Welcome to BuddyPress" msgstr "" -#: bp-core/classes/class-bp-admin.php:236 +#: bp-core/classes/class-bp-admin.php:232 msgid "BuddyPress Help" msgstr "" -#: bp-core/classes/class-bp-admin.php:237 +#: bp-core/classes/class-bp-admin.php:233 msgid "Help" msgstr "" -#: bp-core/classes/class-bp-admin.php:246 +#: bp-core/classes/class-bp-admin.php:242 msgid "BuddyPress Components" msgstr "" -#: bp-core/classes/class-bp-admin.php:255 -#: bp-core/classes/class-bp-admin.php:256 +#: bp-core/classes/class-bp-admin.php:251 +#: bp-core/classes/class-bp-admin.php:252 msgid "BuddyPress Pages" msgstr "" -#: bp-core/classes/class-bp-admin.php:264 -#: bp-core/classes/class-bp-admin.php:265 +#: bp-core/classes/class-bp-admin.php:260 +#: bp-core/classes/class-bp-admin.php:261 msgid "BuddyPress Options" msgstr "" -#: bp-core/classes/class-bp-admin.php:288 -#: bp-core/classes/class-bp-admin.php:289 +#: bp-core/classes/class-bp-admin.php:284 +#: bp-core/classes/class-bp-admin.php:285 msgid "Available Tools" msgstr "" -#: bp-core/classes/class-bp-admin.php:381 +#: bp-core/classes/class-bp-admin.php:377 msgid "Main Settings" msgstr "" -#: bp-core/classes/class-bp-admin.php:384 -#: bp-core/classes/class-bp-admin.php:389 +#: bp-core/classes/class-bp-admin.php:380 +#: bp-core/classes/class-bp-admin.php:390 msgid "Toolbar" msgstr "" -#: bp-core/classes/class-bp-admin.php:394 +#: bp-core/classes/class-bp-admin.php:395 msgid "Account Deletion" msgstr "" -#: bp-core/classes/class-bp-admin.php:405 +#: bp-core/classes/class-bp-admin.php:406 msgid "Profile Photo Uploads" msgstr "" -#: bp-core/classes/class-bp-admin.php:410 +#: bp-core/classes/class-bp-admin.php:411 msgid "Cover Image Uploads" msgstr "" -#: bp-core/classes/class-bp-admin.php:415 +#: bp-core/classes/class-bp-admin.php:416 msgid "Profile Syncing" msgstr "" -#: bp-core/classes/class-bp-admin.php:424 +#: bp-core/classes/class-bp-admin.php:425 msgid "Groups Settings" msgstr "" -#: bp-core/classes/class-bp-admin.php:427 +#: bp-core/classes/class-bp-admin.php:428 msgid "Group Creation" msgstr "" -#: bp-core/classes/class-bp-admin.php:431 +#: bp-core/classes/class-bp-admin.php:432 msgid "Group Photo Uploads" msgstr "" -#: bp-core/classes/class-bp-admin.php:436 +#: bp-core/classes/class-bp-admin.php:437 msgid "Group Cover Image Uploads" msgstr "" -#: bp-core/classes/class-bp-admin.php:446 +#: bp-core/classes/class-bp-admin.php:447 msgid "Legacy Group Forums" msgstr "" -#: bp-core/classes/class-bp-admin.php:449 +#: bp-core/classes/class-bp-admin.php:450 msgid "bbPress Configuration" msgstr "" -#: bp-core/classes/class-bp-admin.php:458 +#: bp-core/classes/class-bp-admin.php:459 msgid "Activity Settings" msgstr "" -#: bp-core/classes/class-bp-admin.php:461 +#: bp-core/classes/class-bp-admin.php:462 msgid "Blog & Forum Comments" msgstr "" -#: bp-core/classes/class-bp-admin.php:465 +#: bp-core/classes/class-bp-admin.php:466 msgid "Activity auto-refresh" msgstr "" -#: bp-core/classes/class-bp-admin.php:470 +#: bp-core/classes/class-bp-admin.php:471 msgid "Akismet" msgstr "" -#: bp-core/classes/class-bp-admin.php:488 +#: bp-core/classes/class-bp-admin.php:489 msgid "About BuddyPress" msgstr "" -#: bp-core/classes/class-bp-admin.php:512 -#: bp-groups/classes/class-bp-groups-component.php:652 +#: bp-core/classes/class-bp-admin.php:513 +#: bp-groups/classes/class-bp-groups-component.php:670 #: bp-settings/classes/class-bp-settings-component.php:28 #: bp-settings/classes/class-bp-settings-component.php:101 #: bp-settings/classes/class-bp-settings-component.php:180 msgid "Settings" msgstr "" -#: bp-core/classes/class-bp-admin.php:513 +#: bp-core/classes/class-bp-admin.php:514 msgid "About" msgstr "" -#: bp-core/classes/class-bp-admin.php:570 +#: bp-core/classes/class-bp-admin.php:566 msgid "Getting Started with BuddyPress" msgstr "" -#: bp-core/classes/class-bp-admin.php:573 +#: bp-core/classes/class-bp-admin.php:569 msgid "Configure BuddyPress" msgstr "" -#: bp-core/classes/class-bp-admin.php:576 +#: bp-core/classes/class-bp-admin.php:572 msgid "Set Up Components" msgstr "" -#: bp-core/classes/class-bp-admin.php:579 +#: bp-core/classes/class-bp-admin.php:575 msgid "Assign Components to Pages" msgstr "" -#: bp-core/classes/class-bp-admin.php:582 +#: bp-core/classes/class-bp-admin.php:578 msgid "Customize Settings" msgstr "" -#: bp-core/classes/class-bp-admin.php:585 +#: bp-core/classes/class-bp-admin.php:581 msgid "Get Started" msgstr "" -#: bp-core/classes/class-bp-admin.php:588 +#: bp-core/classes/class-bp-admin.php:584 msgid "Administration Tools" msgstr "" -#: bp-core/classes/class-bp-admin.php:591 +#: bp-core/classes/class-bp-admin.php:587 msgid "Add User Profile Fields" msgstr "" -#: bp-core/classes/class-bp-admin.php:593 +#: bp-core/classes/class-bp-admin.php:589 msgid "Manage User Signups" msgstr "" -#: bp-core/classes/class-bp-admin.php:595 +#: bp-core/classes/class-bp-admin.php:591 msgid "Moderate Activity Streams" msgstr "" -#: bp-core/classes/class-bp-admin.php:598 +#: bp-core/classes/class-bp-admin.php:594 msgid "Manage Groups" msgstr "" -#: bp-core/classes/class-bp-admin.php:600 +#: bp-core/classes/class-bp-admin.php:596 msgid "Repair Data" msgstr "" -#: bp-core/classes/class-bp-admin.php:605 +#: bp-core/classes/class-bp-admin.php:601 msgid "Community and Support" msgstr "" -#: bp-core/classes/class-bp-admin.php:606 +#: bp-core/classes/class-bp-admin.php:602 msgid "" "Looking for help? The <a href=\"https://codex.buddypress.org/\">BuddyPress " "Codex</a> has you covered." msgstr "" -#: bp-core/classes/class-bp-admin.php:607 +#: bp-core/classes/class-bp-admin.php:603 msgid "" "Can’t find what you need? Stop by <a " "href=\"https://buddypress.org/support/\">our support forums</a>, where " "active BuddyPress users and developers are waiting to share tips and more." msgstr "" -#: bp-core/classes/class-bp-admin.php:618 -msgid "Groups Query Overhaul" +#: bp-core/classes/class-bp-admin.php:613 +msgid "Modernizing the Codebase" msgstr "" -#: bp-core/classes/class-bp-admin.php:622 -#. translators: %s: URL to the development post about this feature +#: bp-core/classes/class-bp-admin.php:616 +#. translators: 1: BP REST API, 2: Link to Codex article msgid "" -"Huge performance improvements on sites using persistent caching. <a " -"href=\"%s\">Learn more about the Groups Query rewrite</a>." +"To continue the migration of legacy code to modern standards and techniques " +"necessary for the %1$s project and other new features moving forward, <a " +"href=\"%2$s\">BuddyPress 2.8 requires at least PHP 5.3</a>. This will allow " +"us to build better, robust, and secure code, benefitting developers and " +"users now and in the future." msgstr "" -#: bp-core/classes/class-bp-admin.php:630 +#: bp-core/classes/class-bp-admin.php:625 msgid "For Developers & Site Builders" msgstr "" -#: bp-core/classes/class-bp-admin.php:634 -msgid "Improved Profile Date Field" +#: bp-core/classes/class-bp-admin.php:630 +msgid "More helpful \"Activate Pending Accounts\" screen" msgstr "" -#: bp-core/classes/class-bp-admin.php:635 -msgid "" -"New Date Field settings, \"Date format\" and \"Range\", make it easier for " -"site administrators to decide how date-based data will be collected and " -"displayed." +#: bp-core/classes/class-bp-admin.php:631 +msgid "The improved pending account screen." msgstr "" -#: bp-core/classes/class-bp-admin.php:640 -msgid "Group Types Integration in Templates" +#: bp-core/classes/class-bp-admin.php:632 +msgid "" +"When you click on the username on the \"Users > Manage Signups\" page, you " +"can now view profile data entered by the user at the time of registration." msgstr "" -#: bp-core/classes/class-bp-admin.php:643 -#. translators: %s: URL to the BuddyPress Codex article -msgid "" -"Enable developers to show Group Types on the front end as well as control " -"where the group type information is rendered. <a href=\"%s\">Learn how to " -"implement this feature</a>." +#: bp-core/classes/class-bp-admin.php:638 +#. translators: %s: List-Unsubscribe +msgid "Support for %s header in emails" msgstr "" -#: bp-core/classes/class-bp-admin.php:650 -msgid "Use the Site Icon as Your Site’s Profile Photo" +#: bp-core/classes/class-bp-admin.php:641 +msgid "Email header showing the list-unsubscribe feature." msgstr "" -#: bp-core/classes/class-bp-admin.php:653 -#. translators: %s: URL to the WordPress Codex article +#: bp-core/classes/class-bp-admin.php:642 msgid "" -"BuddyPress sets the site admin’s profile photo as the default site " -"profile photo on the Sites Directory page. You can now <a href=\"%s\">use " -"the Site Icon introduced in WordPress 4.3</a> instead." +"Allow users to unsubscribe from BuddyPress email notifications in some " +"email clients such as Gmail (web), when properly configured." msgstr "" -#: bp-core/classes/class-bp-admin.php:660 -msgid "Member Type and Group Type Filters in Users and Groups Admin Screens" +#: bp-core/classes/class-bp-admin.php:646 +msgid "Twenty Seventeen Companion Stylesheet" msgstr "" -#: bp-core/classes/class-bp-admin.php:661 +#: bp-core/classes/class-bp-admin.php:647 msgid "" -"Easily filter your members and groups by type and set types in bulk on the " -"users and groups list tables in the dashboard." +"BuddyPress looks great in WordPress's latest default theme with the new " +"Twenty Seventeen companion stylesheet." msgstr "" -#: bp-core/classes/class-bp-admin.php:666 -msgid "Localized Timestamps" +#: bp-core/classes/class-bp-admin.php:650 +#. translators: 1: Link to the Codex article, 2: functions.php +msgid "" +"To change the default two-column page layout to a full-width layout as seen " +"in the image, add the <a href=\"%1$s\">following code</a> to the %2$s file " +"of your Twenty Seventeen child theme." msgstr "" -#: bp-core/classes/class-bp-admin.php:667 -msgid "" -"Fix inaccurate timestamps due to time zones or page caching with new " -"client-side timestamp handling." +#: bp-core/classes/class-bp-admin.php:657 +msgid "Full-width BuddyPress layout for Twenty Seventeen theme." msgstr "" -#: bp-core/classes/class-bp-admin.php:672 -msgid "Links to Unsubscribe from Emails" +#: bp-core/classes/class-bp-admin.php:665 +msgid "More hooks for Messages" msgstr "" -#: bp-core/classes/class-bp-admin.php:673 +#: bp-core/classes/class-bp-admin.php:666 msgid "" -"Improve user experience by facilitating the removal of any or all " -"subscriptions via new email tokens and unsubscribe links." +"We've added new filters and actions for different methods throughout the " +"Messages component." msgstr "" -#: bp-core/classes/class-bp-admin.php:678 -msgid "Use WP Page Names for Headings of BP Directory Pages" +#: bp-core/classes/class-bp-admin.php:671 +msgid "A more flexible Group search" msgstr "" -#: bp-core/classes/class-bp-admin.php:679 +#: bp-core/classes/class-bp-admin.php:674 +#. translators: 1: search_column, 2: BP_Groups_Group::get() msgid "" -"Whatever you choose as the title of your Activity, Sites, Members, or " -"Groups directory pages on the back end, is what you’ll get as the " -"heading on the front end." +"The new %1$s parameter allows developers to specify which columns should be " +"matched, as well as where wildcard characters should be placed, when " +"searching via %2$s." msgstr "" -#: bp-core/classes/class-bp-admin.php:684 -msgid "Accessibility Updates for the Front End and Back End" +#: bp-core/classes/class-bp-admin.php:682 +msgid "Alphabetical sorting for Groups widget" msgstr "" -#: bp-core/classes/class-bp-admin.php:685 +#: bp-core/classes/class-bp-admin.php:683 msgid "" -"Continued improvements for universal access help make BuddyPress back- and " -"front-end screens usable for everyone (and on more devices)." +"The groups widget can now be sorted alphabetically, in addition to sorting " +"the results by recently active, popular, and newest groups." msgstr "" -#: bp-core/classes/class-bp-admin.php:692 -#. translators: %s: BP_Button -msgid "Refactored %s Class to Accept New Arguments" +#: bp-core/classes/class-bp-admin.php:690 +#. translators: %s: PHPMailer +msgid "Enable choice of %s" msgstr "" #: bp-core/classes/class-bp-admin.php:694 +#. translators: %s: PHPMailer msgid "" -"Provides developers with improved syntax and more control over the " -"rendering of buttons." -msgstr "" - -#: bp-core/classes/class-bp-admin.php:699 -msgid "Improvements to a Single Group’s Management Screens" +"Developers can specify which %s should be used when sending BuddyPress with " +"a new filter." msgstr "" -#: bp-core/classes/class-bp-admin.php:700 -msgid "" -"Improved markup, new modular group management templates, and a new member " -"search form are just some of the enhancements added to the single group " -"admin screens." +#: bp-core/classes/class-bp-admin.php:702 +msgid "More under the hood …" msgstr "" -#: bp-core/classes/class-bp-admin.php:707 -#. translators: %s: parent_id -msgid "Support for Querying for Groups by New Column %s" +#: bp-core/classes/class-bp-admin.php:705 +msgid "Localization Improvements" msgstr "" -#: bp-core/classes/class-bp-admin.php:709 +#: bp-core/classes/class-bp-admin.php:706 msgid "" -"Query support for hierarchical groups makes it much easier for developers " -"to add custom front-end functionality." +"We continue to improve our localization internals, making it easier for " +"translation editors to ensure that BuddyPress will be available for " +"everyone in their own language." msgstr "" -#: bp-core/classes/class-bp-admin.php:714 -msgid "Many, Many Performance Improvements" +#: bp-core/classes/class-bp-admin.php:709 +msgid "Developer Reference" msgstr "" -#: bp-core/classes/class-bp-admin.php:717 -#. translators: %s: bp_get_user_groups() +#: bp-core/classes/class-bp-admin.php:710 msgid "" -"Improved performance by removing extra database queries, adding new cache " -"calls, and removing the number of loops in %s." +"Regular updates to inline code documentation make it easier for developers " +"to understand how BuddyPress works." msgstr "" -#: bp-core/classes/class-bp-admin.php:726 -msgid "And so much more!" +#: bp-core/classes/class-bp-admin.php:714 +msgid "Accessibility Upgrades" msgstr "" -#: bp-core/classes/class-bp-admin.php:729 -#. translators: %s: URL to the BuddyPress Codex article -msgid "<a href=\"%s\">Changelog for BuddyPress 2.7.</a>" +#: bp-core/classes/class-bp-admin.php:715 +msgid "" +"Continued improvements for universal access help make BuddyPress back- and " +"front-end screens usable for everyone (and on more devices)." msgstr "" -#: bp-core/classes/class-bp-admin.php:763 +#: bp-core/classes/class-bp-admin.php:749 msgid "BuddyPress is created by a worldwide network of friendly folks like these." msgstr "" -#: bp-core/classes/class-bp-admin.php:765 +#: bp-core/classes/class-bp-admin.php:751 msgid "Project Leaders" msgstr "" -#: bp-core/classes/class-bp-admin.php:770 +#: bp-core/classes/class-bp-admin.php:756 msgid "Project Lead" msgstr "" -#: bp-core/classes/class-bp-admin.php:775 -#: bp-core/classes/class-bp-admin.php:780 +#: bp-core/classes/class-bp-admin.php:761 +#: bp-core/classes/class-bp-admin.php:766 msgid "Lead Developer" msgstr "" -#: bp-core/classes/class-bp-admin.php:784 +#: bp-core/classes/class-bp-admin.php:770 msgid "BuddyPress Team" msgstr "" -#: bp-core/classes/class-bp-admin.php:789 -msgid "2.7 Release Lead" +#: bp-core/classes/class-bp-admin.php:775 +msgid "2.8 Release Lead" msgstr "" -#: bp-core/classes/class-bp-admin.php:794 -#: bp-core/classes/class-bp-admin.php:799 -#: bp-core/classes/class-bp-admin.php:804 -#: bp-core/classes/class-bp-admin.php:809 -#: bp-core/classes/class-bp-admin.php:814 +#: bp-core/classes/class-bp-admin.php:780 +#: bp-core/classes/class-bp-admin.php:785 +#: bp-core/classes/class-bp-admin.php:795 +#: bp-core/classes/class-bp-admin.php:800 +#: bp-core/classes/class-bp-admin.php:805 +#: bp-core/classes/class-bp-admin.php:826 +#: bp-core/classes/class-bp-admin.php:831 msgid "Core Developer" msgstr "" -#: bp-core/classes/class-bp-admin.php:819 -#: bp-core/classes/class-bp-admin.php:824 -#: bp-core/classes/class-bp-admin.php:829 +#: bp-core/classes/class-bp-admin.php:790 +msgid "Navigator" +msgstr "" + +#: bp-core/classes/class-bp-admin.php:810 +#: bp-core/classes/class-bp-admin.php:815 +#: bp-core/classes/class-bp-admin.php:820 msgid "Community Support" msgstr "" -#: bp-core/classes/class-bp-admin.php:833 +#: bp-core/classes/class-bp-admin.php:835 msgid "🌟Recent Rockstars🌟" msgstr "" -#: bp-core/classes/class-bp-admin.php:865 +#: bp-core/classes/class-bp-admin.php:855 msgid "Contributors to BuddyPress %s" msgstr "" -#: bp-core/classes/class-bp-admin.php:907 +#: bp-core/classes/class-bp-admin.php:903 msgid "💖With our thanks to these Open Source projects💖" msgstr "" -#: bp-core/classes/class-bp-admin.php:935 +#: bp-core/classes/class-bp-admin.php:931 msgid "" "Thank you for installing BuddyPress! BuddyPress helps site builders and " "WordPress developers add community features to their websites, with user " "profile fields, activity streams, messaging, and notifications." msgstr "" -#: bp-core/classes/class-bp-admin.php:936 +#: bp-core/classes/class-bp-admin.php:932 msgid "" -"Thank you for updating! BuddyPress %s has many new features that you will " -"enjoy." +"Thank you for updating! BuddyPress %s has many new improvements that you " +"will enjoy." msgstr "" -#: bp-core/classes/class-bp-admin.php:940 +#: bp-core/classes/class-bp-admin.php:936 msgid "Welcome to BuddyPress %s" msgstr "" -#: bp-core/classes/class-bp-admin.php:969 +#: bp-core/classes/class-bp-admin.php:965 msgid "What’s New" msgstr "" -#: bp-core/classes/class-bp-admin.php:971 +#: bp-core/classes/class-bp-admin.php:967 msgid "Credits" msgstr "" @@ -3165,43 +3144,43 @@ msgid_plural "Please upload only these file types: %s." msgstr[0] "" msgstr[1] "" -#: bp-core/classes/class-bp-attachment-avatar.php:366 -#: bp-xprofile/bp-xprofile-screens.php:261 +#: bp-core/classes/class-bp-attachment-avatar.php:378 +#: bp-xprofile/bp-xprofile-screens.php:250 msgid "There was a problem cropping your profile photo." msgstr "" -#: bp-core/classes/class-bp-attachment-avatar.php:367 -#: bp-xprofile/bp-xprofile-screens.php:275 +#: bp-core/classes/class-bp-attachment-avatar.php:379 +#: bp-xprofile/bp-xprofile-screens.php:264 msgid "Your new profile photo was uploaded successfully." msgstr "" -#: bp-core/classes/class-bp-attachment-avatar.php:368 +#: bp-core/classes/class-bp-attachment-avatar.php:380 #: bp-xprofile/bp-xprofile-actions.php:42 msgid "There was a problem deleting your profile photo. Please try again." msgstr "" -#: bp-core/classes/class-bp-attachment-avatar.php:369 +#: bp-core/classes/class-bp-attachment-avatar.php:381 #: bp-xprofile/bp-xprofile-actions.php:40 msgid "Your profile photo was deleted successfully!" msgstr "" -#: bp-core/classes/class-bp-attachment-avatar.php:384 -#: bp-groups/bp-groups-screens.php:1066 +#: bp-core/classes/class-bp-attachment-avatar.php:396 +#: bp-groups/bp-groups-screens.php:1046 msgid "There was a problem cropping the group profile photo." msgstr "" -#: bp-core/classes/class-bp-attachment-avatar.php:385 -#: bp-groups/bp-groups-actions.php:366 +#: bp-core/classes/class-bp-attachment-avatar.php:397 +#: bp-groups/bp-groups-actions.php:388 msgid "The group profile photo was uploaded successfully." msgstr "" -#: bp-core/classes/class-bp-attachment-avatar.php:386 -#: bp-groups/bp-groups-screens.php:1023 +#: bp-core/classes/class-bp-attachment-avatar.php:398 +#: bp-groups/bp-groups-screens.php:1003 msgid "There was a problem deleting the group profile photo. Please try again." msgstr "" -#: bp-core/classes/class-bp-attachment-avatar.php:387 -#: bp-groups/bp-groups-screens.php:1021 +#: bp-core/classes/class-bp-attachment-avatar.php:399 +#: bp-groups/bp-groups-screens.php:1001 msgid "The group profile photo was deleted successfully!" msgstr "" @@ -3322,12 +3301,8 @@ msgstr "" msgid "Remember Me" msgstr "" -#: bp-core/classes/class-bp-core-login-widget.php:120 -msgid "Register for a new account" -msgstr "" - #: bp-core/classes/class-bp-core-login-widget.php:180 -#: bp-groups/classes/class-bp-groups-widget.php:215 +#: bp-groups/classes/class-bp-groups-widget.php:217 #: bp-members/classes/class-bp-core-members-widget.php:207 #: bp-members/classes/class-bp-core-recently-active-widget.php:143 #: bp-members/classes/class-bp-core-whos-online-widget.php:142 @@ -3339,7 +3314,7 @@ msgid "Title:" msgstr "" #: bp-core/classes/class-bp-core-user.php:191 -#: bp-groups/classes/class-bp-groups-invite-template.php:245 +#: bp-groups/classes/class-bp-groups-invite-template.php:244 msgid "%d group" msgid_plural "%d groups" msgstr[0] "" @@ -3399,16 +3374,16 @@ msgid "" msgstr "" #: bp-core/deprecated/1.6.php:127 bp-core/deprecated/1.6.php:148 -#: bp-groups/bp-groups-template.php:5246 bp-groups/bp-groups-template.php:5269 +#: bp-groups/bp-groups-template.php:5245 bp-groups/bp-groups-template.php:5268 msgid "Recently Active" msgstr "" #: bp-core/deprecated/1.6.php:128 bp-core/deprecated/1.6.php:151 #: bp-friends/classes/class-bp-core-friends-widget.php:105 #: bp-friends/classes/class-bp-core-friends-widget.php:197 -#: bp-groups/bp-groups-template.php:4522 +#: bp-groups/bp-groups-template.php:4521 #: bp-groups/classes/class-bp-groups-widget.php:121 -#: bp-groups/classes/class-bp-groups-widget.php:224 +#: bp-groups/classes/class-bp-groups-widget.php:226 #: bp-members/classes/class-bp-core-members-widget.php:111 #: bp-members/classes/class-bp-core-members-widget.php:229 #: bp-templates/bp-legacy/buddypress/blogs/index.php:99 @@ -3417,7 +3392,7 @@ msgid "Newest" msgstr "" #: bp-core/deprecated/1.6.php:129 bp-core/deprecated/1.6.php:154 -#: bp-groups/bp-groups-template.php:5251 bp-groups/bp-groups-template.php:5284 +#: bp-groups/bp-groups-template.php:5250 bp-groups/bp-groups-template.php:5283 msgid "Alphabetically" msgstr "" @@ -3480,7 +3455,7 @@ msgid "Group Settings" msgstr "" #: bp-core/deprecated/2.1.php:373 -#: bp-groups/classes/class-bp-groups-component.php:824 +#: bp-groups/classes/class-bp-groups-component.php:842 msgid "Group Profile Photo" msgstr "" @@ -3497,10 +3472,9 @@ msgstr "" msgid "Membership Requests" msgstr "" -#: bp-core/deprecated/2.1.php:391 bp-groups/bp-groups-admin.php:1022 +#: bp-core/deprecated/2.1.php:391 bp-groups/bp-groups-admin.php:1014 #: bp-templates/bp-legacy/buddypress/groups/single/admin/delete-group.php:11 #: bp-templates/bp-legacy/buddypress/groups/single/admin/delete-group.php:38 -#: bp-xprofile/bp-xprofile-admin.php:157 msgid "Delete Group" msgstr "" @@ -3528,6 +3502,25 @@ msgstr "" msgid "No new notifications." msgstr "" +#: bp-core/deprecated/2.8.php:138 +msgid "A BuddyPress update is available, but your system is not compatible." +msgstr "" + +#: bp-core/deprecated/2.8.php:139 bp-core/deprecated/2.8.php:194 +#: bp-loader.php:64 +msgid "See <a href=\"%s\">the Codex guide</a> for more information." +msgstr "" + +#: bp-core/deprecated/2.8.php:193 +msgid "Your site is not ready for BuddyPress 2.8." +msgstr "" + +#: bp-core/deprecated/2.8.php:194 +msgid "" +"Your site is currently running PHP version %s, while BuddyPress 2.8 will " +"require version 5.3+." +msgstr "" + #: bp-forums/bp-forums-loader.php:33 msgid "Discussion Forums" msgstr "" @@ -3556,19 +3549,19 @@ msgstr "" msgid "The forums component has not been set up yet." msgstr "" -#: bp-forums/bp-forums-screens.php:56 bp-groups/bp-groups-screens.php:546 +#: bp-forums/bp-forums-screens.php:56 bp-groups/bp-groups-screens.php:526 msgid "Please provide a title for your forum topic." msgstr "" -#: bp-forums/bp-forums-screens.php:58 bp-groups/bp-groups-screens.php:548 +#: bp-forums/bp-forums-screens.php:58 bp-groups/bp-groups-screens.php:528 msgid "Forum posts cannot be empty. Please enter some text." msgstr "" -#: bp-forums/bp-forums-screens.php:65 bp-groups/bp-groups-screens.php:560 +#: bp-forums/bp-forums-screens.php:65 bp-groups/bp-groups-screens.php:540 msgid "There was an error when creating the topic" msgstr "" -#: bp-forums/bp-forums-screens.php:68 bp-groups/bp-groups-screens.php:563 +#: bp-forums/bp-forums-screens.php:68 bp-groups/bp-groups-screens.php:543 msgid "The topic was created successfully" msgstr "" @@ -3576,16 +3569,16 @@ msgstr "" msgid "Please pick the group forum where you would like to post this topic." msgstr "" -#: bp-forums/bp-forums-screens.php:301 bp-groups/bp-groups-template.php:3380 +#: bp-forums/bp-forums-screens.php:301 bp-groups/bp-groups-template.php:3379 #: bp-templates/bp-legacy/buddypress/groups/single/forum.php:30 msgid "New Topic" msgstr "" #: bp-forums/bp-forums-template.php:930 bp-forums/bp-forums-template.php:1111 #: bp-forums/bp-forums-template.php:2646 -#: bp-messages/bp-messages-template.php:1626 -#: bp-messages/bp-messages-template.php:1877 -#: bp-messages/classes/class-bp-messages-thread.php:823 +#: bp-messages/bp-messages-template.php:1628 +#: bp-messages/bp-messages-template.php:1879 +#: bp-messages/classes/class-bp-messages-thread.php:846 msgid "Deleted User" msgstr "" @@ -3593,7 +3586,7 @@ msgstr "" msgid "Group logo for %s" msgstr "" -#: bp-forums/bp-forums-template.php:1454 bp-groups/bp-groups-template.php:2130 +#: bp-forums/bp-forums-template.php:1454 bp-groups/bp-groups-template.php:2129 msgid "%d post" msgid_plural "%d posts" msgstr[0] "" @@ -3831,6 +3824,10 @@ msgstr "" msgid "Use Existing Installation" msgstr "" +#: bp-forums/deprecated/1.7.php:24 +msgid "Forums (Legacy)" +msgstr "" + #: bp-friends/bp-friends-actions.php:40 msgid "Friendship could not be requested." msgstr "" @@ -3848,7 +3845,7 @@ msgid "You already have a pending friendship request with this user" msgstr "" #: bp-friends/bp-friends-actions.php:80 -#: bp-templates/bp-legacy/buddypress-functions.php:1360 +#: bp-templates/bp-legacy/buddypress-functions.php:1370 msgid "Friendship could not be canceled." msgstr "" @@ -3870,7 +3867,7 @@ msgstr "" #: bp-friends/bp-friends-activity.php:106 #: bp-friends/bp-friends-activity.php:115 -#: bp-friends/classes/class-bp-friends-component.php:268 +#: bp-friends/classes/class-bp-friends-component.php:264 msgid "Friendships" msgstr "" @@ -3965,7 +3962,7 @@ msgid "%d friends" msgstr "" #: bp-friends/bp-friends-template.php:371 -#: bp-templates/bp-legacy/buddypress-functions.php:1372 +#: bp-templates/bp-legacy/buddypress-functions.php:1382 msgid "Cancel Friendship Request" msgstr "" @@ -3978,8 +3975,8 @@ msgid "Cancel Friendship" msgstr "" #: bp-friends/bp-friends-template.php:419 -#: bp-templates/bp-legacy/buddypress-functions.php:1362 -#: bp-templates/bp-legacy/buddypress-functions.php:1380 +#: bp-templates/bp-legacy/buddypress-functions.php:1372 +#: bp-templates/bp-legacy/buddypress-functions.php:1390 msgid "Add Friend" msgstr "" @@ -3989,7 +3986,7 @@ msgid_plural "%s friends" msgstr[0] "" msgstr[1] "" -#: bp-friends/bp-friends-widgets.php:93 bp-members/bp-members-widgets.php:107 +#: bp-friends/bp-friends-widgets.php:89 bp-members/bp-members-widgets.php:101 msgid "There were no members found, please try another filter." msgstr "" @@ -4002,7 +3999,7 @@ msgstr "" #: bp-friends/classes/class-bp-core-friends-widget.php:106 #: bp-friends/classes/class-bp-core-friends-widget.php:198 #: bp-groups/classes/class-bp-groups-widget.php:123 -#: bp-groups/classes/class-bp-groups-widget.php:225 +#: bp-groups/classes/class-bp-groups-widget.php:227 #: bp-members/classes/class-bp-core-members-widget.php:113 #: bp-members/classes/class-bp-core-members-widget.php:230 #: bp-members/classes/class-bp-members-admin.php:1051 @@ -4012,7 +4009,7 @@ msgstr "" #: bp-friends/classes/class-bp-core-friends-widget.php:107 #: bp-friends/classes/class-bp-core-friends-widget.php:199 #: bp-groups/classes/class-bp-groups-widget.php:125 -#: bp-groups/classes/class-bp-groups-widget.php:226 +#: bp-groups/classes/class-bp-groups-widget.php:228 #: bp-members/classes/class-bp-core-members-widget.php:117 #: bp-members/classes/class-bp-core-members-widget.php:231 msgid "Popular" @@ -4036,11 +4033,11 @@ msgstr "" msgid "Default friends to show:" msgstr "" -#: bp-friends/classes/class-bp-friends-component.php:108 +#: bp-friends/classes/class-bp-friends-component.php:104 msgid "Search Friends..." msgstr "" -#: bp-friends/classes/class-bp-friends-component.php:149 +#: bp-friends/classes/class-bp-friends-component.php:145 #. translators: %s: Friend count for the current user msgid "Friends %s" msgstr "" @@ -4057,54 +4054,54 @@ msgstr "" msgid "Sorry, you are not allowed to create groups." msgstr "" -#: bp-groups/bp-groups-actions.php:150 bp-groups/bp-groups-actions.php:185 -#: bp-groups/bp-groups-actions.php:209 +#: bp-groups/bp-groups-actions.php:150 bp-groups/bp-groups-actions.php:184 +#: bp-groups/bp-groups-actions.php:208 msgid "There was an error saving group details. Please try again." msgstr "" -#: bp-groups/bp-groups-actions.php:165 +#: bp-groups/bp-groups-actions.php:164 msgid "Only the group creator may continue editing this group." msgstr "" -#: bp-groups/bp-groups-actions.php:178 +#: bp-groups/bp-groups-actions.php:177 msgid "Please fill in all of the required fields" msgstr "" -#: bp-groups/bp-groups-actions.php:331 bp-groups/bp-groups-screens.php:702 +#: bp-groups/bp-groups-actions.php:330 bp-groups/bp-groups-screens.php:682 msgid "Invite successfully removed" msgstr "" -#: bp-groups/bp-groups-actions.php:335 bp-groups/bp-groups-screens.php:713 +#: bp-groups/bp-groups-actions.php:334 bp-groups/bp-groups-screens.php:693 msgid "There was an error removing the invite" msgstr "" -#: bp-groups/bp-groups-actions.php:364 +#: bp-groups/bp-groups-actions.php:375 msgid "" "There was an error saving the group profile photo, please try uploading " "again." msgstr "" -#: bp-groups/bp-groups-actions.php:405 bp-groups/bp-groups-actions.php:412 +#: bp-groups/bp-groups-actions.php:428 bp-groups/bp-groups-actions.php:435 msgid "There was an error joining the group." msgstr "" -#: bp-groups/bp-groups-actions.php:414 +#: bp-groups/bp-groups-actions.php:437 msgid "You joined the group!" msgstr "" -#: bp-groups/bp-groups-actions.php:461 bp-groups/bp-groups-screens.php:1182 +#: bp-groups/bp-groups-actions.php:484 bp-groups/bp-groups-screens.php:1172 msgid "This group must have at least one admin" msgstr "" -#: bp-groups/bp-groups-actions.php:463 +#: bp-groups/bp-groups-actions.php:486 msgid "There was an error leaving the group." msgstr "" -#: bp-groups/bp-groups-actions.php:465 bp-groups/bp-groups-functions.php:460 +#: bp-groups/bp-groups-actions.php:488 bp-groups/bp-groups-functions.php:460 msgid "You successfully left the group." msgstr "" -#: bp-groups/bp-groups-actions.php:565 +#: bp-groups/bp-groups-actions.php:588 msgid "Activity feed for the group, %s." msgstr "" @@ -4172,13 +4169,13 @@ msgstr "" msgid "%1$s changed the description of the group %2$s from \"%3$s\" to \"%4$s\"" msgstr "" -#: bp-groups/bp-groups-admin.php:121 +#: bp-groups/bp-groups-admin.php:117 msgid "" "This page is a convenient way to edit the details associated with one of " "your groups." msgstr "" -#: bp-groups/bp-groups-admin.php:122 +#: bp-groups/bp-groups-admin.php:118 msgid "" "The Name and Description box is fixed in place, but you can reposition all " "the other boxes using drag and drop, and can minimize or expand them by " @@ -4186,11 +4183,11 @@ msgid "" "unhide, or to choose a 1- or 2-column layout for this screen." msgstr "" -#: bp-groups/bp-groups-admin.php:128 +#: bp-groups/bp-groups-admin.php:124 msgid "Support Forums" msgstr "" -#: bp-groups/bp-groups-admin.php:174 +#: bp-groups/bp-groups-admin.php:170 msgid "" "You can manage groups much like you can manage comments and other content. " "This screen is customizable in the same ways as other management screens, " @@ -4198,24 +4195,24 @@ msgid "" "Actions." msgstr "" -#: bp-groups/bp-groups-admin.php:179 +#: bp-groups/bp-groups-admin.php:175 msgid "Group Actions" msgstr "" -#: bp-groups/bp-groups-admin.php:181 +#: bp-groups/bp-groups-admin.php:177 msgid "" "Clicking \"Visit\" will take you to the group’s public page. Use this " "link to see what the group looks like on the front end of your site." msgstr "" -#: bp-groups/bp-groups-admin.php:182 +#: bp-groups/bp-groups-admin.php:178 msgid "" "Clicking \"Edit\" will take you to a Dashboard panel where you can manage " "various details about the group, such as its name and description, its " "members, and other settings." msgstr "" -#: bp-groups/bp-groups-admin.php:183 +#: bp-groups/bp-groups-admin.php:179 msgid "" "If you click \"Delete\" under a specific group, or select a number of " "groups and then choose Delete from the Bulk Actions menu, you will be led " @@ -4223,196 +4220,195 @@ msgid "" "the group(s)." msgstr "" -#: bp-groups/bp-groups-admin.php:196 +#: bp-groups/bp-groups-admin.php:192 #. translators: accessibility text msgid "Groups list navigation" msgstr "" -#: bp-groups/bp-groups-admin.php:206 +#: bp-groups/bp-groups-admin.php:202 msgid "Start typing a username to add a new member." msgstr "" -#: bp-groups/bp-groups-admin.php:207 +#: bp-groups/bp-groups-admin.php:203 msgid "" "If you leave this page, you will lose any unsaved changes you have made to " "the group." msgstr "" -#: bp-groups/bp-groups-admin.php:521 +#: bp-groups/bp-groups-admin.php:517 msgid "You cannot remove all administrators from a group." msgstr "" -#: bp-groups/bp-groups-admin.php:527 +#: bp-groups/bp-groups-admin.php:523 msgid "Group name cannot be empty." msgstr "" -#: bp-groups/bp-groups-admin.php:531 +#: bp-groups/bp-groups-admin.php:527 msgid "Group description cannot be empty." msgstr "" -#: bp-groups/bp-groups-admin.php:535 +#: bp-groups/bp-groups-admin.php:531 msgid "Group name and description cannot be empty." msgstr "" -#: bp-groups/bp-groups-admin.php:539 +#: bp-groups/bp-groups-admin.php:535 msgid "An error occurred when trying to update your group details." msgstr "" -#: bp-groups/bp-groups-admin.php:544 +#: bp-groups/bp-groups-admin.php:540 msgid "The group has been updated successfully." msgstr "" -#: bp-groups/bp-groups-admin.php:548 +#: bp-groups/bp-groups-admin.php:544 msgid "The following users could not be added to the group: %s" msgstr "" -#: bp-groups/bp-groups-admin.php:552 +#: bp-groups/bp-groups-admin.php:548 msgid "The following users were successfully added to the group: %s" msgstr "" -#: bp-groups/bp-groups-admin.php:557 +#: bp-groups/bp-groups-admin.php:553 msgid "An error occurred when trying to modify the following members: %s" msgstr "" -#: bp-groups/bp-groups-admin.php:562 +#: bp-groups/bp-groups-admin.php:558 msgid "The following members were successfully modified: %s" msgstr "" -#: bp-groups/bp-groups-admin.php:589 bp-groups/bp-groups-adminbar.php:45 -#: bp-xprofile/bp-xprofile-admin.php:152 +#: bp-groups/bp-groups-admin.php:585 bp-groups/bp-groups-adminbar.php:45 msgid "Edit Group" msgstr "" -#: bp-groups/bp-groups-admin.php:592 bp-groups/bp-groups-admin.php:761 +#: bp-groups/bp-groups-admin.php:588 bp-groups/bp-groups-admin.php:757 msgid "Add New" msgstr "" -#: bp-groups/bp-groups-admin.php:611 +#: bp-groups/bp-groups-admin.php:607 msgid "Name and Description" msgstr "" -#: bp-groups/bp-groups-admin.php:615 +#: bp-groups/bp-groups-admin.php:611 #. translators: accessibility text msgid "Group Name" msgstr "" -#: bp-groups/bp-groups-admin.php:619 +#: bp-groups/bp-groups-admin.php:615 msgid "Permalink:" msgstr "" -#: bp-groups/bp-groups-admin.php:619 +#: bp-groups/bp-groups-admin.php:615 msgid "Visit Group" msgstr "" -#: bp-groups/bp-groups-admin.php:624 +#: bp-groups/bp-groups-admin.php:620 #. translators: accessibility text msgid "Group Description" msgstr "" -#: bp-groups/bp-groups-admin.php:653 +#: bp-groups/bp-groups-admin.php:649 msgid "No group found with this ID." msgstr "" -#: bp-groups/bp-groups-admin.php:700 +#: bp-groups/bp-groups-admin.php:696 msgid "Delete Groups" msgstr "" -#: bp-groups/bp-groups-admin.php:701 +#: bp-groups/bp-groups-admin.php:697 msgid "You are about to delete the following groups:" msgstr "" -#: bp-groups/bp-groups-admin.php:709 -#: bp-members/classes/class-bp-members-admin.php:2082 +#: bp-groups/bp-groups-admin.php:705 +#: bp-members/classes/class-bp-members-admin.php:2128 msgid "This action cannot be undone." msgstr "" -#: bp-groups/bp-groups-admin.php:738 +#: bp-groups/bp-groups-admin.php:734 msgid "%s group has been permanently deleted." msgid_plural "%s groups have been permanently deleted." msgstr[0] "" msgstr[1] "" -#: bp-groups/bp-groups-admin.php:758 bp-groups/bp-groups-notifications.php:486 +#: bp-groups/bp-groups-admin.php:754 bp-groups/bp-groups-notifications.php:486 #: bp-groups/bp-groups-notifications.php:575 #: bp-groups/bp-groups-notifications.php:661 #: bp-groups/bp-groups-notifications.php:743 #: bp-groups/classes/class-bp-groups-widget.php:75 -#: bp-groups/classes/class-bp-groups-widget.php:202 +#: bp-groups/classes/class-bp-groups-widget.php:204 msgid "Groups" msgstr "" -#: bp-groups/bp-groups-admin.php:778 +#: bp-groups/bp-groups-admin.php:774 msgid "Search all Groups" msgstr "" -#: bp-groups/bp-groups-admin.php:801 +#: bp-groups/bp-groups-admin.php:797 #: bp-templates/bp-legacy/buddypress/groups/create.php:201 #: bp-templates/bp-legacy/buddypress/groups/single/admin/group-settings.php:27 msgid "Enable discussion forum" msgstr "" -#: bp-groups/bp-groups-admin.php:807 +#: bp-groups/bp-groups-admin.php:803 msgid "Privacy" msgstr "" -#: bp-groups/bp-groups-admin.php:809 bp-groups/bp-groups-template.php:1233 +#: bp-groups/bp-groups-admin.php:805 bp-groups/bp-groups-template.php:1232 #: bp-groups/classes/class-bp-groups-list-table.php:601 msgid "Public" msgstr "" -#: bp-groups/bp-groups-admin.php:810 bp-groups/bp-groups-template.php:1235 +#: bp-groups/bp-groups-admin.php:806 bp-groups/bp-groups-template.php:1234 #: bp-groups/classes/class-bp-groups-list-table.php:604 msgid "Private" msgstr "" -#: bp-groups/bp-groups-admin.php:811 +#: bp-groups/bp-groups-admin.php:807 #: bp-groups/classes/class-bp-groups-list-table.php:607 msgid "Hidden" msgstr "" -#: bp-groups/bp-groups-admin.php:817 +#: bp-groups/bp-groups-admin.php:813 msgid "Who can invite others to this group?" msgstr "" -#: bp-groups/bp-groups-admin.php:819 +#: bp-groups/bp-groups-admin.php:815 #: bp-templates/bp-legacy/buddypress/groups/create.php:182 #: bp-templates/bp-legacy/buddypress/groups/single/admin/group-settings.php:104 msgid "All group members" msgstr "" -#: bp-groups/bp-groups-admin.php:820 +#: bp-groups/bp-groups-admin.php:816 #: bp-templates/bp-legacy/buddypress/groups/create.php:184 #: bp-templates/bp-legacy/buddypress/groups/single/admin/group-settings.php:106 msgid "Group admins and mods only" msgstr "" -#: bp-groups/bp-groups-admin.php:821 +#: bp-groups/bp-groups-admin.php:817 #: bp-templates/bp-legacy/buddypress/groups/create.php:186 #: bp-templates/bp-legacy/buddypress/groups/single/admin/group-settings.php:108 msgid "Group admins only" msgstr "" -#: bp-groups/bp-groups-admin.php:840 +#: bp-groups/bp-groups-admin.php:836 #. translators: accessibility text msgid "Add new members" msgstr "" -#: bp-groups/bp-groups-admin.php:842 +#: bp-groups/bp-groups-admin.php:838 msgid "Enter a comma-separated list of user logins." msgstr "" -#: bp-groups/bp-groups-admin.php:897 +#: bp-groups/bp-groups-admin.php:893 #: bp-templates/bp-legacy/buddypress/groups/single/admin/manage-members.php:25 msgid "Administrators" msgstr "" -#: bp-groups/bp-groups-admin.php:898 +#: bp-groups/bp-groups-admin.php:894 #: bp-templates/bp-legacy/buddypress/groups/single/admin/manage-members.php:118 msgid "Moderators" msgstr "" -#: bp-groups/bp-groups-admin.php:899 bp-groups/bp-groups-template.php:4501 -#: bp-groups/classes/class-bp-groups-component.php:674 +#: bp-groups/bp-groups-admin.php:895 bp-groups/bp-groups-template.php:4500 +#: bp-groups/classes/class-bp-groups-component.php:692 #: bp-members/classes/class-bp-core-members-widget.php:249 #: bp-members/classes/class-bp-members-component.php:38 #: bp-templates/bp-legacy/buddypress/groups/single/admin/manage-members.php:213 @@ -4420,56 +4416,56 @@ msgstr "" msgid "Members" msgstr "" -#: bp-groups/bp-groups-admin.php:900 +#: bp-groups/bp-groups-admin.php:896 msgid "Banned Members" msgstr "" -#: bp-groups/bp-groups-admin.php:937 +#: bp-groups/bp-groups-admin.php:933 #. translators: accessibility text msgid "Select group role for member" msgstr "" -#: bp-groups/bp-groups-admin.php:940 +#: bp-groups/bp-groups-admin.php:936 msgid "Roles" msgstr "" -#: bp-groups/bp-groups-admin.php:941 +#: bp-groups/bp-groups-admin.php:937 msgid "Administrator" msgstr "" -#: bp-groups/bp-groups-admin.php:942 +#: bp-groups/bp-groups-admin.php:938 msgid "Moderator" msgstr "" -#: bp-groups/bp-groups-admin.php:943 +#: bp-groups/bp-groups-admin.php:939 #: bp-members/classes/class-bp-members-admin.php:816 msgid "Member" msgstr "" -#: bp-groups/bp-groups-admin.php:945 +#: bp-groups/bp-groups-admin.php:941 msgid "Banned" msgstr "" -#: bp-groups/bp-groups-admin.php:948 -#: bp-members/classes/class-bp-members-admin.php:1504 +#: bp-groups/bp-groups-admin.php:944 +#: bp-members/classes/class-bp-members-admin.php:1500 #: bp-templates/bp-legacy/buddypress/members/single/messages/messages-loop.php:85 #: bp-templates/bp-legacy/buddypress/members/single/notifications/notifications-loop.php:21 msgid "Actions" msgstr "" -#: bp-groups/bp-groups-admin.php:949 +#: bp-groups/bp-groups-admin.php:945 msgid "Remove" msgstr "" -#: bp-groups/bp-groups-admin.php:951 +#: bp-groups/bp-groups-admin.php:947 msgid "Ban" msgstr "" -#: bp-groups/bp-groups-admin.php:997 +#: bp-groups/bp-groups-admin.php:989 msgid "No members of this type" msgstr "" -#: bp-groups/bp-groups-admin.php:1026 +#: bp-groups/bp-groups-admin.php:1018 #: bp-groups/classes/class-bp-group-extension.php:522 #: bp-templates/bp-legacy/buddypress/groups/single/admin/edit-details.php:52 #: bp-templates/bp-legacy/buddypress/groups/single/admin/group-settings.php:123 @@ -4481,13 +4477,13 @@ msgstr "" msgid "Save Changes" msgstr "" -#: bp-groups/bp-groups-admin.php:1056 +#: bp-groups/bp-groups-admin.php:1048 #. translators: accessibility text msgid "Select group type" msgstr "" -#: bp-groups/bp-groups-admin.php:1066 -msgid "(Not available on the frontend)" +#: bp-groups/bp-groups-admin.php:1058 +msgid "(Not available on the front end)" msgstr "" #: bp-groups/bp-groups-admin.php:1151 @@ -4498,18 +4494,11 @@ msgstr "" msgid "»" msgstr "" -#: bp-groups/bp-groups-admin.php:1158 bp-groups/bp-groups-template.php:4348 -#: bp-members/bp-members-template.php:504 +#: bp-groups/bp-groups-admin.php:1158 bp-groups/bp-groups-template.php:4347 +#: bp-members/bp-members-template.php:500 msgid "Viewing 1 member" msgstr "" -#: bp-groups/bp-groups-admin.php:1161 bp-groups/bp-groups-template.php:4350 -#: bp-members/bp-members-template.php:506 -msgid "Viewing %1$s - %2$s of %3$s member" -msgid_plural "Viewing %1$s - %2$s of %3$s members" -msgstr[0] "" -msgstr[1] "" - #: bp-groups/bp-groups-admin.php:1227 #. Translators: 1: user_login, 2: user_email. msgid "%1$s (%2$s)" @@ -4536,7 +4525,7 @@ msgid "%1$s edited the forum topic %2$s in the group %3$s" msgstr "" #: bp-groups/bp-groups-functions.php:170 -#: bp-groups/classes/class-bp-groups-member.php:299 +#: bp-groups/classes/class-bp-groups-member.php:347 msgid "Group Admin" msgstr "" @@ -4544,15 +4533,15 @@ msgstr "" msgid "As the only admin, you cannot leave the group." msgstr "" -#: bp-groups/bp-groups-functions.php:1221 +#: bp-groups/bp-groups-functions.php:1219 msgid "%1$s posted an update in the group %2$s" msgstr "" -#: bp-groups/bp-groups-functions.php:2160 +#: bp-groups/bp-groups-functions.php:2164 msgid "Group type already exists." msgstr "" -#: bp-groups/bp-groups-functions.php:2187 +#: bp-groups/bp-groups-functions.php:2191 msgid "You may not register a group type with this name." msgstr "" @@ -4573,7 +4562,6 @@ msgid "Group Membership Requests" msgstr "" #: bp-groups/bp-groups-notifications.php:413 -#: bp-groups/bp-groups-notifications.php:433 msgid "%s requests group membership" msgstr "" @@ -4623,217 +4611,217 @@ msgstr "" msgid "You have an invitation to the group: %s" msgstr "" -#: bp-groups/bp-groups-screens.php:103 +#: bp-groups/bp-groups-screens.php:83 msgid "Group invite could not be accepted" msgstr "" -#: bp-groups/bp-groups-screens.php:105 bp-groups/bp-groups-screens.php:740 +#: bp-groups/bp-groups-screens.php:85 bp-groups/bp-groups-screens.php:720 msgid "Group invite accepted" msgstr "" -#: bp-groups/bp-groups-screens.php:130 +#: bp-groups/bp-groups-screens.php:110 msgid "Group invite could not be rejected" msgstr "" -#: bp-groups/bp-groups-screens.php:132 +#: bp-groups/bp-groups-screens.php:112 msgid "Group invite rejected" msgstr "" -#: bp-groups/bp-groups-screens.php:241 +#: bp-groups/bp-groups-screens.php:221 msgid "It looks like you've already said that!" msgstr "" -#: bp-groups/bp-groups-screens.php:244 +#: bp-groups/bp-groups-screens.php:224 msgid "There was an error when replying to that topic" msgstr "" -#: bp-groups/bp-groups-screens.php:246 +#: bp-groups/bp-groups-screens.php:226 msgid "Your reply was posted successfully" msgstr "" -#: bp-groups/bp-groups-screens.php:267 +#: bp-groups/bp-groups-screens.php:247 msgid "There was an error when making that topic a sticky" msgstr "" -#: bp-groups/bp-groups-screens.php:269 +#: bp-groups/bp-groups-screens.php:249 msgid "The topic was made sticky successfully" msgstr "" -#: bp-groups/bp-groups-screens.php:289 +#: bp-groups/bp-groups-screens.php:269 msgid "There was an error when unsticking that topic" msgstr "" -#: bp-groups/bp-groups-screens.php:291 +#: bp-groups/bp-groups-screens.php:271 msgid "The topic was unstuck successfully" msgstr "" -#: bp-groups/bp-groups-screens.php:311 +#: bp-groups/bp-groups-screens.php:291 msgid "There was an error when closing that topic" msgstr "" -#: bp-groups/bp-groups-screens.php:313 +#: bp-groups/bp-groups-screens.php:293 msgid "The topic was closed successfully" msgstr "" -#: bp-groups/bp-groups-screens.php:333 +#: bp-groups/bp-groups-screens.php:313 msgid "There was an error when opening that topic" msgstr "" -#: bp-groups/bp-groups-screens.php:335 +#: bp-groups/bp-groups-screens.php:315 msgid "The topic was opened successfully" msgstr "" -#: bp-groups/bp-groups-screens.php:372 +#: bp-groups/bp-groups-screens.php:352 msgid "There was an error deleting the topic" msgstr "" -#: bp-groups/bp-groups-screens.php:374 +#: bp-groups/bp-groups-screens.php:354 msgid "The topic was deleted successfully" msgstr "" -#: bp-groups/bp-groups-screens.php:405 +#: bp-groups/bp-groups-screens.php:385 msgid "There was an error when editing that topic" msgstr "" -#: bp-groups/bp-groups-screens.php:407 +#: bp-groups/bp-groups-screens.php:387 msgid "The topic was edited successfully" msgstr "" -#: bp-groups/bp-groups-screens.php:453 +#: bp-groups/bp-groups-screens.php:433 msgid "There was an error deleting that post" msgstr "" -#: bp-groups/bp-groups-screens.php:455 +#: bp-groups/bp-groups-screens.php:435 msgid "The post was deleted successfully" msgstr "" -#: bp-groups/bp-groups-screens.php:486 +#: bp-groups/bp-groups-screens.php:466 msgid "There was an error when editing that post" msgstr "" -#: bp-groups/bp-groups-screens.php:488 +#: bp-groups/bp-groups-screens.php:468 msgid "The post was edited successfully" msgstr "" -#: bp-groups/bp-groups-screens.php:512 bp-groups/bp-groups-screens.php:538 +#: bp-groups/bp-groups-screens.php:492 bp-groups/bp-groups-screens.php:518 msgid "You have been banned from this group." msgstr "" -#: bp-groups/bp-groups-screens.php:552 +#: bp-groups/bp-groups-screens.php:532 msgid "This group does not have a forum setup yet." msgstr "" -#: bp-groups/bp-groups-screens.php:651 +#: bp-groups/bp-groups-screens.php:631 msgid "Group invites sent." msgstr "" -#: bp-groups/bp-groups-screens.php:707 +#: bp-groups/bp-groups-screens.php:687 msgid "You are not allowed to send or remove invites" msgstr "" -#: bp-groups/bp-groups-screens.php:710 +#: bp-groups/bp-groups-screens.php:690 msgid "The member requested to join the group" msgstr "" -#: bp-groups/bp-groups-screens.php:742 +#: bp-groups/bp-groups-screens.php:722 msgid "There was an error accepting the group invitation. Please try again." msgstr "" -#: bp-groups/bp-groups-screens.php:754 +#: bp-groups/bp-groups-screens.php:734 msgid "There was an error sending your group membership request. Please try again." msgstr "" -#: bp-groups/bp-groups-screens.php:756 +#: bp-groups/bp-groups-screens.php:736 msgid "" "Your membership request was sent to the group administrator successfully. " "You will be notified when the group administrator responds to your request." msgstr "" -#: bp-groups/bp-groups-screens.php:863 +#: bp-groups/bp-groups-screens.php:843 msgid "There was an error updating group details. Please try again." msgstr "" -#: bp-groups/bp-groups-screens.php:865 +#: bp-groups/bp-groups-screens.php:845 msgid "Group details were successfully updated." msgstr "" -#: bp-groups/bp-groups-screens.php:961 +#: bp-groups/bp-groups-screens.php:941 msgid "There was an error updating group settings. Please try again." msgstr "" -#: bp-groups/bp-groups-screens.php:963 +#: bp-groups/bp-groups-screens.php:943 msgid "Group settings were successfully updated." msgstr "" -#: bp-groups/bp-groups-screens.php:1068 +#: bp-groups/bp-groups-screens.php:1058 msgid "The new group profile photo was uploaded successfully." msgstr "" -#: bp-groups/bp-groups-screens.php:1153 +#: bp-groups/bp-groups-screens.php:1143 msgid "There was an error when promoting that user. Please try again." msgstr "" -#: bp-groups/bp-groups-screens.php:1155 +#: bp-groups/bp-groups-screens.php:1145 msgid "User promoted successfully" msgstr "" -#: bp-groups/bp-groups-screens.php:1186 +#: bp-groups/bp-groups-screens.php:1176 msgid "There was an error when demoting that user. Please try again." msgstr "" -#: bp-groups/bp-groups-screens.php:1188 +#: bp-groups/bp-groups-screens.php:1178 msgid "User demoted successfully" msgstr "" -#: bp-groups/bp-groups-screens.php:1212 +#: bp-groups/bp-groups-screens.php:1202 msgid "There was an error when banning that user. Please try again." msgstr "" -#: bp-groups/bp-groups-screens.php:1214 +#: bp-groups/bp-groups-screens.php:1204 msgid "User banned successfully" msgstr "" -#: bp-groups/bp-groups-screens.php:1238 +#: bp-groups/bp-groups-screens.php:1228 msgid "There was an error when unbanning that user. Please try again." msgstr "" -#: bp-groups/bp-groups-screens.php:1240 +#: bp-groups/bp-groups-screens.php:1230 msgid "User ban removed successfully" msgstr "" -#: bp-groups/bp-groups-screens.php:1264 +#: bp-groups/bp-groups-screens.php:1254 msgid "There was an error removing that user from the group. Please try again." msgstr "" -#: bp-groups/bp-groups-screens.php:1266 +#: bp-groups/bp-groups-screens.php:1256 msgid "User removed successfully" msgstr "" -#: bp-groups/bp-groups-screens.php:1330 +#: bp-groups/bp-groups-screens.php:1320 msgid "There was an error accepting the membership request. Please try again." msgstr "" -#: bp-groups/bp-groups-screens.php:1332 +#: bp-groups/bp-groups-screens.php:1322 msgid "Group membership request accepted" msgstr "" -#: bp-groups/bp-groups-screens.php:1341 +#: bp-groups/bp-groups-screens.php:1331 msgid "There was an error rejecting the membership request. Please try again." msgstr "" -#: bp-groups/bp-groups-screens.php:1343 +#: bp-groups/bp-groups-screens.php:1333 msgid "Group membership request rejected" msgstr "" -#: bp-groups/bp-groups-screens.php:1412 bp-xprofile/bp-xprofile-admin.php:322 +#: bp-groups/bp-groups-screens.php:1402 msgid "There was an error deleting the group. Please try again." msgstr "" -#: bp-groups/bp-groups-screens.php:1414 bp-xprofile/bp-xprofile-admin.php:325 +#: bp-groups/bp-groups-screens.php:1404 msgid "The group was deleted successfully." msgstr "" -#: bp-groups/bp-groups-template.php:242 +#: bp-groups/bp-groups-template.php:235 msgid "Group Types:" msgstr "" @@ -4853,151 +4841,157 @@ msgstr "" msgid "Group" msgstr "" -#: bp-groups/bp-groups-template.php:945 +#: bp-groups/bp-groups-template.php:944 msgid "not yet active" msgstr "" -#: bp-groups/bp-groups-template.php:1521 +#: bp-groups/bp-groups-template.php:1520 msgid "Group creator profile photo of %s" msgstr "" -#: bp-groups/bp-groups-template.php:1591 +#: bp-groups/bp-groups-template.php:1590 msgid "No Admins" msgstr "" -#: bp-groups/bp-groups-template.php:1627 +#: bp-groups/bp-groups-template.php:1626 msgid "No Mods" msgstr "" -#: bp-groups/bp-groups-template.php:1767 +#: bp-groups/bp-groups-template.php:1766 msgid "Filter Groups" msgstr "" -#: bp-groups/bp-groups-template.php:1867 +#: bp-groups/bp-groups-template.php:1866 msgid "Viewing 1 group" msgstr "" -#: bp-groups/bp-groups-template.php:1869 +#: bp-groups/bp-groups-template.php:1868 msgid "Viewing %1$s - %2$s of %3$s group" msgid_plural "Viewing %1$s - %2$s of %3$s groups" msgstr[0] "" msgstr[1] "" -#: bp-groups/bp-groups-template.php:1969 +#: bp-groups/bp-groups-template.php:1968 msgid "%s member" msgid_plural "%s members" msgstr[0] "" msgstr[1] "" -#: bp-groups/bp-groups-template.php:2064 +#: bp-groups/bp-groups-template.php:2063 msgid "%d topic" msgstr "" -#: bp-groups/bp-groups-template.php:2066 +#: bp-groups/bp-groups-template.php:2065 msgid "%d topics" msgstr "" -#: bp-groups/bp-groups-template.php:2132 +#: bp-groups/bp-groups-template.php:2131 msgid "%d posts" msgstr "" -#: bp-groups/bp-groups-template.php:2392 bp-groups/bp-groups-template.php:2468 +#: bp-groups/bp-groups-template.php:2391 bp-groups/bp-groups-template.php:2467 #: bp-templates/bp-legacy/buddypress/groups/single/admin/manage-members.php:74 #: bp-templates/bp-legacy/buddypress/groups/single/admin/manage-members.php:168 msgid "Demote to Member" msgstr "" -#: bp-groups/bp-groups-template.php:2405 bp-groups/bp-groups-template.php:2481 -#: bp-groups/bp-groups-template.php:4234 +#: bp-groups/bp-groups-template.php:2404 bp-groups/bp-groups-template.php:2480 +#: bp-groups/bp-groups-template.php:4233 msgid "joined %s" msgstr "" -#: bp-groups/bp-groups-template.php:2428 +#: bp-groups/bp-groups-template.php:2427 msgid "This group has no administrators" msgstr "" -#: bp-groups/bp-groups-template.php:2467 +#: bp-groups/bp-groups-template.php:2466 #: bp-templates/bp-legacy/buddypress/groups/single/admin/manage-members.php:167 #: bp-templates/bp-legacy/buddypress/groups/single/admin/manage-members.php:276 msgid "Promote to Admin" msgstr "" -#: bp-groups/bp-groups-template.php:2501 +#: bp-groups/bp-groups-template.php:2500 msgid "This group has no moderators" msgstr "" -#: bp-groups/bp-groups-template.php:2862 +#: bp-groups/bp-groups-template.php:2861 msgid "" "This action should not be used directly. Please use the BuddyPress Group " "Extension API to generate Manage tabs." msgstr "" -#: bp-groups/bp-groups-template.php:3449 -#: bp-templates/bp-legacy/buddypress-functions.php:1461 -#: bp-templates/bp-legacy/buddypress-functions.php:1474 +#: bp-groups/bp-groups-template.php:3448 +#: bp-templates/bp-legacy/buddypress-functions.php:1471 +#: bp-templates/bp-legacy/buddypress-functions.php:1484 msgid "Leave Group" msgstr "" -#: bp-groups/bp-groups-template.php:3470 -#: bp-templates/bp-legacy/buddypress-functions.php:1495 +#: bp-groups/bp-groups-template.php:3469 +#: bp-templates/bp-legacy/buddypress-functions.php:1505 msgid "Join Group" msgstr "" -#: bp-groups/bp-groups-template.php:3488 +#: bp-groups/bp-groups-template.php:3487 msgid "Accept Invitation" msgstr "" -#: bp-groups/bp-groups-template.php:3503 -#: bp-templates/bp-legacy/buddypress-functions.php:1484 +#: bp-groups/bp-groups-template.php:3502 +#: bp-templates/bp-legacy/buddypress-functions.php:1494 msgid "Request Sent" msgstr "" -#: bp-groups/bp-groups-template.php:3518 -#: bp-templates/bp-legacy/buddypress-functions.php:1497 +#: bp-groups/bp-groups-template.php:3517 +#: bp-templates/bp-legacy/buddypress-functions.php:1507 msgid "Request Membership" msgstr "" -#: bp-groups/bp-groups-template.php:3663 +#: bp-groups/bp-groups-template.php:3662 msgid "This group is not currently accessible." msgstr "" -#: bp-groups/bp-groups-template.php:3674 +#: bp-groups/bp-groups-template.php:3673 msgid "" "You must accept your pending invitation before you can access this private " "group." msgstr "" -#: bp-groups/bp-groups-template.php:3676 +#: bp-groups/bp-groups-template.php:3675 msgid "" "This is a private group and you must request group membership in order to " "join." msgstr "" -#: bp-groups/bp-groups-template.php:3679 +#: bp-groups/bp-groups-template.php:3678 msgid "" "This is a private group. To join you must be a registered site member and " "request group membership." msgstr "" -#: bp-groups/bp-groups-template.php:3682 +#: bp-groups/bp-groups-template.php:3681 msgid "" "This is a private group. Your membership request is awaiting approval from " "the group administrator." msgstr "" -#: bp-groups/bp-groups-template.php:3690 +#: bp-groups/bp-groups-template.php:3689 msgid "This is a hidden group and only invited members can join." msgstr "" -#: bp-groups/bp-groups-template.php:4478 +#: bp-groups/bp-groups-template.php:4349 bp-members/bp-members-template.php:502 +msgid "Viewing %1$s - %2$s of %3$s member" +msgid_plural "Viewing %1$s - %2$s of %3$s members" +msgstr[0] "" +msgstr[1] "" + +#: bp-groups/bp-groups-template.php:4477 #: bp-templates/bp-legacy/buddypress/groups/single/activity.php:10 #: bp-templates/bp-legacy/buddypress/groups/single/admin.php:10 #: bp-templates/bp-legacy/buddypress/groups/single/forum.php:24 msgid "Group secondary navigation" msgstr "" -#: bp-groups/bp-groups-template.php:4520 -#: bp-notifications/bp-notifications-template.php:1004 +#: bp-groups/bp-groups-template.php:4519 +#: bp-notifications/bp-notifications-template.php:1000 #: bp-templates/bp-legacy/buddypress/blogs/index.php:96 #: bp-templates/bp-legacy/buddypress/forums/index.php:94 #: bp-templates/bp-legacy/buddypress/groups/index.php:92 @@ -5010,15 +5004,17 @@ msgstr "" msgid "Order By:" msgstr "" -#: bp-groups/bp-groups-template.php:4523 +#: bp-groups/bp-groups-template.php:4522 msgid "Oldest" msgstr "" -#: bp-groups/bp-groups-template.php:4526 +#: bp-groups/bp-groups-template.php:4525 msgid "Group Activity" msgstr "" -#: bp-groups/bp-groups-template.php:4529 +#: bp-groups/bp-groups-template.php:4528 +#: bp-groups/classes/class-bp-groups-widget.php:127 +#: bp-groups/classes/class-bp-groups-widget.php:229 #: bp-templates/bp-legacy/buddypress/blogs/index.php:100 #: bp-templates/bp-legacy/buddypress/groups/index.php:98 #: bp-templates/bp-legacy/buddypress/members/index.php:97 @@ -5028,74 +5024,74 @@ msgstr "" msgid "Alphabetical" msgstr "" -#: bp-groups/bp-groups-template.php:4951 +#: bp-groups/bp-groups-template.php:4950 msgid "Group photo" msgstr "" -#: bp-groups/bp-groups-template.php:5247 bp-groups/bp-groups-template.php:5272 +#: bp-groups/bp-groups-template.php:5246 bp-groups/bp-groups-template.php:5271 msgid "Recently Joined" msgstr "" -#: bp-groups/bp-groups-template.php:5248 bp-groups/bp-groups-template.php:5275 +#: bp-groups/bp-groups-template.php:5247 bp-groups/bp-groups-template.php:5274 msgid "Most Popular" msgstr "" -#: bp-groups/bp-groups-template.php:5249 bp-groups/bp-groups-template.php:5278 +#: bp-groups/bp-groups-template.php:5248 bp-groups/bp-groups-template.php:5277 msgid "Administrator Of" msgstr "" -#: bp-groups/bp-groups-template.php:5250 bp-groups/bp-groups-template.php:5281 +#: bp-groups/bp-groups-template.php:5249 bp-groups/bp-groups-template.php:5280 msgid "Moderator Of" msgstr "" -#: bp-groups/bp-groups-template.php:5308 +#: bp-groups/bp-groups-template.php:5307 msgid "Viewing groups of the type: %s" msgstr "" -#: bp-groups/bp-groups-template.php:5392 +#: bp-groups/bp-groups-template.php:5391 msgid "Group avatar" msgstr "" -#: bp-groups/bp-groups-template.php:5655 +#: bp-groups/bp-groups-template.php:5654 msgid "requested %s" msgstr "" -#: bp-groups/bp-groups-template.php:5726 +#: bp-groups/bp-groups-template.php:5725 msgid "Viewing 1 request" msgstr "" -#: bp-groups/bp-groups-template.php:5728 +#: bp-groups/bp-groups-template.php:5727 msgid "Viewing %1$s - %2$s of %3$s request" msgid_plural "Viewing %1$s - %2$s of %3$s requests" msgstr[0] "" msgstr[1] "" -#: bp-groups/bp-groups-template.php:5995 +#: bp-groups/bp-groups-template.php:5994 msgid "Viewing 1 invitation" msgstr "" -#: bp-groups/bp-groups-template.php:5997 +#: bp-groups/bp-groups-template.php:5996 msgid "Viewing %1$s - %2$s of %3$s invitation" msgid_plural "Viewing %1$s - %2$s of %3$s invitations" msgstr[0] "" msgstr[1] "" -#: bp-groups/bp-groups-template.php:6018 +#: bp-groups/bp-groups-template.php:6017 msgid "Group Activity RSS Feed" msgstr "" -#: bp-groups/bp-groups-template.php:6300 +#: bp-groups/bp-groups-template.php:6299 msgid "%s group" msgid_plural "%s groups" msgstr[0] "" msgstr[1] "" -#: bp-groups/bp-groups-widgets.php:69 -#: bp-groups/classes/class-bp-groups-widget.php:141 +#: bp-groups/bp-groups-widgets.php:68 +#: bp-groups/classes/class-bp-groups-widget.php:143 msgid "created %s" msgstr "" -#: bp-groups/bp-groups-widgets.php:85 +#: bp-groups/bp-groups-widgets.php:84 msgid "No groups matched the current filter." msgstr "" @@ -5103,35 +5099,35 @@ msgstr "" msgid "You do not have access to this content." msgstr "" -#: bp-groups/classes/class-bp-groups-component.php:484 -#: bp-groups/classes/class-bp-groups-component.php:517 +#: bp-groups/classes/class-bp-groups-component.php:502 +#: bp-groups/classes/class-bp-groups-component.php:535 msgid "Memberships" msgstr "" -#: bp-groups/classes/class-bp-groups-component.php:495 +#: bp-groups/classes/class-bp-groups-component.php:513 msgid "Invitations" msgstr "" -#: bp-groups/classes/class-bp-groups-component.php:646 +#: bp-groups/classes/class-bp-groups-component.php:664 msgid "Details" msgstr "" -#: bp-groups/classes/class-bp-groups-component.php:659 +#: bp-groups/classes/class-bp-groups-component.php:677 msgid "Photo" msgstr "" -#: bp-groups/classes/class-bp-groups-component.php:667 +#: bp-groups/classes/class-bp-groups-component.php:685 #: bp-templates/bp-legacy/buddypress/groups/create.php:314 #: bp-templates/bp-legacy/buddypress/groups/single/admin/group-cover-image.php:11 #. translators: accessibility text msgid "Cover Image" msgstr "" -#: bp-groups/classes/class-bp-groups-component.php:681 +#: bp-groups/classes/class-bp-groups-component.php:699 msgid "Requests" msgstr "" -#: bp-groups/classes/class-bp-groups-component.php:828 +#: bp-groups/classes/class-bp-groups-component.php:846 msgid "No Group Profile Photo" msgstr "" @@ -5182,42 +5178,49 @@ msgid "No Group Type" msgstr "" #: bp-groups/classes/class-bp-groups-list-table.php:787 -#: bp-members/classes/class-bp-members-admin.php:2135 +#: bp-members/classes/class-bp-members-admin.php:2181 #: bp-templates/bp-legacy/buddypress/members/single/profile/edit.php:62 -#: bp-xprofile/classes/class-bp-xprofile-user-admin.php:400 +#: bp-xprofile/classes/class-bp-xprofile-user-admin.php:391 msgid "Change" msgstr "" -#: bp-groups/classes/class-bp-groups-member.php:293 +#: bp-groups/classes/class-bp-groups-member.php:341 msgid "Group Mod" msgstr "" #: bp-groups/classes/class-bp-groups-widget.php:27 -msgid "A dynamic list of recently active, popular, and newest groups" +msgid "A dynamic list of recently active, popular, newest, or alphabetical groups" msgstr "" -#: bp-groups/classes/class-bp-groups-widget.php:161 +#: bp-groups/classes/class-bp-groups-widget.php:163 msgid "There are no groups to display." msgstr "" -#: bp-groups/classes/class-bp-groups-widget.php:217 +#: bp-groups/classes/class-bp-groups-widget.php:219 msgid "Link widget title to Groups directory" msgstr "" -#: bp-groups/classes/class-bp-groups-widget.php:219 +#: bp-groups/classes/class-bp-groups-widget.php:221 msgid "Max groups to show:" msgstr "" -#: bp-groups/classes/class-bp-groups-widget.php:222 +#: bp-groups/classes/class-bp-groups-widget.php:224 msgid "Default groups to show:" msgstr "" -#: bp-loader.php:183 bp-loader.php:190 -msgid "Cheatin’ huh?" +#: bp-loader.php:62 +msgid "Your site does not support BuddyPress." msgstr "" -#: bp-loader.php:753 -msgid "BuddyPress Default" +#: bp-loader.php:64 +#. translators: 1: current PHP version, 2: required PHP version +msgid "" +"Your site is currently running PHP version %1$s, while BuddyPress requires " +"version %2$s or greater." +msgstr "" + +#: bp-loader.php:65 +msgid "Please update your server or deactivate BuddyPress." msgstr "" #: bp-members/bp-members-actions.php:57 @@ -5262,12 +5265,12 @@ msgstr "" #: bp-members/classes/class-bp-members-admin.php:436 #: bp-members/classes/class-bp-members-admin.php:472 #: bp-members/classes/class-bp-members-admin.php:473 -#: bp-xprofile/bp-xprofile-template.php:1231 +#: bp-xprofile/bp-xprofile-template.php:1247 msgid "Edit Profile" msgstr "" #: bp-members/bp-members-adminbar.php:113 -#: bp-xprofile/classes/class-bp-xprofile-user-admin.php:490 +#: bp-xprofile/classes/class-bp-xprofile-user-admin.php:481 msgid "Edit Profile Photo" msgstr "" @@ -5295,155 +5298,155 @@ msgid "" msgstr "" #: bp-members/bp-members-functions.php:1442 -#: bp-members/bp-members-functions.php:2474 +#: bp-members/bp-members-functions.php:2479 msgid "<strong>ERROR</strong>: Your account has been marked as a spammer." msgstr "" -#: bp-members/bp-members-functions.php:1658 +#: bp-members/bp-members-functions.php:1663 msgid "Please check your email address." msgstr "" -#: bp-members/bp-members-functions.php:1662 -#: bp-members/bp-members-functions.php:1666 +#: bp-members/bp-members-functions.php:1667 +#: bp-members/bp-members-functions.php:1671 msgid "Sorry, that email address is not allowed!" msgstr "" -#: bp-members/bp-members-functions.php:1670 +#: bp-members/bp-members-functions.php:1675 msgid "Sorry, that email address is already used!" msgstr "" -#: bp-members/bp-members-functions.php:1710 +#: bp-members/bp-members-functions.php:1715 msgid "Please enter a username" msgstr "" -#: bp-members/bp-members-functions.php:1716 +#: bp-members/bp-members-functions.php:1721 msgid "That username is not allowed" msgstr "" -#: bp-members/bp-members-functions.php:1721 +#: bp-members/bp-members-functions.php:1726 msgid "Usernames can contain only letters, numbers, ., -, and @" msgstr "" -#: bp-members/bp-members-functions.php:1726 +#: bp-members/bp-members-functions.php:1731 msgid "Username must be at least 4 characters" msgstr "" -#: bp-members/bp-members-functions.php:1731 +#: bp-members/bp-members-functions.php:1736 msgid "Sorry, usernames may not contain the character \"_\"!" msgstr "" -#: bp-members/bp-members-functions.php:1738 +#: bp-members/bp-members-functions.php:1743 msgid "Sorry, usernames must have letters too!" msgstr "" -#: bp-members/bp-members-functions.php:1750 +#: bp-members/bp-members-functions.php:1755 msgid "Sorry, that username already exists!" msgstr "" -#: bp-members/bp-members-functions.php:1964 -#: bp-members/bp-members-functions.php:1991 +#: bp-members/bp-members-functions.php:1969 +#: bp-members/bp-members-functions.php:1996 msgid "Invalid activation key." msgstr "" -#: bp-members/bp-members-functions.php:1971 +#: bp-members/bp-members-functions.php:1976 msgid "The user is already active." msgstr "" -#: bp-members/bp-members-functions.php:1973 +#: bp-members/bp-members-functions.php:1978 msgid "The site is already active." msgstr "" -#: bp-members/bp-members-functions.php:2006 +#: bp-members/bp-members-functions.php:2011 msgid "Could not create user" msgstr "" -#: bp-members/bp-members-functions.php:2020 +#: bp-members/bp-members-functions.php:2025 msgid "That username is already activated." msgstr "" -#: bp-members/bp-members-functions.php:2337 +#: bp-members/bp-members-functions.php:2342 msgid "" "If you have not received an email yet, <a href=\"%s\">click here to resend " "it</a>." msgstr "" -#: bp-members/bp-members-functions.php:2339 +#: bp-members/bp-members-functions.php:2344 msgid "" "<strong>ERROR</strong>: Your account has not been activated. Check your " "email for the activation link." msgstr "" -#: bp-members/bp-members-functions.php:2370 +#: bp-members/bp-members-functions.php:2375 msgid "<strong>ERROR</strong>: Your account has already been activated." msgstr "" -#: bp-members/bp-members-functions.php:2372 +#: bp-members/bp-members-functions.php:2377 msgid "Activation email resent! Please check your inbox or spam folder." msgstr "" -#: bp-members/bp-members-functions.php:2561 +#: bp-members/bp-members-functions.php:2566 msgid "Member type already exists." msgstr "" -#: bp-members/bp-members-functions.php:2584 +#: bp-members/bp-members-functions.php:2589 msgid "You may not register a member type with this name." msgstr "" -#: bp-members/bp-members-screens.php:132 +#: bp-members/bp-members-screens.php:127 msgid "Please make sure you enter your password twice" msgstr "" -#: bp-members/bp-members-screens.php:136 +#: bp-members/bp-members-screens.php:131 msgid "The passwords you entered do not match." msgstr "" -#: bp-members/bp-members-screens.php:159 +#: bp-members/bp-members-screens.php:151 msgid "This is a required field" msgstr "" -#: bp-members/bp-members-screens.php:372 +#: bp-members/bp-members-screens.php:358 msgid "Your account is now active!" msgstr "" -#: bp-members/bp-members-template.php:486 +#: bp-members/bp-members-template.php:482 msgid "Viewing 1 active member" msgstr "" -#: bp-members/bp-members-template.php:488 +#: bp-members/bp-members-template.php:484 msgid "Viewing %1$s - %2$s of %3$s active member" msgid_plural "Viewing %1$s - %2$s of %3$s active members" msgstr[0] "" msgstr[1] "" -#: bp-members/bp-members-template.php:492 +#: bp-members/bp-members-template.php:488 msgid "Viewing 1 member with friends" msgstr "" -#: bp-members/bp-members-template.php:494 +#: bp-members/bp-members-template.php:490 msgid "Viewing %1$s - %2$s of %3$s member with friends" msgid_plural "Viewing %1$s - %2$s of %3$s members with friends" msgstr[0] "" msgstr[1] "" -#: bp-members/bp-members-template.php:498 +#: bp-members/bp-members-template.php:494 msgid "Viewing 1 online member" msgstr "" -#: bp-members/bp-members-template.php:500 +#: bp-members/bp-members-template.php:496 msgid "Viewing %1$s - %2$s of %3$s online member" msgid_plural "Viewing %1$s - %2$s of %3$s online members" msgstr[0] "" msgstr[1] "" -#: bp-members/bp-members-template.php:2012 +#: bp-members/bp-members-template.php:2008 msgid "Viewing members of the type: %s" msgstr "" -#: bp-members/bp-members-template.php:2439 +#: bp-members/bp-members-template.php:2435 msgid "Your Profile Photo" msgstr "" -#: bp-members/bp-members-template.php:2529 +#: bp-members/bp-members-template.php:2525 msgid "Activity RSS Feed" msgstr "" @@ -5514,14 +5517,14 @@ msgid "An error occurred while trying to update the profile." msgstr "" #: bp-members/classes/class-bp-members-admin.php:406 -#: bp-xprofile/bp-xprofile-screens.php:111 +#: bp-xprofile/bp-xprofile-screens.php:100 msgid "" "Please make sure you fill in all required fields in this profile field " "group before saving." msgstr "" #: bp-members/classes/class-bp-members-admin.php:412 -#: bp-xprofile/bp-xprofile-screens.php:177 +#: bp-xprofile/bp-xprofile-screens.php:166 msgid "" "There was a problem updating some of your profile information. Please try " "again." @@ -5601,7 +5604,7 @@ msgid "Update Profile" msgstr "" #: bp-members/classes/class-bp-members-admin.php:1094 -#: bp-xprofile/classes/class-bp-xprofile-user-admin.php:444 +#: bp-xprofile/classes/class-bp-xprofile-user-admin.php:435 msgid "" "%s has been marked as a spammer. All BuddyPress data associated with the " "user has been removed" @@ -5630,175 +5633,180 @@ msgstr "" msgid "Extended" msgstr "" -#: bp-members/classes/class-bp-members-admin.php:1496 +#: bp-members/classes/class-bp-members-admin.php:1492 msgid "This is the administration screen for pending accounts on your site." msgstr "" -#: bp-members/classes/class-bp-members-admin.php:1497 +#: bp-members/classes/class-bp-members-admin.php:1493 msgid "" "From the screen options, you can customize the displayed columns and the " "pagination of this screen." msgstr "" -#: bp-members/classes/class-bp-members-admin.php:1498 +#: bp-members/classes/class-bp-members-admin.php:1494 msgid "" "You can reorder the list of your pending accounts by clicking on the " "Username, Email or Registered column headers." msgstr "" -#: bp-members/classes/class-bp-members-admin.php:1499 +#: bp-members/classes/class-bp-members-admin.php:1495 msgid "" "Using the search form, you can find pending accounts more easily. The " "Username and Email fields will be included in the search." msgstr "" -#: bp-members/classes/class-bp-members-admin.php:1506 +#: bp-members/classes/class-bp-members-admin.php:1502 msgid "" "Hovering over a row in the pending accounts list will display action links " "that allow you to manage pending accounts. You can perform the following " "actions:" msgstr "" -#: bp-members/classes/class-bp-members-admin.php:1507 +#: bp-members/classes/class-bp-members-admin.php:1503 msgid "" "\"Email\" takes you to the confirmation screen before being able to send " "the activation link to the desired pending account. You can only send the " "activation email once per day." msgstr "" -#: bp-members/classes/class-bp-members-admin.php:1508 +#: bp-members/classes/class-bp-members-admin.php:1504 msgid "" "\"Delete\" allows you to delete a pending account from your site. You will " "be asked to confirm this deletion." msgstr "" -#: bp-members/classes/class-bp-members-admin.php:1509 +#: bp-members/classes/class-bp-members-admin.php:1505 msgid "" "By clicking on a Username you will be able to activate a pending account " "from the confirmation screen." msgstr "" -#: bp-members/classes/class-bp-members-admin.php:1510 +#: bp-members/classes/class-bp-members-admin.php:1506 msgid "Bulk actions allow you to perform these 3 actions for the selected rows." msgstr "" -#: bp-members/classes/class-bp-members-admin.php:1523 +#: bp-members/classes/class-bp-members-admin.php:1519 #. translators: accessibility text msgid "Filter users list" msgstr "" -#: bp-members/classes/class-bp-members-admin.php:1525 +#: bp-members/classes/class-bp-members-admin.php:1521 #. translators: accessibility text msgid "Pending users list navigation" msgstr "" -#: bp-members/classes/class-bp-members-admin.php:1527 +#: bp-members/classes/class-bp-members-admin.php:1523 #. translators: accessibility text msgid "Pending users list" msgstr "" -#: bp-members/classes/class-bp-members-admin.php:1788 +#: bp-members/classes/class-bp-members-admin.php:1784 msgid "There was a problem sending the activation emails. Please try again." msgstr "" -#: bp-members/classes/class-bp-members-admin.php:1795 +#: bp-members/classes/class-bp-members-admin.php:1791 msgid "There was a problem activating accounts. Please try again." msgstr "" -#: bp-members/classes/class-bp-members-admin.php:1802 +#: bp-members/classes/class-bp-members-admin.php:1798 msgid "There was a problem deleting sign-ups. Please try again." msgstr "" -#: bp-members/classes/class-bp-members-admin.php:1924 +#: bp-members/classes/class-bp-members-admin.php:1920 msgid "Users" msgstr "" -#: bp-members/classes/class-bp-members-admin.php:1948 +#: bp-members/classes/class-bp-members-admin.php:1944 msgid "Search Pending Users" msgstr "" -#: bp-members/classes/class-bp-members-admin.php:1996 +#: bp-members/classes/class-bp-members-admin.php:1992 msgid "Delete Pending Accounts" msgstr "" -#: bp-members/classes/class-bp-members-admin.php:1998 +#: bp-members/classes/class-bp-members-admin.php:1994 msgid "You are about to delete the following account:" msgstr "" -#: bp-members/classes/class-bp-members-admin.php:2000 +#: bp-members/classes/class-bp-members-admin.php:1996 msgid "You are about to delete the following accounts:" msgstr "" -#: bp-members/classes/class-bp-members-admin.php:2005 +#: bp-members/classes/class-bp-members-admin.php:2001 msgid "Activate Pending Accounts" msgstr "" -#: bp-members/classes/class-bp-members-admin.php:2007 +#: bp-members/classes/class-bp-members-admin.php:2003 msgid "You are about to activate the following account:" msgstr "" -#: bp-members/classes/class-bp-members-admin.php:2009 +#: bp-members/classes/class-bp-members-admin.php:2005 msgid "You are about to activate the following accounts:" msgstr "" -#: bp-members/classes/class-bp-members-admin.php:2014 +#: bp-members/classes/class-bp-members-admin.php:2010 msgid "Resend Activation Emails" msgstr "" -#: bp-members/classes/class-bp-members-admin.php:2016 +#: bp-members/classes/class-bp-members-admin.php:2012 msgid "You are about to resend an activation email to the following account:" msgstr "" -#: bp-members/classes/class-bp-members-admin.php:2018 +#: bp-members/classes/class-bp-members-admin.php:2014 msgid "You are about to resend an activation email to the following accounts:" msgstr "" -#: bp-members/classes/class-bp-members-admin.php:2064 +#: bp-members/classes/class-bp-members-admin.php:2082 +msgid "Display Name" +msgstr "" + +#: bp-members/classes/class-bp-members-admin.php:2087 +#: bp-members/classes/class-bp-members-list-table.php:152 +#: bp-members/classes/class-bp-members-list-table.php:316 +#: bp-members/classes/class-bp-members-ms-list-table.php:139 +#: bp-members/classes/class-bp-members-ms-list-table.php:309 +#: bp-settings/classes/class-bp-settings-component.php:123 +#: bp-settings/classes/class-bp-settings-component.php:198 +msgid "Email" +msgstr "" + +#: bp-members/classes/class-bp-members-admin.php:2110 msgid "Last notified: %s" msgstr "" -#: bp-members/classes/class-bp-members-admin.php:2068 +#: bp-members/classes/class-bp-members-admin.php:2114 msgid "(less than 24 hours ago)" msgstr "" -#: bp-members/classes/class-bp-members-admin.php:2086 +#: bp-members/classes/class-bp-members-admin.php:2132 msgid "Confirm" msgstr "" -#: bp-members/classes/class-bp-members-admin.php:2120 -#: bp-members/classes/class-bp-members-admin.php:2122 +#: bp-members/classes/class-bp-members-admin.php:2166 +#: bp-members/classes/class-bp-members-admin.php:2168 msgid "Change member type to…" msgstr "" -#: bp-members/classes/class-bp-members-admin.php:2130 +#: bp-members/classes/class-bp-members-admin.php:2176 msgid "No Member Type" msgstr "" -#: bp-members/classes/class-bp-members-admin.php:2225 +#: bp-members/classes/class-bp-members-admin.php:2271 msgid "There was an error while changing member type. Please try again." msgstr "" -#: bp-members/classes/class-bp-members-admin.php:2228 +#: bp-members/classes/class-bp-members-admin.php:2274 msgid "Member type was changed successfully." msgstr "" -#: bp-members/classes/class-bp-members-component.php:121 +#: bp-members/classes/class-bp-members-component.php:117 msgid "Search Members..." msgstr "" -#: bp-members/classes/class-bp-members-component.php:379 +#: bp-members/classes/class-bp-members-component.php:375 msgid "You" msgstr "" -#: bp-members/classes/class-bp-members-list-table.php:152 -#: bp-members/classes/class-bp-members-list-table.php:316 -#: bp-members/classes/class-bp-members-ms-list-table.php:139 -#: bp-members/classes/class-bp-members-ms-list-table.php:309 -#: bp-settings/classes/class-bp-settings-component.php:123 -#: bp-settings/classes/class-bp-settings-component.php:198 -msgid "Email" -msgstr "" - #: bp-members/classes/class-bp-members-list-table.php:153 #: bp-members/classes/class-bp-members-ms-list-table.php:140 msgid "Registered" @@ -5844,9 +5852,9 @@ msgstr "" msgid "Account Activated" msgstr "" -#: bp-members/classes/class-bp-signup.php:590 -#: bp-members/classes/class-bp-signup.php:677 -#: bp-members/classes/class-bp-signup.php:754 +#: bp-members/classes/class-bp-signup.php:614 +#: bp-members/classes/class-bp-signup.php:701 +#: bp-members/classes/class-bp-signup.php:778 msgid "the sign-up has already been activated." msgstr "" @@ -5855,7 +5863,7 @@ msgid "Your message was not sent. Please enter a subject line." msgstr "" #: bp-messages/bp-messages-actions.php:46 -#: bp-messages/bp-messages-functions.php:62 +#: bp-messages/bp-messages-functions.php:63 msgid "Your message was not sent. Please enter some content." msgstr "" @@ -5930,7 +5938,7 @@ msgstr "" #: bp-messages/bp-messages-actions.php:419 #: bp-messages/bp-messages-actions.php:465 -#: bp-templates/bp-legacy/buddypress-functions.php:1657 +#: bp-templates/bp-legacy/buddypress-functions.php:1671 msgid "Messages deleted." msgstr "" @@ -5946,35 +5954,35 @@ msgstr "" msgid "There was an error deleting messages." msgstr "" -#: bp-messages/bp-messages-functions.php:59 +#: bp-messages/bp-messages-functions.php:60 msgid "Your message was not sent. Please use a valid sender." msgstr "" -#: bp-messages/bp-messages-functions.php:95 +#: bp-messages/bp-messages-functions.php:96 msgid "Re: %s" msgstr "" -#: bp-messages/bp-messages-functions.php:104 +#: bp-messages/bp-messages-functions.php:105 msgid "Message could not be sent. Please enter a recipient." msgstr "" -#: bp-messages/bp-messages-functions.php:112 +#: bp-messages/bp-messages-functions.php:113 msgid "No Subject" msgstr "" -#: bp-messages/bp-messages-functions.php:164 +#: bp-messages/bp-messages-functions.php:165 msgid "" "Message could not be sent because you have entered an invalid username. " "Please try again." msgstr "" -#: bp-messages/bp-messages-functions.php:184 +#: bp-messages/bp-messages-functions.php:185 msgid "Message was not sent. Please try again." msgstr "" #: bp-messages/bp-messages-notifications.php:31 -#: bp-messages/classes/class-bp-messages-component.php:180 -#: bp-messages/classes/class-bp-messages-component.php:264 +#: bp-messages/classes/class-bp-messages-component.php:176 +#: bp-messages/classes/class-bp-messages-component.php:260 msgid "Inbox" msgstr "" @@ -5997,8 +6005,8 @@ msgid "Messages <span class=\"%s\">%s</span>" msgstr "" #: bp-messages/bp-messages-screens.php:209 -#: bp-messages/classes/class-bp-messages-component.php:164 -#: bp-messages/classes/class-bp-messages-component.php:263 +#: bp-messages/classes/class-bp-messages-component.php:160 +#: bp-messages/classes/class-bp-messages-component.php:259 msgid "Messages" msgstr "" @@ -6019,8 +6027,8 @@ msgid "Star" msgstr "" #: bp-messages/bp-messages-star.php:109 -#: bp-messages/classes/class-bp-messages-component.php:191 -#: bp-messages/classes/class-bp-messages-component.php:289 +#: bp-messages/classes/class-bp-messages-component.php:187 +#: bp-messages/classes/class-bp-messages-component.php:285 #: bp-templates/bp-legacy/buddypress-functions.php:334 msgid "Starred" msgstr "" @@ -6060,7 +6068,7 @@ msgstr "" msgid "Remove star" msgstr "" -#: bp-messages/bp-messages-template.php:587 +#: bp-messages/bp-messages-template.php:582 #. translators: 1: total number, 2: accessibility text: number of unread #. messages msgid "%d unread" @@ -6068,88 +6076,88 @@ msgid_plural "%d unread" msgstr[0] "" msgstr[1] "" -#: bp-messages/bp-messages-template.php:761 +#: bp-messages/bp-messages-template.php:756 msgid "Viewing 1 message" msgstr "" -#: bp-messages/bp-messages-template.php:763 +#: bp-messages/bp-messages-template.php:758 msgid "Viewing %1$s - %2$s of %3$s message" msgid_plural "Viewing %1$s - %2$s of %3$s messages" msgstr[0] "" msgstr[1] "" -#: bp-messages/bp-messages-template.php:791 +#: bp-messages/bp-messages-template.php:786 #. translators: accessibility text msgid "Search Messages" msgstr "" -#: bp-messages/bp-messages-template.php:936 +#: bp-messages/bp-messages-template.php:931 #. translators: accessibility text msgid "Select:" msgstr "" -#: bp-messages/bp-messages-template.php:939 +#: bp-messages/bp-messages-template.php:934 #: bp-xprofile/classes/class-bp-xprofile-field-type-multiselectbox.php:188 #: bp-xprofile/classes/class-bp-xprofile-field-type-selectbox.php:169 #. translators: accessibility text msgid "Select" msgstr "" -#: bp-messages/bp-messages-template.php:952 +#: bp-messages/bp-messages-template.php:947 msgid "Delete Selected" msgstr "" -#: bp-messages/bp-messages-template.php:965 -#: bp-notifications/bp-notifications-template.php:1028 +#: bp-messages/bp-messages-template.php:960 +#: bp-notifications/bp-notifications-template.php:1024 #. translators: accessibility text msgid "Select Bulk Action" msgstr "" -#: bp-messages/bp-messages-template.php:968 -#: bp-notifications/bp-notifications-template.php:1031 +#: bp-messages/bp-messages-template.php:963 +#: bp-notifications/bp-notifications-template.php:1027 msgid "Bulk Actions" msgstr "" -#: bp-messages/bp-messages-template.php:969 -#: bp-notifications/bp-notifications-template.php:1034 +#: bp-messages/bp-messages-template.php:964 +#: bp-notifications/bp-notifications-template.php:1030 msgid "Mark read" msgstr "" -#: bp-messages/bp-messages-template.php:970 -#: bp-notifications/bp-notifications-template.php:1036 +#: bp-messages/bp-messages-template.php:965 +#: bp-notifications/bp-notifications-template.php:1032 msgid "Mark unread" msgstr "" -#: bp-messages/bp-messages-template.php:981 -#: bp-notifications/bp-notifications-template.php:1040 +#: bp-messages/bp-messages-template.php:976 +#: bp-notifications/bp-notifications-template.php:1036 msgid "Apply" msgstr "" -#: bp-messages/bp-messages-template.php:1033 +#: bp-messages/bp-messages-template.php:1028 msgid "Currently Active" msgstr "" -#: bp-messages/bp-messages-template.php:1205 +#: bp-messages/bp-messages-template.php:1200 msgid "Deactivate" msgstr "" -#: bp-messages/bp-messages-template.php:1271 +#: bp-messages/bp-messages-template.php:1266 #: bp-templates/bp-legacy/buddypress/members/register.php:202 #: bp-templates/bp-legacy/buddypress/members/single/profile/edit.php:72 #: bp-templates/bp-legacy/buddypress-functions.php:294 -#: bp-xprofile/classes/class-bp-xprofile-user-admin.php:414 +#: bp-xprofile/classes/class-bp-xprofile-user-admin.php:405 msgid "Close" msgstr "" -#: bp-messages/bp-messages-template.php:1348 +#: bp-messages/bp-messages-template.php:1343 msgid "Private Message" msgstr "" -#: bp-messages/bp-messages-template.php:1563 +#: bp-messages/bp-messages-template.php:1558 msgid "%s recipients" msgstr "" -#: bp-messages/bp-messages-template.php:1942 +#: bp-messages/bp-messages-template.php:1944 msgid "Sent %s" msgstr "" @@ -6157,40 +6165,40 @@ msgstr "" msgid "Private Messages" msgstr "" -#: bp-messages/classes/class-bp-messages-component.php:123 +#: bp-messages/classes/class-bp-messages-component.php:119 msgid "Search Messages..." msgstr "" -#: bp-messages/classes/class-bp-messages-component.php:156 -#: bp-messages/classes/class-bp-messages-component.php:254 +#: bp-messages/classes/class-bp-messages-component.php:152 +#: bp-messages/classes/class-bp-messages-component.php:250 #. translators: %s: Unread message count for the current user msgid "Messages %s" msgstr "" -#: bp-messages/classes/class-bp-messages-component.php:202 -#: bp-messages/classes/class-bp-messages-component.php:299 +#: bp-messages/classes/class-bp-messages-component.php:198 +#: bp-messages/classes/class-bp-messages-component.php:295 msgid "Sent" msgstr "" -#: bp-messages/classes/class-bp-messages-component.php:212 -#: bp-messages/classes/class-bp-messages-component.php:308 +#: bp-messages/classes/class-bp-messages-component.php:208 +#: bp-messages/classes/class-bp-messages-component.php:304 msgid "Compose" msgstr "" -#: bp-messages/classes/class-bp-messages-component.php:223 +#: bp-messages/classes/class-bp-messages-component.php:219 msgid "Notices" msgstr "" -#: bp-messages/classes/class-bp-messages-component.php:259 +#: bp-messages/classes/class-bp-messages-component.php:255 #. translators: %s: Unread message count for the current user msgid "Inbox %s" msgstr "" -#: bp-messages/classes/class-bp-messages-component.php:318 +#: bp-messages/classes/class-bp-messages-component.php:314 msgid "All Member Notices" msgstr "" -#: bp-messages/classes/class-bp-messages-component.php:337 +#: bp-messages/classes/class-bp-messages-component.php:333 msgid "My Messages" msgstr "" @@ -6202,7 +6210,7 @@ msgstr "" msgid "Display Sitewide Notices posted by the site administrator" msgstr "" -#: bp-messages/classes/class-bp-messages-thread.php:814 +#: bp-messages/classes/class-bp-messages-thread.php:837 msgid "%s Recipients" msgstr "" @@ -6247,43 +6255,43 @@ msgstr "" msgid "No new notifications" msgstr "" -#: bp-notifications/bp-notifications-template.php:478 +#: bp-notifications/bp-notifications-template.php:474 msgid "Date not found" msgstr "" -#: bp-notifications/bp-notifications-template.php:562 +#: bp-notifications/bp-notifications-template.php:558 #: bp-templates/bp-legacy/buddypress/members/single/messages/messages-loop.php:142 msgid "Read" msgstr "" -#: bp-notifications/bp-notifications-template.php:654 +#: bp-notifications/bp-notifications-template.php:650 #: bp-templates/bp-legacy/buddypress/members/single/messages/messages-loop.php:144 msgid "Unread" msgstr "" -#: bp-notifications/bp-notifications-template.php:941 +#: bp-notifications/bp-notifications-template.php:937 msgid "Viewing 1 notification" msgstr "" -#: bp-notifications/bp-notifications-template.php:943 +#: bp-notifications/bp-notifications-template.php:939 msgid "Viewing %1$s - %2$s of %3$s notification" msgid_plural "Viewing %1$s - %2$s of %3$s notifications" msgstr[0] "" msgstr[1] "" -#: bp-notifications/bp-notifications-template.php:1007 +#: bp-notifications/bp-notifications-template.php:1003 msgid "Newest First" msgstr "" -#: bp-notifications/bp-notifications-template.php:1008 +#: bp-notifications/bp-notifications-template.php:1004 msgid "Oldest First" msgstr "" -#: bp-notifications/bp-notifications-template.php:1012 +#: bp-notifications/bp-notifications-template.php:1008 msgid "Go" msgstr "" -#: bp-notifications/classes/class-bp-notifications-component.php:95 +#: bp-notifications/classes/class-bp-notifications-component.php:91 msgid "Search Notifications..." msgstr "" @@ -6401,15 +6409,15 @@ msgstr "" #: bp-templates/bp-legacy/buddypress/activity/entry.php:75 #: bp-templates/bp-legacy/buddypress-functions.php:297 -#: bp-templates/bp-legacy/buddypress-functions.php:1190 -#: bp-templates/bp-legacy/buddypress-functions.php:1208 +#: bp-templates/bp-legacy/buddypress-functions.php:1200 +#: bp-templates/bp-legacy/buddypress-functions.php:1218 msgid "Favorite" msgstr "" #: bp-templates/bp-legacy/buddypress/activity/entry.php:79 #: bp-templates/bp-legacy/buddypress-functions.php:300 -#: bp-templates/bp-legacy/buddypress-functions.php:1188 -#: bp-templates/bp-legacy/buddypress-functions.php:1210 +#: bp-templates/bp-legacy/buddypress-functions.php:1198 +#: bp-templates/bp-legacy/buddypress-functions.php:1220 msgid "Remove Favorite" msgstr "" @@ -6508,7 +6516,7 @@ msgstr "" #: bp-templates/bp-legacy/buddypress/assets/_attachments/avatars/camera.php:25 #: bp-templates/bp-legacy/buddypress/members/single/settings/capabilities.php:29 -#: bp-xprofile/classes/class-bp-xprofile-field.php:1142 +#: bp-xprofile/classes/class-bp-xprofile-field.php:1151 #: bp-xprofile/classes/class-bp-xprofile-group.php:723 msgid "Save" msgstr "" @@ -6883,7 +6891,7 @@ msgstr "" #: bp-templates/bp-legacy/buddypress/groups/create.php:397 #: bp-templates/bp-legacy/buddypress/groups/single/invites-loop.php:74 -#: bp-templates/bp-legacy/buddypress-functions.php:1310 +#: bp-templates/bp-legacy/buddypress-functions.php:1320 msgid "Remove Invite" msgstr "" @@ -7200,7 +7208,7 @@ msgstr "" #: bp-templates/bp-legacy/buddypress/members/register.php:118 #: bp-templates/bp-legacy/buddypress/members/register.php:278 #: bp-templates/bp-legacy/buddypress/members/register.php:294 -#: bp-xprofile/bp-xprofile-template.php:1432 +#: bp-xprofile/bp-xprofile-template.php:1462 msgid "(required)" msgstr "" @@ -7224,13 +7232,13 @@ msgstr "" #: bp-templates/bp-legacy/buddypress/members/register.php:209 #: bp-templates/bp-legacy/buddypress/members/single/profile/edit.php:58 #: bp-templates/bp-legacy/buddypress/members/single/profile/edit.php:78 -#: bp-xprofile/classes/class-bp-xprofile-user-admin.php:393 +#: bp-xprofile/classes/class-bp-xprofile-user-admin.php:384 msgid "This field can be seen by: %s" msgstr "" #: bp-templates/bp-legacy/buddypress/members/register.php:197 #: bp-templates/bp-legacy/buddypress/members/single/profile/edit.php:67 -#: bp-xprofile/classes/class-bp-xprofile-user-admin.php:409 +#: bp-xprofile/classes/class-bp-xprofile-user-admin.php:400 msgid "Who can see this field?" msgstr "" @@ -7602,7 +7610,7 @@ msgid "Profile visibility settings" msgstr "" #: bp-templates/bp-legacy/buddypress/members/single/settings/profile.php:33 -#: bp-xprofile/classes/class-bp-xprofile-field.php:1419 +#: bp-xprofile/classes/class-bp-xprofile-field.php:1428 msgid "Visibility" msgstr "" @@ -7639,7 +7647,7 @@ msgid "Show all comments for this thread" msgstr "" #: bp-templates/bp-legacy/buddypress-functions.php:303 -msgid "Show all %d comments" +msgid "Show all comments (%d)" msgstr "" #: bp-templates/bp-legacy/buddypress-functions.php:304 @@ -7648,71 +7656,71 @@ msgid "" "be lost." msgstr "" -#: bp-templates/bp-legacy/buddypress-functions.php:950 +#: bp-templates/bp-legacy/buddypress-functions.php:958 msgid "There was a problem posting your update. Please try again." msgstr "" -#: bp-templates/bp-legacy/buddypress-functions.php:1084 -#: bp-templates/bp-legacy/buddypress-functions.php:1122 +#: bp-templates/bp-legacy/buddypress-functions.php:1092 +#: bp-templates/bp-legacy/buddypress-functions.php:1132 msgid "There was a problem when deleting. Please try again." msgstr "" -#: bp-templates/bp-legacy/buddypress-functions.php:1314 +#: bp-templates/bp-legacy/buddypress-functions.php:1324 msgid "" "%s has previously requested to join this group. Sending an invitation will " "automatically add the member to the group." msgstr "" -#: bp-templates/bp-legacy/buddypress-functions.php:1370 +#: bp-templates/bp-legacy/buddypress-functions.php:1380 msgid " Friendship could not be requested." msgstr "" -#: bp-templates/bp-legacy/buddypress-functions.php:1382 +#: bp-templates/bp-legacy/buddypress-functions.php:1392 msgid "Friendship request could not be cancelled." msgstr "" -#: bp-templates/bp-legacy/buddypress-functions.php:1387 +#: bp-templates/bp-legacy/buddypress-functions.php:1397 msgid "Request Pending" msgstr "" -#: bp-templates/bp-legacy/buddypress-functions.php:1408 +#: bp-templates/bp-legacy/buddypress-functions.php:1418 msgid "There was a problem accepting that request. Please try again." msgstr "" -#: bp-templates/bp-legacy/buddypress-functions.php:1428 +#: bp-templates/bp-legacy/buddypress-functions.php:1438 msgid "There was a problem rejecting that request. Please try again." msgstr "" -#: bp-templates/bp-legacy/buddypress-functions.php:1459 +#: bp-templates/bp-legacy/buddypress-functions.php:1469 msgid "Error joining group" msgstr "" -#: bp-templates/bp-legacy/buddypress-functions.php:1472 #: bp-templates/bp-legacy/buddypress-functions.php:1482 +#: bp-templates/bp-legacy/buddypress-functions.php:1492 msgid "Error requesting membership" msgstr "" -#: bp-templates/bp-legacy/buddypress-functions.php:1493 +#: bp-templates/bp-legacy/buddypress-functions.php:1503 msgid "Error leaving group" msgstr "" -#: bp-templates/bp-legacy/buddypress-functions.php:1517 +#: bp-templates/bp-legacy/buddypress-functions.php:1527 msgid "There was a problem closing the notice." msgstr "" -#: bp-templates/bp-legacy/buddypress-functions.php:1580 +#: bp-templates/bp-legacy/buddypress-functions.php:1594 msgid "There was a problem sending that reply. Please try again." msgstr "" -#: bp-templates/bp-legacy/buddypress-functions.php:1599 +#: bp-templates/bp-legacy/buddypress-functions.php:1613 msgid "There was a problem marking messages as unread." msgstr "" -#: bp-templates/bp-legacy/buddypress-functions.php:1625 +#: bp-templates/bp-legacy/buddypress-functions.php:1639 msgid "There was a problem marking messages as read." msgstr "" -#: bp-templates/bp-legacy/buddypress-functions.php:1651 +#: bp-templates/bp-legacy/buddypress-functions.php:1665 msgid "There was a problem deleting messages." msgstr "" @@ -7741,78 +7749,70 @@ msgstr "" msgid "%s's profile was updated" msgstr "" -#: bp-xprofile/bp-xprofile-admin.php:97 +#: bp-xprofile/bp-xprofile-admin.php:93 #: bp-xprofile/classes/class-bp-xprofile-group.php:721 msgid "Add New Field Group" msgstr "" -#: bp-xprofile/bp-xprofile-admin.php:129 bp-xprofile/bp-xprofile-admin.php:570 +#: bp-xprofile/bp-xprofile-admin.php:125 bp-xprofile/bp-xprofile-admin.php:588 msgid "(Primary)" msgstr "" -#: bp-xprofile/bp-xprofile-admin.php:151 -#: bp-xprofile/classes/class-bp-xprofile-field.php:1140 +#: bp-xprofile/bp-xprofile-admin.php:147 +#: bp-xprofile/classes/class-bp-xprofile-field.php:1149 msgid "Add New Field" msgstr "" -#: bp-xprofile/bp-xprofile-admin.php:190 +#: bp-xprofile/bp-xprofile-admin.php:186 #. translators: accessibility text msgid "Fields for \"%s\" Group" msgstr "" -#: bp-xprofile/bp-xprofile-admin.php:216 +#: bp-xprofile/bp-xprofile-admin.php:212 msgid "There are no fields in this group." msgstr "" -#: bp-xprofile/bp-xprofile-admin.php:224 +#: bp-xprofile/bp-xprofile-admin.php:220 msgid "* Fields in this group appear on the signup page." msgstr "" -#: bp-xprofile/bp-xprofile-admin.php:232 -msgid "You have no groups." -msgstr "" - -#: bp-xprofile/bp-xprofile-admin.php:233 -msgid "Add New Group" -msgstr "" - -#: bp-xprofile/bp-xprofile-admin.php:275 +#: bp-xprofile/bp-xprofile-admin.php:271 msgid "There was an error saving the group. Please try again." msgstr "" -#: bp-xprofile/bp-xprofile-admin.php:280 +#: bp-xprofile/bp-xprofile-admin.php:276 msgid "The group was saved successfully." msgstr "" -#: bp-xprofile/bp-xprofile-admin.php:390 +#: bp-xprofile/bp-xprofile-admin.php:386 msgid "There was an error saving the field. Please try again." msgstr "" -#: bp-xprofile/bp-xprofile-admin.php:393 +#: bp-xprofile/bp-xprofile-admin.php:389 msgid "The field was saved successfully." msgstr "" -#: bp-xprofile/bp-xprofile-admin.php:481 +#: bp-xprofile/bp-xprofile-admin.php:477 msgid "field" msgstr "" -#: bp-xprofile/bp-xprofile-admin.php:481 +#: bp-xprofile/bp-xprofile-admin.php:477 msgid "option" msgstr "" -#: bp-xprofile/bp-xprofile-admin.php:485 +#: bp-xprofile/bp-xprofile-admin.php:481 msgid "There was an error deleting the %s. Please try again." msgstr "" -#: bp-xprofile/bp-xprofile-admin.php:488 +#: bp-xprofile/bp-xprofile-admin.php:484 msgid "The %s was deleted successfully!" msgstr "" -#: bp-xprofile/bp-xprofile-admin.php:572 +#: bp-xprofile/bp-xprofile-admin.php:590 msgid "(Sign-up)" msgstr "" -#: bp-xprofile/bp-xprofile-screens.php:179 +#: bp-xprofile/bp-xprofile-screens.php:168 msgid "Changes saved." msgstr "" @@ -7824,15 +7824,15 @@ msgstr "" msgid "This member's profile settings have been saved." msgstr "" -#: bp-xprofile/bp-xprofile-template.php:1124 +#: bp-xprofile/bp-xprofile-template.php:1140 msgid "Profile not recently updated." msgstr "" -#: bp-xprofile/bp-xprofile-template.php:1150 +#: bp-xprofile/bp-xprofile-template.php:1166 msgid "Profile updated %s" msgstr "" -#: bp-xprofile/bp-xprofile-template.php:1375 +#: bp-xprofile/bp-xprofile-template.php:1403 #. translators: accessibility text msgid "Select visibility" msgstr "" @@ -8028,115 +8028,115 @@ msgstr "" msgid "Add Another Option" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-field.php:753 -#: bp-xprofile/classes/class-bp-xprofile-field.php:1390 +#: bp-xprofile/classes/class-bp-xprofile-field.php:759 +#: bp-xprofile/classes/class-bp-xprofile-field.php:1399 msgid "Users with no member type" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-field.php:756 +#: bp-xprofile/classes/class-bp-xprofile-field.php:762 msgid "(Member types: %s)" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-field.php:758 +#: bp-xprofile/classes/class-bp-xprofile-field.php:764 msgid "(Unavailable to all members)" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-field.php:1050 +#: bp-xprofile/classes/class-bp-xprofile-field.php:1059 msgid "Profile fields must have a name." msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-field.php:1056 +#: bp-xprofile/classes/class-bp-xprofile-field.php:1065 msgid "Profile field requirement is missing." msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-field.php:1062 +#: bp-xprofile/classes/class-bp-xprofile-field.php:1071 msgid "Profile field type is missing." msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-field.php:1068 +#: bp-xprofile/classes/class-bp-xprofile-field.php:1077 msgid "The profile field type %s is not registered." msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-field.php:1083 +#: bp-xprofile/classes/class-bp-xprofile-field.php:1092 msgid "These field options are invalid." msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-field.php:1094 -#: bp-xprofile/classes/class-bp-xprofile-field.php:1100 +#: bp-xprofile/classes/class-bp-xprofile-field.php:1103 +#: bp-xprofile/classes/class-bp-xprofile-field.php:1109 msgid "%s require at least one option." msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-field.php:1156 +#: bp-xprofile/classes/class-bp-xprofile-field.php:1165 msgid "Edit Field" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-field.php:1272 +#: bp-xprofile/classes/class-bp-xprofile-field.php:1281 #: bp-xprofile/classes/class-bp-xprofile-group.php:792 msgid "Submit" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-field.php:1342 +#: bp-xprofile/classes/class-bp-xprofile-field.php:1351 #: bp-xprofile/classes/class-bp-xprofile-group.php:759 #. translators: accessibility text msgid "Add description" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-field.php:1373 +#: bp-xprofile/classes/class-bp-xprofile-field.php:1382 msgid "Member Types" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-field.php:1375 +#: bp-xprofile/classes/class-bp-xprofile-field.php:1384 msgid "This field should be available to:" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-field.php:1395 +#: bp-xprofile/classes/class-bp-xprofile-field.php:1404 msgid "Unavailable to all members." msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-field.php:1439 +#: bp-xprofile/classes/class-bp-xprofile-field.php:1448 msgid "Allow members to override" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-field.php:1443 +#: bp-xprofile/classes/class-bp-xprofile-field.php:1452 msgid "Enforce field visibility" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-field.php:1468 +#: bp-xprofile/classes/class-bp-xprofile-field.php:1477 msgid "Requirement" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-field.php:1471 +#: bp-xprofile/classes/class-bp-xprofile-field.php:1480 msgid "Not Required" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-field.php:1472 +#: bp-xprofile/classes/class-bp-xprofile-field.php:1481 msgid "Required" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-field.php:1491 +#: bp-xprofile/classes/class-bp-xprofile-field.php:1500 msgid "Autolink" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-field.php:1493 +#: bp-xprofile/classes/class-bp-xprofile-field.php:1502 msgid "" "On user profiles, link this field to a search of the Members directory, " "using the field value as a search term." msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-field.php:1498 +#: bp-xprofile/classes/class-bp-xprofile-field.php:1507 #. translators: accessibility text msgid "Autolink status for this field" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-field.php:1501 +#: bp-xprofile/classes/class-bp-xprofile-field.php:1510 msgid "Enabled" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-field.php:1502 +#: bp-xprofile/classes/class-bp-xprofile-field.php:1511 msgid "Disabled" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-field.php:1526 +#: bp-xprofile/classes/class-bp-xprofile-field.php:1535 msgid "Type" msgstr "" @@ -8156,10 +8156,18 @@ msgstr "" msgid "Field Group Description" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-user-admin.php:484 +#: bp-xprofile/classes/class-bp-xprofile-user-admin.php:475 msgid "Delete Profile Photo" msgstr "" +#: class-buddypress.php:151 class-buddypress.php:158 +msgid "Cheatin’ huh?" +msgstr "" + +#: class-buddypress.php:707 +msgid "BuddyPress Default" +msgstr "" + #. Author URI of the plugin/theme msgid "https://buddypress.org/" msgstr "" @@ -8175,47 +8183,47 @@ msgstr "" msgid "The BuddyPress Community" msgstr "" -#: bp-activity/bp-activity-admin.php:36 +#: bp-activity/bp-activity-admin.php:32 msgctxt "Admin Dashbord SWA page title" msgid "Activity" msgstr "" -#: bp-activity/bp-activity-admin.php:37 +#: bp-activity/bp-activity-admin.php:33 msgctxt "Admin Dashbord SWA menu" msgid "Activity" msgstr "" -#: bp-activity/bp-activity-admin.php:251 +#: bp-activity/bp-activity-admin.php:248 msgctxt "activity admin edit screen" msgid "Status" msgstr "" -#: bp-activity/bp-activity-admin.php:252 +#: bp-activity/bp-activity-admin.php:249 msgctxt "activity admin edit screen" msgid "Primary Item/Secondary Item" msgstr "" -#: bp-activity/bp-activity-admin.php:253 +#: bp-activity/bp-activity-admin.php:250 msgctxt "activity admin edit screen" msgid "Link" msgstr "" -#: bp-activity/bp-activity-admin.php:254 +#: bp-activity/bp-activity-admin.php:251 msgctxt "activity admin edit screen" msgid "Type" msgstr "" -#: bp-activity/bp-activity-admin.php:255 +#: bp-activity/bp-activity-admin.php:252 msgctxt "activity admin edit screen" msgid "Author ID" msgstr "" -#: bp-activity/bp-activity-admin.php:275 +#: bp-activity/bp-activity-admin.php:272 msgctxt "Activity items per page (screen options)" msgid "Activity" msgstr "" -#: bp-activity/bp-activity-admin.php:1016 +#: bp-activity/bp-activity-admin.php:1013 msgctxt "Admin SWA page" msgid "Activity" msgstr "" @@ -8235,93 +8243,93 @@ msgctxt "Post Type generic comments activity front filter" msgid "Item comments" msgstr "" -#: bp-activity/bp-activity-functions.php:1535 +#: bp-activity/bp-activity-functions.php:1592 msgctxt "Activity Custom Post Type post action" msgid "%1$s wrote a new <a href=\"%2$s\">item</a>, on the site %3$s" msgstr "" -#: bp-activity/bp-activity-functions.php:1541 +#: bp-activity/bp-activity-functions.php:1598 msgctxt "Activity Custom Post Type post action" msgid "%1$s wrote a new <a href=\"%2$s\">item</a>" msgstr "" -#: bp-activity/bp-activity-functions.php:1586 +#: bp-activity/bp-activity-functions.php:1643 msgctxt "Activity Custom Post Type comment action" msgid "%1$s commented on the <a href=\"%2$s\">item</a>, on the site %3$s" msgstr "" -#: bp-activity/bp-activity-functions.php:1592 +#: bp-activity/bp-activity-functions.php:1649 msgctxt "Activity Custom Post Type post comment action" msgid "%1$s commented on the <a href=\"%2$s\">item</a>" msgstr "" -#: bp-activity/classes/class-bp-activity-component.php:174 +#: bp-activity/classes/class-bp-activity-component.php:170 msgctxt "Profile activity screen nav" msgid "Activity" msgstr "" -#: bp-activity/classes/class-bp-activity-component.php:184 +#: bp-activity/classes/class-bp-activity-component.php:180 msgctxt "Profile activity screen sub nav" msgid "Personal" msgstr "" -#: bp-activity/classes/class-bp-activity-component.php:195 +#: bp-activity/classes/class-bp-activity-component.php:191 msgctxt "Profile activity screen sub nav" msgid "Mentions" msgstr "" -#: bp-activity/classes/class-bp-activity-component.php:208 +#: bp-activity/classes/class-bp-activity-component.php:204 msgctxt "Profile activity screen sub nav" msgid "Favorites" msgstr "" -#: bp-activity/classes/class-bp-activity-component.php:221 +#: bp-activity/classes/class-bp-activity-component.php:217 msgctxt "Profile activity screen sub nav" msgid "Friends" msgstr "" -#: bp-activity/classes/class-bp-activity-component.php:234 +#: bp-activity/classes/class-bp-activity-component.php:230 msgctxt "Profile activity screen sub nav" msgid "Groups" msgstr "" -#: bp-activity/classes/class-bp-activity-component.php:272 +#: bp-activity/classes/class-bp-activity-component.php:268 #. translators: %s: Unread mention count for the current user msgctxt "Toolbar Mention logged in user" msgid "Mentions %s" msgstr "" -#: bp-activity/classes/class-bp-activity-component.php:276 +#: bp-activity/classes/class-bp-activity-component.php:272 msgctxt "Toolbar Mention logged in user" msgid "Mentions" msgstr "" -#: bp-activity/classes/class-bp-activity-component.php:284 +#: bp-activity/classes/class-bp-activity-component.php:280 msgctxt "My Account Activity sub nav" msgid "Activity" msgstr "" -#: bp-activity/classes/class-bp-activity-component.php:292 +#: bp-activity/classes/class-bp-activity-component.php:288 msgctxt "My Account Activity sub nav" msgid "Personal" msgstr "" -#: bp-activity/classes/class-bp-activity-component.php:313 +#: bp-activity/classes/class-bp-activity-component.php:309 msgctxt "My Account Activity sub nav" msgid "Favorites" msgstr "" -#: bp-activity/classes/class-bp-activity-component.php:324 +#: bp-activity/classes/class-bp-activity-component.php:320 msgctxt "My Account Activity sub nav" msgid "Friends" msgstr "" -#: bp-activity/classes/class-bp-activity-component.php:335 +#: bp-activity/classes/class-bp-activity-component.php:331 msgctxt "My Account Activity sub nav" msgid "Groups" msgstr "" -#: bp-activity/classes/class-bp-activity-component.php:358 +#: bp-activity/classes/class-bp-activity-component.php:354 msgctxt "Page and <title>" msgid "My Activity" msgstr "" @@ -8346,12 +8354,12 @@ msgctxt "Admin SWA column header" msgid "In Response To" msgstr "" -#: bp-activity/classes/class-bp-activity-template.php:292 +#: bp-activity/classes/class-bp-activity-template.php:291 msgctxt "Activity pagination previous text" msgid "←" msgstr "" -#: bp-activity/classes/class-bp-activity-template.php:293 +#: bp-activity/classes/class-bp-activity-template.php:292 msgctxt "Activity pagination next text" msgid "→" msgstr "" @@ -8428,33 +8436,33 @@ msgctxt "buddypress tools intro" msgid "Use the %s to repair these relationships." msgstr "" -#: bp-core/bp-core-customizer-email.php:33 bp-core/bp-core-filters.php:1119 +#: bp-core/bp-core-customizer-email.php:33 bp-core/bp-core-filters.php:1134 msgctxt "screen heading" msgid "BuddyPress Emails" msgstr "" -#: bp-core/classes/class-bp-admin.php:347 -#: bp-core/classes/class-bp-admin.php:348 +#: bp-core/classes/class-bp-admin.php:343 +#: bp-core/classes/class-bp-admin.php:344 msgctxt "screen heading" msgid "Emails" msgstr "" -#: bp-core/bp-core-customizer-email.php:145 +#: bp-core/bp-core-customizer-email.php:138 msgctxt "email" msgid "Header" msgstr "" -#: bp-core/bp-core-customizer-email.php:150 +#: bp-core/bp-core-customizer-email.php:143 msgctxt "email" msgid "Body" msgstr "" -#: bp-core/bp-core-customizer-email.php:155 +#: bp-core/bp-core-customizer-email.php:148 msgctxt "email" msgid "Footer" msgstr "" -#: bp-core/bp-core-functions.php:3216 +#: bp-core/bp-core-functions.php:3263 #. translators: email disclaimer, e.g. "© 2016 Site Name". msgctxt "email" msgid "© %s %s" @@ -8480,192 +8488,192 @@ msgctxt "customizer menu section title" msgid "BuddyPress (logged-out)" msgstr "" -#: bp-core/bp-core-functions.php:707 +#: bp-core/bp-core-functions.php:737 msgctxt "Page title for the Activity directory." msgid "Activity" msgstr "" -#: bp-core/bp-core-functions.php:708 +#: bp-core/bp-core-functions.php:738 msgctxt "Page title for the Groups directory." msgid "Groups" msgstr "" -#: bp-core/bp-core-functions.php:709 +#: bp-core/bp-core-functions.php:739 msgctxt "Page title for the Sites directory." msgid "Sites" msgstr "" -#: bp-core/bp-core-functions.php:710 +#: bp-core/bp-core-functions.php:740 msgctxt "Page title for the Members directory." msgid "Members" msgstr "" -#: bp-core/bp-core-functions.php:711 +#: bp-core/bp-core-functions.php:741 msgctxt "Page title for the user activation screen." msgid "Activate" msgstr "" -#: bp-core/bp-core-functions.php:712 +#: bp-core/bp-core-functions.php:742 msgctxt "Page title for the user registration screen." msgid "Register" msgstr "" -#: bp-core/bp-core-functions.php:1248 +#: bp-core/bp-core-functions.php:1278 msgctxt "Separator in time since" msgid "," msgstr "" -#: bp-core/bp-core-functions.php:2843 +#: bp-core/bp-core-functions.php:2873 msgctxt "email post type label" msgid "Add New" msgstr "" -#: bp-core/bp-core-functions.php:2844 +#: bp-core/bp-core-functions.php:2874 msgctxt "email post type label" msgid "Add a New Email" msgstr "" -#: bp-core/bp-core-functions.php:2845 +#: bp-core/bp-core-functions.php:2875 msgctxt "email post type label" msgid "All Emails" msgstr "" -#: bp-core/bp-core-functions.php:2846 +#: bp-core/bp-core-functions.php:2876 msgctxt "email post type label" msgid "Edit Email" msgstr "" -#: bp-core/bp-core-functions.php:2847 +#: bp-core/bp-core-functions.php:2877 msgctxt "email post type label" msgid "Filter email list" msgstr "" -#: bp-core/bp-core-functions.php:2848 +#: bp-core/bp-core-functions.php:2878 msgctxt "email post type label" msgid "Email list" msgstr "" -#: bp-core/bp-core-functions.php:2849 +#: bp-core/bp-core-functions.php:2879 msgctxt "email post type label" msgid "Email list navigation" msgstr "" -#: bp-core/bp-core-functions.php:2851 +#: bp-core/bp-core-functions.php:2881 msgctxt "email post type label" msgid "BuddyPress Emails" msgstr "" -#: bp-core/bp-core-functions.php:2852 +#: bp-core/bp-core-functions.php:2882 msgctxt "email post type label" msgid "New Email" msgstr "" -#: bp-core/bp-core-functions.php:2853 +#: bp-core/bp-core-functions.php:2883 msgctxt "email post type label" msgid "No emails found" msgstr "" -#: bp-core/bp-core-functions.php:2854 +#: bp-core/bp-core-functions.php:2884 msgctxt "email post type label" msgid "No emails found in Trash" msgstr "" -#: bp-core/bp-core-functions.php:2855 +#: bp-core/bp-core-functions.php:2885 msgctxt "email post type label" msgid "Search Emails" msgstr "" -#: bp-core/bp-core-functions.php:2857 +#: bp-core/bp-core-functions.php:2887 msgctxt "email post type label" msgid "Uploaded to this email" msgstr "" -#: bp-core/bp-core-functions.php:2858 +#: bp-core/bp-core-functions.php:2888 msgctxt "email post type label" msgid "View Email" msgstr "" -#: bp-core/bp-core-functions.php:2850 +#: bp-core/bp-core-functions.php:2880 msgctxt "email post type name" msgid "Emails" msgstr "" -#: bp-core/bp-core-functions.php:2856 +#: bp-core/bp-core-functions.php:2886 msgctxt "email post type singular name" msgid "Email" msgstr "" -#: bp-core/bp-core-functions.php:2934 +#: bp-core/bp-core-functions.php:2964 msgctxt "email type taxonomy label" msgid "New Email Situation" msgstr "" -#: bp-core/bp-core-functions.php:2935 +#: bp-core/bp-core-functions.php:2965 msgctxt "email type taxonomy label" msgid "All Email Situations" msgstr "" -#: bp-core/bp-core-functions.php:2936 +#: bp-core/bp-core-functions.php:2966 msgctxt "email type taxonomy label" msgid "Edit Email Situations" msgstr "" -#: bp-core/bp-core-functions.php:2937 +#: bp-core/bp-core-functions.php:2967 msgctxt "email type taxonomy label" msgid "Email list" msgstr "" -#: bp-core/bp-core-functions.php:2938 +#: bp-core/bp-core-functions.php:2968 msgctxt "email type taxonomy label" msgid "Email list navigation" msgstr "" -#: bp-core/bp-core-functions.php:2939 +#: bp-core/bp-core-functions.php:2969 msgctxt "email type taxonomy label" msgid "Situations" msgstr "" -#: bp-core/bp-core-functions.php:2941 +#: bp-core/bp-core-functions.php:2971 msgctxt "email type taxonomy label" msgid "New email situation name" msgstr "" -#: bp-core/bp-core-functions.php:2942 +#: bp-core/bp-core-functions.php:2972 msgctxt "email type taxonomy label" msgid "No email situations found." msgstr "" -#: bp-core/bp-core-functions.php:2943 +#: bp-core/bp-core-functions.php:2973 msgctxt "email type taxonomy label" msgid "No email situations" msgstr "" -#: bp-core/bp-core-functions.php:2944 +#: bp-core/bp-core-functions.php:2974 msgctxt "email type taxonomy label" msgid "Popular Email Situation" msgstr "" -#: bp-core/bp-core-functions.php:2945 +#: bp-core/bp-core-functions.php:2975 msgctxt "email type taxonomy label" msgid "Search Emails" msgstr "" -#: bp-core/bp-core-functions.php:2947 +#: bp-core/bp-core-functions.php:2977 msgctxt "email type taxonomy label" msgid "Update Email Situation" msgstr "" -#: bp-core/bp-core-functions.php:2948 +#: bp-core/bp-core-functions.php:2978 msgctxt "email type taxonomy label" msgid "View Email Situation" msgstr "" -#: bp-core/bp-core-functions.php:2940 +#: bp-core/bp-core-functions.php:2970 msgctxt "email type taxonomy name" msgid "Situation" msgstr "" -#: bp-core/bp-core-functions.php:2946 +#: bp-core/bp-core-functions.php:2976 msgctxt "email type taxonomy singular name" msgid "Email" msgstr "" @@ -8740,68 +8748,68 @@ msgctxt "component directory title" msgid "Members" msgstr "" -#: bp-core/bp-core-template.php:3824 +#: bp-core/bp-core-template.php:3838 msgctxt "recipient salutation" msgid "Hi %s," msgstr "" -#: bp-core/classes/class-bp-admin.php:357 -#: bp-core/classes/class-bp-admin.php:358 +#: bp-core/classes/class-bp-admin.php:353 +#: bp-core/classes/class-bp-admin.php:354 msgctxt "email menu label" msgid "Customize" msgstr "" -#: bp-core/classes/class-bp-admin.php:402 +#: bp-core/classes/class-bp-admin.php:403 msgctxt "BuddyPress setting tab" msgid "Profile Settings" msgstr "" -#: bp-core/classes/class-bp-admin.php:736 +#: bp-core/classes/class-bp-admin.php:722 msgctxt "About screen, website links" msgid "Learn more:" msgstr "" -#: bp-core/classes/class-bp-admin.php:736 +#: bp-core/classes/class-bp-admin.php:722 msgctxt "About screen, link to project blog" msgid "News" msgstr "" -#: bp-core/classes/class-bp-admin.php:736 +#: bp-core/classes/class-bp-admin.php:722 msgctxt "About screen, link to support site" msgid "Support" msgstr "" -#: bp-core/classes/class-bp-admin.php:736 +#: bp-core/classes/class-bp-admin.php:722 msgctxt "About screen, link to documentation" msgid "Documentation" msgstr "" -#: bp-core/classes/class-bp-admin.php:736 +#: bp-core/classes/class-bp-admin.php:722 msgctxt "About screen, link to development blog" msgid "Development Blog" msgstr "" -#: bp-core/classes/class-bp-admin.php:738 +#: bp-core/classes/class-bp-admin.php:724 msgctxt "official Twitter accounts:" msgid "Twitter:" msgstr "" -#: bp-core/classes/class-bp-admin.php:738 +#: bp-core/classes/class-bp-admin.php:724 msgctxt "@buddypress twitter account name" msgid "BuddyPress" msgstr "" -#: bp-core/classes/class-bp-admin.php:738 +#: bp-core/classes/class-bp-admin.php:724 msgctxt "@bptrac twitter account name" msgid "Trac" msgstr "" -#: bp-core/classes/class-bp-admin.php:738 +#: bp-core/classes/class-bp-admin.php:724 msgctxt "@buddypressdev twitter account name" msgid "Development" msgstr "" -#: bp-core/classes/class-bp-admin.php:990 +#: bp-core/classes/class-bp-admin.php:986 msgctxt "Email post type" msgid "Situations" msgstr "" @@ -8831,7 +8839,7 @@ msgctxt "Title of the login widget" msgid "(BuddyPress) Log In" msgstr "" -#: bp-core/classes/class-bp-core.php:310 +#: bp-core/classes/class-bp-core.php:308 msgctxt "email post type description" msgid "BuddyPress emails" msgstr "" @@ -8876,98 +8884,105 @@ msgctxt "Friends screen page <title>" msgid "Friend Connections" msgstr "" -#: bp-friends/classes/class-bp-friends-component.php:168 +#: bp-friends/classes/class-bp-friends-component.php:164 msgctxt "Friends screen sub nav" msgid "Friendships" msgstr "" -#: bp-friends/classes/class-bp-friends-component.php:178 +#: bp-friends/classes/class-bp-friends-component.php:174 msgctxt "Friends screen sub nav" msgid "Requests" msgstr "" -#: bp-friends/classes/class-bp-friends-component.php:213 +#: bp-friends/classes/class-bp-friends-component.php:209 #. translators: %s: Pending friend request count for the current user msgctxt "My Account Friends menu" msgid "Friends %s" msgstr "" -#: bp-friends/classes/class-bp-friends-component.php:222 +#: bp-friends/classes/class-bp-friends-component.php:218 msgctxt "My Account Friends menu" msgid "Friends" msgstr "" -#: bp-friends/classes/class-bp-friends-component.php:218 +#: bp-friends/classes/class-bp-friends-component.php:214 #. translators: %s: Pending friend request count for the current user msgctxt "My Account Friends menu sub nav" msgid "Pending Requests %s" msgstr "" -#: bp-friends/classes/class-bp-friends-component.php:223 +#: bp-friends/classes/class-bp-friends-component.php:219 msgctxt "My Account Friends menu sub nav" msgid "No Pending Requests" msgstr "" -#: bp-friends/classes/class-bp-friends-component.php:238 +#: bp-friends/classes/class-bp-friends-component.php:234 msgctxt "My Account Friends menu sub nav" msgid "Friendships" msgstr "" -#: bp-groups/bp-groups-admin.php:36 +#: bp-groups/bp-groups-admin.php:32 msgctxt "Admin Groups page title" msgid "Groups" msgstr "" -#: bp-groups/bp-groups-admin.php:37 +#: bp-groups/bp-groups-admin.php:33 msgctxt "Admin Groups menu" msgid "Groups" msgstr "" -#: bp-groups/bp-groups-admin.php:132 +#: bp-groups/bp-groups-admin.php:128 msgctxt "group admin edit screen" msgid "Save" msgstr "" -#: bp-groups/bp-groups-admin.php:133 +#: bp-groups/bp-groups-admin.php:129 msgctxt "group admin edit screen" msgid "Settings" msgstr "" -#: bp-groups/bp-groups-admin.php:134 +#: bp-groups/bp-groups-admin.php:130 msgctxt "group admin edit screen" msgid "Add New Members" msgstr "" -#: bp-groups/bp-groups-admin.php:135 +#: bp-groups/bp-groups-admin.php:131 msgctxt "group admin edit screen" msgid "Manage Members" msgstr "" -#: bp-groups/bp-groups-admin.php:142 +#: bp-groups/bp-groups-admin.php:138 msgctxt "groups admin edit screen" msgid "Group Type" msgstr "" -#: bp-groups/bp-groups-admin.php:167 +#: bp-groups/bp-groups-admin.php:163 msgctxt "Groups per page (screen options)" msgid "Groups" msgstr "" -#: bp-groups/bp-groups-admin.php:912 +#: bp-groups/bp-groups-admin.php:908 msgctxt "Group member user_id in group admin" msgid "ID" msgstr "" -#: bp-groups/bp-groups-admin.php:913 +#: bp-groups/bp-groups-admin.php:909 msgctxt "Group member name in group admin" msgid "Name" msgstr "" -#: bp-groups/bp-groups-admin.php:914 +#: bp-groups/bp-groups-admin.php:910 msgctxt "Group member role in group admin" msgid "Group Role" msgstr "" +#: bp-groups/bp-groups-admin.php:1161 +msgctxt "Group members pagination in group admin" +msgid "Viewing %1$s - %2$s of %3$s member" +msgid_plural "Viewing %1$s - %2$s of %3$s members" +msgstr[0] "" +msgstr[1] "" + #: bp-groups/bp-groups-adminbar.php:67 msgctxt "Group WP Admin Bar manage links" msgid "Edit Group %s" @@ -8988,37 +9003,37 @@ msgctxt "Group update email text" msgid "* Description changed from \"%s\" to \"%s\"." msgstr "" -#: bp-groups/bp-groups-screens.php:1479 +#: bp-groups/bp-groups-screens.php:1469 msgctxt "Group settings on notification settings page" msgid "Groups" msgstr "" -#: bp-groups/bp-groups-screens.php:1488 +#: bp-groups/bp-groups-screens.php:1478 msgctxt "group settings on notification settings page" msgid "A member invites you to join a group" msgstr "" -#: bp-groups/bp-groups-screens.php:1500 +#: bp-groups/bp-groups-screens.php:1490 msgctxt "group settings on notification settings page" msgid "Group information is updated" msgstr "" -#: bp-groups/bp-groups-screens.php:1512 +#: bp-groups/bp-groups-screens.php:1502 msgctxt "group settings on notification settings page" msgid "You are promoted to a group administrator or moderator" msgstr "" -#: bp-groups/bp-groups-screens.php:1524 +#: bp-groups/bp-groups-screens.php:1514 msgctxt "group settings on notification settings page" msgid "A member requests to join a private group for which you are an admin" msgstr "" -#: bp-groups/bp-groups-screens.php:1536 +#: bp-groups/bp-groups-screens.php:1526 msgctxt "group settings on notification settings page" msgid "Your request to join a group has been approved or denied" msgstr "" -#: bp-groups/bp-groups-template.php:101 +#: bp-groups/bp-groups-template.php:94 msgctxt "group type URL base" msgid "type" msgstr "" @@ -9028,115 +9043,115 @@ msgctxt "Group screen page <title>" msgid "User Groups" msgstr "" -#: bp-groups/classes/class-bp-groups-component.php:193 +#: bp-groups/classes/class-bp-groups-component.php:189 msgctxt "Component directory search" msgid "Search Groups..." msgstr "" -#: bp-groups/classes/class-bp-groups-component.php:313 +#: bp-groups/classes/class-bp-groups-component.php:331 msgctxt "Group screen nav" msgid "Details" msgstr "" -#: bp-groups/classes/class-bp-groups-component.php:317 +#: bp-groups/classes/class-bp-groups-component.php:335 msgctxt "Group screen nav" msgid "Settings" msgstr "" -#: bp-groups/classes/class-bp-groups-component.php:326 +#: bp-groups/classes/class-bp-groups-component.php:344 msgctxt "Group screen nav" msgid "Photo" msgstr "" -#: bp-groups/classes/class-bp-groups-component.php:333 +#: bp-groups/classes/class-bp-groups-component.php:351 msgctxt "Group screen nav" msgid "Cover Image" msgstr "" -#: bp-groups/classes/class-bp-groups-component.php:341 +#: bp-groups/classes/class-bp-groups-component.php:359 msgctxt "Group screen nav" msgid "Invites" msgstr "" -#: bp-groups/classes/class-bp-groups-component.php:549 +#: bp-groups/classes/class-bp-groups-component.php:567 msgctxt "Group screen nav" msgid "Request Membership" msgstr "" -#: bp-groups/classes/class-bp-groups-component.php:455 +#: bp-groups/classes/class-bp-groups-component.php:473 #. translators: %s: Group count for the current user msgctxt "Group screen nav with counter" msgid "Groups %s" msgstr "" -#: bp-groups/classes/class-bp-groups-component.php:463 +#: bp-groups/classes/class-bp-groups-component.php:481 msgctxt "Group screen nav without counter" msgid "Groups" msgstr "" -#: bp-groups/classes/class-bp-groups-component.php:529 +#: bp-groups/classes/class-bp-groups-component.php:547 msgctxt "Group screen navigation title" msgid "Home" msgstr "" -#: bp-groups/classes/class-bp-groups-component.php:561 +#: bp-groups/classes/class-bp-groups-component.php:579 msgctxt "My Group screen nav" msgid "Forum" msgstr "" -#: bp-groups/classes/class-bp-groups-component.php:578 +#: bp-groups/classes/class-bp-groups-component.php:596 msgctxt "My Group screen nav" msgid "Activity" msgstr "" -#: bp-groups/classes/class-bp-groups-component.php:594 +#: bp-groups/classes/class-bp-groups-component.php:612 msgctxt "My Group screen nav" msgid "Members %s" msgstr "" -#: bp-groups/classes/class-bp-groups-component.php:608 +#: bp-groups/classes/class-bp-groups-component.php:626 msgctxt "My Group screen nav" msgid "Send Invites" msgstr "" -#: bp-groups/classes/class-bp-groups-component.php:623 +#: bp-groups/classes/class-bp-groups-component.php:641 msgctxt "My Group screen nav" msgid "Manage" msgstr "" -#: bp-groups/classes/class-bp-groups-component.php:736 +#: bp-groups/classes/class-bp-groups-component.php:754 msgctxt "My Account Groups" msgid "Groups" msgstr "" -#: bp-groups/classes/class-bp-groups-component.php:737 +#: bp-groups/classes/class-bp-groups-component.php:755 msgctxt "My Account Groups sub nav" msgid "No Pending Invites" msgstr "" -#: bp-groups/classes/class-bp-groups-component.php:748 +#: bp-groups/classes/class-bp-groups-component.php:766 #. translators: %s: Group invitation count for the current user msgctxt "My Account Groups sub nav" msgid "Pending Invites %s" msgstr "" -#: bp-groups/classes/class-bp-groups-component.php:765 +#: bp-groups/classes/class-bp-groups-component.php:783 msgctxt "My Account Groups sub nav" msgid "Memberships" msgstr "" -#: bp-groups/classes/class-bp-groups-component.php:784 +#: bp-groups/classes/class-bp-groups-component.php:802 msgctxt "My Account Groups sub nav" msgid "Create a Group" msgstr "" -#: bp-groups/classes/class-bp-groups-component.php:742 +#: bp-groups/classes/class-bp-groups-component.php:760 #. translators: %s: Group invitation count for the current user msgctxt "My Account Groups nav" msgid "Groups %s" msgstr "" -#: bp-groups/classes/class-bp-groups-component.php:805 +#: bp-groups/classes/class-bp-groups-component.php:823 msgctxt "My Groups page <title>" msgid "Memberships" msgstr "" @@ -9158,7 +9173,7 @@ msgstr "" #: bp-groups/classes/class-bp-groups-list-table.php:398 msgctxt "Groups admin Members column header" -msgid "# Members" +msgid "Members" msgstr "" #: bp-groups/classes/class-bp-groups-list-table.php:399 @@ -9171,12 +9186,12 @@ msgctxt "Label for the WP groups table group type column" msgid "Group Type" msgstr "" -#: bp-groups/classes/class-bp-groups-template.php:294 +#: bp-groups/classes/class-bp-groups-template.php:295 msgctxt "Group pagination previous text" msgid "←" msgstr "" -#: bp-groups/classes/class-bp-groups-template.php:295 +#: bp-groups/classes/class-bp-groups-template.php:296 msgctxt "Group pagination next text" msgid "→" msgstr "" @@ -9186,17 +9201,17 @@ msgctxt "Group creation page" msgid "Groups" msgstr "" -#: bp-members/bp-members-template.php:130 +#: bp-members/bp-members-template.php:126 msgctxt "member type URL base" msgid "type" msgstr "" -#: bp-members/bp-members-template.php:1047 +#: bp-members/bp-members-template.php:1043 msgctxt "member latest update in member directory" msgid "- "%s"" msgstr "" -#: bp-members/bp-members-template.php:1210 +#: bp-members/bp-members-template.php:1206 msgctxt "Records the timestamp that the user registered into the activity stream" msgid "registered %s" msgstr "" @@ -9227,13 +9242,13 @@ msgid "Member Type" msgstr "" #: bp-members/classes/class-bp-members-admin.php:950 -#: bp-members/classes/class-bp-members-admin.php:1928 +#: bp-members/classes/class-bp-members-admin.php:1924 msgctxt "user" msgid "Add New" msgstr "" #: bp-members/classes/class-bp-members-admin.php:954 -#: bp-members/classes/class-bp-members-admin.php:1932 +#: bp-members/classes/class-bp-members-admin.php:1928 msgctxt "user" msgid "Add Existing" msgstr "" @@ -9243,69 +9258,69 @@ msgctxt "signup users" msgid "Pending %s" msgstr "" -#: bp-members/classes/class-bp-members-admin.php:1490 +#: bp-members/classes/class-bp-members-admin.php:1486 msgctxt "Pending Accounts per page (screen options)" msgid "Pending Accounts" msgstr "" -#: bp-members/classes/class-bp-members-admin.php:1686 +#: bp-members/classes/class-bp-members-admin.php:1682 msgctxt "signup resent" msgid "%s activation email successfully sent! " msgid_plural "%s activation emails successfully sent! " msgstr[0] "" msgstr[1] "" -#: bp-members/classes/class-bp-members-admin.php:1720 +#: bp-members/classes/class-bp-members-admin.php:1716 msgctxt "signup resent" msgid "%s account successfully activated! " msgid_plural "%s accounts successfully activated! " msgstr[0] "" msgstr[1] "" -#: bp-members/classes/class-bp-members-admin.php:1697 +#: bp-members/classes/class-bp-members-admin.php:1693 msgctxt "signup notsent" msgid "%s activation email was not sent." msgid_plural "%s activation emails were not sent." msgstr[0] "" msgstr[1] "" -#: bp-members/classes/class-bp-members-admin.php:1731 +#: bp-members/classes/class-bp-members-admin.php:1727 msgctxt "signup notsent" msgid "%s account was not activated." msgid_plural "%s accounts were not activated." msgstr[0] "" msgstr[1] "" -#: bp-members/classes/class-bp-members-admin.php:1754 +#: bp-members/classes/class-bp-members-admin.php:1750 msgctxt "signup deleted" msgid "%s sign-up successfully deleted!" msgid_plural "%s sign-ups successfully deleted!" msgstr[0] "" msgstr[1] "" -#: bp-members/classes/class-bp-members-admin.php:1765 +#: bp-members/classes/class-bp-members-admin.php:1761 msgctxt "signup notdeleted" msgid "%s sign-up was not deleted." msgid_plural "%s sign-ups were not deleted." msgstr[0] "" msgstr[1] "" -#: bp-members/classes/class-bp-members-admin.php:2246 +#: bp-members/classes/class-bp-members-admin.php:2292 msgctxt "Label for the WP users table member type column" msgid "Member Type" msgstr "" -#: bp-members/classes/class-bp-members-component.php:283 +#: bp-members/classes/class-bp-members-component.php:279 msgctxt "Member profile main navigation" msgid "Profile" msgstr "" -#: bp-members/classes/class-bp-members-component.php:299 +#: bp-members/classes/class-bp-members-component.php:295 msgctxt "Member profile view" msgid "View" msgstr "" -#: bp-members/classes/class-bp-members-component.php:313 +#: bp-members/classes/class-bp-members-component.php:309 msgctxt "Member Home page" msgid "Home" msgstr "" @@ -9322,37 +9337,37 @@ msgctxt "Pending signup action" msgid "Email" msgstr "" -#: bp-messages/bp-messages-template.php:940 +#: bp-messages/bp-messages-template.php:935 msgctxt "Message dropdown filter" msgid "Read" msgstr "" -#: bp-messages/bp-messages-template.php:941 +#: bp-messages/bp-messages-template.php:936 msgctxt "Message dropdown filter" msgid "Unread" msgstr "" -#: bp-messages/bp-messages-template.php:942 +#: bp-messages/bp-messages-template.php:937 msgctxt "Message dropdown filter" msgid "All" msgstr "" -#: bp-messages/bp-messages-template.php:947 +#: bp-messages/bp-messages-template.php:942 msgctxt "Message management markup" msgid "Mark as Read" msgstr "" -#: bp-messages/bp-messages-template.php:948 +#: bp-messages/bp-messages-template.php:943 msgctxt "Message management markup" msgid "Mark as Unread" msgstr "" -#: bp-messages/classes/class-bp-messages-box-template.php:216 +#: bp-messages/classes/class-bp-messages-box-template.php:215 msgctxt "Message pagination previous text" msgid "←" msgstr "" -#: bp-messages/classes/class-bp-messages-box-template.php:217 +#: bp-messages/classes/class-bp-messages-box-template.php:216 msgctxt "Message pagination next text" msgid "→" msgstr "" @@ -9362,50 +9377,50 @@ msgctxt "Page <title>" msgid "Notifications" msgstr "" -#: bp-notifications/classes/class-bp-notifications-component.php:136 +#: bp-notifications/classes/class-bp-notifications-component.php:132 #. translators: %s: Unread notification count for the current user msgctxt "Profile screen nav" msgid "Notifications %s" msgstr "" -#: bp-notifications/classes/class-bp-notifications-component.php:144 +#: bp-notifications/classes/class-bp-notifications-component.php:140 msgctxt "Profile screen nav" msgid "Notifications" msgstr "" -#: bp-notifications/classes/class-bp-notifications-component.php:160 +#: bp-notifications/classes/class-bp-notifications-component.php:156 msgctxt "Notification screen nav" msgid "Unread" msgstr "" -#: bp-notifications/classes/class-bp-notifications-component.php:171 +#: bp-notifications/classes/class-bp-notifications-component.php:167 msgctxt "Notification screen nav" msgid "Read" msgstr "" -#: bp-notifications/classes/class-bp-notifications-component.php:207 +#: bp-notifications/classes/class-bp-notifications-component.php:203 #. translators: %s: Unread notification count for the current user msgctxt "My Account Notification pending" msgid "Notifications %s" msgstr "" -#: bp-notifications/classes/class-bp-notifications-component.php:212 +#: bp-notifications/classes/class-bp-notifications-component.php:208 #. translators: %s: Unread notification count for the current user msgctxt "My Account Notification pending" msgid "Unread %s" msgstr "" -#: bp-notifications/classes/class-bp-notifications-component.php:216 +#: bp-notifications/classes/class-bp-notifications-component.php:212 msgctxt "My Account Notification" msgid "Notifications" msgstr "" -#: bp-notifications/classes/class-bp-notifications-component.php:217 +#: bp-notifications/classes/class-bp-notifications-component.php:213 msgctxt "My Account Notification sub nav" msgid "Unread" msgstr "" -#: bp-notifications/classes/class-bp-notifications-component.php:241 +#: bp-notifications/classes/class-bp-notifications-component.php:237 msgctxt "My Account Notification sub nav" msgid "Read" msgstr "" @@ -9444,22 +9459,62 @@ msgid_plural "%d members" msgstr[0] "" msgstr[1] "" -#: bp-xprofile/bp-xprofile-admin.php:32 +#: bp-xprofile/bp-xprofile-admin.php:28 msgctxt "xProfile admin page title" msgid "Profile Fields" msgstr "" -#: bp-xprofile/bp-xprofile-admin.php:32 +#: bp-xprofile/bp-xprofile-admin.php:28 msgctxt "Admin Users menu" msgid "Profile Fields" msgstr "" -#: bp-xprofile/bp-xprofile-admin.php:96 +#: bp-xprofile/bp-xprofile-admin.php:92 msgctxt "Settings page header" msgid "Profile Fields" msgstr "" -#: bp-xprofile/bp-xprofile-admin.php:667 +#: bp-xprofile/bp-xprofile-admin.php:148 +msgctxt "Edit Profile Fields Group" +msgid "Edit Group" +msgstr "" + +#: bp-xprofile/bp-xprofile-admin.php:153 +msgctxt "Delete Profile Fields Group" +msgid "Delete Group" +msgstr "" + +#: bp-xprofile/bp-xprofile-admin.php:228 +msgctxt "You have no profile fields groups." +msgid "You have no groups." +msgstr "" + +#: bp-xprofile/bp-xprofile-admin.php:229 +msgctxt "Add New Profile Fields Group" +msgid "Add New Group" +msgstr "" + +#: bp-xprofile/bp-xprofile-admin.php:318 +msgctxt "Error when deleting profile fields group" +msgid "There was an error deleting the group. Please try again." +msgstr "" + +#: bp-xprofile/bp-xprofile-admin.php:321 +msgctxt "Profile fields group was deleted successfully" +msgid "The group was deleted successfully." +msgstr "" + +#: bp-xprofile/bp-xprofile-admin.php:634 +msgctxt "Edit field link" +msgid "Edit" +msgstr "" + +#: bp-xprofile/bp-xprofile-admin.php:639 +msgctxt "Delete field link" +msgid "Delete" +msgstr "" + +#: bp-xprofile/bp-xprofile-admin.php:685 msgctxt "xprofile field type category" msgid "Other" msgstr "" @@ -9486,92 +9541,92 @@ msgctxt "Component page <title>" msgid "Extended Profiles" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-component.php:139 +#: bp-xprofile/classes/class-bp-xprofile-component.php:135 msgctxt "Visibility level setting" msgid "Everyone" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-component.php:143 +#: bp-xprofile/classes/class-bp-xprofile-component.php:139 msgctxt "Visibility level setting" msgid "Only Me" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-component.php:147 +#: bp-xprofile/classes/class-bp-xprofile-component.php:143 msgctxt "Visibility level setting" msgid "All Members" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-component.php:154 +#: bp-xprofile/classes/class-bp-xprofile-component.php:150 msgctxt "Visibility level setting" msgid "My Friends" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-component.php:210 +#: bp-xprofile/classes/class-bp-xprofile-component.php:206 msgctxt "Profile header menu" msgid "Profile" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-component.php:220 +#: bp-xprofile/classes/class-bp-xprofile-component.php:216 msgctxt "Profile header sub menu" msgid "View" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-component.php:230 +#: bp-xprofile/classes/class-bp-xprofile-component.php:226 msgctxt "Profile header sub menu" msgid "Edit" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-component.php:242 +#: bp-xprofile/classes/class-bp-xprofile-component.php:238 msgctxt "Profile header sub menu" msgid "Change Profile Photo" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-component.php:255 +#: bp-xprofile/classes/class-bp-xprofile-component.php:251 msgctxt "Profile header sub menu" msgid "Change Cover Image" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-component.php:298 +#: bp-xprofile/classes/class-bp-xprofile-component.php:294 msgctxt "Profile settings sub nav" msgid "Profile Visibility" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-component.php:327 +#: bp-xprofile/classes/class-bp-xprofile-component.php:323 msgctxt "My Account Profile" msgid "Profile" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-component.php:335 +#: bp-xprofile/classes/class-bp-xprofile-component.php:331 msgctxt "My Account Profile sub nav" msgid "View" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-component.php:344 +#: bp-xprofile/classes/class-bp-xprofile-component.php:340 msgctxt "My Account Profile sub nav" msgid "Edit" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-component.php:354 +#: bp-xprofile/classes/class-bp-xprofile-component.php:350 msgctxt "My Account Profile sub nav" msgid "Change Profile Photo" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-component.php:364 +#: bp-xprofile/classes/class-bp-xprofile-component.php:360 msgctxt "My Account Profile sub nav" msgid "Change Cover Image" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-component.php:394 +#: bp-xprofile/classes/class-bp-xprofile-component.php:390 msgctxt "Page title" msgid "My Profile" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-component.php:399 +#: bp-xprofile/classes/class-bp-xprofile-component.php:395 msgctxt "Avatar alt" msgid "Profile picture of %s" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-component.php:444 +#: bp-xprofile/classes/class-bp-xprofile-component.php:440 msgctxt "My Account Settings sub nav" msgid "Profile" msgstr "" @@ -9621,12 +9676,12 @@ msgctxt "xprofile field type" msgid "URL" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-field.php:1332 +#: bp-xprofile/classes/class-bp-xprofile-field.php:1341 msgctxt "XProfile admin edit field" msgid "Name (required)" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-field.php:1338 +#: bp-xprofile/classes/class-bp-xprofile-field.php:1347 msgctxt "XProfile admin edit field" msgid "Description" msgstr "" diff --git a/wp-content/plugins/buddypress/class-buddypress.php b/wp-content/plugins/buddypress/class-buddypress.php new file mode 100644 index 000000000..67a6900d5 --- /dev/null +++ b/wp-content/plugins/buddypress/class-buddypress.php @@ -0,0 +1,734 @@ +<?php + +// Exit if accessed directly. +defined( 'ABSPATH' ) || exit; + +/** + * Main BuddyPress Class. + * + * Tap tap tap... Is this thing on? + * + * @since 1.6.0 + */ +class BuddyPress { + + /** Magic *****************************************************************/ + + /** + * BuddyPress uses many variables, most of which can be filtered to + * customize the way that it works. To prevent unauthorized access, + * these variables are stored in a private array that is magically + * updated using PHP 5.2+ methods. This is to prevent third party + * plugins from tampering with essential information indirectly, which + * would cause issues later. + * + * @see BuddyPress::setup_globals() + * @var array + */ + private $data; + + /** Not Magic *************************************************************/ + + /** + * @var array Primary BuddyPress navigation. + */ + public $bp_nav = array(); + + /** + * @var array Secondary BuddyPress navigation to $bp_nav. + */ + public $bp_options_nav = array(); + + /** + * @var array The unfiltered URI broken down into chunks. + * @see bp_core_set_uri_globals() + */ + public $unfiltered_uri = array(); + + /** + * @var array The canonical URI stack. + * @see bp_redirect_canonical() + * @see bp_core_new_nav_item() + */ + public $canonical_stack = array(); + + /** + * @var array Additional navigation elements (supplemental). + */ + public $action_variables = array(); + + /** + * @var string Current member directory type. + */ + public $current_member_type = ''; + + /** + * @var array Required components (core, members). + */ + public $required_components = array(); + + /** + * @var array Additional active components. + */ + public $loaded_components = array(); + + /** + * @var array Active components. + */ + public $active_components = array(); + + /** + * Whether autoload is in use. + * + * @since 2.5.0 + * @var bool + */ + public $do_autoload = true; + + /** Option Overload *******************************************************/ + + /** + * @var array Optional Overloads default options retrieved from get_option(). + */ + public $options = array(); + + /** Singleton *************************************************************/ + + /** + * Main BuddyPress Instance. + * + * BuddyPress is great. + * Please load it only one time. + * For this, we thank you. + * + * Insures that only one instance of BuddyPress exists in memory at any + * one time. Also prevents needing to define globals all over the place. + * + * @since 1.7.0 + * + * @static object $instance + * @see buddypress() + * + * @return BuddyPress The one true BuddyPress. + */ + public static function instance() { + + // Store the instance locally to avoid private static replication + static $instance = null; + + // Only run these methods if they haven't been run previously + if ( null === $instance ) { + $instance = new BuddyPress; + $instance->constants(); + $instance->setup_globals(); + $instance->legacy_constants(); + $instance->includes(); + $instance->setup_actions(); + } + + // Always return the instance + return $instance; + + // The last metroid is in captivity. The galaxy is at peace. + } + + /** Magic Methods *********************************************************/ + + /** + * A dummy constructor to prevent BuddyPress from being loaded more than once. + * + * @since 1.7.0 + * @see BuddyPress::instance() + * @see buddypress() + */ + private function __construct() { /* Do nothing here */ } + + /** + * A dummy magic method to prevent BuddyPress from being cloned. + * + * @since 1.7.0 + */ + public function __clone() { _doing_it_wrong( __FUNCTION__, __( 'Cheatin’ huh?', 'buddypress' ), '1.7' ); } + + /** + * A dummy magic method to prevent BuddyPress from being unserialized. + * + * @since 1.7.0 + */ + public function __wakeup() { _doing_it_wrong( __FUNCTION__, __( 'Cheatin’ huh?', 'buddypress' ), '1.7' ); } + + /** + * Magic method for checking the existence of a certain custom field. + * + * @since 1.7.0 + * + * @param string $key Key to check the set status for. + * + * @return bool + */ + public function __isset( $key ) { return isset( $this->data[$key] ); } + + /** + * Magic method for getting BuddyPress variables. + * + * @since 1.7.0 + * + * @param string $key Key to return the value for. + * + * @return mixed + */ + public function __get( $key ) { return isset( $this->data[$key] ) ? $this->data[$key] : null; } + + /** + * Magic method for setting BuddyPress variables. + * + * @since 1.7.0 + * + * @param string $key Key to set a value for. + * @param mixed $value Value to set. + */ + public function __set( $key, $value ) { $this->data[$key] = $value; } + + /** + * Magic method for unsetting BuddyPress variables. + * + * @since 1.7.0 + * + * @param string $key Key to unset a value for. + */ + public function __unset( $key ) { if ( isset( $this->data[$key] ) ) unset( $this->data[$key] ); } + + /** + * Magic method to prevent notices and errors from invalid method calls. + * + * @since 1.7.0 + * + * @param string $name + * @param array $args + * + * @return null + */ + public function __call( $name = '', $args = array() ) { unset( $name, $args ); return null; } + + /** Private Methods *******************************************************/ + + /** + * Bootstrap constants. + * + * @since 1.6.0 + * + */ + private function constants() { + + // Place your custom code (actions/filters) in a file called + // '/plugins/bp-custom.php' and it will be loaded before anything else. + if ( file_exists( WP_PLUGIN_DIR . '/bp-custom.php' ) ) { + require( WP_PLUGIN_DIR . '/bp-custom.php' ); + } + + // Path and URL + if ( ! defined( 'BP_PLUGIN_DIR' ) ) { + define( 'BP_PLUGIN_DIR', plugin_dir_path( __FILE__ ) ); + } + + if ( ! defined( 'BP_PLUGIN_URL' ) ) { + define( 'BP_PLUGIN_URL', plugin_dir_url( __FILE__ ) ); + } + + // Only applicable to those running trunk + if ( ! defined( 'BP_SOURCE_SUBDIRECTORY' ) ) { + define( 'BP_SOURCE_SUBDIRECTORY', '' ); + } + + // Define on which blog ID BuddyPress should run + if ( ! defined( 'BP_ROOT_BLOG' ) ) { + + // Default to use current blog ID + // Fulfills non-network installs and BP_ENABLE_MULTIBLOG installs + $root_blog_id = get_current_blog_id(); + + // Multisite check + if ( is_multisite() ) { + + // Multiblog isn't enabled + if ( ! defined( 'BP_ENABLE_MULTIBLOG' ) || ( defined( 'BP_ENABLE_MULTIBLOG' ) && (int) constant( 'BP_ENABLE_MULTIBLOG' ) === 0 ) ) { + // Check to see if BP is network-activated + // We're not using is_plugin_active_for_network() b/c you need to include the + // /wp-admin/includes/plugin.php file in order to use that function. + + // get network-activated plugins + $plugins = get_site_option( 'active_sitewide_plugins'); + + // basename + $basename = basename( constant( 'BP_PLUGIN_DIR' ) ) . '/bp-loader.php'; + + // plugin is network-activated; use main site ID instead + if ( isset( $plugins[ $basename ] ) ) { + $current_site = get_current_site(); + $root_blog_id = $current_site->blog_id; + } + } + + } + + define( 'BP_ROOT_BLOG', $root_blog_id ); + } + + // The search slug has to be defined nice and early because of the way + // search requests are loaded + // + // @todo Make this better + if ( ! defined( 'BP_SEARCH_SLUG' ) ) { + define( 'BP_SEARCH_SLUG', 'search' ); + } + } + + /** + * Component global variables. + * + * @since 1.6.0 + * + */ + private function setup_globals() { + + /** Versions **********************************************************/ + + $this->version = '2.8.2'; + $this->db_version = 11105; + + /** Loading ***********************************************************/ + + /** + * Should deprecated code be loaded? + * + * @since 2.0.0 Defaults to false always + * @since 2.8.0 Defaults to true on upgrades, false for new installs. + */ + $this->load_deprecated = false; + + /** Toolbar ***********************************************************/ + + /** + * @var string The primary toolbar ID. + */ + $this->my_account_menu_id = ''; + + /** URIs **************************************************************/ + + /** + * @var int The current offset of the URI. + * @see bp_core_set_uri_globals() + */ + $this->unfiltered_uri_offset = 0; + + /** + * @var bool Are status headers already sent? + */ + $this->no_status_set = false; + + /** Components ********************************************************/ + + /** + * @var string Name of the current BuddyPress component (primary). + */ + $this->current_component = ''; + + /** + * @var string Name of the current BuddyPress item (secondary). + */ + $this->current_item = ''; + + /** + * @var string Name of the current BuddyPress action (tertiary). + */ + $this->current_action = ''; + + /** + * @var bool Displaying custom 2nd level navigation menu (I.E a group). + */ + $this->is_single_item = false; + + /** Root **************************************************************/ + + /** + * Filters the BuddyPress Root blog ID. + * + * @since 1.5.0 + * + * @const constant BP_ROOT_BLOG BuddyPress Root blog ID. + */ + $this->root_blog_id = (int) apply_filters( 'bp_get_root_blog_id', BP_ROOT_BLOG ); + + /** Paths**************************************************************/ + + // BuddyPress root directory + $this->file = constant( 'BP_PLUGIN_DIR' ) . 'bp-loader.php'; + $this->basename = basename( constant( 'BP_PLUGIN_DIR' ) ) . '/bp-loader.php'; + $this->plugin_dir = trailingslashit( constant( 'BP_PLUGIN_DIR' ) . constant( 'BP_SOURCE_SUBDIRECTORY' ) ); + $this->plugin_url = trailingslashit( constant( 'BP_PLUGIN_URL' ) . constant( 'BP_SOURCE_SUBDIRECTORY' ) ); + + // Languages + $this->lang_dir = $this->plugin_dir . 'bp-languages'; + + // Templates (theme compatibility) + $this->themes_dir = $this->plugin_dir . 'bp-templates'; + $this->themes_url = $this->plugin_url . 'bp-templates'; + + // Themes (for bp-default) + $this->old_themes_dir = $this->plugin_dir . 'bp-themes'; + $this->old_themes_url = $this->plugin_url . 'bp-themes'; + + /** Theme Compat ******************************************************/ + + $this->theme_compat = new stdClass(); // Base theme compatibility class + $this->filters = new stdClass(); // Used when adding/removing filters + + /** Users *************************************************************/ + + $this->current_user = new stdClass(); + $this->displayed_user = new stdClass(); + + /** Post types and taxonomies *****************************************/ + $this->email_post_type = apply_filters( 'bp_email_post_type', 'bp-email' ); + $this->email_taxonomy_type = apply_filters( 'bp_email_tax_type', 'bp-email-type' ); + } + + /** + * Legacy BuddyPress constants. + * + * Try to avoid using these. Their values have been moved into variables + * in the instance, and have matching functions to get/set their values. + * + * @since 1.7.0 + */ + private function legacy_constants() { + + // Define the BuddyPress version + if ( ! defined( 'BP_VERSION' ) ) { + define( 'BP_VERSION', $this->version ); + } + + // Define the database version + if ( ! defined( 'BP_DB_VERSION' ) ) { + define( 'BP_DB_VERSION', $this->db_version ); + } + + // Define if deprecated functions should be ignored + if ( ! defined( 'BP_IGNORE_DEPRECATED' ) ) { + define( 'BP_IGNORE_DEPRECATED', true ); + } + } + + /** + * Include required files. + * + * @since 1.6.0 + * + */ + private function includes() { + spl_autoload_register( array( $this, 'autoload' ) ); + + // Load the WP abstraction file so BuddyPress can run on all WordPress setups. + require( $this->plugin_dir . 'bp-core/bp-core-wpabstraction.php' ); + + // Setup the versions (after we include multisite abstraction above) + $this->versions(); + + /** Update/Install ****************************************************/ + + // Theme compatibility + require( $this->plugin_dir . 'bp-core/bp-core-template-loader.php' ); + require( $this->plugin_dir . 'bp-core/bp-core-theme-compatibility.php' ); + + // Require all of the BuddyPress core libraries + require( $this->plugin_dir . 'bp-core/bp-core-dependency.php' ); + require( $this->plugin_dir . 'bp-core/bp-core-actions.php' ); + require( $this->plugin_dir . 'bp-core/bp-core-caps.php' ); + require( $this->plugin_dir . 'bp-core/bp-core-cache.php' ); + require( $this->plugin_dir . 'bp-core/bp-core-cssjs.php' ); + require( $this->plugin_dir . 'bp-core/bp-core-update.php' ); + require( $this->plugin_dir . 'bp-core/bp-core-options.php' ); + require( $this->plugin_dir . 'bp-core/bp-core-taxonomy.php' ); + require( $this->plugin_dir . 'bp-core/bp-core-filters.php' ); + require( $this->plugin_dir . 'bp-core/bp-core-attachments.php' ); + require( $this->plugin_dir . 'bp-core/bp-core-avatars.php' ); + require( $this->plugin_dir . 'bp-core/bp-core-widgets.php' ); + require( $this->plugin_dir . 'bp-core/bp-core-template.php' ); + require( $this->plugin_dir . 'bp-core/bp-core-adminbar.php' ); + require( $this->plugin_dir . 'bp-core/bp-core-buddybar.php' ); + require( $this->plugin_dir . 'bp-core/bp-core-catchuri.php' ); + require( $this->plugin_dir . 'bp-core/bp-core-functions.php' ); + require( $this->plugin_dir . 'bp-core/bp-core-moderation.php' ); + require( $this->plugin_dir . 'bp-core/bp-core-loader.php' ); + require( $this->plugin_dir . 'bp-core/bp-core-customizer-email.php' ); + + // Maybe load deprecated functionality (this double negative is proof positive!) + if ( ! bp_get_option( '_bp_ignore_deprecated_code', ! $this->load_deprecated ) ) { + require( $this->plugin_dir . 'bp-core/deprecated/1.2.php' ); + require( $this->plugin_dir . 'bp-core/deprecated/1.5.php' ); + require( $this->plugin_dir . 'bp-core/deprecated/1.6.php' ); + require( $this->plugin_dir . 'bp-core/deprecated/1.7.php' ); + require( $this->plugin_dir . 'bp-core/deprecated/1.9.php' ); + require( $this->plugin_dir . 'bp-core/deprecated/2.0.php' ); + require( $this->plugin_dir . 'bp-core/deprecated/2.1.php' ); + require( $this->plugin_dir . 'bp-core/deprecated/2.2.php' ); + require( $this->plugin_dir . 'bp-core/deprecated/2.3.php' ); + require( $this->plugin_dir . 'bp-core/deprecated/2.4.php' ); + require( $this->plugin_dir . 'bp-core/deprecated/2.5.php' ); + require( $this->plugin_dir . 'bp-core/deprecated/2.6.php' ); + require( $this->plugin_dir . 'bp-core/deprecated/2.7.php' ); + } + } + + /** + * Autoload classes. + * + * @since 2.5.0 + * + * @param string $class + */ + public function autoload( $class ) { + $class_parts = explode( '_', strtolower( $class ) ); + + if ( 'bp' !== $class_parts[0] ) { + return; + } + + $components = array( + 'activity', + 'blogs', + 'core', + 'friends', + 'groups', + 'members', + 'messages', + 'notifications', + 'settings', + 'xprofile', + ); + + // These classes don't have a name that matches their component. + $irregular_map = array( + 'BP_Akismet' => 'activity', + + 'BP_Admin' => 'core', + 'BP_Attachment_Avatar' => 'core', + 'BP_Attachment_Cover_Image' => 'core', + 'BP_Attachment' => 'core', + 'BP_Button' => 'core', + 'BP_Component' => 'core', + 'BP_Customizer_Control_Range' => 'core', + 'BP_Date_Query' => 'core', + 'BP_Email_Delivery' => 'core', + 'BP_Email_Recipient' => 'core', + 'BP_Email' => 'core', + 'BP_Embed' => 'core', + 'BP_Media_Extractor' => 'core', + 'BP_Members_Suggestions' => 'core', + 'BP_PHPMailer' => 'core', + 'BP_Recursive_Query' => 'core', + 'BP_Suggestions' => 'core', + 'BP_Theme_Compat' => 'core', + 'BP_User_Query' => 'core', + 'BP_Walker_Category_Checklist' => 'core', + 'BP_Walker_Nav_Menu_Checklist' => 'core', + 'BP_Walker_Nav_Menu' => 'core', + + 'BP_Core_Friends_Widget' => 'friends', + + 'BP_Group_Extension' => 'groups', + 'BP_Group_Member_Query' => 'groups', + + 'BP_Core_Members_Template' => 'members', + 'BP_Core_Members_Widget' => 'members', + 'BP_Core_Recently_Active_Widget' => 'members', + 'BP_Core_Whos_Online_Widget' => 'members', + 'BP_Registration_Theme_Compat' => 'members', + 'BP_Signup' => 'members', + ); + + $component = null; + + // First check to see if the class is one without a properly namespaced name. + if ( isset( $irregular_map[ $class ] ) ) { + $component = $irregular_map[ $class ]; + + // Next chunk is usually the component name. + } elseif ( in_array( $class_parts[1], $components, true ) ) { + $component = $class_parts[1]; + } + + if ( ! $component ) { + return; + } + + // Sanitize class name. + $class = strtolower( str_replace( '_', '-', $class ) ); + + $path = dirname( __FILE__ ) . "/bp-{$component}/classes/class-{$class}.php"; + + // Sanity check. + if ( ! file_exists( $path ) ) { + return; + } + + /* + * Sanity check 2 - Check if component is active before loading class. + * Skip if PHPUnit is running, or BuddyPress is installing for the first time. + */ + if ( + ! in_array( $component, array( 'core', 'members' ), true ) && + ! bp_is_active( $component ) && + ! function_exists( 'tests_add_filter' ) + ) { + return; + } + + require $path; + } + + /** + * Set up the default hooks and actions. + * + * @since 1.6.0 + * + */ + private function setup_actions() { + + // Add actions to plugin activation and deactivation hooks + add_action( 'activate_' . $this->basename, 'bp_activation' ); + add_action( 'deactivate_' . $this->basename, 'bp_deactivation' ); + + // If BuddyPress is being deactivated, do not add any actions + if ( bp_is_deactivation( $this->basename ) ) { + return; + } + + // Array of BuddyPress core actions + $actions = array( + 'setup_theme', // Setup the default theme compat + 'setup_current_user', // Setup currently logged in user + 'register_post_types', // Register post types + 'register_post_statuses', // Register post statuses + 'register_taxonomies', // Register taxonomies + 'register_views', // Register the views + 'register_theme_directory', // Register the theme directory + 'register_theme_packages', // Register bundled theme packages (bp-themes) + 'load_textdomain', // Load textdomain + 'add_rewrite_tags', // Add rewrite tags + 'generate_rewrite_rules' // Generate rewrite rules + ); + + // Add the actions + foreach( $actions as $class_action ) { + if ( method_exists( $this, $class_action ) ) { + add_action( 'bp_' . $class_action, array( $this, $class_action ), 5 ); + } + } + + /** + * Fires after the setup of all BuddyPress actions. + * + * Includes bbp-core-hooks.php. + * + * @since 1.7.0 + * + * @param BuddyPress $this. Current BuddyPress instance. Passed by reference. + */ + do_action_ref_array( 'bp_after_setup_actions', array( &$this ) ); + } + + /** + * Private method to align the active and database versions. + * + * @since 1.7.0 + */ + private function versions() { + + // Get the possible DB versions (boy is this gross) + $versions = array(); + $versions['1.6-single'] = get_blog_option( $this->root_blog_id, '_bp_db_version' ); + + // 1.6-single exists, so trust it + if ( !empty( $versions['1.6-single'] ) ) { + $this->db_version_raw = (int) $versions['1.6-single']; + + // If no 1.6-single exists, use the max of the others + } else { + $versions['1.2'] = get_site_option( 'bp-core-db-version' ); + $versions['1.5-multi'] = get_site_option( 'bp-db-version' ); + $versions['1.6-multi'] = get_site_option( '_bp_db_version' ); + $versions['1.5-single'] = get_blog_option( $this->root_blog_id, 'bp-db-version' ); + + // Remove empty array items + $versions = array_filter( $versions ); + $this->db_version_raw = (int) ( !empty( $versions ) ) ? (int) max( $versions ) : 0; + } + } + + /** Public Methods ********************************************************/ + + /** + * Set up BuddyPress's legacy theme directory. + * + * Starting with version 1.2, and ending with version 1.8, BuddyPress + * registered a custom theme directory - bp-themes - which contained + * the bp-default theme. Since BuddyPress 1.9, bp-themes is no longer + * registered (and bp-default no longer offered) on new installations. + * Sites using bp-default (or a child theme of bp-default) will + * continue to have bp-themes registered as before. + * + * @since 1.5.0 + * + * @todo Move bp-default to wordpress.org/extend/themes and remove this. + */ + public function register_theme_directory() { + if ( ! bp_do_register_theme_directory() ) { + return; + } + + register_theme_directory( $this->old_themes_dir ); + } + + /** + * Register bundled theme packages. + * + * Note that since we currently have complete control over bp-themes and + * the bp-legacy folders, it's fine to hardcode these here. If at a + * later date we need to automate this, an API will need to be built. + * + * @since 1.7.0 + */ + public function register_theme_packages() { + + // Register the default theme compatibility package + bp_register_theme_package( array( + 'id' => 'legacy', + 'name' => __( 'BuddyPress Default', 'buddypress' ), + 'version' => bp_get_version(), + 'dir' => trailingslashit( $this->themes_dir . '/bp-legacy' ), + 'url' => trailingslashit( $this->themes_url . '/bp-legacy' ) + ) ); + + // Register the basic theme stack. This is really dope. + bp_register_template_stack( 'get_stylesheet_directory', 10 ); + bp_register_template_stack( 'get_template_directory', 12 ); + bp_register_template_stack( 'bp_get_theme_compat_dir', 14 ); + } + + /** + * Set up the default BuddyPress theme compatibility location. + * + * @since 1.7.0 + */ + public function setup_theme() { + + // Bail if something already has this under control + if ( ! empty( $this->theme_compat->theme ) ) { + return; + } + + // Setup the theme package to use for compatibility + bp_setup_theme_compat( bp_get_theme_package_id() ); + } +} diff --git a/wp-content/plugins/buddypress/composer.json b/wp-content/plugins/buddypress/composer.json index ff4087a33..54670f7e7 100644 --- a/wp-content/plugins/buddypress/composer.json +++ b/wp-content/plugins/buddypress/composer.json @@ -29,6 +29,6 @@ }, "require": { "composer/installers": "~1.0", - "php": ">=5.2.4" + "php": ">=5.3.0" } } diff --git a/wp-content/plugins/buddypress/humans.txt b/wp-content/plugins/buddypress/humans.txt index 748a882bd..5af7e71a4 100644 --- a/wp-content/plugins/buddypress/humans.txt +++ b/wp-content/plugins/buddypress/humans.txt @@ -89,9 +89,19 @@ Favorite Food: Saltimbocca alla Romana Name: shanebp Title: Community Support +Name: Stephen Edgar +Title: Core Developer +Twitter: netweb +Favorite Food: Tacos + +Name: Slava Abakumov +Title: Core Developer +Twitter: slaFFik +Favorite Food: Cakes + /* THANKS */ modemlooper, cnorris23, karmatosed, photomatt /* META */ -Updated: 2016/10/06 +Updated: 2017/02/01 See: http://humanstxt.org/ diff --git a/wp-content/plugins/buddypress/readme.txt b/wp-content/plugins/buddypress/readme.txt index dd2a69b7e..a89c85d9f 100644 --- a/wp-content/plugins/buddypress/readme.txt +++ b/wp-content/plugins/buddypress/readme.txt @@ -1,9 +1,9 @@ === BuddyPress === Contributors: johnjamesjacoby, DJPaul, boonebgorges, r-a-y, imath, mercime, tw2113, dcavins, hnla Tags: social networking, activity, profiles, messaging, friends, groups, forums, notifications, settings, social, community, networks, networking -Requires at least: 4.2 -Tested up to: 4.7 -Stable tag: 2.7.3 +Requires at least: 4.3 +Tested up to: 4.7.2 +Stable tag: 2.8.2 License: GPLv2 or later License URI: https://www.gnu.org/licenses/gpl-2.0.html @@ -116,34 +116,28 @@ Please consider helping translate BuddyPress at our <a href="https://translate.w == Upgrade Notice == -= 2.7.3 = -See: https://codex.buddypress.org/releases/version-2-7-3/ += 2.8.2 = +See: https://codex.buddypress.org/releases/version-2-8-2/ -= 2.7.2 = -See: https://codex.buddypress.org/releases/version-2-7-2/ - -= 2.7.1 = -See: https://codex.buddypress.org/releases/version-2-7-1/ += 2.8.1 = +See: https://codex.buddypress.org/releases/version-2-8-1/ -= 2.7.0 = -See: https://codex.buddypress.org/releases/version-2-7-0/ - -= 2.6.2 = -See: https://codex.buddypress.org/releases/version-2-6-2/ +== Changelog == -= 2.6.1.1 = -See: https://codex.buddypress.org/releases/version-2-6-1-1/ += 2.8.2 = +See: https://codex.buddypress.org/releases/version-2-8-2/ -= 2.6.1 = -See: https://codex.buddypress.org/releases/version-2-6-1/ += 2.8.1 = +See: https://codex.buddypress.org/releases/version-2-8-1/ -= 2.6.0 = -See: https://codex.buddypress.org/releases/version-2-6-0/ += 2.8.0 = +See: https://codex.buddypress.org/releases/version-2-8-0/ -== Changelog == += 2.7.4 = +See: https://codex.buddypress.org/releases/version-2-7-4/ -= 2.7.3 = -See: https://codex.buddypress.org/releases/version-2-7-3/ += 2.7.4 = +See: https://codex.buddypress.org/releases/version-2-7-4/ = 2.7.2 = See: https://codex.buddypress.org/releases/version-2-7-2/ -- GitLab