diff --git a/wp-content/plugins/buddypress/bp-activity/admin/js/admin.min.js b/wp-content/plugins/buddypress/bp-activity/admin/js/admin.min.js index 8fb7630bb6417ed02bcc0c55aa7976b83365f029..445e0f9c8ef31ea6908559f5787e904e86667be6 100644 --- a/wp-content/plugins/buddypress/bp-activity/admin/js/admin.min.js +++ b/wp-content/plugins/buddypress/bp-activity/admin/js/admin.min.js @@ -1,2 +1 @@ -/*! buddypress - v2.5.3 - 2016-05-24 5:17:45 PM UTC - https://wordpress.org/plugins/buddypress/ */ !function(a){var b={init:function(){a(document).on("click",".row-actions a.reply",b.open),a(document).on("click","#bp-activities-container a.cancel",b.close),a(document).on("click","#bp-activities-container a.save",b.send),a(document).on("keyup","#bp-activities:visible",function(a){27===a.which&&b.close()})},open:function(){var b=a("#bp-activities-container").hide();return a(this).parents("tr").after(b),b.fadeIn("300"),a("#bp-activities").focus(),!1},close:function(){return a("#bp-activities-container").fadeOut("200",function(){a("#bp-activities").val("").blur(),a("#bp-replysubmit .error").html("").hide(),a("#bp-replysubmit .waiting").hide()}),!1},send:function(){a("#bp-replysubmit .error").hide(),a("#bp-replysubmit .waiting").show();var c={};return c["_ajax_nonce-bp-activity-admin-reply"]=a('#bp-activities-container input[name="_ajax_nonce-bp-activity-admin-reply"]').val(),c.action="bp-activity-admin-reply",c.content=a("#bp-activities").val(),c.parent_id=a("#bp-activities-container").prev().data("parent_id"),c.root_id=a("#bp-activities-container").prev().data("root_id"),a.ajax({data:c,type:"POST",url:ajaxurl,error:function(a){b.error(a)},success:function(a){b.show(a)}}),!1},error:function(b){var c=b.statusText;a("#bp-replysubmit .waiting").hide(),b.responseText&&(c=b.responseText.replace(/<.[^<>]*?>/g,"")),c&&a("#bp-replysubmit .error").html(c).show()},show:function(c){var d,e,f;return"string"==typeof c?(b.error({responseText:c}),!1):(f=wpAjax.parseAjaxResponse(c),f.errors?(b.error({responseText:wpAjax.broken}),!1):(f=f.responses[0],void a("#bp-activities-container").fadeOut("200",function(){a("#bp-activities").val("").blur(),a("#bp-replysubmit .error").html("").hide(),a("#bp-replysubmit .waiting").hide(),a("#bp-activities-container").before(f.data),e=a("#activity-"+f.id),d=e.closest(".widefat").css("backgroundColor"),e.animate({backgroundColor:"#CEB"},300).animate({backgroundColor:d},300)})))}};a(document).ready(function(){b.init(),a("#bp_activity_action h3, #bp_activity_content h3").unbind("click"),"undefined"!=typeof postboxes&&postboxes.add_postbox_toggles(bp_activity_admin_vars.page)})}(jQuery); \ No newline at end of file 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 472c2db11f14e66863c9ea9366eeb6a98bb05815..7df351dadc4fd6ca1afc911e6a7d09659ba3873b 100644 --- a/wp-content/plugins/buddypress/bp-activity/bp-activity-actions.php +++ b/wp-content/plugins/buddypress/bp-activity/bp-activity-actions.php @@ -17,7 +17,6 @@ defined( 'ABSPATH' ) || exit; * * @since 1.2.0 * - * @uses do_action() To call 'bp_register_activity_actions' hook. */ function bp_register_activity_actions() { @@ -35,18 +34,6 @@ add_action( 'bp_init', 'bp_register_activity_actions', 8 ); * * @since 1.2.0 * - * @uses bp_is_activity_component() - * @uses bp_is_current_action() - * @uses bp_action_variable() - * @uses bp_activity_get_specific() - * @uses bp_is_active() - * @uses bp_core_get_user_domain() - * @uses groups_get_group() - * @uses bp_get_group_permalink() - * @uses apply_filters_ref_array() To call the 'bp_activity_permalink_redirect_url' hook. - * @uses bp_core_redirect() - * @uses bp_get_root_domain() - * * @return bool False on failure. */ function bp_activity_action_permalink_router() { @@ -122,17 +109,6 @@ add_action( 'bp_actions', 'bp_activity_action_permalink_router' ); * * @since 1.1.0 * - * @uses bp_is_activity_component() - * @uses bp_is_current_action() - * @uses bp_action_variable() - * @uses check_admin_referer() - * @uses bp_activity_user_can_delete() - * @uses do_action() Calls 'bp_activity_before_action_delete_activity' hook to allow actions to be taken before the activity is deleted. - * @uses bp_activity_delete() - * @uses bp_core_add_message() - * @uses do_action() Calls 'bp_activity_action_delete_activity' hook to allow actions to be taken after the activity is deleted. - * @uses bp_core_redirect() - * * @param int $activity_id Activity id to be deleted. Defaults to 0. * @return bool False on failure. */ @@ -267,20 +243,6 @@ add_action( 'bp_actions', 'bp_activity_action_spam_activity' ); * * @since 1.2.0 * - * @uses is_user_logged_in() - * @uses bp_is_activity_component() - * @uses bp_is_current_action() - * @uses check_admin_referer() - * @uses apply_filters() To call 'bp_activity_post_update_content' hook. - * @uses apply_filters() To call 'bp_activity_post_update_object' hook. - * @uses apply_filters() To call 'bp_activity_post_update_item_id' hook. - * @uses bp_core_add_message() - * @uses bp_core_redirect() - * @uses bp_activity_post_update() - * @uses groups_post_update() - * @uses bp_core_redirect() - * @uses apply_filters() To call 'bp_activity_custom_update' hook. - * * @return bool False on failure. */ function bp_activity_action_post_update() { @@ -371,17 +333,6 @@ add_action( 'bp_actions', 'bp_activity_action_post_update' ); * * @since 1.2.0 * - * @uses is_user_logged_in() - * @uses bp_is_activity_component() - * @uses bp_is_current_action() - * @uses check_admin_referer() - * @uses apply_filters() To call 'bp_activity_post_comment_activity_id' hook. - * @uses apply_filters() To call 'bp_activity_post_comment_content' hook. - * @uses bp_core_add_message() - * @uses bp_core_redirect() - * @uses bp_activity_new_comment() - * @uses wp_get_referer() - * * @return bool False on failure. */ function bp_activity_action_post_comment() { @@ -435,16 +386,6 @@ add_action( 'bp_actions', 'bp_activity_action_post_comment' ); * * @since 1.2.0 * - * @uses is_user_logged_in() - * @uses bp_is_activity_component() - * @uses bp_is_current_action() - * @uses check_admin_referer() - * @uses bp_activity_add_user_favorite() - * @uses bp_action_variable() - * @uses bp_core_add_message() - * @uses bp_core_redirect() - * @uses wp_get_referer() - * * @return bool False on failure. */ function bp_activity_action_mark_favorite() { @@ -469,16 +410,6 @@ add_action( 'bp_actions', 'bp_activity_action_mark_favorite' ); * * @since 1.2.0 * - * @uses is_user_logged_in() - * @uses bp_is_activity_component() - * @uses bp_is_current_action() - * @uses check_admin_referer() - * @uses bp_activity_remove_user_favorite() - * @uses bp_action_variable() - * @uses bp_core_add_message() - * @uses bp_core_redirect() - * @uses wp_get_referer() - * * @return bool False on failure. */ function bp_activity_action_remove_favorite() { @@ -503,11 +434,6 @@ add_action( 'bp_actions', 'bp_activity_action_remove_favorite' ); * * @since 1.0.0 * - * @uses bp_is_activity_component() - * @uses bp_is_current_action() - * @uses bp_is_user() - * @uses status_header() - * * @return bool False on failure. */ function bp_activity_action_sitewide_feed() { @@ -535,10 +461,6 @@ add_action( 'bp_actions', 'bp_activity_action_sitewide_feed' ); * * @since 1.0.0 * - * @uses bp_is_user_activity() - * @uses bp_is_current_action() - * @uses status_header() - * * @return bool False on failure. */ function bp_activity_action_personal_feed() { @@ -565,13 +487,6 @@ add_action( 'bp_actions', 'bp_activity_action_personal_feed' ); * * @since 1.0.0 * - * @uses bp_is_active() - * @uses bp_is_user_activity() - * @uses bp_is_current_action() - * @uses bp_get_friends_slug() - * @uses bp_is_action_variable() - * @uses status_header() - * * @return bool False on failure. */ function bp_activity_action_friends_feed() { @@ -598,13 +513,6 @@ add_action( 'bp_actions', 'bp_activity_action_friends_feed' ); * * @since 1.2.0 * - * @uses bp_is_active() - * @uses bp_is_user_activity() - * @uses bp_is_current_action() - * @uses bp_get_groups_slug() - * @uses bp_is_action_variable() - * @uses status_header() - * * @return bool False on failure. */ function bp_activity_action_my_groups_feed() { @@ -639,11 +547,6 @@ add_action( 'bp_actions', 'bp_activity_action_my_groups_feed' ); * * @since 1.2.0 * - * @uses bp_is_user_activity() - * @uses bp_is_current_action() - * @uses bp_is_action_variable() - * @uses status_header() - * * @return bool False on failure. */ function bp_activity_action_mentions_feed() { @@ -676,11 +579,6 @@ add_action( 'bp_actions', 'bp_activity_action_mentions_feed' ); * * @since 1.2.0 * - * @uses bp_is_user_activity() - * @uses bp_is_current_action() - * @uses bp_is_action_variable() - * @uses status_header() - * * @return bool False on failure. */ function bp_activity_action_favorites_feed() { 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 d91777979c35f93274a41e05c7ccac10804ef8e1..e2a4049acf69aba25158aaf02a03e8b1a94e3ac7 100644 --- a/wp-content/plugins/buddypress/bp-activity/bp-activity-admin.php +++ b/wp-content/plugins/buddypress/bp-activity/bp-activity-admin.php @@ -16,7 +16,9 @@ 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' ); -require dirname( __FILE__ ) . '/classes/class-bp-activity-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'] ) @@ -299,6 +301,7 @@ function bp_activity_admin_load() { // Add accessible hidden heading and text for Activity screen pagination. if ( bp_get_major_wp_version() >= 4.4 ) { get_current_screen()->set_screen_reader_content( array( + /* translators: accessibility text */ 'heading_pagination' => __( 'Activity list navigation', 'buddypress' ), ) ); } @@ -576,9 +579,9 @@ function bp_activity_admin_load() { // If an error occurred, pass back the activity ID that failed. if ( $error ) - $redirect_to = add_query_arg( 'error', (int) $error, $redirect_to ); + $redirect_to = add_query_arg( 'error', $error, $redirect_to ); else - $redirect_to = add_query_arg( 'updated', (int) $activity->id, $redirect_to ); + $redirect_to = add_query_arg( 'updated', $activity->id, $redirect_to ); /** * Filters URL to redirect to after saving. @@ -674,6 +677,10 @@ function bp_activity_admin_edit() { <div id="bp_activity_action" class="postbox"> <h2><?php _e( 'Action', 'buddypress' ); ?></h2> <div class="inside"> + <label for="bp-activities-action" class="screen-reader-text"><?php + /* translators: accessibility text */ + _e( 'Edit activity action', 'buddypress' ); + ?></label> <?php wp_editor( stripslashes( $activity->action ), 'bp-activities-action', array( 'media_buttons' => false, 'textarea_rows' => 7, 'teeny' => true, 'quicktags' => array( 'buttons' => 'strong,em,link,block,del,ins,img,code,spell,close' ) ) ); ?> </div> </div> @@ -681,6 +688,10 @@ function bp_activity_admin_edit() { <div id="bp_activity_content" class="postbox"> <h2><?php _e( 'Content', 'buddypress' ); ?></h2> <div class="inside"> + <label for="bp-activities-content" class="screen-reader-text"><?php + /* translators: accessibility text */ + _e( 'Edit activity content', 'buddypress' ); + ?></label> <?php wp_editor( stripslashes( $activity->content ), 'bp-activities-content', array( 'media_buttons' => false, 'teeny' => true, 'quicktags' => array( 'buttons' => 'strong,em,link,block,del,ins,img,code,spell,close' ) ) ); ?> </div> </div> @@ -704,10 +715,16 @@ function bp_activity_admin_edit() { </form> <?php else : ?> - <p> - <?php _e( 'No activity found with this ID.', 'buddypress' ); ?> - <a href="<?php echo esc_url( bp_get_admin_url( 'admin.php?page=bp-activity' ) ); ?>"><?php _e( 'Go back and try again.', 'buddypress' ); ?></a> - </p> + + <p><?php + printf( + '%1$s <a href="%2$s">%3$s</a>', + __( 'No activity found with this ID.', 'buddypress' ), + esc_url( bp_get_admin_url( 'admin.php?page=bp-activity' ) ), + __( 'Go back and try again.', 'buddypress' ) + ); + ?></p> + <?php endif; ?> </div><!-- .wrap --> @@ -781,7 +798,10 @@ function bp_activity_admin_edit_metabox_status( $item ) { function bp_activity_admin_edit_metabox_link( $item ) { ?> - <label class="screen-reader-text" for="bp-activities-link"><?php _e( 'Link', 'buddypress' ); ?></label> + <label class="screen-reader-text" for="bp-activities-link"><?php + /* translators: accessibility text */ + _e( 'Link', 'buddypress' ); + ?></label> <input type="url" name="bp-activities-link" id="bp-activities-link" value="<?php echo esc_url( $item->primary_link ); ?>" aria-describedby="bp-activities-link-description" /> <p id="bp-activities-link-description"><?php _e( '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.', 'buddypress' ); ?></p> @@ -798,7 +818,10 @@ function bp_activity_admin_edit_metabox_link( $item ) { function bp_activity_admin_edit_metabox_userid( $item ) { ?> - <label class="screen-reader-text" for="bp-activities-userid"><?php _e( 'Author ID', 'buddypress' ); ?></label> + <label class="screen-reader-text" for="bp-activities-userid"><?php + /* translators: accessibility text */ + _e( 'Author ID', 'buddypress' ); + ?></label> <input type="number" name="bp-activities-userid" id="bp-activities-userid" value="<?php echo esc_attr( $item->user_id ); ?>" min="1" /> <?php @@ -873,7 +896,10 @@ function bp_activity_admin_edit_metabox_type( $item ) { ?> - <label for="bp-activities-type" class="screen-reader-text"><?php esc_html_e( 'Select activity type', 'buddypress' ); ?></label> + <label for="bp-activities-type" class="screen-reader-text"><?php + /* translators: accessibility text */ + esc_html_e( 'Select activity type', 'buddypress' ); + ?></label> <select name="bp-activities-type" id="bp-activities-type"> <?php foreach ( $actions as $k => $v ) : ?> <option value="<?php echo esc_attr( $k ); ?>" <?php selected( $k, $selected ); ?>><?php echo esc_html( $v ); ?></option> @@ -1016,6 +1042,10 @@ function bp_activity_admin_index() { <form method="get" action=""> <h3 id="bp-replyhead"><?php _e( 'Reply to Activity', 'buddypress' ); ?></h3> + <label for="bp-activities" class="screen-reader-text"><?php + /* translators: accessibility text */ + _e( 'Reply', 'buddypress' ); + ?></label> <?php wp_editor( '', 'bp-activities', array( 'dfw' => false, 'media_buttons' => false, 'quicktags' => array( 'buttons' => 'strong,em,link,block,del,ins,img,code,spell,close' ), 'tinymce' => false, ) ); ?> <p id="bp-replysubmit" class="submit"> diff --git a/wp-content/plugins/buddypress/bp-activity/bp-activity-adminbar.php b/wp-content/plugins/buddypress/bp-activity/bp-activity-adminbar.php new file mode 100644 index 0000000000000000000000000000000000000000..08be3d55348ca90501e6dcacf7b09e1df261b1c6 --- /dev/null +++ b/wp-content/plugins/buddypress/bp-activity/bp-activity-adminbar.php @@ -0,0 +1,47 @@ +<?php +/** + * BuddyPress Activity Toolbar. + * + * Handles the activity functions related to the WordPress Toolbar. + * + * @package BuddyPress + * @subpackage Activity + */ + +// Exit if accessed directly. +defined( 'ABSPATH' ) || exit; + +/** + * Add the Activity top-level menu link when viewing single activity item. + * + * @since 2.6.0 + * + * @return null Null if user does not have access to editing functionality. + */ +function bp_activity_admin_menu() { + global $wp_admin_bar; + + // Only show if viewing a single activity item. + if ( ! bp_is_single_activity() ) { + return; + } + + // Only show this menu to super admins + if ( ! bp_current_user_can( 'bp_moderate' ) ) { + return; + } + + $activity_edit_link = add_query_arg( array( + 'page' => 'bp-activity', + 'aid' => bp_current_action(), + 'action' => 'edit' + ), bp_get_admin_url( 'admin.php' ) ); + + // Add the top-level Edit Activity button. + $wp_admin_bar->add_menu( array( + 'id' => 'activity-admin', + 'title' => __( 'Edit Activity', 'buddypress' ), + 'href' => esc_url( $activity_edit_link ), + ) ); +} +add_action( 'admin_bar_menu', 'bp_activity_admin_menu', 99 ); 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 91c8a91d51793430f2c34c6e9621cb7cc9bb769e..5e65746c131ef1a8711b2b873e35ca841b9782a8 100644 --- a/wp-content/plugins/buddypress/bp-activity/bp-activity-akismet.php +++ b/wp-content/plugins/buddypress/bp-activity/bp-activity-akismet.php @@ -10,7 +10,9 @@ // Exit if accessed directly. defined( 'ABSPATH' ) || exit; -require dirname( __FILE__ ) . '/classes/class-bp-akismet.php'; +if ( ! buddypress()->do_autoload ) { + require dirname( __FILE__ ) . '/classes/class-bp-akismet.php'; +} /** * Delete old spam activity meta data. diff --git a/wp-content/plugins/buddypress/bp-activity/bp-activity-classes.php b/wp-content/plugins/buddypress/bp-activity/bp-activity-classes.php index 2d2fc961c910f2d161981434bab21bfab44e179d..33cc0bedfe61f8ee45d5adacccf8f0261895f50e 100644 --- a/wp-content/plugins/buddypress/bp-activity/bp-activity-classes.php +++ b/wp-content/plugins/buddypress/bp-activity/bp-activity-classes.php @@ -13,3 +13,8 @@ defined( 'ABSPATH' ) || exit; require dirname( __FILE__ ) . '/classes/class-bp-activity-activity.php'; require dirname( __FILE__ ) . '/classes/class-bp-activity-feed.php'; require dirname( __FILE__ ) . '/classes/class-bp-activity-query.php'; + +// Embeds - only applicable for WP 4.5+ +if ( version_compare( $GLOBALS['wp_version'], '4.5', '>=' ) && bp_is_active( 'activity', 'embeds' ) ) { + require dirname( __FILE__ ) . '/classes/class-bp-activity-oembed-extension.php'; +} \ No newline at end of file diff --git a/wp-content/plugins/buddypress/bp-activity/bp-activity-embeds.php b/wp-content/plugins/buddypress/bp-activity/bp-activity-embeds.php new file mode 100644 index 0000000000000000000000000000000000000000..2951a17a48be31c60bae83383208398af6d245a2 --- /dev/null +++ b/wp-content/plugins/buddypress/bp-activity/bp-activity-embeds.php @@ -0,0 +1,352 @@ +<?php +/** + * Functions related to embedding single activity items externally. + * + * Relies on WordPress 4.5. + * + * @since 2.6.0 + * + * @package BuddyPress + * @subpackage ActivityEmbeds + */ + +// Exit if accessed directly. +defined( 'ABSPATH' ) || exit; + +/** + * Loads our activity oEmbed component. + * + * @since 2.6.0 + */ +function bp_activity_setup_oembed() { + if ( version_compare( $GLOBALS['wp_version'], '4.5', '>=' ) && bp_is_active( 'activity', 'embeds' ) ) { + buddypress()->activity->oembed = new BP_Activity_oEmbed_Extension; + } +} +add_action( 'bp_loaded', 'bp_activity_setup_oembed' ); + +/** + * Catch links in embed excerpt so top.location.href can be added. + * + * Due to <iframe sandbox="allow-top-navigation">, links in embeds can only be + * clicked if invoked with top.location.href via JS. + * + * @since 2.6.0 + * + * @param string $text Embed excerpt + * @return string + */ +function bp_activity_embed_excerpt_onclick_location_filter( $text ) { + return preg_replace_callback( '/<a\s+[^>]*href=\"([^\"]*)\"/iU', 'bp_activity_embed_excerpt_onclick_location_filter_callback', $text ); +} + /** + * Add onclick="top.location.href" to a link. + * + * @since 2.6.0 + * + * @param array $matches Items matched by bp_activity_embed_excerpt_onclick_location_filter(). + * @return string + */ + function bp_activity_embed_excerpt_onclick_location_filter_callback( $matches ) { + return sprintf( '<a href="%1$s" onclick="top.location.href=\'%1$s\'"', $matches[1] ); + } + +/** + * Add inline styles for BP activity embeds. + * + * @since 2.6.0 + */ +function bp_activity_embed_add_inline_styles() { + if ( false === bp_is_single_activity() ) { + return; + } + + $min = bp_core_get_minified_asset_suffix(); + + if ( is_rtl() ) { + $css = bp_locate_template_asset( "css/embeds-activity-rtl{$min}.css" ); + } else { + $css = bp_locate_template_asset( "css/embeds-activity{$min}.css" ); + } + + // Bail if file wasn't found. + if ( false === $css ) { + return; + } + + // Grab contents of CSS file and do some rudimentary CSS protection. + $css = file_get_contents( $css['file'] ); + $css = wp_kses( $css, array( "\'", '\"' ) ); + + printf( '<style type="text/css">%s</style>', $css ); +} +add_action( 'embed_head', 'bp_activity_embed_add_inline_styles', 20 ); + +/** + * Query for the activity item on the activity embed template. + * + * Basically a wrapper for {@link bp_has_activities()}, but allows us to + * use the activity loop without requerying for it again. + * + * @since 2.6.0 + * + * @param int $activity_id The activity ID. + * @return bool + */ +function bp_activity_embed_has_activity( $activity_id = 0 ) { + global $activities_template; + + if ( empty( $activity_id ) ) { + return false; + } + + if ( ! empty( $activities_template->activities ) ) { + $activity = (array) $activities_template->activities; + $activity = reset( $activity ); + + // No need to requery if we already got the embed activity + if ( (int) $activity_id === $activity->id ) { + return $activities_template->has_activities(); + } + } + + return bp_has_activities( array( + 'display_comments' => 'threaded', + 'show_hidden' => true, + 'include' => (int) $activity_id, + ) ); +} + +/** + * Outputs excerpt for an activity embed item. + * + * @since 2.6.0 + */ +function bp_activity_embed_excerpt( $content = '' ) { + echo bp_activity_get_embed_excerpt( $content = '' ); +} + + /** + * Generates excerpt for an activity embed item. + * + * @since 2.6.0 + * + * @param string $content The content to generate an excerpt for. + * @return string + */ + function bp_activity_get_embed_excerpt( $content = '' ) { + if ( empty( $content ) && ! empty( $GLOBALS['activities_template']->in_the_loop ) ) { + $content = $GLOBALS['activities_template']->activity->content; + } + + /* + * bp_activity_truncate_entry() includes the 'Read More' link, which is why + * we're using this instead of bp_create_excerpt(). + */ + $content = html_entity_decode( $content ); + $content = bp_activity_truncate_entry( $content, array( + 'html' => false, + 'filter_shortcodes' => true, + 'strip_tags' => true, + 'force_truncate' => true + ) ); + + /** + * Filter the activity embed excerpt. + * + * @since 2.6.0 + * + * @var string $content Embed Excerpt. + * @var string $unmodified_content Unmodified activity content. + */ + return apply_filters( 'bp_activity_get_embed_excerpt', $content, $GLOBALS['activities_template']->activity->content ); + } + +/** + * Outputs the first embedded item in the activity oEmbed template. + * + * @since 2.6.0 + */ +function bp_activity_embed_media() { + // Bail if oEmbed request explicitly hides media. + if ( isset( $_GET['hide_media'] ) && true == wp_validate_boolean( $_GET['hide_media'] ) ) { + /** + * Do something after media is rendered for an activity oEmbed item. + * + * @since 2.6.0 + */ + do_action( 'bp_activity_embed_after_media' ); + + return; + } + + /** + * Should we display media in the oEmbed template? + * + * @since 2.6.0 + * + * @param bool $retval Defaults to true. + */ + $allow_media = apply_filters( 'bp_activity_embed_display_media', true ); + + // Find oEmbeds from only WP registered providers. + bp_remove_all_filters( 'oembed_providers' ); + $media = bp_core_extract_media_from_content( $GLOBALS['activities_template']->activity->content, 'embeds' ); + bp_restore_all_filters( 'oembed_providers' ); + + // oEmbeds have precedence over inline video / audio. + if ( isset( $media['embeds'] ) && true === $allow_media ) { + // Autoembed first URL. + $oembed_defaults = wp_embed_defaults(); + $oembed_args = array( + 'width' => $oembed_defaults['width'], + 'height' => $oembed_defaults['height'], + 'discover' => true + ); + $url = $media['embeds'][0]['url']; + $cachekey = '_oembed_response_' . md5( $url . serialize( $oembed_args ) ); + + // Try to fetch oEmbed response from meta. + $oembed = bp_activity_get_meta( bp_get_activity_id(), $cachekey ); + + // No cache, so fetch full oEmbed response now! + if ( '' === $oembed ) { + $o = _wp_oembed_get_object(); + $oembed = $o->fetch( $o->get_provider( $url, $oembed_args ), $url, $oembed_args ); + + // Cache oEmbed response. + bp_activity_update_meta( bp_get_activity_id(), $cachekey, $oembed ); + } + + $content = ''; + + /** + * Filters the default embed display max width. + * + * This is used if the oEmbed response does not return a thumbnail width. + * + * @since 2.6.0 + * + * @param int $width. + */ + $width = (int) apply_filters( 'bp_activity_embed_display_media_width', 550 ); + + // Set thumbnail. + if ( 'photo' === $oembed->type ) { + $thumbnail = $oembed->url; + } elseif ( isset( $oembed->thumbnail_url ) ) { + $thumbnail = $oembed->thumbnail_url; + + /* Non-oEmbed standard attributes */ + // Mixcloud + } elseif ( isset( $oembed->image ) ) { + $thumbnail = $oembed->image; + // ReverbNation + } elseif ( isset( $oembed->{'thumbnail-url'} ) ) { + $thumbnail = $oembed->{'thumbnail-url'}; + } + + // Display thumb and related oEmbed meta. + if ( true === isset ( $thumbnail ) ) { + $play_icon = $caption = ''; + + // Add play icon for non-photos. + if ( 'photo' !== $oembed->type ) { + /** + * ion-play icon from Ionicons. + * + * @link http://ionicons.com/ + * @license MIT + */ + $play_icon = <<<EOD +<svg id="Layer_1" style="enable-background:new 0 0 512 512;" version="1.1" viewBox="0 0 512 512" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M405.2,232.9L126.8,67.2c-3.4-2-6.9-3.2-10.9-3.2c-10.9,0-19.8,9-19.8,20H96v344h0.1c0,11,8.9,20,19.8,20 c4.1,0,7.5-1.4,11.2-3.4l278.1-165.5c6.6-5.5,10.8-13.8,10.8-23.1C416,246.7,411.8,238.5,405.2,232.9z"/></svg> +EOD; + + $play_icon = sprintf( '<a rel="nofollow" class="play-btn" href="%1$s" onclick="top.location.href=\'%1$s\'">%2$s</a>', esc_url( $url ), $play_icon ); + } + + // Thumb width + $thumb_width = isset( $oembed->thumbnail_width ) && 'photo' !== $oembed->type && (int) $oembed->thumbnail_width < 550 ? (int) $oembed->thumbnail_width : $width; + + $float_width = 350; + + // Set up thumb. + $content = sprintf( '<div class="thumb" style="max-width:%1$spx">%2$s<a href="%3$s" rel="nofollow" onclick="top.location.href=\'%3$s\'"><img src="%4$s" /></a></div>', $thumb_width, $play_icon, esc_url( $url ), esc_url( $thumbnail ) ); + + // Show title. + if ( isset( $oembed->title ) ) { + $caption .= sprintf( '<p class="caption-title"><strong>%s</strong></p>', apply_filters( 'single_post_title', $oembed->title ) ); + } + + // Show description (non-oEmbed standard) + if ( isset( $oembed->description ) ) { + $caption .= sprintf( '<div class="caption-description">%s</div>', apply_filters( 'bp_activity_get_embed_excerpt', $oembed->description ) ); + } + + // Show author info. + if ( isset( $oembed->provider_name ) && isset( $oembed->author_name ) ) { + /* translators: By [oEmbed author] on [oEmbed provider]. eg. By BuddyPress on YouTube. */ + $anchor_text = sprintf( __( 'By %1$s on %2$s', 'buddypress' ), $oembed->author_name, $oembed->provider_name ); + + } elseif ( isset( $oembed->provider_name ) ) { + $anchor_text = sprintf( __( 'View on %s', 'buddypress' ), $oembed->provider_name ); + } + + if ( true === isset( $anchor_text ) ) { + $caption .= sprintf( '<a rel="nofollow" href="%1$s" onclick="top.location.href=\'%1$s\'">%2$s</a>', esc_url( $url ), apply_filters( 'the_title', $anchor_text ) ); + } + + // Set up caption. + if ( '' !== $caption ) { + $css_class = isset( $oembed->provider_name ) ? sprintf( ' provider-%s', sanitize_html_class( strtolower( $oembed->provider_name ) ) ) : ''; + $caption = sprintf( '<div class="caption%1$s" style="width:%2$s">%3$s</div>', + $css_class, + $thumb_width > $float_width ? 100 . '%' : round( ( $width - (int) $thumb_width ) / $width * 100 ) . '%', + $caption + ); + + $content .= $caption; + } + } + + // Print rich content. + if ( '' !== $content ) { + printf( '<div class="bp-activity-embed-display-media %s" style="max-width:%spx">%s</div>', + $thumb_width < $float_width ? 'two-col' : 'one-col', + $thumb_width < $float_width ? $width : $thumb_width, + $content + ); + } + + // Video / audio. + } elseif ( true === $allow_media ) { + // Call BP_Embed if it hasn't already loaded. + bp_embed_init(); + + // Run shortcode and embed routine. + $content = buddypress()->embed->run_shortcode( $GLOBALS['activities_template']->activity->content ); + $content = buddypress()->embed->autoembed( $content ); + + // Try to find inline video / audio. + $media = bp_core_extract_media_from_content( $content, 96 ); + + // Video takes precedence. HTML5-only. + if ( isset( $media['videos'] ) && 'shortcodes' === $media['videos'][0]['source'] ) { + printf( '<video controls preload="metadata"><source src="%1$s"><p>%2$s</p></video>', + esc_url( $media['videos'][0]['url'] ), + esc_html__( 'Your browser does not support HTML5 video', 'buddypress' ) + ); + + // No video? Try audio. HTML5-only. + } elseif ( isset( $media['audio'] ) && 'shortcodes' === $media['audio'][0]['source'] ) { + printf( '<audio controls preload="metadata"><source src="%1$s"><p>%2$s</p></audio>', + esc_url( $media['audio'][0]['url'] ), + esc_html__( 'Your browser does not support HTML5 audio', 'buddypress' ) + ); + } + + } + + /** This hook is documented in /bp-activity/bp-activity-embeds.php */ + do_action( 'bp_activity_embed_after_media' ); +} 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 a73e3236b8d21fc3a42e00a677782e4838c8971d..eb66c3f984ce1552f89de761abff1ee56a1d6eb1 100644 --- a/wp-content/plugins/buddypress/bp-activity/bp-activity-filters.php +++ b/wp-content/plugins/buddypress/bp-activity/bp-activity-filters.php @@ -43,6 +43,7 @@ add_filter( 'bp_get_activity_content', 'wptexturize' ); add_filter( 'bp_get_activity_parent_content', 'wptexturize' ); add_filter( 'bp_get_activity_latest_update', 'wptexturize' ); add_filter( 'bp_get_activity_latest_update_excerpt', 'wptexturize' ); +add_filter( 'bp_activity_get_embed_excerpt', 'wptexturize' ); add_filter( 'bp_get_activity_action', 'convert_smilies' ); add_filter( 'bp_get_activity_content_body', 'convert_smilies' ); @@ -50,6 +51,7 @@ add_filter( 'bp_get_activity_content', 'convert_smilies' ); add_filter( 'bp_get_activity_parent_content', 'convert_smilies' ); add_filter( 'bp_get_activity_latest_update', 'convert_smilies' ); add_filter( 'bp_get_activity_latest_update_excerpt', 'convert_smilies' ); +add_filter( 'bp_activity_get_embed_excerpt', 'convert_smilies' ); add_filter( 'bp_get_activity_action', 'convert_chars' ); add_filter( 'bp_get_activity_content_body', 'convert_chars' ); @@ -57,11 +59,13 @@ add_filter( 'bp_get_activity_content', 'convert_chars' ); add_filter( 'bp_get_activity_parent_content', 'convert_chars' ); add_filter( 'bp_get_activity_latest_update', 'convert_chars' ); add_filter( 'bp_get_activity_latest_update_excerpt', 'convert_chars' ); +add_filter( 'bp_activity_get_embed_excerpt', 'convert_chars' ); add_filter( 'bp_get_activity_action', 'wpautop' ); add_filter( 'bp_get_activity_content_body', 'wpautop' ); add_filter( 'bp_get_activity_content', 'wpautop' ); add_filter( 'bp_get_activity_feed_item_description', 'wpautop' ); +add_filter( 'bp_activity_get_embed_excerpt', 'wpautop' ); add_filter( 'bp_get_activity_action', 'make_clickable', 9 ); add_filter( 'bp_get_activity_content_body', 'make_clickable', 9 ); @@ -70,6 +74,7 @@ add_filter( 'bp_get_activity_parent_content', 'make_clickable', 9 ); add_filter( 'bp_get_activity_latest_update', 'make_clickable', 9 ); add_filter( 'bp_get_activity_latest_update_excerpt', 'make_clickable', 9 ); add_filter( 'bp_get_activity_feed_item_description', 'make_clickable', 9 ); +add_filter( 'bp_activity_get_embed_excerpt', 'make_clickable', 9 ); add_filter( 'bp_acomment_name', 'stripslashes_deep', 5 ); add_filter( 'bp_get_activity_action', 'stripslashes_deep', 5 ); @@ -94,6 +99,7 @@ add_filter( 'pre_comment_content', 'bp_activity_at_name_filter add_filter( 'group_forum_topic_text_before_save', 'bp_activity_at_name_filter' ); add_filter( 'group_forum_post_text_before_save', 'bp_activity_at_name_filter' ); add_filter( 'the_content', 'bp_activity_at_name_filter' ); +add_filter( 'bp_activity_get_embed_excerpt', 'bp_activity_at_name_filter' ); add_filter( 'bp_get_activity_parent_content', 'bp_create_excerpt' ); @@ -103,6 +109,8 @@ add_filter( 'bp_get_activity_content', 'bp_activity_truncate_entry', 5 ); add_filter( 'bp_get_total_favorite_count_for_user', 'bp_core_number_format' ); add_filter( 'bp_get_total_mention_count_for_user', 'bp_core_number_format' ); +add_filter( 'bp_activity_get_embed_excerpt', 'bp_activity_embed_excerpt_onclick_location_filter', 9 ); + /* Actions *******************************************************************/ // At-name filter. @@ -147,13 +155,19 @@ function bp_activity_get_moderated_activity_types() { function bp_activity_check_moderation_keys( $activity ) { // Only check specific types of activity updates. - if ( !in_array( $activity->type, bp_activity_get_moderated_activity_types() ) ) + if ( ! in_array( $activity->type, bp_activity_get_moderated_activity_types() ) ) { return; + } - // Unset the activity component so activity stream update fails + // Send back the error so activity update fails. // @todo This is temporary until some kind of moderation is built. - if ( !bp_core_check_for_moderation( $activity->user_id, '', $activity->content ) ) + $moderate = bp_core_check_for_moderation( $activity->user_id, '', $activity->content, 'wp_error' ); + if ( is_wp_error( $moderate ) ) { + $activity->errors = $moderate; + + // Backpat. $activity->component = false; + } } /** @@ -166,12 +180,19 @@ function bp_activity_check_moderation_keys( $activity ) { function bp_activity_check_blacklist_keys( $activity ) { // Only check specific types of activity updates. - if ( ! in_array( $activity->type, bp_activity_get_moderated_activity_types() ) ) + if ( ! in_array( $activity->type, bp_activity_get_moderated_activity_types() ) ) { return; + } + + // Send back the error so activity update fails. + // @todo This is temporary until some kind of trash status is built. + $blacklist = bp_core_check_for_blacklist( $activity->user_id, '', $activity->content, 'wp_error' ); + if ( is_wp_error( $blacklist ) ) { + $activity->errors = $blacklist; - // Mark as spam. - if ( ! bp_core_check_for_blacklist( $activity->user_id, '', $activity->content ) ) - bp_activity_mark_as_spam( $activity, 'by_blacklist' ); + // Backpat. + $activity->component = false; + } } /** @@ -179,9 +200,6 @@ function bp_activity_check_blacklist_keys( $activity ) { * * @since 1.1.0 * - * @uses apply_filters() To call the 'bp_activity_allowed_tags' hook. - * @uses wp_kses() - * * @param string $content The activity content. * @return string $content Filtered activity content. */ @@ -282,8 +300,6 @@ function bp_activity_at_name_filter( $content, $activity_id = 0 ) { * * @since 1.5.0 * - * @uses bp_activity_find_mentions() - * * @param BP_Activity_Activity $activity Activity Object. */ function bp_activity_at_name_filter_updates( $activity ) { @@ -319,9 +335,6 @@ function bp_activity_at_name_filter_updates( $activity ) { * * @since 1.7.0 * - * @uses bp_activity_at_message_notification() - * @uses bp_activity_update_mention_count_for_user() - * * @param BP_Activity_Activity $activity The BP_Activity_Activity object. */ function bp_activity_at_name_send_emails( $activity ) { @@ -395,19 +408,16 @@ function bp_activity_make_nofollow_filter( $text ) { * This method can only be used inside the Activity loop. * * @since 1.5.0 - * - * @uses bp_is_single_activity() - * @uses apply_filters() To call the 'bp_activity_excerpt_append_text' hook. - * @uses apply_filters() To call the 'bp_activity_excerpt_length' hook. - * @uses bp_create_excerpt() - * @uses bp_get_activity_id() - * @uses bp_get_activity_thread_permalink() - * @uses apply_filters() To call the 'bp_activity_truncate_entry' hook. + * @since 2.6.0 Added $args parameter. * * @param string $text The original activity entry text. + * @param array $args { + * Optional parameters. See $options argument of {@link bp_create_excerpt()} + * for all available parameters. + * } * @return string $excerpt The truncated text. */ -function bp_activity_truncate_entry( $text ) { +function bp_activity_truncate_entry( $text, $args = array() ) { global $activities_template; /** @@ -423,7 +433,7 @@ function bp_activity_truncate_entry( $text ) { ); // The full text of the activity update should always show on the single activity screen. - if ( ! $maybe_truncate_text || bp_is_single_activity() ) { + if ( empty( $args['force_truncate'] ) && ( ! $maybe_truncate_text || bp_is_single_activity() ) ) { return $text; } @@ -445,15 +455,17 @@ function bp_activity_truncate_entry( $text ) { */ $excerpt_length = apply_filters( 'bp_activity_excerpt_length', 358 ); + $args = wp_parse_args( $args, array( 'ending' => __( '…', 'buddypress' ) ) ); + // Run the text through the excerpt function. If it's too short, the original text will be returned. - $excerpt = bp_create_excerpt( $text, $excerpt_length, array( 'ending' => __( '…', 'buddypress' ) ) ); + $excerpt = bp_create_excerpt( $text, $excerpt_length, $args ); /* * If the text returned by bp_create_excerpt() is different from the original text (ie it's * been truncated), add the "Read More" link. Note that bp_create_excerpt() is stripping * shortcodes, so we have strip them from the $text before the comparison. */ - if ( $excerpt != strip_shortcodes( $text ) ) { + if ( strlen( $excerpt ) < strlen( strip_shortcodes( $text ) ) ) { $id = !empty( $activities_template->activity->current_comment->id ) ? 'acomment-read-more-' . $activities_template->activity->current_comment->id : 'activity-read-more-' . bp_get_activity_id(); $excerpt = sprintf( '%1$s<span class="activity-read-more" id="%2$s"><a href="%3$s" rel="nofollow">%4$s</a></span>', $excerpt, $id, bp_get_activity_thread_permalink(), $append_text ); @@ -476,8 +488,6 @@ function bp_activity_truncate_entry( $text ) { * * @since 2.0.0 * - * @uses bp_activity_do_heartbeat() to check if heartbeat is required. - * * @param array $js_handles The original dependencies. * @return array $js_handles The new dependencies. */ @@ -543,8 +553,6 @@ add_filter( 'bp_get_activity_css_class', 'bp_activity_timestamp_class', 9, 1 ); * * @since 2.0.0 * - * @uses bp_activity_get_last_updated() to get the recorded date of the last activity. - * * @param array $response Array containing Heartbeat API response. * @param array $data Array containing data for Heartbeat API response. * @return array $response 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 8f03c6f218ff5e64dc2ea1b9f0f20cc951da6f79..a76432030784b5bd9c1db0fb335c8563b218ba49 100644 --- a/wp-content/plugins/buddypress/bp-activity/bp-activity-functions.php +++ b/wp-content/plugins/buddypress/bp-activity/bp-activity-functions.php @@ -40,8 +40,6 @@ function bp_activity_has_directory() { * * @since 1.8.0 * - * @uses apply_filters() To call 'bp_activity_do_mentions' hook. - * * @return bool $retval True to enable mentions, false to disable. */ function bp_activity_do_mentions() { @@ -133,8 +131,6 @@ function bp_activity_find_mentions( $content ) { * * @since 1.5.0 * - * @uses bp_delete_user_meta() - * * @param int $user_id The id of the user whose unread mentions are being reset. */ function bp_activity_clear_new_mentions( $user_id ) { @@ -161,9 +157,6 @@ function bp_activity_clear_new_mentions( $user_id ) { * * @since 1.5.0 * - * @uses bp_activity_find_mentions() - * @uses bp_activity_update_mention_count_for_user() - * * @param int $activity_id The unique id for the activity item. * @param string $action Can be 'delete' or 'add'. Defaults to 'add'. * @return bool @@ -176,7 +169,7 @@ function bp_activity_adjust_mention_count( $activity_id = 0, $action = 'add' ) { } // Get activity object. - $activity = new BP_Activity_Activity( (int) $activity_id ); + $activity = new BP_Activity_Activity( $activity_id ); // Try to find mentions. $usernames = bp_activity_find_mentions( strip_tags( $activity->content ) ); @@ -200,9 +193,6 @@ function bp_activity_adjust_mention_count( $activity_id = 0, $action = 'add' ) { * * @since 1.7.0 * - * @uses bp_get_user_meta() - * @uses bp_update_user_meta() - * * @param int $user_id The user ID. * @param int $activity_id The unique ID for the activity item. * @param string $action 'delete' or 'add'. Default: 'add'. @@ -787,8 +777,6 @@ function bp_activity_get_actions() { * * @since 1.1.0 * - * @uses apply_filters() To call the 'bp_activity_get_action' hook. - * * @param string $component_id The unique string ID of the component. * @param string $key The action key. * @return string|bool Action value if found, otherwise false. @@ -858,9 +846,6 @@ function bp_activity_get_types() { * * @since 1.2.0 * - * @uses bp_get_user_meta() - * @uses apply_filters() To call the 'bp_activity_get_user_favorites' hook. - * * @param int $user_id ID of the user whose favorites are being queried. * @return array IDs of the user's favorite activity items. */ @@ -889,14 +874,6 @@ function bp_activity_get_user_favorites( $user_id = 0 ) { * * @since 1.2.0 * - * @uses is_user_logged_in() - * @uses bp_get_user_meta() - * @uses bp_activity_get_meta() - * @uses bp_update_user_meta() - * @uses bp_activity_update_meta() - * @uses do_action() To call the 'bp_activity_add_user_favorite' hook. - * @uses do_action() To call the 'bp_activity_add_user_favorite_fail' hook. - * * @param int $activity_id ID of the activity item being favorited. * @param int $user_id ID of the user favoriting the activity item. * @return bool True on success, false on failure. @@ -971,13 +948,6 @@ function bp_activity_add_user_favorite( $activity_id, $user_id = 0 ) { * * @since 1.2.0 * - * @uses is_user_logged_in() - * @uses bp_get_user_meta() - * @uses bp_activity_get_meta() - * @uses bp_activity_update_meta() - * @uses bp_update_user_meta() - * @uses do_action() To call the 'bp_activity_remove_user_favorite' hook. - * * @param int $activity_id ID of the activity item being unfavorited. * @param int $user_id ID of the user unfavoriting the activity item. * @return bool True on success, false on failure. @@ -1050,9 +1020,6 @@ function bp_activity_remove_user_favorite( $activity_id, $user_id = 0 ) { * * @since 1.1.0 * - * @uses BP_Activity_Activity::check_exists_by_content() {@link BP_Activity_Activity} - * @uses apply_filters() To call the 'bp_activity_check_exists_by_content' hook. - * * @param string $content The content to filter by. * @return int|null The ID of the located activity item. Null if none is found. */ @@ -1063,7 +1030,7 @@ function bp_activity_check_exists_by_content( $content ) { * * @since 1.1.0 * - * @param BP_Activity_Activity $content_exists ID of the activity if found, else null. + * @param BP_Activity_Activity $value ID of the activity if found, else null. */ return apply_filters( 'bp_activity_check_exists_by_content', BP_Activity_Activity::check_exists_by_content( $content ) ); } @@ -1073,9 +1040,6 @@ function bp_activity_check_exists_by_content( $content ) { * * @since 1.0.0 * - * @uses BP_Activity_Activity::get_last_updated() {@link BP_Activity_Activity} - * @uses apply_filters() To call the 'bp_activity_get_last_updated' hook. - * * @return string Date last updated. */ function bp_activity_get_last_updated() { @@ -1095,8 +1059,6 @@ function bp_activity_get_last_updated() { * * @since 1.2.0 * - * @uses BP_Activity_Activity::total_favorite_count() {@link BP_Activity_Activity} - * * @param int $user_id ID of the user whose favorite count is being requested. * @return int Total favorite count for the user. */ @@ -1160,8 +1122,6 @@ function bp_activity_delete_meta( $activity_id, $meta_key = '', $meta_value = '' * * @since 1.2.0 * - * @uses apply_filters() To call the 'bp_activity_get_meta' hook. - * * @param int $activity_id ID of the activity item whose metadata is being requested. * @param string $meta_key Optional. If present, only the metadata matching * that meta key will be returned. Otherwise, all metadata for the @@ -1239,12 +1199,6 @@ function bp_activity_add_meta( $activity_id, $meta_key, $meta_value, $unique = f * * @since 1.5.0 * - * @uses is_user_logged_in() - * @uses bp_activity_delete() - * @uses bp_delete_user_meta() - * @uses do_action() To call the 'bp_activity_remove_data' hook. - * @uses do_action() To call the 'bp_activity_remove_all_user_data' hook. - * * @param int $user_id ID of the user whose activity is being deleted. * @return bool */ @@ -1671,11 +1625,6 @@ function bp_activity_format_activity_action_custom_post_type_comment( $action, $ * * @see BP_Activity_Activity::get() For more information on accepted arguments * and the format of the returned value. - * @uses wp_parse_args() - * @uses wp_cache_get() - * @uses wp_cache_set() - * @uses BP_Activity_Activity::get() {@link BP_Activity_Activity} - * @uses apply_filters_ref_array() To call the 'bp_activity_get' hook. * * @param array|string $args See BP_Activity_Activity::get() for description. * @return array $activity See BP_Activity_Activity::get() for description. @@ -1782,9 +1731,6 @@ function bp_activity_get( $args = '' ) { * @since 1.2.0 * * @see BP_Activity_Activity::get() For more information on accepted arguments. - * @uses wp_parse_args() - * @uses apply_filters() To call the 'bp_activity_get_specific' hook. - * @uses BP_Activity_Activity::get() {@link BP_Activity_Activity} * * @param array|string $args { * All arguments and defaults are shared with BP_Activity_Activity::get(), @@ -1836,12 +1782,7 @@ function bp_activity_get_specific( $args = '' ) { * Add an activity item. * * @since 1.1.0 - * - * @uses wp_parse_args() - * @uses BP_Activity_Activity::save() {@link BP_Activity_Activity} - * @uses BP_Activity_Activity::rebuild_activity_comment_tree() {@link BP_Activity_Activity} - * @uses wp_cache_delete() - * @uses do_action() To call the 'bp_activity_add' hook. + * @since 2.6.0 Added 'error_type' parameter to $args. * * @param array|string $args { * An array of arguments. @@ -1873,6 +1814,7 @@ function bp_activity_get_specific( $args = '' ) { * @type bool $hide_sitewide Should the item be hidden on sitewide streams? * Default: false. * @type bool $is_spam Should the item be marked as spam? Default: false. + * @type string $error_type Optional. Error type. Either 'bool' or 'wp_error'. Default: 'bool'. * } * @return int|bool The ID of the activity on success. False on error. */ @@ -1891,6 +1833,7 @@ function bp_activity_add( $args = '' ) { 'recorded_time' => bp_core_current_time(), // The GMT time that this activity was recorded. 'hide_sitewide' => false, // Should this be hidden on the sitewide activity stream? 'is_spam' => false, // Is this activity item to be marked as spam? + 'error_type' => 'bool' ), 'activity_add' ); // Make sure we are backwards compatible. @@ -1914,11 +1857,16 @@ function bp_activity_add( $args = '' ) { $activity->date_recorded = $r['recorded_time']; $activity->hide_sitewide = $r['hide_sitewide']; $activity->is_spam = $r['is_spam']; + $activity->error_type = $r['error_type']; $activity->action = ! empty( $r['action'] ) - ? $r['action'] - : bp_activity_generate_action_string( $activity ); + ? $r['action'] + : bp_activity_generate_action_string( $activity ); - if ( ! $activity->save() ) { + $save = $activity->save(); + + if ( 'wp_error' === $r['error_type'] && is_wp_error( $save ) ) { + return $save; + } elseif ('bool' === $r['error_type'] && false === $save ) { return false; } @@ -1949,17 +1897,6 @@ function bp_activity_add( $args = '' ) { * * @since 1.2.0 * - * @uses wp_parse_args() - * @uses bp_is_user_inactive() - * @uses bp_core_get_userlink() - * @uses bp_activity_add() - * @uses apply_filters() To call the 'bp_activity_new_update_action' hook. - * @uses apply_filters() To call the 'bp_activity_new_update_content' hook. - * @uses apply_filters() To call the 'bp_activity_new_update_primary_link' hook. - * @uses bp_update_user_meta() - * @uses wp_filter_kses() - * @uses do_action() To call the 'bp_activity_posted_update' hook. - * * @param array|string $args { * @type string $content The content of the activity update. * @type int $user_id Optional. Defaults to the logged-in user. @@ -1969,8 +1906,9 @@ function bp_activity_add( $args = '' ) { function bp_activity_post_update( $args = '' ) { $r = wp_parse_args( $args, array( - 'content' => false, - 'user_id' => bp_loggedin_user_id() + 'content' => false, + 'user_id' => bp_loggedin_user_id(), + 'error_type' => 'bool', ) ); if ( empty( $r['content'] ) || !strlen( trim( $r['content'] ) ) ) { @@ -2010,8 +1948,14 @@ function bp_activity_post_update( $args = '' ) { 'primary_link' => $add_primary_link, 'component' => buddypress()->activity->id, 'type' => 'activity_update', + 'error_type' => $r['error_type'] ) ); + // Bail on failure. + if ( false === $activity_id || is_wp_error( $activity_id ) ) { + return $activity_id; + } + /** * Filters the latest update content for the activity item. * @@ -2304,10 +2248,9 @@ function bp_activity_post_type_unpublish( $post_id = 0, $post = null ) { * * @since 2.5.0 * - * @param int $comment_id ID of the comment. - * @param bool $is_approved Whether the comment is approved or not. - * @param object $activity_post_object the post type tracking args object. - * + * @param int $comment_id ID of the comment. + * @param bool $is_approved Whether the comment is approved or not. + * @param object|null $activity_post_object The post type tracking args object. * @return int|bool The ID of the activity on success. False on error. */ function bp_activity_post_type_comment( $comment_id = 0, $is_approved = true, $activity_post_object = null ) { @@ -2497,9 +2440,8 @@ add_action( 'edit_comment', 'bp_activity_post_type_comment', 10 ); * * @since 2.5.0 * - * @param int $comment_id ID of the comment. - * @param object $activity_post_object The post type tracking args object. - * + * @param int $comment_id ID of the comment. + * @param object|null $activity_post_object The post type tracking args object. * @return bool True on success. False on error. */ function bp_activity_post_type_remove_comment( $comment_id = 0, $activity_post_object = null ) { @@ -2564,15 +2506,10 @@ add_action( 'delete_comment', 'bp_activity_post_type_remove_comment', 10, 1 ); * @since 1.2.0 * @since 2.5.0 Add a new possible parameter $skip_notification for the array of arguments. * Add the $primary_link parameter for the array of arguments. - * - * @uses wp_parse_args() - * @uses bp_activity_add() - * @uses apply_filters() To call the 'bp_activity_comment_action' hook. - * @uses apply_filters() To call the 'bp_activity_comment_content' hook. - * @uses wp_cache_delete() - * @uses do_action() To call the 'bp_activity_comment_posted' hook. + * @since 2.6.0 Added 'error_type' parameter to $args. * * @param array|string $args { + * An array of arguments. * @type int $id Optional. Pass an ID to update an existing comment. * @type string $content The content of the comment. * @type int $user_id Optional. The ID of the user making the comment. @@ -2586,17 +2523,12 @@ add_action( 'delete_comment', 'bp_activity_post_type_remove_comment', 10, 1 ); * Defaults to an empty string. * @type bool $skip_notification Optional. false to send a comment notification, false otherwise. * Defaults to false. + * @type string $error_type Optional. Error type. Either 'bool' or 'wp_error'. Default: 'bool'. * } * @return int|bool The ID of the comment on success, otherwise false. */ function bp_activity_new_comment( $args = '' ) { - $bp = buddypress(); - $errors = new WP_Error(); - $feedback = __( 'There was an error posting your reply. Please try again.', 'buddypress' ); - - if ( empty( $bp->activity->errors ) ) { - $bp->activity->errors = array(); - } + $bp = buddypress(); $r = wp_parse_args( $args, array( 'id' => false, @@ -2606,14 +2538,31 @@ function bp_activity_new_comment( $args = '' ) { 'parent_id' => false, // ID of a parent comment (optional). 'primary_link' => '', 'skip_notification' => false, + 'error_type' => 'bool' ) ); + // Error type is boolean; need to initialize some variables for backpat. + if ( 'bool' === $r['error_type'] ) { + if ( empty( $bp->activity->errors ) ) { + $bp->activity->errors = array(); + } + } + + // Default error message. + $feedback = __( 'There was an error posting your reply. Please try again.', 'buddypress' ); + // Bail if missing necessary data. if ( empty( $r['content'] ) || empty( $r['user_id'] ) || empty( $r['activity_id'] ) ) { - $errors->add( 'missing_data', $feedback ); - $bp->activity->errors['new_comment'] = $errors; + $error = new WP_Error( 'missing_data', $feedback ); - return false; + if ( 'wp_error' === $r['error_type'] ) { + return $error; + + // Backpat. + } else { + $bp->activity->errors['new_comment'] = $error; + return false; + } } // Maybe set current activity ID as the parent. @@ -2628,14 +2577,21 @@ function bp_activity_new_comment( $args = '' ) { // Bail if the parent activity does not exist. if ( empty( $activity->date_recorded ) ) { - $errors->add( 'missing_activity', __( 'Sorry, the item you are replying to no longer exists.', 'buddypress' ) ); - $bp->activity->errors['new_comment'] = $errors; + $error = new WP_Error( 'missing_activity', __( 'The item you were replying to no longer exists.', 'buddypress' ) ); + + if ( 'wp_error' === $r['error_type'] ) { + return $error; + + // Backpat. + } else { + $bp->activity->errors['new_comment'] = $error; + return false; + } - return false; } // Check to see if the parent activity is hidden, and if so, hide this comment publicly. - $is_hidden = ( (int) $activity->hide_sitewide ) ? 1 : 0; + $is_hidden = $activity->hide_sitewide ? 1 : 0; /** * Filters the content of a new comment. @@ -2656,9 +2612,15 @@ function bp_activity_new_comment( $args = '' ) { 'user_id' => $r['user_id'], 'item_id' => $activity_id, 'secondary_item_id' => $r['parent_id'], - 'hide_sitewide' => $is_hidden + 'hide_sitewide' => $is_hidden, + 'error_type' => $r['error_type'] ) ); + // Bail on failure. + if ( false === $comment_id || is_wp_error( $comment_id ) ) { + return $comment_id; + } + // Comment caches are stored only with the top-level item. wp_cache_delete( $activity_id, 'bp_activity_comments' ); @@ -2698,8 +2660,15 @@ function bp_activity_new_comment( $args = '' ) { } if ( empty( $comment_id ) ) { - $errors->add( 'comment_failed', $feedback ); - $bp->activity->errors['new_comment'] = $errors; + $error = new WP_Error( 'comment_failed', $feedback ); + + if ( 'wp_error' === $r['error_type'] ) { + return $error; + + // Backpat. + } else { + $bp->activity->errors['new_comment'] = $error; + } } return $comment_id; @@ -2711,9 +2680,6 @@ function bp_activity_new_comment( $args = '' ) { * @since 1.2.0 * * @see BP_Activity_Activity::get() For more information on accepted arguments. - * @uses wp_parse_args() - * @uses apply_filters() To call the 'bp_activity_get_activity_id' hook. - * @uses BP_Activity_Activity::save() {@link BP_Activity_Activity} * * @param array|string $args See BP_Activity_Activity::get() for description. * @return int $activity_id The ID of the activity item found. @@ -2769,15 +2735,6 @@ function bp_activity_get_activity_id( $args = '' ) { * @since 1.0.0 * * @see BP_Activity_Activity::get() For more information on accepted arguments. - * @uses wp_parse_args() - * @uses bp_activity_adjust_mention_count() - * @uses BP_Activity_Activity::delete() {@link BP_Activity_Activity} - * @uses do_action() To call the 'bp_before_activity_delete' hook. - * @uses bp_get_user_meta() - * @uses bp_delete_user_meta() - * @uses do_action() To call the 'bp_activity_delete' hook. - * @uses do_action() To call the 'bp_activity_deleted_activities' hook. - * @uses wp_cache_delete() * * @param array|string $args To delete specific activity items, use * $args = array( 'id' => $ids ); Otherwise, to use @@ -2863,8 +2820,6 @@ function bp_activity_delete( $args = '' ) { * @since 1.1.0 * @deprecated 1.2.0 * - * @uses wp_parse_args() - * @uses bp_activity_delete() * * @param array|string $args See BP_Activity_Activity::get for a * description of accepted arguments. @@ -2888,7 +2843,6 @@ function bp_activity_delete( $args = '' ) { * * @since 1.1.0 * - * @uses bp_activity_delete() * * @param int $activity_id ID of the activity item to be deleted. * @return bool True on success, false on failure. @@ -2905,7 +2859,6 @@ function bp_activity_delete( $args = '' ) { * @since 1.1.0 * @deprecated 1.2.0 * - * @uses bp_activity_delete() * * @param int $user_id The user id. * @param string $content The activity id. @@ -2930,7 +2883,6 @@ function bp_activity_delete( $args = '' ) { * @since 1.1.0 * @deprecated 1.2.0 * - * @uses bp_activity_delete() * * @param int $user_id The user id. * @param string $component The activity component. @@ -2948,11 +2900,6 @@ function bp_activity_delete( $args = '' ) { * * @since 1.2.0 * - * @uses apply_filters() To call the 'bp_activity_delete_comment_pre' hook. - * @uses bp_activity_delete_children() - * @uses bp_activity_delete() - * @uses BP_Activity_Activity::rebuild_activity_comment_tree() {@link BP_Activity_Activity} - * @uses do_action() To call the 'bp_activity_delete_comment' hook. * @todo Why is an activity id required? We could look this up. * @todo Why do we encourage users to call this function directly? We could just * as easily examine the activity type in bp_activity_delete() and then @@ -3018,9 +2965,6 @@ function bp_activity_delete_comment( $activity_id, $comment_id ) { * * @since 1.2.0 * - * @uses BP_Activity_Activity::get_child_comments() {@link BP_Activity_Activity} - * @uses bp_activity_delete_children() - * @uses bp_activity_delete() * * @param int $activity_id The ID of the "root" activity, ie the * comment's oldest ancestor. @@ -3056,10 +3000,6 @@ function bp_activity_delete_comment( $activity_id, $comment_id ) { * * @since 1.2.0 * - * @uses bp_get_root_domain() - * @uses bp_get_activity_root_slug() - * @uses apply_filters_ref_array() To call the 'bp_activity_get_permalink' hook. - * * @param int $activity_id The unique id of the activity object. * @param object|bool $activity_obj Optional. The activity object. * @return string $link Permalink for the activity item. @@ -3090,7 +3030,7 @@ function bp_activity_get_permalink( $activity_id, $activity_obj = false ) { $link = $activity_obj->primary_link; } else { if ( 'activity_comment' == $activity_obj->type ) { - $link = bp_get_root_domain() . '/' . bp_get_activity_root_slug() . '/p/' . $activity_obj->item_id . '/'; + $link = bp_get_root_domain() . '/' . bp_get_activity_root_slug() . '/p/' . $activity_obj->item_id . '/#acomment-' . $activity_obj->id; } else { $link = bp_get_root_domain() . '/' . bp_get_activity_root_slug() . '/p/' . $activity_obj->id . '/'; } @@ -3111,8 +3051,6 @@ function bp_activity_get_permalink( $activity_id, $activity_obj = false ) { * * @since 1.2.0 * - * @uses BP_Activity_Activity::hide_all_for_user() {@link BP_Activity_Activity} - * * @param int $user_id The ID of the user whose activity is being hidden. * @return bool True on success, false on failure. */ @@ -3134,9 +3072,6 @@ function bp_activity_hide_user_activity( $user_id ) { * * @since 1.2.0 * - * @uses esc_attr() - * @uses apply_filters() To call the 'bp_activity_thumbnail_content_images' hook. - * * @param string $content The content of the activity item. * @param string|bool $link Optional. The unescaped URL that the image should link * to. If absent, the image will not be a link. @@ -3339,8 +3274,12 @@ function bp_activity_create_summary( $content, $activity ) { } // Generate a text excerpt for this activity item (and remove any oEmbeds URLs). - $summary = strip_shortcodes( html_entity_decode( strip_tags( $content ) ) ); - $summary = bp_create_excerpt( preg_replace( '#^\s*(https?://[^\s"]+)\s*$#im', '', $summary ) ); + $summary = bp_create_excerpt( html_entity_decode( $content ), 225, array( + 'html' => false, + 'filter_shortcodes' => true, + 'strip_tags' => true, + 'remove_links' => true + ) ); if ( $use_media_type === 'embeds' ) { $summary .= PHP_EOL . PHP_EOL . $extracted_media['url']; @@ -3387,6 +3326,8 @@ function bp_activity_user_can_mark_spam() { * * @since 1.6.0 * + * @todo We should probably save $source to activity meta. + * * @param BP_Activity_Activity $activity The activity item to be spammed. * @param string $source Optional. Default is "by_a_person" (ie, a person has * manually marked the activity as spam). BP core also @@ -3495,17 +3436,31 @@ function bp_activity_mark_as_ham( &$activity, $source = 'by_a_person' ) { * @see bp_embed_activity_cache() * @see bp_embed_activity_save_cache() * - * @uses add_filter() To attach 'bp_get_activity_id' to 'embed_post_id'. - * @uses add_filter() To attach 'bp_embed_activity_cache' to 'bp_embed_get_cache'. - * @uses add_action() To attach 'bp_embed_activity_save_cache' to 'bp_embed_update_cache'. */ function bp_activity_embed() { add_filter( 'embed_post_id', 'bp_get_activity_id' ); + add_filter( 'oembed_dataparse', 'bp_activity_oembed_dataparse', 10, 2 ); 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 ); } add_action( 'activity_loop_start', 'bp_activity_embed' ); +/** + * Cache full oEmbed response from oEmbed. + * + * @since 2.6.0 + * + * @param string $retval Current oEmbed result. + * @param object $data Full oEmbed response. + * @param string $url URL used for the oEmbed request. + * @return string + */ +function bp_activity_oembed_dataparse( $retval, $data ) { + buddypress()->activity->oembed_response = $data; + + return $retval; +} + /** * Set up activity oEmbed cache while recursing through activity comments. * @@ -3520,9 +3475,6 @@ add_action( 'activity_loop_start', 'bp_activity_embed' ); * @see bp_embed_activity_cache() * @see bp_embed_activity_save_cache() * - * @uses add_filter() To attach 'bp_get_activity_comment_id' to 'embed_post_id'. - * @uses add_filter() To attach 'bp_embed_activity_cache' to 'bp_embed_get_cache'. - * @uses add_action() To attach 'bp_embed_activity_save_cache' to 'bp_embed_update_cache'. */ function bp_activity_comment_embed() { add_filter( 'embed_post_id', 'bp_get_activity_comment_id' ); @@ -3537,9 +3489,6 @@ add_action( 'bp_before_activity_comment', 'bp_activity_comment_embed' ); * @since 1.5.0 * * @see BP_Embed - * @uses add_filter() To attach create_function() to 'embed_post_id'. - * @uses add_filter() To attach 'bp_embed_activity_cache' to 'bp_embed_get_cache'. - * @uses add_action() To attach 'bp_embed_activity_save_cache' to 'bp_embed_update_cache'. * * @param object $activity The activity that is being expanded. */ @@ -3562,7 +3511,6 @@ add_action( 'bp_legacy_theme_get_single_activity_content', 'bp_dtheme_embed_read * @since 1.5.0 * * @see bp_activity_comment_embed() - * @uses remove_filter() To remove 'bp_get_activity_comment_id' from 'embed_post_id'. */ function bp_activity_comment_embed_after_recurse() { remove_filter( 'embed_post_id', 'bp_get_activity_comment_id' ); @@ -3577,7 +3525,6 @@ add_action( 'bp_after_activity_comment', 'bp_activity_comment_embed_after_recurs * @since 1.5.0 * * @see BP_Embed::parse_oembed() - * @uses bp_activity_get_meta() * * @param string $cache An empty string passed by BP_Embed::parse_oembed() for * functions like this one to filter. @@ -3597,7 +3544,6 @@ function bp_embed_activity_cache( $cache, $id, $cachekey ) { * @since 1.5.0 * * @see BP_Embed::parse_oembed() - * @uses bp_activity_update_meta() * * @param string $cache An empty string passed by BP_Embed::parse_oembed() for * functions like this one to filter. @@ -3606,6 +3552,12 @@ function bp_embed_activity_cache( $cache, $id, $cachekey ) { */ function bp_embed_activity_save_cache( $cache, $cachekey, $id ) { bp_activity_update_meta( $id, $cachekey, $cache ); + + // Cache full oEmbed response. + if ( true === isset( buddypress()->activity->oembed_response ) ) { + $cachekey = str_replace( '_oembed', '_oembed_response', $cachekey ); + bp_activity_update_meta( $id, $cachekey, buddypress()->activity->oembed_response ); + } } /** @@ -3613,10 +3565,7 @@ function bp_embed_activity_save_cache( $cache, $cachekey, $id ) { * * @since 2.0.0 * - * @uses bp_is_activity_heartbeat_active() to check if heartbeat setting is on. - * @uses bp_is_activity_directory() to check if the current page is the activity * directory. - * @uses bp_is_group_activity() to check if on a single group, the current page * is the group activities. * * @return bool True if activity heartbeat is enabled, otherwise false. 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 518dacf9a7887e326c2159622ec6bb80bcb0cd8f..1269a5c5f1a69f28bbeb424d0a80b9828212b743 100644 --- a/wp-content/plugins/buddypress/bp-activity/bp-activity-loader.php +++ b/wp-content/plugins/buddypress/bp-activity/bp-activity-loader.php @@ -12,7 +12,9 @@ // Exit if accessed directly. defined( 'ABSPATH' ) || exit; -require dirname( __FILE__ ) . '/classes/class-bp-activity-component.php'; +if ( ! buddypress()->do_autoload ) { + require dirname( __FILE__ ) . '/classes/class-bp-activity-component.php'; +} /** * Bootstrap the Activity component. diff --git a/wp-content/plugins/buddypress/bp-activity/bp-activity-notifications.php b/wp-content/plugins/buddypress/bp-activity/bp-activity-notifications.php index 610df261a7addfc29d18d7306a040c8871c896e5..7803f762adeb7d1e99ef6f3632225007465b2114 100644 --- a/wp-content/plugins/buddypress/bp-activity/bp-activity-notifications.php +++ b/wp-content/plugins/buddypress/bp-activity/bp-activity-notifications.php @@ -17,25 +17,6 @@ defined( 'ABSPATH' ) || exit; * * @since 1.2.0 * - * @uses bp_notifications_add_notification() - * @uses bp_get_user_meta() - * @uses bp_core_get_user_displayname() - * @uses bp_activity_get_permalink() - * @uses bp_core_get_user_domain() - * @uses bp_get_settings_slug() - * @uses bp_activity_filter_kses() - * @uses bp_core_get_core_userdata() - * @uses wp_specialchars_decode() - * @uses get_blog_option() - * @uses bp_is_active() - * @uses bp_is_group() - * @uses bp_get_current_group_name() - * @uses apply_filters() To call the 'bp_activity_at_message_notification_to' hook. - * @uses apply_filters() To call the 'bp_activity_at_message_notification_subject' hook. - * @uses apply_filters() To call the 'bp_activity_at_message_notification_message' hook. - * @uses wp_mail() - * @uses do_action() To call the 'bp_activity_sent_mention_email' hook. - * * @param int $activity_id The ID of the activity update. * @param int $receiver_user_id The ID of the user who is receiving the update. */ @@ -108,26 +89,6 @@ function bp_activity_at_message_notification( $activity_id, $receiver_user_id ) * @since 1.2.0 * @since 2.5.0 Updated to use new email APIs. * - * @uses bp_get_user_meta() - * @uses bp_core_get_user_displayname() - * @uses bp_activity_get_permalink() - * @uses bp_core_get_user_domain() - * @uses bp_get_settings_slug() - * @uses bp_activity_filter_kses() - * @uses bp_core_get_core_userdata() - * @uses wp_specialchars_decode() - * @uses get_blog_option() - * @uses bp_get_root_blog_id() - * @uses apply_filters() To call the 'bp_activity_new_comment_notification_to' hook. - * @uses apply_filters() To call the 'bp_activity_new_comment_notification_subject' hook. - * @uses apply_filters() To call the 'bp_activity_new_comment_notification_message' hook. - * @uses wp_mail() - * @uses do_action() To call the 'bp_activity_sent_reply_to_update_email' hook. - * @uses apply_filters() To call the 'bp_activity_new_comment_notification_comment_author_to' hook. - * @uses apply_filters() To call the 'bp_activity_new_comment_notification_comment_author_subject' hook. - * @uses apply_filters() To call the 'bp_activity_new_comment_notification_comment_author_message' hook. - * @uses do_action() To call the 'bp_activity_sent_reply_to_reply_email' hook. - * * @param int $comment_id The comment id. * @param int $commenter_id The ID of the user who posted the comment. * @param array $params {@link bp_activity_new_comment()}. @@ -148,19 +109,35 @@ function bp_activity_new_comment_notification( $comment_id = 0, $commenter_id = add_filter( 'bp_get_activity_content_body', 'wpautop' ); add_filter( 'bp_get_activity_content_body', 'bp_activity_truncate_entry', 5 ); - if ( $original_activity->user_id != $commenter_id && 'no' != bp_get_user_meta( $original_activity->user_id, 'notification_activity_new_reply', true ) ) { - $args = array( - 'tokens' => array( - 'comment.id' => $comment_id, - 'commenter.id' => $commenter_id, - 'usermessage' => wp_strip_all_tags( $content ), - 'original_activity.user_id' => $original_activity->user_id, - 'poster.name' => $poster_name, - 'thread.url' => esc_url( $thread_link ), - ), - ); + if ( $original_activity->user_id != $commenter_id ) { + + // Send an email if the user hasn't opted-out. + if ( 'no' != bp_get_user_meta( $original_activity->user_id, 'notification_activity_new_reply', true ) ) { + $args = array( + 'tokens' => array( + 'comment.id' => $comment_id, + 'commenter.id' => $commenter_id, + 'usermessage' => wp_strip_all_tags( $content ), + 'original_activity.user_id' => $original_activity->user_id, + 'poster.name' => $poster_name, + 'thread.url' => esc_url( $thread_link ), + ), + ); + + bp_send_email( 'activity-comment', $original_activity->user_id, $args ); + } - bp_send_email( 'activity-comment', $original_activity->user_id, $args ); + /** + * Fires at the point that notifications should be sent for activity comments. + * + * @since 2.6.0 + * + * @param BP_Activity_Activity $original_activity The original activity. + * @param int $comment_id ID for the newly received comment. + * @param int $commenter_id ID of the user who made the comment. + * @param array $params Arguments used with the original activity comment. + */ + do_action( 'bp_activity_sent_reply_to_update_notification', $original_activity, $comment_id, $commenter_id, $params ); } @@ -174,19 +151,35 @@ function bp_activity_new_comment_notification( $comment_id = 0, $commenter_id = $parent_comment = new BP_Activity_Activity( $params['parent_id'] ); - if ( $parent_comment->user_id != $commenter_id && $original_activity->user_id != $parent_comment->user_id && 'no' != bp_get_user_meta( $parent_comment->user_id, 'notification_activity_new_reply', true ) ) { - $args = array( - 'tokens' => array( - 'comment.id' => $comment_id, - 'commenter.id' => $commenter_id, - 'usermessage' => wp_strip_all_tags( $content ), - 'parent-comment-user.id' => $parent_comment->user_id, - 'poster.name' => $poster_name, - 'thread.url' => esc_url( $thread_link ), - ), - ); + if ( $parent_comment->user_id != $commenter_id && $original_activity->user_id != $parent_comment->user_id ) { + + // Send an email if the user hasn't opted-out. + if ( 'no' != bp_get_user_meta( $parent_comment->user_id, 'notification_activity_new_reply', true ) ) { + $args = array( + 'tokens' => array( + 'comment.id' => $comment_id, + 'commenter.id' => $commenter_id, + 'usermessage' => wp_strip_all_tags( $content ), + 'parent-comment-user.id' => $parent_comment->user_id, + 'poster.name' => $poster_name, + 'thread.url' => esc_url( $thread_link ), + ), + ); + + bp_send_email( 'activity-comment-author', $parent_comment->user_id, $args ); + } - bp_send_email( 'activity-comment-author', $parent_comment->user_id, $args ); + /** + * Fires at the point that notifications should be sent for comments on activity replies. + * + * @since 2.6.0 + * + * @param BP_Activity_Activity $parent_comment The parent activity. + * @param int $comment_id ID for the newly received comment. + * @param int $commenter_id ID of the user who made the comment. + * @param array $params Arguments used with the original activity comment. + */ + do_action( 'bp_activity_sent_reply_to_reply_notification', $parent_comment, $comment_id, $commenter_id, $params ); } } @@ -210,36 +203,63 @@ add_action( 'bp_activity_comment_posted', 'bp_activity_new_comment_notification_ * * @since 1.5.0 * - * @uses bp_loggedin_user_domain() - * @uses bp_get_activity_slug() - * @uses bp_core_get_user_displayname() - * @uses apply_filters() To call the 'bp_activity_multiple_at_mentions_notification' hook. - * @uses apply_filters() To call the 'bp_activity_single_at_mentions_notification' hook. - * @uses do_action() To call 'activity_format_notifications' hook. - * * @param string $action The type of activity item. Just 'new_at_mention' for now. * @param int $item_id The activity ID. * @param int $secondary_item_id In the case of at-mentions, this is the mentioner's ID. * @param int $total_items The total number of notifications to format. * @param string $format 'string' to get a BuddyBar-compatible notification, 'array' otherwise. + * @param int $id Optional. The notification ID. * @return string $return Formatted @mention notification. */ -function bp_activity_format_notifications( $action, $item_id, $secondary_item_id, $total_items, $format = 'string' ) { +function bp_activity_format_notifications( $action, $item_id, $secondary_item_id, $total_items, $format = 'string', $id = 0 ) { + $action_filter = $action; + $return = false; + $activity_id = $item_id; + $user_id = $secondary_item_id; + $user_fullname = bp_core_get_user_displayname( $user_id ); switch ( $action ) { case 'new_at_mention': - $activity_id = $item_id; - $poster_user_id = $secondary_item_id; - $at_mention_link = bp_loggedin_user_domain() . bp_get_activity_slug() . '/mentions/'; - $at_mention_title = sprintf( __( '@%s Mentions', 'buddypress' ), bp_get_loggedin_user_username() ); + $action_filter = 'at_mentions'; + $link = bp_loggedin_user_domain() . bp_get_activity_slug() . '/mentions/'; + $title = sprintf( __( '@%s Mentions', 'buddypress' ), bp_get_loggedin_user_username() ); + $amount = 'single'; + + if ( (int) $total_items > 1 ) { + $text = sprintf( __( 'You have %1$d new mentions', 'buddypress' ), (int) $total_items ); + $amount = 'multiple'; + } else { + $text = sprintf( __( '%1$s mentioned you', 'buddypress' ), $user_fullname ); + } + break; + + case 'update_reply': + $link = bp_get_notifications_permalink(); + $title = __( 'New Activity reply', 'buddypress' ); $amount = 'single'; if ( (int) $total_items > 1 ) { - $text = sprintf( __( 'You have %1$d new mentions', 'buddypress' ), (int) $total_items ); + $link = add_query_arg( 'type', $action, $link ); + $text = sprintf( __( 'You have %1$d new replies', 'buddypress' ), (int) $total_items ); $amount = 'multiple'; } else { - $user_fullname = bp_core_get_user_displayname( $poster_user_id ); - $text = sprintf( __( '%1$s mentioned you', 'buddypress' ), $user_fullname ); + $link = add_query_arg( 'nid', (int) $id, bp_activity_get_permalink( $activity_id ) ); + $text = sprintf( __( '%1$s commented on one of your updates', 'buddypress' ), $user_fullname ); + } + break; + + case 'comment_reply': + $link = bp_get_notifications_permalink(); + $title = __( 'New Activity comment reply', 'buddypress' ); + $amount = 'single'; + + if ( (int) $total_items > 1 ) { + $link = add_query_arg( 'type', $action, $link ); + $text = sprintf( __( 'You have %1$d new comment replies', 'buddypress' ), (int) $total_items ); + $amount = 'multiple'; + } else { + $link = add_query_arg( 'nid', (int) $id, bp_activity_get_permalink( $activity_id ) ); + $text = sprintf( __( '%1$s replied to one your activity comments', 'buddypress' ), $user_fullname ); } break; } @@ -247,42 +267,44 @@ function bp_activity_format_notifications( $action, $item_id, $secondary_item_id if ( 'string' == $format ) { /** - * Filters the @mention notification for the string format. + * Filters the activity notification for the string format. * * This is a variable filter that is dependent on how many items * need notified about. The two possible hooks are bp_activity_single_at_mentions_notification * or bp_activity_multiple_at_mentions_notification. * * @since 1.5.0 + * @since 2.6.0 use the $action_filter as a new dynamic portion of the filter name. * - * @param string $string HTML anchor tag for the mention. - * @param string $at_mention_link The permalink for the mention. + * @param string $string HTML anchor tag for the interaction. + * @param string $link The permalink for the interaction. * @param int $total_items How many items being notified about. * @param int $activity_id ID of the activity item being formatted. - * @param int $poster_user_id ID of the user posting the mention. + * @param int $user_id ID of the user who inited the interaction. */ - $return = apply_filters( 'bp_activity_' . $amount . '_at_mentions_notification', '<a href="' . esc_url( $at_mention_link ) . '" title="' . esc_attr( $at_mention_title ) . '">' . esc_html( $text ) . '</a>', $at_mention_link, (int) $total_items, $activity_id, $poster_user_id ); + $return = apply_filters( 'bp_activity_' . $amount . '_' . $action_filter . '_notification', '<a href="' . esc_url( $link ) . '" title="' . esc_attr( $title ) . '">' . esc_html( $text ) . '</a>', $link, (int) $total_items, $activity_id, $user_id ); } else { /** - * Filters the @mention notification for any non-string format. + * Filters the activity notification for any non-string format. * * This is a variable filter that is dependent on how many items need notified about. * The two possible hooks are bp_activity_single_at_mentions_notification * or bp_activity_multiple_at_mentions_notification. * * @since 1.5.0 + * @since 2.6.0 use the $action_filter as a new dynamic portion of the filter name. * - * @param array $array Array holding the content and permalink for the mention notification. - * @param string $at_mention_link The permalink for the mention. + * @param array $array Array holding the content and permalink for the interaction notification. + * @param string $link The permalink for the interaction. * @param int $total_items How many items being notified about. * @param int $activity_id ID of the activity item being formatted. - * @param int $poster_user_id ID of the user posting the mention. + * @param int $user_id ID of the user who inited the interaction. */ - $return = apply_filters( 'bp_activity_' . $amount . '_at_mentions_notification', array( + $return = apply_filters( 'bp_activity_' . $amount . '_' . $action_filter . '_notification', array( 'text' => $text, - 'link' => $at_mention_link - ), $at_mention_link, (int) $total_items, $activity_id, $poster_user_id ); + 'link' => $link + ), $link, (int) $total_items, $activity_id, $user_id ); } /** @@ -292,7 +314,7 @@ function bp_activity_format_notifications( $action, $item_id, $secondary_item_id * * @param string $action The type of activity item. * @param int $item_id The activity ID. - * @param int $secondary_item_id @mention mentioner ID. + * @param int $secondary_item_id The user ID who inited the interaction. * @param int $total_items Total amount of items to format. */ do_action( 'activity_format_notifications', $action, $item_id, $secondary_item_id, $total_items ); @@ -331,6 +353,54 @@ function bp_activity_at_mention_add_notification( $activity, $subject, $message, } add_action( 'bp_activity_sent_mention_email', 'bp_activity_at_mention_add_notification', 10, 5 ); +/** + * Notify a member one of their activity received a reply. + * + * @since 2.6.0 + * + * @param BP_Activity_Activity $activity The original activity. + * @param int $comment_id ID for the newly received comment. + * @param int $commenter_id ID of the user who made the comment. + */ +function bp_activity_update_reply_add_notification( $activity, $comment_id, $commenter_id ) { + if ( bp_is_active( 'notifications' ) ) { + bp_notifications_add_notification( array( + 'user_id' => $activity->user_id, + 'item_id' => $comment_id, + 'secondary_item_id' => $commenter_id, + 'component_name' => buddypress()->activity->id, + 'component_action' => 'update_reply', + 'date_notified' => bp_core_current_time(), + 'is_new' => 1, + ) ); + } +} +add_action( 'bp_activity_sent_reply_to_update_notification', 'bp_activity_update_reply_add_notification', 10, 3 ); + +/** + * Notify a member one of their activity comment received a reply. + * + * @since 2.6.0 + * + * @param BP_Activity_Activity $activity_comment The parent activity. + * @param int $comment_id ID for the newly received comment. + * @param int $commenter_id ID of the user who made the comment. + */ +function bp_activity_comment_reply_add_notification( $activity_comment, $comment_id, $commenter_id ) { + if ( bp_is_active( 'notifications' ) ) { + bp_notifications_add_notification( array( + 'user_id' => $activity_comment->user_id, + 'item_id' => $comment_id, + 'secondary_item_id' => $commenter_id, + 'component_name' => buddypress()->activity->id, + 'component_action' => 'comment_reply', + 'date_notified' => bp_core_current_time(), + 'is_new' => 1, + ) ); + } +} +add_action( 'bp_activity_sent_reply_to_reply_notification', 'bp_activity_comment_reply_add_notification', 10, 3 ); + /** * Mark at-mention notifications as read when users visit their Mentions page. * @@ -338,7 +408,6 @@ add_action( 'bp_activity_sent_mention_email', 'bp_activity_at_mention_add_notifi * @since 2.5.0 Add the $user_id parameter * * @param int $user_id The id of the user whose notifications are marked as read. - * @uses bp_notifications_mark_all_notifications_by_type() */ function bp_activity_remove_screen_notifications( $user_id = 0 ) { if ( ! bp_is_active( 'notifications' ) ) { @@ -375,6 +444,32 @@ function bp_activity_remove_screen_notifications_single_activity_permalink( $act } add_action( 'bp_activity_screen_single_activity_permalink', 'bp_activity_remove_screen_notifications_single_activity_permalink' ); +/** + * Mark non-mention notifications as read when user visits our read permalink. + * + * In particular, 'update_reply' and 'comment_reply' notifications are handled + * here. See {@link bp_activity_format_notifications()} for more info. + * + * @since 2.6.0 + */ +function bp_activity_remove_screen_notifications_for_non_mentions() { + if ( false === bp_is_active( 'notifications' ) || false === is_singular() || false === is_user_logged_in() || empty( $_GET['nid'] ) ) { + return; + } + + // Mark notification as read. + BP_Notifications_Notification::update( + array( + 'is_new' => false + ), + array( + 'user_id' => bp_loggedin_user_id(), + 'id' => (int) $_GET['nid'] + ) + ); +} +add_action( 'bp_screens', 'bp_activity_remove_screen_notifications_for_non_mentions' ); + /** * Delete at-mention notifications when the corresponding activity item is deleted. * @@ -392,3 +487,57 @@ function bp_activity_at_mention_delete_notification( $activity_ids_deleted = arr } } add_action( 'bp_activity_deleted_activities', 'bp_activity_at_mention_delete_notification', 10 ); + +/** + * Add a notification for post comments to the post author or post commenter. + * + * Requires "activity stream commenting on blog and forum posts" to be enabled. + * + * @since 2.6.0 + * + * @param int $activity_id The activity comment ID. + * @param WP_Comment $post_type_comment WP Comment object. + * @param array $activity_args Activity comment arguments. + * @param object $activity_post_object The post type tracking args object. + */ +function bp_activity_add_notification_for_synced_blog_comment( $activity_id, $post_type_comment, $activity_args, $activity_post_object ) { + // If activity comments are disabled for WP posts, stop now! + if ( bp_disable_blogforum_comments() || empty( $activity_id ) || false === bp_is_active( 'notifications' ) ) { + return; + } + + // Send a notification to the blog post author. + if ( (int) $post_type_comment->post->post_author !== (int) $activity_args['user_id'] ) { + // Only add a notification if comment author is a registered user. + // @todo Should we remove this restriction? + if ( ! empty( $post_type_comment->user_id ) ) { + bp_notifications_add_notification( array( + 'user_id' => $post_type_comment->post->post_author, + 'item_id' => $activity_id, + 'secondary_item_id' => $post_type_comment->user_id, + 'component_name' => buddypress()->activity->id, + 'component_action' => 'update_reply', + 'date_notified' => $post_type_comment->comment_date_gmt, + 'is_new' => 1, + ) ); + } + } + + // Send a notification to the parent comment author for follow-up comments. + if ( ! empty( $post_type_comment->comment_parent ) ) { + $parent_comment = get_comment( $post_type_comment->comment_parent ); + + if ( ! empty( $parent_comment->user_id ) && (int) $parent_comment->user_id !== (int) $activity_args['user_id'] ) { + bp_notifications_add_notification( array( + 'user_id' => $parent_comment->user_id, + 'item_id' => $activity_id, + 'secondary_item_id' => $post_type_comment->user_id, + 'component_name' => buddypress()->activity->id, + 'component_action' => 'comment_reply', + 'date_notified' => $post_type_comment->comment_date_gmt, + 'is_new' => 1, + ) ); + } + } +} +add_action( 'bp_blogs_comment_sync_activity_comment', 'bp_activity_add_notification_for_synced_blog_comment', 10, 4 ); 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 1865f416bb34b14d27ed0e59700f08c95b30d494..a1315489830d27cd569fc37ebbfd6e9cf9947d93 100644 --- a/wp-content/plugins/buddypress/bp-activity/bp-activity-screens.php +++ b/wp-content/plugins/buddypress/bp-activity/bp-activity-screens.php @@ -14,20 +14,15 @@ // Exit if accessed directly. defined( 'ABSPATH' ) || exit; -require dirname( __FILE__ ) . '/classes/class-bp-activity-theme-compat.php'; +if ( ! buddypress()->do_autoload ) { + require dirname( __FILE__ ) . '/classes/class-bp-activity-theme-compat.php'; +} /** * Load the Activity directory. * * @since 1.5.0 * - * @uses bp_displayed_user_id() - * @uses bp_is_activity_component() - * @uses bp_current_action() - * @uses bp_update_is_directory() - * @uses do_action() To call the 'bp_activity_screen_index' hook. - * @uses bp_core_load_template() - * @uses apply_filters() To call the 'bp_activity_screen_index' hook. */ function bp_activity_screen_index() { if ( bp_is_activity_directory() ) { @@ -57,9 +52,6 @@ add_action( 'bp_screens', 'bp_activity_screen_index' ); * * @since 1.0.0 * - * @uses do_action() To call the 'bp_activity_screen_my_activity' hook. - * @uses bp_core_load_template() - * @uses apply_filters() To call the 'bp_activity_template_my_activity' hook. */ function bp_activity_screen_my_activity() { @@ -85,12 +77,6 @@ function bp_activity_screen_my_activity() { * * @since 1.0.0 * - * @uses bp_is_active() - * @uses bp_update_is_item_admin() - * @uses bp_current_user_can() - * @uses do_action() To call the 'bp_activity_screen_friends' hook. - * @uses bp_core_load_template() - * @uses apply_filters() To call the 'bp_activity_template_friends_activity' hook. */ function bp_activity_screen_friends() { if ( !bp_is_active( 'friends' ) ) @@ -120,12 +106,6 @@ function bp_activity_screen_friends() { * * @since 1.2.0 * - * @uses bp_is_active() - * @uses bp_update_is_item_admin() - * @uses bp_current_user_can() - * @uses do_action() To call the 'bp_activity_screen_groups' hook. - * @uses bp_core_load_template() - * @uses apply_filters() To call the 'bp_activity_template_groups_activity' hook. */ function bp_activity_screen_groups() { if ( !bp_is_active( 'groups' ) ) @@ -155,11 +135,6 @@ function bp_activity_screen_groups() { * * @since 1.2.0 * - * @uses bp_update_is_item_admin() - * @uses bp_current_user_can() - * @uses do_action() To call the 'bp_activity_screen_favorites' hook. - * @uses bp_core_load_template() - * @uses apply_filters() To call the 'bp_activity_template_favorite_activity' hook. */ function bp_activity_screen_favorites() { bp_update_is_item_admin( bp_current_user_can( 'bp_moderate' ), 'activity' ); @@ -186,11 +161,6 @@ function bp_activity_screen_favorites() { * * @since 1.2.0 * - * @uses bp_update_is_item_admin() - * @uses bp_current_user_can() - * @uses do_action() To call the 'bp_activity_screen_mentions' hook. - * @uses bp_core_load_template() - * @uses apply_filters() To call the 'bp_activity_template_mention_activity' hook. */ function bp_activity_screen_mentions() { bp_update_is_item_admin( bp_current_user_can( 'bp_moderate' ), 'activity' ); @@ -217,9 +187,6 @@ function bp_activity_screen_mentions() { * * @since 1.5.0 * - * @uses bp_is_my_profile() - * @uses bp_activity_clear_new_mentions() - * @uses bp_loggedin_user_id() */ function bp_activity_reset_my_new_mentions() { if ( bp_is_my_profile() ) @@ -232,25 +199,6 @@ add_action( 'bp_activity_screen_mentions', 'bp_activity_reset_my_new_mentions' ) * * @since 1.2.0 * - * @uses bp_is_activity_component() - * @uses bp_activity_get_specific() - * @uses bp_current_action() - * @uses bp_action_variables() - * @uses bp_do_404() - * @uses bp_is_active() - * @uses groups_get_group() - * @uses groups_is_user_member() - * @uses apply_filters_ref_array() To call the 'bp_activity_permalink_access' hook. - * @uses do_action() To call the 'bp_activity_screen_single_activity_permalink' hook. - * @uses bp_core_add_message() - * @uses is_user_logged_in() - * @uses bp_core_redirect() - * @uses site_url() - * @uses esc_url() - * @uses bp_get_root_domain() - * @uses bp_get_activity_root_slug() - * @uses bp_core_load_template() - * @uses apply_filters() To call the 'bp_activity_template_profile_activity_permalink' hook. */ function bp_activity_screen_single_activity_permalink() { $bp = buddypress(); @@ -301,6 +249,11 @@ function bp_activity_screen_single_activity_permalink() { } } + // If activity author does not match displayed user, block access. + if ( true === $has_access && bp_displayed_user_id() !== $activity->user_id ) { + $has_access = false; + } + /** * Filters the access permission for a single activity view. * @@ -333,7 +286,7 @@ function bp_activity_screen_single_activity_permalink() { } else { $url = sprintf( site_url( 'wp-login.php?redirect_to=%s' ), - urlencode( esc_url_raw( bp_activity_get_permalink( (int) bp_current_action() ) ) ) + urlencode( esc_url_raw( bp_activity_get_permalink( bp_current_action() ) ) ) ); } @@ -356,9 +309,6 @@ add_action( 'bp_screens', 'bp_activity_screen_single_activity_permalink' ); * * @since 1.2.0 * - * @uses bp_get_user_meta() - * @uses bp_core_get_username() - * @uses do_action() To call the 'bp_activity_screen_notification_settings' hook. */ function bp_activity_screen_notification_settings() { @@ -389,16 +339,28 @@ function bp_activity_screen_notification_settings() { <tr id="activity-notification-settings-mentions"> <td> </td> <td><?php printf( __( 'A member mentions you in an update using "@%s"', 'buddypress' ), bp_core_get_username( bp_displayed_user_id() ) ) ?></td> - <td class="yes"><input type="radio" name="notifications[notification_activity_new_mention]" id="notification-activity-new-mention-yes" value="yes" <?php checked( $mention, 'yes', true ) ?>/><label for="notification-activity-new-mention-yes" class="bp-screen-reader-text"><?php _e( 'Yes, send email', 'buddypress' ); ?></label></td> - <td class="no"><input type="radio" name="notifications[notification_activity_new_mention]" id="notification-activity-new-mention-no" value="no" <?php checked( $mention, 'no', true ) ?>/><label for="notification-activity-new-mention-no" class="bp-screen-reader-text"><?php _e( 'No, do not send email', 'buddypress' ); ?></label></td> + <td class="yes"><input type="radio" name="notifications[notification_activity_new_mention]" id="notification-activity-new-mention-yes" value="yes" <?php checked( $mention, 'yes', true ) ?>/><label for="notification-activity-new-mention-yes" class="bp-screen-reader-text"><?php + /* translators: accessibility text */ + _e( 'Yes, send email', 'buddypress' ); + ?></label></td> + <td class="no"><input type="radio" name="notifications[notification_activity_new_mention]" id="notification-activity-new-mention-no" value="no" <?php checked( $mention, 'no', true ) ?>/><label for="notification-activity-new-mention-no" class="bp-screen-reader-text"><?php + /* translators: accessibility text */ + _e( 'No, do not send email', 'buddypress' ); + ?></label></td> </tr> <?php endif; ?> <tr id="activity-notification-settings-replies"> <td> </td> <td><?php _e( "A member replies to an update or comment you've posted", 'buddypress' ) ?></td> - <td class="yes"><input type="radio" name="notifications[notification_activity_new_reply]" id="notification-activity-new-reply-yes" value="yes" <?php checked( $reply, 'yes', true ) ?>/><label for="notification-activity-new-reply-yes" class="bp-screen-reader-text"><?php _e( 'Yes, send email', 'buddypress' ); ?></label></td> - <td class="no"><input type="radio" name="notifications[notification_activity_new_reply]" id="notification-activity-new-reply-no" value="no" <?php checked( $reply, 'no', true ) ?>/><label for="notification-activity-new-reply-no" class="bp-screen-reader-text"><?php _e( 'No, do not send email', 'buddypress' ); ?></label></td> + <td class="yes"><input type="radio" name="notifications[notification_activity_new_reply]" id="notification-activity-new-reply-yes" value="yes" <?php checked( $reply, 'yes', true ) ?>/><label for="notification-activity-new-reply-yes" class="bp-screen-reader-text"><?php + /* translators: accessibility text */ + _e( 'Yes, send email', 'buddypress' ); + ?></label></td> + <td class="no"><input type="radio" name="notifications[notification_activity_new_reply]" id="notification-activity-new-reply-no" value="no" <?php checked( $reply, 'no', true ) ?>/><label for="notification-activity-new-reply-no" class="bp-screen-reader-text"><?php + /* translators: accessibility text */ + _e( 'No, do not send email', 'buddypress' ); + ?></label></td> </tr> <?php 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 a957cb5a696d1118bc885382418ef6ab624b8918..92b42bc5675b5a414ec9c62694e0a69d508a1170 100644 --- a/wp-content/plugins/buddypress/bp-activity/bp-activity-template.php +++ b/wp-content/plugins/buddypress/bp-activity/bp-activity-template.php @@ -10,14 +10,15 @@ // Exit if accessed directly. defined( 'ABSPATH' ) || exit; -require dirname( __FILE__ ) . '/classes/class-bp-activity-template.php'; +if ( ! buddypress()->do_autoload ) { + require dirname( __FILE__ ) . '/classes/class-bp-activity-template.php'; +} /** * Output the activity component slug. * * @since 1.5.0 * - * @uses bp_get_activity_slug() */ function bp_activity_slug() { echo bp_get_activity_slug(); @@ -27,7 +28,6 @@ function bp_activity_slug() { * * @since 1.5.0 * - * @uses apply_filters() To call the 'bp_get_activity_slug' hook. * * @return string The activity component slug. */ @@ -48,7 +48,6 @@ function bp_activity_slug() { * * @since 1.5.0 * - * @uses bp_get_activity_root_slug() */ function bp_activity_root_slug() { echo bp_get_activity_root_slug(); @@ -58,7 +57,6 @@ function bp_activity_root_slug() { * * @since 1.5.0 * - * @uses apply_filters() To call the 'bp_get_activity_root_slug' hook. * * @return string The activity component root slug. */ @@ -79,7 +77,6 @@ function bp_activity_root_slug() { * * @since 1.5.0 * - * @uses bp_get_activity_directory_permalink() */ function bp_activity_directory_permalink() { echo esc_url( bp_get_activity_directory_permalink() ); @@ -89,10 +86,6 @@ function bp_activity_directory_permalink() { * * @since 1.5.0 * - * @uses trailingslashit() - * @uses bp_get_root_domain() - * @uses bp_get_activity_root_slug() - * @uses apply_filters() To call the 'bp_get_activity_directory_permalink' hook. * * @return string Activity directory permalink. */ @@ -119,17 +112,6 @@ function bp_activity_directory_permalink() { * @since 2.4.0 Introduced the `$fields` parameter. * * @global object $activities_template {@link BP_Activity_Template} - * @uses groups_is_user_member() - * @uses bp_current_action() - * @uses bp_is_current_action() - * @uses bp_get_activity_slug() - * @uses bp_action_variable() - * @uses wp_parse_args() - * @uses bp_is_active() - * @uses friends_get_friend_user_ids() - * @uses groups_get_user_groups() - * @uses bp_activity_get_user_favorites() - * @uses apply_filters() To call the 'bp_has_activities' hook. * * @param array|string $args { * Arguments for limiting the contents of the activity loop. Most arguments @@ -388,7 +370,6 @@ function bp_has_activities( $args = '' ) { * @since 1.0.0 * * @global object $activities_template {@link BP_Activity_Template} - * @uses BP_Activity_Template::user_activities() {@link BP_Activity_Template::user_activities()} * * @return bool Returns true when activities are found. */ @@ -403,7 +384,6 @@ function bp_activities() { * @since 1.0.0 * * @global object $activities_template {@link BP_Activity_Template} - * @uses BP_Activity_Template::the_activity() {@link BP_Activity_Template::the_activity()} * * @return object The current activity within the loop. */ @@ -451,7 +431,6 @@ function bp_activity_load_more_link() { * @since 1.0.0 * * @global object $activities_template {@link BP_Activity_Template} - * @uses BP_Activity_Template::the_activity() {@link BP_Activity_Template::the_activity()} */ function bp_activity_pagination_count() { echo bp_get_activity_pagination_count(); @@ -463,7 +442,6 @@ function bp_activity_pagination_count() { * @since 1.2.0 * * @global object $activities_template {@link BP_Activity_Template} - * @uses bp_core_number_format() * * @return string The pagination text. */ @@ -489,7 +467,6 @@ function bp_activity_pagination_count() { * * @since 1.0.0 * - * @uses bp_get_activity_pagination_links() */ function bp_activity_pagination_links() { echo bp_get_activity_pagination_links(); @@ -501,7 +478,6 @@ function bp_activity_pagination_links() { * @since 1.0.0 * * @global object $activities_template {@link BP_Activity_Template} - * @uses apply_filters() To call the 'bp_get_activity_pagination_links' hook. * * @return string The pagination links. */ @@ -524,7 +500,6 @@ function bp_activity_pagination_links() { * @since 1.5.0 * * @global object $activities_template {@link BP_Activity_Template} - * @uses apply_filters() To call the 'bp_activity_has_more_items' hook. * * @return bool $has_more_items True if more items, false if not. */ @@ -558,7 +533,6 @@ function bp_activity_has_more_items() { * * @since 1.2.0 * - * @uses bp_get_activity_count() */ function bp_activity_count() { echo bp_get_activity_count(); @@ -570,7 +544,6 @@ function bp_activity_count() { * @since 1.2.0 * * @global object $activities_template {@link BP_Activity_Template} - * @uses apply_filters() To call the 'bp_get_activity_count' hook. * * @return int The activity count. */ @@ -592,7 +565,6 @@ function bp_activity_count() { * * @since 1.2.0 * - * @uses bp_get_activity_per_page() */ function bp_activity_per_page() { echo bp_get_activity_per_page(); @@ -604,7 +576,6 @@ function bp_activity_per_page() { * @since 1.2.0 * * @global object $activities_template {@link BP_Activity_Template} - * @uses apply_filters() To call the 'bp_get_activity_per_page' hook. * * @return int The activities per page. */ @@ -626,7 +597,6 @@ function bp_activity_per_page() { * * @since 1.0.0 * - * @uses bp_get_activities_title() * @todo Deprecate. */ function bp_activities_title() { @@ -639,7 +609,6 @@ function bp_activities_title() { * @since 1.0.0 * * @global string $bp_activity_title - * @uses apply_filters() To call the 'bp_get_activities_title' hook. * @todo Deprecate. * * @return string The activities title. @@ -662,7 +631,6 @@ function bp_activities_title() { * * @since 1.0.0 * - * @uses bp_get_activities_no_activity() * @todo Deprecate. */ function bp_activities_no_activity() { @@ -675,7 +643,6 @@ function bp_activities_no_activity() { * @since 1.0.0 * * @global string $bp_activity_no_activity - * @uses apply_filters() To call the 'bp_get_activities_no_activity' hook. * @todo Deprecate. * * @return string @@ -698,7 +665,6 @@ function bp_activities_no_activity() { * * @since 1.2.0 * - * @uses bp_get_activity_id() */ function bp_activity_id() { echo bp_get_activity_id(); @@ -710,7 +676,6 @@ function bp_activity_id() { * @since 1.2.0 * * @global object $activities_template {@link BP_Activity_Template} - * @uses apply_filters() To call the 'bp_get_activity_id' hook. * * @return int The activity ID. */ @@ -732,7 +697,6 @@ function bp_activity_id() { * * @since 1.2.0 * - * @uses bp_get_activity_item_id() */ function bp_activity_item_id() { echo bp_get_activity_item_id(); @@ -744,7 +708,6 @@ function bp_activity_item_id() { * @since 1.2.0 * * @global object $activities_template {@link BP_Activity_Template} - * @uses apply_filters() To call the 'bp_get_activity_item_id' hook. * * @return int The activity item ID. */ @@ -766,7 +729,6 @@ function bp_activity_item_id() { * * @since 1.2.0 * - * @uses bp_get_activity_secondary_item_id() */ function bp_activity_secondary_item_id() { echo bp_get_activity_secondary_item_id(); @@ -778,7 +740,6 @@ function bp_activity_secondary_item_id() { * @since 1.2.0 * * @global object $activities_template {@link BP_Activity_Template} - * @uses apply_filters() To call the 'bp_get_activity_secondary_item_id' hook. * * @return int The activity secondary item ID. */ @@ -800,7 +761,6 @@ function bp_activity_secondary_item_id() { * * @since 1.2.0 * - * @uses bp_get_activity_date_recorded() */ function bp_activity_date_recorded() { echo bp_get_activity_date_recorded(); @@ -812,7 +772,6 @@ function bp_activity_date_recorded() { * @since 1.2.0 * * @global object $activities_template {@link BP_Activity_Template} - * @uses apply_filters() To call the 'bp_get_activity_date_recorded' hook. * * @return string The date the activity was recorded. */ @@ -834,7 +793,6 @@ function bp_activity_date_recorded() { * * @since 2.1.0 * - * @uses bp_get_activity_member_display_name() */ function bp_activity_member_display_name() { echo bp_get_activity_member_display_name(); @@ -846,7 +804,6 @@ function bp_activity_member_display_name() { * @since 2.1.0 * * @global object $activities_template {@link BP_Activity_Template} - * @uses apply_filters() To call the 'bp_get_activity_member_display_name' hook. * * @return string The date the activity was recorded. */ @@ -872,7 +829,6 @@ function bp_activity_member_display_name() { * * @since 1.2.0 * - * @uses bp_get_activity_object_name() */ function bp_activity_object_name() { echo bp_get_activity_object_name(); @@ -884,7 +840,6 @@ function bp_activity_object_name() { * @since 1.2.0 * * @global object $activities_template {@link BP_Activity_Template} - * @uses apply_filters() To call the 'bp_get_activity_object_name' hook. * * @return string The activity object name. */ @@ -906,7 +861,6 @@ function bp_activity_object_name() { * * @since 1.2.0 * - * @uses bp_get_activity_type() */ function bp_activity_type() { echo bp_get_activity_type(); @@ -918,7 +872,6 @@ function bp_activity_type() { * @since 1.2.0 * * @global object $activities_template {@link BP_Activity_Template} - * @uses apply_filters() To call the 'bp_get_activity_type' hook. * * @return string The activity type. */ @@ -946,7 +899,6 @@ function bp_activity_type() { * @todo Properly deprecate in favor of bp_activity_type() and * remove redundant echo * - * @uses bp_activity_type() */ function bp_activity_action_name() { echo bp_activity_type(); } @@ -960,7 +912,6 @@ function bp_activity_type() { * * @todo Properly deprecate in favor of bp_get_activity_type(). * - * @uses bp_get_activity_type() * * @return string The activity type. */ @@ -971,7 +922,6 @@ function bp_activity_type() { * * @since 1.1.0 * - * @uses bp_get_activity_user_id() */ function bp_activity_user_id() { echo bp_get_activity_user_id(); @@ -983,7 +933,6 @@ function bp_activity_user_id() { * @since 1.1.0 * * @global object $activities_template {@link BP_Activity_Template} - * @uses apply_filters() To call the 'bp_get_activity_user_id' hook. * * @return int The activity user ID. */ @@ -1005,7 +954,6 @@ function bp_activity_user_id() { * * @since 1.2.0 * - * @uses bp_get_activity_user_link() */ function bp_activity_user_link() { echo bp_get_activity_user_link(); @@ -1017,8 +965,6 @@ function bp_activity_user_link() { * @since 1.2.0 * * @global object $activities_template {@link BP_Activity_Template} - * @uses bp_core_get_user_domain() - * @uses apply_filters() To call the 'bp_get_activity_user_link' hook. * * @return string $link The activity user link. */ @@ -1047,7 +993,6 @@ function bp_activity_user_link() { * @since 1.1.0 * * @see bp_get_activity_avatar() for description of arguments. - * @uses bp_get_activity_avatar() * * @param array|string $args See {@link bp_get_activity_avatar()} for description. */ @@ -1061,12 +1006,6 @@ function bp_activity_avatar( $args = '' ) { * * @see bp_core_fetch_avatar() For a description of the arguments. * @global object $activities_template {@link BP_Activity_Template} - * @uses bp_is_single_activity() - * @uses wp_parse_args() - * @uses apply_filters() To call the 'bp_get_activity_avatar_object_' . $current_activity_item->component hook. - * @uses apply_filters() To call the 'bp_get_activity_avatar_item_id' hook. - * @uses bp_core_fetch_avatar() - * @uses apply_filters() To call the 'bp_get_activity_avatar' hook. * * @param array|string $args { * Arguments are listed here with an explanation of their defaults. @@ -1162,7 +1101,7 @@ function bp_activity_avatar( $args = '' ) { * * @since 1.1.3 * - * @param array $value Array of arguments calculated for use with bp_core_fetch_avatar. + * @param array $value HTML image element containing the activity avatar. */ return apply_filters( 'bp_get_activity_avatar', bp_core_fetch_avatar( array( 'item_id' => $item_id, @@ -1182,7 +1121,6 @@ function bp_activity_avatar( $args = '' ) { * @since 1.2.0 * * @see bp_get_activity_secondary_avatar() for description of arguments. - * @uses bp_get_activity_secondary_avatar() * * @param array|string $args See {@link bp_get_activity_secondary_avatar} for description. */ @@ -1197,12 +1135,6 @@ function bp_activity_secondary_avatar( $args = '' ) { * * @see bp_core_fetch_avatar() for description of arguments. * @global object $activities_template {@link BP_Activity_Template} - * @uses wp_parse_args() - * @uses get_blog_option() - * @uses apply_filters() To call the 'bp_get_activity_secondary_avatar_object_' . $activities_template->activity->component hook. - * @uses apply_filters() To call the 'bp_get_activity_secondary_avatar_item_id' hook. - * @uses bp_core_fetch_avatar() - * @uses apply_filters() To call the 'bp_get_activity_secondary_avatar' hook. * * @param array|string $args { * For a complete description of arguments, see {@link bp_core_fetch_avatar()}. @@ -1373,7 +1305,6 @@ function bp_activity_secondary_avatar( $args = '' ) { * @since 1.2.0 * * @param array $args See bp_get_activity_action(). - * @uses bp_get_activity_action() */ function bp_activity_action( $args = array() ) { echo bp_get_activity_action( $args ); @@ -1385,9 +1316,6 @@ function bp_activity_action( $args = array() ) { * @since 1.2.0 * * @global object $activities_template {@link BP_Activity_Template} - * @uses apply_filters_ref_array() To call the 'bp_get_activity_action_pre_meta' hook. - * @uses bp_insert_activity_meta() - * @uses apply_filters_ref_array() To call the 'bp_get_activity_action' hook. * * @param array $args { * @type bool $no_timestamp Whether to exclude the timestamp. @@ -1439,7 +1367,6 @@ function bp_activity_action( $args = array() ) { * * @since 1.2.0 * - * @uses bp_get_activity_content_body() */ function bp_activity_content_body() { echo bp_get_activity_content_body(); @@ -1451,8 +1378,6 @@ function bp_activity_content_body() { * @since 1.2.0 * * @global object $activities_template {@link BP_Activity_Template} - * @uses bp_insert_activity_meta() - * @uses apply_filters_ref_array() To call the 'bp_get_activity_content_body' hook. * * @return string The activity content body. */ @@ -1501,7 +1426,6 @@ function bp_activity_has_content() { * * @todo properly deprecate this function. * - * @uses bp_get_activity_content() */ function bp_activity_content() { echo bp_get_activity_content(); @@ -1515,9 +1439,6 @@ function bp_activity_content() { * * @todo properly deprecate this function. * - * @uses bp_get_activity_action() - * @uses bp_get_activity_content_body() - * @uses apply_filters() To call the 'bp_get_activity_content' hook. * * @return string The activity content. */ @@ -1542,13 +1463,6 @@ function bp_activity_content() { * @since 1.2.0 * * @global object $activities_template {@link BP_Activity_Template} - * @uses bp_core_time_since() - * @uses apply_filters_ref_array() To call the 'bp_activity_time_since' hook. - * @uses bp_is_single_activity() - * @uses bp_activity_get_permalink() - * @uses esc_attr__() - * @uses apply_filters_ref_array() To call the 'bp_activity_permalink' hook. - * @uses apply_filters() To call the 'bp_insert_activity_meta' hook. * * @param string $content The activity content. * @return string The activity content with the metadata string attached. @@ -1618,7 +1532,6 @@ function bp_insert_activity_meta( $content = '' ) { * @since 1.2.0 * * @global object $activities_template {@link BP_Activity_Template} - * @uses apply_filters() To call the 'bp_activity_user_can_delete' hook. * * @param object|bool $activity Optional. Falls back on the current item in the loop. * @return bool True if can delete, false otherwise. @@ -1650,7 +1563,7 @@ function bp_activity_user_can_delete( $activity = false ) { // Users are allowed to delete their own activity. This is actually // quite powerful, because doing so also deletes all comments to that // activity item. We should revisit this eventually. - if ( isset( $activity->user_id ) && ( (int) $activity->user_id === bp_loggedin_user_id() ) ) { + if ( isset( $activity->user_id ) && ( $activity->user_id === bp_loggedin_user_id() ) ) { $can_delete = true; } @@ -1677,7 +1590,6 @@ function bp_activity_user_can_delete( $activity = false ) { * @since 1.2.0 * * @see bp_get_activity_parent_content() for a description of arguments. - * @uses bp_get_activity_parent_content() * * @param array|string $args See {@link bp_get_activity_parent_content} for description. */ @@ -1691,7 +1603,6 @@ function bp_activity_parent_content( $args = '' ) { * @since 1.2.0 * * @global object $activities_template {@link BP_Activity_Template} - * @uses apply_filters() To call the 'bp_get_activity_parent_content' hook. * * @param string $args Unused. Left over from an earlier implementation. * @return mixed False on failure, otherwise the activity parent content. @@ -1705,7 +1616,7 @@ function bp_activity_parent_content( $args = '' ) { } // Get the ID of the parent activity content. - $parent_id = (int) $activities_template->activity->item_id; + $parent_id = $activities_template->activity->item_id; // Bail if no parent content. if ( empty( $activities_template->activity_parents[ $parent_id ] ) ) { @@ -1769,7 +1680,7 @@ function bp_activity_parent_user_id() { } // Get the ID of the parent activity content. - $parent_id = (int) $activities_template->activity->item_id; + $parent_id = $activities_template->activity->item_id; // Bail if no parent item. if ( empty( $activities_template->activity_parents[ $parent_id ] ) ) { @@ -1798,7 +1709,6 @@ function bp_activity_parent_user_id() { * * @since 1.2.0 * - * @uses bp_get_activity_is_favorite() */ function bp_activity_is_favorite() { echo bp_get_activity_is_favorite(); @@ -1810,7 +1720,6 @@ function bp_activity_is_favorite() { * @since 1.2.0 * * @global object $activities_template {@link BP_Activity_Template} - * @uses apply_filters() To call the 'bp_get_activity_is_favorite' hook. * * @return bool True if user favorite, false otherwise. */ @@ -1850,7 +1759,6 @@ function bp_activity_comments( $args = '' ) { * this function can probably be streamlined or removed. * * @global object $activities_template {@link BP_Activity_Template} - * @uses bp_activity_recurse_comments() * * @param string $args Unused. Left over from an earlier implementation. * @return bool @@ -1874,7 +1782,6 @@ function bp_activity_comments( $args = '' ) { * @since 1.2.0 * * @global object $activities_template {@link BP_Activity_Template} - * @uses locate_template() * * @param object $comment The activity object currently being recursed. * @return bool|string @@ -1934,7 +1841,6 @@ function bp_activity_comments( $args = '' ) { * @since 1.5.0 * * @global object $activities_template {@link BP_Activity_Template} - * @uses apply_filters() To call the 'bp_activity_current_comment' hook. * * @return object|bool $current_comment The activity comment currently being * displayed. False on failure. @@ -1962,7 +1868,6 @@ function bp_activity_current_comment() { * * @since 1.5.0 * - * @uses bp_get_activity_comment_id() */ function bp_activity_comment_id() { echo bp_get_activity_comment_id(); @@ -1974,7 +1879,6 @@ function bp_activity_comment_id() { * @since 1.5.0 * * @global object $activities_template {@link BP_Activity_Template} - * @uses apply_filters() To call the 'bp_activity_comment_id' hook. * * @return int|bool $comment_id The ID of the activity comment currently * being displayed, false if none is found. @@ -1999,7 +1903,6 @@ function bp_activity_comment_id() { * * @since 1.5.0 * - * @uses bp_get_activity_comment_user_id() */ function bp_activity_comment_user_id() { echo bp_get_activity_comment_user_id(); @@ -2011,7 +1914,6 @@ function bp_activity_comment_user_id() { * @since 1.5.0 * * @global object $activities_template {@link BP_Activity_Template} - * @uses apply_filters() To call the 'bp_activity_comment_user_id' hook. * * @return int|bool $user_id The user_id of the author of the displayed * activity comment. False on failure. @@ -2036,7 +1938,6 @@ function bp_activity_comment_user_id() { * * @since 1.5.0 * - * @uses bp_get_activity_comment_user_link() */ function bp_activity_comment_user_link() { echo bp_get_activity_comment_user_link(); @@ -2047,9 +1948,6 @@ function bp_activity_comment_user_link() { * * @since 1.5.0 * - * @uses bp_core_get_user_domain() - * @uses bp_get_activity_comment_user_id() - * @uses apply_filters() To call the 'bp_activity_comment_user_link' hook. * * @return string $user_link The URL of the activity comment author's profile. */ @@ -2071,7 +1969,6 @@ function bp_activity_comment_user_link() { * * @since 1.5.0 * - * @uses bp_get_activity_comment_name() */ function bp_activity_comment_name() { echo bp_get_activity_comment_name(); @@ -2086,8 +1983,6 @@ function bp_activity_comment_name() { * @since 1.5.0 * * @global object $activities_template {@link BP_Activity_Template} - * @uses apply_filters() To call the 'bp_acomment_name' hook. - * @uses apply_filters() To call the 'bp_activity_comment_name' hook. * * @return string $name The full name of the activity comment author. */ @@ -2116,7 +2011,6 @@ function bp_activity_comment_name() { * * @since 1.5.0 * - * @uses bp_get_activity_comment_date_recorded() */ function bp_activity_comment_date_recorded() { echo bp_get_activity_comment_date_recorded(); @@ -2127,8 +2021,6 @@ function bp_activity_comment_date_recorded() { * * @since 1.5.0 * - * @uses bp_core_time_since() - * @uses apply_filters() To call the 'bp_activity_comment_date_recorded' hook. * * @return string|bool $date_recorded Time since the activity was recorded, * in the form "%s ago". False on failure. @@ -2150,7 +2042,6 @@ function bp_activity_comment_date_recorded() { * * @since 2.3.0 * - * @uses bp_get_activity_comment_date_recorded() */ function bp_activity_comment_date_recorded_raw() { echo bp_get_activity_comment_date_recorded_raw(); @@ -2162,8 +2053,6 @@ function bp_activity_comment_date_recorded_raw() { * @since 2.3.0 * * @global object $activities_template {@link BP_Activity_Template} - * @uses bp_core_time_since() - * @uses apply_filters() To call the 'bp_activity_comment_date_recorded' hook. * * @return string|bool $date_recorded Time since the activity was recorded, * in the form "%s ago". False on failure. @@ -2186,7 +2075,6 @@ function bp_activity_comment_date_recorded_raw() { * * @since 1.5.0 * - * @uses bp_get_activity_comment_delete_link() */ function bp_activity_comment_delete_link() { echo bp_get_activity_comment_delete_link(); @@ -2197,11 +2085,6 @@ function bp_activity_comment_delete_link() { * * @since 1.5.0 * - * @uses wp_nonce_url() - * @uses bp_get_root_domain() - * @uses bp_get_activity_slug() - * @uses bp_get_activity_comment_id() - * @uses apply_filters() To call the 'bp_activity_comment_delete_link' hook. * * @return string $link The nonced URL for deleting the current * activity comment. @@ -2224,7 +2107,6 @@ function bp_activity_comment_delete_link() { * * @since 1.5.0 * - * @uses bp_get_activity_comment_content() */ function bp_activity_comment_content() { echo bp_get_activity_comment_content(); @@ -2241,8 +2123,6 @@ function bp_activity_comment_content() { * @since 1.5.0 * * @global object $activities_template {@link BP_Activity_Template} - * @uses apply_filters() To call the 'bp_get_activity_content' hook. - * @uses apply_filters() To call the 'bp_activity_comment_content' hook. * * @return string $content The content of the current activity comment. */ @@ -2267,7 +2147,6 @@ function bp_activity_comment_content() { * * @since 1.2.0 * - * @uses bp_activity_get_comment_count() */ function bp_activity_comment_count() { echo bp_activity_get_comment_count(); @@ -2279,8 +2158,6 @@ function bp_activity_comment_count() { * @since 1.2.0 * * @global object $activities_template {@link BP_Activity_Template} - * @uses bp_activity_recurse_comment_count() - * @uses apply_filters() To call the 'bp_activity_get_comment_count' hook. * * @param array|null $deprecated Deprecated. * @return int $count The activity comment count. @@ -2316,8 +2193,6 @@ function bp_activity_comment_count() { * * @since 1.2.0 * - * @uses bp_activity_recurse_comment_count() - * @uses apply_filters() To call the 'bp_activity_recurse_comment_count' hook. * * @param object $comment Activity comment object. * @param int $count The current iteration count. @@ -2381,7 +2256,6 @@ function bp_activity_comment_depth() { * * @since 1.2.0 * - * @uses bp_get_activity_comment_link() */ function bp_activity_comment_link() { echo bp_get_activity_comment_link(); @@ -2393,7 +2267,6 @@ function bp_activity_comment_link() { * @since 1.2.0 * * @global object $activities_template {@link BP_Activity_Template} - * @uses apply_filters() To call the 'bp_get_activity_comment_link' hook. * * @return string The activity comment link. */ @@ -2415,7 +2288,6 @@ function bp_activity_comment_link() { * * @since 1.2.0 * - * @uses bp_get_activity_comment_form_nojs_display() */ function bp_activity_comment_form_nojs_display() { echo bp_get_activity_comment_form_nojs_display(); @@ -2446,7 +2318,6 @@ function bp_activity_comment_form_nojs_display() { * * @since 1.2.0 * - * @uses bp_get_activity_comment_form_action() */ function bp_activity_comment_form_action() { echo bp_get_activity_comment_form_action(); @@ -2457,9 +2328,6 @@ function bp_activity_comment_form_action() { * * @since 1.2.0 * - * @uses home_url() - * @uses bp_get_activity_root_slug() - * @uses apply_filters() To call the 'bp_get_activity_comment_form_action' hook. * * @return string The activity comment form action. */ @@ -2480,7 +2348,6 @@ function bp_activity_comment_form_action() { * * @since 1.2.0 * - * @uses bp_get_activity_permalink_id() */ function bp_activity_permalink_id() { echo bp_get_activity_permalink_id(); @@ -2491,7 +2358,6 @@ function bp_activity_permalink_id() { * * @since 1.2.0 * - * @uses apply_filters() To call the 'bp_get_activity_permalink_id' hook. * * @return string The activity permalink ID. */ @@ -2512,10 +2378,9 @@ function bp_activity_permalink_id() { * * @since 1.2.0 * - * @uses bp_get_activity_permalink_id() */ function bp_activity_thread_permalink() { - echo bp_get_activity_thread_permalink(); + echo esc_url( bp_get_activity_thread_permalink() ); } /** @@ -2523,8 +2388,6 @@ function bp_activity_thread_permalink() { * * @since 1.2.0 * - * @uses bp_activity_get_permalink() - * @uses apply_filters() To call the 'bp_get_activity_thread_permalink' hook. * * @return string $link The activity thread permalink. */ @@ -2548,37 +2411,27 @@ function bp_activity_thread_permalink() { * * @since 1.8.0 * - * @uses bp_get_activity_permalink_id() */ function bp_activity_comment_permalink() { - echo bp_get_activity_comment_permalink(); + echo esc_url( bp_get_activity_comment_permalink() ); } /** * Return the activity comment permalink. * * @since 1.8.0 * - * @uses bp_activity_get_permalink() - * @uses apply_filters() To call the 'bp_get_activity_comment_permalink' hook. - * * @return string $link The activity comment permalink. */ function bp_get_activity_comment_permalink() { global $activities_template; - // Check that comment exists. + $link = bp_activity_get_permalink( $activities_template->activity->id, $activities_template->activity ); + + // Used for filter below. $comment_id = isset( $activities_template->activity->current_comment->id ) ? $activities_template->activity->current_comment->id : 0; - // Setup the comment link. - $comment_link = ! empty( $comment_id ) - ? '#acomment-' .$comment_id - : false; - - // Append comment ID to end of activity permalink. - $link = bp_activity_get_permalink( $activities_template->activity->id, $activities_template->activity ) . $comment_link; - /** * Filters the activity comment permalink. * @@ -2595,7 +2448,6 @@ function bp_activity_comment_permalink() { * * @since 1.2.0 * - * @uses bp_get_activity_favorite_link() */ function bp_activity_favorite_link() { echo bp_get_activity_favorite_link(); @@ -2607,10 +2459,6 @@ function bp_activity_favorite_link() { * @since 1.2.0 * * @global object $activities_template {@link BP_Activity_Template} - * @uses wp_nonce_url() - * @uses home_url() - * @uses bp_get_activity_root_slug() - * @uses apply_filters() To call the 'bp_get_activity_favorite_link' hook. * * @return string The activity favorite link. */ @@ -2632,7 +2480,6 @@ function bp_activity_favorite_link() { * * @since 1.2.0 * - * @uses bp_get_activity_unfavorite_link() */ function bp_activity_unfavorite_link() { echo bp_get_activity_unfavorite_link(); @@ -2644,10 +2491,6 @@ function bp_activity_unfavorite_link() { * @since 1.2.0 * * @global object $activities_template {@link BP_Activity_Template} - * @uses wp_nonce_url() - * @uses home_url() - * @uses bp_get_activity_root_slug() - * @uses apply_filters() To call the 'bp_get_activity_unfavorite_link' hook. * * @return string The activity unfavorite link. */ @@ -2669,7 +2512,6 @@ function bp_activity_unfavorite_link() { * * @since 1.0.0 * - * @uses bp_get_activity_css_class() */ function bp_activity_css_class() { echo bp_get_activity_css_class(); @@ -2681,10 +2523,6 @@ function bp_activity_css_class() { * @since 1.0.0 * * @global object $activities_template {@link BP_Activity_Template} - * @uses apply_filters() To call the 'bp_activity_mini_activity_types' hook. - * @uses bp_activity_get_comment_count() - * @uses bp_activity_can_comment() - * @uses apply_filters() To call the 'bp_get_activity_css_class' hook. * * @return string The activity item's CSS class. */ @@ -2732,7 +2570,6 @@ function bp_activity_css_class() { * * @since 1.1.0 * - * @uses bp_get_activity_delete_link() */ function bp_activity_delete_link() { echo bp_get_activity_delete_link(); @@ -2744,13 +2581,6 @@ function bp_activity_delete_link() { * @since 1.1.0 * * @global object $activities_template {@link BP_Activity_Template} - * @uses bp_get_root_domain() - * @uses bp_get_activity_root_slug() - * @uses bp_is_activity_component() - * @uses bp_current_action() - * @uses wp_get_referer() - * @uses wp_nonce_url() - * @uses apply_filters() To call the 'bp_get_activity_delete_link' hook. * * @return string $link Activity delete link. Contains $redirect_to arg * if on single activity page. @@ -2782,7 +2612,6 @@ function bp_activity_delete_link() { * * @since 2.1.0 * - * @uses bp_get_activity_delete_link() */ function bp_activity_delete_url() { echo esc_url( bp_get_activity_delete_url() ); @@ -2793,14 +2622,6 @@ function bp_activity_delete_url() { * @since 2.1.0 * * @global object $activities_template {@link BP_Activity_Template} - * @uses bp_get_root_domain() - * @uses bp_get_activity_root_slug() - * @uses bp_is_activity_component() - * @uses bp_current_action() - * @uses add_query_arg() - * @uses wp_get_referer() - * @uses wp_nonce_url() - * @uses apply_filters() To call the 'bp_get_activity_delete_link' hook. * * @return string $link Activity delete link. Contains $redirect_to arg * if on single activity page. @@ -2833,7 +2654,6 @@ function bp_activity_delete_url() { * @since 1.2.0 * * @see bp_get_activity_latest_update() for description of parameters. - * @uses bp_get_activity_latest_update() * * @param int $user_id See {@link bp_get_activity_latest_update()} for description. */ @@ -2846,14 +2666,6 @@ function bp_activity_latest_update( $user_id = 0 ) { * * @since 1.2.0 * - * @uses bp_is_user_inactive() - * @uses bp_core_is_user_deleted() - * @uses bp_get_user_meta() - * @uses apply_filters() To call the 'bp_get_activity_latest_update_excerpt' hook. - * @uses bp_create_excerpt() - * @uses bp_get_root_domain() - * @uses bp_get_activity_root_slug() - * @uses apply_filters() To call the 'bp_get_activity_latest_update' hook. * * @param int $user_id If empty, will fall back on displayed user. * @return string|bool $latest_update The activity latest update link. @@ -2877,10 +2689,12 @@ function bp_activity_latest_update( $user_id = 0 ) { * Filters the latest update excerpt. * * @since 1.2.10 + * @since 2.6.0 Added the `$user_id` parameter. * - * @param string $value The excerpt for the latest update. + * @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 ) ) ) ); + $latest_update = apply_filters( 'bp_get_activity_latest_update_excerpt', trim( strip_tags( bp_create_excerpt( $update['content'], 358 ) ) ), $user_id ); $latest_update = sprintf( '%s <a href="%s">%s</a>', @@ -2893,10 +2707,12 @@ function bp_activity_latest_update( $user_id = 0 ) { * Filters the latest update excerpt with view link appended to the end. * * @since 1.2.0 + * @since 2.6.0 Added the `$user_id` parameter. * * @param string $latest_update The latest update with "view" link appended to it. + * @param int $user_id ID of the queried user. */ - return apply_filters( 'bp_get_activity_latest_update', $latest_update ); + return apply_filters( 'bp_get_activity_latest_update', $latest_update, $user_id ); } /** @@ -2905,7 +2721,6 @@ function bp_activity_latest_update( $user_id = 0 ) { * @since 1.1.0 * * @see bp_get_activity_filter_links() for description of parameters. - * @uses bp_get_activity_filter_links() * * @param array|bool $args See {@link bp_get_activity_filter_links()} for description. */ @@ -2918,13 +2733,6 @@ function bp_activity_filter_links( $args = false ) { * * @since 1.1.0 * - * @uses wp_parse_args() - * @uses BP_Activity_Activity::get_recorded_components() {@link BP_Activity_Activity} - * @uses esc_attr() - * @uses add_query_arg() - * @uses remove_query_arg() - * @uses apply_filters() To call the 'bp_get_activity_filter_link_href' hook. - * @uses apply_filters() To call the 'bp_get_activity_filter_links' hook. * * @param array|bool $args { * @type string $style The type of markup to use for the links. @@ -3008,10 +2816,12 @@ function bp_activity_filter_links( $args = false ) { * Filters all of the constructed filter links. * * @since 1.1.0 + * @since 2.6.0 Added the `$r` parameter. * * @param string $value All of the links to be displayed to the user. + * @param array $r Array of parsed arguments. */ - return apply_filters( 'bp_get_activity_filter_links', implode( "\n", $component_links ) ); + return apply_filters( 'bp_get_activity_filter_links', implode( "\n", $component_links ), $r ); } /** @@ -3020,8 +2830,6 @@ function bp_activity_filter_links( $args = false ) { * @since 1.2.0 * * @global object $activities_template {@link BP_Activity_Template} - * @uses bp_get_activity_action_name() - * @uses apply_filters() To call the 'bp_activity_can_comment' hook. * * @return bool $can_comment True if item can receive comments. */ @@ -3106,8 +2914,6 @@ function bp_activity_can_comment_reply( $comment = false ) { * * @since 1.5.0 * - * @uses apply_filters() To call the 'bp_activity_can_favorite' hook. - * * @return bool True if comment can receive comments. */ function bp_activity_can_favorite() { @@ -3128,7 +2934,6 @@ function bp_activity_can_favorite() { * @since 1.2.0 * * @see bp_get_total_favorite_count_for_user() for description of parameters. - * @uses bp_get_total_favorite_count_for_user() * * @param int $user_id See {@link bp_get_total_favorite_count_for_user()}. */ @@ -3141,8 +2946,6 @@ function bp_total_favorite_count_for_user( $user_id = 0 ) { * * @since 1.2.0 * - * @uses bp_activity_total_favorites_for_user() - * @uses apply_filters() To call the 'bp_get_total_favorite_count_for_user' hook. * * @param int $user_id ID of user being queried. Default: displayed user ID. * @return int The total favorite count for the specified user. @@ -3166,10 +2969,12 @@ function bp_total_favorite_count_for_user( $user_id = 0 ) { * Filters the total favorite count for a user. * * @since 1.2.0 + * @since 2.6.0 Added the `$user_id` parameter. * - * @param int|bool $retval Total favorite count for a user. False on no favorites. + * @param int|bool $retval Total favorite count for a user. False on no favorites. + * @param int $user_id ID of the queried user. */ - return apply_filters( 'bp_get_total_favorite_count_for_user', $retval ); + return apply_filters( 'bp_get_total_favorite_count_for_user', $retval, $user_id ); } @@ -3179,7 +2984,6 @@ function bp_total_favorite_count_for_user( $user_id = 0 ) { * @since 1.2.0 * * @see bp_get_total_mention_count_for_user() for description of parameters. - * @uses bp_get_total_favorite_count_for_user() * * @param int $user_id See {@link bp_get_total_mention_count_for_user()}. */ @@ -3192,8 +2996,6 @@ function bp_total_mention_count_for_user( $user_id = 0 ) { * * @since 1.2.0 * - * @uses bp_get_user_meta() - * @uses apply_filters() To call the 'bp_get_total_mention_count_for_user' hook. * * @param int $user_id ID of user being queried. Default: displayed user ID. * @return int The total mention count for the specified user. @@ -3214,10 +3016,12 @@ function bp_total_mention_count_for_user( $user_id = 0 ) { * Filters the total mention count for a user. * * @since 1.2.0 + * @since 2.6.0 Added the `$user_id` parameter. * - * @param int|bool $retval Total mention count for a user. False on no mentions. + * @param int|bool $retval Total mention count for a user. False on no mentions. + * @param int $user_id ID of the queried user. */ - return apply_filters( 'bp_get_total_mention_count_for_user', $retval ); + return apply_filters( 'bp_get_total_mention_count_for_user', $retval, $user_id ); } /** @@ -3225,7 +3029,6 @@ function bp_total_mention_count_for_user( $user_id = 0 ) { * * @since 1.2.0 * - * @uses bp_get_send_public_message_link() */ function bp_send_public_message_link() { echo esc_url( bp_get_send_public_message_link() ); @@ -3236,12 +3039,6 @@ function bp_send_public_message_link() { * * @since 1.2.0 * - * @uses is_user_logged_in() - * @uses bp_is_my_profile() - * @uses bp_is_user() - * @uses wp_nonce_url() - * @uses bp_get_activity_directory_permalink() - * @uses apply_filters() To call the 'bp_get_send_public_message_link' hook. * * @return string The public message link for the displayed user. */ @@ -3299,7 +3096,6 @@ function bp_activity_recurse_comments_activity_ids( $activity = array(), $activi * @since 1.2.0 * * @see bp_get_mentioned_user_display_name() for description of parameters. - * @uses bp_get_mentioned_user_display_name() * * @param int|string|bool $user_id_or_username See {@link bp_get_mentioned_user_display_name()}. */ @@ -3312,8 +3108,6 @@ function bp_mentioned_user_display_name( $user_id_or_username = false ) { * * @since 1.2.0 * - * @uses bp_core_get_user_displayname() - * @uses apply_filters() To call the 'bp_get_mentioned_user_display_name' hook. * * @param int|string|bool $user_id_or_username User ID or username. * @return string The mentioned user's display name. @@ -3345,7 +3139,6 @@ function bp_mentioned_user_display_name( $user_id_or_username = false ) { * @since 1.2.0 * * @see bp_get_send_public_message_button() for description of parameters. - * @uses bp_get_send_public_message_button() * * @param array|string $args See {@link bp_get_send_public_message_button()}. */ @@ -3358,10 +3151,6 @@ function bp_send_public_message_button( $args = '' ) { * * @since 1.2.0 * - * @uses bp_get_send_public_message_link() - * @uses wp_parse_args() - * @uses bp_get_button() - * @uses apply_filters() To call the 'bp_get_send_public_message_button' hook. * * @param array|string $args { * All arguments are optional. See {@link BP_Button} for complete @@ -3409,7 +3198,6 @@ function bp_send_public_message_button( $args = '' ) { * * @since 1.2.0 * - * @uses bp_get_activity_post_form_action() */ function bp_activity_post_form_action() { echo bp_get_activity_post_form_action(); @@ -3420,9 +3208,6 @@ function bp_activity_post_form_action() { * * @since 1.2.0 * - * @uses home_url() - * @uses bp_get_activity_root_slug() - * @uses apply_filters() To call the 'bp_get_activity_post_form_action' hook. * * @return string The activity post form action. */ @@ -3675,7 +3460,6 @@ function bp_activity_types_list( $output = 'select', $args = '' ) { * * @since 1.0.0 * - * @uses bp_get_sitewide_activity_feed_link() */ function bp_sitewide_activity_feed_link() { echo bp_get_sitewide_activity_feed_link(); @@ -3686,9 +3470,6 @@ function bp_sitewide_activity_feed_link() { * * @since 1.0.0 * - * @uses home_url() - * @uses bp_get_activity_root_slug() - * @uses apply_filters() To call the 'bp_get_sitewide_activity_feed_link' hook. * * @return string The sitewide activity feed link. */ @@ -3709,7 +3490,6 @@ function bp_sitewide_activity_feed_link() { * * @since 1.2.0 * - * @uses bp_get_member_activity_feed_link() */ function bp_member_activity_feed_link() { echo bp_get_member_activity_feed_link(); @@ -3723,7 +3503,6 @@ function bp_member_activity_feed_link() { * * @todo properly deprecate in favor of bp_member_activity_feed_link(). * - * @uses bp_get_member_activity_feed_link() */ function bp_activities_member_rss_link() { echo bp_get_member_activity_feed_link(); } @@ -3732,14 +3511,6 @@ function bp_activities_member_rss_link() { echo bp_get_member_activity_feed_link * * @since 1.2.0 * - * @uses bp_is_profile_component() - * @uses bp_is_current_action() - * @uses bp_displayed_user_domain() - * @uses bp_get_activity_slug() - * @uses bp_is_active() - * @uses bp_get_friends_slug() - * @uses bp_get_groups_slug() - * @uses apply_filters() To call the 'bp_get_activities_member_rss_link' hook. * * @return string $link The member activity feed link. */ @@ -3788,7 +3559,6 @@ function bp_activities_member_rss_link() { echo bp_get_member_activity_feed_link * * @todo properly deprecate in favor of bp_get_member_activity_feed_link(). * - * @uses bp_get_member_activity_feed_link() * * @return string The member activity feed link. */ @@ -3802,7 +3572,6 @@ function bp_activities_member_rss_link() { echo bp_get_member_activity_feed_link * * @since 1.0.0 * - * @uses bp_activity_feed_item_guid() */ function bp_activity_feed_item_guid() { echo bp_get_activity_feed_item_guid(); @@ -3814,7 +3583,6 @@ function bp_activity_feed_item_guid() { * @since 1.2.0 * * @global object $activities_template {@link BP_Activity_Template} - * @uses apply_filters() To call the 'bp_get_activity_feed_item_guid' hook. * * @return string The activity feed item guid. */ @@ -3836,7 +3604,6 @@ function bp_activity_feed_item_guid() { * * @since 1.0.0 * - * @uses bp_get_activity_feed_item_title() */ function bp_activity_feed_item_title() { echo bp_get_activity_feed_item_title(); @@ -3848,10 +3615,6 @@ function bp_activity_feed_item_title() { * @since 1.0.0 * * @global object $activities_template {@link BP_Activity_Template} - * @uses ent2ncr() - * @uses convert_chars() - * @uses bp_create_excerpt() - * @uses apply_filters() To call the 'bp_get_activity_feed_item_title' hook. * * @return string $title The activity feed item title. */ @@ -3890,7 +3653,6 @@ function bp_activity_feed_item_title() { * * @since 1.0.0 * - * @uses bp_get_activity_feed_item_link() */ function bp_activity_feed_item_link() { echo bp_get_activity_feed_item_link(); @@ -3902,7 +3664,6 @@ function bp_activity_feed_item_link() { * @since 1.0.0 * * @global object $activities_template {@link BP_Activity_Template} - * @uses apply_filters() To call the 'bp_get_activity_feed_item_link' hook. * * @return string The activity feed item link. */ @@ -3928,7 +3689,6 @@ function bp_activity_feed_item_link() { * * @since 1.0.0 * - * @uses bp_get_activity_feed_item_date() */ function bp_activity_feed_item_date() { echo bp_get_activity_feed_item_date(); @@ -3940,7 +3700,6 @@ function bp_activity_feed_item_date() { * @since 1.0.0 * * @global object $activities_template {@link BP_Activity_Template} - * @uses apply_filters() To call the 'bp_get_activity_feed_item_date' hook. * * @return string The activity feed item date. */ @@ -3966,7 +3725,6 @@ function bp_activity_feed_item_date() { * * @since 1.0.0 * - * @uses bp_get_activity_feed_item_description() */ function bp_activity_feed_item_description() { echo bp_get_activity_feed_item_description(); @@ -3978,9 +3736,6 @@ function bp_activity_feed_item_description() { * @since 1.0.0 * * @global object $activities_template {@link BP_Activity_Template} - * @uses ent2ncr() - * @uses convert_chars() - * @uses apply_filters() To call the 'bp_get_activity_feed_item_description' hook. * * @return string The activity feed item description. */ @@ -4012,8 +3767,6 @@ function bp_activity_feed_item_description() { * * @since 1.5.0 * - * @uses bloginfo() - * @uses bp_sitewide_activity_feed_link() */ function bp_activity_sitewide_feed() { ?> @@ -4031,7 +3784,6 @@ add_action( 'bp_head', 'bp_activity_sitewide_feed' ); * * @param string $context The current context. 'activity', 'member', * 'member_groups', 'group'. - * @uses bp_get_activity_show_filters() */ function bp_activity_show_filters( $context = '' ) { echo bp_get_activity_show_filters( $context ); 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 a4e82ba8c8126d57fec51496aa47870074d73378..c24a53316e34bf225edecf7ad9dce790737d5139 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 @@ -107,7 +107,7 @@ class BP_Activity_Activity { * @since 1.1.0 * @var int */ - var $hide_sitewide = false; + var $hide_sitewide = 0; /** * Node boundary start for activity or activity comment. @@ -133,6 +133,24 @@ class BP_Activity_Activity { */ var $is_spam; + /** + * Error holder. + * + * @since 2.6.0 + * + * @var WP_Error + */ + public $errors; + + /** + * Error type to return. Either 'bool' or 'wp_error'. + * + * @since 2.6.0 + * + * @var string + */ + public $error_type = 'bool'; + /** * Constructor method. * @@ -141,8 +159,11 @@ class BP_Activity_Activity { * @param int|bool $id Optional. The ID of a specific activity item. */ public function __construct( $id = false ) { + // Instantiate errors object. + $this->errors = new WP_Error; + if ( !empty( $id ) ) { - $this->id = $id; + $this->id = (int) $id; $this->populate(); } } @@ -175,10 +196,10 @@ class BP_Activity_Activity { $this->action = $row->action; $this->content = $row->content; $this->date_recorded = $row->date_recorded; - $this->hide_sitewide = $row->hide_sitewide; + $this->hide_sitewide = (int) $row->hide_sitewide; $this->mptt_left = (int) $row->mptt_left; $this->mptt_right = (int) $row->mptt_right; - $this->is_spam = $row->is_spam; + $this->is_spam = (int) $row->is_spam; } // Generate dynamic 'action' when possible. @@ -235,8 +256,22 @@ class BP_Activity_Activity { */ do_action_ref_array( 'bp_activity_before_save', array( &$this ) ); + if ( 'wp_error' === $this->error_type && $this->errors->get_error_code() ) { + return $this->errors; + } + if ( empty( $this->component ) || empty( $this->type ) ) { - return false; + if ( 'bool' === $this->error_type ) { + return false; + } else { + if ( empty( $this->component ) ) { + $this->errors->add( 'bp_activity_missing_component' ); + } else { + $this->errors->add( 'bp_activity_missing_type' ); + } + + return $this->errors; + } } if ( empty( $this->primary_link ) ) { @@ -578,6 +613,18 @@ class BP_Activity_Activity { $activities = $wpdb->get_results( apply_filters( 'bp_activity_get_user_join_filter', "{$select_sql} {$from_sql} {$join_sql} {$where_sql} ORDER BY a.date_recorded {$sort}, a.id {$sort}", $select_sql, $from_sql, $where_sql, $sort, $pag_sql ) ); } + // Integer casting for legacy activity query. + foreach ( (array) $activities as $i => $ac ) { + $activities[ $i ]->id = (int) $ac->id; + $activities[ $i ]->item_id = (int) $ac->item_id; + $activities[ $i ]->secondary_item_id = (int) $ac->secondary_item_id; + $activities[ $i ]->user_id = (int) $ac->user_id; + $activities[ $i ]->hide_sitewide = (int) $ac->hide_sitewide; + $activities[ $i ]->mptt_left = (int) $ac->mptt_left; + $activities[ $i ]->mptt_right = (int) $ac->mptt_right; + $activities[ $i ]->is_spam = (int) $ac->is_spam; + } + } else { // Query first for activity IDs. $activity_ids_sql = "{$select_sql} {$from_sql} {$join_sql} {$where_sql} ORDER BY a.date_recorded {$sort}, a.id {$sort}"; @@ -708,7 +755,20 @@ class BP_Activity_Activity { // Now fetch data from the cache. foreach ( $activity_ids as $activity_id ) { - $activities[] = wp_cache_get( $activity_id, 'bp_activity' ); + // Integer casting. + $activity = wp_cache_get( $activity_id, 'bp_activity' ); + if ( ! empty( $activity ) ) { + $activity->id = (int) $activity->id; + $activity->user_id = (int) $activity->user_id; + $activity->item_id = (int) $activity->item_id; + $activity->secondary_item_id = (int) $activity->secondary_item_id; + $activity->hide_sitewide = (int) $activity->hide_sitewide; + $activity->mptt_left = (int) $activity->mptt_left; + $activity->mptt_right = (int) $activity->mptt_right; + $activity->is_spam = (int) $activity->is_spam; + } + + $activities[] = $activity; } // Then fetch user data. @@ -1071,7 +1131,9 @@ class BP_Activity_Activity { if ( ! empty( $where_args ) ) { $where_sql = 'WHERE ' . join( ' AND ', $where_args ); - return $wpdb->get_var( "SELECT id FROM {$bp->activity->table_name} {$where_sql}" ); + $result = $wpdb->get_var( "SELECT id FROM {$bp->activity->table_name} {$where_sql}" ); + + return is_numeric( $result ) ? (int) $result : false; } return false; @@ -1763,7 +1825,9 @@ class BP_Activity_Activity { $bp = buddypress(); - return $wpdb->get_var( $wpdb->prepare( "SELECT id FROM {$bp->activity->table_name} WHERE content = %s", $content ) ); + $result = $wpdb->get_var( $wpdb->prepare( "SELECT id FROM {$bp->activity->table_name} WHERE content = %s", $content ) ); + + return is_numeric( $result ) ? (int) $result : false; } /** 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 246b3e55bfd847fa4deb0c193d56a911b613420c..4f85efbaf398a7165040fe7157e48bf6e1157df7 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 @@ -32,6 +32,7 @@ class BP_Activity_Component extends BP_Component { array( 'adminbar_myaccount_order' => 10, 'search_query_arg' => 'activity_search', + 'features' => array( 'embeds' ) ) ); } @@ -53,13 +54,17 @@ class BP_Activity_Component extends BP_Component { 'actions', 'screens', 'filters', - 'classes', + 'adminbar', 'template', 'functions', 'notifications', 'cache' ); + if ( ! buddypress()->do_autoload ) { + $includes[] = 'classes'; + } + // Load Akismet support if Akismet is configured. $akismet_key = bp_get_option( 'wordpress_api_key' ); @@ -68,6 +73,11 @@ class BP_Activity_Component extends BP_Component { $includes[] = 'akismet'; } + // Embeds - only applicable for WP 4.5+ + if ( version_compare( $GLOBALS['wp_version'], '4.5', '>=' ) && bp_is_active( $this->id, 'embeds' ) ) { + $includes[] = 'embeds'; + } + if ( is_admin() ) { $includes[] = 'admin'; } @@ -128,10 +138,6 @@ class BP_Activity_Component extends BP_Component { * @since 1.5.0 * * @see BP_Component::setup_nav() for a description of arguments. - * @uses bp_is_active() - * @uses is_user_logged_in() - * @uses bp_get_friends_slug() - * @uses bp_get_groups_slug() * * @param array $main_nav Optional. See BP_Component::setup_nav() for description. * @param array $sub_nav Optional. See BP_Component::setup_nav() for description. @@ -237,13 +243,6 @@ class BP_Activity_Component extends BP_Component { * * @see BP_Component::setup_nav() for a description of the $wp_admin_nav * parameter array. - * @uses is_user_logged_in() - * @uses trailingslashit() - * @uses bp_get_total_mention_count_for_user() - * @uses bp_loggedin_user_id() - * @uses bp_is_active() - * @uses bp_get_friends_slug() - * @uses bp_get_groups_slug() * * @param array $wp_admin_nav See BP_Component::setup_admin_bar() for a * description. @@ -260,7 +259,11 @@ class BP_Activity_Component extends BP_Component { if ( bp_activity_do_mentions() ) { $count = bp_get_total_mention_count_for_user( bp_loggedin_user_id() ); if ( !empty( $count ) ) { - $title = sprintf( _x( 'Mentions <span class="count">%s</span>', 'Toolbar Mention logged in user', 'buddypress' ), bp_core_number_format( $count ) ); + $title = sprintf( + /* translators: %s: Unread mention count for the current user */ + _x( 'Mentions %s', 'Toolbar Mention logged in user', 'buddypress' ), + '<span class="count">' . bp_core_number_format( $count ) . '</span>' + ); } else { $title = _x( 'Mentions', 'Toolbar Mention logged in user', 'buddypress' ); } @@ -336,9 +339,6 @@ class BP_Activity_Component extends BP_Component { * * @since 1.5.0 * - * @uses bp_is_activity_component() - * @uses bp_is_my_profile() - * @uses bp_core_fetch_avatar() */ public function setup_title() { 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 05ad4c7ee78c46fa36c61e549a0a102cbd632dee..985f6885f8ac749d318cbf27c79de45126a273a1 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 @@ -243,7 +243,10 @@ class BP_Activity_List_Table extends WP_List_Table { function display() { $this->display_tablenav( 'top' ); ?> - <h2 class="screen-reader-text"><?php _e( 'Activities list', 'buddypress' ); ?></h2> + <h2 class="screen-reader-text"><?php + /* translators: accessibility text */ + _e( 'Activities list', 'buddypress' ); + ?></h2> <table class="wp-list-table <?php echo implode( ' ', $this->get_table_classes() ); ?>" cellspacing="0"> <thead> @@ -252,15 +255,15 @@ class BP_Activity_List_Table extends WP_List_Table { </tr> </thead> + <tbody id="the-comment-list"> + <?php $this->display_rows_or_placeholder(); ?> + </tbody> + <tfoot> <tr> <?php $this->print_column_headers( false ); ?> </tr> </tfoot> - - <tbody id="the-comment-list"> - <?php $this->display_rows_or_placeholder(); ?> - </tbody> </table> <?php @@ -304,7 +307,10 @@ class BP_Activity_List_Table extends WP_List_Table { function get_views() { $url_base = add_query_arg( array( 'page' => 'bp-activity' ), bp_get_admin_url( 'admin.php' ) ); ?> - <h2 class="screen-reader-text"><?php _e( 'Filter activities list', 'buddypress' ); ?></h2> + <h2 class="screen-reader-text"><?php + /* translators: accessibility text */ + _e( 'Filter activities list', 'buddypress' ); + ?></h2> <ul class="subsubsub"> <li class="all"><a href="<?php echo esc_url( $url_base ); ?>" class="<?php if ( 'spam' != $this->view ) echo 'current'; ?>"><?php _e( 'All', 'buddypress' ); ?></a> |</li> @@ -414,7 +420,10 @@ class BP_Activity_List_Table extends WP_List_Table { $activity_actions = bp_activity_get_actions(); ?> <div class="alignleft actions"> - <label for="activity-type" class="screen-reader-text"><?php _e( 'Filter by activity type', 'buddypress' ); ?></label> + <label for="activity-type" class="screen-reader-text"><?php + /* translators: accessibility text */ + _e( 'Filter by activity type', 'buddypress' ); + ?></label> <select name="activity_type" id="activity-type"> <option value="" <?php selected( ! $selected ); ?>><?php _e( 'View all actions', 'buddypress' ); ?></option> @@ -488,6 +497,7 @@ class BP_Activity_List_Table extends WP_List_Table { * @param array $item A singular item (one full row). */ function column_cb( $item ) { + /* translators: accessibility text */ printf( '<label class="screen-reader-text" for="aid-%1$d">' . __( 'Select activity item %1$d', 'buddypress' ) . '</label><input type="checkbox" name="aid[]" value="%1$d" id="aid-%1$d" />', $item['id'] ); } diff --git a/wp-content/plugins/buddypress/bp-activity/classes/class-bp-activity-oembed-extension.php b/wp-content/plugins/buddypress/bp-activity/classes/class-bp-activity-oembed-extension.php new file mode 100644 index 0000000000000000000000000000000000000000..38ddaf05140fe45e436a549fdedcf51ecb0b0ac1 --- /dev/null +++ b/wp-content/plugins/buddypress/bp-activity/classes/class-bp-activity-oembed-extension.php @@ -0,0 +1,329 @@ +<?php +/** + * BuddyPress Activity Classes. + * + * @package BuddyPress + * @subpackage Embeds + */ + +// Exit if accessed directly. +defined( 'ABSPATH' ) || exit; + +/** + * oEmbed handler to respond and render single activity items. + * + * @since 2.6.0 + */ +class BP_Activity_oEmbed_Extension extends BP_Core_oEmbed_Extension { + /** + * Custom oEmbed slug endpoint. + * + * @since 2.6.0 + * + * @var string + */ + public $slug_endpoint = 'activity'; + + /** + * Custom hooks. + * + * @since 2.6.0 + */ + protected function custom_hooks() { + add_action( 'oembed_dataparse', array( $this, 'use_custom_iframe_sandbox_attribute' ), 20, 3 ); + add_action( 'embed_content_meta', array( $this, 'embed_comments_button' ), 5 ); + add_action( 'get_template_part_assets/embeds/header', array( $this, 'on_activity_header' ), 10, 2 ); + + add_filter( 'bp_activity_embed_html', array( $this, 'modify_iframe' ) ); + } + + /** + * Add custom endpoint arguments. + * + * Currently, includes 'hide_media'. + * + * @since 2.6.0 + * + * @return array + */ + protected function set_route_args() { + return array( + 'hide_media' => array( + 'default' => false, + 'sanitize_callback' => 'wp_validate_boolean' + ) + ); + } + + /** + * Output our custom embed template part. + * + * @since 2.6.0 + */ + protected function content() { + bp_get_asset_template_part( 'embeds/activity' ); + } + + /** + * Check if we're on our single activity page. + * + * @since 2.6.0 + * + * @return bool + */ + protected function is_page() { + return bp_is_single_activity(); + } + + /** + * Validates the URL to determine if the activity item is valid. + * + * @since 2.6.0 + * + * @param string $url The URL to check. + * @return int|bool Activity ID on success; boolean false on failure. + */ + protected function validate_url_to_item_id( $url ) { + if ( bp_core_enable_root_profiles() ) { + $domain = bp_get_root_domain(); + } else { + $domain = bp_get_members_directory_permalink(); + } + + // Check the URL to see if this is a single activity URL. + if ( 0 !== strpos( $url, $domain ) ) { + return false; + } + + // Check for activity slug. + if ( false === strpos( $url, '/' . bp_get_activity_slug() . '/' ) ) { + return false; + } + + // Do more checks. + $url = trim( untrailingslashit( $url ) ); + + // Grab the activity ID. + $activity_id = (int) substr( + $url, + strrpos( $url, '/' ) + 1 + ); + + if ( ! empty( $activity_id ) ) { + // Check if activity item still exists. + $activity = new BP_Activity_Activity( $activity_id ); + + // Okay, we're good to go! + if ( ! empty( $activity->component ) && 0 === (int) $activity->is_spam ) { + return $activity_id; + } + } + + return false; + } + + /** + * Sets the oEmbed response data for our activity item. + * + * @since 2.6.0 + * + * @param int $item_id The activity ID. + * @return array + */ + protected function set_oembed_response_data( $item_id ) { + $activity = new BP_Activity_Activity( $item_id ); + + return array( + 'content' => $activity->content, + 'title' => __( 'Activity', 'buddypress' ), + 'author_name' => bp_core_get_user_displayname( $activity->user_id ), + 'author_url' => bp_core_get_user_domain( $activity->user_id ), + + // Custom identifier. + 'x_buddypress' => 'activity' + ); + } + + /** + * Sets a custom <blockquote> for our oEmbed fallback HTML. + * + * @since 2.6.0 + * + * @param int $item_id The activity ID. + * @return string + */ + protected function set_fallback_html( $item_id ) { + $activity = new BP_Activity_Activity( $item_id ); + $mentionname = bp_activity_do_mentions() ? ' (@' . bp_activity_get_user_mentionname( $activity->user_id ) . ')' : ''; + $date = date_i18n( get_option( 'date_format' ), strtotime( $activity->date_recorded ) ); + + // Make sure we can use some activity functions that depend on the loop. + $GLOBALS['activities_template'] = new stdClass; + $GLOBALS['activities_template']->activity = $activity; + + // 'wp-embedded-content' CSS class is necessary due to how the embed JS works. + $blockquote = sprintf( '<blockquote class="wp-embedded-content bp-activity-item">%1$s%2$s %3$s</blockquote>', + bp_activity_get_embed_excerpt( $activity->content ), + '- ' . bp_core_get_user_displayname( $activity->user_id ) . $mentionname, + '<a href="' . esc_url( bp_activity_get_permalink( $item_id ) ) . '">' . $date . '</a>' + ); + + // Clean up. + unset( $GLOBALS['activities_template'] ); + + /** + * Filters the fallback HTML used when embedding a BP activity item. + * + * @since 2.6.0 + * + * @param string $blockquote Current fallback HTML + * @param BP_Activity_Activity $activity Activity object + */ + return apply_filters( 'bp_activity_embed_fallback_html', $blockquote, $activity ); + } + + /** + * Sets a custom <iframe> title for our oEmbed item. + * + * @since 2.6.0 + * + * @param int $item_id The activity ID + * @return string + */ + protected function set_iframe_title( $item_id ) { + return __( 'Embedded Activity Item', 'buddypress' ); + } + + /** + * Use our custom <iframe> sandbox attribute in our oEmbed response. + * + * WordPress sets the <iframe> sandbox attribute to 'allow-scripts' regardless + * of whatever the oEmbed response is in {@link wp_filter_oembed_result()}. We + * need to add back our custom sandbox value so links will work. + * + * @since 2.6.0 + * + * @see BP_Activity_Component::modify_iframe() where our custom sandbox value is set. + * + * @param string $result The oEmbed HTML result. + * @param object $data A data object result from an oEmbed provider. + * @param string $url The URL of the content to be embedded. + * @return string + */ + public function use_custom_iframe_sandbox_attribute( $result, $data, $url ) { + // Make sure we are on a BuddyPress activity oEmbed request. + if ( false === isset( $data->x_buddypress ) || 'activity' !== $data->x_buddypress ) { + return $result; + } + + // Get unfiltered sandbox attribute from our own oEmbed response. + $sandbox_pos = strpos( $data->html, 'sandbox=' ) + 9; + $sandbox = substr( $data->html, $sandbox_pos, strpos( $data->html, '"', $sandbox_pos ) - $sandbox_pos ); + + // Replace only if our sandbox attribute contains 'allow-top-navigation'. + if ( false !== strpos( $sandbox, 'allow-top-navigation' ) ) { + $result = str_replace( ' sandbox="allow-scripts"', " sandbox=\"{$sandbox}\"", $result ); + + // Also remove 'security' attribute; this is only used for IE < 10. + $result = str_replace( 'security="restricted"', "", $result ); + } + + return $result; + } + + /** + * Modify various IFRAME-related items if embeds are allowed. + * + * HTML modified: + * - Add sandbox="allow-top-navigation" attribute. This allows links to work + * within the iframe sandbox attribute. + * + * JS modified: + * - Remove IFRAME height restriction of 1000px. Fixes long embed items being + * truncated. + * + * @since 2.6.0 + * + * @param string $retval Current embed HTML. + * @return string + */ + public function modify_iframe( $retval ) { + // Add 'allow-top-navigation' to allow links to be clicked. + $retval = str_replace( 'sandbox="', 'sandbox="allow-top-navigation ', $retval ); + + // See /wp-includes/js/wp-embed.js. + if ( SCRIPT_DEBUG ) { + // Removes WP's hardcoded IFRAME height restriction. + $retval = str_replace( 'height = 1000;', 'height = height;', $retval ); + + // This is for the WP build minified version. + } else { + $retval = str_replace( 'g=1e3', 'g=g', $retval ); + } + + return $retval; + } + + /** + * Do stuff when our oEmbed activity header template part is loading. + * + * Currently, removes wpautop() from the bp_activity_action() function. + * + * @since 2.6.0 + * + * @param string $slug Template part slug requested. + * @param string $name Template part name requested. + */ + public function on_activity_header( $slug, $name ) { + if ( false === $this->is_page() || 'activity' !== $name ) { + return; + } + + remove_filter( 'bp_get_activity_action', 'wpautop' ); + } + + /** + * Prints the markup for the activity embed comments button. + * + * Basically a copy of {@link print_embed_comments_button()}, but modified for + * the BP activity component. + * + * @since 2.6.0 + */ + public function embed_comments_button() { + if ( ! did_action( 'bp_embed_content' ) || ! bp_is_single_activity() ) { + return; + } + + // Make sure our custom permalink shows up in the 'WordPress Embed' block. + add_filter( 'the_permalink', array( $this, 'filter_embed_url' ) ); + + // Only show comment bubble if we have some activity comments. + $count = bp_activity_get_comment_count(); + if ( empty( $count ) ) { + return; + } + ?> + + <div class="wp-embed-comments"> + <a href="<?php bp_activity_thread_permalink(); ?>"> + <span class="dashicons dashicons-admin-comments"></span> + <?php + printf( + _n( + /* translators: accessibility text */ + '%s <span class="screen-reader-text">Comment</span>', + /* translators: accessibility text */ + '%s <span class="screen-reader-text">Comments</span>', + $count, + 'buddypress' + ), + number_format_i18n( $count ) + ); + ?> + </a> + </div> + + <?php + } +} diff --git a/wp-content/plugins/buddypress/bp-activity/css/mentions-rtl.css b/wp-content/plugins/buddypress/bp-activity/css/mentions-rtl.css index 36f8179206500593d86fb31d63d6b198c08f0b76..b3efa330539a4ddcc461bb7e4c4b3717b3092492 100644 --- a/wp-content/plugins/buddypress/bp-activity/css/mentions-rtl.css +++ b/wp-content/plugins/buddypress/bp-activity/css/mentions-rtl.css @@ -11,9 +11,8 @@ top: 0; z-index: 1000; /* >999 for wp-admin */ } -/* @noflip */ .atwho-view { - left: 0; + left: 0; } .atwho-view ul { background: #FFF; @@ -42,7 +41,7 @@ } .atwho-view strong { background: #EFEFEF; - font: bold; + font-weight: bold; } .atwho-view .username strong { color: #D54E21; diff --git a/wp-content/plugins/buddypress/bp-activity/css/mentions-rtl.min.css b/wp-content/plugins/buddypress/bp-activity/css/mentions-rtl.min.css index a83e335043c74e8e427afee22ef8d227f1957c49..5fe6941b9ab80d7024b0fc675d721ea4d1772a5c 100644 --- a/wp-content/plugins/buddypress/bp-activity/css/mentions-rtl.min.css +++ b/wp-content/plugins/buddypress/bp-activity/css/mentions-rtl.min.css @@ -1 +1 @@ -.atwho-view{background:rgba(204,204,204,.8);border-radius:2px;border:1px solid #ccc;box-shadow:0 0 5px rgba(204,204,204,.25),0 0 1px #FFF;color:#D84800;display:none;font-family:sans-serif;margin-top:18px;position:absolute;top:0;z-index:1000;left:0}.atwho-view ul{background:#FFF;list-style:none;margin:auto;padding:0}.atwho-view ul li{border-bottom:1px solid #EFEFEF;box-sizing:content-box;cursor:pointer;display:block;font-size:14px;height:20px;line-height:20px;margin:0;overflow:hidden;padding:5px 10px}.atwho-view img{border-radius:2px;float:left;height:20px;margin-top:0;width:20px}.atwho-view strong{background:#EFEFEF;font:700}.atwho-view .username strong{color:#D54E21}.atwho-view small{color:#AAA;float:left;font-size:smaller;font-weight:400;margin:0 40px 0 10px}.atwho-view .cur{background:rgba(239,239,239,.5)}@media (max-width:900px){.atwho-view img{float:right;margin:0 0 0 10px}}@media (max-width:400px){.atwho-view ul li{font-size:16px;line-height:23px;padding:13px}.atwho-view ul li img{height:30px;margin-top:-5px;width:30px}.atwho-view{border-radius:0;height:100%;right:0!important;width:100%}.atwho-view ul li .username{display:inline-block;margin:-10px 0 0;padding:10px 0}.atwho-view ul li small{display:inline-block;margin-right:20px}} \ No newline at end of file +.atwho-view{background:rgba(204,204,204,.8);border-radius:2px;border:1px solid #ccc;box-shadow:0 0 5px rgba(204,204,204,.25),0 0 1px #FFF;color:#D84800;display:none;font-family:sans-serif;margin-top:18px;position:absolute;top:0;z-index:1000;left:0}.atwho-view ul{background:#FFF;list-style:none;margin:auto;padding:0}.atwho-view ul li{border-bottom:1px solid #EFEFEF;box-sizing:content-box;cursor:pointer;display:block;font-size:14px;height:20px;line-height:20px;margin:0;overflow:hidden;padding:5px 10px}.atwho-view img{border-radius:2px;float:left;height:20px;margin-top:0;width:20px}.atwho-view strong{background:#EFEFEF;font-weight:700}.atwho-view .username strong{color:#D54E21}.atwho-view small{color:#AAA;float:left;font-size:smaller;font-weight:400;margin:0 40px 0 10px}.atwho-view .cur{background:rgba(239,239,239,.5)}@media (max-width:900px){.atwho-view img{float:right;margin:0 0 0 10px}}@media (max-width:400px){.atwho-view ul li{font-size:16px;line-height:23px;padding:13px}.atwho-view ul li img{height:30px;margin-top:-5px;width:30px}.atwho-view{border-radius:0;height:100%;right:0!important;width:100%}.atwho-view ul li .username{display:inline-block;margin:-10px 0 0;padding:10px 0}.atwho-view ul li small{display:inline-block;margin-right:20px}} \ No newline at end of file diff --git a/wp-content/plugins/buddypress/bp-activity/css/mentions.css b/wp-content/plugins/buddypress/bp-activity/css/mentions.css index 9c7b66640a600feb12275d4529e204358e9c0df8..02ef2f2e68d3623a31b4d9a5ad7fa047e6eeaae5 100644 --- a/wp-content/plugins/buddypress/bp-activity/css/mentions.css +++ b/wp-content/plugins/buddypress/bp-activity/css/mentions.css @@ -11,9 +11,9 @@ top: 0; z-index: 1000; /* >999 for wp-admin */ } -/* @noflip */ +/* rtl:ignore */ .atwho-view { - left: 0; + left: 0; } .atwho-view ul { background: #FFF; @@ -42,7 +42,7 @@ } .atwho-view strong { background: #EFEFEF; - font: bold; + font-weight: bold; } .atwho-view .username strong { color: #D54E21; diff --git a/wp-content/plugins/buddypress/bp-activity/css/mentions.min.css b/wp-content/plugins/buddypress/bp-activity/css/mentions.min.css index 2f81cc14bd1ff621051a4c2394cf077d6eeea9eb..21007b59014c5fc8f3aaea7e558fdc1481763f37 100644 --- a/wp-content/plugins/buddypress/bp-activity/css/mentions.min.css +++ b/wp-content/plugins/buddypress/bp-activity/css/mentions.min.css @@ -1 +1 @@ -.atwho-view{background:rgba(204,204,204,.8);border-radius:2px;border:1px solid #ccc;box-shadow:0 0 5px rgba(204,204,204,.25),0 0 1px #FFF;color:#D84800;display:none;font-family:sans-serif;margin-top:18px;position:absolute;top:0;z-index:1000;left:0}.atwho-view ul{background:#FFF;list-style:none;margin:auto;padding:0}.atwho-view ul li{border-bottom:1px solid #EFEFEF;box-sizing:content-box;cursor:pointer;display:block;font-size:14px;height:20px;line-height:20px;margin:0;overflow:hidden;padding:5px 10px}.atwho-view img{border-radius:2px;float:right;height:20px;margin-top:0;width:20px}.atwho-view strong{background:#EFEFEF;font:700}.atwho-view .username strong{color:#D54E21}.atwho-view small{color:#AAA;float:right;font-size:smaller;font-weight:400;margin:0 10px 0 40px}.atwho-view .cur{background:rgba(239,239,239,.5)}@media (max-width:900px){.atwho-view img{float:left;margin:0 10px 0 0}}@media (max-width:400px){.atwho-view ul li{font-size:16px;line-height:23px;padding:13px}.atwho-view ul li img{height:30px;margin-top:-5px;width:30px}.atwho-view{border-radius:0;height:100%;left:0!important;width:100%}.atwho-view ul li .username{display:inline-block;margin:-10px 0 0;padding:10px 0}.atwho-view ul li small{display:inline-block;margin-left:20px}} \ No newline at end of file +.atwho-view{background:rgba(204,204,204,.8);border-radius:2px;border:1px solid #ccc;box-shadow:0 0 5px rgba(204,204,204,.25),0 0 1px #FFF;color:#D84800;display:none;font-family:sans-serif;margin-top:18px;position:absolute;top:0;z-index:1000;left:0}.atwho-view ul{background:#FFF;list-style:none;margin:auto;padding:0}.atwho-view ul li{border-bottom:1px solid #EFEFEF;box-sizing:content-box;cursor:pointer;display:block;font-size:14px;height:20px;line-height:20px;margin:0;overflow:hidden;padding:5px 10px}.atwho-view img{border-radius:2px;float:right;height:20px;margin-top:0;width:20px}.atwho-view strong{background:#EFEFEF;font-weight:700}.atwho-view .username strong{color:#D54E21}.atwho-view small{color:#AAA;float:right;font-size:smaller;font-weight:400;margin:0 10px 0 40px}.atwho-view .cur{background:rgba(239,239,239,.5)}@media (max-width:900px){.atwho-view img{float:left;margin:0 10px 0 0}}@media (max-width:400px){.atwho-view ul li{font-size:16px;line-height:23px;padding:13px}.atwho-view ul li img{height:30px;margin-top:-5px;width:30px}.atwho-view{border-radius:0;height:100%;left:0!important;width:100%}.atwho-view ul li .username{display:inline-block;margin:-10px 0 0;padding:10px 0}.atwho-view ul li small{display:inline-block;margin-left:20px}} \ No newline at end of file diff --git a/wp-content/plugins/buddypress/bp-activity/js/mentions.js b/wp-content/plugins/buddypress/bp-activity/js/mentions.js index f9a1e82ee3010c230bcd2e8c30b945e8424a7a11..af88fc5eb9abd97f2f6f8ee6c91436b606f80ad2 100644 --- a/wp-content/plugins/buddypress/bp-activity/js/mentions.js +++ b/wp-content/plugins/buddypress/bp-activity/js/mentions.js @@ -248,7 +248,7 @@ window.bp = window.bp || {}; return; } else { $( window.tinyMCE.activeEditor.contentDocument.activeElement ) - .atwho( 'setIframe', $( '#content_ifr' )[0] ) + .atwho( 'setIframe', $( '.wp-editor-wrap iframe' )[0] ) .bp_mentions( bp.mentions.users ); } }; diff --git a/wp-content/plugins/buddypress/bp-activity/js/mentions.min.js b/wp-content/plugins/buddypress/bp-activity/js/mentions.min.js index 0564f84e7763993b7fae3763b84f4ca178514605..ffcf7fe265a620fa989c6825e7f3bde9e6c5b419 100644 --- a/wp-content/plugins/buddypress/bp-activity/js/mentions.min.js +++ b/wp-content/plugins/buddypress/bp-activity/js/mentions.min.js @@ -1,2 +1 @@ -/*! buddypress - v2.5.3 - 2016-05-24 5:17:45 PM UTC - https://wordpress.org/plugins/buddypress/ */ -window.bp=window.bp||{},function(a,b,c){var d,e=[];a.mentions=a.mentions||{},a.mentions.users=window.bp.mentions.users||[],"object"==typeof window.BP_Suggestions&&(a.mentions.users=window.BP_Suggestions.friends||a.mentions.users),b.fn.bp_mentions=function(a){b.isArray(a)&&(a={data:a});var c={delay:200,hide_without_suffix:!0,insert_tpl:"</>${atwho-data-value}</>",limit:10,start_with_space:!1,suffix:"",callbacks:{filter:function(a,b,c){var d,e,f,g=[],h=new RegExp("^"+a+"| "+a,"ig");for(e=0,f=b.length;f>e;e++)d=b[e],d[c].toLowerCase().match(h)&&g.push(d);return g},highlighter:function(a,b){if(!b)return a;var c=new RegExp(">(\\s*|[\\w\\s]*)("+this.at.replace("+","\\+")+"?"+b.replace("+","\\+")+")([\\w ]*)\\s*<","ig");return a.replace(c,function(a,b,c,d){return">"+b+"<strong>"+c+"</strong>"+d+"<"})},before_reposition:function(a){var c,d,e,f,g=b("#atwho-ground-"+this.id+" .atwho-view"),h=b("body"),i=this.$inputor.data("atwho");"undefined"!==i&&"undefined"!==i.iframe&&null!==i.iframe?(c=this.$inputor.caret("offset",{iframe:i.iframe}),e=b(i.iframe).offset(),"undefined"!==e&&(c.left+=e.left,c.top+=e.top)):c=this.$inputor.caret("offset"),c.left>h.width()/2?(g.addClass("right"),f=c.left-a.left-this.view.$el.width()):(g.removeClass("right"),f=c.left-a.left+1),h.width()<=400&&b(document).scrollTop(c.top-6),d=parseInt(this.$inputor.css("line-height").substr(0,this.$inputor.css("line-height").length-2),10),(!d||5>d)&&(d=19),a.top=c.top+d,a.left+=f},inserting_wrapper:function(a,b,c){return""+b+c}}},f={callbacks:{remote_filter:function(a,c){var f=b(this),g={};return d=e[a],"object"==typeof d?void c(d):(f.xhr&&f.xhr.abort(),g={action:"bp_get_suggestions",term:a,type:"members"},b.isNumeric(this.$inputor.data("suggestions-group-id"))&&(g["group-id"]=parseInt(this.$inputor.data("suggestions-group-id"),10)),void(f.xhr=b.getJSON(ajaxurl,g).done(function(d){if(d.success){var f=b.map(d.data,function(a){return a.search=a.search||a.ID+" "+a.name,a});e[a]=f,c(f)}})))}},data:b.map(a.data,function(a){return a.search=a.search||a.ID+" "+a.name,a}),at:"@",search_key:"search",tpl:'<li data-value="@${ID}"><img src="${image}" /><span class="username">@${ID}</span><small>${name}</small></li>'},g=b.extend(!0,{},c,f,a);return b.fn.atwho.call(this,g)},b(document).ready(function(){b(".bp-suggestions, #comments form textarea, .wp-editor-area").bp_mentions(a.mentions.users)}),a.mentions.tinyMCEinit=function(){"undefined"!=typeof window.tinyMCE&&null!==window.tinyMCE.activeEditor&&"undefined"!=typeof window.tinyMCE.activeEditor&&b(window.tinyMCE.activeEditor.contentDocument.activeElement).atwho("setIframe",b("#content_ifr")[0]).bp_mentions(a.mentions.users)}}(bp,jQuery); \ No newline at end of file +window.bp=window.bp||{},function(a,b,c){var d,e=[];a.mentions=a.mentions||{},a.mentions.users=window.bp.mentions.users||[],"object"==typeof window.BP_Suggestions&&(a.mentions.users=window.BP_Suggestions.friends||a.mentions.users),b.fn.bp_mentions=function(a){b.isArray(a)&&(a={data:a});var c={delay:200,hide_without_suffix:!0,insert_tpl:"</>${atwho-data-value}</>",limit:10,start_with_space:!1,suffix:"",callbacks:{filter:function(a,b,c){var d,e,f,g=[],h=new RegExp("^"+a+"| "+a,"ig");for(e=0,f=b.length;f>e;e++)d=b[e],d[c].toLowerCase().match(h)&&g.push(d);return g},highlighter:function(a,b){if(!b)return a;var c=new RegExp(">(\\s*|[\\w\\s]*)("+this.at.replace("+","\\+")+"?"+b.replace("+","\\+")+")([\\w ]*)\\s*<","ig");return a.replace(c,function(a,b,c,d){return">"+b+"<strong>"+c+"</strong>"+d+"<"})},before_reposition:function(a){var c,d,e,f,g=b("#atwho-ground-"+this.id+" .atwho-view"),h=b("body"),i=this.$inputor.data("atwho");"undefined"!==i&&"undefined"!==i.iframe&&null!==i.iframe?(c=this.$inputor.caret("offset",{iframe:i.iframe}),e=b(i.iframe).offset(),"undefined"!==e&&(c.left+=e.left,c.top+=e.top)):c=this.$inputor.caret("offset"),c.left>h.width()/2?(g.addClass("right"),f=c.left-a.left-this.view.$el.width()):(g.removeClass("right"),f=c.left-a.left+1),h.width()<=400&&b(document).scrollTop(c.top-6),d=parseInt(this.$inputor.css("line-height").substr(0,this.$inputor.css("line-height").length-2),10),(!d||5>d)&&(d=19),a.top=c.top+d,a.left+=f},inserting_wrapper:function(a,b,c){return""+b+c}}},f={callbacks:{remote_filter:function(a,c){var f=b(this),g={};return d=e[a],"object"==typeof d?void c(d):(f.xhr&&f.xhr.abort(),g={action:"bp_get_suggestions",term:a,type:"members"},b.isNumeric(this.$inputor.data("suggestions-group-id"))&&(g["group-id"]=parseInt(this.$inputor.data("suggestions-group-id"),10)),void(f.xhr=b.getJSON(ajaxurl,g).done(function(d){if(d.success){var f=b.map(d.data,function(a){return a.search=a.search||a.ID+" "+a.name,a});e[a]=f,c(f)}})))}},data:b.map(a.data,function(a){return a.search=a.search||a.ID+" "+a.name,a}),at:"@",search_key:"search",tpl:'<li data-value="@${ID}"><img src="${image}" /><span class="username">@${ID}</span><small>${name}</small></li>'},g=b.extend(!0,{},c,f,a);return b.fn.atwho.call(this,g)},b(document).ready(function(){b(".bp-suggestions, #comments form textarea, .wp-editor-area").bp_mentions(a.mentions.users)}),a.mentions.tinyMCEinit=function(){"undefined"!=typeof window.tinyMCE&&null!==window.tinyMCE.activeEditor&&"undefined"!=typeof window.tinyMCE.activeEditor&&b(window.tinyMCE.activeEditor.contentDocument.activeElement).atwho("setIframe",b(".wp-editor-wrap iframe")[0]).bp_mentions(a.mentions.users)}}(bp,jQuery); \ No newline at end of file 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 b822f500b535d1439c5fd0c5bd1e3c4612fb75c6..83da06732d9e2f11282476108ea47606d61ba623 100644 --- a/wp-content/plugins/buddypress/bp-blogs/bp-blogs-activity.php +++ b/wp-content/plugins/buddypress/bp-blogs/bp-blogs-activity.php @@ -606,6 +606,134 @@ function bp_blogs_comments_open( $activity ) { return $open; } +/** SITE TRACKING *******************************************************/ + +/** + * Add an activity entry for a newly-created site. + * + * Hooked to the 'bp_blogs_new_blog' action. + * + * @since 2.6.0 + * + * @param BP_Blogs_Blog $recorded_blog Current site being recorded. Passed by reference. + * @param bool $is_private Whether the current site being recorded is private. + * @param bool $is_recorded Whether the current site was recorded. + */ +function bp_blogs_record_activity_on_site_creation( $recorded_blog, $is_private, $is_recorded, $no_activity ) { + // Only record this activity if the blog is public. + 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, + '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 + ) ); + } +} +add_action( 'bp_blogs_new_blog', 'bp_blogs_record_activity_on_site_creation', 10, 4 ); + +/** + * Deletes the 'new_blog' activity entry when a site is deleted. + * + * @since 2.6.0 + * + * @param int $blog_id Site ID. + */ +function bp_blogs_delete_new_blog_activity_for_site( $blog_id, $user_id = 0 ) { + $args = array( + 'item_id' => $blog_id, + 'component' => buddypress()->blogs->id, + 'type' => 'new_blog' + ); + + /** + * In the case a user is removed, make sure he is the author of the 'new_blog' activity + * when trying to delete it. + */ + if ( ! empty( $user_id ) ) { + $args['user_id'] = $user_id; + } + + bp_blogs_delete_activity( $args ); +} +add_action( 'bp_blogs_remove_blog', 'bp_blogs_delete_new_blog_activity_for_site', 10, 1 ); +add_action( 'bp_blogs_remove_blog_for_user', 'bp_blogs_delete_new_blog_activity_for_site', 10, 2 ); + +/** + * Delete all 'blogs' activity items for a site when the site is deleted. + * + * @since 2.6.0 + * + * @param int $blog_id Site ID. + */ +function bp_blogs_delete_activity_for_site( $blog_id ) { + bp_blogs_delete_activity( array( + 'item_id' => $blog_id, + 'component' => buddypress()->blogs->id, + 'type' => false + ) ); +} +add_action( 'bp_blogs_remove_data_for_blog', 'bp_blogs_delete_activity_for_site' ); + +/** + * Remove a blog post activity item from the activity stream. + * + * @since 1.0.0 + * + * @param int $post_id ID of the post to be removed. + * @param int $blog_id Optional. Defaults to current blog ID. + * @param int $user_id Optional. Defaults to the logged-in user ID. This param + * is currently unused in the function (but is passed to hooks). + * @return bool + */ +function bp_blogs_remove_post( $post_id, $blog_id = 0, $user_id = 0 ) { + global $wpdb; + + if ( empty( $wpdb->blogid ) ) { + return false; + } + + $post_id = (int) $post_id; + + if ( ! $blog_id ) { + $blog_id = (int) $wpdb->blogid; + } + + if ( ! $user_id ) { + $user_id = bp_loggedin_user_id(); + } + + /** + * Fires before removal of a blog post activity item from the activity stream. + * + * @since 1.5.0 + * + * @param int $blog_id ID of the blog associated with the post that was removed. + * @param int $post_id ID of the post that was removed. + * @param int $user_id ID of the user having the blog removed for. + */ + do_action( 'bp_blogs_before_remove_post', $blog_id, $post_id, $user_id ); + + bp_blogs_delete_activity( array( + 'item_id' => $blog_id, + 'secondary_item_id' => $post_id, + 'component' => buddypress()->blogs->id, + 'type' => 'new_blog_post' + ) ); + + /** + * Fires after removal of a blog post activity item from the activity stream. + * + * @since 1.0.0 + * + * @param int $blog_id ID of the blog associated with the post that was removed. + * @param int $post_id ID of the post that was removed. + * @param int $user_id ID of the user having the blog removed for. + */ + do_action( 'bp_blogs_remove_post', $blog_id, $post_id, $user_id ); +} +add_action( 'delete_post', 'bp_blogs_remove_post' ); + /** POST COMMENT SYNCHRONIZATION ****************************************/ /** @@ -633,6 +761,12 @@ function bp_blogs_sync_add_from_activity_comment( $comment_id, $params, $parent_ return; } + // Do not sync if the activity comment was marked as spam. + $activity = new BP_Activity_Activity( $comment_id ); + if ( $activity->is_spam ) { + return; + } + // Get userdata. if ( $params['user_id'] == bp_loggedin_user_id() ) { $user = buddypress()->loggedin_user->userdata; @@ -830,7 +964,7 @@ function bp_blogs_sync_activity_edit_to_post_comment( BP_Activity_Activity $acti 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 ); - if ( 1 === (int) $activity->is_spam && 'spam' !== $post_comment_status ) { + if ( 1 === $activity->is_spam && 'spam' !== $post_comment_status ) { wp_spam_comment( $post_comment_id ); } elseif ( ! $activity->is_spam ) { if ( 'spam' === $post_comment_status ) { diff --git a/wp-content/plugins/buddypress/bp-blogs/bp-blogs-filters.php b/wp-content/plugins/buddypress/bp-blogs/bp-blogs-filters.php index bfd96f09d824d9e0cbab6f909af6314e8ddd82ab..1d0d71b40b61b5da55d03a474bbd3ba70f80afe6 100644 --- a/wp-content/plugins/buddypress/bp-blogs/bp-blogs-filters.php +++ b/wp-content/plugins/buddypress/bp-blogs/bp-blogs-filters.php @@ -25,7 +25,6 @@ add_filter( 'bp_blog_latest_post_content', 'prepend_attachment' ); * * @since 1.6.0 * - * @uses apply_filters() Filter 'bp_blogs_creation_location' to alter the * returned value. * * @param string $url The original URL (points to wp-signup.php by default). 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 c5383f5f20b7d7a4c793a944531f39032bfb5730..a9895e73673bad3fc55e40fc0b7302d7adbcfcd3 100644 --- a/wp-content/plugins/buddypress/bp-blogs/bp-blogs-functions.php +++ b/wp-content/plugins/buddypress/bp-blogs/bp-blogs-functions.php @@ -72,68 +72,108 @@ function bp_blogs_get_blogs( $args = '' ) { /** * Populate the BP blogs table with existing blogs. * - * @since 1.0.0 + * Warning: By default, this will remove all existing records from the BP + * blogs and blogmeta tables before re-populating the tables. * - * @global object $wpdb WordPress database object. - * @uses get_users() - * @uses bp_blogs_record_blog() + * @since 1.0.0 + * @since 2.6.0 Accepts $args as a parameter. + * + * @param array $args { + * Array of arguments. + * @type int $offset The offset to use. + * @type int $limit The number of blogs to record at one time. + * @type array $blog_ids Blog IDs to record. If empty, all blogs will be recorded. + * @type array $site_id The network site ID to use. + * } * * @return bool */ -function bp_blogs_record_existing_blogs() { +function bp_blogs_record_existing_blogs( $args = array() ) { global $wpdb; // Query for all sites in network. + $r = bp_parse_args( $args, array( + 'offset' => false === bp_get_option( '_bp_record_blogs_offset' ) ? 0 : bp_get_option( '_bp_record_blogs_offset' ), + 'limit' => 50, + 'blog_ids' => array(), + 'site_id' => $wpdb->siteid + ), 'record_existing_blogs' ); + + // Truncate all BP blogs tables if starting fresh + if ( empty( $r['offset'] ) && empty( $r['blog_ids'] ) ) { + $bp = buddypress(); + + // Truncate user blogs table + $truncate = $wpdb->query( "TRUNCATE {$bp->blogs->table_name}" ); + if ( is_wp_error( $truncate ) ) { + return false; + } + + // Truncate user blogmeta table + $truncate = $wpdb->query( "TRUNCATE {$bp->blogs->table_name_blogmeta}" ); + if ( is_wp_error( $truncate ) ) { + return false; + } + } + + // Multisite if ( is_multisite() ) { + $sql = array(); + $sql['select'] = $wpdb->prepare( "SELECT blog_id, last_updated FROM {$wpdb->base_prefix}blogs WHERE mature = 0 AND spam = 0 AND deleted = 0 AND site_id = %d", $r['site_id'] ); - // Get blog ID's if not a large network. - if ( ! wp_is_large_network() ) { - $blog_ids = $wpdb->get_col( $wpdb->prepare( "SELECT blog_id FROM {$wpdb->base_prefix}blogs WHERE mature = 0 AND spam = 0 AND deleted = 0 AND site_id = %d", $wpdb->siteid ) ); + // Omit root blog if large network + if ( wp_is_large_network( 'users' ) ) { + $sql['omit_root_blog'] = $wpdb->prepare( "AND blog_id != %d", bp_get_root_blog_id() ); + } - // If error running this query, set blog ID's to false. - if ( is_wp_error( $blog_ids ) ) { - $blog_ids = false; - } + // Filter by selected blog IDs + if ( ! empty( $r['blog_ids'] ) ) { + $in = implode( ',', wp_parse_id_list( $r['blog_ids'] ) ); + $sql['in'] = "AND blog_id IN ({$in})"; + } - // Large networks are not currently supported. - } else { - $blog_ids = false; + $sql['orderby'] = 'ORDER BY blog_id ASC'; + + $sql['limit'] = $wpdb->prepare( "LIMIT %d", $r['limit'] ); + + if ( ! empty( $r['offset'] ) ) { + $sql['offset'] = $wpdb->prepare( "OFFSET %d", $r['offset'] ); } + $blogs = $wpdb->get_results( implode( ' ', $sql ) ); + // Record a single site. } else { - $blog_ids = $wpdb->blogid; - } + // Just record blog for the current user only. + $record = bp_blogs_record_blog( $wpdb->blogid, get_current_user_id(), true ); - // Bail if there are no blogs in the network. - if ( empty( $blog_ids ) ) { - return false; + if ( false === $record ) { + return false; + } else { + return true; + } } - // Get BuddyPress. - $bp = buddypress(); - - // Truncate user blogs table. - $truncate = $wpdb->query( "TRUNCATE {$bp->blogs->table_name}" ); - if ( is_wp_error( $truncate ) ) { - return false; - } + // Bail if there are no blogs + if ( empty( $blogs ) ) { + // Make sure we remove our offset marker + if ( is_multisite() ) { + bp_delete_option( '_bp_record_blogs_offset' ); + } - // Truncate user blogsmeta table. - $truncate = $wpdb->query( "TRUNCATE {$bp->blogs->table_name_blogmeta}" ); - if ( is_wp_error( $truncate ) ) { return false; } // Loop through users of blogs and record the relationship. - foreach ( (array) $blog_ids as $blog_id ) { + foreach ( (array) $blogs as $blog ) { // Ensure that the cache is clear after the table TRUNCATE above. - wp_cache_delete( $blog_id, 'blog_meta' ); + wp_cache_delete( $blog->blog_id, 'blog_meta' ); // Get all users. $users = get_users( array( - 'blog_id' => $blog_id + 'blog_id' => $blog->blog_id, + 'fields' => 'ID' ) ); // Continue on if no users exist for this site (how did this happen?). @@ -142,8 +182,42 @@ function bp_blogs_record_existing_blogs() { } // Loop through users and record their relationship to this blog. - foreach ( (array) $users as $user ) { - bp_blogs_add_user_to_blog( $user->ID, false, $blog_id ); + foreach ( (array) $users as $user_id ) { + bp_blogs_add_user_to_blog( $user_id, false, $blog->blog_id ); + + // Clear cache + bp_blogs_clear_blog_object_cache( $blog->blog_id, $user_id ); + } + + // Update blog last activity timestamp + if ( ! empty( $blog->last_updated ) && false !== strtotime( $blog->last_updated ) ) { + bp_blogs_update_blogmeta( $blog->blog_id, 'last_activity', $blog->last_updated ); + } + } + + // See if we need to do this again + if ( is_multisite() && empty( $r['blog_ids'] ) ) { + $sql['offset'] = $wpdb->prepare( " OFFSET %d", $r['limit'] + $r['offset'] ); + + // Check if there are more blogs to record + $blog_ids = $wpdb->get_results( implode( ' ', $sql ) ); + + // We have more blogs; record offset and re-run function + if ( ! empty( $blog_ids ) ) { + bp_update_option( '_bp_record_blogs_offset', $r['limit'] + $r['offset'] ); + bp_blogs_record_existing_blogs( array( + 'offset' => $r['limit'] + $r['offset'], + 'limit' => $r['limit'], + 'blog_ids' => $r['blog_ids'], + 'site_id' => $r['site_id'] + ) ); + + // Bail since we have more blogs to record. + return; + + // No more blogs; delete offset marker + } else { + bp_delete_option( '_bp_record_blogs_offset' ); } } @@ -166,8 +240,6 @@ function bp_blogs_record_existing_blogs() { * * @since 1.7.0 * - * @uses apply_filters() - * * @param int $blog_id ID of the blog being checked. * @param int $user_id Optional. ID of the user for whom access is being checked. * @return bool True if blog is recordable, otherwise false. @@ -197,9 +269,6 @@ function bp_blogs_is_blog_recordable( $blog_id, $user_id = 0 ) { * * @since 1.7.0 * - * @uses bp_blogs_is_blog_recordable - * @uses apply_filters() - * * @param int $blog_id ID of the blog being checked. * @param int $user_id Optional. ID of the user for whom access is being checked. * @return bool True if blog is trackable, otherwise false. @@ -226,8 +295,6 @@ function bp_blogs_is_blog_trackable( $blog_id, $user_id = 0 ) { * * @since 1.0.0 * - * @uses BP_Blogs_Blog - * * @param int $blog_id ID of the blog being recorded. * @param int $user_id ID of the user for whom the blog is being recorded. * @param bool $no_activity Optional. Whether to skip recording an activity @@ -279,28 +346,18 @@ function bp_blogs_record_blog( $blog_id, $user_id, $no_activity = false ) { $is_private = !empty( $_POST['blog_public'] ) && (int) $_POST['blog_public'] ? false : true; $is_private = !apply_filters( 'bp_is_new_blog_public', !$is_private ); - // Only record this activity if the activity component is active and the blog is public. - if ( bp_is_active( 'activity' ) && !$is_private && !$no_activity && bp_blogs_is_blog_trackable( $blog_id, $user_id ) ) { - - // Record this in activity streams. - bp_blogs_record_activity( array( - 'user_id' => $recorded_blog->user_id, - 'primary_link' => apply_filters( 'bp_blogs_activity_created_blog_primary_link', $url, $recorded_blog->blog_id ), - 'type' => 'new_blog', - 'item_id' => $recorded_blog->blog_id - ) ); - } - /** * Fires after BuddyPress has been made aware of a new site for activity tracking. * * @since 1.0.0 + * @since 2.6.0 Added $no_activity as a parameter. * * @param BP_Blogs_Blog $recorded_blog Current blog being recorded. Passed by reference. * @param bool $is_private Whether or not the current blog being recorded is private. * @param bool $is_recorded Whether or not the current blog was recorded. + * @param bool $no_activity Whether to skip recording an activity item for this blog creation. */ - do_action_ref_array( 'bp_blogs_new_blog', array( &$recorded_blog, $is_private, $is_recorded ) ); + do_action_ref_array( 'bp_blogs_new_blog', array( &$recorded_blog, $is_private, $is_recorded, $no_activity ) ); } add_action( 'wpmu_new_blog', 'bp_blogs_record_blog', 10, 2 ); @@ -563,11 +620,11 @@ add_action( 'bp_activity_post_type_updated', 'bp_blogs_update_post_activity_meta * * @since 2.5.0 * - * @param int|bool $activity_id ID of recorded activity, or false if sync is active. - * @param WP_Comment $comment The comment object. - * @param array $activity_args Array of activity arguments. - * @param object $activity_post_object The post type tracking args object. - * @return int|bool Returns false if no activity, the activity id otherwise. + * @param int|bool $activity_id ID of recorded activity, or false if sync is active. + * @param WP_Comment|null $comment The comment object. + * @param array $activity_args Array of activity arguments. + * @param object|null $activity_post_object The post type tracking args object. + * @return int|bool Returns false if no activity, the activity id otherwise. */ function bp_blogs_comment_sync_activity_comment( &$activity_id, $comment = null, $activity_args = array(), $activity_post_object = null ) { if ( empty( $activity_args ) || empty( $comment->post->ID ) || empty( $activity_post_object->comment_action_id ) ) { @@ -658,6 +715,18 @@ function bp_blogs_comment_sync_activity_comment( &$activity_id, $comment = null, bp_activity_update_meta( $activity_id, 'post_url', esc_url_raw( add_query_arg( 'p', $comment->post->ID, home_url( '/' ) ) ) ); } } + + /** + * Fires after an activity comment is added from a WP post comment. + * + * @since 2.6.0 + * + * @param int $activity_id The activity comment ID. + * @param WP_Comment $post_type_comment WP Comment object. + * @param array $activity_args Activity comment arguments. + * @param object $activity_post_object The post type tracking args object. + */ + do_action( 'bp_blogs_comment_sync_activity_comment', $activity_id, $comment, $activity_args, $activity_post_object ); } } @@ -815,19 +884,6 @@ function bp_blogs_remove_blog( $blog_id ) { BP_Blogs_Blog::delete_blog_for_all( $blog_id ); - /** - * Delete activity stream item only if the Activity component is active - * - * @see https://buddypress.trac.wordpress.org/ticket/6937 - */ - if ( bp_is_active( 'activity' ) ) { - bp_blogs_delete_activity( array( - 'item_id' => $blog_id, - 'component' => buddypress()->blogs->id, - 'type' => 'new_blog' - ) ); - } - /** * Fires after a "blog created" item has been removed from blogs * tracker and activity stream. @@ -863,19 +919,6 @@ function bp_blogs_remove_blog_for_user( $user_id, $blog_id ) { BP_Blogs_Blog::delete_blog_for_user( $blog_id, $user_id ); - /** - * Delete activity stream item only if the Activity component is active - * - * @see https://buddypress.trac.wordpress.org/ticket/6937 - */ - if ( bp_is_active( 'activity' ) ) { - bp_blogs_delete_activity( array( - 'item_id' => $blog_id, - 'component' => buddypress()->blogs->id, - 'type' => 'new_blog' - ) ); - } - /** * Fires after a blog has been removed from the tracker for a specific user. * @@ -888,67 +931,6 @@ function bp_blogs_remove_blog_for_user( $user_id, $blog_id ) { } add_action( 'remove_user_from_blog', 'bp_blogs_remove_blog_for_user', 10, 2 ); -/** - * Remove a blog post activity item from the activity stream. - * - * @param int $post_id ID of the post to be removed. - * @param int $blog_id Optional. Defaults to current blog ID. - * @param int $user_id Optional. Defaults to the logged-in user ID. This param - * is currently unused in the function (but is passed to hooks). - * @return bool - */ -function bp_blogs_remove_post( $post_id, $blog_id = 0, $user_id = 0 ) { - global $wpdb; - - if ( empty( $wpdb->blogid ) ) - return false; - - $post_id = (int) $post_id; - - if ( !$blog_id ) - $blog_id = (int) $wpdb->blogid; - - if ( !$user_id ) - $user_id = bp_loggedin_user_id(); - - /** - * Fires before removal of a blog post activity item from the activity stream. - * - * @since 1.5.0 - * - * @param int $blog_id ID of the blog associated with the post that was removed. - * @param int $post_id ID of the post that was removed. - * @param int $user_id ID of the user having the blog removed for. - */ - do_action( 'bp_blogs_before_remove_post', $blog_id, $post_id, $user_id ); - - /** - * Delete activity stream item only if the Activity component is active - * - * @see https://buddypress.trac.wordpress.org/ticket/6937 - */ - if ( bp_is_active( 'activity' ) ) { - bp_blogs_delete_activity( array( - 'item_id' => $blog_id, - 'secondary_item_id' => $post_id, - 'component' => buddypress()->blogs->id, - 'type' => 'new_blog_post' - ) ); - } - - /** - * Fires after removal of a blog post activity item from the activity stream. - * - * @since 1.0.0 - * - * @param int $blog_id ID of the blog associated with the post that was removed. - * @param int $post_id ID of the post that was removed. - * @param int $user_id ID of the user having the blog removed for. - */ - do_action( 'bp_blogs_remove_post', $blog_id, $post_id, $user_id ); -} -add_action( 'delete_post', 'bp_blogs_remove_post' ); - /** * Remove a synced activity comment from the activity stream. * @@ -1126,19 +1108,6 @@ function bp_blogs_remove_data_for_blog( $blog_id ) { // If this is regular blog, delete all data for that blog. BP_Blogs_Blog::delete_blog_for_all( $blog_id ); - /** - * Delete activity stream item only if the Activity component is active - * - * @see https://buddypress.trac.wordpress.org/ticket/6937 - */ - if ( bp_is_active( 'activity' ) ) { - bp_blogs_delete_activity( array( - 'item_id' => $blog_id, - 'component' => buddypress()->blogs->id, - 'type' => false - ) ); - } - /** * Fires after all data related to a given blog has been removed from blogs tracker * and activity stream. 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 1764a4654be9ce6ac1e7e64f4865126bcf2dbe93..5dff186c46365d0dea9d60936385e94689ccc07b 100644 --- a/wp-content/plugins/buddypress/bp-blogs/bp-blogs-loader.php +++ b/wp-content/plugins/buddypress/bp-blogs/bp-blogs-loader.php @@ -14,7 +14,9 @@ // Exit if accessed directly. defined( 'ABSPATH' ) || exit; -require dirname( __FILE__ ) . '/classes/class-bp-blogs-component.php'; +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 317aa16a99912fd2395b2c32fb30c1d7b7739376..371f401295f611de85388dc07875afaa395fcba9 100644 --- a/wp-content/plugins/buddypress/bp-blogs/bp-blogs-screens.php +++ b/wp-content/plugins/buddypress/bp-blogs/bp-blogs-screens.php @@ -10,7 +10,9 @@ // Exit if accessed directly. defined( 'ABSPATH' ) || exit; -require dirname( __FILE__ ) . '/classes/class-bp-blogs-theme-compat.php'; +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 c4719f44b360e20970c41eac7408cf1fc3c591bc..312056f9baf12edad12dcbde269b1a3383dde4bc 100644 --- a/wp-content/plugins/buddypress/bp-blogs/bp-blogs-template.php +++ b/wp-content/plugins/buddypress/bp-blogs/bp-blogs-template.php @@ -10,14 +10,15 @@ // Exit if accessed directly. defined( 'ABSPATH' ) || exit; -require dirname( __FILE__ ) . '/classes/class-bp-blogs-template.php'; +if ( ! buddypress()->do_autoload ) { + require dirname( __FILE__ ) . '/classes/class-bp-blogs-template.php'; +} /** * Output the blogs component slug. * * @since 1.5.0 * - * @uses bp_get_blogs_slug() */ function bp_blogs_slug() { echo bp_get_blogs_slug(); @@ -46,7 +47,6 @@ function bp_blogs_slug() { * * @since 1.5.0 * - * @uses bp_get_blogs_root_slug() */ function bp_blogs_root_slug() { echo bp_get_blogs_root_slug(); @@ -75,7 +75,6 @@ function bp_blogs_root_slug() { * * @since 1.5.0 * - * @uses bp_get_blogs_directory_permalink() */ function bp_blogs_directory_permalink() { echo esc_url( bp_get_blogs_directory_permalink() ); @@ -85,10 +84,6 @@ function bp_blogs_directory_permalink() { * * @since 1.5.0 * - * @uses apply_filters() - * @uses trailingslashit() - * @uses bp_get_root_domain() - * @uses bp_get_blogs_root_slug() * * @return string The URL of the Blogs directory. */ @@ -629,10 +624,12 @@ function bp_blog_latest_post( $args = array() ) { * Filters the HTML markup result for the latest blog post in loop. * * @since 1.2.0 + * @since 2.6.0 Added the `$r` parameter. * * @param string $retval HTML markup for the latest post. + * @param array $r Array of parsed arguments. */ - return apply_filters( 'bp_get_blog_latest_post', $retval ); + return apply_filters( 'bp_get_blog_latest_post', $retval, $r ); } /** @@ -714,7 +711,6 @@ function bp_blog_latest_post_permalink() { * * @since 1.7.0 * - * @uses bp_get_blog_latest_post_content() */ function bp_blog_latest_post_content() { echo bp_get_blog_latest_post_content(); @@ -874,10 +870,12 @@ function bp_total_blog_count_for_user( $user_id = 0 ) { * Filters the total number of blogs for a given user. * * @since 1.2.0 + * @since 2.6.0 Added the `$user_id` parameter. * - * @param int $value Total number of blogs for a given user. + * @param int $value Total number of blogs for a given user. + * @param int $user_id ID of the queried user. */ - return apply_filters( 'bp_get_total_blog_count_for_user', bp_blogs_total_blogs_for_user( $user_id ) ); + return apply_filters( 'bp_get_total_blog_count_for_user', bp_blogs_total_blogs_for_user( $user_id ), $user_id ); } add_filter( 'bp_get_total_blog_count_for_user', 'bp_core_number_format' ); @@ -1108,8 +1106,8 @@ function bp_blogs_validate_blog_signup() { if ( is_subdomain_install() ) $domain = $blogname . '.' . preg_replace( '|^www\.|', '', $current_site->domain ); - wpmu_create_blog( $domain, $path, $blog_title, $current_user->ID, $meta, $wpdb->siteid ); - bp_blogs_confirm_blog_signup($domain, $path, $blog_title, $current_user->user_login, $current_user->user_email, $meta); + $blog_id = wpmu_create_blog( $domain, $path, $blog_title, $current_user->ID, $meta, $wpdb->siteid ); + bp_blogs_confirm_blog_signup( $domain, $path, $blog_title, $current_user->user_login, $current_user->user_email, $meta, $blog_id ); return true; } @@ -1131,20 +1129,38 @@ function bp_blogs_validate_blog_form() { /** * Display a message after successful blog registration. * + * @since 2.6.0 Introduced `$blog_id` parameter. + * * @param string $domain The new blog's domain. * @param string $path The new blog's path. * @param string $blog_title The new blog's title. * @param string $user_name The user name of the user who created the blog. Unused. * @param string $user_email The email of the user who created the blog. Unused. * @param string|array $meta Meta values associated with the new blog. Unused. + * @param int|null $blog_id ID of the newly created blog. */ -function bp_blogs_confirm_blog_signup( $domain, $path, $blog_title, $user_name, $user_email = '', $meta = '' ) { - $protocol = is_ssl() ? 'https://' : 'http://'; - $blog_url = $protocol . $domain . $path; ?> +function bp_blogs_confirm_blog_signup( $domain, $path, $blog_title, $user_name, $user_email = '', $meta = '', $blog_id = null ) { + switch_to_blog( $blog_id ); + $blog_url = set_url_scheme( home_url() ); + $login_url = set_url_scheme( wp_login_url() ); + restore_current_blog(); + ?> <p><?php _e( 'Congratulations! You have successfully registered a new site.', 'buddypress' ) ?></p> <p> - <?php printf(__( '<a href="%1$s">%2$s</a> is your new site. <a href="%3$s">Login</a> as "%4$s" using your existing password.', 'buddypress' ), $blog_url, $blog_url, $blog_url . "wp-login.php", $user_name ); ?> + <?php printf( + '%s %s', + sprintf( + __( '%s is your new site.', 'buddypress' ), + sprintf( '<a href="%s">%s</a>', esc_url( $blog_url ), esc_url( $blog_url ) ) + ), + sprintf( + /* translators: 1: Login URL, 2: User name */ + __( '<a href="%1$s">Log in</a> as "%2$s" using your existing password.', 'buddypress' ), + esc_url( $login_url ), + esc_html( $user_name ) + ) + ); ?> </p> <?php @@ -1317,8 +1333,6 @@ function bp_blog_create_nav_item() { * * @since 2.2.0 * - * @uses bp_blog_create_nav_item() to output the Create a Site nav item. - * * @return string HTML Output */ function bp_blog_backcompat_create_nav_item() { @@ -1399,8 +1413,6 @@ function bp_blogs_visit_blog_button( $args = '' ) { * * @since 2.0.0 * - * @uses bp_blogs_admin_get_profile_stats() to get the stats. - * * @param array|string $args Before|after|user_id. */ function bp_blogs_profile_stats( $args = '' ) { 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 151528ce35a96c48cf0ff1b9b97137fa966ee06e..bc77206d182b5ec763d18d39da52016ba88294eb 100644 --- a/wp-content/plugins/buddypress/bp-blogs/bp-blogs-widgets.php +++ b/wp-content/plugins/buddypress/bp-blogs/bp-blogs-widgets.php @@ -10,7 +10,9 @@ // Exit if accessed directly. defined( 'ABSPATH' ) || exit; -require dirname( __FILE__ ) . '/classes/class-bp-blogs-recent-posts-widget.php'; +if ( ! buddypress()->do_autoload ) { + require dirname( __FILE__ ) . '/classes/class-bp-blogs-recent-posts-widget.php'; +} /** * Register the widgets for the Blogs component. 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 336a8be878e99ec94885e6542fb3e69ced85ff41..69dfe3720457cb9beaae6cc811612edb554564eb 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 @@ -122,12 +122,15 @@ class BP_Blogs_Component extends BP_Component { 'cache', 'actions', 'screens', - 'classes', 'template', 'filters', 'functions', ); + if ( ! buddypress()->do_autoload ) { + $includes[] = 'classes'; + } + if ( bp_is_active( 'activity' ) ) { $includes[] = 'activity'; } @@ -176,7 +179,15 @@ class BP_Blogs_Component extends BP_Component { // Add 'Sites' to the main navigation. $count = (int) bp_get_total_blog_count_for_user(); $class = ( 0 === $count ) ? 'no-count' : 'count'; - $nav_text = sprintf( __( 'Sites <span class="%s">%s</span>', 'buddypress' ), esc_attr( $class ), bp_core_number_format( $count ) ); + $nav_text = sprintf( + /* translators: %s: Site count for the current user */ + __( 'Sites %s', 'buddypress' ), + sprintf( + '<span class="%s">%s</span>', + esc_attr( $class ), + bp_core_number_format( $count ) + ) + ); $main_nav = array( 'name' => $nav_text, 'slug' => $slug, diff --git a/wp-content/plugins/buddypress/bp-blogs/classes/class-bp-blogs-recent-posts-widget.php b/wp-content/plugins/buddypress/bp-blogs/classes/class-bp-blogs-recent-posts-widget.php index f7e68271e588e031304e8332ad3e265fbf8fe6ec..5e47e2c7167e5c7775374a12a53c7d793014e447 100644 --- a/wp-content/plugins/buddypress/bp-blogs/classes/class-bp-blogs-recent-posts-widget.php +++ b/wp-content/plugins/buddypress/bp-blogs/classes/class-bp-blogs-recent-posts-widget.php @@ -20,8 +20,9 @@ class BP_Blogs_Recent_Posts_Widget extends WP_Widget { */ public function __construct() { $widget_ops = array( - 'description' => __( 'A list of recently published posts from across your network.', 'buddypress' ), - 'classname' => 'widget_bp_blogs_widget buddypress widget', + 'description' => __( 'A list of recently published posts from across your network.', 'buddypress' ), + 'classname' => 'widget_bp_blogs_widget buddypress widget', + 'customize_selective_refresh' => true, ); parent::__construct( false, $name = _x( '(BuddyPress) Recent Networkwide Posts', 'widget name', 'buddypress' ), $widget_ops ); } diff --git a/wp-content/plugins/buddypress/bp-core/admin/bp-core-admin-actions.php b/wp-content/plugins/buddypress/bp-core/admin/bp-core-admin-actions.php index 3662892d581fd6261ccb0ffbd212f1fe4c663ff2..7cd80d3895c0e5b2ea3af7102f52e818db269729 100644 --- a/wp-content/plugins/buddypress/bp-core/admin/bp-core-admin-actions.php +++ b/wp-content/plugins/buddypress/bp-core/admin/bp-core-admin-actions.php @@ -106,7 +106,6 @@ function bp_new_site( $blog_id, $user_id, $domain, $path, $site_id, $meta ) { * * @since 1.7.0 * - * @uses do_action() Calls 'bp_admin_init'. */ function bp_admin_init() { @@ -123,7 +122,6 @@ function bp_admin_init() { * * @since 1.7.0 * - * @uses do_action() Calls 'bp_admin_menu'. */ function bp_admin_menu() { @@ -140,7 +138,6 @@ function bp_admin_menu() { * * @since 1.7.0 * - * @uses do_action() Calls 'bp_admin_head'. */ function bp_admin_head() { @@ -157,7 +154,6 @@ function bp_admin_head() { * * @since 1.7.0 * - * @uses do_action() Calls 'bp_admin_notices'. */ function bp_admin_notices() { @@ -174,8 +170,6 @@ function bp_admin_notices() { * * @since 1.7.0 * - * @uses do_action() Calls 'bp_admin_enqueue_scripts'. - * * @param string $hook_suffix The current admin page, passed to * 'admin_enqueue_scripts'. */ @@ -196,7 +190,6 @@ function bp_admin_enqueue_scripts( $hook_suffix = '' ) { * * @since 1.7.0 * - * @uses do_action() Calls 'bp_admin_notices'. */ function bp_register_importers() { @@ -215,7 +208,6 @@ function bp_register_importers() { * * @since 1.7.0 * - * @uses do_action() Calls 'bp_admin_notices'. */ function bp_register_admin_style() { @@ -232,7 +224,6 @@ function bp_register_admin_style() { * * @since 1.7.0 * - * @uses do_action() Calls 'bp_register_admin_settings'. */ function bp_register_admin_settings() { diff --git a/wp-content/plugins/buddypress/bp-core/admin/bp-core-admin-components.php b/wp-content/plugins/buddypress/bp-core/admin/bp-core-admin-components.php index 8e71dc01fdf2b8509cb8b3909707a28768d68b47..558f70b37f748e8b53694aaf512c745b919f09ef 100644 --- a/wp-content/plugins/buddypress/bp-core/admin/bp-core-admin-components.php +++ b/wp-content/plugins/buddypress/bp-core/admin/bp-core-admin-components.php @@ -15,7 +15,6 @@ defined( 'ABSPATH' ) || exit; * * @since 1.6.0 * - * @uses bp_core_admin_component_options() */ function bp_core_admin_components_settings() { ?> @@ -150,7 +149,10 @@ function bp_core_admin_components_options() { break; } ?> - <h3 class="screen-reader-text"><?php _e( 'Filter components list', 'buddypress' ); ?></h3> + <h3 class="screen-reader-text"><?php + /* translators: accessibility text */ + _e( 'Filter components list', 'buddypress' ); + ?></h3> <ul class="subsubsub"> <li><a href="<?php echo esc_url( add_query_arg( array( 'page' => 'bp-components', 'action' => 'all' ), bp_get_admin_url( $page ) ) ); ?>" <?php if ( $action === 'all' ) : ?>class="current"<?php endif; ?>><?php printf( _nx( 'All <span class="count">(%s)</span>', 'All <span class="count">(%s)</span>', $all_count, 'plugins', 'buddypress' ), number_format_i18n( $all_count ) ); ?></a> | </li> @@ -160,12 +162,18 @@ function bp_core_admin_components_options() { <li><a href="<?php echo esc_url( add_query_arg( array( 'page' => 'bp-components', 'action' => 'retired' ), bp_get_admin_url( $page ) ) ); ?>" <?php if ( $action === 'retired' ) : ?>class="current"<?php endif; ?>><?php printf( _n( 'Retired <span class="count">(%s)</span>', 'Retired <span class="count">(%s)</span>', count( $retired_components ), 'buddypress' ), number_format_i18n( count( $retired_components ) ) ); ?></a></li> </ul> - <h3 class="screen-reader-text"><?php _e( 'Components list', 'buddypress' ); ?></h3> + <h3 class="screen-reader-text"><?php + /* translators: accessibility text */ + _e( 'Components list', 'buddypress' ); + ?></h3> <table class="wp-list-table widefat plugins"> <thead> <tr> - <td id="cb" class="manage-column column-cb check-column"><input id="cb-select-all-1" type="checkbox" disabled><label class="screen-reader-text" for="cb-select-all-1"><?php _e( 'Bulk selection is disabled', 'buddypress' ); ?></label></td> + <td id="cb" class="manage-column column-cb check-column"><input id="cb-select-all-1" type="checkbox" disabled><label class="screen-reader-text" for="cb-select-all-1"><?php + /* translators: accessibility text */ + _e( 'Bulk selection is disabled', 'buddypress' ); + ?></label></td> <th scope="col" id="name" class="manage-column column-title column-primary"><?php _e( 'Component', 'buddypress' ); ?></th> <th scope="col" id="description" class="manage-column column-description"><?php _e( 'Description', 'buddypress' ); ?></th> </tr> @@ -188,17 +196,21 @@ function bp_core_admin_components_options() { <?php if ( !in_array( $name, array( 'core', 'members' ) ) ) : ?> - <input type="checkbox" id="<?php echo esc_attr( "bp_components[$name]" ); ?>" name="<?php echo esc_attr( "bp_components[$name]" ); ?>" value="1"<?php checked( isset( $active_components[esc_attr( $name )] ) ); ?> /><label for="<?php echo esc_attr( "bp_components[$name]" ); ?>" class="screen-reader-text"><?php printf( __( 'Select %s', 'buddypress' ), esc_html( $labels['title'] ) ); ?></label> + <input type="checkbox" id="<?php echo esc_attr( "bp_components[$name]" ); ?>" name="<?php echo esc_attr( "bp_components[$name]" ); ?>" value="1"<?php checked( isset( $active_components[esc_attr( $name )] ) ); ?> /><label for="<?php echo esc_attr( "bp_components[$name]" ); ?>" class="screen-reader-text"><?php + /* translators: accessibility text */ + printf( __( 'Select %s', 'buddypress' ), esc_html( $labels['title'] ) ); ?></label> <?php else : ?> - <input type="checkbox" id="<?php echo esc_attr( "bp_components[$name]" ); ?>" name="<?php echo esc_attr( "bp_components[$name]" ); ?>" value="1" checked="checked" disabled><label for="<?php echo esc_attr( "bp_components[$name]" ); ?>" class="screen-reader-text"><?php printf( __( '%s is a required component', 'buddypress' ), esc_html( $labels['title'] ) ); ?></label> + <input type="checkbox" id="<?php echo esc_attr( "bp_components[$name]" ); ?>" name="<?php echo esc_attr( "bp_components[$name]" ); ?>" value="1" checked="checked" disabled><label for="<?php echo esc_attr( "bp_components[$name]" ); ?>" class="screen-reader-text"><?php + /* translators: accessibility text */ + printf( __( '%s is a required component', 'buddypress' ), esc_html( $labels['title'] ) ); ?></label> <?php endif; ?> </th> <td class="plugin-title column-primary"> - <span></span> + <span aria-hidden="true"></span> <strong><?php echo esc_html( $labels['title'] ); ?></strong> </td> @@ -224,7 +236,10 @@ function bp_core_admin_components_options() { <tfoot> <tr> - <td class="manage-column column-cb check-column"><input id="cb-select-all-2" type="checkbox" disabled><label class="screen-reader-text" for="cb-select-all-2"><?php _e( 'Bulk selection is disabled', 'buddypress' ); ?></label></td> + <td class="manage-column column-cb check-column"><input id="cb-select-all-2" type="checkbox" disabled><label class="screen-reader-text" for="cb-select-all-2"><?php + /* translators: accessibility text */ + _e( 'Bulk selection is disabled', 'buddypress' ); + ?></label></td> <th class="manage-column column-title column-primary"><?php _e( 'Component', 'buddypress' ); ?></th> <th class="manage-column column-description"><?php _e( 'Description', 'buddypress' ); ?></th> </tr> @@ -340,100 +355,18 @@ function bp_core_admin_get_active_components_from_submitted_settings( $submitted } /** - * Return a list of component information, optionally filtered by type. + * Return a list of component information. * * We use this information both to build the markup for the admin screens, as * well as to do some processing on settings data submitted from those screens. * * @since 1.7.0 * - * @param string $type 'all', 'optional', 'retired', 'required'. - * @return array An array of requested component data. + * @param string $type Optional; component type to fetch. Default value is 'all', or 'optional', 'retired', 'required'. + * @return array Requested components' data. */ function bp_core_admin_get_components( $type = 'all' ) { - - // Required components. - $required_components = array( - 'core' => array( - 'title' => __( 'BuddyPress Core', 'buddypress' ), - 'description' => __( 'It‘s what makes <del>time travel</del> BuddyPress possible!', 'buddypress' ) - ), - 'members' => array( - 'title' => __( 'Community Members', 'buddypress' ), - 'description' => __( 'Everything in a BuddyPress community revolves around its members.', 'buddypress' ) - ), - ); - - // Retired components. - $retired_components = array( - 'forums' => array( - 'title' => __( 'Group Forums', 'buddypress' ), - 'description' => sprintf( __( 'BuddyPress Forums are retired. Use %s.', 'buddypress' ), '<a href="https://bbpress.org/">bbPress</a>' ) - ), - ); - - // Optional core components. - $optional_components = array( - 'xprofile' => array( - 'title' => __( 'Extended Profiles', 'buddypress' ), - 'description' => __( 'Customize your community with fully editable profile fields that allow your users to describe themselves.', 'buddypress' ) - ), - 'settings' => array( - 'title' => __( 'Account Settings', 'buddypress' ), - 'description' => __( 'Allow your users to modify their account and notification settings directly from within their profiles.', 'buddypress' ) - ), - 'friends' => array( - 'title' => __( 'Friend Connections', 'buddypress' ), - 'description' => __( 'Let your users make connections so they can track the activity of others and focus on the people they care about the most.', 'buddypress' ) - ), - 'messages' => array( - 'title' => __( 'Private Messaging', 'buddypress' ), - 'description' => __( '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.', 'buddypress' ) - ), - 'activity' => array( - 'title' => __( 'Activity Streams', 'buddypress' ), - 'description' => __( 'Global, personal, and group activity streams with threaded commenting, direct posting, favoriting, and @mentions, all with full RSS feed and email notification support.', 'buddypress' ) - ), - 'notifications' => array( - 'title' => __( 'Notifications', 'buddypress' ), - 'description' => __( 'Notify members of relevant activity with a toolbar bubble and/or via email, and allow them to customize their notification settings.', 'buddypress' ) - ), - 'groups' => array( - 'title' => __( 'User Groups', 'buddypress' ), - 'description' => __( 'Groups allow your users to organize themselves into specific public, private or hidden sections with separate activity streams and member listings.', 'buddypress' ) - ), - 'forums' => array( - 'title' => __( 'Group Forums (Legacy)', 'buddypress' ), - 'description' => __( 'Group forums allow for focused, bulletin-board style conversations.', 'buddypress' ) - ), - 'blogs' => array( - 'title' => __( 'Site Tracking', 'buddypress' ), - 'description' => __( 'Record activity for new posts and comments from your site.', 'buddypress' ) - ) - ); - - - // Add blogs tracking if multisite. - if ( is_multisite() ) { - $optional_components['blogs']['description'] = __( 'Record activity for new sites, posts, and comments across your network.', 'buddypress' ); - } - - switch ( $type ) { - case 'required' : - $components = $required_components; - break; - case 'optional' : - $components = $optional_components; - break; - case 'retired' : - $components = $retired_components; - break; - case 'all' : - default : - $components = array_merge( $required_components, $optional_components, $retired_components ); - break; - - } + $components = bp_core_get_components( $type ); /** * Filters the list of component information. 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 fbc5d4cde24668b5efb836bddc0a2703420e11aa..39b54b2a5f9bd78074b377be4097d9f154d4cf54 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 @@ -15,7 +15,6 @@ defined( 'ABSPATH' ) || exit; /** * Initializes the wp-admin area "BuddyPress" menus and sub menus. * - * @uses bp_current_user_can() returns true if the current user is a site admin, false if not. */ function bp_core_admin_menu_init() { add_action( bp_core_admin_hook(), 'bp_core_add_admin_menu', 9 ); @@ -123,8 +122,6 @@ function bp_core_admin_backpat_page() { * * @since 1.5.0 * - * @uses bp_current_user_can() to check current user permissions before showing the notices. - * @uses bp_is_root_blog() */ function bp_core_print_admin_notices() { @@ -302,7 +299,15 @@ function bp_core_activation_notice() { if ( !empty( $orphaned_components ) ) { $admin_url = bp_get_admin_url( add_query_arg( array( 'page' => 'bp-page-settings' ), 'admin.php' ) ); - $notice = sprintf( __( 'The following active BuddyPress Components do not have associated WordPress Pages: %2$s. <a href="%1$s">Repair</a>', 'buddypress' ), esc_url( $admin_url ), '<strong>' . implode( '</strong>, <strong>', $orphaned_components ) . '</strong>' ); + $notice = sprintf( + '%1$s <a href="%2$s">%3$s</a>', + sprintf( + __( 'The following active BuddyPress Components do not have associated WordPress Pages: %s.', 'buddypress' ), + '<strong>' . implode( '</strong>, <strong>', array_map( 'esc_html', $orphaned_components ) ) . '</strong>' + ), + esc_url( $admin_url ), + __( 'Repair', 'buddypress' ) + ); bp_core_add_admin_notice( $notice ); } @@ -324,7 +329,15 @@ function bp_core_activation_notice() { // If there are duplicates, post a message about them. if ( !empty( $dupe_names ) ) { $admin_url = bp_get_admin_url( add_query_arg( array( 'page' => 'bp-page-settings' ), 'admin.php' ) ); - $notice = sprintf( __( 'Each BuddyPress Component needs its own WordPress page. The following WordPress Pages have more than one component associated with them: %2$s. <a href="%1$s">Repair</a>', 'buddypress' ), esc_url( $admin_url ), '<strong>' . implode( '</strong>, <strong>', $dupe_names ) . '</strong>' ); + $notice = sprintf( + '%1$s <a href="%2$s">%3$s</a>', + sprintf( + __( 'Each BuddyPress Component needs its own WordPress page. The following WordPress Pages have more than one component associated with them: %s.', 'buddypress' ), + '<strong>' . implode( '</strong>, <strong>', array_map( 'esc_html', $dupe_names ) ) . '</strong>' + ), + esc_url( $admin_url ), + __( 'Repair', 'buddypress' ) + ); bp_core_add_admin_notice( $notice ); } @@ -337,12 +350,6 @@ function bp_core_activation_notice() { * * @internal Used internally to redirect BuddyPress to the about page on activation. * - * @uses get_transient() To see if transient to redirect exists. - * @uses delete_transient() To delete the transient if it exists. - * @uses is_network_admin() To bail if being network activated. - * @uses wp_safe_redirect() To redirect. - * @uses add_query_arg() To help build the URL to redirect to. - * @uses admin_url() To get the admin URL to index.php. */ function bp_do_activation_redirect() { @@ -548,7 +555,10 @@ function bp_core_add_contextual_help( $screen = '' ) { break; } } -add_action( 'contextual_help', 'bp_core_add_contextual_help' ); +add_action( 'load-settings_page_bp-components', 'bp_core_add_contextual_help' ); +add_action( 'load-settings_page_bp-page-settings', 'bp_core_add_contextual_help' ); +add_action( 'load-settings_page_bp-settings', 'bp_core_add_contextual_help' ); +add_action( 'load-users_page_bp-profile-setup', 'bp_core_add_contextual_help' ); /** * Renders contextual help content to contextual help tabs. @@ -597,7 +607,6 @@ function bp_core_add_contextual_help_content( $tab = '' ) { * * @since 1.7.0 * - * @uses bp_current_user_can() To check users capability on root blog. */ function bp_admin_separator() { @@ -632,8 +641,6 @@ function bp_admin_separator() { * * @since 1.7.0 * - * @uses bp_current_user_can() To check users capability on root blog. - * * @param bool $menu_order Menu order. * @return bool Always true. */ @@ -652,8 +659,6 @@ function bp_admin_custom_menu_order( $menu_order = false ) { * * @since 1.7.0 * - * @uses bp_current_user_can() To check users capability on root blog. - * * @param array $menu_order Menu Order. * @return array Modified menu order. */ @@ -928,7 +933,10 @@ add_action( 'add_meta_boxes_' . bp_get_email_post_type(), 'bp_email_custom_metab function bp_email_plaintext_metabox( $post ) { ?> - <label class="screen-reader-text" for="excerpt"><?php _e( 'Plain text email content', 'buddypress' ); ?></label><textarea rows="5" cols="40" name="excerpt" id="excerpt"><?php echo $post->post_excerpt; // textarea_escaped ?></textarea> + <label class="screen-reader-text" for="excerpt"><?php + /* translators: accessibility text */ + _e( 'Plain text email content', 'buddypress' ); + ?></label><textarea rows="5" cols="40" name="excerpt" id="excerpt"><?php echo $post->post_excerpt; // textarea_escaped ?></textarea> <p><?php _e( 'Most email clients support HTML email. However, some people prefer to receive plain text email. Enter a plain text alternative version of your email here.', 'buddypress' ); ?></p> diff --git a/wp-content/plugins/buddypress/bp-core/admin/bp-core-admin-schema.php b/wp-content/plugins/buddypress/bp-core/admin/bp-core-admin-schema.php index a603e6c1db51b87dd6cbe74249dd53ee27dc8aa1..ba38b31377b59f87cf012f18cc9f0fee9945951f 100644 --- a/wp-content/plugins/buddypress/bp-core/admin/bp-core-admin-schema.php +++ b/wp-content/plugins/buddypress/bp-core/admin/bp-core-admin-schema.php @@ -90,9 +90,6 @@ function bp_core_install( $active_components = false ) { * * @since 1.0.0 * - * @uses bp_core_set_charset() - * @uses bp_core_get_table_prefix() - * @uses dbDelta() */ function bp_core_install_notifications() { $sql = array(); @@ -134,9 +131,6 @@ function bp_core_install_notifications() { * * @since 1.0.0 * - * @uses bp_core_set_charset() - * @uses bp_core_get_table_prefix() - * @uses dbDelta() */ function bp_core_install_activity_streams() { $sql = array(); @@ -187,9 +181,6 @@ function bp_core_install_activity_streams() { * * @since 1.0.0 * - * @uses bp_core_set_charset() - * @uses bp_core_get_table_prefix() - * @uses dbDelta() */ function bp_core_install_friends() { $sql = array(); @@ -215,9 +206,6 @@ function bp_core_install_friends() { * * @since 1.0.0 * - * @uses bp_core_set_charset() - * @uses bp_core_get_table_prefix() - * @uses dbDelta() */ function bp_core_install_groups() { $sql = array(); @@ -275,9 +263,6 @@ function bp_core_install_groups() { * * @since 1.0.0 * - * @uses bp_core_set_charset() - * @uses bp_core_get_table_prefix() - * @uses dbDelta() */ function bp_core_install_private_messaging() { $sql = array(); @@ -335,9 +320,6 @@ function bp_core_install_private_messaging() { * * @since 1.0.0 * - * @uses bp_core_set_charset() - * @uses bp_core_get_table_prefix() - * @uses dbDelta() */ function bp_core_install_extended_profiles() { global $wpdb; @@ -425,9 +407,6 @@ function bp_core_install_extended_profiles() { * * @since 1.0.0 * - * @uses bp_core_set_charset() - * @uses bp_core_get_table_prefix() - * @uses dbDelta() */ function bp_core_install_blog_tracking() { $sql = array(); @@ -462,7 +441,6 @@ function bp_core_install_blog_tracking() { * @since 2.0.0 * * @global $wpdb - * @uses wp_get_db_schema() to get WordPress ms_global schema */ function bp_core_install_signups() { global $wpdb; diff --git a/wp-content/plugins/buddypress/bp-core/admin/bp-core-admin-settings.php b/wp-content/plugins/buddypress/bp-core/admin/bp-core-admin-settings.php index 4bfcc69b75c24042d0b8c1d2d639a9dde38c3f6f..c13029f8f29eab929afd49465613f9cf623d622d 100644 --- a/wp-content/plugins/buddypress/bp-core/admin/bp-core-admin-settings.php +++ b/wp-content/plugins/buddypress/bp-core/admin/bp-core-admin-settings.php @@ -22,7 +22,6 @@ function bp_admin_setting_callback_main_section() { } * * @since 1.6.0 * - * @uses bp_form_option() To output the option value. */ function bp_admin_setting_callback_admin_bar() { ?> @@ -38,7 +37,6 @@ function bp_admin_setting_callback_admin_bar() { * * @since 1.6.0 * - * @uses checked() To display the checked attribute. */ function bp_admin_setting_callback_account_deletion() { ?> @@ -63,7 +61,6 @@ function bp_admin_setting_callback_activity_section() { } * * @since 1.6.0 * - * @uses checked() To display the checked attribute. */ function bp_admin_setting_callback_activity_akismet() { ?> @@ -132,7 +129,6 @@ function bp_admin_setting_callback_xprofile_section() { } * * @since 1.6.0 * - * @uses bp_form_option() To output the option value. */ function bp_admin_setting_callback_profile_sync() { ?> @@ -148,7 +144,6 @@ function bp_admin_setting_callback_profile_sync() { * * @since 1.6.0 * - * @uses checked() To display the checked attribute. */ function bp_admin_setting_callback_avatar_uploads() { ?> @@ -185,7 +180,6 @@ function bp_admin_setting_callback_groups_section() { } * * @since 1.6.0 * - * @uses checked() To display the checked attribute. */ function bp_admin_setting_callback_group_creation() { ?> @@ -235,9 +229,6 @@ function bp_admin_setting_callback_bbpress_section() { } * * @since 1.6.0 * - * @uses checked() To display the checked attribute. - * @uses bp_get_option() To get the config location. - * @uses bp_form_option() To get the sanitized form option. */ function bp_admin_setting_callback_bbpress_configuration() { @@ -265,8 +256,6 @@ function bp_admin_setting_callback_bbpress_configuration() { * * @since 1.6.0 * - * @uses settings_fields() To output the hidden fields for the form. - * @uses do_settings_sections() To output the settings sections. */ function bp_core_admin_settings() { @@ -350,8 +339,6 @@ add_action( 'bp_admin_init', 'bp_core_admin_settings_save', 100 ); * * @since 1.6.0 * - * @uses bp_get_bp_form_option() - * * @param string $option Form option to echo. * @param string $default Form option default. * @param bool $slug Form option slug. @@ -364,9 +351,6 @@ function bp_form_option( $option, $default = '' , $slug = false ) { * * @since 1.6.0 * - * @uses bp_get_option() - * @uses esc_attr() - * @uses apply_filters() * * @param string $option Form option to return. * @param string $default Form option default. diff --git a/wp-content/plugins/buddypress/bp-core/admin/bp-core-admin-slugs.php b/wp-content/plugins/buddypress/bp-core/admin/bp-core-admin-slugs.php index 035a9954a381ee07313c4fe82075e67567c19ad7..3fb22e3e8c07a7533b86c365915e80fe69747e27 100644 --- a/wp-content/plugins/buddypress/bp-core/admin/bp-core-admin-slugs.php +++ b/wp-content/plugins/buddypress/bp-core/admin/bp-core-admin-slugs.php @@ -15,7 +15,6 @@ defined( 'ABSPATH' ) || exit; * * @since 1.6.0 * @todo Use settings API - * @uses bp_core_admin_component_options() */ function bp_core_admin_slugs_settings() { ?> 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 98e818369d4a0042a92df28cf86ce0cedcbbb121..f5d5391fc942835ce3116cb0228262cf6ce9bd79 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 @@ -34,7 +34,10 @@ function bp_core_admin_tools() { <th scope="row"><?php esc_html_e( 'Repair tools', 'buddypress' ) ?></th> <td> <fieldset> - <legend class="screen-reader-text"><span><?php esc_html_e( 'Repair', 'buddypress' ) ?></span></legend> + <legend class="screen-reader-text"><span><?php + /* translators: accessibility text */ + esc_html_e( 'Repair', 'buddypress' ); + ?></span></legend> <?php foreach ( bp_admin_repair_list() as $item ) : ?> @@ -473,3 +476,24 @@ function bp_admin_reinstall_emails() { return array( 0, __( 'Emails have been successfully reinstalled.', 'buddypress' ) ); } + +/** + * Add notice on the "Tools > BuddyPress" page if more sites need recording. + * + * This notice only shows up in the network admin dashboard. + * + * @since 2.6.0 + */ +function bp_core_admin_notice_repopulate_blogs_resume() { + $screen = get_current_screen(); + if ( 'tools_page_bp-tools-network' !== $screen->id ) { + return; + } + + if ( '' === bp_get_option( '_bp_record_blogs_offset' ) ) { + return; + } + + echo '<div class="error"><p>' . __( 'It looks like you have more sites to record. Resume recording by checking the "Repopulate site tracking records" option.', 'buddypress' ) . '</p></div>'; +} +add_action( 'network_admin_notices', 'bp_core_admin_notice_repopulate_blogs_resume' ); 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 1c2791bf5b811141ac563e8b6312bf7df23b9d18..1c6728258cbb1fbc94db173ae777a48ec07209be 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 @@ -12,9 +12,8 @@ TABLE OF CONTENTS: 1.1 Version Badge 1.2 About Panel 1.2.1 Headline Feature - 1.2.2 Columns - 1.2.3 Features Section - 1.2.4 Changelog Section + 1.2.2 Features Section + 1.2.3 Changelog Section 2.0 Dashicons 2.1 Top level menus 2.2 Settings - Components @@ -62,136 +61,246 @@ TABLE OF CONTENTS: /* * 1.2.1 Headline Feature */ -.index_page_bp-about .about-wrap .headline-feature, -.dashboard_page_bp-about .about-wrap .headline-feature { - margin-bottom: 2em; +.index_page_bp-about .bp-headline-feature, +.dashboard_page_bp-about .bp-headline-feature { + margin-bottom: 3em; text-align: center; } -.index_page_bp-about .about-wrap .headline-feature h3, -.index_page_bp-about .headline-feature .headline-title, -.dashboard_page_bp-about .about-wrap .headline-feature h3, -.dashboard_page_bp-about .headline-feature .headline-title { +.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 { font-size: 2.2em; - font-weight: normal; line-height: 1.3; margin: 1.25em 0 0.6em; text-align: center; } -.index_page_bp-about .about-wrap .headline-feature p, -.dashboard_page_bp-about .about-wrap .headline-feature p { +.index_page_bp-about .bp-headline-feature p, +.dashboard_page_bp-about .bp-headline-feature p { font-size: 1.15em; margin: 1.15em auto 0.6em; + max-width: 80%; } -.index_page_bp-about .about-wrap .headline-feature .introduction, -.dashboard_page_bp-about .about-wrap .headline-feature .introduction { +.index_page_bp-about .bp-headline-feature .introduction, +.dashboard_page_bp-about .bp-headline-feature .introduction { font-weight: 600; } -/* - * 1.2.2 Columns - */ -.index_page_bp-about .about-wrap .two-col > div, -.dashboard_page_bp-about .about-wrap .two-col > div { - float: right; - margin-left: 4.799999999%; - position: relative; - width: 47.6%; -} - -.index_page_bp-about .about-wrap .two-col .last-feature, -.dashboard_page_bp-about .about-wrap .two-col .last-feature { - margin-left: 0; -} /* - * 1.2.3 Features Section + * 1.2.2 Features Section */ .index_page_bp-about .bp-features-section, .dashboard_page_bp-about .bp-features-section { + clear: both; margin-bottom: 2em; + margin-top: 2em; + padding-bottom: 0; +} + +.index_page_bp-about .bp-features-section h3, +.dashboard_page_bp-about .bp-features-section h3 { + font-size: 1.8em; + font-weight: normal; + line-height: 1.5em; + margin: 0 0 0.6em; + text-align: center; } -.index_page_bp-about .about-wrap .feature-section, -.dashboard_page_bp-about .about-wrap .feature-section { +.index_page_bp-about .bp-feature, +.dashboard_page_bp-about .bp-feature { clear: both; - margin-top: 2em; overflow: hidden; - padding-bottom: 0; + margin-bottom: 3em; + margin-top: 3em; } -.index_page_bp-about .about-wrap .changelog .feature-section, -.dashboard_page_bp-about .about-wrap .changelog .feature-section { - margin-top: 0; +.index_page_bp-about .bp-feature::after, +.dashboard_page_bp-about .bp-feature::after { + content: ''; } -.index_page_bp-about .about-wrap .feature-section h3, -.dashboard_page_bp-about .about-wrap .feature-section h3 { +.index_page_bp-about .bp-feature h4, +.dashboard_page_bp-about .bp-feature h4 { + color: #23282d; + display: inline-block; font-size: 1.25em; - line-height: 1.5em; - margin: 0 0 0.6em; + margin-bottom: 0.6em; + margin-top: 0; + width: 47%; } -.index_page_bp-about .about-wrap .changelog h4, -.dashboard_page_bp-about .about-wrap .changelog h4 { - color: #23282d; - font-size: 1em; - margin: 1.4em 0 0.6em; +.index_page_bp-about .bp-feature p, +.dashboard_page_bp-about .bp-feature p { + float: right; + font-size: 1.15em; + width: 47%; +} + +.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 { + float: left; } +.index_page_bp-about .bp-feature img, +.dashboard_page_bp-about .bp-feature img { + clear: left; + float: left; + margin-right: 2.5%; + width: 50%; + max-width: 50%; +} + +.index_page_bp-about .bp-feature.opposite img, +.dashboard_page_bp-about .bp-feature.opposite img{ + clear: right; + float: right; + margin-right: 0; + margin-left: 2.5%; +} + + /* - * 1.2.4 Changelog Section + * 1.2.3 Changelog Section */ -.index_page_bp-about .about-wrap .changelog, -.dashboard_page_bp-about .about-wrap .changelog { - border-top: 1px solid #eee; +.index_page_bp-about .bp-changelog-section, +.dashboard_page_bp-about .bp-changelog-section { + border-top: 1px solid #ccc; + clear: both; margin-bottom: 3em; + margin-top: 2em; + padding-bottom: 0; } -.index_page_bp-about .about-wrap .changelog .changelog-title, -.dashboard_page_bp-about .about-wrap .changelog .changelog-title { - font-size: 1.25em; - line-height: 1.5em; - margin: 1.25em 0 .6em; +.index_page_bp-about .bp-changelog-section::after, +.dashboard_page_bp-about .bp-changelog-section::after { + content: ''; +} + +.index_page_bp-about .bp-changelog-section .changelog-title, +.dashboard_page_bp-about .bp-changelog-section .changelog-title { + color: #23282d; + font-size: 1.8em; + font-weight: 300; + line-height: 1.5; + margin: 1.25em 0 0.6em; text-align: center; } +.index_page_bp-about .bp-changelog-section .two-col > div, +.dashboard_page_bp-about .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 { + margin-left: 0; +} + +.index_page_bp-about .bp-changelog, +.dashboard_page_bp-about .bp-changelog { + margin-bottom: 3em; +} + +.index_page_bp-about .bp-changelog h4, +.dashboard_page_bp-about .bp-changelog h4 { + font-size: 1.15em; + margin-top: 1.5em; + margin-bottom: 0.6em; +} + +.index_page_bp-about .bp-changelog p, +.dashboard_page_bp-about .bp-changelog p { + font-size: 1.05em; + margin-top: 0.75em; +} + +.bp-assets { + clear: both; + margin-bottom: 2em; + padding-top: 3em; +} + @media screen and ( max-width: 782px ) { - .index_page_bp-about .about-wrap .headline-feature, - .dashboard_page_bp-about .about-wrap .headline-feature { + .index_page_bp-about .bp-headline-feature, + .dashboard_page_bp-about .bp-headline-feature { max-width: 100%; } - .index_page_bp-about .about-wrap .headline-feature h3, - .dahsboard_page_bp-about .about-wrap .headline-feature h3, - .index_page_bp-about .about-wrap .headline-feature .headline-title, - .dashboard_page_bp-about .about-wrap .headline-feature .headline-title { - font-size: 2em; + .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 { + max-width: 100%; } .index_page_bp-about .bp-features-section, .dashboard_page_bp-about .bp-features-section { margin-bottom: 0; + margin-top: 2em; } - .index_page_bp-about .about-wrap .feature-section, - .dashboard_page_bp-about .about-wrap .feature-section { - margin-top: 0; + .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; + line-height: 1.5; + } + .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 { + font-size: 1.25em; + line-height: 1.25; + margin-top: 0.6em; + text-align: right; } - .index_page_bp-about .about-wrap .two-col > div, - .dashboard_page_bp-about .about-wrap .two-col > div { - border-bottom: 1px solid rgba(0, 0, 0, 0.1); - margin-top: 1.25em; - padding-bottom: 1em; + .index_page_bp-about .bp-feature, + .dashboard_page_bp-about .bp-feature { + margin-bottom: 1em; + margin-top: 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%; } - .index_page_bp-about .changelog .two-col > div, - .dashboard_page_bp-about .changelog .two-col > div { - margin-top: 0; - padding-bottom: 0; + .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 { + float: none; } - .index_page_bp-about .about-wrap .changelog .changelog-title, - .dashboard_page_bp-about .about-wrap .changelog .changelog-title { - text-align: right; + .index_page_bp-about .bp-feature img, + .dashboard_page_bp-about .bp-feature img { + clear: right; + float: none; + margin-right: 0; + width: 100%; + max-width: 100%; + } + .index_page_bp-about .bp-feature.opposite img, + .dashboard_page_bp-about .bp-feature.opposite img{ + clear: right; + float: none; + margin-left: 0; + } + .index_page_bp-about .bp-changelog-section .two-col > div, + .dashboard_page_bp-about .bp-changelog-section .two-col > div { + margin-top: 0; + padding-bottom: 0.5em; + width: 100%; } } @@ -367,3 +476,18 @@ body.users_page_bp-signups td.count_sent { body.post-type-bp-email #excerpt { height: auto; } + +body.post-type-bp-email th#situation { + width: 20%; +} + +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; +} 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 f5779009cbbd62fd4e1182626f1a0b499b71f736..4a0a9f504d92f4e481a742770b04cffb0a993629 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"}.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 .about-wrap .headline-feature,.index_page_bp-about .about-wrap .headline-feature{margin-bottom:2em;text-align:center}.dashboard_page_bp-about .about-wrap .headline-feature h3,.dashboard_page_bp-about .headline-feature .headline-title,.index_page_bp-about .about-wrap .headline-feature h3,.index_page_bp-about .headline-feature .headline-title{font-size:2.2em;font-weight:400;line-height:1.3;margin:1.25em 0 .6em;text-align:center}.dashboard_page_bp-about .about-wrap .headline-feature p,.index_page_bp-about .about-wrap .headline-feature p{font-size:1.15em;margin:1.15em auto .6em}.dashboard_page_bp-about .about-wrap .headline-feature .introduction,.index_page_bp-about .about-wrap .headline-feature .introduction{font-weight:600}.dashboard_page_bp-about .about-wrap .two-col>div,.index_page_bp-about .about-wrap .two-col>div{float:right;margin-left:4.799999999%;position:relative;width:47.6%}.dashboard_page_bp-about .about-wrap .two-col .last-feature,.index_page_bp-about .about-wrap .two-col .last-feature{margin-left:0}.dashboard_page_bp-about .bp-features-section,.index_page_bp-about .bp-features-section{margin-bottom:2em}.dashboard_page_bp-about .about-wrap .feature-section,.index_page_bp-about .about-wrap .feature-section{clear:both;margin-top:2em;overflow:hidden;padding-bottom:0}.dashboard_page_bp-about .about-wrap .changelog .feature-section,.index_page_bp-about .about-wrap .changelog .feature-section{margin-top:0}.dashboard_page_bp-about .about-wrap .feature-section h3,.index_page_bp-about .about-wrap .feature-section h3{font-size:1.25em;line-height:1.5em;margin:0 0 .6em}.dashboard_page_bp-about .about-wrap .changelog h4,.index_page_bp-about .about-wrap .changelog h4{color:#23282d;font-size:1em;margin:1.4em 0 .6em}.dashboard_page_bp-about .about-wrap .changelog,.index_page_bp-about .about-wrap .changelog{border-top:1px solid #eee;margin-bottom:3em}.dashboard_page_bp-about .about-wrap .changelog .changelog-title,.index_page_bp-about .about-wrap .changelog .changelog-title{font-size:1.25em;line-height:1.5em;margin:1.25em 0 .6em;text-align:center}@media screen and (max-width:782px){.dashboard_page_bp-about .about-wrap .headline-feature,.index_page_bp-about .about-wrap .headline-feature{max-width:100%}.dahsboard_page_bp-about .about-wrap .headline-feature h3,.dashboard_page_bp-about .about-wrap .headline-feature .headline-title,.index_page_bp-about .about-wrap .headline-feature .headline-title,.index_page_bp-about .about-wrap .headline-feature h3{font-size:2em}.dashboard_page_bp-about .bp-features-section,.index_page_bp-about .bp-features-section{margin-bottom:0}.dashboard_page_bp-about .about-wrap .feature-section,.index_page_bp-about .about-wrap .feature-section{margin-top:0}.dashboard_page_bp-about .about-wrap .two-col>div,.index_page_bp-about .about-wrap .two-col>div{border-bottom:1px solid rgba(0,0,0,.1);margin-top:1.25em;padding-bottom:1em;width:100%}.dashboard_page_bp-about .changelog .two-col>div,.index_page_bp-about .changelog .two-col>div{margin-top:0;padding-bottom:0}.dashboard_page_bp-about .about-wrap .changelog .changelog-title,.index_page_bp-about .about-wrap .changelog .changelog-title{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.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} \ No newline at end of file +.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;text-align:center}.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;line-height:1.3;margin:1.25em 0 .6em;text-align:center}.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;max-width:80%}.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-bottom:2em;margin-top:2em;padding-bottom:0}.dashboard_page_bp-about .bp-features-section h3,.index_page_bp-about .bp-features-section h3{font-size:1.8em;font-weight:400;line-height:1.5em;margin:0 0 .6em;text-align:center}.dashboard_page_bp-about .bp-feature,.index_page_bp-about .bp-feature{clear:both;overflow:hidden;margin-bottom:3em;margin-top:3em}.dashboard_page_bp-about .bp-feature h4,.index_page_bp-about .bp-feature h4{color:#23282d;display:inline-block;font-size:1.25em;margin-bottom:.6em;margin-top:0;width:47%}.dashboard_page_bp-about .bp-feature p,.index_page_bp-about .bp-feature p{float:right;font-size:1.15em;width:47%}.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:left}.dashboard_page_bp-about .bp-feature img,.index_page_bp-about .bp-feature img{clear:left;float:left;margin-right:2.5%;width:50%;max-width:50%}.dashboard_page_bp-about .bp-feature.opposite img,.index_page_bp-about .bp-feature.opposite img{clear:right;float:right;margin-right:0;margin-left:2.5%}.dashboard_page_bp-about .bp-changelog-section,.index_page_bp-about .bp-changelog-section{border-top:1px solid #ccc;clear:both;margin-bottom:3em;margin-top:2em;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:1.25em 0 .6em;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:1.15em;margin-top:1.5em;margin-bottom:.6em}.dashboard_page_bp-about .bp-changelog p,.index_page_bp-about .bp-changelog p{font-size:1.05em;margin-top:.75em}.bp-assets{clear:both;margin-bottom:2em;padding-top:3em}@media screen and (max-width:782px){.dashboard_page_bp-about .bp-headline-feature,.dashboard_page_bp-about .bp-headline-feature p,.index_page_bp-about .bp-headline-feature,.index_page_bp-about .bp-headline-feature p{max-width:100%}.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-features-section,.index_page_bp-about .bp-features-section{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}.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{margin-bottom:1em;margin-top:1em}.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-feature img,.index_page_bp-about .bp-feature img{clear:right;float:none;margin-right:0;width:100%;max-width:100%}.dashboard_page_bp-about .bp-feature.opposite img,.index_page_bp-about .bp-feature.opposite img{clear:right;float:none;margin-left:0}.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%}}#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} \ 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 e1cb99b5d3181638e8582765e39115f89cad2c53..c7be0038cfd9e3a4c62a1367dffc94bff2fe8376 100644 --- a/wp-content/plugins/buddypress/bp-core/admin/css/common.css +++ b/wp-content/plugins/buddypress/bp-core/admin/css/common.css @@ -12,9 +12,8 @@ TABLE OF CONTENTS: 1.1 Version Badge 1.2 About Panel 1.2.1 Headline Feature - 1.2.2 Columns - 1.2.3 Features Section - 1.2.4 Changelog Section + 1.2.2 Features Section + 1.2.3 Changelog Section 2.0 Dashicons 2.1 Top level menus 2.2 Settings - Components @@ -62,136 +61,246 @@ TABLE OF CONTENTS: /* * 1.2.1 Headline Feature */ -.index_page_bp-about .about-wrap .headline-feature, -.dashboard_page_bp-about .about-wrap .headline-feature { - margin-bottom: 2em; +.index_page_bp-about .bp-headline-feature, +.dashboard_page_bp-about .bp-headline-feature { + margin-bottom: 3em; text-align: center; } -.index_page_bp-about .about-wrap .headline-feature h3, -.index_page_bp-about .headline-feature .headline-title, -.dashboard_page_bp-about .about-wrap .headline-feature h3, -.dashboard_page_bp-about .headline-feature .headline-title { +.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 { font-size: 2.2em; - font-weight: normal; line-height: 1.3; margin: 1.25em 0 0.6em; text-align: center; } -.index_page_bp-about .about-wrap .headline-feature p, -.dashboard_page_bp-about .about-wrap .headline-feature p { +.index_page_bp-about .bp-headline-feature p, +.dashboard_page_bp-about .bp-headline-feature p { font-size: 1.15em; margin: 1.15em auto 0.6em; + max-width: 80%; } -.index_page_bp-about .about-wrap .headline-feature .introduction, -.dashboard_page_bp-about .about-wrap .headline-feature .introduction { +.index_page_bp-about .bp-headline-feature .introduction, +.dashboard_page_bp-about .bp-headline-feature .introduction { font-weight: 600; } -/* - * 1.2.2 Columns - */ -.index_page_bp-about .about-wrap .two-col > div, -.dashboard_page_bp-about .about-wrap .two-col > div { - float: left; - margin-right: 4.799999999%; - position: relative; - width: 47.6%; -} - -.index_page_bp-about .about-wrap .two-col .last-feature, -.dashboard_page_bp-about .about-wrap .two-col .last-feature { - margin-right: 0; -} /* - * 1.2.3 Features Section + * 1.2.2 Features Section */ .index_page_bp-about .bp-features-section, .dashboard_page_bp-about .bp-features-section { + clear: both; margin-bottom: 2em; + margin-top: 2em; + padding-bottom: 0; +} + +.index_page_bp-about .bp-features-section h3, +.dashboard_page_bp-about .bp-features-section h3 { + font-size: 1.8em; + font-weight: normal; + line-height: 1.5em; + margin: 0 0 0.6em; + text-align: center; } -.index_page_bp-about .about-wrap .feature-section, -.dashboard_page_bp-about .about-wrap .feature-section { +.index_page_bp-about .bp-feature, +.dashboard_page_bp-about .bp-feature { clear: both; - margin-top: 2em; overflow: hidden; - padding-bottom: 0; + margin-bottom: 3em; + margin-top: 3em; } -.index_page_bp-about .about-wrap .changelog .feature-section, -.dashboard_page_bp-about .about-wrap .changelog .feature-section { - margin-top: 0; +.index_page_bp-about .bp-feature::after, +.dashboard_page_bp-about .bp-feature::after { + content: ''; } -.index_page_bp-about .about-wrap .feature-section h3, -.dashboard_page_bp-about .about-wrap .feature-section h3 { +.index_page_bp-about .bp-feature h4, +.dashboard_page_bp-about .bp-feature h4 { + color: #23282d; + display: inline-block; font-size: 1.25em; - line-height: 1.5em; - margin: 0 0 0.6em; + margin-bottom: 0.6em; + margin-top: 0; + width: 47%; } -.index_page_bp-about .about-wrap .changelog h4, -.dashboard_page_bp-about .about-wrap .changelog h4 { - color: #23282d; - font-size: 1em; - margin: 1.4em 0 0.6em; +.index_page_bp-about .bp-feature p, +.dashboard_page_bp-about .bp-feature p { + float: left; + font-size: 1.15em; + width: 47%; +} + +.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 { + float: right; } +.index_page_bp-about .bp-feature img, +.dashboard_page_bp-about .bp-feature img { + clear: right; + float: right; + margin-left: 2.5%; + width: 50%; + max-width: 50%; +} + +.index_page_bp-about .bp-feature.opposite img, +.dashboard_page_bp-about .bp-feature.opposite img{ + clear: left; + float: left; + margin-left: 0; + margin-right: 2.5%; +} + + /* - * 1.2.4 Changelog Section + * 1.2.3 Changelog Section */ -.index_page_bp-about .about-wrap .changelog, -.dashboard_page_bp-about .about-wrap .changelog { - border-top: 1px solid #eee; +.index_page_bp-about .bp-changelog-section, +.dashboard_page_bp-about .bp-changelog-section { + border-top: 1px solid #ccc; + clear: both; margin-bottom: 3em; + margin-top: 2em; + padding-bottom: 0; } -.index_page_bp-about .about-wrap .changelog .changelog-title, -.dashboard_page_bp-about .about-wrap .changelog .changelog-title { - font-size: 1.25em; - line-height: 1.5em; - margin: 1.25em 0 .6em; +.index_page_bp-about .bp-changelog-section::after, +.dashboard_page_bp-about .bp-changelog-section::after { + content: ''; +} + +.index_page_bp-about .bp-changelog-section .changelog-title, +.dashboard_page_bp-about .bp-changelog-section .changelog-title { + color: #23282d; + font-size: 1.8em; + font-weight: 300; + line-height: 1.5; + margin: 1.25em 0 0.6em; text-align: center; } +.index_page_bp-about .bp-changelog-section .two-col > div, +.dashboard_page_bp-about .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 { + margin-right: 0; +} + +.index_page_bp-about .bp-changelog, +.dashboard_page_bp-about .bp-changelog { + margin-bottom: 3em; +} + +.index_page_bp-about .bp-changelog h4, +.dashboard_page_bp-about .bp-changelog h4 { + font-size: 1.15em; + margin-top: 1.5em; + margin-bottom: 0.6em; +} + +.index_page_bp-about .bp-changelog p, +.dashboard_page_bp-about .bp-changelog p { + font-size: 1.05em; + margin-top: 0.75em; +} + +.bp-assets { + clear: both; + margin-bottom: 2em; + padding-top: 3em; +} + @media screen and ( max-width: 782px ) { - .index_page_bp-about .about-wrap .headline-feature, - .dashboard_page_bp-about .about-wrap .headline-feature { + .index_page_bp-about .bp-headline-feature, + .dashboard_page_bp-about .bp-headline-feature { max-width: 100%; } - .index_page_bp-about .about-wrap .headline-feature h3, - .dahsboard_page_bp-about .about-wrap .headline-feature h3, - .index_page_bp-about .about-wrap .headline-feature .headline-title, - .dashboard_page_bp-about .about-wrap .headline-feature .headline-title { - font-size: 2em; + .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 { + max-width: 100%; } .index_page_bp-about .bp-features-section, .dashboard_page_bp-about .bp-features-section { margin-bottom: 0; + margin-top: 2em; } - .index_page_bp-about .about-wrap .feature-section, - .dashboard_page_bp-about .about-wrap .feature-section { - margin-top: 0; + .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; + line-height: 1.5; + } + .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 { + font-size: 1.25em; + line-height: 1.25; + margin-top: 0.6em; + text-align: left; } - .index_page_bp-about .about-wrap .two-col > div, - .dashboard_page_bp-about .about-wrap .two-col > div { - border-bottom: 1px solid rgba(0, 0, 0, 0.1); - margin-top: 1.25em; - padding-bottom: 1em; + .index_page_bp-about .bp-feature, + .dashboard_page_bp-about .bp-feature { + margin-bottom: 1em; + margin-top: 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%; } - .index_page_bp-about .changelog .two-col > div, - .dashboard_page_bp-about .changelog .two-col > div { - margin-top: 0; - padding-bottom: 0; + .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 { + float: none; } - .index_page_bp-about .about-wrap .changelog .changelog-title, - .dashboard_page_bp-about .about-wrap .changelog .changelog-title { - text-align: left; + .index_page_bp-about .bp-feature img, + .dashboard_page_bp-about .bp-feature img { + clear: left; + float: none; + margin-left: 0; + width: 100%; + max-width: 100%; + } + .index_page_bp-about .bp-feature.opposite img, + .dashboard_page_bp-about .bp-feature.opposite img{ + clear: left; + float: none; + margin-right: 0; + } + .index_page_bp-about .bp-changelog-section .two-col > div, + .dashboard_page_bp-about .bp-changelog-section .two-col > div { + margin-top: 0; + padding-bottom: 0.5em; + width: 100%; } } @@ -367,3 +476,18 @@ body.users_page_bp-signups td.count_sent { body.post-type-bp-email #excerpt { height: auto; } + +body.post-type-bp-email th#situation { + width: 20%; +} + +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; +} 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 f7a4f1eefaf7748ca3a294556a79cc24b9c258e5..d96106467f061a6b4c9636f0ca0e97611233069b 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"}.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 .about-wrap .headline-feature,.index_page_bp-about .about-wrap .headline-feature{margin-bottom:2em;text-align:center}.dashboard_page_bp-about .about-wrap .headline-feature h3,.dashboard_page_bp-about .headline-feature .headline-title,.index_page_bp-about .about-wrap .headline-feature h3,.index_page_bp-about .headline-feature .headline-title{font-size:2.2em;font-weight:400;line-height:1.3;margin:1.25em 0 .6em;text-align:center}.dashboard_page_bp-about .about-wrap .headline-feature p,.index_page_bp-about .about-wrap .headline-feature p{font-size:1.15em;margin:1.15em auto .6em}.dashboard_page_bp-about .about-wrap .headline-feature .introduction,.index_page_bp-about .about-wrap .headline-feature .introduction{font-weight:600}.dashboard_page_bp-about .about-wrap .two-col>div,.index_page_bp-about .about-wrap .two-col>div{float:left;margin-right:4.799999999%;position:relative;width:47.6%}.dashboard_page_bp-about .about-wrap .two-col .last-feature,.index_page_bp-about .about-wrap .two-col .last-feature{margin-right:0}.dashboard_page_bp-about .bp-features-section,.index_page_bp-about .bp-features-section{margin-bottom:2em}.dashboard_page_bp-about .about-wrap .feature-section,.index_page_bp-about .about-wrap .feature-section{clear:both;margin-top:2em;overflow:hidden;padding-bottom:0}.dashboard_page_bp-about .about-wrap .changelog .feature-section,.index_page_bp-about .about-wrap .changelog .feature-section{margin-top:0}.dashboard_page_bp-about .about-wrap .feature-section h3,.index_page_bp-about .about-wrap .feature-section h3{font-size:1.25em;line-height:1.5em;margin:0 0 .6em}.dashboard_page_bp-about .about-wrap .changelog h4,.index_page_bp-about .about-wrap .changelog h4{color:#23282d;font-size:1em;margin:1.4em 0 .6em}.dashboard_page_bp-about .about-wrap .changelog,.index_page_bp-about .about-wrap .changelog{border-top:1px solid #eee;margin-bottom:3em}.dashboard_page_bp-about .about-wrap .changelog .changelog-title,.index_page_bp-about .about-wrap .changelog .changelog-title{font-size:1.25em;line-height:1.5em;margin:1.25em 0 .6em;text-align:center}@media screen and (max-width:782px){.dashboard_page_bp-about .about-wrap .headline-feature,.index_page_bp-about .about-wrap .headline-feature{max-width:100%}.dahsboard_page_bp-about .about-wrap .headline-feature h3,.dashboard_page_bp-about .about-wrap .headline-feature .headline-title,.index_page_bp-about .about-wrap .headline-feature .headline-title,.index_page_bp-about .about-wrap .headline-feature h3{font-size:2em}.dashboard_page_bp-about .bp-features-section,.index_page_bp-about .bp-features-section{margin-bottom:0}.dashboard_page_bp-about .about-wrap .feature-section,.index_page_bp-about .about-wrap .feature-section{margin-top:0}.dashboard_page_bp-about .about-wrap .two-col>div,.index_page_bp-about .about-wrap .two-col>div{border-bottom:1px solid rgba(0,0,0,.1);margin-top:1.25em;padding-bottom:1em;width:100%}.dashboard_page_bp-about .changelog .two-col>div,.index_page_bp-about .changelog .two-col>div{margin-top:0;padding-bottom:0}.dashboard_page_bp-about .about-wrap .changelog .changelog-title,.index_page_bp-about .about-wrap .changelog .changelog-title{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.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} \ No newline at end of file +.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;text-align:center}.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;line-height:1.3;margin:1.25em 0 .6em;text-align:center}.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;max-width:80%}.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-bottom:2em;margin-top:2em;padding-bottom:0}.dashboard_page_bp-about .bp-features-section h3,.index_page_bp-about .bp-features-section h3{font-size:1.8em;font-weight:400;line-height:1.5em;margin:0 0 .6em;text-align:center}.dashboard_page_bp-about .bp-feature,.index_page_bp-about .bp-feature{clear:both;overflow:hidden;margin-bottom:3em;margin-top:3em}.dashboard_page_bp-about .bp-feature h4,.index_page_bp-about .bp-feature h4{color:#23282d;display:inline-block;font-size:1.25em;margin-bottom:.6em;margin-top:0;width:47%}.dashboard_page_bp-about .bp-feature p,.index_page_bp-about .bp-feature p{float:left;font-size:1.15em;width:47%}.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:right}.dashboard_page_bp-about .bp-feature img,.index_page_bp-about .bp-feature img{clear:right;float:right;margin-left:2.5%;width:50%;max-width:50%}.dashboard_page_bp-about .bp-feature.opposite img,.index_page_bp-about .bp-feature.opposite img{clear:left;float:left;margin-left:0;margin-right:2.5%}.dashboard_page_bp-about .bp-changelog-section,.index_page_bp-about .bp-changelog-section{border-top:1px solid #ccc;clear:both;margin-bottom:3em;margin-top:2em;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:1.25em 0 .6em;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:1.15em;margin-top:1.5em;margin-bottom:.6em}.dashboard_page_bp-about .bp-changelog p,.index_page_bp-about .bp-changelog p{font-size:1.05em;margin-top:.75em}.bp-assets{clear:both;margin-bottom:2em;padding-top:3em}@media screen and (max-width:782px){.dashboard_page_bp-about .bp-headline-feature,.dashboard_page_bp-about .bp-headline-feature p,.index_page_bp-about .bp-headline-feature,.index_page_bp-about .bp-headline-feature p{max-width:100%}.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-features-section,.index_page_bp-about .bp-features-section{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}.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{margin-bottom:1em;margin-top:1em}.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-feature img,.index_page_bp-about .bp-feature img{clear:left;float:none;margin-left:0;width:100%;max-width:100%}.dashboard_page_bp-about .bp-feature.opposite img,.index_page_bp-about .bp-feature.opposite img{clear:left;float:none;margin-right:0}.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%}}#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} \ No newline at end of file diff --git a/wp-content/plugins/buddypress/bp-core/admin/images/activity-embeds.png b/wp-content/plugins/buddypress/bp-core/admin/images/activity-embeds.png new file mode 100644 index 0000000000000000000000000000000000000000..cc4bf0c5eb7e1875e20e12c7cda56b64e3004ddb Binary files /dev/null and b/wp-content/plugins/buddypress/bp-core/admin/images/activity-embeds.png differ diff --git a/wp-content/plugins/buddypress/bp-core/admin/images/default-themes.png b/wp-content/plugins/buddypress/bp-core/admin/images/default-themes.png new file mode 100644 index 0000000000000000000000000000000000000000..fb8092449fcb303e0688425185a370b04dc9f872 Binary files /dev/null and b/wp-content/plugins/buddypress/bp-core/admin/images/default-themes.png differ diff --git a/wp-content/plugins/buddypress/bp-core/admin/images/group-type-pop.png b/wp-content/plugins/buddypress/bp-core/admin/images/group-type-pop.png new file mode 100644 index 0000000000000000000000000000000000000000..9995ea9dd241a8cfa6f0d6228b532f605a5e9298 Binary files /dev/null and b/wp-content/plugins/buddypress/bp-core/admin/images/group-type-pop.png differ diff --git a/wp-content/plugins/buddypress/bp-core/admin/images/new-nav-api.png b/wp-content/plugins/buddypress/bp-core/admin/images/new-nav-api.png new file mode 100644 index 0000000000000000000000000000000000000000..a156c3bf1d03ede69892b78fc65f187cfdf0cca9 Binary files /dev/null and b/wp-content/plugins/buddypress/bp-core/admin/images/new-nav-api.png differ diff --git a/wp-content/plugins/buddypress/bp-core/admin/images/user-frontpage.png b/wp-content/plugins/buddypress/bp-core/admin/images/user-frontpage.png new file mode 100644 index 0000000000000000000000000000000000000000..67d2ddb8f8c25d12c90462b08d6179babc8f9a00 Binary files /dev/null and b/wp-content/plugins/buddypress/bp-core/admin/images/user-frontpage.png differ diff --git a/wp-content/plugins/buddypress/bp-core/admin/js/customizer-controls.min.js b/wp-content/plugins/buddypress/bp-core/admin/js/customizer-controls.min.js index 010900818f691941e1db20bc4e5e9158bf366d36..e1266bded940b9aff69d8fe22f400faa609a32ab 100644 --- a/wp-content/plugins/buddypress/bp-core/admin/js/customizer-controls.min.js +++ b/wp-content/plugins/buddypress/bp-core/admin/js/customizer-controls.min.js @@ -1,2 +1 @@ -/*! buddypress - v2.5.3 - 2016-05-24 5:17:45 PM UTC - https://wordpress.org/plugins/buddypress/ */ !function(a){a(window).on("load",function(){a(".customize-control-range input").on("input",function(){var b=a(this);b.siblings("output").text(b.val())})})}(jQuery); \ No newline at end of file diff --git a/wp-content/plugins/buddypress/bp-core/admin/js/customizer-receiver-emails.min.js b/wp-content/plugins/buddypress/bp-core/admin/js/customizer-receiver-emails.min.js index f553d005d0d5e97775995bf9c1e24e207b7980ce..f1023ac3c8f4f9907f87909ee10628186d7b157f 100644 --- a/wp-content/plugins/buddypress/bp-core/admin/js/customizer-receiver-emails.min.js +++ b/wp-content/plugins/buddypress/bp-core/admin/js/customizer-receiver-emails.min.js @@ -1,2 +1 @@ -/*! buddypress - v2.5.3 - 2016-05-24 5:17:45 PM UTC - https://wordpress.org/plugins/buddypress/ */ !function(a){wp.customize("bp_email_options[email_bg]",function(b){b.bind(function(b){b.length&&(a(".email_bg").attr("bgcolor",b),a("hr").attr("color",b))})}),wp.customize("bp_email_options[header_bg]",function(b){b.bind(function(b){b.length&&a(".header_bg").attr("bgcolor",b)})}),wp.customize("bp_email_options[header_text_size]",function(b){b.bind(function(b){b.length&&a(".header_text_size").css("font-size",b+"px")})}),wp.customize("bp_email_options[header_text_color]",function(b){b.bind(function(b){b.length&&a(".header_text_color").css("color",b)})}),wp.customize("bp_email_options[highlight_color]",function(b){b.bind(function(b){b.length&&(a(".header_bg").css("border-top-color",b),a("a").css("color",b),a("hr").attr("color",b))})}),wp.customize("bp_email_options[body_bg]",function(b){b.bind(function(b){b.length&&a(".body_bg").attr("bgcolor",b)})}),wp.customize("bp_email_options[body_text_size]",function(b){b.bind(function(b){b.length&&(a(".body_text_size").css("font-size",b+"px").css("line-height",Math.floor(1.618*b)+"px"),a(".welcome").css("font-size",Math.floor(1.35*b)+"px"))})}),wp.customize("bp_email_options[body_text_color]",function(b){b.bind(function(b){b.length&&a(".body_text_color").css("color",b)})}),wp.customize("bp_email_options[footer_bg]",function(b){b.bind(function(b){b.length&&a(".footer_bg").attr("bgcolor",b)})}),wp.customize("bp_email_options[footer_text_size]",function(b){b.bind(function(b){b.length&&a(".footer_text_size").css("font-size",b+"px").css("line-height",Math.floor(1.618*b)+"px")})}),wp.customize("bp_email_options[footer_text_color]",function(b){b.bind(function(b){b.length&&a(".footer_text_color").css("color",b)})}),wp.customize("bp_email_options[footer_text]",function(b){b.bind(function(b){a(".footer_text").text(b)})})}(jQuery); \ No newline at end of file diff --git a/wp-content/plugins/buddypress/bp-core/bp-core-actions.php b/wp-content/plugins/buddypress/bp-core/bp-core-actions.php index 2f4506a04a092c27c52cde52b014eb7986887ffe..b4478a12681813f02e57d33dc90d9c8d339f37b5 100644 --- a/wp-content/plugins/buddypress/bp-core/bp-core-actions.php +++ b/wp-content/plugins/buddypress/bp-core/bp-core-actions.php @@ -32,6 +32,7 @@ defined( 'ABSPATH' ) || exit; */ add_action( 'plugins_loaded', 'bp_loaded', 10 ); add_action( 'init', 'bp_init', 10 ); +add_action( 'rest_api_init', 'bp_rest_api_init', 20 ); // After WP core. add_action( 'customize_register', 'bp_customize_register', 20 ); // After WP core. add_action( 'parse_query', 'bp_parse_query', 2 ); // Early for overrides. add_action( 'wp', 'bp_ready', 10 ); @@ -39,6 +40,7 @@ add_action( 'set_current_user', 'bp_setup_current_user', 10 ); add_action( 'setup_theme', 'bp_setup_theme', 10 ); add_action( 'after_setup_theme', 'bp_after_setup_theme', 100 ); // After WP themes. add_action( 'wp_enqueue_scripts', 'bp_enqueue_scripts', 10 ); +add_action( 'enqueue_embed_scripts', 'bp_enqueue_embed_scripts', 10 ); add_action( 'admin_bar_menu', 'bp_setup_admin_bar', 20 ); // After WP core. add_action( 'template_redirect', 'bp_template_redirect', 10 ); add_action( 'widgets_init', 'bp_widgets_init', 10 ); 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 1dcd44210dc96302cb62bf69d46cd92b60526729..71a8e5db99651afbc0d2b28630bfa0c2e849b8d3 100644 --- a/wp-content/plugins/buddypress/bp-core/bp-core-admin.php +++ b/wp-content/plugins/buddypress/bp-core/bp-core-admin.php @@ -10,14 +10,15 @@ // Exit if accessed directly. defined( 'ABSPATH' ) || exit; -require dirname( __FILE__ ) . '/classes/class-bp-admin.php'; +if ( ! buddypress()->do_autoload ) { + require dirname( __FILE__ ) . '/classes/class-bp-admin.php'; +} /** * Setup BuddyPress Admin. * * @since 1.6.0 * - * @uses BP_Admin */ function bp_admin() { buddypress()->admin = new BP_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 fa77395eea1cb2d28a04427fcbbc29e8651d3ebd..a71b4695bc5b899a6a56d91861f93b017f4daaa3 100644 --- a/wp-content/plugins/buddypress/bp-core/bp-core-adminbar.php +++ b/wp-content/plugins/buddypress/bp-core/bp-core-adminbar.php @@ -55,17 +55,6 @@ add_action( 'admin_bar_menu', 'bp_admin_bar_my_account_root', 100 ); * @since 1.2.0 * * @global string $wp_version - * @uses bp_get_option() - * @uses is_user_logged_in() - * @uses bp_use_wp_admin_bar() - * @uses show_admin_bar() - * @uses add_action() To hook 'bp_adminbar_logo' to 'bp_adminbar_logo'. - * @uses add_action() To hook 'bp_adminbar_login_menu' to 'bp_adminbar_menus'. - * @uses add_action() To hook 'bp_adminbar_account_menu' to 'bp_adminbar_menus'. - * @uses add_action() To hook 'bp_adminbar_thisblog_menu' to 'bp_adminbar_menus'. - * @uses add_action() To hook 'bp_adminbar_random_menu' to 'bp_adminbar_menus'. - * @uses add_action() To hook 'bp_core_admin_bar' to 'wp_footer'. - * @uses add_action() To hook 'bp_core_admin_bar' to 'admin_footer'. */ function bp_core_load_admin_bar() { 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 bde083ae64800c9b945338a88b98da90ddace446..4f247990be1da866138ac5cde463244dbacc5005 100644 --- a/wp-content/plugins/buddypress/bp-core/bp-core-attachments.php +++ b/wp-content/plugins/buddypress/bp-core/bp-core-attachments.php @@ -1033,7 +1033,7 @@ function bp_attachments_cover_image_is_edit() { $retval = false; $current_component = bp_current_component(); - if ( 'profile' === $current_component ) { + if ( bp_is_active( 'xprofile' ) && bp_is_current_component( 'xprofile' ) ) { $current_component = 'xprofile'; } 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 64a9e43331e5c4a1a1bb82f55e22ea004f9c1a88..8022c765f4cd629d0ad6136da22e9cbd798f8ae9 100644 --- a/wp-content/plugins/buddypress/bp-core/bp-core-avatars.php +++ b/wp-content/plugins/buddypress/bp-core/bp-core-avatars.php @@ -175,7 +175,7 @@ add_action( 'bp_setup_globals', 'bp_core_set_avatar_globals' ); * local avatar. In some cases, this may be undesirable, in which * case 'no_grav' should be set to true. To disable Gravatar * fallbacks globally, see the 'bp_core_fetch_avatar_no_grav' filter. - * Default: false. + * Default: true for groups, otherwise false. * @type bool $html Whether to return an <img> HTML element, vs a raw URL * to an avatar. If false, <img>-specific arguments (like 'css_id') * will be ignored. Default: true. @@ -211,7 +211,7 @@ function bp_core_fetch_avatar( $args = '' ) { 'css_id' => false, 'alt' => '', 'email' => false, - 'no_grav' => false, + 'no_grav' => null, 'html' => true, 'title' => '', 'extra_attr' => '', @@ -564,6 +564,11 @@ function bp_core_fetch_avatar( $args = '' ) { } } + // By default, Gravatar is not pinged for groups. + if ( null === $params['no_grav'] ) { + $params['no_grav'] = 'group' === $params['object']; + } + /** * Filters whether or not to skip Gravatar check. * @@ -636,6 +641,17 @@ function bp_core_fetch_avatar( $args = '' ) { if ( ! empty( $params['rating'] ) ) { $url_args['r'] = strtolower( $params['rating'] ); } + + /** + * Filters the Gravatar "d" parameter. + * + * @since 2.6.0 + * + * @param string $default_grav The avatar default. + * @param array $params The avatar's data. + */ + $default_grav = apply_filters( 'bp_core_avatar_default', $default_grav, $params ); + // Only set default image if 'Gravatar Logo' is not requested. if ( 'gravatar_default' !== $default_grav ) { $url_args['d'] = $default_grav; @@ -660,7 +676,7 @@ function bp_core_fetch_avatar( $args = '' ) { * @param string $value Default avatar for non-gravatar requests. * @param array $params Array of parameters for the avatar request. */ - $gravatar = apply_filters( 'bp_core_default_avatar_' . $params['object'], bp_core_avatar_default( 'local' ), $params ); + $gravatar = apply_filters( 'bp_core_default_avatar_' . $params['object'], bp_core_avatar_default( 'local', $params ), $params ); } if ( true === $params['html'] ) { @@ -1038,8 +1054,9 @@ function bp_avatar_ajax_upload() { // Remove template message. $bp->template_message = false; $bp->template_message_type = false; - @setcookie( 'bp-message', false, time() - 1000, COOKIEPATH ); - @setcookie( 'bp-message-type', false, time() - 1000, COOKIEPATH ); + + @setcookie( 'bp-message', false, time() - 1000, COOKIEPATH, COOKIE_DOMAIN, is_ssl() ); + @setcookie( 'bp-message-type', false, time() - 1000, COOKIEPATH, COOKIE_DOMAIN, is_ssl() ); } if ( empty( $avatar ) ) { @@ -1623,8 +1640,6 @@ function bp_core_get_upload_dir( $type = 'upload_path' ) { * * @since 1.2.0 * - * @uses bp_core_get_upload_dir() To get upload directory info. - * * @return string Absolute path to WP upload directory. */ function bp_core_avatar_upload_path() { @@ -1644,8 +1659,6 @@ function bp_core_avatar_upload_path() { * * @since 1.2.0 * - * @uses bp_core_get_upload_dir() To get upload directory info. - * * @return string Full URL to current upload location. */ function bp_core_avatar_url() { @@ -1674,7 +1687,7 @@ function bp_get_user_has_avatar( $user_id = 0 ) { $user_id = bp_displayed_user_id(); $retval = false; - if ( bp_core_fetch_avatar( array( 'item_id' => $user_id, 'no_grav' => true, 'html' => false ) ) != bp_core_avatar_default( 'local' ) ) + if ( bp_core_fetch_avatar( array( 'item_id' => $user_id, 'no_grav' => true, 'html' => false, 'type' => 'full' ) ) != bp_core_avatar_default( 'local' ) ) $retval = true; /** @@ -1833,34 +1846,53 @@ function bp_core_avatar_original_max_filesize() { * Get the URL of the 'full' default avatar. * * @since 1.5.0 + * @since 2.6.0 Introduced `$params` and `$object_type` parameters. * - * @param string $type 'local' if the fallback should be the locally-hosted version - * of the mystery-person, 'gravatar' if the fallback should be - * Gravatar's version. Default: 'gravatar'. + * @param string $type 'local' if the fallback should be the locally-hosted version + * of the mystery person, 'gravatar' if the fallback should be + * Gravatar's version. Default: 'gravatar'. + * @param array $params Parameters passed to bp_core_fetch_avatar(). * @return string The URL of the default avatar. */ -function bp_core_avatar_default( $type = 'gravatar' ) { +function bp_core_avatar_default( $type = 'gravatar', $params = array() ) { // Local override. if ( defined( 'BP_AVATAR_DEFAULT' ) ) { $avatar = BP_AVATAR_DEFAULT; // Use the local default image. } elseif ( 'local' === $type ) { - $avatar = buddypress()->plugin_url . 'bp-core/images/mystery-man.jpg'; + $size = ''; + if ( + ( isset( $params['type'] ) && 'thumb' === $params['type'] && bp_core_avatar_thumb_width() <= 50 ) || + ( isset( $params['width'] ) && $params['width'] <= 50 ) + ) { + + $size = '-50'; + } + + $avatar = buddypress()->plugin_url . "bp-core/images/mystery-man{$size}.jpg"; // Use Gravatar's mystery person as fallback. } else { - $avatar = '//www.gravatar.com/avatar/00000000000000000000000000000000?d=mm&s=' . bp_core_avatar_full_width(); + $size = ''; + if ( isset( $params['type'] ) && 'thumb' === $params['type'] ) { + $size = bp_core_avatar_thumb_width(); + } else { + $size = bp_core_avatar_full_width(); + } + $avatar = '//www.gravatar.com/avatar/00000000000000000000000000000000?d=mm&s=' . $size; } /** * Filters the URL of the 'full' default avatar. * * @since 1.5.0 + * @since 2.6.0 Added `$params`. * * @param string $avatar URL of the default avatar. + * @param array $params Params provided to bp_core_fetch_avatar(). */ - return apply_filters( 'bp_core_avatar_default', $avatar ); + return apply_filters( 'bp_core_avatar_default', $avatar, $params ); } /** @@ -1870,13 +1902,15 @@ function bp_core_avatar_default( $type = 'gravatar' ) { * defined. * * @since 1.5.0 + * @since 2.6.0 Introduced `$object_type` parameter. * - * @param string $type 'local' if the fallback should be the locally-hosted version - * of the mystery-person, 'gravatar' if the fallback should be - * Gravatar's version. Default: 'gravatar'. + * @param string $type 'local' if the fallback should be the locally-hosted version + * of the mystery person, 'gravatar' if the fallback should be + * Gravatar's version. Default: 'gravatar'. + * @param array $params Parameters passed to bp_core_fetch_avatar(). * @return string The URL of the default avatar thumb. */ -function bp_core_avatar_default_thumb( $type = 'gravatar' ) { +function bp_core_avatar_default_thumb( $type = 'gravatar', $params = array() ) { // Local override. if ( defined( 'BP_AVATAR_DEFAULT_THUMB' ) ) { $avatar = BP_AVATAR_DEFAULT_THUMB; @@ -1894,10 +1928,12 @@ function bp_core_avatar_default_thumb( $type = 'gravatar' ) { * Filters the URL of the 'thumb' default avatar. * * @since 1.5.0 + * @since 2.6.0 Added `$params`. * * @param string $avatar URL of the default avatar. + * @param string $params Params provided to bp_core_fetch_avatar(). */ - return apply_filters( 'bp_core_avatar_thumb', $avatar ); + return apply_filters( 'bp_core_avatar_thumb', $avatar, $params ); } /** @@ -1909,12 +1945,6 @@ function bp_core_avatar_default_thumb( $type = 'gravatar' ) { * * @since 2.2.0 * - * @uses bp_is_group_create() - * @uses bp_is_group_admin_page() - * @uses bp_is_group_admin_screen() to check for a group admin screen - * @uses bp_action_variable() to check for the group's avatar creation step - * @uses bp_is_user_change_avatar() to check for the user's change profile screen - * * @param WP_Query|null $posts_query The main query object. */ function bp_core_avatar_reset_query( $posts_query = null ) { 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 9f1ffb08b1ba130fcf4894619eda5c70d51d00c5..6829c039ea05b8fdd11c8f01600a9e1764a4f0e3 100644 --- a/wp-content/plugins/buddypress/bp-core/bp-core-buddybar.php +++ b/wp-content/plugins/buddypress/bp-core/bp-core-buddybar.php @@ -13,9 +13,10 @@ defined( 'ABSPATH' ) || exit; /** - * Add an item to the main BuddyPress navigation array. + * Add an item to the primary navigation of the specified component. * * @since 1.1.0 + * @since 2.6.0 Introduced the `$component` parameter. * * @param array|string $args { * Array describing the new nav item. @@ -32,9 +33,13 @@ defined( 'ABSPATH' ) || exit; * @type bool|string $default_subnav_slug Optional. The slug of the default subnav item to select when the nav * item is clicked. * } + * @param string $component The component the navigation is attached to. Defaults to 'members'. * @return bool|null Returns false on failure. */ -function bp_core_new_nav_item( $args = '' ) { +function bp_core_new_nav_item( $args, $component = 'members' ) { + if ( ! bp_is_active( $component ) ) { + return; + } $defaults = array( 'name' => false, // Display name for the nav item. @@ -49,18 +54,19 @@ function bp_core_new_nav_item( $args = '' ) { $r = wp_parse_args( $args, $defaults ); - // First, add the nav item link to the bp_nav array. - $created = bp_core_create_nav_link( $r ); + // Validate nav link data. + $nav_item = bp_core_create_nav_link( $r, $component ); - // To mimic the existing behavior, if bp_core_create_nav_link() - // returns false, we make an early exit and don't attempt to register - // the screen function. - if ( false === $created ) { + /* + * To mimic legacy behavior, if bp_core_create_nav_link() returns false, we make + * an early exit and don't attempt to register the screen function. + */ + if ( false === $nav_item ) { return false; } // Then, hook the screen function for the added nav item. - $hooked = bp_core_register_nav_screen_function( $r ); + $hooked = bp_core_register_nav_screen_function( $nav_item ); if ( false === $hooked ){ return false; } @@ -81,9 +87,10 @@ function bp_core_new_nav_item( $args = '' ) { } /** - * Add a link to the main BuddyPress navigation array. + * 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. * * @param array|string $args { * Array describing the new nav item. @@ -100,9 +107,10 @@ function bp_core_new_nav_item( $args = '' ) { * @type bool|string $default_subnav_slug Optional. The slug of the default subnav item to select when the nav * item is clicked. * } - * @return bool|null Returns false on failure. + * @param string $component Optional. Component that the nav belongs to. + * @return bool|BP_Nav_Item Returns false on failure, new nav item on success. */ -function bp_core_create_nav_link( $args = '' ) { +function bp_core_create_nav_link( $args = '', $component = 'members' ) { $bp = buddypress(); $defaults = array( @@ -132,7 +140,7 @@ function bp_core_create_nav_link( $args = '' ) { $r['item_css_id'] = $r['slug']; } - $bp->bp_nav[$r['slug']] = array( + $nav_item = array( 'name' => $r['name'], 'slug' => $r['slug'], 'link' => trailingslashit( bp_loggedin_user_domain() . $r['slug'] ), @@ -143,16 +151,23 @@ function bp_core_create_nav_link( $args = '' ) { 'default_subnav_slug' => $r['default_subnav_slug'] ); + // Add the item to the nav. + buddypress()->{$component}->nav->add_nav( $nav_item ); + /** - * Fires after a link is added to the main BuddyPress navigation array. + * Fires after a link is added to the main BuddyPress nav. * * @since 2.4.0 + * @since 2.6.0 Added `$component` parameter. * - * @param array $r Parsed arguments for the nav item. - * @param array $args Originally passed in arguments for the nav item. - * @param array $defaults Default arguments for a nav item. + * @param array $r Parsed arguments for the nav item. + * @param array $args Originally passed in arguments for the nav item. + * @param array $defaults Default arguments for a nav item. + * @param string $component Component that the nav belongs to. */ - do_action( 'bp_core_create_nav_link', $r, $args, $defaults ); + do_action( 'bp_core_create_nav_link', $r, $args, $defaults, $component ); + + return $nav_item; } /** @@ -290,20 +305,33 @@ function bp_core_new_nav_default( $args = '' ) { $r = wp_parse_args( $args, $defaults ); - if ( $function = $bp->bp_nav[$r['parent_slug']]['screen_function'] ) { + // This is specific to Members - it's not available in Groups. + $parent_nav = $bp->members->nav->get_primary( array( 'slug' => $r['parent_slug'] ), false ); + + if ( ! $parent_nav ) { + return ; + } + + $parent_nav = reset( $parent_nav ); + + if ( ! empty( $parent_nav->screen_function ) ) { // Remove our screen hook if screen function is callable. - if ( is_callable( $function ) ) { - remove_action( 'bp_screens', $function, 3 ); + if ( is_callable( $parent_nav->screen_function ) ) { + remove_action( 'bp_screens', $parent_nav->screen_function, 3 ); } } - $bp->bp_nav[$r['parent_slug']]['screen_function'] = &$r['screen_function']; + // Edit the screen function for the parent nav + $bp->members->nav->edit_nav( array( + 'screen_function' => &$r['screen_function'], + 'default_subnav_slug' => $r['subnav_slug'], + ), $parent_nav->slug ); - if ( bp_is_current_component( $r['parent_slug'] ) ) { + if ( bp_is_current_component( $parent_nav->slug ) ) { // The only way to tell whether to set the subnav is to peek at the unfiltered_uri // Find the component. - $component_uri_key = array_search( $r['parent_slug'], $bp->unfiltered_uri ); + $component_uri_key = array_search( $parent_nav->slug, $bp->unfiltered_uri ); if ( false !== $component_uri_key ) { if ( ! empty( $bp->unfiltered_uri[$component_uri_key + 1] ) ) { @@ -339,47 +367,10 @@ function bp_core_new_nav_default( $args = '' ) { } /** - * Sort the navigation menu items. - * - * The sorting is split into a separate function because it can only happen - * after all plugins have had a chance to register their navigation items. - * - * @since 1.0.0 - * - * @return bool|null Returns false on failure. - */ -function bp_core_sort_nav_items() { - $bp = buddypress(); - - if ( empty( $bp->bp_nav ) || ! is_array( $bp->bp_nav ) ) { - return false; - } - - $temp = array(); - - foreach ( (array) $bp->bp_nav as $slug => $nav_item ) { - if ( empty( $temp[$nav_item['position']] ) ) { - $temp[$nav_item['position']] = $nav_item; - } else { - // Increase numbers here to fit new items in. - do { - $nav_item['position']++; - } while ( ! empty( $temp[$nav_item['position']] ) ); - - $temp[$nav_item['position']] = $nav_item; - } - } - - ksort( $temp ); - $bp->bp_nav = &$temp; -} -add_action( 'wp_head', 'bp_core_sort_nav_items' ); -add_action( 'admin_head', 'bp_core_sort_nav_items' ); - -/** - * Add a subnav item to the BuddyPress navigation. + * Add an item to secondary navigation of the specified component. * * @since 1.1.0 + * @since 2.6.0 Introduced the `$component` parameter. * * @param array|string $args { * Array describing the new subnav item. @@ -403,22 +394,49 @@ add_action( 'admin_head', 'bp_core_sort_nav_items' ); * @type bool $show_in_admin_bar Optional. Whether the nav item should be added into the group's "Edit" * Admin Bar menu for group admins. Default: false. * } + * @param string $component The component the navigation is attached to. Defaults to 'members'. * @return bool|null Returns false on failure. */ -function bp_core_new_subnav_item( $args = '' ) { +function bp_core_new_subnav_item( $args, $component = null ) { + // Backward compatibility for plugins using `bp_core_new_subnav_item()` without `$component` + // to add group subnav items. + if ( null === $component && bp_is_active( 'groups' ) && bp_is_group() && isset( $args['parent_slug'] ) ) { + /* + * Assume that this item is intended to belong to the current group if: + * a) the 'parent_slug' is the same as the slug of the current group, or + * b) the 'parent_slug' starts with the slug of the current group, and the members nav doesn't have + * a primary item with that slug + */ + $group_slug = bp_get_current_group_slug(); + if ( + $group_slug === $args['parent_slug'] || + ( 0 === strpos( $args['parent_slug'], $group_slug ) && ! buddypress()->members->nav->get_primary( array( 'slug' => $args['parent_slug'] ), false ) ) + ) { + $component = 'groups'; + } + } - // First, add the subnav item link to the bp_options_nav array. - $created = bp_core_create_subnav_link( $args ); + if ( ! $component ) { + $component = 'members'; + } - // To mimic the existing behavior, if bp_core_create_subnav_link() - // returns false, we make an early exit and don't attempt to register - // the screen function. - if ( false === $created ) { + if ( ! bp_is_active( $component ) ) { + return; + } + + // First, register the subnav item in the nav. + $subnav_item = bp_core_create_subnav_link( $args, $component ); + + /* + * To mimic legacy behavior, if bp_core_create_subnav_link() returns false, we make an + * early exit and don't attempt to register the screen function. + */ + if ( false === $subnav_item ) { return false; } // Then, hook the screen function for the added subnav item. - $hooked = bp_core_register_subnav_screen_function( $args ); + $hooked = bp_core_register_subnav_screen_function( $subnav_item, $component ); if ( false === $hooked ) { return false; } @@ -428,6 +446,7 @@ function bp_core_new_subnav_item( $args = '' ) { * 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. * * @param array|string $args { * Array describing the new subnav item. @@ -455,9 +474,10 @@ function bp_core_new_subnav_item( $args = '' ) { * the group's "Edit" Admin Bar menu for group admins. * Default: false. * } - * @return bool|null Returns false on failure. + * @param string $component The component the navigation is attached to. Defaults to 'members'. + * @return bool|BP_Nav_Item Returns false on failure, new nav item on success. */ -function bp_core_create_subnav_link( $args = '' ) { +function bp_core_create_subnav_link( $args = '', $component = 'members' ) { $bp = buddypress(); $r = wp_parse_args( $args, array( @@ -483,9 +503,14 @@ function bp_core_create_subnav_link( $args = '' ) { if ( empty( $r['link'] ) ) { $r['link'] = trailingslashit( $r['parent_url'] . $r['slug'] ); + $parent_nav = $bp->{$component}->nav->get_primary( array( 'slug' => $r['parent_slug'] ), false ); + // If this sub item is the default for its parent, skip the slug. - if ( ! empty( $bp->bp_nav[$r['parent_slug']]['default_subnav_slug'] ) && $r['slug'] == $bp->bp_nav[$r['parent_slug']]['default_subnav_slug'] ) { - $r['link'] = trailingslashit( $r['parent_url'] ); + if ( $parent_nav ) { + $parent_nav_item = reset( $parent_nav ); + if ( ! empty( $parent_nav_item->default_subnav_slug ) && $r['slug'] === $parent_nav_item->default_subnav_slug ) { + $r['link'] = trailingslashit( $r['parent_url'] ); + } } } @@ -502,6 +527,7 @@ function bp_core_create_subnav_link( $args = '' ) { 'name' => $r['name'], 'link' => $r['link'], 'slug' => $r['slug'], + 'parent_slug' => $r['parent_slug'], 'css_id' => $r['item_css_id'], 'position' => $r['position'], 'user_has_access' => $r['user_has_access'], @@ -510,13 +536,16 @@ function bp_core_create_subnav_link( $args = '' ) { 'show_in_admin_bar' => (bool) $r['show_in_admin_bar'], ); - $bp->bp_options_nav[$r['parent_slug']][$r['slug']] = $subnav_item; + buddypress()->{$component}->nav->add_nav( $subnav_item ); + + return $subnav_item; } /** * Register a screen function, whether or not a related subnav link exists. * * @since 2.4.0 + * @since 2.6.0 Introduced the `$component` parameter. * * @param array|string $args { * Array describing the new subnav item. @@ -541,9 +570,10 @@ function bp_core_create_subnav_link( $args = '' ) { * the group's "Edit" Admin Bar menu for group admins. * Default: false. * } + * @param string $component The component the navigation is attached to. Defaults to 'members'. * @return bool|null Returns false on failure. */ -function bp_core_register_subnav_screen_function( $args = '' ) { +function bp_core_register_subnav_screen_function( $args = '', $component = 'members' ) { $bp = buddypress(); $r = wp_parse_args( $args, array( @@ -555,7 +585,7 @@ function bp_core_register_subnav_screen_function( $args = '' ) { 'screen_function' => false, // The name of the function to run when clicked. ) ); - /** + /* * Hook the screen function for the added subnav item. But this only needs to * be done if this subnav item is the current view, and the user has access to the * subnav item. We figure out whether we're currently viewing this subnav by @@ -568,8 +598,8 @@ function bp_core_register_subnav_screen_function( $args = '' ) { * (b) there is no current_action (ie, this is the default subnav for the parent nav) * and this subnav item is the default for the parent item (which we check by * comparing this subnav item's screen function with the screen function of the - * parent nav item in $bp->bp_nav). This condition only arises when viewing a - * user, since groups should always have an action set. + * parent nav item in the component's primary nav). This condition only arises + * when viewing a user, since groups should always have an action set. */ // If we *don't* meet condition (1), return. @@ -577,15 +607,17 @@ function bp_core_register_subnav_screen_function( $args = '' ) { return; } + $parent_nav = $bp->{$component}->nav->get_primary( array( 'slug' => $r['parent_slug'] ), false ); + // If we *do* meet condition (2), then the added subnav item is currently being requested. - if ( ( bp_current_action() && bp_is_current_action( $r['slug'] ) ) || ( bp_is_user() && ! bp_current_action() && ( $r['screen_function'] == $bp->bp_nav[$r['parent_slug']]['screen_function'] ) ) ) { + if ( ( bp_current_action() && bp_is_current_action( $r['slug'] ) ) || ( bp_is_user() && ! bp_current_action() && ! empty( $parent_nav->screen_function ) && $r['screen_function'] == $parent_nav->screen_function ) ) { // If this is for site admins only and the user is not one, don't create the subnav item. if ( ! empty( $r['site_admin_only'] ) && ! bp_current_user_can( 'bp_moderate' ) ) { return false; } - $hooked = bp_core_maybe_hook_new_subnav_screen_function( $r ); + $hooked = bp_core_maybe_hook_new_subnav_screen_function( $r, $component ); // If redirect args have been returned, perform the redirect now. if ( ! empty( $hooked['status'] ) && 'failure' === $hooked['status'] && isset( $hooked['redirect_args'] ) ) { @@ -598,11 +630,14 @@ function bp_core_register_subnav_screen_function( $args = '' ) { * For a given subnav item, either hook the screen function or generate redirect arguments, as necessary. * * @since 2.1.0 + * @since 2.6.0 Introduced the `$component` parameter. * - * @param array $subnav_item The subnav array added to bp_options_nav in `bp_core_new_subnav_item()`. + * @param array $subnav_item The subnav array added to the secondary navigation of + * the component in bp_core_new_subnav_item(). + * @param string $component The component the navigation is attached to. Defaults to 'members'. * @return array */ -function bp_core_maybe_hook_new_subnav_screen_function( $subnav_item ) { +function bp_core_maybe_hook_new_subnav_screen_function( $subnav_item, $component = 'members' ) { $retval = array( 'status' => '', ); @@ -645,10 +680,15 @@ function bp_core_maybe_hook_new_subnav_screen_function( $subnav_item ) { // redirect URL. } elseif ( bp_is_user() ) { + $parent_nav_default = $bp->{$component}->nav->get_primary( array( 'slug' => $bp->default_component ), false ); + if ( $parent_nav_default ) { + $parent_nav_default_item = reset( $parent_nav_default ); + } + // Redirect to the displayed user's default // component, as long as that component is // publicly accessible. - if ( bp_is_my_profile() || ! empty( $bp->bp_nav[ $bp->default_component ]['show_for_displayed_user'] ) ) { + if ( bp_is_my_profile() || ( isset( $parent_nav_default_item ) && $parent_nav_default_item->show_for_displayed_user ) ) { $message = __( 'You do not have access to this page.', 'buddypress' ); $redirect_to = bp_displayed_user_domain(); @@ -691,58 +731,32 @@ function bp_core_maybe_hook_new_subnav_screen_function( $subnav_item ) { } /** - * Sort all subnavigation arrays. + * Check whether a given nav item has subnav items. * - * @since 1.1.0 + * @since 1.5.0 + * @since 2.6.0 Introduced the `$component` parameter. * - * @return bool|null Returns false on failure. + * @param string $nav_item The slug of the top-level nav item whose subnav items you're checking. + * Default: the current component slug. + * @param string $component The component the navigation is attached to. Defaults to 'members'. + * @return bool $has_subnav True if the nav item is found and has subnav items; false otherwise. */ -function bp_core_sort_subnav_items() { +function bp_nav_item_has_subnav( $nav_item = '', $component = 'members' ) { $bp = buddypress(); - if ( empty( $bp->bp_options_nav ) || !is_array( $bp->bp_options_nav ) ) + if ( ! isset( $bp->{$component}->nav ) ) { return false; + } - foreach ( (array) $bp->bp_options_nav as $parent_slug => $subnav_items ) { - if ( !is_array( $subnav_items ) ) - continue; - - foreach ( (array) $subnav_items as $subnav_item ) { - if ( empty( $temp[$subnav_item['position']]) ) - $temp[$subnav_item['position']] = $subnav_item; - else { - // Increase numbers here to fit new items in. - do { - $subnav_item['position']++; - } while ( !empty( $temp[$subnav_item['position']] ) ); + if ( ! $nav_item ) { + $nav_item = bp_current_component(); - $temp[$subnav_item['position']] = $subnav_item; - } + if ( bp_is_group() ) { + $nav_item = bp_current_item(); } - ksort( $temp ); - $bp->bp_options_nav[$parent_slug] = &$temp; - unset( $temp ); } -} -add_action( 'wp_head', 'bp_core_sort_subnav_items' ); -add_action( 'admin_head', 'bp_core_sort_subnav_items' ); -/** - * Check whether a given nav item has subnav items. - * - * @since 1.5.0 - * - * @param string $nav_item The slug of the top-level nav item whose subnav items you're checking. - * Default: the current component slug. - * @return bool $has_subnav True if the nav item is found and has subnav items; false otherwise. - */ -function bp_nav_item_has_subnav( $nav_item = '' ) { - $bp = buddypress(); - - if ( !$nav_item ) - $nav_item = bp_current_component(); - - $has_subnav = isset( $bp->bp_options_nav[$nav_item] ) && count( $bp->bp_options_nav[$nav_item] ) > 0; + $has_subnav = (bool) $bp->{$component}->nav->get_secondary( array( 'parent_slug' => $nav_item ), false ); /** * Filters whether or not a given nav item has subnav items. @@ -756,75 +770,131 @@ function bp_nav_item_has_subnav( $nav_item = '' ) { } /** - * Remove a nav item from the navigation array. + * Deletes an item from the primary navigation of the specified component. * * @since 1.0.0 + * @since 2.6.0 Introduced the `$component` parameter. * - * @param int $parent_id The slug of the parent navigation item. - * @return bool Returns false on failure, ie if the nav item can't be found. + * @param string $slug The slug of the primary navigation item. + * @param string $component The component the navigation is attached to. Defaults to 'members'. + * @return bool Returns false on failure, True on success. */ -function bp_core_remove_nav_item( $parent_id ) { +function bp_core_remove_nav_item( $slug, $component = null ) { $bp = buddypress(); - // Unset subnav items for this nav item. - if ( isset( $bp->bp_options_nav[$parent_id] ) && is_array( $bp->bp_options_nav[$parent_id] ) ) { - foreach( (array) $bp->bp_options_nav[$parent_id] as $subnav_item ) { - bp_core_remove_subnav_item( $parent_id, $subnav_item['slug'] ); + // Backward compatibility for removing group nav items using the group slug as `$parent_slug`. + if ( ! $component && bp_is_active( 'groups' ) && isset( $bp->groups->nav ) ) { + if ( $bp->groups->nav->get_primary( array( 'slug' => $slug ) ) ) { + $component = 'groups'; } } - if ( empty( $bp->bp_nav[ $parent_id ] ) ) + if ( ! $component ) { + $component = 'members'; + } + + if ( ! isset( $bp->{$component}->nav ) ) { return false; + } + + $screen_functions = $bp->{$component}->nav->delete_nav( $slug ); - if ( $function = $bp->bp_nav[$parent_id]['screen_function'] ) { + // 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(); + } + + if ( ! is_array( $screen_functions ) ) { + return false; + } + + foreach ( $screen_functions as $screen_function ) { // Remove our screen hook if screen function is callable. - if ( is_callable( $function ) ) { - remove_action( 'bp_screens', $function, 3 ); + if ( is_callable( $screen_function ) ) { + remove_action( 'bp_screens', $screen_function, 3 ); } } - unset( $bp->bp_nav[$parent_id] ); + return true; } /** - * Remove a subnav item from the navigation array. + * Deletes an item from the secondary navigation of the specified component. * * @since 1.0.0 + * @since 2.6.0 Introduced the `$component` parameter. * - * @param string $parent_id The slug of the parent navigation item. - * @param string $slug The slug of the subnav item to be removed. + * @param string $parent_slug The slug of the primary navigation item. + * @param string $slug The slug of the secondary item to be removed. + * @param string $component The component the navigation is attached to. Defaults to 'members'. + * @return bool Returns false on failure, True on success. */ -function bp_core_remove_subnav_item( $parent_id, $slug ) { +function bp_core_remove_subnav_item( $parent_slug, $slug, $component = null ) { $bp = buddypress(); - $screen_function = isset( $bp->bp_options_nav[$parent_id][$slug]['screen_function'] ) - ? $bp->bp_options_nav[$parent_id][$slug]['screen_function'] - : false; - - if ( ! empty( $screen_function ) ) { - // Remove our screen hook if screen function is callable. - if ( is_callable( $screen_function ) ) { - remove_action( 'bp_screens', $screen_function, 3 ); + // Backward compatibility for removing group nav items using the group slug as `$parent_slug`. + if ( ! $component && bp_is_active( 'groups' ) && isset( $bp->groups->nav ) ) { + if ( $bp->groups->nav->get_primary( array( 'slug' => $parent_slug ) ) ) { + $component = 'groups'; } } - unset( $bp->bp_options_nav[$parent_id][$slug] ); + if ( ! $component ) { + $component = 'members'; + } + + if ( ! isset( $bp->{$component}->nav ) ) { + return false; + } + + $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(); + } + + if ( ! is_array( $screen_functions ) ) { + return false; + } + + $screen_function = reset( $screen_functions ); + + // Remove our screen hook if screen function is callable. + if ( is_callable( $screen_function ) ) { + remove_action( 'bp_screens', $screen_function, 3 ); + } - if ( isset( $bp->bp_options_nav[$parent_id] ) && !count( $bp->bp_options_nav[$parent_id] ) ) - unset($bp->bp_options_nav[$parent_id]); + return true; } /** * Clear all subnav items from a specific nav item. * * @since 1.0.0 + * @since 2.6.0 Introduced the `$component` parameter. * * @param string $parent_slug The slug of the parent navigation item. + * @param string $component The component the navigation is attached to. Defaults to 'members'. */ -function bp_core_reset_subnav_items( $parent_slug ) { +function bp_core_reset_subnav_items( $parent_slug, $component = 'members' ) { $bp = buddypress(); - unset( $bp->bp_options_nav[$parent_slug] ); + if ( ! isset( $bp->{$component}->nav ) ) { + return; + } + + $subnav_items = $bp->{$component}->nav->get_secondary( array( 'parent_slug' => $parent_slug ), false ); + + if ( ! $subnav_items ) { + return; + } + + foreach( $subnav_items as $subnav_item ) { + $bp->{$component}->nav->delete_nav( $subnav_item->slug, $parent_slug ); + } } @@ -835,8 +905,6 @@ function bp_core_reset_subnav_items( $parent_slug ) { * * @since 1.5.0 * - * @uses get_user_option() - * * @param string $context Context of this preference check. 'admin' or 'front'. * @param int $user Optional. ID of the user to check. Default: 0 (which falls back to the logged-in user's ID). * @return bool True if the toolbar should be showing for this user. diff --git a/wp-content/plugins/buddypress/bp-core/bp-core-caps.php b/wp-content/plugins/buddypress/bp-core/bp-core-caps.php index 325889b5b477123f5f103b6f4b0114e1534c9202..b8ffbce70f94ddc3c2a48e77683910a11c8fbac9 100644 --- a/wp-content/plugins/buddypress/bp-core/bp-core-caps.php +++ b/wp-content/plugins/buddypress/bp-core/bp-core-caps.php @@ -57,9 +57,6 @@ function bp_get_current_blog_roles() { * * @since 1.6.0 * - * @uses get_role() To get the administrator, default and moderator roles. - * @uses WP_Role::add_cap() To add various capabilities. - * @uses do_action() Calls 'bp_add_caps'. */ function bp_add_caps() { global $wp_roles; @@ -93,9 +90,6 @@ function bp_add_caps() { * * @since 1.6.0 * - * @uses get_role() To get the administrator and default roles. - * @uses WP_Role::remove_cap() To remove various capabilities. - * @uses do_action() Calls 'bp_remove_caps'. */ function bp_remove_caps() { global $wp_roles; @@ -129,7 +123,6 @@ function bp_remove_caps() { * * @see WP_User::has_cap() for description of the arguments passed to the * 'map_meta_cap' filter. - * @uses apply_filters() Calls 'bp_map_meta_caps' with caps, cap, user ID and * args. * * @param array $caps See {@link WP_User::has_cap()}. @@ -158,8 +151,6 @@ function bp_map_meta_caps( $caps, $cap, $user_id, $args ) { * * @since 1.6.0 * - * @uses apply_filters() Calls 'bp_get_community_caps' with the capabilities. - * * @return array Community capabilities. */ function bp_get_community_caps() { @@ -182,8 +173,6 @@ function bp_get_community_caps() { * * @since 1.6.0 * - * @uses apply_filters() Allow return value to be filtered. - * * @param string $role The role for which you're loading caps. * @return array Capabilities for $role. */ @@ -232,12 +221,6 @@ function bp_get_caps_for_role( $role = '' ) { * * @global BuddyPress $bp Global BuddyPress settings object. * - * @uses is_multisite() - * @uses bp_allow_global_access() - * @uses bp_is_user_inactive() - * @uses is_user_logged_in() - * @uses current_user_can() - * @uses WP_User::set_role() */ function bp_set_current_user_default_role() { 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 ada5bf91e72f432e740e811b35cf51d2df4f58ed..79ade513f865345656e80c3a043c6f839744a60d 100644 --- a/wp-content/plugins/buddypress/bp-core/bp-core-catchuri.php +++ b/wp-content/plugins/buddypress/bp-core/bp-core-catchuri.php @@ -210,13 +210,27 @@ function bp_core_set_uri_globals() { } // URLs with BP_ENABLE_ROOT_PROFILES enabled won't be caught above. - if ( empty( $matches ) && bp_core_enable_root_profiles() ) { + if ( empty( $matches ) && bp_core_enable_root_profiles() && ! empty( $bp_uri[0] ) ) { // Switch field based on compat. $field = bp_is_username_compatibility_mode() ? 'login' : 'slug'; + /** + * Filter the portion of the URI that is the displayed user's slug. + * + * eg. example.com/ADMIN (when root profiles is enabled) + * example.com/members/ADMIN (when root profiles isn't enabled) + * + * ADMIN would be the displayed user's slug. + * + * @since 2.6.0 + * + * @param string $member_slug + */ + $member_slug = apply_filters( 'bp_core_set_uri_globals_member_slug', $bp_uri[0] ); + // Make sure there's a user corresponding to $bp_uri[0]. - if ( !empty( $bp->pages->members ) && !empty( $bp_uri[0] ) && $root_profile = get_user_by( $field, $bp_uri[0] ) ) { + if ( ! empty( $bp->pages->members ) && $root_profile = get_user_by( $field, $member_slug ) ) { // Force BP to recognize that this is a members page. $matches[] = 1; @@ -272,6 +286,10 @@ function bp_core_set_uri_globals() { // Are we viewing a specific user? if ( $after_member_slug ) { + + /** This filter is documented in bp-core/bp-core-catchuri.php */ + $after_member_slug = apply_filters( 'bp_core_set_uri_globals_member_slug', $after_member_slug ); + // If root profile, we've already queried for the user. if ( $root_profile instanceof WP_User ) { $bp->displayed_user->id = $root_profile->ID; @@ -438,6 +456,17 @@ function bp_core_load_template( $templates ) { * @param array $filtered_templates Array of templates to attempt to load. */ $located_template = apply_filters( 'bp_located_template', $template, $filtered_templates ); + + /* + * If current page is an embed, wipe out bp-default template. + * + * Wiping out the bp-default template allows WordPress to use their special + * embed template, which is what we want. + */ + if ( function_exists( 'is_embed' ) && is_embed() ) { + $located_template = ''; + } + if ( !empty( $located_template ) ) { // Template was located, lets set this as a valid page and not a 404. status_header( 200 ); @@ -516,6 +545,46 @@ function bp_core_catch_profile_uri() { } } +/** + * Members user shortlink redirector. + * + * Redirects x.com/members/me/* to x.com/members/{LOGGED_IN_USER_SLUG}/* + * + * @since 2.6.0 + * + * @param string $member_slug The current member slug. + */ +function bp_core_members_shortlink_redirector( $member_slug ) { + /** + * Shortlink slug to redirect to logged-in user. + * + * x.com/members/me/* will redirect to x.com/members/{LOGGED_IN_USER_SLUG}/* + * + * @since 2.6.0 + * + * @var string $slug Defaults to 'me'. + */ + $me_slug = apply_filters( 'bp_core_members_shortlink_slug', 'me' ); + + // Check if we're on our special shortlink slug. If not, bail. + if ( $me_slug !== $member_slug ) { + return $member_slug; + } + + // If logged out, redirect user to login. + if ( false === is_user_logged_in() ) { + // Add our login redirector hook. + add_action( 'template_redirect', 'bp_core_no_access', 0 ); + + return $member_slug; + } + + $user = wp_get_current_user(); + + return bp_core_get_username( $user->ID, $user->user_nicename, $user->user_login ); +} +add_filter( 'bp_core_set_uri_globals_member_slug', 'bp_core_members_shortlink_redirector' ); + /** * Catch unauthorized access to certain BuddyPress pages and redirect accordingly. * @@ -667,8 +736,6 @@ add_action( 'login_form_bpnoaccess', 'bp_core_no_access_wp_login_error' ); * @see BP_Members_Component::setup_globals() where * $bp->canonical_stack['base_url'] and ['component'] may be set. * @see bp_core_new_nav_item() where $bp->canonical_stack['action'] may be set. - * @uses bp_get_canonical_url() - * @uses bp_get_requested_url() */ function bp_redirect_canonical() { @@ -738,8 +805,6 @@ function bp_rel_canonical() { * * @since 1.6.0 * - * @uses apply_filters() Filter bp_get_canonical_url to modify return value. - * * @param array $args { * Optional array of arguments. * @type bool $include_query_args Whether to include current URL arguments @@ -875,7 +940,6 @@ function bp_get_requested_url() { * * @since 1.6.0 * - * @uses bp_is_blog_page() */ function _bp_maybe_remove_redirect_canonical() { if ( ! bp_is_blog_page() ) diff --git a/wp-content/plugins/buddypress/bp-core/bp-core-classes.php b/wp-content/plugins/buddypress/bp-core/bp-core-classes.php index bebf4ed0822d924afa843b166c1ad8af424dbbae..1efef6192abd4030143cfbde1aa909c5954001ef 100644 --- a/wp-content/plugins/buddypress/bp-core/bp-core-classes.php +++ b/wp-content/plugins/buddypress/bp-core/bp-core-classes.php @@ -30,3 +30,11 @@ require dirname( __FILE__ ) . '/classes/class-bp-email-recipient.php'; require dirname( __FILE__ ) . '/classes/class-bp-email.php'; require dirname( __FILE__ ) . '/classes/class-bp-email-delivery.php'; require dirname( __FILE__ ) . '/classes/class-bp-phpmailer.php'; +require dirname( __FILE__ ) . '/classes/class-bp-core-nav.php'; +require dirname( __FILE__ ) . '/classes/class-bp-core-nav-item.php'; +require dirname( __FILE__ ) . '/classes/class-bp-core-oembed-extension.php'; + +if ( buddypress()->do_nav_backcompat ) { + require dirname( __FILE__ ) . '/classes/class-bp-core-bp-nav-backcompat.php'; + require dirname( __FILE__ ) . '/classes/class-bp-core-bp-options-nav-backcompat.php'; +} diff --git a/wp-content/plugins/buddypress/bp-core/bp-core-component.php b/wp-content/plugins/buddypress/bp-core/bp-core-component.php index a6ec86cf76f6d941f891748756132566639973af..d4200f91584555d85ff15bfbdf9a16e6dc1f294c 100644 --- a/wp-content/plugins/buddypress/bp-core/bp-core-component.php +++ b/wp-content/plugins/buddypress/bp-core/bp-core-component.php @@ -10,4 +10,6 @@ // Exit if accessed directly. defined( 'ABSPATH' ) || exit; -require dirname( __FILE__ ) . '/classes/class-bp-component.php'; +if ( ! class_exists( 'BP_Component' ) ) { + require dirname( __FILE__ ) . '/classes/class-bp-component.php'; +} diff --git a/wp-content/plugins/buddypress/bp-core/bp-core-cssjs.php b/wp-content/plugins/buddypress/bp-core/bp-core-cssjs.php index ba3d3bd43a9430dbb39c3bd85e1f7348f96c3c2f..57c8b7b69bb0be9bb3abec74eb5c268f64b6dede 100644 --- a/wp-content/plugins/buddypress/bp-core/bp-core-cssjs.php +++ b/wp-content/plugins/buddypress/bp-core/bp-core-cssjs.php @@ -339,8 +339,6 @@ function bp_core_ajax_url() { * * @since 2.0.0 * - * @uses apply_filters() to allow other component to load extra dependencies. - * * @return array The JavaScript dependencies. */ function bp_core_get_js_dependencies() { 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 243fd7064e41265fcecf8c7230533a1b9895fe3c..b99feea28632ef6b86722c8abc29e4c0710f6fb7 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 @@ -47,7 +47,9 @@ function bp_email_init_customizer( WP_Customize_Manager $wp_customize ) { /** * BP_Customizer_Control_Range class. */ - require_once dirname( __FILE__ ) . '/classes/class-bp-customizer-control-range.php'; + 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. @@ -192,7 +194,7 @@ function bp_email_get_customizer_settings() { 'bp_email_options[header_text_size]' => array( 'capability' => 'bp_moderate', 'default' => $defaults['header_text_size'], - 'sanitize_callback' => 'intval', + 'sanitize_callback' => 'absint', 'transport' => 'postMessage', 'type' => 'option', ), @@ -220,7 +222,7 @@ function bp_email_get_customizer_settings() { 'bp_email_options[body_text_size]' => array( 'capability' => 'bp_moderate', 'default' => $defaults['body_text_size'], - 'sanitize_callback' => 'intval', + 'sanitize_callback' => 'absint', 'transport' => 'postMessage', 'type' => 'option', ), @@ -248,7 +250,7 @@ function bp_email_get_customizer_settings() { 'bp_email_options[footer_text_size]' => array( 'capability' => 'bp_moderate', 'default' => $defaults['footer_text_size'], - 'sanitize_callback' => 'intval', + 'sanitize_callback' => 'absint', 'transport' => 'postMessage', 'type' => 'option', ), 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 8dc9122d534a2dde5d07434e59e95880046b745f..1b8fa814e6bb3b6dabd3280c861adf7ec5b627d2 100644 --- a/wp-content/plugins/buddypress/bp-core/bp-core-dependency.php +++ b/wp-content/plugins/buddypress/bp-core/bp-core-dependency.php @@ -207,22 +207,27 @@ function bp_setup_cache_groups() { /** * Set up the currently logged-in user. * - * We white-list the WordPress customizer which purposely loads the user early. + * We white-list the WordPress Customizer which purposely loads the user early. + * If the current user is being setup before the "init" action has fired, + * strange (and difficult to debug) role/capability issues will occur. * * @since 1.7.0 * * @link https://buddypress.trac.wordpress.org/ticket/6046 * @link https://core.trac.wordpress.org/ticket/24169 * - * @uses did_action() To make sure the user isn't loaded out of order. - * @uses do_action() Calls 'bp_setup_current_user'. */ function bp_setup_current_user() { + $skip_warning = ( + ( isset( $_REQUEST['wp_customize'] ) && 'on' === $_REQUEST['wp_customize'] ) || + ( is_admin() && 'customize.php' === basename( $_SERVER['PHP_SELF'] ) ) + ); - // If the current user is being setup before the "init" action has fired, - // strange (and difficult to debug) role/capability issues will occur. - if ( ! isset( $GLOBALS['wp_customize'] ) && ! did_action( 'after_setup_theme' ) ) { - _doing_it_wrong( __FUNCTION__, __( 'The current user is being initialized without using $wp->init().', 'buddypress' ), '1.7' ); + if ( ! $skip_warning && ! did_action( 'after_setup_theme' ) ) { + $e = new Exception; + $trace = $e->getTraceAsString(); + + _doing_it_wrong( __FUNCTION__, __( 'The current user is being initialized without using $wp->init().', 'buddypress' ) . "\n===\nTrace:\n" . substr( $trace, strpos( $trace, '#6' ) ) . "\n===\n", '1.7' ); } /** @@ -248,6 +253,21 @@ function bp_init() { do_action( 'bp_init' ); } +/** + * Fire the 'bp_rest_api_init' action, where BuddyPress registers REST API endpoints. + * + * @since 2.6.0 + */ +function bp_rest_api_init() { + + /** + * Fires the 'bp_rest_api_init' function, where BuddyPress registers REST API endpoints. + * + * @since 2.6.0 + */ + do_action( 'bp_rest_api_init' ); +} + /** * Fire the 'bp_customize_register' action when the Customizer has loaded, * allowing scripts and styles to be initialized. @@ -356,7 +376,7 @@ function bp_widgets_init() { * * @since 1.6.0 */ - do_action ( 'bp_widgets_init' ); + do_action( 'bp_widgets_init' ); } /** @@ -373,7 +393,7 @@ function bp_head() { * * @since 1.6.0 */ - do_action ( 'bp_head' ); + do_action( 'bp_head' ); } /** Theme Permissions *********************************************************/ @@ -387,7 +407,6 @@ function bp_head() { * * @since 1.6.0 * - * @uses do_action() */ function bp_template_redirect() { @@ -408,7 +427,6 @@ function bp_template_redirect() { * * @since 1.5.0 * - * @uses do_action() */ function bp_register_theme_directory() { @@ -429,7 +447,6 @@ function bp_register_theme_directory() { * * @since 1.7.0 * - * @uses do_action() */ function bp_register_theme_packages() { @@ -446,7 +463,6 @@ function bp_register_theme_packages() { * * @since 1.6.0 * - * @uses do_action() Calls 'bp_enqueue_scripts'. */ function bp_enqueue_scripts() { @@ -455,7 +471,25 @@ function bp_enqueue_scripts() { * * @since 1.6.0 */ - do_action ( 'bp_enqueue_scripts' ); + do_action( 'bp_enqueue_scripts' ); +} + +/** + * Fires the 'bp_enqueue_embed_scripts' action in the <head> for BP oEmbeds. + * + * @since 2.6.0 + */ +function bp_enqueue_embed_scripts() { + if ( ! is_buddypress() ) { + return; + } + + /** + * Enqueue CSS and JS files for BuddyPress embeds. + * + * @since 2.6.0 + */ + do_action( 'bp_enqueue_embed_scripts' ); } /** @@ -463,7 +497,6 @@ function bp_enqueue_scripts() { * * @since 1.8.0 * - * @uses do_action() Calls 'bp_add_rewrite_tags'. */ function bp_add_rewrite_tags() { @@ -480,7 +513,6 @@ function bp_add_rewrite_tags() { * * @since 1.9.0 * - * @uses do_action() Calls 'bp_add_rewrite_rules'. */ function bp_add_rewrite_rules() { @@ -497,7 +529,6 @@ function bp_add_rewrite_rules() { * * @since 1.9.0 * - * @uses do_action() Calls 'bp_add_permastructs'. */ function bp_add_permastructs() { @@ -517,7 +548,6 @@ function bp_add_permastructs() { * * @since 1.6.0 * - * @uses do_action() Calls 'bp_setup_theme'. */ function bp_setup_theme() { @@ -526,7 +556,7 @@ function bp_setup_theme() { * * @since 1.6.0 */ - do_action ( 'bp_setup_theme' ); + do_action( 'bp_setup_theme' ); } /** @@ -541,7 +571,6 @@ function bp_setup_theme() { * * @since 1.6.0 * - * @uses do_action() Calls 'bp_after_setup_theme'. */ function bp_after_setup_theme() { @@ -550,7 +579,7 @@ function bp_after_setup_theme() { * * @since 1.7.0 */ - do_action ( 'bp_after_setup_theme' ); + do_action( 'bp_after_setup_theme' ); } /** Theme Compatibility Filter ************************************************/ @@ -608,8 +637,6 @@ function bp_login_redirect( $redirect_to = '', $redirect_to_raw = '', $user = fa * * @since 1.6.0 * - * @uses apply_filters() - * * @param string $template See 'template_include'. * @return string Template file to use. */ @@ -630,8 +657,6 @@ function bp_template_include( $template = '' ) { * * @since 1.7.0 * - * @uses do_action() Calls 'bp_generate_rewrite_rules' with {@link WP_Rewrite}. - * * @param WP_Rewrite $wp_rewrite See 'generate_rewrite_rules'. */ function bp_generate_rewrite_rules( $wp_rewrite ) { @@ -653,8 +678,6 @@ function bp_generate_rewrite_rules( $wp_rewrite ) { * * @since 1.7.0 * - * @uses apply_filters() Calls 'bp_allowed_themes' with the allowed themes list. - * * @param array $themes The path of the template to include. * @return array */ @@ -677,7 +700,6 @@ function bp_allowed_themes( $themes ) { * * @since 1.9.0 * - * @uses do_action() */ function bp_post_request() { @@ -721,7 +743,6 @@ function bp_post_request() { * * @since 1.9.0 * - * @uses do_action() */ function bp_get_request() { 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 e03397211efd383c279b84d0486a6749b33880fc..dd9645bd039cde5aac867f3f24ee91de80f0250a 100644 --- a/wp-content/plugins/buddypress/bp-core/bp-core-filters.php +++ b/wp-content/plugins/buddypress/bp-core/bp-core-filters.php @@ -80,8 +80,6 @@ add_filter( 'comments_open', 'bp_comments_open', 10, 2 ); * * @since 1.5.0 * - * @uses bp_is_active() checks if a BuddyPress component is active. - * * @param array $pages List of excluded page IDs, as passed to the * 'wp_list_pages_excludes' filter. * @return array The exclude list, with BP's pages added. @@ -119,9 +117,6 @@ add_filter( 'wp_list_pages_excludes', 'bp_core_exclude_pages' ); * * @since 2.0.0 * - * @uses bp_is_root_blog() checks if current blog is root blog. - * @uses buddypress() gets BuddyPress main instance - * * @param object|null $object The post type object used in the meta box. * @return object|null The $object, with a query argument to remove register and activate pages id. */ @@ -286,7 +281,6 @@ add_filter( 'comments_array', 'bp_core_filter_comments', 10, 2 ); * * @since 1.2.0 * - * @uses apply_filters() Filter 'bp_core_login_redirect' to modify where users * are redirected to on login. * * @param string $redirect_to The URL to be redirected to, sanitized in wp-login.php. 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 ea58ce7c0f3b3c1d03db63d586c96be9833f2e3c..7cf28aafc7863f8fc5046876c05bae282e97716e 100644 --- a/wp-content/plugins/buddypress/bp-core/bp-core-functions.php +++ b/wp-content/plugins/buddypress/bp-core/bp-core-functions.php @@ -17,7 +17,6 @@ defined( 'ABSPATH' ) || exit; * * @since 1.6.0 * - * @uses bp_get_version() To get the BuddyPress version. */ function bp_version() { echo bp_get_version(); @@ -38,7 +37,6 @@ function bp_version() { * * @since 1.6.0 * - * @uses bp_get_db_version() To get the BuddyPress database version. */ function bp_db_version() { echo bp_get_db_version(); @@ -59,7 +57,6 @@ function bp_db_version() { * * @since 1.6.0 * - * @uses bp_get_db_version_raw() To get the current database BuddyPress version. */ function bp_db_version_raw() { echo bp_get_db_version_raw(); @@ -358,7 +355,6 @@ function bp_esc_like( $text ) { * * @since 1.5.0 * - * @uses apply_filters() Filter 'bp_is_username_compatibility_mode' to alter. * @todo Move to members component? * * @return bool False when compatibility mode is disabled, true when enabled. @@ -384,8 +380,6 @@ function bp_is_username_compatibility_mode() { * * @since 1.5.0 * - * @uses apply_filters() Filter 'bp_use_wp_admin_bar' to alter. - * * @return bool Default: true. False when WP Toolbar support is disabled. */ function bp_use_wp_admin_bar() { @@ -492,6 +486,29 @@ function bp_core_get_directory_page_ids( $status = 'active' ) { return apply_filters( 'bp_core_get_directory_page_ids', $page_ids ); } +/** + * Get the page ID corresponding to a component directory. + * + * @since 2.6.0 + * + * @param string $component The slug representing the component. Defaults to the current component. + * @return int|bool The ID of the directory page associated with the component. False if none is found. + */ +function bp_core_get_directory_page_id( $component = null ) { + if ( ! $component ) { + $component = bp_current_component(); + } + + $bp_pages = bp_core_get_directory_page_ids( 'all' ); + + $page_id = false; + if ( $component && isset( $bp_pages[ $component ] ) ) { + $page_id = (int) $bp_pages[ $component ]; + } + + return $page_id; +} + /** * Store the list of BP directory pages in the appropriate meta table. * @@ -900,8 +917,6 @@ function bp_do_register_theme_directory() { * * @since 1.0.0 * - * @uses get_blog_option() WordPress function to fetch blog meta. - * * @return string The domain URL for the blog. */ function bp_core_get_root_domain() { @@ -923,8 +938,6 @@ function bp_core_get_root_domain() { * * @since 1.0.0 * - * @uses wp_safe_redirect() - * * @param string $location The redirect URL. * @param int $status Optional. The numeric code to give in the redirect * headers. Default: 302. @@ -1054,9 +1067,6 @@ function bp_core_current_time( $gmt = true, $type = 'mysql' ) { * * @since 1.0.0 * - * @uses apply_filters() Filter 'bp_core_time_since_pre' to bypass BP's calculations. - * @uses apply_filters() Filter 'bp_core_time_since' to modify BP's calculations. - * * @param int|string $older_date The earlier time from which you're calculating * the time elapsed. Enter either as an integer Unix timestamp, * or as a date string of the format 'Y-m-d h:i:s'. @@ -1267,8 +1277,8 @@ function bp_core_add_message( $message, $type = '' ) { } // Send the values to the cookie for page reload display. - @setcookie( 'bp-message', $message, time() + 60 * 60 * 24, COOKIEPATH ); - @setcookie( 'bp-message-type', $type, time() + 60 * 60 * 24, COOKIEPATH ); + @setcookie( 'bp-message', $message, time() + 60 * 60 * 24, COOKIEPATH, COOKIE_DOMAIN, is_ssl() ); + @setcookie( 'bp-message-type', $type, time() + 60 * 60 * 24, COOKIEPATH, COOKIE_DOMAIN, is_ssl() ); // Get BuddyPress. $bp = buddypress(); @@ -1293,7 +1303,6 @@ function bp_core_add_message( $message, $type = '' ) { * * @since 1.1.0 * - * @uses setcookie() Sets a cookie value for the user. */ function bp_core_setup_message() { @@ -1311,11 +1320,11 @@ function bp_core_setup_message() { add_action( 'template_notices', 'bp_core_render_message' ); if ( isset( $_COOKIE['bp-message'] ) ) { - @setcookie( 'bp-message', false, time() - 1000, COOKIEPATH ); + @setcookie( 'bp-message', false, time() - 1000, COOKIEPATH, COOKIE_DOMAIN, is_ssl() ); } if ( isset( $_COOKIE['bp-message-type'] ) ) { - @setcookie( 'bp-message-type', false, time() - 1000, COOKIEPATH ); + @setcookie( 'bp-message-type', false, time() - 1000, COOKIEPATH, COOKIE_DOMAIN, is_ssl() ); } } add_action( 'bp_actions', 'bp_core_setup_message', 5 ); @@ -1377,7 +1386,6 @@ function bp_core_render_message() { * * @since 1.0.0 * - * @uses bp_update_user_meta() BP function to update user metadata in the * usermeta table. * * @return bool|null Returns false if there is nothing to do. @@ -1435,7 +1443,6 @@ add_action( 'wp_head', 'bp_core_record_activity' ); * * @since 1.0.0 * - * @uses bp_core_time_since() This function will return an English * representation of the time elapsed. * * @param int|string $last_activity_date The date of last activity. @@ -1486,8 +1493,6 @@ function bp_core_get_last_activity( $last_activity_date = '', $string = '' ) { * * @since 1.5.0 * - * @uses apply_filters() Filter 'bp_get_user_meta_key' to modify keys individually. - * * @param string|bool $key The usermeta meta_key. * @return string $key The usermeta meta_key. */ @@ -1513,7 +1518,6 @@ function bp_get_user_meta_key( $key = false ) { * @since 1.5.0 * * @see get_user_meta() For complete details about parameters and return values. - * @uses bp_get_user_meta_key() For a filterable version of the meta key. * * @param int $user_id The ID of the user whose meta you're fetching. * @param string $key The meta key to retrieve. @@ -1535,7 +1539,6 @@ function bp_get_user_meta( $user_id, $key, $single = false ) { * @since 1.5.0 * * @see update_user_meta() For complete details about parameters and return values. - * @uses bp_get_user_meta_key() For a filterable version of the meta key. * * @param int $user_id The ID of the user whose meta you're setting. * @param string $key The meta key to set. @@ -1557,7 +1560,6 @@ function bp_update_user_meta( $user_id, $key, $value, $prev_value = '' ) { * @since 1.5.0 * * @see delete_user_meta() For complete details about parameters and return values. - * @uses bp_get_user_meta_key() For a filterable version of the meta key. * * @param int $user_id The ID of the user whose meta you're deleting. * @param string $key The meta key to delete. @@ -1666,6 +1668,38 @@ function bp_use_embed_in_private_messages() { return apply_filters( 'bp_use_embed_in_private_messages', !defined( 'BP_EMBED_DISABLE_PRIVATE_MESSAGES' ) || !BP_EMBED_DISABLE_PRIVATE_MESSAGES ); } +/** + * Extracts media metadata from a given content. + * + * @since 2.6.0 + * + * @param string $content The content to check. + * @param string|int $type The type to check. Can also use a bitmask. See the class constants in the + * BP_Media_Extractor class for more info. + * @return array|bool If media exists, will return array of media metadata. Else, boolean false. + */ +function bp_core_extract_media_from_content( $content = '', $type = 'all' ) { + if ( is_string( $type ) ) { + $class = new ReflectionClass( 'BP_Media_Extractor' ); + $bitmask = $class->getConstant( strtoupper( $type ) ); + } else { + $bitmask = (int) $type; + } + + // Type isn't valid, so bail. + if ( empty( $bitmask ) ) { + return false; + } + + $x = new BP_Media_Extractor; + $media = $x->extract( $content, $bitmask ); + + unset( $media['has'] ); + $retval = array_filter( $media ); + + return ! empty( $retval ) ? $retval : false; +} + /** Admin *********************************************************************/ /** @@ -1686,9 +1720,6 @@ function bp_admin_url( $path = '', $scheme = 'admin' ) { * * @since 1.5.0 * - * @uses bp_core_do_network_admin() - * @uses network_admin_url() - * @uses admin_url() * * @param string $path Optional. The sub-path under /wp-admin to be * appended to the admin URL. @@ -1720,9 +1751,6 @@ function bp_admin_url( $path = '', $scheme = 'admin' ) { * * @since 1.5.0 * - * @uses bp_is_network_activated() - * @uses bp_is_multiblog_mode() - * * @return bool True if the BP admin screen should appear in the Network Admin, * otherwise false. */ @@ -1855,8 +1883,6 @@ function bp_get_root_blog_id() { * * @since 1.5.0 * - * @uses apply_filters() Filter 'bp_is_multiblog_mode' to alter. - * * @return bool False when multiblog mode is disabled; true when enabled. * Default: false. */ @@ -2044,8 +2070,6 @@ function bp_do_404( $redirect = 'remove_canonical_direct' ) { * * @since 1.6.0 * - * @uses do_action() Calls 'bp_verify_nonce_request' on $action. - * * @param string $action Action nonce. * @param string $query_arg Where to look for nonce in $_REQUEST. * @return bool True if the nonce is verified, otherwise false. @@ -2185,7 +2209,7 @@ function bp_core_load_buddypress_textdomain() { // Default to WP and glotpress. return load_plugin_textdomain( $domain ); } -add_action ( 'bp_core_loaded', 'bp_core_load_buddypress_textdomain' ); +add_action( 'bp_core_loaded', 'bp_core_load_buddypress_textdomain' ); /** * A JavaScript-free implementation of the search functions in BuddyPress. @@ -2263,20 +2287,6 @@ function bp_core_action_search_site( $slug = '' ) { } add_action( 'bp_init', 'bp_core_action_search_site', 7 ); -/** - * Print the generation time in the footer of the site. - * - * @since 1.0.0 - */ -function bp_core_print_generation_time() { -?> - -<!-- Generated in <?php timer_stop(1); ?> seconds. (<?php echo get_num_queries(); ?> q) --> - - <?php -} -add_action( 'wp_footer', 'bp_core_print_generation_time' ); - /** * Remove "prev" and "next" relational links from <head> on BuddyPress pages. * @@ -2331,6 +2341,105 @@ function bp_core_get_minified_asset_suffix() { return $ext; } +/** + * Return a list of component information. + * + * @since 2.6.0 + * + * @param string $type Optional; component type to fetch. Default value is 'all', or 'optional', 'retired', 'required'. + * @return array Requested components' data. + */ +function bp_core_get_components( $type = 'all' ) { + $required_components = array( + 'core' => array( + 'title' => __( 'BuddyPress Core', 'buddypress' ), + 'description' => __( 'It‘s what makes <del>time travel</del> BuddyPress possible!', 'buddypress' ) + ), + 'members' => array( + 'title' => __( 'Community Members', 'buddypress' ), + 'description' => __( 'Everything in a BuddyPress community revolves around its members.', 'buddypress' ) + ), + ); + + $retired_components = array( + 'forums' => array( + 'title' => __( 'Group Forums', 'buddypress' ), + 'description' => sprintf( __( 'BuddyPress Forums are retired. Use %s.', 'buddypress' ), '<a href="https://bbpress.org/">bbPress</a>' ) + ), + ); + + $optional_components = array( + 'xprofile' => array( + 'title' => __( 'Extended Profiles', 'buddypress' ), + 'description' => __( 'Customize your community with fully editable profile fields that allow your users to describe themselves.', 'buddypress' ) + ), + 'settings' => array( + 'title' => __( 'Account Settings', 'buddypress' ), + 'description' => __( 'Allow your users to modify their account and notification settings directly from within their profiles.', 'buddypress' ) + ), + 'friends' => array( + 'title' => __( 'Friend Connections', 'buddypress' ), + 'description' => __( 'Let your users make connections so they can track the activity of others and focus on the people they care about the most.', 'buddypress' ) + ), + 'messages' => array( + 'title' => __( 'Private Messaging', 'buddypress' ), + 'description' => __( '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.', 'buddypress' ) + ), + 'activity' => array( + 'title' => __( 'Activity Streams', 'buddypress' ), + 'description' => __( 'Global, personal, and group activity streams with threaded commenting, direct posting, favoriting, and @mentions, all with full RSS feed and email notification support.', 'buddypress' ) + ), + 'notifications' => array( + 'title' => __( 'Notifications', 'buddypress' ), + 'description' => __( 'Notify members of relevant activity with a toolbar bubble and/or via email, and allow them to customize their notification settings.', 'buddypress' ) + ), + 'groups' => array( + 'title' => __( 'User Groups', 'buddypress' ), + 'description' => __( 'Groups allow your users to organize themselves into specific public, private or hidden sections with separate activity streams and member listings.', 'buddypress' ) + ), + 'forums' => array( + 'title' => __( 'Group Forums (Legacy)', 'buddypress' ), + 'description' => __( 'Group forums allow for focused, bulletin-board style conversations.', 'buddypress' ) + ), + 'blogs' => array( + 'title' => __( 'Site Tracking', 'buddypress' ), + 'description' => __( 'Record activity for new posts and comments from your site.', 'buddypress' ) + ) + ); + + // Add blogs tracking if multisite. + if ( is_multisite() ) { + $optional_components['blogs']['description'] = __( 'Record activity for new sites, posts, and comments across your network.', 'buddypress' ); + } + + switch ( $type ) { + case 'required' : + $components = $required_components; + break; + case 'optional' : + $components = $optional_components; + break; + case 'retired' : + $components = $retired_components; + break; + case 'all' : + default : + $components = array_merge( $required_components, $optional_components, $retired_components ); + break; + } + + /** + * Filters the list of component information. + * + * @since 2.6.0 + * + * @param array $components Array of component information. + * @param string $type Type of component list requested. + * Possible values are 'all', 'optional', 'retired', 'required'. + */ + return apply_filters( 'bp_core_get_components', $components, $type ); +} + /** Nav Menu ******************************************************************/ /** @@ -2358,11 +2467,8 @@ function bp_nav_menu_get_loggedin_pages() { return buddypress()->wp_nav_menu_items->loggedin; } - // Pull up a list of items registered in BP's top-level nav array. - $bp_menu_items = buddypress()->bp_nav; - - // Alphabetize. - $bp_menu_items = bp_alpha_sort_by_key( $bp_menu_items, 'name' ); + // Pull up a list of items registered in BP's primary nav for the member. + $bp_menu_items = buddypress()->members->nav->get_primary(); // Some BP nav menu items will not be represented in bp_nav, because // they are not real BP components. We add them manually here. @@ -2490,7 +2596,7 @@ function bp_nav_menu_get_loggedout_pages() { * @since 1.9.0 * * @param string $slug The slug of the nav item: login, register, or one of the - * slugs from buddypress()->bp_nav. + * slugs from the members navigation. * @return string $nav_item_url The URL generated for the current user. */ function bp_nav_menu_get_item_url( $slug ) { @@ -2585,12 +2691,6 @@ function bp_core_get_suggestions( $args ) { * * @since 2.3.0 * - * @uses is_multisite() - * @uses bp_is_root_blog() - * @uses switch_to_blog() - * @uses wp_upload_dir() - * @uses restore_current_blog() - * * @return string */ function bp_upload_dir() { @@ -3242,9 +3342,9 @@ function bp_email_get_schema() { /* translators: do not remove {} brackets or translate its contents. */ 'post_title' => __( '[{{{site.name}}}] Verify your new email address', 'buddypress' ), /* translators: do not remove {} brackets or translate its contents. */ - 'post_content' => __( "You recently changed the email address associated with your account on {{site.name}}. If this is correct, <a href=\"{{{verify.url}}}\">go here to confirm the change</a>.\n\nOtherwise, you can safely ignore and delete this email if you have changed your mind, or if you think you have received this email in error.", 'buddypress' ), + 'post_content' => __( "You recently changed the email address associated with your account on {{site.name}} to {{user.email}}. If this is correct, <a href=\"{{{verify.url}}}\">go here to confirm the change</a>.\n\nOtherwise, you can safely ignore and delete this email if you have changed your mind, or if you think you have received this email in error.", 'buddypress' ), /* translators: do not remove {} brackets or translate its contents. */ - 'post_excerpt' => __( "You recently changed the email address associated with your account on {{site.name}}. If this is correct, go to the following link to confirm the change: {{{verify.url}}}\n\nOtherwise, you can safely ignore and delete this email if you have changed your mind, or if you think you have received this email in error.", 'buddypress' ), + 'post_excerpt' => __( "You recently changed the email address associated with your account on {{site.name}} to {{user.email}}. If this is correct, go to the following link to confirm the change: {{{verify.url}}}\n\nOtherwise, you can safely ignore and delete this email if you have changed your mind, or if you think you have received this email in error.", 'buddypress' ), ), 'groups-membership-request-accepted' => array( /* translators: do not remove {} brackets or translate its contents. */ 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 a5650de8ade67806815674fbbb356d357eae1e13..3ade1e247abc7075459879ae0175e40b53b0bad2 100644 --- a/wp-content/plugins/buddypress/bp-core/bp-core-loader.php +++ b/wp-content/plugins/buddypress/bp-core/bp-core-loader.php @@ -12,7 +12,10 @@ // Exit if accessed directly. defined( 'ABSPATH' ) || exit; -require dirname( __FILE__ ) . '/classes/class-bp-core.php'; +if ( ! buddypress()->do_autoload ) { + require dirname( __FILE__ ) . '/classes/class-bp-component.php'; + require dirname( __FILE__ ) . '/classes/class-bp-core.php'; +} /** * Set up the BuddyPress Core component. diff --git a/wp-content/plugins/buddypress/bp-core/bp-core-moderation.php b/wp-content/plugins/buddypress/bp-core/bp-core-moderation.php index 775f4f51fa48cebd08543ad6fee7831a2389816b..e89f41ee9f8feb1eb6b7e18e92e7d18316d17b11 100644 --- a/wp-content/plugins/buddypress/bp-core/bp-core-moderation.php +++ b/wp-content/plugins/buddypress/bp-core/bp-core-moderation.php @@ -20,11 +20,6 @@ defined( 'ABSPATH' ) || exit; * * @since 1.6.0 * - * @uses current_user_can() To check if the current user can throttle. - * @uses bp_get_option() To get the throttle time. - * @uses get_transient() To get the last posted transient of the ip. - * @uses get_user_meta() To get the last posted meta of the user. - * * @param int $user_id User id to check for flood. * @return bool True if there is no flooding, false if there is. */ @@ -52,17 +47,15 @@ function bp_core_check_for_flood( $user_id = 0 ) { * Check for moderation keys and too many links. * * @since 1.6.0 + * @since 2.6.0 Added $error_type parameter. * - * @uses bp_current_author_ip() To get current user IP address. - * @uses bp_current_author_ua() To get current user agent. - * @uses bp_current_user_can() Allow super admins to bypass blacklist. - * - * @param int $user_id Topic or reply author ID. - * @param string $title The title of the content. - * @param string $content The content being posted. + * @param int $user_id User ID. + * @param string $title The title of the content. + * @param string $content The content being posted. + * @param string $error_type The error type to return. Either 'bool' or 'wp_error'. * @return bool True if test is passed, false if fail. */ -function bp_core_check_for_moderation( $user_id = 0, $title = '', $content = '' ) { +function bp_core_check_for_moderation( $user_id = 0, $title = '', $content = '', $error_type = 'bool' ) { /** * Filters whether or not to bypass checking for moderation keys and too many links. @@ -136,7 +129,11 @@ function bp_core_check_for_moderation( $user_id = 0, $title = '', $content = '' // Das ist zu viele links! if ( $num_links >= $max_links ) { - return false; + if ( 'bool' === $error_type ) { + return false; + } else { + return new WP_Error( 'bp_moderation_too_many_links', __( 'You have posted too many links', 'buddypress' ) ); + } } } @@ -173,9 +170,11 @@ function bp_core_check_for_moderation( $user_id = 0, $title = '', $content = '' // Check each user data for current word. if ( preg_match( $pattern, $post_data ) ) { - - // Post does not pass. - return false; + if ( 'bool' === $error_type ) { + return false; + } else { + return new WP_Error( 'bp_moderation_word_match', _x( 'You have posted an inappropriate word.', 'Comment moderation', 'buddypress' ) ); + } } } } @@ -189,17 +188,17 @@ function bp_core_check_for_moderation( $user_id = 0, $title = '', $content = '' * Check for blocked keys. * * @since 1.6.0 + * @since 2.6.0 Added $error_type parameter. * - * @uses bp_current_author_ip() To get current user IP address. - * @uses bp_current_author_ua() To get current user agent. - * @uses bp_current_user_can() Allow super admins to bypass blacklist. + * @todo Why don't we use wp_blacklist_check() for this? * - * @param int $user_id Topic or reply author ID. - * @param string $title The title of the content. - * @param string $content The content being posted. + * @param int $user_id User ID. + * @param string $title The title of the content. + * @param string $content The content being posted. + * @param string $error_type The error type to return. Either 'bool' or 'wp_error'. * @return bool True if test is passed, false if fail. */ -function bp_core_check_for_blacklist( $user_id = 0, $title = '', $content = '' ) { +function bp_core_check_for_blacklist( $user_id = 0, $title = '', $content = '', $error_type = 'bool' ) { /** * Filters whether or not to bypass checking for blocked keys. @@ -284,9 +283,11 @@ function bp_core_check_for_blacklist( $user_id = 0, $title = '', $content = '' ) // Check each user data for current word. if ( preg_match( $pattern, $post_data ) ) { - - // Post does not pass. - return false; + if ( 'bool' === $error_type ) { + return false; + } else { + return new WP_Error( 'bp_moderation_blacklist_match', _x( 'You have posted an inappropriate word.', 'Comment blacklist', 'buddypress' ) ); + } } } } 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 d04568e8625a0d6b57163dca71a46fdafdf098e7..7a9ba4525747f32bec23f2ca7e628ac3bb5d8846 100644 --- a/wp-content/plugins/buddypress/bp-core/bp-core-options.php +++ b/wp-content/plugins/buddypress/bp-core/bp-core-options.php @@ -126,9 +126,6 @@ function bp_get_default_options() { * * @since 1.6.0 * - * @uses bp_get_default_options() To get default options. - * @uses add_option() Adds default options. - * @uses do_action() Calls 'bp_add_options'. */ function bp_add_options() { @@ -160,9 +157,6 @@ function bp_add_options() { * * @since 1.6.0 * - * @uses bp_get_default_options() To get default options. - * @uses delete_option() Removes default options. - * @uses do_action() Calls 'bp_delete_options'. */ function bp_delete_options() { @@ -191,9 +185,6 @@ function bp_delete_options() { * * @since 1.6.0 * - * @uses bp_get_default_options() To get default options. - * @uses add_filter() To add filters to 'pre_option_{$key}'. - * @uses do_action() Calls 'bp_add_option_filters'. */ function bp_setup_option_filters() { @@ -253,8 +244,6 @@ function bp_pre_get_option( $value = false ) { * * @since 1.2.0 * - * @uses bp_get_root_blog_id() - * * @param string $option_name The option to be retrieved. * @param string $default Optional. Default value to be returned if the option * isn't set. See {@link get_blog_option()}. @@ -298,8 +287,6 @@ function bp_add_option( $option_name, $value ) { * * @since 1.5.0 * - * @uses bp_get_root_blog_id() - * * @param string $option_name The option key to be set. * @param string $value The value to be set. * @return bool True on success, false on failure. @@ -317,8 +304,6 @@ function bp_update_option( $option_name, $value ) { * * @since 1.5.0 * - * @uses bp_get_root_blog_id() - * * @param string $option_name The option key to be deleted. * @return bool True on success, false on failure. */ @@ -529,8 +514,6 @@ function bp_core_get_root_option( $option ) { * * @since 1.6.0 * - * @uses bp_get_option() To get the profile sync option. - * * @param bool $default Optional. Fallback value if not found in the database. * Default: true. * @return bool True if profile sync is enabled, otherwise false. @@ -552,8 +535,6 @@ function bp_disable_profile_sync( $default = false ) { * * @since 1.6.0 * - * @uses bp_get_option() To get the logged out Toolbar option. - * * @param bool $default Optional. Fallback value if not found in the database. * Default: true. * @return bool True if the admin bar should be hidden for logged-out users, @@ -576,8 +557,6 @@ function bp_hide_loggedout_adminbar( $default = true ) { * * @since 1.6.0 * - * @uses bp_get_option() To get the avatar uploads option. - * * @param bool $default Optional. Fallback value if not found in the database. * Default: true. * @return bool True if avatar uploads are disabled, otherwise false. @@ -599,8 +578,6 @@ function bp_disable_avatar_uploads( $default = true ) { * * @since 2.4.0 * - * @uses bp_get_option() To get the cover image uploads option. - * * @param bool $default Optional. Fallback value if not found in the database. * Default: false. * @return bool True if cover image uploads are disabled, otherwise false. @@ -656,8 +633,6 @@ function bp_disable_group_avatar_uploads( $default = null ) { * * @since 2.4.0 * - * @uses bp_get_option() To get the group cover image uploads option. - * * @param bool $default Optional. Fallback value if not found in the database. * Default: false. * @return bool True if group cover image uploads are disabled, otherwise false. @@ -679,8 +654,6 @@ function bp_disable_group_cover_image_uploads( $default = false ) { * * @since 1.6.0 * - * @uses bp_get_option() To get the account deletion option. - * * @param bool $default Optional. Fallback value if not found in the database. * Default: true. * @return bool True if users are able to delete their own accounts, otherwise @@ -704,7 +677,6 @@ function bp_disable_account_deletion( $default = false ) { * @since 1.6.0 * * @todo split and move into blog and forum components. - * @uses bp_get_option() To get the blog/forum comments option. * * @param bool $default Optional. Fallback value if not found in the database. * Default: false. @@ -729,7 +701,6 @@ function bp_disable_blogforum_comments( $default = false ) { * @since 1.6.0 * * @todo Move into groups component. - * @uses bp_get_option() To get the group creation. * * @param bool $default Optional. Fallback value if not found in the database. * Default: true. @@ -752,8 +723,6 @@ function bp_restrict_group_creation( $default = true ) { * * @since 1.6.0 * - * @uses bp_get_option() To get the BuddyBar option. - * * @param bool $default Optional. Fallback value if not found in the database. * Default: true. * @return bool True if the BuddyBar should be forced on, otherwise false. @@ -785,7 +754,6 @@ function bp_group_forums_root_id( $default = '0' ) { * * @since 1.6.0 * - * @uses bp_get_option() To get the root forum ID from the database. * * @param bool|string $default Optional. Default: '0'. * @return int The ID of the group forums root forum. @@ -807,8 +775,6 @@ function bp_group_forums_root_id( $default = '0' ) { * * @since 1.6.0 * - * @uses bp_get_option() To get the group forums option. - * * @param bool $default Optional. Fallback value if not found in the database. * Default: true. * @return bool True if group forums are active, otherwise false. @@ -830,8 +796,6 @@ function bp_is_group_forums_active( $default = true ) { * * @since 1.6.0 * - * @uses bp_get_option() To get the Akismet option. - * * @param bool $default Optional. Fallback value if not found in the database. * Default: true. * @return bool True if Akismet is enabled, otherwise false. @@ -853,8 +817,6 @@ function bp_is_akismet_active( $default = true ) { * * @since 2.0.0 * - * @uses bp_get_option() To get the Heartbeat option. - * * @param bool $default Optional. Fallback value if not found in the database. * Default: true. * @return bool True if Heartbeat refresh is enabled, otherwise false. @@ -876,8 +838,6 @@ function bp_is_activity_heartbeat_active( $default = true ) { * * @since 1.7.0 * - * @uses get_option() To get the theme package option. - * * @param string $default Optional. Fallback value if not found in the database. * Default: 'legacy'. * @return string ID of the theme package. diff --git a/wp-content/plugins/buddypress/bp-core/bp-core-taxonomy.php b/wp-content/plugins/buddypress/bp-core/bp-core-taxonomy.php index bd544b4cd2a002b987edf490520cc001e7e07e3f..fd0139b0e3156412ef7ac87c3a707e979982a19c 100644 --- a/wp-content/plugins/buddypress/bp-core/bp-core-taxonomy.php +++ b/wp-content/plugins/buddypress/bp-core/bp-core-taxonomy.php @@ -44,6 +44,29 @@ function bp_register_default_taxonomies() { } add_action( 'bp_register_taxonomies', 'bp_register_default_taxonomies' ); +/** + * Gets the ID of the site that BP should use for taxonomy term storage. + * + * Defaults to the root blog ID. + * + * @since 2.6.0 + * + * @return int + */ +function bp_get_taxonomy_term_site_id( $taxonomy = '' ) { + $site_id = bp_get_root_blog_id(); + + /** + * Filters the ID of the site where BP should store taxonomy terms. + * + * @since 2.6.0 + * + * @param int $site_id + * @param string $taxonomy + */ + return (int) apply_filters( 'bp_get_taxonomy_term_site_id', $site_id, $taxonomy ); +} + /** * Set taxonomy terms on a BuddyPress object. * @@ -58,16 +81,18 @@ add_action( 'bp_register_taxonomies', 'bp_register_default_taxonomies' ); * @return array Array of term taxonomy IDs. */ function bp_set_object_terms( $object_id, $terms, $taxonomy, $append = false ) { - $is_root_blog = bp_is_root_blog(); + $site_id = bp_get_taxonomy_term_site_id( $taxonomy ); - if ( ! $is_root_blog ) { - switch_to_blog( bp_get_root_blog_id() ); + $switched = false; + if ( $site_id !== get_current_blog_id() ) { + switch_to_blog( $site_id ); bp_register_taxonomies(); + $switched = true; } $retval = wp_set_object_terms( $object_id, $terms, $taxonomy, $append ); - if ( ! $is_root_blog ) { + if ( $switched ) { restore_current_blog(); } @@ -87,17 +112,28 @@ function bp_set_object_terms( $object_id, $terms, $taxonomy, $append = false ) { * @return array */ function bp_get_object_terms( $object_ids, $taxonomies, $args = array() ) { - $is_root_blog = bp_is_root_blog(); - - if ( ! $is_root_blog ) { - switch_to_blog( bp_get_root_blog_id() ); - bp_register_taxonomies(); + // Different taxonomies must be stored on different sites. + $taxonomy_site_map = array(); + foreach ( (array) $taxonomies as $taxonomy ) { + $taxonomy_site_id = bp_get_taxonomy_term_site_id( $taxonomy ); + $taxonomy_site_map[ $taxonomy_site_id ][] = $taxonomy; } - $retval = wp_get_object_terms( $object_ids, $taxonomies, $args ); - - if ( ! $is_root_blog ) { - restore_current_blog(); + $retval = array(); + foreach ( $taxonomy_site_map as $taxonomy_site_id => $site_taxonomies ) { + $switched = false; + if ( $taxonomy_site_id !== get_current_blog_id() ) { + switch_to_blog( $taxonomy_site_id ); + bp_register_taxonomies(); + $switched = true; + } + + $site_terms = wp_get_object_terms( $object_ids, $site_taxonomies, $args ); + $retval = array_merge( $retval, $site_terms ); + + if ( $switched ) { + restore_current_blog(); + } } return $retval; @@ -116,16 +152,18 @@ function bp_get_object_terms( $object_ids, $taxonomies, $args = array() ) { * @return bool|WP_Error True on success, false or WP_Error on failure. */ function bp_remove_object_terms( $object_id, $terms, $taxonomy ) { - $is_root_blog = bp_is_root_blog(); + $site_id = bp_get_taxonomy_term_site_id( $taxonomy ); - if ( ! $is_root_blog ) { - switch_to_blog( bp_get_root_blog_id() ); + $switched = false; + if ( $site_id !== get_current_blog_id() ) { + switch_to_blog( $site_id ); bp_register_taxonomies(); + $switched = true; } $retval = wp_remove_object_terms( $object_id, $terms, $taxonomy ); - if ( ! $is_root_blog ) { + if ( $switched ) { restore_current_blog(); } 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 87e2710e422354d95cd0d2d7d409cb44c1fd1aa2..c6aba79d57324ce9bb145fa7804d0162f7aeae0f 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 @@ -19,10 +19,6 @@ defined( 'ABSPATH' ) || exit; * * @since 1.7.0 * - * @uses bp_locate_template() - * @uses load_template() - * @uses get_template_part() - * * @param string $slug Template part slug. Used to generate filenames, * eg 'friends' for 'friends.php'. * @param string|null $name Optional. Template part name. Used to generate @@ -65,6 +61,20 @@ function bp_get_template_part( $slug, $name = null ) { return bp_locate_template( $templates, true, false ); } +/** + * Get an asset template part. + * + * Basically the same as {@link bp_get_template_part()}, but with 'assets/' + * prepended to the slug. + * + * @since 2.6.0 + * + * @see bp_get_template_part() for full documentation. + */ +function bp_get_asset_template_part( $slug, $name = null ) { + return bp_get_template_part( "assets/{$slug}", $name ); +} + /** * Retrieve the name of the highest priority template file that exists. * @@ -123,10 +133,6 @@ function bp_locate_template( $template_names, $load = false, $require_once = tru */ do_action( 'bp_locate_template', $located, $template_name, $template_names, $template_locations, $load, $require_once ); - // Maybe load the template if one was located. - $use_themes = defined( 'WP_USE_THEMES' ) && WP_USE_THEMES; - $doing_ajax = defined( 'DOING_AJAX' ) && DOING_AJAX; - /** * Filter here to allow/disallow template loading. * @@ -134,15 +140,58 @@ function bp_locate_template( $template_names, $load = false, $require_once = tru * * @param bool $value True to load the template, false otherwise. */ - $load_template = (bool) apply_filters( 'bp_locate_template_and_load', $use_themes || $doing_ajax ); + $load_template = (bool) apply_filters( 'bp_locate_template_and_load', true ); - if ( $load_template && ( true == $load ) && ! empty( $located ) ) { + if ( $load_template && $load && ! empty( $located ) ) { load_template( $located, $require_once ); } return $located; } +/** + * Get file data of the highest priority asset that exists. + * + * Similar to {@link bp_locate_template()}, but for files like CSS and JS. + * + * @since 2.6.0 + * + * @param string Relative filename to search for. + * @return array|bool Array of asset data if one is located (includes absolute filepath and URI). + * Boolean false on failure. + */ +function bp_locate_template_asset( $filename ) { + // Ensure assets can be located when running from /src/. + if ( defined( 'BP_SOURCE_SUBDIRECTORY' ) && 'src' === BP_SOURCE_SUBDIRECTORY ) { + $filename = str_replace( '.min', '', $filename ); + } + + // Use bp_locate_template() to find our asset. + $located = bp_locate_template( $filename, false ); + if ( false === $located ) { + return false; + } + + // Set up data array. + $data = array(); + $data['file'] = $data['uri'] = $located; + + $find = array( + get_theme_root(), + bp_get_theme_compat_dir() + ); + + $replace = array( + get_theme_root_uri(), + bp_get_theme_compat_url() + ); + + // Make sure URI path is relative to site URL. + $data['uri'] = str_replace( $find, $replace, $data['uri'] ); + + return $data; +} + /** * Register a new template stack location. * @@ -303,10 +352,6 @@ function bp_buffer_template_part( $slug, $name = null, $echo = true ) { * * @since 1.7.0 * - * @uses bp_set_theme_compat_templates() - * @uses bp_locate_template() - * @uses bp_set_theme_compat_template() - * * @param string $type Filename without extension. * @param array $templates An optional list of template candidates. * @return string Full path to file. @@ -517,7 +562,6 @@ function bp_is_template_included() { * @since 1.7.0 * * @global string $pagenow - * @uses bp_locate_template() */ function bp_load_theme_functions() { global $pagenow, $wp_query; 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 1f2c5e94b3876ec29de1d2068c0fe03f07ab8797..0755af83eb737848205ed49808727fc7fd91bd1f 100644 --- a/wp-content/plugins/buddypress/bp-core/bp-core-template.php +++ b/wp-content/plugins/buddypress/bp-core/bp-core-template.php @@ -13,7 +13,7 @@ defined( 'ABSPATH' ) || exit; /** * Output the "options nav", the secondary-level single item navigation menu. * - * Uses the $bp->bp_options_nav global to render out the sub navigation for the + * Uses the component's nav global to render out the sub navigation for the * current component. Each component adds to its sub navigation array within * its own setup_nav() function. * @@ -26,7 +26,6 @@ defined( 'ABSPATH' ) || exit; * * @since 1.0.0 * - * @uses bp_get_user_nav() Renders the navigation for a profile of a currently * viewed user. * * @param string $parent_slug Options nav slug. @@ -40,35 +39,50 @@ function bp_get_options_nav( $parent_slug = '' ) { $component_index = !empty( $bp->displayed_user ) ? bp_current_component() : bp_get_root_slug( bp_current_component() ); $selected_item = bp_current_action(); + // Default to the Members nav. if ( ! bp_is_single_item() ) { - if ( !isset( $bp->bp_options_nav[$component_index] ) || count( $bp->bp_options_nav[$component_index] ) < 1 ) { + // Set the parent slug, if not provided. + if ( empty( $parent_slug ) ) { + $parent_slug = $component_index; + } + + $secondary_nav_items = $bp->members->nav->get_secondary( array( 'parent_slug' => $parent_slug ) ); + + if ( ! $secondary_nav_items ) { return false; - } else { - $the_index = $component_index; } + + // For a single item, try to use the component's nav. } else { $current_item = bp_current_item(); + $single_item_component = bp_current_component(); + // Adjust the selected nav item for the current single item if needed. if ( ! empty( $parent_slug ) ) { $current_item = $parent_slug; $selected_item = bp_action_variable( 0 ); } - if ( !isset( $bp->bp_options_nav[$current_item] ) || count( $bp->bp_options_nav[$current_item] ) < 1 ) { - return false; + // If the nav is not defined by the parent component, look in the Members nav. + if ( ! isset( $bp->{$single_item_component}->nav ) ) { + $secondary_nav_items = $bp->members->nav->get_secondary( array( 'parent_slug' => $current_item ) ); } else { - $the_index = $current_item; + $secondary_nav_items = $bp->{$single_item_component}->nav->get_secondary( array( 'parent_slug' => $current_item ) ); + } + + if ( ! $secondary_nav_items ) { + return false; } } // Loop through each navigation item. - foreach ( (array) $bp->bp_options_nav[$the_index] as $subnav_item ) { - if ( empty( $subnav_item['user_has_access'] ) ) { + foreach ( $secondary_nav_items as $subnav_item ) { + if ( empty( $subnav_item->user_has_access ) ) { continue; } // If the current action or an action variable matches the nav item id, then add a highlight CSS class. - if ( $subnav_item['slug'] == $selected_item ) { + if ( $subnav_item->slug === $selected_item ) { $selected = ' class="current selected"'; } else { $selected = ''; @@ -88,7 +102,7 @@ function bp_get_options_nav( $parent_slug = '' ) { * @param array $subnav_item Submenu array item being displayed. * @param string $selected_item Current action. */ - echo apply_filters( 'bp_get_options_nav_' . $subnav_item['css_id'], '<li id="' . esc_attr( $subnav_item['css_id'] . '-' . $list_type . '-li' ) . '" ' . $selected . '><a id="' . esc_attr( $subnav_item['css_id'] ) . '" href="' . esc_url( $subnav_item['link'] ) . '">' . $subnav_item['name'] . '</a></li>', $subnav_item, $selected_item ); + echo apply_filters( 'bp_get_options_nav_' . $subnav_item->css_id, '<li id="' . esc_attr( $subnav_item->css_id . '-' . $list_type . '-li' ) . '" ' . $selected . '><a id="' . esc_attr( $subnav_item->css_id ) . '" href="' . esc_url( $subnav_item->link ) . '">' . $subnav_item->name . '</a></li>', $subnav_item, $selected_item ); } } @@ -769,14 +783,8 @@ function bp_button( $args = '' ) { * This function is borrowed from CakePHP v2.0, under the MIT license. See * http://book.cakephp.org/view/1469/Text#truncate-1625 * - * ### Options: - * - * - `ending` Will be used as Ending and appended to the trimmed string. - * - `exact` If false, $text will not be cut mid-word. - * - `html` If true, HTML tags would be handled correctly. - * - `filter_shortcodes` If true, shortcodes will be stripped before truncating. - * * @since 1.0.0 + * @since 2.6.0 Added 'strip_tags' and 'remove_links' as $options args. * * @param string $text String to truncate. * @param int $length Optional. Length of returned string, including ellipsis. @@ -791,6 +799,10 @@ function bp_button( $args = '' ) { * excerpt length. Default: true. * @type bool $filter_shortcodes If true, shortcodes will be stripped. * Default: true. + * @type bool $strip_tags If true, HTML tags will be stripped. Default: false. + * Only applicable if $html is set to false. + * @type bool $remove_links If true, URLs will be stripped. Default: false. + * Only applicable if $html is set to false. * } * @return string Trimmed string. */ @@ -803,7 +815,9 @@ function bp_create_excerpt( $text, $length = 225, $options = array() ) { 'ending' => __( ' […]', 'buddypress' ), 'exact' => false, 'html' => true, - 'filter_shortcodes' => $filter_shortcodes_default + 'filter_shortcodes' => $filter_shortcodes_default, + 'strip_tags' => false, + 'remove_links' => false, ), 'create_excerpt' ); // Save the original text, to be passed along to the filter. @@ -889,8 +903,28 @@ function bp_create_excerpt( $text, $length = 225, $options = array() ) { } } } else { + // Strip HTML tags if necessary. + if ( ! empty( $r['strip_tags'] ) ) { + $text = strip_tags( $text ); + } + + // Remove links if necessary. + if ( ! empty( $r['remove_links'] ) ) { + $text = preg_replace( '#^\s*(https?://[^\s"]+)\s*$#im', '', $text ); + } + if ( mb_strlen( $text ) <= $length ) { - return $text; + /** + * Filters the final generated excerpt. + * + * @since 1.1.0 + * + * @param string $truncate Generated excerpt. + * @param string $original_text Original text provided. + * @param int $length Length of returned string, including ellipsis. + * @param array $options Array of HTML attributes and options. + */ + return apply_filters( 'bp_create_excerpt', $text, $original_text, $length, $options ); } else { $truncate = mb_substr( $text, 0, $length - mb_strlen( $ending ) ); } @@ -971,16 +1005,7 @@ function bp_create_excerpt( $text, $length = 225, $options = array() ) { } } - /** - * Filters the final generated excerpt. - * - * @since 1.1.0 - * - * @param string $truncate Generated excerpt. - * @param string $original_text Original text provided. - * @param int $length Length of returned string, including ellipsis. - * @param array $options Array of HTML attributes and options. - */ + /** This filter is documented in /bp-core/bp-core-template.php */ return apply_filters( 'bp_create_excerpt', $truncate, $original_text, $length, $options ); } add_filter( 'bp_create_excerpt', 'stripslashes_deep' ); @@ -1468,7 +1493,6 @@ function bp_user_has_access() { * * @since 1.5.0 * - * @uses bp_get_search_slug() */ function bp_search_slug() { echo bp_get_search_slug(); @@ -1497,8 +1521,6 @@ function bp_search_slug() { * * @since 1.0.0 * - * @uses apply_filters() Filter 'bp_displayed_user_id' to change this value. - * * @return int $id ID of the currently displayed user. */ function bp_displayed_user_id() { @@ -1522,8 +1544,6 @@ function bp_displayed_user_id() { * * @since 1.0.0 * - * @uses apply_filters() Filter 'bp_loggedin_user_id' to change this value. - * * @return int ID of the logged-in user. */ function bp_loggedin_user_id() { @@ -2255,6 +2275,19 @@ function bp_is_user() { return (bool) bp_displayed_user_id(); } +/** + * Is the current page a user custom front page? + * + * Will return true anytime there is a custom front page for the displayed user. + * + * @since 2.6.0 + * + * @return bool True if the current page is a user custom front page. + */ +function bp_is_user_front() { + return (bool) ( bp_is_user() && bp_is_current_component( 'front' ) ); +} + /** * Is the current page a user's activity stream page? * @@ -3010,24 +3043,36 @@ function bp_get_title_parts( $seplocation = 'right' ) { // Set empty subnav name. $component_subnav_name = ''; + if ( ! empty( $bp->members->nav ) ) { + $primary_nav_item = $bp->members->nav->get_primary( array( 'slug' => $component_id ), false ); + $primary_nav_item = reset( $primary_nav_item ); + } + // Use the component nav name. - if ( ! empty( $bp->bp_nav[$component_id] ) ) { - $component_name = _bp_strip_spans_from_title( $bp->bp_nav[ $component_id ]['name'] ); + if ( ! empty( $primary_nav_item->name ) ) { + $component_name = _bp_strip_spans_from_title( $primary_nav_item->name ); // Fall back on the component ID. } elseif ( ! empty( $bp->{$component_id}->id ) ) { $component_name = ucwords( $bp->{$component_id}->id ); } - // Append action name if we're on a member component sub-page. - if ( ! empty( $bp->bp_options_nav[ $component_id ] ) && ! empty( $bp->canonical_stack['action'] ) ) { - $component_subnav_name = wp_filter_object_list( $bp->bp_options_nav[ $component_id ], array( 'slug' => bp_current_action() ), 'and', 'name' ); + if ( ! empty( $bp->members->nav ) ) { + $secondary_nav_item = $bp->members->nav->get_secondary( array( + 'parent_slug' => $component_id, + 'slug' => bp_current_action() + ), false ); - if ( ! empty( $component_subnav_name ) ) { - $component_subnav_name = array_shift( $component_subnav_name ); + if ( $secondary_nav_item ) { + $secondary_nav_item = reset( $secondary_nav_item ); } } + // Append action name if we're on a member component sub-page. + if ( ! empty( $secondary_nav_item->name ) && ! empty( $bp->canonical_stack['action'] ) ) { + $component_subnav_name = $secondary_nav_item->name; + } + // If on the user profile's landing page, just use the fullname. if ( bp_is_current_component( $bp->default_component ) && ( bp_get_requested_url() === bp_displayed_user_domain() ) ) { $bp_title_parts[] = $displayed_user_name; @@ -3045,14 +3090,28 @@ function bp_get_title_parts( $seplocation = 'right' ) { } } - // A single group. - } elseif ( bp_is_active( 'groups' ) && ! empty( $bp->groups->current_group ) && ! empty( $bp->bp_options_nav[ $bp->groups->current_group->slug ] ) ) { - $subnav = isset( $bp->bp_options_nav[ $bp->groups->current_group->slug ][ bp_current_action() ]['name'] ) ? $bp->bp_options_nav[ $bp->groups->current_group->slug ][ bp_current_action() ]['name'] : ''; - $bp_title_parts = array( $bp->bp_options_title, $subnav ); - - // A single item from a component other than groups. + // A single item from a component other than Members. } elseif ( bp_is_single_item() ) { - $bp_title_parts = array( $bp->bp_options_title, $bp->bp_options_nav[ bp_current_item() ][ bp_current_action() ]['name'] ); + $component_id = bp_current_component(); + + if ( ! empty( $bp->{$component_id}->nav ) ) { + $secondary_nav_item = $bp->{$component_id}->nav->get_secondary( array( + 'parent_slug' => bp_current_item(), + 'slug' => bp_current_action() + ), false ); + + if ( $secondary_nav_item ) { + $secondary_nav_item = reset( $secondary_nav_item ); + } + } + + $single_item_subnav = ''; + + if ( ! empty( $secondary_nav_item->name ) ) { + $single_item_subnav = $secondary_nav_item->name; + } + + $bp_title_parts = array( $bp->bp_options_title, $single_item_subnav ); // An index or directory. } elseif ( bp_is_directory() ) { @@ -3428,79 +3487,58 @@ function _bp_nav_menu_sort( $a, $b ) { * Get the items registered in the primary and secondary BuddyPress navigation menus. * * @since 1.7.0 + * @since 2.6.0 Introduced the `$component` parameter. * + * @param string $component Optional. Component whose nav items are being fetched. * @return array A multidimensional array of all navigation items. */ -function bp_get_nav_menu_items() { - $menus = $selected_menus = array(); - - // Get the second level menus. - foreach ( (array) buddypress()->bp_options_nav as $parent_menu => $sub_menus ) { - - // The root menu's ID is "xprofile", but the Profile submenus are using "profile". See BP_Core::setup_nav(). - if ( 'profile' === $parent_menu ) { - $parent_menu = 'xprofile'; - } - - // Sort the items in this menu's navigation by their position property. - $second_level_menus = (array) $sub_menus; - usort( $second_level_menus, '_bp_nav_menu_sort' ); +function bp_get_nav_menu_items( $component = 'members' ) { + $bp = buddypress(); + $menus = array(); - // Iterate through the second level menus. - foreach( $second_level_menus as $sub_nav ) { - - // Skip items we don't have access to. - if ( empty( $sub_nav['user_has_access'] ) ) { - continue; - } - - // Add this menu. - $menu = new stdClass; - $menu->class = array( 'menu-child' ); - $menu->css_id = $sub_nav['css_id']; - $menu->link = $sub_nav['link']; - $menu->name = $sub_nav['name']; - $menu->parent = $parent_menu; // Associate this sub nav with a top-level menu. - - // If we're viewing this item's screen, record that we need to mark its parent menu to be selected. - if ( $sub_nav['slug'] == bp_current_action() ) { - $menu->class[] = 'current-menu-item'; - $selected_menus[] = $parent_menu; - } - - $menus[] = $menu; - } + if ( ! isset( $bp->{$component}->nav ) ) { + return $menus; } - // Get the top-level menu parts (Friends, Groups, etc) and sort by their position property. - $top_level_menus = (array) buddypress()->bp_nav; - usort( $top_level_menus, '_bp_nav_menu_sort' ); - - // Iterate through the top-level menus. - foreach ( $top_level_menus as $nav ) { - - // Skip items marked as user-specific if you're not on your own profile. - if ( empty( $nav['show_for_displayed_user'] ) && ! bp_core_can_edit_settings() ) { - continue; - } - + // Get the item nav and build the menus. + foreach ( $bp->{$component}->nav->get_item_nav() as $nav_menu ) { // Get the correct menu link. See https://buddypress.trac.wordpress.org/ticket/4624. - $link = bp_loggedin_user_domain() ? str_replace( bp_loggedin_user_domain(), bp_displayed_user_domain(), $nav['link'] ) : trailingslashit( bp_displayed_user_domain() . $nav['link'] ); + $link = bp_loggedin_user_domain() ? str_replace( bp_loggedin_user_domain(), bp_displayed_user_domain(), $nav_menu->link ) : trailingslashit( bp_displayed_user_domain() . $nav_menu->link ); // Add this menu. $menu = new stdClass; $menu->class = array( 'menu-parent' ); - $menu->css_id = $nav['css_id']; + $menu->css_id = $nav_menu->css_id; $menu->link = $link; - $menu->name = $nav['name']; + $menu->name = $nav_menu->name; $menu->parent = 0; - // Check if we need to mark this menu as selected. - if ( in_array( $nav['css_id'], $selected_menus ) ) { - $menu->class[] = 'current-menu-parent'; + if ( ! empty( $nav_menu->children ) ) { + $submenus = array(); + + foreach( $nav_menu->children as $sub_menu ) { + $submenu = new stdClass; + $submenu->class = array( 'menu-child' ); + $submenu->css_id = $sub_menu->css_id; + $submenu->link = $sub_menu->link; + $submenu->name = $sub_menu->name; + $submenu->parent = $nav_menu->slug; + + // If we're viewing this item's screen, record that we need to mark its parent menu to be selected. + if ( $sub_menu->slug == bp_current_action() ) { + $menu->class[] = 'current-menu-parent'; + $submenu->class[] = 'current-menu-item'; + } + + $submenus[] = $submenu; + } } $menus[] = $menu; + + if ( ! empty( $submenus ) ) { + $menus = array_merge( $menus, $submenus ); + } } /** 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 bf69b11335fc7dcebdb6527d4d5ee0c1c4a403f5..6a1e36bda58c622ac7f736cc1cb25fabfcde06e3 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 @@ -24,7 +24,9 @@ defined( 'ABSPATH' ) || exit; /** Base Class ****************************************************************/ -require dirname( __FILE__ ) . '/classes/class-bp-theme-compat.php'; +if ( ! buddypress()->do_autoload ) { + require dirname( __FILE__ ) . '/classes/class-bp-theme-compat.php'; +} /** Functions *****************************************************************/ @@ -55,8 +57,6 @@ function bp_setup_theme_compat( $theme = '' ) { * * @since 1.7.0 * - * @uses apply_filters() - * * @return string ID of the theme package in use. */ function bp_get_theme_compat_id() { @@ -79,8 +79,6 @@ function bp_get_theme_compat_id() { * * @since 1.7.0 * - * @uses apply_filters() - * * @return string Name of the theme package currently in use. */ function bp_get_theme_compat_name() { @@ -103,8 +101,6 @@ function bp_get_theme_compat_name() { * * @since 1.7.0 * - * @uses apply_filters() - * * @return string The version string of the theme package currently in use. */ function bp_get_theme_compat_version() { @@ -127,8 +123,6 @@ function bp_get_theme_compat_version() { * * @since 1.7.0 * - * @uses apply_filters() - * * @return string The absolute path of the theme package currently in use. */ function bp_get_theme_compat_dir() { @@ -152,8 +146,6 @@ function bp_get_theme_compat_dir() { * * @since 1.7.0 * - * @uses apply_filters() - * * @return string URL of the theme package currently in use. */ function bp_get_theme_compat_url() { @@ -176,8 +168,6 @@ function bp_get_theme_compat_url() { * * @since 1.9.0 * - * @uses bp_detect_theme_compat_with_current_theme() - * * @return bool True if the current theme needs theme compatibility. */ function bp_use_theme_compat_with_current_theme() { @@ -676,28 +666,14 @@ function bp_theme_compat_reset_post( $args = array() ) { * * @since 1.7.0 * - * @uses bp_is_single_user() To check if page is single user. - * @uses bp_get_single_user_template() To get user template. - * @uses bp_is_single_user_edit() To check if page is single user edit. - * @uses bp_get_single_user_edit_template() To get user edit template. - * @uses bp_is_single_view() To check if page is single view. - * @uses bp_get_single_view_template() To get view template. - * @uses bp_is_forum_edit() To check if page is forum edit. - * @uses bp_get_forum_edit_template() To get forum edit template. - * @uses bp_is_topic_merge() To check if page is topic merge. - * @uses bp_get_topic_merge_template() To get topic merge template. - * @uses bp_is_topic_split() To check if page is topic split. - * @uses bp_get_topic_split_template() To get topic split template. - * @uses bp_is_topic_edit() To check if page is topic edit. - * @uses bp_get_topic_edit_template() To get topic edit template. - * @uses bp_is_reply_edit() To check if page is reply edit. - * @uses bp_get_reply_edit_template() To get reply edit template. - * @uses bp_set_theme_compat_template() To set the global theme compat template. - * * @param string $template Template name. * @return string $template Template name. */ function bp_template_include_theme_compat( $template = '' ) { + // If embed template, bail. + if ( true === function_exists( 'is_embed' ) && is_embed() ) { + return $template; + } // If the current theme doesn't need theme compat, bail at this point. if ( ! bp_use_theme_compat_with_current_theme() ) { 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 7fbdd30807e459604bf32d31e4de6fb66cd1132e..081b1fffb34a72ef21131d9989cf11b372118ec4 100644 --- a/wp-content/plugins/buddypress/bp-core/bp-core-update.php +++ b/wp-content/plugins/buddypress/bp-core/bp-core-update.php @@ -17,9 +17,6 @@ defined( 'ABSPATH' ) || exit; * * @since 1.7.0 * - * @uses get_option() - * @uses bp_get_db_version() To get BuddyPress's database version. - * * @return bool True if this is a fresh BP install, otherwise false. */ function bp_is_install() { @@ -35,9 +32,6 @@ function bp_is_install() { * * @since 1.6.0 * - * @uses get_option() - * @uses bp_get_db_version() To get BuddyPress's database version. - * * @return bool True if update, otherwise false. */ function bp_is_update() { @@ -58,8 +52,6 @@ function bp_is_update() { * * @since 1.6.0 * - * @uses buddypress() - * * @param string $basename BuddyPress basename. * @return bool True if activating BuddyPress, false if not. */ @@ -104,8 +96,6 @@ function bp_is_activation( $basename = '' ) { * * @since 1.6.0 * - * @uses buddypress() - * * @param string $basename BuddyPress basename. * @return bool True if deactivating BuddyPress, false if not. */ @@ -150,8 +140,6 @@ function bp_is_deactivation( $basename = '' ) { * * @since 1.6.0 * - * @uses bp_get_db_version() To get BuddyPress's database version. - * @uses bp_update_option() To update BuddyPress's database version. */ function bp_version_bump() { bp_update_option( '_bp_db_version', bp_get_db_version() ); @@ -519,7 +507,6 @@ function bp_update_to_2_5() { * @since 2.2.0 * * @global $wpdb - * @uses buddypress() */ function bp_migrate_new_member_activity_component() { global $wpdb; @@ -553,7 +540,6 @@ function bp_migrate_new_member_activity_component() { * * @since 2.2.0 * - * @uses bp_activity_delete() to delete the corresponding friendship activities. */ function bp_cleanup_friendship_activities() { bp_activity_delete( array( @@ -570,7 +556,6 @@ function bp_cleanup_friendship_activities() { * * @internal Used internally to redirect BuddyPress to the about page on activation. * - * @uses set_transient() To drop the activation transient for 30 seconds. */ function bp_add_activation_redirect() { @@ -640,7 +625,6 @@ function bp_core_maybe_install_signups() { * * @since 1.6.0 * - * @uses do_action() Calls 'bp_activation' hook. */ function bp_activation() { @@ -670,7 +654,6 @@ function bp_activation() { * * @since 1.6.0 * - * @uses do_action() Calls 'bp_deactivation' hook. */ function bp_deactivation() { @@ -705,7 +688,6 @@ function bp_deactivation() { * * @since 1.6.0 * - * @uses do_action() Calls 'bp_uninstall' hook. */ function bp_uninstall() { 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 6088747496f244a652d2541b8aab6d14360ffbee..14e5fb9f33ed0c35d49a1acf20c8f624085eaffb 100644 --- a/wp-content/plugins/buddypress/bp-core/bp-core-widgets.php +++ b/wp-content/plugins/buddypress/bp-core/bp-core-widgets.php @@ -10,7 +10,9 @@ // Exit if accessed directly. defined( 'ABSPATH' ) || exit; -require dirname( __FILE__ ) . '/classes/class-bp-core-login-widget.php'; +if ( ! buddypress()->do_autoload ) { + require dirname( __FILE__ ) . '/classes/class-bp-core-login-widget.php'; +} /** * Register bp-core 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 a989439118bb0b235719e6623389081a8e91f622..3971c8c0d62e5547890ea0621c500999df422e14 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 @@ -82,9 +82,6 @@ class BP_Admin { * * @since 1.6.0 * - * @uses BP_Admin::setup_globals() Setup the globals needed. - * @uses BP_Admin::includes() Include the required files. - * @uses BP_Admin::setup_actions() Setup the hooks and actions. */ public function __construct() { $this->setup_globals(); @@ -120,7 +117,10 @@ class BP_Admin { * @since 1.6.0 */ private function includes() { - require( $this->admin_dir . 'bp-core-admin-classes.php' ); + 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' ); @@ -134,8 +134,6 @@ class BP_Admin { * * @since 1.6.0 * - * @uses add_action() To add various actions. - * @uses add_filter() To add various filters. */ private function setup_actions() { @@ -171,6 +169,10 @@ class BP_Admin { // On non-multisite, catch. add_action( 'load-users.php', 'bp_core_admin_user_manage_spammers' ); + // Emails. + add_filter( 'manage_' . bp_get_email_post_type() . '_posts_columns', array( $this, 'emails_register_situation_column' ) ); + add_action( 'manage_' . bp_get_email_post_type() . '_posts_custom_column', array( $this, 'emails_display_situation_column_data' ), 10, 2 ); + /* Filters ***********************************************************/ // Add link to settings page. @@ -192,8 +194,6 @@ class BP_Admin { * * @since 1.6.0 * - * @uses add_management_page() To add the Recount page in Tools section. - * @uses add_options_page() To add the Forums settings page in Settings * section. */ public function admin_menus() { @@ -374,9 +374,6 @@ class BP_Admin { * * @since 1.6.0 * - * @uses add_settings_section() To add our own settings section. - * @uses add_settings_field() To add various settings fields. - * @uses register_setting() To register various settings. */ public function register_admin_settings() { @@ -555,6 +552,11 @@ 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"> @@ -612,15 +614,28 @@ class BP_Admin { <?php endif; ?> - <div class="headline-feature"> - <h3 class="headline-title"><?php esc_html_e( 'Customizable BuddyPress Emails', 'buddypress' ); ?></h3> + <div class="bp-headline-feature"> + <h3 class="headline-title"><?php esc_html_e( 'Activity Embeds', 'buddypress' ); ?></h3> - <div class="featured-image"> - <img src="<?php echo esc_url( buddypress()->plugin_url . 'bp-core/admin/images/bp-emails-feature.png' ); ?>" alt="<?php esc_html_e( 'Change colors of the email template using the Customizer.', 'buddypress' ); ?>"> - </div> + <?php if ( $embedded_activity ) : + wp_enqueue_script( 'wp-embed' ); + ?> + <div class="embed-container"> + <?php echo $embedded_activity ; ?> + </div> + + <?php else : ?> + + <div class="featured-image"> + <a href="http://wordpress.tv/2016/06/15/buddypress-2-6-introducing-buddypress-activity-embeds/" title="<?php esc_attr_e( 'View the Activity Embeds demo', 'buddypress' ); ?>"> + <img src="<?php echo esc_url( buddypress()->plugin_url . 'bp-core/admin/images/activity-embeds.png' ); ?>" alt="<?php esc_attr_e( 'Embed activities into your WordPress posts or pages.', 'buddypress' ); ?>"> + </a> + </div> + + <?php endif ; ?> - <p class="introduction"><?php _e( 'Keep your users coming back with beautiful and flexible email notifications.', 'buddypress' ); ?> </p> - <p><?php _e( 'Edit the content of your emails, create new email templates, or change the design of the template in the Customizer. These are just a few of the customizations you can make to engage your users and increase their participation in your community with the new email features.', 'buddypress' ); ?> <a href="https://codex.buddypress.org/emails/"><?php esc_html_e( 'Learn more →', 'buddypress' ); ?></a></p> + <p class="introduction"><?php _e( 'Embed activities into your WordPress posts or pages.', 'buddypress' ); ?> </p> + <p><?php _e( 'Copy the permalink URL of the activity of your choice, paste it into the content editor of your WordPress post or page, and <em>voilà</em>!, you've embedded an activity update.', 'buddypress' ); ?> <a href="http://wordpress.tv/2016/06/15/buddypress-2-6-introducing-buddypress-activity-embeds/"><?php esc_html_e( 'View the Activity Embeds demo', 'buddypress' ); ?></a></p> <div class="clear"></div> </div> @@ -628,50 +643,49 @@ class BP_Admin { <hr /> <div class="bp-features-section"> + <h3 class="headline-title"><?php esc_html_e( 'Features', 'buddypress' ); ?></h3> - <div class="feature-section two-col"> - <div> - <h3 class="feature-title"><?php esc_html_e( 'Post Type Comments Tracking', 'buddypress' ); ?></h3> - <img src="<?php echo esc_url( buddypress()->plugin_url . 'bp-core/admin/images/post-type.png' ); ?>" alt="<?php esc_attr_e( 'Registered post types', 'buddypress' ); ?>"> - <p><?php esc_html_e( 'New Activity functions help you track post type comments in sync with the Blogs component when activated.', 'buddypress' ); ?></p> - </div> - <div class="last-feature"> - <h3 class="feature-title"><?php esc_html_e( 'Twenty Twelve Companion Stylesheet', 'buddypress' ); ?></h3> - <img src="<?php echo esc_url( buddypress()->plugin_url . 'bp-core/admin/images/twentytwelve.png' ); ?>" alt="<?php esc_attr_e( 'BuddyPress styles Twenty Twelve', 'buddypress' ); ?>"> - <p><?php esc_html_e( 'BuddyPress components never looked so fine as they do now in the Twenty Twelve theme.', 'buddypress' ); ?></p> - </div> + <div class="bp-feature"> + <h4 class="feature-title"><?php esc_html_e( 'Custom Front Page for Member Profile ', 'buddypress' ); ?></h4> + <img src="<?php echo esc_url( buddypress()->plugin_url . 'bp-core/admin/images/user-frontpage.png' ); ?>" alt="<?php esc_attr_e( 'A member custom front page using widgets.', 'buddypress' ); ?>"> + <p><?php _e( 'Theme developers or site owners can create custom front pages for their community's members by adding a <code>front.php</code> template to their template overrides. A specific template hierarchy is also available to make them even more unique.', 'buddypress' ); ?> <a href="https://bpdevel.wordpress.com/2016/05/24/custom-front-pages-for-your-users-profiles/"><?php esc_html_e( 'Read all about this new feature.', 'buddypress' ); ?></a></p> </div> - <div class="feature-section two-col"> - <div> - <h3 class="feature-title"><?php esc_html_e( 'Support for Emojis', 'buddypress' ); ?></h3> - <img src="<?php echo esc_url( buddypress()->plugin_url . 'bp-core/admin/images/emoji-feature.png' ); ?>" alt="<?php esc_attr_e( 'Fun with Emojies', 'buddypress' ); ?>"> - <p><?php esc_html_e( 'Have fun and be merry! You can now use Emojis in activity updates, messages, and group descriptions.', 'buddypress' ); ?></p> + <div class="bp-feature opposite"> + <h4 class="feature-title"><?php esc_html_e( 'Group Types API', 'buddypress' ); ?></h4> + <img src="<?php echo esc_url( buddypress()->plugin_url . 'bp-core/admin/images/group-type-pop.png' ); ?>" alt="<?php esc_attr_e( 'Group types metabox in Groups admin page.', 'buddypress' ); ?>"> + <p><?php esc_html_e( 'Registering group types finally enables a strict separation of different and explicit types of groups. This new feature is available to plugin developers starting with BuddyPress 2.6.', 'buddypress' ); ?> <a href="https://codex.buddypress.org/developer/group-types/"><?php esc_html_e( 'Learn how to set up Group Types.', 'buddypress' ); ?></a></p> + </div> - </div> - <div class="last-feature"> - <h3 class="feature-title"><?php esc_html_e( 'Autolink Settings for Profile Fields', 'buddypress' ); ?></h3> - <img src="<?php echo esc_url( buddypress()->plugin_url . 'bp-core/admin/images/autolink-feature.png' ); ?>" alt="<?php esc_attr_e( 'Autolink settings in the profile fields panel', 'buddypress' ); ?>"> - <p><?php _e( 'Administrators can enable or disable autolink settings for each new profile field type.', 'buddypress' ); ?></p> - </div> + <div class="bp-feature"> + <h4 class="feature-title"><?php esc_html_e( 'New Navigation API', 'buddypress' ); ?></h4> + <img src="<?php echo esc_url( buddypress()->plugin_url . 'bp-core/admin/images/new-nav-api.png' ); ?>" alt="<?php esc_attr_e( 'Sample code for using the new navigation API', 'buddypress' ); ?>"> + <p><?php esc_html_e( 'The member and group navigation system has been totally rewritten, making it easier than ever to customize BuddyPress nav items.', 'buddypress' ); ?> <a href="https://codex.buddypress.org/developer/navigation-api/"><?php esc_html_e( 'Read the informative commit message.', 'buddypress' ); ?></a></p> </div> + <div class="bp-feature opposite"> + <h4 class="feature-title"><?php esc_html_e( 'Stylesheets for Twenty Eleven and Twenty Ten', 'buddypress' ); ?></h4> + <img src="<?php echo esc_url( buddypress()->plugin_url . 'bp-core/admin/images/default-themes.png' ); ?>" alt="<?php esc_attr_e( 'Styled BuddyPress components in Twenty Eleven and Twenty Ten', 'buddypress' ); ?>"> + <p><?php esc_html_e( 'BuddyPress feels right at home now in the classic default themes, Twenty Ten and Twenty Eleven.', 'buddypress' ); ?></p> + </div> </div> - <div class="changelog"> + <div class="bp-changelog-section"> <h3 class="changelog-title"><?php esc_html_e( 'Under The Hood', 'buddypress' ); ?></h3> - <div class="feature-section col two-col"> + <div class="bp-changelog col two-col"> <div> + <h4 class="title"><?php esc_html_e( 'Performance Enhancements', 'buddypress' ); ?></h4> + <p><?php esc_html_e( 'Class autoloading reduces the memory needed to run BuddyPress on your server. Improved caching strategies for group membership statuses mean fewer round trips to your overworked database server.', 'buddypress' ); ?></p> <h4 class="title"><?php esc_html_e( 'Localization Improvements', 'buddypress' ); ?></h4> - <p><?php esc_html_e( 'We continue to improve on localization for translation editors so that BuddyPress will be available for everyone in their own language.', 'buddypress' ); ?></p> - <h4 class="title"><?php esc_html_e( 'Accessibility Upgrades', 'buddypress' ); ?></h4> - <p><?php esc_html_e( 'Continued improvements in the frontend and backend to make BuddyPress usable for everyone.', 'buddypress' ); ?></p> + <p><?php esc_html_e( 'Improved localization strings and comments help translators do their much-appreciated work: making BuddyPress available in many languages.', 'buddypress' ); ?></p> </div> <div class="last-feature"> - <h4 class="title"><?php esc_html_e( 'Enhanced Multisite Support', 'buddypress' ); ?></h4> - <p><?php esc_html_e( 'BuddyPress is already primed for all multisite configurations available. We just made it better.', 'buddypress' ); ?></p> + <h4 class="title"><?php esc_html_e( 'Notifications Updates', 'buddypress' ); ?></h4> + <p><?php esc_html_e( 'Adjustments to the notifications component allow members to receive timely and relevant updates about activity in your community.', 'buddypress' ); ?></p> + <h4 class="title"><?php esc_html_e( 'Accessibility Upgrades', 'buddypress' ); ?></h4> + <p><?php esc_html_e( 'Continued improvements help make BuddyPress' back- and front-end screens usable for everyone (and on more devices).', 'buddypress' ); ?></p> <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> @@ -679,9 +693,11 @@ class BP_Admin { </div> - <p><?php _ex( 'Learn more:', 'About screen, website links', 'buddypress' ); ?> <a href="https://buddypress.org/blog/"><?php _ex( 'News', 'About screen, link to project blog', 'buddypress' ); ?></a> • <a href="https://buddypress.org/support/"><?php _ex( 'Support', 'About screen, link to support site', 'buddypress' ); ?></a> • <a href="https://codex.buddypress.org/"><?php _ex( 'Documentation', 'About screen, link to documentation', 'buddypress' ); ?></a> • <a href="https://bpdevel.wordpress.com/"><?php _ex( 'Development Blog', 'About screen, link to development blog', 'buddypress' ); ?></a></p> + <div class="bp-assets"> + <p><?php _ex( 'Learn more:', 'About screen, website links', 'buddypress' ); ?> <a href="https://buddypress.org/blog/"><?php _ex( 'News', 'About screen, link to project blog', 'buddypress' ); ?></a> • <a href="https://buddypress.org/support/"><?php _ex( 'Support', 'About screen, link to support site', 'buddypress' ); ?></a> • <a href="https://codex.buddypress.org/"><?php _ex( 'Documentation', 'About screen, link to documentation', 'buddypress' ); ?></a> • <a href="https://bpdevel.wordpress.com/"><?php _ex( 'Development Blog', 'About screen, link to development blog', 'buddypress' ); ?></a></p> - <p><?php _ex( 'Twitter:', 'official Twitter accounts:', 'buddypress' ); ?> <a href="https://twitter.com/buddypress/"><?php _ex( 'BuddyPress', '@buddypress twitter account name', 'buddypress' ); ?></a> • <a href="https://twitter.com/bptrac/"><?php _ex( 'Trac', '@bptrac twitter account name', 'buddypress' ); ?></a> • <a href="https://twitter.com/buddypressdev/"><?php _ex( 'Development', '@buddypressdev twitter account name', 'buddypress' ); ?></a></p> + <p><?php _ex( 'Twitter:', 'official Twitter accounts:', 'buddypress' ); ?> <a href="https://twitter.com/buddypress/"><?php _ex( 'BuddyPress', '@buddypress twitter account name', 'buddypress' ); ?></a> • <a href="https://twitter.com/bptrac/"><?php _ex( 'Trac', '@bptrac twitter account name', 'buddypress' ); ?></a> • <a href="https://twitter.com/buddypressdev/"><?php _ex( 'Development', '@buddypressdev twitter account name', 'buddypress' ); ?></a></p> + </div> </div> @@ -782,45 +798,69 @@ class BP_Admin { <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> + </li> + <li class="wp-person" id="wp-person-thebrandonallen"> + <a class="web" href="https://profiles.wordpress.org/thebrandonallen"><img alt="" class="gravatar" src="//www.gravatar.com/avatar/6d3f77bf3c9ca94c406dea401b566950?s=60"> + Brandon Allen</a> + </li> + <li class="wp-person" id="wp-person-ramiy"> + <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> </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/abweb/">abweb</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/thebrandonallen/">Brandon Allen (thebrandonallen)</a>, - <a href="https://profiles.wordpress.org/needle/">Christian Wach (needle)</a>, - <a href="https://profiles.wordpress.org/timersys/">Damian (timersys)</a>, + <a href="https://profiles.wordpress.org/chherbst/">chherbst</a>, <a href="https://profiles.wordpress.org/danbrellis/">danbrellis</a>, <a href="https://profiles.wordpress.org/dcavins/">David Cavins (dcavins)</a>, <a href="https://profiles.wordpress.org/wpdennis/">Dennis (wpdennis)</a>, + <a href="https://profiles.wordpress.org/emrikol/">emrikol</a>, <a href="https://profiles.wordpress.org/wdfee/">Fee (wdfee)</a>, <a href="https://profiles.wordpress.org/garrett-eclipse/">Garrett Hyder (garrett-eclipse)</a>, + <a href="https://profiles.wordpress.org/pento/">Gary Pendergast (pento)</a>, <a href="https://profiles.wordpress.org/Mamaduka/">George Mamadashvili (Mamaduka)</a>, <a href="https://profiles.wordpress.org/henrywright/">Henry Wright (henry.wright)</a>, <a href="https://profiles.wordpress.org/hnla/">Hugo (hnla)</a>, - <a href="https://profiles.wordpress.org/jeffsayre/">Jeff Sayre (jeffsayre)</a>, <a href="https://profiles.wordpress.org/johnjamesjacoby/">John James Jacoby (johnjamesjacoby)</a>, - <a href="https://profiles.wordpress.org/Jonnyauk/">Jonnyauk</a>, - <a href="https://profiles.wordpress.org/joost-abrahams/">Joost Abrahams (joost-abrahams)</a>, - <a href="https://profiles.wordpress.org/kennibc/">kennibc</a>, + <a href="https://profiles.wordpress.org/kmbdeamorg/">Klaus (kmbdeamorg)</a>, <a href="https://profiles.wordpress.org/sooskriszta/">OC2PS (sooskriszta)</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/LenLay/">LenLay</a>, + <a href="https://profiles.wordpress.org/mahadri/">mahadri</a>, <a href="https://profiles.wordpress.org/imath/">Mathieu Viet (imath)</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/mmcachran/">mmcachran</a>, <a href="https://profiles.wordpress.org/modemlooper/">modemlooper</a>, + <a href="https://profiles.wordpress.org/nickmomrik/">Nick Momrik (nickmomrik)</a>, + <a href="https://profiles.wordpress.org/OakCreative/">OakCreative</a>, + <a href="https://profiles.wordpress.org/oksankaa/">oksankaa</a>, <a href="https://profiles.wordpress.org/DJPaul/">Paul Gibbs (DJPaul)</a>, <a href="https://profiles.wordpress.org/ramiy/">Rami Yushuvaev (ramiy)</a>, <a href="https://profiles.wordpress.org/r-a-y/">r-a-y</a>, - <a href="https://profiles.wordpress.org/shanebp/">shanebp</a>, + <a href="https://profiles.wordpress.org/rekmla/">rekmla</a>, + <a href="https://profiles.wordpress.org/r0z/">r0z</a>, + <a href="https://profiles.wordpress.org/SergeyBiryukov/">Sergey Biryukov (SergeyBiryukov)</a>, + <a href="https://profiles.wordpress.org/singhleo/">singhleo</a>, <a href="https://profiles.wordpress.org/slaffik/">Slava UA (slaffik)</a>, - <a href="https://profiles.wordpress.org/jozik/">Srdjan (jozik)</a>, <a href="https://profiles.wordpress.org/netweb/">Stephen Edgar (netweb)</a>, - <a href="https://profiles.wordpress.org/timeuser/">timeuser</a>, - <a href="https://profiles.wordpress.org/vnd/">vnd</a>. + <a href="https://profiles.wordpress.org/tharsheblows/">tharsheblows</a>, + <a href="https://profiles.wordpress.org/VibeThemes/">VibeThemes</a>, + <a href="https://profiles.wordpress.org/vortfu/">vortfu</a>, + <a href="https://profiles.wordpress.org/WeddyWood/">WeddyWood</a>, + <a href="https://profiles.wordpress.org/w3dzign/">w3dzign</a>. </p> <h3 class="wp-people-group"><?php _e( '💖With our thanks to these Open Source projects💖', 'buddypress' ); ?></h3> @@ -829,6 +869,7 @@ class BP_Admin { <a href="https://bbpress.org">bbPress</a>, <a href="https://github.com/ichord/Caret.js">Caret.js</a>, <a href="http://tedgoas.github.io/Cerberus/">Cerberus</a>, + <a href="http://ionicons.com/">Ionicons</a>, <a href="https://github.com/carhartl/jquery-cookie">jquery.cookie</a>, <a href="https://www.mediawiki.org/wiki/MediaWiki">MediaWiki</a>, <a href="https://wordpress.org">WordPress</a>. @@ -891,6 +932,47 @@ class BP_Admin { <?php } + /** Emails ****************************************************************/ + + /** + * Registers 'Situations' column on Emails dashboard page. + * + * @since 2.6.0 + * + * @param array $columns Current column data. + * @return array + */ + public function emails_register_situation_column( $columns = array() ) { + $situation = array( + 'situation' => _x( 'Situations', 'Email post type', 'buddypress' ) + ); + + // Inject our 'Situations' column just before the last 'Date' column. + return array_slice( $columns, 0, -1, true ) + $situation + array_slice( $columns, -1, null, true ); + } + + /** + * Output column data for our custom 'Situations' column. + * + * @since 2.6.0 + * + * @param string $column Current column name. + * @param int $post_id Current post ID. + */ + public function emails_display_situation_column_data( $column = '', $post_id = 0 ) { + if ( 'situation' !== $column ) { + return; + } + + // Grab email situations for the current post. + $situations = wp_list_pluck( get_the_terms( $post_id, bp_get_email_tax_type() ), 'description' ); + + // Output each situation as a list item. + echo '<ul><li>'; + echo implode( '</li><li>', $situations ); + echo '</li></ul>'; + } + /** Helpers ***************************************************************/ /** 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 09e8f922d0d10e1b9137ae287d3a852a77c576fa..edbc40894ff14fad65c6eb5ffc74b97d44bb9acf 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 @@ -25,8 +25,6 @@ class BP_Attachment_Avatar extends BP_Attachment { * @since 2.3.0 * * @see BP_Attachment::__construct() for list of parameters - * @uses bp_core_avatar_original_max_filesize() - * @uses BP_Attachment::__construct() */ public function __construct() { // Allowed avatar types. @@ -64,10 +62,6 @@ class BP_Attachment_Avatar extends BP_Attachment { * * @since 2.3.0 * - * @uses bp_core_avatar_upload_path() - * @uses bp_core_avatar_url() - * @uses bp_upload_dir() - * @uses BP_Attachment::set_upload_dir() */ public function set_upload_dir() { if ( bp_core_avatar_upload_path() && bp_core_avatar_url() ) { @@ -87,8 +81,6 @@ class BP_Attachment_Avatar extends BP_Attachment { * * @since 2.3.0 * - * @uses bp_core_check_avatar_size() - * @uses bp_core_check_avatar_type() * * @param array $file the temporary file attributes (before it has been moved). * @return array the file with extra errors if needed. @@ -118,7 +110,6 @@ class BP_Attachment_Avatar extends BP_Attachment { * @since 2.3.0 * @since 2.4.0 Add the $ui_available_width parameter, to inform about the Avatar UI width. * - * @uses bp_core_avatar_original_max_width() * * @param string $file The absolute path to the file. * @param int $ui_available_width Available width for the UI. @@ -184,8 +175,6 @@ class BP_Attachment_Avatar extends BP_Attachment { * * @since 2.3.0 * - * @uses bp_core_avatar_full_width() - * @uses bp_core_avatar_full_height() * * @param string $file the absolute path to the file. * @return bool @@ -208,12 +197,6 @@ class BP_Attachment_Avatar extends BP_Attachment { * @since 2.3.0 * * @see BP_Attachment::crop for the list of parameters - * @uses bp_core_fetch_avatar() - * @uses bp_core_delete_existing_avatar() - * @uses bp_core_avatar_full_width() - * @uses bp_core_avatar_full_height() - * @uses bp_core_avatar_dimension() - * @uses BP_Attachment::crop * * @param array $args Array of arguments for the cropping. * @return array The cropped avatars (full and thumb). 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 fec79160c46392f162912cfb4ff5c45a598097be..af36860eb4ebfa9c5c47964ffeb3acc88abc1294 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 @@ -50,11 +50,6 @@ abstract class BP_Attachment { * * @since 2.3.0 * @since 2.4.0 Add the $upload_dir_filter_args argument to the $arguments array - * @uses sanitize_key() - * @uses wp_max_upload_size() - * @uses bp_parse_args() - * @uses BP_Attachment->set_upload_error_strings() - * @uses BP_Attachment->set_upload_dir() * * @param array|string $args { * @type int $original_max_filesize Maximum file size in kilobytes. Defaults to php.ini settings. @@ -115,7 +110,6 @@ abstract class BP_Attachment { * * @since 2.3.0 * - * @uses bp_upload_dir() */ public function set_upload_dir() { // Set the directory, path, & url variables. @@ -203,10 +197,6 @@ abstract class BP_Attachment { * * @since 2.3.0 * - * @uses wp_handle_upload() To upload the file - * @uses add_filter() To temporarly overrides WordPress uploads data - * @uses remove_filter() To stop overriding WordPress uploads data - * @uses apply_filters() Call 'bp_attachment_upload_overrides' to include specific upload overrides * * @param array $file The appropriate entry the from $_FILES superglobal. * @param string $upload_dir_filter A specific filter to be applied to 'upload_dir' (optional). @@ -303,7 +293,6 @@ abstract class BP_Attachment { * * @since 2.3.0 * - * @uses get_allowed_mime_types() */ protected function validate_mime_types() { $wp_mimes = get_allowed_mime_types(); @@ -354,7 +343,6 @@ abstract class BP_Attachment { * @since 2.3.0 * @since 2.4.0 Add the $upload_dir parameter to the method * - * @uses apply_filters() call 'bp_attachment_upload_dir' to eventually override the upload location * regarding to context * * @param array $upload_dir The original Uploads dir. @@ -389,7 +377,6 @@ abstract class BP_Attachment { * * @since 2.3.0 * - * @uses wp_mkdir_p() */ public function create_dir() { // Bail if no specific base dir is set. @@ -426,7 +413,6 @@ abstract class BP_Attachment { * @type int $src_abs Optional. If the source crop points are absolute. * @type string $dst_file Optional. The destination file to write to. * } - * @uses wp_crop_image() * * @return string|WP_Error New filepath on success, WP_Error on failure. */ diff --git a/wp-content/plugins/buddypress/bp-core/classes/class-bp-component.php b/wp-content/plugins/buddypress/bp-core/classes/class-bp-component.php index 8a53680dcfdfdaa077c5b9b2c57f8216df688c45..137c8cb33d00e214bc94abec98b85c308bb431ec 100644 --- a/wp-content/plugins/buddypress/bp-core/classes/class-bp-component.php +++ b/wp-content/plugins/buddypress/bp-core/classes/class-bp-component.php @@ -206,8 +206,6 @@ class BP_Component { * * @since 1.5.0 * - * @uses apply_filters() Calls 'bp_{@link bp_Component::name}_id'. - * @uses apply_filters() Calls 'bp_{@link bp_Component::name}_slug'. * * @param array $args { * All values are optional. @@ -350,7 +348,6 @@ class BP_Component { * * @since 1.5.0 * - * @uses do_action() Calls 'bp_{@link bp_Component::name}includes'. * * @param array $includes An array of file names, or file name chunks, * to be parsed and then included. @@ -401,8 +398,6 @@ class BP_Component { * * @since 1.5.0 * - * @uses add_action() To add various actions. - * @uses do_action() Calls 'bp_{@link BP_Component::name}setup_actions'. */ public function setup_actions() { @@ -489,12 +484,12 @@ class BP_Component { // No sub nav items without a main nav item. if ( !empty( $main_nav ) ) { - bp_core_new_nav_item( $main_nav ); + bp_core_new_nav_item( $main_nav, 'members' ); // Sub nav items are not required. if ( !empty( $sub_nav ) ) { foreach( (array) $sub_nav as $nav ) { - bp_core_new_subnav_item( $nav ); + bp_core_new_subnav_item( $nav, 'members' ); } } } @@ -598,7 +593,6 @@ class BP_Component { * * @since 1.5.0 * - * @uses do_action() Calls 'bp_{@link bp_Component::name}_setup_title'. */ public function setup_title() { @@ -617,7 +611,6 @@ class BP_Component { * * @since 2.2.0 * - * @uses do_action() Calls 'bp_setup_{@link bp_Component::name}_cache_groups'. */ public function setup_cache_groups() { @@ -723,7 +716,6 @@ class BP_Component { * * @since 1.5.0 * - * @uses do_action() Calls 'bp_{@link bp_Component::name}_register_post_types'. */ public function register_post_types() { @@ -742,7 +734,6 @@ class BP_Component { * * @since 1.5.0 * - * @uses do_action() Calls 'bp_{@link bp_Component::name}_register_taxonomies'. */ public function register_taxonomies() { @@ -761,7 +752,6 @@ class BP_Component { * * @since 1.5.0 * - * @uses do_action() Calls 'bp_{@link bp_Component::name}_add_rewrite_tags'. */ public function add_rewrite_tags() { @@ -780,7 +770,6 @@ class BP_Component { * * @since 1.9.0 * - * @uses do_action() Calls 'bp_{@link bp_Component::name}_add_rewrite_rules'. */ public function add_rewrite_rules() { @@ -799,7 +788,6 @@ class BP_Component { * * @since 1.9.0 * - * @uses do_action() Calls 'bp_{@link bp_Component::name}_add_permastruct'. */ public function add_permastructs() { @@ -818,7 +806,6 @@ class BP_Component { * * @since 1.9.0 * - * @uses do_action() Calls 'bp_{@link bp_Component::name}_parse_query'. * * @param object $query The main WP_Query. */ @@ -841,7 +828,6 @@ class BP_Component { * * @since 1.5.0 * - * @uses do_action() Calls 'bp_{@link bp_Component::name}_generate_rewrite_rules'. */ public function generate_rewrite_rules() { diff --git a/wp-content/plugins/buddypress/bp-core/classes/class-bp-core-bp-nav-backcompat.php b/wp-content/plugins/buddypress/bp-core/classes/class-bp-core-bp-nav-backcompat.php new file mode 100644 index 0000000000000000000000000000000000000000..f52dc52f8a50316b8405dd2b6e50e809d2aeed18 --- /dev/null +++ b/wp-content/plugins/buddypress/bp-core/classes/class-bp-core-bp-nav-backcompat.php @@ -0,0 +1,270 @@ +<?php +/** + * Backward compatibility for the $bp->bp_nav global. + * + * @since 2.6.0 + */ + +// Exit if accessed directly. +defined( 'ABSPATH' ) || exit; + +/** + * bp_nav backward compatibility class. + * + * This class is used to provide backward compatibility for extensions that access and modify + * the $bp->bp_nav global. + * + * @since 2.6.0 + */ +class BP_Core_BP_Nav_BackCompat implements ArrayAccess { + /** + * Nav items. + * + * @since 2.6.0 + * @access public + * @var array + */ + public $backcompat_nav = array(); + + /** + * Component to which nav items belong. + * + * @since 2.6.0 + * @access public + * @var array + */ + public $component; + + /** + * Constructor. + * + * @since 2.6.0 + * + * @param array $backcompat_nav Optional. Array of nav items. + */ + public function __construct( $backcompat_nav = array() ) { + foreach ( $backcompat_nav as $key => $value ) { + if ( is_array( $value ) ) { + $this->backcompat_nav[ $key ] = new self( $value ); + } else { + $this->backcompat_nav[ $key ] = $value; + } + } + } + + /** + * Assign a value to the nav array at the specified offset. + * + * @since 2.6.0 + * + * @param mixed $offset Array offset. + * @param array $value Nav item. + */ + public function offsetSet( $offset, $value ) { + _doing_it_wrong( + 'bp_nav', + __( 'The bp_nav and bp_options_nav globals should not be used directly and are deprecated. Please use the BuddyPress nav functions instead.', 'buddypress' ), + '2.6.0' + ); + + $bp = buddypress(); + + if ( is_array( $value ) ) { + $value = new self( $value ); + } + + if ( $offset !== null ) { + // Temporarily set the backcompat_nav. + $this->backcompat_nav[ $offset ] = $value; + + $args = $this->to_array(); + if ( isset( $args['parent_slug'] ) ) { + $this->get_component_nav( $args['parent_slug'] )->edit_nav( $args, $args['slug'], $args['parent_slug'] ); + } elseif ( isset( $args['slug'] ) ) { + $bp->members->nav->edit_nav( $args, $args['slug'] ); + } + } + } + + /** + * Get a value of the nav array at the specified offset. + * + * @since 2.6.0 + * + * @param mixed $offset Array offset. + * @return BP_Core_BP_Nav_BackCompat + */ + public function offsetGet( $offset ) { + _doing_it_wrong( + 'bp_nav', + __( 'The bp_nav and bp_options_nav globals should not be used directly and are deprecated. Please use the BuddyPress nav functions instead.', 'buddypress' ), + '2.6.0' + ); + +// if ( ! isset( $this->backcompat_nav[ $offset ] ) ) { + $nav = $this->get_nav( $offset ); + if ( $nav && isset( $nav[ $offset ] ) ) { + $this->backcompat_nav[ $offset ] = new self( $nav[ $offset ] ); + } +// } + + return $this->backcompat_nav[ $offset ]; + } + + /** + * Check whether nav array has a value at the specified offset. + * + * @since 2.6.0 + * + * @param mixed $offset Array offset. + * @return bool + */ + public function offsetExists( $offset ) { + _doing_it_wrong( + 'bp_nav', + __( 'The bp_nav and bp_options_nav globals should not be used directly and are deprecated. Please use the BuddyPress nav functions instead.', 'buddypress' ), + '2.6.0' + ); + + if ( isset( $this->backcompat_nav[ $offset ] ) ) { + return true; + } + + $nav = $this->get_nav( $offset ); + if ( $nav && isset( $nav[ $offset ] ) ) { + return true; + } + + return false; + } + + /** + * Unset a nav array value at the specified offset. + * + * @since 2.6.0 + * + * @param mixed $offset Array offset. + */ + public function offsetUnset( $offset ) { + _doing_it_wrong( + 'bp_nav', + __( 'The bp_nav and bp_options_nav globals should not be used directly and are deprecated. Please use the BuddyPress nav functions instead.', 'buddypress' ), + '2.6.0' + ); + + // For top-level nav items, the backcompat nav hasn't yet been initialized. + if ( ! isset( $this->backcompat_nav[ $offset ] ) ) { + buddypress()->members->nav->delete_nav( $offset ); + unset( $this->backcompat_nav[ $offset ] ); + } + } + + /** + * Set the component to which the nav belongs. + * + * @since 2.6.0 + * + * @param string $component + */ + public function set_component( $component ) { + $this->component = $component; + } + + /** + * Get the component to which the a nav item belongs. + * + * We use the following heuristic to guess, based on an offset, which component the item belongs to: + * - If this is a group, and the offset is the same as the current group's slug, it's a group nav item. + * - Otherwise, it's a member nav item. + * + * @since 2.6.0 + * + * @param mixed $offset Array offset. + * @return string + */ + public function get_component( $offset = '' ) { + if ( ! isset( $this->component ) ) { + if ( bp_is_active( 'groups' ) && $offset === bp_get_current_group_slug() ) { + $this->component = 'groups'; + } else { + $this->component = 'members'; + } + } + + return $this->component; + } + + /** + * Reset the cached nav items. + * + * Called when the nav API removes items from the nav array. + * + * @since 2.6.0 + */ + public function reset() { + $this->backcompat_nav = array(); + } + + /** + * Get the nav object corresponding to the specified offset. + * + * @since 2.6.0 + * + * @param mixed $offset Array offset. + * @return bool|array + */ + protected function get_nav( $offset ) { + $bp = buddypress(); + + $component_nav = $this->get_component_nav( $offset ); + $primary_nav = $component_nav->get_primary( array( 'slug' => $offset ), false ); + + $nav = array(); + + if ( empty( $primary_nav ) ) { + return $nav; + } + + foreach ( $primary_nav as $item ) { + $nav[ $item->slug ] = (array) $item; + } + + return $nav; + } + + /** + * Get the BP_Core_Nav object corresponding to the component, based on a nav item name. + * + * The way bp_nav was previously organized makes it impossible to know for sure which component's nav is + * being referenced by a given nav item name. We guess in the following manner: + * - If we're looking at a group, and the nav item name (`$offset`) is the same as the slug of the current + * group, we assume that the proper component nav is 'groups'. + * - Otherwise, fall back on 'members'. + * + * @since 2.6.0 + * + * @param string $offset Nav item name. + * @return BP_Core_Nav + */ + protected function get_component_nav( $offset = '' ) { + $component = $this->get_component( $offset ); + + $bp = buddypress(); + if ( ! isset( $bp->{$component}->nav ) ) { + return false; + } + + return $bp->{$component}->nav; + } + + /** + * Get the nav data, formatted as a flat array. + * + * @since 2.6.0 + * + * @return array + */ + protected function to_array() { + return $this->backcompat_nav; + } +} diff --git a/wp-content/plugins/buddypress/bp-core/classes/class-bp-core-bp-options-nav-backcompat.php b/wp-content/plugins/buddypress/bp-core/classes/class-bp-core-bp-options-nav-backcompat.php new file mode 100644 index 0000000000000000000000000000000000000000..c1bc74aba32777f26691d08b50caa1da7c2ec1aa --- /dev/null +++ b/wp-content/plugins/buddypress/bp-core/classes/class-bp-core-bp-options-nav-backcompat.php @@ -0,0 +1,138 @@ +<?php +/** + * Backward compatibility for the $bp->bp_options_nav global. + * + * @since 2.6.0 + */ + +// Exit if accessed directly. +defined( 'ABSPATH' ) || exit; + +/** + * bp_options_nav backward compatibility class. + * + * This class is used to provide backward compatibility for extensions that access and modify + * the $bp->bp_options_nav global. + * + * @since 2.6.0 + */ +class BP_Core_BP_Options_Nav_BackCompat extends BP_Core_BP_Nav_BackCompat { + /** + * Parent slug of the current nav item. + * + * @since 2.6.0 + * @access protected + * @var string + */ + protected $parent_slug = ''; + + /** + * Get a value of the nav array at the specified offset. + * + * @since 2.6.0 + * + * @param mixed $offset Array offset. + * @return BP_Core_BP_Nav_BackCompat + */ + public function offsetGet( $offset ) { + _doing_it_wrong( + 'bp_nav', + __( 'These globals should not be used directly and are deprecated. Please use the BuddyPress nav functions instead.', 'buddypress' ), + '2.6.0' + ); + + if ( empty( $this->backcompat_nav[ $offset ] ) ) { + $nav = $this->get_nav( $offset ); + if ( $nav ) { + $subnavs = $this->get_component_nav( $offset )->get_secondary( array( 'parent_slug' => $offset ) ); + $subnav_keyed = array(); + if ( $subnavs ) { + foreach ( $subnavs as $subnav ) { + $subnav_keyed[ $subnav->slug ] = (array) $subnav; + } + } + + $subnav_object = new self( $subnav_keyed ); + $subnav_object->set_component( $this->get_component() ); + $subnav_object->set_parent_slug( $offset ); + + $this->backcompat_nav[ $offset ] = $subnav_object; + } + } + + if ( isset( $this->backcompat_nav[ $offset ] ) ) { + return $this->backcompat_nav[ $offset ]; + } + + return false; + } + + /** + * Unset a nav array value at the specified offset. + * + * @since 2.6.0 + * + * @param mixed $offset Array offset. + */ + public function offsetUnset( $offset ) { + _doing_it_wrong( + 'bp_nav', + __( 'These globals should not be used directly and are deprecated. Please use the BuddyPress nav functions instead.', 'buddypress' ), + '2.6.0' + ); + + $this->get_component_nav( $offset )->delete_nav( $offset, $this->get_parent_slug() ); + + // Clear the cached nav. + unset( $this->backcompat_nav[ $offset ] ); + } + + /** + * Get the parent slug of the current nav item. + * + * @since 2.6.0 + * + * @return string + */ + public function get_parent_slug() { + return $this->parent_slug; + } + + /** + * Set the parent slug of the current nav item. + * + * @since 2.6.0 + */ + public function set_parent_slug( $slug ) { + $this->parent_slug = $slug; + } + + /** + * Get the nav object corresponding to the specified offset. + * + * @since 2.6.0 + * + * @param mixed $offset Array offset. + * @return bool|array + */ + public function get_nav( $offset ) { + $nav = parent::get_nav( $offset ); + + if ( ! $nav ) { + $component_nav = $this->get_component_nav( $offset ); + $secondary_nav = $component_nav->get_secondary( array( 'slug' => $offset ), false ); + + $nav = array(); + + if ( empty( $primary_nav ) ) { + return $nav; + } + + foreach ( $primary_nav as $item ) { + $nav[ $item->slug ] = (array) $item; + } + } + + return $nav; + } +} 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 b0336b5e5ba284d6da29d26d549274ad608d5080..359c60cb3b014eaf3b211bc0b45efbb0045b6ff0 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 @@ -27,8 +27,9 @@ class BP_Core_Login_Widget extends WP_Widget { false, _x( '(BuddyPress) Log In', 'Title of the login widget', 'buddypress' ), array( - 'description' => __( 'Show a Log In form to logged-out visitors, and a Log Out link to those who are logged in.', 'buddypress' ), - 'classname' => 'widget_bp_core_login_widget buddypress widget', + 'description' => __( 'Show a Log In form to logged-out visitors, and a Log Out link to those who are logged in.', 'buddypress' ), + 'classname' => 'widget_bp_core_login_widget buddypress widget', + 'customize_selective_refresh' => true, ) ); } 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 new file mode 100644 index 0000000000000000000000000000000000000000..8b901b3022ae81e37f95ae492e8b55c52d43ade3 --- /dev/null +++ b/wp-content/plugins/buddypress/bp-core/classes/class-bp-core-nav-item.php @@ -0,0 +1,34 @@ +<?php + +// Exit if accessed directly. +defined( 'ABSPATH' ) || exit; + +if ( class_exists( 'ArrayObject' ) ) : + +/** + * Navigation item. + * + * @since 2.6.0 + */ +class BP_Core_Nav_Item extends ArrayObject { + public function __construct( $data ) { + 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-nav.php b/wp-content/plugins/buddypress/bp-core/classes/class-bp-core-nav.php new file mode 100644 index 0000000000000000000000000000000000000000..411840cda42d59814a3cce2da07aaab2ec37902c --- /dev/null +++ b/wp-content/plugins/buddypress/bp-core/classes/class-bp-core-nav.php @@ -0,0 +1,402 @@ +<?php +/** + * Core component class. + * + * @package BuddyPress + * @subpackage Core + * @since 2.6.0 + */ + +// Exit if accessed directly. +defined( 'ABSPATH' ) || exit; + +/** + * BuddyPress Nav. + * + * This class is used to build each component's navigation. + * + * @since 2.6.0 + */ +class BP_Core_Nav { + /** + * An associative array containing the nav items for the object ID. + * + * @since 2.6.0 + * @var array + */ + protected $nav; + + /** + * The current object ID. + * + * @since 2.6.0 + * @var int + */ + private $object_id; + + /** + * Initializes the Nav belonging to the specified object. + * + * @since 2.6.0 + * + * @param int $object_id The item ID to build the nav for. Default is the displayed user ID. + */ + public function __construct( $object_id = 0 ) { + if ( empty( $object_id ) ) { + $this->object_id = (int) bp_displayed_user_id(); + } else { + $this->object_id = (int) $object_id; + } + + $this->nav[ $this->object_id ] = array(); + } + + /** + * Checks whether a nav item is set. + * + * @since 2.6.0 + * + * @param string $key The requested nav slug. + * @return bool True if the nav item is set, false otherwise. + */ + public function __isset( $key ) { + return isset( $this->nav[ $this->object_id ][ $key ] ); + } + + /** + * Gets a nav item. + * + * @since 2.6.0 + * + * @param string $key The requested nav slug. + * @return mixed The value corresponding to the requested nav item. + */ + public function __get( $key ) { + if ( ! isset( $this->nav[ $this->object_id ][ $key ] ) ) { + $this->nav[ $this->object_id ][ $key ] = null; + } + + return $this->nav[ $this->object_id ][ $key ]; + } + + /** + * Sets a nav item. + * + * @since 2.6.0 + * + * @param string $key The requested nav slug. + * @param mixed $value The value of the nav item. + */ + public function __set( $key, $value ) { + if ( is_array( $value ) ) { + $value['primary'] = true; + } + + $this->nav[ $this->object_id ][ $key ] = new BP_Core_Nav_Item( $value ); + } + + /** + * Gets a specific nav item or array of nav items. + * + * @since 2.6.0 + * + * @param string $key The nav item slug to get. Optional. + * @return mixed An array of nav item, a single nav item, or null if none found. + */ + public function get( $key = '' ) { + $return = null; + + // Return the requested nav item. + if ( ! empty( $key ) ) { + if ( ! isset( $this->nav[ $this->object_id ][ $key ] ) ) { + $return = null; + } else { + $return = $this->nav[ $this->object_id ][ $key ]; + } + + // Return all nav item items. + } else { + $return = $this->nav[ $this->object_id ]; + } + + return $return; + } + + /** + * Adds a new nav item. + * + * @since 2.6.0 + * + * @param array $args The nav item's arguments. + * @return BP_Core_Nav_Item + */ + public function add_nav( $args ) { + if ( empty( $args['slug'] ) ) { + return false; + } + + // We have a child and the parent exists. + if ( ! empty( $args['parent_slug'] ) ) { + $slug = $args['parent_slug'] . '/' . $args['slug']; + $args['secondary'] = true; + + // This is a parent. + } else { + $slug = $args['slug']; + $args['primary'] = true; + } + + // Add to the nav. + $this->nav[ $this->object_id ][ $slug ] = new BP_Core_Nav_Item( $args ); + + return $this->nav[ $this->object_id ][ $slug ]; + } + + /** + * Edits a nav item. + * + * @since 2.6.0 + * + * @param array $args The nav item's arguments. + * @param string $slug The slug of the nav item. + * @param string $parent_slug The slug of the parent nav item (required to edit a child). + * @return BP_Core_Nav_Item + */ + public function edit_nav( $args = array(), $slug = '', $parent_slug = '' ) { + if ( empty( $slug ) ) { + return false; + } + + // We're editing a parent! + if ( empty( $parent_slug ) ) { + $nav_items = $this->get_primary( array( 'slug' => $slug ), false ); + + if ( ! $nav_items ) { + return false; + } + + $nav_item = reset( $nav_items ); + $this->nav[ $this->object_id ][ $slug ] = new BP_Core_Nav_Item( wp_parse_args( $args, (array) $nav_item ) ); + + // Return the edited object. + return $this->nav[ $this->object_id ][ $slug ]; + + // We're editing a child. + } else { + $sub_items = $this->get_secondary( array( 'parent_slug' => $parent_slug, 'slug' => $slug ), false ); + + if ( ! $sub_items ) { + return false; + } + + $sub_item = reset( $sub_items ); + + $params = wp_parse_args( $args, (array) $sub_item ); + + // When we have parents, it's for life, we can't change them! + if ( empty( $params['parent_slug'] ) || $parent_slug !== $params['parent_slug'] ) { + return false; + } + + $this->nav[ $this->object_id ][ $parent_slug . '/' . $slug ] = new BP_Core_Nav_Item( $params ); + + // Return the edited object. + return $this->nav[ $this->object_id ][ $parent_slug . '/' . $slug ]; + } + } + + /** + * Unset an item or a subitem of the nav. + * + * @since 2.6.0 + * + * @param string $slug The slug of the main item. + * @param string $parent_slug The slug of the sub item. + * @return bool|callable|array False on failure, the screen function(s) on success. + */ + public function delete_nav( $slug = '', $parent_slug = '' ) { + + // Bail if slug is empty + if ( empty( $slug ) ) { + return false; + } + + // We're deleting a child + if ( ! empty( $parent_slug ) ) { + + // Validate the subnav + $sub_items = $this->get_secondary( array( 'parent_slug' => $parent_slug, 'slug' => $slug ), false ); + + if ( ! $sub_items ) { + return false; + } + + $sub_item = reset( $sub_items ); + + if ( empty( $sub_item->slug ) ) { + return false; + } + + // Delete the child + unset( $this->nav[ $this->object_id ][ $parent_slug . '/' . $slug ] ); + + // Return the deleted item's screen function + return array( $sub_item->screen_function ); + + // We're deleting a parent + } else { + // Validate the nav + $nav_items = $this->get_primary( array( 'slug' => $slug ), false ); + + if ( ! $nav_items ) { + return false; + } + + $nav_item = reset( $nav_items ); + + if ( empty( $nav_item->slug ) ) { + return false; + } + + $screen_functions = array( $nav_item->screen_function ); + + // Life's unfair, children won't survive the parent :( + $sub_items = $this->get_secondary( array( 'parent_slug' => $nav_item->slug ), false ); + + if ( ! empty( $sub_items ) ) { + foreach ( $sub_items as $sub_item ) { + $screen_functions[] = $sub_item->screen_function; + + // Delete the child + unset( $this->nav[ $this->object_id ][ $nav_item->slug . '/' . $sub_item->slug ] ); + } + } + + // Delete the parent. + unset( $this->nav[ $this->object_id ][ $nav_item->slug ] ); + + // Return the deleted item's screen functions. + return array_unique( $screen_functions ); + } + } + + /** + * Sorts a list of nav items. + * + * @since 2.6.0 + * + * @param array $items The nav items to sort. + * @return array + */ + public function sort_nav( $items ) { + $sorted = array(); + + foreach ( $items as $item ) { + // Default position + $position = 99; + + if ( isset( $item->position ) ) { + $position = (int) $item->position; + } + + // If position is already taken, move to the first next available + if ( isset( $sorted[ $position ] ) ) { + $sorted_keys = array_keys( $sorted ); + + do { + $position += 1; + } while ( in_array( $position, $sorted_keys ) ); + } + + $sorted[ $position ] = $item; + } + + ksort( $sorted ); + return $sorted; + } + + /** + * Gets the primary nav items. + * + * @since 2.6.0 + * + * @param array $args Filters to select the specific primary items. See wp_list_filter(). + * @param bool $sort True to sort the nav items. False otherwise. + * @return array The list of primary objects nav + */ + public function get_primary( $args = array(), $sort = true ) { + $params = wp_parse_args( $args, array( 'primary' => true ) ); + + // This parameter is not overridable + if ( empty( $params['primary'] ) ) { + return false; + } + + $primary_nav = wp_list_filter( $this->nav[ $this->object_id ], $params ); + + if ( ! $primary_nav ) { + return false; + } + + if ( true !== $sort ) { + return $primary_nav; + } + + return $this->sort_nav( $primary_nav ); + } + + /** + * Gets the secondary nav items. + * + * @since 2.6.0 + * + * @param array $args Filters to select the specific secondary items. See wp_list_filter(). + * @param bool $sort True to sort the nav items. False otherwise. + * @return array The list of secondary objects nav + */ + public function get_secondary( $args = array(), $sort = true ) { + $params = wp_parse_args( $args, array( 'parent_slug' => '' ) ); + + // No need to search children if the parent is not set + if ( empty( $params['parent_slug'] ) && empty( $params['secondary'] ) ) { + return false; + } + + $secondary_nav = wp_list_filter( $this->nav[ $this->object_id ], $params ); + + if ( ! $secondary_nav ) { + return false; + } + + if ( true !== $sort ) { + return $secondary_nav; + } + + return $this->sort_nav( $secondary_nav ); + } + + /** + * Gets a nested list of visible nav items. + * + * @since 2.6.0 + * + * @return array The list of visible nav items. + */ + public function get_item_nav() { + $primary_nav_items = $this->get_primary( array( 'show_for_displayed_user' => true ) ); + + if ( $primary_nav_items ) { + foreach( $primary_nav_items as $key_nav => $primary_nav ) { + // Try to get the children + $children = $this->get_secondary( array( 'parent_slug' => $primary_nav->slug, 'user_has_access' => true ) ); + + if ( $children ) { + $primary_nav_items[ $key_nav ] = clone( $primary_nav ); + $primary_nav_items[ $key_nav ]->children = $children; + } + } + } + + return $primary_nav_items; + } +} diff --git a/wp-content/plugins/buddypress/bp-core/classes/class-bp-core-oembed-extension.php b/wp-content/plugins/buddypress/bp-core/classes/class-bp-core-oembed-extension.php new file mode 100644 index 0000000000000000000000000000000000000000..5a2ec3896b071c37675a42fbc7b43a24a3012125 --- /dev/null +++ b/wp-content/plugins/buddypress/bp-core/classes/class-bp-core-oembed-extension.php @@ -0,0 +1,616 @@ +<?php +/** + * Core component classes. + * + * @package BuddyPress + * @subpackage Core + */ + +// Exit if accessed directly. +defined( 'ABSPATH' ) || exit; + +/** + * API for responding and returning a custom oEmbed request. + * + * @since 2.6.0 + */ +abstract class BP_Core_oEmbed_Extension { + + /** START PROPERTIES ****************************************************/ + + /** + * (required) The slug endpoint. + * + * Should be your component id. + * + * @since 2.6.0 + * + * @var string + */ + public $slug_endpoint = ''; + + /** END PROPERTIES ******************************************************/ + + /** + * Constructor. + */ + final public function __construct() { + $this->setup_properties(); + + // Some rudimentary logic checking. + if ( empty( $this->slug_endpoint ) ) { + return; + } + + $this->setup_hooks(); + $this->custom_hooks(); + } + + /** REQUIRED METHODS ****************************************************/ + + /** + * Add content for your oEmbed response here. + * + * @since 2.6.0 + */ + abstract protected function content(); + + /** + * Add a check for when you are on the page you want to oEmbed. + * + * You'll want to return a boolean here. eg. bp_is_single_activity(). + * + * @since 2.6.0 + * + * @return bool + */ + abstract protected function is_page(); + + /** + * Validate the URL to see if it matches your item ID. + * + * @since 2.6.0 + * + * @return int Your item ID + */ + abstract protected function validate_url_to_item_id( $url ); + + /** + * Set the oEmbed response data. + * + * @since 2.6.0 + * + * @param int $item_id Your item ID to do checks against. + * @return array Should contain 'content', 'title', 'author_url', 'author_name' as array + * keys. 'author_url' and 'author_name' is optional; the rest are required. + */ + abstract protected function set_oembed_response_data( $item_id ); + + /** + * Sets the fallback HTML for the oEmbed response. + * + * In a WordPress oEmbed item, the fallback HTML is a <blockquote>. This is + * usually hidden after the <iframe> is loaded. + * + * @since 2.6.0 + * + * @param int $item_id Your item ID to do checks against. + * @return string Fallback HTML you want to output. + */ + abstract protected function set_fallback_html( $item_id ); + + /** OPTIONAL METHODS ****************************************************/ + + /** + * If your oEmbed endpoint requires additional arguments, set them here. + * + * @see register_rest_route() View the $args parameter for more info. + * + * @since 2.6.0 + * + * @return array + */ + protected function set_route_args() { + return array(); + } + + /** + * Set the iframe title. + * + * If not set, this will fallback to WP's 'Embedded WordPress Post'. + * + * @since 2.6.0 + * + * @param int $item_id The item ID to do checks for. + * @return string + */ + protected function set_iframe_title( $item_id ) {} + + /** + * Do what you need to do here to initialize any custom hooks. + * + * @since 2.6.0 + */ + protected function custom_hooks() {} + + /** + * Set permalink for oEmbed link discovery. + * + * This method will be called on the page we want to oEmbed. In most cases, + * you will not need to override this method. However, if you need to, do + * override in your extended class. + * + * @since 2.6.0 + */ + protected function set_permalink() { + $url = bp_get_requested_url(); + + // Remove querystring from bp_get_requested_url() + if ( false !== strpos( bp_get_requested_url(), '?' ) ) { + $url = substr( bp_get_requested_url(), 0, strpos( bp_get_requested_url(), '?' ) ); + } + + return $url; + } + + /** HELPERS *************************************************************/ + + /** + * Get the item ID when filtering the oEmbed HTML. + * + * Should only be used during the 'embed_html' hook. + * + * @since 2.6.0 + */ + protected function get_item_id() { + return $this->is_page() ? $this->validate_url_to_item_id( $this->set_permalink() ) : buddypress()->{$this->slug_endpoint}->embedid_in_progress; + } + + /** SET UP **************************************************************/ + + /** + * Set up properties. + * + * @since 2.6.0 + */ + protected function setup_properties() { + $this->slug_endpoint = sanitize_title( $this->slug_endpoint ); + } + + /** + * Hooks! We do the dirty work here, so you don't have to! :) + * + * More hooks are available in the setup_template_parts() method. + * + * @since 2.6.0 + */ + protected function setup_hooks() { + add_action( 'rest_api_init', array( $this, 'register_route' ) ); + add_action( 'bp_embed_content', array( $this, 'inject_content' ) ); + + add_filter( 'embed_template', array( $this, 'setup_template_parts' ) ); + add_filter( 'post_embed_url', array( $this, 'filter_embed_url' ) ); + add_filter( 'embed_html', array( $this, 'filter_embed_html' ) ); + add_filter( 'oembed_discovery_links', array( $this, 'add_oembed_discovery_links' ) ); + add_filter( 'rest_pre_serve_request', array( $this, 'oembed_xml_request' ), 20, 4 ); + } + + /** HOOKS ***************************************************************/ + + /** + * Register the oEmbed REST API route. + * + * @since 2.6.0 + */ + public function register_route() { + /** This filter is documented in wp-includes/class-wp-oembed-controller.php */ + $maxwidth = apply_filters( 'oembed_default_width', 600 ); + + // Required arguments. + $args = array( + 'url' => array( + 'required' => true, + 'sanitize_callback' => 'esc_url_raw', + ), + 'format' => array( + 'default' => 'json', + 'sanitize_callback' => 'wp_oembed_ensure_format', + ), + 'maxwidth' => array( + 'default' => $maxwidth, + 'sanitize_callback' => 'absint', + ) + ); + + // Merge custom arguments here. + $args = $args + (array) $this->set_route_args(); + + register_rest_route( 'oembed/1.0', "/embed/{$this->slug_endpoint}", array( + array( + 'methods' => WP_REST_Server::READABLE, + 'callback' => array( $this, 'get_item' ), + 'args' => $args + ), + ) ); + } + + /** + * Set up custom embed template parts for BuddyPress use. + * + * @since 2.6.0 + * + * @param string $template File path to current embed template. + * @return string + */ + public function setup_template_parts( $template ) { + // Determine if we're on our BP page. + if ( ! $this->is_page() || is_404() ) { + return $template; + } + + // Set up some BP-specific embed template overrides. + add_action( 'get_template_part_embed', array( $this, 'content_buffer_start' ), -999, 2 ); + add_action( 'get_footer', array( $this, 'content_buffer_end' ), -999 ); + + // Return the original WP embed template. + return $template; + } + + /** + * Start object buffer. + * + * We're going to override WP's get_template_part( 'embed, 'content' ) call + * and inject our own template for BuddyPress use. + * + * @since 2.6.0 + */ + public function content_buffer_start( $slug, $name ) { + if ( 'embed' !== $slug || 'content' !== $name ) { + return; + } + + // Start the buffer to wipe out get_template_part( 'embed, 'content' ). + ob_start(); + } + + /** + * End object buffer. + * + * We're going to override WP's get_template_part( 'embed, 'content' ) call + * and inject our own template for BuddyPress use. + * + * @since 2.6.0 + */ + public function content_buffer_end( $name ) { + if ( 'embed' !== $name || is_404() ) { + return; + } + + // Wipe out get_template_part( 'embed, 'content' ). + ob_end_clean(); + + // Start our custom BuddyPress embed template! + echo '<div '; + post_class( 'wp-embed' ); + echo '>'; + + // Template part for our embed header. + bp_get_asset_template_part( 'embeds/header', bp_current_component() ); + + /** + * Inject BuddyPress embed content on this hook. + * + * You shouldn't really need to use this if you extend the + * {@link BP_oEmbed_Component} class. + * + * @since 2.6.0 + */ + do_action( 'bp_embed_content' ); + + // Template part for our embed footer. + bp_get_asset_template_part( 'embeds/footer', bp_current_component() ); + + echo '</div>'; + } + + /** + * Adds oEmbed discovery links on single activity pages. + * + * @since 2.6.0 + * + * @param string $retval Current discovery links. + * @return string + */ + public function add_oembed_discovery_links( $retval ) { + if ( ! $this->is_page() ) { + return $retval; + } + + $permalink = $this->set_permalink(); + if ( empty( $permalink ) ) { + return $retval; + } + + add_filter( 'rest_url' , array( $this, 'filter_rest_url' ) ); + + $retval = '<link rel="alternate" type="application/json+oembed" href="' . esc_url( get_oembed_endpoint_url( $permalink ) ) . '" />' . "\n"; + + if ( class_exists( 'SimpleXMLElement' ) ) { + $retval .= '<link rel="alternate" type="text/xml+oembed" href="' . esc_url( get_oembed_endpoint_url( $permalink, 'xml' ) ) . '" />' . "\n"; + } + + remove_filter( 'rest_url' , array( $this, 'filter_rest_url' ) ); + + return $retval; + } + + /** + * Fetch our oEmbed response data to return. + * + * A simplified version of {@link get_oembed_response_data()}. + * + * @since 2.6.0 + * + * @link http://oembed.com/ View the 'Response parameters' section for more details. + * + * @param array $item Custom oEmbed response data. + * @param int $width The requested width. + * @return array + */ + protected function get_oembed_response_data( $item, $width ) { + $data = wp_parse_args( $item, array( + 'version' => '1.0', + 'provider_name' => get_bloginfo( 'name' ), + 'provider_url' => get_home_url(), + 'author_name' => get_bloginfo( 'name' ), + 'author_url' => get_home_url(), + 'title' => ucfirst( $this->slug_endpoint ), + 'type' => 'rich', + ) ); + + /** This filter is documented in /wp-includes/embed.php */ + $min_max_width = apply_filters( 'oembed_min_max_width', array( + 'min' => 200, + 'max' => 600 + ) ); + + $width = min( max( $min_max_width['min'], $width ), $min_max_width['max'] ); + $height = max( ceil( $width / 16 * 9 ), 200 ); + + $data['width'] = absint( $width ); + $data['height'] = absint( $height ); + + // Set 'html' parameter. + if ( 'video' === $data['type'] || 'rich' === $data['type'] ) { + // Fake a WP post so we can use get_post_embed_html(). + $post = new stdClass; + $post->post_content = $data['content']; + $post->post_title = $data['title']; + + $data['html'] = get_post_embed_html( $data['width'], $data['height'], $post ); + } + + // Remove temporary parameters. + unset( $data['content'] ); + + return $data; + } + + /** + * Callback for the API endpoint. + * + * Returns the JSON object for the item. + * + * @since 2.6.0 + * + * @param WP_REST_Request $request Full data about the request. + * @return WP_Error|array oEmbed response data or WP_Error on failure. + */ + public function get_item( $request ) { + $url = $request['url']; + + $data = false; + + $item_id = (int) $this->validate_url_to_item_id( $url ); + + if ( ! empty( $item_id ) ) { + // Add markers to tell that we're embedding a single activity. + // This is needed for various oEmbed response data filtering. + if ( empty( buddypress()->{$this->slug_endpoint} ) ) { + buddypress()->{$this->slug_endpoint} = new stdClass; + } + buddypress()->{$this->slug_endpoint}->embedurl_in_progress = $url; + buddypress()->{$this->slug_endpoint}->embedid_in_progress = $item_id; + + // Save custom route args as well. + $custom_args = array_keys( (array) $this->set_route_args() ); + if ( ! empty( $custom_args ) ) { + buddypress()->{$this->slug_endpoint}->embedargs_in_progress = array(); + + foreach( $custom_args as $arg ) { + if ( isset( $request[ $arg ] ) ) { + buddypress()->{$this->slug_endpoint}->embedargs_in_progress[ $arg ] = $request[ $arg ]; + } + } + } + + // Grab custom oEmbed response data. + $item = $this->set_oembed_response_data( $item_id ); + + // Set oEmbed response data. + $data = $this->get_oembed_response_data( $item, $request['maxwidth'] ); + } + + if ( ! $data ) { + return new WP_Error( 'oembed_invalid_url', get_status_header_desc( 404 ), array( 'status' => 404 ) ); + } + + return $data; + } + + /** + * If oEmbed request wants XML, return XML instead of JSON. + * + * Basically a copy of {@link _oembed_rest_pre_serve_request()}. Unfortunate + * that we have to duplicate this just for a URL check. + * + * @since 2.6.0 + * + * @param bool $served Whether the request has already been served. + * @param WP_HTTP_ResponseInterface $result Result to send to the client. Usually a WP_REST_Response. + * @param WP_REST_Request $request Request used to generate the response. + * @param WP_REST_Server $server Server instance. + * @return bool + */ + public function oembed_xml_request( $served, $result, $request, $server ) { + $params = $request->get_params(); + + if ( ! isset( $params['format'] ) || 'xml' !== $params['format'] ) { + return $served; + } + + // Validate URL against our oEmbed endpoint. If not valid, bail. + // This is our mod to _oembed_rest_pre_serve_request(). + $query_params = $request->get_query_params(); + if ( false === $this->validate_url_to_item_id( $query_params['url'] ) ) { + return $served; + } + + // Embed links inside the request. + $data = $server->response_to_data( $result, false ); + + if ( ! class_exists( 'SimpleXMLElement' ) ) { + status_header( 501 ); + die( get_status_header_desc( 501 ) ); + } + + $result = _oembed_create_xml( $data ); + + // Bail if there's no XML. + if ( ! $result ) { + status_header( 501 ); + return get_status_header_desc( 501 ); + } + + if ( ! headers_sent() ) { + $server->send_header( 'Content-Type', 'text/xml; charset=' . get_option( 'blog_charset' ) ); + } + + echo $result; + + return true; + } + + /** + * Pass our BuddyPress activity permalink for embedding. + * + * @since 2.6.0 + * + * @see bp_activity_embed_rest_route_callback() + * + * @param string $retval Current embed URL + * @return string + */ + public function filter_embed_url( $retval ) { + if ( false === isset( buddypress()->{$this->slug_endpoint}->embedurl_in_progress ) && ! $this->is_page() ) { + return $retval; + } + + $url = $this->is_page() ? $this->set_permalink() : buddypress()->{$this->slug_endpoint}->embedurl_in_progress; + $url = trailingslashit( $url ); + + // This is for the 'WordPress Embed' block + // @see bp_activity_embed_comments_button() + if ( 'the_permalink' !== current_filter() ) { + $url = add_query_arg( 'embed', 'true', trailingslashit( $url ) ); + + // Add custom route args to iframe. + if ( ! empty( buddypress()->{$this->slug_endpoint}->embedargs_in_progress ) ) { + foreach( buddypress()->{$this->slug_endpoint}->embedargs_in_progress as $key => $value ) { + $url = add_query_arg( $key, $value, $url ); + } + } + } + + return $url; + } + + /** + * Filters the embed HTML for our BP oEmbed endpoint. + * + * @since 2.6.0 + * + * @param string $retval Current embed HTML + * @return string + */ + public function filter_embed_html( $retval ) { + if ( false === isset( buddypress()->{$this->slug_endpoint}->embedurl_in_progress ) && ! $this->is_page() ) { + return $retval; + } + + $url = $this->set_permalink(); + + $item_id = $this->is_page() ? $this->validate_url_to_item_id( $url ) : buddypress()->{$this->slug_endpoint}->embedid_in_progress; + + // Change 'Embedded WordPress Post' to custom title. + $custom_title = $this->set_iframe_title( $item_id ); + if ( ! empty( $custom_title ) ) { + $title_pos = strpos( $retval, 'title=' ) + 7; + $title_end_pos = strpos( $retval, '"', $title_pos ); + + $retval = substr_replace( $retval, esc_attr( $custom_title ), $title_pos, $title_end_pos - $title_pos ); + } + + // Add 'max-width' CSS attribute to IFRAME. + // This will make our oEmbeds responsive. + if ( false === strpos( $retval, 'style="max-width' ) ) { + $retval = str_replace( '<iframe', '<iframe style="max-width:100%"', $retval ); + } + + // Remove default <blockquote> + $retval = substr( $retval, strpos( $retval, '</blockquote>' ) + 13 ); + + // Set up new fallback HTML + // @todo Maybe use KSES? + $fallback_html = $this->set_fallback_html( $item_id ); + + /** + * Dynamic filter to return BP oEmbed HTML. + * + * @since 2.6.0 + * + * @var string $retval + */ + return apply_filters( "bp_{$this->slug_endpoint}_embed_html", $fallback_html . $retval ); + } + + /** + * Append our custom slug endpoint to oEmbed endpoint URL. + * + * Meant to be used as a filter on 'rest_url' before any call to + * {@link get_oembed_endpoint_url()} is used. + * + * @since 2.6.0 + * + * @see add_oembed_discovery_links() + * + * @param string $retval Current oEmbed endpoint URL + * @return string + */ + public function filter_rest_url( $retval = '' ) { + return $retval . "/{$this->slug_endpoint}"; + } + + /** + * Inject content into the embed template. + * + * @since 2.6.0 + */ + public function inject_content() { + if ( ! $this->is_page() ) { + return; + } + + $this->content(); + } +} \ No newline at end of file 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 a8c9cc2056785202a9f4242f9e405380cf0e7697..7a92428afbd8bddeae0758b3d594a970c9fbd119 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 @@ -146,18 +146,6 @@ class BP_Core_User { /** * Populate the instantiated class with data based on the User ID provided. - * - * @uses bp_core_get_userurl() Returns the URL with no HTML markup for - * a user based on their user id. - * @uses bp_core_get_userlink() Returns a HTML formatted link for a - * user with the user's full name as the link text. - * @uses bp_core_get_user_email() Returns the email address for the - * user based on user ID. - * @uses bp_get_user_meta() BP function returns the value of passed - * usermeta name from usermeta table. - * @uses bp_core_fetch_avatar() Returns HTML formatted avatar for a user - * @uses bp_profile_last_updated_date() Returns the last updated date - * for a user. */ public function populate() { @@ -934,7 +922,7 @@ class BP_Core_User { $existing = self::get_last_activity( $user_id ); - if ( empty( $existing ) ) { + if ( empty( $existing ) || empty( $existing[ $user_id ]['activity_id'] ) ) { return false; } 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 3cdfc0eeca227bfd855cbabb504cdba7464a4610..3f526079ed436390d937c20bd7b92307a43e56e5 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 @@ -24,7 +24,6 @@ class BP_Core extends BP_Component { * * @since 1.5.0 * - * @uses BP_Core::bootstrap() */ public function __construct() { parent::start( @@ -254,6 +253,12 @@ class BP_Core extends BP_Component { // bp-notifications instead. $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(); + } + /** * Used to determine if user has admin rights on current content. If the * logged in user is viewing their own profile and wants to delete diff --git a/wp-content/plugins/buddypress/bp-core/classes/class-bp-email-recipient.php b/wp-content/plugins/buddypress/bp-core/classes/class-bp-email-recipient.php index 02d8449e5b6be541fd421e85d059e9a50582815f..4cc17c4de1cf4e64f23737276be053666fc1a0eb 100644 --- a/wp-content/plugins/buddypress/bp-core/classes/class-bp-email-recipient.php +++ b/wp-content/plugins/buddypress/bp-core/classes/class-bp-email-recipient.php @@ -55,19 +55,23 @@ class BP_Email_Recipient { public function __construct( $email_or_user, $name = '' ) { $name = sanitize_text_field( $name ); - // User ID, WP_User object. - if ( is_int( $email_or_user ) || is_object( $email_or_user ) ) { - $this->user_object = is_object( $email_or_user ) ? $email_or_user : get_user_by( 'id', $email_or_user ); - - if ( $this->user_object ) { - // This is escaped with esc_html in bp_core_get_user_displayname() - $name = wp_specialchars_decode( bp_core_get_user_displayname( $this->user_object->ID ), ENT_QUOTES ); + // User ID, email address or WP_User object. + if ( is_int( $email_or_user ) || ( is_string( $email_or_user ) && is_email( $email_or_user ) ) || is_object( $email_or_user ) ) { + // We already have a WP user. + if ( is_object( $email_or_user ) ) { + $this->user_object = $email_or_user; + + // Query for WP user by user ID. + } elseif ( is_int( $email_or_user ) ) { + $this->user_object = get_user_by( 'id', $email_or_user ); + } - $this->address = $this->user_object->user_email; - $this->name = sanitize_text_field( $name ); + // Set email address. + if ( empty( $this->user_object ) && is_email( $email_or_user ) ) { + $address = $email_or_user; } - // Array, address, and name. + // Array or miscellaneous string. } else { if ( ! is_array( $email_or_user ) ) { $email_or_user = array( $email_or_user => $name ); @@ -80,11 +84,30 @@ class BP_Email_Recipient { $address = key( $email_or_user ); $name = current( $email_or_user ); } + } - if ( is_email( $address ) ) { - $this->address = sanitize_email( $address ); - } + // Set address if we have one. + if ( ! empty( $address ) ) { + $this->address = sanitize_email( $address ); + } + + // Still no user object; try to query user by email address. + if ( empty( $this->user_object ) ) { + $this->get_user( 'search-email' ); + } + + // We have a user object; so set address and name from DB. + if ( $this->user_object ) { + // This is escaped with esc_html in bp_core_get_user_displayname() + $wp_name = wp_specialchars_decode( bp_core_get_user_displayname( $this->user_object->ID ), ENT_QUOTES ); + + $this->address = $this->user_object->user_email; + $this->name = sanitize_text_field( $wp_name ); + + } + // Custom name override. + if ( $name ) { $this->name = $name; } diff --git a/wp-content/plugins/buddypress/bp-core/classes/class-bp-embed.php b/wp-content/plugins/buddypress/bp-core/classes/class-bp-embed.php index 7ae9ec3c30d9118f7220e58588109aea7eec2af2..54f9bb52e0e59c71b92a3600bca28aae993513b0 100644 --- a/wp-content/plugins/buddypress/bp-core/classes/class-bp-embed.php +++ b/wp-content/plugins/buddypress/bp-core/classes/class-bp-embed.php @@ -75,11 +75,6 @@ class BP_Embed extends WP_Embed { * enabled, then the URL will be passed to {@link BP_Embed::parse_oembed()} * for oEmbed parsing. * - * @uses wp_parse_args() - * @uses wp_embed_defaults() - * @uses current_user_can() - * @uses _wp_oembed_get_object() - * @uses WP_Embed::maybe_make_link() * * @param array $attr Shortcode attributes. * @param string $url The URL attempting to be embeded. @@ -174,11 +169,7 @@ class BP_Embed extends WP_Embed { * * View an example to add support in {@link bp_activity_embed()}. * - * @uses apply_filters() Filters cache. - * @uses do_action() To save cache. - * @uses wp_oembed_get() Connects to oEmbed provider and returns HTML * on success. - * @uses WP_Embed::maybe_make_link() Process URL for hyperlinking on * oEmbed failure. * * @param int $id ID to do the caching for. 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 15269e000243d96b529e6c357e5ace9df7c21c13..95aab0c083e12c02b060e5b4128f25251ef7c913 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 @@ -788,18 +788,15 @@ class BP_User_Query { ) ); // Switch to the root blog, where member type taxonomies live. + $site_id = bp_get_taxonomy_term_site_id( 'bp_member_type' ); $switched = false; - if ( ! bp_is_root_blog() ) { - switch_to_blog( bp_get_root_blog_id() ); + if ( $site_id !== get_current_blog_id() ) { + switch_to_blog( $site_id ); $switched = true; } $sql_clauses = $tax_query->get_sql( 'u', $this->uid_name ); - if ( $switched ) { - restore_current_blog(); - } - $clause = ''; // The no_results clauses are the same between IN and NOT IN. @@ -815,6 +812,10 @@ class BP_User_Query { $clause = "u.{$this->uid_name} IN ( SELECT object_id FROM $wpdb->term_relationships WHERE {$matches[0]} )"; } + if ( $switched ) { + restore_current_blog(); + } + return $clause; } } diff --git a/wp-content/plugins/buddypress/bp-core/classes/class-bp-walker-category-checklist.php b/wp-content/plugins/buddypress/bp-core/classes/class-bp-walker-category-checklist.php index 7c495ca794f326c5b83f28ada8a95fd8f04e85df..3293d2a7b9abe2b820344fd98bdfb1d9762dc47a 100644 --- a/wp-content/plugins/buddypress/bp-core/classes/class-bp-walker-category-checklist.php +++ b/wp-content/plugins/buddypress/bp-core/classes/class-bp-walker-category-checklist.php @@ -84,7 +84,7 @@ class BP_Walker_Category_Checklist extends Walker { } else { /** This filter is documented in wp-includes/category-template.php */ $output .= "\n<li id='{$taxonomy}-{$category->term_id}'$class>" . - '<label class="selectit"><input value="' . $category->slug . '" type="checkbox" name="'.$name.'[]" id="in-'.$taxonomy.'-' . $category->term_id . '"' . + '<label for="in-'.$taxonomy.'-' . $category->term_id . '" class="selectit"><input value="' . $category->slug . '" type="checkbox" name="'.$name.'[]" id="in-'.$taxonomy.'-' . $category->term_id . '"' . checked( in_array( $category->term_id, $args['selected_cats'] ), true, false ) . disabled( empty( $args['disabled'] ), false, false ) . ' /> ' . esc_html( apply_filters( 'the_category', $category->description ) ) . '</label>'; diff --git a/wp-content/plugins/buddypress/bp-core/css/avatar-rtl.css b/wp-content/plugins/buddypress/bp-core/css/avatar-rtl.css index 5cb9de7e7908860e188a6cb7379045aacf656e0d..1a76a49795d02e83ccee8d688c16f3703d3bbeec 100644 --- a/wp-content/plugins/buddypress/bp-core/css/avatar-rtl.css +++ b/wp-content/plugins/buddypress/bp-core/css/avatar-rtl.css @@ -142,7 +142,7 @@ div.bp-avatar-nav { .drag-drop .drag-drop-inside p.drag-drop-buttons { margin: auto; - text-align: auto; + text-align: inherit; } .drag-drop #drag-drop-area { diff --git a/wp-content/plugins/buddypress/bp-core/css/avatar-rtl.min.css b/wp-content/plugins/buddypress/bp-core/css/avatar-rtl.min.css index 7351369e5209357a32b7757f90d6b754b691db10..d705eb1d098c93116af2f88676da26026aba258c 100644 --- a/wp-content/plugins/buddypress/bp-core/css/avatar-rtl.min.css +++ b/wp-content/plugins/buddypress/bp-core/css/avatar-rtl.min.css @@ -1 +1 @@ -div.bp-avatar-status,div.bp-cover-image-status{clear:both;margin:1em 0}div.bp-avatar-status p.updated,div.bp-cover-image-status p.updated{display:block;padding:10px 15px}div.bp-avatar-status p.success,div.bp-cover-image-status p.success{background-color:#efc;border:1px solid #591;color:#250}div.bp-avatar-status p.error,div.bp-cover-image-status p.error{background-color:#fdc;border:1px solid #a00;color:#800}div.bp-avatar-status .bp-progress,div.bp-cover-image-status .bp-progress{background:0 0;border:1px solid #d1d1d1;float:left;height:22px;line-height:2em;margin:6px 0 2px 10px;padding:0;overflow:hidden;width:200px}div.bp-avatar-status .bp-bar,div.bp-cover-image-status .bp-bar{background-color:#c3ff88;width:0;height:100%;z-index:9}.bp-uploader-progress div.error{background-color:#fdc;border:1px solid #a00;color:#800;display:block;font-size:90%;padding:10px 15px}#buddypress p.warning,body.profile_page_bp-profile-edit.modal-open #TB_ajaxContent p.warning,body.users_page_bp-profile-edit.modal-open #TB_ajaxContent p.warning{background-color:#ffd;border:1px solid #cb2;color:#440;display:block;font-size:90%;margin:1em 0;padding:10px 15px}div.bp-avatar-nav{background:0 0;clear:both;margin:10px 0;overflow:hidden}.avatar-nav-items{margin:0;padding:0}.bp-avatar-nav .avatar-nav-items li.avatar-nav-item{float:right!important;margin:0;list-style:none}.avatar-nav-items li a{display:block;padding:5px 10px;text-decoration:none}.bp-avatar-nav ul:after,.bp-avatar-nav ul:before{content:" ";display:table}.bp-avatar-nav ul:after{clear:both}.bp-avatar-nav ul{border-bottom:1px solid #ccc;margin-bottom:10px}.bp-avatar-nav ul.avatar-nav-items li.current{border:1px solid #ccc;border-bottom-color:#fff;border-top-right-radius:4px;border-top-left-radius:4px;margin-bottom:-1px}.bp-avatar-nav li.current a{background:0 0;color:inherit;font-weight:700;opacity:.8;outline:0}#drag-drop-area{border:4px dashed #bbb;height:200px}.drag-drop.drag-over #drag-drop-area{border-color:#83b4d8}.drag-drop-inside p{display:none}.drag-drop-inside p.drag-drop-buttons{margin-top:80px;text-align:center}.drag-drop .drag-drop-inside p.drag-drop-buttons{margin:auto;text-align:auto}.drag-drop #drag-drop-area{box-sizing:border-box;display:table;height:100%;width:100%}.drag-drop .drag-drop-inside{display:table-cell;padding:40px 0;text-align:center;vertical-align:middle}.drag-drop .drag-drop-inside p,.drag-drop-inside p.drag-drop-buttons{display:block}.drag-drop .drag-drop-inside p{color:#aaa;font-size:110%;margin:5px 0;text-align:center}.drag-drop-inside p.drag-drop-info{margin-top:0}@supports (-ms-accelerator:true){.drag-drop-inside p.drag-drop-info{display:block}}#avatar-to-crop{margin:0 auto 20px;text-align:right}#bp-webcam-avatar #avatar-to-crop{float:right;margin:0 0 20px}#avatar-to-crop .jcrop-holder{margin:0 auto}.avatar-crop-management{clear:right;overflow:hidden;padding-top:20px;text-align:center}#bp-webcam-avatar .avatar-crop-management{clear:none;float:none;overflow:visible;padding-top:0;width:auto}#avatar-crop-pane{margin:0 auto;overflow:hidden}#bp-webcam-avatar #avatar-to-crop{border:1px solid #eee;max-width:100%;width:100%}@media screen and (min-width:801px){#bp-webcam-avatar #avatar-to-crop{max-width:64%;width:64%}}#avatar-crop-actions a{display:block}#bp-webcam-avatar #avatar-crop-actions{float:right;margin:0 0 20px;width:50%}#avatar-crop-actions a.button{margin-top:10px}#bp-webcam-avatar #avatar-crop-actions a.button{display:block;margin:0 0 5px;padding:4px 0;width:100%}#avatar-crop-pane canvas,#avatar-crop-pane img,#avatar-to-crop img,#avatar-upload-form img,#create-group-form img,#group-settings-form img{border:none!important;max-width:none!important}#bp-webcam-avatar video{float:right;margin-bottom:0;max-width:100%;width:100%;-webkit-transform:scaleX(-1);transform:scaleX(-1)}#bp-webcam-avatar #avatar-crop-pane{border:2px dashed #bbb;clear:right;float:left;margin:0 0 10px 40px;overflow:hidden}#bp-webcam-avatar .avatar-crop-management #avatar-crop-pane{max-width:150px;max-height:150px}#avatar-crop-pane canvas{height:auto;width:100%;max-width:100%}.group-avatar .bp-avatar .avatar-crop-management{margin-right:0;padding-top:0;width:auto}.bp-avatar .item{overflow:hidden}.bp-avatar .avatar-crop-management.adjust{float:right;clear:none;padding-top:0}.bp-avatar #avatar-to-crop.adjust{float:right;margin-left:20px}@media screen and (max-width:480px){#bp-webcam-avatar .avatar-crop-management #avatar-crop-actions,#bp-webcam-avatar .avatar-crop-management #avatar-crop-pane{float:none}#bp-webcam-avatar .avatar-crop-management #avatar-crop-pane{margin:0 auto 10px}#bp-webcam-avatar .avatar-crop-management #avatar-crop-actions{width:auto}}@media screen and (min-width:801px){#bp-webcam-avatar .avatar-crop-management{clear:none;float:left}#bp-webcam-avatar .avatar-crop-management #avatar-crop-pane{float:none;margin:0 auto 10px}#bp-webcam-avatar .avatar-crop-management #avatar-crop-actions{float:right;width:100%}}body.profile_page_bp-profile-edit.modal-open #TB_ajaxContent,body.users_page_bp-profile-edit.modal-open #TB_ajaxContent{height:95%!important;width:95%!important}body.profile_page_bp-profile-edit.modal-open #TB_ajaxContent p.updated,body.profile_page_bp-profile-edit.modal-open #TB_ajaxContent p.warning,body.users_page_bp-profile-edit.modal-open #TB_ajaxContent p.updated,body.users_page_bp-profile-edit.modal-open #TB_ajaxContent p.warning{display:block;padding:10px 15px}.wp-admin #TB_window .bp-avatar #avatar-to-crop{float:right;margin:0}.wp-admin #TB_window .bp-avatar #bp-webcam-avatar #avatar-to-crop{margin-bottom:20px}@media screen and (min-width:783px){.wp-admin #TB_window .bp-avatar .avatar-crop-management{clear:none;float:right;margin-right:20px;padding-top:0;text-align:center}}.wp-admin #TB_window .bp-avatar #avatar-to-crop video{width:100%}.wp-admin #TB_window .bp-avatar .avatar-crop-management a.button{height:auto;line-height:inherit}@media screen and (min-width:810px){.wp-admin #TB_window .bp-avatar #bp-webcam-avatar #avatar-to-crop{max-width:none;width:76%}.wp-admin #TB_window #bp-webcam-avatar .avatar-crop-management{max-width:none;width:auto}} \ No newline at end of file +div.bp-avatar-status,div.bp-cover-image-status{clear:both;margin:1em 0}div.bp-avatar-status p.updated,div.bp-cover-image-status p.updated{display:block;padding:10px 15px}div.bp-avatar-status p.success,div.bp-cover-image-status p.success{background-color:#efc;border:1px solid #591;color:#250}div.bp-avatar-status p.error,div.bp-cover-image-status p.error{background-color:#fdc;border:1px solid #a00;color:#800}div.bp-avatar-status .bp-progress,div.bp-cover-image-status .bp-progress{background:0 0;border:1px solid #d1d1d1;float:left;height:22px;line-height:2em;margin:6px 0 2px 10px;padding:0;overflow:hidden;width:200px}div.bp-avatar-status .bp-bar,div.bp-cover-image-status .bp-bar{background-color:#c3ff88;width:0;height:100%;z-index:9}.bp-uploader-progress div.error{background-color:#fdc;border:1px solid #a00;color:#800;display:block;font-size:90%;padding:10px 15px}#buddypress p.warning,body.profile_page_bp-profile-edit.modal-open #TB_ajaxContent p.warning,body.users_page_bp-profile-edit.modal-open #TB_ajaxContent p.warning{background-color:#ffd;border:1px solid #cb2;color:#440;display:block;font-size:90%;margin:1em 0;padding:10px 15px}div.bp-avatar-nav{background:0 0;clear:both;margin:10px 0;overflow:hidden}.avatar-nav-items{margin:0;padding:0}.bp-avatar-nav .avatar-nav-items li.avatar-nav-item{float:right!important;margin:0;list-style:none}.avatar-nav-items li a{display:block;padding:5px 10px;text-decoration:none}.bp-avatar-nav ul:after,.bp-avatar-nav ul:before{content:" ";display:table}.bp-avatar-nav ul:after{clear:both}.bp-avatar-nav ul{border-bottom:1px solid #ccc;margin-bottom:10px}.bp-avatar-nav ul.avatar-nav-items li.current{border:1px solid #ccc;border-bottom-color:#fff;border-top-right-radius:4px;border-top-left-radius:4px;margin-bottom:-1px}.bp-avatar-nav li.current a{background:0 0;color:inherit;font-weight:700;opacity:.8;outline:0}#drag-drop-area{border:4px dashed #bbb;height:200px}.drag-drop.drag-over #drag-drop-area{border-color:#83b4d8}.drag-drop-inside p{display:none}.drag-drop-inside p.drag-drop-buttons{margin-top:80px;text-align:center}.drag-drop .drag-drop-inside p.drag-drop-buttons{margin:auto;text-align:inherit}.drag-drop #drag-drop-area{box-sizing:border-box;display:table;height:100%;width:100%}.drag-drop .drag-drop-inside{display:table-cell;padding:40px 0;text-align:center;vertical-align:middle}.drag-drop .drag-drop-inside p,.drag-drop-inside p.drag-drop-buttons{display:block}.drag-drop .drag-drop-inside p{color:#aaa;font-size:110%;margin:5px 0;text-align:center}.drag-drop-inside p.drag-drop-info{margin-top:0}@supports (-ms-accelerator:true){.drag-drop-inside p.drag-drop-info{display:block}}#avatar-to-crop{margin:0 auto 20px;text-align:right}#bp-webcam-avatar #avatar-to-crop{float:right;margin:0 0 20px}#avatar-to-crop .jcrop-holder{margin:0 auto}.avatar-crop-management{clear:right;overflow:hidden;padding-top:20px;text-align:center}#bp-webcam-avatar .avatar-crop-management{clear:none;float:none;overflow:visible;padding-top:0;width:auto}#avatar-crop-pane{margin:0 auto;overflow:hidden}#bp-webcam-avatar #avatar-to-crop{border:1px solid #eee;max-width:100%;width:100%}@media screen and (min-width:801px){#bp-webcam-avatar #avatar-to-crop{max-width:64%;width:64%}}#avatar-crop-actions a{display:block}#bp-webcam-avatar #avatar-crop-actions{float:right;margin:0 0 20px;width:50%}#avatar-crop-actions a.button{margin-top:10px}#bp-webcam-avatar #avatar-crop-actions a.button{display:block;margin:0 0 5px;padding:4px 0;width:100%}#avatar-crop-pane canvas,#avatar-crop-pane img,#avatar-to-crop img,#avatar-upload-form img,#create-group-form img,#group-settings-form img{border:none!important;max-width:none!important}#bp-webcam-avatar video{float:right;margin-bottom:0;max-width:100%;width:100%;-webkit-transform:scaleX(-1);transform:scaleX(-1)}#bp-webcam-avatar #avatar-crop-pane{border:2px dashed #bbb;clear:right;float:left;margin:0 0 10px 40px;overflow:hidden}#bp-webcam-avatar .avatar-crop-management #avatar-crop-pane{max-width:150px;max-height:150px}#avatar-crop-pane canvas{height:auto;width:100%;max-width:100%}.group-avatar .bp-avatar .avatar-crop-management{margin-right:0;padding-top:0;width:auto}.bp-avatar .item{overflow:hidden}.bp-avatar .avatar-crop-management.adjust{float:right;clear:none;padding-top:0}.bp-avatar #avatar-to-crop.adjust{float:right;margin-left:20px}@media screen and (max-width:480px){#bp-webcam-avatar .avatar-crop-management #avatar-crop-actions,#bp-webcam-avatar .avatar-crop-management #avatar-crop-pane{float:none}#bp-webcam-avatar .avatar-crop-management #avatar-crop-pane{margin:0 auto 10px}#bp-webcam-avatar .avatar-crop-management #avatar-crop-actions{width:auto}}@media screen and (min-width:801px){#bp-webcam-avatar .avatar-crop-management{clear:none;float:left}#bp-webcam-avatar .avatar-crop-management #avatar-crop-pane{float:none;margin:0 auto 10px}#bp-webcam-avatar .avatar-crop-management #avatar-crop-actions{float:right;width:100%}}body.profile_page_bp-profile-edit.modal-open #TB_ajaxContent,body.users_page_bp-profile-edit.modal-open #TB_ajaxContent{height:95%!important;width:95%!important}body.profile_page_bp-profile-edit.modal-open #TB_ajaxContent p.updated,body.profile_page_bp-profile-edit.modal-open #TB_ajaxContent p.warning,body.users_page_bp-profile-edit.modal-open #TB_ajaxContent p.updated,body.users_page_bp-profile-edit.modal-open #TB_ajaxContent p.warning{display:block;padding:10px 15px}.wp-admin #TB_window .bp-avatar #avatar-to-crop{float:right;margin:0}.wp-admin #TB_window .bp-avatar #bp-webcam-avatar #avatar-to-crop{margin-bottom:20px}@media screen and (min-width:783px){.wp-admin #TB_window .bp-avatar .avatar-crop-management{clear:none;float:right;margin-right:20px;padding-top:0;text-align:center}}.wp-admin #TB_window .bp-avatar #avatar-to-crop video{width:100%}.wp-admin #TB_window .bp-avatar .avatar-crop-management a.button{height:auto;line-height:inherit}@media screen and (min-width:810px){.wp-admin #TB_window .bp-avatar #bp-webcam-avatar #avatar-to-crop{max-width:none;width:76%}.wp-admin #TB_window #bp-webcam-avatar .avatar-crop-management{max-width:none;width:auto}} \ No newline at end of file diff --git a/wp-content/plugins/buddypress/bp-core/css/avatar.css b/wp-content/plugins/buddypress/bp-core/css/avatar.css index 1187eba39d3328eac10018194ddbaf32d765d7c2..279d9542baca013c9ae2d2360b9335ed62f125af 100644 --- a/wp-content/plugins/buddypress/bp-core/css/avatar.css +++ b/wp-content/plugins/buddypress/bp-core/css/avatar.css @@ -142,7 +142,7 @@ div.bp-avatar-nav { .drag-drop .drag-drop-inside p.drag-drop-buttons { margin: auto; - text-align: auto; + text-align: inherit; } .drag-drop #drag-drop-area { diff --git a/wp-content/plugins/buddypress/bp-core/css/avatar.min.css b/wp-content/plugins/buddypress/bp-core/css/avatar.min.css index 5210a9a782f60ad8140e68c2feaa2e73c024bde4..80f0414ec9056362336695e0ad774480f80b8f1a 100644 --- a/wp-content/plugins/buddypress/bp-core/css/avatar.min.css +++ b/wp-content/plugins/buddypress/bp-core/css/avatar.min.css @@ -1 +1 @@ -div.bp-avatar-status,div.bp-cover-image-status{clear:both;margin:1em 0}div.bp-avatar-status p.updated,div.bp-cover-image-status p.updated{display:block;padding:10px 15px}div.bp-avatar-status p.success,div.bp-cover-image-status p.success{background-color:#efc;border:1px solid #591;color:#250}div.bp-avatar-status p.error,div.bp-cover-image-status p.error{background-color:#fdc;border:1px solid #a00;color:#800}div.bp-avatar-status .bp-progress,div.bp-cover-image-status .bp-progress{background:0 0;border:1px solid #d1d1d1;float:right;height:22px;line-height:2em;margin:6px 10px 2px 0;padding:0;overflow:hidden;width:200px}div.bp-avatar-status .bp-bar,div.bp-cover-image-status .bp-bar{background-color:#c3ff88;width:0;height:100%;z-index:9}.bp-uploader-progress div.error{background-color:#fdc;border:1px solid #a00;color:#800;display:block;font-size:90%;padding:10px 15px}#buddypress p.warning,body.profile_page_bp-profile-edit.modal-open #TB_ajaxContent p.warning,body.users_page_bp-profile-edit.modal-open #TB_ajaxContent p.warning{background-color:#ffd;border:1px solid #cb2;color:#440;display:block;font-size:90%;margin:1em 0;padding:10px 15px}div.bp-avatar-nav{background:0 0;clear:both;margin:10px 0;overflow:hidden}.avatar-nav-items{margin:0;padding:0}.bp-avatar-nav .avatar-nav-items li.avatar-nav-item{float:left!important;margin:0;list-style:none}.avatar-nav-items li a{display:block;padding:5px 10px;text-decoration:none}.bp-avatar-nav ul:after,.bp-avatar-nav ul:before{content:" ";display:table}.bp-avatar-nav ul:after{clear:both}.bp-avatar-nav ul{border-bottom:1px solid #ccc;margin-bottom:10px}.bp-avatar-nav ul.avatar-nav-items li.current{border:1px solid #ccc;border-bottom-color:#fff;border-top-left-radius:4px;border-top-right-radius:4px;margin-bottom:-1px}.bp-avatar-nav li.current a{background:0 0;color:inherit;font-weight:700;opacity:.8;outline:0}#drag-drop-area{border:4px dashed #bbb;height:200px}.drag-drop.drag-over #drag-drop-area{border-color:#83b4d8}.drag-drop-inside p{display:none}.drag-drop-inside p.drag-drop-buttons{margin-top:80px;text-align:center}.drag-drop .drag-drop-inside p.drag-drop-buttons{margin:auto;text-align:auto}.drag-drop #drag-drop-area{box-sizing:border-box;display:table;height:100%;width:100%}.drag-drop .drag-drop-inside{display:table-cell;padding:40px 0;text-align:center;vertical-align:middle}.drag-drop .drag-drop-inside p,.drag-drop-inside p.drag-drop-buttons{display:block}.drag-drop .drag-drop-inside p{color:#aaa;font-size:110%;margin:5px 0;text-align:center}.drag-drop-inside p.drag-drop-info{margin-top:0}@supports (-ms-accelerator:true){.drag-drop-inside p.drag-drop-info{display:block}}#avatar-to-crop{margin:0 auto 20px;text-align:left}#bp-webcam-avatar #avatar-to-crop{float:left;margin:0 0 20px}#avatar-to-crop .jcrop-holder{margin:0 auto}.avatar-crop-management{clear:left;overflow:hidden;padding-top:20px;text-align:center}#bp-webcam-avatar .avatar-crop-management{clear:none;float:none;overflow:visible;padding-top:0;width:auto}#avatar-crop-pane{margin:0 auto;overflow:hidden}#bp-webcam-avatar #avatar-to-crop{border:1px solid #eee;max-width:100%;width:100%}@media screen and (min-width:801px){#bp-webcam-avatar #avatar-to-crop{max-width:64%;width:64%}}#avatar-crop-actions a{display:block}#bp-webcam-avatar #avatar-crop-actions{float:left;margin:0 0 20px;width:50%}#avatar-crop-actions a.button{margin-top:10px}#bp-webcam-avatar #avatar-crop-actions a.button{display:block;margin:0 0 5px;padding:4px 0;width:100%}#avatar-crop-pane canvas,#avatar-crop-pane img,#avatar-to-crop img,#avatar-upload-form img,#create-group-form img,#group-settings-form img{border:none!important;max-width:none!important}#bp-webcam-avatar video{float:left;margin-bottom:0;max-width:100%;width:100%;-webkit-transform:scaleX(-1);transform:scaleX(-1)}#bp-webcam-avatar #avatar-crop-pane{border:2px dashed #bbb;clear:left;float:right;margin:0 40px 10px 0;overflow:hidden}#bp-webcam-avatar .avatar-crop-management #avatar-crop-pane{max-width:150px;max-height:150px}#avatar-crop-pane canvas{height:auto;width:100%;max-width:100%}.group-avatar .bp-avatar .avatar-crop-management{margin-left:0;padding-top:0;width:auto}.bp-avatar .item{overflow:hidden}.bp-avatar .avatar-crop-management.adjust{float:left;clear:none;padding-top:0}.bp-avatar #avatar-to-crop.adjust{float:left;margin-right:20px}@media screen and (max-width:480px){#bp-webcam-avatar .avatar-crop-management #avatar-crop-actions,#bp-webcam-avatar .avatar-crop-management #avatar-crop-pane{float:none}#bp-webcam-avatar .avatar-crop-management #avatar-crop-pane{margin:0 auto 10px}#bp-webcam-avatar .avatar-crop-management #avatar-crop-actions{width:auto}}@media screen and (min-width:801px){#bp-webcam-avatar .avatar-crop-management{clear:none;float:right}#bp-webcam-avatar .avatar-crop-management #avatar-crop-pane{float:none;margin:0 auto 10px}#bp-webcam-avatar .avatar-crop-management #avatar-crop-actions{float:left;width:100%}}body.profile_page_bp-profile-edit.modal-open #TB_ajaxContent,body.users_page_bp-profile-edit.modal-open #TB_ajaxContent{height:95%!important;width:95%!important}body.profile_page_bp-profile-edit.modal-open #TB_ajaxContent p.updated,body.profile_page_bp-profile-edit.modal-open #TB_ajaxContent p.warning,body.users_page_bp-profile-edit.modal-open #TB_ajaxContent p.updated,body.users_page_bp-profile-edit.modal-open #TB_ajaxContent p.warning{display:block;padding:10px 15px}.wp-admin #TB_window .bp-avatar #avatar-to-crop{float:left;margin:0}.wp-admin #TB_window .bp-avatar #bp-webcam-avatar #avatar-to-crop{margin-bottom:20px}@media screen and (min-width:783px){.wp-admin #TB_window .bp-avatar .avatar-crop-management{clear:none;float:left;margin-left:20px;padding-top:0;text-align:center}}.wp-admin #TB_window .bp-avatar #avatar-to-crop video{width:100%}.wp-admin #TB_window .bp-avatar .avatar-crop-management a.button{height:auto;line-height:inherit}@media screen and (min-width:810px){.wp-admin #TB_window .bp-avatar #bp-webcam-avatar #avatar-to-crop{max-width:none;width:76%}.wp-admin #TB_window #bp-webcam-avatar .avatar-crop-management{max-width:none;width:auto}} \ No newline at end of file +div.bp-avatar-status,div.bp-cover-image-status{clear:both;margin:1em 0}div.bp-avatar-status p.updated,div.bp-cover-image-status p.updated{display:block;padding:10px 15px}div.bp-avatar-status p.success,div.bp-cover-image-status p.success{background-color:#efc;border:1px solid #591;color:#250}div.bp-avatar-status p.error,div.bp-cover-image-status p.error{background-color:#fdc;border:1px solid #a00;color:#800}div.bp-avatar-status .bp-progress,div.bp-cover-image-status .bp-progress{background:0 0;border:1px solid #d1d1d1;float:right;height:22px;line-height:2em;margin:6px 10px 2px 0;padding:0;overflow:hidden;width:200px}div.bp-avatar-status .bp-bar,div.bp-cover-image-status .bp-bar{background-color:#c3ff88;width:0;height:100%;z-index:9}.bp-uploader-progress div.error{background-color:#fdc;border:1px solid #a00;color:#800;display:block;font-size:90%;padding:10px 15px}#buddypress p.warning,body.profile_page_bp-profile-edit.modal-open #TB_ajaxContent p.warning,body.users_page_bp-profile-edit.modal-open #TB_ajaxContent p.warning{background-color:#ffd;border:1px solid #cb2;color:#440;display:block;font-size:90%;margin:1em 0;padding:10px 15px}div.bp-avatar-nav{background:0 0;clear:both;margin:10px 0;overflow:hidden}.avatar-nav-items{margin:0;padding:0}.bp-avatar-nav .avatar-nav-items li.avatar-nav-item{float:left!important;margin:0;list-style:none}.avatar-nav-items li a{display:block;padding:5px 10px;text-decoration:none}.bp-avatar-nav ul:after,.bp-avatar-nav ul:before{content:" ";display:table}.bp-avatar-nav ul:after{clear:both}.bp-avatar-nav ul{border-bottom:1px solid #ccc;margin-bottom:10px}.bp-avatar-nav ul.avatar-nav-items li.current{border:1px solid #ccc;border-bottom-color:#fff;border-top-left-radius:4px;border-top-right-radius:4px;margin-bottom:-1px}.bp-avatar-nav li.current a{background:0 0;color:inherit;font-weight:700;opacity:.8;outline:0}#drag-drop-area{border:4px dashed #bbb;height:200px}.drag-drop.drag-over #drag-drop-area{border-color:#83b4d8}.drag-drop-inside p{display:none}.drag-drop-inside p.drag-drop-buttons{margin-top:80px;text-align:center}.drag-drop .drag-drop-inside p.drag-drop-buttons{margin:auto;text-align:inherit}.drag-drop #drag-drop-area{box-sizing:border-box;display:table;height:100%;width:100%}.drag-drop .drag-drop-inside{display:table-cell;padding:40px 0;text-align:center;vertical-align:middle}.drag-drop .drag-drop-inside p,.drag-drop-inside p.drag-drop-buttons{display:block}.drag-drop .drag-drop-inside p{color:#aaa;font-size:110%;margin:5px 0;text-align:center}.drag-drop-inside p.drag-drop-info{margin-top:0}@supports (-ms-accelerator:true){.drag-drop-inside p.drag-drop-info{display:block}}#avatar-to-crop{margin:0 auto 20px;text-align:left}#bp-webcam-avatar #avatar-to-crop{float:left;margin:0 0 20px}#avatar-to-crop .jcrop-holder{margin:0 auto}.avatar-crop-management{clear:left;overflow:hidden;padding-top:20px;text-align:center}#bp-webcam-avatar .avatar-crop-management{clear:none;float:none;overflow:visible;padding-top:0;width:auto}#avatar-crop-pane{margin:0 auto;overflow:hidden}#bp-webcam-avatar #avatar-to-crop{border:1px solid #eee;max-width:100%;width:100%}@media screen and (min-width:801px){#bp-webcam-avatar #avatar-to-crop{max-width:64%;width:64%}}#avatar-crop-actions a{display:block}#bp-webcam-avatar #avatar-crop-actions{float:left;margin:0 0 20px;width:50%}#avatar-crop-actions a.button{margin-top:10px}#bp-webcam-avatar #avatar-crop-actions a.button{display:block;margin:0 0 5px;padding:4px 0;width:100%}#avatar-crop-pane canvas,#avatar-crop-pane img,#avatar-to-crop img,#avatar-upload-form img,#create-group-form img,#group-settings-form img{border:none!important;max-width:none!important}#bp-webcam-avatar video{float:left;margin-bottom:0;max-width:100%;width:100%;-webkit-transform:scaleX(-1);transform:scaleX(-1)}#bp-webcam-avatar #avatar-crop-pane{border:2px dashed #bbb;clear:left;float:right;margin:0 40px 10px 0;overflow:hidden}#bp-webcam-avatar .avatar-crop-management #avatar-crop-pane{max-width:150px;max-height:150px}#avatar-crop-pane canvas{height:auto;width:100%;max-width:100%}.group-avatar .bp-avatar .avatar-crop-management{margin-left:0;padding-top:0;width:auto}.bp-avatar .item{overflow:hidden}.bp-avatar .avatar-crop-management.adjust{float:left;clear:none;padding-top:0}.bp-avatar #avatar-to-crop.adjust{float:left;margin-right:20px}@media screen and (max-width:480px){#bp-webcam-avatar .avatar-crop-management #avatar-crop-actions,#bp-webcam-avatar .avatar-crop-management #avatar-crop-pane{float:none}#bp-webcam-avatar .avatar-crop-management #avatar-crop-pane{margin:0 auto 10px}#bp-webcam-avatar .avatar-crop-management #avatar-crop-actions{width:auto}}@media screen and (min-width:801px){#bp-webcam-avatar .avatar-crop-management{clear:none;float:right}#bp-webcam-avatar .avatar-crop-management #avatar-crop-pane{float:none;margin:0 auto 10px}#bp-webcam-avatar .avatar-crop-management #avatar-crop-actions{float:left;width:100%}}body.profile_page_bp-profile-edit.modal-open #TB_ajaxContent,body.users_page_bp-profile-edit.modal-open #TB_ajaxContent{height:95%!important;width:95%!important}body.profile_page_bp-profile-edit.modal-open #TB_ajaxContent p.updated,body.profile_page_bp-profile-edit.modal-open #TB_ajaxContent p.warning,body.users_page_bp-profile-edit.modal-open #TB_ajaxContent p.updated,body.users_page_bp-profile-edit.modal-open #TB_ajaxContent p.warning{display:block;padding:10px 15px}.wp-admin #TB_window .bp-avatar #avatar-to-crop{float:left;margin:0}.wp-admin #TB_window .bp-avatar #bp-webcam-avatar #avatar-to-crop{margin-bottom:20px}@media screen and (min-width:783px){.wp-admin #TB_window .bp-avatar .avatar-crop-management{clear:none;float:left;margin-left:20px;padding-top:0;text-align:center}}.wp-admin #TB_window .bp-avatar #avatar-to-crop video{width:100%}.wp-admin #TB_window .bp-avatar .avatar-crop-management a.button{height:auto;line-height:inherit}@media screen and (min-width:810px){.wp-admin #TB_window .bp-avatar #bp-webcam-avatar #avatar-to-crop{max-width:none;width:76%}.wp-admin #TB_window #bp-webcam-avatar .avatar-crop-management{max-width:none;width:auto}} \ No newline at end of file diff --git a/wp-content/plugins/buddypress/bp-core/css/buddybar-rtl.css b/wp-content/plugins/buddypress/bp-core/css/buddybar-rtl.css index 8386886286f8cae4180252b552eaba0c69b44066..18d9a98d05821f9ead1a71495cafc2b68e360ed4 100644 --- a/wp-content/plugins/buddypress/bp-core/css/buddybar-rtl.css +++ b/wp-content/plugins/buddypress/bp-core/css/buddybar-rtl.css @@ -86,7 +86,7 @@ body#bp-default #admin-bar-logo { padding: 0; float: right; position: relative; - background: url('../images/admin-menu-arrow.gif') 12% 53% no-repeat; + background: url('../images/admin-menu-arrow.gif') 88% 53% no-repeat; padding-left: 11px; } #wp-admin-bar ul li.no-arrow { @@ -121,9 +121,9 @@ body#bp-default #admin-bar-logo { -webkit-box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); -moz-border-radius: 3px; -webkit-border-radius: 3px; - -moz-border-radius-topleft: 0; - -webkit-border-top-right-radius: 0; -moz-border-radius-topright: 0; + -webkit-border-top-right-radius: 0; + -moz-border-radius-topleft: 0; -webkit-border-top-left-radius: 0; } #wp-admin-bar ul li > ul { diff --git a/wp-content/plugins/buddypress/bp-core/css/buddybar-rtl.min.css b/wp-content/plugins/buddypress/bp-core/css/buddybar-rtl.min.css index 1e7dc49d607a3053b78a5d119f1b09a66fcb1f15..a53dad5ae61279d8588a44f071e8f79ef23b8c48 100644 --- a/wp-content/plugins/buddypress/bp-core/css/buddybar-rtl.min.css +++ b/wp-content/plugins/buddypress/bp-core/css/buddybar-rtl.min.css @@ -1 +1 @@ -#admin-bar-logo,#wp-admin-bar li a{font-size:11px;text-decoration:none}#wp-admin-bar ul li ul a,#wp-admin-bar ul li ul li:hover ul li a{color:#eee}#wp-admin-bar ul li ul li ul li:hover a,#wp-admin-bar ul li ul li:hover a{color:#fff}body:not(.wp-admin){padding-top:25px!important}#wp-admin-bar{position:fixed;top:0;right:0;height:25px;font-size:11px;width:100%;z-index:9999}#wp-admin-bar .padder{position:relative;padding:0;width:100%;margin:0 auto;background:url(../images/60pc_black.png);height:25px}body#bp-default #wp-admin-bar .padder{max-width:1250px}#wp-admin-bar *{z-index:999}#wp-admin-bar div#admin-bar-logo{position:absolute;top:5px;right:10px}#wp-admin-bar a img,#wp-admin-bar li.alt{border:none}#wp-admin-bar li{list-style:none;margin:0;padding:0;line-height:100%;text-align:right}#wp-admin-bar li a{padding:7px 15px;color:#eee}#wp-admin-bar li.no-arrow a{padding-left:15px}#wp-admin-bar ul li ul li a span{display:none}#wp-admin-bar li.hover,#wp-admin-bar li:hover{position:static}#admin-bar-logo{float:right;font-weight:700;padding:5px 8px;margin:0;color:#fff}body#bp-default #admin-bar-logo{padding:2px 8px}#wp-admin-bar ul{margin:0;list-style:none;line-height:1;cursor:pointer;height:auto;padding:0}#wp-admin-bar ul li{padding:0 0 0 11px;float:right;position:relative;background:url(../images/admin-menu-arrow.gif) 12% 53% no-repeat}#wp-admin-bar ul li.no-arrow{background:0 0;padding-left:0}#wp-admin-bar ul li ul li{background-image:none;float:right;width:174px;margin:0}#wp-admin-bar ul li.align-right{position:absolute;left:0}#wp-admin-bar ul li a{display:block}#wp-admin-bar ul.main-nav li ul li.sfhover,#wp-admin-bar ul.main-nav li.sfhover,#wp-admin-bar ul.main-nav li:hover{background-color:#333}#wp-admin-bar ul li ul{position:absolute;width:185px;right:-999em;margin-right:0;background:#333;border:1px solid #222;-moz-box-shadow:0 4px 8px rgba(0,0,0,.1);-webkit-box-shadow:0 4px 8px rgba(0,0,0,.1);-moz-border-radius:3px;-webkit-border-radius:0 0 3px 3px;-moz-border-radius-topleft:0;-moz-border-radius-topright:0}#wp-admin-bar ul li>ul{border-top:none}#wp-admin-bar ul li div.admin-bar-clear{clear:both}#wp-admin-bar ul.main-nav li ul li.sfhover,#wp-admin-bar ul.main-nav li ul li:hover{background-color:#222}#wp-admin-bar ul li ul ul{margin:-25px 184px 0 0;-moz-border-radius:3px;-webkit-border-radius:3px}#wp-admin-bar ul li ul li.sfhover ul,#wp-admin-bar ul li ul li:hover ul,#wp-admin-bar ul li.sfhover ul,#wp-admin-bar ul li:hover ul{right:auto}#wp-admin-bar ul li.align-right:hover ul{left:0}#wp-admin-bar li.sfhover ul li ul,#wp-admin-bar ul li:hover ul ul{right:-999em}#wp-admin-bar img.avatar{float:right;margin-left:8px}#wp-admin-bar span.activity{display:block;margin-right:34px;padding:0}#wp-admin-bar ul.author-list li a{height:17px}#wp-admin-bar ul li#bp-adminbar-notifications-menu a span{padding:0 6px;margin-right:2px;background:#fff;color:#000;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}#wp-admin-bar-user-info img.avatar{height:64px;width:64px} \ No newline at end of file +#admin-bar-logo,#wp-admin-bar li a{font-size:11px;text-decoration:none}#wp-admin-bar ul li ul a,#wp-admin-bar ul li ul li:hover ul li a{color:#eee}#wp-admin-bar ul li ul li ul li:hover a,#wp-admin-bar ul li ul li:hover a{color:#fff}body:not(.wp-admin){padding-top:25px!important}#wp-admin-bar{position:fixed;top:0;right:0;height:25px;font-size:11px;width:100%;z-index:9999}#wp-admin-bar .padder{position:relative;padding:0;width:100%;margin:0 auto;background:url(../images/60pc_black.png);height:25px}body#bp-default #wp-admin-bar .padder{max-width:1250px}#wp-admin-bar *{z-index:999}#wp-admin-bar div#admin-bar-logo{position:absolute;top:5px;right:10px}#wp-admin-bar a img,#wp-admin-bar li.alt{border:none}#wp-admin-bar li{list-style:none;margin:0;padding:0;line-height:100%;text-align:right}#wp-admin-bar li a{padding:7px 15px;color:#eee}#wp-admin-bar li.no-arrow a{padding-left:15px}#wp-admin-bar ul li ul li a span{display:none}#wp-admin-bar li.hover,#wp-admin-bar li:hover{position:static}#admin-bar-logo{float:right;font-weight:700;padding:5px 8px;margin:0;color:#fff}body#bp-default #admin-bar-logo{padding:2px 8px}#wp-admin-bar ul{margin:0;list-style:none;line-height:1;cursor:pointer;height:auto;padding:0}#wp-admin-bar ul li{padding:0 0 0 11px;float:right;position:relative;background:url(../images/admin-menu-arrow.gif) 88% 53% no-repeat}#wp-admin-bar ul li.no-arrow{background:0 0;padding-left:0}#wp-admin-bar ul li ul li{background-image:none;float:right;width:174px;margin:0}#wp-admin-bar ul li.align-right{position:absolute;left:0}#wp-admin-bar ul li a{display:block}#wp-admin-bar ul.main-nav li ul li.sfhover,#wp-admin-bar ul.main-nav li.sfhover,#wp-admin-bar ul.main-nav li:hover{background-color:#333}#wp-admin-bar ul li ul{position:absolute;width:185px;right:-999em;margin-right:0;background:#333;border:1px solid #222;-moz-box-shadow:0 4px 8px rgba(0,0,0,.1);-webkit-box-shadow:0 4px 8px rgba(0,0,0,.1);-moz-border-radius:3px;-webkit-border-radius:0 0 3px 3px;-moz-border-radius-topright:0;-moz-border-radius-topleft:0}#wp-admin-bar ul li>ul{border-top:none}#wp-admin-bar ul li div.admin-bar-clear{clear:both}#wp-admin-bar ul.main-nav li ul li.sfhover,#wp-admin-bar ul.main-nav li ul li:hover{background-color:#222}#wp-admin-bar ul li ul ul{margin:-25px 184px 0 0;-moz-border-radius:3px;-webkit-border-radius:3px}#wp-admin-bar ul li ul li.sfhover ul,#wp-admin-bar ul li ul li:hover ul,#wp-admin-bar ul li.sfhover ul,#wp-admin-bar ul li:hover ul{right:auto}#wp-admin-bar ul li.align-right:hover ul{left:0}#wp-admin-bar li.sfhover ul li ul,#wp-admin-bar ul li:hover ul ul{right:-999em}#wp-admin-bar img.avatar{float:right;margin-left:8px}#wp-admin-bar span.activity{display:block;margin-right:34px;padding:0}#wp-admin-bar ul.author-list li a{height:17px}#wp-admin-bar ul li#bp-adminbar-notifications-menu a span{padding:0 6px;margin-right:2px;background:#fff;color:#000;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}#wp-admin-bar-user-info img.avatar{height:64px;width:64px} \ No newline at end of file diff --git a/wp-content/plugins/buddypress/bp-core/deprecated/1.2.php b/wp-content/plugins/buddypress/bp-core/deprecated/1.2.php index bfd2a3df4ff7351b4e6906a10c808eda056d5eb6..650d4b5712bed0f851cc648be4dc731cef0a5476 100644 --- a/wp-content/plugins/buddypress/bp-core/deprecated/1.2.php +++ b/wp-content/plugins/buddypress/bp-core/deprecated/1.2.php @@ -16,8 +16,6 @@ * * @param array $args * - * @uses BP_Activity_Activity::get() {@link BP_Activity_Activity} - * * @return object $activity The activity/activities object */ function bp_activity_get_sitewide( $args = '' ) { diff --git a/wp-content/plugins/buddypress/bp-core/deprecated/1.7.php b/wp-content/plugins/buddypress/bp-core/deprecated/1.7.php index 3fb6b32ebf309c0a0c95a931f902ce230247aa51..dbce009eb2f2a64d6a148b4d1d74a5faf435c61c 100644 --- a/wp-content/plugins/buddypress/bp-core/deprecated/1.7.php +++ b/wp-content/plugins/buddypress/bp-core/deprecated/1.7.php @@ -15,7 +15,6 @@ defined( 'ABSPATH' ) || exit; * * @since 1.6.0 * @deprecated 1.7.0 - * @uses bp_get_maintenance_mode() To get the BuddyPress maintenance mode */ function bp_maintenance_mode() { echo bp_get_maintenance_mode(); diff --git a/wp-content/plugins/buddypress/bp-core/deprecated/2.6.php b/wp-content/plugins/buddypress/bp-core/deprecated/2.6.php new file mode 100644 index 0000000000000000000000000000000000000000..8424df8dddbda7e260c0a147465c3883424fd2d7 --- /dev/null +++ b/wp-content/plugins/buddypress/bp-core/deprecated/2.6.php @@ -0,0 +1,50 @@ +<?php +/** + * Deprecated functions. + * + * @deprecated 2.6.0 + */ + +// Exit if accessed directly. +defined( 'ABSPATH' ) || exit; + +/** + * Print the generation time in the footer of the site. + * + * @since 1.0.0 + * @deprecated 2.6.0 + */ +function bp_core_print_generation_time() { +?> + +<!-- Generated in <?php timer_stop(1); ?> seconds. (<?php echo get_num_queries(); ?> q) --> + + <?php +} + +/** + * Sort the navigation menu items. + * + * The sorting is split into a separate function because it can only happen + * after all plugins have had a chance to register their navigation items. + * + * @since 1.0.0 + * @deprecated 2.6.0 + * + * @return bool|null Returns false on failure. + */ +function bp_core_sort_nav_items() { + _deprecated_function( __FUNCTION__, '2.6' ); +} + +/** + * Sort all subnavigation arrays. + * + * @since 1.1.0 + * @deprecated 2.6.0 + * + * @return bool|null Returns false on failure. + */ +function bp_core_sort_subnav_items() { + _deprecated_function( __FUNCTION__, '2.6' ); +} diff --git a/wp-content/plugins/buddypress/bp-core/images/mystery-group-50.png b/wp-content/plugins/buddypress/bp-core/images/mystery-group-50.png new file mode 100644 index 0000000000000000000000000000000000000000..a2ab7fb8d3951b54c40977fe9568549f09b98375 Binary files /dev/null and b/wp-content/plugins/buddypress/bp-core/images/mystery-group-50.png differ diff --git a/wp-content/plugins/buddypress/bp-core/images/mystery-group.png b/wp-content/plugins/buddypress/bp-core/images/mystery-group.png new file mode 100644 index 0000000000000000000000000000000000000000..611cb3db67dabeae822ec0d151e0444d9913fba8 Binary files /dev/null and b/wp-content/plugins/buddypress/bp-core/images/mystery-group.png differ diff --git a/wp-content/plugins/buddypress/bp-core/js/avatar.min.js b/wp-content/plugins/buddypress/bp-core/js/avatar.min.js index 0e85f854e83d5a6e3befc61c9de56094e24f80f0..47f94806f96190cb91736bcfe4faa4dc0ff3d816 100644 --- a/wp-content/plugins/buddypress/bp-core/js/avatar.min.js +++ b/wp-content/plugins/buddypress/bp-core/js/avatar.min.js @@ -1,2 +1 @@ -/*! buddypress - v2.5.3 - 2016-05-24 5:17:45 PM UTC - https://wordpress.org/plugins/buddypress/ */ window.bp=window.bp||{},function(a,b){"undefined"!=typeof BP_Uploader&&(bp.Models=bp.Models||{},bp.Collections=bp.Collections||{},bp.Views=bp.Views||{},bp.Avatar={start:function(){var a=this;this.removeLegacyUI(),this.views=new Backbone.Collection,this.jcropapi={},this.warning=null,this.setupNav(),this.avatars=bp.Uploader.filesUploaded,this.Attachment=new Backbone.Model,bp.Uploader.filesQueue.on("reset",this.cropView,this),b("body.wp-admin").on("tb_unload","#TB_window",function(){a.resetViews()}),b("body.wp-admin").on("click",".bp-xprofile-avatar-user-edit",function(){a.resetViews()})},removeLegacyUI:function(){b("#avatar-upload-form").length?(b("#avatar-upload").remove(),b("#avatar-upload-form p").remove()):b("#group-settings-form").length?(b("#group-settings-form p").each(function(a){0!==a&&b(this).remove()}),b("#delete-group-avatar-button").length&&b("#delete-group-avatar-button").remove()):b("#group-create-body").length?(b(".main-column p #file").remove(),b(".main-column p #upload").remove()):b("#bp_xprofile_user_admin_avatar a.bp-xprofile-avatar-user-admin").length&&b("#bp_xprofile_user_admin_avatar a.bp-xprofile-avatar-user-admin").remove()},setView:function(a){switch(_.isUndefined(this.views.models)||_.each(this.views.models,function(a){a.get("view").remove()},this),this.views.reset(),_.isUndefined(this.avatars)||this.avatars.reset(),_.isEmpty(this.jcropapi)||(this.jcropapi.destroy(),this.jcropapi={}),a){case"upload":this.uploaderView();break;case"delete":this.deleteView()}},resetViews:function(){this.nav.trigger("bp-avatar-view:changed","upload"),_.each(this.navItems.models,function(a){"upload"===a.id?a.set({active:1}):a.set({active:0})})},setupNav:function(){var a,b,c=this;this.navItems=new Backbone.Collection,_.each(BP_Uploader.settings.nav,function(d,e){_.isObject(d)&&(b=0,0===e&&(a=d.id,b=1),c.navItems.add({id:d.id,name:d.caption,href:"#",active:b,hide:_.isUndefined(d.hide)?0:d.hide}))}),this.nav=new bp.Views.Nav({collection:this.navItems}),this.nav.inject(".bp-avatar-nav"),this.setView(a),this.nav.on("bp-avatar-view:changed",_.bind(this.setView,this))},uploaderView:function(){bp.Uploader.filesQueue.on("add",this.uploadProgress,this);var a=new bp.Views.Uploader;this.views.add({id:"upload",view:a}),a.inject(".bp-avatar")},uploadProgress:function(){var a=new bp.Views.uploaderStatus({collection:bp.Uploader.filesQueue});_.isUndefined(this.views.get("status"))?this.views.add({id:"status",view:a}):this.views.set({id:"status",view:a}),a.inject(".bp-avatar-status")},cropView:function(){var a;if(!_.isEmpty(this.avatars.models)){_.isUndefined(this.views.get("status"))||(a=this.views.get("status"),a.get("view").remove(),this.views.remove({id:"status",view:a}));var b=new bp.Views.Avatars({collection:this.avatars});this.views.add({id:"crop",view:b}),b.inject(".bp-avatar")}},setAvatar:function(a){var c,d=this;_.isUndefined(this.views.get("crop"))||(_.isEmpty(this.jcropapi)||(this.jcropapi.destroy(),this.jcropapi={}),c=this.views.get("crop"),c.get("view").remove(),this.views.remove({id:"crop",view:c})),bp.ajax.post("bp_avatar_set",{json:!0,original_file:a.get("url"),crop_w:a.get("w"),crop_h:a.get("h"),crop_x:a.get("x"),crop_y:a.get("y"),item_id:a.get("item_id"),object:a.get("object"),type:_.isUndefined(a.get("type"))?"crop":a.get("type"),nonce:a.get("nonces").set}).done(function(c){var e=new bp.Views.AvatarStatus({value:BP_Uploader.strings.feedback_messages[c.feedback_code],type:"success"});d.views.add({id:"status",view:e}),e.inject(".bp-avatar-status"),b("."+a.get("object")+"-"+c.item_id+"-avatar").each(function(){b(this).prop("src",c.avatar)}),bp.Avatar.navItems.get("delete").set({hide:0}),d.Attachment.set(_.extend(_.pick(a.attributes,["object","item_id"]),{url:c.avatar,action:"uploaded"}))}).fail(function(a){var b=BP_Uploader.strings.default_error;_.isUndefined(a)||(b=BP_Uploader.strings.feedback_messages[a.feedback_code]);var c=new bp.Views.AvatarStatus({value:b,type:"error"});d.views.add({id:"status",view:c}),c.inject(".bp-avatar-status")})},deleteView:function(){var a=new Backbone.Model(_.pick(BP_Uploader.settings.defaults.multipart_params.bp_params,"object","item_id","nonces")),b=new bp.Views.DeleteAvatar({model:a});this.views.add({id:"delete",view:b}),b.inject(".bp-avatar")},deleteAvatar:function(a){var c,d=this;_.isUndefined(this.views.get("delete"))||(c=this.views.get("delete"),c.get("view").remove(),this.views.remove({id:"delete",view:c})),bp.ajax.post("bp_avatar_delete",{json:!0,item_id:a.get("item_id"),object:a.get("object"),nonce:a.get("nonces").remove}).done(function(c){var e=new bp.Views.AvatarStatus({value:BP_Uploader.strings.feedback_messages[c.feedback_code],type:"success"});d.views.add({id:"status",view:e}),e.inject(".bp-avatar-status"),b("."+a.get("object")+"-"+c.item_id+"-avatar").each(function(){b(this).prop("src",c.avatar)}),bp.Avatar.navItems.get("delete").set({active:0,hide:1}),d.Attachment.set(_.extend(_.pick(a.attributes,["object","item_id"]),{url:c.avatar,action:"deleted"}))}).fail(function(a){var b=BP_Uploader.strings.default_error;_.isUndefined(a)||(b=BP_Uploader.strings.feedback_messages[a.feedback_code]);var c=new bp.Views.AvatarStatus({value:b,type:"error"});d.views.add({id:"status",view:c}),c.inject(".bp-avatar-status")})},removeWarning:function(){_.isNull(this.warning)||this.warning.remove()},displayWarning:function(a){this.removeWarning(),this.warning=new bp.Views.uploaderWarning({value:a}),this.warning.inject(".bp-avatar-status")}},bp.Views.Nav=bp.View.extend({tagName:"ul",className:"avatar-nav-items",events:{"click .bp-avatar-nav-item":"toggleView"},initialize:function(){var a=_.findWhere(this.collection.models,{id:"delete"});1!==a.get("hide")&&bp.Avatar.displayWarning(BP_Uploader.strings.has_avatar_warning),_.each(this.collection.models,this.addNavItem,this),this.collection.on("change:hide",this.showHideNavItem,this)},addNavItem:function(a){1!==a.get("hide")&&this.views.add(new bp.Views.NavItem({model:a}))},showHideNavItem:function(a){var b=null;_.each(this.views._views[""],function(c){1===c.model.get("hide")&&c.remove(),a.get("id")===c.model.get("id")&&(b=!0)}),_.isBoolean(b)||this.addNavItem(a)},toggleView:function(a){a.preventDefault(),bp.Avatar.removeWarning();var c=b(a.target).data("nav");_.each(this.collection.models,function(a){a.id===c?(a.set({active:1}),this.trigger("bp-avatar-view:changed",a.id)):a.set({active:0})},this)}}),bp.Views.NavItem=bp.View.extend({tagName:"li",className:"avatar-nav-item",template:bp.template("bp-avatar-nav"),initialize:function(){1===this.model.get("active")&&(this.el.className+=" current"),this.el.id+="bp-avatar-"+this.model.get("id"),this.model.on("change:active",this.setCurrentNav,this)},setCurrentNav:function(a){1===a.get("active")?this.$el.addClass("current"):this.$el.removeClass("current")}}),bp.Views.Avatars=bp.View.extend({className:"items",initialize:function(){_.each(this.collection.models,this.addItemView,this)},addItemView:function(a){var b={full_h:150,full_w:150};_.isUndefined(BP_Uploader.settings.crop.full_h)||_.isUndefined(BP_Uploader.settings.crop.full_w)||(b.full_h=BP_Uploader.settings.crop.full_h,b.full_w=BP_Uploader.settings.crop.full_w),a.set(_.extend(_.pick(BP_Uploader.settings.defaults.multipart_params.bp_params,"object","item_id","nonces"),b)),this.views.add(new bp.Views.Avatar({model:a}))}}),bp.Views.Avatar=bp.View.extend({className:"item",template:bp.template("bp-avatar-item"),events:{"click .avatar-crop-submit":"cropAvatar"},initialize:function(){_.defaults(this.options,{full_h:BP_Uploader.settings.crop.full_h,full_w:BP_Uploader.settings.crop.full_w,aspectRatio:1}),!1!==this.model.get("feedback")&&bp.Avatar.displayWarning(this.model.get("feedback")),this.on("ready",this.initCropper)},initCropper:function(){var a,c,d,e,f,g,h=this,i=this.$el.find("#avatar-to-crop img"),j=this.$el.width(),k={};_.isUndefined(this.options.full_h)||_.isUndefined(this.options.full_w)||(this.options.aspectRatio=this.options.full_w/this.options.full_h),k.w=this.model.get("width"),k.h=this.model.get("height"),this.options.full_w+k.w+20<j&&(b("#avatar-to-crop").addClass("adjust"),this.$el.find(".avatar-crop-management").addClass("adjust")),k.h<=k.w?(a=Math.round(k.h/4),f=g=Math.round(k.h/2),c=f+a,d=(k.w-g)/2,e=g+d):(d=Math.round(k.w/4),f=g=Math.round(k.w/2),e=g+d,a=(k.h-f)/2,c=f+a),i.Jcrop({onChange:_.bind(h.showPreview,h),onSelect:_.bind(h.showPreview,h),aspectRatio:h.options.aspectRatio,setSelect:[d,a,e,c]},function(){bp.Avatar.jcropapi=this})},cropAvatar:function(a){a.preventDefault(),bp.Avatar.setAvatar(this.model)},showPreview:function(a){if(a.w&&a.h&&parseInt(a.w,10)>0){var c=this.options.full_w,d=this.options.full_h,e=c/a.w,f=d/a.h;this.model.set({x:a.x,y:a.y,w:a.w,h:a.h}),b("#avatar-crop-preview").css({maxWidth:"none",width:Math.round(e*this.model.get("width"))+"px",height:Math.round(f*this.model.get("height"))+"px",marginLeft:"-"+Math.round(e*this.model.get("x"))+"px",marginTop:"-"+Math.round(f*this.model.get("y"))+"px"})}}}),bp.Views.AvatarStatus=bp.View.extend({tagName:"p",className:"updated",id:"bp-avatar-feedback",initialize:function(){this.el.className+=" "+this.options.type,this.value=this.options.value},render:function(){return this.$el.html(this.value),this}}),bp.Views.DeleteAvatar=bp.View.extend({tagName:"div",id:"bp-delete-avatar-container",template:bp.template("bp-avatar-delete"),events:{"click #bp-delete-avatar":"deleteAvatar"},deleteAvatar:function(a){a.preventDefault(),bp.Avatar.deleteAvatar(this.model)}}),bp.Avatar.start())}(bp,jQuery); \ No newline at end of file diff --git a/wp-content/plugins/buddypress/bp-core/js/bp-plupload.min.js b/wp-content/plugins/buddypress/bp-core/js/bp-plupload.min.js index 55e58db0190b512812b8aa2c45dcb61b1baff83a..13aa779a987fb6d9db8289f4633eb5981f7e19a7 100644 --- a/wp-content/plugins/buddypress/bp-core/js/bp-plupload.min.js +++ b/wp-content/plugins/buddypress/bp-core/js/bp-plupload.min.js @@ -1,2 +1 @@ -/*! buddypress - v2.5.3 - 2016-05-24 5:17:45 PM UTC - https://wordpress.org/plugins/buddypress/ */ window.wp=window.wp||{},window.bp=window.bp||{},function(a,b){"undefined"!=typeof BP_Uploader&&(_.extend(bp,_.pick(wp,"Backbone","ajax","template")),bp.Models=bp.Models||{},bp.Collections=bp.Collections||{},bp.Views=bp.Views||{},bp.Uploader={},bp.Uploader.uploader=function(){var a=this,c=-1!==navigator.userAgent.indexOf("Trident/")||-1!==navigator.userAgent.indexOf("MSIE ");return this.params=BP_Uploader.settings,this.strings=BP_Uploader.strings,this.supports={upload:this.params.browser.supported},this.supported=this.supports.upload,this.supported?(c||"flash"!==plupload.predictRuntime(this.params.defaults)||this.params.defaults.required_features&&this.params.defaults.required_features.hasOwnProperty("send_binary_string")||(this.params.defaults.required_features=this.params.defaults.required_features||{},this.params.defaults.required_features.send_binary_string=!0),this.uploader=new plupload.Uploader(this.params.defaults),this.uploader.bind("Init",function(c){var d=b("#"+a.params.defaults.container),e=b("#"+a.params.defaults.drop_element);"html4"===c.runtime&&(c.settings.multipart_params.html4=!0),"bp_avatar_upload"===c.settings.multipart_params.action&&(c.settings.multipart_params.bp_params.ui_available_width=d.width()),c.features.dragdrop&&!a.params.browser.mobile?(d.addClass("drag-drop"),e.bind("dragover.wp-uploader",function(){d.addClass("drag-over")}).bind("dragleave.wp-uploader, drop.wp-uploader",function(){d.removeClass("drag-over")})):(d.removeClass("drag-drop"),e.unbind(".wp-uploader"))}),this.uploader.init(),this.feedback=function(a,b,c){!_.isNull(c)&&c.item&&c.item.clear(),bp.Uploader.filesError.unshift({message:a,data:b,file:c})},this.uploader.bind("FilesAdded",function(c,d){var e=104857600,f=parseInt(c.settings.max_file_size,10),g=this;if(!c.settings.multi_selection&&d.length>1){for(var h in d)c.removeFile(d[h]);return void b(a).trigger("bp-uploader-warning",a.strings.unique_file_warning)}_.each(d,function(a){var b;plupload.FAILED!==a.status&&(f>e&&a.size>e&&"html5"!==c.runtime?g.uploadSizeError(c,a,!0):(b=_.extend({id:a.id,file:a,uploading:!0,date:new Date,filename:a.name},_.pick(a,"loaded","size","percent")),a.item=new bp.Models.File(b),bp.Uploader.filesQueue.add(a.item)))}),c.refresh(),c.start()}),this.uploader.bind("UploadProgress",function(a,b){b.item.set(_.pick(b,"loaded","percent"))}),this.uploader.bind("FileUploaded",function(b,c,d){var e=a.strings.default_error;try{d=JSON.parse(d.response)}catch(f){return a.feedback(e,f,c)}return!_.isObject(d)||_.isUndefined(d.success)?a.feedback(e,null,c):d.success?(_.each(["file","loaded","size","percent"],function(a){c.item.unset(a)}),c.item.set(_.extend(d.data,{uploading:!1})),void bp.Uploader.filesUploaded.add(c.item)):(d.data&&d.data.message&&(e=d.data.message),a.feedback(e,d.data,c))}),this.uploader.bind("BeforeUpload",function(c,d){b(a).trigger("bp-uploader-new-upload",c,d)}),this.uploader.bind("UploadComplete",function(c,d){b(a).trigger("bp-uploader-upload-complete",c,d),bp.Uploader.filesQueue.reset()}),void this.uploader.bind("Error",function(c,d){var e,f=a.strings.default_error,g={FAILED:a.strings.upload_failed,FILE_EXTENSION_ERROR:a.strings.invalid_filetype,IMAGE_FORMAT_ERROR:a.strings.not_an_image,IMAGE_MEMORY_ERROR:a.strings.image_memory_exceeded,IMAGE_DIMENSIONS_ERROR:a.strings.image_dimensions_exceeded,GENERIC_ERROR:a.strings.upload_failed,IO_ERROR:a.strings.io_error,HTTP_ERROR:a.strings.http_error,SECURITY_ERROR:a.strings.security_error,FILE_SIZE_ERROR:a.strings.file_exceeds_size_limit.replace("%s",d.file.name)};for(e in g)if(d.code===plupload[e]){f=g[e];break}b(a).trigger("bp-uploader-warning",f),c.refresh()})):void(BP_Uploader=void 0)},bp.Models.File=Backbone.Model.extend({file:{}}),b.extend(bp.Uploader,{filesQueue:new Backbone.Collection,filesUploaded:new Backbone.Collection,filesError:new Backbone.Collection}),bp.View=bp.Backbone.View.extend({inject:function(a){this.render(),b(a).html(this.el),this.views.ready()},prepare:function(){return!_.isUndefined(this.model)&&_.isFunction(this.model.toJSON)?this.model.toJSON():{}}}),bp.Views.Uploader=bp.View.extend({className:"bp-uploader-window",template:bp.template("upload-window"),defaults:_.pick(BP_Uploader.settings.defaults,"container","drop_element","browse_button"),initialize:function(){this.warnings=[],this.model=new Backbone.Model(this.defaults),this.on("ready",this.initUploader)},initUploader:function(){this.uploader=new bp.Uploader.uploader,b(this.uploader).on("bp-uploader-warning",_.bind(this.setWarning,this)),b(this.uploader).on("bp-uploader-new-upload",_.bind(this.resetWarning,this))},setWarning:function(a,b){if(!_.isUndefined(b)){var c=new bp.Views.uploaderWarning({value:b}).render();this.warnings.push(c),this.$el.after(c.el)}},resetWarning:function(){0!==this.warnings.length&&(_.each(this.warnings,function(a){a.remove()}),this.warnings=[])}}),bp.Views.uploaderWarning=bp.View.extend({tagName:"p",className:"warning",initialize:function(){this.value=this.options.value},render:function(){return this.$el.html(this.value),this}}),bp.Views.uploaderStatus=bp.View.extend({className:"files",initialize:function(){_.each(this.collection.models,this.addFile,this),this.collection.on("change:percent",this.progress,this),bp.Uploader.filesError.on("add",this.feedback,this)},addFile:function(a){this.views.add(new bp.Views.uploaderProgress({model:a}))},progress:function(a){_.isUndefined(a.get("percent"))||b("#"+a.get("id")+" .bp-progress .bp-bar").css("width",a.get("percent")+"%")},feedback:function(a){_.isUndefined(a.get("message"))||_.isUndefined(a.get("file"))||b("#"+a.get("file").id).html(a.get("message")).addClass("error")}}),bp.Views.uploaderProgress=bp.View.extend({className:"bp-uploader-progress",template:bp.template("progress-window")}))}(bp,jQuery); \ No newline at end of file diff --git a/wp-content/plugins/buddypress/bp-core/js/confirm.min.js b/wp-content/plugins/buddypress/bp-core/js/confirm.min.js index bd8dd6139ca7b202e2fa705eaa4403f3385b7368..3cb055b5f63986bdad8adcf0c8a73bbc07474e39 100644 --- a/wp-content/plugins/buddypress/bp-core/js/confirm.min.js +++ b/wp-content/plugins/buddypress/bp-core/js/confirm.min.js @@ -1,2 +1 @@ -/*! buddypress - v2.5.3 - 2016-05-24 5:17:45 PM UTC - https://wordpress.org/plugins/buddypress/ */ jQuery(document).ready(function(){jQuery("a.confirm").click(function(){return confirm(BP_Confirm.are_you_sure)?!0:!1})}); \ No newline at end of file diff --git a/wp-content/plugins/buddypress/bp-core/js/cover-image.min.js b/wp-content/plugins/buddypress/bp-core/js/cover-image.min.js index 861fbe0a6dfa348b5c830e985e4dbf6e382f1511..bc37cd048856e4dca859d93a241f171dc6e0b4a2 100644 --- a/wp-content/plugins/buddypress/bp-core/js/cover-image.min.js +++ b/wp-content/plugins/buddypress/bp-core/js/cover-image.min.js @@ -1,2 +1 @@ -/*! buddypress - v2.5.3 - 2016-05-24 5:17:45 PM UTC - https://wordpress.org/plugins/buddypress/ */ window.bp=window.bp||{},function(a,b){"undefined"!=typeof BP_Uploader&&(bp.Models=bp.Models||{},bp.Collections=bp.Collections||{},bp.Views=bp.Views||{},bp.CoverImage={start:function(){this.views=new Backbone.Collection,this.warning=null,this.Attachment=new Backbone.Model,this.uploaderView(),this.displayWarning(BP_Uploader.strings.cover_image_warnings.dimensions),!0===BP_Uploader.settings.defaults.multipart_params.bp_params.has_cover_image&&this.deleteView()},uploaderView:function(){bp.Uploader.filesQueue.on("add",this.uploadProgress,this);var a=new bp.Views.Uploader;this.views.add({id:"upload",view:a}),a.inject(".bp-cover-image")},uploadProgress:function(){var a=new bp.Views.coverImageUploadProgress({collection:bp.Uploader.filesQueue});_.isUndefined(this.views.get("status"))?this.views.add({id:"status",view:a}):this.views.set({id:"status",view:a}),a.inject(".bp-cover-image-status")},deleteView:function(){var a=new Backbone.Model(_.pick(BP_Uploader.settings.defaults.multipart_params.bp_params,["object","item_id","nonces"]));if(_.isUndefined(this.views.get("delete"))){var b=new bp.Views.DeleteCoverImage({model:a});this.views.add({id:"delete",view:b}),b.inject(".bp-cover-image-manage")}},deleteCoverImage:function(a){var c,d=this;_.isUndefined(this.views.get("delete"))||(c=this.views.get("delete"),c.get("view").remove(),this.views.remove({id:"delete",view:c})),bp.ajax.post("bp_cover_image_delete",{json:!0,item_id:a.get("item_id"),object:a.get("object"),nonce:a.get("nonces").remove}).done(function(c){var e=new bp.Views.CoverImageStatus({value:BP_Uploader.strings.feedback_messages[c.feedback_code],type:"success"});d.views.add({id:"status",view:e}),e.inject(".bp-cover-image-status"),""===c.reset_url?b("#header-cover-image").css({"background-image":"none"}):b("#header-cover-image").css({"background-image":"url( "+c.reset_url+" )"}),BP_Uploader.settings.defaults.multipart_params.bp_params.has_cover_image=!1,d.Attachment.set(_.extend(_.pick(a.attributes,["object","item_id"]),{url:c.reset_url,action:"deleted"}))}).fail(function(a){var b=BP_Uploader.strings.default_error;_.isUndefined(a)||(b=BP_Uploader.strings.feedback_messages[a.feedback_code]);var c=new bp.Views.CoverImageStatus({value:b,type:"error"});d.views.add({id:"status",view:c}),c.inject(".bp-cover-image-status"),bp.CoverImage.deleteView()})},removeWarning:function(){_.isNull(this.warning)||this.warning.remove()},displayWarning:function(a){this.removeWarning(),this.warning=new bp.Views.uploaderWarning({value:a}),this.warning.inject(".bp-cover-image-status")}},bp.Views.coverImageUploadProgress=bp.Views.uploaderStatus.extend({className:"files",initialize:function(){bp.Views.uploaderStatus.prototype.initialize.apply(this,arguments),this.collection.on("change:url",this.uploadResult,this)},uploadResult:function(a){var c,d;_.isUndefined(a.get("url"))||(0===a.get("feedback_code")?(c=BP_Uploader.strings.cover_image_warnings.dimensions,d="warning"):(c=BP_Uploader.strings.feedback_messages[a.get("feedback_code")],d="success"),this.views.set(".bp-uploader-progress",new bp.Views.CoverImageStatus({value:c,type:d})),b("#header-cover-image").css({"background-image":"url( "+a.get("url")+" )"}),bp.CoverImage.deleteView(),bp.CoverImage.Attachment.set(_.extend(_.pick(BP_Uploader.settings.defaults.multipart_params.bp_params,["object","item_id"]),{url:a.get("url"),action:"uploaded"})))}}),bp.Views.CoverImageStatus=bp.View.extend({tagName:"p",className:"updated",id:"bp-cover-image-feedback",initialize:function(){this.el.className+=" "+this.options.type,this.value=this.options.value},render:function(){return this.$el.html(this.value),this}}),bp.Views.DeleteCoverImage=bp.View.extend({tagName:"div",id:"bp-delete-cover-image-container",template:bp.template("bp-cover-image-delete"),events:{"click #bp-delete-cover-image":"deleteCoverImage"},deleteCoverImage:function(a){a.preventDefault(),bp.CoverImage.deleteCoverImage(this.model)}}),bp.CoverImage.start())}(bp,jQuery); \ No newline at end of file diff --git a/wp-content/plugins/buddypress/bp-core/js/jquery-cookie.min.js b/wp-content/plugins/buddypress/bp-core/js/jquery-cookie.min.js index 307b6c7354a29a39a419adca5f9b94438a8c3f6e..571c31531ae54c27fe4de67d1df22a4d9834e400 100644 --- a/wp-content/plugins/buddypress/bp-core/js/jquery-cookie.min.js +++ b/wp-content/plugins/buddypress/bp-core/js/jquery-cookie.min.js @@ -1,2 +1 @@ -/*! buddypress - v2.5.3 - 2016-05-24 5:17:45 PM UTC - https://wordpress.org/plugins/buddypress/ */ !function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a("object"==typeof exports?require("jquery"):jQuery)}(function(a){function b(a){return h.raw?a:encodeURIComponent(a)}function c(a){return h.raw?a:decodeURIComponent(a)}function d(a){return b(h.json?JSON.stringify(a):String(a))}function e(a){0===a.indexOf('"')&&(a=a.slice(1,-1).replace(/\\"/g,'"').replace(/\\\\/g,"\\"));try{return a=decodeURIComponent(a.replace(g," ")),h.json?JSON.parse(a):a}catch(b){}}function f(b,c){var d=h.raw?b:e(b);return a.isFunction(c)?c(d):d}var g=/\+/g,h=a.cookie=function(e,g,i){if(void 0!==g&&!a.isFunction(g)){if(i=a.extend({},h.defaults,i),"number"==typeof i.expires){var j=i.expires,k=i.expires=new Date;k.setTime(+k+864e5*j)}return document.cookie=[b(e),"=",d(g),i.expires?"; expires="+i.expires.toUTCString():"",i.path?"; path="+i.path:"",i.domain?"; domain="+i.domain:"",i.secure?"; secure":""].join("")}for(var l=e?void 0:{},m=document.cookie?document.cookie.split("; "):[],n=0,o=m.length;o>n;n++){var p=m[n].split("="),q=c(p.shift()),r=p.join("=");if(e&&e===q){l=f(r,g);break}e||void 0===(r=f(r))||(l[q]=r)}return l};h.defaults={},a.removeCookie=function(b,c){return void 0===a.cookie(b)?!1:(a.cookie(b,"",a.extend({},c,{expires:-1})),!a.cookie(b))}}); \ No newline at end of file diff --git a/wp-content/plugins/buddypress/bp-core/js/jquery-query.min.js b/wp-content/plugins/buddypress/bp-core/js/jquery-query.min.js index 3cd3bad8ec52fa3dcffbfb7d9d52cddd72f3385b..84e3d6ced9725d54f539a9e880fc47ea53b2d385 100644 --- a/wp-content/plugins/buddypress/bp-core/js/jquery-query.min.js +++ b/wp-content/plugins/buddypress/bp-core/js/jquery-query.min.js @@ -1,2 +1 @@ -/*! buddypress - v2.5.3 - 2016-05-24 5:17:45 PM UTC - https://wordpress.org/plugins/buddypress/ */ function bp_get_querystring(a){var b=location.search.split(a+"=")[1];return b?decodeURIComponent(b.split("&")[0]):null} \ No newline at end of file diff --git a/wp-content/plugins/buddypress/bp-core/js/jquery-scroll-to.min.js b/wp-content/plugins/buddypress/bp-core/js/jquery-scroll-to.min.js index e64a84b8a3f04128fc515240a9d7ccf5ca99fc4e..9f14d2a384a9718576f62990e4e724e9a800f4d2 100644 --- a/wp-content/plugins/buddypress/bp-core/js/jquery-scroll-to.min.js +++ b/wp-content/plugins/buddypress/bp-core/js/jquery-scroll-to.min.js @@ -1,2 +1 @@ -/*! buddypress - v2.5.3 - 2016-05-24 5:17:45 PM UTC - https://wordpress.org/plugins/buddypress/ */ !function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a("object"==typeof exports?require("jquery"):jQuery)}(function(a){function b(b){return a.isFunction(b)||"object"==typeof b?b:{top:b,left:b}}var c=a.scrollTo=function(b,c,d){return a(window).scrollTo(b,c,d)};return c.defaults={axis:"xy",duration:parseFloat(a.fn.jquery)>=1.3?0:1,limit:!0},c.window=function(){return a(window)._scrollable()},a.fn._scrollable=function(){return this.map(function(){var b=this,c=!b.nodeName||-1!==a.inArray(b.nodeName.toLowerCase(),["iframe","#document","html","body"]);if(!c)return b;var d=(b.contentWindow||b).document||b.ownerDocument||b;return/webkit/i.test(navigator.userAgent)||"BackCompat"===d.compatMode?d.body:d.documentElement})},a.fn.scrollTo=function(d,e,f){return"object"==typeof e&&(f=e,e=0),"function"==typeof f&&(f={onAfter:f}),"max"===d&&(d=9e9),f=a.extend({},c.defaults,f),e=e||f.duration,f.queue=f.queue&&f.axis.length>1,f.queue&&(e/=2),f.offset=b(f.offset),f.over=b(f.over),this._scrollable().each(function(){function g(a){j.animate(l,e,f.easing,a&&function(){a.call(this,k,f)})}if(null!==d){var h,i=this,j=a(i),k=d,l={},m=j.is("html,body");switch(typeof k){case"number":case"string":if(/^([+-]=?)?\d+(\.\d+)?(px|%)?$/.test(k)){k=b(k);break}if(k=m?a(k):a(k,this),!k.length)return;case"object":(k.is||k.style)&&(h=(k=a(k)).offset())}var n=a.isFunction(f.offset)&&f.offset(i,k)||f.offset;a.each(f.axis.split(""),function(a,b){var d="x"===b?"Left":"Top",e=d.toLowerCase(),o="scroll"+d,p=i[o],q=c.max(i,b);if(h)l[o]=h[e]+(m?0:p-j.offset()[e]),f.margin&&(l[o]-=parseInt(k.css("margin"+d))||0,l[o]-=parseInt(k.css("border"+d+"Width"))||0),l[o]+=n[e]||0,f.over[e]&&(l[o]+=k["x"===b?"width":"height"]()*f.over[e]);else{var r=k[e];l[o]=r.slice&&"%"===r.slice(-1)?parseFloat(r)/100*q:r}f.limit&&/^\d+$/.test(l[o])&&(l[o]=l[o]<=0?0:Math.min(l[o],q)),!a&&f.queue&&(p!==l[o]&&g(f.onAfterFirst),delete l[o])}),g(f.onAfter)}}).end()},c.max=function(b,c){var d="x"===c?"Width":"Height",e="scroll"+d;if(!a(b).is("html,body"))return b[e]-a(b)[d.toLowerCase()]();var f="client"+d,g=b.ownerDocument.documentElement,h=b.ownerDocument.body;return Math.max(g[e],h[e])-Math.min(g[f],h[f])},c}); \ No newline at end of file diff --git a/wp-content/plugins/buddypress/bp-core/js/jquery.atwho.min.js b/wp-content/plugins/buddypress/bp-core/js/jquery.atwho.min.js index d6a5b5fb01e977662359f6e6f8a67e3a551caf18..71edb95afc99c9efd13a4db6143d81f443ed93ac 100644 --- a/wp-content/plugins/buddypress/bp-core/js/jquery.atwho.min.js +++ b/wp-content/plugins/buddypress/bp-core/js/jquery.atwho.min.js @@ -1,2 +1 @@ -/*! buddypress - v2.5.3 - 2016-05-24 5:17:45 PM UTC - https://wordpress.org/plugins/buddypress/ */ !function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(c){return a.returnExportsGlobal=b(c)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(a){var b,c,d,e,f,g,h,i=[].slice;c=function(){function b(b){this.current_flag=null,this.controllers={},this.alias_maps={},this.$inputor=a(b),this.setIframe(),this.listen()}return b.prototype.createContainer=function(b){return 0===(this.$el=a("#atwho-container",b)).length?a(b.body).append(this.$el=a("<div id='atwho-container'></div>")):void 0},b.prototype.setIframe=function(a,b){var c;return null==b&&(b=!1),a?(this.window=a.contentWindow,this.document=a.contentDocument||this.window.document,this.iframe=a):(this.document=document,this.window=window,this.iframe=null),(this.iframeStandalone=b)?(null!=(c=this.$el)&&c.remove(),this.createContainer(this.document)):this.createContainer(document)},b.prototype.controller=function(a){var b,c,d,e;if(this.alias_maps[a])c=this.controllers[this.alias_maps[a]];else{e=this.controllers;for(d in e)if(b=e[d],d===a){c=b;break}}return c?c:this.controllers[this.current_flag]},b.prototype.set_context_for=function(a){return this.current_flag=a,this},b.prototype.reg=function(a,b){var c,e;return c=(e=this.controllers)[a]||(e[a]=new d(this,a)),b.alias&&(this.alias_maps[b.alias]=a),c.init(b),this},b.prototype.listen=function(){return this.$inputor.on("keyup.atwhoInner",function(a){return function(b){return a.on_keyup(b)}}(this)).on("keydown.atwhoInner",function(a){return function(b){return a.on_keydown(b)}}(this)).on("scroll.atwhoInner",function(a){return function(b){var c;return null!=(c=a.controller())?c.view.hide(b):void 0}}(this)).on("blur.atwhoInner",function(a){return function(b){var c;return(c=a.controller())?c.view.hide(b,c.get_opt("display_timeout")):void 0}}(this)).on("click.atwhoInner",function(a){return function(b){return a.dispatch()}}(this))},b.prototype.shutdown=function(){var a,b,c;c=this.controllers;for(b in c)a=c[b],a.destroy(),delete this.controllers[b];return this.$inputor.off(".atwhoInner"),this.$el.remove()},b.prototype.dispatch=function(){return a.map(this.controllers,function(a){return function(b){var c;return(c=b.get_opt("delay"))?(clearTimeout(a.delayedCallback),a.delayedCallback=setTimeout(function(){return b.look_up()?a.set_context_for(b.at):void 0},c)):b.look_up()?a.set_context_for(b.at):void 0}}(this))},b.prototype.on_keyup=function(b){var c;switch(b.keyCode){case f.ESC:b.preventDefault(),null!=(c=this.controller())&&c.view.hide();break;case f.DOWN:case f.UP:case f.CTRL:a.noop();break;case f.P:case f.N:b.ctrlKey||this.dispatch();break;default:this.dispatch()}},b.prototype.on_keydown=function(b){var c,d;if(c=null!=(d=this.controller())?d.view:void 0,c&&c.visible())switch(b.keyCode){case f.ESC:b.preventDefault(),c.hide(b);break;case f.UP:b.preventDefault(),c.prev();break;case f.DOWN:b.preventDefault(),c.next();break;case f.P:if(!b.ctrlKey)return;b.preventDefault(),c.prev();break;case f.N:if(!b.ctrlKey)return;b.preventDefault(),c.next();break;case f.TAB:case f.ENTER:if(!c.visible())return;b.preventDefault(),c.choose(b);break;default:a.noop()}},b}(),d=function(){function b(b,c){this.app=b,this.at=c,this.$inputor=this.app.$inputor,this.id=this.$inputor[0].id||this.uid(),this.setting=null,this.query=null,this.pos=0,this.cur_rect=null,this.range=null,0===(this.$el=a("#atwho-ground-"+this.id,this.app.$el)).length&&this.app.$el.append(this.$el=a("<div id='atwho-ground-"+this.id+"'></div>")),this.model=new g(this),this.view=new h(this)}return b.prototype.uid=function(){return(Math.random().toString(16)+"000000000").substr(2,8)+(new Date).getTime()},b.prototype.init=function(b){return this.setting=a.extend({},this.setting||a.fn.atwho["default"],b),this.view.init(),this.model.reload(this.setting.data)},b.prototype.destroy=function(){return this.trigger("beforeDestroy"),this.model.destroy(),this.view.destroy(),this.$el.remove()},b.prototype.call_default=function(){var b,c,d;d=arguments[0],b=2<=arguments.length?i.call(arguments,1):[];try{return e[d].apply(this,b)}catch(f){return c=f,a.error(""+c+" Or maybe At.js doesn't have function "+d)}},b.prototype.trigger=function(a,b){var c,d;return null==b&&(b=[]),b.push(this),c=this.get_opt("alias"),d=c?""+a+"-"+c+".atwho":""+a+".atwho",this.$inputor.trigger(d,b)},b.prototype.callbacks=function(a){return this.get_opt("callbacks")[a]||e[a]},b.prototype.get_opt=function(a,b){var c;try{return this.setting[a]}catch(d){return c=d,null}},b.prototype.content=function(){var a;if(this.$inputor.is("textarea, input"))return this.$inputor.val();if(a=this.mark_range())return(a.startContainer.textContent||"").slice(0,a.startOffset)},b.prototype.catch_query=function(){var a,b,c,d,e,f;return b=this.content(),a=this.$inputor.caret("pos",{iframe:this.app.iframe}),f=b.slice(0,a),d=this.callbacks("matcher").call(this,this.at,f,this.get_opt("start_with_space")),"string"==typeof d&&d.length<=this.get_opt("max_len",20)?(e=a-d.length,c=e+d.length,this.pos=e,d={text:d,head_pos:e,end_pos:c},this.trigger("matched",[this.at,d.text])):(d=null,this.view.hide()),this.query=d},b.prototype.rect=function(){var b,c,d;if(b=this.$inputor.caret("offset",this.pos-1,{iframe:this.app.iframe}))return this.app.iframe&&!this.app.iframeStandalone&&(c=a(this.app.iframe).offset(),b.left+=c.left,b.top+=c.top),this.$inputor.is("[contentEditable]")&&(b=this.cur_rect||(this.cur_rect=b)),d=this.app.document.selection?0:2,{left:b.left,top:b.top,bottom:b.top+b.height+d}},b.prototype.reset_rect=function(){return this.$inputor.is("[contentEditable]")?this.cur_rect=null:void 0},b.prototype.mark_range=function(){var a;if(this.$inputor.is("[contentEditable]"))return this.app.window.getSelection&&(a=this.app.window.getSelection()).rangeCount>0?this.range=a.getRangeAt(0):this.app.document.selection?this.ie8_range=this.app.document.selection.createRange():void 0},b.prototype.insert_content_for=function(b){var c,d,e;return d=b.data("value"),e=this.get_opt("insert_tpl"),this.$inputor.is("textarea, input")||!e?d:(c=a.extend({},b.data("item-data"),{"atwho-data-value":d,"atwho-at":this.at}),this.callbacks("tpl_eval").call(this,e,c))},b.prototype.insert=function(b,c){var d,e,f,g,h,i,j,k,l,m,n,o;if(d=this.$inputor,l=this.callbacks("inserting_wrapper").call(this,d,b,this.get_opt("suffix")),d.is("textarea, input"))i=d.val(),j=i.slice(0,Math.max(this.query.head_pos-this.at.length,0)),k=""+j+l+i.slice(this.query.end_pos||0),d.val(k),d.caret("pos",j.length+l.length,{iframe:this.app.iframe});else if(g=this.range){for(f=g.startOffset-(this.query.end_pos-this.query.head_pos)-this.at.length,g.setStart(g.endContainer,Math.max(f,0)),g.setEnd(g.endContainer,g.endOffset),g.deleteContents(),o=a(l,this.app.document),m=0,n=o.length;n>m;m++)e=o[m],g.insertNode(e),g.setEndAfter(e),g.collapse(!1);h=this.app.window.getSelection(),h.removeAllRanges(),h.addRange(g)}else(g=this.ie8_range)&&(g.moveStart("character",this.query.end_pos-this.query.head_pos-this.at.length),g.pasteHTML(l),g.collapse(!1),g.select());return d.is(":focus")||d.focus(),d.change()},b.prototype.render_view=function(a){var b;return b=this.get_opt("search_key"),a=this.callbacks("sorter").call(this,this.query.text,a.slice(0,1001),b),this.view.render(a.slice(0,this.get_opt("limit")))},b.prototype.look_up=function(){var b,c;if(b=this.catch_query())return c=function(a){return a&&a.length>0?this.render_view(a):this.view.hide()},this.model.query(b.text,a.proxy(c,this)),b},b}(),g=function(){function b(a){this.context=a,this.at=this.context.at,this.storage=this.context.$inputor}return b.prototype.destroy=function(){return this.storage.data(this.at,null)},b.prototype.saved=function(){return this.fetch()>0},b.prototype.query=function(a,b){var c,d,e;return c=this.fetch(),d=this.context.get_opt("search_key"),c=this.context.callbacks("filter").call(this.context,a,c,d)||[],e=this.context.callbacks("remote_filter"),c.length>0||!e&&0===c.length?b(c):e.call(this.context,a,b)},b.prototype.fetch=function(){return this.storage.data(this.at)||[]},b.prototype.save=function(a){return this.storage.data(this.at,this.context.callbacks("before_save").call(this.context,a||[]))},b.prototype.load=function(a){return!this.saved()&&a?this._load(a):void 0},b.prototype.reload=function(a){return this._load(a)},b.prototype._load=function(b){return"string"==typeof b?a.ajax(b,{dataType:"json"}).done(function(a){return function(b){return a.save(b)}}(this)):this.save(b)},b}(),h=function(){function b(b){this.context=b,this.$el=a("<div class='atwho-view'><ul class='atwho-view-ul'></ul></div>"),this.timeout_id=null,this.context.$el.append(this.$el),this.bind_event()}return b.prototype.init=function(){var a;return a=this.context.get_opt("alias")||this.context.at.charCodeAt(0),this.$el.attr({id:"at-view-"+a})},b.prototype.destroy=function(){return this.$el.remove()},b.prototype.bind_event=function(){var b;return b=this.$el.find("ul"),b.on("mouseenter.atwho-view","li",function(c){return b.find(".cur").removeClass("cur"),a(c.currentTarget).addClass("cur")}).on("click.atwho-view","li",function(c){return function(d){return b.find(".cur").removeClass("cur"),a(d.currentTarget).addClass("cur"),c.choose(d),d.preventDefault()}}(this))},b.prototype.visible=function(){return this.$el.is(":visible")},b.prototype.choose=function(a){var b,c;return(b=this.$el.find(".cur")).length&&(c=this.context.insert_content_for(b),this.context.insert(this.context.callbacks("before_insert").call(this.context,c,b),b),this.context.trigger("inserted",[b,a]),this.hide(a)),this.context.get_opt("hide_without_suffix")?this.stop_showing=!0:void 0},b.prototype.reposition=function(b){var c,d,e,f;return f=this.context.app.iframeStandalone?this.context.app.window:window,b.bottom+this.$el.height()-a(f).scrollTop()>a(f).height()&&(b.bottom=b.top-this.$el.height()),b.left>(d=a(f).width()-this.$el.width()-5)&&(b.left=d),c={left:b.left,top:b.bottom},null!=(e=this.context.callbacks("before_reposition"))&&e.call(this.context,c),this.$el.offset(c),this.context.trigger("reposition",[c])},b.prototype.next=function(){var a,b;return a=this.$el.find(".cur").removeClass("cur"),b=a.next(),b.length||(b=this.$el.find("li:first")),b.addClass("cur"),this.$el.animate({scrollTop:Math.max(0,a.innerHeight()*(b.index()+2)-this.$el.height())},150)},b.prototype.prev=function(){var a,b;return a=this.$el.find(".cur").removeClass("cur"),b=a.prev(),b.length||(b=this.$el.find("li:last")),b.addClass("cur"),this.$el.animate({scrollTop:Math.max(0,a.innerHeight()*(b.index()+2)-this.$el.height())},150)},b.prototype.show=function(){var a;return this.stop_showing?void(this.stop_showing=!1):(this.context.mark_range(),this.visible()||(this.$el.show(),this.$el.scrollTop(0),this.context.trigger("shown")),(a=this.context.rect())?this.reposition(a):void 0)},b.prototype.hide=function(a,b){var c;if(this.visible())return isNaN(b)?(this.context.reset_rect(),this.$el.hide(),this.context.trigger("hidden",[a])):(c=function(a){return function(){return a.hide()}}(this),clearTimeout(this.timeout_id),this.timeout_id=setTimeout(c,b))},b.prototype.render=function(b){var c,d,e,f,g,h,i;if(!(a.isArray(b)&&b.length>0))return void this.hide();for(this.$el.find("ul").empty(),d=this.$el.find("ul"),g=this.context.get_opt("tpl"),h=0,i=b.length;i>h;h++)e=b[h],e=a.extend({},e,{"atwho-at":this.context.at}),f=this.context.callbacks("tpl_eval").call(this.context,g,e),c=a(this.context.callbacks("highlighter").call(this.context,f,this.context.query.text)),c.data("item-data",e),d.append(c);return this.show(),this.context.get_opt("highlight_first")?d.find("li:first").addClass("cur"):void 0},b}(),f={DOWN:40,UP:38,ESC:27,TAB:9,ENTER:13,CTRL:17,P:80,N:78},e={before_save:function(b){var c,d,e,f;if(!a.isArray(b))return b;for(f=[],d=0,e=b.length;e>d;d++)c=b[d],a.isPlainObject(c)?f.push(c):f.push({name:c});return f},matcher:function(a,b,c){var d,e,f,g;return a=a.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&"),c&&(a="(?:^|\\s)"+a),f=decodeURI("%C3%80"),g=decodeURI("%C3%BF"),e=new RegExp(""+a+"([A-Za-z"+f+"-"+g+"0-9_+-]*)$|"+a+"([^\\x00-\\xff]*)$","gi"),d=e.exec(b),d?d[2]||d[1]:null},filter:function(a,b,c){var d,e,f,g;for(g=[],e=0,f=b.length;f>e;e++)d=b[e],~new String(d[c]).toLowerCase().indexOf(a.toLowerCase())&&g.push(d);return g},remote_filter:null,sorter:function(a,b,c){var d,e,f,g;if(!a)return b;for(g=[],e=0,f=b.length;f>e;e++)d=b[e],d.atwho_order=new String(d[c]).toLowerCase().indexOf(a.toLowerCase()),d.atwho_order>-1&&g.push(d);return g.sort(function(a,b){return a.atwho_order-b.atwho_order})},tpl_eval:function(a,b){var c;try{return a.replace(/\$\{([^\}]*)\}/g,function(a,c,d){return b[c]})}catch(d){return c=d,""}},highlighter:function(a,b){var c;return b?(c=new RegExp(">\\s*(\\w*?)("+b.replace("+","\\+")+")(\\w*)\\s*<","ig"),a.replace(c,function(a,b,c,d){return"> "+b+"<strong>"+c+"</strong>"+d+" <"})):a},before_insert:function(a,b){return a},inserting_wrapper:function(a,b,c){var d;return c=""===c?c:c||" ",a.is("textarea, input")?""+b+c:"true"===a.attr("contentEditable")?(c=" "===c?" ":c,/firefox/i.test(navigator.userAgent)?d="<span>"+b+c+"</span>":(c="<span contenteditable='false'>"+c+"</span>",d="<span contenteditable='false'>"+b+c+"</span>"),this.app.document.selection&&(d="<span contenteditable='true'>"+b+"</span>"),d+"<span></span>"):void 0}},b={load:function(a,b){var c;return(c=this.controller(a))?c.model.load(b):void 0},setIframe:function(a,b){return this.setIframe(a,b),null},run:function(){return this.dispatch()},destroy:function(){return this.shutdown(),this.$inputor.data("atwho",null)}},a.fn.atwho=function(d){var e,f;return f=arguments,e=null,this.filter('textarea, input, [contenteditable=""], [contenteditable=true]').each(function(){var g,h;return(h=(g=a(this)).data("atwho"))||g.data("atwho",h=new c(this)),"object"!=typeof d&&d?b[d]&&h?e=b[d].apply(h,Array.prototype.slice.call(f,1)):a.error("Method "+d+" does not exist on jQuery.caret"):h.reg(d.at,d)}),e||this},a.fn.atwho["default"]={at:void 0,alias:void 0,data:null,tpl:"<li data-value='${atwho-at}${name}'>${name}</li>",insert_tpl:"<span id='${id}'>${atwho-data-value}</span>",callbacks:e,search_key:"name",suffix:void 0,hide_without_suffix:!1,start_with_space:!0,highlight_first:!0,limit:5,max_len:20,display_timeout:300,delay:null}}); \ No newline at end of file diff --git a/wp-content/plugins/buddypress/bp-core/js/jquery.caret.min.js b/wp-content/plugins/buddypress/bp-core/js/jquery.caret.min.js index c2fe1809f0146de4e65330f7b0e34677534de5e6..ce7a1543b029f1c2d7cd71a33fe3aa11df92b6f3 100644 --- a/wp-content/plugins/buddypress/bp-core/js/jquery.caret.min.js +++ b/wp-content/plugins/buddypress/bp-core/js/jquery.caret.min.js @@ -1,2 +1 @@ -/*! buddypress - v2.5.3 - 2016-05-24 5:17:45 PM UTC - https://wordpress.org/plugins/buddypress/ */ !function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(c){return a.returnExportsGlobal=b(c)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(a){"use strict";var b,c,d,e,f,g,h,i,j,k,l;k="caret",b=function(){function b(a){this.$inputor=a,this.domInputor=this.$inputor[0]}return b.prototype.setPos=function(a){return this.domInputor},b.prototype.getIEPosition=function(){return this.getPosition()},b.prototype.getPosition=function(){var a,b;return b=this.getOffset(),a=this.$inputor.offset(),b.left-=a.left,b.top-=a.top,b},b.prototype.getOldIEPos=function(){var a,b;return b=h.selection.createRange(),a=h.body.createTextRange(),a.moveToElementText(this.domInputor),a.setEndPoint("EndToEnd",b),a.text.length},b.prototype.getPos=function(){var a,b,c;return(c=this.range())?(a=c.cloneRange(),a.selectNodeContents(this.domInputor),a.setEnd(c.endContainer,c.endOffset),b=a.toString().length,a.detach(),b):h.selection?this.getOldIEPos():void 0},b.prototype.getOldIEOffset=function(){var a,b;return a=h.selection.createRange().duplicate(),a.moveStart("character",-1),b=a.getBoundingClientRect(),{height:b.bottom-b.top,left:b.left,top:b.top}},b.prototype.getOffset=function(b){var c,d,e,f,g;return j.getSelection&&(e=this.range())?(e.endOffset-1>0&&e.endContainer===!this.domInputor&&(c=e.cloneRange(),c.setStart(e.endContainer,e.endOffset-1),c.setEnd(e.endContainer,e.endOffset),f=c.getBoundingClientRect(),d={height:f.height,left:f.left+f.width,top:f.top},c.detach()),d&&0!==(null!=d?d.height:void 0)||(c=e.cloneRange(),g=a(h.createTextNode("|")),c.insertNode(g[0]),c.selectNode(g[0]),f=c.getBoundingClientRect(),d={height:f.height,left:f.left,top:f.top},g.remove(),c.detach())):h.selection&&(d=this.getOldIEOffset()),d&&(d.top+=a(j).scrollTop(),d.left+=a(j).scrollLeft()),d},b.prototype.range=function(){var a;if(j.getSelection)return a=j.getSelection(),a.rangeCount>0?a.getRangeAt(0):null},b}(),c=function(){function b(a){this.$inputor=a,this.domInputor=this.$inputor[0]}return b.prototype.getIEPos=function(){var a,b,c,d,e,f,g;return b=this.domInputor,f=h.selection.createRange(),e=0,f&&f.parentElement()===b&&(d=b.value.replace(/\r\n/g,"\n"),c=d.length,g=b.createTextRange(),g.moveToBookmark(f.getBookmark()),a=b.createTextRange(),a.collapse(!1),e=g.compareEndPoints("StartToEnd",a)>-1?c:-g.moveStart("character",-c)),e},b.prototype.getPos=function(){return h.selection?this.getIEPos():this.domInputor.selectionStart},b.prototype.setPos=function(a){var b,c;return b=this.domInputor,h.selection?(c=b.createTextRange(),c.move("character",a),c.select()):b.setSelectionRange&&b.setSelectionRange(a,a),b},b.prototype.getIEOffset=function(a){var b,c,d,e;return c=this.domInputor.createTextRange(),a||(a=this.getPos()),c.move("character",a),d=c.boundingLeft,e=c.boundingTop,b=c.boundingHeight,{left:d,top:e,height:b}},b.prototype.getOffset=function(b){var c,d,e;return c=this.$inputor,h.selection?(d=this.getIEOffset(b),d.top+=a(j).scrollTop()+c.scrollTop(),d.left+=a(j).scrollLeft()+c.scrollLeft(),d):(d=c.offset(),e=this.getPosition(b),d={left:d.left+e.left-c.scrollLeft(),top:d.top+e.top-c.scrollTop(),height:e.height})},b.prototype.getPosition=function(a){var b,c,e,f,g,h,i;return b=this.$inputor,f=function(a){return a=a.replace(/<|>|`|"|&/g,"?").replace(/\r\n|\r|\n/g,"<br/>"),/firefox/i.test(navigator.userAgent)&&(a=a.replace(/\s/g," ")),a},void 0===a&&(a=this.getPos()),i=b.val().slice(0,a),e=b.val().slice(a),g="<span style='position: relative; display: inline;'>"+f(i)+"</span>",g+="<span id='caret' style='position: relative; display: inline;'>|</span>",g+="<span style='position: relative; display: inline;'>"+f(e)+"</span>",h=new d(b),c=h.create(g).rect()},b.prototype.getIEPosition=function(a){var b,c,d,e,f;return d=this.getIEOffset(a),c=this.$inputor.offset(),e=d.left-c.left,f=d.top-c.top,b=d.height,{left:e,top:f,height:b}},b}(),d=function(){function b(a){this.$inputor=a}return b.prototype.css_attr=["borderBottomWidth","borderLeftWidth","borderRightWidth","borderTopStyle","borderRightStyle","borderBottomStyle","borderLeftStyle","borderTopWidth","boxSizing","fontFamily","fontSize","fontWeight","height","letterSpacing","lineHeight","marginBottom","marginLeft","marginRight","marginTop","outlineWidth","overflow","overflowX","overflowY","paddingBottom","paddingLeft","paddingRight","paddingTop","textAlign","textOverflow","textTransform","whiteSpace","wordBreak","wordWrap"],b.prototype.mirrorCss=function(){var b,c=this;return b={position:"absolute",left:-9999,top:0,zIndex:-2e4},"TEXTAREA"===this.$inputor.prop("tagName")&&this.css_attr.push("width"),a.each(this.css_attr,function(a,d){return b[d]=c.$inputor.css(d)}),b},b.prototype.create=function(b){return this.$mirror=a("<div></div>"),this.$mirror.css(this.mirrorCss()),this.$mirror.html(b),this.$inputor.after(this.$mirror),this},b.prototype.rect=function(){var a,b,c;return a=this.$mirror.find("#caret"),b=a.position(),c={left:b.left,top:b.top,height:a.height()},this.$mirror.remove(),c},b}(),e={contentEditable:function(a){return!(!a[0].contentEditable||"true"!==a[0].contentEditable)}},g={pos:function(a){return a||0===a?this.setPos(a):this.getPos()},position:function(a){return h.selection?this.getIEPosition(a):this.getPosition(a)},offset:function(a){var b;return b=this.getOffset(a)}},h=null,j=null,i=null,l=function(a){var b;return(b=null!=a?a.iframe:void 0)?(i=b,j=b.contentWindow,h=b.contentDocument||j.document):(i=void 0,j=window,h=document)},f=function(a){var b;h=a[0].ownerDocument,j=h.defaultView||h.parentWindow;try{return i=j.frameElement}catch(c){b=c}},a.fn.caret=function(d,f,h){var i;return g[d]?(a.isPlainObject(f)?(l(f),f=void 0):l(h),i=e.contentEditable(this)?new b(this):new c(this),g[d].apply(i,[f])):a.error("Method "+d+" does not exist on jQuery.caret")},a.fn.caret.EditableCaret=b,a.fn.caret.InputCaret=c,a.fn.caret.Utils=e,a.fn.caret.apis=g}); \ No newline at end of file diff --git a/wp-content/plugins/buddypress/bp-core/js/webcam.min.js b/wp-content/plugins/buddypress/bp-core/js/webcam.min.js index 952849610fd571d35450170622d9ad5d2bd062bd..f694c07a9b91d299b6b39a031299f19c4865beff 100644 --- a/wp-content/plugins/buddypress/bp-core/js/webcam.min.js +++ b/wp-content/plugins/buddypress/bp-core/js/webcam.min.js @@ -1,2 +1 @@ -/*! buddypress - v2.5.3 - 2016-05-24 5:17:45 PM UTC - https://wordpress.org/plugins/buddypress/ */ window.bp=window.bp||{},function(){"undefined"!=typeof BP_Uploader&&(bp.Models=bp.Models||{},bp.Collections=bp.Collections||{},bp.Views=bp.Views||{},bp.WebCam={start:function(){this.params={video:null,videoStream:null,capture_enable:!1,capture:null,canvas:null,warning:null,flipped:!1},bp.Avatar.nav.on("bp-avatar-view:changed",_.bind(this.setView,this))},setView:function(a){if("camera"!==a)return void(_.isNull(this.params.video)||(this.stop(),this.removeWarning()));var b=new bp.Views.WebCamAvatar({model:new Backbone.Model({user_media:!1})});this.params.flipped=!1,bp.Avatar.views.add({id:"camera",view:b}),b.inject(".bp-avatar")},removeView:function(){var a;_.isUndefined(bp.Avatar.views.get("camera"))||(a=bp.Avatar.views.get("camera"),a.get("view").remove(),bp.Avatar.views.remove({id:"camera",view:a}))},gotStream:function(a){var b=bp.WebCam.params.video;bp.WebCam.params.videoStream=a,bp.WebCam.displayWarning("loaded"),b.onerror=function(){bp.WebCam.displayWarning("videoerror"),b&&bp.WebCam.stop()},a.onended=bp.WebCam.noStream(),void 0!==b.mozSrcObject?(b.mozSrcObject=a,b.play()):navigator.mozGetUserMedia?(b.src=a,b.play()):void 0!==b.srcObject?b.srcObject=a:window.URL?b.src=window.URL.createObjectURL(a):b.src=a,bp.WebCam.params.capture_enable=!0},stop:function(){bp.WebCam.params.capture_enable=!1,bp.WebCam.params.videoStream&&(bp.WebCam.params.videoStream.stop?bp.WebCam.params.videoStream.stop():bp.WebCam.params.videoStream.msStop&&bp.WebCam.params.videoStream.msStop(),bp.WebCam.params.videoStream.onended=null,bp.WebCam.params.videoStream=null),bp.WebCam.params.video&&(bp.WebCam.params.video.onerror=null,bp.WebCam.params.video.pause(),bp.WebCam.params.video.mozSrcObject&&(bp.WebCam.params.video.mozSrcObject=null),bp.WebCam.params.video.src="")},noStream:function(){_.isNull(bp.WebCam.params.videoStream)&&(bp.WebCam.displayWarning("noaccess"),bp.WebCam.removeView())},setAvatar:function(a){a.get("url")||bp.WebCam.displayWarning("nocapture"),bp.WebCam.removeView(),bp.Avatar.setAvatar(a)},removeWarning:function(){_.isNull(this.params.warning)||this.params.warning.remove()},displayWarning:function(a){this.removeWarning(),this.params.warning=new bp.Views.uploaderWarning({value:BP_Uploader.strings.camera_warnings[a]}),this.params.warning.inject(".bp-avatar-status")}},bp.Views.WebCamAvatar=bp.View.extend({tagName:"div",id:"bp-webcam-avatar",template:bp.template("bp-avatar-webcam"),events:{"click .avatar-webcam-capture":"captureStream","click .avatar-webcam-save":"saveCapture"},initialize:function(){var a;(navigator.getUserMedia||navigator.oGetUserMedia||navigator.mozGetUserMedia||navigator.webkitGetUserMedia||navigator.msGetUserMedia)&&(a=_.extend(_.pick(BP_Uploader.settings.defaults.multipart_params.bp_params,"object","item_id","nonces"),{user_media:!0,w:BP_Uploader.settings.crop.full_w,h:BP_Uploader.settings.crop.full_h,x:0,y:0,type:"camera"}),this.model.set(a)),this.on("ready",this.useStream,this)},useStream:function(){this.model.get("user_media")&&(this.options.video=new bp.Views.WebCamVideo,this.options.canvas=new bp.Views.WebCamCanvas,this.$el.find("#avatar-to-crop").append(this.options.video.el),this.$el.find("#avatar-crop-pane").append(this.options.canvas.el),bp.WebCam.params.video=this.options.video.el,bp.WebCam.params.canvas=this.options.canvas.el,bp.WebCam.displayWarning("requesting"),navigator.getUserMedia?navigator.getUserMedia({video:!0},bp.WebCam.gotStream,bp.WebCam.noStream):navigator.oGetUserMedia?navigator.oGetUserMedia({video:!0},bp.WebCam.gotStream,bp.WebCam.noStream):navigator.mozGetUserMedia?navigator.mozGetUserMedia({video:!0},bp.WebCam.gotStream,bp.WebCam.noStream):navigator.webkitGetUserMedia?navigator.webkitGetUserMedia({video:!0},bp.WebCam.gotStream,bp.WebCam.noStream):navigator.msGetUserMedia?navigator.msGetUserMedia({video:!0,audio:!1},bp.WebCams.gotStream,bp.WebCam.noStream):bp.WebCam.displayWarning("errormsg"))},captureStream:function(a){var b,c;return a.preventDefault(),bp.WebCam.params.capture_enable?this.model.get("h")>this.options.video.el.videoHeight||this.model.get("w")>this.options.video.el.videoWidth?void bp.WebCam.displayWarning("videoerror"):(c=this.options.video.el.videoHeight,b=(this.options.video.el.videoWidth-c)/2,bp.WebCam.params.flipped||(this.options.canvas.el.getContext("2d").translate(this.model.get("w"),0),this.options.canvas.el.getContext("2d").scale(-1,1),bp.WebCam.params.flipped=!0),this.options.canvas.el.getContext("2d").drawImage(this.options.video.el,b,0,c,c,0,0,this.model.get("w"),this.model.get("h")),bp.WebCam.params.capture=this.options.canvas.el.toDataURL("image/png"),this.model.set("url",bp.WebCam.params.capture),void bp.WebCam.displayWarning("ready")):void bp.WebCam.displayWarning("loading")},saveCapture:function(a){return a.preventDefault(),bp.WebCam.params.capture?(bp.WebCam.stop(),void bp.WebCam.setAvatar(this.model)):void bp.WebCam.displayWarning("nocapture")}}),bp.Views.WebCamVideo=bp.View.extend({tagName:"video",id:"bp-webcam-video",attributes:{autoplay:"autoplay"}}),bp.Views.WebCamCanvas=bp.View.extend({tagName:"canvas",id:"bp-webcam-canvas",attributes:{width:150,height:150},initialize:function(){_.isUndefined(BP_Uploader.settings.crop.full_h)||_.isUndefined(BP_Uploader.settings.crop.full_w)||(this.el.attributes.width.value=BP_Uploader.settings.crop.full_w,this.el.attributes.height.value=BP_Uploader.settings.crop.full_h)}}),bp.WebCam.start())}(bp,jQuery); \ No newline at end of file diff --git a/wp-content/plugins/buddypress/bp-core/js/widget-members.js b/wp-content/plugins/buddypress/bp-core/js/widget-members.js index b8af2cc936917d5f6437ea6fc345dc9ebf9fb8c1..a46273e110bd08dfd10cb3335fb0f38833f1e084 100644 --- a/wp-content/plugins/buddypress/bp-core/js/widget-members.js +++ b/wp-content/plugins/buddypress/bp-core/js/widget-members.js @@ -1,4 +1,15 @@ jQuery(document).ready( function() { + member_widget_click_handler(); + + // WP 4.5 - Customizer selective refresh support. + if ( 'undefined' !== typeof wp && wp.customize && wp.customize.selectiveRefresh ) { + wp.customize.selectiveRefresh.bind( 'partial-content-rendered', function() { + member_widget_click_handler(); + } ); + } +}); + +function member_widget_click_handler() { jQuery('.widget div#members-list-options a').on('click', function() { var link = this; @@ -23,7 +34,7 @@ jQuery(document).ready( function() { return false; } ); -}); +} function member_widget_response(response) { response = response.substr(0, response.length-1); diff --git a/wp-content/plugins/buddypress/bp-core/js/widget-members.min.js b/wp-content/plugins/buddypress/bp-core/js/widget-members.min.js index f7c9082e86d9bff51e1d53ff3878a190f459c057..38a34b79da0b742f8e287bd1d4ebb41ce4499d1d 100644 --- a/wp-content/plugins/buddypress/bp-core/js/widget-members.min.js +++ b/wp-content/plugins/buddypress/bp-core/js/widget-members.min.js @@ -1,2 +1 @@ -/*! buddypress - v2.5.3 - 2016-05-24 5:17:45 PM UTC - https://wordpress.org/plugins/buddypress/ */ -function member_widget_response(a){a=a.substr(0,a.length-1),a=a.split("[[SPLIT]]"),"-1"!==a[0]?jQuery(".widget ul#members-list").fadeOut(200,function(){jQuery(".widget ul#members-list").html(a[1]),jQuery(".widget ul#members-list").fadeIn(200)}):jQuery(".widget ul#members-list").fadeOut(200,function(){var b="<p>"+a[1]+"</p>";jQuery(".widget ul#members-list").html(b),jQuery(".widget ul#members-list").fadeIn(200)})}jQuery(document).ready(function(){jQuery(".widget div#members-list-options a").on("click",function(){var a=this;return jQuery(a).addClass("loading"),jQuery(".widget div#members-list-options a").removeClass("selected"),jQuery(this).addClass("selected"),jQuery.post(ajaxurl,{action:"widget_members",cookie:encodeURIComponent(document.cookie),_wpnonce:jQuery("input#_wpnonce-members").val(),"max-members":jQuery("input#members_widget_max").val(),filter:jQuery(this).attr("id")},function(b){jQuery(a).removeClass("loading"),member_widget_response(b)}),!1})}); \ No newline at end of file +function member_widget_click_handler(){jQuery(".widget div#members-list-options a").on("click",function(){var a=this;return jQuery(a).addClass("loading"),jQuery(".widget div#members-list-options a").removeClass("selected"),jQuery(this).addClass("selected"),jQuery.post(ajaxurl,{action:"widget_members",cookie:encodeURIComponent(document.cookie),_wpnonce:jQuery("input#_wpnonce-members").val(),"max-members":jQuery("input#members_widget_max").val(),filter:jQuery(this).attr("id")},function(b){jQuery(a).removeClass("loading"),member_widget_response(b)}),!1})}function member_widget_response(a){a=a.substr(0,a.length-1),a=a.split("[[SPLIT]]"),"-1"!==a[0]?jQuery(".widget ul#members-list").fadeOut(200,function(){jQuery(".widget ul#members-list").html(a[1]),jQuery(".widget ul#members-list").fadeIn(200)}):jQuery(".widget ul#members-list").fadeOut(200,function(){var b="<p>"+a[1]+"</p>";jQuery(".widget ul#members-list").html(b),jQuery(".widget ul#members-list").fadeIn(200)})}jQuery(document).ready(function(){member_widget_click_handler(),"undefined"!=typeof wp&&wp.customize&&wp.customize.selectiveRefresh&&wp.customize.selectiveRefresh.bind("partial-content-rendered",function(){member_widget_click_handler()})}); \ No newline at end of file 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 e1682ffea03a64bb6cc267273c90f7fe94ff1727..2fb69ee2fd55008cf3c87757f1d7b36eae63dacc 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 @@ -13,6 +13,8 @@ defined( 'ABSPATH' ) || exit; /** * Bootstrap bbPress 1.x, and manipulate globals to integrate with BuddyPress. * + * @since 1.1.0 + * * @return bool|null Returns false on failure. */ function bp_forums_load_bbpress() { @@ -156,6 +158,8 @@ add_action( 'bbpress_init', 'bp_forums_load_bbpress' ); /** * Get the current bbPress user. * + * @since 1.1.0 + * * @return object $current_user Current user object from WordPress. */ function bb_get_current_user() { global $current_user; return $current_user; } @@ -163,6 +167,8 @@ function bb_get_current_user() { global $current_user; return $current_user; } /** * Get userdata for a bbPress user. * + * @since 1.1.0 + * * @param int $user_id User ID. * @return object User data from WordPress. */ @@ -173,14 +179,27 @@ function bb_get_user( $user_id ) { return get_userdata( $user_id ); } * * Noop. * + * @since 1.1.0 + * * @param array $users Array of users. */ function bb_cache_users( $users ) {} /** * The bbPress plugin needs this class for its usermeta manipulation. + * + * @since 1.1.0 */ class BP_Forums_BB_Auth { + + /** + * Update usermeta data. + * + * @since 1.1.0 + * + * @param string $args Array of arguments. + * @return bool + */ function update_meta( $args = '' ) { $defaults = array( 'id' => 0, 'meta_key' => null, 'meta_value' => null, 'meta_table' => 'usermeta', 'meta_field' => 'user_id', 'cache_group' => 'users' ); $args = wp_parse_args( $args, $defaults ); @@ -198,12 +217,20 @@ class BP_Forums_BB_Auth { * of BPDB which extend the appropriate base class. */ if ( ! class_exists( 'BPDB' ) ) : + + /** + * WPDB class extension. + * + * @since 1.1.0 + */ class BPDB extends WPDB { var $db_servers = array(); /** * Constructor. * + * @since 1.1.0 + * * @see WPDB::__construct() for description of parameters. */ function __construct( $dbuser, $dbpassword, $dbname, $dbhost ) { @@ -226,6 +253,8 @@ if ( ! class_exists( 'BPDB' ) ) : * supported by WordPress' minimum required MySQL version, so * this is safe. * + * @since 1.1.0 + * * @see WPDB::has_cap() for a description of parameters and * return values. * @@ -279,6 +308,8 @@ if ( ! class_exists( 'BPDB' ) ) : /** * Stub for escape_deep() compatibility. * + * @since 1.1.0 + * * @see WPDB::escape_deep() for description of parameters and * return values. * @@ -296,6 +327,8 @@ endif; // End class_exists( 'BPDB' ). * * The bbPress plugin needs this to convert vars. * + * @since 1.1.0 + * * @param object $object Object to convert. * @param string $output Type of object to return. OBJECT, ARRAY_A, or ARRAY_N. */ @@ -318,6 +351,8 @@ function backpress_convert_object( &$object, $output ) { * Copied from wp-admin/includes/upgrade.php, this will take care of creating * the bbPress stand-alone tables without loading a conflicting WP Admin. * + * @since 1.5.0 + * * @see dbDelta() for a description of parameters and return value. * * @param array $queries See {@link dbDelta()}. diff --git a/wp-content/plugins/buddypress/bp-forums/bp-forums-filters.php b/wp-content/plugins/buddypress/bp-forums/bp-forums-filters.php index d02f4801d837b4a31c55e8721bebd6bcd0dc4152..43fca100f2ddc41fc28f7b0ac9fa1e75897ef9b2 100644 --- a/wp-content/plugins/buddypress/bp-forums/bp-forums-filters.php +++ b/wp-content/plugins/buddypress/bp-forums/bp-forums-filters.php @@ -58,6 +58,8 @@ add_filter( 'bp_get_the_topic_post_content', 'bp_forums_make_nofollow_filter' ); /** * Custom KSES filter for the Forums component. * + * @since 1.2.0 + * * @param string $content Content to sanitize. * @return string Sanitized string. */ @@ -98,6 +100,8 @@ function bp_forums_filter_kses( $content ) { /** * Get a link for a forum topic tags directory. * + * @since 1.1.0 + * * @param string $link Link passed from filter. * @param string $tag Name of the tag. * @param string $page Page number, passed from the filter. @@ -119,6 +123,8 @@ add_filter( 'bb_get_tag_link', 'bp_forums_filter_tag_link', 10, 4); /** * Add rel="nofollow" to bbPress content. * + * @since 1.2.1 + * * @param string $text Post content. * @return string Modified post content. */ @@ -128,6 +134,8 @@ function bp_forums_make_nofollow_filter( $text ) { /** * Callback for preg_replace_callback() in bp_forums_make_nofollow_filter(). * + * @since 1.2.1 + * * @param array $matches Regex matches from {@link bp_forums_make_nofollow_filter()}. * @return string Text with nofollow links. */ @@ -140,6 +148,8 @@ function bp_forums_make_nofollow_filter( $text ) { /** * Append forum topic to page title. * + * @since 1.2.6 + * * @see bp_modify_page_title() * * @param string $title New page title; see {@link bp_modify_page_title()}. @@ -163,6 +173,8 @@ add_filter( 'bp_modify_page_title', 'bp_forums_add_forum_topic_to_page_title', 9 * * Prevents embedded anchor tags. * + * @since 1.5.0 + * * @param string $content Edited post content. * @return string $content Sanitized post content. */ diff --git a/wp-content/plugins/buddypress/bp-forums/bp-forums-functions.php b/wp-content/plugins/buddypress/bp-forums/bp-forums-functions.php index 59db54b6c81be31d12eec7a32cf2bac68894f11e..7ecee84f65826aada3d1d0f3c267d794dc169219 100644 --- a/wp-content/plugins/buddypress/bp-forums/bp-forums-functions.php +++ b/wp-content/plugins/buddypress/bp-forums/bp-forums-functions.php @@ -76,6 +76,8 @@ function bp_forums_has_directory() { * * Wrapper for {@link bb_get_forum()}. * + * @since 1.0.0 + * * @param int $forum_id ID of the forum being fetched. * @return object bbPress forum object. */ @@ -91,6 +93,8 @@ function bp_forums_get_forum( $forum_id ) { * * Wrapper for {@link bb_new_forum()}. * + * @since 1.0.0 + * * @param array|string $args { * Forum setup arguments. * @type string $forum_name Name of the forum. @@ -124,6 +128,8 @@ function bp_forums_new_forum( $args = '' ) { * * Wrapper for {@link bb_update_forum(}. * + * @since 1.2.5 + * * @param array|string $args { * Forum setup arguments. * @type int $forum_id ID of the forum to be updated. @@ -158,6 +164,8 @@ function bp_forums_update_forum( $args = '' ) { /** * Delete a group forum by the group id. * + * @since 1.6.0 + * * @param int $group_id ID of the group whose forum is to be deleted. */ function bp_forums_delete_group_forum( $group_id ) { @@ -177,6 +185,8 @@ add_action( 'groups_delete_group', 'bp_forums_delete_group_forum' ); /** * Fetch a set of forum topics. * + * @since 1.1.0 + * * @param array|string $args { * @type string $type Order or filter type. Default: 'newest'. * @type int $forum_id Optional. Pass a forum ID to limit results to topics @@ -255,6 +265,8 @@ function bp_forums_get_forum_topics( $args = '' ) { /** * Get additional details about a given forum topic. * + * @since 1.0.0 + * * @param int $topic_id ID of the topic for which you're fetching details. * @return object Details about the topic. */ @@ -273,6 +285,8 @@ function bp_forums_get_topic_details( $topic_id ) { * * Wrapper for {@link bb_get_id_from_slug()}. * + * @since 1.1.0 + * * @param string $topic_slug Slug of the topic. * @return int|bool ID of the topic (if found), false on failure. */ @@ -290,6 +304,8 @@ function bp_forums_get_topic_id_from_slug( $topic_slug ) { /** * Create a new forum topic. * + * @since 1.0.0 + * * @param array|string $args { * @type string $topic_title Title of the new topic. * @type string $topic_slug Slug of the new topic. @@ -373,6 +389,8 @@ function bp_forums_new_topic( $args = '' ) { /** * Update a topic's details. * + * @since 1.1.0 + * * @param array|string $args { * Array of arguments. * @type int $topic_id ID of the topic being updated. @@ -418,6 +436,14 @@ function bp_forums_update_topic( $args = '' ) { return bp_forums_get_topic_details( $topic_id ); } +/** + * Set a topic as sticky/unsticky. + * + * @since 1.1.0 + * + * @param string $args Array of arguments for sticky topic. + * @return bool + */ function bp_forums_sticky_topic( $args = '' ) { /** This action is documented in bp-forums/bp-forums-screens.php */ @@ -440,6 +466,8 @@ function bp_forums_sticky_topic( $args = '' ) { /** * Set a topic's open/closed status. * + * @since 1.1.0 + * * @param array|string $args { * @type int $topic_id ID of the topic whose status is being changed. * @type string $mode New status of the topic. 'open' or 'close'. @@ -469,6 +497,8 @@ function bp_forums_openclose_topic( $args = '' ) { /** * Delete a topic. * + * @since 1.1.0 + * * @param array|string $args { * @type int $topic_id ID of the topic being deleted. * } @@ -490,6 +520,8 @@ function bp_forums_delete_topic( $args = '' ) { /** * Get a count of the total topics on the site. * + * @since 1.2.0 + * * @return int $count Total topic count. */ function bp_forums_total_topic_count() { @@ -592,6 +624,8 @@ function bp_forums_reply_exists( $text = '', $topic_id = 0, $user_id = 0 ) { /** * Get a total "Topics Started" count for a given user. * + * @since 1.2.0 + * * @param int $user_id ID of the user being queried. Falls back on displayed * user, then loggedin. * @param string $type The current filter/sort type. 'active', 'popular', @@ -693,6 +727,8 @@ function bp_forums_total_replied_count_for_user( $user_id = 0, $type = 'active' * - details about the last poster * - information about topic users that may have been deleted/spammed * + * @since 1.2.0 + * * @param array $topics Array of topics. * @return array $topics Topics with BP details added. */ @@ -756,6 +792,8 @@ function bp_forums_get_topic_extras( $topics ) { /** * Get the posts belonging to a topic. * + * @since 1.1.0 + * * @param array|string $args { * @type int $topic_id ID of the topic for which posts are being fetched. * @type int $page Optional. Page of results to return. Default: 1. @@ -788,6 +826,8 @@ function bp_forums_get_topic_posts( $args = '' ) { * * Wrapper for {@link bb_get_post()}. * + * @since 1.0.0 + * * @param int $post_id ID of the post being fetched. * @return object Post object. */ @@ -803,6 +843,8 @@ function bp_forums_get_post( $post_id ) { * * Wrapper for {@link bb_delete_post()}. * + * @since 1.1.0 + * * @param array|string $args { * @type int $post_id ID of the post being deleted. * } @@ -825,6 +867,8 @@ function bp_forums_delete_post( $args = '' ) { /** * Create a new post. * + * @since 1.1.0 + * * @param array|string $args { * @type int $post_id Optional. ID of an existing post, if you want to * update rather than create. Default: false. @@ -905,6 +949,8 @@ function bp_forums_insert_post( $args = '' ) { * - WP userdata for each poster * - BP fullname for each poster * + * @since 1.2.0 + * * @param array $posts List of posts. * @return array Posts with BP-data added. */ @@ -958,6 +1004,8 @@ function bp_forums_get_post_extras( $posts ) { /** * Get topic and post counts for a given forum. * + * @since 1.1.0 + * * @param int $forum_id ID of the forum. * @return object Object with properties $topics (topic count) and $posts * (post count). @@ -975,6 +1023,8 @@ function bp_forums_get_forum_topicpost_count( $forum_id ) { /** * Map WordPress caps onto bbPress users, to ensure that they can post. * + * @since 1.1.0 + * * @param array $allcaps Array of capabilities. * @return array Caps array with bbPress caps added. */ diff --git a/wp-content/plugins/buddypress/bp-forums/bp-forums-loader.php b/wp-content/plugins/buddypress/bp-forums/bp-forums-loader.php index e6f3bc7c71c60ad9858f6c5a93fd0ea0d5efc9cf..64891fccea01a60c50918dea7d5517309341b35b 100644 --- a/wp-content/plugins/buddypress/bp-forums/bp-forums-loader.php +++ b/wp-content/plugins/buddypress/bp-forums/bp-forums-loader.php @@ -15,6 +15,11 @@ // Exit if accessed directly. defined( 'ABSPATH' ) || exit; +/** + * Sets up the forums component. + * + * @since 1.5.0 + */ class BP_Forums_Component extends BP_Component { /** @@ -80,6 +85,8 @@ class BP_Forums_Component extends BP_Component { /** * Include bp-forums files. * + * @since 1.5.0 + * * @see BP_Component::includes() for description of parameters. * * @param array $includes See {@link BP_Component::includes()}. @@ -238,6 +245,8 @@ class BP_Forums_Component extends BP_Component { /** * Set up the title for pages and the <title> element. + * + * @since 1.5.0 */ public function setup_title() { @@ -263,6 +272,8 @@ class BP_Forums_Component extends BP_Component { /** * Set up the bp-forums component. + * + * @since 1.6.0 */ function bp_setup_forums() { buddypress()->forums = new BP_Forums_Component(); diff --git a/wp-content/plugins/buddypress/bp-forums/bp-forums-screens.php b/wp-content/plugins/buddypress/bp-forums/bp-forums-screens.php index a4657dabc4ff6fef9e3e906be41a88f5743e3807..7b8a43553aaa18f0fe9c5467d611e12e3e6af226 100644 --- a/wp-content/plugins/buddypress/bp-forums/bp-forums-screens.php +++ b/wp-content/plugins/buddypress/bp-forums/bp-forums-screens.php @@ -12,6 +12,8 @@ defined( 'ABSPATH' ) || exit; /** * Load the Forums directory. + * + * @since 1.1.0 */ function bp_forums_directory_forums_setup() { @@ -102,6 +104,8 @@ add_action( 'bp_screens', 'bp_forums_directory_forums_setup', 2 ); /** * Load the Topics Started screen. + * + * @since 1.5.0 */ function bp_member_forums_screen_topics() { @@ -124,6 +128,8 @@ function bp_member_forums_screen_topics() { /** * Load the Replied To screen. + * + * @since 1.5.0 */ function bp_member_forums_screen_replies() { @@ -148,6 +154,8 @@ function bp_member_forums_screen_replies() { * Load the template content for a user's Favorites forum tab. * * Note that this feature is not fully implemented at the moment. + * + * @since 1.5.0 */ function bp_member_forums_screen_favorites() { @@ -170,6 +178,8 @@ function bp_member_forums_screen_favorites() { /** * Load a single forum page. + * + * @since 1.5.0 */ function bp_forums_screen_single_forum() { @@ -196,6 +206,8 @@ add_action( 'bp_screens', 'bp_forums_screen_single_forum' ); /** * Load a single forum topic page. + * + * @since 1.5.0 */ function bp_forums_screen_single_topic() { diff --git a/wp-content/plugins/buddypress/bp-forums/bp-forums-template.php b/wp-content/plugins/buddypress/bp-forums/bp-forums-template.php index 75529a6b5a00fa5f7ab1775138e42e52f9ec92ce..bb763982555c54b9dc9c41e4e9b3c622e3e7e586 100644 --- a/wp-content/plugins/buddypress/bp-forums/bp-forums-template.php +++ b/wp-content/plugins/buddypress/bp-forums/bp-forums-template.php @@ -15,7 +15,6 @@ defined( 'ABSPATH' ) || exit; * * @since 1.5.0 * - * @uses bp_get_forums_slug() */ function bp_forums_slug() { echo bp_get_forums_slug(); @@ -43,7 +42,6 @@ function bp_forums_slug() { * * @since 1.5.0 * - * @uses bp_get_forums_root_slug() */ function bp_forums_root_slug() { echo bp_get_forums_root_slug(); @@ -71,7 +69,6 @@ function bp_forums_root_slug() { * * @since 1.5.0 * - * @uses bp_get_forums_directory_permalink() */ function bp_forums_directory_permalink() { echo esc_url( bp_get_forums_directory_permalink() ); @@ -81,10 +78,6 @@ function bp_forums_directory_permalink() { * * @since 1.5.0 * - * @uses apply_filters() - * @uses trailingslashit() - * @uses bp_get_root_domain() - * @uses bp_get_forums_root_slug() * * @return string The permalink for the forums component directory. */ @@ -104,11 +97,14 @@ function bp_forums_directory_permalink() { * The main forums template loop class. * * Responsible for loading a group of forum topics into a loop for display. + * + * @since 1.0.0 */ class BP_Forums_Template_Forum { /** * The loop iterator. * + * @since 1.0.0 * @var int */ public $current_topic = -1; @@ -116,6 +112,7 @@ class BP_Forums_Template_Forum { /** * The number of topics returned by the paged query. * + * @since 1.0.0 * @var int */ public $topic_count; @@ -123,6 +120,7 @@ class BP_Forums_Template_Forum { /** * Array of topics located by the query. * + * @since 1.0.0 * @var array */ public $topics; @@ -130,6 +128,7 @@ class BP_Forums_Template_Forum { /** * The topic object currently being iterated on. * + * @since 1.0.0 * @var object */ public $topic; @@ -137,6 +136,7 @@ class BP_Forums_Template_Forum { /** * The ID of the forum whose topics are being queried. * + * @since 1.5.0 * @var int */ public $forum_id; @@ -144,6 +144,7 @@ class BP_Forums_Template_Forum { /** * A flag for whether the loop is currently being iterated. * + * @since 1.0.0 * @var bool */ public $in_the_loop; @@ -151,6 +152,7 @@ class BP_Forums_Template_Forum { /** * The page number being requested. * + * @since 1.0.0 * @var int */ public $pag_page; @@ -158,6 +160,7 @@ class BP_Forums_Template_Forum { /** * The number of items being requested per page. * + * @since 1.0.0 * @var int */ public $pag_num; @@ -165,6 +168,7 @@ class BP_Forums_Template_Forum { /** * An HTML string containing pagination links. * + * @since 1.0.0 * @var string */ public $pag_links; @@ -172,6 +176,7 @@ class BP_Forums_Template_Forum { /** * The total number of topics matching the query parameters. * + * @since 1.0.0 * @var int */ public $total_topic_count; @@ -179,6 +184,7 @@ class BP_Forums_Template_Forum { /** * Whether requesting a single topic. Not currently used. * + * @since 1.0.0 * @var bool */ public $single_topic = false; @@ -186,6 +192,7 @@ class BP_Forums_Template_Forum { /** * Term to sort by. Not currently used. * + * @since 1.0.0 * @var string */ public $sort_by; @@ -193,6 +200,7 @@ class BP_Forums_Template_Forum { /** * Sort order. Not currently used. * + * @since 1.0.0 * @var string */ public $order; @@ -200,6 +208,8 @@ class BP_Forums_Template_Forum { /** * Constructor method. * + * @since 1.5.0 + * * @param string $type The 'type' is the sort order/kind. 'newest', * 'popular', 'unreplied', 'tags'. * @param int $forum_id The ID of the forum for which topics are being @@ -356,6 +366,8 @@ class BP_Forums_Template_Forum { /** * Whether there are topics available in the loop. * + * @since 1.0.0 + * * @see bp_has_forum_topics() * * @return bool True if there are items in the loop, otherwise false. @@ -371,6 +383,8 @@ class BP_Forums_Template_Forum { /** * Set up the next topic and iterate index. * + * @since 1.0.0 + * * @return object The next topic to iterate over. */ function next_topic() { @@ -382,6 +396,8 @@ class BP_Forums_Template_Forum { /** * Rewind the topics and reset topic index. + * + * @since 1.0.0 */ function rewind_topics() { $this->current_topic = -1; @@ -399,6 +415,8 @@ class BP_Forums_Template_Forum { * * @see bp_forum_topics() * + * @since 1.0.0 + * * @return bool True if there are more topics to show, otherwise false. */ function user_topics() { @@ -423,6 +441,8 @@ class BP_Forums_Template_Forum { /** * Set up the current topic in the loop. * + * @since 1.0.0 + * * @see bp_the_forum_topic() */ function the_topic() { @@ -451,7 +471,8 @@ class BP_Forums_Template_Forum { * are determined dynamically, depending on your current page. All of these * $defaults can be overridden in the $args parameter. * - * @uses apply_filters() Filter 'bp_has_topics' to manipulate the + * @since 1.1.0 + * * $forums_template global before it's rendered, or to modify the value * of has_topics(). * @@ -663,6 +684,8 @@ function bp_has_forum_topics( $args = '' ) { /** * Determine whether there are still topics left in the loop. * + * @since 1.1.0 + * * @global BP_Forums_Template_Forum $forum_template Template global. * * @return bool Returns true when topics are found. @@ -675,6 +698,8 @@ function bp_forum_topics() { /** * Get the current topic object in the loop. * + * @since 1.1.0 + * * @global BP_Forums_Template_Forum $forum_template Template global. * * @return object The current topic object. @@ -686,6 +711,8 @@ function bp_the_forum_topic() { /** * Output the ID of the current topic in the loop. + * + * @since 1.0.0 */ function bp_the_topic_id() { echo bp_get_the_topic_id(); @@ -693,6 +720,8 @@ function bp_the_topic_id() { /** * Return the ID of the current topic in the loop. * + * @since 1.0.0 + * * @return int ID of the current topic in the loop. */ function bp_get_the_topic_id() { @@ -710,6 +739,8 @@ function bp_the_topic_id() { /** * Output the title of the current topic in the loop. + * + * @since 1.0.0 */ function bp_the_topic_title() { echo bp_get_the_topic_title(); @@ -717,6 +748,8 @@ function bp_the_topic_title() { /** * Return the title of the current topic in the loop. * + * @since 1.0.0 + * * @return string Title of the current topic in the loop. */ function bp_get_the_topic_title() { @@ -734,6 +767,8 @@ function bp_the_topic_title() { /** * Output the slug of the current topic in the loop. + * + * @since 1.0.0 */ function bp_the_topic_slug() { echo bp_get_the_topic_slug(); @@ -741,6 +776,8 @@ function bp_the_topic_slug() { /** * Return the slug of the current topic in the loop. * + * @since 1.0.0 + * * @return string Slug of the current topic in the loop. */ function bp_get_the_topic_slug() { @@ -758,6 +795,8 @@ function bp_the_topic_slug() { /** * Output the text of the first post in the current topic in the loop. + * + * @since 1.1.0 */ function bp_the_topic_text() { echo bp_get_the_topic_text(); @@ -765,6 +804,8 @@ function bp_the_topic_text() { /** * Return the text of the first post in the current topic in the loop. * + * @since 1.1.0 + * * @return string Text of the first post in the current topic. */ function bp_get_the_topic_text() { @@ -784,6 +825,8 @@ function bp_the_topic_text() { /** * Output the ID of the user who posted the current topic in the loop. + * + * @since 1.0.0 */ function bp_the_topic_poster_id() { echo bp_get_the_topic_poster_id(); @@ -791,6 +834,8 @@ function bp_the_topic_poster_id() { /** * Return the ID of the user who posted the current topic in the loop. * + * @since 1.0.0 + * * @return int ID of the user who posted the current topic. */ function bp_get_the_topic_poster_id() { @@ -809,6 +854,8 @@ function bp_the_topic_poster_id() { /** * Output the avatar of the user who posted the current topic in the loop. * + * @since 1.0.0 + * * @see bp_get_the_topic_poster_avatar() for a description of arguments. * * @param array|string $args See {@link bp_get_the_topic_poster_avatar()}. @@ -819,6 +866,8 @@ function bp_the_topic_poster_avatar( $args = '' ) { /** * Return the avatar of the user who posted the current topic in the loop. * + * @since 1.0.0 + * * @param array|string $args { * Arguments for building the avatar. * @type string $type Avatar type. 'thumb' or 'full'. Default: @@ -859,6 +908,8 @@ function bp_the_topic_poster_avatar( $args = '' ) { /** * Output the name of the user who posted the current topic in the loop. + * + * @since 1.0.0 */ function bp_the_topic_poster_name() { echo bp_get_the_topic_poster_name(); @@ -866,6 +917,8 @@ function bp_the_topic_poster_name() { /** * Return the name of the user who posted the current topic in the loop. * + * @since 1.0.0 + * * @return string Name of the user who posted the current topic. */ function bp_get_the_topic_poster_name() { @@ -888,6 +941,8 @@ function bp_the_topic_poster_name() { /** * Output the ID of the object associated with the current topic in the loop. + * + * @since 1.1.0 */ function bp_the_topic_object_id() { echo bp_get_the_topic_object_id(); @@ -897,6 +952,8 @@ function bp_the_topic_object_id() { * * Objects are things like associated groups. * + * @since 1.1.0 + * * @return int ID of the associated object. */ function bp_get_the_topic_object_id() { @@ -916,6 +973,8 @@ function bp_the_topic_object_id() { /** * Output the name of the object associated with the current topic in the loop. + * + * @since 1.1.0 */ function bp_the_topic_object_name() { echo bp_get_the_topic_object_name(); @@ -926,6 +985,8 @@ function bp_the_topic_object_name() { * Objects are things like groups. So this function would return the * name of the group associated with the forum topic, if it exists. * + * @since 1.1.0 + * * @return string Object name. */ function bp_get_the_topic_object_name() { @@ -951,6 +1012,8 @@ function bp_the_topic_object_name() { /** * Output the slug of the object associated with the current topic in the loop. + * + * @since 1.1.0 */ function bp_the_topic_object_slug() { echo bp_get_the_topic_object_slug(); @@ -961,6 +1024,8 @@ function bp_the_topic_object_slug() { * Objects are things like groups. So this function would return the * slug of the group associated with the forum topic, if it exists. * + * @since 1.1.0 + * * @return string Object slug. */ function bp_get_the_topic_object_slug() { @@ -981,6 +1046,8 @@ function bp_the_topic_object_slug() { /** * Output the permalink of the object associated with the current topic in the loop. + * + * @since 1.1.0 */ function bp_the_topic_object_permalink() { echo bp_get_the_topic_object_permalink(); @@ -991,6 +1058,8 @@ function bp_the_topic_object_permalink() { * Objects are things like groups. So this function would return the * permalink of the group associated with the forum topic, if it exists. * + * @since 1.1.0 + * * @return string Object permalink. */ function bp_get_the_topic_object_permalink() { @@ -1017,6 +1086,8 @@ function bp_the_topic_object_permalink() { /** * Output the linked name of the user who last posted to the current topic in the loop. + * + * @since 1.0.0 */ function bp_the_topic_last_poster_name() { echo bp_get_the_topic_last_poster_name(); @@ -1024,6 +1095,8 @@ function bp_the_topic_last_poster_name() { /** * Return the linked name of the user who last posted to the current topic in the loop. * + * @since 1.0.0 + * * @return string HTML link to the profile of the user who last posted * to the current topic. */ @@ -1051,6 +1124,8 @@ function bp_the_topic_last_poster_name() { /** * Output the permalink of the object associated with the current topic in the loop. * + * @since 1.1.0 + * * @see bp_get_the_topic_object_avatar() for description of arguments. * * @param array|string $args See {@bp_get_the_topic_object_avatar()}. @@ -1064,6 +1139,8 @@ function bp_the_topic_object_avatar( $args = '' ) { * Objects are things like groups. So this function would return the * avatar of the group associated with the forum topic, if it exists. * + * @since 1.1.0 + * * @param array|string $args { * Arguments for building the avatar. * @type string $type Avatar type. 'thumb' or 'full'. Default: @@ -1108,6 +1185,8 @@ function bp_the_topic_object_avatar( $args = '' ) { /** * Output the avatar for the user who last posted to the current topic in the loop. * + * @since 1.0.0 + * * @see bp_get_the_topic_last_poster_avatar() for description of arguments. * * @param array|string $args See {@bp_get_the_topic_last_poster_avatar()}. @@ -1118,6 +1197,8 @@ function bp_the_topic_last_poster_avatar( $args = '' ) { /** * Return the avatar for the user who last posted to the current topic in the loop. * + * @since 1.0.0 + * * @param array|string $args { * Arguments for building the avatar. * @type string $type Avatar type. 'thumb' or 'full'. Default: @@ -1158,6 +1239,8 @@ function bp_the_topic_last_poster_avatar( $args = '' ) { /** * Output the start time of the current topic in the loop. + * + * @since 1.0.0 */ function bp_the_topic_start_time() { echo bp_get_the_topic_start_time(); @@ -1165,6 +1248,8 @@ function bp_the_topic_start_time() { /** * Return the start time of the current topic in the loop. * + * @since 1.0.0 + * * @return string Start time of the current topic. */ function bp_get_the_topic_start_time() { @@ -1182,6 +1267,8 @@ function bp_the_topic_start_time() { /** * Output the topic time of the current topic in the loop. + * + * @since 1.0.0 */ function bp_the_topic_time() { echo bp_get_the_topic_time(); @@ -1189,6 +1276,8 @@ function bp_the_topic_time() { /** * Return the topic time of the current topic in the loop. * + * @since 1.0.0 + * * @return string Topic time of the current topic. */ function bp_get_the_topic_time() { @@ -1206,6 +1295,8 @@ function bp_the_topic_time() { /** * Output the ID of the forum associated with the current topic in the loop. + * + * @since 1.0.0 */ function bp_the_topic_forum_id() { echo bp_get_the_topic_forum_id(); @@ -1213,6 +1304,8 @@ function bp_the_topic_forum_id() { /** * Return the ID of the forum associated with the current topic in the loop. * + * @since 1.0.0 + * * @return int ID of the forum associated with the current topic. */ function bp_get_the_topic_forum_id() { @@ -1230,6 +1323,8 @@ function bp_the_topic_forum_id() { /** * Output the status of the current topic in the loop. + * + * @since 1.0.0 */ function bp_the_topic_status() { echo bp_get_the_topic_status(); @@ -1237,6 +1332,8 @@ function bp_the_topic_status() { /** * Return the status of the current topic in the loop. * + * @since 1.0.0 + * * @return string Status of the current topic. */ function bp_get_the_topic_status() { @@ -1254,6 +1351,8 @@ function bp_the_topic_status() { /** * Output whether the current topic in the loop is open. + * + * @since 1.0.0 */ function bp_the_topic_is_topic_open() { echo bp_get_the_topic_is_topic_open(); @@ -1261,6 +1360,8 @@ function bp_the_topic_is_topic_open() { /** * Return whether the current topic in the loop is open. * + * @since 1.0.0 + * * @return string */ function bp_get_the_topic_is_topic_open() { @@ -1278,6 +1379,8 @@ function bp_the_topic_is_topic_open() { /** * Output the ID of the last post in the current topic in the loop. + * + * @since 1.0.0 */ function bp_the_topic_last_post_id() { echo bp_get_the_topic_last_post_id(); @@ -1285,6 +1388,8 @@ function bp_the_topic_last_post_id() { /** * Return the ID of the last post in the current topic in the loop. * + * @since 1.0.0 + * * @return int ID of the last post in the current topic. */ function bp_get_the_topic_last_post_id() { @@ -1302,6 +1407,8 @@ function bp_the_topic_last_post_id() { /** * Output whether the current topic in the loop is sticky. + * + * @since 1.0.0 */ function bp_the_topic_is_sticky() { echo bp_get_the_topic_is_sticky(); @@ -1309,6 +1416,8 @@ function bp_the_topic_is_sticky() { /** * Return whether the current topic in the loop is sticky. * + * @since 1.0.0 + * * @return bool */ function bp_get_the_topic_is_sticky() { @@ -1326,6 +1435,8 @@ function bp_the_topic_is_sticky() { /** * Output a 'x posts' string with the number of posts in the current topic. + * + * @since 1.0.0 */ function bp_the_topic_total_post_count() { echo bp_get_the_topic_total_post_count(); @@ -1333,6 +1444,8 @@ function bp_the_topic_total_post_count() { /** * Return a 'x posts' string with the number of posts in the current topic. * + * @since 1.0.0 + * * @return string String of the form 'x posts'. */ function bp_get_the_topic_total_post_count() { @@ -1357,6 +1470,8 @@ function bp_the_topic_total_post_count() { /** * Output the total number of posts in the current topic in the loop. + * + * @since 1.1.0 */ function bp_the_topic_total_posts() { echo bp_get_the_topic_total_posts(); @@ -1364,6 +1479,8 @@ function bp_the_topic_total_posts() { /** * Return the total number of posts in the current topic in the loop. * + * @since 1.1.0 + * * @return int Total number of posts in the current topic. */ function bp_get_the_topic_total_posts() { @@ -1381,6 +1498,8 @@ function bp_the_topic_total_posts() { /** * Output the tag count for the current topic in the loop. + * + * @since 1.0.0 */ function bp_the_topic_tag_count() { echo bp_get_the_topic_tag_count(); @@ -1388,6 +1507,8 @@ function bp_the_topic_tag_count() { /** * Return the tag count for the current topic in the loop. * + * @since 1.0.0 + * * @return int Tag count for the current topic. */ function bp_get_the_topic_tag_count() { @@ -1405,6 +1526,8 @@ function bp_the_topic_tag_count() { /** * Output the permalink of the current topic in the loop. + * + * @since 1.0.0 */ function bp_the_topic_permalink() { echo bp_get_the_topic_permalink(); @@ -1412,6 +1535,8 @@ function bp_the_topic_permalink() { /** * Return the permalink for the current topic in the loop. * + * @since 1.0.0 + * * @return string Permalink for the current topic. */ function bp_get_the_topic_permalink() { @@ -1446,6 +1571,8 @@ function bp_the_topic_permalink() { /** * Output a 'since' string describing when the current topic was created. + * + * @since 1.0.0 */ function bp_the_topic_time_since_created() { echo bp_get_the_topic_time_since_created(); @@ -1453,6 +1580,8 @@ function bp_the_topic_time_since_created() { /** * Return a 'since' string describing when the current topic was created. * + * @since 1.0.0 + * * @see bp_core_time_since() for a description of return value. * * @return string @@ -1473,6 +1602,8 @@ function bp_the_topic_time_since_created() { /** * Output an excerpt from the latest post of the current topic in the loop. * + * @since 1.0.0 + * * @param array|string $args See {@bp_get_the_topic_latest_post_excerpt()}. */ function bp_the_topic_latest_post_excerpt( $args = '' ) { @@ -1481,6 +1612,8 @@ function bp_the_topic_latest_post_excerpt( $args = '' ) { /** * Return an excerpt from the latest post of the current topic in the loop. * + * @since 1.0.0 + * * @param array|string $args { * @type int $length The length of the excerpted text. Default: 225. * } @@ -1512,6 +1645,8 @@ function bp_the_topic_latest_post_excerpt( $args = '' ) { /** * Output a 'since' string describing when the last post in the current topic was created. + * + * @since 1.0.0 */ function bp_the_topic_time_since_last_post() { echo bp_get_the_topic_time_since_last_post(); @@ -1519,6 +1654,8 @@ function bp_the_topic_time_since_last_post() { /** * Return a 'since' string describing when the last post in the current topic was created. * + * @since 1.0.0 + * * @see bp_core_time_since() for a description of return value. * * @return string @@ -1538,6 +1675,8 @@ function bp_the_topic_time_since_last_post() { /** * Output whether the current topic in the loop belongs to the logged-in user. + * + * @since 1.1.0 */ function bp_the_topic_is_mine() { echo bp_get_the_topic_is_mine(); @@ -1545,6 +1684,8 @@ function bp_the_topic_is_mine() { /** * Does the current topic belong to the logged-in user? * + * @since 1.1.0 + * * @return bool True if the current topic in the loop was created by * the logged-in user, otherwise false. */ @@ -1557,6 +1698,8 @@ function bp_the_topic_is_mine() { /** * Output the admin links for the current topic in the loop. * + * @since 1.1.0 + * * @see bp_get_the_topic_admin_links() for a description of arguments. * * @param array|string $args See {@link bp_get_the_topic_admin_links()}. @@ -1567,6 +1710,8 @@ function bp_the_topic_admin_links( $args = '' ) { /** * Return the admin links for the current topic in the loop. * + * @since 1.1.0 + * * @param array|string $args { * @type string $separator The character to use when separating links. Default: '|'. * } @@ -1603,6 +1748,8 @@ function bp_the_topic_admin_links( $args = '' ) { /** * Output the CSS class for the current topic in the loop. + * + * @since 1.1.0 */ function bp_the_topic_css_class() { echo bp_get_the_topic_css_class(); @@ -1613,6 +1760,8 @@ function bp_the_topic_css_class() { * This class may contain keywords like 'alt', 'sticky', or 'closed', * based on context. * + * @since 1.1.0 + * * @return string Contents of the 'class' attribute. */ function bp_get_the_topic_css_class() { @@ -1644,6 +1793,8 @@ function bp_the_topic_css_class() { /** * Output the permalink to the 'personal' topics tab. + * + * @since 1.1.0 */ function bp_my_forum_topics_link() { echo bp_get_my_forum_topics_link(); @@ -1651,6 +1802,8 @@ function bp_my_forum_topics_link() { /** * Return the permalink to the 'personal' topics tab. * + * @since 1.1.0 + * * @return string Link to the 'personal' topics tab. */ function bp_get_my_forum_topics_link() { @@ -1666,6 +1819,8 @@ function bp_my_forum_topics_link() { /** * Output the permalink to the 'unreplied' topics tab. + * + * @since 1.1.0 */ function bp_unreplied_forum_topics_link() { echo bp_get_unreplied_forum_topics_link(); @@ -1673,6 +1828,8 @@ function bp_unreplied_forum_topics_link() { /** * Return the permalink to the 'unreplied' topics tab. * + * @since 1.1.0 + * * @return string Link to the 'unreplied' topics tab. */ function bp_get_unreplied_forum_topics_link() { @@ -1688,6 +1845,8 @@ function bp_unreplied_forum_topics_link() { /** * Output the permalink to the 'popular' topics tab. + * + * @since 1.1.0 */ function bp_popular_forum_topics_link() { echo bp_get_popular_forum_topics_link(); @@ -1695,6 +1854,8 @@ function bp_popular_forum_topics_link() { /** * Return the permalink to the 'popular' topics tab. * + * @since 1.1.0 + * * @return string Link to the 'popular' topics tab. */ function bp_get_popular_forum_topics_link() { @@ -1710,6 +1871,8 @@ function bp_popular_forum_topics_link() { /** * Output the link to the forums directory. + * + * @since 1.1.0 */ function bp_newest_forum_topics_link() { echo bp_get_newest_forum_topics_link(); @@ -1717,6 +1880,8 @@ function bp_newest_forum_topics_link() { /** * Return the link to the forums directory. * + * @since 1.1.0 + * * @return string Link to the forums directory. */ function bp_get_newest_forum_topics_link() { @@ -1732,6 +1897,8 @@ function bp_newest_forum_topics_link() { /** * Output the currently viewed topic list type. + * + * @since 1.1.0 */ function bp_forum_topic_type() { echo bp_get_forum_topic_type(); @@ -1741,6 +1908,8 @@ function bp_forum_topic_type() { * * Eg, 'newest', 'popular', etc. * + * @since 1.1.0 + * * @return string Type of the currently viewed topic list. */ function bp_get_forum_topic_type() { @@ -1773,7 +1942,6 @@ function bp_forum_topic_new_reply_link() { * * @since 1.5.0 * - * @uses apply_filters() Filter bp_get_forum_topic_new_reply_link to * modify. * * @return string The URL for the New Reply link. @@ -1805,6 +1973,8 @@ function bp_forum_topic_new_reply_link() { /** * Output the currently viewed tag name. * + * @since 1.1.0 + * * @todo Deprecate? */ function bp_forums_tag_name() { @@ -1813,7 +1983,11 @@ function bp_forums_tag_name() { /** * Return the currently viewed tag name. * + * @since 1.1.0 + * * @todo Deprecate? Seems unused + * + * @return bool|string */ function bp_get_forums_tag_name() { $tag_name = bp_is_directory() && bp_is_forums_component() ? bp_action_variable( 0 ) : false; @@ -1823,6 +1997,8 @@ function bp_forums_tag_name() { /** * Output the pagination links for the current topic list. + * + * @since 1.0.0 */ function bp_forum_pagination() { echo bp_get_forum_pagination(); @@ -1830,6 +2006,8 @@ function bp_forum_pagination() { /** * Return the pagination links for the current topic list. * + * @since 1.0.0 + * * @return string HTML pagination links. */ function bp_get_forum_pagination() { @@ -1847,6 +2025,8 @@ function bp_forum_pagination() { /** * Output the pagination count for the current topic list. + * + * @since 1.0.0 */ function bp_forum_pagination_count() { echo bp_get_forum_pagination_count(); @@ -1856,6 +2036,8 @@ function bp_forum_pagination_count() { * * The "count" is a string of the form "Viewing x of y topics". * + * @since 1.5.0 + * * @return string */ function bp_get_forum_pagination_count() { @@ -1892,6 +2074,8 @@ function bp_forum_pagination_count() { /** * Are we currently on an Edit Topic screen? * + * @since 1.1.0 + * * @return bool True if currently editing a topic, otherwise false. */ function bp_is_edit_topic() { @@ -1906,11 +2090,14 @@ function bp_is_edit_topic() { * The single forum topic template loop class. * * Responsible for loading a topic's posts into a loop for display. + * + * @since 1.0.0 */ class BP_Forums_Template_Topic { /** * The loop iterator. * + * @since 1.0.0 * @var int */ public $current_post = -1; @@ -1918,6 +2105,7 @@ class BP_Forums_Template_Topic { /** * The number of posts returned by the paged query. * + * @since 1.0.0 * @var int */ public $post_count; @@ -1925,6 +2113,7 @@ class BP_Forums_Template_Topic { /** * Array of posts located by the query. * + * @since 1.0.0 * @var array */ public $posts; @@ -1932,6 +2121,7 @@ class BP_Forums_Template_Topic { /** * The post object currently being iterated on. * + * @since 1.0.0 * @var object */ public $post; @@ -1939,6 +2129,7 @@ class BP_Forums_Template_Topic { /** * The ID of the forum whose topic is being queried. * + * @since 1.5.0 * @var int */ public $forum_id; @@ -1946,6 +2137,7 @@ class BP_Forums_Template_Topic { /** * The ID of the topic whose posts are being queried. * + * @since 1.0.0 * @var int */ public $topic_id; @@ -1953,6 +2145,7 @@ class BP_Forums_Template_Topic { /** * The topic object to which the posts belong. * + * @since 1.0.0 * @var object */ public $topic; @@ -1960,6 +2153,7 @@ class BP_Forums_Template_Topic { /** * A flag for whether the loop is currently being iterated. * + * @since 1.0.0 * @var bool */ public $in_the_loop; @@ -1976,6 +2170,7 @@ class BP_Forums_Template_Topic { /** * The page number being requested. * + * @since 1.0.0 * @var int */ public $pag_page; @@ -1983,6 +2178,7 @@ class BP_Forums_Template_Topic { /** * The number of items being requested per page. * + * @since 1.0.0 * @var int */ public $pag_num; @@ -1990,6 +2186,7 @@ class BP_Forums_Template_Topic { /** * An HTML string containing pagination links. * + * @since 1.0.0 * @var string */ public $pag_links; @@ -1997,6 +2194,7 @@ class BP_Forums_Template_Topic { /** * The total number of posts matching the query parameters. * + * @since 1.0.0 * @var int */ public $total_post_count; @@ -2004,6 +2202,7 @@ class BP_Forums_Template_Topic { /** * Whether requesting a single topic. Not currently used. * + * @since 1.0.0 * @var bool */ public $single_post = false; @@ -2011,6 +2210,7 @@ class BP_Forums_Template_Topic { /** * Term to sort by. * + * @since 1.0.0 * @var string */ public $sort_by; @@ -2018,6 +2218,7 @@ class BP_Forums_Template_Topic { /** * Sort order. * + * @since 1.0.0 * @var string */ public $order; @@ -2025,6 +2226,8 @@ class BP_Forums_Template_Topic { /** * Constructor method. * + * @since 1.5.0 + * * @param int $topic_id ID of the topic whose posts are being requested. * @param int $per_page Number of items to return per page. * @param int $max Max records to return. @@ -2094,6 +2297,8 @@ class BP_Forums_Template_Topic { /** * Whether there are posts available in the loop. * + * @since 1.0.0 + * * @see bp_has_forum_topic_posts() * * @return bool True if there are items in the loop, otherwise false. @@ -2108,6 +2313,8 @@ class BP_Forums_Template_Topic { /** * Set up the next post and iterate index. * + * @since 1.0.0 + * * @return object The next post to iterate over. */ function next_post() { @@ -2119,6 +2326,8 @@ class BP_Forums_Template_Topic { /** * Rewind the posts and reset post index. + * + * @since 1.0.0 */ function rewind_posts() { $this->current_post = -1; @@ -2134,6 +2343,8 @@ class BP_Forums_Template_Topic { * the while loop that controls iteration inside the blogs loop, eg: * while ( bp_forum_topic_posts() ) { ... * + * @since 1.0.0 + * * @see bp_forum_topic_posts() * * @return bool True if there are more posts to show, otherwise false. @@ -2160,6 +2371,8 @@ class BP_Forums_Template_Topic { /** * Set up the current topic in the loop. * + * @since 1.0.0 + * * @see bp_the_forum_topic_post() */ function the_post() { @@ -2183,6 +2396,8 @@ class BP_Forums_Template_Topic { /** * Initiate the loop for a single topic's posts. * + * @since 1.1.0 + * * @param array|string $args { * Arguments for limiting the contents of the topic posts loop. * @type int $topic_id ID of the topic to which the posts belong. @@ -2236,6 +2451,8 @@ function bp_has_forum_topic_posts( $args = '' ) { /** * Determine whether there are posts left in the loop. * + * @since 1.1.0 + * * @return bool True when posts are found. */ function bp_forum_topic_posts() { @@ -2246,6 +2463,8 @@ function bp_forum_topic_posts() { /** * Set up the current post in the loop. * + * @since 1.1.0 + * * @return object */ function bp_the_forum_topic_post() { @@ -2255,6 +2474,8 @@ function bp_the_forum_topic_post() { /** * Output the ID of the current post in the loop. + * + * @since 1.0.0 */ function bp_the_topic_post_id() { echo bp_get_the_topic_post_id(); @@ -2262,6 +2483,8 @@ function bp_the_topic_post_id() { /** * Return the ID of the current post in the loop. * + * @since 1.0.0 + * * @return int ID of the current post in the loop. */ function bp_get_the_topic_post_id() { @@ -2279,6 +2502,8 @@ function bp_the_topic_post_id() { /** * Output the content of the current post in the loop. + * + * @since 1.0.0 */ function bp_the_topic_post_content() { echo bp_get_the_topic_post_content(); @@ -2286,6 +2511,8 @@ function bp_the_topic_post_content() { /** * Return the content of the current post in the loop. * + * @since 1.0.0 + * * @return string Content of the current post. */ function bp_get_the_topic_post_content() { @@ -2303,6 +2530,8 @@ function bp_the_topic_post_content() { /** * Output the CSS class of the current post in the loop. + * + * @since 1.2.4 */ function bp_the_topic_post_css_class() { echo bp_get_the_topic_post_css_class(); @@ -2313,6 +2542,8 @@ function bp_the_topic_post_css_class() { * May contain strings 'alt', 'deleted', or 'open', depending on * context. * + * @since 1.2.4 + * * @return string String to put in the 'class' attribute of the current * post. */ @@ -2346,6 +2577,8 @@ function bp_the_topic_post_css_class() { /** * Output the avatar of the user who posted the current post in the loop. * + * @since 1.0.0 + * * @see bp_get_the_topic_post_poster_avatar() for a description of arguments. * * @param array|string $args See {@link bp_get_the_topic_post_poster_avatar()}. @@ -2356,6 +2589,8 @@ function bp_the_topic_post_poster_avatar( $args = '' ) { /** * Return the avatar of the user who posted the current post in the loop. * + * @since 1.0.0 + * * @param array|string $args { * Arguments for building the avatar. * @type string $type Avatar type. 'thumb' or 'full'. Default: @@ -2396,6 +2631,8 @@ function bp_the_topic_post_poster_avatar( $args = '' ) { /** * Output the name of the user who posted the current post in the loop. + * + * @since 1.0.0 */ function bp_the_topic_post_poster_name() { echo bp_get_the_topic_post_poster_name(); @@ -2403,6 +2640,8 @@ function bp_the_topic_post_poster_name() { /** * Return the name of the user who posted the current post in the loop. * + * @since 1.0.0 + * * @return string Name of the user who posted the current post. */ function bp_get_the_topic_post_poster_name() { @@ -2423,6 +2662,8 @@ function bp_the_topic_post_poster_name() { /** * Output a link to the profile of the user who posted the current post. + * + * @since 1.2.0 */ function bp_the_topic_post_poster_link() { echo bp_get_the_topic_post_poster_link(); @@ -2430,6 +2671,8 @@ function bp_the_topic_post_poster_link() { /** * Return a link to the profile of the user who posted the current post. * + * @since 1.2.0 + * * @return string Link to the profile of the user who posted the * current post. */ @@ -2448,6 +2691,8 @@ function bp_the_topic_post_poster_link() { /** * Output a 'since' string describing when the current post in the loop was posted. + * + * @since 1.0.0 */ function bp_the_topic_post_time_since() { echo bp_get_the_topic_post_time_since(); @@ -2455,6 +2700,8 @@ function bp_the_topic_post_time_since() { /** * Return a 'since' string describing when the current post in the loop was posted. * + * @since 1.0.0 + * * @see bp_core_time_since() for a description of return value. * * @return string @@ -2474,6 +2721,8 @@ function bp_the_topic_post_time_since() { /** * Output whether the current post in the loop belongs to the logged-in user. + * + * @since 1.1.0 */ function bp_the_topic_post_is_mine() { echo bp_get_the_topic_post_is_mine(); @@ -2481,6 +2730,8 @@ function bp_the_topic_post_is_mine() { /** * Does the current post belong to the logged-in user? * + * @since 1.1.0 + * * @return bool True if the current post in the loop was created by * the logged-in user, otherwise false. */ @@ -2493,6 +2744,8 @@ function bp_the_topic_post_is_mine() { /** * Output the admin links for the current post in the loop. * + * @since 1.1.0 + * * @see bp_get_the_post_admin_links() for a description of arguments. * * @param array|string $args See {@link bp_get_the_post_admin_links()}. @@ -2503,6 +2756,8 @@ function bp_the_topic_post_admin_links( $args = '' ) { /** * Return the admin links for the current post in the loop. * + * @since 1.1.0 + * * @param array|string $args { * @type string $separator The character to use when separating * links. Default: '|'. @@ -2543,6 +2798,8 @@ function bp_the_topic_post_admin_links( $args = '' ) { /** * Output the text to edit when editing a post. + * + * @since 1.1.0 */ function bp_the_topic_post_edit_text() { echo bp_get_the_topic_post_edit_text(); @@ -2550,6 +2807,8 @@ function bp_the_topic_post_edit_text() { /** * Return the text to edit when editing a post. * + * @since 1.1.0 + * * @return string Editable text. */ function bp_get_the_topic_post_edit_text() { @@ -2567,6 +2826,8 @@ function bp_the_topic_post_edit_text() { /** * Output the pagination links for the current topic. + * + * @since 1.0.0 */ function bp_the_topic_pagination() { echo bp_get_the_topic_pagination(); @@ -2574,6 +2835,8 @@ function bp_the_topic_pagination() { /** * Return the pagination links for the current topic page. * + * @since 1.0.0 + * * @return string HTML pagination links. */ function bp_get_the_topic_pagination() { @@ -2594,6 +2857,8 @@ function bp_the_topic_pagination() { * Return the pagination count for the current topic page. * * The "count" is a string of the form "Viewing x of y posts". + * + * @since 1.0.0 */ function bp_the_topic_pagination_count() { global $topic_template; @@ -2624,6 +2889,8 @@ function bp_the_topic_pagination_count() { /** * Output whether this is the last page in the current topic. + * + * @since 1.2.0 */ function bp_the_topic_is_last_page() { echo bp_get_the_topic_is_last_page(); @@ -2631,6 +2898,8 @@ function bp_the_topic_is_last_page() { /** * Is this the last page in the current topic? * + * @since 1.2.0 + * * @return bool True if this is the last page of posts for the current * topic, otherwise false. */ @@ -2649,6 +2918,8 @@ function bp_the_topic_is_last_page() { /** * Output the forums directory search form. + * + * @since 1.1.0 */ function bp_directory_forums_search_form() { $default_search_value = bp_get_search_default_text( 'forums' ); @@ -2672,6 +2943,8 @@ function bp_directory_forums_search_form() { /** * Output the link to a given forum. * + * @since 1.0.0 + * * @see bp_get_forum_permalink() for a description of arguments. * * @param int $forum_id See {@link bp_get_forum_permalink()}. @@ -2682,6 +2955,8 @@ function bp_forum_permalink( $forum_id = 0 ) { /** * Return the permalink to a given forum. * + * @since 1.0.0 + * * @param int $forum_id Optional. Defaults to the current forum, if * there is one. * @return string|bool False on failure, a URL on success. @@ -2716,6 +2991,8 @@ function bp_forum_permalink( $forum_id = 0 ) { /** * Output the name of a given forum. * + * @since 1.5.0 + * * @see bp_get_forum_name() for a description of parameters. * * @param int $forum_id See {@link bp_get_forum_name()}. @@ -2726,6 +3003,8 @@ function bp_forum_name( $forum_id = 0 ) { /** * Return the name of a given forum. * + * @since 1.5.0 + * * @param int $forum_id Optional. Defaults to the current forum, if * there is one. * @return string|bool False on failure, a name on success. @@ -2760,6 +3039,8 @@ function bp_forum_name( $forum_id = 0 ) { * A wrapper for {@link bb_tag_heat_map}, which provides it with BP-friendly * defaults. * + * @since 1.1.0 + * * @param array|string $args { * An array of optional arguments. * @type int $smallest Size of the smallest link. Default: 10. @@ -2853,6 +3134,8 @@ function bp_forum_topic_has_tags() { /** * Output a URL to use in as a forum form 'action'. + * + * @since 1.0.0 */ function bp_forum_action() { echo bp_get_forum_action(); @@ -2860,6 +3143,8 @@ function bp_forum_action() { /** * Get a URL to use in as a forum form 'action'. * + * @since 1.0.0 + * * @return string URL of the current page, minus query args. */ function bp_get_forum_action() { @@ -2877,6 +3162,8 @@ function bp_forum_action() { /** * Output a URL to use in as a forum topic form 'action'. + * + * @since 1.0.0 */ function bp_forum_topic_action() { echo bp_get_forum_topic_action(); @@ -2884,6 +3171,8 @@ function bp_forum_topic_action() { /** * Get a URL to use in as a forum topic form 'action'. * + * @since 1.0.0 + * * @return string URL of the current page, minus query args. */ function bp_get_forum_topic_action() { @@ -2901,6 +3190,8 @@ function bp_forum_topic_action() { /** * Output the total topic count for a given user. * + * @since 1.2.0 + * * @see bp_get_forum_topic_count_for_user() for description of parameters. * * @param int $user_id See {@link bp_get_forum_topic_count_for_user()}. @@ -2911,6 +3202,8 @@ function bp_forum_topic_count_for_user( $user_id = 0 ) { /** * Return the total topic count for a given user. * + * @since 1.2.0 + * * @param int $user_id See {@link bp_forums_total_topic_count_for_user}. * * @return int @@ -2930,6 +3223,8 @@ function bp_forum_topic_count_for_user( $user_id = 0 ) { /** * Output the total topic count for a given user. * + * @since 1.2.0 + * * @see bp_get_forum_topic_count() for description of parameters. * * @param int $user_id See {@link bp_get_forum_topic_count()}. @@ -2940,6 +3235,8 @@ function bp_forum_topic_count( $user_id = 0 ) { /** * Return the total topic count for a given user. * + * @since 1.2.0 + * * @param int $user_id See {@link bp_forums_total_topic_count()}. * * @return int diff --git a/wp-content/plugins/buddypress/bp-forums/deprecated/1.6.php b/wp-content/plugins/buddypress/bp-forums/deprecated/1.6.php index 75109f7cb59e7fe1c3068276d6b0e1405aa97b04..c6758195a0cb562bae2ad2e1a770011f7a48bc81 100644 --- a/wp-content/plugins/buddypress/bp-forums/deprecated/1.6.php +++ b/wp-content/plugins/buddypress/bp-forums/deprecated/1.6.php @@ -137,18 +137,22 @@ function bp_forums_bbpress_install_wizard() { case 'existing': if ( isset( $_REQUEST['doinstall'] ) && ( 1 == (int) $_REQUEST['doinstall'] ) ) { if ( !bp_forums_configure_existing_install() ) { - _e( 'The bb-config.php file was not found at that location. Please try again.', 'buddypress' ); + /* translators: %s: bb-config.php */ + printf( __( 'The %s file was not found at that location. Please try again.', 'buddypress' ), '<code>bb-config.php</code>' ); } else { ?> <h3><?php _e( 'Forums were set up correctly using your existing bbPress install!', 'buddypress' ) ?></h3> - <p><?php _e( 'BuddyPress will now use its internal copy of bbPress to run the forums on your site. If you wish, you can remove your old bbPress installation files, as long as you keep the bb-config.php file in the same location.', 'buddypress' ) ?></p><?php + <?php /* translators: %s: bb-config.php */ ?> + <p><?php printf( __( 'BuddyPress will now use its internal copy of bbPress to run the forums on your site. If you wish, you can remove your old bbPress installation files, as long as you keep the %s file in the same location.', 'buddypress' ), '<code>bb-config.php</code>' ); ?></p><?php } } else { ?> <form action="" method="post"> <h3><?php _e( 'Existing bbPress Installation', 'buddypress' ) ?></h3> - <p><?php _e( "BuddyPress can make use of your existing bbPress install. Just provide the location of your <code>bb-config.php</code> file, and BuddyPress will do the rest.", 'buddypress' ) ?></p> - <p><label><code>bb-config.php</code> file location:</label><br /><input style="width: 50%" type="text" name="bbconfigloc" id="bbconfigloc" value="<?php echo str_replace( 'buddypress', '', $_SERVER['DOCUMENT_ROOT'] ) ?>" /></p> + <?php /* translators: %s: bb-config.php */ ?> + <p><?php printf( __( 'BuddyPress can make use of your existing bbPress install. Just provide the location of your %s file, and BuddyPress will do the rest.', 'buddypress' ), '<code>bb-config.php</code>' ); ?></p> + <?php /* translators: %s: bb-config.php */ ?> + <p><label><?php printf( __( '%s file location:', 'buddypress' ), '<code>bb-config.php</code>' ); ?></label><br /><input style="width: 50%" type="text" name="bbconfigloc" id="bbconfigloc" value="<?php echo esc_attr( str_replace( 'buddypress', '', $_SERVER['DOCUMENT_ROOT'] ) ) ?>" /></p> <p><input type="submit" class="button-primary" value="<?php esc_attr_e( 'Complete Installation', 'buddypress' ) ?>" /></p> <input type="hidden" name="step" value="existing" /> <input type="hidden" name="doinstall" value="1" /> @@ -166,13 +170,15 @@ function bp_forums_bbpress_install_wizard() { switch ( $result ) { case 1: echo '<p>'; - _e( 'All done! Configuration settings have been saved to the file <code>bb-config.php</code> in the root of your WordPress install.', 'buddypress' ); + /* translators: %s: bb-config.php */ + printf( __( 'All done! Configuration settings have been saved to the %s file in the root of your WordPress install.', 'buddypress' ), '<code>bb-config.php</code>' ); echo '</p>'; break; default: // Just write the contents to screen. echo '<p>'; - _e( 'A configuration file could not be created. No problem, but you will need to save the text shown below into a file named <code>bb-config.php</code> in the root directory of your WordPress installation before you can start using the forum functionality.', 'buddypress' ); + /* translators: %s: bb-config.php */ + printf( __( 'A configuration file could not be created. No problem, but you will need to save the text shown below into a file named %s in the root directory of your WordPress installation before you can start using the forum functionality.', 'buddypress' ), '<code>bb-config.php</code>' ); echo '</p>'; ?> <textarea style="display:block; margin-top: 30px; width: 80%;" rows="50"><?php echo esc_textarea( $result ); ?></textarea> diff --git a/wp-content/plugins/buddypress/bp-friends/bp-friends-activity.php b/wp-content/plugins/buddypress/bp-friends/bp-friends-activity.php index 9b931ef23e807527954848beb9e30d23bbbb9824..b9508c1419c0f4712f703f719d6b9504becc5403 100644 --- a/wp-content/plugins/buddypress/bp-friends/bp-friends-activity.php +++ b/wp-content/plugins/buddypress/bp-friends/bp-friends-activity.php @@ -408,4 +408,4 @@ function bp_friends_delete_activity_on_user_delete( $user_id = 0 ) { 'secondary_item_id' => $user_id ) ); } -add_action( 'friends_remove_data', 'bp_friends_delete_activity_on_user_delete' ); \ No newline at end of file +add_action( 'friends_remove_data', 'bp_friends_delete_activity_on_user_delete' ); 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 d8066f2bbc182c06a2d510a5467e7345e589dc03..9617392abcc4ded26a02985920bb83e31b78680f 100644 --- a/wp-content/plugins/buddypress/bp-friends/bp-friends-loader.php +++ b/wp-content/plugins/buddypress/bp-friends/bp-friends-loader.php @@ -12,7 +12,9 @@ // Exit if accessed directly. defined( 'ABSPATH' ) || exit; -require dirname( __FILE__ ) . '/classes/class-bp-friends-component.php'; +if ( ! buddypress()->do_autoload ) { + require dirname( __FILE__ ) . '/classes/class-bp-friends-component.php'; +} /** * Set up the bp-forums component. diff --git a/wp-content/plugins/buddypress/bp-friends/bp-friends-notifications.php b/wp-content/plugins/buddypress/bp-friends/bp-friends-notifications.php index a86629337d585ea6871c7d2d6a19b06e88b1fc04..c7a851eb1190f19cf85413e4059646cb5e62d53c 100644 --- a/wp-content/plugins/buddypress/bp-friends/bp-friends-notifications.php +++ b/wp-content/plugins/buddypress/bp-friends/bp-friends-notifications.php @@ -59,9 +59,7 @@ add_action( 'friends_friendship_requested', 'friends_notification_new_request', * @param int $friend_id ID of the request recipient. */ function friends_notification_accepted_request( $friendship_id, $initiator_id, $friend_id ) { - $initiator_id = (int) $initiator_id; - - if ( 'no' == bp_get_user_meta( $initiator_id, 'notification_friends_friendship_accepted', true ) ) { + if ( 'no' == bp_get_user_meta( (int) $initiator_id, 'notification_friends_friendship_accepted', true ) ) { return; } diff --git a/wp-content/plugins/buddypress/bp-friends/bp-friends-screens.php b/wp-content/plugins/buddypress/bp-friends/bp-friends-screens.php index 4c22cfdfa90994bbd785999598903581a6c6e8f2..c9bde7ac30dbb38811abdaab5e13f42f058d02fd 100644 --- a/wp-content/plugins/buddypress/bp-friends/bp-friends-screens.php +++ b/wp-content/plugins/buddypress/bp-friends/bp-friends-screens.php @@ -122,14 +122,26 @@ function friends_screen_notification_settings() { <tr id="friends-notification-settings-request"> <td></td> <td><?php _ex( 'A member sends you a friendship request', 'Friend settings on notification settings page', 'buddypress' ) ?></td> - <td class="yes"><input type="radio" name="notifications[notification_friends_friendship_request]" id="notification-friends-friendship-request-yes" value="yes" <?php checked( $send_requests, 'yes', true ) ?>/><label for="notification-friends-friendship-request-yes" class="bp-screen-reader-text"><?php _e( 'Yes, send email', 'buddypress' ); ?></label></td> - <td class="no"><input type="radio" name="notifications[notification_friends_friendship_request]" id="notification-friends-friendship-request-no" value="no" <?php checked( $send_requests, 'no', true ) ?>/><label for="notification-friends-friendship-request-no" class="bp-screen-reader-text"><?php _e( 'No, do not send email', 'buddypress' ); ?></label></td> + <td class="yes"><input type="radio" name="notifications[notification_friends_friendship_request]" id="notification-friends-friendship-request-yes" value="yes" <?php checked( $send_requests, 'yes', true ) ?>/><label for="notification-friends-friendship-request-yes" class="bp-screen-reader-text"><?php + /* translators: accessibility text */ + _e( 'Yes, send email', 'buddypress' ); + ?></label></td> + <td class="no"><input type="radio" name="notifications[notification_friends_friendship_request]" id="notification-friends-friendship-request-no" value="no" <?php checked( $send_requests, 'no', true ) ?>/><label for="notification-friends-friendship-request-no" class="bp-screen-reader-text"><?php + /* translators: accessibility text */ + _e( 'No, do not send email', 'buddypress' ); + ?></label></td> </tr> <tr id="friends-notification-settings-accepted"> <td></td> <td><?php _ex( 'A member accepts your friendship request', 'Friend settings on notification settings page', 'buddypress' ) ?></td> - <td class="yes"><input type="radio" name="notifications[notification_friends_friendship_accepted]" id="notification-friends-friendship-accepted-yes" value="yes" <?php checked( $accept_requests, 'yes', true ) ?>/><label for="notification-friends-friendship-accepted-yes" class="bp-screen-reader-text"><?php _e( 'Yes, send email', 'buddypress' ); ?></label></td> - <td class="no"><input type="radio" name="notifications[notification_friends_friendship_accepted]" id="notification-friends-friendship-accepted-no" value="no" <?php checked( $accept_requests, 'no', true ) ?>/><label for="notification-friends-friendship-accepted-no" class="bp-screen-reader-text"><?php _e( 'No, do not send email', 'buddypress' ); ?></label></td> + <td class="yes"><input type="radio" name="notifications[notification_friends_friendship_accepted]" id="notification-friends-friendship-accepted-yes" value="yes" <?php checked( $accept_requests, 'yes', true ) ?>/><label for="notification-friends-friendship-accepted-yes" class="bp-screen-reader-text"><?php + /* translators: accessibility text */ + _e( 'Yes, send email', 'buddypress' ); + ?></label></td> + <td class="no"><input type="radio" name="notifications[notification_friends_friendship_accepted]" id="notification-friends-friendship-accepted-no" value="no" <?php checked( $accept_requests, 'no', true ) ?>/><label for="notification-friends-friendship-accepted-no" class="bp-screen-reader-text"><?php + /* translators: accessibility text */ + _e( 'No, do not send email', 'buddypress' ); + ?></label></td> </tr> <?php diff --git a/wp-content/plugins/buddypress/bp-friends/bp-friends-template.php b/wp-content/plugins/buddypress/bp-friends/bp-friends-template.php index e101f1771612303a9c311c4a547b867af17bd219..d3cc442a674a64a1f287358a433a281190f65d5e 100644 --- a/wp-content/plugins/buddypress/bp-friends/bp-friends-template.php +++ b/wp-content/plugins/buddypress/bp-friends/bp-friends-template.php @@ -15,7 +15,6 @@ defined( 'ABSPATH' ) || exit; * * @since 1.5.0 * - * @uses bp_get_friends_slug() */ function bp_friends_slug() { echo bp_get_friends_slug(); @@ -44,7 +43,6 @@ function bp_friends_slug() { * * @since 1.5.0 * - * @uses bp_get_friends_root_slug() */ function bp_friends_root_slug() { echo bp_get_friends_root_slug(); @@ -496,10 +494,12 @@ function bp_get_friendship_requests( $user_id = 0 ) { * Filters the total pending friendship requests for a user. * * @since 1.2.0 + * @since 2.6.0 Added the `$user_id` parameter. * - * @param array|int An array of user IDs if found, or a 0 if none are found. + * @param array|int $requests An array of user IDs if found, or a 0 if none are found. + * @param int $user_id ID of the queried user. */ - return apply_filters( 'bp_get_friendship_requests', $requests ); + return apply_filters( 'bp_get_friendship_requests', $requests, $user_id ); } /** @@ -562,10 +562,12 @@ function bp_friend_accept_request_link() { * Filters the URL for accepting the current friendship request in the loop. * * @since 1.0.0 + * @since 2.6.0 Added the `$friendship_id` parameter. * - * @param string $value Accept-friendship URL. + * @param string $value Accept-friendship URL. + * @param int $friendship_id ID of the friendship. */ - return apply_filters( 'bp_get_friend_accept_request_link', wp_nonce_url( bp_loggedin_user_domain() . bp_get_friends_slug() . '/requests/accept/' . $friendship_id, 'friends_accept_friendship' ) ); + return apply_filters( 'bp_get_friend_accept_request_link', wp_nonce_url( bp_loggedin_user_domain() . bp_get_friends_slug() . '/requests/accept/' . $friendship_id, 'friends_accept_friendship' ), $friendship_id ); } /** @@ -595,10 +597,12 @@ function bp_friend_reject_request_link() { * Filters the URL for rejecting the current friendship request in the loop. * * @since 1.0.0 + * @since 2.6.0 Added the `$friendship_id` parameter. * - * @param string $value Reject-friendship URL. + * @param string $value Reject-friendship URL. + * @param int $friendship_id ID of the friendship. */ - return apply_filters( 'bp_get_friend_reject_request_link', wp_nonce_url( bp_loggedin_user_domain() . bp_get_friends_slug() . '/requests/reject/' . $friendship_id, 'friends_reject_friendship' ) ); + return apply_filters( 'bp_get_friend_reject_request_link', wp_nonce_url( bp_loggedin_user_domain() . bp_get_friends_slug() . '/requests/reject/' . $friendship_id, 'friends_reject_friendship' ), $friendship_id ); } /** @@ -625,10 +629,12 @@ function bp_total_friend_count( $user_id = 0 ) { * Filters the total friend count for a given user. * * @since 1.2.0 + * @since 2.6.0 Added the `$user_id` parameter. * - * @param int $value Total friend count. + * @param int $value Total friend count. + * @param int $user_id ID of the queried user. */ - return apply_filters( 'bp_get_total_friend_count', friends_get_total_friend_count( $user_id ) ); + return apply_filters( 'bp_get_total_friend_count', friends_get_total_friend_count( $user_id ), $user_id ); } add_filter( 'bp_get_total_friend_count', 'bp_core_number_format' ); @@ -661,10 +667,12 @@ function bp_friend_total_requests_count( $user_id = 0 ) { * Filters the total friendship request count for a given user. * * @since 1.2.0 + * @since 2.6.0 Added the `$user_id` parameter. * - * @param int $value Friendship request count. + * @param int $value Friendship request count. + * @param int $user_id ID of the queried user. */ - return apply_filters( 'bp_friend_get_total_requests_count', count( BP_Friends_Friendship::get_friend_user_ids( $user_id, true ) ) ); + return apply_filters( 'bp_friend_get_total_requests_count', count( BP_Friends_Friendship::get_friend_user_ids( $user_id, true ) ), $user_id ); } /** Stats **********************************************************************/ @@ -674,8 +682,6 @@ function bp_friend_total_requests_count( $user_id = 0 ) { * * @since 2.0.0 * - * @uses bp_friends_get_profile_stats() to get the stats. - * * @param array|string $args before|after|user_id. */ function bp_friends_profile_stats( $args = '' ) { 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 19e965c0ff8d2796b8ac74f4b226558b1c54b71a..a7adaa928753235ea351eafa2e4864bdee5007fb 100644 --- a/wp-content/plugins/buddypress/bp-friends/bp-friends-widgets.php +++ b/wp-content/plugins/buddypress/bp-friends/bp-friends-widgets.php @@ -10,7 +10,9 @@ // Exit if accessed directly. defined( 'ABSPATH' ) || exit; -require dirname( __FILE__ ) . '/classes/class-bp-core-friends-widget.php'; +if ( ! buddypress()->do_autoload ) { + require dirname( __FILE__ ) . '/classes/class-bp-core-friends-widget.php'; +} /** * Register the friends widget. 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 a1ea9d4983bc32ad719643d59e0d375022c3779a..f4f706b59217ec7a4950db11b4cf344f26427a40 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 @@ -24,11 +24,25 @@ class BP_Core_Friends_Widget extends WP_Widget { */ function __construct() { $widget_ops = array( - 'description' => __( 'A dynamic list of recently active, popular, and newest Friends of the displayed member. Widget is only shown when viewing a member profile.', 'buddypress' ), - 'classname' => 'widget_bp_core_friends_widget buddypress widget', + 'description' => __( 'A dynamic list of recently active, popular, and newest Friends of the displayed member. Widget is only shown when viewing a member profile.', 'buddypress' ), + 'classname' => 'widget_bp_core_friends_widget buddypress widget', + 'customize_selective_refresh' => true, ); parent::__construct( false, $name = _x( '(BuddyPress) Friends', 'widget name', 'buddypress' ), $widget_ops ); + if ( is_customize_preview() || is_active_widget( false, false, $this->id_base ) ) { + add_action( 'bp_enqueue_scripts', array( $this, 'enqueue_scripts' ) ); + } + } + + /** + * Enqueue scripts. + * + * @since 2.6.0 + */ + public function enqueue_scripts() { + $min = bp_core_get_minified_asset_suffix(); + wp_enqueue_script( 'bp_core_widget_friends-js', buddypress()->plugin_url . "bp-friends/js/widget-friends{$min}.js", array( 'jquery' ), bp_get_version() ); } /** @@ -48,9 +62,6 @@ class BP_Core_Friends_Widget extends WP_Widget { return; } - $min = bp_core_get_minified_asset_suffix(); - wp_enqueue_script( 'bp_core_widget_friends-js', buddypress()->plugin_url . "bp-friends/js/widget-friends{$min}.js", array( 'jquery' ), bp_get_version() ); - $user_id = bp_displayed_user_id(); $link = trailingslashit( bp_displayed_user_domain() . bp_get_friends_slug() ); $instance['title'] = sprintf( __( "%s's Friends", 'buddypress' ), bp_get_displayed_user_fullname() ); 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 cfe65d58c623f93c7ed2cc3404483428dc99bb31..ce0308ae18a6a22eaa97d5ecb6ebd622043ef98a 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 @@ -50,7 +50,6 @@ class BP_Friends_Component extends BP_Component { 'actions', 'screens', 'filters', - 'classes', 'activity', 'template', 'functions', @@ -58,6 +57,10 @@ class BP_Friends_Component extends BP_Component { 'widgets', ); + if ( ! buddypress()->do_autoload ) { + $includes[] = 'classes'; + } + parent::includes( $includes ); } @@ -134,10 +137,21 @@ class BP_Friends_Component extends BP_Component { $friends_link = trailingslashit( $user_domain . $slug ); // Add 'Friends' to the main navigation. - $count = friends_get_total_friend_count(); - $class = ( 0 === $count ) ? 'no-count' : 'count'; + $count = friends_get_total_friend_count(); + $class = ( 0 === $count ) ? 'no-count' : 'count'; + + $main_nav_name = sprintf( + /* translators: %s: Friend count for the current user */ + __( 'Friends %s', 'buddypress' ), + sprintf( + '<span class="%s">%s</span>', + esc_attr( $class ), + bp_core_number_format( $count ) + ) + ); + $main_nav = array( - 'name' => sprintf( __( 'Friends <span class="%s">%s</span>', 'buddypress' ), esc_attr( $class ), bp_core_number_format( $count ) ), + 'name' => $main_nav_name, 'slug' => $slug, 'position' => 60, 'screen_function' => 'friends_screen_my_friends', @@ -190,8 +204,16 @@ class BP_Friends_Component extends BP_Component { // Pending friend requests. $count = count( friends_get_friendship_request_user_ids( bp_loggedin_user_id() ) ); if ( !empty( $count ) ) { - $title = sprintf( _x( 'Friends <span class="count">%s</span>', 'My Account Friends menu', 'buddypress' ), bp_core_number_format( $count ) ); - $pending = sprintf( _x( 'Pending Requests <span class="count">%s</span>', 'My Account Friends menu sub nav', 'buddypress' ), bp_core_number_format( $count ) ); + $title = sprintf( + /* translators: %s: Pending friend request count for the current user */ + _x( 'Friends %s', 'My Account Friends menu', 'buddypress' ), + '<span class="count">' . bp_core_number_format( $count ) . '</span>' + ); + $pending = sprintf( + /* translators: %s: Pending friend request count for the current user */ + _x( 'Pending Requests %s', 'My Account Friends menu sub nav', 'buddypress' ), + '<span class="count">' . bp_core_number_format( $count ) . '</span>' + ); } else { $title = _x( 'Friends', 'My Account Friends menu', 'buddypress' ); $pending = _x( 'No Pending Requests','My Account Friends menu sub nav', 'buddypress' ); 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 7617c1dc4ea662290e71d1f8f468b312817fe60a..f19f4bc0ef74d27d266b5d881d9cc1e070369212 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 @@ -106,7 +106,7 @@ class BP_Friends_Friendship { $this->is_request = $is_request; if ( !empty( $id ) ) { - $this->id = $id; + $this->id = (int) $id; $this->populate_friend_details = $populate_friend_details; $this->populate( $this->id ); } @@ -123,10 +123,10 @@ class BP_Friends_Friendship { $bp = buddypress(); if ( $friendship = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM {$bp->friends->table_name} WHERE id = %d", $this->id ) ) ) { - $this->initiator_user_id = $friendship->initiator_user_id; - $this->friend_user_id = $friendship->friend_user_id; - $this->is_confirmed = $friendship->is_confirmed; - $this->is_limited = $friendship->is_limited; + $this->initiator_user_id = (int) $friendship->initiator_user_id; + $this->friend_user_id = (int) $friendship->friend_user_id; + $this->is_confirmed = (int) $friendship->is_confirmed; + $this->is_limited = (int) $friendship->is_limited; $this->date_created = $friendship->date_created; } @@ -655,6 +655,7 @@ class BP_Friends_Friendship { * - users who have been banned from the group * * @since 1.0.0 + * @todo Need to do a group component check before using group functions. * * @param int $user_id ID of the user whose friends are being counted. * @param int $group_id ID of the group friends are being invited to. @@ -663,23 +664,26 @@ class BP_Friends_Friendship { public static function get_invitable_friend_count( $user_id, $group_id ) { // Setup some data we'll use below. - $is_group_admin = BP_Groups_Member::check_is_admin( $user_id, $group_id ); + $is_group_admin = groups_is_user_admin( $user_id, $group_id ); $friend_ids = BP_Friends_Friendship::get_friend_user_ids( $user_id ); $invitable_count = 0; for ( $i = 0, $count = count( $friend_ids ); $i < $count; ++$i ) { // If already a member, they cannot be invited again. - if ( BP_Groups_Member::check_is_member( (int) $friend_ids[$i], $group_id ) ) + if ( groups_is_user_member( (int) $friend_ids[$i], $group_id ) ) { continue; + } // If user already has invite, they cannot be added. - if ( BP_Groups_Member::check_has_invite( (int) $friend_ids[$i], $group_id ) ) + if ( groups_check_user_has_invite( (int) $friend_ids[$i], $group_id ) ) { continue; + } // If user is not group admin and friend is banned, they cannot be invited. - if ( ( false === $is_group_admin ) && BP_Groups_Member::check_is_banned( (int) $friend_ids[$i], $group_id ) ) + if ( ( false === $is_group_admin ) && groups_is_user_banned( (int) $friend_ids[$i], $group_id ) ) { continue; + } $invitable_count++; } diff --git a/wp-content/plugins/buddypress/bp-friends/js/widget-friends.js b/wp-content/plugins/buddypress/bp-friends/js/widget-friends.js index 42bce563c05ac6958f9d4684b3934af8ec458b8c..52926d295cfe391b2d6991c0aa03dda2594bef12 100644 --- a/wp-content/plugins/buddypress/bp-friends/js/widget-friends.js +++ b/wp-content/plugins/buddypress/bp-friends/js/widget-friends.js @@ -1,4 +1,15 @@ jQuery(document).ready( function() { + friend_widget_click_handler(); + + // WP 4.5 - Customizer selective refresh support. + if ( 'undefined' !== typeof wp && wp.customize && wp.customize.selectiveRefresh ) { + wp.customize.selectiveRefresh.bind( 'partial-content-rendered', function() { + friend_widget_click_handler(); + } ); + } +}); + +function friend_widget_click_handler() { jQuery('.widget div#friends-list-options a').on('click', function() { var link = this; @@ -23,7 +34,7 @@ jQuery(document).ready( function() { return false; } ); -}); +} function friend_widget_response(response) { response = response.substr(0, response.length-1); diff --git a/wp-content/plugins/buddypress/bp-friends/js/widget-friends.min.js b/wp-content/plugins/buddypress/bp-friends/js/widget-friends.min.js index 30ad64768b0b676ddc1812454fb3a7687094ea7a..5e8dcd5e5f253cb1387264c3dd367a93848455db 100644 --- a/wp-content/plugins/buddypress/bp-friends/js/widget-friends.min.js +++ b/wp-content/plugins/buddypress/bp-friends/js/widget-friends.min.js @@ -1,2 +1 @@ -/*! buddypress - v2.5.3 - 2016-05-24 5:17:45 PM UTC - https://wordpress.org/plugins/buddypress/ */ -function friend_widget_response(a){a=a.substr(0,a.length-1),a=a.split("[[SPLIT]]"),"-1"!==a[0]?jQuery(".widget ul#friends-list").fadeOut(200,function(){jQuery(".widget ul#friends-list").html(a[1]),jQuery(".widget ul#friends-list").fadeIn(200)}):jQuery(".widget ul#friends-list").fadeOut(200,function(){var b="<p>"+a[1]+"</p>";jQuery(".widget ul#friends-list").html(b),jQuery(".widget ul#friends-list").fadeIn(200)})}jQuery(document).ready(function(){jQuery(".widget div#friends-list-options a").on("click",function(){var a=this;return jQuery(a).addClass("loading"),jQuery(".widget div#friends-list-options a").removeClass("selected"),jQuery(this).addClass("selected"),jQuery.post(ajaxurl,{action:"widget_friends",cookie:encodeURIComponent(document.cookie),_wpnonce:jQuery("input#_wpnonce-friends").val(),"max-friends":jQuery("input#friends_widget_max").val(),filter:jQuery(this).attr("id")},function(b){jQuery(a).removeClass("loading"),friend_widget_response(b)}),!1})}); \ No newline at end of file +function friend_widget_click_handler(){jQuery(".widget div#friends-list-options a").on("click",function(){var a=this;return jQuery(a).addClass("loading"),jQuery(".widget div#friends-list-options a").removeClass("selected"),jQuery(this).addClass("selected"),jQuery.post(ajaxurl,{action:"widget_friends",cookie:encodeURIComponent(document.cookie),_wpnonce:jQuery("input#_wpnonce-friends").val(),"max-friends":jQuery("input#friends_widget_max").val(),filter:jQuery(this).attr("id")},function(b){jQuery(a).removeClass("loading"),friend_widget_response(b)}),!1})}function friend_widget_response(a){a=a.substr(0,a.length-1),a=a.split("[[SPLIT]]"),"-1"!==a[0]?jQuery(".widget ul#friends-list").fadeOut(200,function(){jQuery(".widget ul#friends-list").html(a[1]),jQuery(".widget ul#friends-list").fadeIn(200)}):jQuery(".widget ul#friends-list").fadeOut(200,function(){var b="<p>"+a[1]+"</p>";jQuery(".widget ul#friends-list").html(b),jQuery(".widget ul#friends-list").fadeIn(200)})}jQuery(document).ready(function(){friend_widget_click_handler(),"undefined"!=typeof wp&&wp.customize&&wp.customize.selectiveRefresh&&wp.customize.selectiveRefresh.bind("partial-content-rendered",function(){friend_widget_click_handler()})}); \ No newline at end of file diff --git a/wp-content/plugins/buddypress/bp-groups/admin/js/admin.min.js b/wp-content/plugins/buddypress/bp-groups/admin/js/admin.min.js index a73ef2bd7619a2705a2cc09e125f7811f4a92a9c..846426dda525a66a158dc828e8e6e71c8b62b5d2 100644 --- a/wp-content/plugins/buddypress/bp-groups/admin/js/admin.min.js +++ b/wp-content/plugins/buddypress/bp-groups/admin/js/admin.min.js @@ -1,2 +1 @@ -/*! buddypress - v2.5.3 - 2016-05-24 5:17:45 PM UTC - https://wordpress.org/plugins/buddypress/ */ !function(a){function b(b,c){a("#bp-groups-new-members-list").append('<li data-login="'+c.item.value+'"><a href="#" class="bp-groups-remove-new-member">x</a> '+c.item.label+"</li>")}var c="undefined"!=typeof group_id?"&group_id="+group_id:"";a(document).ready(function(){window.warn_on_leave=!1,a(".bp-suggest-user").autocomplete({source:ajaxurl+"?action=bp_group_admin_member_autocomplete"+c,delay:500,minLength:2,position:"undefined"!=typeof isRtl&&isRtl?{my:"right top",at:"right bottom",offset:"0, -1"}:{offset:"0, -1"},open:function(){a(this).addClass("open")},close:function(){a(this).removeClass("open"),a(this).val("")},select:function(a,c){b(a,c)}}),a("#bp-groups-new-members").prop("placeholder",BP_Group_Admin.add_member_placeholder),a("#bp_group_add_members").on("click",".bp-groups-remove-new-member",function(b){b.preventDefault(),a(b.target.parentNode).remove()}),a(document).on("change",'input#bp-groups-name, input#bp-groups-description, select.bp-groups-role, #bp-groups-settings-section-status input[type="radio"]',function(){window.warn_on_leave=!0}),a("input#save").on("click",function(){var b=[];a("#bp-groups-new-members-list li").each(function(){b.push(a(this).data("login"))}),b.length&&a("#bp-groups-new-members").val("").val(b.join(", ")),window.warn_on_leave=!1}),window.onbeforeunload=function(){return window.warn_on_leave?BP_Group_Admin.warn_on_leave:void 0}})}(jQuery); \ 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 d8b4e7990c1a3500640d33fd700130cbce098103..4a3c51013699f7fa3637ec3df3951b1c819689b0 100644 --- a/wp-content/plugins/buddypress/bp-groups/bp-groups-actions.php +++ b/wp-content/plugins/buddypress/bp-groups/bp-groups-actions.php @@ -14,6 +14,21 @@ // Exit if accessed directly. defined( 'ABSPATH' ) || exit; +/** + * Fire the 'bp_groups_register_group_types' action. + * + * @since 2.6.0 + */ +function bp_groups_register_group_types() { + /** + * Fires when it's appropriate to register group types. + * + * @since 2.6.0 + */ + do_action( 'bp_groups_register_group_types' ); +} +add_action( 'bp_init', 'bp_groups_register_group_types', 1 ); + /** * Protect access to single groups. * @@ -122,8 +137,8 @@ function groups_action_create_group() { unset( $bp->groups->current_create_step ); unset( $bp->groups->completed_create_steps ); - setcookie( 'bp_new_group_id', false, time() - 1000, COOKIEPATH ); - setcookie( 'bp_completed_create_steps', false, time() - 1000, COOKIEPATH ); + setcookie( 'bp_new_group_id', false, time() - 1000, COOKIEPATH, COOKIE_DOMAIN, is_ssl() ); + setcookie( 'bp_completed_create_steps', false, time() - 1000, COOKIEPATH, COOKIE_DOMAIN, is_ssl() ); $reset_steps = true; $keys = array_keys( $bp->groups->group_creation_steps ); @@ -252,8 +267,8 @@ function groups_action_create_group() { $bp->groups->completed_create_steps[] = bp_get_groups_current_create_step(); // Reset cookie info. - setcookie( 'bp_new_group_id', $bp->groups->new_group_id, time()+60*60*24, COOKIEPATH ); - setcookie( 'bp_completed_create_steps', base64_encode( json_encode( $bp->groups->completed_create_steps ) ), time()+60*60*24, COOKIEPATH ); + setcookie( 'bp_new_group_id', $bp->groups->new_group_id, time()+60*60*24, COOKIEPATH, COOKIE_DOMAIN, is_ssl() ); + setcookie( 'bp_completed_create_steps', base64_encode( json_encode( $bp->groups->completed_create_steps ) ), time()+60*60*24, COOKIEPATH, COOKIE_DOMAIN, is_ssl() ); // If we have completed all steps and hit done on the final step we // can redirect to the completed group. @@ -262,8 +277,8 @@ function groups_action_create_group() { unset( $bp->groups->current_create_step ); unset( $bp->groups->completed_create_steps ); - setcookie( 'bp_new_group_id', false, time() - 3600, COOKIEPATH ); - setcookie( 'bp_completed_create_steps', false, time() - 3600, COOKIEPATH ); + setcookie( 'bp_new_group_id', false, time() - 3600, COOKIEPATH, COOKIE_DOMAIN, is_ssl() ); + setcookie( 'bp_completed_create_steps', false, time() - 3600, COOKIEPATH, COOKIE_DOMAIN, is_ssl() ); // Once we completed all steps, record the group creation in the activity stream. groups_record_activity( array( diff --git a/wp-content/plugins/buddypress/bp-groups/bp-groups-activity.php b/wp-content/plugins/buddypress/bp-groups/bp-groups-activity.php index 4ff1290f98ee23433b5d8381c0564385429ac820..0bf4f29f08243dece7fc798fbe1c40229de35f49 100644 --- a/wp-content/plugins/buddypress/bp-groups/bp-groups-activity.php +++ b/wp-content/plugins/buddypress/bp-groups/bp-groups-activity.php @@ -379,7 +379,8 @@ function groups_record_activity( $args = '' ) { 'item_id' => false, 'secondary_item_id' => false, 'recorded_time' => bp_core_current_time(), - 'hide_sitewide' => $hide_sitewide + 'hide_sitewide' => $hide_sitewide, + 'error_type' => 'bool' ) ); return bp_activity_add( $r ); 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 04a3dfdeafa645cdee88e1f43788860a3f206c31..5a2a0bf8a8ca03c8dd88ad43a04a4d065030f881 100644 --- a/wp-content/plugins/buddypress/bp-groups/bp-groups-admin.php +++ b/wp-content/plugins/buddypress/bp-groups/bp-groups-admin.php @@ -16,7 +16,9 @@ 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' ); -require dirname( __FILE__ ) . '/classes/class-bp-groups-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'] ) @@ -132,6 +134,19 @@ function bp_groups_admin_load() { add_meta_box( 'bp_group_add_members', _x( 'Add New Members', 'group admin edit screen', 'buddypress' ), 'bp_groups_admin_edit_metabox_add_new_members', get_current_screen()->id, 'normal', 'core' ); add_meta_box( 'bp_group_members', _x( 'Manage Members', 'group admin edit screen', 'buddypress' ), 'bp_groups_admin_edit_metabox_members', get_current_screen()->id, 'normal', 'core' ); + // Group Type metabox. Only added if group types have been registered. + $group_types = bp_groups_get_group_types(); + if ( ! empty( $group_types ) ) { + add_meta_box( + 'bp_groups_admin_group_type', + _x( 'Group Type', 'groups admin edit screen', 'buddypress' ), + 'bp_groups_admin_edit_metabox_group_type', + get_current_screen()->id, + 'side', + 'core' + ); + } + /** * Fires after the registration of all of the default group meta boxes. * @@ -177,6 +192,7 @@ function bp_groups_admin_load() { // Add accessible hidden heading and text for Groups screen pagination. if ( bp_get_major_wp_version() >= 4.4 ) { get_current_screen()->set_screen_reader_content( array( + /* translators: accessibility text */ 'heading_pagination' => __( 'Groups list navigation', 'buddypress' ), ) ); } @@ -552,8 +568,7 @@ function bp_groups_admin_edit() { // Get the group from the database. $group = groups_get_group( 'group_id=' . (int) $_GET['gid'] ); - /** This filter is documented in bp-groups/bp-groups-template.php */ - $group_name = isset( $group->name ) ? apply_filters( 'bp_get_group_name', $group->name ) : ''; + $group_name = isset( $group->name ) ? bp_get_group_name( $group ) : ''; // Construct URL for form. $form_url = remove_query_arg( array( 'action', 'deleted', 'no_admins', 'error', 'error_new', 'success_new', 'error_modified', 'success_modified' ), $_SERVER['REQUEST_URI'] ); @@ -584,7 +599,7 @@ function bp_groups_admin_edit() { <div id="moderated" class="<?php echo ( $is_error ) ? 'error' : 'updated'; ?>"><p><?php echo implode( "</p><p>", $messages ); ?></p></div> <?php endif; ?> - <?php if ( ! empty( $group ) ) : ?> + <?php if ( $group->id ) : ?> <form action="<?php echo esc_url( $form_url ); ?>" id="bp-groups-edit-form" method="post"> <div id="poststuff"> @@ -595,13 +610,19 @@ function bp_groups_admin_edit() { <div id="bp_groups_name" class="postbox"> <h2><?php _e( 'Name and Description', 'buddypress' ); ?></h2> <div class="inside"> - <label for="bp-groups-name" class="screen-reader-text"><?php _e( 'Group Name', 'buddypress' ); ?></label> + <label for="bp-groups-name" class="screen-reader-text"><?php + /* translators: accessibility text */ + _e( 'Group Name', 'buddypress' ); + ?></label> <input type="text" name="bp-groups-name" id="bp-groups-name" value="<?php echo esc_attr( stripslashes( $group_name ) ) ?>" /> <div id="bp-groups-permalink-box"> <strong><?php esc_html_e( 'Permalink:', 'buddypress' ) ?></strong> <span id="sample-permalink"><?php bp_group_permalink( $group ) ?></span> <a href="<?php echo bp_group_permalink( $group ) ?>" class="button button-small" id="bp-groups-visit-group"><?php esc_html_e( 'Visit Group', 'buddypress' ) ?></a> </div> - <label for="bp-groups-description" class="screen-reader-text"><?php _e( 'Group Description', 'buddypress' ); ?></label> + <label for="bp-groups-description" class="screen-reader-text"><?php + /* translators: accessibility text */ + _e( 'Group Description', 'buddypress' ); + ?></label> <?php wp_editor( stripslashes( $group->description ), 'bp-groups-description', array( 'media_buttons' => false, 'teeny' => true, 'textarea_rows' => 5, 'quicktags' => array( 'buttons' => 'strong,em,link,block,del,ins,img,code,spell,close' ) ) ); ?> </div> </div> @@ -625,7 +646,16 @@ function bp_groups_admin_edit() { </form> <?php else : ?> - <p><?php printf( __( 'No group found with this ID. <a href="%s">Go back and try again</a>.', 'buddypress' ), esc_url( bp_get_admin_url( 'admin.php?page=bp-groups' ) ) ); ?></p> + + <p><?php + printf( + '%1$s <a href="%2$s">%3$s</a>', + __( 'No group found with this ID.', 'buddypress' ), + esc_url( bp_get_admin_url( 'admin.php?page=bp-groups' ) ), + __( 'Go back and try again.', 'buddypress' ) + ); + ?></p> + <?php endif; ?> </div><!-- .wrap --> @@ -672,7 +702,7 @@ function bp_groups_admin_delete() { <ul class="bp-group-delete-list"> <?php foreach ( $groups['groups'] as $group ) : ?> - <li><?php echo apply_filters( 'bp_get_group_name', $group->name, $group ); ?></li> + <li><?php echo esc_html( bp_get_group_name( $group ) ); ?></li> <?php endforeach; ?> </ul> @@ -809,7 +839,10 @@ function bp_groups_admin_edit_metabox_settings( $item ) { function bp_groups_admin_edit_metabox_add_new_members( $item ) { ?> - <label for="bp-groups-new-members" class="screen-reader-text"><?php _e( 'Add new members', 'buddypress' ); ?></label> + <label for="bp-groups-new-members" class="screen-reader-text"><?php + /* 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' ) ?>" /> <ul id="bp-groups-new-members-list"></ul> <?php @@ -903,7 +936,10 @@ function bp_groups_admin_edit_metabox_members( $item ) { </td> <td class="urole-column"> - <label for="bp-groups-role-<?php echo esc_attr( $type_user->ID ); ?>" class="screen-reader-text"><?php _e( 'Select group role for member', 'buddypress' ); ?></label> + <label for="bp-groups-role-<?php echo esc_attr( $type_user->ID ); ?>" class="screen-reader-text"><?php + /* translators: accessibility text */ + _e( 'Select group role for member', 'buddypress' ); + ?></label> <select class="bp-groups-role" id="bp-groups-role-<?php echo esc_attr( $type_user->ID ); ?>" name="bp-groups-role[<?php echo esc_attr( $type_user->ID ); ?>]"> <optgroup label="<?php esc_attr_e( 'Roles', 'buddypress' ); ?>"> <option class="admin" value="admin" <?php selected( 'admin', $member_type ); ?>><?php esc_html_e( 'Administrator', 'buddypress' ); ?></option> @@ -1000,6 +1036,73 @@ function bp_groups_admin_edit_metabox_status( $item ) { <?php } +/** + * Render the Group Type metabox. + * + * @since 2.6.0 + * + * @param BP_Groups_Group|null $user The BP_Groups_Group object corresponding to the group being edited. + */ +function bp_groups_admin_edit_metabox_group_type( BP_Groups_Group $group = null ) { + + // Bail if no group ID. + if ( empty( $group->id ) ) { + return; + } + + $types = bp_groups_get_group_types( array(), 'objects' ); + $current_type = bp_groups_get_group_type( $group->id ); + ?> + + <label for="bp-groups-group-type" class="screen-reader-text"><?php + /* translators: accessibility text */ + esc_html_e( 'Select group type', 'buddypress' ); + ?></label> + <select name="bp-groups-group-type" id="bp-groups-group-type"> + <option value="" <?php selected( '', $current_type ); ?>><?php /* translators: no option picked in select box */ esc_attr_e( '----', 'buddypress' ) ?></option> + <?php foreach ( $types as $type ) : ?> + <option value="<?php echo esc_attr( $type->name ) ?>" <?php selected( $type->name, $current_type ) ?>><?php echo esc_html( $type->labels['singular_name'] ) ?></option> + <?php endforeach; ?> + </select> + + <?php + + wp_nonce_field( 'bp-group-type-change-' . $group->id, 'bp-group-type-nonce' ); +} + +/** + * Process changes from the Group Type metabox. + * + * @since 2.6.0 + */ +function bp_groups_process_group_type_update( $group_id ) { + if ( ! isset( $_POST['bp-group-type-nonce'] ) || ! isset( $_POST['bp-groups-group-type'] ) ) { + return; + } + + check_admin_referer( 'bp-group-type-change-' . $group_id, 'bp-group-type-nonce' ); + + // Permission check. + if ( ! current_user_can( 'bp_moderate' ) ) { + return; + } + + // Group type string must either reference a valid group type, or be empty. + $group_type = wp_unslash( $_POST['bp-groups-group-type'] ); + if ( $group_type && ! bp_groups_get_group_type_object( $group_type ) ) { + return; + } + + /* + * If an invalid group type is passed, someone's doing something + * fishy with the POST request, so we can fail silently. + */ + if ( bp_groups_set_group_type( $group_id, $group_type ) ) { + // @todo Success messages can't be posted because other stuff happens on the page load. + } +} +add_action( 'bp_group_admin_edit_after', 'bp_groups_process_group_type_update' ); + /** * Create pagination links out of a BP_Group_Member_Query. * diff --git a/wp-content/plugins/buddypress/bp-groups/bp-groups-adminbar.php b/wp-content/plugins/buddypress/bp-groups/bp-groups-adminbar.php index f27f74e568b123ddfcaf2c5be43af02b4048de75..6cef4b5b7ff02027c21a4bbfe59582163cdd341e 100644 --- a/wp-content/plugins/buddypress/bp-groups/bp-groups-adminbar.php +++ b/wp-content/plugins/buddypress/bp-groups/bp-groups-adminbar.php @@ -47,15 +47,15 @@ function bp_groups_group_admin_menu() { ) ); // Index of the Manage tabs parent slug. - $nav_index = $bp->groups->current_group->slug . '_manage'; + $secondary_nav_items = $bp->groups->nav->get_secondary( array( 'parent_slug' => $bp->groups->current_group->slug . '_manage' ) ); // Check if current group has Manage tabs. - if ( empty( $bp->bp_options_nav[ $nav_index ] ) ) { + if ( ! $secondary_nav_items ) { return; } // Build the Group Admin menus. - foreach ( $bp->bp_options_nav[ $nav_index ] as $menu ) { + foreach ( $secondary_nav_items as $menu ) { /** * Should we add the current manage link in the Group's "Edit" Admin Bar menu ? * @@ -63,19 +63,19 @@ function bp_groups_group_admin_menu() { * to also add the link to the "edit screen" of their group component. To do so, set the * the 'show_in_admin_bar' argument of your edit screen to true */ - if ( $menu['show_in_admin_bar'] ) { - $title = sprintf( _x( 'Edit Group %s', 'Group WP Admin Bar manage links', 'buddypress' ), $menu['name'] ); + if ( $menu->show_in_admin_bar ) { + $title = sprintf( _x( 'Edit Group %s', 'Group WP Admin Bar manage links', 'buddypress' ), $menu->name ); // Title is specific for delete. - if ( 'delete-group' == $menu['slug'] ) { - $title = sprintf( _x( '%s Group', 'Group WP Admin Bar delete link', 'buddypress' ), $menu['name'] ); + if ( 'delete-group' == $menu->slug ) { + $title = sprintf( _x( '%s Group', 'Group WP Admin Bar delete link', 'buddypress' ), $menu->name ); } $wp_admin_bar->add_menu( array( 'parent' => $bp->group_admin_menu_id, - 'id' => $menu['slug'], + 'id' => $menu->slug, 'title' => $title, - 'href' => bp_get_groups_action_link( 'admin/' . $menu['slug'] ) + 'href' => bp_get_groups_action_link( 'admin/' . $menu->slug ) ) ); } } diff --git a/wp-content/plugins/buddypress/bp-groups/bp-groups-cache.php b/wp-content/plugins/buddypress/bp-groups/bp-groups-cache.php index 3d09916551eb4c69b6d6c5b5e941533b85d4156f..1781b4f3919e2fb59a03190144ef1f3bf45e9cf5 100644 --- a/wp-content/plugins/buddypress/bp-groups/bp-groups-cache.php +++ b/wp-content/plugins/buddypress/bp-groups/bp-groups-cache.php @@ -212,6 +212,47 @@ function groups_clear_group_administrator_cache_on_member_save( BP_Groups_Member } add_action( 'groups_member_after_save', 'groups_clear_group_administrator_cache_on_member_save' ); +/** + * Clear the group type cache for a group. + * + * Called when group is deleted. + * + * @since 2.6.0 + * + * @param int $group_id The group ID. + */ +function groups_clear_group_type_cache( $group_id = 0 ) { + wp_cache_delete( $group_id, 'bp_groups_group_type' ); +} +add_action( 'groups_delete_group', 'groups_clear_group_type_cache' ); + +/** + * Clear caches on membership save. + * + * @since 2.6.0 + */ +function bp_groups_clear_user_group_cache_on_membership_save( BP_Groups_Member $member ) { + wp_cache_delete( $member->user_id, 'bp_groups_memberships_for_user' ); + wp_cache_delete( $member->id, 'bp_groups_memberships' ); +} +add_action( 'groups_member_before_save', 'bp_groups_clear_user_group_cache_on_membership_save' ); +add_action( 'groups_member_before_remove', 'bp_groups_clear_user_group_cache_on_membership_save' ); + +/** + * Clear group memberships cache on miscellaneous actions not covered by the 'after_save' hook. + * + * @since 2.6.0 + */ +function bp_groups_clear_user_group_cache_on_other_events( $user_id, $group_id ) { + wp_cache_delete( $user_id, 'bp_groups_memberships_for_user' ); + + $membership = new BP_Groups_Member( $user_id, $group_id ); + wp_cache_delete( $membership->id, 'bp_groups_memberships' ); +} +add_action( 'bp_groups_member_before_delete', 'bp_groups_clear_user_group_cache_on_other_events', 10, 2 ); +add_action( 'bp_groups_member_before_delete_invite', 'bp_groups_clear_user_group_cache_on_other_events', 10, 2 ); +add_action( 'groups_accept_invite', 'bp_groups_clear_user_group_cache_on_other_events', 10, 2 ); + /* List actions to clear super cached pages on, if super cache is installed */ add_action( 'groups_join_group', 'bp_core_clear_cache' ); add_action( 'groups_leave_group', 'bp_core_clear_cache' ); 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 d1bf7f9beadef5e167ba3ceeec736f70336305a1..4aefa1025e135e113974458469a44067d2050362 100644 --- a/wp-content/plugins/buddypress/bp-groups/bp-groups-filters.php +++ b/wp-content/plugins/buddypress/bp-groups/bp-groups-filters.php @@ -54,7 +54,7 @@ add_filter( 'groups_group_description_before_save', 'force_balance_tags' ); add_filter( 'groups_group_name_before_save', 'trim' ); add_filter( 'groups_group_description_before_save', 'trim' ); -// Support emojis. +// Support emoji. if ( function_exists( 'wp_encode_emoji' ) ) { add_filter( 'groups_group_description_before_save', 'wp_encode_emoji' ); } @@ -73,6 +73,10 @@ add_filter( 'bp_get_total_group_count_for_user', 'bp_core_number_format' ); // Activity component integration. add_filter( 'bp_activity_at_name_do_notifications', 'bp_groups_disable_at_mention_notification_for_non_public_groups', 10, 4 ); +// Default group avatar. +add_filter( 'bp_core_avatar_default', 'bp_groups_default_avatar', 10, 3 ); +add_filter( 'bp_core_avatar_default_thumb', 'bp_groups_default_avatar', 10, 3 ); + /** * Filter output of Group Description through WordPress's KSES API. * @@ -319,3 +323,26 @@ function bp_groups_disable_at_mention_notification_for_non_public_groups( $send, return $send; } + +/** + * Use the mystery group avatar for groups. + * + * @since 2.6.0 + * + * @param string $avatar Current avatar src. + * @param array $params Avatar params. + * @return string + */ +function bp_groups_default_avatar( $avatar, $params ) { + if ( isset( $params['object'] ) && 'group' === $params['object'] ) { + if ( isset( $params['type'] ) && 'thumb' === $params['type'] ) { + $file = 'mystery-group-50.png'; + } else { + $file = 'mystery-group.png'; + } + + $avatar = buddypress()->plugin_url . "bp-core/images/$file"; + } + + return $avatar; +} 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 2e77c3e5491e1bd8802ebf5c83f318e2c88f3a01..cb0753e8b7f1183c706b69a6114ef428cd611382 100644 --- a/wp-content/plugins/buddypress/bp-groups/bp-groups-functions.php +++ b/wp-content/plugins/buddypress/bp-groups/bp-groups-functions.php @@ -683,6 +683,7 @@ function groups_get_total_member_count( $group_id ) { * Get a collection of groups, based on the parameters passed. * * @since 1.2.0 + * @since 2.6.0 Added `$group_type`, `$group_type__in`, and `$group_type__not_in` parameters. * * @param array|string $args { * Array of arguments. Supports all arguments of @@ -696,37 +697,43 @@ function groups_get_total_member_count( $group_id ) { function groups_get_groups( $args = '' ) { $defaults = array( - 'type' => false, // Active, newest, alphabetical, random, popular, most-forum-topics or most-forum-posts. - 'order' => 'DESC', // 'ASC' or 'DESC' - 'orderby' => 'date_created', // date_created, last_activity, total_member_count, name, random. - 'user_id' => false, // Pass a user_id to limit to only groups that this user is a member of. - 'include' => false, // Only include these specific groups (group_ids). - 'exclude' => false, // Do not include these specific groups (group_ids). - 'search_terms' => false, // Limit to groups that match these search terms. - 'meta_query' => false, // Filter by groupmeta. See WP_Meta_Query for syntax. - 'show_hidden' => false, // Show hidden groups to non-admins. - 'per_page' => 20, // The number of results to return per page. - 'page' => 1, // The page to return if limiting per page. - 'populate_extras' => true, // Fetch meta such as is_banned and is_member. - 'update_meta_cache' => true, // Pre-fetch groupmeta for queried groups. + 'type' => false, // Active, newest, alphabetical, random, popular, most-forum-topics or most-forum-posts. + 'order' => 'DESC', // 'ASC' or 'DESC' + 'orderby' => 'date_created', // date_created, last_activity, total_member_count, name, random. + 'user_id' => false, // Pass a user_id to limit to only groups that this user is a member of. + 'include' => false, // Only include these specific groups (group_ids). + 'exclude' => false, // Do not include these specific groups (group_ids). + 'search_terms' => false, // Limit to groups that match these search terms. + 'group_type' => '', + 'group_type__in' => '', + 'group_type__not_in' => '', + 'meta_query' => false, // Filter by groupmeta. See WP_Meta_Query for syntax. + 'show_hidden' => false, // Show hidden groups to non-admins. + 'per_page' => 20, // The number of results to return per page. + 'page' => 1, // The page to return if limiting per page. + 'populate_extras' => true, // Fetch meta such as is_banned and is_member. + 'update_meta_cache' => true, // Pre-fetch groupmeta for queried groups. ); $r = wp_parse_args( $args, $defaults ); $groups = BP_Groups_Group::get( array( - 'type' => $r['type'], - 'user_id' => $r['user_id'], - 'include' => $r['include'], - 'exclude' => $r['exclude'], - 'search_terms' => $r['search_terms'], - 'meta_query' => $r['meta_query'], - 'show_hidden' => $r['show_hidden'], - 'per_page' => $r['per_page'], - 'page' => $r['page'], - 'populate_extras' => $r['populate_extras'], - 'update_meta_cache' => $r['update_meta_cache'], - 'order' => $r['order'], - 'orderby' => $r['orderby'], + 'type' => $r['type'], + 'user_id' => $r['user_id'], + 'include' => $r['include'], + 'exclude' => $r['exclude'], + 'search_terms' => $r['search_terms'], + 'group_type' => $r['group_type'], + 'group_type__in' => $r['group_type__in'], + 'group_type__not_in' => $r['group_type__not_in'], + 'meta_query' => $r['meta_query'], + 'show_hidden' => $r['show_hidden'], + 'per_page' => $r['per_page'], + 'page' => $r['page'], + 'populate_extras' => $r['populate_extras'], + 'update_meta_cache' => $r['update_meta_cache'], + 'order' => $r['order'], + 'orderby' => $r['orderby'], ) ); /** @@ -783,6 +790,131 @@ function groups_get_user_groups( $user_id = 0, $pag_num = 0, $pag_page = 0 ) { return BP_Groups_Member::get_group_ids( $user_id, $pag_num, $pag_page ); } +/** + * Get a list of groups of which the specified user is a member. + * + * Get a list of the groups to which this member belongs, + * filtered by group membership status and role. + * Usage examples: Used with no arguments specified, + * + * bp_get_user_groups( bp_loggedin_user_id() ); + * + * returns an array of the groups in which the logged-in user + * is an unpromoted member. To fetch an array of all groups that + * the current user belongs to, in any membership role, + * member, moderator or administrator, use + * + * bp_get_user_groups( $user_id, array( + * 'is_admin' => null, + * 'is_mod' => null, + * ) ); + * + * @since 2.6.0 + * + * @param int $user_id ID of the user. + * @param array $args { + * Array of optional args. + * @param bool|null $is_confirmed Whether to return only confirmed memberships. Pass `null` to disable this + * filter. Default: true. + * @param bool|null $is_banned Whether to return only banned memberships. Pass `null` to disable this filter. + * Default: false. + * @param bool|null $is_admin Whether to return only admin memberships. Pass `null` to disable this filter. + * Default: false. + * @param bool|null $is_mod Whether to return only mod memberships. Pass `null` to disable this filter. + * Default: false. + * @param bool|null $invite_sent Whether to return only memberships with 'invite_sent'. Pass `null` to disable + * this filter. Default: false. + * @param string $orderby Field to order by. Accepts 'id' (membership ID), 'group_id', 'date_modified'. + * Default: 'group_id'. + * @param string $order Sort order. Accepts 'ASC' or 'DESC'. Default: 'ASC'. + * } + * @return array Array of matching group memberships, keyed by group ID. + */ +function bp_get_user_groups( $user_id, $args = array() ) { + $r = bp_parse_args( $args, array( + 'is_confirmed' => true, + 'is_banned' => false, + 'is_admin' => false, + 'is_mod' => false, + 'invite_sent' => null, + 'orderby' => 'group_id', + 'order' => 'ASC', + ), 'get_user_groups' ); + + $user_id = intval( $user_id ); + + $membership_ids = wp_cache_get( $user_id, 'bp_groups_memberships_for_user' ); + if ( false === $membership_ids ) { + $membership_ids = BP_Groups_Member::get_membership_ids_for_user( $user_id ); + wp_cache_set( $user_id, $membership_ids, 'bp_groups_memberships_for_user' ); + } + + // Prime the membership cache. + $uncached_membership_ids = bp_get_non_cached_ids( $membership_ids, 'bp_groups_memberships' ); + if ( ! empty( $uncached_membership_ids ) ) { + $uncached_memberships = BP_Groups_Member::get_memberships_by_id( $uncached_membership_ids ); + + foreach ( $uncached_memberships as $uncached_membership ) { + wp_cache_set( $uncached_membership->id, $uncached_membership, 'bp_groups_memberships' ); + } + } + + // Populate group membership array from cache. + $groups = array(); + foreach ( $membership_ids as $membership_id ) { + $membership = wp_cache_get( $membership_id, 'bp_groups_memberships' ); + + // Sanity check. + if ( ! isset( $membership->group_id ) ) { + continue; + } + + $group_id = (int) $membership->group_id; + + $groups[ $group_id ] = $membership; + } + + // Normalize group data. + foreach ( $groups as &$group ) { + // Integer values. + foreach ( array( 'id', 'group_id', 'user_id', 'inviter_id' ) as $index ) { + $group->{$index} = intval( $group->{$index} ); + } + + // Boolean values. + foreach ( array( 'is_admin', 'is_mod', 'is_confirmed', 'is_banned', 'invite_sent' ) as $index ) { + $group->{$index} = (bool) $group->{$index}; + } + } + + // Assemble filter array for use in `wp_list_filter()`. + $filters = wp_array_slice_assoc( $r, array( 'is_confirmed', 'is_banned', 'is_admin', 'is_mod', 'invite_sent' ) ); + foreach ( $filters as $filter_name => $filter_value ) { + if ( is_null( $filter_value ) ) { + unset( $filters[ $filter_name ] ); + } + } + + if ( ! empty( $filters ) ) { + $groups = wp_list_filter( $groups, $filters ); + } + + // By default, results are ordered by membership id. + if ( 'group_id' === $r['orderby'] ) { + ksort( $groups ); + } elseif ( in_array( $r['orderby'], array( 'id', 'date_modified' ) ) ) { + $groups = bp_sort_by_key( $groups, $r['orderby'] ); + } + + // By default, results are ordered ASC. + if ( 'DESC' === strtoupper( $r['order'] ) ) { + // `true` to preserve keys. + $groups = array_reverse( $groups, true ); + } + + return $groups; +} + /** * Get the count of groups of which the specified user is a member. * @@ -879,10 +1011,20 @@ function groups_avatar_upload_dir( $group_id = 0 ) { * * @param int $user_id ID of the user. * @param int $group_id ID of the group. - * @return bool + * @return int|bool ID of the membership if the user is admin, otherwise false. */ function groups_is_user_admin( $user_id, $group_id ) { - return BP_Groups_Member::check_is_admin( $user_id, $group_id ); + $is_admin = false; + + $user_groups = bp_get_user_groups( $user_id, array( + 'is_admin' => true, + ) ); + + if ( isset( $user_groups[ $group_id ] ) ) { + $is_admin = $user_groups[ $group_id ]->id; + } + + return $is_admin; } /** @@ -892,10 +1034,20 @@ function groups_is_user_admin( $user_id, $group_id ) { * * @param int $user_id ID of the user. * @param int $group_id ID of the group. - * @return bool + * @return int|bool ID of the membership if the user is mod, otherwise false. */ function groups_is_user_mod( $user_id, $group_id ) { - return BP_Groups_Member::check_is_mod( $user_id, $group_id ); + $is_mod = false; + + $user_groups = bp_get_user_groups( $user_id, array( + 'is_mod' => true, + ) ); + + if ( isset( $user_groups[ $group_id ] ) ) { + $is_mod = $user_groups[ $group_id ]->id; + } + + return $is_mod; } /** @@ -905,10 +1057,21 @@ function groups_is_user_mod( $user_id, $group_id ) { * * @param int $user_id ID of the user. * @param int $group_id ID of the group. - * @return bool + * @return int|bool ID of the membership if the user is member, otherwise false. */ function groups_is_user_member( $user_id, $group_id ) { - return BP_Groups_Member::check_is_member( $user_id, $group_id ); + $is_member = false; + + $user_groups = bp_get_user_groups( $user_id, array( + 'is_admin' => null, + 'is_mod' => null, + ) ); + + if ( isset( $user_groups[ $group_id ] ) ) { + $is_member = $user_groups[ $group_id ]->id; + } + + return $is_member; } /** @@ -918,11 +1081,69 @@ function groups_is_user_member( $user_id, $group_id ) { * * @param int $user_id ID of the user. * @param int $group_id ID of the group. - * - * @return bool + * @return int|bool ID of the membership if the user is banned, otherwise false. */ function groups_is_user_banned( $user_id, $group_id ) { - return BP_Groups_Member::check_is_banned( $user_id, $group_id ); + $is_banned = false; + + $user_groups = bp_get_user_groups( $user_id, array( + 'is_confirmed' => null, + 'is_banned' => true, + ) ); + + if ( isset( $user_groups[ $group_id ] ) ) { + $is_banned = $user_groups[ $group_id ]->id; + } + + return $is_banned; +} + +/** + * Check whether a user has an outstanding invitation to a group. + * + * @since 2.6.0 + * + * @param int $user_id ID of the user. + * @param int $group_id ID of the group. + * @return int|bool ID of the membership if the user is invited, otherwise false. + */ +function groups_is_user_invited( $user_id, $group_id ) { + $is_invited = false; + + $user_groups = bp_get_user_groups( $user_id, array( + 'invite_sent' => true, + 'is_confirmed' => false, + ) ); + + if ( isset( $user_groups[ $group_id ] ) ) { + $is_invited = $user_groups[ $group_id ]->id; + } + + return $is_invited; +} + +/** + * Check whether a user has a pending membership request for a group. + * + * @since 2.6.0 + * + * @param int $user_id ID of the user. + * @param int $group_id ID of the group. + * @return int|bool ID of the membership if the user is pending, otherwise false. + */ +function groups_is_user_pending( $user_id, $group_id ) { + $is_pending = false; + + $user_groups = bp_get_user_groups( $user_id, array( + 'invite_sent' => false, + 'is_confirmed' => false, + ) ); + + if ( isset( $user_groups[ $group_id ] ) ) { + $is_pending = $user_groups[ $group_id ]->id; + } + + return $is_pending; } /** @@ -944,6 +1165,7 @@ function groups_is_user_creator( $user_id, $group_id ) { * Post an Activity status update affiliated with a group. * * @since 1.2.0 + * @since 2.6.0 Added 'error_type' parameter to $args. * * @param array|string $args { * Array of arguments. @@ -963,9 +1185,10 @@ function groups_post_update( $args = '' ) { $bp = buddypress(); $defaults = array( - 'content' => false, - 'user_id' => bp_loggedin_user_id(), - 'group_id' => 0 + 'content' => false, + 'user_id' => bp_loggedin_user_id(), + 'group_id' => 0, + 'error_type' => 'bool' ); $r = wp_parse_args( $args, $defaults ); @@ -1006,11 +1229,12 @@ function groups_post_update( $args = '' ) { $content_filtered = apply_filters( 'groups_activity_new_update_content', $activity_content ); $activity_id = groups_record_activity( array( - 'user_id' => $user_id, - 'action' => $action, - 'content' => $content_filtered, - 'type' => 'activity_update', - 'item_id' => $group_id + 'user_id' => $user_id, + 'action' => $action, + 'content' => $content_filtered, + 'type' => 'activity_update', + 'item_id' => $group_id, + 'error_type' => $error_type ) ); groups_update_groupmeta( $group_id, 'last_activity', bp_core_current_time() ); @@ -1100,8 +1324,9 @@ function groups_invite_user( $args = '' ) { $args = wp_parse_args( $args, $defaults ); extract( $args, EXTR_SKIP ); - if ( empty( $user_id ) || empty( $group_id ) ) + if ( ! $user_id || ! $group_id || ! $inviter_id ) { return false; + } // If the user has already requested membership, accept the request. if ( $membership_id = groups_check_for_membership_request( $user_id, $group_id ) ) { @@ -1335,10 +1560,29 @@ function groups_get_invites_for_group( $user_id, $group_id ) { * @param int $group_id ID of potential group. * @param string $type Optional. Use 'sent' to check for sent invites, * 'all' to check for all. Default: 'sent'. - * @return bool True if an invitation is found, otherwise false. + * @return int|bool ID of the membership if found, otherwise false. */ function groups_check_user_has_invite( $user_id, $group_id, $type = 'sent' ) { - return BP_Groups_Member::check_has_invite( $user_id, $group_id, $type ); + $invite = false; + + $args = array( + 'is_confirmed' => false, + 'is_banned' => null, + 'is_admin' => null, + 'is_mod' => null, + ); + + if ( 'sent' === $type ) { + $args['invite_sent'] = true; + } + + $user_groups = bp_get_user_groups( $user_id, $args ); + + if ( isset( $user_groups[ $group_id ] ) && 0 !== $user_groups[ $group_id ]->inviter_id ) { + $invite = $user_groups[ $group_id ]->id; + } + + return $invite; } /** @@ -1683,10 +1927,23 @@ function groups_delete_membership_request( $membership_id, $user_id = 0, $group_ * * @param int $user_id ID of the user. * @param int $group_id ID of the group. - * @return int|null ID of the membership if found, otherwise false. + * @return int|bool ID of the membership if found, otherwise false. */ function groups_check_for_membership_request( $user_id, $group_id ) { - return BP_Groups_Member::check_for_membership_request( $user_id, $group_id ); + $request = false; + + $user_groups = bp_get_user_groups( $user_id, array( + 'is_confirmed' => false, + 'is_banned' => false, + 'is_admin' => null, + 'is_mod' => null + ) ); + + if ( isset( $user_groups[ $group_id ] ) && 0 === $user_groups[ $group_id ]->inviter_id ) { + $request = $user_groups[ $group_id ]->id; + } + + return $request; } /** @@ -1849,3 +2106,290 @@ function groups_remove_data_for_user( $user_id ) { add_action( 'wpmu_delete_user', 'groups_remove_data_for_user' ); add_action( 'delete_user', 'groups_remove_data_for_user' ); add_action( 'bp_make_spam_user', 'groups_remove_data_for_user' ); + +/** Group Types ***************************************************************/ + +/** + * Register a group type. + * + * @since 2.6.0 + * + * @param string $group_type Unique string identifier for the group type. + * @param array $args { + * Array of arguments describing the group type. + * + * @type array $labels { + * Array of labels to use in various parts of the interface. + * + * @type string $name Default name. Should typically be plural. + * @type string $singular_name Singular name. + * } + * } + * @return object|WP_Error Group type object on success, WP_Error object on failure. + */ +function bp_groups_register_group_type( $group_type, $args = array() ) { + $bp = buddypress(); + + if ( isset( $bp->groups->types[ $group_type ] ) ) { + return new WP_Error( 'bp_group_type_exists', __( 'Group type already exists.', 'buddypress' ), $group_type ); + } + + $r = bp_parse_args( $args, array( + 'labels' => array(), + ), 'register_group_type' ); + + $group_type = sanitize_key( $group_type ); + + /** + * Filters the list of illegal group type names. + * + * - 'any' is a special pseudo-type, representing items unassociated with any group type. + * - 'null' is a special pseudo-type, representing users without any type. + * - '_none' is used internally to denote an item that should not apply to any group types. + * + * @since 2.6.0 + * + * @param array $illegal_names Array of illegal names. + */ + $illegal_names = apply_filters( 'bp_group_type_illegal_names', array( 'any', 'null', '_none' ) ); + if ( in_array( $group_type, $illegal_names, true ) ) { + return new WP_Error( 'bp_group_type_illegal_name', __( 'You may not register a group type with this name.', 'buddypress' ), $group_type ); + } + + // Store the group type name as data in the object (not just as the array key). + $r['name'] = $group_type; + + // Make sure the relevant labels have been filled in. + $default_name = isset( $r['labels']['name'] ) ? $r['labels']['name'] : ucfirst( $r['name'] ); + $r['labels'] = array_merge( array( + 'name' => $default_name, + 'singular_name' => $default_name, + ), $r['labels'] ); + + $bp->groups->types[ $group_type ] = $type = (object) $r; + + /** + * Fires after a group type is registered. + * + * @since 2.6.0 + * + * @param string $group_type Group type identifier. + * @param object $type Group type object. + */ + do_action( 'bp_groups_register_group_type', $group_type, $type ); + + return $type; +} + +/** + * Get a list of all registered group type objects. + * + * @since 2.6.0 + * + * @see bp_groups_register_group_type() for accepted arguments. + * + * @param array|string $args Optional. An array of key => value arguments to match against + * the group type objects. Default empty array. + * @param string $output Optional. The type of output to return. Accepts 'names' + * or 'objects'. Default 'names'. + * @param string $operator Optional. The logical operation to perform. 'or' means only one + * element from the array needs to match; 'and' means all elements + * must match. Accepts 'or' or 'and'. Default 'and'. + * @return array $types A list of groups type names or objects. + */ +function bp_groups_get_group_types( $args = array(), $output = 'names', $operator = 'and' ) { + $types = buddypress()->groups->types; + + $types = wp_filter_object_list( $types, $args, $operator ); + + /** + * Filters the array of group type objects. + * + * This filter is run before the $output filter has been applied, so that + * filtering functions have access to the entire group type objects. + * + * @since 2.6.0 + * + * @param array $types group type objects, keyed by name. + * @param array $args Array of key=>value arguments for filtering. + * @param string $operator 'or' to match any of $args, 'and' to require all. + */ + $types = apply_filters( 'bp_groups_get_group_types', $types, $args, $operator ); + + if ( 'names' === $output ) { + $types = wp_list_pluck( $types, 'name' ); + } + + return $types; +} + +/** + * Retrieve a group type object by name. + * + * @since 2.6.0 + * + * @param string $group_type The name of the group type. + * @return object A group type object. + */ +function bp_groups_get_group_type_object( $group_type ) { + $types = bp_groups_get_group_types( array(), 'objects' ); + + if ( empty( $types[ $group_type ] ) ) { + return null; + } + + return $types[ $group_type ]; +} + +/** + * Set type for a group. + * + * @since 2.6.0 + * + * @param int $group ID of the group. + * @param string $group_type Group type. + * @param bool $append Optional. True to append this to existing types for group, + * false to replace. Default: false. + * @return array $retval See bp_set_object_terms(). + */ +function bp_groups_set_group_type( $group_id, $group_type, $append = false ) { + // Pass an empty group type to remove group's type. + if ( ! empty( $group_type ) && ! bp_groups_get_group_type_object( $group_type ) ) { + return false; + } + + $retval = bp_set_object_terms( $group_id, $group_type, 'bp_group_type', $append ); + + // Bust the cache if the type has been updated. + if ( ! is_wp_error( $retval ) ) { + wp_cache_delete( $group_id, 'bp_groups_group_type' ); + + /** + * Fires just after a group type has been changed. + * + * @since 2.6.0 + * + * @param int $group_id ID of the group whose group type has been updated. + * @param string $group_type Group type. + * @param bool $append Whether the type is being appended to existing types. + */ + do_action( 'bp_groups_set_group_type', $group_id, $group_type, $append ); + } + + return $retval; +} + +/** + * Get type for a group. + * + * @since 2.6.0 + * + * @param int $group_id ID of the group. + * @param bool $single Optional. Whether to return a single type string. If multiple types are found + * for the group, the oldest one will be returned. Default: true. + * @return string|array|bool On success, returns a single group type (if `$single` is true) or an array of group + * types (if `$single` is false). Returns false on failure. + */ +function bp_groups_get_group_type( $group_id, $single = true ) { + $types = wp_cache_get( $group_id, 'bp_groups_group_type' ); + + if ( false === $types ) { + $types = bp_get_object_terms( $group_id, 'bp_group_type' ); + + if ( ! is_wp_error( $types ) ) { + $types = wp_list_pluck( $types, 'name' ); + wp_cache_set( $group_id, $types, 'bp_groups_group_type' ); + } + } + + $type = false; + if ( ! empty( $types ) ) { + if ( $single ) { + $type = end( $types ); + } else { + $type = $types; + } + } + + /** + * Filters a groups's group type(s). + * + * @since 2.6.0 + * + * @param string|array $type Group type. + * @param int $group_id ID of the group. + * @param bool $single Whether to return a single type srting, or an array. + */ + return apply_filters( 'bp_groups_get_group_type', $type, $group_id, $single ); +} + +/** + * Remove type for a group. + * + * @since 2.6.0 + * + * @param int $group ID of the user. + * @param string $group_type Group type. + * @return bool|WP_Error $deleted True on success. False or WP_Error on failure. + */ +function bp_groups_remove_group_type( $group_id, $group_type ) { + if ( empty( $group_type ) || ! bp_groups_get_group_type_object( $group_type ) ) { + return false; + } + + $deleted = bp_remove_object_terms( $group_id, $group_type, 'bp_group_type' ); + + // Bust the case, if the type has been removed. + if ( ! is_wp_error( $deleted ) ) { + wp_cache_delete( $group_id, 'bp_groups_group_type' ); + + /** + * Fires just after a group's group type has been removed. + * + * @since 2.6.0 + * + * @param int $group ID of the group whose group type has been removed. + * @param string $group_type Group type. + */ + do_action( 'bp_groups_remove_group_type', $group_id, $group_type ); + } + + return $deleted; +} + +/** + * Check whether the given group has a certain group type. + * + * @since 2.6.0 + * + * @param int $group_id ID of the group. + * @param srting $group_type Group type. + * @return bool Whether the group has the give group type. + */ +function bp_groups_has_group_type( $group_id, $group_type ) { + if ( empty( $group_type ) || ! bp_groups_get_group_type_object( $group_type ) ) { + return false; + } + + // Get all group's group types. + $types = bp_groups_get_group_type( $group_id, false ); + + if ( ! is_array( $types ) ) { + return false; + } + + return in_array( $group_type, $types ); +} + +/** + * Delete a group's type when the group is deleted. + * + * @since 2.6.0 + * + * @param int $group_id ID of the group. + * @return array $value See {@see bp_groups_set_group_type()}. + */ +function bp_remove_group_type_on_group_delete( $group_id = 0 ) { + bp_groups_set_group_type( $group_id, '' ); +} +add_action( 'groups_delete_group', 'bp_remove_group_type_on_group_delete' ); 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 98aaecd62a231eca556de1d80f70ef0eb9897039..3c72d149a398012e8b07eca5e79e01e6ccf473be 100644 --- a/wp-content/plugins/buddypress/bp-groups/bp-groups-loader.php +++ b/wp-content/plugins/buddypress/bp-groups/bp-groups-loader.php @@ -14,7 +14,9 @@ // Exit if accessed directly. defined( 'ABSPATH' ) || exit; -require dirname( __FILE__ ) . '/classes/class-bp-groups-component.php'; +if ( ! buddypress()->do_autoload ) { + require dirname( __FILE__ ) . '/classes/class-bp-groups-component.php'; +} /** * Bootstrap the Notifications component. 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 fb01e02c5cdabb19c2badd906b0694003a706dc1..cbbc75893cb4592ecc811c25e22c6a5207c80a15 100644 --- a/wp-content/plugins/buddypress/bp-groups/bp-groups-screens.php +++ b/wp-content/plugins/buddypress/bp-groups/bp-groups-screens.php @@ -14,7 +14,9 @@ // Exit if accessed directly. defined( 'ABSPATH' ) || exit; -require dirname( __FILE__ ) . '/classes/class-bp-groups-theme-compat.php'; +if ( ! buddypress()->do_autoload ) { + require dirname( __FILE__ ) . '/classes/class-bp-groups-theme-compat.php'; +} /** * Handle the display of the Groups directory index. @@ -688,7 +690,7 @@ function groups_remove_group_invite() { if ( ! bp_groups_user_can_send_invites( $group_id ) ) { $message = __( 'You are not allowed to send or remove invites', 'buddypress' ); $error = 'error'; - } elseif ( BP_Groups_Member::check_for_membership_request( $friend_id, $group_id ) ) { + } elseif ( groups_check_for_membership_request( $friend_id, $group_id ) ) { $message = __( 'The member requested to join the group', 'buddypress' ); $error = 'error'; } elseif ( ! groups_uninvite_user( $friend_id, $group_id ) ) { @@ -1421,7 +1423,12 @@ function groups_screen_notification_settings() { $group_promo = 'yes'; if ( !$group_request = bp_get_user_meta( bp_displayed_user_id(), 'notification_groups_membership_request', true ) ) - $group_request = 'yes'; ?> + $group_request = 'yes'; + + if ( ! $group_request_completed = bp_get_user_meta( bp_displayed_user_id(), 'notification_membership_request_completed', true ) ) { + $group_request_completed = 'yes'; + } + ?> <table class="notification-settings" id="groups-notification-settings"> <thead> @@ -1437,26 +1444,62 @@ function groups_screen_notification_settings() { <tr id="groups-notification-settings-invitation"> <td></td> <td><?php _ex( 'A member invites you to join a group', 'group settings on notification settings page','buddypress' ) ?></td> - <td class="yes"><input type="radio" name="notifications[notification_groups_invite]" id="notification-groups-invite-yes" value="yes" <?php checked( $group_invite, 'yes', true ) ?>/><label for="notification-groups-invite-yes" class="bp-screen-reader-text"><?php _e( 'Yes, send email', 'buddypress' ); ?></label></td> - <td class="no"><input type="radio" name="notifications[notification_groups_invite]" id="notification-groups-invite-no" value="no" <?php checked( $group_invite, 'no', true ) ?>/><label for="notification-groups-invite-no" class="bp-screen-reader-text"><?php _e( 'No, do not send email', 'buddypress' ); ?></label></td> + <td class="yes"><input type="radio" name="notifications[notification_groups_invite]" id="notification-groups-invite-yes" value="yes" <?php checked( $group_invite, 'yes', true ) ?>/><label for="notification-groups-invite-yes" class="bp-screen-reader-text"><?php + /* translators: accessibility text */ + _e( 'Yes, send email', 'buddypress' ); + ?></label></td> + <td class="no"><input type="radio" name="notifications[notification_groups_invite]" id="notification-groups-invite-no" value="no" <?php checked( $group_invite, 'no', true ) ?>/><label for="notification-groups-invite-no" class="bp-screen-reader-text"><?php + /* translators: accessibility text */ + _e( 'No, do not send email', 'buddypress' ); + ?></label></td> </tr> <tr id="groups-notification-settings-info-updated"> <td></td> <td><?php _ex( 'Group information is updated', 'group settings on notification settings page', 'buddypress' ) ?></td> - <td class="yes"><input type="radio" name="notifications[notification_groups_group_updated]" id="notification-groups-group-updated-yes" value="yes" <?php checked( $group_update, 'yes', true ) ?>/><label for="notification-groups-group-updated-yes" class="bp-screen-reader-text"><?php _e( 'Yes, send email', 'buddypress' ); ?></label></td> - <td class="no"><input type="radio" name="notifications[notification_groups_group_updated]" id="notification-groups-group-updated-no" value="no" <?php checked( $group_update, 'no', true ) ?>/><label for="notification-groups-group-updated-no" class="bp-screen-reader-text"><?php _e( 'No, do not send email', 'buddypress' ); ?></label></td> + <td class="yes"><input type="radio" name="notifications[notification_groups_group_updated]" id="notification-groups-group-updated-yes" value="yes" <?php checked( $group_update, 'yes', true ) ?>/><label for="notification-groups-group-updated-yes" class="bp-screen-reader-text"><?php + /* translators: accessibility text */ + _e( 'Yes, send email', 'buddypress' ); + ?></label></td> + <td class="no"><input type="radio" name="notifications[notification_groups_group_updated]" id="notification-groups-group-updated-no" value="no" <?php checked( $group_update, 'no', true ) ?>/><label for="notification-groups-group-updated-no" class="bp-screen-reader-text"><?php + /* translators: accessibility text */ + _e( 'No, do not send email', 'buddypress' ); + ?></label></td> </tr> <tr id="groups-notification-settings-promoted"> <td></td> <td><?php _ex( 'You are promoted to a group administrator or moderator', 'group settings on notification settings page', 'buddypress' ) ?></td> - <td class="yes"><input type="radio" name="notifications[notification_groups_admin_promotion]" id="notification-groups-admin-promotion-yes" value="yes" <?php checked( $group_promo, 'yes', true ) ?>/><label for="notification-groups-admin-promotion-yes" class="bp-screen-reader-text"><?php _e( 'Yes, send email', 'buddypress' ); ?></label></td> - <td class="no"><input type="radio" name="notifications[notification_groups_admin_promotion]" id="notification-groups-admin-promotion-no" value="no" <?php checked( $group_promo, 'no', true ) ?>/><label for="notification-groups-admin-promotion-no" class="bp-screen-reader-text"><?php _e( 'No, do not send email', 'buddypress' ); ?></label></td> + <td class="yes"><input type="radio" name="notifications[notification_groups_admin_promotion]" id="notification-groups-admin-promotion-yes" value="yes" <?php checked( $group_promo, 'yes', true ) ?>/><label for="notification-groups-admin-promotion-yes" class="bp-screen-reader-text"><?php + /* translators: accessibility text */ + _e( 'Yes, send email', 'buddypress' ); + ?></label></td> + <td class="no"><input type="radio" name="notifications[notification_groups_admin_promotion]" id="notification-groups-admin-promotion-no" value="no" <?php checked( $group_promo, 'no', true ) ?>/><label for="notification-groups-admin-promotion-no" class="bp-screen-reader-text"><?php + /* translators: accessibility text */ + _e( 'No, do not send email', 'buddypress' ); + ?></label></td> </tr> <tr id="groups-notification-settings-request"> <td></td> <td><?php _ex( 'A member requests to join a private group for which you are an admin', 'group settings on notification settings page', 'buddypress' ) ?></td> - <td class="yes"><input type="radio" name="notifications[notification_groups_membership_request]" id="notification-groups-membership-request-yes" value="yes" <?php checked( $group_request, 'yes', true ) ?>/><label for="notification-groups-membership-request-yes" class="bp-screen-reader-text"><?php _e( 'Yes, send email', 'buddypress' ); ?></label></td> - <td class="no"><input type="radio" name="notifications[notification_groups_membership_request]" id="notification-groups-membership-request-no" value="no" <?php checked( $group_request, 'no', true ) ?>/><label for="notification-groups-membership-request-no" class="bp-screen-reader-text"><?php _e( 'No, do not send email', 'buddypress' ); ?></label></td> + <td class="yes"><input type="radio" name="notifications[notification_groups_membership_request]" id="notification-groups-membership-request-yes" value="yes" <?php checked( $group_request, 'yes', true ) ?>/><label for="notification-groups-membership-request-yes" class="bp-screen-reader-text"><?php + /* translators: accessibility text */ + _e( 'Yes, send email', 'buddypress' ); + ?></label></td> + <td class="no"><input type="radio" name="notifications[notification_groups_membership_request]" id="notification-groups-membership-request-no" value="no" <?php checked( $group_request, 'no', true ) ?>/><label for="notification-groups-membership-request-no" class="bp-screen-reader-text"><?php + /* translators: accessibility text */ + _e( 'No, do not send email', 'buddypress' ); + ?></label></td> + </tr> + <tr id="groups-notification-settings-request-completed"> + <td></td> + <td><?php _ex( 'Your request to join a group has been approved or denied', 'group settings on notification settings page', 'buddypress' ) ?></td> + <td class="yes"><input type="radio" name="notifications[notification_membership_request_completed]" id="notification-groups-membership-request-completed-yes" value="yes" <?php checked( $group_request_completed, 'yes', true ) ?>/><label for="notification-groups-membership-request-completed-yes" class="bp-screen-reader-text"><?php + /* translators: accessibility text */ + _e( 'Yes, send email', 'buddypress' ); + ?></label></td> + <td class="no"><input type="radio" name="notifications[notification_membership_request_completed]" id="notification-groups-membership-request-completed-no" value="no" <?php checked( $group_request_completed, 'no', true ) ?>/><label for="notification-groups-membership-request-completed-no" class="bp-screen-reader-text"><?php + /* translators: accessibility text */ + _e( 'No, do not send email', 'buddypress' ); + ?></label></td> </tr> <?php 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 e67c93ee70c3f24967f7a27c13db3af818e331fc..f8f7986894b44ffc66a4e43bfabdb31ce3919edc 100644 --- a/wp-content/plugins/buddypress/bp-groups/bp-groups-template.php +++ b/wp-content/plugins/buddypress/bp-groups/bp-groups-template.php @@ -10,10 +10,12 @@ // Exit if accessed directly. defined( 'ABSPATH' ) || exit; -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'; +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. @@ -100,56 +102,42 @@ function bp_groups_directory_permalink() { * Start the Groups Template Loop. * * @since 1.0.0 + * @since 2.6.0 Added `$group_type`, `$group_type__in`, and `$group_type__not_in` parameters. * * @param array|string $args { * Array of parameters. All items are optional. - * @type string $type Shorthand for certain orderby/ - * order combinations. 'newest', - * 'active', 'popular', 'alphabetical', - * 'random'. When present, will override - * orderby and order params. Default: null. - * @type string $order Sort order. 'ASC' or 'DESC'. - * Default: 'DESC'. - * @type string $orderby Property to sort by. - * 'date_created', 'last_activity', 'total_member_count', - * 'name', 'random'. Default: 'last_activity'. - * @type int $page Page offset of results to return. - * Default: 1 (first page of results). - * @type int $per_page Number of items to return per page - * of results. Default: 20. - * @type int $max Does NOT affect query. May change the - * reported number of total groups found, - * but not the actual number of found - * groups. Default: false. - * @type bool $show_hidden Whether to include hidden groups in - * results. Default: false. - * @type string $page_arg Query argument used for pagination. - * Default: 'grpage'. - * @type int $user_id If provided, results will be limited - * to groups of which the specified user - * is a member. - * Default: value of bp_displayed_user_id(). - * @type string $slug If provided, only the group with the - * matching slug will be returned. - * Default: false. - * @type string $search_terms If provided, only groups whose names or - * descriptions match the search terms will - * be returned. Default: value of - * `$_REQUEST['groups_search']` or - * `$_REQUEST['s']`, if present. Otherwise false. - * @type array $meta_query An array of meta_query conditions. - * See {@link WP_Meta_Query::queries} for description. - * @type array|string $include Array or comma-separated list of - * group IDs. Results will be limited - * to groups within the list. Default: false. - * @type bool $populate_extras Whether to fetch additional information - * (such as member count) about groups. - * Default: true. - * @type array|string $exclude Array or comma-separated list of group IDs. - * Results will exclude the listed groups. - * Default: false. - * @type bool $update_meta_cache Whether to fetch groupmeta for queried groups. - * Default: true. + * @type string $type Shorthand for certain orderby/order combinations. 'newest', 'active', + * 'popular', 'alphabetical', 'random'. When present, will override + * orderby and order params. Default: null. + * @type string $order Sort order. 'ASC' or 'DESC'. Default: 'DESC'. + * @type string $orderby Property to sort by. 'date_created', 'last_activity', + * 'total_member_count', 'name', 'random'. Default: 'last_activity'. + * @type int $page Page offset of results to return. Default: 1 (first page of results). + * @type int $per_page Number of items to return per page of results. Default: 20. + * @type int $max Does NOT affect query. May change the reported number of total groups + * found, but not the actual number of found groups. Default: false. + * @type bool $show_hidden Whether to include hidden groups in results. Default: false. + * @type string $page_arg Query argument used for pagination. Default: 'grpage'. + * @type int $user_id If provided, results will be limited to groups of which the specified + * user is a member. Default: value of bp_displayed_user_id(). + * @type string $slug If provided, only the group with the matching slug will be returned. + * Default: false. + * @type string $search_terms If provided, only groups whose names or descriptions match the search + * terms will be returned. Default: value of `$_REQUEST['groups_search']` or + * `$_REQUEST['s']`, if present. Otherwise false. + * @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 + * excluded from results. + * @type array $meta_query An array of meta_query conditions. + * See {@link WP_Meta_Query::queries} for description. + * @type array|string $include Array or comma-separated list of group IDs. Results will be limited + * to groups within the list. Default: false. + * @type bool $populate_extras Whether to fetch additional information (such as member count) + * about groups. Default: true. + * @type array|string $exclude Array or comma-separated list of group IDs. Results will exclude + * the listed groups. Default: false. + * @type bool $update_meta_cache Whether to fetch groupmeta for queried groups. Default: true. * } * @return bool True if there are groups to display that match the params */ @@ -193,42 +181,48 @@ function bp_has_groups( $args = '' ) { // Parse defaults and requested arguments. $r = bp_parse_args( $args, array( - 'type' => $type, - 'order' => 'DESC', - 'orderby' => 'last_activity', - 'page' => 1, - 'per_page' => 20, - 'max' => false, - 'show_hidden' => false, - 'page_arg' => 'grpage', - 'user_id' => bp_displayed_user_id(), - 'slug' => $slug, - 'search_terms' => $search_terms, - 'meta_query' => false, - 'include' => false, - 'exclude' => false, - 'populate_extras' => true, - 'update_meta_cache' => true, + 'type' => $type, + 'order' => 'DESC', + 'orderby' => 'last_activity', + 'page' => 1, + 'per_page' => 20, + 'max' => false, + 'show_hidden' => false, + 'page_arg' => 'grpage', + 'user_id' => bp_displayed_user_id(), + 'slug' => $slug, + 'search_terms' => $search_terms, + 'group_type' => '', + 'group_type__in' => '', + 'group_type__not_in' => '', + 'meta_query' => false, + 'include' => false, + 'exclude' => false, + 'populate_extras' => true, + 'update_meta_cache' => true, ), 'has_groups' ); // Setup the Groups template global. $groups_template = new BP_Groups_Template( array( - 'type' => $r['type'], - 'order' => $r['order'], - 'orderby' => $r['orderby'], - 'page' => (int) $r['page'], - 'per_page' => (int) $r['per_page'], - 'max' => (int) $r['max'], - 'show_hidden' => $r['show_hidden'], - 'page_arg' => $r['page_arg'], - 'user_id' => (int) $r['user_id'], - 'slug' => $r['slug'], - 'search_terms' => $r['search_terms'], - 'meta_query' => $r['meta_query'], - 'include' => $r['include'], - 'exclude' => $r['exclude'], - 'populate_extras' => (bool) $r['populate_extras'], - 'update_meta_cache' => (bool) $r['update_meta_cache'], + 'type' => $r['type'], + 'order' => $r['order'], + 'orderby' => $r['orderby'], + 'page' => (int) $r['page'], + 'per_page' => (int) $r['per_page'], + 'max' => (int) $r['max'], + 'show_hidden' => $r['show_hidden'], + 'page_arg' => $r['page_arg'], + 'user_id' => (int) $r['user_id'], + 'slug' => $r['slug'], + 'search_terms' => $r['search_terms'], + 'group_type' => $r['group_type'], + 'group_type__in' => $r['group_type__in'], + 'group_type__not_in' => $r['group_type__not_in'], + 'meta_query' => $r['meta_query'], + 'include' => $r['include'], + 'exclude' => $r['exclude'], + 'populate_extras' => (bool) $r['populate_extras'], + 'update_meta_cache' => (bool) $r['update_meta_cache'], ) ); /** @@ -597,7 +591,7 @@ function bp_group_avatar( $args = '' ) { 'css_id' => $r['id'], 'class' => $r['class'], 'width' => $r['width'], - 'height' => $r['height'] + 'height' => $r['height'], ) ); // If No avatar found, provide some backwards compatibility. @@ -3420,8 +3414,6 @@ function bp_group_create_nav_item() { * * @since 2.2.0 * - * @uses bp_group_create_nav_item() to output the create a Group nav item. - * * @return string HTML Output */ function bp_group_backcompat_create_nav_item() { @@ -3628,6 +3620,12 @@ function bp_group_has_members( $args = '' ) { $exclude_admins_mods = 0; } + $search_terms_default = null; + $search_query_arg = bp_core_get_component_search_query_arg( 'members' ); + if ( ! empty( $_REQUEST[ $search_query_arg ] ) ) { + $search_terms_default = stripslashes( $_REQUEST[ $search_query_arg ] ); + } + $r = wp_parse_args( $args, array( 'group_id' => bp_get_current_group_id(), 'page' => 1, @@ -3637,7 +3635,7 @@ function bp_group_has_members( $args = '' ) { 'exclude_admins_mods' => $exclude_admins_mods, 'exclude_banned' => 1, 'group_role' => false, - 'search_terms' => null, + 'search_terms' => $search_terms_default, 'type' => 'last_joined', ) ); @@ -4188,6 +4186,7 @@ function bp_groups_front_template_part() { * Locate a custom group front template if it exists. * * @since 2.4.0 + * @since 2.6.0 Adds the Group Type to the front template hierarchy. * * @param BP_Groups_Group|null $group Optional. Falls back to current group if not passed. * @return string|bool Path to front template on success; boolean false on failure. @@ -4205,6 +4204,25 @@ function bp_groups_get_front_template( $group = null ) { return $group->front_template; } + $template_names = array( + 'groups/single/front-id-' . sanitize_file_name( $group->id ) . '.php', + 'groups/single/front-slug-' . sanitize_file_name( $group->slug ) . '.php', + ); + + if ( bp_groups_get_group_types() ) { + $group_type = bp_groups_get_group_type( $group->id ); + if ( ! $group_type ) { + $group_type = 'none'; + } + + $template_names[] = 'groups/single/front-group-type-' . sanitize_file_name( $group_type ) . '.php'; + } + + $template_names = array_merge( $template_names, array( + 'groups/single/front-status-' . sanitize_file_name( $group->status ) . '.php', + 'groups/single/front.php' + ) ); + /** * Filters the hierarchy of group front templates corresponding to a specific group. * @@ -4214,14 +4232,7 @@ function bp_groups_get_front_template( $group = null ) { * @param array $template_names Array of template paths. * @param object $group Group object. */ - $template_names = apply_filters( 'bp_groups_get_front_template', array( - 'groups/single/front-id-' . sanitize_file_name( $group->id ) . '.php', - 'groups/single/front-slug-' . sanitize_file_name( $group->slug ) . '.php', - 'groups/single/front-status-' . sanitize_file_name( $group->status ) . '.php', - 'groups/single/front.php' - ) ); - - return bp_locate_template( $template_names, false, true ); + return bp_locate_template( apply_filters( 'bp_groups_get_front_template', $template_names, $group ), false, true ); } /** @@ -4304,9 +4315,6 @@ function bp_groups_members_filter() { * * @since 1.5.0 * - * @uses apply_filters() To call 'bp_user_can_create_groups'. - * @uses bp_get_option() To retrieve value of 'bp_restrict_group_creation'. Defaults to 0. - * @uses bp_current_user_can() To determine if current user if super admin. * @return bool True if user can create groups. False otherwise. */ function bp_user_can_create_groups() { @@ -4703,7 +4711,6 @@ function bp_new_group_avatar( $args = '' ) { 'class' => 'avatar', 'id' => 'avatar-crop-preview', 'alt' => __( 'Group photo', 'buddypress' ), - 'no_grav' => false ), 'get_new_group_avatar' ); // Merge parsed arguments with object specific data. @@ -4788,7 +4795,6 @@ function bp_groups_current_create_step() { * * @since 1.6.0 * - * @uses apply_filters() Filter bp_get_groups_current_create_step to modify. * * @return string $current_create_step */ @@ -5068,7 +5074,6 @@ function bp_group_current_admin_tab() { * * @since 1.6.0 * - * @uses apply_filters() Filter bp_get_current_group_admin_tab to modify return value. * * @return string $tab The current tab's slug. */ @@ -5096,8 +5101,6 @@ function bp_group_current_admin_tab() { * * @since 1.0.0 * - * @uses bp_get_group_current_avatar() to get the avatar of the current group. - * * @param string $type Thumb or full. */ function bp_group_current_avatar( $type = 'thumb' ) { @@ -5146,14 +5149,17 @@ function bp_get_group_has_avatar( $group_id = false ) { $group_id = bp_get_current_group_id(); } - $group_avatar = bp_core_fetch_avatar( array( + $avatar_args = array( 'item_id' => $group_id, 'object' => 'group', 'no_grav' => true, 'html' => false, - ) ); + 'type' => 'thumb', + ); - if ( bp_core_avatar_default( 'local' ) === $group_avatar ) { + $group_avatar = bp_core_fetch_avatar( $avatar_args ); + + if ( bp_core_avatar_default( 'local', $avatar_args ) === $group_avatar ) { return false; } @@ -5791,7 +5797,6 @@ function bp_current_group_id() { * Returns the ID of the current group. * * @since 1.5.0 - * @uses apply_filters() Filter bp_get_current_group_id to modify this output. * * @return int $current_group_id The id of the current group, if there is one. */ @@ -5822,7 +5827,6 @@ function bp_current_group_slug() { * Returns the slug of the current group. * * @since 1.5.0 - * @uses apply_filters() Filter bp_get_current_group_slug to modify this output. * * @return string $current_group_slug The slug of the current group, if there is one. */ @@ -5853,26 +5857,22 @@ function bp_current_group_name() { * Returns the name of the current group. * * @since 1.5.0 - * @uses apply_filters() Filter bp_get_current_group_name to modify this output. * * @return string The name of the current group, if there is one. */ function bp_get_current_group_name() { - $current_group = groups_get_current_group(); - $current_group_name = isset( $current_group->name ) ? $current_group->name : ''; - - /** This filter is documented in bp-groups/bp-groups-template.php */ - $name = apply_filters( 'bp_get_group_name', $current_group_name ); + $current_group = groups_get_current_group(); + $current_name = bp_get_group_name( $current_group ); /** * Filters the name of the current group. * * @since 1.2.0 * - * @param string $name Name of the current group. + * @param string $current_name Name of the current group. * @param object $current_group Instance holding the current group. */ - return apply_filters( 'bp_get_current_group_name', $name, $current_group ); + return apply_filters( 'bp_get_current_group_name', $current_name, $current_group ); } /** @@ -5887,7 +5887,6 @@ function bp_current_group_description() { * Returns the description of the current group. * * @since 2.1.0 - * @uses apply_filters() Filter bp_get_current_group_description to modify * this output. * * @return string The description of the current group, if there is one. @@ -5993,7 +5992,6 @@ function bp_groups_action_link( $action = '', $query_args = '', $nonce = false ) * * @param array|string $args before|after|user_id * - * @uses bp_groups_get_profile_stats() to get the stats. */ function bp_groups_profile_stats( $args = '' ) { echo bp_groups_get_profile_stats( $args ); 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 a6d801c89f8e3363d425d1ed704012b8d9dc9230..46b7daf4086d81a75876161e7cf852e7a5e7a291 100644 --- a/wp-content/plugins/buddypress/bp-groups/bp-groups-widgets.php +++ b/wp-content/plugins/buddypress/bp-groups/bp-groups-widgets.php @@ -10,7 +10,9 @@ // Exit if accessed directly. defined( 'ABSPATH' ) || exit; -require dirname( __FILE__ ) . '/classes/class-bp-groups-widget.php'; +if ( ! buddypress()->do_autoload ) { + require dirname( __FILE__ ) . '/classes/class-bp-groups-widget.php'; +} /** * Register widgets for groups component. 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 5709b0b8648f0c2abb6f6057f0b9914a9a51a8cc..c0ae5df83a26aa7919e77f05f26ce4f5bf68d56f 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 @@ -737,7 +737,7 @@ class BP_Group_Extension { 'screen_function' => array( &$this, '_display_hook' ), 'user_has_access' => $user_can_see_nav_item, 'no_access_url' => $group_permalink, - ) ); + ), 'groups' ); } // If the user can visit the screen, we register it. @@ -752,7 +752,7 @@ class BP_Group_Extension { 'screen_function' => array( &$this, '_display_hook' ), 'user_has_access' => $user_can_visit, 'no_access_url' => $group_permalink, - ) ); + ), 'groups' ); // When we are viewing the extension display page, set the title and options title. if ( bp_is_current_action( $this->slug ) ) { @@ -967,7 +967,7 @@ class BP_Group_Extension { } // Add the tab to the manage navigation. - bp_core_new_subnav_item( $subnav_args ); + bp_core_new_subnav_item( $subnav_args, 'groups' ); // Catch the edit screen and forward it to the plugin template. if ( bp_is_groups_component() && bp_is_current_action( 'admin' ) && bp_is_action_variable( $screen['slug'], 0 ) ) { 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 f2196294087689e0cd10e797a0c6d8456ead0611..93bb9b7be53ebe892ccd6931266d40c9eedaf779 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 @@ -74,6 +74,16 @@ class BP_Groups_Component extends BP_Component { */ public $valid_status; + /** + * Group types. + * + * @see bp_groups_register_group_type() + * + * @since 2.6.0 + * @var array + */ + public $types = array(); + /** * Start the groups component creation process. * @@ -107,7 +117,6 @@ class BP_Groups_Component extends BP_Component { 'actions', 'filters', 'screens', - 'classes', 'widgets', 'activity', 'template', @@ -116,6 +125,10 @@ class BP_Groups_Component extends BP_Component { 'notifications' ); + if ( ! buddypress()->do_autoload ) { + $includes[] = 'classes'; + } + if ( is_admin() ) { $includes[] = 'admin'; } @@ -250,6 +263,9 @@ class BP_Groups_Component extends BP_Component { // Check once if the current group has a custom front template. $this->current_group->front_template = bp_groups_get_front_template( $this->current_group ); + // Initialize the nav for the groups component. + $this->nav = new BP_Core_Nav( $this->current_group->id ); + // Set current_group to 0 to prevent debug errors. } else { $this->current_group = 0; @@ -432,8 +448,17 @@ class BP_Groups_Component extends BP_Component { // Only grab count if we're on a user page. if ( bp_is_user() ) { - $class = ( 0 === groups_total_groups_for_user( bp_displayed_user_id() ) ) ? 'no-count' : 'count'; - $nav_name = sprintf( _x( 'Groups <span class="%s">%s</span>', 'Group screen nav with counter', 'buddypress' ), esc_attr( $class ), bp_get_total_group_count_for_user() ); + $class = ( 0 === groups_total_groups_for_user( bp_displayed_user_id() ) ) ? 'no-count' : 'count'; + + $nav_name = sprintf( + /* translators: %s: Group count for the current user */ + _x( 'Groups %s', 'Group screen nav with counter', 'buddypress' ), + sprintf( + '<span class="%s">%s</span>', + esc_attr( $class ), + bp_get_total_group_count_for_user() + ) + ); } else { $nav_name = _x( 'Groups', 'Group screen nav without counter', 'buddypress' ); } @@ -484,15 +509,18 @@ class BP_Groups_Component extends BP_Component { // Reset sub nav. $sub_nav = array(); - // Add 'Groups' to the main navigation. - $main_nav = array( + /* + * The top-level Groups item is called 'Memberships' for legacy reasons. + * It does not appear in the interface. + */ + bp_core_new_nav_item( array( 'name' => __( 'Memberships', 'buddypress' ), 'slug' => $this->current_group->slug, 'position' => -1, // Do not show in BuddyBar. 'screen_function' => 'groups_screen_group_home', 'default_subnav_slug' => $this->default_extension, 'item_css_id' => $this->id - ); + ), 'groups' ); $group_link = bp_get_group_permalink( $this->current_group ); @@ -663,7 +691,9 @@ class BP_Groups_Component extends BP_Component { ), $default_params ); } - parent::setup_nav( $main_nav, $sub_nav ); + foreach ( $sub_nav as $nav ) { + bp_core_new_subnav_item( $nav, 'groups' ); + } } if ( isset( $this->current_group->user_has_access ) ) { @@ -707,8 +737,17 @@ class BP_Groups_Component extends BP_Component { $pending = _x( 'No Pending Invites', 'My Account Groups sub nav', 'buddypress' ); if ( ! empty( $count['total'] ) ) { - $title = sprintf( _x( 'Groups <span class="count">%s</span>', 'My Account Groups nav', 'buddypress' ), bp_core_number_format( $count ) ); - $pending = sprintf( _x( 'Pending Invites <span class="count">%s</span>', 'My Account Groups sub nav', 'buddypress' ), bp_core_number_format( $count ) ); + $title = sprintf( + /* translators: %s: Group invitation count for the current user */ + _x( 'Groups %s', 'My Account Groups nav', 'buddypress' ), + '<span class="count">' . bp_core_number_format( $count ) . '</span>' + ); + + $pending = sprintf( + /* translators: %s: Group invitation count for the current user */ + _x( 'Pending Invites %s', 'My Account Groups sub nav', 'buddypress' ), + '<span class="count">' . bp_core_number_format( $count ) . '</span>' + ); } // Add the "My Account" sub menus. @@ -806,9 +845,23 @@ class BP_Groups_Component extends BP_Component { 'bp_groups', 'bp_group_admins', 'bp_group_invite_count', - 'group_meta' + 'group_meta', + 'bp_groups_memberships', + 'bp_groups_memberships_for_user', ) ); parent::setup_cache_groups(); } + + /** + * Set up taxonomies. + * + * @since 2.6.0 + */ + public function register_taxonomies() { + // Group Type. + register_taxonomy( 'bp_group_type', 'bp_group', array( + 'public' => false, + ) ); + } } 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 8d29b0ec933c0a5295151639efc2b8bc9408bc88..1acac6560a61f4f443b40b883a3dad2286439a23 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 @@ -245,9 +245,9 @@ class BP_Groups_Group { // Set user-specific data. $user_id = bp_loggedin_user_id(); - $this->is_member = BP_Groups_Member::check_is_member( $user_id, $this->id ); - $this->is_invited = BP_Groups_Member::check_has_invite( $user_id, $this->id ); - $this->is_pending = BP_Groups_Member::check_for_membership_request( $user_id, $this->id ); + $this->is_member = groups_is_user_member( $user_id, $this->id ); + $this->is_invited = groups_check_user_has_invite( $user_id, $this->id ); + $this->is_pending = groups_check_for_membership_request( $user_id, $this->id ); // If this is a private or hidden group, does the current user have access? if ( ( 'private' === $this->status ) || ( 'hidden' === $this->status ) ) { @@ -683,39 +683,40 @@ class BP_Groups_Group { * parameter format. * * @since 1.6.0 + * @since 2.6.0 Added `$group_type`, `$group_type__in`, and `$group_type__not_in` parameters. * * @param array $args { * Array of parameters. All items are optional. - * @type string $type Optional. Shorthand for certain orderby/ - * order combinations. 'newest', 'active', 'popular', - * 'alphabetical', 'random'. When present, will override - * orderby and order params. Default: null. - * @type string $orderby Optional. Property to sort by. - * 'date_created', 'last_activity', 'total_member_count', - * 'name', 'random'. Default: 'date_created'. - * @type string $order Optional. Sort order. 'ASC' or 'DESC'. - * Default: 'DESC'. - * @type int $per_page Optional. Number of items to return per page - * of results. Default: null (no limit). - * @type int $page Optional. Page offset of results to return. - * 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 array $meta_query Optional. An array of meta_query conditions. - * See {@link WP_Meta_Query::queries} for description. - * @type array|string $value Optional. Array or comma-separated list of group IDs. - * Results will be limited to groups within the - * list. Default: false. - * @type bool $populate_extras Whether to fetch additional information - * (such as member count) about groups. Default: true. - * @type array|string $exclude Optional. Array or comma-separated list of group IDs. - * Results will exclude the listed groups. Default: false. - * @type bool $update_meta_cache Whether to pre-fetch groupmeta for - * the returned groups. Default: true. - * @type bool $show_hidden Whether to include hidden groups in results. Default: false. + * @type string $type Optional. Shorthand for certain orderby/order combinations. + * 'newest', 'active', 'popular', 'alphabetical', 'random'. + * When present, will override orderby and order params. + * Default: null. + * @type string $orderby Optional. Property to sort by. 'date_created', 'last_activity', + * 'total_member_count', 'name', 'random'. Default: 'date_created'. + * @type string $order Optional. Sort order. 'ASC' or 'DESC'. Default: 'DESC'. + * @type int $per_page Optional. Number of items to return per page of results. + * Default: null (no limit). + * @type int $page Optional. Page offset of results to return. + * 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 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 + * excluded from results. + * @type array $meta_query Optional. An array of meta_query conditions. + * See {@link WP_Meta_Query::queries} for description. + * @type array|string $value Optional. Array or comma-separated list of group IDs. Results + * will be limited to groups within the list. Default: false. + * @type bool $populate_extras Whether to fetch additional information + * (such as member count) about groups. Default: true. + * @type array|string $exclude Optional. Array or comma-separated list of group IDs. + * Results will exclude the listed groups. Default: false. + * @type bool $update_meta_cache Whether to pre-fetch groupmeta for the returned groups. + * Default: true. + * @type bool $show_hidden Whether to include hidden groups in results. Default: false. * } * @return array { * @type array $groups Array of group objects returned by the @@ -748,19 +749,22 @@ class BP_Groups_Group { } $defaults = array( - 'type' => null, - 'orderby' => 'date_created', - 'order' => 'DESC', - 'per_page' => null, - 'page' => null, - 'user_id' => 0, - 'search_terms' => false, - 'meta_query' => false, - 'include' => false, - 'populate_extras' => true, - 'update_meta_cache' => true, - 'exclude' => false, - 'show_hidden' => false, + 'type' => null, + 'orderby' => 'date_created', + 'order' => 'DESC', + 'per_page' => null, + 'page' => null, + 'user_id' => 0, + 'search_terms' => false, + 'group_type' => '', + 'group_type__in' => '', + 'group_type__not_in' => '', + 'meta_query' => false, + 'include' => false, + 'populate_extras' => true, + 'update_meta_cache' => true, + 'exclude' => false, + 'show_hidden' => false, ); $r = wp_parse_args( $args, $defaults ); @@ -804,6 +808,24 @@ class BP_Groups_Group { $sql['meta'] = $meta_query_sql['where']; } + // Only use 'group_type__in', if 'group_type' is not set. + if ( empty( $r['group_type'] ) && ! empty( $r['group_type__in']) ) { + $r['group_type'] = $r['group_type__in']; + } + + // Group types to exclude. This has priority over inclusions. + if ( ! empty( $r['group_type__not_in'] ) ) { + $group_type_clause = self::get_sql_clause_for_group_types( $r['group_type__not_in'], 'NOT IN' ); + + // Group types to include. + } elseif ( ! empty( $r['group_type'] ) ) { + $group_type_clause = self::get_sql_clause_for_group_types( $r['group_type'], 'IN' ); + } + + if ( ! empty( $group_type_clause ) ) { + $sql['group_type'] = $group_type_clause; + } + if ( ! empty( $r['user_id'] ) ) { $sql['user'] = $wpdb->prepare( " AND m.user_id = %d AND m.is_confirmed = 1 AND m.is_banned = 0", $r['user_id'] ); } @@ -915,6 +937,11 @@ class BP_Groups_Group { $total_sql['where'][] = $meta_query_clause; } + // Trim leading 'AND' to match `$total_sql` query style. + if ( ! empty( $group_type_clause ) ) { + $total_sql['where'][] = preg_replace( '/^\s*AND\s*/', '', $group_type_clause ); + } + // Already escaped in the paginated results block. if ( ! empty( $include ) ) { $total_sql['where'][] = "g.id IN ({$include})"; @@ -1395,68 +1422,13 @@ class BP_Groups_Group { * @return array $paged_groups */ public static function get_group_extras( &$paged_groups, &$group_ids, $type = false ) { - global $wpdb; - - if ( empty( $group_ids ) ) - return $paged_groups; - - $bp = buddypress(); - - // Sanitize group IDs. - $group_ids = implode( ',', wp_parse_id_list( $group_ids ) ); - - // Fetch the logged-in user's status within each group. - if ( is_user_logged_in() ) { - $user_status_results = $wpdb->get_results( $wpdb->prepare( "SELECT group_id, is_confirmed, invite_sent FROM {$bp->groups->table_name_members} WHERE user_id = %d AND group_id IN ( {$group_ids} ) AND is_banned = 0", bp_loggedin_user_id() ) ); - } else { - $user_status_results = array(); - } - - // Reindex. - $user_status = array(); - foreach ( $user_status_results as $user_status_result ) { - $user_status[ $user_status_result->group_id ] = $user_status_result; - } - - for ( $i = 0, $count = count( $paged_groups ); $i < $count; ++$i ) { - $is_member = $is_invited = $is_pending = '0'; - $gid = $paged_groups[ $i ]->id; - - if ( isset( $user_status[ $gid ] ) ) { - - // The is_confirmed means the user is a member. - if ( $user_status[ $gid ]->is_confirmed ) { - $is_member = '1'; - - // The invite_sent means the user has been invited. - } elseif ( $user_status[ $gid ]->invite_sent ) { - $is_invited = '1'; + $user_id = bp_loggedin_user_id(); - // User has sent request, but has not been confirmed. - } else { - $is_pending = '1'; - } - } - - $paged_groups[ $i ]->is_member = $is_member; - $paged_groups[ $i ]->is_invited = $is_invited; - $paged_groups[ $i ]->is_pending = $is_pending; - } - - if ( is_user_logged_in() ) { - $user_banned = $wpdb->get_col( $wpdb->prepare( "SELECT group_id FROM {$bp->groups->table_name_members} WHERE is_banned = 1 AND user_id = %d AND group_id IN ( {$group_ids} )", bp_loggedin_user_id() ) ); - } else { - $user_banned = array(); - } - - for ( $i = 0, $count = count( $paged_groups ); $i < $count; ++$i ) { - $paged_groups[$i]->is_banned = false; - - foreach ( (array) $user_banned as $group_id ) { - if ( $group_id == $paged_groups[$i]->id ) { - $paged_groups[$i]->is_banned = true; - } - } + foreach ( $paged_groups as &$group ) { + $group->is_member = groups_is_user_member( $user_id, $group->id ) ? '1' : '0'; + $group->is_invited = groups_is_user_invited( $user_id, $group->id ) ? '1' : '0'; + $group->is_pending = groups_is_user_pending( $user_id, $group->id ) ? '1' : '0'; + $group->is_banned = (bool) groups_is_user_banned( $user_id, $group->id ); } return $paged_groups; @@ -1624,4 +1596,73 @@ class BP_Groups_Group { return $ids; } + + /** + * Get SQL clause for group type(s). + * + * @since 2.6.0 + * + * @param string|array $group_types Group type(s). + * @param string $operator 'IN' or 'NOT IN'. + * @return string $clause SQL clause. + */ + protected static function get_sql_clause_for_group_types( $group_types, $operator ) { + global $wpdb; + + // Sanitize operator. + if ( 'NOT IN' !== $operator ) { + $operator = 'IN'; + } + + // Parse and sanitize types. + if ( ! is_array( $group_types ) ) { + $group_types = preg_split( '/[,\s+]/', $group_types ); + } + + $types = array(); + foreach ( $group_types as $gt ) { + if ( bp_groups_get_group_type_object( $gt ) ) { + $types[] = $gt; + } + } + + $tax_query = new WP_Tax_Query( array( + array( + 'taxonomy' => 'bp_group_type', + 'field' => 'name', + 'operator' => $operator, + 'terms' => $types, + ), + ) ); + + $site_id = bp_get_taxonomy_term_site_id( 'bp_group_type' ); + $switched = false; + if ( $site_id !== get_current_blog_id() ) { + switch_to_blog( $site_id ); + $switched = true; + } + + $sql_clauses = $tax_query->get_sql( 'g', 'id' ); + + $clause = ''; + + // The no_results clauses are the same between IN and NOT IN. + if ( false !== strpos( $sql_clauses['where'], '0 = 1' ) ) { + $clause = $sql_clauses['where']; + + // The tax_query clause generated for NOT IN can be used almost as-is. + } elseif ( 'NOT IN' === $operator ) { + $clause = $sql_clauses['where']; + + // IN clauses must be converted to a subquery. + } elseif ( preg_match( '/' . $wpdb->term_relationships . '\.term_taxonomy_id IN \([0-9, ]+\)/', $sql_clauses['where'], $matches ) ) { + $clause = " AND g.id IN ( SELECT object_id FROM $wpdb->term_relationships WHERE {$matches[0]} )"; + } + + if ( $switched ) { + restore_current_blog(); + } + + return $clause; + } } 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 d2b860d332244276664dd25884a448732ba8a60b..7cca49d44a982afb295cf3abf9badec2b69a931a 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 @@ -216,7 +216,10 @@ class BP_Groups_List_Table extends WP_List_Table { public function display() { $this->display_tablenav( 'top' ); ?> - <h2 class="screen-reader-text"><?php _e( 'Groups list', 'buddypress' ); ?></h2> + <h2 class="screen-reader-text"><?php + /* translators: accessibility text */ + _e( 'Groups list', 'buddypress' ); + ?></h2> <table class="wp-list-table <?php echo implode( ' ', $this->get_table_classes() ); ?>" cellspacing="0"> <thead> @@ -225,15 +228,15 @@ class BP_Groups_List_Table extends WP_List_Table { </tr> </thead> + <tbody id="the-comment-list"> + <?php $this->display_rows_or_placeholder(); ?> + </tbody> + <tfoot> <tr> <?php $this->print_column_headers( false ); ?> </tr> </tfoot> - - <tbody id="the-comment-list"> - <?php $this->display_rows_or_placeholder(); ?> - </tbody> </table> <?php @@ -284,7 +287,10 @@ class BP_Groups_List_Table extends WP_List_Table { public function get_views() { $url_base = bp_get_admin_url( 'admin.php?page=bp-groups' ); ?> - <h2 class="screen-reader-text"><?php _e( 'Filter groups list', 'buddypress' ); ?></h2> + <h2 class="screen-reader-text"><?php + /* translators: accessibility text */ + _e( 'Filter groups list', 'buddypress' ); + ?></h2> <ul class="subsubsub"> <li class="all"><a href="<?php echo esc_url( $url_base ); ?>" class="<?php if ( 'all' == $this->view ) echo 'current'; ?>"><?php _e( 'All', 'buddypress' ); ?></a> |</li> @@ -422,6 +428,7 @@ class BP_Groups_List_Table extends WP_List_Table { * @param array $item A singular item (one full row). */ public function column_cb( $item = array() ) { + /* translators: accessibility text */ printf( '<label class="screen-reader-text" for="gid-%1$d">' . __( 'Select group %1$d', 'buddypress' ) . '</label><input type="checkbox" name="gid[]" value="%1$d" id="gid-%1$d" />', $item['id'] ); } 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 68d315ef6af74234577373e3cdc925eea15183fa..bfb1a765a0fcbfc59c3066c76659b291a7371ef0 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 @@ -821,6 +821,16 @@ class BP_Groups_Member { return false; } + /** + * Fires before a group invitation is deleted. + * + * @since 2.6.0 + * + * @param int $user_id ID of the user. + * @param int $group_id ID of the group. + */ + do_action( 'bp_groups_member_before_delete_invite', $user_id, $group_id ); + $table_name = buddypress()->groups->table_name_members; $sql = "DELETE FROM {$table_name} @@ -1052,6 +1062,23 @@ class BP_Groups_Member { return $wpdb->get_results( $wpdb->prepare( "SELECT user_id, date_modified FROM {$bp->groups->table_name_members} WHERE group_id = %d AND is_mod = 1 AND is_banned = 0", $group_id ) ); } + /** + * Get group membership objects by ID (or an array of IDs). + * + * @since 2.6.0 + * + * @param int|string|array $membership_ids Single membership ID or comma-separated/array list of membership IDs. + * @return array + */ + public static function get_memberships_by_id( $membership_ids ) { + global $wpdb; + + $bp = buddypress(); + + $membership_ids = implode( ',', wp_parse_id_list( $membership_ids ) ); + return $wpdb->get_results( "SELECT * FROM {$bp->groups->table_name_members} WHERE id IN ({$membership_ids})" ); + } + /** * Get the IDs users with outstanding membership requests to the group. * @@ -1160,6 +1187,24 @@ class BP_Groups_Member { return array( 'members' => $members, 'count' => $total_member_count ); } + /** + * Get all membership IDs for a user. + * + * @since 2.6.0 + * + * @param int $user_id ID of the user. + * @return array + */ + public static function get_membership_ids_for_user( $user_id ) { + global $wpdb; + + $bp = buddypress(); + + $group_ids = $wpdb->get_col( $wpdb->prepare( "SELECT id FROM {$bp->groups->table_name_members} WHERE user_id = %d ORDER BY id ASC", $user_id ) ); + + return $group_ids; + } + /** * Delete all memberships for a given group. * 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 cf3f4621a527b6d80ca45be862b33b5dcaef198e..043d8f4b57acec652c5040d552f4c8b7878b7389 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 @@ -153,22 +153,25 @@ class BP_Groups_Template { } $defaults = array( - 'page' => 1, - 'per_page' => 20, - 'page_arg' => 'grpage', - 'max' => false, - 'type' => 'active', - 'order' => 'DESC', - 'orderby' => 'date_created', - 'show_hidden' => false, - 'user_id' => 0, - 'slug' => false, - 'include' => false, - 'exclude' => false, - 'search_terms' => '', - 'meta_query' => false, - 'populate_extras' => true, - 'update_meta_cache' => true, + 'page' => 1, + 'per_page' => 20, + 'page_arg' => 'grpage', + 'max' => false, + 'type' => 'active', + 'order' => 'DESC', + 'orderby' => 'date_created', + 'show_hidden' => false, + 'user_id' => 0, + 'slug' => false, + 'include' => false, + 'exclude' => false, + 'search_terms' => '', + 'group_type' => '', + 'group_type__in' => '', + 'group_type__not_in' => '', + 'meta_query' => false, + 'populate_extras' => true, + 'update_meta_cache' => true, ); $r = wp_parse_args( $args, $defaults ); @@ -210,19 +213,22 @@ class BP_Groups_Template { } else { $this->groups = groups_get_groups( array( - 'type' => $type, - 'order' => $order, - 'orderby' => $orderby, - 'per_page' => $this->pag_num, - 'page' => $this->pag_page, - 'user_id' => $user_id, - 'search_terms' => $search_terms, - 'meta_query' => $meta_query, - 'include' => $include, - 'exclude' => $exclude, - 'populate_extras' => $populate_extras, - 'update_meta_cache' => $update_meta_cache, - 'show_hidden' => $show_hidden + 'type' => $type, + 'order' => $order, + 'orderby' => $orderby, + 'per_page' => $this->pag_num, + 'page' => $this->pag_page, + 'user_id' => $user_id, + 'search_terms' => $search_terms, + 'meta_query' => $meta_query, + 'group_type' => $group_type, + 'group_type__in' => $group_type__in, + 'group_type__not_in' => $group_type__not_in, + 'include' => $include, + 'exclude' => $exclude, + 'populate_extras' => $populate_extras, + 'update_meta_cache' => $update_meta_cache, + 'show_hidden' => $show_hidden, ) ); } 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 e7ff6e026085b0aa3185ed0f6b52db3cf03dc2f0..e25cc83c8eea76dbfd37643c0ed6e5eca23605be 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,17 +24,27 @@ 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' ), - 'classname' => 'widget_bp_groups_widget buddypress widget', + 'description' => __( 'A dynamic list of recently active, popular, and newest groups', 'buddypress' ), + 'classname' => 'widget_bp_groups_widget buddypress widget', + 'customize_selective_refresh' => true, ); parent::__construct( false, _x( '(BuddyPress) Groups', 'widget name', 'buddypress' ), $widget_ops ); - if ( is_active_widget( false, false, $this->id_base ) && ! is_admin() && ! is_network_admin() ) { - $min = bp_core_get_minified_asset_suffix(); - wp_enqueue_script( 'groups_widget_groups_list-js', buddypress()->plugin_url . "bp-groups/js/widget-groups{$min}.js", array( 'jquery' ), bp_get_version() ); + if ( is_customize_preview() || is_active_widget( false, false, $this->id_base ) ) { + add_action( 'bp_enqueue_scripts', array( $this, 'enqueue_scripts' ) ); } } + /** + * Enqueue scripts. + * + * @since 2.6.0 + */ + public function enqueue_scripts() { + $min = bp_core_get_minified_asset_suffix(); + wp_enqueue_script( 'groups_widget_groups_list-js', buddypress()->plugin_url . "bp-groups/js/widget-groups{$min}.js", array( 'jquery' ), bp_get_version() ); + } + /** * Extends our frontend output method. * diff --git a/wp-content/plugins/buddypress/bp-groups/js/widget-groups.js b/wp-content/plugins/buddypress/bp-groups/js/widget-groups.js index 42efbc7fb83f50c695851f8ff57987e0a42eb1c6..29c813ec12d8af8b07a19373ce55ea5a10fa42e9 100644 --- a/wp-content/plugins/buddypress/bp-groups/js/widget-groups.js +++ b/wp-content/plugins/buddypress/bp-groups/js/widget-groups.js @@ -1,4 +1,15 @@ jQuery(document).ready( function() { + groups_widget_click_handler(); + + // WP 4.5 - Customizer selective refresh support. + if ( 'undefined' !== typeof wp && wp.customize && wp.customize.selectiveRefresh ) { + wp.customize.selectiveRefresh.bind( 'partial-content-rendered', function() { + groups_widget_click_handler(); + } ); + } +}); + +function groups_widget_click_handler() { jQuery('.widget div#groups-list-options a').on('click', function() { var link = this; @@ -23,7 +34,7 @@ jQuery(document).ready( function() { return false; } ); -}); +} function groups_widget_response(response) { response = response.substr(0, response.length-1); diff --git a/wp-content/plugins/buddypress/bp-groups/js/widget-groups.min.js b/wp-content/plugins/buddypress/bp-groups/js/widget-groups.min.js index 31110db86ecba531996293d4dd8b37d751c74ead..4f1e4727b8bbaba48b06fa98aac21f03d36d64e9 100644 --- a/wp-content/plugins/buddypress/bp-groups/js/widget-groups.min.js +++ b/wp-content/plugins/buddypress/bp-groups/js/widget-groups.min.js @@ -1,2 +1 @@ -/*! buddypress - v2.5.3 - 2016-05-24 5:17:45 PM UTC - https://wordpress.org/plugins/buddypress/ */ -function groups_widget_response(a){a=a.substr(0,a.length-1),a=a.split("[[SPLIT]]"),"-1"!==a[0]?jQuery(".widget ul#groups-list").fadeOut(200,function(){jQuery(".widget ul#groups-list").html(a[1]),jQuery(".widget ul#groups-list").fadeIn(200)}):jQuery(".widget ul#groups-list").fadeOut(200,function(){var b="<p>"+a[1]+"</p>";jQuery(".widget ul#groups-list").html(b),jQuery(".widget ul#groups-list").fadeIn(200)})}jQuery(document).ready(function(){jQuery(".widget div#groups-list-options a").on("click",function(){var a=this;return jQuery(a).addClass("loading"),jQuery(".widget div#groups-list-options a").removeClass("selected"),jQuery(this).addClass("selected"),jQuery.post(ajaxurl,{action:"widget_groups_list",cookie:encodeURIComponent(document.cookie),_wpnonce:jQuery("input#_wpnonce-groups").val(),max_groups:jQuery("input#groups_widget_max").val(),filter:jQuery(this).attr("id")},function(b){jQuery(a).removeClass("loading"),groups_widget_response(b)}),!1})}); \ No newline at end of file +function groups_widget_click_handler(){jQuery(".widget div#groups-list-options a").on("click",function(){var a=this;return jQuery(a).addClass("loading"),jQuery(".widget div#groups-list-options a").removeClass("selected"),jQuery(this).addClass("selected"),jQuery.post(ajaxurl,{action:"widget_groups_list",cookie:encodeURIComponent(document.cookie),_wpnonce:jQuery("input#_wpnonce-groups").val(),max_groups:jQuery("input#groups_widget_max").val(),filter:jQuery(this).attr("id")},function(b){jQuery(a).removeClass("loading"),groups_widget_response(b)}),!1})}function groups_widget_response(a){a=a.substr(0,a.length-1),a=a.split("[[SPLIT]]"),"-1"!==a[0]?jQuery(".widget ul#groups-list").fadeOut(200,function(){jQuery(".widget ul#groups-list").html(a[1]),jQuery(".widget ul#groups-list").fadeIn(200)}):jQuery(".widget ul#groups-list").fadeOut(200,function(){var b="<p>"+a[1]+"</p>";jQuery(".widget ul#groups-list").html(b),jQuery(".widget ul#groups-list").fadeIn(200)})}jQuery(document).ready(function(){groups_widget_click_handler(),"undefined"!=typeof wp&&wp.customize&&wp.customize.selectiveRefresh&&wp.customize.selectiveRefresh.bind("partial-content-rendered",function(){groups_widget_click_handler()})}); \ No newline at end of file diff --git a/wp-content/plugins/buddypress/bp-loader.php b/wp-content/plugins/buddypress/bp-loader.php index b165b6a46a149f67feb73667637e414d6baed1c9..c4bc8beafe912aa1690203a0919201829ebaa079 100644 --- a/wp-content/plugins/buddypress/bp-loader.php +++ b/wp-content/plugins/buddypress/bp-loader.php @@ -15,7 +15,7 @@ * Description: BuddyPress helps you build any type of community website using WordPress, with member profiles, activity streams, user groups, messaging, and more. * Author: The BuddyPress Community * Author URI: https://buddypress.org/ - * Version: 2.5.3 + * Version: 2.6.2 * Text Domain: buddypress * Domain Path: /bp-languages/ * License: GPLv2 or later (license.txt) @@ -101,6 +101,22 @@ class BuddyPress { */ 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 *******************************************************/ /** @@ -123,11 +139,6 @@ class BuddyPress { * @since 1.7.0 * * @static object $instance - * @uses BuddyPress::constants() Setup the constants (mostly deprecated). - * @uses BuddyPress::setup_globals() Setup the globals needed. - * @uses BuddyPress::legacy_constants() Setup the legacy constants (deprecated). - * @uses BuddyPress::includes() Include the required files. - * @uses BuddyPress::setup_actions() Setup the hooks and actions. * @see buddypress() * * @return BuddyPress The one true BuddyPress. @@ -238,11 +249,6 @@ class BuddyPress { * * @since 1.6.0 * - * @uses is_multisite() - * @uses get_current_site() - * @uses get_current_blog_id() - * @uses plugin_dir_path() - * @uses plugin_dir_url() */ private function constants() { @@ -319,15 +325,12 @@ class BuddyPress { * * @since 1.6.0 * - * @uses plugin_dir_path() To generate BuddyPress plugin path. - * @uses plugin_dir_url() To generate BuddyPress plugin url. - * @uses apply_filters() Calls various filters. */ private function setup_globals() { /** Versions **********************************************************/ - $this->version = '2.5.3'; + $this->version = '2.6.2'; $this->db_version = 10469; /** Loading ***********************************************************/ @@ -426,6 +429,12 @@ class BuddyPress { /** 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; + } } /** @@ -454,9 +463,12 @@ class BuddyPress { * * @since 1.6.0 * - * @uses is_admin() If in WordPress admin, load additional file. */ 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' ); @@ -478,7 +490,6 @@ class BuddyPress { 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-classes.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' ); @@ -488,12 +499,15 @@ class BuddyPress { 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-component.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 ( false !== $this->load_deprecated ) { require( $this->plugin_dir . 'bp-core/deprecated/1.2.php' ); @@ -507,7 +521,115 @@ class BuddyPress { 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' ); + } + } + + /** + * 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; } /** @@ -515,9 +637,6 @@ class BuddyPress { * * @since 1.6.0 * - * @uses register_activation_hook() To register the activation hook. - * @uses register_deactivation_hook() To register the deactivation hook. - * @uses add_action() To add various actions. */ private function setup_actions() { 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 7217557c0b2755e8c2cb3a7b18c7cd041e1887b2..96da85fd4318af84fcfaaa3ccbb1f33a3973a9b4 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 @@ -1,4 +1,6 @@ -/**** BP Members Profile Administration Screens ****/ +/**** BP Members Profile Administration Screens +* TO DO: Organize and clean up stylesheet. +****/ div#profile-page.wrap form#your-profile { position: relative; @@ -112,8 +114,7 @@ div#community-profile-page p.not-activated { .bp-profile-field p { font-size: 14px; } -.bp-profile-field .datebox > label, -.bp-profile-field .radio > label, + .bp-profile-field > label { /* label takes on left side 200px */ display: inline-block; font-weight: 600; @@ -129,7 +130,7 @@ div#community-profile-page p.not-activated { vertical-align: top; } .bp-profile-field .description { /* description also sits in the right side column */ - margin: 10px 200px 10px 0; + margin: 10px 200px 12px 0; text-align: right; } .clear-value { /* 'clear value' option also sits in the right side column */ @@ -142,10 +143,15 @@ div#community-profile-page p.not-activated { margin-right: 200px; width: auto; } -.field_type_radio .radio div:not(.field-visibility-settings) label { /* force radio buttons to new lines */ +.field_type_radio .radio .input-options label, +.field_type_checkbox .checkbox .input-options label { + /* force checkboxes and radio buttons to new lines */ display: block; } -.field_type_radio .radio div:not(.field-visibility-settings) { /* make the radio buttons sit in the right side column */ +.field_type_checkbox .checkbox .input-options, +.field_type_datebox .datebox .input-options, +.field_type_radio .radio .input-options { + /* make the checkboxes, select menus, and radio buttons sit in the right side column */ display: inline-block; } .field-visibility-settings-notoggle, @@ -161,6 +167,90 @@ div#community-profile-page p.not-activated { margin-bottom: 15px; } #normal-sortables .field-visibility-settings legend { /* id required for css selector weight */ - font-size: 16px; - margin-bottom: 10px; + 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; /* Firefox will not apply display: inline-block to legends */ + font-size: 14px; + font-weight: 600; + line-height: 1.4em; + text-align: right; + vertical-align: middle; + width: 192px; +} + +#your-profile .bp-profile-field .radio legend, +#your-profile .bp-profile-field .checkbox 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 input[type="checkbox"], + .bp-profile-field input[type="email"], + .bp-profile-field input[type="number"], + .bp-profile-field input[type="radio"], + .bp-profile-field input[type="text"], + .bp-profile-field input[type="url"], + .bp-profile-field select:nth-of-type(1), + .bp-profile-field .wp-editor-wrap, + .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 input[type="checkbox"], + .bp-profile-field input[type="email"], + .bp-profile-field input[type="number"], + .bp-profile-field input[type="radio"], + .bp-profile-field input[type="text"], + .bp-profile-field input[type="url"], + .bp-profile-field select:nth-of-type(1), + .bp-profile-field .wp-editor-wrap, + .field-visibility-settings-notoggle, + .field-visibility-settings-toggle { + margin-right: 0; + } + .field-visibility-settings { + margin-right: 50px; + } } 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 c194e8517ec2b39b16c40c235f2efd4202ddd9f6..c2b4feaee27e8b165416474d0b31745dd0c8dfc0 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 .datebox>label,.bp-profile-field .radio>label,.bp-profile-field>label{display:inline-block;font-weight:600;text-align:right;vertical-align:middle;width:200px}.clear-value,.field_type_radio .radio div:not(.field-visibility-settings) 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 10px 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_radio .radio div:not(.field-visibility-settings){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:16px;margin-bottom:10px} \ 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;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 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 647e7a480fdf74bad934f4fa1174d6975dbd8e43..bda35a08ef8b52c08887c7dfef514fa860189240 100644 --- a/wp-content/plugins/buddypress/bp-members/admin/css/admin.css +++ b/wp-content/plugins/buddypress/bp-members/admin/css/admin.css @@ -1,4 +1,6 @@ -/**** BP Members Profile Administration Screens ****/ +/**** BP Members Profile Administration Screens +* TO DO: Organize and clean up stylesheet. +****/ div#profile-page.wrap form#your-profile { position: relative; @@ -112,8 +114,7 @@ div#community-profile-page p.not-activated { .bp-profile-field p { font-size: 14px; } -.bp-profile-field .datebox > label, -.bp-profile-field .radio > label, + .bp-profile-field > label { /* label takes on left side 200px */ display: inline-block; font-weight: 600; @@ -129,7 +130,7 @@ div#community-profile-page p.not-activated { vertical-align: top; } .bp-profile-field .description { /* description also sits in the right side column */ - margin: 10px 0 10px 200px; + margin: 10px 0 12px 200px; text-align: left; } .clear-value { /* 'clear value' option also sits in the right side column */ @@ -142,10 +143,15 @@ div#community-profile-page p.not-activated { margin-left: 200px; width: auto; } -.field_type_radio .radio div:not(.field-visibility-settings) label { /* force radio buttons to new lines */ +.field_type_radio .radio .input-options label, +.field_type_checkbox .checkbox .input-options label { + /* force checkboxes and radio buttons to new lines */ display: block; } -.field_type_radio .radio div:not(.field-visibility-settings) { /* make the radio buttons sit in the right side column */ +.field_type_checkbox .checkbox .input-options, +.field_type_datebox .datebox .input-options, +.field_type_radio .radio .input-options { + /* make the checkboxes, select menus, and radio buttons sit in the right side column */ display: inline-block; } .field-visibility-settings-notoggle, @@ -161,6 +167,90 @@ div#community-profile-page p.not-activated { margin-bottom: 15px; } #normal-sortables .field-visibility-settings legend { /* id required for css selector weight */ - font-size: 16px; - margin-bottom: 10px; + 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; /* Firefox will not apply display: inline-block to legends */ + font-size: 14px; + font-weight: 600; + line-height: 1.4em; + text-align: left; + vertical-align: middle; + width: 192px; +} + +#your-profile .bp-profile-field .radio legend, +#your-profile .bp-profile-field .checkbox 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 input[type="checkbox"], + .bp-profile-field input[type="email"], + .bp-profile-field input[type="number"], + .bp-profile-field input[type="radio"], + .bp-profile-field input[type="text"], + .bp-profile-field input[type="url"], + .bp-profile-field select:nth-of-type(1), + .bp-profile-field .wp-editor-wrap, + .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 input[type="checkbox"], + .bp-profile-field input[type="email"], + .bp-profile-field input[type="number"], + .bp-profile-field input[type="radio"], + .bp-profile-field input[type="text"], + .bp-profile-field input[type="url"], + .bp-profile-field select:nth-of-type(1), + .bp-profile-field .wp-editor-wrap, + .field-visibility-settings-notoggle, + .field-visibility-settings-toggle { + margin-left: 0; + } + .field-visibility-settings { + margin-left: 50px; + } } 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 b1fb6f3884127d727d08a0386c2426386558c3cd..95faccfd394f272be725f6e81c62fdef944d143d 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 .datebox>label,.bp-profile-field .radio>label,.bp-profile-field>label{display:inline-block;font-weight:600;text-align:left;vertical-align:middle;width:200px}.clear-value,.field_type_radio .radio div:not(.field-visibility-settings) 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 10px 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_radio .radio div:not(.field-visibility-settings){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:16px;margin-bottom:10px} \ 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;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 diff --git a/wp-content/plugins/buddypress/bp-members/admin/js/admin.min.js b/wp-content/plugins/buddypress/bp-members/admin/js/admin.min.js index 2aa60274267f5fd1b2ca09927faaffb1ff839551..620db1c34e55f6b4f237eeb75b6587a0573520ec 100644 --- a/wp-content/plugins/buddypress/bp-members/admin/js/admin.min.js +++ b/wp-content/plugins/buddypress/bp-members/admin/js/admin.min.js @@ -1,2 +1 @@ -/*! buddypress - v2.5.3 - 2016-05-24 5:17:45 PM UTC - https://wordpress.org/plugins/buddypress/ */ 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(a){a(".visibility-toggle-link").on("click",function(b){b.preventDefault(),a(this).parent().hide().siblings(".field-visibility-settings").show()}),a(".field-visibility-settings-close").on("click",function(b){b.preventDefault();var c=a(this).parent(),d=c.find("input:checked").parent().text();c.hide().siblings(".field-visibility-settings-toggle").children(".current-visibility-level").text(d).end().show()})}(jQuery); \ No newline at end of file diff --git a/wp-content/plugins/buddypress/bp-members/bp-members-actions.php b/wp-content/plugins/buddypress/bp-members/bp-members-actions.php index 826ad09fa74943b3bb3f117e7ebc8cac7e7f8ae0..233c3b07691f1eb179d519130b173f3405fffd3a 100644 --- a/wp-content/plugins/buddypress/bp-members/bp-members-actions.php +++ b/wp-content/plugins/buddypress/bp-members/bp-members-actions.php @@ -23,6 +23,8 @@ defined( 'ABSPATH' ) || exit; * * Note: no longer used in the current state. See the Settings component. * + * @since 1.1.0 + * * @param int $user_id Optional. User ID to mark as spam. Defaults to displayed user. */ function bp_core_action_set_spammer_status( $user_id = 0 ) { @@ -73,6 +75,8 @@ function bp_core_action_set_spammer_status( $user_id = 0 ) { * Process user deletion requests. * * Note: No longer called here. See the Settings component. + * + * @since 1.1.0 */ function bp_core_action_delete_user() { diff --git a/wp-content/plugins/buddypress/bp-members/bp-members-activity.php b/wp-content/plugins/buddypress/bp-members/bp-members-activity.php index 9ad596c5688ec330c508354d744fdbcded03c909..c6ed4958b2f7d162550d4f5cf90c0af44192c4bb 100644 --- a/wp-content/plugins/buddypress/bp-members/bp-members-activity.php +++ b/wp-content/plugins/buddypress/bp-members/bp-members-activity.php @@ -15,8 +15,6 @@ defined( 'ABSPATH' ) || exit; * * @since 2.2.0 * - * @uses bp_activity_set_action() - * @uses buddypress() */ function bp_members_register_activity_actions() { @@ -70,6 +68,8 @@ function bp_members_format_activity_action_new_member( $action, $activity ) { /** * Create a "became a registered user" activity item when a user activates his account. * + * @since 1.2.2 + * * @param array $user Array of userdata passed to bp_core_activated_user hook. * @return bool */ 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 dbc77b5e11f9c2e715a6dabc81e606cddefba648..962aec7621609ddc452d74a4911ad7e5906a1c38 100644 --- a/wp-content/plugins/buddypress/bp-members/bp-members-admin.php +++ b/wp-content/plugins/buddypress/bp-members/bp-members-admin.php @@ -10,7 +10,9 @@ // Exit if accessed directly. defined( 'ABSPATH' ) || exit; -require dirname( __FILE__ ) . '/classes/class-bp-members-admin.php'; +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-adminbar.php b/wp-content/plugins/buddypress/bp-members/bp-members-adminbar.php index 48a9361d0c18c57394a2e31e1d2d9271141f2116..c13fee03215262f6b7c10b94c84d4adbaeba58dd 100644 --- a/wp-content/plugins/buddypress/bp-members/bp-members-adminbar.php +++ b/wp-content/plugins/buddypress/bp-members/bp-members-adminbar.php @@ -44,10 +44,10 @@ function bp_members_admin_bar_my_account_menu() { 'class' => 'ab-sub-secondary' ) ) ); - // Show login and sign-up links. + // Show login and sign-up links. } elseif ( !empty( $wp_admin_bar ) ) { - add_filter ( 'show_admin_bar', '__return_true' ); + add_filter( 'show_admin_bar', '__return_true' ); // Create the main 'My Account' menu. $wp_admin_bar->add_menu( array( diff --git a/wp-content/plugins/buddypress/bp-members/bp-members-cache.php b/wp-content/plugins/buddypress/bp-members/bp-members-cache.php index 7bb4a9a653d18ab6bbe90995f9a32c6b9a643038..49b4b503460872920947fb6417bce5da2405645a 100644 --- a/wp-content/plugins/buddypress/bp-members/bp-members-cache.php +++ b/wp-content/plugins/buddypress/bp-members/bp-members-cache.php @@ -52,7 +52,7 @@ add_action( 'bp_user_query_populate_extras', 'bp_members_prefetch_member_type' ) * * Called when the user is deleted or marked as spam. * - * @since BuddyPres (2.2.0) + * @since 2.2.0 * * @param int $user_id ID of the deleted user. */ diff --git a/wp-content/plugins/buddypress/bp-members/bp-members-filters.php b/wp-content/plugins/buddypress/bp-members/bp-members-filters.php index c76731d74ab26d87ca265ba856fb6b7459fa2a5d..5575ebef29217fb69325672b18c6f8f43d3d2a38 100644 --- a/wp-content/plugins/buddypress/bp-members/bp-members-filters.php +++ b/wp-content/plugins/buddypress/bp-members/bp-members-filters.php @@ -110,8 +110,8 @@ function bp_members_edit_profile_url( $url, $user_id, $scheme = 'admin' ) { if ( ! is_admin() && bp_is_active( 'xprofile' ) ) { $profile_link = trailingslashit( bp_core_get_user_domain( $user_id ) . bp_get_profile_slug() . '/edit' ); - // Default to $url. } else { + // Default to $url. $profile_link = $url; } 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 bc99698bd60f25bd589172d1bad4e24aca56b916..8ee5a6d13ab8d2cf814c3c1a1d2083d145395bf7 100644 --- a/wp-content/plugins/buddypress/bp-members/bp-members-functions.php +++ b/wp-content/plugins/buddypress/bp-members/bp-members-functions.php @@ -35,6 +35,8 @@ function bp_members_has_directory() { * * In general, fallback values are only used during initial BP page creation, * when no slugs have been explicitly defined. + * + * @since 1.5.0 */ function bp_core_define_slugs() { $bp = buddypress(); @@ -75,6 +77,8 @@ add_action( 'bp_setup_globals', 'bp_core_define_slugs', 11 ); * need backward compatibility with BP_Core_User::get_users(), filter the * bp_use_legacy_user_query value, returning true. * + * @since 1.2.0 + * * @param array|string $args { * Array of arguments. All are optional. See {@link BP_User_Query} for * a more complete description of arguments. @@ -158,6 +162,8 @@ function bp_core_get_users( $args = '' ) { /** * Return the domain for the passed user: e.g. http://example.com/members/andy/. * + * @since 1.0.0 + * * @param int $user_id The ID of the user. * @param string|bool $user_nicename Optional. user_nicename of the user. * @param string|bool $user_login Optional. user_login of the user. @@ -198,6 +204,8 @@ function bp_core_get_user_domain( $user_id = 0, $user_nicename = false, $user_lo /** * Fetch everything in the wp_users table for a user, without any usermeta. * + * @since 1.2.0 + * * @param int $user_id The ID of the user. * @return array */ @@ -293,6 +301,8 @@ function bp_core_get_userid_from_nicename( $user_nicename = '' ) { * This function is sensitive to the BP_ENABLE_USERNAME_COMPATIBILITY_MODE, * so it will return the user_login or user_nicename as appropriate. * + * @since 1.0.0 + * * @param int $user_id User ID to check. * @param string|bool $user_nicename Optional. user_nicename of user being checked. * @param string|bool $user_login Optional. user_login of user being checked. @@ -435,6 +445,8 @@ function bp_members_get_user_nicename( $user_id ) { /** * Return the email address for the user based on user ID. * + * @since 1.0.0 + * * @param int $uid User ID to check. * @return string The email for the matched user. Empty string if no user * matched the $uid. @@ -473,6 +485,8 @@ function bp_core_get_user_email( $uid ) { * * Optional parameters will return just the name or just the URL. * + * @since 1.0.0 + * * @param int $user_id User ID to check. * @param bool $no_anchor Disable URL and HTML and just return full name. * Default: false. @@ -598,6 +612,8 @@ function bp_core_get_user_displaynames( $user_ids ) { /** * Fetch the display name for a user. * + * @since 1.0.1 + * * @param int|string|bool $user_id_or_username User ID or username. * @return string|bool The display name for the user in question, or false if * user not found. @@ -643,6 +659,8 @@ add_filter( 'bp_core_get_user_displayname', 'esc_html' ); /** * Return the user link for the user based on user email address. * + * @since 1.0.0 + * * @param string $email The email address for the user. * @return string The link to the users home base. False on no match. */ @@ -662,6 +680,8 @@ function bp_core_get_userlink_by_email( $email ) { /** * Return the user link for the user based on the supplied identifier. * + * @since 1.0.0 + * * @param string $username If BP_ENABLE_USERNAME_COMPATIBILITY_MODE is set, * this should be user_login, otherwise it should * be user_nicename. @@ -691,6 +711,8 @@ function bp_core_get_userlink_by_username( $username ) { * account for users who have logged activity (last_active). See * {@link bp_core_get_active_member_count()}. * + * @since 1.2.0 + * * @return int The total number of members. */ function bp_core_get_total_member_count() { @@ -717,6 +739,8 @@ function bp_core_get_total_member_count() { /** * Return the total number of members, limited to those members with last_activity. * + * @since 1.6.0 + * * @return int The number of active members. */ function bp_core_get_active_member_count() { @@ -919,6 +943,8 @@ add_action( 'make_ham_user', 'bp_core_mark_user_ham_admin' ); /** * Check whether a user has been marked as a spammer. * + * @since 1.6.0 + * * @param int $user_id The ID for the user. * @return bool True if spammer, otherwise false. */ @@ -983,6 +1009,8 @@ function bp_is_user_spammer( $user_id = 0 ) { /** * Check whether a user has been marked as deleted. * + * @since 1.6.0 + * * @param int $user_id The ID for the user. * @return bool True if deleted, otherwise false. */ @@ -1049,11 +1077,6 @@ function bp_is_user_deleted( $user_id = 0 ) { * * @since 1.6.0 * - * @uses is_user_logged_in() To check if user is logged in - * @uses bp_loggedin_user_id() To get current user ID - * @uses bp_is_user_spammer() To check if user is spammer - * @uses bp_is_user_deleted() To check if user is deleted - * * @param int $user_id The user ID to check. * @return bool True if active, otherwise false. */ @@ -1091,10 +1114,6 @@ function bp_is_user_active( $user_id = 0 ) { * @todo No need for the user fallback checks, since they're done in * bp_is_user_active(). * - * @uses is_user_logged_in() To check if user is logged in. - * @uses bp_get_displayed_user_id() To get current user ID. - * @uses bp_is_user_active() To check if user is active. - * * @param int $user_id The user ID to check. * @return bool True if inactive, otherwise false. */ @@ -1214,6 +1233,8 @@ add_filter( 'update_user_metadata', '_bp_update_user_meta_last_activity_warning' /** * Get the last activity for a given user. * + * @since 1.9.0 + * * @param int $user_id The ID of the user. * @return string Time of last activity, in 'Y-m-d H:i:s' format, or an empty * string if none is found. @@ -1293,6 +1314,8 @@ function bp_core_get_all_posts_for_user( $user_id = 0 ) { * * Primarily used for self-deletions, as requested through Settings. * + * @since 1.0.0 + * * @param int $user_id Optional. ID of the user to be deleted. Default: the * logged-in user. * @return bool True on success, false on failure. @@ -1379,6 +1402,8 @@ add_action( 'delete_user', 'bp_core_delete_avatar_on_user_delete' ); * * Uses multibyte functions when available on the PHP build. * + * @since 1.0.0 + * * @param string $str String to be upper-cased. * @return string */ @@ -1425,6 +1450,8 @@ add_filter( 'authenticate', 'bp_core_boot_spammer', 30 ); /** * Delete last_activity data for the user when the user is deleted. * + * @since 1.0.0 + * * @param int $user_id The user ID for the user to delete usermeta for. */ function bp_core_remove_data( $user_id ) { @@ -1442,6 +1469,8 @@ add_action( 'bp_make_spam_user', 'bp_core_remove_data' ); /** * Check whether the logged-in user can edit settings for the displayed user. * + * @since 1.5.0 + * * @return bool True if editing is allowed, otherwise false. */ function bp_core_can_edit_settings() { @@ -1464,6 +1493,8 @@ function bp_core_can_edit_settings() { /** * Flush illegal names by getting and setting 'illegal_names' site option. + * + * @since 1.2.5 */ function bp_core_flush_illegal_names() { $illegal_names = get_site_option( 'illegal_names' ); @@ -1473,6 +1504,8 @@ function bp_core_flush_illegal_names() { /** * Add BuddyPress-specific items to the illegal_names array. * + * @since 1.2.7 + * * @param array|string $value Illegal names as being saved defined in * Multisite settings. * @param array|string $oldvalue The old value of the option. @@ -1641,6 +1674,8 @@ function bp_core_add_validation_error_messages( WP_Error $errors, $validation_re /** * Validate a user name and email address when creating a new user. * + * @since 1.2.2 + * * @param string $user_name Username to validate. * @param string $user_email Email address to validate. * @return array Results of user validation including errors, if any. @@ -1744,6 +1779,8 @@ function bp_core_validate_user_signup( $user_name, $user_email ) { /** * Validate blog URL and title provided at signup. * + * @since 1.2.2 + * * @todo Why do we have this wrapper? * * @param string $blog_url Blog URL requested during registration. @@ -1768,6 +1805,8 @@ function bp_core_validate_blog_signup( $blog_url, $blog_title ) { /** * Process data submitted at user registration and convert to a signup object. * + * @since 1.2.0 + * * @todo There appears to be a bug in the return value on success. * * @param string $user_login Login name requested by the user. @@ -1864,6 +1903,8 @@ function bp_core_signup_user( $user_login, $user_password, $user_email, $usermet /** * Create a blog and user based on data supplied at user registration. * + * @since 1.2.2 + * * @param string $blog_domain Domain requested by user. * @param string $blog_path Path requested by user. * @param string $blog_title Title as entered by user. @@ -1893,6 +1934,8 @@ function bp_core_signup_blog( $blog_domain, $blog_path, $blog_title, $user_name, /** * Activate a signup, as identified by an activation key. * + * @since 1.2.2 + * * @param string $key Activation key. * @return int|bool User ID on success, false on failure. */ @@ -2022,15 +2065,23 @@ function bp_core_activate_signup( $key ) { } } - // Update the display_name. - wp_update_user( array( - 'ID' => $user_id, - 'display_name' => bp_core_get_user_displayname( $user_id ), - ) ); - - // Set the password on multisite installs. + // Replace the password automatically generated by WordPress by the one the user chose. if ( ! empty( $user['meta']['password'] ) ) { $wpdb->query( $wpdb->prepare( "UPDATE {$wpdb->users} SET user_pass = %s WHERE ID = %d", $user['meta']['password'], $user_id ) ); + + /** + * Make sure to clean the user's cache as we've + * directly edited the password without using + * wp_update_user(). + * + * If we can't use wp_update_user() that's because + * we already hashed the password at the signup step. + */ + $uc = wp_cache_get( $user_id, 'users' ); + + if ( ! empty( $uc->ID ) ) { + clean_user_cache( $uc->ID ); + } } /** @@ -2134,6 +2185,8 @@ function bp_members_migrate_signups() { * This only happens when a user is registered in wp-admin by an administrator; * during normal registration, XProfile data is provided directly by the user. * + * @since 1.2.0 + * * @param int $user_id ID of the user. * @return bool */ @@ -2162,6 +2215,8 @@ add_action( 'user_register', 'bp_core_map_user_registration' ); /** * Get the avatar storage directory for use during registration. * + * @since 1.1.0 + * * @return string|bool Directory path on success, false on failure. */ function bp_core_signup_avatar_upload_dir() { @@ -2198,7 +2253,8 @@ function bp_core_signup_avatar_upload_dir() { /** * Send activation email to a newly registered user. * - * @since 2.5.0 Add the $user_login parameter. + * @since 1.2.2 + * @since 2.5.0 Add the $user_login parameter. * * @param int|bool $user_id ID of the new user, false if BP_SIGNUPS_SKIP_USER_CREATION is true. * @param string $user_email Email address of the new user. @@ -2320,6 +2376,8 @@ add_action( 'login_form_bp-resend-activation', 'bp_members_login_resend_activati /** * Redirect away from wp-signup.php if BP registration templates are present. + * + * @since 1.1.0 */ function bp_core_wpsignup_redirect() { @@ -2331,7 +2389,7 @@ function bp_core_wpsignup_redirect() { $action = !empty( $_GET['action'] ) ? $_GET['action'] : ''; // Not at the WP core signup page and action is not register. - if ( ! empty( $_SERVER['SCRIPT_NAME'] ) && false === strpos( $_SERVER['SCRIPT_NAME'], 'wp-signup.php' ) && ( 'register' != $action ) ) { + if ( ! empty( $_SERVER['SCRIPT_NAME'] ) && false === strpos( 'wp-signup.php', $_SERVER['SCRIPT_NAME'] ) && ( 'register' != $action ) ) { return; } @@ -2420,6 +2478,31 @@ function bp_live_spammer_login_error() { } add_action( 'login_form_bp-spam', 'bp_live_spammer_login_error' ); +/** + * Get the displayed user Object + * + * @since 2.6.0 + * + * @return object The displayed user object, null otherwise. + */ +function bp_get_displayed_user() { + $bp = buddypress(); + + $displayed_user = null; + if ( ! empty( $bp->displayed_user->id ) ) { + $displayed_user = $bp->displayed_user; + } + + /** + * Filters the displayed_user object corresponding to the displayed member. + * + * @since 2.6.0 + * + * @param object $displayed_user The displayed_user object. + */ + return apply_filters( 'bp_get_displayed_user', $displayed_user ); +} + /** Member Types *************************************************************/ /** @@ -2740,5 +2823,13 @@ add_action( 'delete_user', 'bp_remove_member_type_on_user_delete' ); * @return string */ function bp_get_current_member_type() { + + /** + * Filters the "current" member type, if one is provided, in member directories. + * + * @since 2.3.0 + * + * @param string $value "Current" member type. + */ return apply_filters( 'bp_get_current_member_type', buddypress()->current_member_type ); } 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 4962e82dca1536c1c0d3af221c5cb404ca79be80..96edec6b107d74191c04439b8ab7e25dc216cfdc 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,14 @@ // Exit if accessed directly. defined( 'ABSPATH' ) || exit; -require dirname( __FILE__ ) . '/classes/class-bp-members-component.php'; +if ( ! buddypress()->do_autoload ) { + require dirname( __FILE__ ) . '/classes/class-bp-members-component.php'; +} /** * Set up the bp-members component. + * + * @since 1.6.0 */ function bp_setup_members() { buddypress()->members = new 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 6b6cdd42093a8eb06e9dfe8d6e99d6da6e88167d..969bcd2fd4c5e1209a3fe94eb0ffdd4f97b4b961 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,15 @@ // Exit if accessed directly. defined( 'ABSPATH' ) || exit; -require dirname( __FILE__ ) . '/classes/class-bp-members-theme-compat.php'; -require dirname( __FILE__ ) . '/classes/class-bp-registration-theme-compat.php'; +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. + * + * @since 1.5.0 */ function bp_members_screen_display_profile() { @@ -39,6 +43,8 @@ function bp_members_screen_display_profile() { /** * Handle the display of the members directory index. + * + * @since 1.5.0 */ function bp_members_screen_index() { if ( bp_is_members_directory() ) { @@ -65,6 +71,8 @@ add_action( 'bp_screens', 'bp_members_screen_index' ); /** * Handle the loading of the signup screen. + * + * @since 1.1.0 */ function bp_core_screen_signup() { $bp = buddypress(); @@ -99,7 +107,7 @@ function bp_core_screen_signup() { if ( !bp_get_signup_allowed() ) { $bp->signup->step = 'registration-disabled'; - // If the signup page is submitted, validate and save. + // If the signup page is submitted, validate and save. } elseif ( isset( $_POST['signup_submit'] ) && bp_verify_nonce_request( 'bp_new_signup' ) ) { /** @@ -151,7 +159,7 @@ function bp_core_screen_signup() { $bp->signup->errors['field_' . $field_id] = __( 'This is a required field', 'buddypress' ); } - // This situation doesn't naturally occur so bounce to website root. + // This situation doesn't naturally occur so bounce to website root. } else { bp_core_redirect( bp_get_root_domain() ); } @@ -295,6 +303,8 @@ add_action( 'bp_screens', 'bp_core_screen_signup' ); /** * Handle the loading of the Activate screen. * + * @since 1.1.0 + * * @todo Move the actual activation process into an action in bp-members-actions.php */ function bp_core_screen_activation() { 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 23b5ccec269d939dacc216e4955561ec635f7295..0f694304b63c2476e55b15fa3d2a6640f656cd90 100644 --- a/wp-content/plugins/buddypress/bp-members/bp-members-template.php +++ b/wp-content/plugins/buddypress/bp-members/bp-members-template.php @@ -12,14 +12,15 @@ // Exit if accessed directly. defined( 'ABSPATH' ) || exit; -require dirname( __FILE__ ) . '/classes/class-bp-core-members-template.php'; +if ( ! buddypress()->do_autoload ) { + require dirname( __FILE__ ) . '/classes/class-bp-core-members-template.php'; +} /** * Output the profile component slug. * * @since 2.4.0 * - * @uses bp_get_profile_slug() */ function bp_profile_slug() { echo bp_get_profile_slug(); @@ -48,7 +49,6 @@ function bp_profile_slug() { * * @since 1.5.0 * - * @uses bp_get_members_slug() */ function bp_members_slug() { echo bp_get_members_slug(); @@ -77,7 +77,6 @@ function bp_members_slug() { * * @since 1.5.0 * - * @uses bp_get_members_root_slug() */ function bp_members_root_slug() { echo bp_get_members_root_slug(); @@ -136,7 +135,6 @@ function bp_members_member_type_base() { * * @since 1.5.0 * - * @uses bp_get_members_directory_permalink() */ function bp_members_directory_permalink() { echo esc_url( bp_get_members_directory_permalink() ); @@ -165,8 +163,6 @@ function bp_members_directory_permalink() { * * @since 2.5.0 * - * @uses bp_get_member_type_directory_permalink() - * * @param string $member_type Optional. Member type. */ function bp_member_type_directory_permalink( $member_type = '' ) { @@ -213,7 +209,6 @@ function bp_member_type_directory_permalink( $member_type = '' ) { * * @since 1.5.0 * - * @uses bp_get_signup_slug() */ function bp_signup_slug() { echo bp_get_signup_slug(); @@ -251,7 +246,6 @@ function bp_signup_slug() { * * @since 1.5.0 * - * @uses bp_get_activate_slug() */ function bp_activate_slug() { echo bp_get_activate_slug(); @@ -291,6 +285,8 @@ function bp_activate_slug() { * global, enabling the use of BuddyPress templates and template functions to * display a list of members. * + * @since 1.2.0 + * * @global object $members_template {@link BP_Members_Template} * * @param array|string $args { @@ -426,16 +422,20 @@ function bp_has_members( $args = '' ) { * Filters whether or not BuddyPress has members to iterate over. * * @since 1.2.4 + * @since 2.6.0 Added the `$r` parameter * * @param bool $value Whether or not there are members to iterate over. * @param array $members_template Populated $members_template global. + * @param array $r Array of arguments passed into the BP_Core_Members_Template class. */ - return apply_filters( 'bp_has_members', $members_template->has_members(), $members_template ); + return apply_filters( 'bp_has_members', $members_template->has_members(), $members_template, $r ); } /** * Set up the current member inside the loop. * + * @since 1.2.0 + * * @return object */ function bp_the_member() { @@ -446,6 +446,8 @@ function bp_the_member() { /** * Check whether there are more members to iterate over. * + * @since 1.2.0 + * * @return bool */ function bp_members() { @@ -455,6 +457,8 @@ function bp_members() { /** * Output the members pagination count. + * + * @since 1.2.0 */ function bp_members_pagination_count() { echo bp_get_members_pagination_count(); @@ -462,6 +466,8 @@ function bp_members_pagination_count() { /** * Generate the members pagination count. * + * @since 1.5.0 + * * @return string */ function bp_get_members_pagination_count() { @@ -513,6 +519,8 @@ function bp_members_pagination_count() { /** * Output the members pagination links. + * + * @since 1.2.0 */ function bp_members_pagination_links() { echo bp_get_members_pagination_links(); @@ -520,6 +528,8 @@ function bp_members_pagination_links() { /** * Fetch the members pagination links. * + * @since 1.2.0 + * * @return string */ function bp_get_members_pagination_links() { @@ -538,7 +548,8 @@ function bp_members_pagination_links() { /** * Output the ID of the current member in the loop. * - * @uses bp_get_member_user_id() + * @since 1.2.0 + * */ function bp_member_user_id() { echo bp_get_member_user_id(); @@ -546,6 +557,8 @@ function bp_member_user_id() { /** * Get the ID of the current member in the loop. * + * @since 1.2.0 + * * @return string Member ID. */ function bp_get_member_user_id() { @@ -578,7 +591,6 @@ function bp_member_class( $classes = array() ) { * @since 1.7.0 * * @param array $classes Array of custom classes. - * * @return string Row class of the member */ function bp_get_member_class( $classes = array() ) { @@ -589,7 +601,7 @@ function bp_member_class( $classes = array() ) { $pos_in_loop = (int) $members_template->current_member; $classes[] = ( $pos_in_loop % 2 ) ? 'even' : 'odd'; - // If we've only one member in the loop, don't bother with odd and even. + // If we've only one member in the loop, don't bother with odd and even. } else { $classes[] = 'bp-single-member'; } @@ -613,6 +625,13 @@ function bp_member_class( $classes = array() ) { $classes[] = 'is-current-user'; } + // Add current user member types. + if ( $member_types = bp_get_member_type( $members_template->member->id, false ) ) { + foreach ( $member_types as $member_type ) { + $classes[] = sprintf( 'member-type-%s', esc_attr( $member_type ) ); + } + } + /** * Filters the determined classes to add to the HTML element. * @@ -629,6 +648,8 @@ function bp_member_class( $classes = array() ) { /** * Output nicename of current member in the loop. + * + * @since 1.2.5 */ function bp_member_user_nicename() { echo bp_get_member_user_nicename(); @@ -636,6 +657,8 @@ function bp_member_user_nicename() { /** * Get the nicename of the current member in the loop. * + * @since 1.2.5 + * * @return string Members nicename. */ function bp_get_member_user_nicename() { @@ -653,6 +676,8 @@ function bp_member_user_nicename() { /** * Output login for current member in the loop. + * + * @since 1.2.5 */ function bp_member_user_login() { echo bp_get_member_user_login(); @@ -660,6 +685,8 @@ function bp_member_user_login() { /** * Get the login of the current member in the loop. * + * @since 1.2.5 + * * @return string Member's login. */ function bp_get_member_user_login() { @@ -677,6 +704,8 @@ function bp_member_user_login() { /** * Output the email address for the current member in the loop. + * + * @since 1.2.5 */ function bp_member_user_email() { echo bp_get_member_user_email(); @@ -684,6 +713,8 @@ function bp_member_user_email() { /** * Get the email address of the current member in the loop. * + * @since 1.2.5 + * * @return string Member's email address. */ function bp_get_member_user_email() { @@ -702,6 +733,8 @@ function bp_member_user_email() { /** * Check whether the current member in the loop is the logged-in user. * + * @since 1.2.5 + * * @return bool */ function bp_member_is_loggedin_user() { @@ -720,6 +753,8 @@ function bp_member_is_loggedin_user() { /** * Output a member's avatar. * + * @since 1.2.0 + * * @see bp_get_member_avatar() for description of arguments. * * @param array|string $args See {@link bp_get_member_avatar()}. @@ -730,14 +765,18 @@ function bp_member_avatar( $args = '' ) { * Filters a members avatar. * * @since 1.2.0 + * @since 2.6.0 Added the `$args` parameter. * - * @param string $value Formatted HTML <img> element, or raw avatar URL based on $html arg. + * @param string $value Formatted HTML <img> element, or raw avatar URL based on $html arg. + * @param array|string $args See {@link bp_get_member_avatar()}. */ - echo apply_filters( 'bp_member_avatar', bp_get_member_avatar( $args ) ); + echo apply_filters( 'bp_member_avatar', bp_get_member_avatar( $args ), $args ); } /** * Get a member's avatar. * + * @since 1.2.0 + * * @see bp_core_fetch_avatar() For a description of arguments and * return values. * @@ -776,14 +815,18 @@ function bp_member_avatar( $args = '' ) { * Filters a members avatar. * * @since 1.2.0 + * @since 2.6.0 Added the `$r` parameter. * * @param string $value Formatted HTML <img> element, or raw avatar URL based on $html arg. + * @param array $r Array of parsed arguments. See {@link bp_get_member_avatar()}. */ - return apply_filters( 'bp_get_member_avatar', bp_core_fetch_avatar( array( 'item_id' => $members_template->member->id, 'type' => $type, 'alt' => $alt, 'css_id' => $id, 'class' => $class, 'width' => $width, 'height' => $height, 'email' => $members_template->member->user_email ) ) ); + return apply_filters( 'bp_get_member_avatar', bp_core_fetch_avatar( array( 'item_id' => $members_template->member->id, 'type' => $type, 'alt' => $alt, 'css_id' => $id, 'class' => $class, 'width' => $width, 'height' => $height, 'email' => $members_template->member->user_email ) ), $r ); } /** * Output the permalink for the current member in the loop. + * + * @since 1.2.0 */ function bp_member_permalink() { echo bp_get_member_permalink(); @@ -791,6 +834,8 @@ function bp_member_permalink() { /** * Get the permalink for the current member in the loop. * + * @since 1.2.0 + * * @return string */ function bp_get_member_permalink() { @@ -808,16 +853,22 @@ function bp_member_permalink() { /** * Alias of {@link bp_member_permalink()}. + * + * @since 1.2.0 */ function bp_member_link() { echo bp_get_member_permalink(); } /** * Alias of {@link bp_get_member_permalink()}. + * + * @since 1.2.0 */ function bp_get_member_link() { return bp_get_member_permalink(); } /** * Output display name of current member in the loop. + * + * @since 1.2.0 */ function bp_member_name() { @@ -838,6 +889,8 @@ function bp_member_name() { * WP users table, in the following order of preference: display_name, * user_nicename, user_login. * + * @since 1.2.0 + * * @return string The user's fullname for display. */ function bp_get_member_name() { @@ -878,6 +931,8 @@ function bp_member_name() { /** * Output the current member's last active time. * + * @since 1.2.0 + * * @param array $args See {@link bp_get_member_last_active()}. */ function bp_member_last_active( $args = array() ) { @@ -886,6 +941,8 @@ function bp_member_last_active( $args = array() ) { /** * Return the current member's last active time. * + * @since 1.2.0 + * * @param array $args { * Array of optional arguments. * @type mixed $active_format If true, formatted "active 5 minutes @@ -916,7 +973,7 @@ function bp_member_last_active( $args = array() ) { ? bp_core_get_last_activity( $members_template->member->last_activity, $r['active_format'] ) : bp_core_time_since( $members_template->member->last_activity ); - // Member has never logged in or been active. + // Member has never logged in or been active. } else { $last_activity = __( 'Never active', 'buddypress' ); } @@ -935,6 +992,8 @@ function bp_member_last_active( $args = array() ) { /** * Output the latest update of the current member in the loop. * + * @since 1.2.0 + * * @param array|string $args Array of arguments for latest update. */ function bp_member_latest_update( $args = '' ) { @@ -943,6 +1002,8 @@ function bp_member_latest_update( $args = '' ) { /** * Get the latest update from the current member in the loop. * + * @since 1.2.0 + * * @param array|string $args { * Array of optional arguments. * @type int $length Truncation length. Default: 225. @@ -969,10 +1030,12 @@ function bp_member_latest_update( $args = '' ) { * Filters the excerpt of the latest update for current member in the loop. * * @since 1.2.5 + * @since 2.6.0 Added the `$r` parameter. * * @param string $value Excerpt of the latest update for current member in the loop. + * @param array $r Array of parsed arguments. */ - $update_content = apply_filters( 'bp_get_activity_latest_update_excerpt', trim( strip_tags( bp_create_excerpt( $update['content'], $length ) ) ) ); + $update_content = apply_filters( 'bp_get_activity_latest_update_excerpt', trim( strip_tags( bp_create_excerpt( $update['content'], $length ) ) ), $r ); $update_content = sprintf( _x( '- "%s"', 'member latest update in member directory', 'buddypress' ), $update_content ); @@ -988,15 +1051,19 @@ function bp_member_latest_update( $args = '' ) { * Filters the latest update from the current member in the loop. * * @since 1.2.0 + * @since 2.6.0 Added the `$r` parameter. * * @param string $update_content Formatted latest update for current member. + * @param array $r Array of parsed arguments. */ - return apply_filters( 'bp_get_member_latest_update', $update_content ); + return apply_filters( 'bp_get_member_latest_update', $update_content, $r ); } /** * Output a piece of user profile data. * + * @since 1.2.0 + * * @see bp_get_member_profile_data() for a description of params. * * @param array|string $args See {@link bp_get_member_profile_data()}. @@ -1011,6 +1078,8 @@ function bp_member_profile_data( $args = '' ) { * to fetch profile data cached in the template global. It is also safe * to use outside of the loop. * + * @since 1.2.0 + * * @param array|string $args { * Array of config parameters. * @type string $field Name of the profile field. @@ -1070,14 +1139,18 @@ function bp_member_profile_data( $args = '' ) { * Filters resulting piece of member profile data. * * @since 1.2.0 + * @since 2.6.0 Added the `$r` parameter. * * @param string|bool $data Profile data if found, otherwise false. + * @param array $r Array of parsed arguments. */ - return apply_filters( 'bp_get_member_profile_data', $data ); + return apply_filters( 'bp_get_member_profile_data', $data, $r ); } /** * Output the 'registered [x days ago]' string for the current member. + * + * @since 1.2.0 */ function bp_member_registered() { echo bp_get_member_registered(); @@ -1085,6 +1158,8 @@ function bp_member_registered() { /** * Get the 'registered [x days ago]' string for the current member. * + * @since 1.2.0 + * * @return string */ function bp_get_member_registered() { @@ -1104,6 +1179,8 @@ function bp_member_registered() { /** * Output a random piece of profile data for the current member in the loop. + * + * @since 1.2.0 */ function bp_member_random_profile_data() { global $members_template; @@ -1117,6 +1194,8 @@ function bp_member_random_profile_data() { /** * Output hidden input for preserving member search params on form submit. + * + * @since 1.2.0 */ function bp_member_hidden_fields() { $query_arg = bp_core_get_component_search_query_arg( 'members' ); @@ -1136,6 +1215,8 @@ function bp_member_hidden_fields() { /** * Output the Members directory search form. + * + * @since 1.0.0 */ function bp_directory_members_search_form() { @@ -1164,6 +1245,8 @@ function bp_directory_members_search_form() { /** * Output the total member count. + * + * @since 1.2.0 */ function bp_total_site_member_count() { echo bp_get_total_site_member_count(); @@ -1171,6 +1254,8 @@ function bp_total_site_member_count() { /** * Get the total site member count. * + * @since 1.2.0 + * * @return int */ function bp_get_total_site_member_count() { @@ -1199,6 +1284,8 @@ function bp_total_site_member_count() { * The function will also analyze the current component the user is in, to * determine whether or not to highlight a particular nav item. * + * @since 1.1.0 + * * @todo Move to a back-compat file? * @deprecated Does not seem to be called anywhere in BP core. */ @@ -1206,12 +1293,12 @@ function bp_get_loggedin_user_nav() { $bp = buddypress(); // Loop through each navigation item. - foreach( (array) $bp->bp_nav as $nav_item ) { + foreach ( (array) $bp->members->nav->get_primary() as $nav_item ) { $selected = ''; // If the current component matches the nav item id, then add a highlight CSS class. - if ( !bp_is_directory() && !empty( $bp->active_components[bp_current_component()] ) && $bp->active_components[bp_current_component()] == $nav_item['css_id'] ) { + if ( ! bp_is_directory() && ! empty( $bp->active_components[ bp_current_component() ] ) && $bp->active_components[ bp_current_component() ] == $nav_item->css_id ) { $selected = ' class="current selected"'; } @@ -1223,7 +1310,7 @@ function bp_get_loggedin_user_nav() { $selected = ''; if ( bp_is_active( 'friends' ) ) { - if ( $nav_item['css_id'] == $bp->friends->id ) { + if ( $nav_item->css_id == $bp->friends->id ) { if ( friends_check_friendship( bp_loggedin_user_id(), bp_displayed_user_id() ) ) { $selected = ' class="current selected"'; } @@ -1232,7 +1319,7 @@ function bp_get_loggedin_user_nav() { } // Echo out the final list item. - echo apply_filters_ref_array( 'bp_get_loggedin_user_nav_' . $nav_item['css_id'], array( '<li id="li-nav-' . $nav_item['css_id'] . '" ' . $selected . '><a id="my-' . $nav_item['css_id'] . '" href="' . $nav_item['link'] . '">' . $nav_item['name'] . '</a></li>', &$nav_item ) ); + echo apply_filters_ref_array( 'bp_get_loggedin_user_nav_' . $nav_item->css_id, array( '<li id="li-nav-' . $nav_item->css_id . '" ' . $selected . '><a id="my-' . $nav_item->css_id . '" href="' . $nav_item->link . '">' . $nav_item->name . '</a></li>', &$nav_item ) ); } // Always add a log out list item to the end of the navigation. @@ -1241,25 +1328,120 @@ function bp_get_loggedin_user_nav() { echo apply_filters( 'bp_logout_nav_link', $logout_link ); } +/** + * Output the contents of the current user's home page. + * + * @since 2.6.0 + */ +function bp_displayed_user_front_template_part() { + $located = bp_displayed_user_get_front_template(); + + if ( false !== $located ) { + $slug = str_replace( '.php', '', $located ); + $name = null; + + /** + * Let plugins adding an action to bp_get_template_part get it from here + * + * @param string $slug Template part slug requested. + * @param string $name Template part name requested. + */ + do_action( 'get_template_part_' . $slug, $slug, $name ); + + load_template( $located, true ); + } + + return $located; +} + +/** + * Locate a custom user front template if it exists. + * + * @since 2.6.0 + * + * @param object|null $displayed_user Optional. Falls back to current user if not passed. + * @return string|bool Path to front template on success; boolean false on failure. + */ +function bp_displayed_user_get_front_template( $displayed_user = null ) { + if ( ! is_object( $displayed_user ) || empty( $displayed_user->id ) ) { + $displayed_user = bp_get_displayed_user(); + } + + if ( ! isset( $displayed_user->id ) ) { + return false; + } + + if ( isset( $displayed_user->front_template ) ) { + return $displayed_user->front_template; + } + + // Init the hierarchy + $template_names = array( + 'members/single/front-id-' . sanitize_file_name( $displayed_user->id ) . '.php', + 'members/single/front-nicename-' . sanitize_file_name( $displayed_user->userdata->user_nicename ) . '.php', + ); + + /** + * Check for member types and add it to the hierarchy + * + * Make sure to register your member + * type using the hook 'bp_register_member_types' + */ + if ( bp_get_member_types() ) { + $displayed_user_member_type = bp_get_member_type( $displayed_user->id ); + if ( ! $displayed_user_member_type ) { + $displayed_user_member_type = 'none'; + } + + $template_names[] = 'members/single/front-member-type-' . sanitize_file_name( $displayed_user_member_type ) . '.php'; + } + + // Add The generic template to the end of the hierarchy + $template_names[] = 'members/single/front.php'; + + /** + * Filters the hierarchy of user front templates corresponding to a specific user. + * + * @since 2.6.0 + * + * @param array $template_names Array of template paths. + */ + return bp_locate_template( apply_filters( 'bp_displayed_user_get_front_template', $template_names ), false, true ); +} + +/** + * Check if the displayed user has a custom front template. + * + * @since 2.6.0 + */ +function bp_displayed_user_has_front_template() { + $displayed_user = bp_get_displayed_user(); + + return ! empty( $displayed_user->front_template ); +} + /** * Render the navigation markup for the displayed user. + * + * @since 1.1.0 */ function bp_get_displayed_user_nav() { $bp = buddypress(); - foreach ( (array) $bp->bp_nav as $user_nav_item ) { - if ( empty( $user_nav_item['show_for_displayed_user'] ) && !bp_is_my_profile() ) + foreach ( $bp->members->nav->get_primary() as $user_nav_item ) { + if ( empty( $user_nav_item->show_for_displayed_user ) && ! bp_is_my_profile() ) { continue; + } $selected = ''; - if ( bp_is_current_component( $user_nav_item['slug'] ) ) { + if ( bp_is_current_component( $user_nav_item->slug ) ) { $selected = ' class="current selected"'; } if ( bp_loggedin_user_domain() ) { - $link = str_replace( bp_loggedin_user_domain(), bp_displayed_user_domain(), $user_nav_item['link'] ); + $link = str_replace( bp_loggedin_user_domain(), bp_displayed_user_domain(), $user_nav_item->link ); } else { - $link = trailingslashit( bp_displayed_user_domain() . $user_nav_item['link'] ); + $link = trailingslashit( bp_displayed_user_domain() . $user_nav_item->link ); } /** @@ -1273,7 +1455,7 @@ function bp_get_displayed_user_nav() { * @param array $user_nav_item Array holding parts used to construct tab list item. * Passed by reference. */ - echo apply_filters_ref_array( 'bp_get_displayed_user_nav_' . $user_nav_item['css_id'], array( '<li id="' . $user_nav_item['css_id'] . '-personal-li" ' . $selected . '><a id="user-' . $user_nav_item['css_id'] . '" href="' . $link . '">' . $user_nav_item['name'] . '</a></li>', &$user_nav_item ) ); + echo apply_filters_ref_array( 'bp_get_displayed_user_nav_' . $user_nav_item->css_id, array( '<li id="' . $user_nav_item->css_id . '-personal-li" ' . $selected . '><a id="user-' . $user_nav_item->css_id . '" href="' . $link . '">' . $user_nav_item->name . '</a></li>', &$user_nav_item ) ); } } @@ -1296,6 +1478,8 @@ function bp_displayed_user_use_cover_image_header() { /** * Output the logged-in user's avatar. * + * @since 1.1.0 + * * @see bp_get_loggedin_user_avatar() for a description of params. * * @param array|string $args Array of arguments for logged in user avatar. @@ -1306,6 +1490,8 @@ function bp_loggedin_user_avatar( $args = '' ) { /** * Get the logged-in user's avatar. * + * @since 1.1.0 + * * @see bp_core_fetch_avatar() For a description of arguments and * return values. * @@ -1338,6 +1524,8 @@ function bp_loggedin_user_avatar( $args = '' ) { * @since 1.1.0 * * @param string $value User avatar string. + * @param array $r Array of parsed arguments. + * @param array $args Array of initial arguments. */ return apply_filters( 'bp_get_loggedin_user_avatar', bp_core_fetch_avatar( $r ), $r, $args ); } @@ -1345,6 +1533,8 @@ function bp_loggedin_user_avatar( $args = '' ) { /** * Output the displayed user's avatar. * + * @since 1.1.0 + * * @see bp_get_displayed_user_avatar() for a description of params. * * @param array|string $args Array of arguments for displayed user avatar. @@ -1355,6 +1545,8 @@ function bp_displayed_user_avatar( $args = '' ) { /** * Get the displayed user's avatar. * + * @since 1.1.0 + * * @see bp_core_fetch_avatar() For a description of arguments and * return values. * @@ -1387,12 +1579,16 @@ function bp_displayed_user_avatar( $args = '' ) { * @since 1.1.0 * * @param string $value User avatar string. + * @param array $r Array of parsed arguments. + * @param array $args Array of initial arguments. */ return apply_filters( 'bp_get_displayed_user_avatar', bp_core_fetch_avatar( $r ), $r, $args ); } /** * Output the email address of the displayed user. + * + * @since 1.5.0 */ function bp_displayed_user_email() { echo bp_get_displayed_user_email(); @@ -1400,6 +1596,8 @@ function bp_displayed_user_email() { /** * Get the email address of the displayed user. * + * @since 1.5.0 + * * @return string */ function bp_get_displayed_user_email() { @@ -1424,6 +1622,8 @@ function bp_displayed_user_email() { /** * Output the "active [x days ago]" string for a user. * + * @since 1.0.0 + * * @see bp_get_last_activity() for a description of parameters. * * @param int $user_id See {@link bp_get_last_activity()}. @@ -1442,6 +1642,8 @@ function bp_last_activity( $user_id = 0 ) { /** * Get the "active [x days ago]" string for a user. * + * @since 1.5.0 + * * @param int $user_id ID of the user. Default: displayed user ID. * @return string */ @@ -1456,14 +1658,18 @@ function bp_last_activity( $user_id = 0 ) { * Filters the 'active [x days ago]' string for a user. * * @since 1.5.0 + * @since 2.6.0 Added the `$user_id` parameter. * - * @param string $value Formatted 'active [x days ago]' string. + * @param string $value Formatted 'active [x days ago]' string. + * @param int $user_id ID of the user. */ - return apply_filters( 'bp_get_last_activity', $last_activity ); + return apply_filters( 'bp_get_last_activity', $last_activity, $user_id ); } /** * Output the calculated first name of the displayed or logged-in user. + * + * @since 1.2.0 */ function bp_user_firstname() { echo bp_get_user_firstname(); @@ -1473,6 +1679,8 @@ function bp_user_firstname() { * * Simply takes all the characters before the first space in a name. * + * @since 1.2.0 + * * @param string|bool $name Full name to use when generating first name. * Defaults to displayed user's first name, or to * logged-in user's first name if it's unavailable. @@ -1503,6 +1711,8 @@ function bp_user_firstname() { /** * Output the link for the logged-in user's profile. + * + * @since 1.2.4 */ function bp_loggedin_user_link() { echo bp_get_loggedin_user_link(); @@ -1510,6 +1720,8 @@ function bp_loggedin_user_link() { /** * Get the link for the logged-in user's profile. * + * @since 1.0.0 + * * @return string */ function bp_get_loggedin_user_link() { @@ -1526,6 +1738,8 @@ function bp_loggedin_user_link() { /** * Output the link for the displayed user's profile. + * + * @since 1.2.4 */ function bp_displayed_user_link() { echo bp_get_displayed_user_link(); @@ -1533,6 +1747,8 @@ function bp_displayed_user_link() { /** * Get the link for the displayed user's profile. * + * @since 1.0.0 + * * @return string */ function bp_get_displayed_user_link() { @@ -1556,12 +1772,16 @@ function bp_displayed_user_link() { /** * Alias of {@link bp_displayed_user_id()}. + * + * @since 1.0.0 */ function bp_current_user_id() { return bp_displayed_user_id(); } /** * Generate the link for the displayed user's profile. * + * @since 1.0.0 + * * @return string */ function bp_displayed_user_domain() { @@ -1580,6 +1800,8 @@ function bp_displayed_user_domain() { /** * Generate the link for the logged-in user's profile. * + * @since 1.0.0 + * * @return string */ function bp_loggedin_user_domain() { @@ -1597,6 +1819,8 @@ function bp_loggedin_user_domain() { /** * Output the displayed user's display name. + * + * @since 1.0.0 */ function bp_displayed_user_fullname() { echo bp_get_displayed_user_fullname(); @@ -1604,6 +1828,8 @@ function bp_displayed_user_fullname() { /** * Get the displayed user's display name. * + * @since 1.2.0 + * * @return string */ function bp_get_displayed_user_fullname() { @@ -1621,12 +1847,16 @@ function bp_displayed_user_fullname() { /** * Alias of {@link bp_get_displayed_user_fullname()}. + * + * @since 1.0.0 */ function bp_user_fullname() { echo bp_get_displayed_user_fullname(); } /** * Output the logged-in user's display name. + * + * @since 1.0.0 */ function bp_loggedin_user_fullname() { echo bp_get_loggedin_user_fullname(); @@ -1634,6 +1864,8 @@ function bp_loggedin_user_fullname() { /** * Get the logged-in user's display name. * + * @since 1.0.0 + * * @return string */ function bp_get_loggedin_user_fullname() { @@ -1651,6 +1883,8 @@ function bp_loggedin_user_fullname() { /** * Output the username of the displayed user. + * + * @since 1.2.0 */ function bp_displayed_user_username() { echo bp_get_displayed_user_username(); @@ -1658,6 +1892,8 @@ function bp_displayed_user_username() { /** * Get the username of the displayed user. * + * @since 1.2.0 + * * @return string */ function bp_get_displayed_user_username() { @@ -1681,6 +1917,8 @@ function bp_displayed_user_username() { /** * Output the username of the logged-in user. + * + * @since 1.2.0 */ function bp_loggedin_user_username() { echo bp_get_loggedin_user_username(); @@ -1688,6 +1926,8 @@ function bp_loggedin_user_username() { /** * Get the username of the logged-in user. * + * @since 1.2.0 + * * @return string */ function bp_get_loggedin_user_username() { @@ -1728,6 +1968,13 @@ function bp_current_member_type_message() { $message = sprintf( __( 'Viewing members of the type: %s', 'buddypress' ), '<strong>' . $type_object->labels['singular_name'] . '</strong>' ); + /** + * Filters the current member type message. + * + * @since 2.3.0 + * + * @param string $message Message to filter. + */ return apply_filters( 'bp_get_current_member_type_message', $message ); } @@ -1738,9 +1985,6 @@ function bp_current_member_type_message() { * * @since 1.5.0 * - * @uses bp_get_signup_slug() To make sure there is a slug assigned to the page. - * @uses bp_locate_template() To make sure a template exists to provide output. - * * @return bool True if page and template exist, false if not. */ function bp_has_custom_signup_page() { @@ -1754,6 +1998,8 @@ function bp_has_custom_signup_page() { /** * Output the URL to the signup page. + * + * @since 1.0.0 */ function bp_signup_page() { echo esc_url( bp_get_signup_page() ); @@ -1761,6 +2007,8 @@ function bp_signup_page() { /** * Get the URL to the signup page. * + * @since 1.1.0 + * * @return string */ function bp_get_signup_page() { @@ -1785,8 +2033,6 @@ function bp_signup_page() { * * @since 1.5.0 * - * @uses bp_get_activate_slug() To make sure there is a slug assigned to the page. - * @uses bp_locate_template() To make sure a template exists to provide output. * @return boolean True if page and template exist, false if not. */ function bp_has_custom_activation_page() { @@ -1800,6 +2046,8 @@ function bp_has_custom_activation_page() { /** * Output the URL of the activation page. + * + * @since 1.0.0 */ function bp_activation_page() { echo esc_url( bp_get_activation_page() ); @@ -1807,6 +2055,8 @@ function bp_activation_page() { /** * Get the URL of the activation page. * + * @since 1.2.0 + * * @return string */ function bp_get_activation_page() { @@ -1828,6 +2078,8 @@ function bp_activation_page() { /** * Output the username submitted during signup. + * + * @since 1.1.0 */ function bp_signup_username_value() { echo bp_get_signup_username_value(); @@ -1835,6 +2087,8 @@ function bp_signup_username_value() { /** * Get the username submitted during signup. * + * @since 1.1.0 + * * @todo This should be properly escaped. * * @return string @@ -1856,6 +2110,8 @@ function bp_signup_username_value() { /** * Output the user email address submitted during signup. + * + * @since 1.1.0 */ function bp_signup_email_value() { echo bp_get_signup_email_value(); @@ -1863,6 +2119,8 @@ function bp_signup_email_value() { /** * Get the email address submitted during signup. * + * @since 1.1.0 + * * @todo This should be properly escaped. * * @return string @@ -1884,6 +2142,8 @@ function bp_signup_email_value() { /** * Output the 'signup_with_blog' value submitted during signup. + * + * @since 1.1.0 */ function bp_signup_with_blog_value() { echo bp_get_signup_with_blog_value(); @@ -1891,6 +2151,8 @@ function bp_signup_with_blog_value() { /** * Get the 'signup_with_blog' value submitted during signup. * + * @since 1.1.0 + * * @return string */ function bp_get_signup_with_blog_value() { @@ -1910,6 +2172,8 @@ function bp_signup_with_blog_value() { /** * Output the 'signup_blog_url' value submitted at signup. + * + * @since 1.1.0 */ function bp_signup_blog_url_value() { echo bp_get_signup_blog_url_value(); @@ -1917,6 +2181,8 @@ function bp_signup_blog_url_value() { /** * Get the 'signup_blog_url' value submitted at signup. * + * @since 1.1.0 + * * @todo Should be properly escaped. * * @return string @@ -1972,6 +2238,8 @@ function bp_signup_subdomain_base() { /** * Output the 'signup_blog_titl' value submitted at signup. + * + * @since 1.1.0 */ function bp_signup_blog_title_value() { echo bp_get_signup_blog_title_value(); @@ -1979,6 +2247,8 @@ function bp_signup_blog_title_value() { /** * Get the 'signup_blog_title' value submitted at signup. * + * @since 1.1.0 + * * @todo Should be properly escaped. * * @return string @@ -2000,6 +2270,8 @@ function bp_signup_blog_title_value() { /** * Output the 'signup_blog_privacy' value submitted at signup. + * + * @since 1.1.0 */ function bp_signup_blog_privacy_value() { echo bp_get_signup_blog_privacy_value(); @@ -2007,6 +2279,8 @@ function bp_signup_blog_privacy_value() { /** * Get the 'signup_blog_privacy' value submitted at signup. * + * @since 1.1.0 + * * @todo Should be properly escaped. * * @return string @@ -2028,6 +2302,8 @@ function bp_signup_blog_privacy_value() { /** * Output the avatar dir used during signup. + * + * @since 1.1.0 */ function bp_signup_avatar_dir_value() { echo bp_get_signup_avatar_dir_value(); @@ -2035,6 +2311,8 @@ function bp_signup_avatar_dir_value() { /** * Get the avatar dir used during signup. * + * @since 1.1.0 + * * @return string */ function bp_get_signup_avatar_dir_value() { @@ -2064,6 +2342,8 @@ function bp_signup_avatar_dir_value() { /** * Output the current signup step. + * + * @since 1.1.0 */ function bp_current_signup_step() { echo bp_get_current_signup_step(); @@ -2071,6 +2351,8 @@ function bp_current_signup_step() { /** * Get the current signup step. * + * @since 1.1.0 + * * @return string */ function bp_get_current_signup_step() { @@ -2080,6 +2362,8 @@ function bp_current_signup_step() { /** * Output the user avatar during signup. * + * @since 1.1.0 + * * @see bp_get_signup_avatar() for description of arguments. * * @param array|string $args See {@link bp_get_signup_avatar(}. @@ -2090,6 +2374,8 @@ function bp_signup_avatar( $args = '' ) { /** * Get the user avatar during signup. * + * @since 1.1.0 + * * @see bp_core_fetch_avatar() for description of arguments. * * @param array|string $args { @@ -2126,7 +2412,7 @@ function bp_signup_avatar( $args = '' ) { 'class' => $class ) ); - // No avatar DIR was found. + // No avatar DIR was found. } else { // Set default gravatar type. @@ -2163,6 +2449,8 @@ function bp_signup_avatar( $args = '' ) { /** * Output whether signup is allowed. * + * @since 1.1.0 + * * @todo Remove this function. Echoing a bool is pointless. */ function bp_signup_allowed() { @@ -2171,6 +2459,8 @@ function bp_signup_allowed() { /** * Is user signup allowed? * + * @since 1.1.0 + * * @return bool */ function bp_get_signup_allowed() { @@ -2219,6 +2509,8 @@ add_action( 'bp_head', 'bp_members_activity_feed' ); /** * Output a link to a members component subpage. * + * @since 1.5.0 + * * @see bp_get_members_component_link() for description of parameters. * * @param string $component See {@bp_get_members_component_link()}. @@ -2232,6 +2524,8 @@ function bp_members_component_link( $component, $action = '', $query_args = '', /** * Generate a link to a members component subpage. * + * @since 1.5.0 + * * @param string $component ID of the component (eg 'friends'). * @param string $action Optional. 'action' slug (eg 'invites'). * @param array|string $query_args Optional. Array of URL params to add to the 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 fcb54ff022df71608c43ecce99417073bfc60d1e..f83a24aab0eb88f159c7918db14ab2101f9c87a6 100644 --- a/wp-content/plugins/buddypress/bp-members/bp-members-widgets.php +++ b/wp-content/plugins/buddypress/bp-members/bp-members-widgets.php @@ -10,9 +10,11 @@ // Exit if accessed directly. defined( 'ABSPATH' ) || exit; -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'; +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. diff --git a/wp-content/plugins/buddypress/bp-members/classes/class-bp-core-members-template.php b/wp-content/plugins/buddypress/bp-members/classes/class-bp-core-members-template.php index 6d7d700bca30caca1688124a75df8b2280d97a7c..7512c4442440e223fab8b3e44bae1a2bd61e97c7 100644 --- a/wp-content/plugins/buddypress/bp-members/classes/class-bp-core-members-template.php +++ b/wp-content/plugins/buddypress/bp-members/classes/class-bp-core-members-template.php @@ -13,12 +13,15 @@ defined( 'ABSPATH' ) || exit; * The main member template loop class. * * Responsible for loading a group of members into a loop for display. + * + * @since 1.0.0 */ class BP_Core_Members_Template { /** * The loop iterator. * + * @since 1.0.0 * @var int */ public $current_member = -1; @@ -26,6 +29,7 @@ class BP_Core_Members_Template { /** * The number of members returned by the paged query. * + * @since 1.0.0 * @var int */ public $member_count; @@ -33,6 +37,7 @@ class BP_Core_Members_Template { /** * Array of members located by the query. * + * @since 1.0.0 * @var array */ public $members; @@ -40,6 +45,7 @@ class BP_Core_Members_Template { /** * The member object currently being iterated on. * + * @since 1.0.0 * @var object */ public $member; @@ -47,6 +53,7 @@ class BP_Core_Members_Template { /** * A flag for whether the loop is currently being iterated. * + * @since 1.0.0 * @var bool */ public $in_the_loop; @@ -54,6 +61,7 @@ class BP_Core_Members_Template { /** * The type of member being requested. Used for ordering results. * + * @since 2.3.0 * @var string */ public $type; @@ -61,6 +69,7 @@ class BP_Core_Members_Template { /** * The unique string used for pagination queries. * + * @since 2.2.0 * @var string */ public $pag_arg; @@ -68,6 +77,7 @@ class BP_Core_Members_Template { /** * The page number being requested. * + * @since 1.0.0 * @var string */ public $pag_page; @@ -75,6 +85,7 @@ class BP_Core_Members_Template { /** * The number of items being requested per page. * + * @since 1.0.0 * @var string */ public $pag_num; @@ -82,6 +93,7 @@ class BP_Core_Members_Template { /** * An HTML string containing pagination links. * + * @since 1.0.0 * @var string */ public $pag_links; @@ -89,6 +101,7 @@ class BP_Core_Members_Template { /** * The total number of members matching the query parameters. * + * @since 1.0.0 * @var int */ public $total_member_count; @@ -96,6 +109,8 @@ class BP_Core_Members_Template { /** * Constructor method. * + * @since 1.5.0 + * * @see BP_User_Query for an in-depth description of parameters. * * @param string $type Sort order. @@ -184,6 +199,8 @@ class BP_Core_Members_Template { /** * Whether there are members available in the loop. * + * @since 1.0.0 + * * @see bp_has_members() * * @return bool True if there are items in the loop, otherwise false. @@ -198,6 +215,8 @@ class BP_Core_Members_Template { /** * Set up the next member and iterate index. * + * @since 1.0.0 + * * @return object The next member to iterate over. */ function next_member() { @@ -209,6 +228,8 @@ class BP_Core_Members_Template { /** * Rewind the members and reset member index. + * + * @since 1.0.0 */ function rewind_members() { $this->current_member = -1; @@ -224,6 +245,8 @@ class BP_Core_Members_Template { * that controls iteration inside the members loop, eg: * while ( bp_members() ) { ... * + * @since 1.2.0 + * * @see bp_members() * * @return bool True if there are more members to show, otherwise false. @@ -254,6 +277,8 @@ class BP_Core_Members_Template { * while looping, so that template tags used during that iteration make * reference to the current member. * + * @since 1.0.0 + * * @see bp_the_member() */ function the_member() { 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 7d45698f47ae3a77ed481fd3c52395824c6a0909..b501e62a39d2ec29499ddfa42dbf913039baf5a8 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 @@ -19,6 +19,8 @@ class BP_Core_Members_Widget extends WP_Widget { /** * Constructor method. + * + * @since 1.5.0 */ public function __construct() { @@ -28,19 +30,30 @@ class BP_Core_Members_Widget extends WP_Widget { // Call WP_Widget constructor. parent::__construct( false, $name, array( - 'description' => $description, - 'classname' => 'widget_bp_core_members_widget buddypress widget', + 'description' => $description, + 'classname' => 'widget_bp_core_members_widget buddypress widget', + 'customize_selective_refresh' => true, ) ); - // Maybe enqueue JS for widget. - if ( is_active_widget( false, false, $this->id_base ) && ! is_admin() && ! is_network_admin() ) { - wp_enqueue_script( 'bp-widget-members' ); + if ( is_customize_preview() || is_active_widget( false, false, $this->id_base ) ) { + add_action( 'bp_enqueue_scripts', array( $this, 'enqueue_scripts' ) ); } } + /** + * Enqueue scripts. + * + * @since 2.6.0 + */ + public function enqueue_scripts() { + wp_enqueue_script( 'bp-widget-members' ); + } + /** * Display the Members widget. * + * @since 1.0.3 + * * @see WP_Widget::widget() for description of parameters. * * @param array $args Widget arguments. @@ -159,6 +172,8 @@ class BP_Core_Members_Widget extends WP_Widget { /** * Update the Members widget options. * + * @since 1.0.3 + * * @param array $new_instance The new instance options. * @param array $old_instance The old instance options. * @return array $instance The parsed options to be saved. @@ -177,8 +192,9 @@ class BP_Core_Members_Widget extends WP_Widget { /** * Output the Members widget options form. * - * @param array $instance Widget instance settings. + * @since 1.0.3 * + * @param array $instance Widget instance settings. * @return void */ public function form( $instance ) { @@ -228,7 +244,6 @@ class BP_Core_Members_Widget extends WP_Widget { * * @since 2.3.0 * - * @uses bp_parse_args() To merge widget settings into defaults. * * @param array $instance Widget instance settings. * @return array diff --git a/wp-content/plugins/buddypress/bp-members/classes/class-bp-core-recently-active-widget.php b/wp-content/plugins/buddypress/bp-members/classes/class-bp-core-recently-active-widget.php index 34e156c5fb74ef2416c3a290f1e17211429b5138..11239d141c00a9c1da35e3bf92168945a8630ed1 100644 --- a/wp-content/plugins/buddypress/bp-members/classes/class-bp-core-recently-active-widget.php +++ b/wp-content/plugins/buddypress/bp-members/classes/class-bp-core-recently-active-widget.php @@ -19,19 +19,24 @@ class BP_Core_Recently_Active_Widget extends WP_Widget { /** * Constructor method. + * + * @since 1.5.0 */ public function __construct() { $name = _x( '(BuddyPress) Recently Active Members', 'widget name', 'buddypress' ); $description = __( 'Profile photos of recently active members', 'buddypress' ); parent::__construct( false, $name, array( - 'description' => $description, - 'classname' => 'widget_bp_core_recently_active_widget buddypress widget', + 'description' => $description, + 'classname' => 'widget_bp_core_recently_active_widget buddypress widget', + 'customize_selective_refresh' => true, ) ); } /** * Display the Recently Active widget. * + * @since 1.0.3 + * * @see WP_Widget::widget() for description of parameters. * * @param array $args Widget arguments. @@ -106,6 +111,8 @@ class BP_Core_Recently_Active_Widget extends WP_Widget { /** * Update the Recently Active widget options. * + * @since 1.0.3 + * * @param array $new_instance The new instance options. * @param array $old_instance The old instance options. * @return array $instance The parsed options to be saved. @@ -121,6 +128,8 @@ class BP_Core_Recently_Active_Widget extends WP_Widget { /** * Output the Recently Active widget options form. * + * @since 1.0.3 + * * @param array $instance Widget instance settings. * @return void */ @@ -153,7 +162,6 @@ class BP_Core_Recently_Active_Widget extends WP_Widget { * * @since 2.3.0 * - * @uses bp_parse_args() To merge widget settings into defaults. * * @param array $instance Widget instance settings. * @return array diff --git a/wp-content/plugins/buddypress/bp-members/classes/class-bp-core-whos-online-widget.php b/wp-content/plugins/buddypress/bp-members/classes/class-bp-core-whos-online-widget.php index 105b63a4011eafa18cd11b86bb00081434534e06..7a70b301cc2bfac0270336230dfc6874860ac5e5 100644 --- a/wp-content/plugins/buddypress/bp-members/classes/class-bp-core-whos-online-widget.php +++ b/wp-content/plugins/buddypress/bp-members/classes/class-bp-core-whos-online-widget.php @@ -19,19 +19,24 @@ class BP_Core_Whos_Online_Widget extends WP_Widget { /** * Constructor method. + * + * @since 1.5.0 */ public function __construct() { $name = _x( "(BuddyPress) Who's Online", 'widget name', 'buddypress' ); $description = __( 'Profile photos of online users', 'buddypress' ); parent::__construct( false, $name, array( - 'description' => $description, - 'classname' => 'widget_bp_core_whos_online_widget buddypress widget', + 'description' => $description, + 'classname' => 'widget_bp_core_whos_online_widget buddypress widget', + 'customize_selective_refresh' => true, ) ); } /** * Display the Who's Online widget. * + * @since 1.0.3 + * * @see WP_Widget::widget() for description of parameters. * * @param array $args Widget arguments. @@ -106,6 +111,8 @@ class BP_Core_Whos_Online_Widget extends WP_Widget { /** * Update the Who's Online widget options. * + * @since 1.0.3 + * * @param array $new_instance The new instance options. * @param array $old_instance The old instance options. * @return array $instance The parsed options to be saved. @@ -121,6 +128,8 @@ class BP_Core_Whos_Online_Widget extends WP_Widget { /** * Output the Who's Online widget options form. * + * @since 1.0.3 + * * @param array $instance Widget instance settings. * @return void */ @@ -153,7 +162,6 @@ class BP_Core_Whos_Online_Widget extends WP_Widget { * * @since 2.3.0 * - * @uses bp_parse_args() To merge widget settings into defaults. * * @param array $instance Widget instance settings. * @return array 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 8e43006928ad4a10055bdc849996289a76df7129..14930875ae623448261ac5fc919a0c679ddfffa6 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 @@ -65,7 +65,6 @@ class BP_Members_Admin { * * @since 2.0.0 * - * @uses buddypress() to get BuddyPress main instance. */ public static function register_members_admin() { if ( ! is_admin() ) { @@ -368,7 +367,6 @@ class BP_Members_Admin { * * @since 2.1.0 * - * @uses add_submenu_page() To add the Edit Profile page in Profile section. */ public function user_profile_menu() { @@ -406,7 +404,6 @@ class BP_Members_Admin { * * @since 2.0.0 * - * @uses add_submenu_page() To add the Edit Profile page in Users/Profile section. */ public function admin_menus() { @@ -934,7 +931,14 @@ class BP_Members_Admin { <?php else : ?> - <p><?php printf( __( 'No user found with this ID. <a href="%s">Go back and try again</a>.', 'buddypress' ), esc_url( bp_get_admin_url( 'users.php' ) ) ); ?></p> + <p><?php + printf( + '%1$s <a href="%2$s">%3$s</a>', + __( 'No user found with this ID.', 'buddypress' ), + esc_url( bp_get_admin_url( 'users.php' ) ), + __( 'Go back and try again.', 'buddypress' ) + ); + ?></p> <?php endif; ?> @@ -1102,9 +1106,15 @@ class BP_Members_Admin { $current_type = bp_get_member_type( $user->ID ); ?> - <label for="bp-members-profile-member-type" class="screen-reader-text"><?php esc_html_e( 'Select member type', 'buddypress' ); ?></label> + <label for="bp-members-profile-member-type" class="screen-reader-text"><?php + /* translators: accessibility text */ + esc_html_e( 'Select member type', 'buddypress' ); + ?></label> <select name="bp-members-profile-member-type" id="bp-members-profile-member-type"> - <option value="" <?php selected( '', $current_type ); ?>><?php /* translators: no option picked in select box */ esc_attr_e( '----', 'buddypress' ) ?></option> + <option value="" <?php selected( '', $current_type ); ?>><?php + /* translators: no option picked in select box */ + esc_attr_e( '----', 'buddypress' ); + ?></option> <?php foreach ( $types as $type ) : ?> <option value="<?php echo esc_attr( $type->name ) ?>" <?php selected( $type->name, $current_type ) ?>><?php echo esc_html( $type->labels['singular_name'] ) ?></option> <?php endforeach; ?> @@ -1221,7 +1231,6 @@ class BP_Members_Admin { * * @since 2.1.0 * - * @uses user_admin_url() * * @param string $profile_link Profile Link for admin bar. * @param string $url Profile URL. @@ -1366,7 +1375,10 @@ class BP_Members_Admin { if ( ! empty( $required ) ) { require_once( ABSPATH . 'wp-admin/includes/class-wp-' . $required . '-list-table.php' ); - require_once( buddypress()->members->admin->admin_dir . 'bp-members-admin-classes.php' ); + + if ( ! buddypress()->do_autoload ) { + require_once( buddypress()->members->admin->admin_dir . 'bp-members-admin-classes.php' ); + } } return new $class(); @@ -1451,8 +1463,11 @@ class BP_Members_Admin { // Add accessible hidden headings and text for the Pending Users screen. if ( bp_get_major_wp_version() >= 4.4 ) { get_current_screen()->set_screen_reader_content( array( + /* translators: accessibility text */ 'heading_views' => __( 'Filter users list', 'buddypress' ), + /* translators: accessibility text */ 'heading_pagination' => __( 'Pending users list navigation', 'buddypress' ), + /* translators: accessibility text */ 'heading_list' => __( 'Pending users list', 'buddypress' ), ) ); } 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 9c4a87355b6e055f92bcb4e1caaaac2b3c391ac7..73b45e0346e60820bb88ee154e54b05535aad838 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 @@ -12,6 +12,8 @@ defined( 'ABSPATH' ) || exit; /** * Defines the BuddyPress Members Component. + * + * @since 1.5.0 */ class BP_Members_Component extends BP_Component { @@ -45,6 +47,8 @@ class BP_Members_Component extends BP_Component { /** * Include bp-members files. * + * @since 1.5.0 + * * @see BP_Component::includes() for description of parameters. * * @param array $includes See {@link BP_Component::includes()}. @@ -54,7 +58,6 @@ class BP_Members_Component extends BP_Component { // Always include these files. $includes = array( 'actions', - 'classes', 'filters', 'screens', 'template', @@ -64,6 +67,10 @@ class BP_Members_Component extends BP_Component { 'cache', ); + if ( ! buddypress()->do_autoload ) { + $includes[] = 'classes'; + } + if ( bp_is_active( 'activity' ) ) { $includes[] = 'activity'; } @@ -110,7 +117,7 @@ class BP_Members_Component extends BP_Component { 'search_string' => __( 'Search Members...', 'buddypress' ), 'global_tables' => array( 'table_name_last_activity' => bp_core_get_table_prefix() . 'bp_activity', - 'table_name_signups' => $wpdb->base_prefix . 'signups', // signups is a global WordPress table + 'table_name_signups' => $wpdb->base_prefix . 'signups', // Signups is a global WordPress table. ) ); @@ -143,6 +150,14 @@ class BP_Members_Component extends BP_Component { // The domain for the user currently being displayed. $bp->displayed_user->domain = bp_core_get_user_domain( bp_displayed_user_id() ); + // Initialize the nav for the members component. + $this->nav = new BP_Core_Nav(); + + // If A user is displayed, check if there is a front template + if ( bp_get_displayed_user() ) { + $bp->displayed_user->front_template = bp_displayed_user_get_front_template(); + } + /** Signup *********************************************************** */ @@ -168,15 +183,14 @@ class BP_Members_Component extends BP_Component { /** Default Profile Component **************************************** */ - - if ( defined( 'BP_DEFAULT_COMPONENT' ) && BP_DEFAULT_COMPONENT ) { + if ( bp_displayed_user_has_front_template() ) { + $bp->default_component = 'front'; + } elseif ( defined( 'BP_DEFAULT_COMPONENT' ) && BP_DEFAULT_COMPONENT ) { $bp->default_component = BP_DEFAULT_COMPONENT; + } elseif ( bp_is_active( 'activity' ) && isset( $bp->pages->activity ) ) { + $bp->default_component = bp_get_activity_slug(); } else { - if ( bp_is_active( 'activity' ) && isset( $bp->pages->activity ) ) { - $bp->default_component = bp_get_activity_slug(); - } else { - $bp->default_component = ( 'xprofile' === $bp->profile->id ) ? 'profile' : $bp->profile->id; - } + $bp->default_component = ( 'xprofile' === $bp->profile->id ) ? 'profile' : $bp->profile->id; } /** Canonical Component Stack **************************************** @@ -232,13 +246,15 @@ class BP_Members_Component extends BP_Component { */ public function setup_nav( $main_nav = array(), $sub_nav = array() ) { - // Bail if XProfile component is active. - if ( bp_is_active( 'xprofile' ) ) { + // Don't set up navigation if there's no member. + if ( ! is_user_logged_in() && ! bp_is_user() ) { return; } - // Don't set up navigation if there's no member. - if ( ! is_user_logged_in() && ! bp_is_user() ) { + $is_xprofile_active = bp_is_active( 'xprofile' ); + + // Bail if XProfile component is active and there's no custom front page for the user. + if ( ! bp_displayed_user_has_front_template() && $is_xprofile_active ) { return; } @@ -251,34 +267,106 @@ class BP_Members_Component extends BP_Component { return; } - $slug = bp_get_profile_slug(); - $profile_link = trailingslashit( $user_domain . $slug ); - - // Setup the main navigation. - $main_nav = array( - 'name' => _x( 'Profile', 'Member profile main navigation', 'buddypress' ), - 'slug' => $slug, - 'position' => 20, - 'screen_function' => 'bp_members_screen_display_profile', - 'default_subnav_slug' => 'public', - 'item_css_id' => buddypress()->profile->id - ); + // Set slug to profile in case the xProfile component is not active + $slug = bp_get_profile_slug(); + + // Defaults to empty navs + $this->main_nav = array(); + $this->sub_nav = array(); + + if ( ! $is_xprofile_active ) { + $this->main_nav = array( + 'name' => _x( 'Profile', 'Member profile main navigation', 'buddypress' ), + 'slug' => $slug, + 'position' => 20, + 'screen_function' => 'bp_members_screen_display_profile', + 'default_subnav_slug' => 'public', + 'item_css_id' => buddypress()->profile->id + ); + } - // Setup the subnav items for the member profile. - $sub_nav[] = array( + /** + * Setup the subnav items for the member profile. + * + * This is required in case there's a custom front or in case the xprofile component + * is not active. + */ + $this->sub_nav = array( 'name' => _x( 'View', 'Member profile view', 'buddypress' ), 'slug' => 'public', - 'parent_url' => $profile_link, + 'parent_url' => trailingslashit( $user_domain . $slug ), 'parent_slug' => $slug, 'screen_function' => 'bp_members_screen_display_profile', 'position' => 10 ); + /** + * If there's a front template the members component nav + * will be there to display the user's front page. + */ + if ( bp_displayed_user_has_front_template() ) { + $main_nav = array( + 'name' => _x( 'Home', 'Member Home page', 'buddypress' ), + 'slug' => 'front', + 'position' => 5, + 'screen_function' => 'bp_members_screen_display_profile', + 'default_subnav_slug' => 'public', + ); + + // We need a dummy subnav for the front page to load. + $front_subnav = $this->sub_nav; + $front_subnav['parent_slug'] = 'front'; + + // In case the subnav is displayed in the front template + $front_subnav['parent_url'] = trailingslashit( $user_domain . 'front' ); + + // Set the subnav + $sub_nav[] = $front_subnav; + + /** + * If the profile component is not active, we need to create a new + * nav to display the WordPress profile. + */ + if ( ! $is_xprofile_active ) { + add_action( 'bp_members_setup_nav', array( $this, 'setup_profile_nav' ) ); + } + + /** + * If there's no front template and xProfile is not active, the members + * component nav will be there to display the WordPress profile + */ + } else { + $main_nav = $this->main_nav; + $sub_nav[] = $this->sub_nav; + } + + parent::setup_nav( $main_nav, $sub_nav ); } + /** + * Set up a profile nav in case the xProfile + * component is not active and a front template is + * used. + * + * @since 2.6.0 + */ + public function setup_profile_nav() { + if ( empty( $this->main_nav ) || empty( $this->sub_nav ) ) { + return; + } + + // Add the main nav + bp_core_new_nav_item( $this->main_nav, 'members' ); + + // Add the sub nav item. + bp_core_new_subnav_item( $this->sub_nav, 'members' ); + } + /** * Set up the title for pages and <title>. + * + * @since 1.5.0 */ public function setup_title() { $bp = buddypress(); diff --git a/wp-content/plugins/buddypress/bp-members/classes/class-bp-members-list-table.php b/wp-content/plugins/buddypress/bp-members/classes/class-bp-members-list-table.php index 0ea6286d7402368886d1f59f5e2ddb871b15d7a9..95402a49048c753fd5777692af2dd3eac1bc44ab 100644 --- a/wp-content/plugins/buddypress/bp-members/classes/class-bp-members-list-table.php +++ b/wp-content/plugins/buddypress/bp-members/classes/class-bp-members-list-table.php @@ -93,25 +93,25 @@ class BP_Members_List_Table extends WP_Users_List_Table { public function views() { global $role; - // Used to reset the role + // Used to reset the role. $reset_role = $role; - // Temporarly set the role to registered + // Temporarly set the role to registered. $role = 'registered'; - // Used to reset the screen id once views are displayed + // Used to reset the screen id once views are displayed. $reset_screen_id = $this->screen->id; - // Temporarly set the screen id to the users one + // Temporarly set the screen id to the users one. $this->screen->id = 'users'; - // Use the parent function so that other plugins can safely add views + // Use the parent function so that other plugins can safely add views. parent::views(); - // Reset the role + // Reset the role. $role = $reset_role; - // Reset the screen id + // Reset the screen id. $this->screen->id = $reset_screen_id; } @@ -260,7 +260,10 @@ class BP_Members_List_Table extends WP_Users_List_Table { */ public function column_cb( $signup_object = null ) { ?> - <label class="screen-reader-text" for="signup_<?php echo intval( $signup_object->id ); ?>"><?php printf( esc_html__( 'Select user: %s', 'buddypress' ), $signup_object->user_login ); ?></label> + <label class="screen-reader-text" for="signup_<?php echo intval( $signup_object->id ); ?>"><?php + /* translators: accessibility text */ + printf( esc_html__( 'Select user: %s', 'buddypress' ), $signup_object->user_login ); + ?></label> <input type="checkbox" id="signup_<?php echo intval( $signup_object->id ) ?>" name="allsignups[]" value="<?php echo esc_attr( $signup_object->id ) ?>" /> <?php } @@ -334,7 +337,7 @@ class BP_Members_List_Table extends WP_Users_List_Table { * * @since 2.0.0 * - * @param object $signup_object The signup data object. + * @param object|null $signup_object The signup data object. */ public function column_name( $signup_object = null ) { echo esc_html( $signup_object->user_name ); diff --git a/wp-content/plugins/buddypress/bp-members/classes/class-bp-members-ms-list-table.php b/wp-content/plugins/buddypress/bp-members/classes/class-bp-members-ms-list-table.php index 6ecd98cb64b651004cd171d0f78ba524dddd4234..664d4c6cfab18ea8736de3572f4280387e4d549e 100644 --- a/wp-content/plugins/buddypress/bp-members/classes/class-bp-members-ms-list-table.php +++ b/wp-content/plugins/buddypress/bp-members/classes/class-bp-members-ms-list-table.php @@ -94,25 +94,25 @@ class BP_Members_MS_List_Table extends WP_MS_Users_List_Table { public function views() { global $role; - // Used to reset the role + // Used to reset the role. $reset_role = $role; - // Temporarly set the role to registered + // Temporarly set the role to registered. $role = 'registered'; - // Used to reset the screen id once views are displayed + // Used to reset the screen id once views are displayed. $reset_screen_id = $this->screen->id; - // Temporarly set the screen id to the users one + // Temporarly set the screen id to the users one. $this->screen->id = 'users-network'; - // Use the parent function so that other plugins can safely add views + // Use the parent function so that other plugins can safely add views. parent::views(); - // Reset the role + // Reset the role. $role = $reset_role; - // Reset the screen id + // Reset the screen id. $this->screen->id = $reset_screen_id; } @@ -253,7 +253,10 @@ class BP_Members_MS_List_Table extends WP_MS_Users_List_Table { */ public function column_cb( $signup_object = null ) { ?> - <label class="screen-reader-text" for="signup_<?php echo intval( $signup_object->id ); ?>"><?php printf( esc_html__( 'Select user: %s', 'buddypress' ), $signup_object->user_login ); ?></label> + <label class="screen-reader-text" for="signup_<?php echo intval( $signup_object->id ); ?>"><?php printf( + /* translators: accessibility text */ + esc_html__( 'Select user: %s', 'buddypress' ), $signup_object->user_login ); + ?></label> <input type="checkbox" id="signup_<?php echo intval( $signup_object->id ) ?>" name="allsignups[]" value="<?php echo esc_attr( $signup_object->id ) ?>" /> <?php } 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 936b72cf346a55e73f1368fb0558eb3c84117ae1..bbf04082800c9d4c0ff29e05ddc58c6de66dbd09 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 @@ -9,12 +9,15 @@ /** * Class used to handle Signups. + * + * @since 2.0.0 */ class BP_Signup { /** * ID of the signup which the object relates to. * + * @since 2.0.0 * @var integer */ public $id; @@ -22,6 +25,7 @@ class BP_Signup { /** * The URL to the full size of the avatar for the user. * + * @since 2.0.0 * @var string */ public $avatar; @@ -29,6 +33,7 @@ class BP_Signup { /** * The username for the user. * + * @since 2.0.0 * @var string */ public $user_login; @@ -36,6 +41,7 @@ class BP_Signup { /** * The email for the user. * + * @since 2.0.0 * @var string */ public $user_email; @@ -43,6 +49,7 @@ class BP_Signup { /** * The full name of the user. * + * @since 2.0.0 * @var string */ public $user_name; @@ -50,6 +57,7 @@ class BP_Signup { /** * Metadata associated with the signup. * + * @since 2.0.0 * @var array */ public $meta; @@ -57,6 +65,7 @@ class BP_Signup { /** * The registered date for the user. * + * @since 2.0.0 * @var string */ public $registered; @@ -64,6 +73,7 @@ class BP_Signup { /** * The activation key for the user. * + * @since 2.0.0 * @var string */ public $activation_key; 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 900fcaa5d9cfceb55b63ab084bbb1ce5b3d5b186..9bc68d54e9bd90039c53426a9066597d5d3c8945 100644 --- a/wp-content/plugins/buddypress/bp-messages/bp-messages-functions.php +++ b/wp-content/plugins/buddypress/bp-messages/bp-messages-functions.php @@ -335,9 +335,9 @@ function messages_mark_thread_unread( $thread_id ) { * @param string $content Content of the message. */ function messages_add_callback_values( $recipients, $subject, $content ) { - @setcookie( 'bp_messages_send_to', $recipients, time() + 60 * 60 * 24, COOKIEPATH ); - @setcookie( 'bp_messages_subject', $subject, time() + 60 * 60 * 24, COOKIEPATH ); - @setcookie( 'bp_messages_content', $content, time() + 60 * 60 * 24, COOKIEPATH ); + @setcookie( 'bp_messages_send_to', $recipients, time() + 60 * 60 * 24, COOKIEPATH, COOKIE_DOMAIN, is_ssl() ); + @setcookie( 'bp_messages_subject', $subject, time() + 60 * 60 * 24, COOKIEPATH, COOKIE_DOMAIN, is_ssl() ); + @setcookie( 'bp_messages_content', $content, time() + 60 * 60 * 24, COOKIEPATH, COOKIE_DOMAIN, is_ssl() ); } /** @@ -346,9 +346,9 @@ function messages_add_callback_values( $recipients, $subject, $content ) { * @see messages_add_callback_values() */ function messages_remove_callback_values() { - @setcookie( 'bp_messages_send_to', false, time() - 1000, COOKIEPATH ); - @setcookie( 'bp_messages_subject', false, time() - 1000, COOKIEPATH ); - @setcookie( 'bp_messages_content', false, time() - 1000, COOKIEPATH ); + @setcookie( 'bp_messages_send_to', false, time() - 1000, COOKIEPATH, COOKIE_DOMAIN, is_ssl() ); + @setcookie( 'bp_messages_subject', false, time() - 1000, COOKIEPATH, COOKIE_DOMAIN, is_ssl() ); + @setcookie( 'bp_messages_content', false, time() - 1000, COOKIEPATH, COOKIE_DOMAIN, is_ssl() ); } /** 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 f107d848a886b3ffee661098495620719303a399..f80af947b1ad66d2800dbb28650172179d2ebf0b 100644 --- a/wp-content/plugins/buddypress/bp-messages/bp-messages-loader.php +++ b/wp-content/plugins/buddypress/bp-messages/bp-messages-loader.php @@ -12,7 +12,9 @@ // Exit if accessed directly. defined( 'ABSPATH' ) || exit; -require dirname( __FILE__ ) . '/classes/class-bp-messages-component.php'; +if ( ! buddypress()->do_autoload ) { + require dirname( __FILE__ ) . '/classes/class-bp-messages-component.php'; +} /** * Bootstrap the Messages component. diff --git a/wp-content/plugins/buddypress/bp-messages/bp-messages-notifications.php b/wp-content/plugins/buddypress/bp-messages/bp-messages-notifications.php index d49594cde91fca73397a4e7ccc5eeee99638d0f9..0a0bca108743492b43a59d927f21a61e8effe96c 100644 --- a/wp-content/plugins/buddypress/bp-messages/bp-messages-notifications.php +++ b/wp-content/plugins/buddypress/bp-messages/bp-messages-notifications.php @@ -103,6 +103,7 @@ add_action( 'messages_message_sent', 'messages_notification_new_message', 10 ); */ function messages_format_notifications( $action, $item_id, $secondary_item_id, $total_items, $format = 'string' ) { $total_items = (int) $total_items; + $text = ''; $link = trailingslashit( bp_loggedin_user_domain() . bp_get_messages_slug() . '/inbox' ); $title = __( 'Inbox', 'buddypress' ); $amount = 'single'; @@ -111,9 +112,8 @@ function messages_format_notifications( $action, $item_id, $secondary_item_id, $ if ( $total_items > 1 ) { $amount = 'multiple'; $text = sprintf( __( 'You have %d new messages', 'buddypress' ), $total_items ); - } else { - $amount = 'single'; + } else { // Get message thread ID. $message = new BP_Messages_Message( $item_id ); $thread_id = $message->thread_id; @@ -127,35 +127,78 @@ function messages_format_notifications( $action, $item_id, $secondary_item_id, $ $text = sprintf( _n( 'You have %s new private message', 'You have %s new private messages', $total_items, 'buddypress' ), bp_core_number_format( $total_items ) ); } } - } - if ( 'string' === $format ) { - if ( ! empty( $link ) ) { - $retval = '<a href="' . esc_url( $link ) . '" title="' . esc_attr( $title ) . '">' . esc_html( $text ) . '</a>'; + if ( 'string' === $format ) { + if ( ! empty( $link ) ) { + $return = '<a href="' . esc_url( $link ) . '" title="' . esc_attr( $title ) . '">' . esc_html( $text ) . '</a>'; + } else { + $return = esc_html( $text ); + } + + /** + * Filters the new message notification text before the notification is created. + * + * This is a dynamic filter. Possible filter names are: + * - 'bp_messages_multiple_new_message_notification'. + * - 'bp_messages_single_new_message_notification'. + * + * @param string $return Notification text. + * @param int $total_items Number of messages referred to by the notification. + * @param string $text The raw notification test (ie, not wrapped in a link). + * @param int $item_id ID of the associated item. + * @param int $secondary_item_id ID of the secondary associated item. + */ + $return = apply_filters( 'bp_messages_' . $amount . '_new_message_notification', $return, (int) $total_items, $text, $link, $item_id, $secondary_item_id ); } else { - $retval = esc_html( $text ); + /** This filter is documented in bp-messages/bp-messages-notifications.php */ + $return = apply_filters( 'bp_messages_' . $amount . '_new_message_notification', array( + 'text' => $text, + 'link' => $link + ), $link, (int) $total_items, $text, $link, $item_id, $secondary_item_id ); + } + + // Custom notification action for the Messages component + } else { + if ( 'string' === $format ) { + $return = $text; + } else { + $return = array( + 'text' => $text, + 'link' => $link + ); } /** - * Filters the new message notification text before the notification is created. + * Backcompat for plugins that used to filter bp_messages_single_new_message_notification + * for their custom actions. These plugins should now use 'bp_messages_' . $action . '_notification' + */ + if ( has_filter( 'bp_messages_single_new_message_notification' ) ) { + if ( 'string' === $format ) { + /** This filter is documented in bp-messages/bp-messages-notifications.php */ + $return = apply_filters( 'bp_messages_single_new_message_notification', $return, (int) $total_items, $text, $link, $item_id, $secondary_item_id ); + + // Notice that there are seven parameters instead of six? Ugh... + } else { + /** This filter is documented in bp-messages/bp-messages-notifications.php */ + $return = apply_filters( 'bp_messages_single_new_message_notification', $return, $link, (int) $total_items, $text, $link, $item_id, $secondary_item_id ); + } + } + + /** + * Filters the custom action notification before the notification is created. * - * This is a dynamic filter. Possible filter names are: - * - 'bp_messages_multiple_new_message_notification'. - * - 'bp_messages_single_new_message_notification'. + * This is a dynamic filter based on the message notification action. * - * @param string $retval Notification text. - * @param int $total_items Number of messages referred to by the notification. - * @param string $text The raw notification test (ie, not wrapped in a link). + * @since 2.6.0 + * + * @param array $value An associative array containing the text and the link of the notification * @param int $item_id ID of the associated item. * @param int $secondary_item_id ID of the secondary associated item. + * @param int $total_items Number of messages referred to by the notification. + * @param string $format Return value format. 'string' for BuddyBar-compatible + * notifications; 'array' for WP Toolbar. Default: 'string'. */ - $return = apply_filters( 'bp_messages_' . $amount . '_new_message_notification', $retval, (int) $total_items, $text, $link, $item_id, $secondary_item_id ); - } else { - /** This filter is documented in bp-messages/bp-messages-notifications.php */ - $return = apply_filters( 'bp_messages_' . $amount . '_new_message_notification', array( - 'text' => $text, - 'link' => $link - ), $link, (int) $total_items, $text, $link, $item_id, $secondary_item_id ); + $return = apply_filters( "bp_messages_{$action}_notification", $return, $item_id, $secondary_item_id, $total_items, $format ); } /** diff --git a/wp-content/plugins/buddypress/bp-messages/bp-messages-screens.php b/wp-content/plugins/buddypress/bp-messages/bp-messages-screens.php index 2be493733d63f9db92a473ff4d471702209ff8b6..1e82c83a446a222429e9c14e87bfbe0efaa49399 100644 --- a/wp-content/plugins/buddypress/bp-messages/bp-messages-screens.php +++ b/wp-content/plugins/buddypress/bp-messages/bp-messages-screens.php @@ -132,7 +132,10 @@ function messages_screen_conversation() { $class = ( 0 === $count ) ? 'no-count' : 'count'; $nav_name = sprintf( __( 'Messages <span class="%s">%s</span>', 'buddypress' ), esc_attr( $class ), bp_core_number_format( $count ) ); - $bp->bp_nav[ $bp->messages->slug ]['name'] = $nav_name; + // Edit the Navigation name. + $bp->members->nav->edit_nav( array( + 'name' => $nav_name, + ), $bp->messages->slug ); /** * Fires right before the loading of the Messages view screen template file. @@ -213,8 +216,14 @@ function messages_screen_notification_settings() { <tr id="messages-notification-settings-new-message"> <td></td> <td><?php _e( 'A member sends you a new message', 'buddypress' ) ?></td> - <td class="yes"><input type="radio" name="notifications[notification_messages_new_message]" id="notification-messages-new-messages-yes" value="yes" <?php checked( $new_messages, 'yes', true ) ?>/><label for="notification-messages-new-messages-yes" class="bp-screen-reader-text"><?php _e( 'Yes, send email', 'buddypress' ); ?></label></td> - <td class="no"><input type="radio" name="notifications[notification_messages_new_message]" id="notification-messages-new-messages-no" value="no" <?php checked( $new_messages, 'no', true ) ?>/><label for="notification-messages-new-messages-no" class="bp-screen-reader-text"><?php _e( 'No, do not send email', 'buddypress' ); ?></label></td> + <td class="yes"><input type="radio" name="notifications[notification_messages_new_message]" id="notification-messages-new-messages-yes" value="yes" <?php checked( $new_messages, 'yes', true ) ?>/><label for="notification-messages-new-messages-yes" class="bp-screen-reader-text"><?php + /* translators: accessibility text */ + _e( 'Yes, send email', 'buddypress' ); + ?></label></td> + <td class="no"><input type="radio" name="notifications[notification_messages_new_message]" id="notification-messages-new-messages-no" value="no" <?php checked( $new_messages, 'no', true ) ?>/><label for="notification-messages-new-messages-no" class="bp-screen-reader-text"><?php + /* translators: accessibility text */ + _e( 'No, do not send email', 'buddypress' ); + ?></label></td> </tr> <?php 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 b5b7f8eaaa0ca176e21489288e0327d23568e55a..7515e076a0f1e726f73d2ebbad4642c63c8edfa4 100644 --- a/wp-content/plugins/buddypress/bp-messages/bp-messages-template.php +++ b/wp-content/plugins/buddypress/bp-messages/bp-messages-template.php @@ -10,8 +10,10 @@ // Exit if accessed directly. defined( 'ABSPATH' ) || exit; -require dirname( __FILE__ ) . '/classes/class-bp-messages-box-template.php'; -require dirname( __FILE__ ) . '/classes/class-bp-messages-thread-template.php'; +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. @@ -302,10 +304,12 @@ function bp_message_thread_view_link( $thread_id = 0 ) { * Filters the permalink of a particular thread. * * @since 1.0.0 + * @since 2.6.0 Added the `$thread_id` parameter. * - * @param string $value permalink of a particular thread. + * @param string $value Permalink of a particular thread. + * @param int $thread_id ID of the thread. */ - return apply_filters( 'bp_get_message_thread_view_link', trailingslashit( bp_loggedin_user_domain() . bp_get_messages_slug() . '/view/' . $thread_id ) ); + return apply_filters( 'bp_get_message_thread_view_link', trailingslashit( bp_loggedin_user_domain() . bp_get_messages_slug() . '/view/' . $thread_id ), $thread_id ); } /** @@ -544,10 +548,12 @@ function bp_message_thread_total_count( $thread_id = false ) { * Filters the current thread's total message count. * * @since 2.2.0 + * @since 2.6.0 Added the `$thread_id` parameter. * - * @param int $count Current thread total message count. + * @param int $count Current thread total message count. + * @param int $thread_id ID of the queried thread. */ - return apply_filters( 'bp_get_message_thread_total_count', $count ); + return apply_filters( 'bp_get_message_thread_total_count', $count, $thread_id ); } /** @@ -575,6 +581,7 @@ function bp_message_thread_total_and_unread_count( $thread_id = false ) { $unread = bp_get_message_thread_unread_count( $thread_id ); return sprintf( + /* translators: 1: total number, 2: accessibility text: number of unread messages */ '<span class="thread-count">(%1$s)</span> <span class="bp-screen-reader-text">%2$s</span>', number_format_i18n( $total ), sprintf( _n( '%d unread', '%d unread', $unread, 'buddypress' ), number_format_i18n( $unread ) ) @@ -676,8 +683,10 @@ function bp_message_thread_avatar( $args = '' ) { * Filters the avatar for the last sender in the current message thread. * * @since 1.0.0 + * @since 2.6.0 Added the `$r` parameter. * * @param string $value User avatar string. + * @param array $r Array of parsed arguments. */ return apply_filters( 'bp_get_message_thread_avatar', bp_core_fetch_avatar( array( 'item_id' => $messages_template->thread->last_sender_id, @@ -687,7 +696,7 @@ function bp_message_thread_avatar( $args = '' ) { 'class' => $r['class'], 'width' => $r['width'], 'height' => $r['height'], - ) ) ); + ) ), $r ); } /** @@ -777,7 +786,10 @@ function bp_message_search_form() { ob_start(); ?> <form action="" method="get" id="search-message-form"> - <label for="messages_search" class="bp-screen-reader-text"><?php esc_html_e( 'Search Messages', 'buddypress' ); ?></label> + <label for="messages_search" class="bp-screen-reader-text"><?php + /* translators: accessibility text */ + esc_html_e( 'Search Messages', 'buddypress' ); + ?></label> <input type="text" name="s" id="messages_search"<?php echo $search_placeholder . $search_value; ?> /> <input type="submit" class="button" id="messages_search_submit" name="messages_search_submit" value="<?php esc_html_e( 'Search', 'buddypress' ); ?>" /> </form> @@ -919,10 +931,10 @@ function bp_messages_content_value() { function bp_messages_options() { ?> - <label for="message-type-select" class="bp-screen-reader-text"> - <?php _e( 'Select:', 'buddypress' ) ?> - </label> - + <label for="message-type-select" class="bp-screen-reader-text"><?php + /* translators: accessibility text */ + _e( 'Select:', 'buddypress' ); + ?></label> <select name="message-type-select" id="message-type-select"> <option value=""><?php _e( 'Select', 'buddypress' ); ?></option> <option value="read"><?php _ex('Read', 'Message dropdown filter', 'buddypress') ?></option> @@ -949,7 +961,9 @@ function bp_messages_options() { */ function bp_messages_bulk_management_dropdown() { ?> - <label class="bp-screen-reader-text" for="messages-select"><?php _e( 'Select Bulk Action', 'buddypress' ); ?></label> + <label class="bp-screen-reader-text" for="messages-select"><?php + _e( 'Select Bulk Action', 'buddypress' ); + ?></label> <select name="messages_bulk_action" id="messages-select"> <option value="" selected="selected"><?php _e( 'Bulk Actions', 'buddypress' ); ?></option> <option value="read"><?php _e( 'Mark read', 'buddypress' ); ?></option> @@ -999,7 +1013,6 @@ function bp_messages_is_active_notice() { * * @since 1.0.0 * @deprecated 1.6.0 - * @uses bp_get_message_is_active_notice() * @return bool */ function bp_message_is_active_notice() { @@ -1013,7 +1026,6 @@ function bp_message_is_active_notice() { * * @since 1.0.0 * @deprecated 1.6.0 - * @uses bp_messages_is_active_notice() */ function bp_get_message_is_active_notice() { @@ -1210,7 +1222,6 @@ function bp_message_activate_deactivate_text() { * * @since 1.5.0 * - * @uses bp_get_messages_slug() */ function bp_messages_slug() { echo bp_get_messages_slug(); @@ -1299,7 +1310,6 @@ function bp_send_private_message_link() { * * @since 1.2.6 * - * @uses bp_get_send_message_button() */ function bp_send_private_message_button() { echo bp_get_send_message_button(); @@ -1802,8 +1812,10 @@ function bp_the_thread_message_sender_avatar( $args = '' ) { * Filters the avatar for the current message sender. * * @since 1.1.0 + * @since 2.6.0 Added the `$r` parameter. * * @param string $value <img> tag containing the avatar value. + * @param array $r Array of parsed arguments. */ return apply_filters( 'bp_get_the_thread_message_sender_avatar_thumb', bp_core_fetch_avatar( array( 'item_id' => $thread_template->message->sender_id, @@ -1811,7 +1823,7 @@ function bp_the_thread_message_sender_avatar( $args = '' ) { 'width' => $r['width'], 'height' => $r['height'], 'alt' => bp_core_get_user_displayname( $thread_template->message->sender_id ) - ) ) ); + ) ), $r ); } /** @@ -1944,7 +1956,6 @@ function bp_the_thread_message_date_sent() { * * @since 2.1.0 * - * @uses strtotime() To convert the message string into a usable timestamp. * * @return int */ 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 1b577624813d1666824f8ff2e00d88668d0fa90e..3eb8908b15558372a56bb1009cc0307c94b6c261 100644 --- a/wp-content/plugins/buddypress/bp-messages/bp-messages-widgets.php +++ b/wp-content/plugins/buddypress/bp-messages/bp-messages-widgets.php @@ -10,7 +10,9 @@ // Exit if accessed directly. defined( 'ABSPATH' ) || exit; -require dirname( __FILE__ ) . '/classes/class-bp-messages-sitewide-notices-widget.php'; +if ( ! buddypress()->do_autoload ) { + require dirname( __FILE__ ) . '/classes/class-bp-messages-sitewide-notices-widget.php'; +} /** * Register widgets for the Messages component. 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 403c1de6162917bea8e1d059f6c83189de3a1bcd..334f90effa45323badfdcf4c1d3afb00d8fe775f 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 @@ -60,7 +60,6 @@ class BP_Messages_Component extends BP_Component { 'cache', 'actions', 'screens', - 'classes', 'filters', 'template', 'functions', @@ -68,6 +67,10 @@ class BP_Messages_Component extends BP_Component { 'widgets', ); + if ( ! buddypress()->do_autoload ) { + $includes[] = 'classes'; + } + // Conditional includes. if ( bp_is_active( $this->id, 'star' ) ) { $includes[] = 'star'; @@ -146,7 +149,15 @@ class BP_Messages_Component extends BP_Component { if ( bp_is_user() && bp_user_has_access() ) { $count = bp_get_total_unread_messages_count(); $class = ( 0 === $count ) ? 'no-count' : 'count'; - $nav_name = sprintf( __( 'Messages <span class="%s">%s</span>', 'buddypress' ), esc_attr( $class ), bp_core_number_format( $count ) ); + $nav_name = sprintf( + /* translators: %s: Unread message count for the current user */ + __( 'Messages %s', 'buddypress' ), + sprintf( + '<span class="%s">%s</span>', + esc_attr( $class ), + bp_core_number_format( $count ) + ) + ); } else { $nav_name = __( 'Messages', 'buddypress' ); } @@ -236,8 +247,16 @@ class BP_Messages_Component extends BP_Component { // Unread message count. $count = messages_get_unread_count(); if ( !empty( $count ) ) { - $title = sprintf( __( 'Messages <span class="count">%s</span>', 'buddypress' ), bp_core_number_format( $count ) ); - $inbox = sprintf( __( 'Inbox <span class="count">%s</span>', 'buddypress' ), bp_core_number_format( $count ) ); + $title = sprintf( + /* translators: %s: Unread message count for the current user */ + __( 'Messages %s', 'buddypress' ), + '<span class="count">' . bp_core_number_format( $count ) . '</span>' + ); + $inbox = sprintf( + /* translators: %s: Unread message count for the current user */ + __( 'Inbox %s', 'buddypress' ), + '<span class="count">' . bp_core_number_format( $count ) . '</span>' + ); } else { $title = __( 'Messages', 'buddypress' ); $inbox = __( 'Inbox', 'buddypress' ); diff --git a/wp-content/plugins/buddypress/bp-messages/classes/class-bp-messages-sitewide-notices-widget.php b/wp-content/plugins/buddypress/bp-messages/classes/class-bp-messages-sitewide-notices-widget.php index 74284c6d12bb53ad4904af1a2d7da7bb60902be9..36db4e7dcd8c31803b35fc652bee2f006f6cad8a 100644 --- a/wp-content/plugins/buddypress/bp-messages/classes/class-bp-messages-sitewide-notices-widget.php +++ b/wp-content/plugins/buddypress/bp-messages/classes/class-bp-messages-sitewide-notices-widget.php @@ -25,8 +25,9 @@ class BP_Messages_Sitewide_Notices_Widget extends WP_Widget { 'bp_messages_sitewide_notices_widget', __( '(BuddyPress) Sitewide Notices', 'buddypress' ), array( - 'classname' => 'widget_bp_core_sitewide_messages buddypress widget', - 'description' => __( 'Display Sitewide Notices posted by the site administrator', 'buddypress' ), + 'classname' => 'widget_bp_core_sitewide_messages buddypress widget', + 'description' => __( 'Display Sitewide Notices posted by the site administrator', 'buddypress' ), + 'customize_selective_refresh' => true, ) ); } diff --git a/wp-content/plugins/buddypress/bp-messages/css/autocomplete/jquery.autocompletefb-rtl.css b/wp-content/plugins/buddypress/bp-messages/css/autocomplete/jquery.autocompletefb-rtl.css index 88659df3d14f01f2909027324e55670005499c9e..5f66120b47d9dab1fe4c7ad758a15e61121a1011 100644 --- a/wp-content/plugins/buddypress/bp-messages/css/autocomplete/jquery.autocompletefb-rtl.css +++ b/wp-content/plugins/buddypress/bp-messages/css/autocomplete/jquery.autocompletefb-rtl.css @@ -4,11 +4,11 @@ z-index: 99999; background: #fff; border: 1px solid #ccc; - -moz-border-radius-bottomleft: 3px; + -moz-border-radius-bottomright: 3px; -khtml-border-bottom-right-radius: 3px; -webkit-border-bottom-right-radius: 3px; border-bottom-right-radius: 3px; - -moz-border-radius-bottomright: 3px; + -moz-border-radius-bottomleft: 3px; -khtml-border-bottom-left-radius: 3px; -webkit-border-bottom-left-radius: 3px; border-bottom-left-radius: 3px; diff --git a/wp-content/plugins/buddypress/bp-messages/css/autocomplete/jquery.autocompletefb-rtl.min.css b/wp-content/plugins/buddypress/bp-messages/css/autocomplete/jquery.autocompletefb-rtl.min.css index dfc07fad0ca575eb9153c2610e7c007e86d90df0..89bd345972da88fe454bd3128d2a72e742c67c60 100644 --- a/wp-content/plugins/buddypress/bp-messages/css/autocomplete/jquery.autocompletefb-rtl.min.css +++ b/wp-content/plugins/buddypress/bp-messages/css/autocomplete/jquery.autocompletefb-rtl.min.css @@ -1 +1 @@ -.ac_results{padding:0;overflow:hidden;z-index:99999;background:#fff;border:1px solid #ccc;-moz-border-radius-bottomleft:3px;-khtml-border-bottom-right-radius:3px;-webkit-border-bottom-right-radius:3px;border-bottom-right-radius:3px;-moz-border-radius-bottomright:3px;-khtml-border-bottom-left-radius:3px;-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px}.ac_results ul{width:100%;list-style:none;padding:0;margin:0}.ac_results li{margin:0;padding:5px 10px;cursor:pointer;display:block;font-size:1em;line-height:16px;overflow:hidden}.ac_results li img{margin-left:5px}.ac_odd{background-color:#f0f0f0}.ac_over{background-color:#888;color:#fff}ul.acfb-holder{margin:0;height:auto!important;height:1%;overflow:hidden;padding:0;list-style:none}ul.acfb-holder li{float:right;margin:0 0 4px 5px;list-style-type:none}ul.acfb-holder li.friend-tab{border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px;border:1px solid #ffe7c7;padding:2px 7px;background:#FFF9DF;font-size:1em}li.friend-tab img.avatar{border-width:2px!important;vertical-align:middle}li.friend-tab span.p{padding-right:5px;font-size:.8em;cursor:pointer}input#send-to-input{width:275px} \ No newline at end of file +.ac_results{padding:0;overflow:hidden;z-index:99999;background:#fff;border:1px solid #ccc;-moz-border-radius-bottomright:3px;-khtml-border-bottom-right-radius:3px;-webkit-border-bottom-right-radius:3px;border-bottom-right-radius:3px;-moz-border-radius-bottomleft:3px;-khtml-border-bottom-left-radius:3px;-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px}.ac_results ul{width:100%;list-style:none;padding:0;margin:0}.ac_results li{margin:0;padding:5px 10px;cursor:pointer;display:block;font-size:1em;line-height:16px;overflow:hidden}.ac_results li img{margin-left:5px}.ac_odd{background-color:#f0f0f0}.ac_over{background-color:#888;color:#fff}ul.acfb-holder{margin:0;height:auto!important;height:1%;overflow:hidden;padding:0;list-style:none}ul.acfb-holder li{float:right;margin:0 0 4px 5px;list-style-type:none}ul.acfb-holder li.friend-tab{border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px;border:1px solid #ffe7c7;padding:2px 7px;background:#FFF9DF;font-size:1em}li.friend-tab img.avatar{border-width:2px!important;vertical-align:middle}li.friend-tab span.p{padding-right:5px;font-size:.8em;cursor:pointer}input#send-to-input{width:275px} \ No newline at end of file diff --git a/wp-content/plugins/buddypress/bp-messages/js/autocomplete/jquery.autocomplete.js b/wp-content/plugins/buddypress/bp-messages/js/autocomplete/jquery.autocomplete.js index aabee6aa008c8e99ec5f5f539baff8a19ca71182..bd473c18960965a37a0fe219687a6822c30784de 100644 --- a/wp-content/plugins/buddypress/bp-messages/js/autocomplete/jquery.autocomplete.js +++ b/wp-content/plugins/buddypress/bp-messages/js/autocomplete/jquery.autocomplete.js @@ -9,12 +9,13 @@ * * Revision: $Id: jquery.autocomplete.js 4485 2008-01-20 13:52:47Z joern.zaefferer $ * + * Namespaced for BuddyPress as $.fn.autocompletebp, to avoid conflicts with other autocomplete scripts. */ ;(function($) { $.fn.extend({ - autocomplete: function(urlOrData, options) { + autocompletebp: function(urlOrData, options) { var isUrl = typeof urlOrData == "string"; options = $.extend({}, $.Autocompleter.defaults, { url: isUrl ? urlOrData : null, diff --git a/wp-content/plugins/buddypress/bp-messages/js/autocomplete/jquery.autocomplete.min.js b/wp-content/plugins/buddypress/bp-messages/js/autocomplete/jquery.autocomplete.min.js index 7841e418b91de3537d880a2fc573d5df9d6d3628..aa86f984c8b12214dc8156c090ff3c9028e9e111 100644 --- a/wp-content/plugins/buddypress/bp-messages/js/autocomplete/jquery.autocomplete.min.js +++ b/wp-content/plugins/buddypress/bp-messages/js/autocomplete/jquery.autocomplete.min.js @@ -1,2 +1 @@ -/*! buddypress - v2.5.3 - 2016-05-24 5:17:45 PM UTC - https://wordpress.org/plugins/buddypress/ */ -!function(a){a.fn.extend({autocomplete:function(b,c){var d="string"==typeof b;return c=a.extend({},a.Autocompleter.defaults,{url:d?b:null,data:d?null:b,delay:d?a.Autocompleter.defaults.delay:10,max:c&&!c.scroll?10:150},c),c.highlight=c.highlight||function(a){return a},this.each(function(){new a.Autocompleter(this,c)})},result:function(a){return this.bind("result",a)},search:function(a){return this.trigger("search",[a])},flushCache:function(){return this.trigger("flushCache")},setOptions:function(a){return this.trigger("setOptions",[a])},unautocomplete:function(){return this.trigger("unautocomplete")}}),a.Autocompleter=function(b,c){function d(){var a=x.selected();if(!a)return!1;var b=a.result;if(t=b,c.multiple){var d=f(s.val());d.length>1&&(b=d.slice(0,d.length-1).join(c.multipleSeparator)+c.multipleSeparator+b),b+=c.multipleSeparator}return s.val(b),j(),s.trigger("result",[a.data,a.value]),!0}function e(a,b){if(q==r.DEL)return void x.hide();var d=s.val();(b||d!=t)&&(t=d,d=g(d),d.length>=c.minChars?(s.addClass(c.loadingClass),jQuery("#send-to-input").addClass("loading"),c.matchCase||(d=d.toLowerCase()),l(d,k,j)):(n(),x.hide()))}function f(b){if(!b)return[""];var d=b.split(a.trim(c.multipleSeparator)),e=[];return a.each(d,function(b,c){a.trim(c)&&(e[b]=a.trim(c))}),e}function g(a){if(!c.multiple)return a;var b=f(a);return b[b.length-1]}function h(d,e){c.autoFill&&g(s.val()).toLowerCase()==d.toLowerCase()&&8!=q&&(s.val(s.val()+e.substring(g(t).length)),a.Autocompleter.Selection(b,t.length,t.length+e.length))}function i(){clearTimeout(p),p=setTimeout(j,200)}function j(){x.hide(),clearTimeout(p),n(),c.mustMatch&&s.search(function(a){a||s.val("")})}function k(a,b){if(b&&b.length&&v){n(),x.display(b,a);var c=b[0].value.split(";");b.value=c[0],h(a,b.value),x.show()}else j()}function l(d,e,f){c.matchCase||(d=d.toLowerCase());var h=u.load(d);if(h&&h.length)e(d,h);else if("string"==typeof c.url&&c.url.length>0){var i={};a.each(c.extraParams,function(a,b){i[a]="function"==typeof b?b():b}),a.ajax({mode:"abort",port:"autocomplete"+b.name,dataType:c.dataType,url:c.url,data:a.extend({q:g(d),limit:c.max,action:"messages_autocomplete_results",cookie:o()},i),success:function(a){var b=c.parse&&c.parse(a)||m(a);u.add(d,b),e(d,b)}})}else f(d)}function m(b){for(var d=[],e=b.split("\n"),f=0;f<e.length;f++){var g=a.trim(e[f]);g&&(g=g.split("|"),d[d.length]={data:g,value:g[0],result:c.formatResult&&c.formatResult(g,g[0])||g[0]})}return d}function n(){s.removeClass(c.loadingClass),jQuery("#send-to-input").removeClass("loading")}function o(){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 p,q,r={UP:38,DOWN:40,DEL:46,TAB:9,RETURN:13,ESC:27,COMMA:188,PAGEUP:33,PAGEDOWN:34},s=a(b).attr("autocomplete","off").addClass(c.inputClass),t="",u=a.Autocompleter.Cache(c),v=0,w={mouseDownOnSelect:!1},x=a.Autocompleter.Select(c,b,d,w);s.keydown(function(b){switch(q=b.keyCode,b.keyCode){case r.UP:b.preventDefault(),x.visible()?x.prev():e(0,!0);break;case r.DOWN:b.preventDefault(),x.visible()?x.next():e(0,!0);break;case r.PAGEUP:b.preventDefault(),x.visible()?x.pageUp():e(0,!0);break;case r.PAGEDOWN:b.preventDefault(),x.visible()?x.pageDown():e(0,!0);break;case c.multiple&&","==a.trim(c.multipleSeparator)&&r.COMMA:case r.TAB:case r.RETURN:d()&&(c.multiple||s.blur(),b.preventDefault(),s.focus());break;case r.ESC:x.hide();break;default:clearTimeout(p),p=setTimeout(e,c.delay)}}).keypress(function(){}).focus(function(){v++}).blur(function(){v=0,w.mouseDownOnSelect||i()}).click(function(){v++>1&&!x.visible()&&e(0,!0)}).bind("search",function(){function b(a,b){var d;if(b&&b.length)for(var e=0;e<b.length;e++)if(b[e].result.toLowerCase()==a.toLowerCase()){d=b[e];break}"function"==typeof c?c(d):s.trigger("result",d&&[d.data,d.value])}var c=arguments.length>1?arguments[1]:null;a.each(f(s.val()),function(a,c){l(c,b,b)})}).bind("flushCache",function(){u.flush()}).bind("setOptions",function(){a.extend(c,arguments[1]),"data"in arguments[1]&&u.populate()}).bind("unautocomplete",function(){x.unbind(),s.unbind()})},a.Autocompleter.defaults={inputClass:"ac_input",resultsClass:"ac_results",loadingClass:"ac_loading",minChars:1,delay:400,matchCase:!1,matchSubset:!0,matchContains:!1,cacheLength:10,max:100,mustMatch:!1,extraParams:{},selectFirst:!0,formatItem:function(a){return a[0]},autoFill:!1,width:0,multiple:!1,multipleSeparator:", ",highlight:function(a,b){return a.replace(new RegExp("(?![^&;]+;)(?!<[^<>]*)("+b.replace(/([\^\$\(\)\[\]\{\}\*\.\+\?\|\\])/gi,"\\$1")+")(?![^<>]*>)(?![^&;]+;)","gi"),"<strong>$1</strong>")},scroll:!0,scrollHeight:250,attachTo:"body"},a.Autocompleter.Cache=function(b){function c(a,c){b.matchCase||(a=a.toLowerCase());var d=a.indexOf(c);return-1==d?!1:0==d||b.matchContains}function d(a,c){h>b.cacheLength&&f(),g[a]||h++,g[a]=c}function e(){if(!b.data)return!1;var c={},e=0;b.url||(b.cacheLength=1),c[""]=[];for(var f=0,g=b.data.length;g>f;f++){var h=b.data[f];h="string"==typeof h?[h]:h;var i=b.formatItem(h,f+1,b.data.length);if(i!==!1){var j=i.charAt(0).toLowerCase();c[j]||(c[j]=[]);var k={value:i,data:h,result:b.formatResult&&b.formatResult(h)||i};c[j].push(k),e++<b.max&&c[""].push(k)}}a.each(c,function(a,c){b.cacheLength++,d(a,c)})}function f(){g={},h=0}var g={},h=0;return setTimeout(e,25),{flush:f,add:d,populate:e,load:function(d){if(!b.cacheLength||!h)return null;if(!b.url&&b.matchContains){var e=[];for(var f in g)if(f.length>0){var i=g[f];a.each(i,function(a,b){c(b.value,d)&&e.push(b)})}return e}if(g[d])return g[d];if(b.matchSubset)for(var j=d.length-1;j>=b.minChars;j--){var i=g[d.substr(0,j)];if(i){var e=[];return a.each(i,function(a,b){c(b.value,d)&&(e[e.length]=b)}),e}}return null}}},a.Autocompleter.Select=function(b,c,d,e){function f(){s&&(n=a("<div/>").hide().addClass(b.resultsClass).css("position","absolute").appendTo(b.attachTo),o=a("<ul>").appendTo(n).mouseover(function(b){g(b).nodeName&&"LI"==g(b).nodeName.toUpperCase()&&(q=a("li",o).removeClass(p.ACTIVE).index(g(b)),a(g(b)).addClass(p.ACTIVE))}).click(function(b){return a(g(b)).addClass(p.ACTIVE),d(),c.focus(),!1}).mousedown(function(){e.mouseDownOnSelect=!0}).mouseup(function(){e.mouseDownOnSelect=!1}),b.width>0&&n.css("width",b.width),s=!1)}function g(a){for(var b=a.target;b&&"LI"!=b.tagName;)b=b.parentNode;return b?b:[]}function h(a){l.slice(q,q+1).removeClass(),i(a);var c=l.slice(q,q+1).addClass(p.ACTIVE);if(b.scroll){var d=0;l.slice(0,q).each(function(){d+=this.offsetHeight}),d+c[0].offsetHeight-o.scrollTop()>o[0].clientHeight?o.scrollTop(d+c[0].offsetHeight-o.innerHeight()):d<o.scrollTop()&&o.scrollTop(d)}}function i(a){q+=a,0>q?q=l.size()-1:q>=l.size()&&(q=0)}function j(a){return b.max&&b.max<a?b.max:a}function k(){o.empty();for(var c=j(m.length),d=0;c>d;d++)if(m[d]){var e=b.formatItem(m[d].data,d+1,c,m[d].value,r);if(e!==!1){var f=a("<li>").html(b.highlight(e,r)).addClass(d%2==0?"ac_event":"ac_odd").appendTo(o)[0];a.data(f,"ac_data",m[d])}}l=o.find("li"),b.selectFirst&&(l.slice(0,1).addClass(p.ACTIVE),q=0),o.bgiframe()}var l,m,n,o,p={ACTIVE:"ac_over"},q=-1,r="",s=!0;return{display:function(a,b){f(),m=a,r=b,k()},next:function(){h(1)},prev:function(){h(-1)},pageUp:function(){h(0!=q&&0>q-8?-q:-8)},pageDown:function(){h(q!=l.size()-1&&q+8>l.size()?l.size()-1-q:8)},hide:function(){n&&n.hide(),q=-1},visible:function(){return n&&n.is(":visible")},current:function(){return this.visible()&&(l.filter("."+p.ACTIVE)[0]||b.selectFirst&&l[0])},show:function(){var d=a(c).offset();if(n.css({width:"string"==typeof b.width||b.width>0?b.width:a(c).width(),top:d.top+c.offsetHeight,left:d.left}).show(),b.scroll&&(o.scrollTop(0),o.css({maxHeight:b.scrollHeight,overflow:"auto"}),a.browser.msie&&"undefined"==typeof document.body.style.maxHeight)){var e=0;l.each(function(){e+=this.offsetHeight});var f=e>b.scrollHeight;o.css("height",f?b.scrollHeight:e),f||l.width(o.width()-parseInt(l.css("padding-left"))-parseInt(l.css("padding-right")))}},selected:function(){var b=l&&l.filter("."+p.ACTIVE).removeClass(p.ACTIVE);return b&&b.length&&a.data(b[0],"ac_data")},unbind:function(){n&&n.remove()}}},a.Autocompleter.Selection=function(a,b,c){if(a.createTextRange){var d=a.createTextRange();d.collapse(!0),d.moveStart("character",b),d.moveEnd("character",c),d.select()}else a.setSelectionRange?a.setSelectionRange(b,c):a.selectionStart&&(a.selectionStart=b,a.selectionEnd=c);a.focus()}}(jQuery); \ No newline at end of file +!function(a){a.fn.extend({autocompletebp:function(b,c){var d="string"==typeof b;return c=a.extend({},a.Autocompleter.defaults,{url:d?b:null,data:d?null:b,delay:d?a.Autocompleter.defaults.delay:10,max:c&&!c.scroll?10:150},c),c.highlight=c.highlight||function(a){return a},this.each(function(){new a.Autocompleter(this,c)})},result:function(a){return this.bind("result",a)},search:function(a){return this.trigger("search",[a])},flushCache:function(){return this.trigger("flushCache")},setOptions:function(a){return this.trigger("setOptions",[a])},unautocomplete:function(){return this.trigger("unautocomplete")}}),a.Autocompleter=function(b,c){function d(){var a=x.selected();if(!a)return!1;var b=a.result;if(t=b,c.multiple){var d=f(s.val());d.length>1&&(b=d.slice(0,d.length-1).join(c.multipleSeparator)+c.multipleSeparator+b),b+=c.multipleSeparator}return s.val(b),j(),s.trigger("result",[a.data,a.value]),!0}function e(a,b){if(q==r.DEL)return void x.hide();var d=s.val();(b||d!=t)&&(t=d,d=g(d),d.length>=c.minChars?(s.addClass(c.loadingClass),jQuery("#send-to-input").addClass("loading"),c.matchCase||(d=d.toLowerCase()),l(d,k,j)):(n(),x.hide()))}function f(b){if(!b)return[""];var d=b.split(a.trim(c.multipleSeparator)),e=[];return a.each(d,function(b,c){a.trim(c)&&(e[b]=a.trim(c))}),e}function g(a){if(!c.multiple)return a;var b=f(a);return b[b.length-1]}function h(d,e){c.autoFill&&g(s.val()).toLowerCase()==d.toLowerCase()&&8!=q&&(s.val(s.val()+e.substring(g(t).length)),a.Autocompleter.Selection(b,t.length,t.length+e.length))}function i(){clearTimeout(p),p=setTimeout(j,200)}function j(){x.hide(),clearTimeout(p),n(),c.mustMatch&&s.search(function(a){a||s.val("")})}function k(a,b){if(b&&b.length&&v){n(),x.display(b,a);var c=b[0].value.split(";");b.value=c[0],h(a,b.value),x.show()}else j()}function l(d,e,f){c.matchCase||(d=d.toLowerCase());var h=u.load(d);if(h&&h.length)e(d,h);else if("string"==typeof c.url&&c.url.length>0){var i={};a.each(c.extraParams,function(a,b){i[a]="function"==typeof b?b():b}),a.ajax({mode:"abort",port:"autocomplete"+b.name,dataType:c.dataType,url:c.url,data:a.extend({q:g(d),limit:c.max,action:"messages_autocomplete_results",cookie:o()},i),success:function(a){var b=c.parse&&c.parse(a)||m(a);u.add(d,b),e(d,b)}})}else f(d)}function m(b){for(var d=[],e=b.split("\n"),f=0;f<e.length;f++){var g=a.trim(e[f]);g&&(g=g.split("|"),d[d.length]={data:g,value:g[0],result:c.formatResult&&c.formatResult(g,g[0])||g[0]})}return d}function n(){s.removeClass(c.loadingClass),jQuery("#send-to-input").removeClass("loading")}function o(){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 p,q,r={UP:38,DOWN:40,DEL:46,TAB:9,RETURN:13,ESC:27,COMMA:188,PAGEUP:33,PAGEDOWN:34},s=a(b).attr("autocomplete","off").addClass(c.inputClass),t="",u=a.Autocompleter.Cache(c),v=0,w={mouseDownOnSelect:!1},x=a.Autocompleter.Select(c,b,d,w);s.keydown(function(b){switch(q=b.keyCode,b.keyCode){case r.UP:b.preventDefault(),x.visible()?x.prev():e(0,!0);break;case r.DOWN:b.preventDefault(),x.visible()?x.next():e(0,!0);break;case r.PAGEUP:b.preventDefault(),x.visible()?x.pageUp():e(0,!0);break;case r.PAGEDOWN:b.preventDefault(),x.visible()?x.pageDown():e(0,!0);break;case c.multiple&&","==a.trim(c.multipleSeparator)&&r.COMMA:case r.TAB:case r.RETURN:d()&&(c.multiple||s.blur(),b.preventDefault(),s.focus());break;case r.ESC:x.hide();break;default:clearTimeout(p),p=setTimeout(e,c.delay)}}).keypress(function(){}).focus(function(){v++}).blur(function(){v=0,w.mouseDownOnSelect||i()}).click(function(){v++>1&&!x.visible()&&e(0,!0)}).bind("search",function(){function b(a,b){var d;if(b&&b.length)for(var e=0;e<b.length;e++)if(b[e].result.toLowerCase()==a.toLowerCase()){d=b[e];break}"function"==typeof c?c(d):s.trigger("result",d&&[d.data,d.value])}var c=arguments.length>1?arguments[1]:null;a.each(f(s.val()),function(a,c){l(c,b,b)})}).bind("flushCache",function(){u.flush()}).bind("setOptions",function(){a.extend(c,arguments[1]),"data"in arguments[1]&&u.populate()}).bind("unautocomplete",function(){x.unbind(),s.unbind()})},a.Autocompleter.defaults={inputClass:"ac_input",resultsClass:"ac_results",loadingClass:"ac_loading",minChars:1,delay:400,matchCase:!1,matchSubset:!0,matchContains:!1,cacheLength:10,max:100,mustMatch:!1,extraParams:{},selectFirst:!0,formatItem:function(a){return a[0]},autoFill:!1,width:0,multiple:!1,multipleSeparator:", ",highlight:function(a,b){return a.replace(new RegExp("(?![^&;]+;)(?!<[^<>]*)("+b.replace(/([\^\$\(\)\[\]\{\}\*\.\+\?\|\\])/gi,"\\$1")+")(?![^<>]*>)(?![^&;]+;)","gi"),"<strong>$1</strong>")},scroll:!0,scrollHeight:250,attachTo:"body"},a.Autocompleter.Cache=function(b){function c(a,c){b.matchCase||(a=a.toLowerCase());var d=a.indexOf(c);return-1==d?!1:0==d||b.matchContains}function d(a,c){h>b.cacheLength&&f(),g[a]||h++,g[a]=c}function e(){if(!b.data)return!1;var c={},e=0;b.url||(b.cacheLength=1),c[""]=[];for(var f=0,g=b.data.length;g>f;f++){var h=b.data[f];h="string"==typeof h?[h]:h;var i=b.formatItem(h,f+1,b.data.length);if(i!==!1){var j=i.charAt(0).toLowerCase();c[j]||(c[j]=[]);var k={value:i,data:h,result:b.formatResult&&b.formatResult(h)||i};c[j].push(k),e++<b.max&&c[""].push(k)}}a.each(c,function(a,c){b.cacheLength++,d(a,c)})}function f(){g={},h=0}var g={},h=0;return setTimeout(e,25),{flush:f,add:d,populate:e,load:function(d){if(!b.cacheLength||!h)return null;if(!b.url&&b.matchContains){var e=[];for(var f in g)if(f.length>0){var i=g[f];a.each(i,function(a,b){c(b.value,d)&&e.push(b)})}return e}if(g[d])return g[d];if(b.matchSubset)for(var j=d.length-1;j>=b.minChars;j--){var i=g[d.substr(0,j)];if(i){var e=[];return a.each(i,function(a,b){c(b.value,d)&&(e[e.length]=b)}),e}}return null}}},a.Autocompleter.Select=function(b,c,d,e){function f(){s&&(n=a("<div/>").hide().addClass(b.resultsClass).css("position","absolute").appendTo(b.attachTo),o=a("<ul>").appendTo(n).mouseover(function(b){g(b).nodeName&&"LI"==g(b).nodeName.toUpperCase()&&(q=a("li",o).removeClass(p.ACTIVE).index(g(b)),a(g(b)).addClass(p.ACTIVE))}).click(function(b){return a(g(b)).addClass(p.ACTIVE),d(),c.focus(),!1}).mousedown(function(){e.mouseDownOnSelect=!0}).mouseup(function(){e.mouseDownOnSelect=!1}),b.width>0&&n.css("width",b.width),s=!1)}function g(a){for(var b=a.target;b&&"LI"!=b.tagName;)b=b.parentNode;return b?b:[]}function h(a){l.slice(q,q+1).removeClass(),i(a);var c=l.slice(q,q+1).addClass(p.ACTIVE);if(b.scroll){var d=0;l.slice(0,q).each(function(){d+=this.offsetHeight}),d+c[0].offsetHeight-o.scrollTop()>o[0].clientHeight?o.scrollTop(d+c[0].offsetHeight-o.innerHeight()):d<o.scrollTop()&&o.scrollTop(d)}}function i(a){q+=a,0>q?q=l.size()-1:q>=l.size()&&(q=0)}function j(a){return b.max&&b.max<a?b.max:a}function k(){o.empty();for(var c=j(m.length),d=0;c>d;d++)if(m[d]){var e=b.formatItem(m[d].data,d+1,c,m[d].value,r);if(e!==!1){var f=a("<li>").html(b.highlight(e,r)).addClass(d%2==0?"ac_event":"ac_odd").appendTo(o)[0];a.data(f,"ac_data",m[d])}}l=o.find("li"),b.selectFirst&&(l.slice(0,1).addClass(p.ACTIVE),q=0),o.bgiframe()}var l,m,n,o,p={ACTIVE:"ac_over"},q=-1,r="",s=!0;return{display:function(a,b){f(),m=a,r=b,k()},next:function(){h(1)},prev:function(){h(-1)},pageUp:function(){h(0!=q&&0>q-8?-q:-8)},pageDown:function(){h(q!=l.size()-1&&q+8>l.size()?l.size()-1-q:8)},hide:function(){n&&n.hide(),q=-1},visible:function(){return n&&n.is(":visible")},current:function(){return this.visible()&&(l.filter("."+p.ACTIVE)[0]||b.selectFirst&&l[0])},show:function(){var d=a(c).offset();if(n.css({width:"string"==typeof b.width||b.width>0?b.width:a(c).width(),top:d.top+c.offsetHeight,left:d.left}).show(),b.scroll&&(o.scrollTop(0),o.css({maxHeight:b.scrollHeight,overflow:"auto"}),a.browser.msie&&"undefined"==typeof document.body.style.maxHeight)){var e=0;l.each(function(){e+=this.offsetHeight});var f=e>b.scrollHeight;o.css("height",f?b.scrollHeight:e),f||l.width(o.width()-parseInt(l.css("padding-left"))-parseInt(l.css("padding-right")))}},selected:function(){var b=l&&l.filter("."+p.ACTIVE).removeClass(p.ACTIVE);return b&&b.length&&a.data(b[0],"ac_data")},unbind:function(){n&&n.remove()}}},a.Autocompleter.Selection=function(a,b,c){if(a.createTextRange){var d=a.createTextRange();d.collapse(!0),d.moveStart("character",b),d.moveEnd("character",c),d.select()}else a.setSelectionRange?a.setSelectionRange(b,c):a.selectionStart&&(a.selectionStart=b,a.selectionEnd=c);a.focus()}}(jQuery); \ No newline at end of file diff --git a/wp-content/plugins/buddypress/bp-messages/js/autocomplete/jquery.autocompletefb.js b/wp-content/plugins/buddypress/bp-messages/js/autocomplete/jquery.autocompletefb.js index 24d3c6272f87d3c0d2d73c482ad208d2d1510612..2da0d3f68f3653804895f500f4d3f5c1311431ff 100644 --- a/wp-content/plugins/buddypress/bp-messages/js/autocomplete/jquery.autocompletefb.js +++ b/wp-content/plugins/buddypress/bp-messages/js/autocomplete/jquery.autocompletefb.js @@ -46,7 +46,7 @@ jQuery.fn.autoCompletefb = function(options) acfb.removeFind(this); }); - jQuery(settings.inputClass,tmp).autocomplete(settings.urlLookup,settings.acOptions); + jQuery(settings.inputClass,tmp).autocompletebp(settings.urlLookup,settings.acOptions); jQuery(settings.inputClass,tmp).result(function(e,d,f){ var f = settings.foundClass.replace(/\./,''); var d = String(d).split(' ('); diff --git a/wp-content/plugins/buddypress/bp-messages/js/autocomplete/jquery.autocompletefb.min.js b/wp-content/plugins/buddypress/bp-messages/js/autocomplete/jquery.autocompletefb.min.js index fa87e0b88156e056a08a7bd4815ecd6d69e96ce0..ea66d7371a8d6ceb52b9d091d47ccf9a018307c6 100644 --- a/wp-content/plugins/buddypress/bp-messages/js/autocomplete/jquery.autocompletefb.min.js +++ b/wp-content/plugins/buddypress/bp-messages/js/autocomplete/jquery.autocompletefb.min.js @@ -1,2 +1 @@ -/*! buddypress - v2.5.3 - 2016-05-24 5:17:45 PM UTC - https://wordpress.org/plugins/buddypress/ */ -jQuery.fn.autoCompletefb=function(a){var b=this,c={ul:b,urlLookup:[""],acOptions:{},foundClass:".friend-tab",inputClass:".send-to-input"};a&&jQuery.extend(c,a);var d={params:c,removeFind:function(a){return d.removeUsername(a),jQuery(a).unbind("click").parent().remove(),jQuery(c.inputClass,b).focus(),b.acfb},removeUsername:function(a){var b=a.parentNode.id.substr(a.parentNode.id.indexOf("-")+1);jQuery("#send-to-usernames").removeClass(b)}};return jQuery(c.foundClass+" img.p").click(function(){d.removeFind(this)}),jQuery(c.inputClass,b).autocomplete(c.urlLookup,c.acOptions),jQuery(c.inputClass,b).result(function(a,e,f){var f=c.foundClass.replace(/\./,""),e=String(e).split(" ("),g=e[1].substr(0,e[1].length-1);if(0===jQuery(c.inputClass).siblings("#un-"+g).length){var h="#link-"+g,i=jQuery(h).attr("href"),j='<li class="'+f+'" id="un-'+g+'"><span><a href="'+i+'">'+e[0]+'</a></span> <span class="p">X</span></li>',k=jQuery(c.inputClass,b).before(j);jQuery("#send-to-usernames").addClass(g),jQuery(".p",k[0].previousSibling).click(function(){d.removeFind(this)})}jQuery(c.inputClass,b).val("")}),jQuery(c.inputClass,b).focus(),d}; \ No newline at end of file +jQuery.fn.autoCompletefb=function(a){var b=this,c={ul:b,urlLookup:[""],acOptions:{},foundClass:".friend-tab",inputClass:".send-to-input"};a&&jQuery.extend(c,a);var d={params:c,removeFind:function(a){return d.removeUsername(a),jQuery(a).unbind("click").parent().remove(),jQuery(c.inputClass,b).focus(),b.acfb},removeUsername:function(a){var b=a.parentNode.id.substr(a.parentNode.id.indexOf("-")+1);jQuery("#send-to-usernames").removeClass(b)}};return jQuery(c.foundClass+" img.p").click(function(){d.removeFind(this)}),jQuery(c.inputClass,b).autocompletebp(c.urlLookup,c.acOptions),jQuery(c.inputClass,b).result(function(a,e,f){var f=c.foundClass.replace(/\./,""),e=String(e).split(" ("),g=e[1].substr(0,e[1].length-1);if(0===jQuery(c.inputClass).siblings("#un-"+g).length){var h="#link-"+g,i=jQuery(h).attr("href"),j='<li class="'+f+'" id="un-'+g+'"><span><a href="'+i+'">'+e[0]+'</a></span> <span class="p">X</span></li>',k=jQuery(c.inputClass,b).before(j);jQuery("#send-to-usernames").addClass(g),jQuery(".p",k[0].previousSibling).click(function(){d.removeFind(this)})}jQuery(c.inputClass,b).val("")}),jQuery(c.inputClass,b).focus(),d}; \ No newline at end of file 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 f0330bd5ed0db440b008692a54516f6bdea6f908..6cd5e79684effd48e20e3ded7c9f70f997d3117f 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,2 +1 @@ -/*! buddypress - v2.5.3 - 2016-05-24 5:17:45 PM UTC - https://wordpress.org/plugins/buddypress/ */ !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 diff --git a/wp-content/plugins/buddypress/bp-messages/js/autocomplete/jquery.dimensions.min.js b/wp-content/plugins/buddypress/bp-messages/js/autocomplete/jquery.dimensions.min.js index c8161823a94cc9d232d9674c5d9ebe7bdf95c7ba..809bfa254931fdc2f04c482c2d09e05c3e103432 100644 --- a/wp-content/plugins/buddypress/bp-messages/js/autocomplete/jquery.dimensions.min.js +++ b/wp-content/plugins/buddypress/bp-messages/js/autocomplete/jquery.dimensions.min.js @@ -1,2 +1 @@ -/*! buddypress - v2.5.3 - 2016-05-24 5:17:45 PM UTC - https://wordpress.org/plugins/buddypress/ */ !function(a){a.dimensions={version:"@VERSION"},a.each(["Height","Width"],function(c,d){a.fn["inner"+d]=function(){if(this[0]){var a="Height"==d?"Top":"Left",c="Height"==d?"Bottom":"Right";return this[d.toLowerCase()]()+b(this,"padding"+a)+b(this,"padding"+c)}},a.fn["outer"+d]=function(c){if(this[0]){var e="Height"==d?"Top":"Left",f="Height"==d?"Bottom":"Right";return c=a.extend({margin:!1},c||{}),this[d.toLowerCase()]()+b(this,"border"+e+"Width")+b(this,"border"+f+"Width")+b(this,"padding"+e)+b(this,"padding"+f)+(c.margin?b(this,"margin"+e)+b(this,"margin"+f):0)}}}),a.each(["Left","Top"],function(b,c){a.fn["scroll"+c]=function(b){return this[0]?void 0!=b?this.each(function(){this==window||this==document?window.scrollTo("Left"==c?b:a(window).scrollLeft(),"Top"==c?b:a(window).scrollTop()):this["scroll"+c]=b}):this[0]==window||this[0]==document?self["Left"==c?"pageXOffset":"pageYOffset"]||a.boxModel&&document.documentElement["scroll"+c]||document.body["scroll"+c]:this[0]["scroll"+c]:void 0}}),a.fn.extend({position:function(){var a,c,d,e,f=this[0];return f&&(d=this.offsetParent(),a=this.offset(),c=d.offset(),a.top-=b(f,"marginTop"),a.left-=b(f,"marginLeft"),c.top+=b(d,"borderTopWidth"),c.left+=b(d,"borderLeftWidth"),e={top:a.top-c.top,left:a.left-c.left}),e},offsetParent:function(){for(var b=this[0].offsetParent;b&&!/^body|html$/i.test(b.tagName)&&"static"==a.css(b,"position");)b=b.offsetParent;return a(b)}});var b=function(b,c){return parseInt(a.css(b.jquery?b[0]:b,c))||0}}(jQuery); \ No newline at end of file diff --git a/wp-content/plugins/buddypress/bp-notifications/bp-notifications-functions.php b/wp-content/plugins/buddypress/bp-notifications/bp-notifications-functions.php index 4e4610c74f33f458394acd512768807e4ed5e930..3bf0020db5b1589743ef4de1f3729ce9a00424b9 100644 --- a/wp-content/plugins/buddypress/bp-notifications/bp-notifications-functions.php +++ b/wp-content/plugins/buddypress/bp-notifications/bp-notifications-functions.php @@ -43,7 +43,7 @@ function bp_notifications_add_notification( $args = array() ) { 'date_notified' => bp_core_current_time(), 'is_new' => 1, 'allow_duplicate' => false, - ), 'notifications_add_notification' );; + ), 'notifications_add_notification' ); // Check for existing duplicate notifications. if ( ! $r['allow_duplicate'] ) { @@ -98,7 +98,7 @@ function bp_notifications_get_notification( $id ) { * @return bool True on success, false on failure. */ function bp_notifications_delete_notification( $id ) { - if ( ! bp_notifications_check_notification_access( bp_loggedin_user_id(), $id ) ) { + if ( ! bp_notifications_check_notification_access( bp_displayed_user_id(), $id ) ) { return false; } @@ -117,7 +117,7 @@ function bp_notifications_delete_notification( $id ) { * @return bool True on success, false on failure. */ function bp_notifications_mark_notification( $id, $is_new = false ) { - if ( ! bp_notifications_check_notification_access( bp_loggedin_user_id(), $id ) ) { + if ( ! bp_notifications_check_notification_access( bp_displayed_user_id(), $id ) ) { return false; } @@ -233,7 +233,8 @@ function bp_notifications_get_notifications_for_user( $user_id, $format = 'strin $component_action_items[0]->item_id, $component_action_items[0]->secondary_item_id, $action_item_count, - 'array' + 'array', + $component_action_items[0]->id ); // Create the object to be returned. @@ -253,7 +254,7 @@ function bp_notifications_get_notifications_for_user( $user_id, $format = 'strin // Return an array of content strings. } else { - $content = call_user_func( $bp->{$component_name}->notification_callback, $component_action_name, $component_action_items[0]->item_id, $component_action_items[0]->secondary_item_id, $action_item_count ); + $content = call_user_func( $bp->{$component_name}->notification_callback, $component_action_name, $component_action_items[0]->item_id, $component_action_items[0]->secondary_item_id, $action_item_count, 'string', $component_action_items[0]->id ); $renderable[] = $content; } @@ -270,18 +271,38 @@ function bp_notifications_get_notifications_for_user( $user_id, $format = 'strin $component_action_items[0]->item_id, $component_action_items[0]->secondary_item_id, $action_item_count, - $format + $format, + $component_action_name, // Duplicated so plugins can check the canonical action name. + $component_name, + $component_action_items[0]->id ); // Function should return an object. if ( 'object' === $format ) { /** - * Filters the notifications for a user. + * Filters the notification content for notifications created by plugins. + * + * If your plugin extends the {@link BP_Component} class, you should use the + * 'notification_callback' parameter in your extended + * {@link BP_Component::setup_globals()} method instead. * * @since 1.9.0 + * @since 2.6.0 Added $component_action_name, $component_name, $id as parameters. + * + * @param string $content Component action. Deprecated. Do not do checks against this! Use + * the 6th parameter instead - $component_action_name. + * @param int $item_id Notification item ID. + * @param int $secondary_item_id Notification secondary item ID. + * @param int $action_item_count Number of notifications with the same action. + * @param string $format Format of return. Either 'string' or 'object'. + * @param string $component_action_name Canonical notification action. + * @param string $component_name Notification component ID. + * @param int $id Notification ID. * - * @param array $ref_array Array of properties for the current notification being rendered. + * @return string|array If $format is 'string', return a string of the notification content. + * If $format is 'object', return an array formatted like: + * array( 'text' => 'CONTENT', 'link' => 'LINK' ) */ $content = apply_filters_ref_array( 'bp_notifications_get_notifications_for_user', $ref_array ); @@ -683,7 +704,7 @@ function bp_notifications_delete_meta( $notification_id, $meta_key = '', $meta_v add_filter( 'query', 'bp_filter_metaid_column_name' ); foreach ( $keys as $key ) { - $retval = delete_metadata( 'notifications', $notification_id, $key, $meta_value, $delete_all ); + $retval = delete_metadata( 'notification', $notification_id, $key, $meta_value, $delete_all ); } remove_filter( 'query', 'bp_filter_metaid_column_name' ); @@ -695,8 +716,6 @@ function bp_notifications_delete_meta( $notification_id, $meta_key = '', $meta_v * * @since 2.3.0 * - * @uses apply_filters() To call the 'bp_notifications_get_meta' hook. - * * @param int $notification_id ID of the notification item whose metadata is being requested. * @param string $meta_key Optional. If present, only the metadata matching * that meta key will be returned. Otherwise, all metadata for the @@ -708,7 +727,7 @@ function bp_notifications_delete_meta( $notification_id, $meta_key = '', $meta_v */ function bp_notifications_get_meta( $notification_id = 0, $meta_key = '', $single = true ) { add_filter( 'query', 'bp_filter_metaid_column_name' ); - $retval = get_metadata( 'notifications', $notification_id, $meta_key, $single ); + $retval = get_metadata( 'notification', $notification_id, $meta_key, $single ); remove_filter( 'query', 'bp_filter_metaid_column_name' ); /** @@ -743,7 +762,7 @@ function bp_notifications_get_meta( $notification_id = 0, $meta_key = '', $singl */ function bp_notifications_update_meta( $notification_id, $meta_key, $meta_value, $prev_value = '' ) { add_filter( 'query', 'bp_filter_metaid_column_name' ); - $retval = update_metadata( 'notifications', $notification_id, $meta_key, $meta_value, $prev_value ); + $retval = update_metadata( 'notification', $notification_id, $meta_key, $meta_value, $prev_value ); remove_filter( 'query', 'bp_filter_metaid_column_name' ); return $retval; @@ -764,7 +783,7 @@ function bp_notifications_update_meta( $notification_id, $meta_key, $meta_value, */ function bp_notifications_add_meta( $notification_id, $meta_key, $meta_value, $unique = false ) { add_filter( 'query', 'bp_filter_metaid_column_name' ); - $retval = add_metadata( 'notifications', $notification_id, $meta_key, $meta_value, $unique ); + $retval = add_metadata( 'notification', $notification_id, $meta_key, $meta_value, $unique ); remove_filter( 'query', 'bp_filter_metaid_column_name' ); return $retval; 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 c48060da610dd2dd38039c1ed11fdc539141357f..319e376e1eb0fad161834deb391694338275009d 100644 --- a/wp-content/plugins/buddypress/bp-notifications/bp-notifications-loader.php +++ b/wp-content/plugins/buddypress/bp-notifications/bp-notifications-loader.php @@ -12,7 +12,9 @@ // Exit if accessed directly. defined( 'ABSPATH' ) || exit; -require dirname( __FILE__ ) . '/classes/class-bp-notifications-component.php'; +if ( ! buddypress()->do_autoload ) { + require dirname( __FILE__ ) . '/classes/class-bp-notifications-component.php'; +} /** * Bootstrap the 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 053c6442057f2ce91b6d9e57047aa055f1c04d89..666c7b252115c48acba5535ac612e9abdb34ccca 100644 --- a/wp-content/plugins/buddypress/bp-notifications/bp-notifications-template.php +++ b/wp-content/plugins/buddypress/bp-notifications/bp-notifications-template.php @@ -10,7 +10,9 @@ // Exit if accessed directly. defined( 'ABSPATH' ) || exit; -require dirname( __FILE__ ) . '/classes/class-bp-notifications-template.php'; +if ( ! buddypress()->do_autoload ) { + require dirname( __FILE__ ) . '/classes/class-bp-notifications-template.php'; +} /** * Output the notifications component slug. @@ -40,68 +42,98 @@ function bp_notifications_slug() { } /** - * Output the notifications permalink. + * Output the notifications permalink for a user. * * @since 1.9.0 + * @since 2.6.0 Added $user_id as a parameter. + * + * @param int $user_id The user ID. */ -function bp_notifications_permalink() { - echo bp_get_notifications_permalink(); +function bp_notifications_permalink( $user_id = 0 ) { + echo bp_get_notifications_permalink( $user_id ); } /** * Return the notifications permalink. * * @since 1.9.0 + * @since 2.6.0 Added $user_id as a parameter. * + * @param int $user_id The user ID. * @return string Notifications permalink. */ - function bp_get_notifications_permalink() { - $retval = trailingslashit( bp_loggedin_user_domain() . bp_get_notifications_slug() ); + function bp_get_notifications_permalink( $user_id = 0 ) { + if ( 0 === $user_id ) { + $user_id = bp_loggedin_user_id(); + $domain = bp_loggedin_user_domain(); + } else { + $domain = bp_core_get_user_domain( (int) $user_id ); + } + + $retval = trailingslashit( $domain . bp_get_notifications_slug() ); /** * Filters the notifications permalink. * * @since 1.9.0 + * @since 2.6.0 Added $user_id as a parameter. * - * @param string $retval Permalink for the notifications. + * @param string $retval Permalink for the notifications. + * @param int $user_id The user ID. */ - return apply_filters( 'bp_get_notifications_permalink', $retval ); + return apply_filters( 'bp_get_notifications_permalink', $retval, $user_id ); } /** - * Output the unread notifications permalink. + * Output the unread notifications permalink for a user. * * @since 1.9.0 + * @since 2.6.0 Added $user_id as a parameter. + * + * @param int $user_id The user ID. */ -function bp_notifications_unread_permalink() { - echo bp_get_notifications_unread_permalink(); +function bp_notifications_unread_permalink( $user_id = 0 ) { + echo bp_get_notifications_unread_permalink( $user_id ); } /** * Return the unread notifications permalink. * - * @since 1.9.0 + * @since 2.6.0 Added $user_id as a parameter. * + * @param int $user_id The user ID. * @return string Unread notifications permalink. */ - function bp_get_notifications_unread_permalink() { - $retval = trailingslashit( bp_loggedin_user_domain() . bp_get_notifications_slug() . '/unread' ); + function bp_get_notifications_unread_permalink( $user_id = 0 ) { + if ( 0 === $user_id ) { + $user_id = bp_loggedin_user_id(); + $domain = bp_loggedin_user_domain(); + } else { + $domain = bp_core_get_user_domain( (int) $user_id ); + } + + $retval = trailingslashit( $domain . bp_get_notifications_slug() . '/unread' ); /** * Filters the unread notifications permalink. * * @since 1.9.0 + * @since 2.6.0 Added $user_id as a parameter. * - * @param string $retval Permalink for the unread notifications. + * @param string $retval Permalink for the unread notifications. + * @param int $user_id The user ID. */ - return apply_filters( 'bp_get_notifications_unread_permalink', $retval ); + return apply_filters( 'bp_get_notifications_unread_permalink', $retval, $user_id ); } /** - * Output the read notifications permalink. + * Output the read notifications permalink for a user. * * @since 1.9.0 + * @since 2.6.0 Added $user_id as a parameter. + * + * @param int $user_id The user ID. */ -function bp_notifications_read_permalink() { - echo bp_get_notifications_read_permalink(); +function bp_notifications_read_permalink( $user_id = 0 ) { + echo bp_get_notifications_read_permalink( $user_id ); } /** * Return the read notifications permalink. @@ -110,17 +142,26 @@ function bp_notifications_read_permalink() { * * @return string Read notifications permalink. */ - function bp_get_notifications_read_permalink() { - $retval = trailingslashit( bp_loggedin_user_domain() . bp_get_notifications_slug() . '/read' ); + function bp_get_notifications_read_permalink( $user_id = 0 ) { + if ( 0 === $user_id ) { + $user_id = bp_loggedin_user_id(); + $domain = bp_loggedin_user_domain(); + } else { + $domain = bp_core_get_user_domain( (int) $user_id ); + } + + $retval = trailingslashit( $domain . bp_get_notifications_slug() . '/read' ); /** * Filters the read notifications permalink. * * @since 1.9.0 + * @since 2.6.0 Added $user_id as a parameter. * - * @param string $retval Permalink for the read notifications. + * @param string $retval Permalink for the read notifications. + * @param int $user_id The user ID. */ - return apply_filters( 'bp_get_notifications_unread_permalink', $retval ); + return apply_filters( 'bp_get_notifications_unread_permalink', $retval, $user_id ); } /** The Loop ******************************************************************/ @@ -167,15 +208,29 @@ function bp_has_notifications( $args = '' ) { $user_id = bp_loggedin_user_id(); } + // Set the component action (by default false to get all actions) + $component_action = false; + + if ( isset( $_REQUEST['type'] ) ) { + $component_action = sanitize_key( $_REQUEST['type'] ); + } + + // Set the search terms (by default an empty string to get all notifications) + $search_terms = ''; + + if ( isset( $_REQUEST['s'] ) ) { + $search_terms = stripslashes( $_REQUEST['s'] ); + } + // Parse the args. $r = bp_parse_args( $args, array( 'id' => false, 'user_id' => $user_id, 'secondary_item_id' => false, 'component_name' => bp_notifications_get_registered_components(), - 'component_action' => false, + 'component_action' => $component_action, 'is_new' => $is_new, - 'search_terms' => isset( $_REQUEST['s'] ) ? stripslashes( $_REQUEST['s'] ) : '', + 'search_terms' => $search_terms, 'order_by' => 'date_notified', 'sort_order' => 'DESC', 'meta_query' => false, @@ -199,11 +254,13 @@ function bp_has_notifications( $args = '' ) { * Filters whether or not the user has notifications to display. * * @since 1.9.0 + * @since 2.6.0 Added the `$r` parameter. * * @param bool $value Whether or not there are notifications to display. * @param BP_Notifications_Template $query_loop BP_Notifications_Template object instance. + * @param array $r Array of arguments passed into the BP_Notifications_Template class. */ - return apply_filters( 'bp_has_notifications', $query_loop->has_notifications(), $query_loop ); + return apply_filters( 'bp_has_notifications', $query_loop->has_notifications(), $query_loop, $r ); } /** @@ -453,7 +510,7 @@ function bp_the_notification_description() { // Callback function exists. if ( isset( $bp->{ $notification->component_name }->notification_callback ) && is_callable( $bp->{ $notification->component_name }->notification_callback ) ) { - $description = call_user_func( $bp->{ $notification->component_name }->notification_callback, $notification->component_action, $notification->item_id, $notification->secondary_item_id, 1 ); + $description = call_user_func( $bp->{ $notification->component_name }->notification_callback, $notification->component_action, $notification->item_id, $notification->secondary_item_id, 1, 'string', $notification->id ); // @deprecated format_notification_function - 1.5 } elseif ( isset( $bp->{ $notification->component_name }->format_notification_function ) && function_exists( $bp->{ $notification->component_name }->format_notification_function ) ) { @@ -463,7 +520,7 @@ function bp_the_notification_description() { } else { /** This filter is documented in bp-notifications/bp-notifications-functions.php */ - $description = apply_filters_ref_array( 'bp_notifications_get_notifications_for_user', array( $notification->component_action, $notification->item_id, $notification->secondary_item_id, 1 ) ); + $description = apply_filters_ref_array( 'bp_notifications_get_notifications_for_user', array( $notification->component_action, $notification->item_id, $notification->secondary_item_id, 1, 'string', $notification->component_action, $notification->component_name, $notification->id ) ); } /** @@ -482,36 +539,38 @@ function bp_the_notification_description() { * Output the mark read link for the current notification. * * @since 1.9.0 + * @since 2.6.0 Added $user_id as a parameter. * - * @uses bp_get_the_notification_mark_read_link() + * @param int $user_id The user ID. */ -function bp_the_notification_mark_read_link() { - echo bp_get_the_notification_mark_read_link(); +function bp_the_notification_mark_read_link( $user_id = 0 ) { + echo bp_get_the_notification_mark_read_link( $user_id ); } /** * Return the mark read link for the current notification. * * @since 1.9.0 + * @since 2.6.0 Added $user_id as a parameter. * + * @param int $user_id The user ID. * @return string */ - function bp_get_the_notification_mark_read_link() { - - // Start the output buffer. - ob_start(); ?> + function bp_get_the_notification_mark_read_link( $user_id = 0 ) { + // Set default user ID to use. + $user_id = 0 === $user_id ? bp_displayed_user_id() : $user_id; - <a href="<?php bp_the_notification_mark_read_url(); ?>" class="mark-read primary"><?php _e( 'Read', 'buddypress' ); ?></a> - - <?php $retval = ob_get_clean(); + $retval = sprintf( '<a href="%1$s" class="mark-read primary">%2$s</a>', esc_url( bp_get_the_notification_mark_read_url( $user_id ) ), __( 'Read', 'buddypress' ) ); /** * Filters the mark read link for the current notification. * * @since 1.9.0 + * @since 2.6.0 Added $user_id as a parameter. * - * @param string $retval HTML for the mark read link for the current notification. + * @param string $retval HTML for the mark read link for the current notification. + * @param int $user_id The user ID. */ - return apply_filters( 'bp_get_the_notification_mark_read_link', $retval ); + return apply_filters( 'bp_get_the_notification_mark_read_link', $retval, $user_id ); } /** @@ -520,20 +579,23 @@ function bp_the_notification_mark_read_link() { * Since this function directly outputs a URL, it is escaped. * * @since 2.1.0 + * @since 2.6.0 Added $user_id as a parameter. * - * @uses bp_get_the_notification_mark_read_url() + * @param int $user_id The user ID. */ -function bp_the_notification_mark_read_url() { - echo esc_url( bp_get_the_notification_mark_read_url() ); +function bp_the_notification_mark_read_url( $user_id = 0 ) { + echo esc_url( bp_get_the_notification_mark_read_url( $user_id ) ); } /** * Return the URL used for marking a single notification as read. * * @since 2.1.0 + * @since 2.6.0 Added $user_id as a parameter. * + * @param int $user_id The user ID. * @return string */ - function bp_get_the_notification_mark_read_url() { + function bp_get_the_notification_mark_read_url( $user_id = 0 ) { // Get the notification ID. $id = bp_get_the_notification_id(); @@ -544,8 +606,11 @@ function bp_the_notification_mark_read_url() { 'notification_id' => $id ); + // Set default user ID to use. + $user_id = 0 === $user_id ? bp_displayed_user_id() : $user_id; + // Add the args to the URL. - $url = add_query_arg( $args, bp_get_notifications_unread_permalink() ); + $url = add_query_arg( $args, bp_get_notifications_unread_permalink( $user_id ) ); // Add the nonce. $url = wp_nonce_url( $url, 'bp_notification_mark_read_' . $id ); @@ -554,46 +619,50 @@ function bp_the_notification_mark_read_url() { * Filters the URL used for marking a single notification as read. * * @since 2.1.0 + * @since 2.6.0 Added $user_id as a parameter. * - * @param string $url URL to use for marking the single notification as read. + * @param string $url URL to use for marking the single notification as read. + * @param int $user_id The user ID. */ - return apply_filters( 'bp_get_the_notification_mark_read_url', $url ); + return apply_filters( 'bp_get_the_notification_mark_read_url', $url, $user_id ); } /** * Output the mark unread link for the current notification. * * @since 1.9.0 + * @since 2.6.0 Added $user_id as a parameter. * - * @uses bp_get_the_notification_mark_unread_link() + * @param int $user_id The user ID. */ -function bp_the_notification_mark_unread_link() { +function bp_the_notification_mark_unread_link( $user_id = 0 ) { echo bp_get_the_notification_mark_unread_link(); } /** * Return the mark unread link for the current notification. * * @since 1.9.0 + * @since 2.6.0 Added $user_id as a parameter. * + * @param int $user_id The user ID. * @return string */ - function bp_get_the_notification_mark_unread_link() { - - // Start the output buffer. - ob_start(); ?> - - <a href="<?php bp_the_notification_mark_unread_url(); ?>" class="mark-unread primary"><?php _ex( 'Unread', 'Notification screen action', 'buddypress' ); ?></a> + function bp_get_the_notification_mark_unread_link( $user_id = 0 ) { + // Set default user ID to use. + $user_id = 0 === $user_id ? bp_displayed_user_id() : $user_id; - <?php $retval = ob_get_clean(); + $retval = sprintf( '<a href="%1$s" class="mark-unread primary">%2$s</a>', esc_url( bp_get_the_notification_mark_unread_url( $user_id ) ), __( 'Unread', 'buddypress' ) ); /** * Filters the link used for marking a single notification as unread. * * @since 1.9.0 + * @since 2.6.0 Added $user_id as a parameter. * - * @param string $retval HTML for the mark unread link for the current notification. + * @param string $retval HTML for the mark unread link for the current notification. + * @param int $user_id The user ID. */ - return apply_filters( 'bp_get_the_notification_mark_unread_link', $retval ); + return apply_filters( 'bp_get_the_notification_mark_unread_link', $retval, $user_id ); } /** @@ -602,20 +671,23 @@ function bp_the_notification_mark_unread_link() { * Since this function directly outputs a URL, it is escaped. * * @since 2.1.0 + * @since 2.6.0 Added $user_id as a parameter. * - * @uses bp_get_the_notification_mark_unread_url() + * @param int $user_id The user ID. */ -function bp_the_notification_mark_unread_url() { - echo esc_url( bp_get_the_notification_mark_unread_url() ); +function bp_the_notification_mark_unread_url( $user_id = 0 ) { + echo esc_url( bp_get_the_notification_mark_unread_url( $user_id ) ); } /** * Return the URL used for marking a single notification as unread. * * @since 2.1.0 + * @since 2.6.0 Added $user_id as a parameter. * + * @param int $user_id The user ID. * @return string */ - function bp_get_the_notification_mark_unread_url() { + function bp_get_the_notification_mark_unread_url( $user_id = 0 ) { // Get the notification ID. $id = bp_get_the_notification_id(); @@ -626,8 +698,11 @@ function bp_the_notification_mark_unread_url() { 'notification_id' => $id ); + // Set default user ID to use. + $user_id = 0 === $user_id ? bp_displayed_user_id() : $user_id; + // Add the args to the URL. - $url = add_query_arg( $args, bp_get_notifications_read_permalink() ); + $url = add_query_arg( $args, bp_get_notifications_read_permalink( $user_id ) ); // Add the nonce. $url = wp_nonce_url( $url, 'bp_notification_mark_unread_' . $id ); @@ -636,81 +711,92 @@ function bp_the_notification_mark_unread_url() { * Filters the URL used for marking a single notification as unread. * * @since 2.1.0 + * @since 2.6.0 Added $user_id as a parameter. * - * @param string $url URL to use for marking the single notification as unread. + * @param string $url URL to use for marking the single notification as unread. + * @param int $user_id The user ID. */ - return apply_filters( 'bp_get_the_notification_mark_unread_url', $url ); + return apply_filters( 'bp_get_the_notification_mark_unread_url', $url, $user_id ); } /** * Output the mark link for the current notification. * * @since 1.9.0 + * @since 2.6.0 Added $user_id as a parameter. * - * @uses bp_get_the_notification_mark_unread_link() + * @param int $user_id The user ID. */ -function bp_the_notification_mark_link() { - echo bp_get_the_notification_mark_link(); +function bp_the_notification_mark_link( $user_id = 0 ) { + echo bp_get_the_notification_mark_link( $user_id ); } /** * Return the mark link for the current notification. * * @since 1.9.0 + * @since 2.6.0 Added $user_id as a parameter. * + * @param int $user_id The user ID. * @return string */ - function bp_get_the_notification_mark_link() { + function bp_get_the_notification_mark_link( $user_id = 0 ) { + // Set default user ID to use. + $user_id = 0 === $user_id ? bp_displayed_user_id() : $user_id; if ( bp_is_current_action( 'read' ) ) { - $retval = bp_get_the_notification_mark_unread_link(); + $retval = bp_get_the_notification_mark_unread_link( $user_id ); } else { - $retval = bp_get_the_notification_mark_read_link(); + $retval = bp_get_the_notification_mark_read_link( $user_id ); } /** * Filters the mark link for the current notification. * * @since 1.9.0 + * @since 2.6.0 Added $user_id as a parameter. * - * @param string $retval The mark link for the current notification. + * @param string $retval The mark link for the current notification. + * @param int $user_id The user ID. */ - return apply_filters( 'bp_get_the_notification_mark_link', $retval ); + return apply_filters( 'bp_get_the_notification_mark_link', $retval, $user_id ); } /** * Output the delete link for the current notification. * * @since 1.9.0 + * @since 2.6.0 Added $user_id as a parameter. * - * @uses bp_get_the_notification_delete_link() + * @param int $user_id The user ID. */ -function bp_the_notification_delete_link() { - echo bp_get_the_notification_delete_link(); +function bp_the_notification_delete_link( $user_id = 0 ) { + echo bp_get_the_notification_delete_link( $user_id ); } /** * Return the delete link for the current notification. * * @since 1.9.0 + * @since 2.6.0 Added $user_id as a parameter. * + * @param int $user_id The user ID. * @return string */ - function bp_get_the_notification_delete_link() { - - // Start the output buffer. - ob_start(); ?> - - <a href="<?php bp_the_notification_delete_url(); ?>" class="delete secondary confirm"><?php _e( 'Delete', 'buddypress' ); ?></a> + function bp_get_the_notification_delete_link( $user_id = 0 ) { + // Set default user ID to use. + $user_id = 0 === $user_id ? bp_displayed_user_id() : $user_id; - <?php $retval = ob_get_clean(); + $retval = sprintf( '<a href="%1$s" class="delete secondary confirm">%2$s</a>', esc_url( bp_get_the_notification_delete_url( $user_id ) ), __( 'Delete', 'buddypress' ) ); /** * Filters the delete link for the current notification. * * @since 1.9.0 + * @since 2.6.0 Added $user_id as a parameter. * - * @param string $retval HTML for the delete link for the current notification. + * @param string $retval HTML for the delete link for the current notification. + * @param int $user_id The user ID. */ - return apply_filters( 'bp_get_the_notification_delete_link', $retval ); + return apply_filters( 'bp_get_the_notification_delete_link', $retval, $user_id ); } /** @@ -719,27 +805,31 @@ function bp_the_notification_delete_link() { * Since this function directly outputs a URL, it is escaped. * * @since 2.1.0 + * @since 2.6.0 Added $user_id as a parameter. * - * @uses esc_url() - * @uses bp_get_the_notification_delete_url() + * @param int $user_id The user ID. */ -function bp_the_notification_delete_url() { - echo esc_url( bp_get_the_notification_delete_url() ); +function bp_the_notification_delete_url( $user_id = 0 ) { + echo esc_url( bp_get_the_notification_delete_url( $user_id ) ); } /** * Return the URL used for deleting a single notification. * * @since 2.1.0 + * @since 2.6.0 Added $user_id as a parameter. * + * @param int $user_id The user ID. * @return string */ - function bp_get_the_notification_delete_url() { + function bp_get_the_notification_delete_url( $user_id = 0 ) { + // Set default user ID to use. + $user_id = 0 === $user_id ? bp_displayed_user_id() : $user_id; // URL to add nonce to. if ( bp_is_current_action( 'unread' ) ) { - $link = bp_get_notifications_unread_permalink(); + $link = bp_get_notifications_unread_permalink( $user_id ); } elseif ( bp_is_current_action( 'read' ) ) { - $link = bp_get_notifications_read_permalink(); + $link = bp_get_notifications_read_permalink( $user_id ); } // Get the ID. @@ -761,16 +851,19 @@ function bp_the_notification_delete_url() { * Filters the URL used for deleting a single notification. * * @since 2.1.0 + * @since 2.6.0 Added $user_id as a parameter. * - * @param string $url URL used for deleting a single notification. + * @param string $url URL used for deleting a single notification. + * @param int $user_id The user ID. */ - return apply_filters( 'bp_get_the_notification_delete_url', $url ); + return apply_filters( 'bp_get_the_notification_delete_url', $url, $user_id ); } /** * Output the action links for the current notification. * * @since 1.9.0 + * @since 2.6.0 Added $user_id as a parameter to $args. * * @param array|string $args Array of arguments. */ @@ -781,16 +874,20 @@ function bp_the_notification_action_links( $args = '' ) { * Return the action links for the current notification. * * @since 1.9.0 + * @since 2.6.0 Added $user_id as a parameter to $args. * * @param array|string $args { - * @type string $before HTML before the links. - * @type string $after HTML after the links. - * @type string $sep HTML between the links. - * @type array $links Array of links to implode by 'sep'. + * @type string $before HTML before the links. + * @type string $after HTML after the links. + * @type string $sep HTML between the links. + * @type array $links Array of links to implode by 'sep'. + * @type int $user_id User ID to fetch action links for. Defaults to displayed user ID. * } * @return string HTML links for actions to take on single notifications. */ function bp_get_the_notification_action_links( $args = '' ) { + // Set default user ID to use. + $user_id = isset( $args['user_id'] ) ? $args['user_id'] : bp_displayed_user_id(); // Parse. $r = wp_parse_args( $args, array( @@ -798,8 +895,8 @@ function bp_the_notification_action_links( $args = '' ) { 'after' => '', 'sep' => ' | ', 'links' => array( - bp_get_the_notification_mark_link(), - bp_get_the_notification_delete_link() + bp_get_the_notification_mark_link( $user_id ), + bp_get_the_notification_delete_link( $user_id ) ) ) ); @@ -810,10 +907,12 @@ function bp_the_notification_action_links( $args = '' ) { * Filters the action links for the current notification. * * @since 1.9.0 + * @since 2.6.0 Added the `$r` parameter. * * @param string $retval HTML links for actions to take on single notifications. + * @param array $r Array of parsed arguments. */ - return apply_filters( 'bp_get_the_notification_action_links', $retval ); + return apply_filters( 'bp_get_the_notification_action_links', $retval, $r ); } /** @@ -924,7 +1023,10 @@ function bp_notifications_sort_order_form() { */ function bp_notifications_bulk_management_dropdown() { ?> - <label class="bp-screen-reader-text" for="notification-select"><?php _e( 'Select Bulk Action', 'buddypress' ); ?></label> + <label class="bp-screen-reader-text" for="notification-select"><?php + /* translators: accessibility text */ + _e( 'Select Bulk Action', 'buddypress' ); + ?></label> <select name="notification_bulk_action" id="notification-select"> <option value="" selected="selected"><?php _e( 'Bulk Actions', 'buddypress' ); ?></option> 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 67a6db5ec7a11bb764920b0b244d03e079be73d3..83d474f3e013d30c89c6303a692bde77526e36cf 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 @@ -45,7 +45,6 @@ class BP_Notifications_Component extends BP_Component { public function includes( $includes = array() ) { $includes = array( 'actions', - 'classes', 'screens', 'adminbar', 'template', @@ -53,6 +52,10 @@ class BP_Notifications_Component extends BP_Component { 'cache', ); + if ( ! buddypress()->do_autoload ) { + $includes[] = 'classes'; + } + parent::includes( $includes ); } @@ -79,6 +82,11 @@ class BP_Notifications_Component extends BP_Component { 'table_name_meta' => $bp->table_prefix . 'bp_notifications_meta', ); + // Metadata tables for notifications component. + $meta_tables = array( + 'notification' => $bp->table_prefix . 'bp_notifications_meta', + ); + // All globals for the notifications component. // Note that global_tables is included in this array. $args = array( @@ -86,6 +94,7 @@ class BP_Notifications_Component extends BP_Component { 'has_directory' => false, 'search_string' => __( 'Search Notifications...', 'buddypress' ), 'global_tables' => $global_tables, + 'meta_tables' => $meta_tables ); parent::setup_globals( $args ); @@ -122,7 +131,15 @@ class BP_Notifications_Component extends BP_Component { if ( bp_is_user() && bp_user_has_access() ) { $count = bp_notifications_get_unread_notification_count( bp_displayed_user_id() ); $class = ( 0 === $count ) ? 'no-count' : 'count'; - $nav_name = sprintf( _x( 'Notifications <span class="%s">%s</span>', 'Profile screen nav', 'buddypress' ), esc_attr( $class ), bp_core_number_format( $count ) ); + $nav_name = sprintf( + /* translators: %s: Unread notification count for the current user */ + _x( 'Notifications %s', 'Profile screen nav', 'buddypress' ), + sprintf( + '<span class="%s">%s</span>', + esc_attr( $class ), + bp_core_number_format( $count ) + ) + ); } else { $nav_name = _x( 'Notifications', 'Profile screen nav', 'buddypress' ); } @@ -185,8 +202,16 @@ class BP_Notifications_Component extends BP_Component { // Pending notification requests. $count = bp_notifications_get_unread_notification_count( bp_loggedin_user_id() ); if ( ! empty( $count ) ) { - $title = sprintf( _x( 'Notifications <span class="count">%s</span>', 'My Account Notification pending', 'buddypress' ), bp_core_number_format( $count ) ); - $unread = sprintf( _x( 'Unread <span class="count">%s</span>', 'My Account Notification pending', 'buddypress' ), bp_core_number_format( $count ) ); + $title = sprintf( + /* translators: %s: Unread notification count for the current user */ + _x( 'Notifications %s', 'My Account Notification pending', 'buddypress' ), + '<span class="count">' . bp_core_number_format( $count ) . '</span>' + ); + $unread = sprintf( + /* translators: %s: Unread notification count for the current user */ + _x( 'Unread %s', 'My Account Notification pending', 'buddypress' ), + '<span class="count">' . bp_core_number_format( $count ) . '</span>' + ); } else { $title = _x( 'Notifications', 'My Account Notification', 'buddypress' ); $unread = _x( 'Unread', 'My Account Notification sub nav', 'buddypress' ); diff --git a/wp-content/plugins/buddypress/bp-notifications/classes/class-bp-notifications-notification.php b/wp-content/plugins/buddypress/bp-notifications/classes/class-bp-notifications-notification.php index c417b890e636eab817ca1197b2c7b71c190e4c0b..9fce40330a0839b23302b1262ddef89ceea67407 100644 --- a/wp-content/plugins/buddypress/bp-notifications/classes/class-bp-notifications-notification.php +++ b/wp-content/plugins/buddypress/bp-notifications/classes/class-bp-notifications-notification.php @@ -629,6 +629,10 @@ class BP_Notifications_Notification { * false (no pagination - all items). * @type int $per_page Number of items to show per page. Default: * false (no pagination - all items). + * @type array $meta_query Array of meta_query conditions. See WP_Meta_Query::queries. + * @type array $date_query Array of date_query conditions. See first parameter of + * WP_Date_Query::__construct(). + * @type bool $update_meta_cache Whether to update meta cache. Default: true. * } * @return array Located notifications. */ @@ -681,7 +685,14 @@ class BP_Notifications_Notification { // Concatenate query parts. $sql = "{$select_sql} {$from_sql} {$join_sql} {$where_sql} {$order_sql} {$pag_sql}"; - return $wpdb->get_results( $sql ); + $results = $wpdb->get_results( $sql ); + + // Update meta cache. + if ( true === $r['update_meta_cache'] ) { + bp_notifications_update_meta_cache( wp_list_pluck( $results, 'id' ) ); + } + + return $results; } /** 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 3904dbfaefad46ca735bb7ec4c64a5988df2b8e9..ffcd508f6ffd590036223748cc0f8d212f8cc73e 100644 --- a/wp-content/plugins/buddypress/bp-settings/bp-settings-actions.php +++ b/wp-content/plugins/buddypress/bp-settings/bp-settings-actions.php @@ -444,7 +444,7 @@ function bp_settings_verify_email_change(){ $pending_email = bp_get_user_meta( bp_displayed_user_id(), 'pending_email_change', true ); // Bail if the hash provided doesn't match the one saved in the database. - if ( urldecode( $_GET['verify_email_change'] ) !== $pending_email['hash'] ) { + if ( ! hash_equals( urldecode( $_GET['verify_email_change'] ), $pending_email['hash'] ) ) { return; } 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 b417d8e78ae0b5f1b91403d56d031abd3c05bbfd..730b993c18819d809007145a9a449210acd8d4af 100644 --- a/wp-content/plugins/buddypress/bp-settings/bp-settings-loader.php +++ b/wp-content/plugins/buddypress/bp-settings/bp-settings-loader.php @@ -10,7 +10,9 @@ // Exit if accessed directly. defined( 'ABSPATH' ) || exit; -require dirname( __FILE__ ) . '/classes/class-bp-settings-component.php'; +if ( ! buddypress()->do_autoload ) { + require dirname( __FILE__ ) . '/classes/class-bp-settings-component.php'; +} /** * Instantiates the 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 01f3b64c78aafc5bb6ea6ede3e4dbef589ced3d8..cd3d4d98ba51cdbaf19bf95338f59ad43bbbe633 100644 --- a/wp-content/plugins/buddypress/bp-settings/bp-settings-template.php +++ b/wp-content/plugins/buddypress/bp-settings/bp-settings-template.php @@ -15,7 +15,6 @@ defined( 'ABSPATH' ) || exit; * * @since 1.5.0 * - * @uses bp_get_settings_slug() */ function bp_settings_slug() { echo bp_get_settings_slug(); @@ -44,7 +43,6 @@ function bp_settings_slug() { * * @since 1.5.0 * - * @uses bp_get_settings_root_slug() */ function bp_settings_root_slug() { echo bp_get_settings_root_slug(); @@ -88,12 +86,15 @@ function bp_settings_pending_email_notice() { <div id="message" class="bp-template-notice error"> <p><?php printf( - __( 'There is a pending change of your email address to %1$s.<br />Check your email (%2$s) for the verification link. <a href="%3$s">Cancel</a>', 'buddypress' ), - '<code>' . $pending_email['newemail'] . '</code>', - '<code>' . $pending_email['newemail'] . '</code>', + __( 'There is a pending change of your email address to %s.', 'buddypress' ), + '<code>' . esc_html( $pending_email['newemail'] ) . '</code>' + ); ?> + <br /> + <?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' ) - ); - ?></p> + ); ?></p> </div> <?php 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 e7209222e9fc2b5fa82c94991e112e968dfe8fe1..b5fbcd4d770c6004e49eb808f334421f75273403 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 @@ -41,8 +41,6 @@ class BP_Legacy extends BP_Theme_Compat { * * @since 1.7.0 * - * @uses BP_Legacy::setup_globals() - * @uses BP_Legacy::setup_actions() */ public function __construct() { parent::start(); @@ -70,8 +68,6 @@ class BP_Legacy extends BP_Theme_Compat { * * @since 1.7.0 * - * @uses add_filter() To add various filters - * @uses add_action() To add various actions */ protected function setup_actions() { @@ -86,7 +82,6 @@ class BP_Legacy extends BP_Theme_Compat { add_action( 'bp_enqueue_scripts', array( $this, 'enqueue_styles' ) ); // Enqueue theme CSS add_action( 'bp_enqueue_scripts', array( $this, 'enqueue_scripts' ) ); // Enqueue theme JS add_filter( 'bp_enqueue_scripts', array( $this, 'localize_scripts' ) ); // Enqueue theme script localization - add_action( 'bp_head', array( $this, 'head_scripts' ) ); // Output some extra JS in the <head>. /** Body no-js Class **************************************************/ @@ -211,7 +206,6 @@ class BP_Legacy extends BP_Theme_Compat { * @since 1.7.0 * @since 2.3.0 Support custom CSS file named after the current theme or parent theme. * - * @uses wp_enqueue_style() To enqueue the styles */ public function enqueue_styles() { $min = bp_core_get_minified_asset_suffix(); @@ -429,23 +423,6 @@ class BP_Legacy extends BP_Theme_Compat { return $retval; } - /** - * Put some scripts in the header, like AJAX url for wp-lists. - * - * @since 1.7.0 - */ - public function head_scripts() { - ?> - - <script type="text/javascript"> - /* <![CDATA[ */ - var ajaxurl = '<?php echo bp_core_ajax_url(); ?>'; - /* ]]> */ - </script> - - <?php - } - /** * Adds the no-js class to the body tag. * @@ -531,7 +508,6 @@ class BP_Legacy extends BP_Theme_Compat { * @since 2.2.0 * * @param array $templates Array of templates. - * @uses apply_filters() call 'bp_legacy_theme_compat_page_templates_directory_only' and return false * to use the defined page template for component's directory and its single items * @return array */ @@ -624,7 +600,6 @@ function bp_legacy_theme_group_create_button( $title ) { * * @since 2.2.0 * - * @uses bp_group_create_nav_item() to output the create a Group nav item. */ function bp_legacy_theme_group_create_nav() { bp_group_create_nav_item(); @@ -654,7 +629,6 @@ function bp_legacy_theme_blog_create_button( $title ) { * * @since 2.2.0 * - * @uses bp_blog_create_nav_item() to output the Create a Site nav item */ function bp_legacy_theme_blog_create_nav() { bp_blog_create_nav_item(); @@ -945,11 +919,11 @@ function bp_legacy_theme_post_update() { } if ( ! $object && bp_is_active( 'activity' ) ) { - $activity_id = bp_activity_post_update( array( 'content' => $_POST['content'] ) ); + $activity_id = bp_activity_post_update( array( 'content' => $_POST['content'], 'error_type' => 'wp_error' ) ); } elseif ( 'groups' === $object ) { if ( $item_id && bp_is_active( 'groups' ) ) - $activity_id = groups_post_update( array( 'content' => $_POST['content'], 'group_id' => $item_id ) ); + $activity_id = groups_post_update( array( 'content' => $_POST['content'], 'group_id' => $item_id, 'error_type' => 'wp_error' ) ); } else { @@ -957,8 +931,11 @@ function bp_legacy_theme_post_update() { $activity_id = apply_filters( 'bp_activity_custom_update', false, $object, $item_id, $_POST['content'] ); } - if ( empty( $activity_id ) ) + if ( false === $activity_id ) { exit( '-1<div id="message" class="error bp-ajax-message"><p>' . __( 'There was a problem posting your update. Please try again.', 'buddypress' ) . '</p></div>' ); + } elseif ( is_wp_error( $activity_id ) && $activity_id->get_error_code() ) { + exit( '-1<div id="message" class="error bp-ajax-message"><p>' . $activity_id->get_error_message() . '</p></div>' ); + } $last_recorded = ! empty( $_POST['since'] ) ? date( 'Y-m-d H:i:s', intval( $_POST['since'] ) ) : 0; if ( $last_recorded ) { @@ -1023,15 +1000,11 @@ function bp_legacy_theme_new_activity_comment() { 'activity_id' => $_POST['form_id'], 'content' => $_POST['content'], 'parent_id' => $_POST['comment_id'], + 'error_type' => 'wp_error' ) ); - if ( ! $comment_id ) { - if ( ! empty( $bp->activity->errors['new_comment'] ) && is_wp_error( $bp->activity->errors['new_comment'] ) ) { - $feedback = $bp->activity->errors['new_comment']->get_error_message(); - unset( $bp->activity->errors['new_comment'] ); - } - - exit( '-1<div id="message" class="error bp-ajax-message"><p>' . esc_html( $feedback ) . '</p></div>' ); + if ( is_wp_error( $comment_id ) ) { + exit( '-1<div id="message" class="error bp-ajax-message"><p>' . esc_html( $comment_id->get_error_message() ) . '</p></div>' ); } // Load the new activity item into the $activities_template global. @@ -1296,7 +1269,7 @@ function bp_legacy_theme_ajax_invite_user() { // Users who have previously requested membership do not need // another invitation created for them. - if ( BP_Groups_Member::check_for_membership_request( $friend_id, $group_id ) ) { + if ( groups_check_for_membership_request( $friend_id, $group_id ) ) { $user_status = 'is_pending'; // Create the user invitation. @@ -1773,7 +1746,7 @@ function bp_legacy_theme_cover_image( $params = array() ) { $top_offset = bp_core_avatar_full_height() - 10; $left_offset = bp_core_avatar_full_width() + 20; - $cover_image = isset( $params['cover_image'] ) ? 'background-image: url(' . $params['cover_image'] . ');' : ''; + $cover_image = ( !empty( $params['cover_image'] ) ) ? 'background-image: url(' . $params['cover_image'] . ');' : ''; $hide_avatar_style = ''; @@ -1794,7 +1767,7 @@ function bp_legacy_theme_cover_image( $params = array() ) { } #buddypress div#item-header #item-header-cover-image #item-header-content { - margin-left:auto; + margin-left: auto; } '; } @@ -1808,8 +1781,8 @@ function bp_legacy_theme_cover_image( $params = array() ) { } #buddypress #create-group-form #header-cover-image { - position: relative; margin: 1em 0; + position: relative; } .bp-user #buddypress #item-header { @@ -1820,7 +1793,7 @@ function bp_legacy_theme_cover_image( $params = array() ) { margin-top: '. $avatar_offset .'px; float: left; overflow: visible; - width:auto; + width: auto; } #buddypress div#item-header #item-header-cover-image #item-header-content { @@ -1828,40 +1801,40 @@ function bp_legacy_theme_cover_image( $params = array() ) { float: left; margin-left: ' . $left_offset . 'px; margin-top: -' . $top_offset . 'px; - width:auto; + width: auto; } body.single-item.groups #buddypress div#item-header #item-header-cover-image #item-header-content, body.single-item.groups #buddypress div#item-header #item-header-cover-image #item-actions { + clear: none; margin-top: ' . $params["height"] . 'px; margin-left: 0; - clear: none; max-width: 50%; } body.single-item.groups #buddypress div#item-header #item-header-cover-image #item-actions { - padding-top: 20px; max-width: 20%; + padding-top: 20px; } ' . $hide_avatar_style . ' - #buddypress div#item-header-cover-image h2 a, - #buddypress div#item-header-cover-image h2 { - color: #FFF; + #buddypress div#item-header-cover-image .user-nicename a, + #buddypress div#item-header-cover-image .user-nicename { + font-size: 200%; + color: #fff; + margin: 0 0 0.6em; text-rendering: optimizelegibility; - text-shadow: 0px 0px 3px rgba( 0, 0, 0, 0.8 ); - margin: 0 0 .6em; - font-size:200%; + text-shadow: 0 0 3px rgba( 0, 0, 0, 0.8 ); } #buddypress #item-header-cover-image #item-header-avatar img.avatar { - border: solid 2px #FFF; background: rgba( 255, 255, 255, 0.8 ); + border: solid 2px #fff; } #buddypress #item-header-cover-image #item-header-avatar a { - border: none; + border: 0; text-decoration: none; } @@ -1880,22 +1853,22 @@ function bp_legacy_theme_cover_image( $params = array() ) { #buddypress #item-header-cover-image #item-header-avatar, .bp-user #buddypress #item-header #item-header-cover-image #item-header-avatar, #buddypress div#item-header #item-header-cover-image #item-header-content { - width:100%; - text-align:center; + width: 100%; + text-align: center; } #buddypress #item-header-cover-image #item-header-avatar a { - display:inline-block; + display: inline-block; } #buddypress #item-header-cover-image #item-header-avatar img { - margin:0; + margin: 0; } #buddypress div#item-header #item-header-cover-image #item-header-content, body.single-item.groups #buddypress div#item-header #item-header-cover-image #item-header-content, body.single-item.groups #buddypress div#item-header #item-header-cover-image #item-actions { - margin:0; + margin: 0; } body.single-item.groups #buddypress div#item-header #item-header-cover-image #item-header-content, @@ -1907,17 +1880,17 @@ function bp_legacy_theme_cover_image( $params = array() ) { #buddypress div#item-header-cover-image h2 { color: inherit; text-shadow: none; - margin:25px 0 0; - font-size:200%; + margin: 25px 0 0; + font-size: 200%; } #buddypress #item-header-cover-image #item-buttons div { - float:none; - display:inline-block; + float: none; + display: inline-block; } #buddypress #item-header-cover-image #item-buttons:before { - content:""; + content: ""; } #buddypress #item-header-cover-image #item-buttons { 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 12497e3a273686167c310f51945adf35823abece..92872dbc694d21f4edd720000bac45824937d696 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 @@ -120,7 +120,10 @@ do_action( 'bp_before_activity_entry' ); ?> <div class="ac-reply-avatar"><?php bp_loggedin_user_avatar( 'width=' . BP_AVATAR_THUMB_WIDTH . '&height=' . BP_AVATAR_THUMB_HEIGHT ); ?></div> <div class="ac-reply-content"> <div class="ac-textarea"> - <label for="ac-input-<?php bp_activity_id(); ?>" class="bp-screen-reader-text"><?php _e( 'Comment', 'buddypress' ); ?></label> + <label for="ac-input-<?php bp_activity_id(); ?>" class="bp-screen-reader-text"><?php + /* translators: accessibility text */ + _e( 'Comment', 'buddypress' ); + ?></label> <textarea id="ac-input-<?php bp_activity_id(); ?>" class="ac-input bp-suggestions" name="ac_input_<?php bp_activity_id(); ?>"></textarea> </div> <input type="submit" name="ac_form_submit" value="<?php esc_attr_e( 'Post', 'buddypress' ); ?>" /> <a href="#" class="ac-reply-cancel"><?php _e( 'Cancel', 'buddypress' ); ?></a> 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 563297390b6ae74950af6c8e7ab3294af6efa239..e3b3d501431bcafd959b020ae79ce0a139cef95b 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 @@ -33,7 +33,10 @@ <div id="whats-new-content"> <div id="whats-new-textarea"> - <label for="whats-new" class="bp-screen-reader-text"><?php _e( 'Post what\'s new', 'buddypress' ); ?></label> + <label for="whats-new" class="bp-screen-reader-text"><?php + /* translators: accessibility text */ + _e( 'Post what\'s new', 'buddypress' ); + ?></label> <textarea class="bp-suggestions" name="whats-new" id="whats-new" cols="50" rows="10" <?php if ( bp_is_group() ) : ?>data-suggestions-group-id="<?php echo esc_attr( (int) bp_get_current_group_id() ); ?>" <?php endif; ?> ><?php if ( isset( $_GET['r'] ) ) : ?>@<?php echo esc_textarea( $_GET['r'] ); ?> <?php endif; ?></textarea> @@ -50,7 +53,10 @@ <?php _e( 'Post in', 'buddypress' ); ?>: - <label for="whats-new-post-in" class="bp-screen-reader-text"><?php _e( 'Post in', 'buddypress' ); ?></label> + <label for="whats-new-post-in" class="bp-screen-reader-text"><?php + /* translators: accessibility text */ + _e( 'Post in', 'buddypress' ); + ?></label> <select id="whats-new-post-in" name="whats-new-post-in"> <option selected="selected" value="0"><?php _e( 'My Profile', 'buddypress' ); ?></option> diff --git a/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/assets/_attachments/uploader.php b/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/assets/_attachments/uploader.php index 5525881408b12fa8620d08bf58ebaee242b0976b..8d18792d62752687a4d9caa1fa7ec2c6f0e06a6e 100644 --- a/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/assets/_attachments/uploader.php +++ b/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/assets/_attachments/uploader.php @@ -22,7 +22,10 @@ <div class="drag-drop-inside"> <p class="drag-drop-info"><?php esc_html_e( 'Drop your file here', 'buddypress' ); ?></p> <p><?php _ex( 'or', 'Uploader: Drop your file here - or - Select your File', 'buddypress' ); ?></p> - <p class="drag-drop-buttons"><label for="{{data.browse_button}}" class="<?php echo is_admin() ? 'screen-reader-text' : 'bp-screen-reader-text' ;?>"><?php esc_html_e( 'Select your File', 'buddypress' ); ?></label><input id="{{data.browse_button}}" type="button" value="<?php esc_attr_e( 'Select your File', 'buddypress' ); ?>" class="button" /></p> + <p class="drag-drop-buttons"><label for="{{data.browse_button}}" class="<?php echo is_admin() ? 'screen-reader-text' : 'bp-screen-reader-text' ;?>"><?php + /* translators: accessibility text */ + esc_html_e( 'Select your File', 'buddypress' ); + ?></label><input id="{{data.browse_button}}" type="button" value="<?php esc_attr_e( 'Select your File', 'buddypress' ); ?>" class="button" /></p> </div> </div> </div> diff --git a/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/assets/embeds/activity.php b/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/assets/embeds/activity.php new file mode 100644 index 0000000000000000000000000000000000000000..aeae8075dcb55fed4ffe07d11278a8c60b34dcba --- /dev/null +++ b/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/assets/embeds/activity.php @@ -0,0 +1,11 @@ + + <?php if ( bp_activity_embed_has_activity( bp_current_action() ) ) : ?> + + <?php while ( bp_activities() ) : bp_the_activity(); ?> + <div class="bp-embed-excerpt"><?php bp_activity_embed_excerpt(); ?></div> + + <?php bp_activity_embed_media(); ?> + + <?php endwhile; ?> + + <?php endif; ?> diff --git a/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/assets/embeds/footer.php b/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/assets/embeds/footer.php new file mode 100644 index 0000000000000000000000000000000000000000..143625a2b6f08fa6732868489bd851483e0a5f25 --- /dev/null +++ b/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/assets/embeds/footer.php @@ -0,0 +1,9 @@ + <div class="wp-embed-footer"> + <?php the_embed_site_title() ?> + + <div class="wp-embed-meta"> + <?php + /** This action is documented in wp-includes/theme-compat/embed-content.php */ + do_action( 'embed_content_meta'); ?> + </div> + </div> \ No newline at end of file diff --git a/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/assets/embeds/header-activity.php b/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/assets/embeds/header-activity.php new file mode 100644 index 0000000000000000000000000000000000000000..d668707fcb0dfcb3659f8561b80bace0f4cf8d67 --- /dev/null +++ b/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/assets/embeds/header-activity.php @@ -0,0 +1,26 @@ + + <div id="bp-embed-header"> + <div class="bp-embed-avatar"> + <a href="<?php bp_displayed_user_link(); ?>"> + <?php bp_displayed_user_avatar( 'type=thumb&width=45&height=45' ); ?> + </a> + </div> + + <?php if ( bp_activity_embed_has_activity( bp_current_action() ) ) : ?> + + <?php while ( bp_activities() ) : bp_the_activity(); ?> + <p class="bp-embed-activity-action"> + <?php bp_activity_action( array( 'no_timestamp' => true ) ); ?> + </p> + <?php endwhile; ?> + + <?php endif; ?> + + <p class="bp-embed-header-meta"> + <?php if ( bp_is_active( 'activity' ) && bp_activity_do_mentions() ) : ?> + <span class="bp-embed-mentionname">@<?php bp_displayed_user_mentionname(); ?> · </span> + <?php endif; ?> + + <span class="bp-embed-timestamp"><a href="<?php bp_activity_thread_permalink(); ?>"><?php echo date_i18n( get_option( 'time_format' ) . ' - ' . get_option( 'date_format' ), strtotime( bp_get_activity_date_recorded() ) ); ?></a></span> + </p> + </div> diff --git a/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/assets/embeds/header.php b/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/assets/embeds/header.php new file mode 100644 index 0000000000000000000000000000000000000000..e3d012ebdfa0ebffc4267ab9709098e80781d59d --- /dev/null +++ b/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/assets/embeds/header.php @@ -0,0 +1,18 @@ + + <div id="bp-embed-header"> + <div class="bp-embed-avatar"> + <a href="<?php bp_displayed_user_link(); ?>"> + <?php bp_displayed_user_avatar( 'type=thumb&width=36&height=36' ); ?> + </a> + </div> + + <p class="wp-embed-heading"> + <a href="<?php bp_displayed_user_link(); ?>"> + <?php bp_displayed_user_fullname(); ?> + </a> + </p> + + <?php if ( bp_is_active( 'activity' ) && bp_activity_do_mentions() ) : ?> + <p class="bp-embed-mentionname">@<?php bp_displayed_user_mentionname(); ?></p> + <?php endif; ?> + </div> diff --git a/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/groups/create.php b/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/groups/create.php index b3510199c05ab44b424a1206f0ab6f70da6c0d18..244b0fc0420c582425b0c28544ed4e211f5461bb 100644 --- a/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/groups/create.php +++ b/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/groups/create.php @@ -200,7 +200,10 @@ do_action( 'bp_before_create_group_page' ); ?> <p><?php _e( "Upload an image to use as a profile photo for this group. The image will be shown on the main group page, and in search results.", 'buddypress' ); ?></p> <p> - <label for="file" class="bp-screen-reader-text"><?php _e( 'Select an image', 'buddypress' ); ?></label> + <label for="file" class="bp-screen-reader-text"><?php + /* translators: accessibility text */ + _e( 'Select an image', 'buddypress' ); + ?></label> <input type="file" name="file" id="file" /> <input type="submit" name="upload" id="upload" value="<?php esc_attr_e( 'Upload Image', 'buddypress' ); ?>" /> <input type="hidden" name="action" id="action" value="bp_avatar_upload" /> diff --git a/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/groups/single/admin.php b/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/groups/single/admin.php index fa8d23246e41b0bbb8394ec67f028638a7f240d4..6f436bfbd3357c95ba652596f1a1a40a00a872dd 100644 --- a/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/groups/single/admin.php +++ b/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/groups/single/admin.php @@ -167,7 +167,10 @@ do_action( 'bp_before_group_admin_content' ); ?> <p><?php _e("Upload an image to use as a profile photo for this group. The image will be shown on the main group page, and in search results.", 'buddypress' ); ?></p> <p> - <label for="file" class="bp-screen-reader-text"><?php _e( 'Select an image', 'buddypress' ); ?></label> + <label for="file" class="bp-screen-reader-text"><?php + /* translators: accessibility text */ + _e( 'Select an image', 'buddypress' ); + ?></label> <input type="file" name="file" id="file" /> <input type="submit" name="upload" id="upload" value="<?php esc_attr_e( 'Upload Image', 'buddypress' ); ?>" /> <input type="hidden" name="action" id="action" value="bp_avatar_upload" /> @@ -376,6 +379,22 @@ do_action( 'bp_before_group_admin_content' ); ?> <?php endwhile; ?> </ul> + <?php if ( bp_group_member_needs_pagination() ) : ?> + + <div class="pagination no-ajax"> + + <div id="member-count" class="pag-count"> + <?php bp_group_member_pagination_count(); ?> + </div> + + <div id="member-admin-pagination" class="pagination-links"> + <?php bp_group_member_admin_pagination(); ?> + </div> + + </div> + + <?php endif; ?> + <?php else: ?> <div id="message" class="info"> diff --git a/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/groups/single/cover-image-header.php b/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/groups/single/cover-image-header.php index f371873249d42a7b07cd8a651a12bb829fb04adf..8c903563979e04755874559ae633d366f3cf7ff8 100644 --- a/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/groups/single/cover-image-header.php +++ b/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/groups/single/cover-image-header.php @@ -14,12 +14,12 @@ do_action( 'bp_before_group_header' ); ?> <div id="cover-image-container"> - <a id="header-cover-image" href="<?php bp_group_permalink(); ?>"></a> + <a id="header-cover-image" href="<?php echo esc_url( bp_get_group_permalink() ); ?>"></a> <div id="item-header-cover-image"> <?php if ( ! bp_disable_group_avatar_uploads() ) : ?> <div id="item-header-avatar"> - <a href="<?php bp_group_permalink(); ?>" title="<?php bp_group_name(); ?>"> + <a href="<?php echo esc_url( bp_get_group_permalink() ); ?>" title="<?php echo esc_attr( bp_get_group_name() ); ?>"> <?php bp_group_avatar(); ?> diff --git a/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/groups/single/forum/edit.php b/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/groups/single/forum/edit.php index ec10ce281bda0854357e1ee0e865ac273cf4042a..6c1f9258f1bb8bf98af03564afb26d5bb62e540e 100644 --- a/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/groups/single/forum/edit.php +++ b/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/groups/single/forum/edit.php @@ -108,7 +108,10 @@ do_action( 'bp_before_group_forum_edit_form' ); ?> */ do_action( 'bp_group_before_edit_forum_post' ); ?> - <label for="post_text" class="bp-screen-reader-text"><?php _e( 'Edit text', 'buddypress' ); ?></label> + <label for="post_text" class="bp-screen-reader-text"><?php + /* translators: accessibility text */ + _e( 'Edit text', 'buddypress' ); + ?></label> <textarea name="post_text" id="post_text"><?php bp_the_topic_post_edit_text(); ?></textarea> <?php diff --git a/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/groups/single/forum/topic.php b/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/groups/single/forum/topic.php index 4b317350d2edd5cb0d99b13d3e3cf05dde4a708b..30c030e9f17ed79d5d617e640ba9ed2226c4a0d6 100644 --- a/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/groups/single/forum/topic.php +++ b/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/groups/single/forum/topic.php @@ -186,7 +186,10 @@ do_action( 'bp_before_group_forum_topic' ); ?> <h4><?php _e( 'Add a reply:', 'buddypress' ); ?></h4> - <label for="reply_text" class="bp-screen-reader-text"><?php _e( 'Reply', 'buddypress' ); ?></label> + <label for="reply_text" class="bp-screen-reader-text"><?php + /* translators: accessibility text */ + _e( 'Reply', 'buddypress' ); + ?></label> <textarea name="reply_text" id="reply_text"></textarea> <div class="submit"> diff --git a/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/groups/single/group-header.php b/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/groups/single/group-header.php index d3005b6138bc3accd135ec5252b4228dea756e73..458576dac5dd944def115318f48034b848dbefef 100644 --- a/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/groups/single/group-header.php +++ b/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/groups/single/group-header.php @@ -58,7 +58,7 @@ do_action( 'bp_before_group_header' ); <?php if ( ! bp_disable_group_avatar_uploads() ) : ?> <div id="item-header-avatar"> - <a href="<?php bp_group_permalink(); ?>" title="<?php bp_group_name(); ?>"> + <a href="<?php echo esc_url( bp_get_group_permalink() ); ?>" title="<?php echo esc_attr( bp_get_group_name() ); ?>"> <?php bp_group_avatar(); ?> diff --git a/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/groups/single/requests-loop.php b/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/groups/single/requests-loop.php index f41a5d4e66cfd9272f2b3b3755fc93c0315a5da6..31b37c45efe5f14f55449f2f1d63bcae490c4661 100644 --- a/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/groups/single/requests-loop.php +++ b/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/groups/single/requests-loop.php @@ -29,19 +29,28 @@ <ul id="request-list" class="item-list"> <?php while ( bp_group_membership_requests() ) : bp_group_the_membership_request(); ?> - <li> - <?php bp_group_request_user_avatar_thumb(); ?> - <h4><?php bp_group_request_user_link(); ?> <span class="comments"><?php bp_group_request_comment(); ?></span></h4> - <span class="activity"><?php bp_group_request_time_since_requested(); ?></span> - - <?php - - /** - * Fires inside the groups membership request list loop. - * - * @since 1.1.0 - */ - do_action( 'bp_group_membership_requests_admin_item' ); ?> + <li class="item-list group-request-list"> + + <div class="item-avatar"><?php bp_group_request_user_avatar_thumb(); ?></div> + + <div class="item"> + + <div class="item-title"><?php bp_group_request_user_link(); ?> </div> + + <span class="activity"><?php bp_group_request_time_since_requested(); ?></span> + + <p class="comments"><?php bp_group_request_comment(); ?></p> + + <?php + + /** + * Fires inside the groups membership request list loop. + * + * @since 1.1.0 + */ + do_action( 'bp_group_membership_requests_admin_item' ); ?> + + </div> <div class="action"> diff --git a/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/members/single/home.php b/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/members/single/home.php index b7e5ee9537d3dc63afebd25051d9fb91d10ce6a0..b28063e1d6e1d492156d6891c4fcc2ce07c1d0d2 100644 --- a/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/members/single/home.php +++ b/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/members/single/home.php @@ -64,7 +64,10 @@ */ do_action( 'bp_before_member_body' ); - if ( bp_is_user_activity() || !bp_current_component() ) : + if ( bp_is_user_front() ) : + bp_displayed_user_front_template_part(); + + elseif ( bp_is_user_activity() ) : bp_get_template_part( 'members/single/activity' ); elseif ( bp_is_user_blogs() ) : diff --git a/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/members/single/messages/messages-loop.php b/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/members/single/messages/messages-loop.php index a99018f568289ce936e8ad94a03d46025a1f1196..b8baa76b2ca5be8d91d39e70c18a637fe96ea992 100644 --- a/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/members/single/messages/messages-loop.php +++ b/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/members/single/messages/messages-loop.php @@ -51,7 +51,10 @@ do_action( 'bp_before_member_messages_loop' ); ?> <thead> <tr> - <th scope="col" class="thread-checkbox bulk-select-all"><input id="select-all-messages" type="checkbox"><label class="bp-screen-reader-text" for="select-all-messages"><?php _e( 'Select all', 'buddypress' ); ?></label></th> + <th scope="col" class="thread-checkbox bulk-select-all"><input id="select-all-messages" type="checkbox"><label class="bp-screen-reader-text" for="select-all-messages"><?php + /* translators: accessibility text */ + _e( 'Select all', 'buddypress' ); + ?></label></th> <th scope="col" class="thread-from"><?php _e( 'From', 'buddypress' ); ?></th> <th scope="col" class="thread-info"><?php _e( 'Subject', 'buddypress' ); ?></th> @@ -68,7 +71,10 @@ do_action( 'bp_before_member_messages_loop' ); ?> do_action( 'bp_messages_inbox_list_header' ); ?> <?php if ( bp_is_active( 'messages', 'star' ) ) : ?> - <th scope="col" class="thread-star"><span class="message-action-star"><span class="icon"></span> <span class="screen-reader-text"><?php _e( 'Star', 'buddypress' ); ?></span></span></th> + <th scope="col" class="thread-star"><span class="message-action-star"><span class="icon"></span> <span class="screen-reader-text"><?php + /* translators: accessibility text */ + _e( 'Star', 'buddypress' ); + ?></span></span></th> <?php endif; ?> <th scope="col" class="thread-options"><?php _e( 'Actions', 'buddypress' ); ?></th> @@ -81,7 +87,10 @@ do_action( 'bp_before_member_messages_loop' ); ?> <tr id="m-<?php bp_message_thread_id(); ?>" class="<?php bp_message_css_class(); ?><?php if ( bp_message_thread_has_unread() ) : ?> unread<?php else: ?> read<?php endif; ?>"> <td class="bulk-select-check"> - <label for="bp-message-thread-<?php bp_message_thread_id(); ?>"><input type="checkbox" name="message_ids[]" id="bp-message-thread-<?php bp_message_thread_id(); ?>" class="message-check" value="<?php bp_message_thread_id(); ?>" /><span class="bp-screen-reader-text"><?php _e( 'Select this message', 'buddypress' ); ?></span></label> + <label for="bp-message-thread-<?php bp_message_thread_id(); ?>"><input type="checkbox" name="message_ids[]" id="bp-message-thread-<?php bp_message_thread_id(); ?>" class="message-check" value="<?php bp_message_thread_id(); ?>" /><span class="bp-screen-reader-text"><?php + /* translators: accessibility text */ + _e( 'Select this message', 'buddypress' ); + ?></span></label> </td> <?php if ( 'sentbox' != bp_current_action() ) : ?> diff --git a/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/members/single/messages/single.php b/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/members/single/messages/single.php index abea94e15dbeeb29f8fe93669563445388ce28b6..ab0f73399a8616b6c2963f37d186d999db69366c 100644 --- a/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/members/single/messages/single.php +++ b/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/members/single/messages/single.php @@ -44,7 +44,7 @@ <a class="button confirm" href="<?php bp_the_thread_delete_link(); ?>" title="<?php esc_attr_e( "Delete Conversation", 'buddypress' ); ?>"><?php _e( 'Delete', 'buddypress' ); ?></a> <?php - + /** * Fires after the action links in the header of a single message thread. * @@ -119,7 +119,10 @@ */ do_action( 'bp_before_message_reply_box' ); ?> - <label for="message_content" class="bp-screen-reader-text"><?php _e( 'Reply to Message', 'buddypress' ); ?></label> + <label for="message_content" class="bp-screen-reader-text"><?php + /* translators: accessibility text */ + _e( 'Reply to Message', 'buddypress' ); + ?></label> <textarea name="content" id="message_content" rows="15" cols="40"></textarea> <?php diff --git a/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/members/single/notifications/notifications-loop.php b/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/members/single/notifications/notifications-loop.php index 6cf1b7808a01921c1311ad5885d86786cca2a8bd..d699a4fa3bc5ab717d85242fccc1f410e2302830 100644 --- a/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/members/single/notifications/notifications-loop.php +++ b/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/members/single/notifications/notifications-loop.php @@ -12,7 +12,10 @@ <thead> <tr> <th class="icon"></th> - <th class="bulk-select-all"><input id="select-all-notifications" type="checkbox"><label class="bp-screen-reader-text" for="select-all-notifications"><?php _e( 'Select all', 'buddypress' ); ?></label></th> + <th class="bulk-select-all"><input id="select-all-notifications" type="checkbox"><label class="bp-screen-reader-text" for="select-all-notifications"><?php + /* translators: accessibility text */ + _e( 'Select all', 'buddypress' ); + ?></label></th> <th class="title"><?php _e( 'Notification', 'buddypress' ); ?></th> <th class="date"><?php _e( 'Date Received', 'buddypress' ); ?></th> <th class="actions"><?php _e( 'Actions', 'buddypress' ); ?></th> @@ -25,7 +28,10 @@ <tr> <td></td> - <td class="bulk-select-check"><label for="<?php bp_the_notification_id(); ?>"><input id="<?php bp_the_notification_id(); ?>" type="checkbox" name="notifications[]" value="<?php bp_the_notification_id(); ?>" class="notification-check"><span class="bp-screen-reader-text"><?php _e( 'Select this notification', 'buddypress' ); ?></span></label></td> + <td class="bulk-select-check"><label for="<?php bp_the_notification_id(); ?>"><input id="<?php bp_the_notification_id(); ?>" type="checkbox" name="notifications[]" value="<?php bp_the_notification_id(); ?>" class="notification-check"><span class="bp-screen-reader-text"><?php + /* translators: accessibility text */ + _e( 'Select this notification', 'buddypress' ); + ?></span></label></td> <td class="notification-description"><?php bp_the_notification_description(); ?></td> <td class="notification-since"><?php bp_the_notification_time_since(); ?></td> <td class="notification-actions"><?php bp_the_notification_action_links(); ?></td> diff --git a/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/members/single/profile/change-avatar.php b/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/members/single/profile/change-avatar.php index 9e8a811aa9ba8ec6fbbde866c076a14586cf56d3..b249e9277320118f50c941e8a1f8ef53e3ead45c 100644 --- a/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/members/single/profile/change-avatar.php +++ b/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/members/single/profile/change-avatar.php @@ -31,7 +31,10 @@ do_action( 'bp_before_profile_avatar_upload_content' ); ?> <p><?php _e( 'Click below to select a JPG, GIF or PNG format photo from your computer and then click \'Upload Image\' to proceed.', 'buddypress' ); ?></p> <p id="avatar-upload"> - <label for="file" class="bp-screen-reader-text"><?php _e( 'Select an image', 'buddypress' ); ?></label> + <label for="file" class="bp-screen-reader-text"><?php + /* translators: accessibility text */ + _e( 'Select an image', 'buddypress' ); + ?></label> <input type="file" name="file" id="file" /> <input type="submit" name="upload" id="upload" value="<?php esc_attr_e( 'Upload Image', 'buddypress' ); ?>" /> <input type="hidden" name="action" id="action" value="bp_avatar_upload" /> diff --git a/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/members/single/settings/general.php b/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/members/single/settings/general.php index 4d26f60d142c1ee5a2d453553f06fc66bb594a58..749202496ef0ff57f9dca12957334e8ef680ac6a 100644 --- a/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/members/single/settings/general.php +++ b/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/members/single/settings/general.php @@ -24,7 +24,10 @@ do_action( 'bp_before_member_settings_template' ); ?> <label for="pass1"><?php _e( 'Change Password <span>(leave blank for no change)</span>', 'buddypress' ); ?></label> <input type="password" name="pass1" id="pass1" size="16" value="" class="settings-input small password-entry" <?php bp_form_field_attributes( 'password' ); ?>/> <?php _e( 'New Password', 'buddypress' ); ?><br /> <div id="pass-strength-result"></div> - <label for="pass2" class="bp-screen-reader-text"><?php _e( 'Repeat New Password', 'buddypress' ); ?></label> + <label for="pass2" class="bp-screen-reader-text"><?php + /* translators: accessibility text */ + _e( 'Repeat New Password', 'buddypress' ); + ?></label> <input type="password" name="pass2" id="pass2" size="16" value="" class="settings-input small password-entry-confirm" <?php bp_form_field_attributes( 'password' ); ?>/> <?php _e( 'Repeat New Password', 'buddypress' ); ?> <?php 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 f089c4e02e5feddc8b5d1ee4221c0fdac2f13679..0348d4771dfa6ddddf61aef2d15938a861f9305f 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 @@ -616,6 +616,12 @@ body.activity-permalink #buddypress div.activity-comments div.acomment-content { /*-------------------------------------------------------------- 3.5 - Forms --------------------------------------------------------------*/ + +#buddypress form fieldset { + border: 0; + padding: 0; +} + #buddypress .standard-form textarea, #buddypress .standard-form input[type=text], #buddypress .standard-form input[type=text], @@ -653,7 +659,8 @@ body.activity-permalink #buddypress div.activity-comments div.acomment-content { margin-bottom: 5px; } #buddypress .standard-form label, -#buddypress .standard-form span.label { +#buddypress .standard-form span.label, +#buddypress .standard-form legend { display: block; font-weight: bold; margin: 15px 0 5px 0; @@ -664,13 +671,17 @@ body.activity-permalink #buddypress div.activity-comments div.acomment-content { font-weight: normal; margin: auto; } -#buddypress .standard-form div.checkbox label:nth-child(n+2), -#buddypress .standard-form div.radio div label { +#buddypress .standard-form .checkbox label, +#buddypress .standard-form .radio label { color: #767676; font-size: 100%; font-weight: normal; margin: 5px 0 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; } 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 767c2b6453a11ad80cfc8cba37162e5c3988acac..02fbd035ae539f10cfadacdce256f61e7c7221a3 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 .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:#767676;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 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 div.checkbox label:nth-child(n+2),#buddypress .standard-form div.radio div label{color:#767676;font-size:100%;font-weight:400;margin:5px 0 0}#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 a.button,#buddypress 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 a.button:focus,#buddypress a.button:hover,#buddypress 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 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}.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}#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;opacity:.8;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 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 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:.8;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 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 h4{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:#767676}#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}#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;opacity:.8;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 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:#767676;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 a.button,#buddypress 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 a.button:focus,#buddypress a.button:hover,#buddypress 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 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}.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}#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;opacity:.8;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 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 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:.8;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 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 h4{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:#767676}#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}#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;opacity:.8;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 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 2946a205a7a461038c0343c57bd17c1327d5189e..8dd381a3a369af5363406bc936fc4941d01006f3 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 @@ -616,6 +616,12 @@ body.activity-permalink #buddypress div.activity-comments div.acomment-content { /*-------------------------------------------------------------- 3.5 - Forms --------------------------------------------------------------*/ + +#buddypress form fieldset { + border: 0; + padding: 0; +} + #buddypress .standard-form textarea, #buddypress .standard-form input[type=text], #buddypress .standard-form input[type=text], @@ -653,7 +659,8 @@ body.activity-permalink #buddypress div.activity-comments div.acomment-content { margin-bottom: 5px; } #buddypress .standard-form label, -#buddypress .standard-form span.label { +#buddypress .standard-form span.label, +#buddypress .standard-form legend { display: block; font-weight: bold; margin: 15px 0 5px 0; @@ -664,13 +671,17 @@ body.activity-permalink #buddypress div.activity-comments div.acomment-content { font-weight: normal; margin: auto; } -#buddypress .standard-form div.checkbox label:nth-child(n+2), -#buddypress .standard-form div.radio div label { +#buddypress .standard-form .checkbox label, +#buddypress .standard-form .radio label { color: #767676; font-size: 100%; font-weight: normal; margin: 5px 0 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; } 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 9a2ad114046bdcfe0a99640c09ac4cef5bd2d20f..9c34dcd7b42eb19153901035c3c330534007f7cc 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 .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:#767676;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 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 div.checkbox label:nth-child(n+2),#buddypress .standard-form div.radio div label{color:#767676;font-size:100%;font-weight:400;margin:5px 0 0}#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 a.button,#buddypress 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 a.button:focus,#buddypress a.button:hover,#buddypress 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 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}.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}#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;opacity:.8;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 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 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:.8;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 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 h4{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:#767676}#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}#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;opacity:.8;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 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:#767676;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 a.button,#buddypress 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 a.button:focus,#buddypress a.button:hover,#buddypress 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 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}.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}#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;opacity:.8;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 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 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:.8;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 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 h4{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:#767676}#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}#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;opacity:.8;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 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/embeds-activity-rtl.css b/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/embeds-activity-rtl.css new file mode 100644 index 0000000000000000000000000000000000000000..8281e5294619198dcbec17da780f97db90e5ec75 --- /dev/null +++ b/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/embeds-activity-rtl.css @@ -0,0 +1,152 @@ +#bp-embed-header:after { + clear: both; + content: ""; + display: table; + margin-bottom: 1em; +} + +.bp-embed-avatar { + float: right; + margin: 0 0 0 .75em; +} + +p.bp-embed-activity-action { + font-size: 15px; + margin-bottom: 0; +} + +p.bp-embed-activity-action a:first-child { + color: #32373c; + font-weight: bold; +} + +p.bp-embed-activity-action img.avatar { + padding: 0 3px 0 4px; + vertical-align: text-bottom; +} + +.bp-embed-excerpt { + margin-bottom: 1em; +} + +.bp-embed-excerpt a { + color: #21759b; + display: inline-block; + overflow: hidden; + text-overflow: ellipsis; + vertical-align: top; + white-space: nowrap; + max-width: 250px; +} + +.activity-read-more { + margin-right: .5em; +} + +.activity-read-more a { + color: #b4b9be; +} + +.wp-embed-footer { + margin-top: 20px; +} + +span.bp-embed-timestamp { + font-size: .9em; +} + +video { + width: 100%; + height: auto; +} + +.bp-activity-embed-display-media { + border: 1px solid #ccc; + border-radius: 6px; +} + +.bp-activity-embed-display-media.one-col, +.bp-activity-embed-display-media.one-col .thumb, +.bp-activity-embed-display-media.one-col .thumb img { + width: 100%; +} + +.bp-activity-embed-display-media.two-col .thumb, +.bp-activity-embed-display-media.two-col .caption { + display: table-cell; +} + +.bp-activity-embed-display-media.two-col .thumb { + background: #000; + vertical-align: middle; +} + +.bp-activity-embed-display-media.two-col .caption { + vertical-align: top; +} + +.bp-activity-embed-display-media.two-col .thumb img { + border-left: 1px solid #ccc; + display: block; + width: 100%; +} + +.bp-activity-embed-display-media .thumb { + position: relative; +} + +.bp-activity-embed-display-media .caption { + padding: .2em .5em .5em .5em; +} + +a.play-btn { + background: rgba(0, 0, 0, 0.75); + border-radius: 50%; + height: 50px; + right: 50%; + margin: 0; + padding: 1em; + position: absolute; + text-indent: 0.25em; + top: 50%; + transform: translateY(-50%) translateX(50%); + -webkit-transform: translateY(-50%) translateX(50%); + transition: all 0.2s ease-out; + width: 50px; +} + +.bp-activity-embed-display-media.two-col a.play-btn { + height: 35px; + width: 35px; +} + +a.play-btn:hover { + background: rgba(0, 0, 0, 0.95); + transform: translateY(-50%) translateX(50%) scale(1.05); + -webkit-transform: translateY(-50%) translateX(50%) scale(1.05); + transition: all 0.2s ease-out; +} + +.bp-activity-embed-display-media .thumb svg { + fill: #fff; + overflow: hidden; +} + +.bp-activity-embed-display-media .caption-description { + font-size: 90%; + margin: .4em 0; +} + +@media only screen and (max-width: 480px) { + .bp-activity-embed-display-media.two-col .thumb { + border-bottom: 1px solid #ccc; + border-left: 0; + display: block; + max-width: none !important; + } + + a.play-btn { + height: 35px; + width: 35px; + } +} \ No newline at end of file diff --git a/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/embeds-activity-rtl.min.css b/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/embeds-activity-rtl.min.css new file mode 100644 index 0000000000000000000000000000000000000000..b5914eaf4ef33bac84dccbc2dd10a426f4639c51 --- /dev/null +++ b/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/embeds-activity-rtl.min.css @@ -0,0 +1 @@ +.bp-activity-embed-display-media.one-col,.bp-activity-embed-display-media.one-col .thumb,.bp-activity-embed-display-media.one-col .thumb img,video{width:100%}a.play-btn,a.play-btn:hover{transition:all .2s ease-out}#bp-embed-header:after{clear:both;content:"";display:table;margin-bottom:1em}.bp-embed-avatar{float:right;margin:0 0 0 .75em}p.bp-embed-activity-action{font-size:15px;margin-bottom:0}p.bp-embed-activity-action a:first-child{color:#32373c;font-weight:700}p.bp-embed-activity-action img.avatar{padding:0 3px 0 4px;vertical-align:text-bottom}.bp-embed-excerpt{margin-bottom:1em}.bp-embed-excerpt a{color:#21759b;display:inline-block;overflow:hidden;text-overflow:ellipsis;vertical-align:top;white-space:nowrap;max-width:250px}.activity-read-more{margin-right:.5em}.activity-read-more a{color:#b4b9be}.wp-embed-footer{margin-top:20px}span.bp-embed-timestamp{font-size:.9em}video{height:auto}.bp-activity-embed-display-media{border:1px solid #ccc;border-radius:6px}.bp-activity-embed-display-media.two-col .caption,.bp-activity-embed-display-media.two-col .thumb{display:table-cell}.bp-activity-embed-display-media.two-col .thumb{background:#000;vertical-align:middle}.bp-activity-embed-display-media.two-col .caption{vertical-align:top}.bp-activity-embed-display-media.two-col .thumb img{border-left:1px solid #ccc;display:block;width:100%}.bp-activity-embed-display-media .thumb{position:relative}.bp-activity-embed-display-media .caption{padding:.2em .5em .5em}a.play-btn{background:rgba(0,0,0,.75);border-radius:50%;height:50px;right:50%;margin:0;padding:1em;position:absolute;text-indent:.25em;top:50%;transform:translateY(-50%) translateX(50%);-webkit-transform:translateY(-50%) translateX(50%);width:50px}.bp-activity-embed-display-media.two-col a.play-btn{height:35px;width:35px}a.play-btn:hover{background:rgba(0,0,0,.95);transform:translateY(-50%) translateX(50%) scale(1.05);-webkit-transform:translateY(-50%) translateX(50%) scale(1.05)}.bp-activity-embed-display-media .thumb svg{fill:#fff;overflow:hidden}.bp-activity-embed-display-media .caption-description{font-size:90%;margin:.4em 0}@media only screen and (max-width:480px){.bp-activity-embed-display-media.two-col .thumb{border-bottom:1px solid #ccc;border-left:0;display:block;max-width:none!important}a.play-btn{height:35px;width:35px}} \ No newline at end of file diff --git a/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/embeds-activity.css b/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/embeds-activity.css new file mode 100644 index 0000000000000000000000000000000000000000..20048f3a34939e07c545ed0a4545fbbff01c52ff --- /dev/null +++ b/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/embeds-activity.css @@ -0,0 +1,152 @@ +#bp-embed-header:after { + clear: both; + content: ""; + display: table; + margin-bottom: 1em; +} + +.bp-embed-avatar { + float: left; + margin: 0 .75em 0 0; +} + +p.bp-embed-activity-action { + font-size: 15px; + margin-bottom: 0; +} + +p.bp-embed-activity-action a:first-child { + color: #32373c; + font-weight: bold; +} + +p.bp-embed-activity-action img.avatar { + padding: 0 4px 0 3px; + vertical-align: text-bottom; +} + +.bp-embed-excerpt { + margin-bottom: 1em; +} + +.bp-embed-excerpt a { + color: #21759b; + display: inline-block; + overflow: hidden; + text-overflow: ellipsis; + vertical-align: top; + white-space: nowrap; + max-width: 250px; +} + +.activity-read-more { + margin-left: .5em; +} + +.activity-read-more a { + color: #b4b9be; +} + +.wp-embed-footer { + margin-top: 20px; +} + +span.bp-embed-timestamp { + font-size: .9em; +} + +video { + width: 100%; + height: auto; +} + +.bp-activity-embed-display-media { + border: 1px solid #ccc; + border-radius: 6px; +} + +.bp-activity-embed-display-media.one-col, +.bp-activity-embed-display-media.one-col .thumb, +.bp-activity-embed-display-media.one-col .thumb img { + width: 100%; +} + +.bp-activity-embed-display-media.two-col .thumb, +.bp-activity-embed-display-media.two-col .caption { + display: table-cell; +} + +.bp-activity-embed-display-media.two-col .thumb { + background: #000; + vertical-align: middle; +} + +.bp-activity-embed-display-media.two-col .caption { + vertical-align: top; +} + +.bp-activity-embed-display-media.two-col .thumb img { + border-right: 1px solid #ccc; + display: block; + width: 100%; +} + +.bp-activity-embed-display-media .thumb { + position: relative; +} + +.bp-activity-embed-display-media .caption { + padding: .2em .5em .5em .5em; +} + +a.play-btn { + background: rgba(0, 0, 0, 0.75); + border-radius: 50%; + height: 50px; + left: 50%; + margin: 0; + padding: 1em; + position: absolute; + text-indent: 0.25em; + top: 50%; + transform: translateY(-50%) translateX(-50%); + -webkit-transform: translateY(-50%) translateX(-50%); + transition: all 0.2s ease-out; + width: 50px; +} + +.bp-activity-embed-display-media.two-col a.play-btn { + height: 35px; + width: 35px; +} + +a.play-btn:hover { + background: rgba(0, 0, 0, 0.95); + transform: translateY(-50%) translateX(-50%) scale(1.05); + -webkit-transform: translateY(-50%) translateX(-50%) scale(1.05); + transition: all 0.2s ease-out; +} + +.bp-activity-embed-display-media .thumb svg { + fill: #fff; + overflow: hidden; +} + +.bp-activity-embed-display-media .caption-description { + font-size: 90%; + margin: .4em 0; +} + +@media only screen and (max-width: 480px) { + .bp-activity-embed-display-media.two-col .thumb { + border-bottom: 1px solid #ccc; + border-right: 0; + display: block; + max-width: none !important; + } + + a.play-btn { + height: 35px; + width: 35px; + } +} \ No newline at end of file diff --git a/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/embeds-activity.min.css b/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/embeds-activity.min.css new file mode 100644 index 0000000000000000000000000000000000000000..1e95f968ce6316908c943ce182690e5fbf0a607c --- /dev/null +++ b/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/embeds-activity.min.css @@ -0,0 +1 @@ +.bp-activity-embed-display-media.one-col,.bp-activity-embed-display-media.one-col .thumb,.bp-activity-embed-display-media.one-col .thumb img,video{width:100%}a.play-btn,a.play-btn:hover{transition:all .2s ease-out}#bp-embed-header:after{clear:both;content:"";display:table;margin-bottom:1em}.bp-embed-avatar{float:left;margin:0 .75em 0 0}p.bp-embed-activity-action{font-size:15px;margin-bottom:0}p.bp-embed-activity-action a:first-child{color:#32373c;font-weight:700}p.bp-embed-activity-action img.avatar{padding:0 4px 0 3px;vertical-align:text-bottom}.bp-embed-excerpt{margin-bottom:1em}.bp-embed-excerpt a{color:#21759b;display:inline-block;overflow:hidden;text-overflow:ellipsis;vertical-align:top;white-space:nowrap;max-width:250px}.activity-read-more{margin-left:.5em}.activity-read-more a{color:#b4b9be}.wp-embed-footer{margin-top:20px}span.bp-embed-timestamp{font-size:.9em}video{height:auto}.bp-activity-embed-display-media{border:1px solid #ccc;border-radius:6px}.bp-activity-embed-display-media.two-col .caption,.bp-activity-embed-display-media.two-col .thumb{display:table-cell}.bp-activity-embed-display-media.two-col .thumb{background:#000;vertical-align:middle}.bp-activity-embed-display-media.two-col .caption{vertical-align:top}.bp-activity-embed-display-media.two-col .thumb img{border-right:1px solid #ccc;display:block;width:100%}.bp-activity-embed-display-media .thumb{position:relative}.bp-activity-embed-display-media .caption{padding:.2em .5em .5em}a.play-btn{background:rgba(0,0,0,.75);border-radius:50%;height:50px;left:50%;margin:0;padding:1em;position:absolute;text-indent:.25em;top:50%;transform:translateY(-50%) translateX(-50%);-webkit-transform:translateY(-50%) translateX(-50%);width:50px}.bp-activity-embed-display-media.two-col a.play-btn{height:35px;width:35px}a.play-btn:hover{background:rgba(0,0,0,.95);transform:translateY(-50%) translateX(-50%) scale(1.05);-webkit-transform:translateY(-50%) translateX(-50%) scale(1.05)}.bp-activity-embed-display-media .thumb svg{fill:#fff;overflow:hidden}.bp-activity-embed-display-media .caption-description{font-size:90%;margin:.4em 0}@media only screen and (max-width:480px){.bp-activity-embed-display-media.two-col .thumb{border-bottom:1px solid #ccc;border-right:0;display:block;max-width:none!important}a.play-btn{height:35px;width:35px}} \ No newline at end of file diff --git a/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/twentyeleven-rtl.css b/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/twentyeleven-rtl.css new file mode 100644 index 0000000000000000000000000000000000000000..23b31d554a093d16151fb1bd37c4913150fab80d --- /dev/null +++ b/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/twentyeleven-rtl.css @@ -0,0 +1,2025 @@ +@charset "UTF-8"; +/*-------------------------------------------------------------- + +This is the BuddyPress companion stylesheet for +the WordPress Twentyeleven theme. + +This sheet supports the primary BuddyPress styles in buddypress.css + +If you are running as a child theme of twentyeleven 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 + 6.2.2.7 - Notifications +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; +} + +body.buddypress:not(.page-template-sidebar-page) #content { + margin: 0 10% 0; + width: auto; +} + +body.buddypress:not(.page-template-sidebar-page) #content .entry-header, +body.buddypress:not(.page-template-sidebar-page) #content .entry-content { + width: auto; +} + +.buddypress.singular.page .hentry { + padding-top: 0; +} + +/** +*------------------------------------------------------------------------------- +* @section 2.0 - Navigation - General +*------------------------------------------------------------------------------- +*/ +/** +*---------------------------------------------------------- +* @section 2.1 - Navs Object Nav / Sub Nav (item-list-tabs) +* +* The main navigational elements for all BP screens +*---------------------------------------------------------- +*/ +/* Here we start things off */ +#buddypress div.item-list-tabs ul li.selected a, +#buddypress div.item-list-tabs ul li.current a { + background: inherit; + opacity: 1; +} + +#buddypress div.item-list-tabs ul { + overflow: hidden; + padding: 0; +} + +#buddypress div.item-list-tabs ul li a:focus, #buddypress div.item-list-tabs ul li a:hover { + color: #555; +} + +#buddypress div.item-list-tabs ul li a:visited { + color: #21759b; +} + +#buddypress div.item-list-tabs ul li a span { + border-radius: 25%; +} + +@media screen and (max-width: 450px) { + .bp-user #buddypress #object-nav { + border: 1px solid #eaeaea; + overflow: visible; + padding: 5px; + } + .bp-user #buddypress #object-nav ul { + border: 0; + height: 0; + transition: height 0.3s ease-in-out 0.7s; + visibility: hidden; + } + .bp-user #buddypress #object-nav:before { + content: "Menu \021E9"; + display: inline; + opacity: 0.7; + } + .bp-user #buddypress #object-nav:focus:before, .bp-user #buddypress #object-nav:hover:before, .bp-user #buddypress #object-nav:active:before { + content: "Menu \021E7"; + } + .bp-user #buddypress #object-nav:focus ul, .bp-user #buddypress #object-nav:hover ul, .bp-user #buddypress #object-nav:active ul { + min-height: 320px; + opacity: 1; + visibility: visible; + } + .bp-user #buddypress #subnav { + clear: both; + } +} + +/*__ Horizontal menus __*/ +#buddypress #object-nav ul { + overflow: hidden; +} + +#buddypress #object-nav ul li { + float: none; +} + +@media screen and (max-width: 650px) { + #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: #f2f2f2; + } +} + +@media screen and (min-width: 650px) { + #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; + border-top: 1px solid #d4d0ba; + margin-top: 5px; + padding: 0; +} + +#buddypress div#subnav.item-list-tabs ul li.last { + background: #fff; + float: left; + margin-top: 0; + padding: 5px 0 5px; + text-align: left; + width: 230px; +} + +@media screen and (max-width: 450px) { + #buddypress div#subnav.item-list-tabs ul li.last { + float: none; + width: auto; + } +} + +#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; + padding: 0; +} + +#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.9333333333rem; +} + +#buddypress div#subnav.item-list-tabs ul li.last select { + font-style: italic; +} + +#buddypress div#subnav.item-list-tabs ul li.last select option { + font-style: normal; +} + +.bp-user #buddypress div#subnav.item-list-tabs li.last { + margin-right: 0; + text-align: left; +} + +@media screen and (max-width: 450px) { + .bp-user #buddypress div#subnav.item-list-tabs li.last { + clear: right; + float: none; + margin-right: 10px; + text-align: right; + } +} + +/*__ Vertical menu User Account / Group single screens __*/ +@media screen and (min-width: 800px) { + body.bp-user #buddypress #item-header, + body.bp-user #buddypress #item-body { + background: #fff; + } + body.bp-user #buddypress #object-nav { + border-left: 1px solid #ddd; + float: right; + margin-left: -1px; + width: 200px; + } + body.bp-user #buddypress #object-nav ul { + background: none; + border-bottom: 0; + padding: 0; + } + body.bp-user #buddypress #object-nav ul li { + float: none; + overflow: hidden; + } + body.bp-user #buddypress #object-nav ul li.selected { + background: #ddd; + } + body.bp-user #buddypress #object-nav ul li span { + background: #fff; + border-radius: 10%; + float: left; + margin-left: 2px; + } + body.bp-user #buddypress #item-body { + border-right: 1px solid #ddd; + overflow: hidden; + padding: 0 25px 0 0; + width: auto; + } + body.bp-user #buddypress #item-body #subnav { + margin: 0 -25px 0 0; + } + body.bp-user #buddypress #item-body #subnav ul { + margin-top: 0; + } +} + +@media screen and (min-width: 650px) { + #main #buddypress #group-create-tabs.item-list-tabs ul:before, + #main #buddypress #group-create-tabs.item-list-tabs ul:after { + content: " "; + display: table; + } + #main #buddypress #group-create-tabs.item-list-tabs ul:after { + clear: both; + } + #main #buddypress #group-create-tabs.item-list-tabs ul { + background: none; + border: 0; + border-bottom: 1px solid #ddd; + overflow: visible; + padding-bottom: 0; + } + #main #buddypress #group-create-tabs.item-list-tabs ul li { + float: right; + width: auto; + } + #main #buddypress #group-create-tabs.item-list-tabs ul li.selected, + #main #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; + } + #main #buddypress #group-create-tabs.item-list-tabs ul li.selected a, + #main #buddypress #group-create-tabs.item-list-tabs ul li.current a { + background: none; + color: #373737; + outline: none; + } + #main #buddypress #subnav ul { + border-bottom: 0; + } +} + +/** +*---------------------------------------------------------- +* @section 2.2 - Pagination +*---------------------------------------------------------- +*/ +#buddypress div.pagination { + box-shadow: none; + 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 ul.item-list { + border-top: 0; +} + +#buddypress ul.item-list li { + overflow: hidden !important; +} + +#buddypress ul.item-list li .item-avatar { + margin-bottom: 15px; + text-align: center; +} + +@media screen and (min-width: 650px) { + #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: 15px; +} + +@media screen and (min-width: 450px) { + #buddypress ul.item-list li .item-avatar img.avatar { + display: block; + float: right; + } +} + +#buddypress ul.item-list li .item { + margin-right: 0; + overflow: hidden; +} + +#buddypress ul.item-list li .item .item-meta { + text-align: center; +} + +@media screen and (min-width: 61.5625em) { + #buddypress ul.item-list li .item .item-meta { + text-align: right; + } +} + +#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: 16px; + font-size: 1.0666666667rem; + line-height: 1.2; + text-align: center; + width: 100%; +} + +@media screen and (min-width: 450px) { + #buddypress ul.item-list li .item .item-title { + text-align: right; + } +} + +#buddypress ul.item-list li .item .item-title > a { + text-decoration: none; +} + +#buddypress ul.item-list li .item .item-title > a:visited { + color: #21759b; +} + +#buddypress ul.item-list li .item .item-title .update { + display: block; + font-size: 12px; + font-size: 0.8rem; + padding: 15px 0; + text-align: right; +} + +@media screen and (min-width: 650px) { + #buddypress ul.item-list li .item .item-title .update { + font-size: 14px; + font-size: 0.9333333333rem; + } +} + +@media screen and (min-width: 650px) { + #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: 18px; + font-size: 1.2rem; + } +} + +#buddypress ul.item-list li div.action { + clear: right; + float: none; + margin: 0; + margin-right: 0; + padding: 15px 0 5px; + position: relative; + text-align: right; + top: 0; +} + +@media screen and (min-width: 650px) { + #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: 5px 0; + width: 100%; +} + +#buddypress ul.item-list li div.action div a { + display: block; +} + +@media screen and (min-width: 37em) { + #buddypress ul.item-list li div.action div { + margin: 0 0 5px 15px; + width: auto; + } +} + +@media screen and (min-width: 650px) { + #buddypress ul.item-list li div.action div { + clear: left; + float: left; + margin: 0 0 15px 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: 650px) { + #buddypress form#whats-new-form #whats-new-content { + clear: right; + margin: 15px 0 25px; + padding: 15px 0 0; + } +} + +#buddypress form#whats-new-form #whats-new-content.active #whats-new-options[style] #whats-new-post-in-box { + border: 1px solid rgba(212, 208, 186, 0.5); + float: right; + font-size: 12px; + font-size: 0.8rem; + line-height: 1.6; + 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; + max-width: 220px; + min-height: 1.5em; + padding: 0 0.4em 0 0; +} + +@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 { + font-size: 12px; + font-size: 0.8rem; + float: left; + } + #buddypress form#whats-new-form #whats-new-content.active #whats-new-options[style] #whats-new-submit input { + padding: 0 6px; + } +} + +#buddypress #item-body form#whats-new-form { + margin: 50px 0; +} + +/** +*----------------------------------------------------- +* @section 4.1.2 - Activity Listing +*----------------------------------------------------- +*/ +#buddypress #activity-stream li { + padding: 25px 0 15px; +} + +#buddypress #activity-stream li.load-newest a { + display: block; +} + +#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: 25px; + margin-right: 0; + width: 60px; +} + +#buddypress #activity-stream li .activity-content, +#buddypress #activity-stream li .activity-comments { + margin-right: 0; +} + +#buddypress #activity-stream li .activity-header { + font-size: 14px; + font-size: 0.9333333333rem; +} + +#buddypress #activity-stream li .activity-header a:visited { + color: #21759b; +} + +#buddypress #activity-stream li .activity-inner img { + height: auto; +} + +@media screen and (min-width: 650px) { + #buddypress #activity-stream li .activity-avatar { + float: right; + margin-left: 15px; + 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: 1.0666666667rem; + } + #buddypress #activity-stream li .activity-comments { + margin-right: 70px; + } +} + +#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.9333333333rem; +} + +#buddypress #activity-stream li.mini .activity-content .activity-meta a { + font-size: 12px; + font-size: 0.8rem; +} + +#buddypress #activity-stream .activity-content { + margin-top: -12px; +} + +#buddypress #activity-stream .activity-content .activity-header { + line-height: inherit; + margin-left: 0; +} + +#buddypress #activity-stream .activity-content .activity-header p { + border-bottom: 1px solid rgba(234, 234, 234, 0.6); + margin-top: 0; + padding: 0 0.2em; +} + +#buddypress #activity-stream .activity-content .activity-header img.avatar { + display: inline-block; + margin-bottom: 0 !important; +} + +#buddypress #activity-stream .activity-content .activity-meta a { + display: block; + font-size: 14px; + font-size: 0.9333333333rem; + margin-bottom: 5px; + padding: 0.2em 0.5em; +} + +@media screen and (min-width: 650px) { + #buddypress #activity-stream .activity-content .activity-meta a { + float: right; + margin-bottom: 0; + } +} + +#buddypress #activity-stream .load-more { + background: #f7f7f7; + border: 1px solid transparent; + padding: 15px; +} + +#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 a { + display: block; +} + +/* Single activity view - activity permalink */ +.activity-permalink #buddypress #activity-stream li.activity-item { + padding: 25px; +} + +.activity-permalink #buddypress #activity-stream li.mini .activity-header { + font-size: 16px; + font-size: 1.0666666667rem; + margin-bottom: 50px; +} + +@media screen and (min-width: 650px) { + .activity-permalink #buddypress #activity-stream li.mini .activity-header { + font-size: 20px; + font-size: 1.3333333333rem; + } +} + +.activity-permalink #buddypress #activity-stream li.mini .activity-header p { + padding: 25px; +} + +.activity-permalink #buddypress #activity-stream .activity-comments { + margin-right: 0; +} + +/** +*----------------------------------------------------- +* @section 4.1.3 - Activity Comments +*----------------------------------------------------- +*/ +#buddypress #activity-stream .activity-comments { + position: relative; +} + +#buddypress #activity-stream .activity-comments > ul { + background: rgba(247, 247, 247, 0.6); + margin: 15px 2px 0 0; +} + +#buddypress #activity-stream .activity-comments > ul > li:hover * { + color: #555; +} + +#buddypress #activity-stream .activity-comments > ul > li .acomment-meta, +#buddypress #activity-stream .activity-comments > ul > li .acomment-content { + font-size: 12px; + font-size: 0.8rem; +} + +#buddypress #activity-stream .activity-comments .ac-form { + border: 1px solid #d4d0ba; + box-sizing: border-box; + margin: 15px 0; + width: 100%; +} + +#buddypress #activity-stream .activity-comments .ac-form input[type="submit"], +#buddypress #activity-stream .activity-comments .ac-form .ac-reply-cancel { + color: rgba(55, 55, 55, 0.8); + display: inline-block; + font-family: inherit; + font-size: 12px; + font-size: 0.8rem; + 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(212, 208, 186, 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: 650px) { + #buddypress #members-list li .item-avatar, + #buddypress #members-list li .item { + float: right; + } + #buddypress #members-list li .action { + float: left; + } +} + +/** +*------------------------------------------------------------------------------- +* @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: 37.5em) { + #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: 37.5em) { + #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 +*------------------------------------------------------------------------------- +*/ +.bp-user #buddypress a:visited { + color: #21759b; +} + +/** +*----------------------------------------------------------- +* @subsection 6.1 - Item Header Global +*----------------------------------------------------------- +*/ +.bp-user #buddypress #item-header-content #item-meta, +.single-item.groups #buddypress #item-header-content #item-meta { + font-size: 14px; + font-size: 0.9333333333rem; + 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: 37.5em) { + .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 main header.entry-header, + .single-item.groups main header.entry-header { + padding-bottom: 1rem; + } +} + +@media screen and (max-width: 37.5em) { + .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%; + } + .bp-user #buddypress #item-header-content .user-nicename, + .single-item.groups #buddypress #item-header-content .user-nicename { + color: #555; + } +} + +@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: 800px) { + #buddypress #item-header-cover-image #item-header-content .user-nicename { + color: #555; + text-shadow: none; + } +} + +/** +*----------------------------------------------------- +* @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: 25px; + } +} + +@media screen and (max-width: 50em) { + .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 { + border-bottom: 0; + } + .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 h3 { + border-bottom: 1px solid #eaeaea; + text-align: center; + } +} + +.single-item.groups #buddypress div#item-header { + padding-bottom: 50px; +} + +.single-item.groups #buddypress div#item-header #item-header-content { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +.single-item.groups #buddypress div#item-header div#item-actions { + margin: 0 !important; + width: 100%; +} + +@media screen and (min-width: 50em) { + .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: 46.25em) { + .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 h3 { + font-size: 14px; + font-size: 0.9333333333rem; + font-weight: bold; + line-height: 1.4; +} + +.single-item.groups #buddypress div#item-header div#item-actions #group-admins li, +.single-item.groups #buddypress div#item-header div#item-actions #group-mods li { + margin: 0; +} + +@media screen and (min-width: 650px) { + .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-content { + margin-right: 2%; + padding: 0 0.5em; + } + .single-item.groups #buddypress div#item-header div#item-actions { + float: left; + width: 28%; + } +} + +@media screen and (min-width: 64em) { + .single-item.groups #buddypress div#item-header #item-header-content { + width: 40%; + } +} + +.single-item.groups #buddypress #cover-image-container #item-header-cover-image #item-actions { + margin-top: 225px !important; +} + +@media screen and (min-width: 50em) and (max-width: 60em) { + .single-item.groups #buddypress #cover-image-container #item-header-cover-image #item-header-content { + max-width: 60% !important; + width: 60% !important; + } +} + +@media screen and (max-width: 64em) { + .single-item.groups #buddypress #cover-image-container #item-header-cover-image #item-actions { + border: 0; + clear: both; + margin-top: 0 !important; + max-width: 100% !important; + padding-top: 0 !important; + width: auto; + } + .single-item.groups #buddypress #cover-image-container #item-header-cover-image #item-actions h3 { + border-bottom: 1px solid #eaeaea; + } +} + +/** +*----------------------------------------------------- +* @subsection 6.1.2 - Item Header User Accounts +* +* User Accounts Specific Item Header +*----------------------------------------------------- +*/ +.bp-user #buddypress #item-header #item-header-avatar { + text-align: center; +} + +.bp-user #buddypress #item-header #item-header-avatar img.avatar, +.bp-user #buddypress #item-header #item-header-avatar a { + border-bottom: 0; + display: inline-block; + float: none; +} + +.bp-user #buddypress #item-header #item-header-content #item-buttons .generic-button { + margin-left: 5px; +} + +@media screen and (min-width: 650px) { + .bp-user #buddypress #item-header #item-header-avatar { + float: right; + } + .bp-user #buddypress #item-header #item-header-avatar a { + float: right; + } + .bp-user #buddypress #item-header #item-header-content { + float: left; + margin-left: 0%; + width: 69%; + } +} + +/** +*----------------------------------------------------------- +* @subsection 6.2 - Item Body: Global +*----------------------------------------------------------- +*/ +/** +*---------------------------------------------------- +* @subsection 6.2.1 - Item Body Groups +* +* Groups specific item body rules - screens +*---------------------------------------------------- +*/ +/** +*----------------------------------------- +* @subsection 6.2.1.1 - Group Management +*----------------------------------------- +*/ +.groups #group-settings-form h4 { + 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.9333333333rem; + 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 { + font-weight: bold; + padding: 0.2em; +} + +.groups.group-settings #group-settings-form div.radio label ul { + color: rgba(55, 55, 55, 0.6); + font-size: 14px; + font-size: 0.9333333333rem; +} + +.groups.group-avatar form > p { + margin-top: 25px; +} + +.groups.manage-members #group-settings-form .item-list li { + border-bottom: 1px solid #eaeaea; +} + +@media screen and (min-width: 650px) { + .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: 15px; + width: 100%; +} + +.groups.manage-members #group-settings-form .item-list li span.small a { + display: block; + margin: 5px 0; +} + +@media screen and (min-width: 650px) { + .groups.manage-members #group-settings-form .item-list li span.small a { + display: inline-block; + } +} + +.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: 450px) { + .groups.group-members #subnav li { + background: #fff; + padding: 25px 0; + } +} + +.groups.group-members #subnav li #search-members-form { + float: left; + margin: 5px 0 0 0; +} + +.groups.group-members #subnav li #search-members-form label input[type="text"] { + box-shadow: none; +} + +@media screen and (max-width: 450px) { + .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 component item body rules +*----------------------------------------------------- +*/ +/** +*-------------------------------------------- +* @subsection 6.2.2.1 - classes, pag, filters +*-------------------------------------------- +*/ +.bp-user #buddypress table th { + font-size: 13px; + font-size: 0.8666666667rem; +} + +.bp-user #buddypress table td { + font-size: 12px; + font-size: 0.8rem; +} + +@media screen and (min-width: 650px) { + .bp-user #buddypress table th { + font-size: 16px; + font-size: 1.0666666667rem; + } + .bp-user #buddypress table td { + font-size: 14px; + font-size: 0.9333333333rem; + } +} + +.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: 37.5em) { + .bp-user #buddypress .notifications-options-nav, + .bp-user #buddypress .messages-options-nav { + width: 40%; + } +} + +.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.9333333333rem; + outline: 0; + padding: 0; +} + +.bp-user #buddypress .notifications-options-nav select, +.bp-user #buddypress .messages-options-nav select { + float: right; + margin-left: 0; + width: 49%; +} + +@media screen and (min-width: 37.5em) { + .bp-user #buddypress .notifications-options-nav select, + .bp-user #buddypress .messages-options-nav select { + width: auto; + } +} + +.bp-user #buddypress .notifications-options-nav input, +.bp-user #buddypress .messages-options-nav input { + float: right; + font-family: inherit; + line-height: 20px; + margin-right: 1%; + width: 50%; +} + +@media screen and (min-width: 37.5em) { + .bp-user #buddypress .notifications-options-nav input, + .bp-user #buddypress .messages-options-nav input { + width: auto; + } +} + +.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 .bp-widget h4 { + background: #6f6f6f; + color: #fff; + margin-bottom: 0; + padding: 0.4em; +} + +.bp-user #buddypress .profile .bp-widget table { + margin-top: 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.2rem; +} + +.bp-user #buddypress .profile #profile-edit-form .field-visibility-settings-toggle { + margin: 5px 0 25px; +} + +.bp-user #buddypress .profile #profile-edit-form .field-visibility-settings-toggle, +.bp-user #buddypress .profile #profile-edit-form .field-visibility-settings { + font-size: 14px; + font-size: 0.9333333333rem; +} + +.bp-user #buddypress .profile #profile-edit-form .field-visibility-settings-close, +.bp-user #buddypress .profile #profile-edit-form .visibility-toggle-link { + background: #6f6f6f; + -webkit-border-radius: 2px; + -moz-border-radius: 2px; + -ms-border-radius: 2px; + border-radius: 2px; + background-clip: padding-box; + color: #eee; + font-weight: bold; + padding: 0.1em 0.5em; + text-decoration: none; +} + +.bp-user #buddypress .profile #profile-edit-form .field-visibility-settings-close:focus, .bp-user #buddypress .profile #profile-edit-form .field-visibility-settings-close:hover, +.bp-user #buddypress .profile #profile-edit-form .visibility-toggle-link:focus, +.bp-user #buddypress .profile #profile-edit-form .visibility-toggle-link:hover { + color: #fff; +} + +.bp-user #buddypress .profile .bp-avatar #bp-delete-avatar a { + font-size: inherit; +} + +/** + *------------------------------------------- + * @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-recipients .highlight { + font-size: 100%; +} + +.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: 46.25em) { + .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: 15px 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: #6f6f6f; +} + +.bp-user #buddypress #message-threads tr td { + background: #fff; + box-sizing: border-box; + 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: 1px solid #ccc; + 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.thread-star { + vertical-align: middle; +} + +.bp-user #buddypress #message-threads tr td.thread-star .message-action-star, +.bp-user #buddypress #message-threads tr td.thread-star .message-action-unstar { + line-height: 1.2; +} + +.bp-user #buddypress #message-threads tr td.thread-star span.icon:before { + font-size: 14px; + font-size: 0.9333333333rem; +} + +.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: 37.5em) { + .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.8rem; +} + +.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.8rem; + line-height: 1.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: 37.5em) { + .bp-user #buddypress #message-threads tr span.activity { + clear: both; + font-size: 11px; + font-size: 0.7333333333rem; + width: 100%; + } +} + +.bp-user #buddypress #message-threads tr.unread td { + border-color: #eaeaea; +} + +.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 #send_message_form input, +.bp-user #buddypress #send_message_form textarea { + box-sizing: border-box; +} + +.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: #edf7fa; + border: inherit; + margin-left: 0; + padding: 0.5em; +} + +.bp-user #buddypress .acfb-holder li.friend-tab span.p { + padding-right: 15px; +} + +.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 tr { + margin: 3em 0; +} + +.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 a.button { + border: 1px solid #d4d0ba; + line-height: initial; + padding: 0.4em 0.3em; +} + +.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 { + line-height: 1; + padding-bottom: 1em; + 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: 15px; +} + +.bp-user .ac_results li { + margin: 15px 0; +} + +.bp-user .ac_results li:focus, .bp-user .ac_results li:hover { + cursor: pointer; +} + +.bp-user .ac_results li img { + vertical-align: bottom; +} + +/** + *------------------------------ + * @subsection 6.2.2.6 - Settings + *------------------------------ + */ +.bp-user #buddypress #settings-form > p { + font-size: 20px; + font-size: 1.3333333333rem; + margin: 25px 0 15px; +} + +.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: 46.25em) { + .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%; +} + +/** + *------------------------------------ + * @subsection 6.2.2.6 - Notifications + *------------------------------------ + */ +/** +*------------------------------------------------------------------------------- +* @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(212, 208, 186, 0.5); +} + +#buddypress div.activity-comments form .ac-textarea textarea { + background: none; + border: 0; +} + +#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(212, 208, 186, 0.5); + border-width: 1px; +} + +#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: 15px 0; +} + +#buddypress div.dir-search form, +#buddypress div.message-search form, +#buddypress li.groups-members-search form { + border: 1px solid rgba(212, 208, 186, 0.6); + overflow: hidden; +} + +#buddypress div.dir-search form label, +#buddypress div.message-search form label, +#buddypress li.groups-members-search form label { + float: right; + width: 70%; +} + +#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; + border-radius: 0; + box-shadow: none; + box-sizing: border-box; + font-size: 14px; + font-size: 0.9333333333rem; + line-height: 1.8; + min-height: 2rem; +} + +#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(212, 208, 186, 0.6); + float: right; + margin: 0; + padding: 0 0.2em 0; + width: 70%; +} + +#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'] { + float: left; + font-weight: normal; + padding: 0 1em; + text-align: center; + text-transform: none; + width: 30%; +} + +@media screen and (min-width: 37.5em) { + #buddypress div.dir-search, + #buddypress div.message-search, + #buddypress li.groups-members-search { + float: left; + margin-bottom: 5px !important; + } + #buddypress div.dir-search form label, + #buddypress div.dir-search form input[type='text'], + #buddypress div.dir-search form input[type='submit'], + #buddypress div.message-search form label, + #buddypress div.message-search form input[type='text'], + #buddypress div.message-search form input[type='submit'], + #buddypress li.groups-members-search form label, + #buddypress li.groups-members-search form input[type='text'], + #buddypress li.groups-members-search form input[type='submit'] { + width: auto; + } +} + +@media screen and (min-width: 800px) { + #buddypress .dir-search form input[type='text'], + #buddypress .message-search form input[type='text'] { + font-size: 16px; + font-size: 1.0666666667rem; + } + #buddypress .dir-search form input[type='submit'], + #buddypress .message-search form input[type='submit'] { + font-size: 16px; + font-size: 1.0666666667rem; + } +} + +/** +*------------------------------------------------------------------------------- +* @section 8.0 - Tables - General +*------------------------------------------------------------------------------- +*/ +.bp-user #buddypress table { + font-size: 14px; + font-size: 0.9333333333rem; + margin: 25px 0; +} + +.bp-user #buddypress table tr th { + background: #6f6f6f; + border-color: #b7b7b7; + color: #fff; + font-size: 16px; + font-size: 1.0666666667rem; + padding: 0 8px; + text-transform: capitalize; +} + +.bp-user #buddypress table tr td { + padding: 8px; +} + +.bp-user #buddypress table p { + margin-bottom: 0.5em; +} + +@media screen and (min-width: 55em) { + .bp-user #buddypress table { + font-size: 16px; + font-size: 1.0666666667rem; + } +} + +.bp-user #buddypress .notifications th, +.bp-user #buddypress .messages-notices th { + width: 30%; +} + +.bp-user #buddypress .notifications th.bulk-select-all, +.bp-user #buddypress .messages-notices th.bulk-select-all { + text-align: center; + width: 10%; +} + +.bp-user #buddypress .notifications th.actions, +.bp-user #buddypress .messages-notices th.actions { + text-align: center; +} + +.bp-user #buddypress .notifications .bulk-select-check, +.bp-user #buddypress .notifications .thread-star, +.bp-user #buddypress .messages-notices .bulk-select-check, +.bp-user #buddypress .messages-notices .thread-star { + text-align: center; +} + +.bp-user #buddypress .notifications .notification-actions, +.bp-user #buddypress .notifications td.thread-options, +.bp-user #buddypress .messages-notices .notification-actions, +.bp-user #buddypress .messages-notices td.thread-options { + text-align: center; +} + +.bp-user #buddypress .notifications .notification-actions a, +.bp-user #buddypress .notifications td.thread-options a, +.bp-user #buddypress .messages-notices .notification-actions a, +.bp-user #buddypress .messages-notices td.thread-options a { + display: inline-block; + margin: 0; + padding: 0; +} + +.bp-user #buddypress .notifications td .button, +.bp-user #buddypress .messages-notices td .button { + border: 0; + display: block; + padding: 0; + text-align: center; +} + +/** +*------------------------------------------------------------------------------- +* @section 9.0 - Error / Success messages +*------------------------------------------------------------------------------- +*/ +#buddypress div#message p { + font-size: 18px; + font-size: 1.2rem; + font-weight: bold; +} + +#buddypress div#message.info p { + background: #c6e4ee; + border: 1px solid #78bed6; + color: #1e5264; +} + +#buddypress div#message.updated p { + background: #dee6b2; + border: 1px solid #becc66; + color: #454d19; +} + +.delete-group #buddypress div#message.info p { + background: #db7e7e; + border: 1px solid #be3535; + color: #1f0808; +} + +/** +*------------------------------------------------------------------------------- +* @section 10.0 - Ajax Loading, Widgets, General classes +*------------------------------------------------------------------------------- +*/ diff --git a/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/twentyeleven-rtl.min.css b/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/twentyeleven-rtl.min.css new file mode 100644 index 0000000000000000000000000000000000000000..b99aa6ecc4b0061b95be8ff3c03be4b17f16d603 --- /dev/null +++ b/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/twentyeleven-rtl.min.css @@ -0,0 +1 @@ +@charset "UTF-8";.buddypress div.clear{display:none}body.buddypress:not(.page-template-sidebar-page) #content{margin:0 10%;width:auto}body.buddypress:not(.page-template-sidebar-page) #content .entry-content,body.buddypress:not(.page-template-sidebar-page) #content .entry-header{width:auto}.buddypress.singular.page .hentry{padding-top:0}#buddypress div.item-list-tabs ul li.current a,#buddypress div.item-list-tabs ul li.selected a{background:inherit;opacity:1}#buddypress div.item-list-tabs ul{overflow:hidden;padding:0}#buddypress div.item-list-tabs ul li a:focus,#buddypress div.item-list-tabs ul li a:hover{color:#555}#buddypress div.item-list-tabs ul li a:visited{color:#21759b}#buddypress div.item-list-tabs ul li a span{border-radius:25%}@media screen and (max-width:450px){.bp-user #buddypress #object-nav{border:1px solid #eaeaea;overflow:visible;padding:5px}.bp-user #buddypress #object-nav ul{border:0;height:0;transition:height .3s ease-in-out .7s;visibility:hidden}.bp-user #buddypress #object-nav:before{content:"Menu \021E9";display:inline;opacity:.7}.bp-user #buddypress #object-nav:active:before,.bp-user #buddypress #object-nav:focus:before,.bp-user #buddypress #object-nav:hover:before{content:"Menu \021E7"}.bp-user #buddypress #object-nav:active ul,.bp-user #buddypress #object-nav:focus ul,.bp-user #buddypress #object-nav:hover ul{min-height:320px;opacity:1;visibility:visible}.bp-user #buddypress #subnav{clear:both}}#buddypress #object-nav ul{overflow:hidden}#buddypress #object-nav ul li{float:none}@media screen and (max-width:650px){#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:#f2f2f2}}@media screen and (min-width:650px){#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;border-top:1px solid #d4d0ba;margin-top:5px;padding:0}#buddypress div#subnav.item-list-tabs ul li.last{background:#fff;float:left;margin-top:0;padding:5px 0;text-align:left;width:230px}#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;padding:0}#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:.9333333333rem}#buddypress div#subnav.item-list-tabs ul li.last select{font-style:italic}#buddypress div#subnav.item-list-tabs ul li.last select option{font-style:normal}#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}.bp-user #buddypress div#subnav.item-list-tabs li.last{margin-right:0;text-align:left}@media screen and (max-width:450px){#buddypress div#subnav.item-list-tabs ul li.last{float:none;width:auto}.bp-user #buddypress div#subnav.item-list-tabs li.last{clear:right;float:none;margin-right:10px;text-align:right}}@media screen and (min-width:800px){body.bp-user #buddypress #item-body,body.bp-user #buddypress #item-header{background:#fff}body.bp-user #buddypress #object-nav{border-left:1px solid #ddd;float:right;margin-left:-1px;width:200px}body.bp-user #buddypress #object-nav ul{background:0 0;border-bottom:0;padding:0}body.bp-user #buddypress #object-nav ul li{float:none;overflow:hidden}body.bp-user #buddypress #object-nav ul li.selected{background:#ddd}body.bp-user #buddypress #object-nav ul li span{background:#fff;border-radius:10%;float:left;margin-left:2px}body.bp-user #buddypress #item-body{border-right:1px solid #ddd;overflow:hidden;padding:0 25px 0 0;width:auto}body.bp-user #buddypress #item-body #subnav{margin:0 -25px 0 0}body.bp-user #buddypress #item-body #subnav ul{margin-top:0}}@media screen and (min-width:650px){#main #buddypress #group-create-tabs.item-list-tabs ul:after,#main #buddypress #group-create-tabs.item-list-tabs ul:before{content:" ";display:table}#main #buddypress #group-create-tabs.item-list-tabs ul:after{clear:both}#main #buddypress #group-create-tabs.item-list-tabs ul{background:0 0;border:0;border-bottom:1px solid #ddd;overflow:visible;padding-bottom:0}#main #buddypress #group-create-tabs.item-list-tabs ul li{float:right;width:auto}#main #buddypress #group-create-tabs.item-list-tabs ul li.current,#main #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}#main #buddypress #group-create-tabs.item-list-tabs ul li.current a,#main #buddypress #group-create-tabs.item-list-tabs ul li.selected a{background:0 0;color:#373737;outline:0}#main #buddypress #subnav ul{border-bottom:0}}#buddypress div.pagination{box-shadow:none;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 #activity-stream li .activity-header a:visited,#buddypress ul.item-list li .item .item-title>a:visited{color:#21759b}#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 ul.item-list{border-top:0}#buddypress ul.item-list li{overflow:hidden!important}#buddypress ul.item-list li .item-avatar{margin-bottom:15px;text-align:center}@media screen and (min-width:650px){#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:15px}#buddypress ul.item-list li .item{margin-right:0;overflow:hidden}#buddypress ul.item-list li .item .item-meta{text-align:center}@media screen and (min-width:61.5625em){#buddypress ul.item-list li .item .item-meta{text-align:right}}#buddypress ul.item-list li .item .item-desc{margin-right:0;width:94%}#buddypress ul.item-list li .item .item-title{font-size:16px;font-size:1.0666666667rem;line-height:1.2;text-align:center;width:100%}@media screen and (min-width:450px){#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>a{text-decoration:none}#buddypress ul.item-list li .item .item-title .update{display:block;font-size:12px;font-size:.8rem;padding:15px 0;text-align:right}@media screen and (min-width:650px){#buddypress ul.item-list li .item .item-title .update{font-size:14px;font-size:.9333333333rem}#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:18px;font-size:1.2rem}}#buddypress ul.item-list li div.action{clear:right;float:none;margin:0;padding:15px 0 5px;position:relative;text-align:right;top:0}@media screen and (min-width:650px){#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:5px 0;width:100%}#buddypress #activity-stream li.load-newest a,#buddypress ul.item-list li div.action div a{display:block}@media screen and (min-width:37em){#buddypress ul.item-list li div.action div{margin:0 0 5px 15px;width:auto}}@media screen and (min-width:650px){#buddypress ul.item-list li div.action div{clear:left;float:left;margin:0 0 15px}}#buddypress form#whats-new-form p.activity-greeting{line-height:1.4}@media screen and (max-width:650px){#buddypress form#whats-new-form #whats-new-content{clear:right;margin:15px 0 25px;padding:15px 0 0}}#buddypress form#whats-new-form #whats-new-content.active #whats-new-options[style] #whats-new-post-in-box{border:1px solid rgba(212,208,186,.5);float:right;font-size:12px;font-size:.8rem;line-height:1.6;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;max-width:220px;min-height:1.5em;padding:0 .4em 0 0}@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{font-size:12px;font-size:.8rem;float:left}#buddypress form#whats-new-form #whats-new-content.active #whats-new-options[style] #whats-new-submit input{padding:0 6px}}#buddypress #item-body form#whats-new-form{margin:50px 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:25px;margin-right:0;width:60px}#buddypress #activity-stream li .activity-comments,#buddypress #activity-stream li .activity-content{margin-right:0}#buddypress #activity-stream li .activity-header{font-size:14px;font-size:.9333333333rem}#buddypress #activity-stream li .activity-inner img{height:auto}@media screen and (min-width:650px){#buddypress #activity-stream li .activity-avatar{float:right;margin-left:15px;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:1.0666666667rem}#buddypress #activity-stream li .activity-comments{margin-right:70px}}#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:.9333333333rem}#buddypress #activity-stream li.mini .activity-content .activity-meta a{font-size:12px;font-size:.8rem}#buddypress #activity-stream .activity-content{margin-top:-12px}#buddypress #activity-stream .activity-content .activity-header{line-height:inherit;margin-left:0}#buddypress #activity-stream .activity-content .activity-header p{border-bottom:1px solid rgba(234,234,234,.6);margin-top:0;padding:0 .2em}#buddypress #activity-stream .activity-content .activity-header img.avatar{display:inline-block;margin-bottom:0!important}#buddypress #activity-stream .activity-content .activity-meta a{display:block;font-size:14px;font-size:.9333333333rem;margin-bottom:5px;padding:.2em .5em}@media screen and (min-width:650px){#buddypress #activity-stream .activity-content .activity-meta a{float:right;margin-bottom:0}}#buddypress #activity-stream .load-more{background:#f7f7f7;border:1px solid transparent;padding:15px}.activity-permalink #buddypress #activity-stream li.activity-item,.activity-permalink #buddypress #activity-stream li.mini .activity-header p{padding:25px}#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:1.0666666667rem;margin-bottom:50px}@media screen and (min-width:650px){.activity-permalink #buddypress #activity-stream li.mini .activity-header{font-size:20px;font-size:1.3333333333rem}#buddypress #members-list li .item,#buddypress #members-list li .item-avatar{float:right}#buddypress #members-list li .action{float:left}}.activity-permalink #buddypress #activity-stream .activity-comments{margin-right:0}#buddypress #activity-stream .activity-comments{position:relative}#buddypress #activity-stream .activity-comments>ul{background:rgba(247,247,247,.6);margin:15px 2px 0 0}#buddypress #activity-stream .activity-comments>ul>li:hover *{color:#555}#buddypress #activity-stream .activity-comments>ul>li .acomment-content,#buddypress #activity-stream .activity-comments>ul>li .acomment-meta{font-size:12px;font-size:.8rem}#buddypress #activity-stream .activity-comments .ac-form{border:1px solid #d4d0ba;box-sizing:border-box;margin:15px 0;width:100%}#buddypress #activity-stream .activity-comments .ac-form .ac-reply-cancel,#buddypress #activity-stream .activity-comments .ac-form input[type=submit]{color:rgba(55,55,55,.8);display:inline-block;font-family:inherit;font-size:12px;font-size:.8rem;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(212,208,186,.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}#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:37.5em){#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%}#buddypress #signup_form.standard-form #profile-details-section{float:left}#buddypress #signup_form.standard-form #basic-details-section{float:right}}.bp-user #buddypress a:visited{color:#21759b}.bp-user #buddypress #item-header-content #item-meta,.single-item.groups #buddypress #item-header-content #item-meta{font-size:14px;font-size:.9333333333rem;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:37.5em){.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%}.bp-user #buddypress #item-header-content .user-nicename,.single-item.groups #buddypress #item-header-content .user-nicename{color:#555}}@media screen and (max-width:800px){#buddypress #item-header-cover-image #item-header-content .user-nicename{color:#555;text-shadow:none}}@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}.single-item.groups #buddypress #item-header #item-meta{margin-bottom:25px}}@media screen and (max-width:50em){.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{border-bottom:0}.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 h3{border-bottom:1px solid #eaeaea;text-align:center}}.single-item.groups #buddypress div#item-header{padding-bottom:50px}.single-item.groups #buddypress div#item-header #item-header-content{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.single-item.groups #buddypress div#item-header div#item-actions{margin:0!important;width:100%}@media screen and (min-width:50em){.single-item.groups #buddypress div#item-header div#item-actions{border-right:1px solid #eaeaea;clear:none;float:left;padding-right:.2em;width:30%}}@media screen and (min-width:46.25em){.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 h3{font-size:14px;font-size:.9333333333rem;font-weight:700;line-height:1.4}.single-item.groups #buddypress div#item-header div#item-actions #group-admins li,.single-item.groups #buddypress div#item-header div#item-actions #group-mods li{margin:0}@media screen and (min-width:650px){.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-content{margin-right:2%;padding:0 .5em}.single-item.groups #buddypress div#item-header div#item-actions{float:left;width:28%}}@media screen and (min-width:64em){.single-item.groups #buddypress div#item-header #item-header-content{width:40%}}.single-item.groups #buddypress #cover-image-container #item-header-cover-image #item-actions{margin-top:225px!important}@media screen and (min-width:50em) and (max-width:60em){.single-item.groups #buddypress #cover-image-container #item-header-cover-image #item-header-content{max-width:60%!important;width:60%!important}}@media screen and (max-width:64em){.single-item.groups #buddypress #cover-image-container #item-header-cover-image #item-actions{border:0;clear:both;margin-top:0!important;max-width:100%!important;padding-top:0!important;width:auto}.single-item.groups #buddypress #cover-image-container #item-header-cover-image #item-actions h3{border-bottom:1px solid #eaeaea}}.bp-user #buddypress #item-header #item-header-avatar{text-align:center}.bp-user #buddypress #item-header #item-header-avatar a,.bp-user #buddypress #item-header #item-header-avatar img.avatar{border-bottom:0;display:inline-block;float:none}.bp-user #buddypress #item-header #item-header-content #item-buttons .generic-button{margin-left:5px}@media screen and (min-width:650px){.bp-user #buddypress #item-header #item-header-avatar,.bp-user #buddypress #item-header #item-header-avatar a{float:right}.bp-user #buddypress #item-header #item-header-content{float:left;margin-left:0;width:69%}.groups.manage-members #group-settings-form .item-list li h5,.groups.manage-members #group-settings-form .item-list li img{float:right}}.groups #group-settings-form h4{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:.9333333333rem;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{font-weight:700;padding:.2em}.groups.group-settings #group-settings-form div.radio label ul{color:rgba(55,55,55,.6);font-size:14px;font-size:.9333333333rem}.groups.group-avatar form>p{margin-top:25px}.groups.manage-members #group-settings-form .item-list li{border-bottom:1px solid #eaeaea}.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 span.small{clear:right;display:block;float:none;margin-top:15px;width:100%}.groups.manage-members #group-settings-form .item-list li span.small a{display:block;margin:5px 0}.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}.groups.group-members #subnav li #search-members-form label input[type=text]{box-shadow:none}@media screen and (max-width:450px){.groups.group-members #subnav li{background:#fff;padding:25px 0}.groups.group-members #subnav li #search-members-form label input[type=text]{width:100%}}.bp-user #buddypress table th{font-size:13px;font-size:.8666666667rem}.bp-user #buddypress table td{font-size:12px;font-size:.8rem}@media screen and (min-width:650px){.groups.manage-members #group-settings-form .item-list li span.small a{display:inline-block}.bp-user #buddypress table th{font-size:16px;font-size:1.0666666667rem}.bp-user #buddypress table td{font-size:14px;font-size:.9333333333rem}}.bp-user #buddypress .messages-options-nav,.bp-user #buddypress .notifications-options-nav{float:right;width:100%}@media screen and (min-width:37.5em){.bp-user #buddypress .messages-options-nav,.bp-user #buddypress .notifications-options-nav{width:40%}}.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:.9333333333rem;outline:0;padding:0}.bp-user #buddypress .messages-options-nav select,.bp-user #buddypress .notifications-options-nav select{float:right;margin-left:0;width:49%}@media screen and (min-width:37.5em){.bp-user #buddypress .messages-options-nav select,.bp-user #buddypress .notifications-options-nav select{width:auto}}.bp-user #buddypress .messages-options-nav input,.bp-user #buddypress .notifications-options-nav input{float:right;font-family:inherit;line-height:20px;margin-right:1%;width:50%}@media screen and (min-width:37.5em){.bp-user #buddypress .messages-options-nav input,.bp-user #buddypress .notifications-options-nav input{width:auto}}.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 .bp-widget h4{background:#6f6f6f;color:#fff;margin-bottom:0;padding:.4em}.bp-user #buddypress .profile .bp-widget table{margin-top:0}.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.2rem}.bp-user #buddypress .profile #profile-edit-form .field-visibility-settings-toggle{margin:5px 0 25px}.bp-user #buddypress .profile #profile-edit-form .field-visibility-settings,.bp-user #buddypress .profile #profile-edit-form .field-visibility-settings-toggle{font-size:14px;font-size:.9333333333rem}.bp-user #buddypress .profile #profile-edit-form .field-visibility-settings-close,.bp-user #buddypress .profile #profile-edit-form .visibility-toggle-link{background:#6f6f6f;-webkit-border-radius:2px;-moz-border-radius:2px;-ms-border-radius:2px;border-radius:2px;background-clip:padding-box;color:#eee;font-weight:700;padding:.1em .5em;text-decoration:none}.bp-user #buddypress .profile #profile-edit-form .field-visibility-settings-close:focus,.bp-user #buddypress .profile #profile-edit-form .field-visibility-settings-close:hover,.bp-user #buddypress .profile #profile-edit-form .visibility-toggle-link:focus,.bp-user #buddypress .profile #profile-edit-form .visibility-toggle-link:hover{color:#fff}.bp-user #buddypress .profile .bp-avatar #bp-delete-avatar a{font-size:inherit}.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-recipients .highlight{font-size:100%}.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:46.25em){.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:15px 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:#6f6f6f}.bp-user #buddypress #message-threads tr td{background:#fff;box-sizing:border-box;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:1px solid #ccc;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.thread-star{vertical-align:middle}.bp-user #buddypress #message-threads tr td.thread-star .message-action-star,.bp-user #buddypress #message-threads tr td.thread-star .message-action-unstar{line-height:1.2}.bp-user #buddypress #message-threads tr td.thread-star span.icon:before{font-size:14px;font-size:.9333333333rem}.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:.8rem}.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:.8rem;line-height:1.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:37.5em){.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:.7333333333rem;width:100%}}.bp-user #buddypress #message-threads tr.unread td{border-color:#eaeaea}.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 #send_message_form input,.bp-user #buddypress #send_message_form textarea{box-sizing:border-box}.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:#edf7fa;border:inherit;margin-left:0;padding:.5em}.bp-user #buddypress .acfb-holder li.friend-tab span.p{padding-right:15px}.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 tr{margin:3em 0}.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 a.button{border:1px solid #d4d0ba;line-height:initial;padding:.4em .3em}.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{line-height:1;padding-bottom:1em;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:15px}.bp-user .ac_results li{margin:15px 0}.bp-user .ac_results li:focus,.bp-user .ac_results li:hover{cursor:pointer}.bp-user .ac_results li img{vertical-align:bottom}.bp-user #buddypress #settings-form>p{font-size:20px;font-size:1.3333333333rem;margin:25px 0 15px}.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:46.25em){.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(212,208,186,.5)}#buddypress div.activity-comments form .ac-textarea textarea{background:0 0;border:0}#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(212,208,186,.5);border-width:1px}#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:15px 0}#buddypress div.dir-search form,#buddypress div.message-search form,#buddypress li.groups-members-search form{border:1px solid rgba(212,208,186,.6);overflow:hidden}#buddypress div.dir-search form label,#buddypress div.message-search form label,#buddypress li.groups-members-search form label{float:right;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;border-radius:0;box-shadow:none;box-sizing:border-box;font-size:14px;font-size:.9333333333rem;line-height:1.8;min-height:2rem}#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(212,208,186,.6);float:right;margin:0;padding:0 .2em;width:70%}#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]{float:left;font-weight:400;padding:0 1em;text-align:center;text-transform:none;width:30%}@media screen and (min-width:37.5em){#buddypress div.dir-search,#buddypress div.message-search,#buddypress li.groups-members-search{float:left;margin-bottom:5px!important}#buddypress div.dir-search form input[type=submit],#buddypress div.dir-search form input[type=text],#buddypress div.dir-search form label,#buddypress div.message-search form input[type=submit],#buddypress div.message-search form input[type=text],#buddypress div.message-search form label,#buddypress li.groups-members-search form input[type=submit],#buddypress li.groups-members-search form input[type=text],#buddypress li.groups-members-search form label{width:auto}}@media screen and (min-width:800px){#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]{font-size:16px;font-size:1.0666666667rem}}.bp-user #buddypress table{font-size:14px;font-size:.9333333333rem;margin:25px 0}.bp-user #buddypress table tr th{background:#6f6f6f;border-color:#b7b7b7;color:#fff;font-size:16px;font-size:1.0666666667rem;padding:0 8px;text-transform:capitalize}.bp-user #buddypress table tr td{padding:8px}.bp-user #buddypress table p{margin-bottom:.5em}@media screen and (min-width:55em){.bp-user #buddypress table{font-size:16px;font-size:1.0666666667rem}}.bp-user #buddypress .messages-notices th,.bp-user #buddypress .notifications th{width:30%}.bp-user #buddypress .messages-notices th.bulk-select-all,.bp-user #buddypress .notifications th.bulk-select-all{text-align:center;width:10%}.bp-user #buddypress .messages-notices .bulk-select-check,.bp-user #buddypress .messages-notices .notification-actions,.bp-user #buddypress .messages-notices .thread-star,.bp-user #buddypress .messages-notices td.thread-options,.bp-user #buddypress .messages-notices th.actions,.bp-user #buddypress .notifications .bulk-select-check,.bp-user #buddypress .notifications .notification-actions,.bp-user #buddypress .notifications .thread-star,.bp-user #buddypress .notifications td.thread-options,.bp-user #buddypress .notifications th.actions{text-align:center}.bp-user #buddypress .messages-notices .notification-actions a,.bp-user #buddypress .messages-notices td.thread-options a,.bp-user #buddypress .notifications .notification-actions a,.bp-user #buddypress .notifications td.thread-options a{display:inline-block;margin:0;padding:0}.bp-user #buddypress .messages-notices td .button,.bp-user #buddypress .notifications td .button{border:0;display:block;padding:0;text-align:center}#buddypress div#message p{font-size:18px;font-size:1.2rem;font-weight:700}#buddypress div#message.info p{background:#c6e4ee;border:1px solid #78bed6;color:#1e5264}#buddypress div#message.updated p{background:#dee6b2;border:1px solid #becc66;color:#454d19}.delete-group #buddypress div#message.info p{background:#db7e7e;border:1px solid #be3535;color:#1f0808} \ No newline at end of file diff --git a/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/twentyeleven.css b/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/twentyeleven.css new file mode 100644 index 0000000000000000000000000000000000000000..d87c0aad2b29bdbaa7598282ecd1bf19c48e4e00 --- /dev/null +++ b/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/twentyeleven.css @@ -0,0 +1,2025 @@ +@charset "UTF-8"; +/*-------------------------------------------------------------- + +This is the BuddyPress companion stylesheet for +the WordPress Twentyeleven theme. + +This sheet supports the primary BuddyPress styles in buddypress.css + +If you are running as a child theme of twentyeleven 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 + 6.2.2.7 - Notifications +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; +} + +body.buddypress:not(.page-template-sidebar-page) #content { + margin: 0 10% 0; + width: auto; +} + +body.buddypress:not(.page-template-sidebar-page) #content .entry-header, +body.buddypress:not(.page-template-sidebar-page) #content .entry-content { + width: auto; +} + +.buddypress.singular.page .hentry { + padding-top: 0; +} + +/** +*------------------------------------------------------------------------------- +* @section 2.0 - Navigation - General +*------------------------------------------------------------------------------- +*/ +/** +*---------------------------------------------------------- +* @section 2.1 - Navs Object Nav / Sub Nav (item-list-tabs) +* +* The main navigational elements for all BP screens +*---------------------------------------------------------- +*/ +/* Here we start things off */ +#buddypress div.item-list-tabs ul li.selected a, +#buddypress div.item-list-tabs ul li.current a { + background: inherit; + opacity: 1; +} + +#buddypress div.item-list-tabs ul { + overflow: hidden; + padding: 0; +} + +#buddypress div.item-list-tabs ul li a:focus, #buddypress div.item-list-tabs ul li a:hover { + color: #555; +} + +#buddypress div.item-list-tabs ul li a:visited { + color: #21759b; +} + +#buddypress div.item-list-tabs ul li a span { + border-radius: 25%; +} + +@media screen and (max-width: 450px) { + .bp-user #buddypress #object-nav { + border: 1px solid #eaeaea; + overflow: visible; + padding: 5px; + } + .bp-user #buddypress #object-nav ul { + border: 0; + height: 0; + transition: height 0.3s ease-in-out 0.7s; + visibility: hidden; + } + .bp-user #buddypress #object-nav:before { + content: "Menu \021E9"; + display: inline; + opacity: 0.7; + } + .bp-user #buddypress #object-nav:focus:before, .bp-user #buddypress #object-nav:hover:before, .bp-user #buddypress #object-nav:active:before { + content: "Menu \021E7"; + } + .bp-user #buddypress #object-nav:focus ul, .bp-user #buddypress #object-nav:hover ul, .bp-user #buddypress #object-nav:active ul { + min-height: 320px; + opacity: 1; + visibility: visible; + } + .bp-user #buddypress #subnav { + clear: both; + } +} + +/*__ Horizontal menus __*/ +#buddypress #object-nav ul { + overflow: hidden; +} + +#buddypress #object-nav ul li { + float: none; +} + +@media screen and (max-width: 650px) { + #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: #f2f2f2; + } +} + +@media screen and (min-width: 650px) { + #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; + border-top: 1px solid #d4d0ba; + margin-top: 5px; + padding: 0; +} + +#buddypress div#subnav.item-list-tabs ul li.last { + background: #fff; + float: right; + margin-top: 0; + padding: 5px 0 5px; + text-align: right; + width: 230px; +} + +@media screen and (max-width: 450px) { + #buddypress div#subnav.item-list-tabs ul li.last { + float: none; + width: auto; + } +} + +#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; + padding: 0; +} + +#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.9333333333rem; +} + +#buddypress div#subnav.item-list-tabs ul li.last select { + font-style: italic; +} + +#buddypress div#subnav.item-list-tabs ul li.last select option { + font-style: normal; +} + +.bp-user #buddypress div#subnav.item-list-tabs li.last { + margin-left: 0; + text-align: right; +} + +@media screen and (max-width: 450px) { + .bp-user #buddypress div#subnav.item-list-tabs li.last { + clear: left; + float: none; + margin-left: 10px; + text-align: left; + } +} + +/*__ Vertical menu User Account / Group single screens __*/ +@media screen and (min-width: 800px) { + body.bp-user #buddypress #item-header, + body.bp-user #buddypress #item-body { + background: #fff; + } + body.bp-user #buddypress #object-nav { + border-right: 1px solid #ddd; + float: left; + margin-right: -1px; + width: 200px; + } + body.bp-user #buddypress #object-nav ul { + background: none; + border-bottom: 0; + padding: 0; + } + body.bp-user #buddypress #object-nav ul li { + float: none; + overflow: hidden; + } + body.bp-user #buddypress #object-nav ul li.selected { + background: #ddd; + } + body.bp-user #buddypress #object-nav ul li span { + background: #fff; + border-radius: 10%; + float: right; + margin-right: 2px; + } + body.bp-user #buddypress #item-body { + border-left: 1px solid #ddd; + overflow: hidden; + padding: 0 0 0 25px; + width: auto; + } + body.bp-user #buddypress #item-body #subnav { + margin: 0 0 0 -25px; + } + body.bp-user #buddypress #item-body #subnav ul { + margin-top: 0; + } +} + +@media screen and (min-width: 650px) { + #main #buddypress #group-create-tabs.item-list-tabs ul:before, + #main #buddypress #group-create-tabs.item-list-tabs ul:after { + content: " "; + display: table; + } + #main #buddypress #group-create-tabs.item-list-tabs ul:after { + clear: both; + } + #main #buddypress #group-create-tabs.item-list-tabs ul { + background: none; + border: 0; + border-bottom: 1px solid #ddd; + overflow: visible; + padding-bottom: 0; + } + #main #buddypress #group-create-tabs.item-list-tabs ul li { + float: left; + width: auto; + } + #main #buddypress #group-create-tabs.item-list-tabs ul li.selected, + #main #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; + } + #main #buddypress #group-create-tabs.item-list-tabs ul li.selected a, + #main #buddypress #group-create-tabs.item-list-tabs ul li.current a { + background: none; + color: #373737; + outline: none; + } + #main #buddypress #subnav ul { + border-bottom: 0; + } +} + +/** +*---------------------------------------------------------- +* @section 2.2 - Pagination +*---------------------------------------------------------- +*/ +#buddypress div.pagination { + box-shadow: none; + 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 ul.item-list { + border-top: 0; +} + +#buddypress ul.item-list li { + overflow: hidden !important; +} + +#buddypress ul.item-list li .item-avatar { + margin-bottom: 15px; + text-align: center; +} + +@media screen and (min-width: 650px) { + #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: 15px; +} + +@media screen and (min-width: 450px) { + #buddypress ul.item-list li .item-avatar img.avatar { + display: block; + float: left; + } +} + +#buddypress ul.item-list li .item { + margin-left: 0; + overflow: hidden; +} + +#buddypress ul.item-list li .item .item-meta { + text-align: center; +} + +@media screen and (min-width: 61.5625em) { + #buddypress ul.item-list li .item .item-meta { + text-align: left; + } +} + +#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: 16px; + font-size: 1.0666666667rem; + line-height: 1.2; + text-align: center; + width: 100%; +} + +@media screen and (min-width: 450px) { + #buddypress ul.item-list li .item .item-title { + text-align: left; + } +} + +#buddypress ul.item-list li .item .item-title > a { + text-decoration: none; +} + +#buddypress ul.item-list li .item .item-title > a:visited { + color: #21759b; +} + +#buddypress ul.item-list li .item .item-title .update { + display: block; + font-size: 12px; + font-size: 0.8rem; + padding: 15px 0; + text-align: left; +} + +@media screen and (min-width: 650px) { + #buddypress ul.item-list li .item .item-title .update { + font-size: 14px; + font-size: 0.9333333333rem; + } +} + +@media screen and (min-width: 650px) { + #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: 18px; + font-size: 1.2rem; + } +} + +#buddypress ul.item-list li div.action { + clear: left; + float: none; + margin: 0; + margin-left: 0; + padding: 15px 0 5px; + position: relative; + text-align: left; + top: 0; +} + +@media screen and (min-width: 650px) { + #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: 5px 0; + width: 100%; +} + +#buddypress ul.item-list li div.action div a { + display: block; +} + +@media screen and (min-width: 37em) { + #buddypress ul.item-list li div.action div { + margin: 0 15px 5px 0; + width: auto; + } +} + +@media screen and (min-width: 650px) { + #buddypress ul.item-list li div.action div { + clear: right; + float: right; + margin: 0 0 15px 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: 650px) { + #buddypress form#whats-new-form #whats-new-content { + clear: left; + margin: 15px 0 25px; + padding: 15px 0 0; + } +} + +#buddypress form#whats-new-form #whats-new-content.active #whats-new-options[style] #whats-new-post-in-box { + border: 1px solid rgba(212, 208, 186, 0.5); + float: left; + font-size: 12px; + font-size: 0.8rem; + line-height: 1.6; + 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; + max-width: 220px; + min-height: 1.5em; + padding: 0 0 0 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 { + font-size: 12px; + font-size: 0.8rem; + float: right; + } + #buddypress form#whats-new-form #whats-new-content.active #whats-new-options[style] #whats-new-submit input { + padding: 0 6px; + } +} + +#buddypress #item-body form#whats-new-form { + margin: 50px 0; +} + +/** +*----------------------------------------------------- +* @section 4.1.2 - Activity Listing +*----------------------------------------------------- +*/ +#buddypress #activity-stream li { + padding: 25px 0 15px; +} + +#buddypress #activity-stream li.load-newest a { + display: block; +} + +#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: 25px; + margin-left: 0; + width: 60px; +} + +#buddypress #activity-stream li .activity-content, +#buddypress #activity-stream li .activity-comments { + margin-left: 0; +} + +#buddypress #activity-stream li .activity-header { + font-size: 14px; + font-size: 0.9333333333rem; +} + +#buddypress #activity-stream li .activity-header a:visited { + color: #21759b; +} + +#buddypress #activity-stream li .activity-inner img { + height: auto; +} + +@media screen and (min-width: 650px) { + #buddypress #activity-stream li .activity-avatar { + float: left; + margin-right: 15px; + 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: 1.0666666667rem; + } + #buddypress #activity-stream li .activity-comments { + margin-left: 70px; + } +} + +#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.9333333333rem; +} + +#buddypress #activity-stream li.mini .activity-content .activity-meta a { + font-size: 12px; + font-size: 0.8rem; +} + +#buddypress #activity-stream .activity-content { + margin-top: -12px; +} + +#buddypress #activity-stream .activity-content .activity-header { + line-height: inherit; + margin-right: 0; +} + +#buddypress #activity-stream .activity-content .activity-header p { + border-bottom: 1px solid rgba(234, 234, 234, 0.6); + margin-top: 0; + padding: 0 0.2em; +} + +#buddypress #activity-stream .activity-content .activity-header img.avatar { + display: inline-block; + margin-bottom: 0 !important; +} + +#buddypress #activity-stream .activity-content .activity-meta a { + display: block; + font-size: 14px; + font-size: 0.9333333333rem; + margin-bottom: 5px; + padding: 0.2em 0.5em; +} + +@media screen and (min-width: 650px) { + #buddypress #activity-stream .activity-content .activity-meta a { + float: left; + margin-bottom: 0; + } +} + +#buddypress #activity-stream .load-more { + background: #f7f7f7; + border: 1px solid transparent; + padding: 15px; +} + +#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 a { + display: block; +} + +/* Single activity view - activity permalink */ +.activity-permalink #buddypress #activity-stream li.activity-item { + padding: 25px; +} + +.activity-permalink #buddypress #activity-stream li.mini .activity-header { + font-size: 16px; + font-size: 1.0666666667rem; + margin-bottom: 50px; +} + +@media screen and (min-width: 650px) { + .activity-permalink #buddypress #activity-stream li.mini .activity-header { + font-size: 20px; + font-size: 1.3333333333rem; + } +} + +.activity-permalink #buddypress #activity-stream li.mini .activity-header p { + padding: 25px; +} + +.activity-permalink #buddypress #activity-stream .activity-comments { + margin-left: 0; +} + +/** +*----------------------------------------------------- +* @section 4.1.3 - Activity Comments +*----------------------------------------------------- +*/ +#buddypress #activity-stream .activity-comments { + position: relative; +} + +#buddypress #activity-stream .activity-comments > ul { + background: rgba(247, 247, 247, 0.6); + margin: 15px 0 0 2px; +} + +#buddypress #activity-stream .activity-comments > ul > li:hover * { + color: #555; +} + +#buddypress #activity-stream .activity-comments > ul > li .acomment-meta, +#buddypress #activity-stream .activity-comments > ul > li .acomment-content { + font-size: 12px; + font-size: 0.8rem; +} + +#buddypress #activity-stream .activity-comments .ac-form { + border: 1px solid #d4d0ba; + box-sizing: border-box; + margin: 15px 0; + width: 100%; +} + +#buddypress #activity-stream .activity-comments .ac-form input[type="submit"], +#buddypress #activity-stream .activity-comments .ac-form .ac-reply-cancel { + color: rgba(55, 55, 55, 0.8); + display: inline-block; + font-family: inherit; + font-size: 12px; + font-size: 0.8rem; + 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(212, 208, 186, 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: 650px) { + #buddypress #members-list li .item-avatar, + #buddypress #members-list li .item { + float: left; + } + #buddypress #members-list li .action { + float: right; + } +} + +/** +*------------------------------------------------------------------------------- +* @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: 37.5em) { + #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: 37.5em) { + #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 +*------------------------------------------------------------------------------- +*/ +.bp-user #buddypress a:visited { + color: #21759b; +} + +/** +*----------------------------------------------------------- +* @subsection 6.1 - Item Header Global +*----------------------------------------------------------- +*/ +.bp-user #buddypress #item-header-content #item-meta, +.single-item.groups #buddypress #item-header-content #item-meta { + font-size: 14px; + font-size: 0.9333333333rem; + 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: 37.5em) { + .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 main header.entry-header, + .single-item.groups main header.entry-header { + padding-bottom: 1rem; + } +} + +@media screen and (max-width: 37.5em) { + .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%; + } + .bp-user #buddypress #item-header-content .user-nicename, + .single-item.groups #buddypress #item-header-content .user-nicename { + color: #555; + } +} + +@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: 800px) { + #buddypress #item-header-cover-image #item-header-content .user-nicename { + color: #555; + text-shadow: none; + } +} + +/** +*----------------------------------------------------- +* @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: 25px; + } +} + +@media screen and (max-width: 50em) { + .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 { + border-bottom: 0; + } + .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 h3 { + border-bottom: 1px solid #eaeaea; + text-align: center; + } +} + +.single-item.groups #buddypress div#item-header { + padding-bottom: 50px; +} + +.single-item.groups #buddypress div#item-header #item-header-content { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +.single-item.groups #buddypress div#item-header div#item-actions { + margin: 0 !important; + width: 100%; +} + +@media screen and (min-width: 50em) { + .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: 46.25em) { + .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 h3 { + font-size: 14px; + font-size: 0.9333333333rem; + font-weight: bold; + line-height: 1.4; +} + +.single-item.groups #buddypress div#item-header div#item-actions #group-admins li, +.single-item.groups #buddypress div#item-header div#item-actions #group-mods li { + margin: 0; +} + +@media screen and (min-width: 650px) { + .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-content { + margin-left: 2%; + padding: 0 0.5em; + } + .single-item.groups #buddypress div#item-header div#item-actions { + float: right; + width: 28%; + } +} + +@media screen and (min-width: 64em) { + .single-item.groups #buddypress div#item-header #item-header-content { + width: 40%; + } +} + +.single-item.groups #buddypress #cover-image-container #item-header-cover-image #item-actions { + margin-top: 225px !important; +} + +@media screen and (min-width: 50em) and (max-width: 60em) { + .single-item.groups #buddypress #cover-image-container #item-header-cover-image #item-header-content { + max-width: 60% !important; + width: 60% !important; + } +} + +@media screen and (max-width: 64em) { + .single-item.groups #buddypress #cover-image-container #item-header-cover-image #item-actions { + border: 0; + clear: both; + margin-top: 0 !important; + max-width: 100% !important; + padding-top: 0 !important; + width: auto; + } + .single-item.groups #buddypress #cover-image-container #item-header-cover-image #item-actions h3 { + border-bottom: 1px solid #eaeaea; + } +} + +/** +*----------------------------------------------------- +* @subsection 6.1.2 - Item Header User Accounts +* +* User Accounts Specific Item Header +*----------------------------------------------------- +*/ +.bp-user #buddypress #item-header #item-header-avatar { + text-align: center; +} + +.bp-user #buddypress #item-header #item-header-avatar img.avatar, +.bp-user #buddypress #item-header #item-header-avatar a { + border-bottom: 0; + display: inline-block; + float: none; +} + +.bp-user #buddypress #item-header #item-header-content #item-buttons .generic-button { + margin-right: 5px; +} + +@media screen and (min-width: 650px) { + .bp-user #buddypress #item-header #item-header-avatar { + float: left; + } + .bp-user #buddypress #item-header #item-header-avatar a { + float: left; + } + .bp-user #buddypress #item-header #item-header-content { + float: right; + margin-right: 0%; + width: 69%; + } +} + +/** +*----------------------------------------------------------- +* @subsection 6.2 - Item Body: Global +*----------------------------------------------------------- +*/ +/** +*---------------------------------------------------- +* @subsection 6.2.1 - Item Body Groups +* +* Groups specific item body rules - screens +*---------------------------------------------------- +*/ +/** +*----------------------------------------- +* @subsection 6.2.1.1 - Group Management +*----------------------------------------- +*/ +.groups #group-settings-form h4 { + 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.9333333333rem; + 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 { + font-weight: bold; + padding: 0.2em; +} + +.groups.group-settings #group-settings-form div.radio label ul { + color: rgba(55, 55, 55, 0.6); + font-size: 14px; + font-size: 0.9333333333rem; +} + +.groups.group-avatar form > p { + margin-top: 25px; +} + +.groups.manage-members #group-settings-form .item-list li { + border-bottom: 1px solid #eaeaea; +} + +@media screen and (min-width: 650px) { + .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: 15px; + width: 100%; +} + +.groups.manage-members #group-settings-form .item-list li span.small a { + display: block; + margin: 5px 0; +} + +@media screen and (min-width: 650px) { + .groups.manage-members #group-settings-form .item-list li span.small a { + display: inline-block; + } +} + +.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: 450px) { + .groups.group-members #subnav li { + background: #fff; + padding: 25px 0; + } +} + +.groups.group-members #subnav li #search-members-form { + float: right; + margin: 5px 0 0 0; +} + +.groups.group-members #subnav li #search-members-form label input[type="text"] { + box-shadow: none; +} + +@media screen and (max-width: 450px) { + .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 component item body rules +*----------------------------------------------------- +*/ +/** +*-------------------------------------------- +* @subsection 6.2.2.1 - classes, pag, filters +*-------------------------------------------- +*/ +.bp-user #buddypress table th { + font-size: 13px; + font-size: 0.8666666667rem; +} + +.bp-user #buddypress table td { + font-size: 12px; + font-size: 0.8rem; +} + +@media screen and (min-width: 650px) { + .bp-user #buddypress table th { + font-size: 16px; + font-size: 1.0666666667rem; + } + .bp-user #buddypress table td { + font-size: 14px; + font-size: 0.9333333333rem; + } +} + +.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: 37.5em) { + .bp-user #buddypress .notifications-options-nav, + .bp-user #buddypress .messages-options-nav { + width: 40%; + } +} + +.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.9333333333rem; + outline: 0; + padding: 0; +} + +.bp-user #buddypress .notifications-options-nav select, +.bp-user #buddypress .messages-options-nav select { + float: left; + margin-right: 0; + width: 49%; +} + +@media screen and (min-width: 37.5em) { + .bp-user #buddypress .notifications-options-nav select, + .bp-user #buddypress .messages-options-nav select { + width: auto; + } +} + +.bp-user #buddypress .notifications-options-nav input, +.bp-user #buddypress .messages-options-nav input { + float: left; + font-family: inherit; + line-height: 20px; + margin-left: 1%; + width: 50%; +} + +@media screen and (min-width: 37.5em) { + .bp-user #buddypress .notifications-options-nav input, + .bp-user #buddypress .messages-options-nav input { + width: auto; + } +} + +.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 .bp-widget h4 { + background: #6f6f6f; + color: #fff; + margin-bottom: 0; + padding: 0.4em; +} + +.bp-user #buddypress .profile .bp-widget table { + margin-top: 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.2rem; +} + +.bp-user #buddypress .profile #profile-edit-form .field-visibility-settings-toggle { + margin: 5px 0 25px; +} + +.bp-user #buddypress .profile #profile-edit-form .field-visibility-settings-toggle, +.bp-user #buddypress .profile #profile-edit-form .field-visibility-settings { + font-size: 14px; + font-size: 0.9333333333rem; +} + +.bp-user #buddypress .profile #profile-edit-form .field-visibility-settings-close, +.bp-user #buddypress .profile #profile-edit-form .visibility-toggle-link { + background: #6f6f6f; + -webkit-border-radius: 2px; + -moz-border-radius: 2px; + -ms-border-radius: 2px; + border-radius: 2px; + background-clip: padding-box; + color: #eee; + font-weight: bold; + padding: 0.1em 0.5em; + text-decoration: none; +} + +.bp-user #buddypress .profile #profile-edit-form .field-visibility-settings-close:focus, .bp-user #buddypress .profile #profile-edit-form .field-visibility-settings-close:hover, +.bp-user #buddypress .profile #profile-edit-form .visibility-toggle-link:focus, +.bp-user #buddypress .profile #profile-edit-form .visibility-toggle-link:hover { + color: #fff; +} + +.bp-user #buddypress .profile .bp-avatar #bp-delete-avatar a { + font-size: inherit; +} + +/** + *------------------------------------------- + * @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-recipients .highlight { + font-size: 100%; +} + +.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: 46.25em) { + .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: 15px 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: #6f6f6f; +} + +.bp-user #buddypress #message-threads tr td { + background: #fff; + box-sizing: border-box; + 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: 1px solid #ccc; + 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.thread-star { + vertical-align: middle; +} + +.bp-user #buddypress #message-threads tr td.thread-star .message-action-star, +.bp-user #buddypress #message-threads tr td.thread-star .message-action-unstar { + line-height: 1.2; +} + +.bp-user #buddypress #message-threads tr td.thread-star span.icon:before { + font-size: 14px; + font-size: 0.9333333333rem; +} + +.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: 37.5em) { + .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.8rem; +} + +.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.8rem; + line-height: 1.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: 37.5em) { + .bp-user #buddypress #message-threads tr span.activity { + clear: both; + font-size: 11px; + font-size: 0.7333333333rem; + width: 100%; + } +} + +.bp-user #buddypress #message-threads tr.unread td { + border-color: #eaeaea; +} + +.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 #send_message_form input, +.bp-user #buddypress #send_message_form textarea { + box-sizing: border-box; +} + +.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: #edf7fa; + border: inherit; + margin-right: 0; + padding: 0.5em; +} + +.bp-user #buddypress .acfb-holder li.friend-tab span.p { + padding-left: 15px; +} + +.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 tr { + margin: 3em 0; +} + +.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 a.button { + border: 1px solid #d4d0ba; + line-height: initial; + padding: 0.4em 0.3em; +} + +.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 { + line-height: 1; + padding-bottom: 1em; + 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: 15px; +} + +.bp-user .ac_results li { + margin: 15px 0; +} + +.bp-user .ac_results li:focus, .bp-user .ac_results li:hover { + cursor: pointer; +} + +.bp-user .ac_results li img { + vertical-align: bottom; +} + +/** + *------------------------------ + * @subsection 6.2.2.6 - Settings + *------------------------------ + */ +.bp-user #buddypress #settings-form > p { + font-size: 20px; + font-size: 1.3333333333rem; + margin: 25px 0 15px; +} + +.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: 46.25em) { + .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%; +} + +/** + *------------------------------------ + * @subsection 6.2.2.6 - Notifications + *------------------------------------ + */ +/** +*------------------------------------------------------------------------------- +* @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(212, 208, 186, 0.5); +} + +#buddypress div.activity-comments form .ac-textarea textarea { + background: none; + border: 0; +} + +#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(212, 208, 186, 0.5); + border-width: 1px; +} + +#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: 15px 0; +} + +#buddypress div.dir-search form, +#buddypress div.message-search form, +#buddypress li.groups-members-search form { + border: 1px solid rgba(212, 208, 186, 0.6); + overflow: hidden; +} + +#buddypress div.dir-search form label, +#buddypress div.message-search form label, +#buddypress li.groups-members-search form label { + float: left; + width: 70%; +} + +#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; + border-radius: 0; + box-shadow: none; + box-sizing: border-box; + font-size: 14px; + font-size: 0.9333333333rem; + line-height: 1.8; + min-height: 2rem; +} + +#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(212, 208, 186, 0.6); + float: left; + margin: 0; + padding: 0 0.2em 0; + width: 70%; +} + +#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'] { + float: right; + font-weight: normal; + padding: 0 1em; + text-align: center; + text-transform: none; + width: 30%; +} + +@media screen and (min-width: 37.5em) { + #buddypress div.dir-search, + #buddypress div.message-search, + #buddypress li.groups-members-search { + float: right; + margin-bottom: 5px !important; + } + #buddypress div.dir-search form label, + #buddypress div.dir-search form input[type='text'], + #buddypress div.dir-search form input[type='submit'], + #buddypress div.message-search form label, + #buddypress div.message-search form input[type='text'], + #buddypress div.message-search form input[type='submit'], + #buddypress li.groups-members-search form label, + #buddypress li.groups-members-search form input[type='text'], + #buddypress li.groups-members-search form input[type='submit'] { + width: auto; + } +} + +@media screen and (min-width: 800px) { + #buddypress .dir-search form input[type='text'], + #buddypress .message-search form input[type='text'] { + font-size: 16px; + font-size: 1.0666666667rem; + } + #buddypress .dir-search form input[type='submit'], + #buddypress .message-search form input[type='submit'] { + font-size: 16px; + font-size: 1.0666666667rem; + } +} + +/** +*------------------------------------------------------------------------------- +* @section 8.0 - Tables - General +*------------------------------------------------------------------------------- +*/ +.bp-user #buddypress table { + font-size: 14px; + font-size: 0.9333333333rem; + margin: 25px 0; +} + +.bp-user #buddypress table tr th { + background: #6f6f6f; + border-color: #b7b7b7; + color: #fff; + font-size: 16px; + font-size: 1.0666666667rem; + padding: 0 8px; + text-transform: capitalize; +} + +.bp-user #buddypress table tr td { + padding: 8px; +} + +.bp-user #buddypress table p { + margin-bottom: 0.5em; +} + +@media screen and (min-width: 55em) { + .bp-user #buddypress table { + font-size: 16px; + font-size: 1.0666666667rem; + } +} + +.bp-user #buddypress .notifications th, +.bp-user #buddypress .messages-notices th { + width: 30%; +} + +.bp-user #buddypress .notifications th.bulk-select-all, +.bp-user #buddypress .messages-notices th.bulk-select-all { + text-align: center; + width: 10%; +} + +.bp-user #buddypress .notifications th.actions, +.bp-user #buddypress .messages-notices th.actions { + text-align: center; +} + +.bp-user #buddypress .notifications .bulk-select-check, +.bp-user #buddypress .notifications .thread-star, +.bp-user #buddypress .messages-notices .bulk-select-check, +.bp-user #buddypress .messages-notices .thread-star { + text-align: center; +} + +.bp-user #buddypress .notifications .notification-actions, +.bp-user #buddypress .notifications td.thread-options, +.bp-user #buddypress .messages-notices .notification-actions, +.bp-user #buddypress .messages-notices td.thread-options { + text-align: center; +} + +.bp-user #buddypress .notifications .notification-actions a, +.bp-user #buddypress .notifications td.thread-options a, +.bp-user #buddypress .messages-notices .notification-actions a, +.bp-user #buddypress .messages-notices td.thread-options a { + display: inline-block; + margin: 0; + padding: 0; +} + +.bp-user #buddypress .notifications td .button, +.bp-user #buddypress .messages-notices td .button { + border: 0; + display: block; + padding: 0; + text-align: center; +} + +/** +*------------------------------------------------------------------------------- +* @section 9.0 - Error / Success messages +*------------------------------------------------------------------------------- +*/ +#buddypress div#message p { + font-size: 18px; + font-size: 1.2rem; + font-weight: bold; +} + +#buddypress div#message.info p { + background: #c6e4ee; + border: 1px solid #78bed6; + color: #1e5264; +} + +#buddypress div#message.updated p { + background: #dee6b2; + border: 1px solid #becc66; + color: #454d19; +} + +.delete-group #buddypress div#message.info p { + background: #db7e7e; + border: 1px solid #be3535; + color: #1f0808; +} + +/** +*------------------------------------------------------------------------------- +* @section 10.0 - Ajax Loading, Widgets, General classes +*------------------------------------------------------------------------------- +*/ diff --git a/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/twentyeleven.min.css b/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/twentyeleven.min.css new file mode 100644 index 0000000000000000000000000000000000000000..c04c72aaa9b94ed4ae946dc09db1649293ac9e38 --- /dev/null +++ b/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/twentyeleven.min.css @@ -0,0 +1 @@ +@charset "UTF-8";.buddypress div.clear{display:none}body.buddypress:not(.page-template-sidebar-page) #content{margin:0 10%;width:auto}body.buddypress:not(.page-template-sidebar-page) #content .entry-content,body.buddypress:not(.page-template-sidebar-page) #content .entry-header{width:auto}.buddypress.singular.page .hentry{padding-top:0}#buddypress div.item-list-tabs ul li.current a,#buddypress div.item-list-tabs ul li.selected a{background:inherit;opacity:1}#buddypress div.item-list-tabs ul{overflow:hidden;padding:0}#buddypress div.item-list-tabs ul li a:focus,#buddypress div.item-list-tabs ul li a:hover{color:#555}#buddypress div.item-list-tabs ul li a:visited{color:#21759b}#buddypress div.item-list-tabs ul li a span{border-radius:25%}@media screen and (max-width:450px){.bp-user #buddypress #object-nav{border:1px solid #eaeaea;overflow:visible;padding:5px}.bp-user #buddypress #object-nav ul{border:0;height:0;transition:height .3s ease-in-out .7s;visibility:hidden}.bp-user #buddypress #object-nav:before{content:"Menu \021E9";display:inline;opacity:.7}.bp-user #buddypress #object-nav:active:before,.bp-user #buddypress #object-nav:focus:before,.bp-user #buddypress #object-nav:hover:before{content:"Menu \021E7"}.bp-user #buddypress #object-nav:active ul,.bp-user #buddypress #object-nav:focus ul,.bp-user #buddypress #object-nav:hover ul{min-height:320px;opacity:1;visibility:visible}.bp-user #buddypress #subnav{clear:both}}#buddypress #object-nav ul{overflow:hidden}#buddypress #object-nav ul li{float:none}@media screen and (max-width:650px){#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:#f2f2f2}}@media screen and (min-width:650px){#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;border-top:1px solid #d4d0ba;margin-top:5px;padding:0}#buddypress div#subnav.item-list-tabs ul li.last{background:#fff;float:right;margin-top:0;padding:5px 0;text-align:right;width:230px}#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;padding:0}#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:.9333333333rem}#buddypress div#subnav.item-list-tabs ul li.last select{font-style:italic}#buddypress div#subnav.item-list-tabs ul li.last select option{font-style:normal}#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}.bp-user #buddypress div#subnav.item-list-tabs li.last{margin-left:0;text-align:right}@media screen and (max-width:450px){#buddypress div#subnav.item-list-tabs ul li.last{float:none;width:auto}.bp-user #buddypress div#subnav.item-list-tabs li.last{clear:left;float:none;margin-left:10px;text-align:left}}@media screen and (min-width:800px){body.bp-user #buddypress #item-body,body.bp-user #buddypress #item-header{background:#fff}body.bp-user #buddypress #object-nav{border-right:1px solid #ddd;float:left;margin-right:-1px;width:200px}body.bp-user #buddypress #object-nav ul{background:0 0;border-bottom:0;padding:0}body.bp-user #buddypress #object-nav ul li{float:none;overflow:hidden}body.bp-user #buddypress #object-nav ul li.selected{background:#ddd}body.bp-user #buddypress #object-nav ul li span{background:#fff;border-radius:10%;float:right;margin-right:2px}body.bp-user #buddypress #item-body{border-left:1px solid #ddd;overflow:hidden;padding:0 0 0 25px;width:auto}body.bp-user #buddypress #item-body #subnav{margin:0 0 0 -25px}body.bp-user #buddypress #item-body #subnav ul{margin-top:0}}@media screen and (min-width:650px){#main #buddypress #group-create-tabs.item-list-tabs ul:after,#main #buddypress #group-create-tabs.item-list-tabs ul:before{content:" ";display:table}#main #buddypress #group-create-tabs.item-list-tabs ul:after{clear:both}#main #buddypress #group-create-tabs.item-list-tabs ul{background:0 0;border:0;border-bottom:1px solid #ddd;overflow:visible;padding-bottom:0}#main #buddypress #group-create-tabs.item-list-tabs ul li{float:left;width:auto}#main #buddypress #group-create-tabs.item-list-tabs ul li.current,#main #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}#main #buddypress #group-create-tabs.item-list-tabs ul li.current a,#main #buddypress #group-create-tabs.item-list-tabs ul li.selected a{background:0 0;color:#373737;outline:0}#main #buddypress #subnav ul{border-bottom:0}}#buddypress div.pagination{box-shadow:none;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 #activity-stream li .activity-header a:visited,#buddypress ul.item-list li .item .item-title>a:visited{color:#21759b}#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 ul.item-list{border-top:0}#buddypress ul.item-list li{overflow:hidden!important}#buddypress ul.item-list li .item-avatar{margin-bottom:15px;text-align:center}@media screen and (min-width:650px){#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:15px}#buddypress ul.item-list li .item{margin-left:0;overflow:hidden}#buddypress ul.item-list li .item .item-meta{text-align:center}@media screen and (min-width:61.5625em){#buddypress ul.item-list li .item .item-meta{text-align:left}}#buddypress ul.item-list li .item .item-desc{margin-left:0;width:94%}#buddypress ul.item-list li .item .item-title{font-size:16px;font-size:1.0666666667rem;line-height:1.2;text-align:center;width:100%}@media screen and (min-width:450px){#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>a{text-decoration:none}#buddypress ul.item-list li .item .item-title .update{display:block;font-size:12px;font-size:.8rem;padding:15px 0;text-align:left}@media screen and (min-width:650px){#buddypress ul.item-list li .item .item-title .update{font-size:14px;font-size:.9333333333rem}#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:18px;font-size:1.2rem}}#buddypress ul.item-list li div.action{clear:left;float:none;margin:0;padding:15px 0 5px;position:relative;text-align:left;top:0}@media screen and (min-width:650px){#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:5px 0;width:100%}#buddypress #activity-stream li.load-newest a,#buddypress ul.item-list li div.action div a{display:block}@media screen and (min-width:37em){#buddypress ul.item-list li div.action div{margin:0 15px 5px 0;width:auto}}@media screen and (min-width:650px){#buddypress ul.item-list li div.action div{clear:right;float:right;margin:0 0 15px}}#buddypress form#whats-new-form p.activity-greeting{line-height:1.4}@media screen and (max-width:650px){#buddypress form#whats-new-form #whats-new-content{clear:left;margin:15px 0 25px;padding:15px 0 0}}#buddypress form#whats-new-form #whats-new-content.active #whats-new-options[style] #whats-new-post-in-box{border:1px solid rgba(212,208,186,.5);float:left;font-size:12px;font-size:.8rem;line-height:1.6;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;max-width:220px;min-height:1.5em;padding:0 0 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{font-size:12px;font-size:.8rem;float:right}#buddypress form#whats-new-form #whats-new-content.active #whats-new-options[style] #whats-new-submit input{padding:0 6px}}#buddypress #item-body form#whats-new-form{margin:50px 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:25px;margin-left:0;width:60px}#buddypress #activity-stream li .activity-comments,#buddypress #activity-stream li .activity-content{margin-left:0}#buddypress #activity-stream li .activity-header{font-size:14px;font-size:.9333333333rem}#buddypress #activity-stream li .activity-inner img{height:auto}@media screen and (min-width:650px){#buddypress #activity-stream li .activity-avatar{float:left;margin-right:15px;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:1.0666666667rem}#buddypress #activity-stream li .activity-comments{margin-left:70px}}#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:.9333333333rem}#buddypress #activity-stream li.mini .activity-content .activity-meta a{font-size:12px;font-size:.8rem}#buddypress #activity-stream .activity-content{margin-top:-12px}#buddypress #activity-stream .activity-content .activity-header{line-height:inherit;margin-right:0}#buddypress #activity-stream .activity-content .activity-header p{border-bottom:1px solid rgba(234,234,234,.6);margin-top:0;padding:0 .2em}#buddypress #activity-stream .activity-content .activity-header img.avatar{display:inline-block;margin-bottom:0!important}#buddypress #activity-stream .activity-content .activity-meta a{display:block;font-size:14px;font-size:.9333333333rem;margin-bottom:5px;padding:.2em .5em}@media screen and (min-width:650px){#buddypress #activity-stream .activity-content .activity-meta a{float:left;margin-bottom:0}}#buddypress #activity-stream .load-more{background:#f7f7f7;border:1px solid transparent;padding:15px}.activity-permalink #buddypress #activity-stream li.activity-item,.activity-permalink #buddypress #activity-stream li.mini .activity-header p{padding:25px}#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:1.0666666667rem;margin-bottom:50px}@media screen and (min-width:650px){.activity-permalink #buddypress #activity-stream li.mini .activity-header{font-size:20px;font-size:1.3333333333rem}#buddypress #members-list li .item,#buddypress #members-list li .item-avatar{float:left}#buddypress #members-list li .action{float:right}}.activity-permalink #buddypress #activity-stream .activity-comments{margin-left:0}#buddypress #activity-stream .activity-comments{position:relative}#buddypress #activity-stream .activity-comments>ul{background:rgba(247,247,247,.6);margin:15px 0 0 2px}#buddypress #activity-stream .activity-comments>ul>li:hover *{color:#555}#buddypress #activity-stream .activity-comments>ul>li .acomment-content,#buddypress #activity-stream .activity-comments>ul>li .acomment-meta{font-size:12px;font-size:.8rem}#buddypress #activity-stream .activity-comments .ac-form{border:1px solid #d4d0ba;box-sizing:border-box;margin:15px 0;width:100%}#buddypress #activity-stream .activity-comments .ac-form .ac-reply-cancel,#buddypress #activity-stream .activity-comments .ac-form input[type=submit]{color:rgba(55,55,55,.8);display:inline-block;font-family:inherit;font-size:12px;font-size:.8rem;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(212,208,186,.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}#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:37.5em){#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%}#buddypress #signup_form.standard-form #profile-details-section{float:right}#buddypress #signup_form.standard-form #basic-details-section{float:left}}.bp-user #buddypress a:visited{color:#21759b}.bp-user #buddypress #item-header-content #item-meta,.single-item.groups #buddypress #item-header-content #item-meta{font-size:14px;font-size:.9333333333rem;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:37.5em){.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%}.bp-user #buddypress #item-header-content .user-nicename,.single-item.groups #buddypress #item-header-content .user-nicename{color:#555}}@media screen and (max-width:800px){#buddypress #item-header-cover-image #item-header-content .user-nicename{color:#555;text-shadow:none}}@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}.single-item.groups #buddypress #item-header #item-meta{margin-bottom:25px}}@media screen and (max-width:50em){.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{border-bottom:0}.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 h3{border-bottom:1px solid #eaeaea;text-align:center}}.single-item.groups #buddypress div#item-header{padding-bottom:50px}.single-item.groups #buddypress div#item-header #item-header-content{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.single-item.groups #buddypress div#item-header div#item-actions{margin:0!important;width:100%}@media screen and (min-width:50em){.single-item.groups #buddypress div#item-header div#item-actions{border-left:1px solid #eaeaea;clear:none;float:right;padding-left:.2em;width:30%}}@media screen and (min-width:46.25em){.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 h3{font-size:14px;font-size:.9333333333rem;font-weight:700;line-height:1.4}.single-item.groups #buddypress div#item-header div#item-actions #group-admins li,.single-item.groups #buddypress div#item-header div#item-actions #group-mods li{margin:0}@media screen and (min-width:650px){.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-content{margin-left:2%;padding:0 .5em}.single-item.groups #buddypress div#item-header div#item-actions{float:right;width:28%}}@media screen and (min-width:64em){.single-item.groups #buddypress div#item-header #item-header-content{width:40%}}.single-item.groups #buddypress #cover-image-container #item-header-cover-image #item-actions{margin-top:225px!important}@media screen and (min-width:50em) and (max-width:60em){.single-item.groups #buddypress #cover-image-container #item-header-cover-image #item-header-content{max-width:60%!important;width:60%!important}}@media screen and (max-width:64em){.single-item.groups #buddypress #cover-image-container #item-header-cover-image #item-actions{border:0;clear:both;margin-top:0!important;max-width:100%!important;padding-top:0!important;width:auto}.single-item.groups #buddypress #cover-image-container #item-header-cover-image #item-actions h3{border-bottom:1px solid #eaeaea}}.bp-user #buddypress #item-header #item-header-avatar{text-align:center}.bp-user #buddypress #item-header #item-header-avatar a,.bp-user #buddypress #item-header #item-header-avatar img.avatar{border-bottom:0;display:inline-block;float:none}.bp-user #buddypress #item-header #item-header-content #item-buttons .generic-button{margin-right:5px}@media screen and (min-width:650px){.bp-user #buddypress #item-header #item-header-avatar,.bp-user #buddypress #item-header #item-header-avatar a{float:left}.bp-user #buddypress #item-header #item-header-content{float:right;margin-right:0;width:69%}.groups.manage-members #group-settings-form .item-list li h5,.groups.manage-members #group-settings-form .item-list li img{float:left}}.groups #group-settings-form h4{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:.9333333333rem;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{font-weight:700;padding:.2em}.groups.group-settings #group-settings-form div.radio label ul{color:rgba(55,55,55,.6);font-size:14px;font-size:.9333333333rem}.groups.group-avatar form>p{margin-top:25px}.groups.manage-members #group-settings-form .item-list li{border-bottom:1px solid #eaeaea}.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 span.small{clear:left;display:block;float:none;margin-top:15px;width:100%}.groups.manage-members #group-settings-form .item-list li span.small a{display:block;margin:5px 0}.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}.groups.group-members #subnav li #search-members-form label input[type=text]{box-shadow:none}@media screen and (max-width:450px){.groups.group-members #subnav li{background:#fff;padding:25px 0}.groups.group-members #subnav li #search-members-form label input[type=text]{width:100%}}.bp-user #buddypress table th{font-size:13px;font-size:.8666666667rem}.bp-user #buddypress table td{font-size:12px;font-size:.8rem}@media screen and (min-width:650px){.groups.manage-members #group-settings-form .item-list li span.small a{display:inline-block}.bp-user #buddypress table th{font-size:16px;font-size:1.0666666667rem}.bp-user #buddypress table td{font-size:14px;font-size:.9333333333rem}}.bp-user #buddypress .messages-options-nav,.bp-user #buddypress .notifications-options-nav{float:left;width:100%}@media screen and (min-width:37.5em){.bp-user #buddypress .messages-options-nav,.bp-user #buddypress .notifications-options-nav{width:40%}}.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:.9333333333rem;outline:0;padding:0}.bp-user #buddypress .messages-options-nav select,.bp-user #buddypress .notifications-options-nav select{float:left;margin-right:0;width:49%}@media screen and (min-width:37.5em){.bp-user #buddypress .messages-options-nav select,.bp-user #buddypress .notifications-options-nav select{width:auto}}.bp-user #buddypress .messages-options-nav input,.bp-user #buddypress .notifications-options-nav input{float:left;font-family:inherit;line-height:20px;margin-left:1%;width:50%}@media screen and (min-width:37.5em){.bp-user #buddypress .messages-options-nav input,.bp-user #buddypress .notifications-options-nav input{width:auto}}.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 .bp-widget h4{background:#6f6f6f;color:#fff;margin-bottom:0;padding:.4em}.bp-user #buddypress .profile .bp-widget table{margin-top:0}.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.2rem}.bp-user #buddypress .profile #profile-edit-form .field-visibility-settings-toggle{margin:5px 0 25px}.bp-user #buddypress .profile #profile-edit-form .field-visibility-settings,.bp-user #buddypress .profile #profile-edit-form .field-visibility-settings-toggle{font-size:14px;font-size:.9333333333rem}.bp-user #buddypress .profile #profile-edit-form .field-visibility-settings-close,.bp-user #buddypress .profile #profile-edit-form .visibility-toggle-link{background:#6f6f6f;-webkit-border-radius:2px;-moz-border-radius:2px;-ms-border-radius:2px;border-radius:2px;background-clip:padding-box;color:#eee;font-weight:700;padding:.1em .5em;text-decoration:none}.bp-user #buddypress .profile #profile-edit-form .field-visibility-settings-close:focus,.bp-user #buddypress .profile #profile-edit-form .field-visibility-settings-close:hover,.bp-user #buddypress .profile #profile-edit-form .visibility-toggle-link:focus,.bp-user #buddypress .profile #profile-edit-form .visibility-toggle-link:hover{color:#fff}.bp-user #buddypress .profile .bp-avatar #bp-delete-avatar a{font-size:inherit}.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-recipients .highlight{font-size:100%}.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:46.25em){.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:15px 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:#6f6f6f}.bp-user #buddypress #message-threads tr td{background:#fff;box-sizing:border-box;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:1px solid #ccc;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.thread-star{vertical-align:middle}.bp-user #buddypress #message-threads tr td.thread-star .message-action-star,.bp-user #buddypress #message-threads tr td.thread-star .message-action-unstar{line-height:1.2}.bp-user #buddypress #message-threads tr td.thread-star span.icon:before{font-size:14px;font-size:.9333333333rem}.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:.8rem}.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:.8rem;line-height:1.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:37.5em){.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:.7333333333rem;width:100%}}.bp-user #buddypress #message-threads tr.unread td{border-color:#eaeaea}.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 #send_message_form input,.bp-user #buddypress #send_message_form textarea{box-sizing:border-box}.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:#edf7fa;border:inherit;margin-right:0;padding:.5em}.bp-user #buddypress .acfb-holder li.friend-tab span.p{padding-left:15px}.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 tr{margin:3em 0}.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 a.button{border:1px solid #d4d0ba;line-height:initial;padding:.4em .3em}.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{line-height:1;padding-bottom:1em;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:15px}.bp-user .ac_results li{margin:15px 0}.bp-user .ac_results li:focus,.bp-user .ac_results li:hover{cursor:pointer}.bp-user .ac_results li img{vertical-align:bottom}.bp-user #buddypress #settings-form>p{font-size:20px;font-size:1.3333333333rem;margin:25px 0 15px}.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:46.25em){.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(212,208,186,.5)}#buddypress div.activity-comments form .ac-textarea textarea{background:0 0;border:0}#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(212,208,186,.5);border-width:1px}#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:15px 0}#buddypress div.dir-search form,#buddypress div.message-search form,#buddypress li.groups-members-search form{border:1px solid rgba(212,208,186,.6);overflow:hidden}#buddypress div.dir-search form label,#buddypress div.message-search form label,#buddypress li.groups-members-search form label{float:left;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;border-radius:0;box-shadow:none;box-sizing:border-box;font-size:14px;font-size:.9333333333rem;line-height:1.8;min-height:2rem}#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(212,208,186,.6);float:left;margin:0;padding:0 .2em;width:70%}#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]{float:right;font-weight:400;padding:0 1em;text-align:center;text-transform:none;width:30%}@media screen and (min-width:37.5em){#buddypress div.dir-search,#buddypress div.message-search,#buddypress li.groups-members-search{float:right;margin-bottom:5px!important}#buddypress div.dir-search form input[type=submit],#buddypress div.dir-search form input[type=text],#buddypress div.dir-search form label,#buddypress div.message-search form input[type=submit],#buddypress div.message-search form input[type=text],#buddypress div.message-search form label,#buddypress li.groups-members-search form input[type=submit],#buddypress li.groups-members-search form input[type=text],#buddypress li.groups-members-search form label{width:auto}}@media screen and (min-width:800px){#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]{font-size:16px;font-size:1.0666666667rem}}.bp-user #buddypress table{font-size:14px;font-size:.9333333333rem;margin:25px 0}.bp-user #buddypress table tr th{background:#6f6f6f;border-color:#b7b7b7;color:#fff;font-size:16px;font-size:1.0666666667rem;padding:0 8px;text-transform:capitalize}.bp-user #buddypress table tr td{padding:8px}.bp-user #buddypress table p{margin-bottom:.5em}@media screen and (min-width:55em){.bp-user #buddypress table{font-size:16px;font-size:1.0666666667rem}}.bp-user #buddypress .messages-notices th,.bp-user #buddypress .notifications th{width:30%}.bp-user #buddypress .messages-notices th.bulk-select-all,.bp-user #buddypress .notifications th.bulk-select-all{text-align:center;width:10%}.bp-user #buddypress .messages-notices .bulk-select-check,.bp-user #buddypress .messages-notices .notification-actions,.bp-user #buddypress .messages-notices .thread-star,.bp-user #buddypress .messages-notices td.thread-options,.bp-user #buddypress .messages-notices th.actions,.bp-user #buddypress .notifications .bulk-select-check,.bp-user #buddypress .notifications .notification-actions,.bp-user #buddypress .notifications .thread-star,.bp-user #buddypress .notifications td.thread-options,.bp-user #buddypress .notifications th.actions{text-align:center}.bp-user #buddypress .messages-notices .notification-actions a,.bp-user #buddypress .messages-notices td.thread-options a,.bp-user #buddypress .notifications .notification-actions a,.bp-user #buddypress .notifications td.thread-options a{display:inline-block;margin:0;padding:0}.bp-user #buddypress .messages-notices td .button,.bp-user #buddypress .notifications td .button{border:0;display:block;padding:0;text-align:center}#buddypress div#message p{font-size:18px;font-size:1.2rem;font-weight:700}#buddypress div#message.info p{background:#c6e4ee;border:1px solid #78bed6;color:#1e5264}#buddypress div#message.updated p{background:#dee6b2;border:1px solid #becc66;color:#454d19}.delete-group #buddypress div#message.info p{background:#db7e7e;border:1px solid #be3535;color:#1f0808} \ No newline at end of file diff --git a/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/twentyeleven.scss b/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/twentyeleven.scss new file mode 100644 index 0000000000000000000000000000000000000000..8b3ea73065c33966a3b7fbad5ebb09bbde0e2fd1 --- /dev/null +++ b/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/twentyeleven.scss @@ -0,0 +1,2577 @@ + +// 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 . + +// 2011 Media Queries / Breakpoints. +// 2011 works breakpoints on a max-width approach + +// @media screen and (max-width: 800px) +// @media screen and (max-width: 650px) +// @media screen and (max-width: 450px) + +// Mixins and Variables + +// simplify remembering/writing media queries +// written as: +// @include medium-up { +// body {property: value;} +// } + +// BP min width mixins + +// max-width 320px +@mixin small-only { + @media screen and (max-width: 320px) { + @content; + } +} + +// min-width 320px +@mixin xsmall-up { + @media screen and (min-width: 320px) { + @content; + } +} + +// min-width 450px +@mixin small-up { + @media screen and (min-width: 450px) { + @content; + } +} + +// min-width 650px (match to 2011 max widths) +@mixin medium-up { + @media screen and (min-width: 650px) { + @content; + } +} + +// min-width 800px (match to 2011 max widths) +@mixin large-up { + @media screen and (min-width: 800px) { + @content; + } +} + +// 2011 max-width mixins + +// max-width 800px +@mixin max800 { + @media screen and (max-width: 800px) { + @content; + } +} +// max-width 650px +@mixin max650 { + @media screen and (max-width: 650px) { + @content; + } +} +// max-width 450px +@mixin max450 { + @media screen and (max-width: 450px) { + @content; + } +} + +// Common spacing values +$spacing-val-lg: 50px; +$spacing-val-md: 25px; +$spacing-val-sm: 15px; +$spacing-val-xs: 5px; + +// Twentyeleven sizes fonts using pixel values; +// we'll continue to set BP sizes via our rem/pixel mixin. + +// A simple mixin to handle font-sizing +// 2011 sets a html/body size @ 15px + +@mixin font-size($font-size: 15) { + $rem-font-value: ($font-size / 15); + 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; +} + +// 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; +} + +// 2011 font family +@mixin default-font-sans() { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; +} + +// Variables: color definitions +$body-text: #373737; +$content-background: #fff; +$off-white: lighten(#f9f8ee, 0.7); +$cream-background: #f7f5e7; +$light-background: #f7f7f7; +$medium-background: #ccc; +$dark-background: #555; +$border-color: #d4d0ba; // border color is varied using rgba +$border-light: #eaeaea; // BP dividers +$border-med: #ddd; +$background-hover: #db572f; // 2011 link background hover +$bp-button-hover: #ededed; // this is the default BP button hover background +$notice-error: #c85a6e; +$notice-warning: #d05656; +$notice-info: #9fd1e2; +$notice-update: #ced98c; +$stripe-odd: #ebf0ff; +$stripe-even: #dbe5ff; +$unread: #9dc3c8; +$link-action: #c82b2b; +/*-------------------------------------------------------------- + +This is the BuddyPress companion stylesheet for +the WordPress Twentyeleven theme. + +This sheet supports the primary BuddyPress styles in buddypress.css + +If you are running as a child theme of twentyeleven 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 + 6.2.2.7 - Notifications +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;} + +} // .buddypress (body class) + +// 2011 page templates do not support sidebars, page entry element kept to a +// narrow width - we override this to allow bp-user screens to +// maximise screen real estate. + +// Main dir pages: sidebar or not to sidebar +// If no sidebar lets fatten the contents girth +// User account single screens never have a sidebar +body.buddypress:not(.page-template-sidebar-page) { + + #content { + margin: 0 10% 0; + width: auto; + + .entry-header, + .entry-content { + width: auto; + } + } +} + +// Reduce the top padding for single pages, too extreme for BP screens. +.buddypress.singular.page { + .hentry { + padding-top: 0; + } +} + +/** +*------------------------------------------------------------------------------- +* @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 +/* Here we start things off */ +#buddypress { + + // active/current states all navs + div.item-list-tabs { + ul { + li.selected, + li.current { + a { + background: inherit; + opacity: 1; + } + } + } + } + // global nav styles + div.item-list-tabs { + ul { + overflow: hidden; + padding: 0; + + li { + a { + + &:focus, + &:hover { + color: #555; + } + // Keep links from inheriting :visited states + &:visited { + color: #21759b; + } + + span {border-radius: 25%;} + } + + } + } + } // close item-list-tabs + +} // close #buddypress + +// .bp-user #object-nav @ small screen as a dropdown + +.bp-user { + + #buddypress { + + @include max450 { + + #object-nav { + border: 1px solid $border-light; + overflow: visible; + padding: $spacing-val-xs; + + ul { + border: 0; + height: 0; + // all latest vendor releases handle transitions, so no prefixes used. + transition: height 0.3s ease-in-out 0.7s; + visibility: hidden; + } + + &:before { + content: "Menu \021E9"; + display: inline; + opacity: 0.7; + } + + &:focus, + &:hover, + &:active { + &:before {content: "Menu \021E7";} + + ul { + min-height: 320px; + opacity: 1; + visibility: visible; + } + } + } + + #subnav { + clear: both; + } + + } // close @media + } +} + +/*__ Horizontal menus __*/ +#buddypress { + + #object-nav { + + ul { + overflow: hidden; + + li { + float: none; + } + + @include max650 { + + li:not(:last-child) { + border-bottom: 1px solid $border-light; + } + + li:not(.selected) { + + &:focus, + &:hover { + background: darken($light-background, 2%); + } + } + + } // close @media + + @include medium-up { + + li { + float: left; + } + } + + } + } + + div#subnav.item-list-tabs { + margin-top: 0; + + ul { + border-bottom: 0; + border-top: 1px solid $border-color; + margin-top: $spacing-val-xs; + padding: 0; + + li.last { + background: $content-background; + float: right; + margin-top: 0; + padding: $spacing-val-xs 0 $spacing-val-xs; + text-align: right; + width: 230px; + + @include max450 { + float: none; + width: auto; + } + + select, + select:focus { + background: transparent; + border: 0; + outline: 0; + padding: 0; + } + + select, + label, + option { + @include font-size(14); + } + + select { + font-style: italic; + + option { + font-style: normal; + } + } + } + + } // close ul + } // close #subnav + +} // close #buddypress + +.bp-user { + #buddypress { + div#subnav.item-list-tabs { + li.last { + margin-left: 0; + text-align: right; + + @include max450 { + clear: left; + float: none; + margin-left: 10px; + text-align: left; + } + } + } + } +} + +/*__ 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 + +// The pages templates in 2011 do not support sidebars + +@include large-up { + + body.bp-user { + #buddypress { + + #item-header, + #item-body { + background: $content-background; + } + + #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; + + &.selected { + background: #ddd; + } + + 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.bp-user +} // close @media + + +// Tabbed Nav styling +// Primarilly used for group create screens & ? directory nav. + +@include medium-up { + #main { + #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; + 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 +*------------------------------------------------------------------------------- +*/ + +// 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 2011 font-family + +#buddypress { + ul.item-list { + border-top: 0; + + li { + overflow: hidden !important; + + // Undo BP floats to center avatars initially mobile up + .item-avatar { + margin-bottom: $spacing-val-sm; + + @include medium-up { + margin-bottom: 0; + } + + text-align: center; + + a {border-bottom: 0;} + + img.avatar { + display: inline-block; + float: none; + margin-bottom: $spacing-val-sm; + + // small device: move avatars to the left(right) + @include small-up { + display: block; + float: left; + } + } + } //close .item-avatar + + .item { + + // counter the BP rule + margin-left: 0; + overflow: hidden; + + .item-meta { + text-align: center; + + @media screen and (min-width: 61.5625em) { + text-align: left; + } + } + + span.activity { + font-style: italic; + } + + .item-desc { + margin-left: 0; + width: 94%; + } + + .item-title { + @include font-size(16); + line-height: 1.2; + text-align: center; + + @include small-up { + text-align: left; + } + + width: 100%; + + > a { + text-decoration: none; + + &:visited { color: #21759b;} + } + + .update { + display: block; + @include font-size(12); + + @include medium-up { + @include font-size(14); + } + + padding: $spacing-val-sm 0; + text-align: left; + } + } // close .item-title + + } // close .item + + @include medium-up { + .item-avatar, + .item, + .action { + float: left; + } + + .item { + left: 5%; + margin-left: 0; + position: relative; + width: 55%; + + .item-title { + @include font-size(18) + } + } + + }// close medium-up + + div.action { + clear: left; + float: none; + margin: 0; + // remove BP margin left + margin-left: 0; + padding: $spacing-val-sm 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-xs 0; + width: 100%; + + a { + display: block; + } + // Provisionally lets keep the 'action' div + //position but inline-block the buttons + + @media screen and (min-width: 37em) { + // keep buttons to a row small tablet up + margin: 0 $spacing-val-sm 5px 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 max650 { + #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; + @include font-size(12); + line-height: 1.6; + margin-top: 12px; + padding-left: 0.2em; + width: 100%; + + select { + background: none; + border: 0; + float: right; + margin: 0; + max-width: 220px; + min-height: 1.5em; + padding: 0 0 0 0.4em; + } + } + + @media screen and (min-width: 30em) { + #whats-new-post-in-box { + width: auto; + } + + #whats-new-submit { + @include font-size(12); + float: right; + + input { + padding: 0 6px; + } + } + } + + } // 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; + + &.load-newest { + a { + display: block; + } + } + + .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, + .activity-comments { + margin-left: 0; + } + + .activity-header { + @include font-size(14); + + a:visited { + color: #21759b; + } + } + + .activity-inner { + img {height: auto;} + } + + @include medium-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); + } + } + + .activity-comments { + margin-left: 70px; + } + + } // 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-meta { + a { + @include font-size(12); + } + } + } + } // close li.mini + + .activity-content { + margin-top: -12px; + + .activity-header { + line-height: inherit; + margin-right: 0; + + p { + border-bottom: 1px solid rgba($border-light, 0.6); + margin-top: 0; + padding: 0 0.2em; + } + + img.avatar { + display: inline-block; + margin-bottom: 0 !important; // have to match to BP + } + } // close .activity-header + + .activity-meta { + a { + display: block; + @include font-size(14); + margin-bottom: $spacing-val-xs; + + @include medium-up { + float: left; + margin-bottom: 0; + } + + padding: 0.2em 0.5em; + } + } + + } // 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 { + 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 medium-up { + @include font-size(20); + } + + margin-bottom: $spacing-val-lg; + p {padding: $spacing-val-md;} + } + } // close li.mini + + .activity-comments { + margin-left: 0; + } + + } + } +} + +/** +*----------------------------------------------------- +* @section 4.1.3 - Activity Comments +*----------------------------------------------------- +*/ +#buddypress { + + #activity-stream { + + .activity-comments { + position: relative; + + > ul { + background: rgba($light-background, 0.6); + margin: $spacing-val-sm 0 0 2px; + + > li { + + &:hover * { + color: #555; + } + + .acomment-meta, + .acomment-content { + @include font-size(12); + } + + } + + } + + .ac-form { + border: 1px solid $border-color; + box-sizing: border-box; + margin: $spacing-val-sm 0; + width: 100%; + + 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-steam + +} // close #buddypress + +/** +*---------------------------------------------------------- +* @section 4.2 - Members Loop +*---------------------------------------------------------- +*/ + +#buddypress { + #members-list { + + @include medium-up { + li { + .item-avatar, + .item { + float: left; + } + + .action { + float: right; + } + } + } + + } // 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%; + + @media screen and (min-width: 37.500em) { + width: 48%; + } + } + + @media screen and (min-width: 37.500em) { + #profile-details-section {float: right;} + #basic-details-section {float: left;} + } + + } +} + +/** +*------------------------------------------------------------------------------- +* @section 6.0 - Single Item screens: User Account & Single Group Screens +*------------------------------------------------------------------------------- +*/ + +.bp-user { + #buddypress { + // On object nav links, table links (notifications etc) we don't really need :visited + // inheritance, so set pseudo class to :link color. + a { + &:visited { + color: #21759b; + } + } + } +} + +/** +*----------------------------------------------------------- +* @subsection 6.1 - Item Header Global +*----------------------------------------------------------- +*/ + +.bp-user, +.single-item.groups { + #buddypress { + #item-header-content { + #item-meta { + @include font-size(14); + text-align: left; + + p {margin-bottom: 0.5em;} + } + } + } + + @media screen and (max-width: 37.500em) { + h1, + #item-header-content { + text-align: center; + } + } + + @media screen and (max-width: 46.25em) { + main { + header.entry-header { + padding-bottom: 1rem; + } + } + } + + #buddypress { + @media screen and (max-width: 37.500em) { + h1 { + margin-bottom: 0; + } + + #item-header-avatar { + img.avatar { + margin-right: 0; + } + } + + #item-header-content { + width: 100%; + + .user-nicename { + color: #555; + } + } + } // close @media + + @media screen and (max-width: 46.25em) { + #item-header { + .generic-button { + float: none; + margin: 1.5em 0 0 0; + } + } + } + } // close #buddypress + +} + +// Manage cover images +@include max800 { + #buddypress { + #item-header-cover-image { + #item-header-content { + .user-nicename { + color: #555; + text-shadow: none; + } + } + } + } +} + +/** +*----------------------------------------------------- +* @subsection 6.1.1 - item-header Groups +* +* Group Specific Item Header +*----------------------------------------------------- +*/ + +.single-item.groups { + #buddypress { + @media screen and (max-width: 46.25em) { + #item-header { + #item-meta { + margin-bottom: $spacing-val-md; + } + } + } + + // Move visual flow of avatar & item-actions at narrow width, + // avatar first after group title + @media screen and (max-width: 50em) { + div#item-header { + display: flex; + flex-direction: column; + + #item-header-avatar { + order: 1; + text-align: center; + + a { + border-bottom: 0; + + img { + display: inline-block; + float: none; + } + } + } + + #item-header-content { + order: 2; + } + + #item-actions { + order: 3; + + h3 { + border-bottom: 1px solid $border-light; + text-align: center; + } + } + } + } // close @media + + div#item-header { + padding-bottom: $spacing-val-lg; + + #item-header-content { + @include box-model(border-box); + } + + div#item-actions { + margin: 0 !important; + width: 100%; + + @media screen and (min-width: 50em) { + border-left: 1px solid $border-light; + clear: none; + float: right; + padding-left: 0.2em; + width: 30%; + } // close @media + + @media screen and (min-width: 46.25em) { + width: 40%; + } + + ul { + margin-top: 0; + padding-left: 0; + } + + h3 { + @include font-size(14); + font-weight: bold; + line-height: 1.4; + } + + #group-admins, + #group-mods { + li { + margin: 0; + } + } + + } // close item-actions + + @include medium-up { + + #item-header-avatar, + #item-header-content { + float: left; + } + + #item-header-content { + margin-left: 2%; + padding: 0 0.5em; + } + + div#item-actions { + float: right; + width: 28%; + } + + } // close @media + + @media screen and (min-width: 64em) { + #item-header-content { + width: 40%; + } + } + } // close #item-header + } // close #buddypress + + // These rules handle the specific instance of Cover Images on single groups + // activated & attempt to address positioning concerns arising from themes + // breakpoints. + // Due to cover image styles being applied via embedded styles & thus carrying + // heavier weight than linked styles the use of !important to override may be required. + #buddypress { + #cover-image-container { + #item-header-cover-image { + + #item-actions { + margin-top: 225px !important; + } + + @media screen and (min-width: 50em) and (max-width: 60em) { + #item-header-content { + max-width: 60% !important; + width: 60% !important; + } + } + + @media screen and (max-width: 64em) { + + #item-actions { + border: 0; + clear: both; + margin-top: 0 !important; + max-width: 100% !important; + padding-top: 0 !important; + width: auto; + + h3 {border-bottom: 1px solid $border-light;} + } + } // @media + } + } + } + +} // close .single-item.groups + +/** +*----------------------------------------------------- +* @subsection 6.1.2 - Item Header User Accounts +* +* User Accounts Specific Item Header +*----------------------------------------------------- +*/ + +.bp-user { + #buddypress { + #item-header { + + #item-header-avatar { + text-align: center; + + img.avatar, + a { + border-bottom: 0; + display: inline-block; + float: none; + } + } + + #item-header-content { + #item-buttons { + .generic-button { + margin-right: 5px; + } + } + } + + @include medium-up { + #item-header-avatar { + float: left; + + a { + float: left; + } + } + + #item-header-content { + float: right; + margin-right: 0%; + 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 +*---------------------------------------------------- +*/ + +/** +*----------------------------------------- +* @subsection 6.2.1.1 - Group Management +*----------------------------------------- +*/ + +// headings settings screens & general global settings styles +.groups { + #group-settings-form { + h4 { + 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 { + font-weight: bold; + 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 { + @include medium-up { + float: left; + } + + > a {border-bottom: 0;} + } + + span.small { + clear: left; + display: block; + float: none; + margin-top: $spacing-val-sm; + width: 100%; + + a { + display: block; + margin: $spacing-val-xs 0; + + @include medium-up { + display: inline-block; + } + } + } + + 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 max450 { + background: $content-background; + padding: $spacing-val-md 0; + } + + width: 100%; + + #search-members-form { + float: right; + + label { + input[type="text"] { + box-shadow: none; + + @include max450 { + width: 100%; + } + } + } + + margin: $spacing-val-xs 0 0 0; + } + } + } +} + +/** +*----------------------------------------------------- +* @subsection 6.2.2 - Item Body User Accounts +* +* User Account specific component item body rules +*----------------------------------------------------- +*/ + +/** +*-------------------------------------------- +* @subsection 6.2.2.1 - classes, pag, filters +*-------------------------------------------- +*/ +.bp-user { + + #buddypress { + + table { + th {@include font-size(13)} + td {@include font-size(12)} + + @include medium-up { + th {@include font-size(16)} + td {@include font-size(14)} + } + } + + .pag-count {font-style: italic;} + + .notifications-options-nav, + .messages-options-nav { + float: left; + width: 100%; + + @media screen and (min-width: 37.500em) { + width: 40%; + } + + select, + input { + @include font-size(14); + outline: 0; + padding: 0; + } + + select { + float: left; + margin-right: 0; + width: 49%; + + @media screen and (min-width: 37.500em) { + width: auto; + } + } + + input { + float: left; + font-family: inherit; + line-height: 20px; + margin-left: 1%; + width: 50%; + + @media screen and (min-width: 37.500em) { + width: auto; + } + + &[disabled="disabled"]:focus, + &[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 { + .bp-widget { + h4 { + background: lighten($dark-background, 10%); + color: #fff; + margin-bottom: 0; + padding: 0.4em; + } + + table {margin-top: 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 { + margin: $spacing-val-xs 0 $spacing-val-md; + } + + .field-visibility-settings-toggle, + .field-visibility-settings { + @include font-size(14); + } + + .field-visibility-settings-close, + .visibility-toggle-link { + background: lighten($dark-background, 10%); + @include border-radius(2px); + color: #eee; + font-weight: bold; + padding: 0.1em 0.5em; + text-decoration: none; + + &:focus, + &:hover { + color: #fff; + } + } + } // close profile form + + .bp-avatar { + #bp-delete-avatar { + a {font-size: inherit; } + } + } + } // close .profile + + } // 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; + } + + .highlight { + font-size: 100%; + } + } + + .message-metadata { + overflow: hidden; + + img.avatar { + float: none; + } + + @media screen and (min-width: 46.25em) { + 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: lighten($dark-background, 10%); + } + } + + tr { + td { + background: $content-background; + box-sizing: border-box; + display: inline-block; + float: left; + } + + td.thread-star, + td.thread-options { + border-bottom: 1px solid $medium-background; + height: 2.4em; + padding-bottom: 0.2em; + padding-top: 0.2em; + + @media screen and (max-width: 46.25em) { + padding-top: 0; + } + } + + td.thread-star { + vertical-align: middle; + + .message-action-star, + .message-action-unstar { + line-height: 1.2; + } + + span.icon:before { + @include font-size(14); + } + } + + td.bulk-select-check, + td.thread-from { + height: 3em; + + @media screen and (max-width: 37.500em) { + 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: " \2016 \00a0"attr(title); + @include font-size(12); + } + } + + td.thread-options { + text-align: right; + + a { + @include font-size(12); + line-height: 1.2; + } + } + + span.from { + display: none; + } + + span.activity { + display: block; + float: right; + line-height: 2; + + @media screen and (max-width: 37.500em) { + clear: both; + @include font-size(11); + width: 100%; + } + } + } + + tr.unread { + td { + border-color: $border-light; + } + } + + 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; + } + } + + #send_message_form { + input, + textarea { + box-sizing: border-box; + } + } + + .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 { + tr {margin: 3em 0;} + 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; + } + + a.button { + border: 1px solid $border-color; + line-height: initial; + padding: 0.4em 0.3em; + } + } + + 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 + line-height: 1; + padding-bottom: 1em; + 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; + + li { + margin: $spacing-val-sm 0; + + &:focus, + &:hover { + cursor: pointer; + } + + img { vertical-align: bottom;} + + } + } + +} // 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%; + } + + @media screen and (min-width: 46.25em) { + 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 + +/** + *------------------------------------ + * @subsection 6.2.2.6 - Notifications + *------------------------------------ + */ + + +/** +*------------------------------------------------------------------------------- +* @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(2012) 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; + } + } + } + } + + .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; + } + + } // 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; + + form { // *sigh* only to bludgeon over specified rules + border: 1px solid rgba($border-color, 0.6); + overflow: hidden; + + label { + float: left; + width: 70%; + } + + input[type='text'], + input[type='submit'] { + border: 0; + border-radius: 0; + box-shadow: none; + box-sizing: border-box; + @include font-size(14); + line-height: 1.8; + min-height: 2rem; + } + + input[type='text'] { + border-right: 1px solid rgba($border-color, 0.6); + float: left; + margin: 0; + padding: 0 0.2em 0; + width: 70%; + } + + input[type='submit'] { + float: right; + font-weight: normal; + padding: 0 1em; + text-align: center; + text-transform: none; + width: 30%; + } + } // close form + + } // close .dir-search, .message-search + + // Shift the search parent to the right and allow to shrinkwrap + + @media screen and (min-width: 37.500em) { + div.dir-search, + div.message-search, + li.groups-members-search { + float: right; + margin-bottom: 5px !important; + + form { + label, + input[type='text'], + input[type='submit'] { + width: auto; + } + } + } + + } // close @media + + + @include large-up { + + .dir-search, + .message-search { + form { + input[type='text'] { @include font-size(16) ;} + input[type='submit'] { @include font-size(16) ;} + } + } + } + +} // close #buddypress + +/** +*------------------------------------------------------------------------------- +* @section 8.0 - Tables - General +*------------------------------------------------------------------------------- +*/ +.bp-user { + #buddypress { + + table { + @include font-size(14); + margin: $spacing-val-md 0; + + tr th { + background: lighten($dark-background, 10%); + border-color: darken($border-light, 20%); + color: $content-background; + @include font-size(16); + padding: 0 8px; + text-transform: capitalize; + } + + tr td { + padding: 8px; + } + + // Reduce the themes inherited paragraph margins in tables + p {margin-bottom: 0.5em;} + } + + @media screen and (min-width: 55em) { + table {@include font-size(16);} + } + + // 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%; + } + } + + th.actions { + text-align: center; + } + + .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 + + } // #buddypress +} // .bp-user + +/** +*------------------------------------------------------------------------------- +* @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 + +} // 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 +*------------------------------------------------------------------------------- +*/ diff --git a/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/twentysixteen.scss b/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/twentysixteen.scss index 3d9bcf686de8d4a27e1c9cec7cd8366ccda172ab..7c8be09a54472e16e9e2aea8a76209ca5f70e796 100644 --- a/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/twentysixteen.scss +++ b/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/twentysixteen.scss @@ -1356,8 +1356,6 @@ http://codex.buddypress.org/themes/buddypress-companion-stylesheets/ } h3 { - //background: $dark-background; - //color: $content-background; @include font-size(14); @media screen and (min-width: 46.25em) { diff --git a/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/twentyten-rtl.css b/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/twentyten-rtl.css new file mode 100644 index 0000000000000000000000000000000000000000..c463d466c717cf0b4beadfea6c26d2cc1666cb7e --- /dev/null +++ b/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/twentyten-rtl.css @@ -0,0 +1,1976 @@ +@charset "UTF-8"; +/*-------------------------------------------------------------- + +This is the BuddyPress companion stylesheet for +the WordPress Twentyten theme. + +This sheet supports the primary BuddyPress styles in buddypress.css + +If you are running as a child theme of twentyten 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 + 6.2.2.7 - Notifications +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; +} + +body.page-template-onecolumn-page #main #container { + margin: 0; +} + +body.page-template-onecolumn-page #content { + margin: 0 10% 0; + width: auto; +} + +body.page-template-onecolumn-page #content .entry-header, +body.page-template-onecolumn-page #content .entry-content { + width: auto; +} + +/** +*------------------------------------------------------------------------------- +* @section 2.0 - Navigation - General +*------------------------------------------------------------------------------- +*/ +/** +*---------------------------------------------------------- +* @section 2.1 - Navs Object Nav / Sub Nav (item-list-tabs) +* +* The main navigational elements for all BP screens +*---------------------------------------------------------- +*/ +/* Here we start things off */ +#buddypress div.item-list-tabs ul li.selected a, +#buddypress div.item-list-tabs ul li.current a { + background: inherit; + opacity: 1; +} + +#buddypress div.item-list-tabs ul { + overflow: hidden; + padding: 0; +} + +#buddypress div.item-list-tabs ul li a:focus, #buddypress div.item-list-tabs ul li a:hover { + color: #555; +} + +#buddypress div.item-list-tabs ul li a:visited { + color: #21759b; +} + +#buddypress div.item-list-tabs ul li a span { + padding: 0 4px !important; +} + +/*__ Horizontal menus __*/ +#buddypress #object-nav ul { + overflow: hidden; +} + +#buddypress #object-nav ul li { + float: none; +} + +@media screen and (min-width: 650px) { + #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; + border-top: 1px solid #d4d0ba; + margin-top: 5px; + padding: 0; +} + +#buddypress div#subnav.item-list-tabs ul li.last { + background: #fff; + float: left; + margin-top: 0; + padding: 5px 0 5px; + text-align: left; + width: 230px; +} + +#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; + padding: 0; +} + +#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.9333333333rem; +} + +#buddypress div#subnav.item-list-tabs ul li.last select { + font-style: italic; +} + +#buddypress div#subnav.item-list-tabs ul li.last select option { + font-style: normal; +} + +.bp-user #buddypress div#subnav.item-list-tabs li.last { + margin-right: 0; + text-align: left; +} + +/*__ Vertical menu User Account / Group single screens __*/ +@media screen and (min-width: 800px) { + body.bp-user #buddypress #item-header, + body.bp-user #buddypress #item-body { + background: #fff; + } + body.bp-user #buddypress #object-nav { + border-left: 1px solid #ddd; + float: right; + margin-left: -1px; + width: 200px; + } + body.bp-user #buddypress #object-nav ul { + background: none; + border-bottom: 0; + padding: 0; + } + body.bp-user #buddypress #object-nav ul li { + float: none; + margin-bottom: 5px; + } + body.bp-user #buddypress #object-nav ul li a { + overflow: hidden; + } + body.bp-user #buddypress #object-nav ul li.selected { + background: #ddd; + } + body.bp-user #buddypress #object-nav ul li span { + background: #fff; + border-radius: 10%; + float: left; + margin-left: 2px; + } + body.bp-user #buddypress #item-body { + border-right: 1px solid #ddd; + overflow: hidden; + padding: 0 25px 0 0; + width: auto; + } + body.bp-user #buddypress #item-body #subnav { + margin: 0 -25px 0 0; + } + body.bp-user #buddypress #item-body #subnav ul { + margin-top: 0; + } +} + +@media only screen and (min-device-width: 375px) { + #main #buddypress #group-create-tabs.item-list-tabs ul:before, + #main #buddypress #group-create-tabs.item-list-tabs ul:after { + content: " "; + display: table; + } + #main #buddypress #group-create-tabs.item-list-tabs ul:after { + clear: both; + } + #main #buddypress #group-create-tabs.item-list-tabs ul { + background: none; + border: 0; + border-bottom: 1px solid #ddd; + overflow: visible; + padding-bottom: 0; + } + #main #buddypress #group-create-tabs.item-list-tabs ul li { + float: right; + width: auto; + } + #main #buddypress #group-create-tabs.item-list-tabs ul li.selected, + #main #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; + } + #main #buddypress #group-create-tabs.item-list-tabs ul li.selected a, + #main #buddypress #group-create-tabs.item-list-tabs ul li.current a { + background: none; + color: #373737; + outline: none; + } + #main #buddypress #subnav ul { + border-bottom: 0; + } +} + +/** +*---------------------------------------------------------- +* @section 2.2 - Pagination +*---------------------------------------------------------- +*/ +#buddypress div.pagination { + box-shadow: none; + 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 ul.item-list { + border-top: 0; +} + +#buddypress ul.item-list li { + overflow: hidden !important; +} + +#buddypress ul.item-list li .item-avatar { + margin-bottom: 15px; + text-align: center; +} + +@media only screen and (min-device-width: 375px) { + #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: 15px; +} + +@media only screen and (min-device-width: 450px) { + #buddypress ul.item-list li .item-avatar img.avatar { + display: block; + float: right; + opacity: 1; + } +} + +#buddypress ul.item-list li .item { + margin-right: 0; + overflow: hidden; +} + +#buddypress ul.item-list li .item .item-meta { + text-align: center; +} + +@media screen and (min-width: 650px) { + #buddypress ul.item-list li .item .item-meta { + text-align: right; + } +} + +#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: 16px; + font-size: 1.0666666667rem; + line-height: 1.2; + text-align: center; + width: 100%; +} + +@media screen and (min-device-width: 450px) { + #buddypress ul.item-list li .item .item-title { + text-align: right; + } +} + +#buddypress ul.item-list li .item .item-title > a { + text-decoration: none; +} + +#buddypress ul.item-list li .item .item-title > a:visited { + color: #21759b; +} + +#buddypress ul.item-list li .item .item-title .update { + display: block; + font-size: 12px; + font-size: 0.8rem; + padding: 15px 0; + text-align: right; +} + +@media screen and (min-width: 650px) { + #buddypress ul.item-list li .item .item-title .update { + font-size: 14px; + font-size: 0.9333333333rem; + } +} + +@media screen and (min-width: 650px) { + #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: 18px; + font-size: 1.2rem; + } +} + +#buddypress ul.item-list li div.action { + clear: right; + float: none; + margin: 0; + margin-right: 0; + padding: 15px 0 5px; + position: relative; + text-align: right; + top: 0; +} + +@media screen and (min-width: 650px) { + #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: 5px 0; + width: 100%; +} + +#buddypress ul.item-list li div.action div a { + display: block; +} + +@media only screen and (min-device-width: 375px) { + #buddypress ul.item-list li div.action div { + margin: 0 0 5px 15px; + width: auto; + } +} + +@media screen and (min-width: 650px) { + #buddypress ul.item-list li div.action div { + clear: left; + float: left; + margin: 0 0 15px 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; +} + +#buddypress form#whats-new-form #whats-new-content.active #whats-new-options[style] #whats-new-post-in-box { + border: 1px solid rgba(212, 208, 186, 0.5); + float: right; + font-size: 12px; + font-size: 0.8rem; + line-height: 1.6; + 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; + max-width: 220px; + min-height: 1.5em; + padding: 0 0.4em 0 0; +} + +@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 { + font-size: 12px; + font-size: 0.8rem; + float: left; + } + #buddypress form#whats-new-form #whats-new-content.active #whats-new-options[style] #whats-new-submit input { + padding: 0 6px; + } +} + +#buddypress #item-body form#whats-new-form { + margin: 50px 0; +} + +/** +*----------------------------------------------------- +* @section 4.1.2 - Activity Listing +*----------------------------------------------------- +*/ +#buddypress #activity-stream li { + padding: 25px 0 15px; +} + +#buddypress #activity-stream li.load-newest a { + display: block; +} + +#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: 25px; + margin-right: 0; + width: 60px; +} + +#buddypress #activity-stream li .activity-content, +#buddypress #activity-stream li .activity-comments { + margin-right: 0; +} + +#buddypress #activity-stream li .activity-header { + font-size: 14px; + font-size: 0.9333333333rem; +} + +#buddypress #activity-stream li .activity-header a:visited { + color: #21759b; +} + +#buddypress #activity-stream li .activity-inner img { + height: auto; +} + +@media screen and (min-width: 650px) { + #buddypress #activity-stream li .activity-avatar { + float: right; + margin-left: 15px; + 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: 1.0666666667rem; + } + #buddypress #activity-stream li .activity-comments { + margin-right: 70px; + } +} + +#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.9333333333rem; +} + +#buddypress #activity-stream li.mini .activity-content .activity-meta a { + font-size: 12px; + font-size: 0.8rem; +} + +#buddypress #activity-stream .activity-content { + margin-top: -12px; +} + +#buddypress #activity-stream .activity-content .activity-header { + line-height: inherit; + margin-left: 0; +} + +#buddypress #activity-stream .activity-content .activity-header p { + border-bottom: 1px solid rgba(234, 234, 234, 0.6); + margin-top: 0; + padding: 0 0.2em; +} + +#buddypress #activity-stream .activity-content .activity-header img.avatar { + display: inline-block; + margin-bottom: 0 !important; +} + +#buddypress #activity-stream .activity-content .activity-meta a { + display: block; + font-size: 14px; + font-size: 0.9333333333rem; + margin-bottom: 5px; + padding: 0.2em 0.5em; +} + +@media screen and (min-width: 650px) { + #buddypress #activity-stream .activity-content .activity-meta a { + float: right; + margin-bottom: 0; + } +} + +#buddypress #activity-stream .load-more { + background: #f7f7f7; + border: 1px solid transparent; + padding: 15px; +} + +#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 a { + display: block; +} + +/* Single activity view - activity permalink */ +.activity-permalink #buddypress #activity-stream li.activity-item { + padding: 25px; +} + +.activity-permalink #buddypress #activity-stream li.mini .activity-header { + font-size: 16px; + font-size: 1.0666666667rem; + margin-bottom: 50px; +} + +@media screen and (min-width: 650px) { + .activity-permalink #buddypress #activity-stream li.mini .activity-header { + font-size: 20px; + font-size: 1.3333333333rem; + } +} + +.activity-permalink #buddypress #activity-stream li.mini .activity-header p { + padding: 25px; +} + +.activity-permalink #buddypress #activity-stream .activity-comments { + margin-right: 0; +} + +/** +*----------------------------------------------------- +* @section 4.1.3 - Activity Comments +*----------------------------------------------------- +*/ +#buddypress #activity-stream .activity-comments { + position: relative; +} + +#buddypress #activity-stream .activity-comments > ul { + background: rgba(247, 247, 247, 0.6); + margin: 15px 2px 0 0; +} + +#buddypress #activity-stream .activity-comments > ul > li:hover * { + color: #555; +} + +#buddypress #activity-stream .activity-comments > ul > li .acomment-meta, +#buddypress #activity-stream .activity-comments > ul > li .acomment-content { + font-size: 12px; + font-size: 0.8rem; +} + +#buddypress #activity-stream .activity-comments .ac-form { + border: 1px solid #d4d0ba; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + margin: 15px 0; + width: 100%; +} + +#buddypress #activity-stream .activity-comments .ac-form input[type="submit"], +#buddypress #activity-stream .activity-comments .ac-form .ac-reply-cancel { + color: rgba(55, 55, 55, 0.8); + display: inline-block; + font-family: inherit; + font-size: 12px; + font-size: 0.8rem; + 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(212, 208, 186, 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: 650px) { + #buddypress #members-list li .item-avatar, + #buddypress #members-list li .item { + float: right; + } + #buddypress #members-list li .action { + float: left; + } +} + +/** +*------------------------------------------------------------------------------- +* @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: 37.5em) { + #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: 37.5em) { + #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 +*------------------------------------------------------------------------------- +*/ +.bp-user #buddypress a:visited { + color: #21759b; +} + +/** +*----------------------------------------------------------- +* @subsection 6.1 - Item Header Global +*----------------------------------------------------------- +*/ +.bp-user #buddypress #item-header-content #item-meta, +.single-item.groups #buddypress #item-header-content #item-meta { + font-size: 14px; + font-size: 0.9333333333rem; + 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: 37.5em) { + .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 main header.entry-header, + .single-item.groups main header.entry-header { + padding-bottom: 1rem; + } +} + +@media screen and (max-width: 37.5em) { + .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%; + } + .bp-user #buddypress #item-header-content .user-nicename, + .single-item.groups #buddypress #item-header-content .user-nicename { + color: #555; + } +} + +@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; + } +} + +/** +*----------------------------------------------------- +* @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: 25px; + } +} + +@media screen and (max-width: 50em) { + .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 { + border-bottom: 0; + } + .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 h3 { + border-bottom: 1px solid #eaeaea; + text-align: center; + } +} + +.single-item.groups #buddypress div#item-header { + padding-bottom: 50px; +} + +.single-item.groups #buddypress div#item-header #item-header-content { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +.single-item.groups #buddypress div#item-header div#item-actions { + margin: 0 !important; + width: 100%; +} + +@media screen and (min-width: 50em) { + .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: 46.25em) { + .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 h3 { + font-size: 14px; + font-size: 0.9333333333rem; + font-weight: bold; + line-height: 1.4; +} + +.single-item.groups #buddypress div#item-header div#item-actions #group-admins li, +.single-item.groups #buddypress div#item-header div#item-actions #group-mods li { + margin: 0; +} + +@media screen and (min-width: 650px) { + .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-content { + margin-right: 2%; + padding: 0 0.5em; + } + .single-item.groups #buddypress div#item-header div#item-actions { + float: left; + width: 28%; + } +} + +@media screen and (min-width: 64em) { + .single-item.groups #buddypress div#item-header #item-header-content { + width: 40%; + } +} + +.single-item.groups #buddypress #cover-image-container #item-header-cover-image #item-actions { + margin-top: 225px !important; +} + +@media screen and (min-width: 50em) and (max-width: 60em) { + .single-item.groups #buddypress #cover-image-container #item-header-cover-image #item-header-content { + max-width: 60% !important; + width: 60% !important; + } +} + +@media screen and (max-width: 64em) { + .single-item.groups #buddypress #cover-image-container #item-header-cover-image #item-actions { + border: 0; + clear: both; + margin-top: 0 !important; + max-width: 100% !important; + padding-top: 0 !important; + width: auto; + } + .single-item.groups #buddypress #cover-image-container #item-header-cover-image #item-actions h3 { + border-bottom: 1px solid #eaeaea; + } +} + +/** +*----------------------------------------------------- +* @subsection 6.1.2 - Item Header User Accounts +* +* User Accounts Specific Item Header +*----------------------------------------------------- +*/ +.bp-user #buddypress #item-header #item-header-avatar { + text-align: center; +} + +.bp-user #buddypress #item-header #item-header-avatar img.avatar, +.bp-user #buddypress #item-header #item-header-avatar a { + border-bottom: 0; + display: inline-block; + float: none; +} + +.bp-user #buddypress #item-header #item-header-cover-image .user-nicename { + color: inherit; + text-shadow: none; +} + +@media screen and (min-width: 800px) { + .bp-user #buddypress #item-header #item-header-cover-image .user-nicename { + color: #fff; + text-shadow: 0 0 3px rgba(0, 0, 0, 0.8); + } +} + +.bp-user #buddypress #item-header #item-header-content #item-buttons .generic-button { + margin-left: 5px; +} + +@media screen and (min-width: 650px) { + .bp-user #buddypress #item-header #item-header-avatar { + float: right; + } + .bp-user #buddypress #item-header #item-header-avatar a { + float: right; + } + .bp-user #buddypress #item-header #item-header-content { + float: left; + margin-left: 0%; + width: 69%; + } +} + +/** +*----------------------------------------------------------- +* @subsection 6.2 - Item Body: Global +*----------------------------------------------------------- +*/ +/** +*---------------------------------------------------- +* @subsection 6.2.1 - Item Body Groups +* +* Groups specific item body rules - screens +*---------------------------------------------------- +*/ +/** +*----------------------------------------- +* @subsection 6.2.1.1 - Group Management +*----------------------------------------- +*/ +.groups #group-settings-form h4 { + 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.9333333333rem; + 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 { + font-weight: bold; + padding: 0.2em; +} + +.groups.group-settings #group-settings-form div.radio label ul { + color: rgba(55, 55, 55, 0.6); + font-size: 14px; + font-size: 0.9333333333rem; +} + +.groups.group-avatar form > p { + margin-top: 25px; +} + +.groups.manage-members #group-settings-form .item-list li { + border-bottom: 1px solid #eaeaea; +} + +@media screen and (min-width: 650px) { + .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: 15px; + width: 100%; +} + +.groups.manage-members #group-settings-form .item-list li span.small a { + display: block; + margin: 5px 0; +} + +@media screen and (min-width: 650px) { + .groups.manage-members #group-settings-form .item-list li span.small a { + display: inline-block; + } +} + +.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%; +} + +.groups.group-members #subnav li #search-members-form { + float: left; + margin: 5px 0 0 0; +} + +.groups.group-members #subnav li #search-members-form label input[type="text"] { + box-shadow: none; +} + +/** +*----------------------------------------------------- +* @subsection 6.2.2 - Item Body User Accounts +* +* User Account specific component item body rules +*----------------------------------------------------- +*/ +/** +*-------------------------------------------- +* @subsection 6.2.2.1 - classes, pag, filters +*-------------------------------------------- +*/ +.bp-user #buddypress table th { + font-size: 13px; + font-size: 0.8666666667rem; +} + +.bp-user #buddypress table td { + font-size: 12px; + font-size: 0.8rem; +} + +@media screen and (min-width: 650px) { + .bp-user #buddypress table th { + font-size: 16px; + font-size: 1.0666666667rem; + } + .bp-user #buddypress table td { + font-size: 14px; + font-size: 0.9333333333rem; + } +} + +.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: 37.5em) { + .bp-user #buddypress .notifications-options-nav, + .bp-user #buddypress .messages-options-nav { + width: 60%; + } +} + +.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.9333333333rem; + outline: 0; + padding: 0; +} + +.bp-user #buddypress .notifications-options-nav select, +.bp-user #buddypress .messages-options-nav select { + float: right; + margin-left: 0; + width: 49%; +} + +@media screen and (min-width: 37.5em) { + .bp-user #buddypress .notifications-options-nav select, + .bp-user #buddypress .messages-options-nav select { + width: auto; + } +} + +.bp-user #buddypress .notifications-options-nav input, +.bp-user #buddypress .messages-options-nav input { + float: right; + font-family: inherit; + line-height: 20px; + margin-right: 1%; + width: 50%; +} + +@media screen and (min-width: 37.5em) { + .bp-user #buddypress .notifications-options-nav input, + .bp-user #buddypress .messages-options-nav input { + width: auto; + } +} + +.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 .bp-widget h4 { + background: #6f6f6f; + color: #fff; + margin-bottom: 0; + padding: 0.4em; +} + +.bp-user #buddypress .profile .bp-widget table { + margin-top: 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.2rem; +} + +.bp-user #buddypress .profile #profile-edit-form .field-visibility-settings-toggle { + margin: 5px 0 25px; +} + +.bp-user #buddypress .profile #profile-edit-form .field-visibility-settings-toggle, +.bp-user #buddypress .profile #profile-edit-form .field-visibility-settings { + font-size: 14px; + font-size: 0.9333333333rem; +} + +.bp-user #buddypress .profile #profile-edit-form .field-visibility-settings-close, +.bp-user #buddypress .profile #profile-edit-form .visibility-toggle-link { + background: #6f6f6f; + -webkit-border-radius: 2px; + -moz-border-radius: 2px; + -ms-border-radius: 2px; + border-radius: 2px; + background-clip: padding-box; + color: #eee; + font-weight: bold; + padding: 0.1em 0.5em; + text-decoration: none; +} + +.bp-user #buddypress .profile #profile-edit-form .field-visibility-settings-close:focus, .bp-user #buddypress .profile #profile-edit-form .field-visibility-settings-close:hover, +.bp-user #buddypress .profile #profile-edit-form .visibility-toggle-link:focus, +.bp-user #buddypress .profile #profile-edit-form .visibility-toggle-link:hover { + color: #fff; +} + +.bp-user #buddypress .profile .bp-avatar #bp-delete-avatar a { + font-size: inherit; +} + +/** + *------------------------------------------- + * @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-recipients .highlight { + font-size: 100%; +} + +.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: 46.25em) { + .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: 15px 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: #6f6f6f; +} + +.bp-user #buddypress #message-threads tr td { + background: #fff; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + 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: 1px solid #ccc; + 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.thread-star { + vertical-align: middle; +} + +.bp-user #buddypress #message-threads tr td.thread-star .message-action-star, +.bp-user #buddypress #message-threads tr td.thread-star .message-action-unstar { + line-height: 1.2; +} + +.bp-user #buddypress #message-threads tr td.thread-star span.icon:before { + font-size: 14px; + font-size: 0.9333333333rem; +} + +.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: 37.5em) { + .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.8rem; +} + +.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.8rem; + line-height: 1.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: 37.5em) { + .bp-user #buddypress #message-threads tr span.activity { + clear: both; + font-size: 11px; + font-size: 0.7333333333rem; + width: 100%; + } +} + +.bp-user #buddypress #message-threads tr.unread td { + border-color: #eaeaea; +} + +.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 #send_message_form input, +.bp-user #buddypress #send_message_form textarea { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +.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: #edf7fa; + border: inherit; + margin-left: 0; + padding: 0.5em; +} + +.bp-user #buddypress .acfb-holder li.friend-tab span.p { + padding-right: 15px; +} + +.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 tr { + margin: 3em 0; +} + +.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 a.button { + border: 1px solid #d4d0ba; + line-height: initial; + padding: 0.4em 0.3em; +} + +.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 { + line-height: 1; + padding-bottom: 1em; + 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: 15px; +} + +.bp-user .ac_results li { + margin: 15px 0; +} + +.bp-user .ac_results li:focus, .bp-user .ac_results li:hover { + cursor: pointer; +} + +.bp-user .ac_results li img { + vertical-align: bottom; +} + +/** + *------------------------------ + * @subsection 6.2.2.6 - Settings + *------------------------------ + */ +.bp-user #buddypress #settings-form > p { + font-size: 20px; + font-size: 1.3333333333rem; + margin: 25px 0 15px; +} + +.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: 46.25em) { + .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%; +} + +/** + *------------------------------------ + * @subsection 6.2.2.6 - Notifications + *------------------------------------ + */ +/** +*------------------------------------------------------------------------------- +* @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 { + border-width: 1px; + box-shadow: none; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + width: 100%; +} + +#buddypress div.activity-comments form .ac-textarea { + background: #f7f7f7; + border: 1px solid rgba(212, 208, 186, 0.5); +} + +#buddypress div.activity-comments form .ac-textarea textarea { + background: none; + border: 0; +} + +#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(212, 208, 186, 0.5); + border-width: 1px; +} + +#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: 15px 0; +} + +#buddypress div.dir-search form, +#buddypress div.message-search form, +#buddypress li.groups-members-search form { + border: 1px solid rgba(212, 208, 186, 0.6); + overflow: hidden; +} + +#buddypress div.dir-search form label, +#buddypress div.message-search form label, +#buddypress li.groups-members-search form label { + float: right; + width: 70%; +} + +#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; + border-radius: 0; + box-shadow: none; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + font-size: 14px; + font-size: 0.9333333333rem; + line-height: 1.8; + margin: 0; + min-height: 2rem; +} + +#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(212, 208, 186, 0.6); + float: right; + margin: 0; + padding: 0 0.2em 0; + width: 70%; +} + +#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'] { + float: left; + font-weight: normal; + padding: 0 1em; + text-align: center; + text-transform: none; + width: 30%; +} + +@media screen and (min-device-width: 450px) { + #buddypress div.dir-search, + #buddypress div.message-search, + #buddypress li.groups-members-search { + float: left; + margin-bottom: 5px !important; + } + #buddypress div.dir-search form label, + #buddypress div.dir-search form input[type='text'], + #buddypress div.dir-search form input[type='submit'], + #buddypress div.message-search form label, + #buddypress div.message-search form input[type='text'], + #buddypress div.message-search form input[type='submit'], + #buddypress li.groups-members-search form label, + #buddypress li.groups-members-search form input[type='text'], + #buddypress li.groups-members-search form input[type='submit'] { + width: auto; + } +} + +@media screen and (min-width: 800px) { + #buddypress .dir-search form input[type='text'], + #buddypress .message-search form input[type='text'] { + font-size: 16px; + font-size: 1.0666666667rem; + } + #buddypress .dir-search form input[type='submit'], + #buddypress .message-search form input[type='submit'] { + font-size: 16px; + font-size: 1.0666666667rem; + } +} + +/** +*------------------------------------------------------------------------------- +* @section 8.0 - Tables - General +*------------------------------------------------------------------------------- +*/ +.bp-user #buddypress table { + font-size: 14px; + font-size: 0.9333333333rem; + margin: 25px 0; +} + +.bp-user #buddypress table input { + margin: 0; +} + +.bp-user #buddypress table tr th { + background: #6f6f6f; + border-color: #b7b7b7; + color: #fff; + font-size: 16px; + font-size: 1.0666666667rem; + padding: 4px 8px; + text-transform: capitalize; +} + +.bp-user #buddypress table tr td { + padding: 8px; +} + +.bp-user #buddypress table p { + margin-bottom: 0.5em; +} + +@media screen and (min-width: 55em) { + .bp-user #buddypress table { + font-size: 16px; + font-size: 1.0666666667rem; + } +} + +.bp-user #buddypress .notifications th, +.bp-user #buddypress .messages-notices th { + width: 30%; +} + +.bp-user #buddypress .notifications th.bulk-select-all, +.bp-user #buddypress .messages-notices th.bulk-select-all { + text-align: center; + width: 10%; +} + +.bp-user #buddypress .notifications th.actions, +.bp-user #buddypress .messages-notices th.actions { + text-align: center; +} + +.bp-user #buddypress .notifications .bulk-select-check, +.bp-user #buddypress .notifications .thread-star, +.bp-user #buddypress .messages-notices .bulk-select-check, +.bp-user #buddypress .messages-notices .thread-star { + text-align: center; +} + +.bp-user #buddypress .notifications .notification-actions, +.bp-user #buddypress .notifications td.thread-options, +.bp-user #buddypress .messages-notices .notification-actions, +.bp-user #buddypress .messages-notices td.thread-options { + text-align: center; +} + +.bp-user #buddypress .notifications .notification-actions a, +.bp-user #buddypress .notifications td.thread-options a, +.bp-user #buddypress .messages-notices .notification-actions a, +.bp-user #buddypress .messages-notices td.thread-options a { + display: inline-block; + margin: 0; + padding: 0; +} + +.bp-user #buddypress .notifications td .button, +.bp-user #buddypress .messages-notices td .button { + border: 0; + display: block; + padding: 0; + text-align: center; +} + +/** +*------------------------------------------------------------------------------- +* @section 9.0 - Error / Success messages +*------------------------------------------------------------------------------- +*/ +#buddypress div#message p { + font-size: 18px; + font-size: 1.2rem; + font-weight: bold; +} + +#buddypress div#message.info p { + background: #c6e4ee; + border: 1px solid #78bed6; + color: #1e5264; +} + +#buddypress div#message.updated p { + background: #dee6b2; + border: 1px solid #becc66; + color: #454d19; +} + +.delete-group #buddypress div#message.info p { + background: #db7e7e; + border: 1px solid #be3535; + color: #1f0808; +} + +/** +*------------------------------------------------------------------------------- +* @section 10.0 - Ajax Loading, Widgets, General classes +*------------------------------------------------------------------------------- +*/ diff --git a/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/twentyten-rtl.min.css b/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/twentyten-rtl.min.css new file mode 100644 index 0000000000000000000000000000000000000000..77ef3c0f62926711dce628c6a92dc5aef31ac5d9 --- /dev/null +++ b/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/twentyten-rtl.min.css @@ -0,0 +1 @@ +@charset "UTF-8";.buddypress div.clear{display:none}body.page-template-onecolumn-page #main #container{margin:0}body.page-template-onecolumn-page #content{margin:0 10%;width:auto}body.page-template-onecolumn-page #content .entry-content,body.page-template-onecolumn-page #content .entry-header{width:auto}#buddypress div.item-list-tabs ul li.current a,#buddypress div.item-list-tabs ul li.selected a{background:inherit;opacity:1}#buddypress div.item-list-tabs ul{overflow:hidden;padding:0}#buddypress div.item-list-tabs ul li a:focus,#buddypress div.item-list-tabs ul li a:hover{color:#555}#buddypress div.item-list-tabs ul li a:visited{color:#21759b}#buddypress div.item-list-tabs ul li a span{padding:0 4px!important}#buddypress #object-nav ul{overflow:hidden}#buddypress #object-nav ul li{float:none}@media screen and (min-width:650px){#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;border-top:1px solid #d4d0ba;margin-top:5px;padding:0}#buddypress div#subnav.item-list-tabs ul li.last{background:#fff;float:left;margin-top:0;padding:5px 0;text-align:left;width:230px}#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;padding:0}#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:.9333333333rem}#buddypress div#subnav.item-list-tabs ul li.last select{font-style:italic}#buddypress div#subnav.item-list-tabs ul li.last select option{font-style:normal}#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}.bp-user #buddypress div#subnav.item-list-tabs li.last{margin-right:0;text-align:left}@media screen and (min-width:800px){body.bp-user #buddypress #item-body,body.bp-user #buddypress #item-header{background:#fff}body.bp-user #buddypress #object-nav{border-left:1px solid #ddd;float:right;margin-left:-1px;width:200px}body.bp-user #buddypress #object-nav ul{background:0 0;border-bottom:0;padding:0}body.bp-user #buddypress #object-nav ul li{float:none;margin-bottom:5px}body.bp-user #buddypress #object-nav ul li a{overflow:hidden}body.bp-user #buddypress #object-nav ul li.selected{background:#ddd}body.bp-user #buddypress #object-nav ul li span{background:#fff;border-radius:10%;float:left;margin-left:2px}body.bp-user #buddypress #item-body{border-right:1px solid #ddd;overflow:hidden;padding:0 25px 0 0;width:auto}body.bp-user #buddypress #item-body #subnav{margin:0 -25px 0 0}body.bp-user #buddypress #item-body #subnav ul{margin-top:0}}@media only screen and (min-device-width:375px){#main #buddypress #group-create-tabs.item-list-tabs ul:after,#main #buddypress #group-create-tabs.item-list-tabs ul:before{content:" ";display:table}#main #buddypress #group-create-tabs.item-list-tabs ul:after{clear:both}#main #buddypress #group-create-tabs.item-list-tabs ul{background:0 0;border:0;border-bottom:1px solid #ddd;overflow:visible;padding-bottom:0}#main #buddypress #group-create-tabs.item-list-tabs ul li{float:right;width:auto}#main #buddypress #group-create-tabs.item-list-tabs ul li.current,#main #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}#main #buddypress #group-create-tabs.item-list-tabs ul li.current a,#main #buddypress #group-create-tabs.item-list-tabs ul li.selected a{background:0 0;color:#373737;outline:0}#main #buddypress #subnav ul{border-bottom:0}}#buddypress div.pagination{box-shadow:none;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 #activity-stream li .activity-header a:visited,#buddypress ul.item-list li .item .item-title>a:visited{color:#21759b}#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 ul.item-list{border-top:0}#buddypress ul.item-list li{overflow:hidden!important}#buddypress ul.item-list li .item-avatar{margin-bottom:15px;text-align:center}@media only screen and (min-device-width:375px){#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:15px}@media only screen and (min-device-width:450px){#buddypress ul.item-list li .item-avatar img.avatar{display:block;float:right;opacity:1}}#buddypress ul.item-list li .item{margin-right:0;overflow:hidden}#buddypress ul.item-list li .item .item-meta{text-align:center}@media screen and (min-width:650px){#buddypress ul.item-list li .item .item-meta{text-align:right}}#buddypress ul.item-list li .item .item-desc{margin-right:0;width:94%}#buddypress ul.item-list li .item .item-title{font-size:16px;font-size:1.0666666667rem;line-height:1.2;text-align:center;width:100%}@media screen and (min-device-width:450px){#buddypress ul.item-list li .item .item-title{text-align:right}}#buddypress ul.item-list li .item .item-title>a{text-decoration:none}#buddypress ul.item-list li .item .item-title .update{display:block;font-size:12px;font-size:.8rem;padding:15px 0;text-align:right}@media screen and (min-width:650px){#buddypress ul.item-list li .item .item-title .update{font-size:14px;font-size:.9333333333rem}#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:18px;font-size:1.2rem}}#buddypress ul.item-list li div.action{clear:right;float:none;margin:0;padding:15px 0 5px;position:relative;text-align:right;top:0}@media screen and (min-width:650px){#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:5px 0;width:100%}#buddypress #activity-stream li.load-newest a,#buddypress ul.item-list li div.action div a{display:block}@media only screen and (min-device-width:375px){#buddypress ul.item-list li div.action div{margin:0 0 5px 15px;width:auto}}@media screen and (min-width:650px){#buddypress ul.item-list li div.action div{clear:left;float:left;margin:0 0 15px}}#buddypress form#whats-new-form p.activity-greeting{line-height:1.4}#buddypress form#whats-new-form #whats-new-content.active #whats-new-options[style] #whats-new-post-in-box{border:1px solid rgba(212,208,186,.5);float:right;font-size:12px;font-size:.8rem;line-height:1.6;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;max-width:220px;min-height:1.5em;padding:0 .4em 0 0}@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{font-size:12px;font-size:.8rem;float:left}#buddypress form#whats-new-form #whats-new-content.active #whats-new-options[style] #whats-new-submit input{padding:0 6px}}#buddypress #item-body form#whats-new-form{margin:50px 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:25px;margin-right:0;width:60px}#buddypress #activity-stream li .activity-comments,#buddypress #activity-stream li .activity-content{margin-right:0}#buddypress #activity-stream li .activity-header{font-size:14px;font-size:.9333333333rem}#buddypress #activity-stream li .activity-inner img{height:auto}@media screen and (min-width:650px){#buddypress #activity-stream li .activity-avatar{float:right;margin-left:15px;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:1.0666666667rem}#buddypress #activity-stream li .activity-comments{margin-right:70px}}#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:.9333333333rem}#buddypress #activity-stream li.mini .activity-content .activity-meta a{font-size:12px;font-size:.8rem}#buddypress #activity-stream .activity-content{margin-top:-12px}#buddypress #activity-stream .activity-content .activity-header{line-height:inherit;margin-left:0}#buddypress #activity-stream .activity-content .activity-header p{border-bottom:1px solid rgba(234,234,234,.6);margin-top:0;padding:0 .2em}#buddypress #activity-stream .activity-content .activity-header img.avatar{display:inline-block;margin-bottom:0!important}#buddypress #activity-stream .activity-content .activity-meta a{display:block;font-size:14px;font-size:.9333333333rem;margin-bottom:5px;padding:.2em .5em}@media screen and (min-width:650px){#buddypress #activity-stream .activity-content .activity-meta a{float:right;margin-bottom:0}}#buddypress #activity-stream .load-more{background:#f7f7f7;border:1px solid transparent;padding:15px}.activity-permalink #buddypress #activity-stream li.activity-item,.activity-permalink #buddypress #activity-stream li.mini .activity-header p{padding:25px}#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:1.0666666667rem;margin-bottom:50px}@media screen and (min-width:650px){.activity-permalink #buddypress #activity-stream li.mini .activity-header{font-size:20px;font-size:1.3333333333rem}#buddypress #members-list li .item,#buddypress #members-list li .item-avatar{float:right}#buddypress #members-list li .action{float:left}}.activity-permalink #buddypress #activity-stream .activity-comments{margin-right:0}#buddypress #activity-stream .activity-comments{position:relative}#buddypress #activity-stream .activity-comments>ul{background:rgba(247,247,247,.6);margin:15px 2px 0 0}#buddypress #activity-stream .activity-comments>ul>li:hover *{color:#555}#buddypress #activity-stream .activity-comments>ul>li .acomment-content,#buddypress #activity-stream .activity-comments>ul>li .acomment-meta{font-size:12px;font-size:.8rem}#buddypress #activity-stream .activity-comments .ac-form{border:1px solid #d4d0ba;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:15px 0;width:100%}#buddypress #activity-stream .activity-comments .ac-form .ac-reply-cancel,#buddypress #activity-stream .activity-comments .ac-form input[type=submit]{color:rgba(55,55,55,.8);display:inline-block;font-family:inherit;font-size:12px;font-size:.8rem;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(212,208,186,.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}#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:37.5em){#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%}#buddypress #signup_form.standard-form #profile-details-section{float:left}#buddypress #signup_form.standard-form #basic-details-section{float:right}}.bp-user #buddypress a:visited{color:#21759b}.bp-user #buddypress #item-header-content #item-meta,.single-item.groups #buddypress #item-header-content #item-meta{font-size:14px;font-size:.9333333333rem;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:37.5em){.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%}.bp-user #buddypress #item-header-content .user-nicename,.single-item.groups #buddypress #item-header-content .user-nicename{color:#555}}@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}.single-item.groups #buddypress #item-header #item-meta{margin-bottom:25px}}@media screen and (max-width:50em){.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{border-bottom:0}.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 h3{border-bottom:1px solid #eaeaea;text-align:center}}.single-item.groups #buddypress div#item-header{padding-bottom:50px}.single-item.groups #buddypress div#item-header #item-header-content{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.single-item.groups #buddypress div#item-header div#item-actions{margin:0!important;width:100%}@media screen and (min-width:50em){.single-item.groups #buddypress div#item-header div#item-actions{border-right:1px solid #eaeaea;clear:none;float:left;padding-right:.2em;width:30%}}@media screen and (min-width:46.25em){.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 h3{font-size:14px;font-size:.9333333333rem;font-weight:700;line-height:1.4}.single-item.groups #buddypress div#item-header div#item-actions #group-admins li,.single-item.groups #buddypress div#item-header div#item-actions #group-mods li{margin:0}@media screen and (min-width:650px){.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-content{margin-right:2%;padding:0 .5em}.single-item.groups #buddypress div#item-header div#item-actions{float:left;width:28%}}@media screen and (min-width:64em){.single-item.groups #buddypress div#item-header #item-header-content{width:40%}}.single-item.groups #buddypress #cover-image-container #item-header-cover-image #item-actions{margin-top:225px!important}@media screen and (min-width:50em) and (max-width:60em){.single-item.groups #buddypress #cover-image-container #item-header-cover-image #item-header-content{max-width:60%!important;width:60%!important}}@media screen and (max-width:64em){.single-item.groups #buddypress #cover-image-container #item-header-cover-image #item-actions{border:0;clear:both;margin-top:0!important;max-width:100%!important;padding-top:0!important;width:auto}.single-item.groups #buddypress #cover-image-container #item-header-cover-image #item-actions h3{border-bottom:1px solid #eaeaea}}.bp-user #buddypress #item-header #item-header-avatar{text-align:center}.bp-user #buddypress #item-header #item-header-avatar a,.bp-user #buddypress #item-header #item-header-avatar img.avatar{border-bottom:0;display:inline-block;float:none}.bp-user #buddypress #item-header #item-header-cover-image .user-nicename{color:inherit;text-shadow:none}@media screen and (min-width:800px){.bp-user #buddypress #item-header #item-header-cover-image .user-nicename{color:#fff;text-shadow:0 0 3px rgba(0,0,0,.8)}}.bp-user #buddypress #item-header #item-header-content #item-buttons .generic-button{margin-left:5px}@media screen and (min-width:650px){.bp-user #buddypress #item-header #item-header-avatar,.bp-user #buddypress #item-header #item-header-avatar a{float:right}.bp-user #buddypress #item-header #item-header-content{float:left;margin-left:0;width:69%}.groups.manage-members #group-settings-form .item-list li h5,.groups.manage-members #group-settings-form .item-list li img{float:right}}.groups #group-settings-form h4{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:.9333333333rem;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{font-weight:700;padding:.2em}.groups.group-settings #group-settings-form div.radio label ul{color:rgba(55,55,55,.6);font-size:14px;font-size:.9333333333rem}.groups.group-avatar form>p{margin-top:25px}.groups.manage-members #group-settings-form .item-list li{border-bottom:1px solid #eaeaea}.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 span.small{clear:right;display:block;float:none;margin-top:15px;width:100%}.groups.manage-members #group-settings-form .item-list li span.small a{display:block;margin:5px 0}.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}.groups.group-members #subnav li #search-members-form label input[type=text]{box-shadow:none}.bp-user #buddypress table th{font-size:13px;font-size:.8666666667rem}.bp-user #buddypress table td{font-size:12px;font-size:.8rem}@media screen and (min-width:650px){.groups.manage-members #group-settings-form .item-list li span.small a{display:inline-block}.bp-user #buddypress table th{font-size:16px;font-size:1.0666666667rem}.bp-user #buddypress table td{font-size:14px;font-size:.9333333333rem}}.bp-user #buddypress .messages-options-nav,.bp-user #buddypress .notifications-options-nav{float:right;width:100%}@media screen and (min-width:37.5em){.bp-user #buddypress .messages-options-nav,.bp-user #buddypress .notifications-options-nav{width:60%}}.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:.9333333333rem;outline:0;padding:0}.bp-user #buddypress .messages-options-nav select,.bp-user #buddypress .notifications-options-nav select{float:right;margin-left:0;width:49%}@media screen and (min-width:37.5em){.bp-user #buddypress .messages-options-nav select,.bp-user #buddypress .notifications-options-nav select{width:auto}}.bp-user #buddypress .messages-options-nav input,.bp-user #buddypress .notifications-options-nav input{float:right;font-family:inherit;line-height:20px;margin-right:1%;width:50%}@media screen and (min-width:37.5em){.bp-user #buddypress .messages-options-nav input,.bp-user #buddypress .notifications-options-nav input{width:auto}}.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 .bp-widget h4{background:#6f6f6f;color:#fff;margin-bottom:0;padding:.4em}.bp-user #buddypress .profile .bp-widget table{margin-top:0}.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.2rem}.bp-user #buddypress .profile #profile-edit-form .field-visibility-settings-toggle{margin:5px 0 25px}.bp-user #buddypress .profile #profile-edit-form .field-visibility-settings,.bp-user #buddypress .profile #profile-edit-form .field-visibility-settings-toggle{font-size:14px;font-size:.9333333333rem}.bp-user #buddypress .profile #profile-edit-form .field-visibility-settings-close,.bp-user #buddypress .profile #profile-edit-form .visibility-toggle-link{background:#6f6f6f;-webkit-border-radius:2px;-moz-border-radius:2px;-ms-border-radius:2px;border-radius:2px;background-clip:padding-box;color:#eee;font-weight:700;padding:.1em .5em;text-decoration:none}.bp-user #buddypress .profile #profile-edit-form .field-visibility-settings-close:focus,.bp-user #buddypress .profile #profile-edit-form .field-visibility-settings-close:hover,.bp-user #buddypress .profile #profile-edit-form .visibility-toggle-link:focus,.bp-user #buddypress .profile #profile-edit-form .visibility-toggle-link:hover{color:#fff}.bp-user #buddypress .profile .bp-avatar #bp-delete-avatar a{font-size:inherit}.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-recipients .highlight{font-size:100%}.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:46.25em){.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:15px 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:#6f6f6f}.bp-user #buddypress #message-threads tr td{background:#fff;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;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:1px solid #ccc;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.thread-star{vertical-align:middle}.bp-user #buddypress #message-threads tr td.thread-star .message-action-star,.bp-user #buddypress #message-threads tr td.thread-star .message-action-unstar{line-height:1.2}.bp-user #buddypress #message-threads tr td.thread-star span.icon:before{font-size:14px;font-size:.9333333333rem}.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:.8rem}.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:.8rem;line-height:1.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:37.5em){.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:.7333333333rem;width:100%}}.bp-user #buddypress #message-threads tr.unread td{border-color:#eaeaea}.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 #send_message_form input,.bp-user #buddypress #send_message_form textarea{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.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:#edf7fa;border:inherit;margin-left:0;padding:.5em}.bp-user #buddypress .acfb-holder li.friend-tab span.p{padding-right:15px}.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 tr{margin:3em 0}.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 a.button{border:1px solid #d4d0ba;line-height:initial;padding:.4em .3em}.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{line-height:1;padding-bottom:1em;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:15px}.bp-user .ac_results li{margin:15px 0}.bp-user .ac_results li:focus,.bp-user .ac_results li:hover{cursor:pointer}.bp-user .ac_results li img{vertical-align:bottom}.bp-user #buddypress #settings-form>p{font-size:20px;font-size:1.3333333333rem;margin:25px 0 15px}.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:46.25em){.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%}.bp-user #buddypress table.profile-settings td.field-visibility select{width:100%}#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{border-width:1px;box-shadow:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;width:100%}#buddypress div.activity-comments form .ac-textarea{background:#f7f7f7;border:1px solid rgba(212,208,186,.5)}#buddypress div.activity-comments form .ac-textarea textarea{background:0 0;border:0}#buddypress .standard-form button,#buddypress .standard-form input[type=password],#buddypress .standard-form input[type=text],#buddypress .standard-form input[type=email],#buddypress .standard-form select,#buddypress .standard-form textarea{border-color:rgba(212,208,186,.5);border-width:1px}#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:15px 0}#buddypress div.dir-search form,#buddypress div.message-search form,#buddypress li.groups-members-search form{border:1px solid rgba(212,208,186,.6);overflow:hidden}#buddypress div.dir-search form label,#buddypress div.message-search form label,#buddypress li.groups-members-search form label{float:right;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;border-radius:0;box-shadow:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;font-size:14px;font-size:.9333333333rem;line-height:1.8;margin:0;min-height:2rem}#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(212,208,186,.6);float:right;margin:0;padding:0 .2em;width:70%}#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]{float:left;font-weight:400;padding:0 1em;text-align:center;text-transform:none;width:30%}@media screen and (min-device-width:450px){#buddypress div.dir-search,#buddypress div.message-search,#buddypress li.groups-members-search{float:left;margin-bottom:5px!important}#buddypress div.dir-search form input[type=submit],#buddypress div.dir-search form input[type=text],#buddypress div.dir-search form label,#buddypress div.message-search form input[type=submit],#buddypress div.message-search form input[type=text],#buddypress div.message-search form label,#buddypress li.groups-members-search form input[type=submit],#buddypress li.groups-members-search form input[type=text],#buddypress li.groups-members-search form label{width:auto}}@media screen and (min-width:800px){#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]{font-size:16px;font-size:1.0666666667rem}}.bp-user #buddypress table{font-size:14px;font-size:.9333333333rem;margin:25px 0}.bp-user #buddypress table input{margin:0}.bp-user #buddypress table tr th{background:#6f6f6f;border-color:#b7b7b7;color:#fff;font-size:16px;font-size:1.0666666667rem;padding:4px 8px;text-transform:capitalize}.bp-user #buddypress table tr td{padding:8px}.bp-user #buddypress table p{margin-bottom:.5em}@media screen and (min-width:55em){.bp-user #buddypress table{font-size:16px;font-size:1.0666666667rem}}.bp-user #buddypress .messages-notices th,.bp-user #buddypress .notifications th{width:30%}.bp-user #buddypress .messages-notices th.bulk-select-all,.bp-user #buddypress .notifications th.bulk-select-all{text-align:center;width:10%}.bp-user #buddypress .messages-notices .bulk-select-check,.bp-user #buddypress .messages-notices .notification-actions,.bp-user #buddypress .messages-notices .thread-star,.bp-user #buddypress .messages-notices td.thread-options,.bp-user #buddypress .messages-notices th.actions,.bp-user #buddypress .notifications .bulk-select-check,.bp-user #buddypress .notifications .notification-actions,.bp-user #buddypress .notifications .thread-star,.bp-user #buddypress .notifications td.thread-options,.bp-user #buddypress .notifications th.actions{text-align:center}.bp-user #buddypress .messages-notices .notification-actions a,.bp-user #buddypress .messages-notices td.thread-options a,.bp-user #buddypress .notifications .notification-actions a,.bp-user #buddypress .notifications td.thread-options a{display:inline-block;margin:0;padding:0}.bp-user #buddypress .messages-notices td .button,.bp-user #buddypress .notifications td .button{border:0;display:block;padding:0;text-align:center}#buddypress div#message p{font-size:18px;font-size:1.2rem;font-weight:700}#buddypress div#message.info p{background:#c6e4ee;border:1px solid #78bed6;color:#1e5264}#buddypress div#message.updated p{background:#dee6b2;border:1px solid #becc66;color:#454d19}.delete-group #buddypress div#message.info p{background:#db7e7e;border:1px solid #be3535;color:#1f0808} \ No newline at end of file diff --git a/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/twentyten.css b/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/twentyten.css new file mode 100644 index 0000000000000000000000000000000000000000..1b7e99c323a347c113764a816d3611f584e09ec9 --- /dev/null +++ b/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/twentyten.css @@ -0,0 +1,1976 @@ +@charset "UTF-8"; +/*-------------------------------------------------------------- + +This is the BuddyPress companion stylesheet for +the WordPress Twentyten theme. + +This sheet supports the primary BuddyPress styles in buddypress.css + +If you are running as a child theme of twentyten 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 + 6.2.2.7 - Notifications +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; +} + +body.page-template-onecolumn-page #main #container { + margin: 0; +} + +body.page-template-onecolumn-page #content { + margin: 0 10% 0; + width: auto; +} + +body.page-template-onecolumn-page #content .entry-header, +body.page-template-onecolumn-page #content .entry-content { + width: auto; +} + +/** +*------------------------------------------------------------------------------- +* @section 2.0 - Navigation - General +*------------------------------------------------------------------------------- +*/ +/** +*---------------------------------------------------------- +* @section 2.1 - Navs Object Nav / Sub Nav (item-list-tabs) +* +* The main navigational elements for all BP screens +*---------------------------------------------------------- +*/ +/* Here we start things off */ +#buddypress div.item-list-tabs ul li.selected a, +#buddypress div.item-list-tabs ul li.current a { + background: inherit; + opacity: 1; +} + +#buddypress div.item-list-tabs ul { + overflow: hidden; + padding: 0; +} + +#buddypress div.item-list-tabs ul li a:focus, #buddypress div.item-list-tabs ul li a:hover { + color: #555; +} + +#buddypress div.item-list-tabs ul li a:visited { + color: #21759b; +} + +#buddypress div.item-list-tabs ul li a span { + padding: 0 4px !important; +} + +/*__ Horizontal menus __*/ +#buddypress #object-nav ul { + overflow: hidden; +} + +#buddypress #object-nav ul li { + float: none; +} + +@media screen and (min-width: 650px) { + #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; + border-top: 1px solid #d4d0ba; + margin-top: 5px; + padding: 0; +} + +#buddypress div#subnav.item-list-tabs ul li.last { + background: #fff; + float: right; + margin-top: 0; + padding: 5px 0 5px; + text-align: right; + width: 230px; +} + +#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; + padding: 0; +} + +#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.9333333333rem; +} + +#buddypress div#subnav.item-list-tabs ul li.last select { + font-style: italic; +} + +#buddypress div#subnav.item-list-tabs ul li.last select option { + font-style: normal; +} + +.bp-user #buddypress div#subnav.item-list-tabs li.last { + margin-left: 0; + text-align: right; +} + +/*__ Vertical menu User Account / Group single screens __*/ +@media screen and (min-width: 800px) { + body.bp-user #buddypress #item-header, + body.bp-user #buddypress #item-body { + background: #fff; + } + body.bp-user #buddypress #object-nav { + border-right: 1px solid #ddd; + float: left; + margin-right: -1px; + width: 200px; + } + body.bp-user #buddypress #object-nav ul { + background: none; + border-bottom: 0; + padding: 0; + } + body.bp-user #buddypress #object-nav ul li { + float: none; + margin-bottom: 5px; + } + body.bp-user #buddypress #object-nav ul li a { + overflow: hidden; + } + body.bp-user #buddypress #object-nav ul li.selected { + background: #ddd; + } + body.bp-user #buddypress #object-nav ul li span { + background: #fff; + border-radius: 10%; + float: right; + margin-right: 2px; + } + body.bp-user #buddypress #item-body { + border-left: 1px solid #ddd; + overflow: hidden; + padding: 0 0 0 25px; + width: auto; + } + body.bp-user #buddypress #item-body #subnav { + margin: 0 0 0 -25px; + } + body.bp-user #buddypress #item-body #subnav ul { + margin-top: 0; + } +} + +@media only screen and (min-device-width: 375px) { + #main #buddypress #group-create-tabs.item-list-tabs ul:before, + #main #buddypress #group-create-tabs.item-list-tabs ul:after { + content: " "; + display: table; + } + #main #buddypress #group-create-tabs.item-list-tabs ul:after { + clear: both; + } + #main #buddypress #group-create-tabs.item-list-tabs ul { + background: none; + border: 0; + border-bottom: 1px solid #ddd; + overflow: visible; + padding-bottom: 0; + } + #main #buddypress #group-create-tabs.item-list-tabs ul li { + float: left; + width: auto; + } + #main #buddypress #group-create-tabs.item-list-tabs ul li.selected, + #main #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; + } + #main #buddypress #group-create-tabs.item-list-tabs ul li.selected a, + #main #buddypress #group-create-tabs.item-list-tabs ul li.current a { + background: none; + color: #373737; + outline: none; + } + #main #buddypress #subnav ul { + border-bottom: 0; + } +} + +/** +*---------------------------------------------------------- +* @section 2.2 - Pagination +*---------------------------------------------------------- +*/ +#buddypress div.pagination { + box-shadow: none; + 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 ul.item-list { + border-top: 0; +} + +#buddypress ul.item-list li { + overflow: hidden !important; +} + +#buddypress ul.item-list li .item-avatar { + margin-bottom: 15px; + text-align: center; +} + +@media only screen and (min-device-width: 375px) { + #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: 15px; +} + +@media only screen and (min-device-width: 450px) { + #buddypress ul.item-list li .item-avatar img.avatar { + display: block; + float: left; + opacity: 1; + } +} + +#buddypress ul.item-list li .item { + margin-left: 0; + overflow: hidden; +} + +#buddypress ul.item-list li .item .item-meta { + text-align: center; +} + +@media screen and (min-width: 650px) { + #buddypress ul.item-list li .item .item-meta { + text-align: left; + } +} + +#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: 16px; + font-size: 1.0666666667rem; + line-height: 1.2; + text-align: center; + width: 100%; +} + +@media screen and (min-device-width: 450px) { + #buddypress ul.item-list li .item .item-title { + text-align: left; + } +} + +#buddypress ul.item-list li .item .item-title > a { + text-decoration: none; +} + +#buddypress ul.item-list li .item .item-title > a:visited { + color: #21759b; +} + +#buddypress ul.item-list li .item .item-title .update { + display: block; + font-size: 12px; + font-size: 0.8rem; + padding: 15px 0; + text-align: left; +} + +@media screen and (min-width: 650px) { + #buddypress ul.item-list li .item .item-title .update { + font-size: 14px; + font-size: 0.9333333333rem; + } +} + +@media screen and (min-width: 650px) { + #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: 18px; + font-size: 1.2rem; + } +} + +#buddypress ul.item-list li div.action { + clear: left; + float: none; + margin: 0; + margin-left: 0; + padding: 15px 0 5px; + position: relative; + text-align: left; + top: 0; +} + +@media screen and (min-width: 650px) { + #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: 5px 0; + width: 100%; +} + +#buddypress ul.item-list li div.action div a { + display: block; +} + +@media only screen and (min-device-width: 375px) { + #buddypress ul.item-list li div.action div { + margin: 0 15px 5px 0; + width: auto; + } +} + +@media screen and (min-width: 650px) { + #buddypress ul.item-list li div.action div { + clear: right; + float: right; + margin: 0 0 15px 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; +} + +#buddypress form#whats-new-form #whats-new-content.active #whats-new-options[style] #whats-new-post-in-box { + border: 1px solid rgba(212, 208, 186, 0.5); + float: left; + font-size: 12px; + font-size: 0.8rem; + line-height: 1.6; + 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; + max-width: 220px; + min-height: 1.5em; + padding: 0 0 0 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 { + font-size: 12px; + font-size: 0.8rem; + float: right; + } + #buddypress form#whats-new-form #whats-new-content.active #whats-new-options[style] #whats-new-submit input { + padding: 0 6px; + } +} + +#buddypress #item-body form#whats-new-form { + margin: 50px 0; +} + +/** +*----------------------------------------------------- +* @section 4.1.2 - Activity Listing +*----------------------------------------------------- +*/ +#buddypress #activity-stream li { + padding: 25px 0 15px; +} + +#buddypress #activity-stream li.load-newest a { + display: block; +} + +#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: 25px; + margin-left: 0; + width: 60px; +} + +#buddypress #activity-stream li .activity-content, +#buddypress #activity-stream li .activity-comments { + margin-left: 0; +} + +#buddypress #activity-stream li .activity-header { + font-size: 14px; + font-size: 0.9333333333rem; +} + +#buddypress #activity-stream li .activity-header a:visited { + color: #21759b; +} + +#buddypress #activity-stream li .activity-inner img { + height: auto; +} + +@media screen and (min-width: 650px) { + #buddypress #activity-stream li .activity-avatar { + float: left; + margin-right: 15px; + 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: 1.0666666667rem; + } + #buddypress #activity-stream li .activity-comments { + margin-left: 70px; + } +} + +#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.9333333333rem; +} + +#buddypress #activity-stream li.mini .activity-content .activity-meta a { + font-size: 12px; + font-size: 0.8rem; +} + +#buddypress #activity-stream .activity-content { + margin-top: -12px; +} + +#buddypress #activity-stream .activity-content .activity-header { + line-height: inherit; + margin-right: 0; +} + +#buddypress #activity-stream .activity-content .activity-header p { + border-bottom: 1px solid rgba(234, 234, 234, 0.6); + margin-top: 0; + padding: 0 0.2em; +} + +#buddypress #activity-stream .activity-content .activity-header img.avatar { + display: inline-block; + margin-bottom: 0 !important; +} + +#buddypress #activity-stream .activity-content .activity-meta a { + display: block; + font-size: 14px; + font-size: 0.9333333333rem; + margin-bottom: 5px; + padding: 0.2em 0.5em; +} + +@media screen and (min-width: 650px) { + #buddypress #activity-stream .activity-content .activity-meta a { + float: left; + margin-bottom: 0; + } +} + +#buddypress #activity-stream .load-more { + background: #f7f7f7; + border: 1px solid transparent; + padding: 15px; +} + +#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 a { + display: block; +} + +/* Single activity view - activity permalink */ +.activity-permalink #buddypress #activity-stream li.activity-item { + padding: 25px; +} + +.activity-permalink #buddypress #activity-stream li.mini .activity-header { + font-size: 16px; + font-size: 1.0666666667rem; + margin-bottom: 50px; +} + +@media screen and (min-width: 650px) { + .activity-permalink #buddypress #activity-stream li.mini .activity-header { + font-size: 20px; + font-size: 1.3333333333rem; + } +} + +.activity-permalink #buddypress #activity-stream li.mini .activity-header p { + padding: 25px; +} + +.activity-permalink #buddypress #activity-stream .activity-comments { + margin-left: 0; +} + +/** +*----------------------------------------------------- +* @section 4.1.3 - Activity Comments +*----------------------------------------------------- +*/ +#buddypress #activity-stream .activity-comments { + position: relative; +} + +#buddypress #activity-stream .activity-comments > ul { + background: rgba(247, 247, 247, 0.6); + margin: 15px 0 0 2px; +} + +#buddypress #activity-stream .activity-comments > ul > li:hover * { + color: #555; +} + +#buddypress #activity-stream .activity-comments > ul > li .acomment-meta, +#buddypress #activity-stream .activity-comments > ul > li .acomment-content { + font-size: 12px; + font-size: 0.8rem; +} + +#buddypress #activity-stream .activity-comments .ac-form { + border: 1px solid #d4d0ba; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + margin: 15px 0; + width: 100%; +} + +#buddypress #activity-stream .activity-comments .ac-form input[type="submit"], +#buddypress #activity-stream .activity-comments .ac-form .ac-reply-cancel { + color: rgba(55, 55, 55, 0.8); + display: inline-block; + font-family: inherit; + font-size: 12px; + font-size: 0.8rem; + 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(212, 208, 186, 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: 650px) { + #buddypress #members-list li .item-avatar, + #buddypress #members-list li .item { + float: left; + } + #buddypress #members-list li .action { + float: right; + } +} + +/** +*------------------------------------------------------------------------------- +* @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: 37.5em) { + #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: 37.5em) { + #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 +*------------------------------------------------------------------------------- +*/ +.bp-user #buddypress a:visited { + color: #21759b; +} + +/** +*----------------------------------------------------------- +* @subsection 6.1 - Item Header Global +*----------------------------------------------------------- +*/ +.bp-user #buddypress #item-header-content #item-meta, +.single-item.groups #buddypress #item-header-content #item-meta { + font-size: 14px; + font-size: 0.9333333333rem; + 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: 37.5em) { + .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 main header.entry-header, + .single-item.groups main header.entry-header { + padding-bottom: 1rem; + } +} + +@media screen and (max-width: 37.5em) { + .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%; + } + .bp-user #buddypress #item-header-content .user-nicename, + .single-item.groups #buddypress #item-header-content .user-nicename { + color: #555; + } +} + +@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; + } +} + +/** +*----------------------------------------------------- +* @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: 25px; + } +} + +@media screen and (max-width: 50em) { + .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 { + border-bottom: 0; + } + .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 h3 { + border-bottom: 1px solid #eaeaea; + text-align: center; + } +} + +.single-item.groups #buddypress div#item-header { + padding-bottom: 50px; +} + +.single-item.groups #buddypress div#item-header #item-header-content { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +.single-item.groups #buddypress div#item-header div#item-actions { + margin: 0 !important; + width: 100%; +} + +@media screen and (min-width: 50em) { + .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: 46.25em) { + .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 h3 { + font-size: 14px; + font-size: 0.9333333333rem; + font-weight: bold; + line-height: 1.4; +} + +.single-item.groups #buddypress div#item-header div#item-actions #group-admins li, +.single-item.groups #buddypress div#item-header div#item-actions #group-mods li { + margin: 0; +} + +@media screen and (min-width: 650px) { + .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-content { + margin-left: 2%; + padding: 0 0.5em; + } + .single-item.groups #buddypress div#item-header div#item-actions { + float: right; + width: 28%; + } +} + +@media screen and (min-width: 64em) { + .single-item.groups #buddypress div#item-header #item-header-content { + width: 40%; + } +} + +.single-item.groups #buddypress #cover-image-container #item-header-cover-image #item-actions { + margin-top: 225px !important; +} + +@media screen and (min-width: 50em) and (max-width: 60em) { + .single-item.groups #buddypress #cover-image-container #item-header-cover-image #item-header-content { + max-width: 60% !important; + width: 60% !important; + } +} + +@media screen and (max-width: 64em) { + .single-item.groups #buddypress #cover-image-container #item-header-cover-image #item-actions { + border: 0; + clear: both; + margin-top: 0 !important; + max-width: 100% !important; + padding-top: 0 !important; + width: auto; + } + .single-item.groups #buddypress #cover-image-container #item-header-cover-image #item-actions h3 { + border-bottom: 1px solid #eaeaea; + } +} + +/** +*----------------------------------------------------- +* @subsection 6.1.2 - Item Header User Accounts +* +* User Accounts Specific Item Header +*----------------------------------------------------- +*/ +.bp-user #buddypress #item-header #item-header-avatar { + text-align: center; +} + +.bp-user #buddypress #item-header #item-header-avatar img.avatar, +.bp-user #buddypress #item-header #item-header-avatar a { + border-bottom: 0; + display: inline-block; + float: none; +} + +.bp-user #buddypress #item-header #item-header-cover-image .user-nicename { + color: inherit; + text-shadow: none; +} + +@media screen and (min-width: 800px) { + .bp-user #buddypress #item-header #item-header-cover-image .user-nicename { + color: #fff; + text-shadow: 0 0 3px rgba(0, 0, 0, 0.8); + } +} + +.bp-user #buddypress #item-header #item-header-content #item-buttons .generic-button { + margin-right: 5px; +} + +@media screen and (min-width: 650px) { + .bp-user #buddypress #item-header #item-header-avatar { + float: left; + } + .bp-user #buddypress #item-header #item-header-avatar a { + float: left; + } + .bp-user #buddypress #item-header #item-header-content { + float: right; + margin-right: 0%; + width: 69%; + } +} + +/** +*----------------------------------------------------------- +* @subsection 6.2 - Item Body: Global +*----------------------------------------------------------- +*/ +/** +*---------------------------------------------------- +* @subsection 6.2.1 - Item Body Groups +* +* Groups specific item body rules - screens +*---------------------------------------------------- +*/ +/** +*----------------------------------------- +* @subsection 6.2.1.1 - Group Management +*----------------------------------------- +*/ +.groups #group-settings-form h4 { + 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.9333333333rem; + 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 { + font-weight: bold; + padding: 0.2em; +} + +.groups.group-settings #group-settings-form div.radio label ul { + color: rgba(55, 55, 55, 0.6); + font-size: 14px; + font-size: 0.9333333333rem; +} + +.groups.group-avatar form > p { + margin-top: 25px; +} + +.groups.manage-members #group-settings-form .item-list li { + border-bottom: 1px solid #eaeaea; +} + +@media screen and (min-width: 650px) { + .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: 15px; + width: 100%; +} + +.groups.manage-members #group-settings-form .item-list li span.small a { + display: block; + margin: 5px 0; +} + +@media screen and (min-width: 650px) { + .groups.manage-members #group-settings-form .item-list li span.small a { + display: inline-block; + } +} + +.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%; +} + +.groups.group-members #subnav li #search-members-form { + float: right; + margin: 5px 0 0 0; +} + +.groups.group-members #subnav li #search-members-form label input[type="text"] { + box-shadow: none; +} + +/** +*----------------------------------------------------- +* @subsection 6.2.2 - Item Body User Accounts +* +* User Account specific component item body rules +*----------------------------------------------------- +*/ +/** +*-------------------------------------------- +* @subsection 6.2.2.1 - classes, pag, filters +*-------------------------------------------- +*/ +.bp-user #buddypress table th { + font-size: 13px; + font-size: 0.8666666667rem; +} + +.bp-user #buddypress table td { + font-size: 12px; + font-size: 0.8rem; +} + +@media screen and (min-width: 650px) { + .bp-user #buddypress table th { + font-size: 16px; + font-size: 1.0666666667rem; + } + .bp-user #buddypress table td { + font-size: 14px; + font-size: 0.9333333333rem; + } +} + +.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: 37.5em) { + .bp-user #buddypress .notifications-options-nav, + .bp-user #buddypress .messages-options-nav { + width: 60%; + } +} + +.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.9333333333rem; + outline: 0; + padding: 0; +} + +.bp-user #buddypress .notifications-options-nav select, +.bp-user #buddypress .messages-options-nav select { + float: left; + margin-right: 0; + width: 49%; +} + +@media screen and (min-width: 37.5em) { + .bp-user #buddypress .notifications-options-nav select, + .bp-user #buddypress .messages-options-nav select { + width: auto; + } +} + +.bp-user #buddypress .notifications-options-nav input, +.bp-user #buddypress .messages-options-nav input { + float: left; + font-family: inherit; + line-height: 20px; + margin-left: 1%; + width: 50%; +} + +@media screen and (min-width: 37.5em) { + .bp-user #buddypress .notifications-options-nav input, + .bp-user #buddypress .messages-options-nav input { + width: auto; + } +} + +.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 .bp-widget h4 { + background: #6f6f6f; + color: #fff; + margin-bottom: 0; + padding: 0.4em; +} + +.bp-user #buddypress .profile .bp-widget table { + margin-top: 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.2rem; +} + +.bp-user #buddypress .profile #profile-edit-form .field-visibility-settings-toggle { + margin: 5px 0 25px; +} + +.bp-user #buddypress .profile #profile-edit-form .field-visibility-settings-toggle, +.bp-user #buddypress .profile #profile-edit-form .field-visibility-settings { + font-size: 14px; + font-size: 0.9333333333rem; +} + +.bp-user #buddypress .profile #profile-edit-form .field-visibility-settings-close, +.bp-user #buddypress .profile #profile-edit-form .visibility-toggle-link { + background: #6f6f6f; + -webkit-border-radius: 2px; + -moz-border-radius: 2px; + -ms-border-radius: 2px; + border-radius: 2px; + background-clip: padding-box; + color: #eee; + font-weight: bold; + padding: 0.1em 0.5em; + text-decoration: none; +} + +.bp-user #buddypress .profile #profile-edit-form .field-visibility-settings-close:focus, .bp-user #buddypress .profile #profile-edit-form .field-visibility-settings-close:hover, +.bp-user #buddypress .profile #profile-edit-form .visibility-toggle-link:focus, +.bp-user #buddypress .profile #profile-edit-form .visibility-toggle-link:hover { + color: #fff; +} + +.bp-user #buddypress .profile .bp-avatar #bp-delete-avatar a { + font-size: inherit; +} + +/** + *------------------------------------------- + * @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-recipients .highlight { + font-size: 100%; +} + +.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: 46.25em) { + .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: 15px 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: #6f6f6f; +} + +.bp-user #buddypress #message-threads tr td { + background: #fff; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + 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: 1px solid #ccc; + 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.thread-star { + vertical-align: middle; +} + +.bp-user #buddypress #message-threads tr td.thread-star .message-action-star, +.bp-user #buddypress #message-threads tr td.thread-star .message-action-unstar { + line-height: 1.2; +} + +.bp-user #buddypress #message-threads tr td.thread-star span.icon:before { + font-size: 14px; + font-size: 0.9333333333rem; +} + +.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: 37.5em) { + .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.8rem; +} + +.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.8rem; + line-height: 1.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: 37.5em) { + .bp-user #buddypress #message-threads tr span.activity { + clear: both; + font-size: 11px; + font-size: 0.7333333333rem; + width: 100%; + } +} + +.bp-user #buddypress #message-threads tr.unread td { + border-color: #eaeaea; +} + +.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 #send_message_form input, +.bp-user #buddypress #send_message_form textarea { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +.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: #edf7fa; + border: inherit; + margin-right: 0; + padding: 0.5em; +} + +.bp-user #buddypress .acfb-holder li.friend-tab span.p { + padding-left: 15px; +} + +.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 tr { + margin: 3em 0; +} + +.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 a.button { + border: 1px solid #d4d0ba; + line-height: initial; + padding: 0.4em 0.3em; +} + +.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 { + line-height: 1; + padding-bottom: 1em; + 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: 15px; +} + +.bp-user .ac_results li { + margin: 15px 0; +} + +.bp-user .ac_results li:focus, .bp-user .ac_results li:hover { + cursor: pointer; +} + +.bp-user .ac_results li img { + vertical-align: bottom; +} + +/** + *------------------------------ + * @subsection 6.2.2.6 - Settings + *------------------------------ + */ +.bp-user #buddypress #settings-form > p { + font-size: 20px; + font-size: 1.3333333333rem; + margin: 25px 0 15px; +} + +.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: 46.25em) { + .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%; +} + +/** + *------------------------------------ + * @subsection 6.2.2.6 - Notifications + *------------------------------------ + */ +/** +*------------------------------------------------------------------------------- +* @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 { + border-width: 1px; + box-shadow: none; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + width: 100%; +} + +#buddypress div.activity-comments form .ac-textarea { + background: #f7f7f7; + border: 1px solid rgba(212, 208, 186, 0.5); +} + +#buddypress div.activity-comments form .ac-textarea textarea { + background: none; + border: 0; +} + +#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(212, 208, 186, 0.5); + border-width: 1px; +} + +#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: 15px 0; +} + +#buddypress div.dir-search form, +#buddypress div.message-search form, +#buddypress li.groups-members-search form { + border: 1px solid rgba(212, 208, 186, 0.6); + overflow: hidden; +} + +#buddypress div.dir-search form label, +#buddypress div.message-search form label, +#buddypress li.groups-members-search form label { + float: left; + width: 70%; +} + +#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; + border-radius: 0; + box-shadow: none; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + font-size: 14px; + font-size: 0.9333333333rem; + line-height: 1.8; + margin: 0; + min-height: 2rem; +} + +#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(212, 208, 186, 0.6); + float: left; + margin: 0; + padding: 0 0.2em 0; + width: 70%; +} + +#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'] { + float: right; + font-weight: normal; + padding: 0 1em; + text-align: center; + text-transform: none; + width: 30%; +} + +@media screen and (min-device-width: 450px) { + #buddypress div.dir-search, + #buddypress div.message-search, + #buddypress li.groups-members-search { + float: right; + margin-bottom: 5px !important; + } + #buddypress div.dir-search form label, + #buddypress div.dir-search form input[type='text'], + #buddypress div.dir-search form input[type='submit'], + #buddypress div.message-search form label, + #buddypress div.message-search form input[type='text'], + #buddypress div.message-search form input[type='submit'], + #buddypress li.groups-members-search form label, + #buddypress li.groups-members-search form input[type='text'], + #buddypress li.groups-members-search form input[type='submit'] { + width: auto; + } +} + +@media screen and (min-width: 800px) { + #buddypress .dir-search form input[type='text'], + #buddypress .message-search form input[type='text'] { + font-size: 16px; + font-size: 1.0666666667rem; + } + #buddypress .dir-search form input[type='submit'], + #buddypress .message-search form input[type='submit'] { + font-size: 16px; + font-size: 1.0666666667rem; + } +} + +/** +*------------------------------------------------------------------------------- +* @section 8.0 - Tables - General +*------------------------------------------------------------------------------- +*/ +.bp-user #buddypress table { + font-size: 14px; + font-size: 0.9333333333rem; + margin: 25px 0; +} + +.bp-user #buddypress table input { + margin: 0; +} + +.bp-user #buddypress table tr th { + background: #6f6f6f; + border-color: #b7b7b7; + color: #fff; + font-size: 16px; + font-size: 1.0666666667rem; + padding: 4px 8px; + text-transform: capitalize; +} + +.bp-user #buddypress table tr td { + padding: 8px; +} + +.bp-user #buddypress table p { + margin-bottom: 0.5em; +} + +@media screen and (min-width: 55em) { + .bp-user #buddypress table { + font-size: 16px; + font-size: 1.0666666667rem; + } +} + +.bp-user #buddypress .notifications th, +.bp-user #buddypress .messages-notices th { + width: 30%; +} + +.bp-user #buddypress .notifications th.bulk-select-all, +.bp-user #buddypress .messages-notices th.bulk-select-all { + text-align: center; + width: 10%; +} + +.bp-user #buddypress .notifications th.actions, +.bp-user #buddypress .messages-notices th.actions { + text-align: center; +} + +.bp-user #buddypress .notifications .bulk-select-check, +.bp-user #buddypress .notifications .thread-star, +.bp-user #buddypress .messages-notices .bulk-select-check, +.bp-user #buddypress .messages-notices .thread-star { + text-align: center; +} + +.bp-user #buddypress .notifications .notification-actions, +.bp-user #buddypress .notifications td.thread-options, +.bp-user #buddypress .messages-notices .notification-actions, +.bp-user #buddypress .messages-notices td.thread-options { + text-align: center; +} + +.bp-user #buddypress .notifications .notification-actions a, +.bp-user #buddypress .notifications td.thread-options a, +.bp-user #buddypress .messages-notices .notification-actions a, +.bp-user #buddypress .messages-notices td.thread-options a { + display: inline-block; + margin: 0; + padding: 0; +} + +.bp-user #buddypress .notifications td .button, +.bp-user #buddypress .messages-notices td .button { + border: 0; + display: block; + padding: 0; + text-align: center; +} + +/** +*------------------------------------------------------------------------------- +* @section 9.0 - Error / Success messages +*------------------------------------------------------------------------------- +*/ +#buddypress div#message p { + font-size: 18px; + font-size: 1.2rem; + font-weight: bold; +} + +#buddypress div#message.info p { + background: #c6e4ee; + border: 1px solid #78bed6; + color: #1e5264; +} + +#buddypress div#message.updated p { + background: #dee6b2; + border: 1px solid #becc66; + color: #454d19; +} + +.delete-group #buddypress div#message.info p { + background: #db7e7e; + border: 1px solid #be3535; + color: #1f0808; +} + +/** +*------------------------------------------------------------------------------- +* @section 10.0 - Ajax Loading, Widgets, General classes +*------------------------------------------------------------------------------- +*/ diff --git a/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/twentyten.min.css b/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/twentyten.min.css new file mode 100644 index 0000000000000000000000000000000000000000..a53f12ad054b87f8efdad631eb948abd7f6dcf40 --- /dev/null +++ b/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/twentyten.min.css @@ -0,0 +1 @@ +@charset "UTF-8";.buddypress div.clear{display:none}body.page-template-onecolumn-page #main #container{margin:0}body.page-template-onecolumn-page #content{margin:0 10%;width:auto}body.page-template-onecolumn-page #content .entry-content,body.page-template-onecolumn-page #content .entry-header{width:auto}#buddypress div.item-list-tabs ul li.current a,#buddypress div.item-list-tabs ul li.selected a{background:inherit;opacity:1}#buddypress div.item-list-tabs ul{overflow:hidden;padding:0}#buddypress div.item-list-tabs ul li a:focus,#buddypress div.item-list-tabs ul li a:hover{color:#555}#buddypress div.item-list-tabs ul li a:visited{color:#21759b}#buddypress div.item-list-tabs ul li a span{padding:0 4px!important}#buddypress #object-nav ul{overflow:hidden}#buddypress #object-nav ul li{float:none}@media screen and (min-width:650px){#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;border-top:1px solid #d4d0ba;margin-top:5px;padding:0}#buddypress div#subnav.item-list-tabs ul li.last{background:#fff;float:right;margin-top:0;padding:5px 0;text-align:right;width:230px}#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;padding:0}#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:.9333333333rem}#buddypress div#subnav.item-list-tabs ul li.last select{font-style:italic}#buddypress div#subnav.item-list-tabs ul li.last select option{font-style:normal}#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}.bp-user #buddypress div#subnav.item-list-tabs li.last{margin-left:0;text-align:right}@media screen and (min-width:800px){body.bp-user #buddypress #item-body,body.bp-user #buddypress #item-header{background:#fff}body.bp-user #buddypress #object-nav{border-right:1px solid #ddd;float:left;margin-right:-1px;width:200px}body.bp-user #buddypress #object-nav ul{background:0 0;border-bottom:0;padding:0}body.bp-user #buddypress #object-nav ul li{float:none;margin-bottom:5px}body.bp-user #buddypress #object-nav ul li a{overflow:hidden}body.bp-user #buddypress #object-nav ul li.selected{background:#ddd}body.bp-user #buddypress #object-nav ul li span{background:#fff;border-radius:10%;float:right;margin-right:2px}body.bp-user #buddypress #item-body{border-left:1px solid #ddd;overflow:hidden;padding:0 0 0 25px;width:auto}body.bp-user #buddypress #item-body #subnav{margin:0 0 0 -25px}body.bp-user #buddypress #item-body #subnav ul{margin-top:0}}@media only screen and (min-device-width:375px){#main #buddypress #group-create-tabs.item-list-tabs ul:after,#main #buddypress #group-create-tabs.item-list-tabs ul:before{content:" ";display:table}#main #buddypress #group-create-tabs.item-list-tabs ul:after{clear:both}#main #buddypress #group-create-tabs.item-list-tabs ul{background:0 0;border:0;border-bottom:1px solid #ddd;overflow:visible;padding-bottom:0}#main #buddypress #group-create-tabs.item-list-tabs ul li{float:left;width:auto}#main #buddypress #group-create-tabs.item-list-tabs ul li.current,#main #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}#main #buddypress #group-create-tabs.item-list-tabs ul li.current a,#main #buddypress #group-create-tabs.item-list-tabs ul li.selected a{background:0 0;color:#373737;outline:0}#main #buddypress #subnav ul{border-bottom:0}}#buddypress div.pagination{box-shadow:none;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 #activity-stream li .activity-header a:visited,#buddypress ul.item-list li .item .item-title>a:visited{color:#21759b}#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 ul.item-list{border-top:0}#buddypress ul.item-list li{overflow:hidden!important}#buddypress ul.item-list li .item-avatar{margin-bottom:15px;text-align:center}@media only screen and (min-device-width:375px){#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:15px}@media only screen and (min-device-width:450px){#buddypress ul.item-list li .item-avatar img.avatar{display:block;float:left;opacity:1}}#buddypress ul.item-list li .item{margin-left:0;overflow:hidden}#buddypress ul.item-list li .item .item-meta{text-align:center}@media screen and (min-width:650px){#buddypress ul.item-list li .item .item-meta{text-align:left}}#buddypress ul.item-list li .item .item-desc{margin-left:0;width:94%}#buddypress ul.item-list li .item .item-title{font-size:16px;font-size:1.0666666667rem;line-height:1.2;text-align:center;width:100%}@media screen and (min-device-width:450px){#buddypress ul.item-list li .item .item-title{text-align:left}}#buddypress ul.item-list li .item .item-title>a{text-decoration:none}#buddypress ul.item-list li .item .item-title .update{display:block;font-size:12px;font-size:.8rem;padding:15px 0;text-align:left}@media screen and (min-width:650px){#buddypress ul.item-list li .item .item-title .update{font-size:14px;font-size:.9333333333rem}#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:18px;font-size:1.2rem}}#buddypress ul.item-list li div.action{clear:left;float:none;margin:0;padding:15px 0 5px;position:relative;text-align:left;top:0}@media screen and (min-width:650px){#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:5px 0;width:100%}#buddypress #activity-stream li.load-newest a,#buddypress ul.item-list li div.action div a{display:block}@media only screen and (min-device-width:375px){#buddypress ul.item-list li div.action div{margin:0 15px 5px 0;width:auto}}@media screen and (min-width:650px){#buddypress ul.item-list li div.action div{clear:right;float:right;margin:0 0 15px}}#buddypress form#whats-new-form p.activity-greeting{line-height:1.4}#buddypress form#whats-new-form #whats-new-content.active #whats-new-options[style] #whats-new-post-in-box{border:1px solid rgba(212,208,186,.5);float:left;font-size:12px;font-size:.8rem;line-height:1.6;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;max-width:220px;min-height:1.5em;padding:0 0 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{font-size:12px;font-size:.8rem;float:right}#buddypress form#whats-new-form #whats-new-content.active #whats-new-options[style] #whats-new-submit input{padding:0 6px}}#buddypress #item-body form#whats-new-form{margin:50px 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:25px;margin-left:0;width:60px}#buddypress #activity-stream li .activity-comments,#buddypress #activity-stream li .activity-content{margin-left:0}#buddypress #activity-stream li .activity-header{font-size:14px;font-size:.9333333333rem}#buddypress #activity-stream li .activity-inner img{height:auto}@media screen and (min-width:650px){#buddypress #activity-stream li .activity-avatar{float:left;margin-right:15px;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:1.0666666667rem}#buddypress #activity-stream li .activity-comments{margin-left:70px}}#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:.9333333333rem}#buddypress #activity-stream li.mini .activity-content .activity-meta a{font-size:12px;font-size:.8rem}#buddypress #activity-stream .activity-content{margin-top:-12px}#buddypress #activity-stream .activity-content .activity-header{line-height:inherit;margin-right:0}#buddypress #activity-stream .activity-content .activity-header p{border-bottom:1px solid rgba(234,234,234,.6);margin-top:0;padding:0 .2em}#buddypress #activity-stream .activity-content .activity-header img.avatar{display:inline-block;margin-bottom:0!important}#buddypress #activity-stream .activity-content .activity-meta a{display:block;font-size:14px;font-size:.9333333333rem;margin-bottom:5px;padding:.2em .5em}@media screen and (min-width:650px){#buddypress #activity-stream .activity-content .activity-meta a{float:left;margin-bottom:0}}#buddypress #activity-stream .load-more{background:#f7f7f7;border:1px solid transparent;padding:15px}.activity-permalink #buddypress #activity-stream li.activity-item,.activity-permalink #buddypress #activity-stream li.mini .activity-header p{padding:25px}#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:1.0666666667rem;margin-bottom:50px}@media screen and (min-width:650px){.activity-permalink #buddypress #activity-stream li.mini .activity-header{font-size:20px;font-size:1.3333333333rem}#buddypress #members-list li .item,#buddypress #members-list li .item-avatar{float:left}#buddypress #members-list li .action{float:right}}.activity-permalink #buddypress #activity-stream .activity-comments{margin-left:0}#buddypress #activity-stream .activity-comments{position:relative}#buddypress #activity-stream .activity-comments>ul{background:rgba(247,247,247,.6);margin:15px 0 0 2px}#buddypress #activity-stream .activity-comments>ul>li:hover *{color:#555}#buddypress #activity-stream .activity-comments>ul>li .acomment-content,#buddypress #activity-stream .activity-comments>ul>li .acomment-meta{font-size:12px;font-size:.8rem}#buddypress #activity-stream .activity-comments .ac-form{border:1px solid #d4d0ba;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:15px 0;width:100%}#buddypress #activity-stream .activity-comments .ac-form .ac-reply-cancel,#buddypress #activity-stream .activity-comments .ac-form input[type=submit]{color:rgba(55,55,55,.8);display:inline-block;font-family:inherit;font-size:12px;font-size:.8rem;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(212,208,186,.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}#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:37.5em){#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%}#buddypress #signup_form.standard-form #profile-details-section{float:right}#buddypress #signup_form.standard-form #basic-details-section{float:left}}.bp-user #buddypress a:visited{color:#21759b}.bp-user #buddypress #item-header-content #item-meta,.single-item.groups #buddypress #item-header-content #item-meta{font-size:14px;font-size:.9333333333rem;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:37.5em){.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%}.bp-user #buddypress #item-header-content .user-nicename,.single-item.groups #buddypress #item-header-content .user-nicename{color:#555}}@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}.single-item.groups #buddypress #item-header #item-meta{margin-bottom:25px}}@media screen and (max-width:50em){.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{border-bottom:0}.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 h3{border-bottom:1px solid #eaeaea;text-align:center}}.single-item.groups #buddypress div#item-header{padding-bottom:50px}.single-item.groups #buddypress div#item-header #item-header-content{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.single-item.groups #buddypress div#item-header div#item-actions{margin:0!important;width:100%}@media screen and (min-width:50em){.single-item.groups #buddypress div#item-header div#item-actions{border-left:1px solid #eaeaea;clear:none;float:right;padding-left:.2em;width:30%}}@media screen and (min-width:46.25em){.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 h3{font-size:14px;font-size:.9333333333rem;font-weight:700;line-height:1.4}.single-item.groups #buddypress div#item-header div#item-actions #group-admins li,.single-item.groups #buddypress div#item-header div#item-actions #group-mods li{margin:0}@media screen and (min-width:650px){.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-content{margin-left:2%;padding:0 .5em}.single-item.groups #buddypress div#item-header div#item-actions{float:right;width:28%}}@media screen and (min-width:64em){.single-item.groups #buddypress div#item-header #item-header-content{width:40%}}.single-item.groups #buddypress #cover-image-container #item-header-cover-image #item-actions{margin-top:225px!important}@media screen and (min-width:50em) and (max-width:60em){.single-item.groups #buddypress #cover-image-container #item-header-cover-image #item-header-content{max-width:60%!important;width:60%!important}}@media screen and (max-width:64em){.single-item.groups #buddypress #cover-image-container #item-header-cover-image #item-actions{border:0;clear:both;margin-top:0!important;max-width:100%!important;padding-top:0!important;width:auto}.single-item.groups #buddypress #cover-image-container #item-header-cover-image #item-actions h3{border-bottom:1px solid #eaeaea}}.bp-user #buddypress #item-header #item-header-avatar{text-align:center}.bp-user #buddypress #item-header #item-header-avatar a,.bp-user #buddypress #item-header #item-header-avatar img.avatar{border-bottom:0;display:inline-block;float:none}.bp-user #buddypress #item-header #item-header-cover-image .user-nicename{color:inherit;text-shadow:none}@media screen and (min-width:800px){.bp-user #buddypress #item-header #item-header-cover-image .user-nicename{color:#fff;text-shadow:0 0 3px rgba(0,0,0,.8)}}.bp-user #buddypress #item-header #item-header-content #item-buttons .generic-button{margin-right:5px}@media screen and (min-width:650px){.bp-user #buddypress #item-header #item-header-avatar,.bp-user #buddypress #item-header #item-header-avatar a{float:left}.bp-user #buddypress #item-header #item-header-content{float:right;margin-right:0;width:69%}.groups.manage-members #group-settings-form .item-list li h5,.groups.manage-members #group-settings-form .item-list li img{float:left}}.groups #group-settings-form h4{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:.9333333333rem;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{font-weight:700;padding:.2em}.groups.group-settings #group-settings-form div.radio label ul{color:rgba(55,55,55,.6);font-size:14px;font-size:.9333333333rem}.groups.group-avatar form>p{margin-top:25px}.groups.manage-members #group-settings-form .item-list li{border-bottom:1px solid #eaeaea}.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 span.small{clear:left;display:block;float:none;margin-top:15px;width:100%}.groups.manage-members #group-settings-form .item-list li span.small a{display:block;margin:5px 0}.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}.groups.group-members #subnav li #search-members-form label input[type=text]{box-shadow:none}.bp-user #buddypress table th{font-size:13px;font-size:.8666666667rem}.bp-user #buddypress table td{font-size:12px;font-size:.8rem}@media screen and (min-width:650px){.groups.manage-members #group-settings-form .item-list li span.small a{display:inline-block}.bp-user #buddypress table th{font-size:16px;font-size:1.0666666667rem}.bp-user #buddypress table td{font-size:14px;font-size:.9333333333rem}}.bp-user #buddypress .messages-options-nav,.bp-user #buddypress .notifications-options-nav{float:left;width:100%}@media screen and (min-width:37.5em){.bp-user #buddypress .messages-options-nav,.bp-user #buddypress .notifications-options-nav{width:60%}}.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:.9333333333rem;outline:0;padding:0}.bp-user #buddypress .messages-options-nav select,.bp-user #buddypress .notifications-options-nav select{float:left;margin-right:0;width:49%}@media screen and (min-width:37.5em){.bp-user #buddypress .messages-options-nav select,.bp-user #buddypress .notifications-options-nav select{width:auto}}.bp-user #buddypress .messages-options-nav input,.bp-user #buddypress .notifications-options-nav input{float:left;font-family:inherit;line-height:20px;margin-left:1%;width:50%}@media screen and (min-width:37.5em){.bp-user #buddypress .messages-options-nav input,.bp-user #buddypress .notifications-options-nav input{width:auto}}.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 .bp-widget h4{background:#6f6f6f;color:#fff;margin-bottom:0;padding:.4em}.bp-user #buddypress .profile .bp-widget table{margin-top:0}.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.2rem}.bp-user #buddypress .profile #profile-edit-form .field-visibility-settings-toggle{margin:5px 0 25px}.bp-user #buddypress .profile #profile-edit-form .field-visibility-settings,.bp-user #buddypress .profile #profile-edit-form .field-visibility-settings-toggle{font-size:14px;font-size:.9333333333rem}.bp-user #buddypress .profile #profile-edit-form .field-visibility-settings-close,.bp-user #buddypress .profile #profile-edit-form .visibility-toggle-link{background:#6f6f6f;-webkit-border-radius:2px;-moz-border-radius:2px;-ms-border-radius:2px;border-radius:2px;background-clip:padding-box;color:#eee;font-weight:700;padding:.1em .5em;text-decoration:none}.bp-user #buddypress .profile #profile-edit-form .field-visibility-settings-close:focus,.bp-user #buddypress .profile #profile-edit-form .field-visibility-settings-close:hover,.bp-user #buddypress .profile #profile-edit-form .visibility-toggle-link:focus,.bp-user #buddypress .profile #profile-edit-form .visibility-toggle-link:hover{color:#fff}.bp-user #buddypress .profile .bp-avatar #bp-delete-avatar a{font-size:inherit}.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-recipients .highlight{font-size:100%}.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:46.25em){.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:15px 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:#6f6f6f}.bp-user #buddypress #message-threads tr td{background:#fff;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;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:1px solid #ccc;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.thread-star{vertical-align:middle}.bp-user #buddypress #message-threads tr td.thread-star .message-action-star,.bp-user #buddypress #message-threads tr td.thread-star .message-action-unstar{line-height:1.2}.bp-user #buddypress #message-threads tr td.thread-star span.icon:before{font-size:14px;font-size:.9333333333rem}.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:.8rem}.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:.8rem;line-height:1.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:37.5em){.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:.7333333333rem;width:100%}}.bp-user #buddypress #message-threads tr.unread td{border-color:#eaeaea}.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 #send_message_form input,.bp-user #buddypress #send_message_form textarea{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.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:#edf7fa;border:inherit;margin-right:0;padding:.5em}.bp-user #buddypress .acfb-holder li.friend-tab span.p{padding-left:15px}.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 tr{margin:3em 0}.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 a.button{border:1px solid #d4d0ba;line-height:initial;padding:.4em .3em}.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{line-height:1;padding-bottom:1em;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:15px}.bp-user .ac_results li{margin:15px 0}.bp-user .ac_results li:focus,.bp-user .ac_results li:hover{cursor:pointer}.bp-user .ac_results li img{vertical-align:bottom}.bp-user #buddypress #settings-form>p{font-size:20px;font-size:1.3333333333rem;margin:25px 0 15px}.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:46.25em){.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%}.bp-user #buddypress table.profile-settings td.field-visibility select{width:100%}#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{border-width:1px;box-shadow:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;width:100%}#buddypress div.activity-comments form .ac-textarea{background:#f7f7f7;border:1px solid rgba(212,208,186,.5)}#buddypress div.activity-comments form .ac-textarea textarea{background:0 0;border:0}#buddypress .standard-form button,#buddypress .standard-form input[type=password],#buddypress .standard-form input[type=text],#buddypress .standard-form input[type=email],#buddypress .standard-form select,#buddypress .standard-form textarea{border-color:rgba(212,208,186,.5);border-width:1px}#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:15px 0}#buddypress div.dir-search form,#buddypress div.message-search form,#buddypress li.groups-members-search form{border:1px solid rgba(212,208,186,.6);overflow:hidden}#buddypress div.dir-search form label,#buddypress div.message-search form label,#buddypress li.groups-members-search form label{float:left;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;border-radius:0;box-shadow:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;font-size:14px;font-size:.9333333333rem;line-height:1.8;margin:0;min-height:2rem}#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(212,208,186,.6);float:left;margin:0;padding:0 .2em;width:70%}#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]{float:right;font-weight:400;padding:0 1em;text-align:center;text-transform:none;width:30%}@media screen and (min-device-width:450px){#buddypress div.dir-search,#buddypress div.message-search,#buddypress li.groups-members-search{float:right;margin-bottom:5px!important}#buddypress div.dir-search form input[type=submit],#buddypress div.dir-search form input[type=text],#buddypress div.dir-search form label,#buddypress div.message-search form input[type=submit],#buddypress div.message-search form input[type=text],#buddypress div.message-search form label,#buddypress li.groups-members-search form input[type=submit],#buddypress li.groups-members-search form input[type=text],#buddypress li.groups-members-search form label{width:auto}}@media screen and (min-width:800px){#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]{font-size:16px;font-size:1.0666666667rem}}.bp-user #buddypress table{font-size:14px;font-size:.9333333333rem;margin:25px 0}.bp-user #buddypress table input{margin:0}.bp-user #buddypress table tr th{background:#6f6f6f;border-color:#b7b7b7;color:#fff;font-size:16px;font-size:1.0666666667rem;padding:4px 8px;text-transform:capitalize}.bp-user #buddypress table tr td{padding:8px}.bp-user #buddypress table p{margin-bottom:.5em}@media screen and (min-width:55em){.bp-user #buddypress table{font-size:16px;font-size:1.0666666667rem}}.bp-user #buddypress .messages-notices th,.bp-user #buddypress .notifications th{width:30%}.bp-user #buddypress .messages-notices th.bulk-select-all,.bp-user #buddypress .notifications th.bulk-select-all{text-align:center;width:10%}.bp-user #buddypress .messages-notices .bulk-select-check,.bp-user #buddypress .messages-notices .notification-actions,.bp-user #buddypress .messages-notices .thread-star,.bp-user #buddypress .messages-notices td.thread-options,.bp-user #buddypress .messages-notices th.actions,.bp-user #buddypress .notifications .bulk-select-check,.bp-user #buddypress .notifications .notification-actions,.bp-user #buddypress .notifications .thread-star,.bp-user #buddypress .notifications td.thread-options,.bp-user #buddypress .notifications th.actions{text-align:center}.bp-user #buddypress .messages-notices .notification-actions a,.bp-user #buddypress .messages-notices td.thread-options a,.bp-user #buddypress .notifications .notification-actions a,.bp-user #buddypress .notifications td.thread-options a{display:inline-block;margin:0;padding:0}.bp-user #buddypress .messages-notices td .button,.bp-user #buddypress .notifications td .button{border:0;display:block;padding:0;text-align:center}#buddypress div#message p{font-size:18px;font-size:1.2rem;font-weight:700}#buddypress div#message.info p{background:#c6e4ee;border:1px solid #78bed6;color:#1e5264}#buddypress div#message.updated p{background:#dee6b2;border:1px solid #becc66;color:#454d19}.delete-group #buddypress div#message.info p{background:#db7e7e;border:1px solid #be3535;color:#1f0808} \ No newline at end of file diff --git a/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/twentyten.scss b/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/twentyten.scss new file mode 100644 index 0000000000000000000000000000000000000000..f4286fefe82b1bafdd67e568c87187ebcfd985e5 --- /dev/null +++ b/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/twentyten.scss @@ -0,0 +1,2478 @@ + +// 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 . + +// 2010 Media Queries / Breakpoints. +// 2010 is a fixed layout with no fluid elements. +// We will provide some simple breakpoints to manage BP elements +// on a limited basis. + + + +// Mixins and Variables + +// simplify remembering/writing media queries +// written as: +// @include medium-up { +// body {property: value;} +// } + +// BP min/max width mixins + +// As layout is fixed width 'device' is needed to tell phones to work with breakpoints +// provided is a 'up to' max-width and min-width as device widths for mobiles +// This is not a perfect solution but provides a degree of layout control for BP elements. +// But not used to any great degree. + +@mixin small-device-up { + @media only screen and (min-device-width: 375px) { + @content; + } +} + +@mixin small-device-max { + @media only screen and (max-device-width: 375px) { + @content; + } +} + +@mixin medium-device-up { + @media only screen and (min-device-width: 450px) { + @content; + } +} + +// min-width 450px +@mixin small-up { + @media screen and (min-device-width: 450px) { + @content; + } +} + +// min-width 650px +@mixin medium-up { + @media screen and (min-width: 650px) { + @content; + } +} + +// min-width 800px +@mixin large-up { + @media screen and (min-width: 800px) { + @content; + } +} + +// Common spacing values +$spacing-val-lg: 50px; +$spacing-val-md: 25px; +$spacing-val-sm: 15px; +$spacing-val-xs: 5px; + +// A simple mixin to handle font-sizing +// 2010 sets a html/body size @ 15px + +@mixin font-size($font-size: 15) { + $rem-font-value: ($font-size / 15); + 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; +} + +// Box sizing +@mixin box-model($model-type) { + -webkit-box-sizing: $model-type; + -moz-box-sizing: $model-type; + box-sizing: $model-type; +} + +// 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; +} + +// 2010 font family +@mixin default-font-sans() { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; +} + +// Variables: color definitions +$body-text: #373737; +$content-background: #fff; +$off-white: lighten(#f9f8ee, 0.7); +$cream-background: #f7f5e7; +$light-background: #f7f7f7; +$medium-background: #ccc; +$dark-background: #555; +$border-color: #d4d0ba; // border color is varied using rgba +$border-light: #eaeaea; // BP dividers +$border-med: #ddd; +$background-hover: #db572f; // 2010 link background hover +$bp-button-hover: #ededed; // this is the default BP button hover background +$notice-error: #c85a6e; +$notice-warning: #d05656; +$notice-info: #9fd1e2; +$notice-update: #ced98c; +$stripe-odd: #ebf0ff; +$stripe-even: #dbe5ff; +$unread: #9dc3c8; +$link-action: #c82b2b; +/*-------------------------------------------------------------- + +This is the BuddyPress companion stylesheet for +the WordPress Twentyten theme. + +This sheet supports the primary BuddyPress styles in buddypress.css + +If you are running as a child theme of twentyten 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 + 6.2.2.7 - Notifications +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;} + +} // .buddypress (body class) + + +// Main dir pages: sidebar or not to sidebar +// If no sidebar lets correct some odd layout rules + +body.page-template-onecolumn-page { + + #main { + #container { + margin: 0; + } + } + + #content { + margin: 0 10% 0; + width: auto; + + .entry-header, + .entry-content { + width: auto; + } + } +} + + +/** +*------------------------------------------------------------------------------- +* @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 +/* Here we start things off */ +#buddypress { + + // active/current states all navs + div.item-list-tabs { + ul { + li.selected, + li.current { + a { + background: inherit; + opacity: 1; + } + } + } + } + // global nav styles + div.item-list-tabs { + ul { + overflow: hidden; + padding: 0; + + li { + a { + + &:focus, + &:hover { + color: #555; + } + // Keep links from inheriting :visited states + &:visited { + color: #21759b; + } + + span { + padding: 0 4px !important; + } + } + + } + } + } // close item-list-tabs + +} // close #buddypress + + + +/*__ Horizontal menus __*/ +#buddypress { + + #object-nav { + + ul { + overflow: hidden; + + li { + float: none; + } + + @include medium-up { + + li { + float: left; + } + } + + } + } + + div#subnav.item-list-tabs { + margin-top: 0; + + ul { + border-bottom: 0; + border-top: 1px solid $border-color; + margin-top: $spacing-val-xs; + padding: 0; + + li.last { + background: $content-background; + float: right; + margin-top: 0; + padding: $spacing-val-xs 0 $spacing-val-xs; + text-align: right; + width: 230px; + + select, + select:focus { + background: transparent; + border: 0; + outline: 0; + padding: 0; + } + + select, + label, + option { + @include font-size(14); + } + + select { + font-style: italic; + + option { + font-style: normal; + } + } + } + + } // close ul + } // close #subnav + +} // close #buddypress + +.bp-user { + #buddypress { + div#subnav.item-list-tabs { + li.last { + margin-left: 0; + text-align: right; + } + } + } +} + +/*__ 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 + +@include large-up { + + body.bp-user { + #buddypress { + + #item-header, + #item-body { + background: $content-background; + } + + #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; + margin-bottom: 5px; + + a { + overflow: hidden; + } + + &.selected { + background: #ddd; + } + + 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.bp-user +} // close @media + + +// Tabbed Nav styling +// Primarilly used for group create screens & ? directory nav. + +@include small-device-up { + #main { + #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; + 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 +*------------------------------------------------------------------------------- +*/ + +// 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 2010 font-family + +#buddypress { + ul.item-list { + border-top: 0; + + li { + overflow: hidden !important; + + // Undo BP floats to center avatars initially mobile up + .item-avatar { + margin-bottom: $spacing-val-sm; + + @include small-device-up { + margin-bottom: 0; + } + + text-align: center; + + a {border-bottom: 0;} + + img.avatar { + display: inline-block; + float: none; + margin-bottom: $spacing-val-sm; + + // small device: move avatars to the left(right) + @include medium-device-up { + display: block; + float: left; + opacity: 1; + } + } + } //close .item-avatar + + .item { + + // counter the BP rule + margin-left: 0; + overflow: hidden; + + .item-meta { + text-align: center; + + @include medium-up { + text-align: left; + } + } + + span.activity { + font-style: italic; + } + + .item-desc { + margin-left: 0; + width: 94%; + } + + .item-title { + @include font-size(16); + line-height: 1.2; + text-align: center; + + @include small-up { + text-align: left; + } + + width: 100%; + + > a { + text-decoration: none; + + &:visited { color: #21759b;} + } + + .update { + display: block; + @include font-size(12); + + @include medium-up { + @include font-size(14); + } + + padding: $spacing-val-sm 0; + text-align: left; + } + } // close .item-title + + } // close .item + + @include medium-up { + .item-avatar, + .item, + .action { + float: left; + } + + .item { + left: 5%; + margin-left: 0; + position: relative; + width: 55%; + + .item-title { + @include font-size(18) + } + } + + }// close medium-up + + div.action { + clear: left; + float: none; + margin: 0; + // remove BP margin left + margin-left: 0; + padding: $spacing-val-sm 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-xs 0; + width: 100%; + + a { + display: block; + } + // Provisionally lets keep the 'action' div + //position but inline-block the buttons + + @include small-device-up { + // keep buttons to a row small tablet up + margin: 0 $spacing-val-sm 5px 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 + + #whats-new-content.active { + #whats-new-options[style] { + #whats-new-post-in-box { + border: 1px solid rgba($border-color, 0.5); + float: left; + @include font-size(12); + line-height: 1.6; + margin-top: 12px; + padding-left: 0.2em; + width: 100%; + + select { + background: none; + border: 0; + float: right; + margin: 0; + max-width: 220px; + min-height: 1.5em; + padding: 0 0 0 0.4em; + } + } + + @media screen and (min-width: 30em) { + #whats-new-post-in-box { + width: auto; + } + + #whats-new-submit { + @include font-size(12); + float: right; + + input { + padding: 0 6px; + } + } + } + + } // 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; + + &.load-newest { + a { + display: block; + } + } + + .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, + .activity-comments { + margin-left: 0; + } + + .activity-header { + @include font-size(14); + + a:visited { + color: #21759b; + } + } + + .activity-inner { + img {height: auto;} + } + + @include medium-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); + } + } + + .activity-comments { + margin-left: 70px; + } + + } // 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-meta { + a { + @include font-size(12); + } + } + } + } // close li.mini + + .activity-content { + margin-top: -12px; + + .activity-header { + line-height: inherit; + margin-right: 0; + + p { + border-bottom: 1px solid rgba($border-light, 0.6); + margin-top: 0; + padding: 0 0.2em; + } + + img.avatar { + display: inline-block; + margin-bottom: 0 !important; // have to match to BP + } + } // close .activity-header + + .activity-meta { + a { + display: block; + @include font-size(14); + margin-bottom: $spacing-val-xs; + + @include medium-up { + float: left; + margin-bottom: 0; + } + + padding: 0.2em 0.5em; + } + } + + } // 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 { + 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 medium-up { + @include font-size(20); + } + + margin-bottom: $spacing-val-lg; + p {padding: $spacing-val-md;} + } + } // close li.mini + + .activity-comments { + margin-left: 0; + } + + } + } +} + +/** +*----------------------------------------------------- +* @section 4.1.3 - Activity Comments +*----------------------------------------------------- +*/ +#buddypress { + + #activity-stream { + + .activity-comments { + position: relative; + + > ul { + background: rgba($light-background, 0.6); + margin: $spacing-val-sm 0 0 2px; + + > li { + + &:hover * { + color: #555; + } + + .acomment-meta, + .acomment-content { + @include font-size(12); + } + + } + + } + + .ac-form { + border: 1px solid $border-color; + @include box-model(border-box); + margin: $spacing-val-sm 0; + width: 100%; + + 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-steam + +} // close #buddypress + +/** +*---------------------------------------------------------- +* @section 4.2 - Members Loop +*---------------------------------------------------------- +*/ + +#buddypress { + #members-list { + + @include medium-up { + li { + .item-avatar, + .item { + float: left; + } + + .action { + float: right; + } + } + } + + } // 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%; + + @media screen and (min-width: 37.500em) { + width: 48%; + } + } + + @media screen and (min-width: 37.500em) { + #profile-details-section {float: right;} + #basic-details-section {float: left;} + } + + } +} + +/** +*------------------------------------------------------------------------------- +* @section 6.0 - Single Item screens: User Account & Single Group Screens +*------------------------------------------------------------------------------- +*/ + +.bp-user { + #buddypress { + // On object nav links, table links (notifications etc) we don't really need :visited + // inheritance, so set pseudo class to :link color. + a { + &:visited { + color: #21759b; + } + } + } +} + +/** +*----------------------------------------------------------- +* @subsection 6.1 - Item Header Global +*----------------------------------------------------------- +*/ + +.bp-user, +.single-item.groups { + #buddypress { + #item-header-content { + #item-meta { + @include font-size(14); + text-align: left; + + p {margin-bottom: 0.5em;} + } + } + } + + @media screen and (max-width: 37.500em) { + h1, + #item-header-content { + text-align: center; + } + } + + @media screen and (max-width: 46.25em) { + main { + header.entry-header { + padding-bottom: 1rem; + } + } + } + + #buddypress { + @media screen and (max-width: 37.500em) { + h1 { + margin-bottom: 0; + } + + #item-header-avatar { + img.avatar { + margin-right: 0; + } + } + + #item-header-content { + width: 100%; + + .user-nicename { + color: #555; + } + } + } // close @media + + @media screen and (max-width: 46.25em) { + #item-header { + .generic-button { + float: none; + margin: 1.5em 0 0 0; + } + } + } + } // close #buddypress + +} + +/** +*----------------------------------------------------- +* @subsection 6.1.1 - item-header Groups +* +* Group Specific Item Header +*----------------------------------------------------- +*/ + +.single-item.groups { + #buddypress { + @media screen and (max-width: 46.25em) { + #item-header { + #item-meta { + margin-bottom: $spacing-val-md; + } + } + } + + // Move visual flow of avatar & item-actions at narrow width, + // avatar first after group title + @media screen and (max-width: 50em) { + div#item-header { + display: flex; + flex-direction: column; + + #item-header-avatar { + order: 1; + text-align: center; + + a { + border-bottom: 0; + + img { + display: inline-block; + float: none; + } + } + } + + #item-header-content { + order: 2; + } + + #item-actions { + order: 3; + + h3 { + border-bottom: 1px solid $border-light; + text-align: center; + } + } + } + } // close @media + + div#item-header { + padding-bottom: $spacing-val-lg; + + #item-header-content { + @include box-model(border-box); + } + + div#item-actions { + margin: 0 !important; + width: 100%; + + @media screen and (min-width: 50em) { + border-left: 1px solid $border-light; + clear: none; + float: right; + padding-left: 0.2em; + width: 30%; + } // close @media + + @media screen and (min-width: 46.25em) { + width: 40%; + } + + ul { + margin-top: 0; + padding-left: 0; + } + + h3 { + @include font-size(14); + font-weight: bold; + line-height: 1.4; + } + + #group-admins, + #group-mods { + li { + margin: 0; + } + } + + } // close item-actions + + @include medium-up { + + #item-header-avatar, + #item-header-content { + float: left; + } + + #item-header-content { + margin-left: 2%; + padding: 0 0.5em; + } + + div#item-actions { + float: right; + width: 28%; + } + + } // close @media + + @media screen and (min-width: 64em) { + #item-header-content { + width: 40%; + } + } + } // close #item-header + } // close #buddypress + + // These rules handle the specific instance of Cover Images on single groups + // activated & attempt to address positioning concerns arising from themes + // breakpoints. + // Due to cover image styles being applied via embedded styles & thus carrying + // heavier weight than linked styles the use of !important to override may be required. + #buddypress { + #cover-image-container { + #item-header-cover-image { + + #item-actions { + margin-top: 225px !important; + } + + @media screen and (min-width: 50em) and (max-width: 60em) { + #item-header-content { + max-width: 60% !important; + width: 60% !important; + } + } + + @media screen and (max-width: 64em) { + + #item-actions { + border: 0; + clear: both; + margin-top: 0 !important; + max-width: 100% !important; + padding-top: 0 !important; + width: auto; + + h3 {border-bottom: 1px solid $border-light;} + } + } // @media + } + } + } + +} // close .single-item.groups + +/** +*----------------------------------------------------- +* @subsection 6.1.2 - Item Header User Accounts +* +* User Accounts Specific Item Header +*----------------------------------------------------- +*/ + +.bp-user { + #buddypress { + #item-header { + + #item-header-avatar { + text-align: center; + + img.avatar, + a { + border-bottom: 0; + display: inline-block; + float: none; + } + } + + #item-header-cover-image { + .user-nicename { + color: inherit; + text-shadow: none; + + @include large-up { + color: #fff; + text-shadow: 0 0 3px rgba(0, 0, 0, 0.8); + } + } + } + + #item-header-content { + + #item-buttons { + .generic-button { + margin-right: 5px; + } + } + } + + @include medium-up { + #item-header-avatar { + float: left; + + a { + float: left; + } + } + + #item-header-content { + float: right; + margin-right: 0%; + 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 +*---------------------------------------------------- +*/ + +/** +*----------------------------------------- +* @subsection 6.2.1.1 - Group Management +*----------------------------------------- +*/ + +// headings settings screens & general global settings styles +.groups { + #group-settings-form { + h4 { + 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 { + font-weight: bold; + 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 { + @include medium-up { + float: left; + } + + > a {border-bottom: 0;} + } + + span.small { + clear: left; + display: block; + float: none; + margin-top: $spacing-val-sm; + width: 100%; + + a { + display: block; + margin: $spacing-val-xs 0; + + @include medium-up { + display: inline-block; + } + } + } + + 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 { + width: 100%; + + #search-members-form { + float: right; + margin: $spacing-val-xs 0 0 0; + + label { + input[type="text"] { + box-shadow: none; + } + } + } + } + } +} + +/** +*----------------------------------------------------- +* @subsection 6.2.2 - Item Body User Accounts +* +* User Account specific component item body rules +*----------------------------------------------------- +*/ + +/** +*-------------------------------------------- +* @subsection 6.2.2.1 - classes, pag, filters +*-------------------------------------------- +*/ +.bp-user { + + #buddypress { + + table { + th {@include font-size(13)} + td {@include font-size(12)} + + @include medium-up { + th {@include font-size(16)} + td {@include font-size(14)} + } + } + + .pag-count {font-style: italic;} + + .notifications-options-nav, + .messages-options-nav { + float: left; + width: 100%; + + @media screen and (min-width: 37.500em) { + width: 60%; + } + + select, + input { + @include font-size(14); + outline: 0; + padding: 0; + } + + select { + float: left; + margin-right: 0; + width: 49%; + + @media screen and (min-width: 37.500em) { + width: auto; + } + } + + input { + float: left; + font-family: inherit; + line-height: 20px; + margin-left: 1%; + width: 50%; + + @media screen and (min-width: 37.500em) { + width: auto; + } + + &[disabled="disabled"]:focus, + &[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 { + .bp-widget { + h4 { + background: lighten($dark-background, 10%); + color: #fff; + margin-bottom: 0; + padding: 0.4em; + } + + table {margin-top: 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 { + margin: $spacing-val-xs 0 $spacing-val-md; + } + + .field-visibility-settings-toggle, + .field-visibility-settings { + @include font-size(14); + } + + .field-visibility-settings-close, + .visibility-toggle-link { + background: lighten($dark-background, 10%); + @include border-radius(2px); + color: #eee; + font-weight: bold; + padding: 0.1em 0.5em; + text-decoration: none; + + &:focus, + &:hover { + color: #fff; + } + } + } // close profile form + + .bp-avatar { + #bp-delete-avatar { + a {font-size: inherit; } + } + } + } // close .profile + + } // 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; + } + + .highlight { + font-size: 100%; + } + } + + .message-metadata { + overflow: hidden; + + img.avatar { + float: none; + } + + @media screen and (min-width: 46.25em) { + 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: lighten($dark-background, 10%); + } + } + + tr { + td { + background: $content-background; + @include box-model(border-box); + display: inline-block; + float: left; + } + + td.thread-star, + td.thread-options { + border-bottom: 1px solid $medium-background; + height: 2.4em; + padding-bottom: 0.2em; + padding-top: 0.2em; + + @media screen and (max-width: 46.25em) { + padding-top: 0; + } + } + + td.thread-star { + vertical-align: middle; + + .message-action-star, + .message-action-unstar { + line-height: 1.2; + } + + span.icon:before { + @include font-size(14); + } + } + + td.bulk-select-check, + td.thread-from { + height: 3em; + + @media screen and (max-width: 37.500em) { + 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: " \2016 \00a0"attr(title); + @include font-size(12); + } + } + + td.thread-options { + text-align: right; + + a { + @include font-size(12); + line-height: 1.2; + } + } + + span.from { + display: none; + } + + span.activity { + display: block; + float: right; + line-height: 2; + + @media screen and (max-width: 37.500em) { + clear: both; + @include font-size(11); + width: 100%; + } + } + } + + tr.unread { + td { + border-color: $border-light; + } + } + + 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; + } + } + + #send_message_form { + input, + textarea { + @include box-model(border-box); + } + } + + .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 { + tr {margin: 3em 0;} + 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; + } + + a.button { + border: 1px solid $border-color; + line-height: initial; + padding: 0.4em 0.3em; + } + } + + 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 + line-height: 1; + padding-bottom: 1em; + 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; + + li { + margin: $spacing-val-sm 0; + + &:focus, + &:hover { + cursor: pointer; + } + + img { vertical-align: bottom;} + + } + } + +} // 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%; + } + + @media screen and (min-width: 46.25em) { + 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 + +/** + *------------------------------------ + * @subsection 6.2.2.6 - Notifications + *------------------------------------ + */ + + +/** +*------------------------------------------------------------------------------- +* @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 { + border-width: 1px; + box-shadow: none; + @include box-model(border-box); + width: 100%; + } + } + } +} + + +#buddypress { + + // Match BP form elements to Themes(2012) 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; + } + } + } + } + + .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; + } + + } // 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; + + form { // *sigh* only to bludgeon over specified rules + border: 1px solid rgba($border-color, 0.6); + overflow: hidden; + + label { + float: left; + width: 70%; + } + + input[type='text'], + input[type='submit'] { + border: 0; + border-radius: 0; + box-shadow: none; + @include box-model(border-box); + @include font-size(14); + line-height: 1.8; + margin: 0; + min-height: 2rem; + } + + input[type='text'] { + border-right: 1px solid rgba($border-color, 0.6); + float: left; + margin: 0; + padding: 0 0.2em 0; + width: 70%; + } + + input[type='submit'] { + float: right; + font-weight: normal; + padding: 0 1em; + text-align: center; + text-transform: none; + width: 30%; + } + } // close form + + } // close .dir-search, .message-search + + // 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; + + form { + label, + input[type='text'], + input[type='submit'] { + width: auto; + } + } + } + + } // close @media + + @include large-up { + + .dir-search, + .message-search { + form { + input[type='text'] { @include font-size(16) ;} + input[type='submit'] { @include font-size(16) ;} + } + } + } + +} // close #buddypress + +/** +*------------------------------------------------------------------------------- +* @section 8.0 - Tables - General +*------------------------------------------------------------------------------- +*/ +.bp-user { + #buddypress { + + table { + @include font-size(14); + margin: $spacing-val-md 0; + + // 2010 adds huge bottom margin to input controls unwanted in the table paradigm + input { + margin: 0; + } + + tr th { + background: lighten($dark-background, 10%); + border-color: darken($border-light, 20%); + color: $content-background; + @include font-size(16); + padding: 4px 8px; + text-transform: capitalize; + } + + tr td { + padding: 8px; + } + + // Reduce the themes inherited paragraph margins in tables + p {margin-bottom: 0.5em;} + } + + @media screen and (min-width: 55em) { + table {@include font-size(16);} + } + + // 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%; + } + } + + th.actions { + text-align: center; + } + + .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 + + } // #buddypress +} // .bp-user + +/** +*------------------------------------------------------------------------------- +* @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 + +} // 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 +*------------------------------------------------------------------------------- +*/ 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 0966774d2e557e9c5b181481042b01f7db4f018f..40cfcaa995ee79acdb0747214f473d0e9a26e978 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 @@ -265,7 +265,8 @@ jq(document).ready( function() { /* Reset the page */ jq.cookie( 'bp-activity-oldestpage', 1, { - path: '/' + path: '/', + secure: ( 'https:' === window.location.protocol ) } ); /* Activity Stream Tabs */ @@ -438,7 +439,8 @@ jq(document).ready( function() { if ( null === jq.cookie('bp-activity-oldestpage') ) { jq.cookie('bp-activity-oldestpage', 1, { - path: '/' + path: '/', + secure: ( 'https:' === window.location.protocol ) } ); } @@ -467,7 +469,8 @@ jq(document).ready( function() { { jq('#buddypress li.load-more').removeClass('loading'); jq.cookie( 'bp-activity-oldestpage', oldest_page, { - path: '/' + path: '/', + secure: ( 'https:' === window.location.protocol ) } ); jq('#buddypress ul.activity-list').append(response.contents); @@ -1756,25 +1759,31 @@ jq(document).ready( function() { /* Clear BP cookies on logout */ jq('#wp-admin-bar-logout, a.logout').on( 'click', function() { jq.removeCookie('bp-activity-scope', { - path: '/' + path: '/', + secure: ( 'https:' === window.location.protocol ) }); jq.removeCookie('bp-activity-filter', { - path: '/' + path: '/', + secure: ( 'https:' === window.location.protocol ) }); jq.removeCookie('bp-activity-oldestpage', { - path: '/' + path: '/', + secure: ( 'https:' === window.location.protocol ) }); var objects = [ 'members', 'groups', 'blogs', 'forums' ]; jq(objects).each( function(i) { jq.removeCookie('bp-' + objects[i] + '-scope', { - path: '/' + path: '/', + secure: ( 'https:' === window.location.protocol ) } ); jq.removeCookie('bp-' + objects[i] + '-filter', { - path: '/' + path: '/', + secure: ( 'https:' === window.location.protocol ) } ); jq.removeCookie('bp-' + objects[i] + '-extras', { - path: '/' + path: '/', + secure: ( 'https:' === window.location.protocol ) } ); }); }); @@ -1850,7 +1859,8 @@ jq(document).ready( function() { function bp_init_activity() { /* Reset the page */ jq.cookie( 'bp-activity-oldestpage', 1, { - path: '/' + path: '/', + secure: ( 'https:' === window.location.protocol ) } ); if ( undefined !== jq.cookie('bp-activity-filter') && jq('#activity-filter-select').length ) { @@ -1894,13 +1904,16 @@ function bp_filter_request( object, filter, scope, target, search_terms, page, e /* Save the settings we want to remain persistent to a cookie */ jq.cookie( 'bp-' + object + '-scope', scope, { - path: '/' + path: '/', + secure: ( 'https:' === window.location.protocol ) } ); jq.cookie( 'bp-' + object + '-filter', filter, { - path: '/' + path: '/', + secure: ( 'https:' === window.location.protocol ) } ); jq.cookie( 'bp-' + object + '-extras', extras, { - path: '/' + path: '/', + secure: ( 'https:' === window.location.protocol ) } ); /* Set the correct selected nav and filter */ @@ -1958,16 +1971,19 @@ function bp_activity_request(scope, filter) { /* Save the type and filter to a session cookie */ if ( null !== scope ) { jq.cookie( 'bp-activity-scope', scope, { - path: '/' + path: '/', + secure: ( 'https:' === window.location.protocol ) } ); } if ( null !== filter ) { jq.cookie( 'bp-activity-filter', filter, { - path: '/' + path: '/', + secure: ( 'https:' === window.location.protocol ) } ); } jq.cookie( 'bp-activity-oldestpage', 1, { - path: '/' + path: '/', + secure: ( 'https:' === window.location.protocol ) } ); /* Remove selected and loading classes from tabs */ 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 226e9cd745564bbaaa7628d16461d780628624e9..e84b146387a008a68144d5b610302988e1a3d4f6 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,3 +1,2 @@ -/*! buddypress - v2.5.3 - 2016-05-24 5:17:45 PM UTC - https://wordpress.org/plugins/buddypress/ */ -function bp_init_activity(){jq.cookie("bp-activity-oldestpage",1,{path:"/"}),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?!1:(null===c&&(c="all"),jq.cookie("bp-"+a+"-scope",c,{path:"/"}),jq.cookie("bp-"+a+"-filter",b,{path:"/"}),jq.cookie("bp-"+a+"-extras",g,{path:"/"}),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:"/"}),null!==b&&jq.cookie("bp-activity-filter",b,{path:"/"}),jq.cookie("bp-activity-oldestpage",1,{path:"/"}),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>"))}))}):!1}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:"/"}),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")?(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:"/"}),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:"/"}),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=jq(a.target);return"submit"===e.attr("type")?(b=jq(".item-list-tabs li.selected").attr("id").split("-"),c=b[0],d=null,"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.parent().children("label").children("input").val(),1,jq.cookie("bp-"+c+"-extras"),null,d),!1):void 0}}),jq("div.item-list-tabs").on("click",function(a){if(!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?!1:(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")?!0:k.parent().parent().hasClass("pagination")&&!k.parent().parent().hasClass("no-ajax")?k.hasClass("dots")||k.hasClass("current")?!1:(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=-1!==f.indexOf("pag-bottom")?"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):!1}),jq("#submit_topic_cancel").on("click",function(){return jq("#new-topic-post").length?(jq("#new-topic-post").slideUp(200),!1):!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){return a?BP_DTheme.unsaved_changes:void 0}}),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")?!1:(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(){return!1===confirm(BP_DTheme.leave_group_confirm)?!1:void 0}),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)?!1:(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(){return-1!==jq.inArray(this.id,Array("delete_sentbox_messages","delete_inbox_messages"))?(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)):void 0}),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:"/"}),jq.removeCookie("bp-activity-filter",{path:"/"}),jq.removeCookie("bp-activity-oldestpage",{path:"/"});var a=["members","groups","blogs","forums"];jq(a).each(function(b){jq.removeCookie("bp-"+a[b]+"-scope",{path:"/"}),jq.removeCookie("bp-"+a[b]+"-filter",{path:"/"}),jq.removeCookie("bp-"+a[b]+"-extras",{path:"/"})})}),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?!1:(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>"))}))}):!1}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")?(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=jq(a.target);return"submit"===e.attr("type")?(b=jq(".item-list-tabs li.selected").attr("id").split("-"),c=b[0],d=null,"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.parent().children("label").children("input").val(),1,jq.cookie("bp-"+c+"-extras"),null,d),!1):void 0}}),jq("div.item-list-tabs").on("click",function(a){if(!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?!1:(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")?!0:k.parent().parent().hasClass("pagination")&&!k.parent().parent().hasClass("no-ajax")?k.hasClass("dots")||k.hasClass("current")?!1:(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=-1!==f.indexOf("pag-bottom")?"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):!1}),jq("#submit_topic_cancel").on("click",function(){return jq("#new-topic-post").length?(jq("#new-topic-post").slideUp(200),!1):!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){return a?BP_DTheme.unsaved_changes:void 0}}),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")?!1:(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(){return!1===confirm(BP_DTheme.leave_group_confirm)?!1:void 0}),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)?!1:(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(){return-1!==jq.inArray(this.id,Array("delete_sentbox_messages","delete_inbox_messages"))?(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)):void 0}),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 diff --git a/wp-content/plugins/buddypress/bp-templates/bp-legacy/js/password-verify.min.js b/wp-content/plugins/buddypress/bp-templates/bp-legacy/js/password-verify.min.js index 3763242c808b958267b96c0811e730d2743643c8..211ce56b24f9e593195ffdc5d589a7687cc77a22 100644 --- a/wp-content/plugins/buddypress/bp-templates/bp-legacy/js/password-verify.min.js +++ b/wp-content/plugins/buddypress/bp-templates/bp-legacy/js/password-verify.min.js @@ -1,2 +1 @@ -/*! buddypress - v2.5.3 - 2016-05-24 5:17:45 PM UTC - https://wordpress.org/plugins/buddypress/ */ !function(a){function b(){var b,c=a(".password-entry").val(),d=a(".password-entry-confirm").val();if(a("#pass-strength-result").removeClass("short bad good strong"),!c)return void a("#pass-strength-result").html(pwsL10n.empty);switch(b=wp.passwordStrength.meter(c,wp.passwordStrength.userInputBlacklist(),d)){case 2:a("#pass-strength-result").addClass("bad").html(pwsL10n.bad);break;case 3:a("#pass-strength-result").addClass("good").html(pwsL10n.good);break;case 4:a("#pass-strength-result").addClass("strong").html(pwsL10n.strong);break;case 5:a("#pass-strength-result").addClass("short").html(pwsL10n.mismatch);break;default:a("#pass-strength-result").addClass("short").html(pwsL10n["short"])}}a(document).ready(function(){a(".password-entry").val("").keyup(b),a(".password-entry-confirm").val("").keyup(b)})}(jQuery); \ No newline at end of file diff --git a/wp-content/plugins/buddypress/bp-themes/bp-default/groups/single/home.php b/wp-content/plugins/buddypress/bp-themes/bp-default/groups/single/home.php index 977c354bd58441e4876a0be807dab00b3e8f8ede..b4f1af1908db9fc87e15455028d8ace762d60bdc 100644 --- a/wp-content/plugins/buddypress/bp-themes/bp-default/groups/single/home.php +++ b/wp-content/plugins/buddypress/bp-themes/bp-default/groups/single/home.php @@ -72,6 +72,9 @@ // Old group forums elseif ( bp_is_group_forum() ) : locate_template( array( 'groups/single/forum.php' ), true ); + // Membership request + elseif ( bp_is_group_membership_request() ) : locate_template( array( 'groups/single/request-membership.php' ), true ); + // Anything else (plugins mostly) else : locate_template( array( 'groups/single/plugins.php' ), true ); diff --git a/wp-content/plugins/buddypress/bp-xprofile/admin/js/admin.min.js b/wp-content/plugins/buddypress/bp-xprofile/admin/js/admin.min.js index b9d654cd7a131ac0e70f1f4d3eb3dba8c4583b63..c545c3f6f093c65fb3dbde3786043190f6060cf1 100644 --- a/wp-content/plugins/buddypress/bp-xprofile/admin/js/admin.min.js +++ b/wp-content/plugins/buddypress/bp-xprofile/admin/js/admin.min.js @@ -1,2 +1 @@ -/*! buddypress - v2.5.3 - 2016-05-24 5:17:45 PM UTC - https://wordpress.org/plugins/buddypress/ */ function add_option(a){var b=document.getElementById(a+"_more"),c=document.getElementById(a+"_option_number").value,d=document.createElement("div"),e=document.createElement("span"),f=document.createElement("input"),g=document.createElement("label"),h=document.createElement("input"),i=document.createTextNode("Default Value"),j=document.createTextNode("Delete"),k=document.createElement("div"),l=document.createElement("a");d.setAttribute("id",a+"_div"+c),d.setAttribute("class","bp-option sortable"),e.setAttribute("class","bp-option-icon grabber"),f.setAttribute("type","text"),f.setAttribute("name",a+"_option["+c+"]"),f.setAttribute("id",a+"_option"+c),"checkbox"===a||"multiselectbox"===a?(h.setAttribute("type","checkbox"),h.setAttribute("name","isDefault_"+a+"_option["+c+"]")):(h.setAttribute("type","radio"),h.setAttribute("name","isDefault_"+a+"_option")),h.setAttribute("value",c),l.setAttribute("href",'javascript:hide("'+a+"_div"+c+'")'),l.setAttribute("class","delete"),l.appendChild(j),k.setAttribute("class","delete-button"),k.appendChild(l),g.appendChild(document.createTextNode(" ")),g.appendChild(h),g.appendChild(document.createTextNode(" ")),g.appendChild(i),g.appendChild(document.createTextNode(" ")),d.appendChild(e),d.appendChild(document.createTextNode(" ")),d.appendChild(f),d.appendChild(g),d.appendChild(k),b.appendChild(d),enableSortableFieldOptions(a),document.getElementById(a+"_option"+c).focus(),c++,document.getElementById(a+"_option_number").value=c}function show_options(a){for(var b,c=0;c<XProfileAdmin.supports_options_field_types.length;c++)document.getElementById(XProfileAdmin.supports_options_field_types[c]).style.display="none";XProfileAdmin.supports_options_field_types.indexOf(a)>=0?(document.getElementById(a).style.display="",b="on"):(jQuery("#do-autolink").val(""),b=""),""===XProfileAdmin.do_autolink&&jQuery("#do-autolink").val(b)}function hide(a){if(!document.getElementById(a))return!1;document.getElementById(a).style.display="none";var b=a.replace("div","option");document.getElementById(b).value=""}function toggle_no_member_type_notice(){var a=jQuery("input.member-type-selector");if(a.length){var b=!1;a.each(function(){return jQuery(this).is(":checked")?(b=!0,!1):void 0}),b?jQuery("p.member-type-none-notice").addClass("hide"):jQuery("p.member-type-none-notice").removeClass("hide")}}function enableSortableFieldOptions(){jQuery(".bp-options-box").sortable({cursor:"move",items:"div.sortable",tolerance:"intersect",axis:"y"}),jQuery(".sortable, .sortable span").css("cursor","move")}function destroySortableFieldOptions(){jQuery(".bp-options-box").sortable("destroy"),jQuery(".sortable, .sortable span").css("cursor","default")}function titleHint(a){a=a||"title";var b=jQuery("#"+a),c=jQuery("#"+a+"-prompt-text");""===b.val()?c.removeClass("screen-reader-text"):c.addClass("screen-reader-text"),c.click(function(){jQuery(this).addClass("screen-reader-text"),b.focus()}),b.blur(function(){""===this.value&&c.removeClass("screen-reader-text")}).focus(function(){c.addClass("screen-reader-text")}).keydown(function(a){c.addClass("screen-reader-text"),jQuery(this).unbind(a)})}var fixHelper=function(a,b){return b.children().each(function(){jQuery(this).width(jQuery(this).width())}),b};jQuery(document).ready(function(){function a(a){b=jQuery("ul:first li",a).droppable({accept:".connectedSortable fieldset",hoverClass:"ui-state-hover",activeClass:"ui-state-acceptable",touch:"pointer",tolerance:"pointer",drop:function(c,d){var e=jQuery(this),f=jQuery(e.find("a").attr("href")).find(".connectedSortable");jQuery(e).removeClass("drop-candidate"),d.draggable.hide("slow",function(){a.tabs("option","active",b.index(e)),jQuery(this).appendTo(f).show("slow").animate({opacity:"1"},500),f=jQuery(e.find("a").attr("href")).find(".connectedSortable"),jQuery(f).find("p.nofields").hide("slow"),jQuery.post(ajaxurl,{action:"xprofile_reorder_fields",cookie:encodeURIComponent(document.cookie),_wpnonce_reorder_fields:jQuery("input#_wpnonce_reorder_fields").val(),field_order:jQuery(f).sortable("serialize"),field_group_id:jQuery(f).attr("id")},function(){})})},over:function(){jQuery(this).addClass("drop-candidate")},out:function(){jQuery(this).removeClass("drop-candidate")}})}jQuery("#bp-xprofile-add-field #title").focus(),toggle_no_member_type_notice(),jQuery("input.member-type-selector").on("change",function(){toggle_no_member_type_notice()}),jQuery("a.ajax-option-delete").on("click",function(){var a=this.id.split("-");a=a[1],jQuery.post(ajaxurl,{action:"xprofile_delete_option",cookie:encodeURIComponent(document.cookie),_wpnonce:jQuery("input#_wpnonce").val(),option_id:a},function(){})}),jQuery('[id^="sort_order_"]').change(function(){"custom"!==jQuery(this).val()?destroySortableFieldOptions():enableSortableFieldOptions(jQuery("#fieldtype :selected").val())}),jQuery("ul#field-group-tabs").show(),jQuery("ul#field-group-tabs").sortable({cursor:"move",axis:"x",opacity:1,items:"li",tolerance:"intersect",update:function(){jQuery.post(ajaxurl,{action:"xprofile_reorder_groups",cookie:encodeURIComponent(document.cookie),_wpnonce_reorder_groups:jQuery("input#_wpnonce_reorder_groups").val(),group_order:jQuery(this).sortable("serialize")},function(){})}}).disableSelection(),jQuery("fieldset.field-group").sortable({cursor:"move",opacity:.7,items:"fieldset",tolerance:"pointer",update:function(){jQuery.post(ajaxurl,{action:"xprofile_reorder_fields",cookie:encodeURIComponent(document.cookie),_wpnonce_reorder_fields:jQuery("input#_wpnonce_reorder_fields").val(),field_order:jQuery(this).sortable("serialize"),field_group_id:jQuery(this).attr("id")},function(){})}}).disableSelection(),enableSortableFieldOptions(jQuery("#fieldtype :selected").val()),titleHint("title");var b,c=jQuery("#tabs").tabs();a(c)}); \ No newline at end of file diff --git a/wp-content/plugins/buddypress/bp-xprofile/bp-xprofile-actions.php b/wp-content/plugins/buddypress/bp-xprofile/bp-xprofile-actions.php index ea7ac6e42e93ded92869bfe6a04e1b1d6ca85800..f833c2ee124ea283ee1e0655b778baf9326285a0 100644 --- a/wp-content/plugins/buddypress/bp-xprofile/bp-xprofile-actions.php +++ b/wp-content/plugins/buddypress/bp-xprofile/bp-xprofile-actions.php @@ -20,8 +20,8 @@ defined( 'ABSPATH' ) || exit; * * The function will delete the active avatar for a user. * - * @uses bp_core_delete_avatar() Deletes the active avatar for the logged in user. - * @uses add_action() Runs a specific function for an action when it fires. + * @since 1.0.0 + * */ function xprofile_action_delete_avatar() { diff --git a/wp-content/plugins/buddypress/bp-xprofile/bp-xprofile-activity.php b/wp-content/plugins/buddypress/bp-xprofile/bp-xprofile-activity.php index 8f184cb1b03887eee4f7b6074755c99745cc7995..dd5aa74a9058c936977e9a786d411d1edf435a2b 100644 --- a/wp-content/plugins/buddypress/bp-xprofile/bp-xprofile-activity.php +++ b/wp-content/plugins/buddypress/bp-xprofile/bp-xprofile-activity.php @@ -18,7 +18,6 @@ defined( 'ABSPATH' ) || exit; * * @since 1.0.0 * - * @uses bp_activity_set_action() To setup the individual actions. */ function xprofile_register_activity_actions() { @@ -114,8 +113,6 @@ function bp_xprofile_format_activity_action_updated_profile( $action, $activity * * @since 1.0.0 * - * @uses bp_activity_add() Adds an entry to the activity component tables for a specific activity. - * * @param array|string $args String containing all variables used after bp_parse_args() call. * @return array */ @@ -149,7 +146,6 @@ function xprofile_record_activity( $args = '' ) { * * @since 1.0.0 * - * @uses bp_activity_delete() Deletes an entry to the activity component tables * for a specific activity. * * @param array|string $args Containing all variables used after bp_parse_args() call. @@ -205,7 +201,6 @@ function xprofile_register_activity_action( $key, $value ) { * @since 1.0.0 * @since 2.3.4 Add new parameter to get the user id the avatar was set for. * - * @uses bp_activity_add() Adds an entry to the activity component tables for a * specific activity * * @param int $user_id The user id the avatar was set for. 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 47cf27461f5f56d4c5d8cfb9ca52aac1c1038bba..352a8b01ad2ebf649d65a5898b574a47abb89446 100644 --- a/wp-content/plugins/buddypress/bp-xprofile/bp-xprofile-admin.php +++ b/wp-content/plugins/buddypress/bp-xprofile/bp-xprofile-admin.php @@ -10,14 +10,15 @@ // Exit if accessed directly. defined( 'ABSPATH' ) || exit; -require dirname( __FILE__ ) . '/classes/class-bp-xprofile-user-admin.php'; +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. * - * @uses bp_current_user_can() returns true if the current user is a site admin, false if not. - * @uses add_users_page() Adds a submenu tab to a top level tab in the admin area. + * @since 1.0.0 * * @return bool */ @@ -36,6 +37,8 @@ add_action( bp_core_admin_hook(), 'xprofile_add_admin_menu' ); * Handles all actions for the admin area for creating, editing and deleting * profile groups and fields. * + * @since 1.0.0 + * * @param string $message Message to display. * @param string $type Type of action to be displayed. */ @@ -68,7 +71,7 @@ function xprofile_admin( $message = '', $type = 'error' ) { } /** - * Output the main XProfile management screen + * Output the main XProfile management screen. * * @since 2.3.0 * @@ -183,6 +186,7 @@ function xprofile_admin_screen( $message = '', $type = 'error' ) { <fieldset id="<?php echo esc_attr( $group->id ); ?>" class="connectedSortable field-group"> <legend class="screen-reader-text"><?php /** This filter is documented in bp-xprofile/bp-xprofile-template.php */ + /* translators: accessibility text */ printf( esc_html__( 'Fields for "%s" Group', 'buddypress' ), apply_filters( 'bp_get_the_profile_group_name', $group->name ) ); ?></legend> @@ -240,6 +244,8 @@ function xprofile_admin_screen( $message = '', $type = 'error' ) { /** * Handles the adding or editing of groups. * + * @since 1.0.0 + * * @param int|null $group_id Group ID to manage. */ function xprofile_admin_manage_group( $group_id = null ) { @@ -303,6 +309,8 @@ function xprofile_admin_manage_group( $group_id = null ) { /** * Handles the deletion of profile data groups. * + * @since 1.0.0 + * * @param int $group_id ID of the group to delete. */ function xprofile_admin_delete_group( $group_id ) { @@ -334,6 +342,8 @@ function xprofile_admin_delete_group( $group_id ) { /** * Handles the adding or editing of profile field data for a user. * + * @since 1.0.0 + * * @param int $group_id ID of the group. * @param int|null $field_id ID of the field being managed. */ @@ -416,12 +426,10 @@ function xprofile_admin_manage_field( $group_id, $field_id = null ) { } // Save autolink settings. - if ( 1 != $field_id ) { - if ( isset( $_POST['do_autolink'] ) && 'on' === wp_unslash( $_POST['do_autolink'] ) ) { - bp_xprofile_update_field_meta( $field_id, 'do_autolink', 'on' ); - } else { - bp_xprofile_update_field_meta( $field_id, 'do_autolink', 'off' ); - } + if ( isset( $_POST['do_autolink'] ) && 'on' === wp_unslash( $_POST['do_autolink'] ) ) { + bp_xprofile_update_field_meta( $field_id, 'do_autolink', 'on' ); + } else { + bp_xprofile_update_field_meta( $field_id, 'do_autolink', 'off' ); } /** @@ -452,6 +460,7 @@ function xprofile_admin_manage_field( $group_id, $field_id = null ) { * Handles the deletion of a profile field (or field option). * * @since 1.0.0 + * * @global string $message The feedback message to show. * @global $type The type of feedback message to show. * 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 19575d330915074cf7ddc5a78240c67eaefe12f9..8d9b28ceb0526ac1cabd3d85ac5c5c6b8cbeb238 100644 --- a/wp-content/plugins/buddypress/bp-xprofile/bp-xprofile-caps.php +++ b/wp-content/plugins/buddypress/bp-xprofile/bp-xprofile-caps.php @@ -20,9 +20,6 @@ defined( 'ABSPATH' ) || exit; * @param int $user_id User id. * @param mixed $args Arguments. * - * @uses get_post() To get the post. - * @uses get_post_type_object() To get the post type object. - * @uses apply_filters() Calls 'bp_map_meta_caps' with caps, cap, user id and args. * @return array Actual capabilities for meta capability. */ function bp_xprofile_map_meta_caps( $caps, $cap, $user_id, $args ) { 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 fde1e11b0da146336b10948094fdc44f5110a8ec..d5d4f85b0d6a92df3680c3a5aecdd8b76a2b9685 100644 --- a/wp-content/plugins/buddypress/bp-xprofile/bp-xprofile-filters.php +++ b/wp-content/plugins/buddypress/bp-xprofile/bp-xprofile-filters.php @@ -82,8 +82,7 @@ add_filter( 'xprofile_field_default_before_save', 'bp_xprofile_sanitize_field_de * * @since 2.3.0 * - * @param mixed $field_options Options to sanitize. - * + * @param mixed $field_options Options to sanitize. * @return mixed */ function bp_xprofile_sanitize_field_options( $field_options = '' ) { @@ -99,8 +98,7 @@ function bp_xprofile_sanitize_field_options( $field_options = '' ) { * * @since 2.3.0 * - * @param mixed $field_default Field defaults to sanitize. - * + * @param mixed $field_default Field defaults to sanitize. * @return mixed */ function bp_xprofile_sanitize_field_default( $field_default = '' ) { @@ -114,9 +112,10 @@ function bp_xprofile_sanitize_field_default( $field_default = '' ) { /** * Run profile field values through kses with filterable allowed tags. * + * @since 1.5.0 + * * @param string $content Content to filter. * @param object|null $data_obj The BP_XProfile_ProfileData object. - * * @return string $content */ function xprofile_filter_kses( $content, $data_obj = null ) { @@ -154,11 +153,12 @@ function xprofile_filter_kses( $content, $data_obj = null ) { /** * Safely runs profile field data through kses and force_balance_tags. * + * @since 1.2.6 + * * @param string $field_value Field value being santized. * @param int $field_id Field ID being sanitized. * @param bool $reserialize Whether to reserialize arrays before returning. Defaults to true. * @param object|null $data_obj The BP_XProfile_ProfileData object. - * * @return string */ function xprofile_sanitize_data_value_before_save( $field_value, $field_id = 0, $reserialize = true, $data_obj = null ) { @@ -216,7 +216,6 @@ function xprofile_sanitize_data_value_before_save( $field_value, $field_id = 0, * * @param string $field_value XProfile field_value to be filtered. * @param string $field_type XProfile field_type to be filtered. - * * @return string $field_value Filtered XProfile field_value. False on failure. */ function xprofile_filter_format_field_value( $field_value, $field_type = '' ) { @@ -242,7 +241,6 @@ function xprofile_filter_format_field_value( $field_value, $field_type = '' ) { * @param mixed $field_value Field value. * @param string $field_type Field type. * @param string|int $field_id Optional. ID of the field. - * * @return mixed */ function xprofile_filter_format_field_value_by_type( $field_value, $field_type = '', $field_id = '' ) { @@ -393,9 +391,10 @@ function xprofile_filter_link_profile_data( $field_value, $field_type = 'textbox * This filter loops through the comments return by a normal WordPress request * and swaps out user data with BP xprofile data, where available. * + * @since 1.2.0 + * * @param array $comments Comments to filter in. * @param int $post_id Post ID the comments are for. - * * @return array $comments */ function xprofile_filter_comments( $comments, $post_id = 0 ) { 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 0996257967c7d263656f9607504e3bbbed9a8ee9..1d677299c80f1cec147c84331134a93f203e5ad0 100644 --- a/wp-content/plugins/buddypress/bp-xprofile/bp-xprofile-functions.php +++ b/wp-content/plugins/buddypress/bp-xprofile/bp-xprofile-functions.php @@ -24,8 +24,7 @@ defined( 'ABSPATH' ) || exit; * * @since 2.1.0 * - * @param array $args See {@link BP_XProfile_Group::get()} for description of - * arguments. + * @param array $args See {@link BP_XProfile_Group::get()} for description of arguments. * @return array $groups */ function bp_xprofile_get_groups( $args = array() ) { @@ -48,7 +47,14 @@ function bp_xprofile_get_groups( $args = array() ) { * * @since 1.0.0 * - * @param array|string $args Array of arguments for field group insertion. + * @param array|string $args { + * Array of arguments for field group insertion. + * + * @type int|bool $field_group_id ID of the field group to insert into. + * @type string|bool $name Name of the group. + * @type string $description Field group description. + * @type bool $can_delete Whether or not the field group can be deleted. + * } * @return boolean */ function xprofile_insert_field_group( $args = '' ) { @@ -193,6 +199,8 @@ function bp_xprofile_create_field_type( $type ) { /** * Insert or update an xprofile field. * + * @since 1.1.0 + * * @param array|string $args { * Array of arguments. * @type int $field_id Optional. Pass the ID of an existing field to edit that field. @@ -273,6 +281,8 @@ 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. * @return BP_XProfile_Field|null Field object if found, otherwise null. */ @@ -296,6 +306,8 @@ function xprofile_get_field( $field ) { /** * Delete a profile field object. * + * @since 1.1.0 + * * @param int|object $field_id ID of the field or object representing field data. * @return bool Whether or not the field was deleted. */ @@ -313,7 +325,7 @@ function xprofile_delete_field( $field_id ) { * When the field value is serialized, this function unserializes and filters * each item in the array. * - * @uses BP_XProfile_ProfileData::get_value_byid() Fetches the value based on the params passed. + * @since 1.0.0 * * @param mixed $field The ID of the field, or the $name of the field. * @param int $user_id The ID of the user. @@ -373,7 +385,7 @@ function xprofile_get_field_data( $field, $user_id = 0, $multi_format = 'array' /** * A simple function to set profile data for a specific field for a specific user. * - * @uses xprofile_get_field_id_from_name() Gets the ID from the field based on the name. + * @since 1.0.0 * * @param int|string $field The ID of the field, or the $name of the field. * @param int $user_id The ID of the user. @@ -454,6 +466,8 @@ function xprofile_set_field_data( $field, $user_id, $value, $is_required = false /** * Set the visibility level for this field. * + * @since 1.6.0 + * * @param int $field_id The ID of the xprofile field. * @param int $user_id The ID of the user to whom the data belongs. * @param string $visibility_level What the visibity setting should be. @@ -519,6 +533,8 @@ function xprofile_get_field_visibility_level( $field_id = 0, $user_id = 0 ) { /** * Delete XProfile field data. * + * @since 1.1.0 + * * @param string $field Field to delete. * @param int $user_id User ID to delete field from. * @return bool Whether or not the field was deleted. @@ -547,6 +563,8 @@ function xprofile_delete_field_data( $field = '', $user_id = 0 ) { /** * Check if field is a required field. * + * @since 1.1.0 + * * @param int $field_id ID of the field to check for. * @return bool Whether or not field is required. */ @@ -564,7 +582,8 @@ function xprofile_check_is_required_field( $field_id ) { /** * Returns the ID for the field based on the field name. * - * @package BuddyPress Core + * @since 1.0.0 + * * @param string $field_name The name of the field to get the ID for. * @return int $field_id on success, false on failure. */ @@ -575,10 +594,11 @@ function xprofile_get_field_id_from_name( $field_name ) { /** * Fetches a random piece of profile data for the user. * + * @since 1.0.0 + * * @global BuddyPress $bp The one true BuddyPress instance. * @global object $wpdb WordPress DB access object. * @global object $current_user WordPress global variable containing current logged in user information. - * @uses xprofile_format_profile_field() Formats profile field data so it is suitable for display. * * @param int $user_id User ID of the user to get random data for. * @param bool $exclude_fullname Optional; whether or not to exclude the full name field as random data. @@ -611,6 +631,8 @@ function xprofile_get_random_profile_data( $user_id, $exclude_fullname = true ) /** * Formats a profile field according to its type. [ TODO: Should really be moved to filters ] * + * @since 1.0.0 + * * @param string $field_type The type of field: datebox, selectbox, textbox etc. * @param string $field_value The actual value. * @return string|bool The formatted value, or false if value is empty. @@ -634,6 +656,8 @@ function xprofile_format_profile_field( $field_type, $field_value ) { /** * Update the field position for a provided field. * + * @since 1.1.0 + * * @param int $field_id ID of the field to update. * @param int $position Position to update the field to. * @param int $field_group_id Group ID for group the field is in. @@ -768,6 +792,8 @@ add_action( 'bp_user_query_uid_clauses', 'bp_xprofile_bp_user_query_search', 10, /** * Syncs Xprofile data to the standard built in WordPress profile data. * + * @since 1.0.0 + * * @param int $user_id ID of the user to sync. * @return bool */ @@ -801,9 +827,8 @@ function xprofile_sync_wp_profile( $user_id = 0 ) { bp_update_user_meta( $user_id, 'first_name', $firstname ); bp_update_user_meta( $user_id, 'last_name', $lastname ); - global $wpdb; - - $wpdb->query( $wpdb->prepare( "UPDATE {$wpdb->users} SET display_name = %s WHERE ID = %d", $fullname, $user_id ) ); + wp_update_user( array( 'ID' => $user_id, 'display_name' => $fullname ) ); + wp_cache_delete( 'bp_core_userdata_' . $user_id, 'bp' ); } add_action( 'xprofile_updated_profile', 'xprofile_sync_wp_profile' ); add_action( 'bp_core_signup_user', 'xprofile_sync_wp_profile' ); @@ -835,6 +860,8 @@ add_action( 'user_profile_update_errors', 'xprofile_sync_bp_profile', 10, 3 ); * profile data from each table. Also we need to clean anything up in the * usermeta table that this component uses. * + * @since 1.0.0 + * * @param int $user_id The ID of the deleted user. */ function xprofile_remove_data( $user_id ) { @@ -849,6 +876,8 @@ add_action( 'bp_make_spam_user', 'xprofile_remove_data' ); /** * Delete a piece of xprofile metadata. * + * @since 1.5.0 + * * @param int $object_id ID of the object the metadata belongs to. * @param string $object_type Type of object. 'group', 'field', or 'data'. * @param string|bool $meta_key Key of the metadata being deleted. If omitted, all @@ -901,6 +930,8 @@ function bp_xprofile_delete_meta( $object_id, $object_type, $meta_key = false, $ * Note that the default value of $single is true, unlike in the case of the * underlying get_metadata() function. This is for backward compatibility. * + * @since 1.5.0 + * * @param int $object_id ID of the object the metadata belongs to. * @param string $object_type Type of object. 'group', 'field', or 'data'. * @param string $meta_key Key of the metadata being fetched. If omitted, all @@ -928,6 +959,8 @@ function bp_xprofile_get_meta( $object_id, $object_type, $meta_key = '', $single /** * Update a piece of xprofile metadata. * + * @since 1.5.0 + * * @param int $object_id ID of the object the metadata belongs to. * @param string $object_type Type of object. 'group', 'field', or 'data'. * @param string $meta_key Key of the metadata being updated. @@ -977,6 +1010,8 @@ function bp_xprofile_add_meta( $object_id, $object_type, $meta_key, $meta_value, /** * Updates the fieldgroup metadata. * + * @since 1.5.0 + * * @param int $field_group_id Group ID for the group field belongs to. * @param string $meta_key Meta key to update. * @param string $meta_value Meta value to update to. @@ -989,6 +1024,8 @@ function bp_xprofile_update_fieldgroup_meta( $field_group_id, $meta_key, $meta_v /** * Updates the field metadata. * + * @since 1.5.0 + * * @param int $field_id Field ID to update. * @param string $meta_key Meta key to update. * @param string $meta_value Meta value to update to. @@ -1001,6 +1038,8 @@ function bp_xprofile_update_field_meta( $field_id, $meta_key, $meta_value ) { /** * Updates the fielddata metadata. * + * @since 1.5.0 + * * @param int $field_data_id Field ID to update. * @param string $meta_key Meta key to update. * @param string $meta_value Meta value to update to. @@ -1087,6 +1126,8 @@ function bp_xprofile_is_richtext_enabled_for_field( $field_id = null ) { /** * Get visibility levels out of the $bp global. * + * @since 1.6.0 + * * @return array */ function bp_xprofile_get_visibility_levels() { @@ -1110,8 +1151,8 @@ function bp_xprofile_get_visibility_levels() { * be excluded from the profile loop. * * @since 1.6.0 + * * @see BP_XProfile_Group::get() - * @uses apply_filters() Filter bp_xprofile_get_hidden_fields_for_user to modify visibility levels, * or if you have added your own custom levels. * * @param int $displayed_user_id The id of the user the profile fields belong to. @@ -1157,6 +1198,7 @@ function bp_xprofile_get_hidden_fields_for_user( $displayed_user_id = 0, $curren * that should be hidden for the current user pair. * * @since 1.8.2 + * * @see bp_xprofile_get_hidden_fields_for_user() * * @param int $displayed_user_id The id of the user the profile fields belong to. @@ -1203,6 +1245,7 @@ function bp_xprofile_get_hidden_field_types_for_user( $displayed_user_id = 0, $c * Fetch an array of the xprofile fields that a given user has marked with certain visibility levels. * * @since 1.6.0 + * * @see bp_xprofile_get_hidden_fields_for_user() * * @param int $user_id The id of the profile owner. 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 185ec6d8afc1ac4cd9a59c73d44d64fbf7d9734e..a5ea7c124b488a25c8229d9b57e62ec07b292934 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,14 @@ // Exit if accessed directly. defined( 'ABSPATH' ) || exit; -require dirname( __FILE__ ) . '/classes/class-bp-xprofile-component.php'; +if ( ! buddypress()->do_autoload ) { + require dirname( __FILE__ ) . '/classes/class-bp-xprofile-component.php'; +} /** * Bootstrap the XProfile component. + * + * @since 1.6.0 */ function bp_setup_xprofile() { $bp = buddypress(); 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 103e24e491e28c00f44e71e3ec5ebe28f1195953..3b1d3c7481a799a749d001187c70b7295ea527e6 100644 --- a/wp-content/plugins/buddypress/bp-xprofile/bp-xprofile-screens.php +++ b/wp-content/plugins/buddypress/bp-xprofile/bp-xprofile-screens.php @@ -17,7 +17,8 @@ defined( 'ABSPATH' ) || exit; /** * Handles the display of the profile page by loading the correct template file. * - * @uses bp_core_load_template() Looks for and loads a template file within the current member theme (folder/filename). + * @since 1.0.0 + * */ function xprofile_screen_display_profile() { $new = isset( $_GET['new'] ) ? $_GET['new'] : ''; @@ -45,8 +46,8 @@ function xprofile_screen_display_profile() { * Handles the display of the profile edit page by loading the correct template file. * Also checks to make sure this can only be accessed for the logged in users profile. * - * @uses bp_is_my_profile() Checks to make sure the current user being viewed equals the logged in user. - * @uses bp_core_load_template() Looks for and loads a template file within the current member theme (folder/filename). + * @since 1.0.0 + * */ function xprofile_screen_edit_profile() { @@ -203,8 +204,8 @@ function xprofile_screen_edit_profile() { /** * Handles the uploading and cropping of a user avatar. Displays the change avatar page. * - * @uses bp_is_my_profile() Checks to make sure the current user being viewed equals the logged in user. - * @uses bp_core_load_template() Looks for and loads a template file within the current member theme (folder/filename). + * @since 1.0.0 + * */ function xprofile_screen_change_avatar() { @@ -296,8 +297,6 @@ function xprofile_screen_change_avatar() { /** * Displays the change cover image page. * - * @package BuddyPress XProfile - * * @since 2.4.0 */ function xprofile_screen_change_cover_image() { diff --git a/wp-content/plugins/buddypress/bp-xprofile/bp-xprofile-settings.php b/wp-content/plugins/buddypress/bp-xprofile/bp-xprofile-settings.php index 7795c19811c480a7f379cbcd79eb18558d4bf5a4..0c655ffc4bca07b1bae5be3d58a7c8103b4ba319 100644 --- a/wp-content/plugins/buddypress/bp-xprofile/bp-xprofile-settings.php +++ b/wp-content/plugins/buddypress/bp-xprofile/bp-xprofile-settings.php @@ -41,8 +41,6 @@ function bp_xprofile_get_settings_fields( $args = '' ) { * * @since 2.0.0 * - * @uses bp_core_add_message() - * @uses bp_is_my_profile() */ function bp_xprofile_settings_add_feedback_message() { 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 df7472ee8166f5e3e4aad58d991130c6cf3159a2..4fc3ed4e6dbb1bbdbe34705cc633ddd76457a9e4 100644 --- a/wp-content/plugins/buddypress/bp-xprofile/bp-xprofile-template.php +++ b/wp-content/plugins/buddypress/bp-xprofile/bp-xprofile-template.php @@ -10,7 +10,9 @@ // Exit if accessed directly. defined( 'ABSPATH' ) || exit; -require dirname( __FILE__ ) . '/classes/class-bp-xprofile-data-template.php'; +if ( ! buddypress()->do_autoload ) { + require dirname( __FILE__ ) . '/classes/class-bp-xprofile-data-template.php'; +} /** * Query for XProfile groups and fields. @@ -71,16 +73,20 @@ function bp_has_profile( $args = '' ) { * Filters whether or not a group has a profile to display. * * @since 1.1.0 + * @since 2.6.0 Added the `$r` parameter. * * @param bool $has_groups Whether or not there are group profiles to display. * @param string $profile_template Current profile template being used. + * @param array $r Array of arguments passed into the BP_XProfile_Data_Template class. */ - return apply_filters( 'bp_has_profile', $profile_template->has_groups(), $profile_template ); + return apply_filters( 'bp_has_profile', $profile_template->has_groups(), $profile_template, $r ); } /** * Start off the profile groups. * + * @since 1.0.0 + * * @return mixed */ function bp_profile_groups() { @@ -91,6 +97,8 @@ function bp_profile_groups() { /** * Set up the profile groups. * + * @since 1.0.0 + * * @return mixed */ function bp_the_profile_group() { @@ -101,6 +109,8 @@ function bp_the_profile_group() { /** * Whether or not the group has fields to display. * + * @since 1.0.0 + * * @return mixed */ function bp_profile_group_has_fields() { @@ -113,11 +123,9 @@ function bp_profile_group_has_fields() { * * @since 1.0.0 * - * @param array|string $class Extra classes to append to class attribute. - * Pass mutiple class names as an array or - * space-delimited string. - * - * @return string + * @param mixed $class Extra classes to append to class attribute. + * Pass mutiple class names as an array or + * space-delimited string. */ function bp_field_css_class( $class = false ) { echo bp_get_field_css_class( $class ); @@ -126,6 +134,8 @@ function bp_field_css_class( $class = false ) { /** * Return the class attribute for a field. * + * @since 1.1.0 + * * @param string|bool $class Extra classes to append to class attribute. * @return string */ @@ -185,6 +195,10 @@ function bp_field_css_class( $class = false ) { /** * Whether or not the XProfile field has data to display. * + * @since 1.0.0 + * + * @global object $profile_template + * * @return mixed */ function bp_field_has_data() { @@ -195,6 +209,10 @@ function bp_field_has_data() { /** * Whether or not the XProfile field has public data to display. * + * @since 1.0.0 + * + * @global object $profile_template + * * @return bool */ function bp_field_has_public_data() { @@ -209,6 +227,8 @@ function bp_field_has_public_data() { /** * Output the XProfile group ID. + * + * @since 1.0.0 */ function bp_the_profile_group_id() { echo bp_get_the_profile_group_id(); @@ -217,6 +237,8 @@ function bp_the_profile_group_id() { /** * Return the XProfile group ID. * + * @since 1.1.0 + * * @return mixed|void */ function bp_get_the_profile_group_id() { @@ -234,6 +256,8 @@ function bp_the_profile_group_id() { /** * Output the XProfile group name. + * + * @since 1.0.0 */ function bp_the_profile_group_name() { echo bp_get_the_profile_group_name(); @@ -242,6 +266,8 @@ function bp_the_profile_group_name() { /** * Return the XProfile group name. * + * @since 1.0.0 + * * @return mixed|void */ function bp_get_the_profile_group_name() { @@ -259,6 +285,8 @@ function bp_the_profile_group_name() { /** * Output the XProfile group slug. + * + * @since 1.1.0 */ function bp_the_profile_group_slug() { echo bp_get_the_profile_group_slug(); @@ -267,6 +295,8 @@ function bp_the_profile_group_slug() { /** * Return the XProfile group slug. * + * @since 1.1.0 + * * @return mixed|void */ function bp_get_the_profile_group_slug() { @@ -284,6 +314,8 @@ function bp_the_profile_group_slug() { /** * Output the XProfile group description. + * + * @since 1.0.0 */ function bp_the_profile_group_description() { echo bp_get_the_profile_group_description(); @@ -292,6 +324,8 @@ function bp_the_profile_group_description() { /** * Return the XProfile group description. * + * @since 1.0.0 + * * @return mixed|void */ function bp_get_the_profile_group_description() { @@ -309,6 +343,8 @@ function bp_the_profile_group_description() { /** * Output the XProfile group edit form action. + * + * @since 1.1.0 */ function bp_the_profile_group_edit_form_action() { echo bp_get_the_profile_group_edit_form_action(); @@ -317,6 +353,8 @@ function bp_the_profile_group_edit_form_action() { /** * Return the XProfile group edit form action. * + * @since 1.1.0 + * * @return mixed|void */ function bp_get_the_profile_group_edit_form_action() { @@ -338,6 +376,8 @@ function bp_the_profile_group_edit_form_action() { /** * Output the XProfile group field IDs. + * + * @since 1.1.0 */ function bp_the_profile_group_field_ids() { echo bp_get_the_profile_group_field_ids(); @@ -346,6 +386,8 @@ function bp_the_profile_group_field_ids() { /** * Return the XProfile group field IDs. * + * @since 1.1.0 + * * @return string */ function bp_get_the_profile_group_field_ids() { @@ -402,6 +444,8 @@ function bp_the_profile_field_ids() { /** * Return the XProfile fields. * + * @since 1.0.0 + * * @return mixed */ function bp_profile_fields() { @@ -412,6 +456,8 @@ function bp_profile_fields() { /** * Sets up the XProfile field. * + * @since 1.0.0 + * * @return mixed */ function bp_the_profile_field() { @@ -421,6 +467,8 @@ function bp_the_profile_field() { /** * Output the XProfile field ID. + * + * @since 1.1.0 */ function bp_the_profile_field_id() { echo bp_get_the_profile_field_id(); @@ -428,6 +476,9 @@ function bp_the_profile_field_id() { /** * Return the XProfile field ID. + * + * @since 1.1.0 + * * @return mixed|void */ function bp_get_the_profile_field_id() { @@ -445,6 +496,8 @@ function bp_the_profile_field_id() { /** * Outputs the XProfile field name. + * + * @since 1.0.0 */ function bp_the_profile_field_name() { echo bp_get_the_profile_field_name(); @@ -453,6 +506,8 @@ function bp_the_profile_field_name() { /** * Returns the XProfile field name. * + * @since 1.0.0 + * * @return mixed|void */ function bp_get_the_profile_field_name() { @@ -470,6 +525,8 @@ function bp_the_profile_field_name() { /** * Outputs the XProfile field value. + * + * @since 1.0.0 */ function bp_the_profile_field_value() { echo bp_get_the_profile_field_value(); @@ -478,6 +535,8 @@ function bp_the_profile_field_value() { /** * Returns the XProfile field value. * + * @since 1.0.0 + * * @return mixed|void */ function bp_get_the_profile_field_value() { @@ -499,6 +558,8 @@ function bp_the_profile_field_value() { /** * Outputs the XProfile field edit value. + * + * @since 1.1.0 */ function bp_the_profile_field_edit_value() { echo bp_get_the_profile_field_edit_value(); @@ -507,6 +568,8 @@ function bp_the_profile_field_edit_value() { /** * Returns the XProfile field edit value. * + * @since 1.1.0 + * * @return mixed|void */ function bp_get_the_profile_field_edit_value() { @@ -548,6 +611,8 @@ function bp_the_profile_field_edit_value() { /** * Outputs the XProfile field type. + * + * @since 1.1.0 */ function bp_the_profile_field_type() { echo bp_get_the_profile_field_type(); @@ -556,6 +621,8 @@ function bp_the_profile_field_type() { /** * Returns the XProfile field type. * + * @since 1.1.0 + * * @return mixed|void */ function bp_get_the_profile_field_type() { @@ -573,6 +640,8 @@ function bp_the_profile_field_type() { /** * Outputs the XProfile field description. + * + * @since 1.1.0 */ function bp_the_profile_field_description() { echo bp_get_the_profile_field_description(); @@ -581,6 +650,8 @@ function bp_the_profile_field_description() { /** * Returns the XProfile field description. * + * @since 1.1.0 + * * @return mixed|void */ function bp_get_the_profile_field_description() { @@ -598,6 +669,8 @@ function bp_the_profile_field_description() { /** * Outputs the XProfile field input name. + * + * @since 1.1.0 */ function bp_the_profile_field_input_name() { echo bp_get_the_profile_field_input_name(); @@ -606,6 +679,8 @@ function bp_the_profile_field_input_name() { /** * Retursn the XProfile field input name. * + * @since 1.1.0 + * * @return mixed|void */ function bp_get_the_profile_field_input_name() { @@ -645,8 +720,6 @@ function bp_get_the_profile_field_errors_action() { * * @since 1.1.0 * - * @uses bp_get_the_profile_field_options() - * * @param array $args Specify type for datebox. Allowed 'day', 'month', 'year'. */ function bp_the_profile_field_options( $args = array() ) { @@ -657,8 +730,6 @@ function bp_the_profile_field_options( $args = array() ) { * * @since 1.1.0 * - * @uses BP_XProfile_Field::get_children() - * @uses BP_XProfile_ProfileData::get_value_byid() * * @param array $args { * Array of optional arguments. @@ -704,6 +775,8 @@ function bp_the_profile_field_options( $args = array() ) { /** * Render whether or not a profile field is required. + * + * @since 1.1.0 */ function bp_the_profile_field_is_required() { echo bp_get_the_profile_field_is_required(); @@ -711,6 +784,9 @@ function bp_the_profile_field_is_required() { /** * Return whether or not a profile field is required. + * + * @since 1.1.0 + * * @return mixed|void */ function bp_get_the_profile_field_is_required() { @@ -734,6 +810,8 @@ function bp_the_profile_field_is_required() { /** * Output the visibility level of this field. + * + * @since 1.6.0 */ function bp_the_profile_field_visibility_level() { echo bp_get_the_profile_field_visibility_level(); @@ -742,6 +820,8 @@ function bp_the_profile_field_visibility_level() { /** * Return the visibility level of this field. * + * @since 1.6.0 + * * @return mixed|void */ function bp_get_the_profile_field_visibility_level() { @@ -768,6 +848,8 @@ function bp_the_profile_field_visibility_level() { /** * Echo the visibility level label of this field. + * + * @since 1.6.0 */ function bp_the_profile_field_visibility_level_label() { echo bp_get_the_profile_field_visibility_level_label(); @@ -776,6 +858,8 @@ function bp_the_profile_field_visibility_level_label() { /** * Return the visibility level label of this field. * + * @since 1.6.0 + * * @return mixed|void */ function bp_get_the_profile_field_visibility_level_label() { @@ -796,15 +880,19 @@ function bp_the_profile_field_visibility_level_label() { * Filters the profile field visibility level label. * * @since 1.6.0 + * @since 2.6.0 Added the `$level` parameter. * * @param string $retval Field visibility level label. + * @param string $level Field visibility level. */ - return apply_filters( 'bp_get_the_profile_field_visibility_level_label', $fields[ $level ]['label'] ); + return apply_filters( 'bp_get_the_profile_field_visibility_level_label', $fields[ $level ]['label'], $level ); } /** * Return unserialized profile field data. * + * @since 1.0.0 + * * @param string $value Content to maybe unserialize. * @return mixed|string */ @@ -821,7 +909,9 @@ function bp_unserialize_profile_field( $value ) { /** * Output XProfile field data. * - * @param string|array $args Array of arguments for field data. + * @since 1.2.0 + * + * @param string|array $args Array of arguments for field data. See {@link bp_get_profile_field_data} */ function bp_profile_field_data( $args = '' ) { echo bp_get_profile_field_data( $args ); @@ -830,7 +920,14 @@ function bp_profile_field_data( $args = '' ) { /** * Return XProfile field data. * - * @param string|array $args Array of arguments for field data. + * @since 1.2.0 + * + * @param string|array $args { + * Array of arguments for field data. + * + * @type string|int|bool $field Field identifier. + * @type int $user_id ID of the user to get field data for. + * } * @return mixed|void */ function bp_get_profile_field_data( $args = '' ) { @@ -844,10 +941,12 @@ function bp_profile_field_data( $args = '' ) { * Filters the profile field data. * * @since 1.2.0 + * @since 2.6.0 Added the `$r` parameter. * * @param mixed $value Profile data for a specific field for the user. + * @param array $r Array of parsed arguments. */ - return apply_filters( 'bp_get_profile_field_data', xprofile_get_field_data( $r['field'], $r['user_id'] ) ); + return apply_filters( 'bp_get_profile_field_data', xprofile_get_field_data( $r['field'], $r['user_id'] ), $r ); } /** @@ -969,6 +1068,8 @@ function bp_get_profile_group_tabs() { /** * Output the XProfile group name. * + * @since 1.0.0 + * * @param bool $deprecated Deprecated boolean parameter. * @return mixed|void */ @@ -983,6 +1084,8 @@ function bp_profile_group_name( $deprecated = true ) { /** * Return the XProfile group name. * + * @since 1.0.0 + * * @return mixed|void */ function bp_get_profile_group_name() { @@ -1000,14 +1103,18 @@ function bp_profile_group_name( $deprecated = true ) { * Filters the profile group name. * * @since 1.0.0 + * @since 2.6.0 Added the `$group_id` parameter * - * @param string $name Name of the profile group. + * @param string $name Name of the profile group. + * @param int $group_id ID of the profile group. */ - return apply_filters( 'bp_get_profile_group_name', $group->name ); + return apply_filters( 'bp_get_profile_group_name', $group->name, $group_id ); } /** * Render a formatted string displaying when a profile was last updated. + * + * @since 1.0.0 */ function bp_profile_last_updated() { @@ -1023,6 +1130,8 @@ function bp_profile_last_updated() { /** * Return a formatted string displaying when a profile was last updated. * + * @since 1.0.0 + * * @return bool|mixed|void */ function bp_get_profile_last_updated() { @@ -1046,6 +1155,8 @@ function bp_profile_last_updated() { /** * Display the current profile group ID. + * + * @since 1.1.0 */ function bp_current_profile_group_id() { echo bp_get_current_profile_group_id(); @@ -1078,6 +1189,8 @@ function bp_current_profile_group_id() { /** * Render an avatar delete link. + * + * @since 1.1.0 */ function bp_avatar_delete_link() { echo bp_get_avatar_delete_link(); @@ -1087,6 +1200,7 @@ function bp_avatar_delete_link() { * Return an avatar delete link. * * @since 1.1.0 + * * @return mixed|void */ function bp_get_avatar_delete_link() { @@ -1103,6 +1217,8 @@ function bp_avatar_delete_link() { /** * Render an edit profile button. + * + * @since 1.0.0 */ function bp_edit_profile_button() { bp_button( array( @@ -1122,7 +1238,9 @@ function bp_edit_profile_button() { /** * Echo the field visibility radio buttons. * - * @param array|string $args Args for the radio buttons. + * @since 1.6.0 + * + * @param array|string $args Args for the radio buttons. See {@link bp_profile_get_visibility_radio_buttons} */ function bp_profile_visibility_radio_buttons( $args = '' ) { echo bp_profile_get_visibility_radio_buttons( $args ); @@ -1130,7 +1248,18 @@ function bp_profile_visibility_radio_buttons( $args = '' ) { /** * Return the field visibility radio buttons. * - * @param array|string $args Args for the radio buttons. + * @since 1.6.0 + * + * @param array|string $args { + * Args for the radio buttons. + * + * @type int $field_id ID of the field to render. + * @type string $before Markup to render before the field. + * @type string $after Markup to render after the field. + * @type string $before_radio Markup to render before the radio button. + * @type string $after_radio Markup to render after the radio button. + * @type string $class Class to apply to the field markup. + * } * @return string $retval */ function bp_profile_get_visibility_radio_buttons( $args = '' ) { @@ -1198,7 +1327,7 @@ function bp_profile_visibility_radio_buttons( $args = '' ) { * * @since 2.0.0 * - * @param array|string $args Args for the select list. + * @param array|string $args Args for the select list. See {@link bp_profile_get_settings_visibility_select} */ function bp_profile_settings_visibility_select( $args = '' ) { echo bp_profile_get_settings_visibility_select( $args ); @@ -1208,7 +1337,14 @@ function bp_profile_settings_visibility_select( $args = '' ) { * * @since 2.0.0 * - * @param array|string $args Args for the select list. + * @param array|string $args { + * Args for the select list. + * + * @type int $field_id ID of the field to render. + * @type string $before Markup to render before the field. + * @type string $after Markup to render after the field. + * @type string $class Class to apply to the field markup. + * } * @return string $retval */ function bp_profile_get_settings_visibility_select( $args = '' ) { @@ -1235,7 +1371,10 @@ 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 _e( 'Select visibility', 'buddypress' ); ?></label> + <label for="<?php echo esc_attr( 'field_' . $r['field_id'] ) ; ?>_visibility" class="bp-screen-reader-text"><?php + /* translators: accessibility text */ + _e( 'Select visibility', 'buddypress' ); + ?></label> <select class="<?php echo esc_attr( $r['class'] ); ?>" name="<?php echo esc_attr( 'field_' . $r['field_id'] ) ; ?>_visibility" id="<?php echo esc_attr( 'field_' . $r['field_id'] ) ; ?>_visibility"> <?php foreach ( bp_xprofile_get_visibility_levels() as $level ) : ?> 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 0547151557eba793adf63872b77abaf34be7b26b..f25edec4f77d6b0c30d312e20dc259277b4636b3 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 @@ -15,6 +15,8 @@ defined( 'ABSPATH' ) || exit; /** * Creates our XProfile component. + * + * @since 1.5.0 */ class BP_XProfile_Component extends BP_Component { @@ -30,6 +32,7 @@ class BP_XProfile_Component extends BP_Component { * The acceptable visibility levels for xprofile fields. * * @see bp_xprofile_get_visibility_levels() + * * @since 1.6.0 * @var array */ @@ -56,6 +59,8 @@ class BP_XProfile_Component extends BP_Component { /** * Include files. * + * @since 1.5.0 + * * @param array $includes Array of files to include. */ public function includes( $includes = array() ) { @@ -66,7 +71,6 @@ class BP_XProfile_Component extends BP_Component { 'activity', 'screens', 'caps', - 'classes', 'filters', 'settings', 'template', @@ -74,6 +78,10 @@ class BP_XProfile_Component extends BP_Component { 'notifications', ); + if ( ! buddypress()->do_autoload ) { + $includes[] = 'classes'; + } + if ( is_admin() ) { $includes[] = 'admin'; } @@ -175,6 +183,8 @@ class BP_XProfile_Component extends BP_Component { /** * Set up navigation. * + * @since 1.5.0 + * * @global BuddyPress $bp The one true BuddyPress instance * * @param array $main_nav Array of main nav items to set up. @@ -292,12 +302,14 @@ class BP_XProfile_Component extends BP_Component { 'screen_function' => 'bp_xprofile_screen_settings', 'position' => 30, 'user_has_access' => bp_core_can_edit_settings() - ) ); + ), 'members' ); } /** * Set up the Admin Bar. * + * @since 1.5.0 + * * @param array $wp_admin_nav Admin Bar items. */ public function setup_admin_bar( $wp_admin_nav = array() ) { @@ -370,6 +382,8 @@ class BP_XProfile_Component extends BP_Component { /** * Sets up the title for pages and <title>. + * + * @since 1.5.0 */ public function setup_title() { 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 18e9f8fb310f7f6c65dfb30e7fa9ee96cd3db5a9..15823435d2f8503674cb4f97eebdf5c35313e3c0 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 @@ -103,6 +103,7 @@ class BP_XProfile_Data_Template { * * @see BP_XProfile_Group::get() for more details about parameters. * + * @since 1.5.0 * @since 2.4.0 Introduced `$member_type` argument. * * @param array|string $args { @@ -166,6 +167,8 @@ class BP_XProfile_Data_Template { /** * Whether or not the loop has field groups. * + * @since 1.0.0 + * * @return bool */ public function has_groups() { @@ -179,6 +182,8 @@ class BP_XProfile_Data_Template { /** * Increments to the next group of fields. * + * @since 1.0.0 + * * @return object */ public function next_group() { @@ -206,6 +211,8 @@ class BP_XProfile_Data_Template { /** * Rewinds to the start of the groups list. + * + * @since 1.0.0 */ public function rewind_groups() { $this->current_group = -1; @@ -217,6 +224,8 @@ class BP_XProfile_Data_Template { /** * Kicks off the profile groups. * + * @since 1.0.0 + * * @return bool */ public function profile_groups() { @@ -241,6 +250,8 @@ class BP_XProfile_Data_Template { /** * Sets up the profile group. + * + * @since 1.0.0 */ public function the_profile_group() { global $group; @@ -265,6 +276,8 @@ class BP_XProfile_Data_Template { /** * Increments to the next field. * + * @since 1.0.0 + * * @return int */ public function next_field() { @@ -277,6 +290,8 @@ class BP_XProfile_Data_Template { /** * Rewinds to the start of the fields. + * + * @since 1.0.0 */ public function rewind_fields() { $this->current_field = -1; @@ -288,6 +303,8 @@ class BP_XProfile_Data_Template { /** * Whether or not the loop has fields. * + * @since 1.0.0 + * * @return bool */ public function has_fields() { @@ -307,6 +324,8 @@ class BP_XProfile_Data_Template { /** * Kick off the profile fields. * + * @since 1.0.0 + * * @return bool */ public function profile_fields() { @@ -322,6 +341,8 @@ class BP_XProfile_Data_Template { /** * Set up the profile fields. + * + * @since 1.0.0 */ public function the_profile_field() { global $field; 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 48af638b75c1f46363fabd052a43b2dd60f8fd2a..d986cd0b4417e0dd95b036f4fb303ccd8a873750 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 @@ -67,11 +67,11 @@ class BP_XProfile_Field_Type_Checkbox extends BP_XProfile_Field_Type { $user_id = bp_displayed_user_id(); } ?> - <div class="checkbox"> - <label for="<?php bp_the_profile_field_input_name(); ?>"> + <fieldset class="checkbox"> + <legend> <?php bp_the_profile_field_name(); ?> <?php bp_the_profile_field_required_label(); ?> - </label> + </legend> <?php @@ -82,7 +82,7 @@ class BP_XProfile_Field_Type_Checkbox extends BP_XProfile_Field_Type { 'user_id' => $user_id ) ); ?> - </div> + </fieldset> <?php } @@ -154,7 +154,7 @@ class BP_XProfile_Field_Type_Checkbox extends BP_XProfile_Field_Type { $selected = ' checked="checked"'; } - $new_html = sprintf( '<label for="%3$s"><input %1$s type="checkbox" name="%2$s" id="%3$s" value="%4$s">%5$s</label>', + $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( "field_{$options[$k]->id}_{$k}" ), @@ -176,7 +176,10 @@ class BP_XProfile_Field_Type_Checkbox extends BP_XProfile_Field_Type { $html .= apply_filters( 'bp_get_the_profile_field_options_checkbox', $new_html, $options[$k], $this->field_obj->id, $selected, $k ); } - echo $html; + printf( '<div id="%1$s" class="input-options checkbox-options">%2$s</div>', + esc_attr( 'field_' . $this->field_obj->id ), + $html + ); } /** diff --git a/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-xprofile-field-type-datebox.php b/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-xprofile-field-type-datebox.php index 5869f26f557000c73c6c4fe8b33632b79bb50413..6074c5b8ea875c298ba71c34433b0e376e533131 100644 --- a/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-xprofile-field-type-datebox.php +++ b/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-xprofile-field-type-datebox.php @@ -78,52 +78,65 @@ class BP_XProfile_Field_Type_Datebox extends BP_XProfile_Field_Type { 'name' => bp_get_the_profile_field_input_name() . '_year' ) ); ?> - <div class="datebox"> + <fieldset class="datebox"> - <label for="<?php bp_the_profile_field_input_name(); ?>_day"> + <legend> <?php bp_the_profile_field_name(); ?> <?php bp_the_profile_field_required_label(); ?> - </label> - - <?php - - /** - * Fires after field label and displays associated errors for the field. - * - * This is a dynamic hook that is dependent on the associated - * field ID. The hooks will be similar to `bp_field_12_errors` - * where the 12 is the field ID. Simply replace the 12 with - * your needed target ID. - * - * @since 1.8.0 - */ - do_action( bp_get_the_profile_field_errors_action() ); ?> - - <label for="<?php bp_the_profile_field_input_name(); ?>_day" class="bp-screen-reader-text"><?php esc_html_e( 'Select day', 'buddypress' ); ?></label> - <select <?php echo $this->get_edit_field_html_elements( $day_r ); ?>> - <?php bp_the_profile_field_options( array( - 'type' => 'day', - 'user_id' => $user_id - ) ); ?> - </select> - - <label for="<?php bp_the_profile_field_input_name(); ?>_month" class="bp-screen-reader-text"><?php esc_html_e( 'Select month', 'buddypress' ); ?></label> - <select <?php echo $this->get_edit_field_html_elements( $month_r ); ?>> - <?php bp_the_profile_field_options( array( - 'type' => 'month', - 'user_id' => $user_id - ) ); ?> - </select> - - <label for="<?php bp_the_profile_field_input_name(); ?>_year" class="bp-screen-reader-text"><?php esc_html_e( 'Select year', 'buddypress' ); ?></label> - <select <?php echo $this->get_edit_field_html_elements( $year_r ); ?>> - <?php bp_the_profile_field_options( array( - 'type' => 'year', - 'user_id' => $user_id - ) ); ?> - </select> - - </div> + </legend> + + <div class="input-options datebox-selects"> + + <?php + + /** + * Fires after field label and displays associated errors for the field. + * + * This is a dynamic hook that is dependent on the associated + * field ID. The hooks will be similar to `bp_field_12_errors` + * where the 12 is the field ID. Simply replace the 12 with + * your needed target ID. + * + * @since 1.8.0 + */ + do_action( bp_get_the_profile_field_errors_action() ); ?> + + <label for="<?php bp_the_profile_field_input_name(); ?>_day" class="<?php echo is_admin() ? 'screen-reader-text' : 'bp-screen-reader-text' ;?>"><?php + /* translators: accessibility text */ + esc_html_e( 'Select day', 'buddypress' ); + ?></label> + <select <?php echo $this->get_edit_field_html_elements( $day_r ); ?>> + <?php bp_the_profile_field_options( array( + 'type' => 'day', + 'user_id' => $user_id + ) ); ?> + </select> + + <label for="<?php bp_the_profile_field_input_name(); ?>_month" class="<?php echo is_admin() ? 'screen-reader-text' : 'bp-screen-reader-text' ;?>"><?php + /* translators: accessibility text */ + esc_html_e( 'Select month', 'buddypress' ); + ?></label> + <select <?php echo $this->get_edit_field_html_elements( $month_r ); ?>> + <?php bp_the_profile_field_options( array( + 'type' => 'month', + 'user_id' => $user_id + ) ); ?> + </select> + + <label for="<?php bp_the_profile_field_input_name(); ?>_year" class="<?php echo is_admin() ? 'screen-reader-text' : 'bp-screen-reader-text' ;?>"><?php + /* translators: accessibility text */ + esc_html_e( 'Select year', 'buddypress' ); + ?></label> + <select <?php echo $this->get_edit_field_html_elements( $year_r ); ?>> + <?php bp_the_profile_field_options( array( + 'type' => 'year', + 'user_id' => $user_id + ) ); ?> + </select> + + </div> + + </fieldset> <?php } @@ -274,17 +287,26 @@ class BP_XProfile_Field_Type_Datebox extends BP_XProfile_Field_Type { 'name' => bp_get_the_profile_field_input_name() . '_year' ) ); ?> - <label for="<?php bp_the_profile_field_input_name(); ?>_day" class="screen-reader-text"><?php esc_html_e( 'Select day', 'buddypress' ); ?></label> + <label for="<?php bp_the_profile_field_input_name(); ?>_day" class="screen-reader-text"><?php + /* translators: accessibility text */ + esc_html_e( 'Select day', 'buddypress' ); + ?></label> <select <?php echo $this->get_edit_field_html_elements( $day_r ); ?>> <?php bp_the_profile_field_options( array( 'type' => 'day' ) ); ?> </select> - <label for="<?php bp_the_profile_field_input_name(); ?>_month" class="screen-reader-text"><?php esc_html_e( 'Select month', 'buddypress' ); ?></label> + <label for="<?php bp_the_profile_field_input_name(); ?>_month" class="screen-reader-text"><?php + /* translators: accessibility text */ + esc_html_e( 'Select month', 'buddypress' ); + ?></label> <select <?php echo $this->get_edit_field_html_elements( $month_r ); ?>> <?php bp_the_profile_field_options( array( 'type' => 'month' ) ); ?> </select> - <label for="<?php bp_the_profile_field_input_name(); ?>_year" class="screen-reader-text"><?php esc_html_e( 'Select year', 'buddypress' ); ?></label> + <label for="<?php bp_the_profile_field_input_name(); ?>_year" class="screen-reader-text"><?php + /* translators: accessibility text */ + esc_html_e( 'Select year', 'buddypress' ); + ?></label> <select <?php echo $this->get_edit_field_html_elements( $year_r ); ?>> <?php bp_the_profile_field_options( array( 'type' => 'year' ) ); ?> </select> diff --git a/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-xprofile-field-type-multiselectbox.php b/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-xprofile-field-type-multiselectbox.php index 0db5d4bb3a3609333e3dce1f74a69a42efdfe892..5ecaa10a615ed65b560338120fae2b23b002bfae 100644 --- a/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-xprofile-field-type-multiselectbox.php +++ b/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-xprofile-field-type-multiselectbox.php @@ -183,7 +183,10 @@ class BP_XProfile_Field_Type_Multiselectbox extends BP_XProfile_Field_Type { 'multiple' => 'multiple' ) ); ?> - <label for="<?php bp_the_profile_field_input_name(); ?>" class="screen-reader-text"><?php esc_html_e( 'Select', 'buddypress' ); ?></label> + <label for="<?php bp_the_profile_field_input_name(); ?>" class="screen-reader-text"><?php + /* translators: accessibility text */ + esc_html_e( 'Select', 'buddypress' ); + ?></label> <select <?php echo $this->get_edit_field_html_elements( $r ); ?>> <?php bp_the_profile_field_options(); ?> </select> diff --git a/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-xprofile-field-type-number.php b/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-xprofile-field-type-number.php index 977dbf7da20746934d1c7a80110da2e3c02a79ef..50d5a3f49c3b74f4578fc2b54b4ce22610822295 100644 --- a/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-xprofile-field-type-number.php +++ b/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-xprofile-field-type-number.php @@ -94,7 +94,10 @@ class BP_XProfile_Field_Type_Number extends BP_XProfile_Field_Type { 'type' => 'number' ) ); ?> - <label for="<?php bp_the_profile_field_input_name(); ?>" class="screen-reader-text"><?php esc_html_e( 'Number field', 'buddypress' ); ?></label> + <label for="<?php bp_the_profile_field_input_name(); ?>" class="screen-reader-text"><?php + /* translators: accessibility text */ + esc_html_e( 'Number field', 'buddypress' ); + ?></label> <input <?php echo $this->get_edit_field_html_elements( $r ); ?>> <?php } 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 d0637e534d27a005460ad79ea60ccc55ca10985b..f8e0d5dcfd9763679d0bedbdc003de4fcde015a9 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 @@ -18,7 +18,7 @@ defined( 'ABSPATH' ) || exit; class BP_XProfile_Field_Type_Radiobutton extends BP_XProfile_Field_Type { /** - * Constructor for the radio button field type + * Constructor for the radio button field type. * * @since 2.0.0 */ @@ -65,12 +65,12 @@ class BP_XProfile_Field_Type_Radiobutton extends BP_XProfile_Field_Type { $user_id = bp_displayed_user_id(); } ?> - <div class="radio"> + <fieldset class="radio"> - <label for="<?php bp_the_profile_field_input_name(); ?>"> + <legend> <?php bp_the_profile_field_name(); ?> <?php bp_the_profile_field_required_label(); ?> - </label> + </legend> <?php @@ -87,7 +87,7 @@ class BP_XProfile_Field_Type_Radiobutton extends BP_XProfile_Field_Type { <?php endif; ?> - </div> + </fieldset> <?php } @@ -111,7 +111,7 @@ class BP_XProfile_Field_Type_Radiobutton extends BP_XProfile_Field_Type { $option_value = BP_XProfile_ProfileData::get_value_byid( $this->field_obj->id, $args['user_id'] ); $options = $this->field_obj->get_children(); - $html = sprintf( '<div id="%s">', esc_attr( 'field_' . $this->field_obj->id ) ); + $html = ''; for ( $k = 0, $count = count( $options ); $k < $count; ++$k ) { @@ -132,7 +132,7 @@ class BP_XProfile_Field_Type_Radiobutton extends BP_XProfile_Field_Type { $selected = ' checked="checked"'; } - $new_html = sprintf( '<label for="%3$s"><input %1$s type="radio" name="%2$s" id="%3$s" value="%4$s">%5$s</label>', + $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( "option_{$options[$k]->id}" ), @@ -154,7 +154,10 @@ class BP_XProfile_Field_Type_Radiobutton extends BP_XProfile_Field_Type { $html .= apply_filters( 'bp_get_the_profile_field_options_radio', $new_html, $options[$k], $this->field_obj->id, $selected, $k ); } - echo $html . '</div>'; + printf( '<div id="%1$s" class="input-options radio-button-options">%2$s</div>', + esc_attr( 'field_' . $this->field_obj->id ), + $html + ); } /** diff --git a/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-xprofile-field-type-selectbox.php b/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-xprofile-field-type-selectbox.php index 73187ec68ed3a40054d4d21110ae5cc34a9ea6ed..3a9b9f3510d831c884b7e5505811045779e01726 100644 --- a/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-xprofile-field-type-selectbox.php +++ b/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-xprofile-field-type-selectbox.php @@ -164,7 +164,10 @@ class BP_XProfile_Field_Type_Selectbox extends BP_XProfile_Field_Type { public function admin_field_html( array $raw_properties = array() ) { ?> - <label for="<?php bp_the_profile_field_input_name(); ?>" class="screen-reader-text"><?php esc_html_e( 'Select', 'buddypress' ); ?></label> + <label for="<?php bp_the_profile_field_input_name(); ?>" class="screen-reader-text"><?php + /* translators: accessibility text */ + esc_html_e( 'Select', 'buddypress' ); + ?></label> <select <?php echo $this->get_edit_field_html_elements( $raw_properties ); ?>> <?php bp_the_profile_field_options(); ?> </select> diff --git a/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-xprofile-field-type-textbox.php b/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-xprofile-field-type-textbox.php index ebd02d6de70180a1aa1da06ead2afabf54d0b7fa..c70258fd130830a52a3de13e81dfd92db56aced8 100644 --- a/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-xprofile-field-type-textbox.php +++ b/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-xprofile-field-type-textbox.php @@ -94,7 +94,10 @@ class BP_XProfile_Field_Type_Textbox extends BP_XProfile_Field_Type { 'type' => 'text' ) ); ?> - <label for="<?php bp_the_profile_field_input_name(); ?>" class="screen-reader-text"><?php esc_html_e( 'Textbox', 'buddypress' ); ?></label> + <label for="<?php bp_the_profile_field_input_name(); ?>" class="screen-reader-text"><?php + /* translators: accessibility text */ + esc_html_e( 'Textbox', 'buddypress' ); + ?></label> <input <?php echo $this->get_edit_field_html_elements( $r ); ?>> <?php diff --git a/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-xprofile-field-type-url.php b/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-xprofile-field-type-url.php index 26c929cd0080a387d5784c29cf3211b97465eacd..48e8be5ac41dda15630219d5cdf729b4ee4572fc 100644 --- a/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-xprofile-field-type-url.php +++ b/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-xprofile-field-type-url.php @@ -97,7 +97,10 @@ class BP_XProfile_Field_Type_URL extends BP_XProfile_Field_Type { 'type' => 'url' ) ); ?> - <label for="<?php bp_the_profile_field_input_name(); ?>" class="screen-reader-text"><?php esc_html_e( 'URL', 'buddypress' ); ?></label> + <label for="<?php bp_the_profile_field_input_name(); ?>" class="screen-reader-text"><?php + /* translators: accessibility text */ + esc_html_e( 'URL', 'buddypress' ); + ?></label> <input <?php echo $this->get_edit_field_html_elements( $r ); ?>> <?php diff --git a/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-xprofile-field-type.php b/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-xprofile-field-type.php index 0c8ba4357d66ea231570a949e3a626b36e39d1c1..7fd19403270f309ae0515a6cdbf8291b0e823e78 100644 --- a/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-xprofile-field-type.php +++ b/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-xprofile-field-type.php @@ -365,7 +365,10 @@ abstract class BP_XProfile_Field_Type { <div id="<?php echo esc_attr( "{$type}_div{$j}" ); ?>" class="bp-option sortable"> <span class="bp-option-icon grabber"></span> - <label for="<?php echo esc_attr( "{$type}_option{$j}" ); ?>" class="screen-reader-text"><?php esc_html_e( 'Add an option', 'buddypress' ); ?></label> + <label for="<?php echo esc_attr( "{$type}_option{$j}" ); ?>" class="screen-reader-text"><?php + /* translators: accessibility text */ + esc_html_e( 'Add an option', 'buddypress' ); + ?></label> <input type="text" name="<?php echo esc_attr( "{$type}_option[{$j}]" ); ?>" id="<?php echo esc_attr( "{$type}_option{$j}" ); ?>" value="<?php echo esc_attr( stripslashes( $options[$i]->name ) ); ?>" /> <label for="<?php echo esc_attr( "{$type}_option{$default_name}" ); ?>"> <input type="<?php echo esc_attr( $control_type ); ?>" id="<?php echo esc_attr( "{$type}_option{$default_name}" ); ?>" name="<?php echo esc_attr( "isDefault_{$type}_option{$default_name}" ); ?>" <?php checked( $options[$i]->is_default_option, true ); ?> value="<?php echo esc_attr( $j ); ?>" /> 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 c24db3f689378bb9aec91c245b2d3bd924223510..11c48fdd59bf212a7a276c849ba702ffb45bf5f9 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 @@ -12,6 +12,8 @@ defined( 'ABSPATH' ) || exit; /** * Class to help set up XProfile fields. + * + * @since 1.0.0 */ class BP_XProfile_Field { @@ -133,7 +135,6 @@ class BP_XProfile_Field { * Whether values from this field are autolinked to directory searches. * * @since 2.5.0 - * * @var bool */ public $do_autolink; @@ -215,6 +216,8 @@ class BP_XProfile_Field { /** * Retrieve a `BP_XProfile_Field` instance. * + * @since 2.4.0 + * * @static * * @param int $field_id ID of the field. @@ -234,11 +237,11 @@ class BP_XProfile_Field { $field = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM {$bp->profile->table_name_fields} WHERE id = %d", $field_id ) ); - wp_cache_add( $field->id, $field, 'bp_xprofile_fields' ); - if ( ! $field ) { return false; } + + wp_cache_add( $field->id, $field, 'bp_xprofile_fields' ); } $_field = new BP_XProfile_Field(); @@ -817,7 +820,7 @@ class BP_XProfile_Field { $do_autolink = bp_xprofile_get_meta( $this->id, 'field', 'do_autolink' ); if ( '' === $do_autolink ) { - $this->do_autolink = $this->is_default_field() || $this->type_obj->supports_options; + $this->do_autolink = $this->type_obj->supports_options; } else { $this->do_autolink = 'on' === $do_autolink; } @@ -940,6 +943,9 @@ class BP_XProfile_Field { $sql = $wpdb->prepare( "UPDATE {$table_name} SET group_id = %d WHERE parent_id = %d", $field_group_id, $field_id ); $wpdb->query( $sql ); + // Invalidate profile field cache. + wp_cache_delete( $field_id, 'bp_xprofile_fields' ); + return $parent; } @@ -1311,7 +1317,10 @@ class BP_XProfile_Field { <div class="postbox"> <h2><?php echo esc_html_x( 'Description', 'XProfile admin edit field', 'buddypress' ); ?></h2> <div class="inside"> - <label for="description" class="screen-reader-text"><?php esc_html_e( 'Add description', 'buddypress' ); ?></label> + <label for="description" class="screen-reader-text"><?php + /* translators: accessibility text */ + esc_html_e( 'Add description', 'buddypress' ); + ?></label> <textarea name="description" id="description" rows="8" cols="60"><?php echo esc_textarea( $this->description ); ?></textarea> </div> </div> @@ -1456,12 +1465,6 @@ class BP_XProfile_Field { * @return void If default field id 1. */ private function autolink_metabox() { - - // Default field cannot have custom visibility. - if ( true === $this->is_default_field() ) { - return; - } - ?> <div class="postbox"> @@ -1470,7 +1473,10 @@ class BP_XProfile_Field { <p class="description"><?php esc_html_e( 'On user profiles, link this field to a search of the Members directory, using the field value as a search term.', 'buddypress' ); ?></p> <p> - <label for="do-autolink" class="screen-reader-text"><?php esc_html_e( 'Autolink status for this field', 'buddypress' ); ?></label> + <label for="do-autolink" class="screen-reader-text"><?php + /* translators: accessibility text */ + esc_html_e( 'Autolink status for this field', 'buddypress' ); + ?></label> <select name="do_autolink" id="do-autolink"> <option value="on" <?php selected( $this->get_do_autolink() ); ?>><?php esc_html_e( 'Enabled', 'buddypress' ); ?></option> <option value="" <?php selected( $this->get_do_autolink(), false ); ?>><?php esc_html_e( 'Disabled', 'buddypress' ); ?></option> 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 481a18771317862ae6a9a4e55a51fe2e957f0b20..0603d4f35e54c31cfca835f46cd65141bdb372a7 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 @@ -12,6 +12,8 @@ defined( 'ABSPATH' ) || exit; /** * Class to help set up XProfile Groups. + * + * @since 1.0.0 */ class BP_XProfile_Group { @@ -19,7 +21,7 @@ class BP_XProfile_Group { * Field group ID. * * @since 1.1.0 - * @var int ID of field group + * @var int ID of field group. */ public $id = null; @@ -27,7 +29,7 @@ class BP_XProfile_Group { * Field group name. * * @since 1.1.0 - * @var string Name of field group + * @var string Name of field group. */ public $name; @@ -35,7 +37,7 @@ class BP_XProfile_Group { * Field group Description. * * @since 1.1.0 - * @var string Description of field group + * @var string Description of field group. */ public $description; @@ -51,7 +53,7 @@ class BP_XProfile_Group { * Group order. * * @since 1.1.0 - * @var int Group order relative to other groups + * @var int Group order relative to other groups. */ public $group_order; @@ -59,7 +61,7 @@ class BP_XProfile_Group { * Group fields. * * @since 1.1.0 - * @var array Fields of group + * @var array Fields of group. */ public $fields; @@ -84,7 +86,6 @@ class BP_XProfile_Group { * @global $wpdb $wpdb * * @param int $id Field group ID. - * * @return boolean */ public function populate( $id ) { @@ -231,7 +232,9 @@ class BP_XProfile_Group { /** * Populates the BP_XProfile_Group object with profile field groups, fields, - * and field data + * and field data. + * + * @since 1.2.0 * * @global object $wpdb WordPress DB access object. * @@ -741,10 +744,25 @@ class BP_XProfile_Group { <div class="postbox"> <h2><?php esc_html_e( 'Field Group Description', 'buddypress' ); ?></h2> <div class="inside"> - <label for="group_description" class="screen-reader-text"><?php esc_html_e( 'Add description', 'buddypress' ); ?></label> + <label for="group_description" class="screen-reader-text"><?php + /* translators: accessibility text */ + esc_html_e( 'Add description', 'buddypress' ); + ?></label> <textarea name="group_description" id="group_description" rows="8" cols="60"><?php echo esc_textarea( $this->description ); ?></textarea> </div> </div> + + <?php + + /** + * Fires after the XProfile group description field is rendered in wp-admin. + * + * @since 2.6.0 + * + * @param BP_XProfile_Group $this Current XProfile group. + */ + do_action( 'xprofile_group_admin_after_description', $this ); ?> + </div><!-- #post-body-content --> <div id="postbox-container-1" class="postbox-container"> diff --git a/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-xprofile-meta-query.php b/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-xprofile-meta-query.php index a802932f96d04db6071ab34440a8ab5eb9690b3f..08567872657519e473688dc67ab55ee45e915d0c 100644 --- a/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-xprofile-meta-query.php +++ b/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-xprofile-meta-query.php @@ -32,7 +32,6 @@ class BP_XProfile_Meta_Query extends WP_Meta_Query { * @since 2.3.0 * * @param array $query Meta query arguments. - * * @return bool Whether the query clause is a first-order clause. */ protected function is_first_order_clause( $query ) { @@ -40,7 +39,7 @@ class BP_XProfile_Meta_Query extends WP_Meta_Query { } /** - * Constructs a meta query based on 'meta_*' query vars + * Constructs a meta query based on 'meta_*' query vars. * * @since 2.3.0 * @@ -100,7 +99,6 @@ class BP_XProfile_Meta_Query extends WP_Meta_Query { * @param string $primary_table Database table where the object being filtered is stored (eg wp_users). * @param string $primary_id_column ID column for the filtered object in $primary_table. * @param object|null $context Optional. The main query object. - * * @return array { * Array containing JOIN and WHERE SQL clauses to append to the main query. * @@ -159,7 +157,6 @@ class BP_XProfile_Meta_Query extends WP_Meta_Query { * @param array $parent_query Parent query array. * @param string $clause_key Optional. The array key used to name the clause in the original `$meta_query` * parameters. If not provided, a key will be generated automatically. - * * @return array { * Array containing JOIN and WHERE SQL clauses to append to a first-order query. * 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 7f46cd411cb079920aab3d9cd550b52e0081c31c..fe1383779c1bccf26fd8d0a152f62fb63471f635 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 @@ -20,6 +20,7 @@ class BP_XProfile_ProfileData { /** * XProfile ID. * + * @since 1.6.0 * @var int $id */ public $id; @@ -27,6 +28,7 @@ class BP_XProfile_ProfileData { /** * User ID. * + * @since 1.6.0 * @var int $user_id */ public $user_id; @@ -34,6 +36,7 @@ class BP_XProfile_ProfileData { /** * XProfile field ID. * + * @since 1.6.0 * @var int $field_id */ public $field_id; @@ -41,6 +44,7 @@ class BP_XProfile_ProfileData { /** * XProfile field value. * + * @since 1.6.0 * @var string $value */ public $value; @@ -48,6 +52,7 @@ class BP_XProfile_ProfileData { /** * XProfile field last updated time. * + * @since 1.6.0 * @var string $last_updated */ public $last_updated; @@ -55,8 +60,10 @@ class BP_XProfile_ProfileData { /** * BP_XProfile_ProfileData constructor. * - * @param null $field_id Field ID to instantiate. - * @param null $user_id User ID to instantiate for. + * @since 1.5.0 + * + * @param int|null $field_id Field ID to instantiate. + * @param int|null $user_id User ID to instantiate for. */ public function __construct( $field_id = null, $user_id = null ) { if ( !empty( $field_id ) ) { @@ -67,6 +74,8 @@ class BP_XProfile_ProfileData { /** * Populates the XProfile profile data. * + * @since 1.0.0 + * * @param int $field_id Field ID to populate. * @param int $user_id User ID to populate for. */ @@ -104,8 +113,11 @@ class BP_XProfile_ProfileData { /** * Check if there is data already for the user. * + * @since 1.0.0 + * * @global object $wpdb * @global array $bp + * * @return bool */ public function exists() { @@ -136,7 +148,10 @@ class BP_XProfile_ProfileData { /** * Check if this data is for a valid field. * + * @since 1.0.0 + * * @global object $wpdb + * * @return bool */ public function is_valid_field() { @@ -160,6 +175,8 @@ class BP_XProfile_ProfileData { /** * Save the data for the XProfile field. * + * @since 1.0.0 + * * @return bool */ public function save() { @@ -218,7 +235,10 @@ class BP_XProfile_ProfileData { /** * Delete specific XProfile field data. * + * @since 1.0.0 + * * @global object $wpdb + * * @return boolean */ public function delete() { @@ -257,6 +277,8 @@ class BP_XProfile_ProfileData { /** * Get a user's profile data for a set of fields. * + * @since 2.0.0 + * * @param int $user_id ID of user whose data is being queried. * @param array $field_ids Array of field IDs to query for. * @return array @@ -323,6 +345,8 @@ class BP_XProfile_ProfileData { /** * Get all of the profile information for a specific user. * + * @since 1.2.0 + * * @param int $user_id ID of the user. * @return array */ @@ -368,6 +392,8 @@ class BP_XProfile_ProfileData { /** * Get the user's field data id by the id of the xprofile field. * + * @since 1.6.0 + * * @param int $field_id Field ID being queried for. * @param int $user_id User ID associated with field. * @return int $fielddata_id @@ -398,6 +424,8 @@ class BP_XProfile_ProfileData { * * Supports multiple user IDs. * + * @since 1.0.0 + * * @param int $field_id ID of the field. * @param int|array|null $user_ids ID or IDs of user(s). * @return string|array Single value if a single user is queried, @@ -410,12 +438,13 @@ class BP_XProfile_ProfileData { $user_ids = bp_displayed_user_id(); } - $is_single = false; + $return_single_result = false; if ( ! is_array( $user_ids ) ) { - $user_ids = array( $user_ids ); - $is_single = true; + $return_single_result = true; } + $user_ids = wp_parse_id_list( $user_ids ); + // Assemble uncached IDs. $uncached_ids = array(); foreach ( $user_ids as $user_id ) { @@ -466,7 +495,7 @@ class BP_XProfile_ProfileData { } // If a single ID was passed, just return the value. - if ( $is_single ) { + if ( $return_single_result ) { return $data[0]->value; // Otherwise return the whole array. @@ -478,6 +507,8 @@ class BP_XProfile_ProfileData { /** * Get profile field values by field name and user ID. * + * @since 1.0.0 + * * @param array|string $fields Field(s) to get. * @param int|null $user_id User ID to get field data for. * @return array|bool @@ -540,6 +571,8 @@ class BP_XProfile_ProfileData { /** * Delete field. * + * @since 1.0.0 + * * @param int $field_id ID of the field to delete. * @return bool */ @@ -558,6 +591,8 @@ class BP_XProfile_ProfileData { /** * Get time for last XProfile field data update by user. * + * @since 1.0.0 + * * @param int $user_id User ID to get time for. * @return null|string */ @@ -574,6 +609,8 @@ class BP_XProfile_ProfileData { /** * Delete all data for provided user ID. * + * @since 1.0.0 + * * @param int $user_id User ID to remove data for. * @return false|int */ @@ -588,6 +625,8 @@ class BP_XProfile_ProfileData { /** * Get random field type by user ID. * + * @since 1.0.0 + * * @param int $user_id User ID to query for. * @param string $exclude_fullname SQL portion used to exclude by field ID. * @return array|null|object @@ -605,6 +644,8 @@ class BP_XProfile_ProfileData { /** * Get fullname for provided user ID. * + * @since 1.0.0 + * * @param int $user_id ID of the user to query. * @return mixed */ 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 18269bb53084ae549a3efe98a11c34efc3108bb0..972848d38065f925d4b1ab8faf40a8abdd3b48af 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 @@ -23,7 +23,6 @@ class BP_XProfile_User_Admin { * * @since 2.0.0 * - * @uses buddypress() to get BuddyPress main instance. */ public static function register_xprofile_user_admin() { @@ -143,8 +142,9 @@ class BP_XProfile_User_Admin { ); endwhile; - // If member is already a spammer, show a generic metabox. + } else { + // If member is already a spammer, show a generic metabox. add_meta_box( 'bp_xprofile_user_admin_empty_profile', _x( 'User marked as a spammer', 'xprofile user-admin edit screen', 'buddypress' ), @@ -198,9 +198,8 @@ class BP_XProfile_User_Admin { bp_core_redirect( $redirect_to ); - // Update profile fields. } elseif ( isset( $_POST['field_ids'] ) ) { - + // Update profile fields. // Check the nonce. check_admin_referer( 'edit-bp-profile_' . $user_id ); @@ -250,14 +249,38 @@ class BP_XProfile_User_Admin { $errors = false; // Now we've checked for required fields, let's save the values. + $old_values = $new_values = array(); foreach ( (array) $posted_field_ids as $field_id ) { - // Certain types of fields (checkboxes, multiselects) may come - // through empty. Save them as an empty array so that they don't - // get overwritten by the default on the next edit. + /* + * Certain types of fields (checkboxes, multiselects) may come + * through empty. Save them as an empty array so that they don't + * get overwritten by the default on the next edit. + */ $value = isset( $_POST['field_' . $field_id] ) ? $_POST['field_' . $field_id] : ''; - if ( ! xprofile_set_field_data( $field_id, $user_id, $value, $is_required[ $field_id ] ) ) { + $visibility_level = ! empty( $_POST['field_' . $field_id . '_visibility'] ) ? $_POST['field_' . $field_id . '_visibility'] : 'public'; + /* + * Save the old and new values. They will be + * passed to the filter and used to determine + * whether an activity item should be posted. + */ + $old_values[ $field_id ] = array( + 'value' => xprofile_get_field_data( $field_id, $user_id ), + 'visibility' => xprofile_get_field_visibility_level( $field_id, $user_id ), + ); + + // Update the field data and visibility level. + xprofile_set_field_visibility_level( $field_id, $user_id, $visibility_level ); + $field_updated = xprofile_set_field_data( $field_id, $user_id, $value, $is_required[ $field_id ] ); + $value = xprofile_get_field_data( $field_id, $user_id ); + + $new_values[ $field_id ] = array( + 'value' => $value, + 'visibility' => xprofile_get_field_visibility_level( $field_id, $user_id ), + ); + + if ( ! $field_updated ) { $errors = true; } else { @@ -271,22 +294,21 @@ class BP_XProfile_User_Admin { */ do_action( 'xprofile_profile_field_data_updated', $field_id, $value ); } - - // Save the visibility level. - $visibility_level = ! empty( $_POST['field_' . $field_id . '_visibility'] ) ? $_POST['field_' . $field_id . '_visibility'] : 'public'; - xprofile_set_field_visibility_level( $field_id, $user_id, $visibility_level ); } /** - * Fires after all of the profile fields have been saved. + * Fires after all XProfile fields have been saved for the current profile. * * @since 1.0.0 + * @since 2.6.0 Added $old_values and $new_values parameters. * - * @param int $user_id ID of the user whose data is being saved. - * @param array $posted_field_ids IDs of the fields that were submitted. - * @param bool $errors Whether or not errors occurred during saving. + * @param int $user_id ID for the user whose profile is being saved. + * @param array $posted_field_ids Array of field IDs that were edited. + * @param bool $errors Whether or not any errors occurred. + * @param array $old_values Array of original values before update. + * @param array $new_values Array of newly saved values after update. */ - do_action( 'xprofile_updated_profile', $user_id, $posted_field_ids, $errors ); + do_action( 'xprofile_updated_profile', $user_id, $posted_field_ids, $errors, $old_values, $new_values ); // Set the feedback messages. if ( ! empty( $errors ) ) { diff --git a/wp-content/plugins/buddypress/buddypress.pot b/wp-content/plugins/buddypress/buddypress.pot index ddb00867063c77658a7203deca39cc8ce632a0ba..38e1d529dba0f1afaed8f20998e04c0ae4b6bb11 100644 --- a/wp-content/plugins/buddypress/buddypress.pot +++ b/wp-content/plugins/buddypress/buddypress.pot @@ -2,9 +2,9 @@ # This file is distributed under the GPLv2 or later (license.txt). msgid "" msgstr "" -"Project-Id-Version: BuddyPress 2.5.3\n" +"Project-Id-Version: BuddyPress 2.6.2\n" "Report-Msgid-Bugs-To: https://buddypress.trac.wordpress.org\n" -"POT-Creation-Date: 2016-05-24 17:17:48+00:00\n" +"POT-Creation-Date: 2016-08-04 22:00:54+00:00\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -13,71 +13,71 @@ msgstr "" "Language-Team: ENGLISH <jjj@buddypress.org>\n" "X-Generator: grunt-wp-i18n 0.5.4\n" -#: bp-activity/bp-activity-actions.php:174 +#: bp-activity/bp-activity-actions.php:150 msgid "Activity deleted successfully" msgstr "" -#: bp-activity/bp-activity-actions.php:176 +#: bp-activity/bp-activity-actions.php:152 msgid "There was an error when deleting that activity" msgstr "" -#: bp-activity/bp-activity-actions.php:245 +#: bp-activity/bp-activity-actions.php:221 msgid "The activity item has been marked as spam and is no longer visible." msgstr "" -#: bp-activity/bp-activity-actions.php:330 -#: bp-templates/bp-legacy/buddypress-functions.php:925 +#: bp-activity/bp-activity-actions.php:292 +#: bp-templates/bp-legacy/buddypress-functions.php:899 msgid "Please enter some content to post." msgstr "" -#: bp-activity/bp-activity-actions.php:360 +#: bp-activity/bp-activity-actions.php:322 msgid "Update Posted!" msgstr "" -#: bp-activity/bp-activity-actions.php:362 +#: bp-activity/bp-activity-actions.php:324 msgid "There was an error when posting your update. Please try again." msgstr "" -#: bp-activity/bp-activity-actions.php:414 -#: bp-templates/bp-legacy/buddypress-functions.php:1015 +#: bp-activity/bp-activity-actions.php:365 +#: bp-templates/bp-legacy/buddypress-functions.php:992 msgid "Please do not leave the comment area blank." msgstr "" -#: bp-activity/bp-activity-actions.php:425 +#: bp-activity/bp-activity-actions.php:376 msgid "Reply Posted!" msgstr "" -#: bp-activity/bp-activity-actions.php:427 +#: bp-activity/bp-activity-actions.php:378 msgid "There was an error posting that reply. Please try again." msgstr "" -#: bp-activity/bp-activity-actions.php:459 +#: bp-activity/bp-activity-actions.php:400 msgid "Activity marked as favorite." msgstr "" -#: bp-activity/bp-activity-actions.php:461 +#: bp-activity/bp-activity-actions.php:402 msgid "There was an error marking that activity as a favorite. Please try again." msgstr "" -#: bp-activity/bp-activity-actions.php:493 +#: bp-activity/bp-activity-actions.php:424 msgid "Activity removed as favorite." msgstr "" -#: bp-activity/bp-activity-actions.php:495 +#: bp-activity/bp-activity-actions.php:426 msgid "There was an error removing that activity as a favorite. Please try again." msgstr "" -#: bp-activity/bp-activity-actions.php:524 +#: bp-activity/bp-activity-actions.php:450 #. translators: Sitewide activity RSS title - "[Site Name] | Site Wide #. Activity" msgid "%s | Site-Wide Activity" msgstr "" -#: bp-activity/bp-activity-actions.php:527 +#: bp-activity/bp-activity-actions.php:453 msgid "Activity feed for the entire site." msgstr "" -#: bp-activity/bp-activity-actions.php:554 bp-groups/bp-groups-actions.php:542 +#: bp-activity/bp-activity-actions.php:476 bp-groups/bp-groups-actions.php:557 #. translators: Personal activity RSS title - "[Site Name] | [User Display #. Name] | Activity" #. translators: Group activity RSS title - "[Site Name] | [Group Name] | @@ -85,79 +85,79 @@ msgstr "" msgid "%1$s | %2$s | Activity" msgstr "" -#: bp-activity/bp-activity-actions.php:557 +#: bp-activity/bp-activity-actions.php:479 msgid "Activity feed for %s." msgstr "" -#: bp-activity/bp-activity-actions.php:587 +#: bp-activity/bp-activity-actions.php:502 #. translators: Friends activity RSS title - "[Site Name] | [User Display Name] #. | Friends Activity" msgid "%1$s | %2$s | Friends Activity" msgstr "" -#: bp-activity/bp-activity-actions.php:590 +#: bp-activity/bp-activity-actions.php:505 msgid "Activity feed for %s's friends." msgstr "" -#: bp-activity/bp-activity-actions.php:624 +#: bp-activity/bp-activity-actions.php:532 #. translators: Member groups activity RSS title - "[Site Name] | [User Display #. Name] | Groups Activity" msgid "%1$s | %2$s | Group Activity" msgstr "" -#: bp-activity/bp-activity-actions.php:627 +#: bp-activity/bp-activity-actions.php:535 msgid "Public group activity feed of which %s is a member." msgstr "" -#: bp-activity/bp-activity-actions.php:663 +#: bp-activity/bp-activity-actions.php:566 #. translators: User mentions activity RSS title - "[Site Name] | [User Display #. Name] | Mentions" msgid "%1$s | %2$s | Mentions" msgstr "" -#: bp-activity/bp-activity-actions.php:666 +#: bp-activity/bp-activity-actions.php:569 msgid "Activity feed mentioning %s." msgstr "" -#: bp-activity/bp-activity-actions.php:700 +#: bp-activity/bp-activity-actions.php:598 #. translators: User activity favorites RSS title - "[Site Name] | [User #. Display Name] | Favorites" msgid "%1$s | %2$s | Favorites" msgstr "" -#: bp-activity/bp-activity-actions.php:703 +#: bp-activity/bp-activity-actions.php:601 msgid "Activity feed of %s's favorites." msgstr "" -#: bp-activity/bp-activity-admin.php:90 +#: bp-activity/bp-activity-admin.php:92 msgid "ERROR: Please type a reply." msgstr "" -#: bp-activity/bp-activity-admin.php:95 +#: bp-activity/bp-activity-admin.php:97 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:224 bp-activity/bp-activity-admin.php:278 -#: bp-core/admin/bp-core-admin-functions.php:481 -#: bp-core/admin/bp-core-admin-functions.php:499 -#: bp-core/admin/bp-core-admin-functions.php:518 -#: bp-core/admin/bp-core-admin-functions.php:537 -#: bp-groups/bp-groups-admin.php:117 bp-groups/bp-groups-admin.php:157 -#: bp-members/classes/class-bp-members-admin.php:718 -#: bp-members/classes/class-bp-members-admin.php:1426 +#: bp-activity/bp-activity-admin.php:226 bp-activity/bp-activity-admin.php:280 +#: 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-members/classes/class-bp-members-admin.php:715 +#: bp-members/classes/class-bp-members-admin.php:1438 msgid "Overview" msgstr "" -#: bp-activity/bp-activity-admin.php:226 +#: bp-activity/bp-activity-admin.php:228 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:227 +#: bp-activity/bp-activity-admin.php:229 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:228 +#: bp-activity/bp-activity-admin.php:230 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:233 +#: bp-activity/bp-activity-admin.php:235 msgid "Item, Link, Type" msgstr "" -#: bp-activity/bp-activity-admin.php:235 +#: bp-activity/bp-activity-admin.php:237 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:236 +#: bp-activity/bp-activity-admin.php:238 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:237 +#: bp-activity/bp-activity-admin.php:239 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:238 +#: bp-activity/bp-activity-admin.php:240 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:243 bp-activity/bp-activity-admin.php:295 -#: bp-core/admin/bp-core-admin-functions.php:487 -#: bp-core/admin/bp-core-admin-functions.php:505 -#: bp-core/admin/bp-core-admin-functions.php:524 -#: bp-core/admin/bp-core-admin-functions.php:543 -#: bp-groups/bp-groups-admin.php:125 bp-groups/bp-groups-admin.php:173 -#: bp-members/classes/class-bp-members-admin.php:727 -#: bp-members/classes/class-bp-members-admin.php:1447 +#: bp-activity/bp-activity-admin.php:245 bp-activity/bp-activity-admin.php:297 +#: 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-members/classes/class-bp-members-admin.php:724 +#: bp-members/classes/class-bp-members-admin.php:1459 msgid "For more information:" msgstr "" -#: bp-activity/bp-activity-admin.php:244 +#: bp-activity/bp-activity-admin.php:246 msgid "" "<a " "href=\"https://codex.buddypress.org/administrator-guide/activity-stream-" "management-panels/\">Managing Activity</a>" msgstr "" -#: bp-activity/bp-activity-admin.php:245 bp-activity/bp-activity-admin.php:296 -#: bp-core/admin/bp-core-admin-functions.php:489 -#: bp-core/admin/bp-core-admin-functions.php:507 -#: bp-core/admin/bp-core-admin-functions.php:526 -#: bp-core/admin/bp-core-admin-functions.php:545 -#: bp-groups/bp-groups-admin.php:174 -#: bp-members/classes/class-bp-members-admin.php:729 -#: bp-members/classes/class-bp-members-admin.php:1448 +#: bp-activity/bp-activity-admin.php:247 bp-activity/bp-activity-admin.php:298 +#: 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-members/classes/class-bp-members-admin.php:726 +#: bp-members/classes/class-bp-members-admin.php:1460 msgid "<a href=\"https://buddypress.org/support/\">Support Forums</a>" msgstr "" -#: bp-activity/bp-activity-admin.php:280 +#: bp-activity/bp-activity-admin.php:282 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:281 +#: bp-activity/bp-activity-admin.php:283 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:287 +#: bp-activity/bp-activity-admin.php:289 msgid "Moderating Activity" msgstr "" -#: bp-activity/bp-activity-admin.php:289 +#: bp-activity/bp-activity-admin.php:291 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:290 +#: bp-activity/bp-activity-admin.php:292 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,426 +273,492 @@ msgid "" "screen to show only related activity items." msgstr "" -#: bp-activity/bp-activity-admin.php:302 +#: bp-activity/bp-activity-admin.php:305 +#. translators: accessibility text msgid "Activity list navigation" msgstr "" -#: bp-activity/bp-activity-admin.php:664 +#: bp-activity/bp-activity-admin.php:667 msgid "Editing Activity (ID #%s)" msgstr "" -#: bp-activity/bp-activity-admin.php:675 +#: bp-activity/bp-activity-admin.php:678 msgid "Action" msgstr "" #: bp-activity/bp-activity-admin.php:682 +#. translators: accessibility text +msgid "Edit activity action" +msgstr "" + +#: bp-activity/bp-activity-admin.php:689 msgid "Content" msgstr "" -#: bp-activity/bp-activity-admin.php:708 +#: bp-activity/bp-activity-admin.php:693 +#. translators: accessibility text +msgid "Edit activity content" +msgstr "" + +#: bp-activity/bp-activity-admin.php:722 msgid "No activity found with this ID." msgstr "" -#: bp-activity/bp-activity-admin.php:709 +#: bp-activity/bp-activity-admin.php:724 bp-groups/bp-groups-admin.php:655 +#: bp-members/classes/class-bp-members-admin.php:939 msgid "Go back and try again." msgstr "" -#: bp-activity/bp-activity-admin.php:733 -#: bp-activity/classes/class-bp-activity-list-table.php:667 +#: bp-activity/bp-activity-admin.php:750 +#: bp-activity/classes/class-bp-activity-list-table.php:677 msgid "View Activity" msgstr "" -#: bp-activity/bp-activity-admin.php:741 +#: bp-activity/bp-activity-admin.php:758 msgid "Approved" msgstr "" -#: bp-activity/bp-activity-admin.php:742 -#: bp-activity/classes/class-bp-activity-list-table.php:578 +#: bp-activity/bp-activity-admin.php:759 +#: bp-activity/classes/class-bp-activity-list-table.php:588 #: bp-activity/classes/class-bp-akismet.php:205 #: bp-activity/classes/class-bp-akismet.php:234 -#: bp-core/admin/bp-core-admin-functions.php:1003 +#: bp-core/admin/bp-core-admin-functions.php:1011 msgid "Spam" msgstr "" -#: bp-activity/bp-activity-admin.php:748 -#: bp-members/classes/class-bp-members-admin.php:1001 -#: bp-members/classes/class-bp-members-admin.php:1061 +#: bp-activity/bp-activity-admin.php:765 +#: bp-members/classes/class-bp-members-admin.php:1005 +#: bp-members/classes/class-bp-members-admin.php:1065 #. Translators: Publish box date format, see http:php.net/date. msgid "M j, Y @ G:i" msgstr "" -#: bp-activity/bp-activity-admin.php:751 +#: bp-activity/bp-activity-admin.php:768 msgid "Submitted on: %s" msgstr "" -#: bp-activity/bp-activity-admin.php:751 -#: bp-activity/classes/class-bp-activity-list-table.php:571 -#: bp-forums/bp-forums-template.php:2531 -#: bp-groups/classes/class-bp-groups-list-table.php:482 -#: bp-xprofile/bp-xprofile-admin.php:602 +#: bp-activity/bp-activity-admin.php:768 +#: bp-activity/classes/class-bp-activity-list-table.php:581 +#: bp-forums/bp-forums-template.php:2786 +#: bp-groups/classes/class-bp-groups-list-table.php:489 +#: bp-xprofile/bp-xprofile-admin.php:611 msgid "Edit" msgstr "" -#: bp-activity/bp-activity-admin.php:764 -#: bp-xprofile/classes/class-bp-xprofile-field.php:1132 -#: bp-xprofile/classes/class-bp-xprofile-group.php:716 +#: bp-activity/bp-activity-admin.php:781 +#: bp-xprofile/classes/class-bp-xprofile-field.php:1138 +#: bp-xprofile/classes/class-bp-xprofile-group.php:719 msgid "Update" msgstr "" -#: bp-activity/bp-activity-admin.php:784 +#: bp-activity/bp-activity-admin.php:803 +#. translators: accessibility text msgid "Link" msgstr "" -#: bp-activity/bp-activity-admin.php:786 +#: bp-activity/bp-activity-admin.php:806 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:801 +#: bp-activity/bp-activity-admin.php:823 +#. translators: accessibility text msgid "Author ID" msgstr "" -#: bp-activity/bp-activity-admin.php:870 +#: bp-activity/bp-activity-admin.php:893 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:876 +#: bp-activity/bp-activity-admin.php:901 +#. translators: accessibility text msgid "Select activity type" msgstr "" -#: bp-activity/bp-activity-admin.php:896 +#: bp-activity/bp-activity-admin.php:922 msgid "Primary Item ID" msgstr "" -#: bp-activity/bp-activity-admin.php:900 +#: bp-activity/bp-activity-admin.php:926 msgid "Secondary Item ID" msgstr "" -#: bp-activity/bp-activity-admin.php:903 +#: bp-activity/bp-activity-admin.php:929 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:942 +#: bp-activity/bp-activity-admin.php:968 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:946 +#: bp-activity/bp-activity-admin.php:972 msgid "An error occurred when trying to update activity ID #%s." msgstr "" -#: bp-activity/bp-activity-admin.php:949 +#: bp-activity/bp-activity-admin.php:975 msgid "Errors occurred when trying to update these activity items:" msgstr "" -#: bp-activity/bp-activity-admin.php:955 +#: bp-activity/bp-activity-admin.php:981 #. Translators: This is a bulleted list of item IDs. msgid "#%s" msgstr "" -#: bp-activity/bp-activity-admin.php:964 +#: bp-activity/bp-activity-admin.php:990 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:967 +#: bp-activity/bp-activity-admin.php:993 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:970 +#: bp-activity/bp-activity-admin.php:996 msgid "The activity item has been updated successfully." msgstr "" -#: bp-activity/bp-activity-admin.php:988 +#: bp-activity/bp-activity-admin.php:1014 msgid "Activity related to ID #%s" msgstr "" -#: bp-activity/bp-activity-admin.php:994 bp-groups/bp-groups-admin.php:735 -#: bp-members/classes/class-bp-members-admin.php:1866 +#: bp-activity/bp-activity-admin.php:1020 bp-groups/bp-groups-admin.php:765 +#: bp-members/classes/class-bp-members-admin.php:1881 msgid "Search results for “%s”" msgstr "" -#: bp-activity/bp-activity-admin.php:1007 +#: bp-activity/bp-activity-admin.php:1033 msgid "Search all Activity" msgstr "" -#: bp-activity/bp-activity-admin.php:1018 +#: bp-activity/bp-activity-admin.php:1044 msgid "Reply to Activity" msgstr "" -#: bp-activity/bp-activity-admin.php:1022 bp-groups/bp-groups-admin.php:682 -#: bp-members/classes/class-bp-members-admin.php:2015 -#: bp-templates/bp-legacy/buddypress/activity/entry.php:126 +#: bp-activity/bp-activity-admin.php:1047 +#: bp-activity/bp-activity-admin.php:1053 +#: bp-activity/classes/class-bp-activity-list-table.php:575 +#: bp-templates/bp-legacy/buddypress/activity/comment.php:39 +#: bp-templates/bp-legacy/buddypress/groups/single/forum/edit.php:23 +#: bp-templates/bp-legacy/buddypress/groups/single/forum/topic.php:191 +#. translators: accessibility text +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:2030 +#: bp-templates/bp-legacy/buddypress/activity/entry.php:129 #: bp-templates/bp-legacy/buddypress/forums/index.php:205 -#: bp-xprofile/classes/class-bp-xprofile-field.php:1273 -#: bp-xprofile/classes/class-bp-xprofile-group.php:785 +#: bp-xprofile/classes/class-bp-xprofile-field.php:1279 +#: bp-xprofile/classes/class-bp-xprofile-group.php:803 msgid "Cancel" msgstr "" -#: bp-activity/bp-activity-admin.php:1023 -#: bp-activity/classes/class-bp-activity-list-table.php:565 -#: bp-templates/bp-legacy/buddypress/activity/comment.php:39 -#: bp-templates/bp-legacy/buddypress/groups/single/forum/edit.php:23 -#: bp-templates/bp-legacy/buddypress/groups/single/forum/topic.php:189 -msgid "Reply" +#: bp-activity/bp-activity-adminbar.php:43 +msgid "Edit Activity" msgstr "" -#: bp-activity/bp-activity-filters.php:437 +#: bp-activity/bp-activity-embeds.php:289 +#. translators: By [oEmbed author] on [oEmbed provider]. eg. By BuddyPress on +#. YouTube. +msgid "By %1$s on %2$s" +msgstr "" + +#: bp-activity/bp-activity-embeds.php:292 +msgid "View on %s" +msgstr "" + +#: bp-activity/bp-activity-embeds.php:337 +msgid "Your browser does not support HTML5 video" +msgstr "" + +#: bp-activity/bp-activity-embeds.php:344 +msgid "Your browser does not support HTML5 audio" +msgstr "" + +#: bp-activity/bp-activity-filters.php:447 msgid "[Read more]" msgstr "" -#: bp-activity/bp-activity-filters.php:449 +#: bp-activity/bp-activity-filters.php:458 msgid "…" msgstr "" -#: bp-activity/bp-activity-filters.php:656 +#: bp-activity/bp-activity-filters.php:664 msgid "Load Newest" msgstr "" -#: bp-activity/bp-activity-functions.php:1430 +#: bp-activity/bp-activity-functions.php:1384 msgid "Posted a status update" msgstr "" -#: bp-activity/bp-activity-functions.php:1432 +#: bp-activity/bp-activity-functions.php:1386 msgid "Updates" msgstr "" -#: bp-activity/bp-activity-functions.php:1439 +#: bp-activity/bp-activity-functions.php:1393 msgid "Replied to a status update" msgstr "" -#: bp-activity/bp-activity-functions.php:1441 +#: bp-activity/bp-activity-functions.php:1395 msgid "Activity Comments" msgstr "" -#: bp-activity/bp-activity-functions.php:1509 +#: bp-activity/bp-activity-functions.php:1463 msgid "%s posted an update" msgstr "" -#: bp-activity/bp-activity-functions.php:1532 +#: bp-activity/bp-activity-functions.php:1486 msgid "%s posted a new activity comment" msgstr "" -#: bp-activity/bp-activity-functions.php:2595 -#: bp-templates/bp-legacy/buddypress-functions.php:1012 +#: bp-activity/bp-activity-functions.php:2552 +#: bp-templates/bp-legacy/buddypress-functions.php:989 msgid "There was an error posting your reply. Please try again." msgstr "" -#: bp-activity/bp-activity-functions.php:2631 -msgid "Sorry, the item you are replying to no longer exists." +#: bp-activity/bp-activity-functions.php:2580 +msgid "The item you were replying to no longer exists." msgstr "" -#: bp-activity/bp-activity-functions.php:3183 +#: bp-activity/bp-activity-functions.php:3118 msgid "Thumbnail" msgstr "" -#: bp-activity/bp-activity-notifications.php:234 +#: bp-activity/bp-activity-notifications.php:225 msgid "@%s Mentions" msgstr "" -#: bp-activity/bp-activity-notifications.php:238 +#: bp-activity/bp-activity-notifications.php:229 msgid "You have %1$d new mentions" msgstr "" -#: bp-activity/bp-activity-notifications.php:242 +#: bp-activity/bp-activity-notifications.php:232 msgid "%1$s mentioned you" msgstr "" -#: bp-activity/bp-activity-screens.php:327 +#: bp-activity/bp-activity-notifications.php:238 +msgid "New Activity reply" +msgstr "" + +#: bp-activity/bp-activity-notifications.php:243 +msgid "You have %1$d new replies" +msgstr "" + +#: bp-activity/bp-activity-notifications.php:247 +msgid "%1$s commented on one of your updates" +msgstr "" + +#: bp-activity/bp-activity-notifications.php:253 +msgid "New Activity comment reply" +msgstr "" + +#: bp-activity/bp-activity-notifications.php:258 +msgid "You have %1$d new comment replies" +msgstr "" + +#: bp-activity/bp-activity-notifications.php:262 +msgid "%1$s replied to one your activity comments" +msgstr "" + +#: bp-activity/bp-activity-screens.php:280 msgid "You do not have access to this activity." msgstr "" -#: bp-activity/bp-activity-screens.php:381 +#: bp-activity/bp-activity-screens.php:331 +#: 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:382 bp-blogs/bp-blogs-template.php:1043 -#: bp-friends/bp-friends-screens.php:116 bp-groups/bp-groups-screens.php:1431 -#: bp-messages/bp-messages-screens.php:207 +#: bp-activity/bp-activity-screens.php:332 bp-blogs/bp-blogs-template.php:1041 +#: bp-friends/bp-friends-screens.php:116 bp-groups/bp-groups-screens.php:1438 +#: bp-messages/bp-messages-screens.php:210 #: bp-templates/bp-legacy/buddypress/members/register.php:307 msgid "Yes" msgstr "" -#: bp-activity/bp-activity-screens.php:383 bp-blogs/bp-blogs-template.php:1047 -#: bp-friends/bp-friends-screens.php:117 bp-groups/bp-groups-screens.php:1432 -#: bp-messages/bp-messages-screens.php:208 +#: bp-activity/bp-activity-screens.php:333 bp-blogs/bp-blogs-template.php:1045 +#: bp-friends/bp-friends-screens.php:117 bp-groups/bp-groups-screens.php:1439 +#: bp-messages/bp-messages-screens.php:211 #: bp-templates/bp-legacy/buddypress/members/register.php:308 msgid "No" msgstr "" -#: bp-activity/bp-activity-screens.php:391 +#: bp-activity/bp-activity-screens.php:341 msgid "A member mentions you in an update using \"@%s\"" msgstr "" -#: bp-activity/bp-activity-screens.php:392 -#: bp-activity/bp-activity-screens.php:400 -#: bp-friends/bp-friends-screens.php:125 bp-friends/bp-friends-screens.php:131 -#: bp-groups/bp-groups-screens.php:1440 bp-groups/bp-groups-screens.php:1446 -#: bp-groups/bp-groups-screens.php:1452 bp-groups/bp-groups-screens.php:1458 -#: bp-messages/bp-messages-screens.php:216 +#: bp-activity/bp-activity-screens.php:344 +#: bp-activity/bp-activity-screens.php:358 +#: bp-friends/bp-friends-screens.php:127 bp-friends/bp-friends-screens.php:139 +#: bp-groups/bp-groups-screens.php:1449 bp-groups/bp-groups-screens.php:1461 +#: bp-groups/bp-groups-screens.php:1473 bp-groups/bp-groups-screens.php:1485 +#: bp-groups/bp-groups-screens.php:1497 bp-messages/bp-messages-screens.php:221 +#. translators: accessibility text msgid "Yes, send email" msgstr "" -#: bp-activity/bp-activity-screens.php:393 -#: bp-activity/bp-activity-screens.php:401 -#: bp-friends/bp-friends-screens.php:126 bp-friends/bp-friends-screens.php:132 -#: bp-groups/bp-groups-screens.php:1441 bp-groups/bp-groups-screens.php:1447 -#: bp-groups/bp-groups-screens.php:1453 bp-groups/bp-groups-screens.php:1459 -#: bp-messages/bp-messages-screens.php:217 +#: bp-activity/bp-activity-screens.php:348 +#: bp-activity/bp-activity-screens.php:362 +#: bp-friends/bp-friends-screens.php:131 bp-friends/bp-friends-screens.php:143 +#: bp-groups/bp-groups-screens.php:1453 bp-groups/bp-groups-screens.php:1465 +#: bp-groups/bp-groups-screens.php:1477 bp-groups/bp-groups-screens.php:1489 +#: bp-groups/bp-groups-screens.php:1501 bp-messages/bp-messages-screens.php:225 +#. translators: accessibility text msgid "No, do not send email" msgstr "" -#: bp-activity/bp-activity-screens.php:399 +#: bp-activity/bp-activity-screens.php:355 msgid "A member replies to an update or comment you've posted" msgstr "" -#: bp-activity/bp-activity-template.php:479 +#: bp-activity/bp-activity-template.php:457 msgid "Viewing 1 item" msgstr "" -#: bp-activity/bp-activity-template.php:481 +#: bp-activity/bp-activity-template.php:459 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:1102 -#: bp-activity/bp-activity-template.php:1282 -#: bp-activity/bp-activity-template.php:1293 +#: bp-activity/bp-activity-template.php:1041 +#: bp-activity/bp-activity-template.php:1214 +#: bp-activity/bp-activity-template.php:1225 #: bp-activity/classes/class-bp-activity-component.php:355 -#: bp-blogs/classes/class-bp-blogs-component.php:282 -#: bp-core/deprecated/2.1.php:459 bp-forums/bp-forums-loader.php:254 -#: bp-forums/bp-forums-template.php:844 bp-forums/bp-forums-template.php:1143 -#: bp-forums/bp-forums-template.php:2381 -#: bp-friends/classes/class-bp-friends-component.php:247 -#: bp-groups/bp-groups-template.php:1363 bp-groups/bp-groups-template.php:1408 -#: bp-groups/bp-groups-template.php:2175 bp-groups/bp-groups-template.php:2191 -#: bp-groups/bp-groups-template.php:2251 bp-groups/bp-groups-template.php:2267 -#: bp-groups/bp-groups-template.php:3708 bp-groups/bp-groups-template.php:3747 -#: bp-groups/bp-groups-template.php:3788 bp-groups/bp-groups-template.php:5291 -#: bp-groups/classes/class-bp-groups-component.php:772 -#: bp-members/bp-members-template.php:769 -#: bp-members/bp-members-template.php:1332 -#: bp-members/bp-members-template.php:1381 -#: bp-members/classes/class-bp-members-component.php:293 -#: bp-messages/bp-messages-template.php:664 -#: bp-messages/classes/class-bp-messages-component.php:321 -#: bp-notifications/classes/class-bp-notifications-component.php:242 -#: bp-templates/bp-legacy/buddypress/groups/single/admin.php:270 -#: bp-templates/bp-legacy/buddypress/groups/single/admin.php:297 +#: bp-blogs/classes/class-bp-blogs-component.php:293 +#: 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:2616 +#: bp-friends/classes/class-bp-friends-component.php:269 +#: bp-groups/bp-groups-template.php:1357 bp-groups/bp-groups-template.php:1402 +#: bp-groups/bp-groups-template.php:2169 bp-groups/bp-groups-template.php:2185 +#: bp-groups/bp-groups-template.php:2245 bp-groups/bp-groups-template.php:2261 +#: bp-groups/bp-groups-template.php:3706 bp-groups/bp-groups-template.php:3745 +#: bp-groups/bp-groups-template.php:3786 bp-groups/bp-groups-template.php:5297 +#: bp-groups/classes/class-bp-groups-component.php:811 +#: bp-members/bp-members-template.php:808 +#: bp-members/bp-members-template.php:1518 +#: bp-members/bp-members-template.php:1573 +#: bp-members/classes/class-bp-members-component.php:381 +#: bp-messages/bp-messages-template.php:671 +#: bp-messages/classes/class-bp-messages-component.php:340 +#: bp-notifications/classes/class-bp-notifications-component.php:267 +#: bp-templates/bp-legacy/buddypress/groups/single/admin.php:273 +#: bp-templates/bp-legacy/buddypress/groups/single/admin.php:300 msgid "Profile picture of %s" msgstr "" -#: bp-activity/bp-activity-template.php:1102 +#: bp-activity/bp-activity-template.php:1041 msgid "Profile picture" msgstr "" -#: bp-activity/bp-activity-template.php:1258 +#: bp-activity/bp-activity-template.php:1190 msgid "Group logo" msgstr "" -#: bp-activity/bp-activity-template.php:1261 -#: bp-groups/bp-groups-template.php:586 -#: bp-groups/classes/class-bp-groups-list-table.php:509 +#: bp-activity/bp-activity-template.php:1193 +#: bp-groups/bp-groups-template.php:580 +#: bp-groups/classes/class-bp-groups-list-table.php:516 msgid "Group logo of %s" msgstr "" -#: bp-activity/bp-activity-template.php:1272 +#: bp-activity/bp-activity-template.php:1204 msgid "Profile picture of the author of the site %s" msgstr "" -#: bp-activity/bp-activity-template.php:1585 +#: bp-activity/bp-activity-template.php:1499 msgid "View Discussion" msgstr "" -#: bp-activity/bp-activity-template.php:2293 +#: 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:2768 -#: bp-core/bp-core-attachments.php:719 bp-forums/bp-forums-template.php:2532 -#: bp-groups/classes/class-bp-groups-component.php:660 -#: bp-groups/classes/class-bp-groups-list-table.php:327 -#: bp-groups/classes/class-bp-groups-list-table.php:485 +#: bp-activity/bp-activity-template.php:2598 +#: bp-core/bp-core-attachments.php:719 bp-forums/bp-forums-template.php:2787 +#: bp-groups/classes/class-bp-groups-component.php:688 +#: bp-groups/classes/class-bp-groups-list-table.php:333 +#: bp-groups/classes/class-bp-groups-list-table.php:492 #: bp-members/classes/class-bp-members-list-table.php:171 -#: bp-members/classes/class-bp-members-list-table.php:316 +#: 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:309 -#: bp-messages/bp-messages-template.php:957 -#: bp-notifications/bp-notifications-template.php:702 -#: bp-notifications/bp-notifications-template.php:936 +#: 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-templates/bp-legacy/buddypress/activity/comment.php:45 -#: bp-templates/bp-legacy/buddypress/members/single/messages/messages-loop.php:133 +#: bp-templates/bp-legacy/buddypress/members/single/messages/messages-loop.php:142 #: bp-templates/bp-legacy/buddypress/members/single/messages/single.php:44 -#: bp-xprofile/bp-xprofile-admin.php:607 -#: bp-xprofile/classes/class-bp-xprofile-field-type.php:377 +#: bp-xprofile/bp-xprofile-admin.php:616 +#: bp-xprofile/classes/class-bp-xprofile-field-type.php:380 msgid "Delete" msgstr "" -#: bp-activity/bp-activity-template.php:2889 -#: bp-core/admin/bp-core-admin-functions.php:1009 -#: bp-core/admin/bp-core-admin-slugs.php:150 -#: bp-core/admin/bp-core-admin-slugs.php:213 -#: bp-groups/classes/class-bp-groups-list-table.php:488 -#: bp-members/bp-members-template.php:982 -#: bp-templates/bp-legacy/buddypress-functions.php:309 +#: bp-activity/bp-activity-template.php:2703 +#: bp-core/admin/bp-core-admin-functions.php:1017 +#: bp-core/admin/bp-core-admin-slugs.php:149 +#: bp-core/admin/bp-core-admin-slugs.php:212 +#: bp-groups/classes/class-bp-groups-list-table.php:495 +#: bp-members/bp-members-template.php:1045 +#: bp-templates/bp-legacy/buddypress-functions.php:303 msgid "View" msgstr "" -#: bp-activity/bp-activity-template.php:3004 +#: bp-activity/bp-activity-template.php:2812 msgid "Clear Filter" msgstr "" -#: bp-activity/bp-activity-template.php:3328 +#: bp-activity/bp-activity-template.php:3122 msgid "a user" msgstr "" -#: bp-activity/bp-activity-template.php:3392 +#: bp-activity/bp-activity-template.php:3181 msgid "Send a public message on your activity stream." msgstr "" -#: bp-activity/bp-activity-template.php:3393 +#: bp-activity/bp-activity-template.php:3182 msgid "Public Message" msgstr "" -#: bp-activity/bp-activity-template.php:4021 +#: bp-activity/bp-activity-template.php:3774 msgid "Site Wide Activity RSS Feed" msgstr "" -#: bp-activity/classes/class-bp-activity-activity.php:325 +#: bp-activity/classes/class-bp-activity-activity.php:360 #: bp-activity/classes/class-bp-activity-template.php:144 #: bp-groups/bp-groups-functions.php:596 #: bp-groups/classes/class-bp-groups-group-members-template.php:99 -#: bp-groups/classes/class-bp-groups-group.php:732 +#: bp-groups/classes/class-bp-groups-group.php:733 #: bp-groups/classes/class-bp-groups-invite-template.php:84 #: bp-groups/classes/class-bp-groups-membership-requests-template.php:91 #: bp-groups/classes/class-bp-groups-template.php:134 #: bp-messages/classes/class-bp-messages-box-template.php:113 #: bp-messages/classes/class-bp-messages-thread.php:422 -#: bp-xprofile/classes/class-bp-xprofile-data-template.php:128 +#: bp-xprofile/classes/class-bp-xprofile-data-template.php:129 msgid "" "Arguments passed to %1$s should be in an associative array. See the inline " "documentation at %2$s for more details." msgstr "" #: bp-activity/classes/class-bp-activity-component.php:30 -#: bp-core/admin/bp-core-admin-components.php:394 +#: bp-core/bp-core-functions.php:2389 msgid "Activity Streams" msgstr "" -#: bp-activity/classes/class-bp-activity-component.php:117 +#: bp-activity/classes/class-bp-activity-component.php:127 msgid "Search Activity..." msgstr "" @@ -708,89 +774,97 @@ msgstr "" msgid "No activities found." msgstr "" -#: bp-activity/classes/class-bp-activity-list-table.php:246 +#: bp-activity/classes/class-bp-activity-list-table.php:248 +#. translators: accessibility text msgid "Activities list" msgstr "" -#: bp-activity/classes/class-bp-activity-list-table.php:307 +#: bp-activity/classes/class-bp-activity-list-table.php:312 +#. translators: accessibility text msgid "Filter activities list" msgstr "" -#: bp-activity/classes/class-bp-activity-list-table.php:310 -#: bp-groups/classes/class-bp-groups-list-table.php:290 +#: bp-activity/classes/class-bp-activity-list-table.php:316 +#: bp-groups/classes/class-bp-groups-list-table.php:296 msgid "All" msgstr "" -#: bp-activity/classes/class-bp-activity-list-table.php:311 +#: bp-activity/classes/class-bp-activity-list-table.php:317 msgid "Spam <span class=\"count\">(%s)</span>" msgstr "" -#: bp-activity/classes/class-bp-activity-list-table.php:337 +#: bp-activity/classes/class-bp-activity-list-table.php:343 msgid "Mark as Spam" msgstr "" -#: bp-activity/classes/class-bp-activity-list-table.php:338 -#: bp-activity/classes/class-bp-activity-list-table.php:576 -#: bp-core/admin/bp-core-admin-functions.php:997 +#: bp-activity/classes/class-bp-activity-list-table.php:344 +#: bp-activity/classes/class-bp-activity-list-table.php:586 +#: bp-core/admin/bp-core-admin-functions.php:1005 msgid "Not Spam" msgstr "" -#: bp-activity/classes/class-bp-activity-list-table.php:339 -#: bp-activity/classes/class-bp-activity-list-table.php:581 -#: bp-groups/bp-groups-admin.php:681 +#: bp-activity/classes/class-bp-activity-list-table.php:345 +#: bp-activity/classes/class-bp-activity-list-table.php:591 +#: bp-groups/bp-groups-admin.php:711 msgid "Delete Permanently" msgstr "" -#: bp-activity/classes/class-bp-activity-list-table.php:417 +#: bp-activity/classes/class-bp-activity-list-table.php:425 +#. translators: accessibility text msgid "Filter by activity type" msgstr "" -#: bp-activity/classes/class-bp-activity-list-table.php:419 +#: bp-activity/classes/class-bp-activity-list-table.php:428 msgid "View all actions" msgstr "" -#: bp-activity/classes/class-bp-activity-list-table.php:444 +#: bp-activity/classes/class-bp-activity-list-table.php:453 msgid "Filter" msgstr "" -#: bp-activity/classes/class-bp-activity-list-table.php:491 +#: bp-activity/classes/class-bp-activity-list-table.php:501 +#. translators: accessibility text msgid "Select activity item %1$d" msgstr "" -#: bp-activity/classes/class-bp-activity-list-table.php:522 +#: bp-activity/classes/class-bp-activity-list-table.php:532 msgid "Unregistered action - %s" msgstr "" -#: bp-activity/classes/class-bp-activity-list-table.php:567 +#: bp-activity/classes/class-bp-activity-list-table.php:577 msgid "Replies are disabled for this activity item" msgstr "" -#: bp-activity/classes/class-bp-activity-list-table.php:567 +#: bp-activity/classes/class-bp-activity-list-table.php:577 msgid "Replies disabled" msgstr "" -#: bp-activity/classes/class-bp-activity-list-table.php:581 +#: bp-activity/classes/class-bp-activity-list-table.php:591 #: bp-core/bp-core-cssjs.php:121 msgid "Are you sure?" msgstr "" -#: bp-activity/classes/class-bp-activity-list-table.php:598 +#: bp-activity/classes/class-bp-activity-list-table.php:608 #. translators: %s: activity date and time msgid "Submitted on %s" msgstr "" -#: bp-activity/classes/class-bp-activity-list-table.php:604 -#: bp-core/bp-core-template.php:412 +#: bp-activity/classes/class-bp-activity-list-table.php:614 +#: bp-core/bp-core-template.php:426 #. translators: 1: activity date, 2: activity time msgid "%1$s at %2$s" msgstr "" -#: bp-activity/classes/class-bp-activity-list-table.php:686 +#: bp-activity/classes/class-bp-activity-list-table.php:696 msgid "%s related activity" msgid_plural "%s related activities" msgstr[0] "" msgstr[1] "" +#: bp-activity/classes/class-bp-activity-oembed-extension.php:194 +msgid "Embedded Activity Item" +msgstr "" + #: bp-activity/classes/class-bp-akismet.php:87 msgid "Flagged as spam by Akismet" msgstr "" @@ -886,145 +960,148 @@ msgstr "" msgid "%1$s commented on the post, %2$s" msgstr "" -#: bp-blogs/bp-blogs-template.php:239 +#: bp-blogs/bp-blogs-template.php:234 msgid "Viewing 1 site" msgstr "" -#: bp-blogs/bp-blogs-template.php:241 +#: bp-blogs/bp-blogs-template.php:236 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:326 bp-blogs/bp-blogs-template.php:328 +#: bp-blogs/bp-blogs-template.php:321 bp-blogs/bp-blogs-template.php:323 msgid "Profile picture of site author %s" msgstr "" -#: bp-blogs/bp-blogs-template.php:555 -#: bp-core/classes/class-bp-core-user.php:189 -#: bp-groups/bp-groups-widgets.php:71 +#: bp-blogs/bp-blogs-template.php:550 +#: bp-core/classes/class-bp-core-user.php:177 +#: bp-groups/bp-groups-widgets.php:73 #: bp-groups/classes/class-bp-groups-invite-template.php:240 -#: bp-groups/classes/class-bp-groups-widget.php:133 -#: bp-members/bp-members-template.php:908 -#: bp-members/bp-members-template.php:1453 +#: bp-groups/classes/class-bp-groups-widget.php:143 +#: bp-members/bp-members-template.php:965 +#: bp-members/bp-members-template.php:1655 #: bp-templates/bp-legacy/buddypress/groups/groups-loop.php:62 #: 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:568 bp-members/bp-members-template.php:921 +#: bp-blogs/bp-blogs-template.php:563 bp-members/bp-members-template.php:978 msgid "Never active" msgstr "" -#: bp-blogs/bp-blogs-template.php:620 +#: bp-blogs/bp-blogs-template.php:615 msgid "Latest Post: %s" msgstr "" -#: bp-blogs/bp-blogs-template.php:954 +#: bp-blogs/bp-blogs-template.php:952 msgid "There was a problem; please correct the form below and try again." msgstr "" -#: bp-blogs/bp-blogs-template.php:957 +#: bp-blogs/bp-blogs-template.php:955 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:959 +#: bp-blogs/bp-blogs-template.php:957 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:975 +#: bp-blogs/bp-blogs-template.php:973 msgid "Create Site" msgstr "" -#: bp-blogs/bp-blogs-template.php:997 +#: bp-blogs/bp-blogs-template.php:995 msgid "Site Name:" msgstr "" -#: bp-blogs/bp-blogs-template.php:999 +#: bp-blogs/bp-blogs-template.php:997 msgid "Site Domain:" msgstr "" -#: bp-blogs/bp-blogs-template.php:1013 +#: bp-blogs/bp-blogs-template.php:1011 msgid "Your address will be " msgstr "" -#: bp-blogs/bp-blogs-template.php:1016 +#: bp-blogs/bp-blogs-template.php:1014 msgid "blogname" msgstr "" -#: bp-blogs/bp-blogs-template.php:1018 +#: bp-blogs/bp-blogs-template.php:1016 msgid "domain." msgstr "" -#: bp-blogs/bp-blogs-template.php:1021 +#: bp-blogs/bp-blogs-template.php:1019 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:1027 +#: bp-blogs/bp-blogs-template.php:1025 msgid "Site Title:" msgstr "" -#: bp-blogs/bp-blogs-template.php:1038 +#: bp-blogs/bp-blogs-template.php:1036 msgid "Privacy:" msgstr "" -#: bp-blogs/bp-blogs-template.php:1039 +#: bp-blogs/bp-blogs-template.php:1037 #: bp-templates/bp-legacy/buddypress/members/register.php:297 msgid "" "I would like my site to appear in search engines, and in public listings " "around this network." msgstr "" -#: bp-blogs/bp-blogs-template.php:1145 +#: bp-blogs/bp-blogs-template.php:1149 msgid "Congratulations! You have successfully registered a new site." msgstr "" -#: bp-blogs/bp-blogs-template.php:1147 -msgid "" -"<a href=\"%1$s\">%2$s</a> is your new site. <a href=\"%3$s\">Login</a> as " -"\"%4$s\" using your existing password." +#: bp-blogs/bp-blogs-template.php:1154 +msgid "%s is your new site." +msgstr "" + +#: bp-blogs/bp-blogs-template.php:1159 +#. 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:1180 bp-blogs/bp-blogs-template.php:1266 -#: bp-blogs/bp-blogs-template.php:1267 -#: bp-blogs/classes/class-bp-blogs-component.php:252 +#: bp-blogs/bp-blogs-template.php:1196 bp-blogs/bp-blogs-template.php:1282 +#: bp-blogs/bp-blogs-template.php:1283 +#: bp-blogs/classes/class-bp-blogs-component.php:263 #: bp-blogs/classes/class-bp-blogs-theme-compat.php:175 -#: bp-core/bp-core-template.php:3082 +#: bp-core/bp-core-template.php:3141 msgid "Create a Site" msgstr "" -#: bp-blogs/bp-blogs-template.php:1196 +#: bp-blogs/bp-blogs-template.php:1212 msgid "%s's Sites" msgstr "" -#: bp-blogs/bp-blogs-template.php:1197 +#: bp-blogs/bp-blogs-template.php:1213 msgid "%s's Recent Posts" msgstr "" -#: bp-blogs/bp-blogs-template.php:1198 +#: bp-blogs/bp-blogs-template.php:1214 msgid "%s's Recent Comments" msgstr "" -#: bp-blogs/bp-blogs-template.php:1226 bp-core/deprecated/1.5.php:426 -#: bp-forums/bp-forums-template.php:2659 bp-groups/bp-groups-template.php:4978 -#: bp-members/bp-members-template.php:1152 -#: bp-messages/bp-messages-template.php:782 +#: bp-blogs/bp-blogs-template.php:1242 bp-core/deprecated/1.5.php:426 +#: bp-forums/bp-forums-template.php:2930 bp-groups/bp-groups-template.php:4984 +#: bp-members/bp-members-template.php:1233 +#: bp-messages/bp-messages-template.php:794 msgid "Search" msgstr "" -#: bp-blogs/bp-blogs-template.php:1379 bp-blogs/bp-blogs-template.php:1380 +#: bp-blogs/bp-blogs-template.php:1393 bp-blogs/bp-blogs-template.php:1394 msgid "Visit Site" msgstr "" -#: bp-blogs/bp-blogs-template.php:1442 +#: bp-blogs/bp-blogs-template.php:1454 msgid "%s site" msgid_plural "%s sites" msgstr[0] "" @@ -1038,18 +1115,19 @@ msgstr "" msgid "Search sites..." msgstr "" -#: bp-blogs/classes/class-bp-blogs-component.php:179 -msgid "Sites <span class=\"%s\">%s</span>" +#: bp-blogs/classes/class-bp-blogs-component.php:184 +#. translators: %s: Site count for the current user +msgid "Sites %s" msgstr "" -#: bp-blogs/classes/class-bp-blogs-component.php:190 -#: bp-blogs/classes/class-bp-blogs-component.php:242 -#: bp-blogs/classes/class-bp-blogs-component.php:273 +#: bp-blogs/classes/class-bp-blogs-component.php:201 +#: bp-blogs/classes/class-bp-blogs-component.php:253 +#: bp-blogs/classes/class-bp-blogs-component.php:284 #: bp-core/deprecated/2.1.php:62 msgid "My Sites" msgstr "" -#: bp-blogs/classes/class-bp-blogs-component.php:234 +#: bp-blogs/classes/class-bp-blogs-component.php:245 #: bp-blogs/classes/class-bp-blogs-theme-compat.php:113 #: bp-blogs/classes/class-bp-blogs-theme-compat.php:177 msgid "Sites" @@ -1059,262 +1137,181 @@ msgstr "" msgid "A list of recently published posts from across your network." msgstr "" -#: bp-blogs/classes/class-bp-blogs-recent-posts-widget.php:42 -#: bp-blogs/classes/class-bp-blogs-recent-posts-widget.php:147 +#: bp-blogs/classes/class-bp-blogs-recent-posts-widget.php:43 +#: bp-blogs/classes/class-bp-blogs-recent-posts-widget.php:148 msgid "Recent Networkwide Posts" msgstr "" -#: bp-blogs/classes/class-bp-blogs-recent-posts-widget.php:111 +#: bp-blogs/classes/class-bp-blogs-recent-posts-widget.php:112 msgid "Sorry, there were no posts found. Why not write one?" msgstr "" -#: bp-blogs/classes/class-bp-blogs-recent-posts-widget.php:159 +#: bp-blogs/classes/class-bp-blogs-recent-posts-widget.php:160 msgid "Link widget title to Blogs directory" msgstr "" -#: bp-blogs/classes/class-bp-blogs-recent-posts-widget.php:160 +#: bp-blogs/classes/class-bp-blogs-recent-posts-widget.php:161 msgid "Max posts to show:" msgstr "" -#: bp-core/admin/bp-core-admin-components.php:25 -#: bp-core/admin/bp-core-admin-settings.php:280 -#: bp-core/admin/bp-core-admin-slugs.php:25 +#: bp-core/admin/bp-core-admin-components.php:24 +#: bp-core/admin/bp-core-admin-settings.php:269 +#: bp-core/admin/bp-core-admin-slugs.php:24 msgid "BuddyPress Settings" msgstr "" -#: bp-core/admin/bp-core-admin-components.php:27 -#: bp-core/admin/bp-core-admin-functions.php:424 +#: bp-core/admin/bp-core-admin-components.php:26 +#: bp-core/admin/bp-core-admin-functions.php:431 msgid "Components" msgstr "" -#: bp-core/admin/bp-core-admin-components.php:33 -#: bp-core/admin/bp-core-admin-settings.php:291 -#: bp-core/admin/bp-core-admin-slugs.php:33 +#: bp-core/admin/bp-core-admin-components.php:32 +#: bp-core/admin/bp-core-admin-settings.php:280 +#: bp-core/admin/bp-core-admin-slugs.php:32 #: bp-templates/bp-legacy/buddypress/members/single/settings/profile.php:62 msgid "Save Settings" msgstr "" -#: bp-core/admin/bp-core-admin-components.php:68 -#: bp-core/admin/bp-core-admin-components.php:378 +#: bp-core/admin/bp-core-admin-components.php:67 +#: bp-core/bp-core-functions.php:2373 msgid "Extended Profiles" msgstr "" -#: bp-core/admin/bp-core-admin-components.php:69 -#: bp-core/admin/bp-core-admin-components.php:379 +#: bp-core/admin/bp-core-admin-components.php:68 +#: bp-core/bp-core-functions.php:2374 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:72 -#: bp-core/admin/bp-core-admin-components.php:382 +#: bp-core/admin/bp-core-admin-components.php:71 +#: bp-core/bp-core-functions.php:2377 msgid "Account Settings" msgstr "" -#: bp-core/admin/bp-core-admin-components.php:73 -#: bp-core/admin/bp-core-admin-components.php:383 +#: bp-core/admin/bp-core-admin-components.php:72 +#: bp-core/bp-core-functions.php:2378 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:76 -#: bp-core/admin/bp-core-admin-components.php:398 -#: bp-core/deprecated/2.1.php:530 -#: bp-notifications/classes/class-bp-notifications-component.php:237 +#: bp-core/admin/bp-core-admin-components.php:75 +#: bp-core/bp-core-functions.php:2393 bp-core/deprecated/2.1.php:530 +#: bp-notifications/classes/class-bp-notifications-component.php:262 msgid "Notifications" msgstr "" -#: bp-core/admin/bp-core-admin-components.php:77 -#: bp-core/admin/bp-core-admin-components.php:399 +#: bp-core/admin/bp-core-admin-components.php:76 +#: bp-core/bp-core-functions.php:2394 msgid "" "Notify members of relevant activity with a toolbar bubble and/or via email, " "and allow them to customize their notification settings." msgstr "" -#: bp-core/admin/bp-core-admin-components.php:153 +#: bp-core/admin/bp-core-admin-components.php:154 +#. translators: accessibility text msgid "Filter components list" msgstr "" -#: bp-core/admin/bp-core-admin-components.php:157 +#: bp-core/admin/bp-core-admin-components.php:159 msgid "Active <span class=\"count\">(%s)</span>" msgid_plural "Active <span class=\"count\">(%s)</span>" msgstr[0] "" msgstr[1] "" -#: bp-core/admin/bp-core-admin-components.php:158 +#: bp-core/admin/bp-core-admin-components.php:160 msgid "Inactive <span class=\"count\">(%s)</span>" msgid_plural "Inactive <span class=\"count\">(%s)</span>" msgstr[0] "" msgstr[1] "" -#: bp-core/admin/bp-core-admin-components.php:159 +#: bp-core/admin/bp-core-admin-components.php:161 msgid "Must-Use <span class=\"count\">(%s)</span>" msgid_plural "Must-Use <span class=\"count\">(%s)</span>" msgstr[0] "" msgstr[1] "" -#: bp-core/admin/bp-core-admin-components.php:160 +#: bp-core/admin/bp-core-admin-components.php:162 msgid "Retired <span class=\"count\">(%s)</span>" msgid_plural "Retired <span class=\"count\">(%s)</span>" msgstr[0] "" msgstr[1] "" -#: bp-core/admin/bp-core-admin-components.php:163 +#: bp-core/admin/bp-core-admin-components.php:167 +#. translators: accessibility text msgid "Components list" msgstr "" -#: bp-core/admin/bp-core-admin-components.php:168 -#: bp-core/admin/bp-core-admin-components.php:227 +#: bp-core/admin/bp-core-admin-components.php:175 +#: bp-core/admin/bp-core-admin-components.php:241 +#. translators: accessibility text msgid "Bulk selection is disabled" msgstr "" -#: bp-core/admin/bp-core-admin-components.php:169 -#: bp-core/admin/bp-core-admin-components.php:228 +#: bp-core/admin/bp-core-admin-components.php:177 +#: bp-core/admin/bp-core-admin-components.php:243 msgid "Component" msgstr "" -#: bp-core/admin/bp-core-admin-components.php:170 -#: bp-core/admin/bp-core-admin-components.php:229 +#: bp-core/admin/bp-core-admin-components.php:178 +#: bp-core/admin/bp-core-admin-components.php:244 msgid "Description" msgstr "" -#: bp-core/admin/bp-core-admin-components.php:191 +#: bp-core/admin/bp-core-admin-components.php:201 +#. translators: accessibility text msgid "Select %s" msgstr "" -#: bp-core/admin/bp-core-admin-components.php:195 +#: bp-core/admin/bp-core-admin-components.php:207 +#. translators: accessibility text msgid "%s is a required component" msgstr "" -#: bp-core/admin/bp-core-admin-components.php:218 +#: bp-core/admin/bp-core-admin-components.php:230 msgid "No components found." msgstr "" -#: bp-core/admin/bp-core-admin-components.php:358 -#: bp-core/classes/class-bp-core.php:32 -msgid "BuddyPress Core" -msgstr "" - -#: bp-core/admin/bp-core-admin-components.php:359 -msgid "It‘s what makes <del>time travel</del> BuddyPress possible!" -msgstr "" - -#: bp-core/admin/bp-core-admin-components.php:362 -msgid "Community Members" -msgstr "" - -#: bp-core/admin/bp-core-admin-components.php:363 -msgid "Everything in a BuddyPress community revolves around its members." -msgstr "" - -#: bp-core/admin/bp-core-admin-components.php:370 -#: bp-templates/bp-legacy/buddypress/groups/create.php:149 -msgid "Group Forums" -msgstr "" - -#: bp-core/admin/bp-core-admin-components.php:371 -msgid "BuddyPress Forums are retired. Use %s." -msgstr "" - -#: bp-core/admin/bp-core-admin-components.php:386 -msgid "Friend Connections" -msgstr "" - -#: bp-core/admin/bp-core-admin-components.php:387 -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/admin/bp-core-admin-components.php:390 -msgid "Private Messaging" -msgstr "" - -#: bp-core/admin/bp-core-admin-components.php:391 -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/admin/bp-core-admin-components.php:395 -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/admin/bp-core-admin-components.php:402 -msgid "User Groups" -msgstr "" - -#: bp-core/admin/bp-core-admin-components.php:403 -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/admin/bp-core-admin-components.php:406 -msgid "Group Forums (Legacy)" -msgstr "" - -#: bp-core/admin/bp-core-admin-components.php:407 -msgid "Group forums allow for focused, bulletin-board style conversations." -msgstr "" - -#: bp-core/admin/bp-core-admin-components.php:410 -msgid "Site Tracking" -msgstr "" - -#: bp-core/admin/bp-core-admin-components.php:411 -msgid "Record activity for new posts and comments from your site." -msgstr "" - -#: bp-core/admin/bp-core-admin-components.php:418 -msgid "Record activity for new sites, posts, and comments across your network." -msgstr "" - -#: bp-core/admin/bp-core-admin-functions.php:107 +#: bp-core/admin/bp-core-admin-functions.php:106 msgid "Why have all my BuddyPress menus disappeared?" msgstr "" -#: bp-core/admin/bp-core-admin-functions.php:109 +#: bp-core/admin/bp-core-admin-functions.php:108 msgid "" "Don't worry! We've moved the BuddyPress options into more convenient and " "easier to find locations. You're seeing this page because you are running a " "legacy BuddyPress plugin which has not been updated." msgstr "" -#: bp-core/admin/bp-core-admin-functions.php:110 +#: bp-core/admin/bp-core-admin-functions.php:109 msgid "" "Components, Pages, Settings, and Forums, have been moved to <a " "href=\"%s\">Settings > BuddyPress</a>. Profile Fields has been moved " "into the <a href=\"%s\">Users</a> menu." msgstr "" -#: bp-core/admin/bp-core-admin-functions.php:246 +#: bp-core/admin/bp-core-admin-functions.php:243 msgid "" "<strong>BuddyPress is almost ready</strong>. You must <a href=\"%s\">update " "your permalink structure</a> to something other than the default for it to " "work." msgstr "" -#: bp-core/admin/bp-core-admin-functions.php:273 -#: bp-core/admin/bp-core-admin-slugs.php:92 -#: bp-members/classes/class-bp-members-list-table.php:308 -#: bp-members/classes/class-bp-members-list-table.php:312 -#: bp-members/classes/class-bp-members-ms-list-table.php:301 -#: bp-members/classes/class-bp-members-ms-list-table.php:305 -#: bp-messages/bp-messages-template.php:1195 +#: bp-core/admin/bp-core-admin-functions.php:270 +#: bp-core/admin/bp-core-admin-slugs.php:91 +#: bp-members/classes/class-bp-members-list-table.php:311 +#: 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-templates/bp-legacy/buddypress/members/activate.php:56 msgid "Activate" msgstr "" -#: bp-core/admin/bp-core-admin-functions.php:278 -#: bp-core/admin/bp-core-admin-slugs.php:91 -#: bp-core/classes/class-bp-core-login-widget.php:119 +#: bp-core/admin/bp-core-admin-functions.php:275 +#: bp-core/admin/bp-core-admin-slugs.php:90 +#: bp-core/classes/class-bp-core-login-widget.php:120 #: bp-members/bp-members-adminbar.php:63 msgid "Register" msgstr "" @@ -1322,64 +1319,71 @@ msgstr "" #: bp-core/admin/bp-core-admin-functions.php:305 msgid "" "The following active BuddyPress Components do not have associated WordPress " -"Pages: %2$s. <a href=\"%1$s\">Repair</a>" +"Pages: %s." msgstr "" -#: bp-core/admin/bp-core-admin-functions.php:327 +#: bp-core/admin/bp-core-admin-functions.php:309 +#: bp-core/admin/bp-core-admin-functions.php:339 +#: bp-core/admin/bp-core-admin-settings.php:242 +#: bp-core/admin/bp-core-admin-tools.php:39 +#. translators: accessibility text +msgid "Repair" +msgstr "" + +#: bp-core/admin/bp-core-admin-functions.php:335 msgid "" "Each BuddyPress Component needs its own WordPress page. The following " -"WordPress Pages have more than one component associated with them: %2$s. <a " -"href=\"%1$s\">Repair</a>" +"WordPress Pages have more than one component associated with them: %s." msgstr "" -#: bp-core/admin/bp-core-admin-functions.php:428 -#: bp-core/admin/bp-core-admin-slugs.php:27 +#: bp-core/admin/bp-core-admin-functions.php:435 +#: bp-core/admin/bp-core-admin-slugs.php:26 msgid "Pages" msgstr "" -#: bp-core/admin/bp-core-admin-functions.php:432 -#: bp-core/admin/bp-core-admin-settings.php:282 -#: bp-core/bp-core-template.php:106 +#: bp-core/admin/bp-core-admin-functions.php:439 +#: bp-core/admin/bp-core-admin-settings.php:271 +#: bp-core/bp-core-template.php:120 msgid "Options" msgstr "" -#: bp-core/admin/bp-core-admin-functions.php:445 -#: bp-forums/bp-forums-loader.php:152 bp-forums/bp-forums-loader.php:207 -#: bp-forums/bp-forums-loader.php:249 bp-forums/bp-forums-screens.php:289 -#: bp-forums/bp-forums-screens.php:291 bp-forums/deprecated/1.6.php:39 +#: bp-core/admin/bp-core-admin-functions.php:452 +#: 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 msgid "Forums" msgstr "" -#: bp-core/admin/bp-core-admin-functions.php:488 +#: bp-core/admin/bp-core-admin-functions.php:495 msgid "" "<a " "href=\"https://codex.buddypress.org/getting-started/configure-components/\">" "Managing Components</a>" msgstr "" -#: bp-core/admin/bp-core-admin-functions.php:506 +#: bp-core/admin/bp-core-admin-functions.php:513 msgid "" "<a " "href=\"https://codex.buddypress.org/getting-started/configure-components/#" "settings-buddypress-pages\">Managing Pages</a>" msgstr "" -#: bp-core/admin/bp-core-admin-functions.php:525 +#: bp-core/admin/bp-core-admin-functions.php:532 msgid "" "<a " "href=\"https://codex.buddypress.org/getting-started/configure-components/#" "settings-buddypress-settings\">Managing Settings</a>" msgstr "" -#: bp-core/admin/bp-core-admin-functions.php:544 +#: bp-core/admin/bp-core-admin-functions.php:551 msgid "" "<a " "href=\"https://codex.buddypress.org/administrator-guide/extended-profiles/\"" ">Managing Profile Fields</a>" msgstr "" -#: bp-core/admin/bp-core-admin-functions.php:565 +#: bp-core/admin/bp-core-admin-functions.php:575 msgid "" "By default, all but four of the BuddyPress components are enabled. You can " "selectively enable or disable any of the components by using the form " @@ -1388,26 +1392,26 @@ msgid "" "using the site." msgstr "" -#: bp-core/admin/bp-core-admin-functions.php:569 +#: bp-core/admin/bp-core-admin-functions.php:579 msgid "" "BuddyPress Components use WordPress Pages for their root directory/archive " "pages. You can change the page associations for each active component by " "using the form below." msgstr "" -#: bp-core/admin/bp-core-admin-functions.php:573 +#: bp-core/admin/bp-core-admin-functions.php:583 msgid "" "Extra configuration settings are provided and activated. You can " "selectively enable or disable any setting by using the form on this screen." msgstr "" -#: bp-core/admin/bp-core-admin-functions.php:577 +#: bp-core/admin/bp-core-admin-functions.php:587 msgid "" "Your users will distinguish themselves through their profile page. Create " "relevant profile fields that will show on each users profile." msgstr "" -#: bp-core/admin/bp-core-admin-functions.php:577 +#: bp-core/admin/bp-core-admin-functions.php:587 msgid "Note: Any fields in the first group will appear on the signup page." msgstr "" @@ -1415,157 +1419,153 @@ msgstr "" msgid "BuddyPress" msgstr "" -#: bp-core/admin/bp-core-admin-functions.php:775 -#: bp-core/admin/bp-core-admin-functions.php:784 +#: bp-core/admin/bp-core-admin-functions.php:780 +#: bp-core/admin/bp-core-admin-functions.php:789 msgid "Logged-In" msgstr "" -#: bp-core/admin/bp-core-admin-functions.php:778 -#: bp-core/admin/bp-core-admin-functions.php:793 +#: bp-core/admin/bp-core-admin-functions.php:783 +#: bp-core/admin/bp-core-admin-functions.php:798 msgid "Logged-Out" msgstr "" -#: bp-core/admin/bp-core-admin-functions.php:785 +#: bp-core/admin/bp-core-admin-functions.php:790 msgid "" "<em>Logged-In</em> links are relative to the current user, and are not " "visible to visitors who are not logged in." msgstr "" -#: bp-core/admin/bp-core-admin-functions.php:794 +#: bp-core/admin/bp-core-admin-functions.php:799 msgid "<em>Logged-Out</em> links are not visible to users who are logged in." msgstr "" -#: bp-core/admin/bp-core-admin-functions.php:804 +#: bp-core/admin/bp-core-admin-functions.php:809 msgid "Add to Menu" msgstr "" -#: bp-core/admin/bp-core-admin-functions.php:839 +#: bp-core/admin/bp-core-admin-functions.php:844 msgid "" "Are your emails in the wrong language? Go to <a href=\"%s\">BuddyPress " "Tools and run the \"reinstall emails\"</a> tool." msgstr "" -#: bp-core/admin/bp-core-admin-functions.php:859 +#: bp-core/admin/bp-core-admin-functions.php:864 msgid "" "Phrases wrapped in braces <code>{{ }}</code> are email tokens. <a " "href=\"%s\">Learn about tokens on the BuddyPress Codex</a>." msgstr "" -#: bp-core/admin/bp-core-admin-functions.php:902 +#: bp-core/admin/bp-core-admin-functions.php:907 msgid "Choose when this email will be sent." msgstr "" -#: bp-core/admin/bp-core-admin-functions.php:915 -#: bp-core/admin/bp-core-admin-functions.php:931 +#: bp-core/admin/bp-core-admin-functions.php:920 +#: bp-core/admin/bp-core-admin-functions.php:938 +#. translators: accessibility text msgid "Plain text email content" msgstr "" -#: bp-core/admin/bp-core-admin-functions.php:933 +#: bp-core/admin/bp-core-admin-functions.php:941 msgid "" "Most email clients support HTML email. However, some people prefer to " "receive plain text email. Enter a plain text alternative version of your " "email here." msgstr "" -#: bp-core/admin/bp-core-admin-functions.php:1061 -#: bp-members/bp-members-actions.php:53 -#: bp-members/classes/class-bp-members-admin.php:309 +#: bp-core/admin/bp-core-admin-functions.php:1069 +#: bp-members/bp-members-actions.php:55 +#: bp-members/classes/class-bp-members-admin.php:308 msgid "User marked as spammer. Spam users are visible only to site admins." msgstr "" -#: bp-core/admin/bp-core-admin-functions.php:1063 +#: bp-core/admin/bp-core-admin-functions.php:1071 msgid "User removed from spam." msgstr "" -#: bp-core/admin/bp-core-admin-settings.php:31 +#: bp-core/admin/bp-core-admin-settings.php:30 msgid "Show the Toolbar for logged out users" msgstr "" -#: bp-core/admin/bp-core-admin-settings.php:47 +#: bp-core/admin/bp-core-admin-settings.php:45 msgid "Allow registered members to delete their own accounts" msgstr "" -#: bp-core/admin/bp-core-admin-settings.php:72 +#: bp-core/admin/bp-core-admin-settings.php:69 msgid "Allow Akismet to scan for activity stream spam" msgstr "" -#: bp-core/admin/bp-core-admin-settings.php:86 +#: bp-core/admin/bp-core-admin-settings.php:83 msgid "Allow activity stream commenting on blog and forum posts" msgstr "" -#: bp-core/admin/bp-core-admin-settings.php:100 +#: bp-core/admin/bp-core-admin-settings.php:97 msgid "Automatically check for new items while viewing the activity stream" msgstr "" -#: bp-core/admin/bp-core-admin-settings.php:141 +#: bp-core/admin/bp-core-admin-settings.php:137 msgid "Enable BuddyPress to WordPress profile syncing" msgstr "" -#: bp-core/admin/bp-core-admin-settings.php:157 +#: bp-core/admin/bp-core-admin-settings.php:152 msgid "Allow registered members to upload avatars" msgstr "" -#: bp-core/admin/bp-core-admin-settings.php:170 +#: bp-core/admin/bp-core-admin-settings.php:165 msgid "Allow registered members to upload cover images" msgstr "" -#: bp-core/admin/bp-core-admin-settings.php:194 +#: bp-core/admin/bp-core-admin-settings.php:188 msgid "Enable group creation for all users" msgstr "" -#: bp-core/admin/bp-core-admin-settings.php:195 +#: bp-core/admin/bp-core-admin-settings.php:189 msgid "Administrators can always create groups, regardless of this setting." msgstr "" -#: bp-core/admin/bp-core-admin-settings.php:208 +#: bp-core/admin/bp-core-admin-settings.php:202 msgid "Allow customizable avatars for groups" msgstr "" -#: bp-core/admin/bp-core-admin-settings.php:220 +#: bp-core/admin/bp-core-admin-settings.php:214 msgid "Allow customizable cover images for groups" msgstr "" -#: bp-core/admin/bp-core-admin-settings.php:251 +#: bp-core/admin/bp-core-admin-settings.php:242 msgid "Attempt to save a new config file." msgstr "" -#: bp-core/admin/bp-core-admin-settings.php:251 -#: bp-core/admin/bp-core-admin-tools.php:37 -msgid "Repair" -msgstr "" - -#: bp-core/admin/bp-core-admin-settings.php:252 +#: bp-core/admin/bp-core-admin-settings.php:243 msgid "File does not exist" msgstr "" -#: bp-core/admin/bp-core-admin-settings.php:256 +#: bp-core/admin/bp-core-admin-settings.php:247 msgid "Absolute path to your bbPress configuration file." msgstr "" -#: bp-core/admin/bp-core-admin-slugs.php:123 +#: bp-core/admin/bp-core-admin-slugs.php:122 msgid "Directories" msgstr "" -#: bp-core/admin/bp-core-admin-slugs.php:125 +#: bp-core/admin/bp-core-admin-slugs.php:124 msgid "Associate a WordPress Page with each BuddyPress component directory." msgstr "" -#: bp-core/admin/bp-core-admin-slugs.php:144 -#: bp-core/admin/bp-core-admin-slugs.php:207 +#: bp-core/admin/bp-core-admin-slugs.php:143 +#: bp-core/admin/bp-core-admin-slugs.php:206 msgid "- None -" msgstr "" -#: bp-core/admin/bp-core-admin-slugs.php:186 +#: bp-core/admin/bp-core-admin-slugs.php:185 msgid "Registration" msgstr "" -#: bp-core/admin/bp-core-admin-slugs.php:188 +#: bp-core/admin/bp-core-admin-slugs.php:187 msgid "Associate WordPress Pages with the following BuddyPress Registration pages." msgstr "" #: bp-core/admin/bp-core-admin-tools.php:22 -#: bp-core/admin/bp-core-admin-tools.php:413 #: bp-core/admin/bp-core-admin-tools.php:416 +#: bp-core/admin/bp-core-admin-tools.php:419 #: bp-core/classes/class-bp-admin.php:302 msgid "BuddyPress Tools" msgstr "" @@ -1591,118 +1591,124 @@ msgstr "" msgid "Repair tools" msgstr "" -#: bp-core/admin/bp-core-admin-tools.php:52 +#: bp-core/admin/bp-core-admin-tools.php:55 msgid "Repair Items" msgstr "" -#: bp-core/admin/bp-core-admin-tools.php:108 +#: bp-core/admin/bp-core-admin-tools.php:111 msgid "Repair total members count." msgstr "" -#: bp-core/admin/bp-core-admin-tools.php:114 +#: bp-core/admin/bp-core-admin-tools.php:117 msgid "Repair member \"last activity\" data." msgstr "" -#: bp-core/admin/bp-core-admin-tools.php:123 +#: bp-core/admin/bp-core-admin-tools.php:126 msgid "Repair total friends count for each member." msgstr "" -#: bp-core/admin/bp-core-admin-tools.php:133 +#: bp-core/admin/bp-core-admin-tools.php:136 msgid "Repair total groups count for each member." msgstr "" -#: bp-core/admin/bp-core-admin-tools.php:143 +#: bp-core/admin/bp-core-admin-tools.php:146 msgid "Repopulate site tracking records." msgstr "" -#: bp-core/admin/bp-core-admin-tools.php:152 +#: bp-core/admin/bp-core-admin-tools.php:155 msgid "Reinstall emails (delete and restore from defaults)." msgstr "" -#: bp-core/admin/bp-core-admin-tools.php:182 +#: bp-core/admin/bp-core-admin-tools.php:185 msgid "Counting the number of friends for each user… %s" msgstr "" -#: bp-core/admin/bp-core-admin-tools.php:183 -#: bp-core/admin/bp-core-admin-tools.php:241 -#: bp-core/admin/bp-core-admin-tools.php:286 +#: bp-core/admin/bp-core-admin-tools.php:186 +#: bp-core/admin/bp-core-admin-tools.php:244 +#: bp-core/admin/bp-core-admin-tools.php:289 msgid "Failed!" msgstr "" -#: bp-core/admin/bp-core-admin-tools.php:223 -#: bp-core/admin/bp-core-admin-tools.php:270 -#: bp-core/admin/bp-core-admin-tools.php:298 -#: bp-core/admin/bp-core-admin-tools.php:314 -#: bp-core/admin/bp-core-admin-tools.php:327 +#: bp-core/admin/bp-core-admin-tools.php:226 +#: bp-core/admin/bp-core-admin-tools.php:273 +#: bp-core/admin/bp-core-admin-tools.php:301 +#: bp-core/admin/bp-core-admin-tools.php:317 +#: bp-core/admin/bp-core-admin-tools.php:330 msgid "Complete!" msgstr "" -#: bp-core/admin/bp-core-admin-tools.php:240 +#: bp-core/admin/bp-core-admin-tools.php:243 msgid "Counting the number of groups for each user… %s" msgstr "" -#: bp-core/admin/bp-core-admin-tools.php:283 +#: bp-core/admin/bp-core-admin-tools.php:286 msgid "Repopulating Blogs records… %s" msgstr "" -#: bp-core/admin/bp-core-admin-tools.php:311 +#: bp-core/admin/bp-core-admin-tools.php:314 msgid "Counting the number of active members on the site… %s" msgstr "" -#: bp-core/admin/bp-core-admin-tools.php:325 +#: bp-core/admin/bp-core-admin-tools.php:328 msgid "Determining last activity dates for each user… %s" msgstr "" -#: bp-core/admin/bp-core-admin-tools.php:384 +#: bp-core/admin/bp-core-admin-tools.php:387 #: bp-core/classes/class-bp-admin.php:279 #: bp-core/classes/class-bp-admin.php:280 msgid "Tools" msgstr "" -#: bp-core/admin/bp-core-admin-tools.php:415 +#: bp-core/admin/bp-core-admin-tools.php:418 msgid "" "BuddyPress keeps track of various relationships between users, groups, and " "activity items. Occasionally these relationships become out of sync, most " "often after an import, update, or migration." msgstr "" -#: bp-core/admin/bp-core-admin-tools.php:474 +#: bp-core/admin/bp-core-admin-tools.php:477 msgid "Emails have been successfully reinstalled." msgstr "" -#: bp-core/bp-core-admin.php:28 +#: bp-core/admin/bp-core-admin-tools.php:497 +msgid "" +"It looks like you have more sites to record. Resume recording by checking " +"the \"Repopulate site tracking records\" option." +msgstr "" + +#: bp-core/bp-core-admin.php:29 msgid "Maintenance Release" msgid_plural "Maintenance Releases" msgstr[0] "" msgstr[1] "" -#: bp-core/bp-core-admin.php:29 +#: bp-core/bp-core-admin.php:30 msgid "Security Release" msgid_plural "Security Releases" msgstr[0] "" msgstr[1] "" -#: bp-core/bp-core-admin.php:30 +#: bp-core/bp-core-admin.php:31 msgid "Maintenance and Security Release" msgid_plural "Maintenance and Security Releases" msgstr[0] "" msgstr[1] "" -#: bp-core/bp-core-admin.php:33 +#: bp-core/bp-core-admin.php:34 #. translators: 1: WordPress 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:38 +#: bp-core/bp-core-admin.php:39 #. translators: 1: WordPress 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:43 +#: bp-core/bp-core-admin.php:44 #. translators: 1: WordPress 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." @@ -1712,7 +1718,7 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: bp-core/bp-core-admin.php:48 +#: bp-core/bp-core-admin.php:49 #. translators: 1: WordPress version number, 2: plural number of bugs. More #. than one security issue. msgid "" @@ -1724,7 +1730,7 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: bp-core/bp-core-admin.php:52 +#: bp-core/bp-core-admin.php:53 msgid "For more information, see <a href=\"%s\">the release notes</a>." msgstr "" @@ -1732,7 +1738,7 @@ msgstr "" msgid "My Account" msgstr "" -#: bp-core/bp-core-adminbar.php:79 +#: bp-core/bp-core-adminbar.php:68 msgid "" "The BuddyBar is no longer supported. Please migrate to the WordPress " "toolbar as soon as possible." @@ -1782,7 +1788,7 @@ msgstr "" msgid "HTTP error." msgstr "" -#: bp-core/bp-core-attachments.php:603 bp-core/bp-core-avatars.php:1047 +#: bp-core/bp-core-attachments.php:603 bp-core/bp-core-avatars.php:1064 msgid "Upload failed." msgstr "" @@ -1882,7 +1888,7 @@ msgid "" "wide, and %2$spx tall." msgstr "" -#: bp-core/bp-core-attachments.php:1294 bp-core/bp-core-avatars.php:887 +#: bp-core/bp-core-attachments.php:1294 bp-core/bp-core-avatars.php:903 msgid "Upload Failed! Error was: %s" msgstr "" @@ -1894,43 +1900,43 @@ msgstr "" msgid "Profile Photo" msgstr "" -#: bp-core/bp-core-avatars.php:915 +#: bp-core/bp-core-avatars.php:931 msgid "Upload failed! Error was: %s" msgstr "" -#: bp-core/bp-core-avatars.php:921 +#: bp-core/bp-core-avatars.php:937 msgid "" "You have selected an image that is smaller than recommended. For best " "results, upload a picture larger than %d x %d pixels." msgstr "" -#: bp-core/bp-core-avatars.php:1411 bp-core/bp-core-template.php:185 -#: bp-core/bp-core-template.php:204 bp-core/classes/class-bp-core-user.php:186 -#: bp-core/classes/class-bp-core-user.php:187 -#: bp-core/classes/class-bp-core-user.php:188 +#: bp-core/bp-core-avatars.php:1428 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 msgid "Profile photo of %s" msgstr "" -#: bp-core/bp-core-buddybar.php:641 bp-core/bp-core-buddybar.php:652 -#: bp-core/bp-core-buddybar.php:672 +#: bp-core/bp-core-buddybar.php:676 bp-core/bp-core-buddybar.php:692 +#: bp-core/bp-core-buddybar.php:712 msgid "You do not have access to this page." msgstr "" -#: bp-core/bp-core-caps.php:382 bp-core/bp-core-caps.php:394 -#: bp-core/bp-core-caps.php:408 bp-core/bp-core-caps.php:418 +#: bp-core/bp-core-caps.php:365 bp-core/bp-core-caps.php:377 +#: bp-core/bp-core-caps.php:391 bp-core/bp-core-caps.php:401 msgid "Special community roles no longer exist. Use mapped capabilities instead" msgstr "" -#: bp-core/bp-core-catchuri.php:312 +#: bp-core/bp-core-catchuri.php:330 msgid "" "This user has been marked as a spammer. Only site admins can view this " "profile." msgstr "" -#: bp-core/bp-core-catchuri.php:572 bp-core/bp-core-catchuri.php:649 +#: bp-core/bp-core-catchuri.php:641 bp-core/bp-core-catchuri.php:718 msgid "You must log in to access the page you requested." msgstr "" @@ -1938,136 +1944,220 @@ 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:286 msgid "Email background color" msgstr "" -#: bp-core/bp-core-customizer-email.php:291 +#: bp-core/bp-core-customizer-email.php:293 msgid "Header background color" msgstr "" -#: bp-core/bp-core-customizer-email.php:298 +#: bp-core/bp-core-customizer-email.php:300 msgid "Applied to links and other decorative areas." msgstr "" -#: bp-core/bp-core-customizer-email.php:299 +#: bp-core/bp-core-customizer-email.php:301 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:308 +#: bp-core/bp-core-customizer-email.php:337 +#: bp-core/bp-core-customizer-email.php:374 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:315 +#: bp-core/bp-core-customizer-email.php:344 +#: bp-core/bp-core-customizer-email.php:381 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:329 +#: bp-core/bp-core-customizer-email.php:367 msgid "Background color" msgstr "" -#: bp-core/bp-core-customizer-email.php:356 +#: bp-core/bp-core-customizer-email.php:358 msgid "Change the email footer here" msgstr "" -#: bp-core/bp-core-customizer-email.php:357 +#: bp-core/bp-core-customizer-email.php:359 msgid "Footer text" msgstr "" -#: bp-core/bp-core-dependency.php:225 +#: bp-core/bp-core-dependency.php:230 msgid "The current user is being initialized without using $wp->init()." msgstr "" -#: bp-core/bp-core-filters.php:410 bp-core/bp-core-filters.php:443 +#: bp-core/bp-core-filters.php:404 bp-core/bp-core-filters.php:437 msgid "[User Set]" msgstr "" -#: bp-core/bp-core-filters.php:586 +#: bp-core/bp-core-filters.php:580 msgid "Page %s" msgstr "" -#: bp-core/bp-core-functions.php:1091 +#: bp-core/bp-core-functions.php:1101 msgid "sometime" msgstr "" -#: bp-core/bp-core-functions.php:1100 +#: bp-core/bp-core-functions.php:1110 msgid "right now" msgstr "" -#: bp-core/bp-core-functions.php:1109 +#: bp-core/bp-core-functions.php:1119 msgid "%s ago" msgstr "" -#: bp-core/bp-core-functions.php:1170 +#: bp-core/bp-core-functions.php:1180 msgid "%s year" msgid_plural "%s years" msgstr[0] "" msgstr[1] "" -#: bp-core/bp-core-functions.php:1173 bp-core/bp-core-functions.php:1207 +#: bp-core/bp-core-functions.php:1183 bp-core/bp-core-functions.php:1217 msgid "%s month" msgid_plural "%s months" msgstr[0] "" msgstr[1] "" -#: bp-core/bp-core-functions.php:1176 bp-core/bp-core-functions.php:1210 +#: bp-core/bp-core-functions.php:1186 bp-core/bp-core-functions.php:1220 msgid "%s week" msgid_plural "%s weeks" msgstr[0] "" msgstr[1] "" -#: bp-core/bp-core-functions.php:1179 bp-core/bp-core-functions.php:1213 +#: bp-core/bp-core-functions.php:1189 bp-core/bp-core-functions.php:1223 msgid "%s day" msgid_plural "%s days" msgstr[0] "" msgstr[1] "" -#: bp-core/bp-core-functions.php:1182 bp-core/bp-core-functions.php:1216 +#: bp-core/bp-core-functions.php:1192 bp-core/bp-core-functions.php:1226 msgid "%s hour" msgid_plural "%s hours" msgstr[0] "" msgstr[1] "" -#: bp-core/bp-core-functions.php:1185 bp-core/bp-core-functions.php:1219 +#: bp-core/bp-core-functions.php:1195 bp-core/bp-core-functions.php:1229 msgid "%s minute" msgid_plural "%s minutes" msgstr[0] "" msgstr[1] "" -#: bp-core/bp-core-functions.php:1188 bp-core/bp-core-functions.php:1222 +#: bp-core/bp-core-functions.php:1198 bp-core/bp-core-functions.php:1232 msgid "%s second" msgid_plural "%s seconds" msgstr[0] "" msgstr[1] "" -#: bp-core/bp-core-functions.php:1454 +#: bp-core/bp-core-functions.php:1461 msgid "Not recently active" msgstr "" -#: bp-core/bp-core-functions.php:2370 -#: bp-core/classes/class-bp-core-login-widget.php:83 +#: bp-core/bp-core-functions.php:2355 bp-core/classes/class-bp-core.php:31 +msgid "BuddyPress Core" +msgstr "" + +#: bp-core/bp-core-functions.php:2356 +msgid "It‘s what makes <del>time travel</del> BuddyPress possible!" +msgstr "" + +#: bp-core/bp-core-functions.php:2359 +msgid "Community Members" +msgstr "" + +#: bp-core/bp-core-functions.php:2360 +msgid "Everything in a BuddyPress community revolves around its members." +msgstr "" + +#: bp-core/bp-core-functions.php:2366 +#: bp-templates/bp-legacy/buddypress/groups/create.php:149 +msgid "Group Forums" +msgstr "" + +#: bp-core/bp-core-functions.php:2367 +msgid "BuddyPress Forums are retired. Use %s." +msgstr "" + +#: bp-core/bp-core-functions.php:2381 +msgid "Friend Connections" +msgstr "" + +#: bp-core/bp-core-functions.php:2382 +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:2385 +msgid "Private Messaging" +msgstr "" + +#: bp-core/bp-core-functions.php:2386 +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:2390 +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:2397 +msgid "User Groups" +msgstr "" + +#: bp-core/bp-core-functions.php:2398 +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:2401 +msgid "Group Forums (Legacy)" +msgstr "" + +#: bp-core/bp-core-functions.php:2402 +msgid "Group forums allow for focused, bulletin-board style conversations." +msgstr "" + +#: bp-core/bp-core-functions.php:2405 +msgid "Site Tracking" +msgstr "" + +#: bp-core/bp-core-functions.php:2406 +msgid "Record activity for new posts and comments from your site." +msgstr "" + +#: bp-core/bp-core-functions.php:2412 +msgid "Record activity for new sites, posts, and comments across your network." +msgstr "" + +#: bp-core/bp-core-functions.php:2476 +#: 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:1239 +#: bp-members/bp-members-template.php:1326 msgid "Log Out" msgstr "" -#: bp-core/bp-core-functions.php:2435 -#: bp-core/classes/class-bp-core-login-widget.php:115 +#: bp-core/bp-core-functions.php:2541 +#: 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:3139 +#: bp-core/bp-core-functions.php:3239 #. 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:3141 +#: bp-core/bp-core-functions.php:3241 #. translators: do not remove {} brackets or translate its contents. msgid "" "{{poster.name}} replied to one of your updates:\n" @@ -2078,7 +2168,7 @@ msgid "" "on the conversation." msgstr "" -#: bp-core/bp-core-functions.php:3143 +#: bp-core/bp-core-functions.php:3243 #. translators: do not remove {} brackets or translate its contents. msgid "" "{{poster.name}} replied to one of your updates:\n" @@ -2089,12 +2179,12 @@ msgid "" "{{{thread.url}}}" msgstr "" -#: bp-core/bp-core-functions.php:3147 +#: bp-core/bp-core-functions.php:3247 #. 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:3149 +#: bp-core/bp-core-functions.php:3249 #. translators: do not remove {} brackets or translate its contents. msgid "" "{{poster.name}} replied to one of your comments:\n" @@ -2105,7 +2195,7 @@ msgid "" "on the conversation." msgstr "" -#: bp-core/bp-core-functions.php:3151 +#: bp-core/bp-core-functions.php:3251 #. translators: do not remove {} brackets or translate its contents. msgid "" "{{poster.name}} replied to one of your comments:\n" @@ -2116,12 +2206,12 @@ msgid "" "{{{thread.url}}}" msgstr "" -#: bp-core/bp-core-functions.php:3155 +#: bp-core/bp-core-functions.php:3255 #. 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:3157 +#: bp-core/bp-core-functions.php:3257 #. translators: do not remove {} brackets or translate its contents. msgid "" "{{poster.name}} mentioned you in a status update:\n" @@ -2132,7 +2222,7 @@ msgid "" "up on the conversation." msgstr "" -#: bp-core/bp-core-functions.php:3159 +#: bp-core/bp-core-functions.php:3259 #. translators: do not remove {} brackets or translate its contents. msgid "" "{{poster.name}} mentioned you in a status update:\n" @@ -2143,12 +2233,12 @@ msgid "" "{{{mentioned.url}}}" msgstr "" -#: bp-core/bp-core-functions.php:3163 +#: bp-core/bp-core-functions.php:3263 #. 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:3165 +#: bp-core/bp-core-functions.php:3265 #. translators: do not remove {} brackets or translate its contents. msgid "" "{{poster.name}} mentioned you in the group \"{{group.name}}\":\n" @@ -2159,7 +2249,7 @@ msgid "" "up on the conversation." msgstr "" -#: bp-core/bp-core-functions.php:3167 +#: bp-core/bp-core-functions.php:3267 #. translators: do not remove {} brackets or translate its contents. msgid "" "{{poster.name}} mentioned you in the group \"{{group.name}}\":\n" @@ -2170,12 +2260,12 @@ msgid "" "{{{mentioned.url}}}" msgstr "" -#: bp-core/bp-core-functions.php:3171 +#: bp-core/bp-core-functions.php:3271 #. translators: do not remove {} brackets or translate its contents. msgid "[{{{site.name}}}] Activate your account" msgstr "" -#: bp-core/bp-core-functions.php:3173 +#: bp-core/bp-core-functions.php:3273 #. translators: do not remove {} brackets or translate its contents. msgid "" "Thanks for registering!\n" @@ -2184,7 +2274,7 @@ msgid "" "href=\"{{{activate.url}}}\">{{{activate.url}}}</a>" msgstr "" -#: bp-core/bp-core-functions.php:3175 +#: bp-core/bp-core-functions.php:3275 #. translators: do not remove {} brackets or translate its contents. msgid "" "Thanks for registering!\n" @@ -2193,12 +2283,12 @@ msgid "" "{{{activate.url}}}" msgstr "" -#: bp-core/bp-core-functions.php:3179 +#: bp-core/bp-core-functions.php:3279 #. translators: do not remove {} brackets or translate its contents. msgid "[{{{site.name}}}] Activate {{{user-site.url}}}" msgstr "" -#: bp-core/bp-core-functions.php:3181 +#: bp-core/bp-core-functions.php:3281 #. translators: do not remove {} brackets or translate its contents. msgid "" "Thanks for registering!\n" @@ -2210,7 +2300,7 @@ msgid "" "href=\"{{{user-site.url}}}\">{{{user-site.url}}}</a>." msgstr "" -#: bp-core/bp-core-functions.php:3183 +#: bp-core/bp-core-functions.php:3283 #. translators: do not remove {} brackets or translate its contents. msgid "" "Thanks for registering!\n" @@ -2221,12 +2311,12 @@ msgid "" "After you activate, you can visit your site at {{{user-site.url}}}." msgstr "" -#: bp-core/bp-core-functions.php:3187 +#: bp-core/bp-core-functions.php:3287 #. 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:3189 +#: bp-core/bp-core-functions.php:3289 #. translators: do not remove {} brackets or translate its contents. msgid "" "<a href=\"{{{initiator.url}}}\">{{initiator.name}}</a> wants to add you as " @@ -2236,7 +2326,7 @@ msgid "" "href=\"{{{friend-requests.url}}}\">{{{friend-requests.url}}}</a>" msgstr "" -#: bp-core/bp-core-functions.php:3191 +#: bp-core/bp-core-functions.php:3291 #. translators: do not remove {} brackets or translate its contents. msgid "" "{{initiator.name}} wants to add you as a friend.\n" @@ -2247,19 +2337,19 @@ msgid "" "To view {{initiator.name}}'s profile, visit: {{{initiator.url}}}" msgstr "" -#: bp-core/bp-core-functions.php:3195 +#: bp-core/bp-core-functions.php:3295 #. 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:3197 +#: bp-core/bp-core-functions.php:3297 #. 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:3199 +#: bp-core/bp-core-functions.php:3299 #. translators: do not remove {} brackets or translate its contents. msgid "" "{{friend.name}} accepted your friend request.\n" @@ -2267,12 +2357,12 @@ msgid "" "To learn more about them, visit their profile: {{{friendship.url}}}" msgstr "" -#: bp-core/bp-core-functions.php:3203 +#: bp-core/bp-core-functions.php:3303 #. translators: do not remove {} brackets or translate its contents. msgid "[{{{site.name}}}] Group details updated" msgstr "" -#: bp-core/bp-core-functions.php:3205 +#: bp-core/bp-core-functions.php:3305 #. translators: do not remove {} brackets or translate its contents. msgid "" "Group details for the group "<a " @@ -2280,7 +2370,7 @@ msgid "" "<blockquote>{{changed_text}}</blockquote>" msgstr "" -#: bp-core/bp-core-functions.php:3207 +#: bp-core/bp-core-functions.php:3307 #. translators: do not remove {} brackets or translate its contents. msgid "" "Group details for the group "{{group.name}}" were updated:\n" @@ -2290,12 +2380,12 @@ msgid "" "To view the group, visit: {{{group.url}}}" msgstr "" -#: bp-core/bp-core-functions.php:3211 +#: bp-core/bp-core-functions.php:3311 #. 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:3213 +#: bp-core/bp-core-functions.php:3313 #. translators: do not remove {} brackets or translate its contents. msgid "" "<a href=\"{{{inviter.url}}}\">{{inviter.name}}</a> has invited you to join " @@ -2304,7 +2394,7 @@ msgid "" "href=\"{{{group.url}}}\">visit the group</a> to learn more." msgstr "" -#: bp-core/bp-core-functions.php:3215 +#: bp-core/bp-core-functions.php:3315 #. translators: do not remove {} brackets or translate its contents. msgid "" "{{inviter.name}} has invited you to join the group: " @@ -2316,19 +2406,19 @@ msgid "" "To view {{inviter.name}}'s profile, visit: {{{inviter.url}}}" msgstr "" -#: bp-core/bp-core-functions.php:3219 +#: bp-core/bp-core-functions.php:3319 #. 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:3221 +#: bp-core/bp-core-functions.php:3321 #. 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:3223 +#: bp-core/bp-core-functions.php:3323 #. translators: do not remove {} brackets or translate its contents. msgid "" "You have been promoted to {{promoted_to}} in the group: " @@ -2337,12 +2427,12 @@ msgid "" "To visit the group, go to: {{{group.url}}}" msgstr "" -#: bp-core/bp-core-functions.php:3227 +#: bp-core/bp-core-functions.php:3327 #. 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:3229 +#: bp-core/bp-core-functions.php:3329 #. translators: do not remove {} brackets or translate its contents. msgid "" "<a href=\"{{{profile.url}}}\">{{requesting-user.name}}</a> wants to join " @@ -2353,7 +2443,7 @@ msgid "" "other pending requests." msgstr "" -#: bp-core/bp-core-functions.php:3231 +#: bp-core/bp-core-functions.php:3331 #. translators: do not remove {} brackets or translate its contents. msgid "" "{{requesting-user.name}} wants to join the group " @@ -2366,12 +2456,12 @@ msgid "" "To view {{requesting-user.name}}'s profile, visit: {{{profile.url}}}" msgstr "" -#: bp-core/bp-core-functions.php:3235 +#: bp-core/bp-core-functions.php:3335 #. translators: do not remove {} brackets or translate its contents. msgid "[{{{site.name}}}] New message from {{sender.name}}" msgstr "" -#: bp-core/bp-core-functions.php:3237 +#: bp-core/bp-core-functions.php:3337 #. translators: do not remove {} brackets or translate its contents. msgid "" "{{sender.name}} sent you a new message: "{{usersubject}}"\n" @@ -2382,7 +2472,7 @@ msgid "" "on the conversation." msgstr "" -#: bp-core/bp-core-functions.php:3239 +#: bp-core/bp-core-functions.php:3339 #. translators: do not remove {} brackets or translate its contents. msgid "" "{{sender.name}} sent you a new message: "{{usersubject}}"\n" @@ -2393,46 +2483,46 @@ msgid "" "{{{message.url}}}" msgstr "" -#: bp-core/bp-core-functions.php:3243 +#: bp-core/bp-core-functions.php:3343 #. translators: do not remove {} brackets or translate its contents. msgid "[{{{site.name}}}] Verify your new email address" msgstr "" -#: bp-core/bp-core-functions.php:3245 +#: bp-core/bp-core-functions.php:3345 #. translators: do not remove {} brackets or translate its contents. msgid "" "You recently changed the email address associated with your account on " -"{{site.name}}. If this is correct, <a href=\"{{{verify.url}}}\">go here to " -"confirm the change</a>.\n" +"{{site.name}} to {{user.email}}. If this is correct, <a " +"href=\"{{{verify.url}}}\">go here to confirm the change</a>.\n" "\n" "Otherwise, you can safely ignore and delete this email if you have changed " "your mind, or if you think you have received this email in error." msgstr "" -#: bp-core/bp-core-functions.php:3247 +#: bp-core/bp-core-functions.php:3347 #. translators: do not remove {} brackets or translate its contents. msgid "" "You recently changed the email address associated with your account on " -"{{site.name}}. If this is correct, go to the following link to confirm the " -"change: {{{verify.url}}}\n" +"{{site.name}} to {{user.email}}. If this is correct, go to the following " +"link to confirm the change: {{{verify.url}}}\n" "\n" "Otherwise, you can safely ignore and delete this email if you have changed " "your mind, or if you think you have received this email in error." msgstr "" -#: bp-core/bp-core-functions.php:3251 +#: bp-core/bp-core-functions.php:3351 #. 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:3253 +#: bp-core/bp-core-functions.php:3353 #. 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:3255 +#: bp-core/bp-core-functions.php:3355 #. translators: do not remove {} brackets or translate its contents. msgid "" "Your membership request for the group "{{group.name}}" has been " @@ -2441,19 +2531,19 @@ msgid "" "To view the group, visit: {{{group.url}}}" msgstr "" -#: bp-core/bp-core-functions.php:3259 +#: bp-core/bp-core-functions.php:3359 #. 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:3261 +#: bp-core/bp-core-functions.php:3361 #. 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:3263 +#: bp-core/bp-core-functions.php:3363 #. translators: do not remove {} brackets or translate its contents. msgid "" "Your membership request for the group "{{group.name}}" has been " @@ -2462,100 +2552,104 @@ msgid "" "To request membership again, visit: {{{group.url}}}" msgstr "" -#: bp-core/bp-core-functions.php:3277 +#: bp-core/bp-core-functions.php:3377 msgid "A member has replied to an activity update that the recipient posted." msgstr "" -#: bp-core/bp-core-functions.php:3278 +#: bp-core/bp-core-functions.php:3378 msgid "" "A member has replied to a comment on an activity update that the recipient " "posted." msgstr "" -#: bp-core/bp-core-functions.php:3279 +#: bp-core/bp-core-functions.php:3379 msgid "Recipient was mentioned in an activity update." msgstr "" -#: bp-core/bp-core-functions.php:3280 +#: bp-core/bp-core-functions.php:3380 msgid "Recipient was mentioned in a group activity update." msgstr "" -#: bp-core/bp-core-functions.php:3281 +#: bp-core/bp-core-functions.php:3381 msgid "Recipient has registered for an account." msgstr "" -#: bp-core/bp-core-functions.php:3282 +#: bp-core/bp-core-functions.php:3382 msgid "Recipient has registered for an account and site." msgstr "" -#: bp-core/bp-core-functions.php:3283 +#: bp-core/bp-core-functions.php:3383 msgid "A member has sent a friend request to the recipient." msgstr "" -#: bp-core/bp-core-functions.php:3284 +#: bp-core/bp-core-functions.php:3384 msgid "Recipient has had a friend request accepted by a member." msgstr "" -#: bp-core/bp-core-functions.php:3285 +#: bp-core/bp-core-functions.php:3385 msgid "A group's details were updated." msgstr "" -#: bp-core/bp-core-functions.php:3286 +#: bp-core/bp-core-functions.php:3386 msgid "A member has sent a group invitation to the recipient." msgstr "" -#: bp-core/bp-core-functions.php:3287 +#: bp-core/bp-core-functions.php:3387 msgid "Recipient's status within a group has changed." msgstr "" -#: bp-core/bp-core-functions.php:3288 +#: bp-core/bp-core-functions.php:3388 msgid "A member has requested permission to join a group." msgstr "" -#: bp-core/bp-core-functions.php:3289 +#: bp-core/bp-core-functions.php:3389 msgid "Recipient has received a private message." msgstr "" -#: bp-core/bp-core-functions.php:3290 +#: bp-core/bp-core-functions.php:3390 msgid "Recipient has changed their email address." msgstr "" -#: bp-core/bp-core-functions.php:3291 +#: bp-core/bp-core-functions.php:3391 msgid "Recipient had requested to join a group, which was accepted." msgstr "" -#: bp-core/bp-core-functions.php:3292 +#: bp-core/bp-core-functions.php:3392 msgid "Recipient had requested to join a group, which was rejected." msgstr "" -#: bp-core/bp-core-template.php:132 +#: bp-core/bp-core-moderation.php:135 +msgid "You have posted too many links" +msgstr "" + +#: bp-core/bp-core-template.php:146 msgid "%s Directory" msgstr "" -#: bp-core/bp-core-template.php:601 +#: bp-core/bp-core-template.php:615 msgid "Search anything..." msgstr "" -#: bp-core/bp-core-template.php:803 +#: bp-core/bp-core-template.php:815 msgid " […]" msgstr "" -#: bp-core/bp-core-template.php:1127 +#: bp-core/bp-core-template.php:1152 msgid "Community" msgstr "" -#: bp-core/bp-core-template.php:3070 +#: bp-core/bp-core-template.php:3129 #: bp-members/classes/class-bp-registration-theme-compat.php:100 msgid "Create an Account" msgstr "" -#: bp-core/bp-core-template.php:3074 +#: bp-core/bp-core-template.php:3133 #: bp-members/classes/class-bp-registration-theme-compat.php:108 msgid "Activate Your Account" msgstr "" -#: bp-core/bp-core-template.php:3078 bp-groups/bp-groups-template.php:3362 -#: bp-groups/bp-groups-template.php:3363 +#: bp-core/bp-core-template.php:3137 bp-groups/bp-groups-template.php:3356 +#: bp-groups/bp-groups-template.php:3357 msgid "Create a Group" msgstr "" @@ -2593,394 +2687,422 @@ msgstr "" msgid "Available Tools" msgstr "" -#: bp-core/classes/class-bp-admin.php:386 +#: bp-core/classes/class-bp-admin.php:383 msgid "Main Settings" msgstr "" -#: bp-core/classes/class-bp-admin.php:389 -#: bp-core/classes/class-bp-admin.php:394 +#: bp-core/classes/class-bp-admin.php:386 +#: bp-core/classes/class-bp-admin.php:391 msgid "Toolbar" msgstr "" -#: bp-core/classes/class-bp-admin.php:399 +#: bp-core/classes/class-bp-admin.php:396 msgid "Account Deletion" msgstr "" -#: bp-core/classes/class-bp-admin.php:410 +#: bp-core/classes/class-bp-admin.php:407 msgid "Profile Photo Uploads" msgstr "" -#: bp-core/classes/class-bp-admin.php:415 +#: bp-core/classes/class-bp-admin.php:412 msgid "Cover Image Uploads" msgstr "" -#: bp-core/classes/class-bp-admin.php:420 +#: bp-core/classes/class-bp-admin.php:417 msgid "Profile Syncing" msgstr "" -#: bp-core/classes/class-bp-admin.php:429 +#: bp-core/classes/class-bp-admin.php:426 msgid "Groups Settings" msgstr "" -#: bp-core/classes/class-bp-admin.php:432 +#: bp-core/classes/class-bp-admin.php:429 msgid "Group Creation" msgstr "" -#: bp-core/classes/class-bp-admin.php:436 +#: bp-core/classes/class-bp-admin.php:433 msgid "Group Photo Uploads" msgstr "" -#: bp-core/classes/class-bp-admin.php:441 +#: bp-core/classes/class-bp-admin.php:438 msgid "Group Cover Image Uploads" msgstr "" -#: bp-core/classes/class-bp-admin.php:451 +#: bp-core/classes/class-bp-admin.php:448 msgid "Legacy Group Forums" msgstr "" -#: bp-core/classes/class-bp-admin.php:454 +#: bp-core/classes/class-bp-admin.php:451 msgid "bbPress Configuration" msgstr "" -#: bp-core/classes/class-bp-admin.php:463 +#: bp-core/classes/class-bp-admin.php:460 msgid "Activity Settings" msgstr "" -#: bp-core/classes/class-bp-admin.php:466 +#: bp-core/classes/class-bp-admin.php:463 msgid "Blog & Forum Comments" msgstr "" -#: bp-core/classes/class-bp-admin.php:470 +#: bp-core/classes/class-bp-admin.php:467 msgid "Activity auto-refresh" msgstr "" -#: bp-core/classes/class-bp-admin.php:475 +#: bp-core/classes/class-bp-admin.php:472 msgid "Akismet" msgstr "" -#: bp-core/classes/class-bp-admin.php:493 +#: bp-core/classes/class-bp-admin.php:490 msgid "About BuddyPress" msgstr "" -#: bp-core/classes/class-bp-admin.php:517 -#: bp-groups/classes/class-bp-groups-component.php:624 +#: bp-core/classes/class-bp-admin.php:514 +#: bp-groups/classes/class-bp-groups-component.php:652 #: 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:518 +#: bp-core/classes/class-bp-admin.php:515 msgid "About" msgstr "" -#: bp-core/classes/class-bp-admin.php:570 +#: bp-core/classes/class-bp-admin.php:572 msgid "Getting Started with BuddyPress" msgstr "" -#: bp-core/classes/class-bp-admin.php:573 +#: bp-core/classes/class-bp-admin.php:575 msgid "Configure BuddyPress" msgstr "" -#: bp-core/classes/class-bp-admin.php:576 +#: bp-core/classes/class-bp-admin.php:578 msgid "Set Up Components" msgstr "" -#: bp-core/classes/class-bp-admin.php:579 +#: bp-core/classes/class-bp-admin.php:581 msgid "Assign Components to Pages" msgstr "" -#: bp-core/classes/class-bp-admin.php:582 +#: bp-core/classes/class-bp-admin.php:584 msgid "Customize Settings" msgstr "" -#: bp-core/classes/class-bp-admin.php:585 +#: bp-core/classes/class-bp-admin.php:587 msgid "Get Started" msgstr "" -#: bp-core/classes/class-bp-admin.php:588 +#: bp-core/classes/class-bp-admin.php:590 msgid "Administration Tools" msgstr "" -#: bp-core/classes/class-bp-admin.php:591 +#: bp-core/classes/class-bp-admin.php:593 msgid "Add User Profile Fields" msgstr "" -#: bp-core/classes/class-bp-admin.php:593 +#: bp-core/classes/class-bp-admin.php:595 msgid "Manage User Signups" msgstr "" -#: bp-core/classes/class-bp-admin.php:595 +#: bp-core/classes/class-bp-admin.php:597 msgid "Moderate Activity Streams" msgstr "" -#: bp-core/classes/class-bp-admin.php:598 +#: bp-core/classes/class-bp-admin.php:600 msgid "Manage Groups" msgstr "" -#: bp-core/classes/class-bp-admin.php:600 +#: bp-core/classes/class-bp-admin.php:602 msgid "Repair Data" msgstr "" -#: bp-core/classes/class-bp-admin.php:605 +#: bp-core/classes/class-bp-admin.php:607 msgid "Community and Support" msgstr "" -#: bp-core/classes/class-bp-admin.php:606 +#: bp-core/classes/class-bp-admin.php:608 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:609 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:616 -msgid "Customizable BuddyPress Emails" +#: bp-core/classes/class-bp-admin.php:618 +msgid "Activity Embeds" msgstr "" -#: bp-core/classes/class-bp-admin.php:619 -msgid "Change colors of the email template using the Customizer." +#: bp-core/classes/class-bp-admin.php:630 +#: bp-core/classes/class-bp-admin.php:638 +msgid "View the Activity Embeds demo" msgstr "" -#: bp-core/classes/class-bp-admin.php:622 -msgid "Keep your users coming back with beautiful and flexible email notifications." +#: bp-core/classes/class-bp-admin.php:631 +#: bp-core/classes/class-bp-admin.php:637 +msgid "Embed activities into your WordPress posts or pages." msgstr "" -#: bp-core/classes/class-bp-admin.php:623 +#: bp-core/classes/class-bp-admin.php:638 msgid "" -"Edit the content of your emails, create new email templates, or change the " -"design of the template in the Customizer. These are just a few of the " -"customizations you can make to engage your users and increase their " -"participation in your community with the new email features." +"Copy the permalink URL of the activity of your choice, paste it into the " +"content editor of your WordPress post or page, and <em>voilà</em>!, " +"you've embedded an activity update." msgstr "" -#: bp-core/classes/class-bp-admin.php:623 -msgid "Learn more →" +#: bp-core/classes/class-bp-admin.php:646 bp-forums/deprecated/1.6.php:71 +#: bp-forums/deprecated/1.6.php:221 +msgid "Features" msgstr "" -#: bp-core/classes/class-bp-admin.php:634 -msgid "Post Type Comments Tracking" +#: bp-core/classes/class-bp-admin.php:649 +msgid "Custom Front Page for Member Profile " msgstr "" -#: bp-core/classes/class-bp-admin.php:635 -msgid "Registered post types" +#: bp-core/classes/class-bp-admin.php:650 +msgid "A member custom front page using widgets." msgstr "" -#: bp-core/classes/class-bp-admin.php:636 +#: bp-core/classes/class-bp-admin.php:651 msgid "" -"New Activity functions help you track post type comments in sync with the " -"Blogs component when activated." +"Theme developers or site owners can create custom front pages for their " +"community's members by adding a <code>front.php</code> template to " +"their template overrides. A specific template hierarchy is also available " +"to make them even more unique." +msgstr "" + +#: bp-core/classes/class-bp-admin.php:651 +msgid "Read all about this new feature." msgstr "" -#: bp-core/classes/class-bp-admin.php:639 -msgid "Twenty Twelve Companion Stylesheet" +#: bp-core/classes/class-bp-admin.php:655 +msgid "Group Types API" msgstr "" -#: bp-core/classes/class-bp-admin.php:640 -msgid "BuddyPress styles Twenty Twelve" +#: bp-core/classes/class-bp-admin.php:656 +msgid "Group types metabox in Groups admin page." msgstr "" -#: bp-core/classes/class-bp-admin.php:641 +#: bp-core/classes/class-bp-admin.php:657 msgid "" -"BuddyPress components never looked so fine as they do now in the Twenty " -"Twelve theme." +"Registering group types finally enables a strict separation of different " +"and explicit types of groups. This new feature is available to plugin " +"developers starting with BuddyPress 2.6." msgstr "" -#: bp-core/classes/class-bp-admin.php:647 -msgid "Support for Emojis" +#: bp-core/classes/class-bp-admin.php:657 +msgid "Learn how to set up Group Types." msgstr "" -#: bp-core/classes/class-bp-admin.php:648 -msgid "Fun with Emojies" +#: bp-core/classes/class-bp-admin.php:661 +msgid "New Navigation API" msgstr "" -#: bp-core/classes/class-bp-admin.php:649 +#: bp-core/classes/class-bp-admin.php:662 +msgid "Sample code for using the new navigation API" +msgstr "" + +#: bp-core/classes/class-bp-admin.php:663 msgid "" -"Have fun and be merry! You can now use Emojis in activity updates, " -"messages, and group descriptions." +"The member and group navigation system has been totally rewritten, making " +"it easier than ever to customize BuddyPress nav items." msgstr "" -#: bp-core/classes/class-bp-admin.php:653 -msgid "Autolink Settings for Profile Fields" +#: bp-core/classes/class-bp-admin.php:663 +msgid "Read the informative commit message." msgstr "" -#: bp-core/classes/class-bp-admin.php:654 -msgid "Autolink settings in the profile fields panel" +#: bp-core/classes/class-bp-admin.php:667 +msgid "Stylesheets for Twenty Eleven and Twenty Ten" msgstr "" -#: bp-core/classes/class-bp-admin.php:655 +#: bp-core/classes/class-bp-admin.php:668 +msgid "Styled BuddyPress components in Twenty Eleven and Twenty Ten" +msgstr "" + +#: bp-core/classes/class-bp-admin.php:669 msgid "" -"Administrators can enable or disable autolink settings for each new profile " -"field type." +"BuddyPress feels right at home now in the classic default themes, Twenty " +"Ten and Twenty Eleven." msgstr "" -#: bp-core/classes/class-bp-admin.php:662 +#: bp-core/classes/class-bp-admin.php:674 msgid "Under The Hood" msgstr "" -#: bp-core/classes/class-bp-admin.php:666 +#: bp-core/classes/class-bp-admin.php:678 +msgid "Performance Enhancements" +msgstr "" + +#: bp-core/classes/class-bp-admin.php:679 +msgid "" +"Class autoloading reduces the memory needed to run BuddyPress on your " +"server. Improved caching strategies for group membership statuses mean " +"fewer round trips to your overworked database server." +msgstr "" + +#: bp-core/classes/class-bp-admin.php:680 msgid "Localization Improvements" msgstr "" -#: bp-core/classes/class-bp-admin.php:667 +#: bp-core/classes/class-bp-admin.php:681 msgid "" -"We continue to improve on localization for translation editors so that " -"BuddyPress will be available for everyone in their own language." +"Improved localization strings and comments help translators do their " +"much-appreciated work: making BuddyPress available in many languages." msgstr "" -#: bp-core/classes/class-bp-admin.php:668 -msgid "Accessibility Upgrades" +#: bp-core/classes/class-bp-admin.php:685 +msgid "Notifications Updates" msgstr "" -#: bp-core/classes/class-bp-admin.php:669 +#: bp-core/classes/class-bp-admin.php:686 msgid "" -"Continued improvements in the frontend and backend to make BuddyPress " -"usable for everyone." +"Adjustments to the notifications component allow members to receive timely " +"and relevant updates about activity in your community." msgstr "" -#: bp-core/classes/class-bp-admin.php:673 -msgid "Enhanced Multisite Support" +#: bp-core/classes/class-bp-admin.php:687 +msgid "Accessibility Upgrades" msgstr "" -#: bp-core/classes/class-bp-admin.php:674 +#: bp-core/classes/class-bp-admin.php:688 msgid "" -"BuddyPress is already primed for all multisite configurations available. We " -"just made it better." +"Continued improvements help make BuddyPress' back- and front-end " +"screens usable for everyone (and on more devices)." msgstr "" -#: bp-core/classes/class-bp-admin.php:675 +#: bp-core/classes/class-bp-admin.php:689 msgid "Developer Reference" msgstr "" -#: bp-core/classes/class-bp-admin.php:676 +#: bp-core/classes/class-bp-admin.php:690 msgid "" "Regular updates to inline code documentation make it easier for developers " "to understand how BuddyPress works." msgstr "" -#: bp-core/classes/class-bp-admin.php:708 +#: bp-core/classes/class-bp-admin.php:724 msgid "BuddyPress is created by a worldwide network of friendly folks like these." msgstr "" -#: bp-core/classes/class-bp-admin.php:710 +#: bp-core/classes/class-bp-admin.php:726 msgid "Project Leaders" msgstr "" -#: bp-core/classes/class-bp-admin.php:715 +#: bp-core/classes/class-bp-admin.php:731 msgid "Project Lead" msgstr "" -#: bp-core/classes/class-bp-admin.php:720 -#: bp-core/classes/class-bp-admin.php:725 +#: bp-core/classes/class-bp-admin.php:736 +#: bp-core/classes/class-bp-admin.php:741 msgid "Lead Developer" msgstr "" -#: bp-core/classes/class-bp-admin.php:729 +#: bp-core/classes/class-bp-admin.php:745 msgid "Core Team" msgstr "" -#: bp-core/classes/class-bp-admin.php:734 -#: bp-core/classes/class-bp-admin.php:739 -#: bp-core/classes/class-bp-admin.php:749 -#: bp-core/classes/class-bp-admin.php:754 -#: bp-core/classes/class-bp-admin.php:759 +#: bp-core/classes/class-bp-admin.php:750 +#: bp-core/classes/class-bp-admin.php:755 +#: bp-core/classes/class-bp-admin.php:765 +#: bp-core/classes/class-bp-admin.php:770 +#: bp-core/classes/class-bp-admin.php:775 msgid "Core Developer" msgstr "" -#: bp-core/classes/class-bp-admin.php:744 +#: bp-core/classes/class-bp-admin.php:760 msgid "Navigator" msgstr "" -#: bp-core/classes/class-bp-admin.php:763 +#: bp-core/classes/class-bp-admin.php:779 msgid "🌟Recent Rockstars🌟" msgstr "" -#: bp-core/classes/class-bp-admin.php:788 +#: bp-core/classes/class-bp-admin.php:820 msgid "Contributors to BuddyPress %s" msgstr "" -#: bp-core/classes/class-bp-admin.php:826 +#: bp-core/classes/class-bp-admin.php:866 msgid "💖With our thanks to these Open Source projects💖" msgstr "" -#: bp-core/classes/class-bp-admin.php:851 +#: bp-core/classes/class-bp-admin.php:892 msgid "" "Thank you for installing BuddyPress! BuddyPress helps you build any type of " "community website using WordPress, with member profiles, activity streams, " "user groups, messaging, and more." msgstr "" -#: bp-core/classes/class-bp-admin.php:852 +#: bp-core/classes/class-bp-admin.php:893 msgid "" "Thank you for updating! BuddyPress %s has many new features that you will " "enjoy." msgstr "" -#: bp-core/classes/class-bp-admin.php:856 +#: bp-core/classes/class-bp-admin.php:897 msgid "Welcome to BuddyPress %s" msgstr "" -#: bp-core/classes/class-bp-admin.php:885 +#: bp-core/classes/class-bp-admin.php:926 msgid "What’s New" msgstr "" -#: bp-core/classes/class-bp-admin.php:887 +#: bp-core/classes/class-bp-admin.php:928 msgid "Credits" msgstr "" -#: bp-core/classes/class-bp-attachment-avatar.php:42 +#: bp-core/classes/class-bp-attachment-avatar.php:40 msgid "That photo is too big. Please upload one smaller than %s" msgstr "" -#: bp-core/classes/class-bp-attachment-avatar.php:43 +#: bp-core/classes/class-bp-attachment-avatar.php:41 #: bp-core/classes/class-bp-attachment-cover-image.php:41 msgid "Please upload only this file type: %s." msgid_plural "Please upload only these file types: %s." msgstr[0] "" msgstr[1] "" -#: bp-core/classes/class-bp-attachment-avatar.php:386 -#: bp-xprofile/bp-xprofile-screens.php:260 +#: bp-core/classes/class-bp-attachment-avatar.php:369 +#: bp-xprofile/bp-xprofile-screens.php:261 msgid "There was a problem cropping your profile photo." msgstr "" -#: bp-core/classes/class-bp-attachment-avatar.php:387 -#: bp-xprofile/bp-xprofile-screens.php:274 +#: bp-core/classes/class-bp-attachment-avatar.php:370 +#: bp-xprofile/bp-xprofile-screens.php:275 msgid "Your new profile photo was uploaded successfully." msgstr "" -#: bp-core/classes/class-bp-attachment-avatar.php:388 +#: bp-core/classes/class-bp-attachment-avatar.php:371 #: 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:389 +#: bp-core/classes/class-bp-attachment-avatar.php:372 #: bp-xprofile/bp-xprofile-actions.php:40 msgid "Your profile photo was deleted successfully!" msgstr "" -#: bp-core/classes/class-bp-attachment-avatar.php:404 -#: bp-groups/bp-groups-screens.php:1022 +#: bp-core/classes/class-bp-attachment-avatar.php:387 +#: bp-groups/bp-groups-screens.php:1024 msgid "There was a problem cropping the group profile photo." msgstr "" -#: bp-core/classes/class-bp-attachment-avatar.php:405 -#: bp-groups/bp-groups-actions.php:346 +#: bp-core/classes/class-bp-attachment-avatar.php:388 +#: bp-groups/bp-groups-actions.php:361 msgid "The group profile photo was uploaded successfully." msgstr "" -#: bp-core/classes/class-bp-attachment-avatar.php:406 -#: bp-groups/bp-groups-screens.php:979 +#: bp-core/classes/class-bp-attachment-avatar.php:389 +#: bp-groups/bp-groups-screens.php:981 msgid "There was a problem deleting the group profile photo. Please try again." msgstr "" -#: bp-core/classes/class-bp-attachment-avatar.php:407 -#: bp-groups/bp-groups-screens.php:977 +#: bp-core/classes/class-bp-attachment-avatar.php:390 +#: bp-groups/bp-groups-screens.php:979 msgid "The group profile photo was deleted successfully!" msgstr "" @@ -3012,96 +3134,112 @@ msgstr "" msgid "The group cover image was deleted successfully!" msgstr "" -#: bp-core/classes/class-bp-attachment.php:166 +#: bp-core/classes/class-bp-attachment.php:160 msgid "The file was uploaded successfully" msgstr "" -#: bp-core/classes/class-bp-attachment.php:167 +#: bp-core/classes/class-bp-attachment.php:161 msgid "The uploaded file exceeds the maximum allowed file size for this site" msgstr "" -#: bp-core/classes/class-bp-attachment.php:168 +#: bp-core/classes/class-bp-attachment.php:162 msgid "The uploaded file exceeds the maximum allowed file size of: %s" msgstr "" -#: bp-core/classes/class-bp-attachment.php:169 +#: bp-core/classes/class-bp-attachment.php:163 msgid "The uploaded file was only partially uploaded." msgstr "" -#: bp-core/classes/class-bp-attachment.php:170 +#: bp-core/classes/class-bp-attachment.php:164 msgid "No file was uploaded." msgstr "" -#: bp-core/classes/class-bp-attachment.php:172 +#: bp-core/classes/class-bp-attachment.php:166 msgid "Missing a temporary folder." msgstr "" -#: bp-core/classes/class-bp-attachment.php:173 +#: bp-core/classes/class-bp-attachment.php:167 msgid "Failed to write file to disk." msgstr "" -#: bp-core/classes/class-bp-attachment.php:174 +#: bp-core/classes/class-bp-attachment.php:168 msgid "File upload stopped by extension." msgstr "" -#: bp-core/classes/class-bp-attachment.php:449 +#: bp-core/classes/class-bp-attachment.php:435 msgid "Cropping the file failed: missing source file." msgstr "" -#: bp-core/classes/class-bp-attachment.php:454 +#: bp-core/classes/class-bp-attachment.php:440 msgid "Cropping the file failed: the file path is not allowed." msgstr "" -#: bp-core/classes/class-bp-attachment.php:495 +#: bp-core/classes/class-bp-attachment.php:481 msgid "Cropping the file failed: %s is not a supported image file." msgstr "" -#: bp-core/classes/class-bp-attachment.php:528 +#: bp-core/classes/class-bp-attachment.php:514 msgid "Sorry, uploading the file failed." msgstr "" -#: bp-core/classes/class-bp-attachment.php:529 +#: bp-core/classes/class-bp-attachment.php:515 msgid "File successfully uploaded." msgstr "" +#: bp-core/classes/class-bp-core-bp-nav-backcompat.php:66 +#: bp-core/classes/class-bp-core-bp-nav-backcompat.php:100 +#: bp-core/classes/class-bp-core-bp-nav-backcompat.php:125 +#: bp-core/classes/class-bp-core-bp-nav-backcompat.php:151 +msgid "" +"The bp_nav and bp_options_nav globals should not be used directly and are " +"deprecated. Please use the BuddyPress nav functions instead." +msgstr "" + +#: bp-core/classes/class-bp-core-bp-options-nav-backcompat.php:40 +#: bp-core/classes/class-bp-core-bp-options-nav-backcompat.php:80 +msgid "" +"These globals should not be used directly and are deprecated. Please use " +"the BuddyPress nav functions instead." +msgstr "" + #: bp-core/classes/class-bp-core-login-widget.php:30 msgid "" "Show a Log In form to logged-out visitors, and a Log Out link to those who " "are logged in." msgstr "" -#: bp-core/classes/class-bp-core-login-widget.php:107 +#: bp-core/classes/class-bp-core-login-widget.php:108 #: bp-members/classes/class-bp-members-list-table.php:150 #: bp-members/classes/class-bp-members-ms-list-table.php:137 #: bp-templates/bp-legacy/buddypress/members/register.php:76 msgid "Username" msgstr "" -#: bp-core/classes/class-bp-core-login-widget.php:110 +#: bp-core/classes/class-bp-core-login-widget.php:111 msgid "Password" msgstr "" -#: bp-core/classes/class-bp-core-login-widget.php:113 +#: bp-core/classes/class-bp-core-login-widget.php:114 msgid "Remember Me" msgstr "" -#: bp-core/classes/class-bp-core-login-widget.php:119 +#: 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:179 -#: bp-groups/classes/class-bp-groups-widget.php:205 -#: bp-members/classes/class-bp-core-members-widget.php:195 -#: bp-members/classes/class-bp-core-recently-active-widget.php:136 -#: bp-members/classes/class-bp-core-whos-online-widget.php:136 -#: bp-messages/classes/class-bp-messages-sitewide-notices-widget.php:115 +#: bp-core/classes/class-bp-core-login-widget.php:180 +#: bp-groups/classes/class-bp-groups-widget.php:215 +#: bp-members/classes/class-bp-core-members-widget.php:211 +#: bp-members/classes/class-bp-core-recently-active-widget.php:145 +#: bp-members/classes/class-bp-core-whos-online-widget.php:145 +#: bp-messages/classes/class-bp-messages-sitewide-notices-widget.php:116 #: bp-templates/bp-legacy/buddypress/forums/index.php:168 #: bp-templates/bp-legacy/buddypress/groups/single/forum/edit.php:74 #: bp-templates/bp-legacy/buddypress/groups/single/forum.php:106 msgid "Title:" msgstr "" -#: bp-core/classes/class-bp-core-user.php:203 +#: bp-core/classes/class-bp-core-user.php:191 #: bp-groups/classes/class-bp-groups-invite-template.php:244 msgid "%d group" msgid_plural "%d groups" @@ -3109,7 +3247,7 @@ msgstr[0] "" msgstr[1] "" #: bp-core/deprecated/1.5.php:146 -#: bp-templates/bp-legacy/buddypress/activity/post-form.php:55 +#: bp-templates/bp-legacy/buddypress/activity/post-form.php:61 #: bp-templates/bp-legacy/buddypress/members/single/profile/profile-wp.php:28 msgid "My Profile" msgstr "" @@ -3162,25 +3300,25 @@ msgid "" msgstr "" #: bp-core/deprecated/1.6.php:127 bp-core/deprecated/1.6.php:148 -#: bp-groups/bp-groups-template.php:5002 bp-groups/bp-groups-template.php:5025 +#: bp-groups/bp-groups-template.php:5008 bp-groups/bp-groups-template.php:5031 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:94 -#: bp-friends/classes/class-bp-core-friends-widget.php:189 -#: bp-groups/bp-groups-template.php:4273 -#: bp-groups/classes/class-bp-groups-widget.php:111 -#: bp-groups/classes/class-bp-groups-widget.php:214 -#: bp-members/classes/class-bp-core-members-widget.php:101 -#: bp-members/classes/class-bp-core-members-widget.php:217 +#: bp-friends/classes/class-bp-core-friends-widget.php:105 +#: bp-friends/classes/class-bp-core-friends-widget.php:200 +#: bp-groups/bp-groups-template.php:4284 +#: bp-groups/classes/class-bp-groups-widget.php:121 +#: bp-groups/classes/class-bp-groups-widget.php:224 +#: bp-members/classes/class-bp-core-members-widget.php:114 +#: bp-members/classes/class-bp-core-members-widget.php:233 #: bp-templates/bp-legacy/buddypress/blogs/index.php:90 #: bp-templates/bp-legacy/buddypress/members/single/blogs.php:21 msgid "Newest" msgstr "" #: bp-core/deprecated/1.6.php:129 bp-core/deprecated/1.6.php:154 -#: bp-groups/bp-groups-template.php:5007 bp-groups/bp-groups-template.php:5040 +#: bp-groups/bp-groups-template.php:5013 bp-groups/bp-groups-template.php:5046 msgid "Alphabetically" msgstr "" @@ -3241,7 +3379,7 @@ msgid "Group Settings" msgstr "" #: bp-core/deprecated/2.1.php:373 -#: bp-groups/classes/class-bp-groups-component.php:785 +#: bp-groups/classes/class-bp-groups-component.php:824 msgid "Group Profile Photo" msgstr "" @@ -3257,9 +3395,9 @@ msgstr "" msgid "Membership Requests" msgstr "" -#: bp-core/deprecated/2.1.php:391 bp-groups/bp-groups-admin.php:990 -#: bp-templates/bp-legacy/buddypress/groups/single/admin.php:468 -#: bp-xprofile/bp-xprofile-admin.php:154 +#: bp-core/deprecated/2.1.php:391 bp-groups/bp-groups-admin.php:1026 +#: bp-templates/bp-legacy/buddypress/groups/single/admin.php:487 +#: bp-xprofile/bp-xprofile-admin.php:157 msgid "Delete Group" msgstr "" @@ -3287,123 +3425,123 @@ msgstr "" msgid "No new notifications." msgstr "" -#: bp-forums/bp-forums-loader.php:28 +#: bp-forums/bp-forums-loader.php:33 msgid "Discussion Forums" msgstr "" -#: bp-forums/bp-forums-loader.php:74 +#: bp-forums/bp-forums-loader.php:79 msgid "Search Forums..." msgstr "" -#: bp-forums/bp-forums-loader.php:162 bp-forums/bp-forums-loader.php:215 +#: bp-forums/bp-forums-loader.php:169 bp-forums/bp-forums-loader.php:222 msgid "Topics Started" msgstr "" -#: bp-forums/bp-forums-loader.php:173 +#: bp-forums/bp-forums-loader.php:180 msgid "Replied To" msgstr "" -#: bp-forums/bp-forums-loader.php:223 +#: bp-forums/bp-forums-loader.php:230 msgid "Replies" msgstr "" -#: bp-forums/bp-forums-loader.php:231 +#: bp-forums/bp-forums-loader.php:238 msgid "Favorite Topics" msgstr "" -#: bp-forums/bp-forums-screens.php:26 bp-forums/bp-forums-screens.php:263 +#: bp-forums/bp-forums-screens.php:28 bp-forums/bp-forums-screens.php:275 msgid "The forums component has not been set up yet." msgstr "" -#: bp-forums/bp-forums-screens.php:54 bp-groups/bp-groups-screens.php:528 +#: bp-forums/bp-forums-screens.php:56 bp-groups/bp-groups-screens.php:530 msgid "Please provide a title for your forum topic." msgstr "" -#: bp-forums/bp-forums-screens.php:56 bp-groups/bp-groups-screens.php:530 +#: bp-forums/bp-forums-screens.php:58 bp-groups/bp-groups-screens.php:532 msgid "Forum posts cannot be empty. Please enter some text." msgstr "" -#: bp-forums/bp-forums-screens.php:63 bp-groups/bp-groups-screens.php:542 +#: bp-forums/bp-forums-screens.php:65 bp-groups/bp-groups-screens.php:544 msgid "There was an error when creating the topic" msgstr "" -#: bp-forums/bp-forums-screens.php:66 bp-groups/bp-groups-screens.php:545 +#: bp-forums/bp-forums-screens.php:68 bp-groups/bp-groups-screens.php:547 msgid "The topic was created successfully" msgstr "" -#: bp-forums/bp-forums-screens.php:74 bp-forums/bp-forums-screens.php:79 +#: bp-forums/bp-forums-screens.php:76 bp-forums/bp-forums-screens.php:81 msgid "Please pick the group forum where you would like to post this topic." msgstr "" -#: bp-forums/bp-forums-screens.php:289 bp-groups/bp-groups-template.php:3170 -#: bp-groups/bp-groups-template.php:3171 +#: bp-forums/bp-forums-screens.php:301 bp-groups/bp-groups-template.php:3164 +#: bp-groups/bp-groups-template.php:3165 #: bp-templates/bp-legacy/buddypress/groups/single/forum.php:30 msgid "New Topic" msgstr "" -#: bp-forums/bp-forums-template.php:877 bp-forums/bp-forums-template.php:1038 -#: bp-forums/bp-forums-template.php:2412 -#: bp-messages/bp-messages-template.php:1617 -#: bp-messages/bp-messages-template.php:1866 +#: bp-forums/bp-forums-template.php:930 bp-forums/bp-forums-template.php:1111 +#: bp-forums/bp-forums-template.php:2651 +#: bp-messages/bp-messages-template.php:1627 +#: bp-messages/bp-messages-template.php:1878 #: bp-messages/classes/class-bp-messages-thread.php:800 msgid "Deleted User" msgstr "" -#: bp-forums/bp-forums-template.php:1092 +#: bp-forums/bp-forums-template.php:1169 msgid "Group logo for %s" msgstr "" -#: bp-forums/bp-forums-template.php:1350 bp-groups/bp-groups-template.php:1920 +#: bp-forums/bp-forums-template.php:1463 bp-groups/bp-groups-template.php:1914 msgid "%d post" msgstr "" -#: bp-forums/bp-forums-template.php:1354 bp-groups/bp-groups-template.php:1922 +#: bp-forums/bp-forums-template.php:1467 bp-groups/bp-groups-template.php:1916 msgid "%d posts" msgstr "" -#: bp-forums/bp-forums-template.php:1585 +#: bp-forums/bp-forums-template.php:1730 msgid "Edit Topic" msgstr "" -#: bp-forums/bp-forums-template.php:1589 +#: bp-forums/bp-forums-template.php:1734 msgid "Sticky Topic" msgstr "" -#: bp-forums/bp-forums-template.php:1591 +#: bp-forums/bp-forums-template.php:1736 msgid "Un-stick Topic" msgstr "" -#: bp-forums/bp-forums-template.php:1594 +#: bp-forums/bp-forums-template.php:1739 msgid "Open Topic" msgstr "" -#: bp-forums/bp-forums-template.php:1596 +#: bp-forums/bp-forums-template.php:1741 msgid "Close Topic" msgstr "" -#: bp-forums/bp-forums-template.php:1598 +#: bp-forums/bp-forums-template.php:1743 msgid "Delete Topic" msgstr "" -#: bp-forums/bp-forums-template.php:1871 +#: bp-forums/bp-forums-template.php:2053 msgid " matching tag \"%s\"" msgstr "" -#: bp-forums/bp-forums-template.php:1874 +#: bp-forums/bp-forums-template.php:2056 msgid "Viewing 1 topic" msgstr "" -#: bp-forums/bp-forums-template.php:1876 +#: bp-forums/bp-forums-template.php:2058 msgid "Viewing %1$s - %2$s of %3$s topic" msgid_plural "Viewing %1$s - %2$s of %3$s topics" msgstr[0] "" msgstr[1] "" -#: bp-forums/bp-forums-template.php:2607 +#: bp-forums/bp-forums-template.php:2872 msgid "Viewing 1 post" msgstr "" -#: bp-forums/bp-forums-template.php:2609 +#: bp-forums/bp-forums-template.php:2874 msgid "Viewing %1$s - %2$s of %3$s post" msgid_plural "Viewing %1$s - %2$s of %3$s posts" msgstr[0] "" @@ -3425,39 +3563,35 @@ msgstr "" msgid "(Installed)" msgstr "" -#: bp-forums/deprecated/1.6.php:65 bp-forums/deprecated/1.6.php:209 +#: bp-forums/deprecated/1.6.php:65 bp-forums/deprecated/1.6.php:215 msgid "Forums for Groups" msgstr "" -#: bp-forums/deprecated/1.6.php:67 bp-forums/deprecated/1.6.php:211 +#: bp-forums/deprecated/1.6.php:67 bp-forums/deprecated/1.6.php:217 msgid "" "Give each individual group its own discussion forum. Choose this if you'd " "like to keep your members' conversations separated into distinct areas." msgstr "" -#: bp-forums/deprecated/1.6.php:69 bp-forums/deprecated/1.6.php:213 +#: bp-forums/deprecated/1.6.php:69 bp-forums/deprecated/1.6.php:219 msgid "" "Note: This component is retired and will not be receiving any updates in " "the future. Only use this component if your current site relies on it." msgstr "" -#: bp-forums/deprecated/1.6.php:71 bp-forums/deprecated/1.6.php:215 -msgid "Features" -msgstr "" - -#: bp-forums/deprecated/1.6.php:73 bp-forums/deprecated/1.6.php:217 +#: bp-forums/deprecated/1.6.php:73 bp-forums/deprecated/1.6.php:223 msgid "Group Integration" msgstr "" -#: bp-forums/deprecated/1.6.php:74 bp-forums/deprecated/1.6.php:218 +#: bp-forums/deprecated/1.6.php:74 bp-forums/deprecated/1.6.php:224 msgid "Member Profile Integration" msgstr "" -#: bp-forums/deprecated/1.6.php:75 bp-forums/deprecated/1.6.php:219 +#: bp-forums/deprecated/1.6.php:75 bp-forums/deprecated/1.6.php:225 msgid "Activity Stream Integration" msgstr "" -#: bp-forums/deprecated/1.6.php:76 bp-forums/deprecated/1.6.php:220 +#: bp-forums/deprecated/1.6.php:76 bp-forums/deprecated/1.6.php:226 msgid "@ Mention Integration" msgstr "" @@ -3465,122 +3599,131 @@ msgstr "" msgid "Uninstall Group Forums" msgstr "" -#: bp-forums/deprecated/1.6.php:85 bp-forums/deprecated/1.6.php:230 +#: bp-forums/deprecated/1.6.php:85 bp-forums/deprecated/1.6.php:236 msgid "New! bbPress" msgstr "" -#: bp-forums/deprecated/1.6.php:86 bp-forums/deprecated/1.6.php:231 +#: bp-forums/deprecated/1.6.php:86 bp-forums/deprecated/1.6.php:237 msgid "" "bbPress is a brand-new forum plugin from one of the lead developers of " "BuddyPress." msgstr "" -#: bp-forums/deprecated/1.6.php:88 bp-forums/deprecated/1.6.php:233 +#: bp-forums/deprecated/1.6.php:88 bp-forums/deprecated/1.6.php:239 msgid "" "It boasts a bunch of cool features that the BP Legacy Discussion Forums " "does not have including:" msgstr "" -#: bp-forums/deprecated/1.6.php:91 bp-forums/deprecated/1.6.php:236 +#: bp-forums/deprecated/1.6.php:91 bp-forums/deprecated/1.6.php:242 msgid "Non-group specific forum creation" msgstr "" -#: bp-forums/deprecated/1.6.php:92 bp-forums/deprecated/1.6.php:237 +#: bp-forums/deprecated/1.6.php:92 bp-forums/deprecated/1.6.php:243 msgid "Moderation via the WP admin dashboard" msgstr "" -#: bp-forums/deprecated/1.6.php:93 bp-forums/deprecated/1.6.php:238 +#: bp-forums/deprecated/1.6.php:93 bp-forums/deprecated/1.6.php:244 msgid "Topic splitting" msgstr "" -#: bp-forums/deprecated/1.6.php:94 bp-forums/deprecated/1.6.php:239 +#: bp-forums/deprecated/1.6.php:94 bp-forums/deprecated/1.6.php:245 msgid "Revisions" msgstr "" -#: bp-forums/deprecated/1.6.php:95 bp-forums/deprecated/1.6.php:240 +#: bp-forums/deprecated/1.6.php:95 bp-forums/deprecated/1.6.php:246 msgid "Spam management" msgstr "" -#: bp-forums/deprecated/1.6.php:96 bp-forums/deprecated/1.6.php:241 +#: bp-forums/deprecated/1.6.php:96 bp-forums/deprecated/1.6.php:247 msgid "Subscriptions" msgstr "" -#: bp-forums/deprecated/1.6.php:97 bp-forums/deprecated/1.6.php:242 +#: bp-forums/deprecated/1.6.php:97 bp-forums/deprecated/1.6.php:248 msgid "And more!" msgstr "" -#: bp-forums/deprecated/1.6.php:100 bp-forums/deprecated/1.6.php:245 +#: bp-forums/deprecated/1.6.php:100 bp-forums/deprecated/1.6.php:251 msgid "" "If you decide to use bbPress, you will need to deactivate the legacy group " "forum component. For more info, <a href=\"%s\">read this codex article</a>." msgstr "" -#: bp-forums/deprecated/1.6.php:140 -msgid "The bb-config.php file was not found at that location. Please try again." +#: bp-forums/deprecated/1.6.php:141 +#. translators: %s: bb-config.php +msgid "The %s file was not found at that location. Please try again." msgstr "" -#: bp-forums/deprecated/1.6.php:143 +#: bp-forums/deprecated/1.6.php:144 msgid "Forums were set up correctly using your existing bbPress install!" msgstr "" -#: bp-forums/deprecated/1.6.php:144 +#: bp-forums/deprecated/1.6.php:146 +#. translators: %s: bb-config.php msgid "" "BuddyPress will now use its internal copy of bbPress to run the forums on " "your site. If you wish, you can remove your old bbPress installation files, " -"as long as you keep the bb-config.php file in the same location." +"as long as you keep the %s file in the same location." msgstr "" -#: bp-forums/deprecated/1.6.php:149 +#: bp-forums/deprecated/1.6.php:151 msgid "Existing bbPress Installation" msgstr "" -#: bp-forums/deprecated/1.6.php:150 +#: bp-forums/deprecated/1.6.php:153 +#. translators: %s: bb-config.php msgid "" "BuddyPress can make use of your existing bbPress install. Just provide the " -"location of your <code>bb-config.php</code> file, and BuddyPress will do " -"the rest." +"location of your %s file, and BuddyPress will do the rest." +msgstr "" + +#: bp-forums/deprecated/1.6.php:155 +#. translators: %s: bb-config.php +msgid "%s file location:" msgstr "" -#: bp-forums/deprecated/1.6.php:152 bp-forums/deprecated/1.6.php:187 +#: bp-forums/deprecated/1.6.php:156 bp-forums/deprecated/1.6.php:193 msgid "Complete Installation" msgstr "" -#: bp-forums/deprecated/1.6.php:169 +#: bp-forums/deprecated/1.6.php:174 +#. translators: %s: bb-config.php msgid "" -"All done! Configuration settings have been saved to the file " -"<code>bb-config.php</code> in the root of your WordPress install." +"All done! Configuration settings have been saved to the %s file in the root " +"of your WordPress install." msgstr "" -#: bp-forums/deprecated/1.6.php:175 +#: bp-forums/deprecated/1.6.php:181 +#. translators: %s: bb-config.php msgid "" "A configuration file could not be created. No problem, but you will need to " -"save the text shown below into a file named <code>bb-config.php</code> in " -"the root directory of your WordPress installation before you can start " -"using the forum functionality." +"save the text shown below into a file named %s in the root directory of " +"your WordPress installation before you can start using the forum " +"functionality." msgstr "" -#: bp-forums/deprecated/1.6.php:184 +#: bp-forums/deprecated/1.6.php:190 msgid "New bbPress Installation" msgstr "" -#: bp-forums/deprecated/1.6.php:185 +#: bp-forums/deprecated/1.6.php:191 msgid "" "You've decided to set up a new installation of bbPress for forum management " "in BuddyPress. This is very simple and is usually just a one click\n" "\t\t\t\tprocess. When you're ready, hit the link below." msgstr "" -#: bp-forums/deprecated/1.6.php:197 +#: bp-forums/deprecated/1.6.php:203 msgid "" "bbPress files were not found. To install the forums component you must " "download a copy of bbPress and make sure it is in the folder: \"%s\"" msgstr "" -#: bp-forums/deprecated/1.6.php:224 +#: bp-forums/deprecated/1.6.php:230 msgid "Install Group Forums" msgstr "" -#: bp-forums/deprecated/1.6.php:225 +#: bp-forums/deprecated/1.6.php:231 msgid "Use Existing Installation" msgstr "" @@ -3601,7 +3744,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:1372 +#: bp-templates/bp-legacy/buddypress-functions.php:1345 msgid "Friendship could not be canceled." msgstr "" @@ -3623,7 +3766,7 @@ msgstr "" #: bp-friends/bp-friends-activity.php:106 #: bp-friends/bp-friends-activity.php:115 -#: bp-friends/classes/class-bp-friends-component.php:242 +#: bp-friends/classes/class-bp-friends-component.php:264 msgid "Friendships" msgstr "" @@ -3640,19 +3783,19 @@ msgstr "" msgid "%1$s and %2$s are now friends" msgstr "" -#: bp-friends/bp-friends-notifications.php:108 +#: bp-friends/bp-friends-notifications.php:106 msgid "%d friends accepted your friendship requests" msgstr "" -#: bp-friends/bp-friends-notifications.php:111 +#: bp-friends/bp-friends-notifications.php:109 msgid "%s accepted your friendship request" msgstr "" -#: bp-friends/bp-friends-notifications.php:124 +#: bp-friends/bp-friends-notifications.php:122 msgid "You have %d pending friendship requests" msgstr "" -#: bp-friends/bp-friends-notifications.php:127 +#: bp-friends/bp-friends-notifications.php:125 msgid "You have a friendship request from %s" msgstr "" @@ -3680,76 +3823,76 @@ msgstr "" msgid "Friendship request could not be withdrawn" msgstr "" -#: bp-friends/bp-friends-template.php:86 +#: bp-friends/bp-friends-template.php:84 msgid "My Friends" msgstr "" -#: bp-friends/bp-friends-template.php:86 -#: bp-friends/classes/class-bp-core-friends-widget.php:56 +#: bp-friends/bp-friends-template.php:84 +#: bp-friends/classes/class-bp-core-friends-widget.php:67 msgid "%s's Friends" msgstr "" -#: bp-friends/bp-friends-template.php:86 +#: bp-friends/bp-friends-template.php:84 msgid "See All" msgstr "" -#: bp-friends/bp-friends-template.php:106 +#: bp-friends/bp-friends-template.php:104 msgid "You haven't added any friend connections yet." msgstr "" -#: bp-friends/bp-friends-template.php:106 +#: bp-friends/bp-friends-template.php:104 msgid "%s hasn't created any friend connections yet." msgstr "" -#: bp-friends/bp-friends-template.php:176 +#: bp-friends/bp-friends-template.php:174 msgid "There aren't enough site members to show a random sample just yet." msgstr "" -#: bp-friends/bp-friends-template.php:193 +#: bp-friends/bp-friends-template.php:191 msgid "Filter Friends" msgstr "" -#: bp-friends/bp-friends-template.php:249 +#: bp-friends/bp-friends-template.php:247 msgid "%d friend" msgstr "" -#: bp-friends/bp-friends-template.php:253 +#: bp-friends/bp-friends-template.php:251 msgid "%d friends" msgstr "" -#: bp-friends/bp-friends-template.php:373 -#: bp-templates/bp-legacy/buddypress-functions.php:1384 +#: bp-friends/bp-friends-template.php:371 +#: bp-templates/bp-legacy/buddypress-functions.php:1357 msgid "Cancel Friendship Request" msgstr "" -#: bp-friends/bp-friends-template.php:374 +#: bp-friends/bp-friends-template.php:372 msgid "Cancel Friendship Requested" msgstr "" -#: bp-friends/bp-friends-template.php:390 -#: bp-friends/bp-friends-template.php:391 +#: bp-friends/bp-friends-template.php:388 +#: bp-friends/bp-friends-template.php:389 msgid "Friendship Requested" msgstr "" -#: bp-friends/bp-friends-template.php:407 -#: bp-friends/bp-friends-template.php:408 +#: bp-friends/bp-friends-template.php:405 +#: bp-friends/bp-friends-template.php:406 msgid "Cancel Friendship" msgstr "" -#: bp-friends/bp-friends-template.php:424 -#: bp-friends/bp-friends-template.php:425 -#: bp-templates/bp-legacy/buddypress-functions.php:1374 -#: bp-templates/bp-legacy/buddypress-functions.php:1392 +#: bp-friends/bp-friends-template.php:422 +#: bp-friends/bp-friends-template.php:423 +#: bp-templates/bp-legacy/buddypress-functions.php:1347 +#: bp-templates/bp-legacy/buddypress-functions.php:1365 msgid "Add Friend" msgstr "" -#: bp-friends/bp-friends-template.php:717 +#: bp-friends/bp-friends-template.php:723 msgid "%s friend" msgid_plural "%s friends" msgstr[0] "" msgstr[1] "" -#: bp-friends/bp-friends-widgets.php:91 bp-members/bp-members-widgets.php:105 +#: bp-friends/bp-friends-widgets.php:93 bp-members/bp-members-widgets.php:107 msgid "There were no members found, please try another filter." msgstr "" @@ -3759,111 +3902,112 @@ msgid "" "displayed member. Widget is only shown when viewing a member profile." msgstr "" -#: bp-friends/classes/class-bp-core-friends-widget.php:95 -#: bp-friends/classes/class-bp-core-friends-widget.php:190 -#: bp-groups/classes/class-bp-groups-widget.php:113 -#: bp-groups/classes/class-bp-groups-widget.php:215 -#: bp-members/classes/class-bp-core-members-widget.php:103 -#: bp-members/classes/class-bp-core-members-widget.php:218 -#: bp-members/classes/class-bp-members-admin.php:991 +#: bp-friends/classes/class-bp-core-friends-widget.php:106 +#: bp-friends/classes/class-bp-core-friends-widget.php:201 +#: bp-groups/classes/class-bp-groups-widget.php:123 +#: bp-groups/classes/class-bp-groups-widget.php:225 +#: bp-members/classes/class-bp-core-members-widget.php:116 +#: bp-members/classes/class-bp-core-members-widget.php:234 +#: bp-members/classes/class-bp-members-admin.php:995 msgid "Active" msgstr "" -#: bp-friends/classes/class-bp-core-friends-widget.php:96 -#: bp-friends/classes/class-bp-core-friends-widget.php:191 -#: bp-groups/classes/class-bp-groups-widget.php:115 -#: bp-groups/classes/class-bp-groups-widget.php:216 -#: bp-members/classes/class-bp-core-members-widget.php:107 -#: bp-members/classes/class-bp-core-members-widget.php:219 +#: bp-friends/classes/class-bp-core-friends-widget.php:107 +#: bp-friends/classes/class-bp-core-friends-widget.php:202 +#: bp-groups/classes/class-bp-groups-widget.php:125 +#: bp-groups/classes/class-bp-groups-widget.php:226 +#: bp-members/classes/class-bp-core-members-widget.php:120 +#: bp-members/classes/class-bp-core-members-widget.php:235 msgid "Popular" msgstr "" -#: bp-friends/classes/class-bp-core-friends-widget.php:131 +#: bp-friends/classes/class-bp-core-friends-widget.php:142 #: bp-templates/bp-legacy/buddypress/members/members-loop.php:142 msgid "Sorry, no members were found." msgstr "" -#: bp-friends/classes/class-bp-core-friends-widget.php:182 -#: bp-members/classes/class-bp-core-members-widget.php:203 +#: bp-friends/classes/class-bp-core-friends-widget.php:193 +#: bp-members/classes/class-bp-core-members-widget.php:219 msgid "Link widget title to Members directory" msgstr "" -#: bp-friends/classes/class-bp-core-friends-widget.php:184 +#: bp-friends/classes/class-bp-core-friends-widget.php:195 msgid "Max friends to show:" msgstr "" -#: bp-friends/classes/class-bp-core-friends-widget.php:187 +#: bp-friends/classes/class-bp-core-friends-widget.php:198 msgid "Default friends to show:" msgstr "" -#: bp-friends/classes/class-bp-friends-component.php:101 +#: bp-friends/classes/class-bp-friends-component.php:104 msgid "Search Friends..." msgstr "" -#: bp-friends/classes/class-bp-friends-component.php:140 -msgid "Friends <span class=\"%s\">%s</span>" +#: bp-friends/classes/class-bp-friends-component.php:145 +#. translators: %s: Friend count for the current user +msgid "Friends %s" msgstr "" -#: bp-groups/bp-groups-actions.php:39 +#: bp-groups/bp-groups-actions.php:54 msgid "You do not have access to this group." msgstr "" -#: bp-groups/bp-groups-actions.php:50 +#: bp-groups/bp-groups-actions.php:65 msgid "You are not an admin of this group." msgstr "" -#: bp-groups/bp-groups-actions.php:110 +#: bp-groups/bp-groups-actions.php:125 msgid "Sorry, you are not allowed to create groups." msgstr "" -#: bp-groups/bp-groups-actions.php:135 bp-groups/bp-groups-actions.php:170 -#: bp-groups/bp-groups-actions.php:194 +#: bp-groups/bp-groups-actions.php:150 bp-groups/bp-groups-actions.php:185 +#: bp-groups/bp-groups-actions.php:209 msgid "There was an error saving group details. Please try again." msgstr "" -#: bp-groups/bp-groups-actions.php:150 +#: bp-groups/bp-groups-actions.php:165 msgid "Only the group creator may continue editing this group." msgstr "" -#: bp-groups/bp-groups-actions.php:163 +#: bp-groups/bp-groups-actions.php:178 msgid "Please fill in all of the required fields" msgstr "" -#: bp-groups/bp-groups-actions.php:311 bp-groups/bp-groups-screens.php:684 +#: bp-groups/bp-groups-actions.php:326 bp-groups/bp-groups-screens.php:686 msgid "Invite successfully removed" msgstr "" -#: bp-groups/bp-groups-actions.php:315 bp-groups/bp-groups-screens.php:695 +#: bp-groups/bp-groups-actions.php:330 bp-groups/bp-groups-screens.php:697 msgid "There was an error removing the invite" msgstr "" -#: bp-groups/bp-groups-actions.php:344 +#: bp-groups/bp-groups-actions.php:359 msgid "" "There was an error saving the group profile photo, please try uploading " "again." msgstr "" -#: bp-groups/bp-groups-actions.php:385 bp-groups/bp-groups-actions.php:392 +#: bp-groups/bp-groups-actions.php:400 bp-groups/bp-groups-actions.php:407 msgid "There was an error joining the group." msgstr "" -#: bp-groups/bp-groups-actions.php:394 +#: bp-groups/bp-groups-actions.php:409 msgid "You joined the group!" msgstr "" -#: bp-groups/bp-groups-actions.php:441 bp-groups/bp-groups-screens.php:1138 +#: bp-groups/bp-groups-actions.php:456 bp-groups/bp-groups-screens.php:1140 msgid "This group must have at least one admin" msgstr "" -#: bp-groups/bp-groups-actions.php:443 +#: bp-groups/bp-groups-actions.php:458 msgid "There was an error leaving the group." msgstr "" -#: bp-groups/bp-groups-actions.php:445 bp-groups/bp-groups-functions.php:453 +#: bp-groups/bp-groups-actions.php:460 bp-groups/bp-groups-functions.php:453 msgid "You successfully left the group." msgstr "" -#: bp-groups/bp-groups-actions.php:545 +#: bp-groups/bp-groups-actions.php:560 msgid "Activity feed for the group, %s." msgstr "" @@ -3911,7 +4055,7 @@ msgstr "" msgid "%1$s created the group %2$s" msgstr "" -#: bp-groups/bp-groups-activity.php:138 bp-groups/bp-groups-activity.php:443 +#: bp-groups/bp-groups-activity.php:138 bp-groups/bp-groups-activity.php:444 msgid "%1$s joined the group %2$s" msgstr "" @@ -3931,13 +4075,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:119 +#: bp-groups/bp-groups-admin.php:121 msgid "" "This page is a convenient way to edit the details associated with one of " "your groups." msgstr "" -#: bp-groups/bp-groups-admin.php:120 +#: bp-groups/bp-groups-admin.php:122 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 " @@ -3945,11 +4089,11 @@ msgid "" "unhide, or to choose a 1- or 2-column layout for this screen." msgstr "" -#: bp-groups/bp-groups-admin.php:126 +#: bp-groups/bp-groups-admin.php:128 msgid "Support Forums" msgstr "" -#: bp-groups/bp-groups-admin.php:159 +#: bp-groups/bp-groups-admin.php:174 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, " @@ -3957,24 +4101,24 @@ msgid "" "Actions." msgstr "" -#: bp-groups/bp-groups-admin.php:164 +#: bp-groups/bp-groups-admin.php:179 msgid "Group Actions" msgstr "" -#: bp-groups/bp-groups-admin.php:166 +#: bp-groups/bp-groups-admin.php:181 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:167 +#: bp-groups/bp-groups-admin.php:182 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:168 +#: bp-groups/bp-groups-admin.php:183 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 " @@ -3982,279 +4126,300 @@ msgid "" "the group(s)." msgstr "" -#: bp-groups/bp-groups-admin.php:180 +#: bp-groups/bp-groups-admin.php:196 +#. translators: accessibility text msgid "Groups list navigation" msgstr "" -#: bp-groups/bp-groups-admin.php:190 +#: bp-groups/bp-groups-admin.php:206 msgid "Start typing a username to add a new member." msgstr "" -#: bp-groups/bp-groups-admin.php:191 +#: bp-groups/bp-groups-admin.php:207 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:505 +#: bp-groups/bp-groups-admin.php:521 msgid "You cannot remove all administrators from a group." msgstr "" -#: bp-groups/bp-groups-admin.php:511 +#: bp-groups/bp-groups-admin.php:527 msgid "Group name cannot be empty." msgstr "" -#: bp-groups/bp-groups-admin.php:515 +#: bp-groups/bp-groups-admin.php:531 msgid "Group description cannot be empty." msgstr "" -#: bp-groups/bp-groups-admin.php:519 +#: bp-groups/bp-groups-admin.php:535 msgid "Group name and description cannot be empty." msgstr "" -#: bp-groups/bp-groups-admin.php:523 +#: bp-groups/bp-groups-admin.php:539 msgid "An error occurred when trying to update your group details." msgstr "" -#: bp-groups/bp-groups-admin.php:528 +#: bp-groups/bp-groups-admin.php:544 msgid "The group has been updated successfully." msgstr "" -#: bp-groups/bp-groups-admin.php:532 +#: bp-groups/bp-groups-admin.php:548 msgid "The following users could not be added to the group: %s" msgstr "" -#: bp-groups/bp-groups-admin.php:536 +#: bp-groups/bp-groups-admin.php:552 msgid "The following users were successfully added to the group: %s" msgstr "" -#: bp-groups/bp-groups-admin.php:541 +#: bp-groups/bp-groups-admin.php:557 msgid "An error occurred when trying to modify the following members: %s" msgstr "" -#: bp-groups/bp-groups-admin.php:546 +#: bp-groups/bp-groups-admin.php:562 msgid "The following members were successfully modified: %s" msgstr "" -#: bp-groups/bp-groups-admin.php:574 bp-groups/bp-groups-adminbar.php:45 -#: bp-xprofile/bp-xprofile-admin.php:149 +#: bp-groups/bp-groups-admin.php:589 bp-groups/bp-groups-adminbar.php:45 +#: bp-xprofile/bp-xprofile-admin.php:152 msgid "Edit Group" msgstr "" -#: bp-groups/bp-groups-admin.php:577 bp-groups/bp-groups-admin.php:731 +#: bp-groups/bp-groups-admin.php:592 bp-groups/bp-groups-admin.php:761 msgid "Add New" msgstr "" -#: bp-groups/bp-groups-admin.php:596 +#: bp-groups/bp-groups-admin.php:611 msgid "Name and Description" msgstr "" -#: bp-groups/bp-groups-admin.php:598 +#: bp-groups/bp-groups-admin.php:615 +#. translators: accessibility text msgid "Group Name" msgstr "" -#: bp-groups/bp-groups-admin.php:601 +#: bp-groups/bp-groups-admin.php:619 msgid "Permalink:" msgstr "" -#: bp-groups/bp-groups-admin.php:601 +#: bp-groups/bp-groups-admin.php:619 msgid "Visit Group" msgstr "" -#: bp-groups/bp-groups-admin.php:604 +#: bp-groups/bp-groups-admin.php:624 +#. translators: accessibility text msgid "Group Description" msgstr "" -#: bp-groups/bp-groups-admin.php:628 -msgid "No group found with this ID. <a href=\"%s\">Go back and try again</a>." +#: bp-groups/bp-groups-admin.php:653 +msgid "No group found with this ID." msgstr "" -#: bp-groups/bp-groups-admin.php:670 +#: bp-groups/bp-groups-admin.php:700 msgid "Delete Groups" msgstr "" -#: bp-groups/bp-groups-admin.php:671 +#: bp-groups/bp-groups-admin.php:701 msgid "You are about to delete the following groups:" msgstr "" -#: bp-groups/bp-groups-admin.php:679 -#: bp-members/classes/class-bp-members-admin.php:2010 +#: bp-groups/bp-groups-admin.php:709 +#: bp-members/classes/class-bp-members-admin.php:2025 msgid "This action cannot be undone." msgstr "" -#: bp-groups/bp-groups-admin.php:708 +#: bp-groups/bp-groups-admin.php:738 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:728 bp-groups/bp-groups-notifications.php:444 +#: bp-groups/bp-groups-admin.php:758 bp-groups/bp-groups-notifications.php:444 #: bp-groups/bp-groups-notifications.php:533 #: bp-groups/bp-groups-notifications.php:619 #: bp-groups/bp-groups-notifications.php:701 -#: bp-groups/classes/class-bp-groups-widget.php:65 -#: bp-groups/classes/class-bp-groups-widget.php:192 +#: bp-groups/classes/class-bp-groups-widget.php:75 +#: bp-groups/classes/class-bp-groups-widget.php:202 msgid "Groups" msgstr "" -#: bp-groups/bp-groups-admin.php:748 +#: bp-groups/bp-groups-admin.php:778 msgid "Search all Groups" msgstr "" -#: bp-groups/bp-groups-admin.php:771 +#: bp-groups/bp-groups-admin.php:801 #: bp-templates/bp-legacy/buddypress/groups/create.php:156 #: bp-templates/bp-legacy/buddypress/groups/single/admin.php:91 msgid "Enable discussion forum" msgstr "" -#: bp-groups/bp-groups-admin.php:777 +#: bp-groups/bp-groups-admin.php:807 msgid "Privacy" msgstr "" -#: bp-groups/bp-groups-admin.php:780 bp-groups/bp-groups-template.php:1013 -#: bp-groups/classes/class-bp-groups-list-table.php:556 +#: bp-groups/bp-groups-admin.php:810 bp-groups/bp-groups-template.php:1007 +#: bp-groups/classes/class-bp-groups-list-table.php:563 msgid "Public" msgstr "" -#: bp-groups/bp-groups-admin.php:781 bp-groups/bp-groups-template.php:1015 -#: bp-groups/classes/class-bp-groups-list-table.php:559 +#: bp-groups/bp-groups-admin.php:811 bp-groups/bp-groups-template.php:1009 +#: bp-groups/classes/class-bp-groups-list-table.php:566 msgid "Private" msgstr "" -#: bp-groups/bp-groups-admin.php:782 -#: bp-groups/classes/class-bp-groups-list-table.php:562 +#: bp-groups/bp-groups-admin.php:812 +#: bp-groups/classes/class-bp-groups-list-table.php:569 msgid "Hidden" msgstr "" -#: bp-groups/bp-groups-admin.php:789 +#: bp-groups/bp-groups-admin.php:819 msgid "Who can invite others to this group?" msgstr "" -#: bp-groups/bp-groups-admin.php:792 +#: bp-groups/bp-groups-admin.php:822 #: bp-templates/bp-legacy/buddypress/groups/create.php:139 #: bp-templates/bp-legacy/buddypress/groups/single/admin.php:138 msgid "All group members" msgstr "" -#: bp-groups/bp-groups-admin.php:793 +#: bp-groups/bp-groups-admin.php:823 #: bp-templates/bp-legacy/buddypress/groups/create.php:141 #: bp-templates/bp-legacy/buddypress/groups/single/admin.php:140 msgid "Group admins and mods only" msgstr "" -#: bp-groups/bp-groups-admin.php:794 +#: bp-groups/bp-groups-admin.php:824 #: bp-templates/bp-legacy/buddypress/groups/create.php:143 #: bp-templates/bp-legacy/buddypress/groups/single/admin.php:142 msgid "Group admins only" msgstr "" -#: bp-groups/bp-groups-admin.php:812 +#: bp-groups/bp-groups-admin.php:844 +#. translators: accessibility text msgid "Add new members" msgstr "" -#: bp-groups/bp-groups-admin.php:813 +#: bp-groups/bp-groups-admin.php:846 msgid "Enter a comma-separated list of user logins." msgstr "" -#: bp-groups/bp-groups-admin.php:868 -#: bp-templates/bp-legacy/buddypress/groups/single/admin.php:262 +#: bp-groups/bp-groups-admin.php:901 +#: bp-templates/bp-legacy/buddypress/groups/single/admin.php:265 msgid "Administrators" msgstr "" -#: bp-groups/bp-groups-admin.php:869 -#: bp-templates/bp-legacy/buddypress/groups/single/admin.php:290 +#: bp-groups/bp-groups-admin.php:902 +#: bp-templates/bp-legacy/buddypress/groups/single/admin.php:293 msgid "Moderators" msgstr "" -#: bp-groups/bp-groups-admin.php:870 -#: bp-groups/classes/class-bp-groups-component.php:646 -#: bp-members/classes/class-bp-core-members-widget.php:238 -#: bp-members/classes/class-bp-members-component.php:36 -#: bp-templates/bp-legacy/buddypress/groups/single/admin.php:316 +#: bp-groups/bp-groups-admin.php:903 +#: bp-groups/classes/class-bp-groups-component.php:674 +#: bp-members/classes/class-bp-core-members-widget.php:253 +#: bp-members/classes/class-bp-members-component.php:38 +#: bp-templates/bp-legacy/buddypress/groups/single/admin.php:319 msgid "Members" msgstr "" -#: bp-groups/bp-groups-admin.php:871 +#: bp-groups/bp-groups-admin.php:904 msgid "Banned Members" msgstr "" -#: bp-groups/bp-groups-admin.php:906 +#: bp-groups/bp-groups-admin.php:941 +#. translators: accessibility text msgid "Select group role for member" msgstr "" -#: bp-groups/bp-groups-admin.php:908 +#: bp-groups/bp-groups-admin.php:944 msgid "Roles" msgstr "" -#: bp-groups/bp-groups-admin.php:909 +#: bp-groups/bp-groups-admin.php:945 msgid "Administrator" msgstr "" -#: bp-groups/bp-groups-admin.php:910 +#: bp-groups/bp-groups-admin.php:946 msgid "Moderator" msgstr "" -#: bp-groups/bp-groups-admin.php:911 -#: bp-members/classes/class-bp-members-admin.php:763 +#: bp-groups/bp-groups-admin.php:947 +#: bp-members/classes/class-bp-members-admin.php:760 msgid "Member" msgstr "" -#: bp-groups/bp-groups-admin.php:913 +#: bp-groups/bp-groups-admin.php:949 msgid "Banned" msgstr "" -#: bp-groups/bp-groups-admin.php:916 -#: bp-members/classes/class-bp-members-admin.php:1436 -#: bp-templates/bp-legacy/buddypress/members/single/messages/messages-loop.php:74 -#: bp-templates/bp-legacy/buddypress/members/single/notifications/notifications-loop.php:18 +#: bp-groups/bp-groups-admin.php:952 +#: bp-members/classes/class-bp-members-admin.php:1448 +#: bp-templates/bp-legacy/buddypress/members/single/messages/messages-loop.php:80 +#: bp-templates/bp-legacy/buddypress/members/single/notifications/notifications-loop.php:21 msgid "Actions" msgstr "" -#: bp-groups/bp-groups-admin.php:917 +#: bp-groups/bp-groups-admin.php:953 msgid "Remove" msgstr "" -#: bp-groups/bp-groups-admin.php:919 +#: bp-groups/bp-groups-admin.php:955 msgid "Ban" msgstr "" -#: bp-groups/bp-groups-admin.php:965 +#: bp-groups/bp-groups-admin.php:1001 msgid "No members of this type" msgstr "" -#: bp-groups/bp-groups-admin.php:994 +#: bp-groups/bp-groups-admin.php:1030 #: bp-groups/classes/class-bp-group-extension.php:522 #: bp-templates/bp-legacy/buddypress/groups/single/admin.php:69 #: bp-templates/bp-legacy/buddypress/groups/single/admin.php:157 #: bp-templates/bp-legacy/buddypress/groups/single/forum/edit.php:92 -#: bp-templates/bp-legacy/buddypress/groups/single/forum/edit.php:123 +#: bp-templates/bp-legacy/buddypress/groups/single/forum/edit.php:126 #: bp-templates/bp-legacy/buddypress/members/single/profile/edit.php:105 -#: bp-templates/bp-legacy/buddypress/members/single/settings/general.php:40 +#: bp-templates/bp-legacy/buddypress/members/single/settings/general.php:43 #: bp-templates/bp-legacy/buddypress/members/single/settings/notifications.php:34 msgid "Save Changes" msgstr "" -#: bp-groups/bp-groups-admin.php:1043 +#: bp-groups/bp-groups-admin.php:1059 +#. translators: accessibility text +msgid "Select group type" +msgstr "" + +#: bp-groups/bp-groups-admin.php:1062 +#: bp-members/classes/class-bp-members-admin.php:1116 +#: bp-templates/bp-legacy/buddypress/forums/index.php:180 +#: bp-xprofile/classes/class-bp-xprofile-field-type-datebox.php:209 +#: bp-xprofile/classes/class-bp-xprofile-field-type-datebox.php:232 +#: bp-xprofile/classes/class-bp-xprofile-field-type-datebox.php:240 +#: bp-xprofile/classes/class-bp-xprofile-field-type-selectbox.php:104 +#. translators: no option picked in select box +msgid "----" +msgstr "" + +#: bp-groups/bp-groups-admin.php:1146 msgid "«" msgstr "" -#: bp-groups/bp-groups-admin.php:1044 +#: bp-groups/bp-groups-admin.php:1147 msgid "»" msgstr "" -#: bp-groups/bp-groups-admin.php:1050 bp-groups/bp-groups-template.php:4117 -#: bp-members/bp-members-template.php:498 +#: bp-groups/bp-groups-admin.php:1153 bp-groups/bp-groups-template.php:4115 +#: bp-members/bp-members-template.php:504 msgid "Viewing 1 member" msgstr "" -#: bp-groups/bp-groups-admin.php:1053 bp-groups/bp-groups-template.php:4119 -#: bp-members/bp-members-template.php:500 +#: bp-groups/bp-groups-admin.php:1156 bp-groups/bp-groups-template.php:4117 +#: 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:1119 +#: bp-groups/bp-groups-admin.php:1222 #. Translators: 1: user_login, 2: user_email. msgid "%1$s (%2$s)" msgstr "" @@ -4280,10 +4445,18 @@ msgstr "" msgid "As the only admin, you cannot leave the group." msgstr "" -#: bp-groups/bp-groups-functions.php:987 +#: bp-groups/bp-groups-functions.php:1210 msgid "%1$s posted an update in the group %2$s" msgstr "" +#: bp-groups/bp-groups-functions.php:2134 +msgid "Group type already exists." +msgstr "" + +#: bp-groups/bp-groups-functions.php:2156 +msgid "You may not register a group type with this name." +msgstr "" + #: bp-groups/bp-groups-notifications.php:207 msgid "an administrator" msgstr "" @@ -4349,366 +4522,366 @@ msgstr "" msgid "You have an invitation to the group: %s" msgstr "" -#: bp-groups/bp-groups-screens.php:85 +#: bp-groups/bp-groups-screens.php:87 msgid "Group invite could not be accepted" msgstr "" -#: bp-groups/bp-groups-screens.php:87 bp-groups/bp-groups-screens.php:722 +#: bp-groups/bp-groups-screens.php:89 bp-groups/bp-groups-screens.php:724 msgid "Group invite accepted" msgstr "" -#: bp-groups/bp-groups-screens.php:112 +#: bp-groups/bp-groups-screens.php:114 msgid "Group invite could not be rejected" msgstr "" -#: bp-groups/bp-groups-screens.php:114 +#: bp-groups/bp-groups-screens.php:116 msgid "Group invite rejected" msgstr "" -#: bp-groups/bp-groups-screens.php:223 +#: bp-groups/bp-groups-screens.php:225 msgid "It looks like you've already said that!" msgstr "" -#: bp-groups/bp-groups-screens.php:226 +#: bp-groups/bp-groups-screens.php:228 msgid "There was an error when replying to that topic" msgstr "" -#: bp-groups/bp-groups-screens.php:228 +#: bp-groups/bp-groups-screens.php:230 msgid "Your reply was posted successfully" msgstr "" -#: bp-groups/bp-groups-screens.php:249 +#: bp-groups/bp-groups-screens.php:251 msgid "There was an error when making that topic a sticky" msgstr "" -#: bp-groups/bp-groups-screens.php:251 +#: bp-groups/bp-groups-screens.php:253 msgid "The topic was made sticky successfully" msgstr "" -#: bp-groups/bp-groups-screens.php:271 +#: bp-groups/bp-groups-screens.php:273 msgid "There was an error when unsticking that topic" msgstr "" -#: bp-groups/bp-groups-screens.php:273 +#: bp-groups/bp-groups-screens.php:275 msgid "The topic was unstuck successfully" msgstr "" -#: bp-groups/bp-groups-screens.php:293 +#: bp-groups/bp-groups-screens.php:295 msgid "There was an error when closing that topic" msgstr "" -#: bp-groups/bp-groups-screens.php:295 +#: bp-groups/bp-groups-screens.php:297 msgid "The topic was closed successfully" msgstr "" -#: bp-groups/bp-groups-screens.php:315 +#: bp-groups/bp-groups-screens.php:317 msgid "There was an error when opening that topic" msgstr "" -#: bp-groups/bp-groups-screens.php:317 +#: bp-groups/bp-groups-screens.php:319 msgid "The topic was opened successfully" msgstr "" -#: bp-groups/bp-groups-screens.php:354 +#: bp-groups/bp-groups-screens.php:356 msgid "There was an error deleting the topic" msgstr "" -#: bp-groups/bp-groups-screens.php:356 +#: bp-groups/bp-groups-screens.php:358 msgid "The topic was deleted successfully" msgstr "" -#: bp-groups/bp-groups-screens.php:387 +#: bp-groups/bp-groups-screens.php:389 msgid "There was an error when editing that topic" msgstr "" -#: bp-groups/bp-groups-screens.php:389 +#: bp-groups/bp-groups-screens.php:391 msgid "The topic was edited successfully" msgstr "" -#: bp-groups/bp-groups-screens.php:435 +#: bp-groups/bp-groups-screens.php:437 msgid "There was an error deleting that post" msgstr "" -#: bp-groups/bp-groups-screens.php:437 +#: bp-groups/bp-groups-screens.php:439 msgid "The post was deleted successfully" msgstr "" -#: bp-groups/bp-groups-screens.php:468 +#: bp-groups/bp-groups-screens.php:470 msgid "There was an error when editing that post" msgstr "" -#: bp-groups/bp-groups-screens.php:470 +#: bp-groups/bp-groups-screens.php:472 msgid "The post was edited successfully" msgstr "" -#: bp-groups/bp-groups-screens.php:494 bp-groups/bp-groups-screens.php:520 +#: bp-groups/bp-groups-screens.php:496 bp-groups/bp-groups-screens.php:522 msgid "You have been banned from this group." msgstr "" -#: bp-groups/bp-groups-screens.php:534 +#: bp-groups/bp-groups-screens.php:536 msgid "This group does not have a forum setup yet." msgstr "" -#: bp-groups/bp-groups-screens.php:633 +#: bp-groups/bp-groups-screens.php:635 msgid "Group invites sent." msgstr "" -#: bp-groups/bp-groups-screens.php:689 +#: bp-groups/bp-groups-screens.php:691 msgid "You are not allowed to send or remove invites" msgstr "" -#: bp-groups/bp-groups-screens.php:692 +#: bp-groups/bp-groups-screens.php:694 msgid "The member requested to join the group" msgstr "" -#: bp-groups/bp-groups-screens.php:724 +#: bp-groups/bp-groups-screens.php:726 msgid "There was an error accepting the group invitation. Please try again." msgstr "" -#: bp-groups/bp-groups-screens.php:736 +#: bp-groups/bp-groups-screens.php:738 msgid "There was an error sending your group membership request. Please try again." msgstr "" -#: bp-groups/bp-groups-screens.php:738 +#: bp-groups/bp-groups-screens.php:740 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:845 +#: bp-groups/bp-groups-screens.php:847 msgid "There was an error updating group details. Please try again." msgstr "" -#: bp-groups/bp-groups-screens.php:847 +#: bp-groups/bp-groups-screens.php:849 msgid "Group details were successfully updated." msgstr "" -#: bp-groups/bp-groups-screens.php:917 +#: bp-groups/bp-groups-screens.php:919 msgid "There was an error updating group settings. Please try again." msgstr "" -#: bp-groups/bp-groups-screens.php:919 +#: bp-groups/bp-groups-screens.php:921 msgid "Group settings were successfully updated." msgstr "" -#: bp-groups/bp-groups-screens.php:1024 +#: bp-groups/bp-groups-screens.php:1026 msgid "The new group profile photo was uploaded successfully." msgstr "" -#: bp-groups/bp-groups-screens.php:1109 +#: bp-groups/bp-groups-screens.php:1111 msgid "There was an error when promoting that user. Please try again." msgstr "" -#: bp-groups/bp-groups-screens.php:1111 +#: bp-groups/bp-groups-screens.php:1113 msgid "User promoted successfully" msgstr "" -#: bp-groups/bp-groups-screens.php:1142 +#: bp-groups/bp-groups-screens.php:1144 msgid "There was an error when demoting that user. Please try again." msgstr "" -#: bp-groups/bp-groups-screens.php:1144 +#: bp-groups/bp-groups-screens.php:1146 msgid "User demoted successfully" msgstr "" -#: bp-groups/bp-groups-screens.php:1168 +#: bp-groups/bp-groups-screens.php:1170 msgid "There was an error when banning that user. Please try again." msgstr "" -#: bp-groups/bp-groups-screens.php:1170 +#: bp-groups/bp-groups-screens.php:1172 msgid "User banned successfully" msgstr "" -#: bp-groups/bp-groups-screens.php:1194 +#: bp-groups/bp-groups-screens.php:1196 msgid "There was an error when unbanning that user. Please try again." msgstr "" -#: bp-groups/bp-groups-screens.php:1196 +#: bp-groups/bp-groups-screens.php:1198 msgid "User ban removed successfully" msgstr "" -#: bp-groups/bp-groups-screens.php:1220 +#: bp-groups/bp-groups-screens.php:1222 msgid "There was an error removing that user from the group. Please try again." msgstr "" -#: bp-groups/bp-groups-screens.php:1222 +#: bp-groups/bp-groups-screens.php:1224 msgid "User removed successfully" msgstr "" -#: bp-groups/bp-groups-screens.php:1286 +#: bp-groups/bp-groups-screens.php:1288 msgid "There was an error accepting the membership request. Please try again." msgstr "" -#: bp-groups/bp-groups-screens.php:1288 +#: bp-groups/bp-groups-screens.php:1290 msgid "Group membership request accepted" msgstr "" -#: bp-groups/bp-groups-screens.php:1297 +#: bp-groups/bp-groups-screens.php:1299 msgid "There was an error rejecting the membership request. Please try again." msgstr "" -#: bp-groups/bp-groups-screens.php:1299 +#: bp-groups/bp-groups-screens.php:1301 msgid "Group membership request rejected" msgstr "" -#: bp-groups/bp-groups-screens.php:1368 bp-xprofile/bp-xprofile-admin.php:314 +#: bp-groups/bp-groups-screens.php:1370 bp-xprofile/bp-xprofile-admin.php:322 msgid "There was an error deleting the group. Please try again." msgstr "" -#: bp-groups/bp-groups-screens.php:1370 bp-xprofile/bp-xprofile-admin.php:317 +#: bp-groups/bp-groups-screens.php:1372 bp-xprofile/bp-xprofile-admin.php:325 msgid "The group was deleted successfully." msgstr "" -#: bp-groups/bp-groups-template.php:480 +#: bp-groups/bp-groups-template.php:474 msgid "Public Group" msgstr "" -#: bp-groups/bp-groups-template.php:482 +#: bp-groups/bp-groups-template.php:476 msgid "Hidden Group" msgstr "" -#: bp-groups/bp-groups-template.php:484 +#: bp-groups/bp-groups-template.php:478 msgid "Private Group" msgstr "" -#: bp-groups/bp-groups-template.php:486 +#: bp-groups/bp-groups-template.php:480 msgid "Group" msgstr "" -#: bp-groups/bp-groups-template.php:723 +#: bp-groups/bp-groups-template.php:717 msgid "not yet active" msgstr "" -#: bp-groups/bp-groups-template.php:1285 +#: bp-groups/bp-groups-template.php:1279 msgid "Group creator profile photo of %s" msgstr "" -#: bp-groups/bp-groups-template.php:1368 +#: bp-groups/bp-groups-template.php:1362 msgid "No Admins" msgstr "" -#: bp-groups/bp-groups-template.php:1417 +#: bp-groups/bp-groups-template.php:1411 msgid "No Mods" msgstr "" -#: bp-groups/bp-groups-template.php:1557 +#: bp-groups/bp-groups-template.php:1551 msgid "Filter Groups" msgstr "" -#: bp-groups/bp-groups-template.php:1657 +#: bp-groups/bp-groups-template.php:1651 msgid "Viewing 1 group" msgstr "" -#: bp-groups/bp-groups-template.php:1659 +#: bp-groups/bp-groups-template.php:1653 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:1759 +#: bp-groups/bp-groups-template.php:1753 msgid "%s member" msgid_plural "%s members" msgstr[0] "" msgstr[1] "" -#: bp-groups/bp-groups-template.php:1854 +#: bp-groups/bp-groups-template.php:1848 msgid "%d topic" msgstr "" -#: bp-groups/bp-groups-template.php:1856 +#: bp-groups/bp-groups-template.php:1850 msgid "%d topics" msgstr "" -#: bp-groups/bp-groups-template.php:2182 bp-groups/bp-groups-template.php:2258 -#: bp-templates/bp-legacy/buddypress/groups/single/admin.php:275 -#: bp-templates/bp-legacy/buddypress/groups/single/admin.php:302 +#: bp-groups/bp-groups-template.php:2176 bp-groups/bp-groups-template.php:2252 +#: bp-templates/bp-legacy/buddypress/groups/single/admin.php:278 +#: bp-templates/bp-legacy/buddypress/groups/single/admin.php:305 msgid "Demote to Member" msgstr "" -#: bp-groups/bp-groups-template.php:2195 bp-groups/bp-groups-template.php:2271 -#: bp-groups/bp-groups-template.php:4003 +#: bp-groups/bp-groups-template.php:2189 bp-groups/bp-groups-template.php:2265 +#: bp-groups/bp-groups-template.php:4001 msgid "joined %s" msgstr "" -#: bp-groups/bp-groups-template.php:2218 +#: bp-groups/bp-groups-template.php:2212 msgid "This group has no administrators" msgstr "" -#: bp-groups/bp-groups-template.php:2257 -#: bp-templates/bp-legacy/buddypress/groups/single/admin.php:301 -#: bp-templates/bp-legacy/buddypress/groups/single/admin.php:357 +#: bp-groups/bp-groups-template.php:2251 +#: bp-templates/bp-legacy/buddypress/groups/single/admin.php:304 +#: bp-templates/bp-legacy/buddypress/groups/single/admin.php:360 msgid "Promote to Admin" msgstr "" -#: bp-groups/bp-groups-template.php:2291 +#: bp-groups/bp-groups-template.php:2285 msgid "This group has no moderators" msgstr "" -#: bp-groups/bp-groups-template.php:2652 +#: bp-groups/bp-groups-template.php:2646 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:3240 bp-groups/bp-groups-template.php:3241 -#: bp-templates/bp-legacy/buddypress-functions.php:1473 -#: bp-templates/bp-legacy/buddypress-functions.php:1486 +#: bp-groups/bp-groups-template.php:3234 bp-groups/bp-groups-template.php:3235 +#: bp-templates/bp-legacy/buddypress-functions.php:1446 +#: bp-templates/bp-legacy/buddypress-functions.php:1459 msgid "Leave Group" msgstr "" -#: bp-groups/bp-groups-template.php:3262 bp-groups/bp-groups-template.php:3263 -#: bp-templates/bp-legacy/buddypress-functions.php:1507 +#: bp-groups/bp-groups-template.php:3256 bp-groups/bp-groups-template.php:3257 +#: bp-templates/bp-legacy/buddypress-functions.php:1480 msgid "Join Group" msgstr "" -#: bp-groups/bp-groups-template.php:3281 bp-groups/bp-groups-template.php:3282 +#: bp-groups/bp-groups-template.php:3275 bp-groups/bp-groups-template.php:3276 msgid "Accept Invitation" msgstr "" -#: bp-groups/bp-groups-template.php:3297 bp-groups/bp-groups-template.php:3298 -#: bp-templates/bp-legacy/buddypress-functions.php:1496 +#: bp-groups/bp-groups-template.php:3291 bp-groups/bp-groups-template.php:3292 +#: bp-templates/bp-legacy/buddypress-functions.php:1469 msgid "Request Sent" msgstr "" -#: bp-groups/bp-groups-template.php:3313 bp-groups/bp-groups-template.php:3314 -#: bp-templates/bp-legacy/buddypress-functions.php:1509 +#: bp-groups/bp-groups-template.php:3307 bp-groups/bp-groups-template.php:3308 +#: bp-templates/bp-legacy/buddypress-functions.php:1482 msgid "Request Membership" msgstr "" -#: bp-groups/bp-groups-template.php:3462 +#: bp-groups/bp-groups-template.php:3454 msgid "This group is not currently accessible." msgstr "" -#: bp-groups/bp-groups-template.php:3473 +#: bp-groups/bp-groups-template.php:3465 msgid "" "You must accept your pending invitation before you can access this private " "group." msgstr "" -#: bp-groups/bp-groups-template.php:3475 +#: bp-groups/bp-groups-template.php:3467 msgid "" "This is a private group and you must request group membership in order to " "join." msgstr "" -#: bp-groups/bp-groups-template.php:3478 +#: bp-groups/bp-groups-template.php:3470 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:3481 +#: bp-groups/bp-groups-template.php:3473 msgid "" "This is a private group. Your membership request is awaiting approval from " "the group administrator." msgstr "" -#: bp-groups/bp-groups-template.php:3489 +#: bp-groups/bp-groups-template.php:3481 msgid "This is a hidden group and only invited members can join." msgstr "" -#: bp-groups/bp-groups-template.php:4271 -#: bp-notifications/bp-notifications-template.php:905 +#: bp-groups/bp-groups-template.php:4282 +#: bp-notifications/bp-notifications-template.php:1004 #: bp-templates/bp-legacy/buddypress/blogs/index.php:87 #: bp-templates/bp-legacy/buddypress/forums/index.php:86 #: bp-templates/bp-legacy/buddypress/groups/index.php:80 @@ -4721,15 +4894,15 @@ msgstr "" msgid "Order By:" msgstr "" -#: bp-groups/bp-groups-template.php:4274 +#: bp-groups/bp-groups-template.php:4285 msgid "Oldest" msgstr "" -#: bp-groups/bp-groups-template.php:4277 +#: bp-groups/bp-groups-template.php:4288 msgid "Group Activity" msgstr "" -#: bp-groups/bp-groups-template.php:4280 +#: bp-groups/bp-groups-template.php:4291 #: bp-templates/bp-legacy/buddypress/blogs/index.php:91 #: bp-templates/bp-legacy/buddypress/groups/index.php:86 #: bp-templates/bp-legacy/buddypress/members/index.php:89 @@ -4739,70 +4912,70 @@ msgstr "" msgid "Alphabetical" msgstr "" -#: bp-groups/bp-groups-template.php:4705 +#: bp-groups/bp-groups-template.php:4713 msgid "Group photo" msgstr "" -#: bp-groups/bp-groups-template.php:5003 bp-groups/bp-groups-template.php:5028 +#: bp-groups/bp-groups-template.php:5009 bp-groups/bp-groups-template.php:5034 msgid "Recently Joined" msgstr "" -#: bp-groups/bp-groups-template.php:5004 bp-groups/bp-groups-template.php:5031 +#: bp-groups/bp-groups-template.php:5010 bp-groups/bp-groups-template.php:5037 msgid "Most Popular" msgstr "" -#: bp-groups/bp-groups-template.php:5005 bp-groups/bp-groups-template.php:5034 +#: bp-groups/bp-groups-template.php:5011 bp-groups/bp-groups-template.php:5040 msgid "Administrator Of" msgstr "" -#: bp-groups/bp-groups-template.php:5006 bp-groups/bp-groups-template.php:5037 +#: bp-groups/bp-groups-template.php:5012 bp-groups/bp-groups-template.php:5043 msgid "Moderator Of" msgstr "" -#: bp-groups/bp-groups-template.php:5121 +#: bp-groups/bp-groups-template.php:5124 msgid "Group avatar" msgstr "" -#: bp-groups/bp-groups-template.php:5381 +#: bp-groups/bp-groups-template.php:5387 msgid "requested %s" msgstr "" -#: bp-groups/bp-groups-template.php:5452 +#: bp-groups/bp-groups-template.php:5458 msgid "Viewing 1 request" msgstr "" -#: bp-groups/bp-groups-template.php:5454 +#: bp-groups/bp-groups-template.php:5460 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:5721 +#: bp-groups/bp-groups-template.php:5727 msgid "Viewing 1 invitation" msgstr "" -#: bp-groups/bp-groups-template.php:5723 +#: bp-groups/bp-groups-template.php:5729 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:5744 +#: bp-groups/bp-groups-template.php:5750 msgid "Group Activity RSS Feed" msgstr "" -#: bp-groups/bp-groups-template.php:6034 +#: bp-groups/bp-groups-template.php:6032 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:131 +#: bp-groups/bp-groups-widgets.php:71 +#: bp-groups/classes/class-bp-groups-widget.php:141 msgid "created %s" msgstr "" -#: bp-groups/bp-groups-widgets.php:87 +#: bp-groups/bp-groups-widgets.php:89 msgid "No groups matched the current filter." msgstr "" @@ -4810,32 +4983,32 @@ msgstr "" msgid "You do not have access to this content." msgstr "" -#: bp-groups/classes/class-bp-groups-component.php:459 -#: bp-groups/classes/class-bp-groups-component.php:489 +#: bp-groups/classes/class-bp-groups-component.php:484 +#: bp-groups/classes/class-bp-groups-component.php:517 msgid "Memberships" msgstr "" -#: bp-groups/classes/class-bp-groups-component.php:470 +#: bp-groups/classes/class-bp-groups-component.php:495 msgid "Invitations" msgstr "" -#: bp-groups/classes/class-bp-groups-component.php:618 +#: bp-groups/classes/class-bp-groups-component.php:646 msgid "Details" msgstr "" -#: bp-groups/classes/class-bp-groups-component.php:631 +#: bp-groups/classes/class-bp-groups-component.php:659 msgid "Photo" msgstr "" -#: bp-groups/classes/class-bp-groups-component.php:639 +#: bp-groups/classes/class-bp-groups-component.php:667 msgid "Cover Image" msgstr "" -#: bp-groups/classes/class-bp-groups-component.php:653 +#: bp-groups/classes/class-bp-groups-component.php:681 msgid "Requests" msgstr "" -#: bp-groups/classes/class-bp-groups-component.php:789 +#: bp-groups/classes/class-bp-groups-component.php:828 msgid "No Group Profile Photo" msgstr "" @@ -4843,33 +5016,36 @@ msgstr "" msgid "No groups found." msgstr "" -#: bp-groups/classes/class-bp-groups-list-table.php:219 +#: bp-groups/classes/class-bp-groups-list-table.php:221 +#. translators: accessibility text msgid "Groups list" msgstr "" -#: bp-groups/classes/class-bp-groups-list-table.php:287 +#: bp-groups/classes/class-bp-groups-list-table.php:292 +#. translators: accessibility text msgid "Filter groups list" msgstr "" -#: bp-groups/classes/class-bp-groups-list-table.php:291 +#: bp-groups/classes/class-bp-groups-list-table.php:297 msgid "Public <span class=\"count\">(%s)</span>" msgid_plural "Public <span class=\"count\">(%s)</span>" msgstr[0] "" msgstr[1] "" -#: bp-groups/classes/class-bp-groups-list-table.php:292 +#: bp-groups/classes/class-bp-groups-list-table.php:298 msgid "Private <span class=\"count\">(%s)</span>" msgid_plural "Private <span class=\"count\">(%s)</span>" msgstr[0] "" msgstr[1] "" -#: bp-groups/classes/class-bp-groups-list-table.php:293 +#: bp-groups/classes/class-bp-groups-list-table.php:299 msgid "Hidden <span class=\"count\">(%s)</span>" msgid_plural "Hidden <span class=\"count\">(%s)</span>" msgstr[0] "" msgstr[1] "" -#: bp-groups/classes/class-bp-groups-list-table.php:425 +#: bp-groups/classes/class-bp-groups-list-table.php:432 +#. translators: accessibility text msgid "Select group %1$d" msgstr "" @@ -4881,52 +5057,52 @@ msgstr "" msgid "A dynamic list of recently active, popular, and newest groups" msgstr "" -#: bp-groups/classes/class-bp-groups-widget.php:151 +#: bp-groups/classes/class-bp-groups-widget.php:161 msgid "There are no groups to display." msgstr "" -#: bp-groups/classes/class-bp-groups-widget.php:207 +#: bp-groups/classes/class-bp-groups-widget.php:217 msgid "Link widget title to Groups directory" msgstr "" -#: bp-groups/classes/class-bp-groups-widget.php:209 +#: bp-groups/classes/class-bp-groups-widget.php:219 msgid "Max groups to show:" msgstr "" -#: bp-groups/classes/class-bp-groups-widget.php:212 +#: bp-groups/classes/class-bp-groups-widget.php:222 msgid "Default groups to show:" msgstr "" -#: bp-loader.php:172 bp-loader.php:179 +#: bp-loader.php:183 bp-loader.php:190 msgid "Cheatin’ huh?" msgstr "" -#: bp-loader.php:633 +#: bp-loader.php:752 msgid "BuddyPress Default" msgstr "" -#: bp-members/bp-members-actions.php:55 -#: bp-members/classes/class-bp-members-admin.php:303 +#: bp-members/bp-members-actions.php:57 +#: bp-members/classes/class-bp-members-admin.php:302 msgid "User removed as spammer." msgstr "" -#: bp-members/bp-members-actions.php:91 +#: bp-members/bp-members-actions.php:95 msgid "%s has been deleted from the system." msgstr "" -#: bp-members/bp-members-actions.php:93 +#: bp-members/bp-members-actions.php:97 msgid "There was an error deleting %s from the system. Please try again." msgstr "" -#: bp-members/bp-members-activity.php:26 +#: bp-members/bp-members-activity.php:24 msgid "New member registered" msgstr "" -#: bp-members/bp-members-activity.php:28 +#: bp-members/bp-members-activity.php:26 msgid "New Members" msgstr "" -#: bp-members/bp-members-activity.php:52 +#: bp-members/bp-members-activity.php:50 msgid "%s became a registered member" msgstr "" @@ -4943,17 +5119,17 @@ msgid "Edit Member" msgstr "" #: bp-members/bp-members-adminbar.php:104 -#: bp-members/classes/class-bp-members-admin.php:381 -#: bp-members/classes/class-bp-members-admin.php:382 -#: bp-members/classes/class-bp-members-admin.php:419 -#: bp-members/classes/class-bp-members-admin.php:420 -#: bp-xprofile/bp-xprofile-template.php:1115 -#: bp-xprofile/bp-xprofile-template.php:1116 +#: bp-members/classes/class-bp-members-admin.php:379 +#: bp-members/classes/class-bp-members-admin.php:380 +#: bp-members/classes/class-bp-members-admin.php:416 +#: bp-members/classes/class-bp-members-admin.php:417 +#: bp-xprofile/bp-xprofile-template.php:1231 +#: bp-xprofile/bp-xprofile-template.php:1232 msgid "Edit Profile" msgstr "" #: bp-members/bp-members-adminbar.php:113 -#: bp-xprofile/classes/class-bp-xprofile-user-admin.php:468 +#: bp-xprofile/classes/class-bp-xprofile-user-admin.php:490 msgid "Edit Profile Photo" msgstr "" @@ -4968,497 +5144,491 @@ msgstr "" msgid "Delete Account" msgstr "" -#: bp-members/bp-members-functions.php:1178 +#: bp-members/bp-members-functions.php:1197 msgid "" "User last_activity data is no longer stored in usermeta. Use " "bp_get_user_last_activity() instead." msgstr "" -#: bp-members/bp-members-functions.php:1208 +#: bp-members/bp-members-functions.php:1227 msgid "" "User last_activity data is no longer stored in usermeta. Use " "bp_update_user_last_activity() instead." msgstr "" -#: bp-members/bp-members-functions.php:1417 -#: bp-members/bp-members-functions.php:2416 +#: bp-members/bp-members-functions.php:1442 +#: bp-members/bp-members-functions.php:2474 msgid "<strong>ERROR</strong>: Your account has been marked as a spammer." msgstr "" -#: bp-members/bp-members-functions.php:1625 +#: bp-members/bp-members-functions.php:1658 msgid "Please check your email address." msgstr "" -#: bp-members/bp-members-functions.php:1629 -#: bp-members/bp-members-functions.php:1633 +#: bp-members/bp-members-functions.php:1662 +#: bp-members/bp-members-functions.php:1666 msgid "Sorry, that email address is not allowed!" msgstr "" -#: bp-members/bp-members-functions.php:1637 +#: bp-members/bp-members-functions.php:1670 msgid "Sorry, that email address is already used!" msgstr "" -#: bp-members/bp-members-functions.php:1675 +#: bp-members/bp-members-functions.php:1710 msgid "Please enter a username" msgstr "" -#: bp-members/bp-members-functions.php:1681 +#: bp-members/bp-members-functions.php:1716 msgid "That username is not allowed" msgstr "" -#: bp-members/bp-members-functions.php:1686 +#: bp-members/bp-members-functions.php:1721 msgid "Usernames can contain only letters, numbers, ., -, and @" msgstr "" -#: bp-members/bp-members-functions.php:1691 +#: bp-members/bp-members-functions.php:1726 msgid "Username must be at least 4 characters" msgstr "" -#: bp-members/bp-members-functions.php:1696 +#: bp-members/bp-members-functions.php:1731 msgid "Sorry, usernames may not contain the character \"_\"!" msgstr "" -#: bp-members/bp-members-functions.php:1703 +#: bp-members/bp-members-functions.php:1738 msgid "Sorry, usernames must have letters too!" msgstr "" -#: bp-members/bp-members-functions.php:1715 +#: bp-members/bp-members-functions.php:1750 msgid "Sorry, that username already exists!" msgstr "" -#: bp-members/bp-members-functions.php:1921 -#: bp-members/bp-members-functions.php:1948 +#: bp-members/bp-members-functions.php:1964 +#: bp-members/bp-members-functions.php:1991 msgid "Invalid activation key." msgstr "" -#: bp-members/bp-members-functions.php:1928 +#: bp-members/bp-members-functions.php:1971 msgid "The user is already active." msgstr "" -#: bp-members/bp-members-functions.php:1930 +#: bp-members/bp-members-functions.php:1973 msgid "The site is already active." msgstr "" -#: bp-members/bp-members-functions.php:1963 +#: bp-members/bp-members-functions.php:2006 msgid "Could not create user" msgstr "" -#: bp-members/bp-members-functions.php:1977 +#: bp-members/bp-members-functions.php:2020 msgid "That username is already activated." msgstr "" -#: bp-members/bp-members-functions.php:2281 +#: bp-members/bp-members-functions.php:2337 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:2283 +#: bp-members/bp-members-functions.php:2339 msgid "" "<strong>ERROR</strong>: Your account has not been activated. Check your " "email for the activation link." msgstr "" -#: bp-members/bp-members-functions.php:2314 +#: bp-members/bp-members-functions.php:2370 msgid "<strong>ERROR</strong>: Your account has already been activated." msgstr "" -#: bp-members/bp-members-functions.php:2316 +#: bp-members/bp-members-functions.php:2372 msgid "Activation email resent! Please check your inbox or spam folder." msgstr "" -#: bp-members/bp-members-functions.php:2451 +#: bp-members/bp-members-functions.php:2534 msgid "Member type already exists." msgstr "" -#: bp-members/bp-members-functions.php:2474 +#: bp-members/bp-members-functions.php:2557 msgid "You may not register a member type with this name." msgstr "" -#: bp-members/bp-members-screens.php:124 +#: bp-members/bp-members-screens.php:132 msgid "Please make sure you enter your password twice" msgstr "" -#: bp-members/bp-members-screens.php:128 +#: bp-members/bp-members-screens.php:136 msgid "The passwords you entered do not match." msgstr "" -#: bp-members/bp-members-screens.php:151 +#: bp-members/bp-members-screens.php:159 msgid "This is a required field" msgstr "" -#: bp-members/bp-members-screens.php:362 +#: bp-members/bp-members-screens.php:372 msgid "Your account is now active!" msgstr "" -#: bp-members/bp-members-template.php:480 +#: bp-members/bp-members-template.php:486 msgid "Viewing 1 active member" msgstr "" -#: bp-members/bp-members-template.php:482 +#: bp-members/bp-members-template.php:488 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:486 +#: bp-members/bp-members-template.php:492 msgid "Viewing 1 member with friends" msgstr "" -#: bp-members/bp-members-template.php:488 +#: bp-members/bp-members-template.php:494 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:492 +#: bp-members/bp-members-template.php:498 msgid "Viewing 1 online member" msgstr "" -#: bp-members/bp-members-template.php:494 +#: bp-members/bp-members-template.php:500 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:1729 +#: bp-members/bp-members-template.php:1969 msgid "Viewing members of the type: %s" msgstr "" -#: bp-members/bp-members-template.php:2110 +#: bp-members/bp-members-template.php:2396 msgid "Your Profile Photo" msgstr "" -#: bp-members/bp-members-template.php:2213 +#: bp-members/bp-members-template.php:2503 msgid "Activity RSS Feed" msgstr "" -#: bp-members/classes/class-bp-core-members-widget.php:27 +#: bp-members/classes/class-bp-core-members-widget.php:29 msgid "A dynamic list of recently active, popular, and newest members" msgstr "" -#: bp-members/classes/class-bp-core-members-widget.php:148 +#: bp-members/classes/class-bp-core-members-widget.php:161 msgid "No one has signed up yet!" msgstr "" -#: bp-members/classes/class-bp-core-members-widget.php:209 -#: bp-members/classes/class-bp-core-recently-active-widget.php:143 -#: bp-members/classes/class-bp-core-whos-online-widget.php:143 +#: bp-members/classes/class-bp-core-members-widget.php:225 +#: bp-members/classes/class-bp-core-recently-active-widget.php:152 +#: bp-members/classes/class-bp-core-whos-online-widget.php:152 msgid "Max members to show:" msgstr "" -#: bp-members/classes/class-bp-core-members-widget.php:215 +#: bp-members/classes/class-bp-core-members-widget.php:231 msgid "Default members to show:" msgstr "" -#: bp-members/classes/class-bp-core-recently-active-widget.php:25 +#: bp-members/classes/class-bp-core-recently-active-widget.php:27 msgid "Profile photos of recently active members" msgstr "" -#: bp-members/classes/class-bp-core-recently-active-widget.php:95 +#: bp-members/classes/class-bp-core-recently-active-widget.php:100 msgid "There are no recently active members" msgstr "" -#: bp-members/classes/class-bp-core-recently-active-widget.php:163 +#: bp-members/classes/class-bp-core-recently-active-widget.php:171 msgid "Recently Active Members" msgstr "" -#: bp-members/classes/class-bp-core-whos-online-widget.php:25 +#: bp-members/classes/class-bp-core-whos-online-widget.php:27 msgid "Profile photos of online users" msgstr "" -#: bp-members/classes/class-bp-core-whos-online-widget.php:95 +#: bp-members/classes/class-bp-core-whos-online-widget.php:100 msgid "There are no users currently online" msgstr "" -#: bp-members/classes/class-bp-core-whos-online-widget.php:163 +#: bp-members/classes/class-bp-core-whos-online-widget.php:171 msgid "Who's Online" msgstr "" -#: bp-members/classes/class-bp-members-admin.php:297 +#: bp-members/classes/class-bp-members-admin.php:296 msgid "Profile photo was deleted." msgstr "" -#: bp-members/classes/class-bp-members-admin.php:315 +#: bp-members/classes/class-bp-members-admin.php:314 msgid "Profile updated." msgstr "" -#: bp-members/classes/class-bp-members-admin.php:327 +#: bp-members/classes/class-bp-members-admin.php:326 msgid "There was a problem deleting that profile photo. Please try again." msgstr "" -#: bp-members/classes/class-bp-members-admin.php:333 +#: bp-members/classes/class-bp-members-admin.php:332 msgid "User could not be removed as spammer." msgstr "" -#: bp-members/classes/class-bp-members-admin.php:339 +#: bp-members/classes/class-bp-members-admin.php:338 msgid "User could not be marked as spammer." msgstr "" -#: bp-members/classes/class-bp-members-admin.php:345 +#: bp-members/classes/class-bp-members-admin.php:344 msgid "An error occurred while trying to update the profile." msgstr "" -#: bp-members/classes/class-bp-members-admin.php:351 -#: bp-xprofile/bp-xprofile-screens.php:110 +#: bp-members/classes/class-bp-members-admin.php:350 +#: bp-xprofile/bp-xprofile-screens.php:111 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:357 -#: bp-xprofile/bp-xprofile-screens.php:176 +#: bp-members/classes/class-bp-members-admin.php:356 +#: bp-xprofile/bp-xprofile-screens.php:177 msgid "" "There was a problem updating some of your profile information. Please try " "again." msgstr "" -#: bp-members/classes/class-bp-members-admin.php:431 -#: bp-members/classes/class-bp-members-admin.php:432 +#: bp-members/classes/class-bp-members-admin.php:428 +#: bp-members/classes/class-bp-members-admin.php:429 msgid "Manage Signups" msgstr "" -#: bp-members/classes/class-bp-members-admin.php:652 -#: bp-members/classes/class-bp-members-admin.php:858 +#: bp-members/classes/class-bp-members-admin.php:649 +#: bp-members/classes/class-bp-members-admin.php:855 msgid "Profile" msgstr "" -#: bp-members/classes/class-bp-members-admin.php:656 +#: bp-members/classes/class-bp-members-admin.php:653 msgid "Extended Profile" msgstr "" -#: bp-members/classes/class-bp-members-admin.php:678 +#: bp-members/classes/class-bp-members-admin.php:675 msgid "You cannot edit the requested user." msgstr "" -#: bp-members/classes/class-bp-members-admin.php:720 +#: bp-members/classes/class-bp-members-admin.php:717 msgid "This is the admin view of a user's profile." msgstr "" -#: bp-members/classes/class-bp-members-admin.php:721 +#: bp-members/classes/class-bp-members-admin.php:718 msgid "" "In the main column, you can edit the fields of the user's extended " "profile." msgstr "" -#: bp-members/classes/class-bp-members-admin.php:722 +#: bp-members/classes/class-bp-members-admin.php:719 msgid "" "In the right-hand column, you can update the user's status, delete the " "user's avatar, and view recent statistics." msgstr "" -#: bp-members/classes/class-bp-members-admin.php:728 +#: bp-members/classes/class-bp-members-admin.php:725 msgid "" "<a " "href=\"https://codex.buddypress.org/administrator-guide/extended-profiles/\"" ">Managing Profiles</a>" msgstr "" -#: bp-members/classes/class-bp-members-admin.php:860 +#: bp-members/classes/class-bp-members-admin.php:857 msgid "Edit User" msgstr "" -#: bp-members/classes/class-bp-members-admin.php:882 +#: bp-members/classes/class-bp-members-admin.php:879 msgid "← Back to Users" msgstr "" #: bp-members/classes/class-bp-members-admin.php:937 -msgid "No user found with this ID. <a href=\"%s\">Go back and try again</a>." +msgid "No user found with this ID." msgstr "" -#: bp-members/classes/class-bp-members-admin.php:966 +#: bp-members/classes/class-bp-members-admin.php:970 msgid "User account has not yet been activated" msgstr "" -#: bp-members/classes/class-bp-members-admin.php:992 +#: bp-members/classes/class-bp-members-admin.php:996 msgid "Spammer" msgstr "" -#: bp-members/classes/class-bp-members-admin.php:1004 +#: bp-members/classes/class-bp-members-admin.php:1008 msgid "Registered on: %s" msgstr "" -#: bp-members/classes/class-bp-members-admin.php:1014 +#: bp-members/classes/class-bp-members-admin.php:1018 msgid "View Profile" msgstr "" -#: bp-members/classes/class-bp-members-admin.php:1015 +#: bp-members/classes/class-bp-members-admin.php:1019 msgid "Update Profile" msgstr "" -#: bp-members/classes/class-bp-members-admin.php:1034 -#: bp-xprofile/classes/class-bp-xprofile-user-admin.php:422 +#: bp-members/classes/class-bp-members-admin.php:1038 +#: bp-xprofile/classes/class-bp-xprofile-user-admin.php:444 msgid "" "%s has been marked as a spammer. All BuddyPress data associated with the " "user has been removed" msgstr "" -#: bp-members/classes/class-bp-members-admin.php:1065 +#: bp-members/classes/class-bp-members-admin.php:1069 msgid "Last active: %1$s" msgstr "" -#: bp-members/classes/class-bp-members-admin.php:1105 +#: bp-members/classes/class-bp-members-admin.php:1111 +#. translators: accessibility text msgid "Select member type" msgstr "" -#: bp-members/classes/class-bp-members-admin.php:1107 -#: bp-templates/bp-legacy/buddypress/forums/index.php:180 -#: bp-xprofile/classes/class-bp-xprofile-field-type-datebox.php:196 -#: bp-xprofile/classes/class-bp-xprofile-field-type-datebox.php:219 -#: bp-xprofile/classes/class-bp-xprofile-field-type-datebox.php:227 -#: bp-xprofile/classes/class-bp-xprofile-field-type-selectbox.php:104 -#. translators: no option picked in select box -msgid "----" -msgstr "" - -#: bp-members/classes/class-bp-members-admin.php:1184 +#: bp-members/classes/class-bp-members-admin.php:1194 msgid "Extended" msgstr "" -#: bp-members/classes/class-bp-members-admin.php:1428 +#: bp-members/classes/class-bp-members-admin.php:1440 msgid "This is the administration screen for pending accounts on your site." msgstr "" -#: bp-members/classes/class-bp-members-admin.php:1429 +#: bp-members/classes/class-bp-members-admin.php:1441 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:1430 +#: bp-members/classes/class-bp-members-admin.php:1442 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:1431 +#: bp-members/classes/class-bp-members-admin.php:1443 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:1438 +#: bp-members/classes/class-bp-members-admin.php:1450 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:1439 +#: bp-members/classes/class-bp-members-admin.php:1451 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:1440 +#: bp-members/classes/class-bp-members-admin.php:1452 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:1441 +#: bp-members/classes/class-bp-members-admin.php:1453 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:1442 +#: bp-members/classes/class-bp-members-admin.php:1454 msgid "Bulk actions allow you to perform these 3 actions for the selected rows." msgstr "" -#: bp-members/classes/class-bp-members-admin.php:1454 +#: bp-members/classes/class-bp-members-admin.php:1467 +#. translators: accessibility text msgid "Filter users list" msgstr "" -#: bp-members/classes/class-bp-members-admin.php:1455 +#: bp-members/classes/class-bp-members-admin.php:1469 +#. translators: accessibility text msgid "Pending users list navigation" msgstr "" -#: bp-members/classes/class-bp-members-admin.php:1456 +#: bp-members/classes/class-bp-members-admin.php:1471 +#. translators: accessibility text msgid "Pending users list" msgstr "" -#: bp-members/classes/class-bp-members-admin.php:1717 +#: bp-members/classes/class-bp-members-admin.php:1732 msgid "There was a problem sending the activation emails. Please try again." msgstr "" -#: bp-members/classes/class-bp-members-admin.php:1724 +#: bp-members/classes/class-bp-members-admin.php:1739 msgid "There was a problem activating accounts. Please try again." msgstr "" -#: bp-members/classes/class-bp-members-admin.php:1731 +#: bp-members/classes/class-bp-members-admin.php:1746 msgid "There was a problem deleting sign-ups. Please try again." msgstr "" -#: bp-members/classes/class-bp-members-admin.php:1853 +#: bp-members/classes/class-bp-members-admin.php:1868 msgid "Users" msgstr "" -#: bp-members/classes/class-bp-members-admin.php:1877 +#: bp-members/classes/class-bp-members-admin.php:1892 msgid "Search Pending Users" msgstr "" -#: bp-members/classes/class-bp-members-admin.php:1924 +#: bp-members/classes/class-bp-members-admin.php:1939 msgid "Delete Pending Accounts" msgstr "" -#: bp-members/classes/class-bp-members-admin.php:1926 +#: bp-members/classes/class-bp-members-admin.php:1941 msgid "You are about to delete the following account:" msgstr "" -#: bp-members/classes/class-bp-members-admin.php:1928 +#: bp-members/classes/class-bp-members-admin.php:1943 msgid "You are about to delete the following accounts:" msgstr "" -#: bp-members/classes/class-bp-members-admin.php:1933 +#: bp-members/classes/class-bp-members-admin.php:1948 msgid "Activate Pending Accounts" msgstr "" -#: bp-members/classes/class-bp-members-admin.php:1935 +#: bp-members/classes/class-bp-members-admin.php:1950 msgid "You are about to activate the following account:" msgstr "" -#: bp-members/classes/class-bp-members-admin.php:1937 +#: bp-members/classes/class-bp-members-admin.php:1952 msgid "You are about to activate the following accounts:" msgstr "" -#: bp-members/classes/class-bp-members-admin.php:1942 +#: bp-members/classes/class-bp-members-admin.php:1957 msgid "Resend Activation Emails" msgstr "" -#: bp-members/classes/class-bp-members-admin.php:1944 +#: bp-members/classes/class-bp-members-admin.php:1959 msgid "You are about to resend an activation email to the following account:" msgstr "" -#: bp-members/classes/class-bp-members-admin.php:1946 +#: bp-members/classes/class-bp-members-admin.php:1961 msgid "You are about to resend an activation email to the following accounts:" msgstr "" -#: bp-members/classes/class-bp-members-admin.php:1992 +#: bp-members/classes/class-bp-members-admin.php:2007 msgid "Last notified: %s" msgstr "" -#: bp-members/classes/class-bp-members-admin.php:1996 +#: bp-members/classes/class-bp-members-admin.php:2011 msgid "(less than 24 hours ago)" msgstr "" -#: bp-members/classes/class-bp-members-admin.php:2014 +#: bp-members/classes/class-bp-members-admin.php:2029 msgid "Confirm" msgstr "" -#: bp-members/classes/class-bp-members-component.php:110 +#: bp-members/classes/class-bp-members-component.php:117 msgid "Search Members..." msgstr "" -#: bp-members/classes/class-bp-members-component.php:287 +#: 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:313 +#: 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:306 +#: 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" @@ -5495,8 +5665,9 @@ msgstr "" msgid "Registration is disabled. %s" msgstr "" -#: bp-members/classes/class-bp-members-list-table.php:263 -#: bp-members/classes/class-bp-members-ms-list-table.php:256 +#: bp-members/classes/class-bp-members-list-table.php:265 +#: bp-members/classes/class-bp-members-ms-list-table.php:258 +#. translators: accessibility text msgid "Select user: %s" msgstr "" @@ -5508,9 +5679,9 @@ msgstr "" msgid "Account Activated" msgstr "" -#: bp-members/classes/class-bp-signup.php:580 -#: bp-members/classes/class-bp-signup.php:667 -#: bp-members/classes/class-bp-signup.php:744 +#: bp-members/classes/class-bp-signup.php:590 +#: bp-members/classes/class-bp-signup.php:677 +#: bp-members/classes/class-bp-signup.php:754 msgid "the sign-up has already been activated." msgstr "" @@ -5594,7 +5765,7 @@ msgstr "" #: bp-messages/bp-messages-actions.php:419 #: bp-messages/bp-messages-actions.php:465 -#: bp-templates/bp-legacy/buddypress-functions.php:1669 +#: bp-templates/bp-legacy/buddypress-functions.php:1642 msgid "Messages deleted." msgstr "" @@ -5636,13 +5807,13 @@ msgstr "" msgid "Message was not sent. Please try again." msgstr "" -#: bp-messages/bp-messages-notifications.php:107 -#: bp-messages/classes/class-bp-messages-component.php:167 -#: bp-messages/classes/class-bp-messages-component.php:243 +#: bp-messages/bp-messages-notifications.php:108 +#: bp-messages/classes/class-bp-messages-component.php:178 +#: bp-messages/classes/class-bp-messages-component.php:262 msgid "Inbox" msgstr "" -#: bp-messages/bp-messages-notifications.php:113 +#: bp-messages/bp-messages-notifications.php:114 msgid "You have %d new messages" msgstr "" @@ -5657,50 +5828,50 @@ msgstr[0] "" msgstr[1] "" #: bp-messages/bp-messages-screens.php:133 -#: bp-messages/classes/class-bp-messages-component.php:149 msgid "Messages <span class=\"%s\">%s</span>" msgstr "" -#: bp-messages/bp-messages-screens.php:206 -#: bp-messages/classes/class-bp-messages-component.php:151 -#: bp-messages/classes/class-bp-messages-component.php:242 +#: bp-messages/bp-messages-screens.php:209 +#: bp-messages/classes/class-bp-messages-component.php:162 +#: bp-messages/classes/class-bp-messages-component.php:261 msgid "Messages" msgstr "" -#: bp-messages/bp-messages-screens.php:215 +#: bp-messages/bp-messages-screens.php:218 msgid "A member sends you a new message" msgstr "" #: bp-messages/bp-messages-star.php:107 -#: bp-templates/bp-legacy/buddypress-functions.php:336 +#: bp-templates/bp-legacy/buddypress-functions.php:330 msgid "Unstar" msgstr "" #: bp-messages/bp-messages-star.php:108 -#: bp-templates/bp-legacy/buddypress/members/single/messages/messages-loop.php:71 -#: bp-templates/bp-legacy/buddypress-functions.php:337 +#: bp-templates/bp-legacy/buddypress/members/single/messages/messages-loop.php:76 +#: bp-templates/bp-legacy/buddypress-functions.php:331 +#. translators: accessibility text msgid "Star" msgstr "" #: bp-messages/bp-messages-star.php:109 -#: bp-messages/classes/class-bp-messages-component.php:178 -#: bp-messages/classes/class-bp-messages-component.php:268 -#: bp-templates/bp-legacy/buddypress-functions.php:338 +#: bp-messages/classes/class-bp-messages-component.php:189 +#: bp-messages/classes/class-bp-messages-component.php:287 +#: bp-templates/bp-legacy/buddypress-functions.php:332 msgid "Starred" msgstr "" #: bp-messages/bp-messages-star.php:110 -#: bp-templates/bp-legacy/buddypress-functions.php:339 +#: bp-templates/bp-legacy/buddypress-functions.php:333 msgid "Not starred" msgstr "" #: bp-messages/bp-messages-star.php:111 -#: bp-templates/bp-legacy/buddypress-functions.php:340 +#: bp-templates/bp-legacy/buddypress-functions.php:334 msgid "Remove all starred messages in this thread" msgstr "" #: bp-messages/bp-messages-star.php:112 -#: bp-templates/bp-legacy/buddypress-functions.php:341 +#: bp-templates/bp-legacy/buddypress-functions.php:335 msgid "Star the first message in this thread" msgstr "" @@ -5724,94 +5895,100 @@ msgstr "" msgid "Remove star" msgstr "" -#: bp-messages/bp-messages-template.php:580 +#: bp-messages/bp-messages-template.php:587 +#. translators: 1: total number, 2: accessibility text: number of unread +#. messages msgid "%d unread" msgid_plural "%d unread" msgstr[0] "" msgstr[1] "" -#: bp-messages/bp-messages-template.php:752 +#: bp-messages/bp-messages-template.php:761 msgid "Viewing 1 message" msgstr "" -#: bp-messages/bp-messages-template.php:754 +#: bp-messages/bp-messages-template.php:763 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:780 +#: bp-messages/bp-messages-template.php:791 +#. translators: accessibility text msgid "Search Messages" msgstr "" -#: bp-messages/bp-messages-template.php:923 +#: bp-messages/bp-messages-template.php:936 +#. translators: accessibility text msgid "Select:" msgstr "" -#: bp-messages/bp-messages-template.php:927 -#: bp-xprofile/classes/class-bp-xprofile-field-type-multiselectbox.php:186 -#: bp-xprofile/classes/class-bp-xprofile-field-type-selectbox.php:167 +#: bp-messages/bp-messages-template.php:939 +#: 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:940 +#: bp-messages/bp-messages-template.php:952 msgid "Delete Selected" msgstr "" -#: bp-messages/bp-messages-template.php:952 -#: bp-notifications/bp-notifications-template.php:927 +#: bp-messages/bp-messages-template.php:965 +#: bp-notifications/bp-notifications-template.php:1028 +#. translators: accessibility text msgid "Select Bulk Action" msgstr "" -#: bp-messages/bp-messages-template.php:954 -#: bp-notifications/bp-notifications-template.php:929 +#: bp-messages/bp-messages-template.php:968 +#: bp-notifications/bp-notifications-template.php:1031 msgid "Bulk Actions" msgstr "" -#: bp-messages/bp-messages-template.php:955 -#: bp-notifications/bp-notifications-template.php:932 +#: bp-messages/bp-messages-template.php:969 +#: bp-notifications/bp-notifications-template.php:1034 msgid "Mark read" msgstr "" -#: bp-messages/bp-messages-template.php:956 -#: bp-notifications/bp-notifications-template.php:934 +#: bp-messages/bp-messages-template.php:970 +#: bp-notifications/bp-notifications-template.php:1036 msgid "Mark unread" msgstr "" -#: bp-messages/bp-messages-template.php:967 -#: bp-notifications/bp-notifications-template.php:938 +#: bp-messages/bp-messages-template.php:981 +#: bp-notifications/bp-notifications-template.php:1040 msgid "Apply" msgstr "" -#: bp-messages/bp-messages-template.php:1021 +#: bp-messages/bp-messages-template.php:1033 msgid "Currently Active" msgstr "" -#: bp-messages/bp-messages-template.php:1193 +#: bp-messages/bp-messages-template.php:1205 msgid "Deactivate" msgstr "" -#: bp-messages/bp-messages-template.php:1260 +#: bp-messages/bp-messages-template.php:1271 #: bp-templates/bp-legacy/buddypress/members/register.php:194 #: bp-templates/bp-legacy/buddypress/members/single/profile/edit.php:72 -#: bp-templates/bp-legacy/buddypress-functions.php:298 -#: bp-xprofile/classes/class-bp-xprofile-user-admin.php:392 +#: bp-templates/bp-legacy/buddypress-functions.php:292 +#: bp-xprofile/classes/class-bp-xprofile-user-admin.php:414 msgid "Close" msgstr "" -#: bp-messages/bp-messages-template.php:1338 +#: bp-messages/bp-messages-template.php:1348 msgid "Send a private message to this user." msgstr "" -#: bp-messages/bp-messages-template.php:1339 +#: bp-messages/bp-messages-template.php:1349 msgid "Private Message" msgstr "" -#: bp-messages/bp-messages-template.php:1554 +#: bp-messages/bp-messages-template.php:1564 msgid "%s recipients" msgstr "" -#: bp-messages/bp-messages-template.php:1931 +#: bp-messages/bp-messages-template.php:1943 msgid "Sent %s" msgstr "" @@ -5819,37 +5996,40 @@ msgstr "" msgid "Private Messages" msgstr "" -#: bp-messages/classes/class-bp-messages-component.php:118 +#: bp-messages/classes/class-bp-messages-component.php:121 msgid "Search Messages..." msgstr "" -#: bp-messages/classes/class-bp-messages-component.php:189 -#: bp-messages/classes/class-bp-messages-component.php:278 -msgid "Sent" +#: bp-messages/classes/class-bp-messages-component.php:154 +#: bp-messages/classes/class-bp-messages-component.php:252 +#. translators: %s: Unread message count for the current user +msgid "Messages %s" msgstr "" -#: bp-messages/classes/class-bp-messages-component.php:199 -#: bp-messages/classes/class-bp-messages-component.php:287 -msgid "Compose" +#: bp-messages/classes/class-bp-messages-component.php:200 +#: bp-messages/classes/class-bp-messages-component.php:297 +msgid "Sent" msgstr "" #: bp-messages/classes/class-bp-messages-component.php:210 -msgid "Notices" +#: bp-messages/classes/class-bp-messages-component.php:306 +msgid "Compose" msgstr "" -#: bp-messages/classes/class-bp-messages-component.php:239 -msgid "Messages <span class=\"count\">%s</span>" +#: bp-messages/classes/class-bp-messages-component.php:221 +msgid "Notices" msgstr "" -#: bp-messages/classes/class-bp-messages-component.php:240 -msgid "Inbox <span class=\"count\">%s</span>" +#: bp-messages/classes/class-bp-messages-component.php:257 +#. translators: %s: Unread message count for the current user +msgid "Inbox %s" msgstr "" -#: bp-messages/classes/class-bp-messages-component.php:297 +#: bp-messages/classes/class-bp-messages-component.php:316 msgid "All Member Notices" msgstr "" -#: bp-messages/classes/class-bp-messages-component.php:316 +#: bp-messages/classes/class-bp-messages-component.php:335 msgid "My Messages" msgstr "" @@ -5906,38 +6086,43 @@ msgstr "" msgid "No new notifications" msgstr "" -#: bp-notifications/bp-notifications-template.php:421 +#: bp-notifications/bp-notifications-template.php:478 msgid "Date not found" msgstr "" -#: bp-notifications/bp-notifications-template.php:503 -#: bp-templates/bp-legacy/buddypress/members/single/messages/messages-loop.php:128 +#: bp-notifications/bp-notifications-template.php:562 +#: bp-templates/bp-legacy/buddypress/members/single/messages/messages-loop.php:137 msgid "Read" msgstr "" -#: bp-notifications/bp-notifications-template.php:842 +#: bp-notifications/bp-notifications-template.php:654 +#: bp-templates/bp-legacy/buddypress/members/single/messages/messages-loop.php:139 +msgid "Unread" +msgstr "" + +#: bp-notifications/bp-notifications-template.php:941 msgid "Viewing 1 notification" msgstr "" -#: bp-notifications/bp-notifications-template.php:844 +#: bp-notifications/bp-notifications-template.php:943 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:908 +#: bp-notifications/bp-notifications-template.php:1007 msgid "Newest First" msgstr "" -#: bp-notifications/bp-notifications-template.php:909 +#: bp-notifications/bp-notifications-template.php:1008 msgid "Oldest First" msgstr "" -#: bp-notifications/bp-notifications-template.php:913 +#: bp-notifications/bp-notifications-template.php:1012 msgid "Go" msgstr "" -#: bp-notifications/classes/class-bp-notifications-component.php:87 +#: bp-notifications/classes/class-bp-notifications-component.php:95 msgid "Search Notifications..." msgstr "" @@ -6009,10 +6194,14 @@ msgstr "" msgid "You have successfully dismissed your pending email change." msgstr "" -#: bp-settings/bp-settings-template.php:91 +#: bp-settings/bp-settings-template.php:89 +msgid "There is a pending change of your email address to %s." +msgstr "" + +#: bp-settings/bp-settings-template.php:94 msgid "" -"There is a pending change of your email address to %1$s.<br />Check your " -"email (%2$s) for the verification link. <a href=\"%3$s\">Cancel</a>" +"Check your email (%1$s) for the verification link, or <a " +"href=\"%2$s\">cancel the pending change</a>." msgstr "" #: bp-settings/classes/class-bp-settings-component.php:111 @@ -6053,24 +6242,25 @@ msgid "Mark as Favorite" msgstr "" #: bp-templates/bp-legacy/buddypress/activity/entry.php:75 -#: bp-templates/bp-legacy/buddypress-functions.php:301 -#: bp-templates/bp-legacy/buddypress-functions.php:1202 -#: bp-templates/bp-legacy/buddypress-functions.php:1220 +#: bp-templates/bp-legacy/buddypress-functions.php:295 +#: bp-templates/bp-legacy/buddypress-functions.php:1175 +#: bp-templates/bp-legacy/buddypress-functions.php:1193 msgid "Favorite" msgstr "" #: bp-templates/bp-legacy/buddypress/activity/entry.php:79 -#: bp-templates/bp-legacy/buddypress-functions.php:304 -#: bp-templates/bp-legacy/buddypress-functions.php:1200 -#: bp-templates/bp-legacy/buddypress-functions.php:1222 +#: bp-templates/bp-legacy/buddypress-functions.php:298 +#: bp-templates/bp-legacy/buddypress-functions.php:1173 +#: bp-templates/bp-legacy/buddypress-functions.php:1195 msgid "Remove Favorite" msgstr "" -#: bp-templates/bp-legacy/buddypress/activity/entry.php:123 +#: bp-templates/bp-legacy/buddypress/activity/entry.php:125 +#. translators: accessibility text msgid "Comment" msgstr "" -#: bp-templates/bp-legacy/buddypress/activity/entry.php:126 +#: bp-templates/bp-legacy/buddypress/activity/entry.php:129 msgid "Post" msgstr "" @@ -6147,16 +6337,18 @@ msgstr "" msgid "What's new, %s?" msgstr "" -#: bp-templates/bp-legacy/buddypress/activity/post-form.php:36 +#: bp-templates/bp-legacy/buddypress/activity/post-form.php:38 +#. translators: accessibility text msgid "Post what's new" msgstr "" -#: bp-templates/bp-legacy/buddypress/activity/post-form.php:44 +#: bp-templates/bp-legacy/buddypress/activity/post-form.php:47 msgid "Post Update" msgstr "" -#: bp-templates/bp-legacy/buddypress/activity/post-form.php:51 -#: bp-templates/bp-legacy/buddypress/activity/post-form.php:53 +#: bp-templates/bp-legacy/buddypress/activity/post-form.php:54 +#: bp-templates/bp-legacy/buddypress/activity/post-form.php:58 +#. translators: accessibility text msgid "Post in" msgstr "" @@ -6170,45 +6362,45 @@ 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:1116 -#: bp-xprofile/classes/class-bp-xprofile-group.php:710 +#: bp-xprofile/classes/class-bp-xprofile-field.php:1122 +#: bp-xprofile/classes/class-bp-xprofile-group.php:713 msgid "Save" msgstr "" #: bp-templates/bp-legacy/buddypress/assets/_attachments/avatars/crop.php:23 -#: bp-templates/bp-legacy/buddypress/groups/create.php:232 -#: bp-templates/bp-legacy/buddypress/groups/single/admin.php:206 -#: bp-templates/bp-legacy/buddypress/members/single/profile/change-avatar.php:57 +#: bp-templates/bp-legacy/buddypress/groups/create.php:235 +#: bp-templates/bp-legacy/buddypress/groups/single/admin.php:209 +#: bp-templates/bp-legacy/buddypress/members/single/profile/change-avatar.php:60 msgid "Crop Image" msgstr "" #: bp-templates/bp-legacy/buddypress/assets/_attachments/avatars/index.php:37 -#: bp-templates/bp-legacy/buddypress/members/single/profile/change-avatar.php:41 +#: bp-templates/bp-legacy/buddypress/members/single/profile/change-avatar.php:44 msgid "" "If you'd like to delete your current profile photo but not upload a new " "one, please use the delete profile photo button." msgstr "" #: bp-templates/bp-legacy/buddypress/assets/_attachments/avatars/index.php:38 -#: bp-templates/bp-legacy/buddypress/members/single/profile/change-avatar.php:42 -#: bp-xprofile/classes/class-bp-xprofile-user-admin.php:462 +#: bp-templates/bp-legacy/buddypress/members/single/profile/change-avatar.php:45 +#: bp-xprofile/classes/class-bp-xprofile-user-admin.php:484 msgid "Delete Profile Photo" msgstr "" #: bp-templates/bp-legacy/buddypress/assets/_attachments/avatars/index.php:38 -#: bp-templates/bp-legacy/buddypress/members/single/profile/change-avatar.php:42 +#: bp-templates/bp-legacy/buddypress/members/single/profile/change-avatar.php:45 msgid "Delete My Profile Photo" msgstr "" #: bp-templates/bp-legacy/buddypress/assets/_attachments/avatars/index.php:40 -#: bp-templates/bp-legacy/buddypress/groups/single/admin.php:178 +#: bp-templates/bp-legacy/buddypress/groups/single/admin.php:181 msgid "" "If you'd like to remove the existing group profile photo but not upload a " "new one, please use the delete group profile photo button." msgstr "" #: bp-templates/bp-legacy/buddypress/assets/_attachments/avatars/index.php:41 -#: bp-templates/bp-legacy/buddypress/groups/single/admin.php:180 +#: bp-templates/bp-legacy/buddypress/groups/single/admin.php:183 msgid "Delete Group Profile Photo" msgstr "" @@ -6249,7 +6441,9 @@ msgstr "" msgid "Drop your file here" msgstr "" -#: bp-templates/bp-legacy/buddypress/assets/_attachments/uploader.php:25 +#: bp-templates/bp-legacy/buddypress/assets/_attachments/uploader.php:27 +#: bp-templates/bp-legacy/buddypress/assets/_attachments/uploader.php:28 +#. translators: accessibility text msgid "Select your File" msgstr "" @@ -6458,74 +6652,75 @@ msgid "" "shown on the main group page, and in search results." msgstr "" -#: bp-templates/bp-legacy/buddypress/groups/create.php:203 -#: bp-templates/bp-legacy/buddypress/groups/single/admin.php:170 -#: bp-templates/bp-legacy/buddypress/members/single/profile/change-avatar.php:34 -msgid "Select an image" -msgstr "" - #: bp-templates/bp-legacy/buddypress/groups/create.php:205 #: bp-templates/bp-legacy/buddypress/groups/single/admin.php:172 #: bp-templates/bp-legacy/buddypress/members/single/profile/change-avatar.php:36 +#. translators: accessibility text +msgid "Select an image" +msgstr "" + +#: bp-templates/bp-legacy/buddypress/groups/create.php:208 +#: bp-templates/bp-legacy/buddypress/groups/single/admin.php:175 +#: bp-templates/bp-legacy/buddypress/members/single/profile/change-avatar.php:39 msgid "Upload Image" msgstr "" -#: bp-templates/bp-legacy/buddypress/groups/create.php:209 +#: bp-templates/bp-legacy/buddypress/groups/create.php:212 msgid "" "To skip the group profile photo upload process, hit the \"Next Step\" " "button." msgstr "" -#: bp-templates/bp-legacy/buddypress/groups/create.php:224 +#: bp-templates/bp-legacy/buddypress/groups/create.php:227 msgid "Crop Group Profile Photo" msgstr "" -#: bp-templates/bp-legacy/buddypress/groups/create.php:226 -#: bp-templates/bp-legacy/buddypress/groups/single/admin.php:200 -#: bp-templates/bp-legacy/buddypress/members/single/profile/change-avatar.php:51 -msgid "Profile photo to crop" -msgstr "" - #: bp-templates/bp-legacy/buddypress/groups/create.php:229 #: bp-templates/bp-legacy/buddypress/groups/single/admin.php:203 #: bp-templates/bp-legacy/buddypress/members/single/profile/change-avatar.php:54 +msgid "Profile photo to crop" +msgstr "" + +#: bp-templates/bp-legacy/buddypress/groups/create.php:232 +#: bp-templates/bp-legacy/buddypress/groups/single/admin.php:206 +#: bp-templates/bp-legacy/buddypress/members/single/profile/change-avatar.php:57 msgid "Profile photo preview" msgstr "" -#: bp-templates/bp-legacy/buddypress/groups/create.php:270 -#: bp-templates/bp-legacy/buddypress/groups/single/admin.php:234 +#: bp-templates/bp-legacy/buddypress/groups/create.php:273 +#: bp-templates/bp-legacy/buddypress/groups/single/admin.php:237 msgid "The Cover Image will be used to customize the header of your group." msgstr "" -#: bp-templates/bp-legacy/buddypress/groups/create.php:316 +#: bp-templates/bp-legacy/buddypress/groups/create.php:319 msgid "Select people to invite from your friends list." msgstr "" -#: bp-templates/bp-legacy/buddypress/groups/create.php:334 +#: bp-templates/bp-legacy/buddypress/groups/create.php:337 #: bp-templates/bp-legacy/buddypress/groups/single/invites-loop.php:74 -#: bp-templates/bp-legacy/buddypress-functions.php:1322 +#: bp-templates/bp-legacy/buddypress-functions.php:1295 msgid "Remove Invite" msgstr "" -#: bp-templates/bp-legacy/buddypress/groups/create.php:351 +#: bp-templates/bp-legacy/buddypress/groups/create.php:354 msgid "" "Once you have built up friend connections you will be able to invite others " "to your group." msgstr "" -#: bp-templates/bp-legacy/buddypress/groups/create.php:396 +#: bp-templates/bp-legacy/buddypress/groups/create.php:399 msgid "Back to Previous Step" msgstr "" -#: bp-templates/bp-legacy/buddypress/groups/create.php:403 +#: bp-templates/bp-legacy/buddypress/groups/create.php:406 msgid "Next Step" msgstr "" -#: bp-templates/bp-legacy/buddypress/groups/create.php:410 +#: bp-templates/bp-legacy/buddypress/groups/create.php:413 msgid "Create Group and Continue" msgstr "" -#: bp-templates/bp-legacy/buddypress/groups/create.php:417 +#: bp-templates/bp-legacy/buddypress/groups/create.php:420 msgid "Finish" msgstr "" @@ -6551,58 +6746,58 @@ msgstr "" msgid "Notify group members of these changes via email" msgstr "" -#: bp-templates/bp-legacy/buddypress/groups/single/admin.php:198 +#: bp-templates/bp-legacy/buddypress/groups/single/admin.php:201 msgid "Crop Profile Photo" msgstr "" -#: bp-templates/bp-legacy/buddypress/groups/single/admin.php:223 +#: bp-templates/bp-legacy/buddypress/groups/single/admin.php:226 #: bp-templates/bp-legacy/buddypress/members/single/profile/change-cover-image.php:11 msgid "Change Cover Image" msgstr "" -#: bp-templates/bp-legacy/buddypress/groups/single/admin.php:345 +#: bp-templates/bp-legacy/buddypress/groups/single/admin.php:348 msgid "(banned)" msgstr "" -#: bp-templates/bp-legacy/buddypress/groups/single/admin.php:351 +#: bp-templates/bp-legacy/buddypress/groups/single/admin.php:354 msgid "Unban this member" msgstr "" -#: bp-templates/bp-legacy/buddypress/groups/single/admin.php:351 +#: bp-templates/bp-legacy/buddypress/groups/single/admin.php:354 msgid "Remove Ban" msgstr "" -#: bp-templates/bp-legacy/buddypress/groups/single/admin.php:355 +#: bp-templates/bp-legacy/buddypress/groups/single/admin.php:358 msgid "Kick and ban this member" msgstr "" -#: bp-templates/bp-legacy/buddypress/groups/single/admin.php:355 +#: bp-templates/bp-legacy/buddypress/groups/single/admin.php:358 msgid "Kick & Ban" msgstr "" -#: bp-templates/bp-legacy/buddypress/groups/single/admin.php:356 +#: bp-templates/bp-legacy/buddypress/groups/single/admin.php:359 msgid "Promote to Mod" msgstr "" -#: bp-templates/bp-legacy/buddypress/groups/single/admin.php:361 +#: bp-templates/bp-legacy/buddypress/groups/single/admin.php:364 msgid "Remove this member" msgstr "" -#: bp-templates/bp-legacy/buddypress/groups/single/admin.php:361 +#: bp-templates/bp-legacy/buddypress/groups/single/admin.php:364 msgid "Remove from group" msgstr "" -#: bp-templates/bp-legacy/buddypress/groups/single/admin.php:382 +#: bp-templates/bp-legacy/buddypress/groups/single/admin.php:401 msgid "This group has no members." msgstr "" -#: bp-templates/bp-legacy/buddypress/groups/single/admin.php:453 +#: bp-templates/bp-legacy/buddypress/groups/single/admin.php:472 msgid "" "WARNING: Deleting this group will completely remove ALL content associated " "with it. There is no way back, please be careful with this option." msgstr "" -#: bp-templates/bp-legacy/buddypress/groups/single/admin.php:456 +#: bp-templates/bp-legacy/buddypress/groups/single/admin.php:475 msgid "I understand the consequences of deleting this group." msgstr "" @@ -6626,11 +6821,12 @@ msgstr "" msgid "Edit:" msgstr "" -#: bp-templates/bp-legacy/buddypress/groups/single/forum/edit.php:111 +#: bp-templates/bp-legacy/buddypress/groups/single/forum/edit.php:113 +#. translators: accessibility text msgid "Edit text" msgstr "" -#: bp-templates/bp-legacy/buddypress/groups/single/forum/edit.php:136 +#: bp-templates/bp-legacy/buddypress/groups/single/forum/edit.php:139 msgid "This topic does not exist." msgstr "" @@ -6658,11 +6854,11 @@ msgstr "" msgid "Add a reply:" msgstr "" -#: bp-templates/bp-legacy/buddypress/groups/single/forum/topic.php:193 +#: bp-templates/bp-legacy/buddypress/groups/single/forum/topic.php:196 msgid "Post Reply" msgstr "" -#: bp-templates/bp-legacy/buddypress/groups/single/forum/topic.php:211 +#: bp-templates/bp-legacy/buddypress/groups/single/forum/topic.php:214 msgid "This topic is closed, replies are no longer accepted." msgstr "" @@ -6694,19 +6890,19 @@ msgstr "" msgid "Send Request" msgstr "" -#: bp-templates/bp-legacy/buddypress/groups/single/requests-loop.php:48 +#: bp-templates/bp-legacy/buddypress/groups/single/requests-loop.php:57 #: bp-templates/bp-legacy/buddypress/members/single/friends/requests.php:57 #: bp-templates/bp-legacy/buddypress/members/single/groups/invites.php:45 msgid "Accept" msgstr "" -#: bp-templates/bp-legacy/buddypress/groups/single/requests-loop.php:50 +#: bp-templates/bp-legacy/buddypress/groups/single/requests-loop.php:59 #: bp-templates/bp-legacy/buddypress/members/single/friends/requests.php:58 #: bp-templates/bp-legacy/buddypress/members/single/groups/invites.php:46 msgid "Reject" msgstr "" -#: bp-templates/bp-legacy/buddypress/groups/single/requests-loop.php:86 +#: bp-templates/bp-legacy/buddypress/groups/single/requests-loop.php:95 msgid "There are no pending membership requests." msgstr "" @@ -6773,7 +6969,7 @@ msgstr "" #: bp-templates/bp-legacy/buddypress/members/register.php:110 #: bp-templates/bp-legacy/buddypress/members/register.php:270 #: bp-templates/bp-legacy/buddypress/members/register.php:286 -#: bp-xprofile/bp-xprofile-template.php:1294 +#: bp-xprofile/bp-xprofile-template.php:1433 msgid "(required)" msgstr "" @@ -6797,13 +6993,13 @@ msgstr "" #: bp-templates/bp-legacy/buddypress/members/register.php:201 #: 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:371 +#: bp-xprofile/classes/class-bp-xprofile-user-admin.php:393 msgid "This field can be seen by: %s" msgstr "" #: bp-templates/bp-legacy/buddypress/members/register.php:189 #: bp-templates/bp-legacy/buddypress/members/single/profile/edit.php:67 -#: bp-xprofile/classes/class-bp-xprofile-user-admin.php:387 +#: bp-xprofile/classes/class-bp-xprofile-user-admin.php:409 msgid "Who can see this field?" msgstr "" @@ -6857,7 +7053,7 @@ msgid "This is a notice to all users." msgstr "" #: bp-templates/bp-legacy/buddypress/members/single/messages/compose.php:33 -#: bp-templates/bp-legacy/buddypress/members/single/messages/messages-loop.php:56 +#: bp-templates/bp-legacy/buddypress/members/single/messages/messages-loop.php:59 msgid "Subject" msgstr "" @@ -6869,36 +7065,34 @@ msgstr "" msgid "Send Message" msgstr "" -#: bp-templates/bp-legacy/buddypress/members/single/messages/messages-loop.php:54 -#: bp-templates/bp-legacy/buddypress/members/single/notifications/notifications-loop.php:15 +#: bp-templates/bp-legacy/buddypress/members/single/messages/messages-loop.php:56 +#: bp-templates/bp-legacy/buddypress/members/single/notifications/notifications-loop.php:17 +#. translators: accessibility text msgid "Select all" msgstr "" -#: bp-templates/bp-legacy/buddypress/members/single/messages/messages-loop.php:55 +#: bp-templates/bp-legacy/buddypress/members/single/messages/messages-loop.php:58 msgid "From" msgstr "" -#: bp-templates/bp-legacy/buddypress/members/single/messages/messages-loop.php:84 +#: bp-templates/bp-legacy/buddypress/members/single/messages/messages-loop.php:92 +#. translators: accessibility text msgid "Select this message" msgstr "" -#: bp-templates/bp-legacy/buddypress/members/single/messages/messages-loop.php:90 +#: bp-templates/bp-legacy/buddypress/members/single/messages/messages-loop.php:99 msgid "From:" msgstr "" -#: bp-templates/bp-legacy/buddypress/members/single/messages/messages-loop.php:97 +#: bp-templates/bp-legacy/buddypress/members/single/messages/messages-loop.php:106 msgid "To:" msgstr "" -#: bp-templates/bp-legacy/buddypress/members/single/messages/messages-loop.php:104 +#: bp-templates/bp-legacy/buddypress/members/single/messages/messages-loop.php:113 msgid "View Message" msgstr "" -#: bp-templates/bp-legacy/buddypress/members/single/messages/messages-loop.php:130 -msgid "Unread" -msgstr "" - -#: bp-templates/bp-legacy/buddypress/members/single/messages/messages-loop.php:180 +#: bp-templates/bp-legacy/buddypress/members/single/messages/messages-loop.php:189 msgid "Sorry, no messages were found." msgstr "" @@ -6934,11 +7128,12 @@ msgstr "" msgid "Send a Reply" msgstr "" -#: bp-templates/bp-legacy/buddypress/members/single/messages/single.php:122 +#: bp-templates/bp-legacy/buddypress/members/single/messages/single.php:124 +#. translators: accessibility text msgid "Reply to Message" msgstr "" -#: bp-templates/bp-legacy/buddypress/members/single/messages/single.php:135 +#: bp-templates/bp-legacy/buddypress/members/single/messages/single.php:138 msgid "Send Reply" msgstr "" @@ -6958,15 +7153,16 @@ msgstr "" msgid "This member has no notifications." msgstr "" -#: bp-templates/bp-legacy/buddypress/members/single/notifications/notifications-loop.php:16 +#: bp-templates/bp-legacy/buddypress/members/single/notifications/notifications-loop.php:19 msgid "Notification" msgstr "" -#: bp-templates/bp-legacy/buddypress/members/single/notifications/notifications-loop.php:17 +#: bp-templates/bp-legacy/buddypress/members/single/notifications/notifications-loop.php:20 msgid "Date Received" msgstr "" -#: bp-templates/bp-legacy/buddypress/members/single/notifications/notifications-loop.php:28 +#: bp-templates/bp-legacy/buddypress/members/single/notifications/notifications-loop.php:33 +#. translators: accessibility text msgid "Select this notification" msgstr "" @@ -6988,11 +7184,11 @@ msgid "" "then click 'Upload Image' to proceed." msgstr "" -#: bp-templates/bp-legacy/buddypress/members/single/profile/change-avatar.php:49 +#: bp-templates/bp-legacy/buddypress/members/single/profile/change-avatar.php:52 msgid "Crop Your New Profile Photo" msgstr "" -#: bp-templates/bp-legacy/buddypress/members/single/profile/change-avatar.php:81 +#: bp-templates/bp-legacy/buddypress/members/single/profile/change-avatar.php:84 msgid "" "Your profile photo will be used on your profile and throughout the site. To " "change your profile photo, please create an account with <a " @@ -7009,7 +7205,7 @@ msgid "Editing '%s' Profile Group" msgstr "" #: bp-templates/bp-legacy/buddypress/members/single/profile/edit.php:62 -#: bp-xprofile/classes/class-bp-xprofile-user-admin.php:378 +#: bp-xprofile/classes/class-bp-xprofile-user-admin.php:400 msgid "Change" msgstr "" @@ -7063,8 +7259,9 @@ msgstr "" msgid "New Password" msgstr "" -#: bp-templates/bp-legacy/buddypress/members/single/settings/general.php:27 -#: bp-templates/bp-legacy/buddypress/members/single/settings/general.php:28 +#: bp-templates/bp-legacy/buddypress/members/single/settings/general.php:29 +#: bp-templates/bp-legacy/buddypress/members/single/settings/general.php:31 +#. translators: accessibility text msgid "Repeat New Password" msgstr "" @@ -7073,321 +7270,329 @@ msgid "Send an email notice when:" msgstr "" #: bp-templates/bp-legacy/buddypress/members/single/settings/profile.php:28 -#: bp-xprofile/classes/class-bp-xprofile-field.php:1390 +#: bp-xprofile/classes/class-bp-xprofile-field.php:1399 msgid "Visibility" msgstr "" -#: bp-templates/bp-legacy/buddypress-functions.php:62 +#: bp-templates/bp-legacy/buddypress-functions.php:60 msgid "BuddyPress Legacy" msgstr "" -#: bp-templates/bp-legacy/buddypress-functions.php:297 +#: bp-templates/bp-legacy/buddypress-functions.php:291 msgid "Accepted" msgstr "" -#: bp-templates/bp-legacy/buddypress-functions.php:299 +#: bp-templates/bp-legacy/buddypress-functions.php:293 msgid "comments" msgstr "" -#: bp-templates/bp-legacy/buddypress-functions.php:300 +#: bp-templates/bp-legacy/buddypress-functions.php:294 msgid "Are you sure you want to leave this group?" msgstr "" -#: bp-templates/bp-legacy/buddypress-functions.php:302 +#: bp-templates/bp-legacy/buddypress-functions.php:296 msgid "My Favorites" msgstr "" -#: bp-templates/bp-legacy/buddypress-functions.php:303 +#: bp-templates/bp-legacy/buddypress-functions.php:297 msgid "Rejected" msgstr "" -#: bp-templates/bp-legacy/buddypress-functions.php:305 +#: bp-templates/bp-legacy/buddypress-functions.php:299 msgid "Show all" msgstr "" -#: bp-templates/bp-legacy/buddypress-functions.php:306 +#: bp-templates/bp-legacy/buddypress-functions.php:300 msgid "Show all comments for this thread" msgstr "" -#: bp-templates/bp-legacy/buddypress-functions.php:307 +#: bp-templates/bp-legacy/buddypress-functions.php:301 msgid "Show all %d comments" msgstr "" -#: bp-templates/bp-legacy/buddypress-functions.php:308 +#: bp-templates/bp-legacy/buddypress-functions.php:302 msgid "" "Your profile has unsaved changes. If you leave the page, the changes will " "be lost." msgstr "" -#: bp-templates/bp-legacy/buddypress-functions.php:961 +#: bp-templates/bp-legacy/buddypress-functions.php:935 msgid "There was a problem posting your update. Please try again." msgstr "" -#: bp-templates/bp-legacy/buddypress-functions.php:1096 -#: bp-templates/bp-legacy/buddypress-functions.php:1134 +#: bp-templates/bp-legacy/buddypress-functions.php:1069 +#: bp-templates/bp-legacy/buddypress-functions.php:1107 msgid "There was a problem when deleting. Please try again." msgstr "" -#: bp-templates/bp-legacy/buddypress-functions.php:1326 +#: bp-templates/bp-legacy/buddypress-functions.php:1299 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:1382 +#: bp-templates/bp-legacy/buddypress-functions.php:1355 msgid " Friendship could not be requested." msgstr "" -#: bp-templates/bp-legacy/buddypress-functions.php:1394 +#: bp-templates/bp-legacy/buddypress-functions.php:1367 msgid "Friendship request could not be cancelled." msgstr "" -#: bp-templates/bp-legacy/buddypress-functions.php:1399 +#: bp-templates/bp-legacy/buddypress-functions.php:1372 msgid "Request Pending" msgstr "" -#: bp-templates/bp-legacy/buddypress-functions.php:1420 +#: bp-templates/bp-legacy/buddypress-functions.php:1393 msgid "There was a problem accepting that request. Please try again." msgstr "" -#: bp-templates/bp-legacy/buddypress-functions.php:1440 +#: bp-templates/bp-legacy/buddypress-functions.php:1413 msgid "There was a problem rejecting that request. Please try again." msgstr "" -#: bp-templates/bp-legacy/buddypress-functions.php:1471 +#: bp-templates/bp-legacy/buddypress-functions.php:1444 msgid "Error joining group" msgstr "" -#: bp-templates/bp-legacy/buddypress-functions.php:1484 -#: bp-templates/bp-legacy/buddypress-functions.php:1494 +#: bp-templates/bp-legacy/buddypress-functions.php:1457 +#: bp-templates/bp-legacy/buddypress-functions.php:1467 msgid "Error requesting membership" msgstr "" -#: bp-templates/bp-legacy/buddypress-functions.php:1505 +#: bp-templates/bp-legacy/buddypress-functions.php:1478 msgid "Error leaving group" msgstr "" -#: bp-templates/bp-legacy/buddypress-functions.php:1529 +#: bp-templates/bp-legacy/buddypress-functions.php:1502 msgid "There was a problem closing the notice." msgstr "" -#: bp-templates/bp-legacy/buddypress-functions.php:1592 +#: bp-templates/bp-legacy/buddypress-functions.php:1565 msgid "There was a problem sending that reply. Please try again." msgstr "" -#: bp-templates/bp-legacy/buddypress-functions.php:1611 +#: bp-templates/bp-legacy/buddypress-functions.php:1584 msgid "There was a problem marking messages as unread." msgstr "" -#: bp-templates/bp-legacy/buddypress-functions.php:1637 +#: bp-templates/bp-legacy/buddypress-functions.php:1610 msgid "There was a problem marking messages as read." msgstr "" -#: bp-templates/bp-legacy/buddypress-functions.php:1663 +#: bp-templates/bp-legacy/buddypress-functions.php:1636 msgid "There was a problem deleting messages." msgstr "" -#: bp-xprofile/bp-xprofile-activity.php:30 +#: bp-xprofile/bp-xprofile-activity.php:29 msgid "Member changed profile picture" msgstr "" -#: bp-xprofile/bp-xprofile-activity.php:32 +#: bp-xprofile/bp-xprofile-activity.php:31 msgid "Updated Profile Photos" msgstr "" -#: bp-xprofile/bp-xprofile-activity.php:38 +#: bp-xprofile/bp-xprofile-activity.php:37 msgid "Updated Profile" msgstr "" -#: bp-xprofile/bp-xprofile-activity.php:40 -#: bp-xprofile/bp-xprofile-activity.php:344 +#: bp-xprofile/bp-xprofile-activity.php:39 +#: bp-xprofile/bp-xprofile-activity.php:339 msgid "Profile Updates" msgstr "" -#: bp-xprofile/bp-xprofile-activity.php:64 +#: bp-xprofile/bp-xprofile-activity.php:63 msgid "%s changed their profile picture" msgstr "" -#: bp-xprofile/bp-xprofile-activity.php:98 +#: bp-xprofile/bp-xprofile-activity.php:97 msgid "%s's profile was updated" msgstr "" -#: bp-xprofile/bp-xprofile-admin.php:94 -#: bp-xprofile/classes/class-bp-xprofile-group.php:708 +#: bp-xprofile/bp-xprofile-admin.php:97 +#: bp-xprofile/classes/class-bp-xprofile-group.php:711 msgid "Add New Field Group" msgstr "" -#: bp-xprofile/bp-xprofile-admin.php:126 bp-xprofile/bp-xprofile-admin.php:556 +#: bp-xprofile/bp-xprofile-admin.php:129 bp-xprofile/bp-xprofile-admin.php:565 msgid "(Primary)" msgstr "" -#: bp-xprofile/bp-xprofile-admin.php:148 -#: bp-xprofile/classes/class-bp-xprofile-field.php:1114 +#: bp-xprofile/bp-xprofile-admin.php:151 +#: bp-xprofile/classes/class-bp-xprofile-field.php:1120 msgid "Add New Field" msgstr "" -#: bp-xprofile/bp-xprofile-admin.php:186 +#: bp-xprofile/bp-xprofile-admin.php:190 +#. translators: accessibility text msgid "Fields for \"%s\" Group" msgstr "" -#: bp-xprofile/bp-xprofile-admin.php:212 +#: bp-xprofile/bp-xprofile-admin.php:216 msgid "There are no fields in this group." msgstr "" -#: bp-xprofile/bp-xprofile-admin.php:220 +#: bp-xprofile/bp-xprofile-admin.php:224 msgid "* Fields in this group appear on the signup page." msgstr "" -#: bp-xprofile/bp-xprofile-admin.php:228 +#: bp-xprofile/bp-xprofile-admin.php:232 msgid "You have no groups." msgstr "" -#: bp-xprofile/bp-xprofile-admin.php:229 +#: bp-xprofile/bp-xprofile-admin.php:233 msgid "Add New Group" msgstr "" -#: bp-xprofile/bp-xprofile-admin.php:269 +#: bp-xprofile/bp-xprofile-admin.php:275 msgid "There was an error saving the group. Please try again." msgstr "" -#: bp-xprofile/bp-xprofile-admin.php:274 +#: bp-xprofile/bp-xprofile-admin.php:280 msgid "The group was saved successfully." msgstr "" -#: bp-xprofile/bp-xprofile-admin.php:380 +#: bp-xprofile/bp-xprofile-admin.php:390 msgid "There was an error saving the field. Please try again." msgstr "" -#: bp-xprofile/bp-xprofile-admin.php:383 +#: bp-xprofile/bp-xprofile-admin.php:393 msgid "The field was saved successfully." msgstr "" -#: bp-xprofile/bp-xprofile-admin.php:467 +#: bp-xprofile/bp-xprofile-admin.php:476 msgid "field" msgstr "" -#: bp-xprofile/bp-xprofile-admin.php:467 +#: bp-xprofile/bp-xprofile-admin.php:476 msgid "option" msgstr "" -#: bp-xprofile/bp-xprofile-admin.php:471 +#: bp-xprofile/bp-xprofile-admin.php:480 msgid "There was an error deleting the %s. Please try again." msgstr "" -#: bp-xprofile/bp-xprofile-admin.php:474 +#: bp-xprofile/bp-xprofile-admin.php:483 msgid "The %s was deleted successfully!" msgstr "" -#: bp-xprofile/bp-xprofile-admin.php:558 +#: bp-xprofile/bp-xprofile-admin.php:567 msgid "(Sign-up)" msgstr "" -#: bp-xprofile/bp-xprofile-screens.php:178 +#: bp-xprofile/bp-xprofile-screens.php:179 msgid "Changes saved." msgstr "" -#: bp-xprofile/bp-xprofile-settings.php:51 +#: bp-xprofile/bp-xprofile-settings.php:49 msgid "Your profile settings have been saved." msgstr "" -#: bp-xprofile/bp-xprofile-settings.php:55 +#: bp-xprofile/bp-xprofile-settings.php:53 msgid "This member's profile settings have been saved." msgstr "" -#: bp-xprofile/bp-xprofile-template.php:1017 +#: bp-xprofile/bp-xprofile-template.php:1124 msgid "Profile not recently updated." msgstr "" -#: bp-xprofile/bp-xprofile-template.php:1041 +#: bp-xprofile/bp-xprofile-template.php:1150 msgid "Profile updated %s" msgstr "" -#: bp-xprofile/bp-xprofile-template.php:1238 +#: bp-xprofile/bp-xprofile-template.php:1376 +#. translators: accessibility text msgid "Select visibility" msgstr "" -#: bp-xprofile/bp-xprofile-template.php:1251 +#: bp-xprofile/bp-xprofile-template.php:1390 msgid "This field's visibility cannot be changed." msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-field-type-datebox.php:102 -#: bp-xprofile/classes/class-bp-xprofile-field-type-datebox.php:277 +#: bp-xprofile/classes/class-bp-xprofile-field-type-datebox.php:106 +#: bp-xprofile/classes/class-bp-xprofile-field-type-datebox.php:292 +#. translators: accessibility text msgid "Select day" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-field-type-datebox.php:110 -#: bp-xprofile/classes/class-bp-xprofile-field-type-datebox.php:282 +#: bp-xprofile/classes/class-bp-xprofile-field-type-datebox.php:117 +#: bp-xprofile/classes/class-bp-xprofile-field-type-datebox.php:300 +#. translators: accessibility text msgid "Select month" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-field-type-datebox.php:118 -#: bp-xprofile/classes/class-bp-xprofile-field-type-datebox.php:287 +#: bp-xprofile/classes/class-bp-xprofile-field-type-datebox.php:128 +#: bp-xprofile/classes/class-bp-xprofile-field-type-datebox.php:308 +#. translators: accessibility text msgid "Select year" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-field-type-datebox.php:205 +#: bp-xprofile/classes/class-bp-xprofile-field-type-datebox.php:218 msgid "January" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-field-type-datebox.php:206 +#: bp-xprofile/classes/class-bp-xprofile-field-type-datebox.php:219 msgid "February" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-field-type-datebox.php:207 +#: bp-xprofile/classes/class-bp-xprofile-field-type-datebox.php:220 msgid "March" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-field-type-datebox.php:208 +#: bp-xprofile/classes/class-bp-xprofile-field-type-datebox.php:221 msgid "April" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-field-type-datebox.php:209 +#: bp-xprofile/classes/class-bp-xprofile-field-type-datebox.php:222 msgid "May" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-field-type-datebox.php:210 +#: bp-xprofile/classes/class-bp-xprofile-field-type-datebox.php:223 msgid "June" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-field-type-datebox.php:211 +#: bp-xprofile/classes/class-bp-xprofile-field-type-datebox.php:224 msgid "July" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-field-type-datebox.php:212 +#: bp-xprofile/classes/class-bp-xprofile-field-type-datebox.php:225 msgid "August" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-field-type-datebox.php:213 +#: bp-xprofile/classes/class-bp-xprofile-field-type-datebox.php:226 msgid "September" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-field-type-datebox.php:214 +#: bp-xprofile/classes/class-bp-xprofile-field-type-datebox.php:227 msgid "October" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-field-type-datebox.php:215 +#: bp-xprofile/classes/class-bp-xprofile-field-type-datebox.php:228 msgid "November" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-field-type-datebox.php:216 +#: bp-xprofile/classes/class-bp-xprofile-field-type-datebox.php:229 msgid "December" msgstr "" #: bp-xprofile/classes/class-bp-xprofile-field-type-multiselectbox.php:95 #: bp-xprofile/classes/class-bp-xprofile-field-type-radiobutton.php:85 -#: bp-xprofile/classes/class-bp-xprofile-field-type-radiobutton.php:177 +#: bp-xprofile/classes/class-bp-xprofile-field-type-radiobutton.php:180 msgid "Clear" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-field-type-number.php:97 +#: bp-xprofile/classes/class-bp-xprofile-field-type-number.php:99 +#. translators: accessibility text msgid "Number field" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-field-type-textbox.php:97 +#: bp-xprofile/classes/class-bp-xprofile-field-type-textbox.php:99 +#. translators: accessibility text msgid "Textbox" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-field-type-url.php:100 +#: bp-xprofile/classes/class-bp-xprofile-field-type-url.php:102 +#. translators: accessibility text msgid "URL" msgstr "" @@ -7411,141 +7616,144 @@ msgstr "" msgid "Descending" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-field-type.php:368 +#: bp-xprofile/classes/class-bp-xprofile-field-type.php:370 +#. translators: accessibility text msgid "Add an option" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-field-type.php:372 +#: bp-xprofile/classes/class-bp-xprofile-field-type.php:375 msgid "Default Value" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-field-type.php:389 +#: bp-xprofile/classes/class-bp-xprofile-field-type.php:392 msgid "Add Another Option" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-field.php:745 -#: bp-xprofile/classes/class-bp-xprofile-field.php:1361 +#: bp-xprofile/classes/class-bp-xprofile-field.php:748 +#: bp-xprofile/classes/class-bp-xprofile-field.php:1370 msgid "Users with no member type" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-field.php:748 +#: bp-xprofile/classes/class-bp-xprofile-field.php:751 msgid "(Member types: %s)" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-field.php:750 +#: bp-xprofile/classes/class-bp-xprofile-field.php:753 msgid "(Unavailable to all members)" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-field.php:1037 +#: bp-xprofile/classes/class-bp-xprofile-field.php:1043 msgid "Profile fields must have a name." msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-field.php:1043 +#: bp-xprofile/classes/class-bp-xprofile-field.php:1049 msgid "Profile field requirement is missing." msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-field.php:1049 +#: bp-xprofile/classes/class-bp-xprofile-field.php:1055 msgid "Profile field type is missing." msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-field.php:1055 +#: bp-xprofile/classes/class-bp-xprofile-field.php:1061 msgid "The profile field type %s is not registered." msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-field.php:1070 +#: bp-xprofile/classes/class-bp-xprofile-field.php:1076 msgid "These field options are invalid." msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-field.php:1081 #: bp-xprofile/classes/class-bp-xprofile-field.php:1087 +#: bp-xprofile/classes/class-bp-xprofile-field.php:1093 msgid "%s require at least one option." msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-field.php:1130 +#: bp-xprofile/classes/class-bp-xprofile-field.php:1136 msgid "Edit Field" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-field.php:1246 -#: bp-xprofile/classes/class-bp-xprofile-group.php:764 +#: bp-xprofile/classes/class-bp-xprofile-field.php:1252 +#: bp-xprofile/classes/class-bp-xprofile-group.php:782 msgid "Submit" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-field.php:1314 -#: bp-xprofile/classes/class-bp-xprofile-group.php:744 +#: bp-xprofile/classes/class-bp-xprofile-field.php:1322 +#: bp-xprofile/classes/class-bp-xprofile-group.php:749 +#. translators: accessibility text msgid "Add description" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-field.php:1344 +#: bp-xprofile/classes/class-bp-xprofile-field.php:1353 msgid "Member Types" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-field.php:1346 +#: bp-xprofile/classes/class-bp-xprofile-field.php:1355 msgid "This field should be available to:" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-field.php:1366 +#: bp-xprofile/classes/class-bp-xprofile-field.php:1375 msgid "Unavailable to all members." msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-field.php:1410 +#: bp-xprofile/classes/class-bp-xprofile-field.php:1419 msgid "Allow members to override" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-field.php:1414 +#: bp-xprofile/classes/class-bp-xprofile-field.php:1423 msgid "Enforce field visibility" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-field.php:1439 +#: bp-xprofile/classes/class-bp-xprofile-field.php:1448 msgid "Requirement" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-field.php:1442 +#: bp-xprofile/classes/class-bp-xprofile-field.php:1451 msgid "Not Required" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-field.php:1443 +#: bp-xprofile/classes/class-bp-xprofile-field.php:1452 msgid "Required" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-field.php:1468 +#: bp-xprofile/classes/class-bp-xprofile-field.php:1471 msgid "Autolink" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-field.php:1470 +#: bp-xprofile/classes/class-bp-xprofile-field.php:1473 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:1473 +#: bp-xprofile/classes/class-bp-xprofile-field.php:1478 +#. translators: accessibility text msgid "Autolink status for this field" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-field.php:1475 +#: bp-xprofile/classes/class-bp-xprofile-field.php:1481 msgid "Enabled" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-field.php:1476 +#: bp-xprofile/classes/class-bp-xprofile-field.php:1482 msgid "Disabled" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-field.php:1500 +#: bp-xprofile/classes/class-bp-xprofile-field.php:1506 msgid "Type" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-group.php:576 +#: bp-xprofile/classes/class-bp-xprofile-group.php:579 msgid "Please make sure you give the group a name." msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-group.php:714 +#: bp-xprofile/classes/class-bp-xprofile-group.php:717 msgid "Edit Field Group" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-group.php:737 +#: bp-xprofile/classes/class-bp-xprofile-group.php:740 msgid "Field Group Name" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-group.php:742 +#: bp-xprofile/classes/class-bp-xprofile-group.php:745 msgid "Field Group Description" msgstr "" @@ -7563,87 +7771,87 @@ msgstr "" msgid "The BuddyPress Community" msgstr "" -#: bp-activity/bp-activity-admin.php:34 +#: bp-activity/bp-activity-admin.php:36 msgctxt "Admin Dashbord SWA page title" msgid "Activity" msgstr "" -#: bp-activity/bp-activity-admin.php:35 +#: bp-activity/bp-activity-admin.php:37 msgctxt "Admin Dashbord SWA menu" msgid "Activity" msgstr "" -#: bp-activity/bp-activity-admin.php:249 +#: bp-activity/bp-activity-admin.php:251 msgctxt "activity admin edit screen" msgid "Status" msgstr "" -#: bp-activity/bp-activity-admin.php:250 +#: bp-activity/bp-activity-admin.php:252 msgctxt "activity admin edit screen" msgid "Primary Item/Secondary Item" msgstr "" -#: bp-activity/bp-activity-admin.php:251 +#: bp-activity/bp-activity-admin.php:253 msgctxt "activity admin edit screen" msgid "Link" msgstr "" -#: bp-activity/bp-activity-admin.php:252 +#: bp-activity/bp-activity-admin.php:254 msgctxt "activity admin edit screen" msgid "Type" msgstr "" -#: bp-activity/bp-activity-admin.php:253 +#: bp-activity/bp-activity-admin.php:255 msgctxt "activity admin edit screen" msgid "Author ID" msgstr "" -#: bp-activity/bp-activity-admin.php:273 +#: bp-activity/bp-activity-admin.php:275 msgctxt "Activity items per page (screen options)" msgid "Activity" msgstr "" -#: bp-activity/bp-activity-admin.php:990 +#: bp-activity/bp-activity-admin.php:1016 msgctxt "Admin SWA page" msgid "Activity" msgstr "" -#: bp-activity/bp-activity-functions.php:517 +#: bp-activity/bp-activity-functions.php:507 msgctxt "Post Type generic activity post admin filter" msgid "New item published" msgstr "" -#: bp-activity/bp-activity-functions.php:550 +#: bp-activity/bp-activity-functions.php:540 msgctxt "Post Type generic comments activity admin filter" msgid "New item comment posted" msgstr "" -#: bp-activity/bp-activity-functions.php:561 +#: bp-activity/bp-activity-functions.php:551 msgctxt "Post Type generic comments activity front filter" msgid "Item comments" msgstr "" -#: bp-activity/bp-activity-functions.php:1581 +#: bp-activity/bp-activity-functions.php:1535 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:1587 +#: bp-activity/bp-activity-functions.php:1541 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:1632 +#: bp-activity/bp-activity-functions.php:1586 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:1638 +#: bp-activity/bp-activity-functions.php:1592 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:115 +#: bp-activity/classes/class-bp-activity-component.php:125 msgctxt "component directory title" msgid "Site-Wide Activity" msgstr "" @@ -7653,82 +7861,83 @@ msgctxt "component directory title" msgid "Sites" msgstr "" -#: bp-core/bp-core-template.php:3062 +#: bp-core/bp-core-template.php:3121 msgctxt "component directory title" msgid "Directory" msgstr "" -#: bp-groups/classes/class-bp-groups-component.php:164 +#: bp-groups/classes/class-bp-groups-component.php:177 msgctxt "component directory title" msgid "Groups" msgstr "" -#: bp-members/classes/class-bp-members-component.php:109 +#: bp-members/classes/class-bp-members-component.php:116 msgctxt "component directory title" msgid "Members" msgstr "" -#: bp-activity/classes/class-bp-activity-component.php:160 +#: bp-activity/classes/class-bp-activity-component.php:166 msgctxt "Profile activity screen nav" msgid "Activity" msgstr "" -#: bp-activity/classes/class-bp-activity-component.php:170 +#: bp-activity/classes/class-bp-activity-component.php:176 msgctxt "Profile activity screen sub nav" msgid "Personal" msgstr "" -#: bp-activity/classes/class-bp-activity-component.php:181 +#: bp-activity/classes/class-bp-activity-component.php:187 msgctxt "Profile activity screen sub nav" msgid "Mentions" msgstr "" -#: bp-activity/classes/class-bp-activity-component.php:194 +#: bp-activity/classes/class-bp-activity-component.php:200 msgctxt "Profile activity screen sub nav" msgid "Favorites" msgstr "" -#: bp-activity/classes/class-bp-activity-component.php:207 +#: bp-activity/classes/class-bp-activity-component.php:213 msgctxt "Profile activity screen sub nav" msgid "Friends" msgstr "" -#: bp-activity/classes/class-bp-activity-component.php:220 +#: bp-activity/classes/class-bp-activity-component.php:226 msgctxt "Profile activity screen sub nav" msgid "Groups" msgstr "" -#: bp-activity/classes/class-bp-activity-component.php:263 +#: bp-activity/classes/class-bp-activity-component.php:264 +#. translators: %s: Unread mention count for the current user msgctxt "Toolbar Mention logged in user" -msgid "Mentions <span class=\"count\">%s</span>" +msgid "Mentions %s" msgstr "" -#: bp-activity/classes/class-bp-activity-component.php:265 +#: bp-activity/classes/class-bp-activity-component.php:268 msgctxt "Toolbar Mention logged in user" msgid "Mentions" msgstr "" -#: bp-activity/classes/class-bp-activity-component.php:273 +#: bp-activity/classes/class-bp-activity-component.php:276 msgctxt "My Account Activity sub nav" msgid "Activity" msgstr "" -#: bp-activity/classes/class-bp-activity-component.php:281 +#: bp-activity/classes/class-bp-activity-component.php:284 msgctxt "My Account Activity sub nav" msgid "Personal" msgstr "" -#: bp-activity/classes/class-bp-activity-component.php:302 +#: bp-activity/classes/class-bp-activity-component.php:305 msgctxt "My Account Activity sub nav" msgid "Favorites" msgstr "" -#: bp-activity/classes/class-bp-activity-component.php:313 +#: bp-activity/classes/class-bp-activity-component.php:316 msgctxt "My Account Activity sub nav" msgid "Friends" msgstr "" -#: bp-activity/classes/class-bp-activity-component.php:324 +#: bp-activity/classes/class-bp-activity-component.php:327 msgctxt "My Account Activity sub nav" msgid "Groups" msgstr "" @@ -7738,22 +7947,22 @@ msgctxt "Page and <title>" msgid "My Activity" msgstr "" -#: bp-activity/classes/class-bp-activity-list-table.php:370 +#: bp-activity/classes/class-bp-activity-list-table.php:376 msgctxt "Admin SWA column header" msgid "Author" msgstr "" -#: bp-activity/classes/class-bp-activity-list-table.php:371 +#: bp-activity/classes/class-bp-activity-list-table.php:377 msgctxt "Admin SWA column header" msgid "Activity" msgstr "" -#: bp-activity/classes/class-bp-activity-list-table.php:372 +#: bp-activity/classes/class-bp-activity-list-table.php:378 msgctxt "Admin SWA column header" msgid "Action" msgstr "" -#: bp-activity/classes/class-bp-activity-list-table.php:373 +#: bp-activity/classes/class-bp-activity-list-table.php:379 msgctxt "Admin SWA column header" msgid "In Response To" msgstr "" @@ -7773,37 +7982,37 @@ msgctxt "x hours ago - akismet cleared this item" msgid "%1$s — %2$s" msgstr "" -#: bp-blogs/classes/class-bp-blogs-recent-posts-widget.php:26 +#: bp-blogs/classes/class-bp-blogs-recent-posts-widget.php:27 msgctxt "widget name" msgid "(BuddyPress) Recent Networkwide Posts" msgstr "" -#: bp-friends/classes/class-bp-core-friends-widget.php:30 +#: bp-friends/classes/class-bp-core-friends-widget.php:31 msgctxt "widget name" msgid "(BuddyPress) Friends" msgstr "" -#: bp-groups/classes/class-bp-groups-widget.php:30 +#: bp-groups/classes/class-bp-groups-widget.php:31 msgctxt "widget name" msgid "(BuddyPress) Groups" msgstr "" -#: bp-members/classes/class-bp-core-members-widget.php:26 +#: bp-members/classes/class-bp-core-members-widget.php:28 msgctxt "widget name" msgid "(BuddyPress) Members" msgstr "" -#: bp-members/classes/class-bp-core-recently-active-widget.php:24 +#: bp-members/classes/class-bp-core-recently-active-widget.php:26 msgctxt "widget name" msgid "(BuddyPress) Recently Active Members" msgstr "" -#: bp-members/classes/class-bp-core-whos-online-widget.php:24 +#: bp-members/classes/class-bp-core-whos-online-widget.php:26 msgctxt "widget name" msgid "(BuddyPress) Who's Online" msgstr "" -#: bp-blogs/classes/class-bp-blogs-recent-posts-widget.php:158 +#: bp-blogs/classes/class-bp-blogs-recent-posts-widget.php:159 msgctxt "Label for the Title field of the Recent Networkwide Posts widget" msgid "Title:" msgstr "" @@ -7818,29 +8027,29 @@ msgctxt "Blog pagination next text" msgid "→" msgstr "" -#: bp-core/admin/bp-core-admin-components.php:156 +#: bp-core/admin/bp-core-admin-components.php:158 msgctxt "plugins" msgid "All <span class=\"count\">(%s)</span>" msgid_plural "All <span class=\"count\">(%s)</span>" msgstr[0] "" msgstr[1] "" -#: bp-core/admin/bp-core-admin-schema.php:351 +#: bp-core/admin/bp-core-admin-schema.php:333 msgctxt "First field-group name" msgid "General" msgstr "" -#: bp-core/admin/bp-core-admin-schema.php:355 +#: bp-core/admin/bp-core-admin-schema.php:337 msgctxt "Display name field" msgid "Display Name" msgstr "" -#: bp-core/admin/bp-core-admin-tools.php:416 +#: bp-core/admin/bp-core-admin-tools.php:419 msgctxt "buddypress tools intro" msgid "Use the %s to repair these relationships." msgstr "" -#: bp-core/bp-core-customizer-email.php:34 bp-core/bp-core-filters.php:1115 +#: bp-core/bp-core-customizer-email.php:34 bp-core/bp-core-filters.php:1109 msgctxt "screen heading" msgid "BuddyPress Emails" msgstr "" @@ -7851,22 +8060,22 @@ msgctxt "screen heading" msgid "Emails" msgstr "" -#: bp-core/bp-core-customizer-email.php:145 +#: bp-core/bp-core-customizer-email.php:147 msgctxt "email" msgid "Header" msgstr "" -#: bp-core/bp-core-customizer-email.php:150 +#: bp-core/bp-core-customizer-email.php:152 msgctxt "email" msgid "Body" msgstr "" -#: bp-core/bp-core-customizer-email.php:155 +#: bp-core/bp-core-customizer-email.php:157 msgctxt "email" msgid "Footer" msgstr "" -#: bp-core/bp-core-functions.php:3046 +#: bp-core/bp-core-functions.php:3146 #. translators: email disclaimer, e.g. "© 2016 Site Name". msgctxt "email" msgid "© %s %s" @@ -7877,247 +8086,257 @@ msgctxt "email" msgid "unsubscribe" msgstr "" -#: bp-core/bp-core-filters.php:782 +#: bp-core/bp-core-filters.php:776 msgctxt "customizer menu type label" msgid "Custom Link" msgstr "" -#: bp-core/bp-core-filters.php:803 +#: bp-core/bp-core-filters.php:797 msgctxt "customizer menu section title" msgid "BuddyPress (logged-in)" msgstr "" -#: bp-core/bp-core-filters.php:808 +#: bp-core/bp-core-filters.php:802 msgctxt "customizer menu section title" msgid "BuddyPress (logged-out)" msgstr "" -#: bp-core/bp-core-functions.php:617 +#: bp-core/bp-core-functions.php:634 msgctxt "Page title for the Activity directory." msgid "Activity" msgstr "" -#: bp-core/bp-core-functions.php:618 +#: bp-core/bp-core-functions.php:635 msgctxt "Page title for the Groups directory." msgid "Groups" msgstr "" -#: bp-core/bp-core-functions.php:619 +#: bp-core/bp-core-functions.php:636 msgctxt "Page title for the Sites directory." msgid "Sites" msgstr "" -#: bp-core/bp-core-functions.php:620 +#: bp-core/bp-core-functions.php:637 msgctxt "Page title for the Members directory." msgid "Members" msgstr "" -#: bp-core/bp-core-functions.php:621 +#: bp-core/bp-core-functions.php:638 msgctxt "Page title for the user activation screen." msgid "Activate" msgstr "" -#: bp-core/bp-core-functions.php:622 +#: bp-core/bp-core-functions.php:639 msgctxt "Page title for the user registration screen." msgid "Register" msgstr "" -#: bp-core/bp-core-functions.php:1203 +#: bp-core/bp-core-functions.php:1213 msgctxt "Separator in time since" msgid "," msgstr "" -#: bp-core/bp-core-functions.php:2673 +#: bp-core/bp-core-functions.php:2773 msgctxt "email post type label" msgid "Add New" msgstr "" -#: bp-core/bp-core-functions.php:2674 +#: bp-core/bp-core-functions.php:2774 msgctxt "email post type label" msgid "Add a New Email" msgstr "" -#: bp-core/bp-core-functions.php:2675 +#: bp-core/bp-core-functions.php:2775 msgctxt "email post type label" msgid "All Emails" msgstr "" -#: bp-core/bp-core-functions.php:2676 +#: bp-core/bp-core-functions.php:2776 msgctxt "email post type label" msgid "Edit Email" msgstr "" -#: bp-core/bp-core-functions.php:2677 +#: bp-core/bp-core-functions.php:2777 msgctxt "email post type label" msgid "Filter email list" msgstr "" -#: bp-core/bp-core-functions.php:2678 +#: bp-core/bp-core-functions.php:2778 msgctxt "email post type label" msgid "Email list" msgstr "" -#: bp-core/bp-core-functions.php:2679 +#: bp-core/bp-core-functions.php:2779 msgctxt "email post type label" msgid "Email list navigation" msgstr "" -#: bp-core/bp-core-functions.php:2681 +#: bp-core/bp-core-functions.php:2781 msgctxt "email post type label" msgid "BuddyPress Emails" msgstr "" -#: bp-core/bp-core-functions.php:2682 +#: bp-core/bp-core-functions.php:2782 msgctxt "email post type label" msgid "New Email" msgstr "" -#: bp-core/bp-core-functions.php:2683 +#: bp-core/bp-core-functions.php:2783 msgctxt "email post type label" msgid "No emails found" msgstr "" -#: bp-core/bp-core-functions.php:2684 +#: bp-core/bp-core-functions.php:2784 msgctxt "email post type label" msgid "No emails found in Trash" msgstr "" -#: bp-core/bp-core-functions.php:2685 +#: bp-core/bp-core-functions.php:2785 msgctxt "email post type label" msgid "Search Emails" msgstr "" -#: bp-core/bp-core-functions.php:2687 +#: bp-core/bp-core-functions.php:2787 msgctxt "email post type label" msgid "Uploaded to this email" msgstr "" -#: bp-core/bp-core-functions.php:2688 +#: bp-core/bp-core-functions.php:2788 msgctxt "email post type label" msgid "View Email" msgstr "" -#: bp-core/bp-core-functions.php:2680 +#: bp-core/bp-core-functions.php:2780 msgctxt "email post type name" msgid "Emails" msgstr "" -#: bp-core/bp-core-functions.php:2686 +#: bp-core/bp-core-functions.php:2786 msgctxt "email post type singular name" msgid "Email" msgstr "" -#: bp-core/bp-core-functions.php:2764 +#: bp-core/bp-core-functions.php:2864 msgctxt "email type taxonomy label" msgid "New Email Situation" msgstr "" -#: bp-core/bp-core-functions.php:2765 +#: bp-core/bp-core-functions.php:2865 msgctxt "email type taxonomy label" msgid "All Email Situations" msgstr "" -#: bp-core/bp-core-functions.php:2766 +#: bp-core/bp-core-functions.php:2866 msgctxt "email type taxonomy label" msgid "Edit Email Situations" msgstr "" -#: bp-core/bp-core-functions.php:2767 +#: bp-core/bp-core-functions.php:2867 msgctxt "email type taxonomy label" msgid "Email list" msgstr "" -#: bp-core/bp-core-functions.php:2768 +#: bp-core/bp-core-functions.php:2868 msgctxt "email type taxonomy label" msgid "Email list navigation" msgstr "" -#: bp-core/bp-core-functions.php:2769 +#: bp-core/bp-core-functions.php:2869 msgctxt "email type taxonomy label" msgid "Situations" msgstr "" -#: bp-core/bp-core-functions.php:2771 +#: bp-core/bp-core-functions.php:2871 msgctxt "email type taxonomy label" msgid "New email situation name" msgstr "" -#: bp-core/bp-core-functions.php:2772 +#: bp-core/bp-core-functions.php:2872 msgctxt "email type taxonomy label" msgid "No email situations found." msgstr "" -#: bp-core/bp-core-functions.php:2773 +#: bp-core/bp-core-functions.php:2873 msgctxt "email type taxonomy label" msgid "No email situations" msgstr "" -#: bp-core/bp-core-functions.php:2774 +#: bp-core/bp-core-functions.php:2874 msgctxt "email type taxonomy label" msgid "Popular Email Situation" msgstr "" -#: bp-core/bp-core-functions.php:2775 +#: bp-core/bp-core-functions.php:2875 msgctxt "email type taxonomy label" msgid "Search Emails" msgstr "" -#: bp-core/bp-core-functions.php:2777 +#: bp-core/bp-core-functions.php:2877 msgctxt "email type taxonomy label" msgid "Update Email Situation" msgstr "" -#: bp-core/bp-core-functions.php:2778 +#: bp-core/bp-core-functions.php:2878 msgctxt "email type taxonomy label" msgid "View Email Situation" msgstr "" -#: bp-core/bp-core-functions.php:2770 +#: bp-core/bp-core-functions.php:2870 msgctxt "email type taxonomy name" msgid "Situation" msgstr "" -#: bp-core/bp-core-functions.php:2776 +#: bp-core/bp-core-functions.php:2876 msgctxt "email type taxonomy singular name" msgid "Email" msgstr "" +#: bp-core/bp-core-moderation.php:176 +msgctxt "Comment moderation" +msgid "You have posted an inappropriate word." +msgstr "" + +#: bp-core/bp-core-moderation.php:289 +msgctxt "Comment blacklist" +msgid "You have posted an inappropriate word." +msgstr "" + #: bp-core/bp-core-taxonomy.php:33 msgctxt "email type taxonomy description" msgid "BuddyPress email types" msgstr "" -#: bp-core/bp-core-template.php:528 +#: bp-core/bp-core-template.php:542 msgctxt "search form" msgid "Members" msgstr "" -#: bp-core/bp-core-template.php:532 +#: bp-core/bp-core-template.php:546 msgctxt "search form" msgid "Groups" msgstr "" -#: bp-core/bp-core-template.php:536 +#: bp-core/bp-core-template.php:550 msgctxt "search form" msgid "Blogs" msgstr "" -#: bp-core/bp-core-template.php:540 +#: bp-core/bp-core-template.php:554 msgctxt "search form" msgid "Forums" msgstr "" -#: bp-core/bp-core-template.php:543 +#: bp-core/bp-core-template.php:557 msgctxt "search form" msgid "Posts" msgstr "" -#: bp-core/bp-core-template.php:546 +#: bp-core/bp-core-template.php:560 msgctxt "search form" msgid "Search these:" msgstr "" -#: bp-core/bp-core-template.php:3717 +#: bp-core/bp-core-template.php:3755 msgctxt "recipient salutation" msgid "Hi %s," msgstr "" @@ -8128,57 +8347,62 @@ msgctxt "email menu label" msgid "Customize" msgstr "" -#: bp-core/classes/class-bp-admin.php:407 +#: bp-core/classes/class-bp-admin.php:404 msgctxt "BuddyPress setting tab" msgid "Profile Settings" msgstr "" -#: bp-core/classes/class-bp-admin.php:682 +#: bp-core/classes/class-bp-admin.php:697 msgctxt "About screen, website links" msgid "Learn more:" msgstr "" -#: bp-core/classes/class-bp-admin.php:682 +#: bp-core/classes/class-bp-admin.php:697 msgctxt "About screen, link to project blog" msgid "News" msgstr "" -#: bp-core/classes/class-bp-admin.php:682 +#: bp-core/classes/class-bp-admin.php:697 msgctxt "About screen, link to support site" msgid "Support" msgstr "" -#: bp-core/classes/class-bp-admin.php:682 +#: bp-core/classes/class-bp-admin.php:697 msgctxt "About screen, link to documentation" msgid "Documentation" msgstr "" -#: bp-core/classes/class-bp-admin.php:682 +#: bp-core/classes/class-bp-admin.php:697 msgctxt "About screen, link to development blog" msgid "Development Blog" msgstr "" -#: bp-core/classes/class-bp-admin.php:684 +#: bp-core/classes/class-bp-admin.php:699 msgctxt "official Twitter accounts:" msgid "Twitter:" msgstr "" -#: bp-core/classes/class-bp-admin.php:684 +#: bp-core/classes/class-bp-admin.php:699 msgctxt "@buddypress twitter account name" msgid "BuddyPress" msgstr "" -#: bp-core/classes/class-bp-admin.php:684 +#: bp-core/classes/class-bp-admin.php:699 msgctxt "@bptrac twitter account name" msgid "Trac" msgstr "" -#: bp-core/classes/class-bp-admin.php:684 +#: bp-core/classes/class-bp-admin.php:699 msgctxt "@buddypressdev twitter account name" msgid "Development" msgstr "" -#: bp-core/classes/class-bp-attachment-avatar.php:58 +#: bp-core/classes/class-bp-admin.php:947 +msgctxt "Email post type" +msgid "Situations" +msgstr "" + +#: bp-core/classes/class-bp-attachment-avatar.php:56 msgctxt "avatar types separator" msgid "," msgstr "" @@ -8188,12 +8412,12 @@ msgctxt "cover image types separator" msgid "," msgstr "" -#: bp-core/classes/class-bp-attachment.php:473 +#: bp-core/classes/class-bp-attachment.php:459 msgctxt "Attachment source file" msgid "source file" msgstr "" -#: bp-core/classes/class-bp-attachment.php:475 +#: bp-core/classes/class-bp-attachment.php:461 msgctxt "Attachment destination file" msgid "destination file" msgstr "" @@ -8203,27 +8427,27 @@ msgctxt "Title of the login widget" msgid "(BuddyPress) Log In" msgstr "" -#: bp-core/classes/class-bp-core.php:305 +#: bp-core/classes/class-bp-core.php:310 msgctxt "email post type description" msgid "BuddyPress emails" msgstr "" -#: bp-forums/bp-forums-template.php:348 bp-forums/bp-forums-template.php:637 +#: bp-forums/bp-forums-template.php:358 bp-forums/bp-forums-template.php:658 msgctxt "Forum topic pagination previous text" msgid "←" msgstr "" -#: bp-forums/bp-forums-template.php:349 bp-forums/bp-forums-template.php:638 +#: bp-forums/bp-forums-template.php:359 bp-forums/bp-forums-template.php:659 msgctxt "Forum topic pagination next text" msgid "→" msgstr "" -#: bp-forums/bp-forums-template.php:2082 +#: bp-forums/bp-forums-template.php:2285 msgctxt "Forum thread pagination previous text" msgid "←" msgstr "" -#: bp-forums/bp-forums-template.php:2083 +#: bp-forums/bp-forums-template.php:2286 msgctxt "Forum thread pagination next text" msgid "→" msgstr "" @@ -8238,7 +8462,7 @@ msgctxt "Friend settings on notification settings page" msgid "A member sends you a friendship request" msgstr "" -#: bp-friends/bp-friends-screens.php:130 +#: bp-friends/bp-friends-screens.php:136 msgctxt "Friend settings on notification settings page" msgid "A member accepts your friendship request" msgstr "" @@ -8248,87 +8472,94 @@ msgctxt "Friends screen page <title>" msgid "Friend Connections" msgstr "" -#: bp-friends/classes/class-bp-friends-component.php:150 +#: 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:160 +#: 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:193 +#: 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 <span class=\"count\">%s</span>" +msgid "Friends %s" msgstr "" -#: bp-friends/classes/class-bp-friends-component.php:196 +#: 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:194 +#: 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 <span class=\"count\">%s</span>" +msgid "Pending Requests %s" msgstr "" -#: bp-friends/classes/class-bp-friends-component.php:197 +#: 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:212 +#: 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:34 +#: bp-groups/bp-groups-admin.php:36 msgctxt "Admin Groups page title" msgid "Groups" msgstr "" -#: bp-groups/bp-groups-admin.php:35 +#: bp-groups/bp-groups-admin.php:37 msgctxt "Admin Groups menu" msgid "Groups" msgstr "" -#: bp-groups/bp-groups-admin.php:130 +#: bp-groups/bp-groups-admin.php:132 msgctxt "group admin edit screen" msgid "Save" msgstr "" -#: bp-groups/bp-groups-admin.php:131 +#: bp-groups/bp-groups-admin.php:133 msgctxt "group admin edit screen" msgid "Settings" msgstr "" -#: bp-groups/bp-groups-admin.php:132 +#: bp-groups/bp-groups-admin.php:134 msgctxt "group admin edit screen" msgid "Add New Members" msgstr "" -#: bp-groups/bp-groups-admin.php:133 +#: bp-groups/bp-groups-admin.php:135 msgctxt "group admin edit screen" msgid "Manage Members" msgstr "" -#: bp-groups/bp-groups-admin.php:152 +#: bp-groups/bp-groups-admin.php:142 +msgctxt "groups admin edit screen" +msgid "Group Type" +msgstr "" + +#: bp-groups/bp-groups-admin.php:167 msgctxt "Groups per page (screen options)" msgid "Groups" msgstr "" -#: bp-groups/bp-groups-admin.php:883 +#: bp-groups/bp-groups-admin.php:916 msgctxt "Group member user_id in group admin" msgid "ID" msgstr "" -#: bp-groups/bp-groups-admin.php:884 +#: bp-groups/bp-groups-admin.php:917 msgctxt "Group member name in group admin" msgid "Name" msgstr "" -#: bp-groups/bp-groups-admin.php:885 +#: bp-groups/bp-groups-admin.php:918 msgctxt "Group member role in group admin" msgid "Group Role" msgstr "" @@ -8353,177 +8584,185 @@ msgctxt "Group update email text" msgid "* Description changed from \"%s\" to \"%s\"." msgstr "" -#: bp-groups/bp-groups-screens.php:1430 +#: bp-groups/bp-groups-screens.php:1437 msgctxt "Group settings on notification settings page" msgid "Groups" msgstr "" -#: bp-groups/bp-groups-screens.php:1439 +#: bp-groups/bp-groups-screens.php:1446 msgctxt "group settings on notification settings page" msgid "A member invites you to join a group" msgstr "" -#: bp-groups/bp-groups-screens.php:1445 +#: bp-groups/bp-groups-screens.php:1458 msgctxt "group settings on notification settings page" msgid "Group information is updated" msgstr "" -#: bp-groups/bp-groups-screens.php:1451 +#: bp-groups/bp-groups-screens.php:1470 msgctxt "group settings on notification settings page" msgid "You are promoted to a group administrator or moderator" msgstr "" -#: bp-groups/bp-groups-screens.php:1457 +#: bp-groups/bp-groups-screens.php:1482 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/classes/class-bp-groups-component.php:85 +#: bp-groups/bp-groups-screens.php:1494 +msgctxt "group settings on notification settings page" +msgid "Your request to join a group has been approved or denied" +msgstr "" + +#: bp-groups/classes/class-bp-groups-component.php:95 msgctxt "Group screen page <title>" msgid "User Groups" msgstr "" -#: bp-groups/classes/class-bp-groups-component.php:166 +#: bp-groups/classes/class-bp-groups-component.php:179 msgctxt "Component directory search" msgid "Search Groups..." msgstr "" -#: bp-groups/classes/class-bp-groups-component.php:297 +#: bp-groups/classes/class-bp-groups-component.php:313 msgctxt "Group screen nav" msgid "Details" msgstr "" -#: bp-groups/classes/class-bp-groups-component.php:301 +#: bp-groups/classes/class-bp-groups-component.php:317 msgctxt "Group screen nav" msgid "Settings" msgstr "" -#: bp-groups/classes/class-bp-groups-component.php:310 +#: bp-groups/classes/class-bp-groups-component.php:326 msgctxt "Group screen nav" msgid "Photo" msgstr "" -#: bp-groups/classes/class-bp-groups-component.php:317 +#: bp-groups/classes/class-bp-groups-component.php:333 msgctxt "Group screen nav" msgid "Cover Image" msgstr "" -#: bp-groups/classes/class-bp-groups-component.php:325 +#: bp-groups/classes/class-bp-groups-component.php:341 msgctxt "Group screen nav" msgid "Invites" msgstr "" -#: bp-groups/classes/class-bp-groups-component.php:521 +#: bp-groups/classes/class-bp-groups-component.php:549 msgctxt "Group screen nav" msgid "Request Membership" msgstr "" -#: bp-groups/classes/class-bp-groups-component.php:436 +#: bp-groups/classes/class-bp-groups-component.php:455 +#. translators: %s: Group count for the current user msgctxt "Group screen nav with counter" -msgid "Groups <span class=\"%s\">%s</span>" +msgid "Groups %s" msgstr "" -#: bp-groups/classes/class-bp-groups-component.php:438 +#: bp-groups/classes/class-bp-groups-component.php:463 msgctxt "Group screen nav without counter" msgid "Groups" msgstr "" -#: bp-groups/classes/class-bp-groups-component.php:501 +#: bp-groups/classes/class-bp-groups-component.php:529 msgctxt "Group screen navigation title" msgid "Home" msgstr "" -#: bp-groups/classes/class-bp-groups-component.php:533 +#: bp-groups/classes/class-bp-groups-component.php:561 msgctxt "My Group screen nav" msgid "Forum" msgstr "" -#: bp-groups/classes/class-bp-groups-component.php:550 +#: bp-groups/classes/class-bp-groups-component.php:578 msgctxt "My Group screen nav" msgid "Activity" msgstr "" -#: bp-groups/classes/class-bp-groups-component.php:566 +#: bp-groups/classes/class-bp-groups-component.php:594 msgctxt "My Group screen nav" msgid "Members %s" msgstr "" -#: bp-groups/classes/class-bp-groups-component.php:580 +#: bp-groups/classes/class-bp-groups-component.php:608 msgctxt "My Group screen nav" msgid "Send Invites" msgstr "" -#: bp-groups/classes/class-bp-groups-component.php:595 +#: bp-groups/classes/class-bp-groups-component.php:623 msgctxt "My Group screen nav" msgid "Manage" msgstr "" -#: bp-groups/classes/class-bp-groups-component.php:706 +#: bp-groups/classes/class-bp-groups-component.php:736 msgctxt "My Account Groups" msgid "Groups" msgstr "" -#: bp-groups/classes/class-bp-groups-component.php:707 +#: bp-groups/classes/class-bp-groups-component.php:737 msgctxt "My Account Groups sub nav" msgid "No Pending Invites" msgstr "" -#: bp-groups/classes/class-bp-groups-component.php:711 +#: bp-groups/classes/class-bp-groups-component.php:748 +#. translators: %s: Group invitation count for the current user msgctxt "My Account Groups sub nav" -msgid "Pending Invites <span class=\"count\">%s</span>" +msgid "Pending Invites %s" msgstr "" -#: bp-groups/classes/class-bp-groups-component.php:726 +#: bp-groups/classes/class-bp-groups-component.php:765 msgctxt "My Account Groups sub nav" msgid "Memberships" msgstr "" -#: bp-groups/classes/class-bp-groups-component.php:745 +#: bp-groups/classes/class-bp-groups-component.php:784 msgctxt "My Account Groups sub nav" msgid "Create a Group" msgstr "" -#: bp-groups/classes/class-bp-groups-component.php:710 +#: bp-groups/classes/class-bp-groups-component.php:742 +#. translators: %s: Group invitation count for the current user msgctxt "My Account Groups nav" -msgid "Groups <span class=\"count\">%s</span>" +msgid "Groups %s" msgstr "" -#: bp-groups/classes/class-bp-groups-component.php:766 +#: bp-groups/classes/class-bp-groups-component.php:805 msgctxt "My Groups page <title>" msgid "Memberships" msgstr "" -#: bp-groups/classes/class-bp-groups-list-table.php:351 +#: bp-groups/classes/class-bp-groups-list-table.php:357 msgctxt "Groups admin Group Name column header" msgid "Name" msgstr "" -#: bp-groups/classes/class-bp-groups-list-table.php:352 +#: bp-groups/classes/class-bp-groups-list-table.php:358 msgctxt "Groups admin Group Description column header" msgid "Description" msgstr "" -#: bp-groups/classes/class-bp-groups-list-table.php:353 +#: bp-groups/classes/class-bp-groups-list-table.php:359 msgctxt "Groups admin Privacy Status column header" msgid "Status" msgstr "" -#: bp-groups/classes/class-bp-groups-list-table.php:354 +#: bp-groups/classes/class-bp-groups-list-table.php:360 msgctxt "Groups admin Members column header" msgid "# Members" msgstr "" -#: bp-groups/classes/class-bp-groups-list-table.php:355 +#: bp-groups/classes/class-bp-groups-list-table.php:361 msgctxt "Groups admin Last Active column header" msgid "Last Active" msgstr "" -#: bp-groups/classes/class-bp-groups-template.php:289 +#: bp-groups/classes/class-bp-groups-template.php:295 msgctxt "Group pagination previous text" msgid "←" msgstr "" -#: bp-groups/classes/class-bp-groups-template.php:290 +#: bp-groups/classes/class-bp-groups-template.php:296 msgctxt "Group pagination next text" msgid "→" msgstr "" @@ -8533,120 +8772,125 @@ msgctxt "Group creation page" msgid "Groups" msgstr "" -#: bp-members/bp-members-template.php:131 +#: bp-members/bp-members-template.php:130 msgctxt "member type URL base" msgid "type" msgstr "" -#: bp-members/bp-members-template.php:977 +#: bp-members/bp-members-template.php:1040 msgctxt "member latest update in member directory" msgid "- "%s"" msgstr "" -#: bp-members/bp-members-template.php:1093 +#: bp-members/bp-members-template.php:1168 msgctxt "Records the timestamp that the user registered into the activity stream" msgid "registered %s" msgstr "" -#: bp-members/classes/class-bp-core-members-template.php:176 +#: bp-members/classes/class-bp-core-members-template.php:191 msgctxt "Member pagination previous text" msgid "←" msgstr "" -#: bp-members/classes/class-bp-core-members-template.php:177 +#: bp-members/classes/class-bp-core-members-template.php:192 msgctxt "Member pagination next text" msgid "→" msgstr "" -#: bp-members/classes/class-bp-members-admin.php:735 +#: bp-members/classes/class-bp-members-admin.php:732 msgctxt "members user-admin edit screen" msgid "Status" msgstr "" -#: bp-members/classes/class-bp-members-admin.php:769 +#: bp-members/classes/class-bp-members-admin.php:766 msgctxt "members user-admin edit screen" msgid "%s's Stats" msgstr "" -#: bp-members/classes/class-bp-members-admin.php:781 +#: bp-members/classes/class-bp-members-admin.php:778 msgctxt "members user-admin edit screen" msgid "Member Type" msgstr "" -#: bp-members/classes/class-bp-members-admin.php:897 -#: bp-members/classes/class-bp-members-admin.php:1857 +#: bp-members/classes/class-bp-members-admin.php:894 +#: bp-members/classes/class-bp-members-admin.php:1872 msgctxt "user" msgid "Add New" msgstr "" -#: bp-members/classes/class-bp-members-admin.php:901 -#: bp-members/classes/class-bp-members-admin.php:1861 +#: bp-members/classes/class-bp-members-admin.php:898 +#: bp-members/classes/class-bp-members-admin.php:1876 msgctxt "user" msgid "Add Existing" msgstr "" -#: bp-members/classes/class-bp-members-admin.php:1346 +#: bp-members/classes/class-bp-members-admin.php:1355 msgctxt "signup users" msgid "Pending %s" msgstr "" -#: bp-members/classes/class-bp-members-admin.php:1422 +#: bp-members/classes/class-bp-members-admin.php:1434 msgctxt "Pending Accounts per page (screen options)" msgid "Pending Accounts" msgstr "" -#: bp-members/classes/class-bp-members-admin.php:1615 +#: bp-members/classes/class-bp-members-admin.php:1630 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:1649 +#: bp-members/classes/class-bp-members-admin.php:1664 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:1626 +#: bp-members/classes/class-bp-members-admin.php:1641 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:1660 +#: bp-members/classes/class-bp-members-admin.php:1675 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:1683 +#: bp-members/classes/class-bp-members-admin.php:1698 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:1694 +#: bp-members/classes/class-bp-members-admin.php:1709 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-component.php:259 +#: 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:269 +#: bp-members/classes/class-bp-members-component.php:295 msgctxt "Member profile view" msgid "View" msgstr "" +#: bp-members/classes/class-bp-members-component.php:309 +msgctxt "Member Home page" +msgid "Home" +msgstr "" + #: bp-members/classes/class-bp-members-list-table.php:166 #: bp-members/classes/class-bp-members-ms-list-table.php:153 msgctxt "Pending signup action" @@ -8659,27 +8903,27 @@ msgctxt "Pending signup action" msgid "Email" msgstr "" -#: bp-messages/bp-messages-template.php:928 +#: bp-messages/bp-messages-template.php:940 msgctxt "Message dropdown filter" msgid "Read" msgstr "" -#: bp-messages/bp-messages-template.php:929 +#: bp-messages/bp-messages-template.php:941 msgctxt "Message dropdown filter" msgid "Unread" msgstr "" -#: bp-messages/bp-messages-template.php:930 +#: bp-messages/bp-messages-template.php:942 msgctxt "Message dropdown filter" msgid "All" msgstr "" -#: bp-messages/bp-messages-template.php:935 +#: bp-messages/bp-messages-template.php:947 msgctxt "Message management markup" msgid "Mark as Read" msgstr "" -#: bp-messages/bp-messages-template.php:936 +#: bp-messages/bp-messages-template.php:948 msgctxt "Message management markup" msgid "Mark as Unread" msgstr "" @@ -8694,57 +8938,55 @@ msgctxt "Message pagination next text" msgid "→" msgstr "" -#: bp-notifications/bp-notifications-template.php:585 -msgctxt "Notification screen action" -msgid "Unread" -msgstr "" - #: bp-notifications/classes/class-bp-notifications-component.php:28 msgctxt "Page <title>" msgid "Notifications" msgstr "" -#: bp-notifications/classes/class-bp-notifications-component.php:125 +#: bp-notifications/classes/class-bp-notifications-component.php:136 +#. translators: %s: Unread notification count for the current user msgctxt "Profile screen nav" -msgid "Notifications <span class=\"%s\">%s</span>" +msgid "Notifications %s" msgstr "" -#: bp-notifications/classes/class-bp-notifications-component.php:127 +#: bp-notifications/classes/class-bp-notifications-component.php:144 msgctxt "Profile screen nav" msgid "Notifications" msgstr "" -#: bp-notifications/classes/class-bp-notifications-component.php:143 +#: bp-notifications/classes/class-bp-notifications-component.php:160 msgctxt "Notification screen nav" msgid "Unread" msgstr "" -#: bp-notifications/classes/class-bp-notifications-component.php:154 +#: bp-notifications/classes/class-bp-notifications-component.php:171 msgctxt "Notification screen nav" msgid "Read" msgstr "" -#: bp-notifications/classes/class-bp-notifications-component.php:188 +#: bp-notifications/classes/class-bp-notifications-component.php:207 +#. translators: %s: Unread notification count for the current user msgctxt "My Account Notification pending" -msgid "Notifications <span class=\"count\">%s</span>" +msgid "Notifications %s" msgstr "" -#: bp-notifications/classes/class-bp-notifications-component.php:189 +#: bp-notifications/classes/class-bp-notifications-component.php:212 +#. translators: %s: Unread notification count for the current user msgctxt "My Account Notification pending" -msgid "Unread <span class=\"count\">%s</span>" +msgid "Unread %s" msgstr "" -#: bp-notifications/classes/class-bp-notifications-component.php:191 +#: bp-notifications/classes/class-bp-notifications-component.php:216 msgctxt "My Account Notification" msgid "Notifications" msgstr "" -#: bp-notifications/classes/class-bp-notifications-component.php:192 +#: bp-notifications/classes/class-bp-notifications-component.php:217 msgctxt "My Account Notification sub nav" msgid "Unread" msgstr "" -#: bp-notifications/classes/class-bp-notifications-component.php:216 +#: bp-notifications/classes/class-bp-notifications-component.php:241 msgctxt "My Account Notification sub nav" msgid "Read" msgstr "" @@ -8783,22 +9025,22 @@ msgid_plural "%d members" msgstr[0] "" msgstr[1] "" -#: bp-xprofile/bp-xprofile-admin.php:31 +#: bp-xprofile/bp-xprofile-admin.php:32 msgctxt "xProfile admin page title" msgid "Profile Fields" msgstr "" -#: bp-xprofile/bp-xprofile-admin.php:31 +#: bp-xprofile/bp-xprofile-admin.php:32 msgctxt "Admin Users menu" msgid "Profile Fields" msgstr "" -#: bp-xprofile/bp-xprofile-admin.php:93 +#: bp-xprofile/bp-xprofile-admin.php:96 msgctxt "Settings page header" msgid "Profile Fields" msgstr "" -#: bp-xprofile/bp-xprofile-admin.php:653 +#: bp-xprofile/bp-xprofile-admin.php:662 msgctxt "xprofile field type category" msgid "Other" msgstr "" @@ -8820,97 +9062,97 @@ msgctxt "xprofile field type category" msgid "Single Fields" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-component.php:46 +#: bp-xprofile/classes/class-bp-xprofile-component.php:49 msgctxt "Component page <title>" msgid "Extended Profiles" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-component.php:131 +#: bp-xprofile/classes/class-bp-xprofile-component.php:139 msgctxt "Visibility level setting" msgid "Everyone" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-component.php:135 +#: bp-xprofile/classes/class-bp-xprofile-component.php:143 msgctxt "Visibility level setting" msgid "Only Me" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-component.php:139 +#: bp-xprofile/classes/class-bp-xprofile-component.php:147 msgctxt "Visibility level setting" msgid "All Members" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-component.php:146 +#: bp-xprofile/classes/class-bp-xprofile-component.php:154 msgctxt "Visibility level setting" msgid "My Friends" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-component.php:200 +#: bp-xprofile/classes/class-bp-xprofile-component.php:210 msgctxt "Profile header menu" msgid "Profile" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-component.php:210 +#: bp-xprofile/classes/class-bp-xprofile-component.php:220 msgctxt "Profile header sub menu" msgid "View" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-component.php:220 +#: bp-xprofile/classes/class-bp-xprofile-component.php:230 msgctxt "Profile header sub menu" msgid "Edit" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-component.php:232 +#: bp-xprofile/classes/class-bp-xprofile-component.php:242 msgctxt "Profile header sub menu" msgid "Change Profile Photo" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-component.php:245 +#: bp-xprofile/classes/class-bp-xprofile-component.php:255 msgctxt "Profile header sub menu" msgid "Change Cover Image" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-component.php:288 +#: bp-xprofile/classes/class-bp-xprofile-component.php:298 msgctxt "Profile settings sub nav" msgid "Profile Visibility" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-component.php:315 +#: bp-xprofile/classes/class-bp-xprofile-component.php:327 msgctxt "My Account Profile" msgid "Profile" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-component.php:323 +#: bp-xprofile/classes/class-bp-xprofile-component.php:335 msgctxt "My Account Profile sub nav" msgid "View" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-component.php:332 +#: bp-xprofile/classes/class-bp-xprofile-component.php:344 msgctxt "My Account Profile sub nav" msgid "Edit" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-component.php:342 +#: bp-xprofile/classes/class-bp-xprofile-component.php:354 msgctxt "My Account Profile sub nav" msgid "Change Profile Photo" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-component.php:352 +#: bp-xprofile/classes/class-bp-xprofile-component.php:364 msgctxt "My Account Profile sub nav" msgid "Change Cover Image" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-component.php:380 +#: bp-xprofile/classes/class-bp-xprofile-component.php:394 msgctxt "Page title" msgid "My Profile" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-component.php:385 +#: bp-xprofile/classes/class-bp-xprofile-component.php:399 msgctxt "Avatar alt" msgid "Profile picture of %s" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-component.php:430 +#: bp-xprofile/classes/class-bp-xprofile-component.php:444 msgctxt "My Account Settings sub nav" msgid "Profile" msgstr "" @@ -8960,12 +9202,12 @@ msgctxt "xprofile field type" msgid "URL" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-field.php:1306 +#: bp-xprofile/classes/class-bp-xprofile-field.php:1312 msgctxt "XProfile admin edit field" msgid "Name" msgstr "" -#: bp-xprofile/classes/class-bp-xprofile-field.php:1312 +#: bp-xprofile/classes/class-bp-xprofile-field.php:1318 msgctxt "XProfile admin edit field" msgid "Description" msgstr "" diff --git a/wp-content/plugins/buddypress/readme.txt b/wp-content/plugins/buddypress/readme.txt index 159fb19ea86044f9c9eebac847f359dc4bb1480c..f255e26049964fe13c60013f732932b97ed0ee88 100644 --- a/wp-content/plugins/buddypress/readme.txt +++ b/wp-content/plugins/buddypress/readme.txt @@ -2,8 +2,8 @@ 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.1 -Tested up to: 4.5 -Stable tag: 2.5.2 +Tested up to: 4.5.3 +Stable tag: 2.6.2 License: GPLv2 or later License URI: https://www.gnu.org/licenses/gpl-2.0.html @@ -118,133 +118,37 @@ Please consider helping translate BuddyPress at our <a href="https://translate.w == Upgrade Notice == -= 2.5.1 = -See: https://codex.buddypress.org/releases/version-2-5-1/ - -= 2.5 = -See: https://codex.buddypress.org/releases/version-2-5-0/ - -= 2.4.3 = -See: https://codex.buddypress.org/releases/version-2-4-3/ - -= 2.4.2 = -See: https://codex.buddypress.org/releases/version-2-4-2/ - -= 2.4.1 = -See: https://codex.buddypress.org/releases/version-2-4-1/ - -= 2.4 = -See: https://codex.buddypress.org/releases/version-2-4-0/ - -= 2.3.5 = -See: https://codex.buddypress.org/releases/version-2-3-5/ - -= 2.3.4 = -See: https://codex.buddypress.org/releases/version-2-3-4/ - -= 2.3.3 = -See: https://codex.buddypress.org/releases/version-2-3-3/ - -= 2.3.2 = -See: https://codex.buddypress.org/releases/version-2-3-2/ - -= 2.3.1 = -See: https://codex.buddypress.org/releases/version-2-3-1/ - -= 2.3.0 = -See: https://codex.buddypress.org/releases/version-2-3-0/ - -= 2.2.3.1 = -See: https://codex.buddypress.org/releases/version-2-2-3-1/ - -= 2.2.3 = -See: https://codex.buddypress.org/releases/version-2-2-3/ += 2.6.2 = +See: https://codex.buddypress.org/releases/version-2-6-2/ -= 2.2.2.1 = -See: https://codex.buddypress.org/releases/version-2-2-2-1/ += 2.6.1.1 = +See: https://codex.buddypress.org/releases/version-2-6-1-1/ -= 2.2.2 = -See: https://codex.buddypress.org/releases/version-2-2-2/ += 2.6.1 = +See: https://codex.buddypress.org/releases/version-2-6-1/ -= 2.2.1 = -See: https://codex.buddypress.org/releases/version-2-2-1/ - -= 2.2 = -See: https://codex.buddypress.org/releases/version-2-2/ - -= 2.1 = -See: https://codex.buddypress.org/releases/version-2-1/ - -= 2.0.3 = -See: https://codex.buddypress.org/releases/version-2-0-3/ - -= 2.0.2 = -See: https://codex.buddypress.org/releases/version-2-0-2/ - -= 2.0.1 = -See: https://codex.buddypress.org/releases/version-2-0-1/ - -= 2.0 = -See: https://codex.buddypress.org/releases/version-2-0/ - -= 1.9.2 = -See: https://codex.buddypress.org/releases/version-1-9-2/ - -= 1.9.1 = -See: https://codex.buddypress.org/releases/version-1-9-1/ - -= 1.9 = -See: https://codex.buddypress.org/releases/version-1-9/ - -= 1.8.1 = -See: https://codex.buddypress.org/releases/version-1-8-1/ - -= 1.8 = -See: https://codex.buddypress.org/releases/version-1-8/ - -= 1.7.3 = -See: https://codex.buddypress.org/releases/version-1-7-3/ - -= 1.7.2 = -See: https://codex.buddypress.org/releases/version-1-7-2/ - -= 1.7.1 = -See: https://codex.buddypress.org/releases/version-1-7-1/ += 2.6.0 = +See: https://codex.buddypress.org/releases/version-2-6-0/ -= 1.7 = -See: https://codex.buddypress.org/releases/version-1-7/ - -= 1.6.5 = -See: https://codex.buddypress.org/releases/version-1-6-5/ - -= 1.6.4 = -See: https://codex.buddypress.org/releases/version-1-6-4/ - -= 1.6.3 = -See: https://codex.buddypress.org/releases/version-1-6-3/ - -= 1.6.2 = -Compatibility with WordPress 3.5 - -= 1.6.1 = -Fixes 4 bugs +== Changelog == -= 1.6 = -See: https://codex.buddypress.org/releases/version-1-6/ += 2.6.2 = +See: https://codex.buddypress.org/releases/version-2-6-2/ -= 1.5 = -See: https://codex.buddypress.org/releases/version-1-5/ += 2.6.1.1 = +See: https://codex.buddypress.org/releases/version-2-6-1-1/ -= 1.2.9 = -Compatibility with WordPress 3.2 += 2.6.1 = +See: https://codex.buddypress.org/releases/version-2-6-1/ -= 1.2.8 = -Compatibility with WordPress 3.1 += 2.6.0 = +See: https://codex.buddypress.org/releases/version-2-6-0/ -= 1.2.7 = -Fixes over 10 bugs. += 2.5.3 = +See: https://codex.buddypress.org/releases/version-2-5-3/ -== Changelog == += 2.5.2 = +See: https://codex.buddypress.org/releases/version-2-5-2/ = 2.5.1 = See: https://codex.buddypress.org/releases/version-2-5-1/ @@ -288,38 +192,5 @@ See: https://codex.buddypress.org/releases/version-2-2-1/ = 2.2 = See: https://codex.buddypress.org/releases/version-2-2/ -= 2.1 = -See: https://codex.buddypress.org/releases/version-2-1/ - -= 2.0.3 = -See: https://codex.buddypress.org/releases/version-2-0-3/ - -= 2.0.2 = -See: https://codex.buddypress.org/releases/version-2-0-2/ - -= 2.0.1 = -See: https://codex.buddypress.org/releases/version-2-0-1/ - -= 2.0 = -See: https://codex.buddypress.org/releases/version-2-0/ - -= 1.9 = -See: https://codex.buddypress.org/releases/version-1-9/ - -= 1.8.1 = -See: https://codex.buddypress.org/releases/version-1-8-1/ - -= 1.8 = -See: https://codex.buddypress.org/releases/version-1-8/ - -= 1.7 = -See: https://codex.buddypress.org/releases/version-1-7/ - -= 1.6 = -See: https://codex.buddypress.org/releases/version-1-6/ - -= 1.5 = -See: https://codex.buddypress.org/releases/version-1-5/ - = Older = See: https://codex.buddypress.org/releases/