[ Index ] |
PHP Cross Reference of BuddyPress |
[Summary view] [Print] [Text view]
1 <?php 2 /** 3 * BuddyPress Groups Widgets 4 * 5 * @package BuddyPress 6 * @subpackage GroupsWidgets 7 * @since 1.0.0 8 */ 9 10 // Exit if accessed directly. 11 defined( 'ABSPATH' ) || exit; 12 13 /** 14 * Registers the Groups Legacy Widget. 15 * 16 * @since 10.0.0 17 */ 18 function bp_groups_register_groups_widget() { 19 register_widget( 'BP_Groups_Widget' ); 20 } 21 22 /** 23 * Register widgets for groups component. 24 * 25 * @since 1.0.0 26 */ 27 function groups_register_widgets() { 28 add_action( 'widgets_init', 'bp_groups_register_groups_widget' ); 29 } 30 add_action( 'bp_register_widgets', 'groups_register_widgets' ); 31 32 /** 33 * AJAX callback for the Groups List widget. 34 * 35 * @since 1.0.0 36 */ 37 function groups_ajax_widget_groups_list() { 38 39 check_ajax_referer( 'groups_widget_groups_list' ); 40 41 switch ( $_POST['filter'] ) { 42 case 'newest-groups': 43 $type = 'newest'; 44 break; 45 case 'recently-active-groups': 46 $type = 'active'; 47 break; 48 case 'popular-groups': 49 $type = 'popular'; 50 break; 51 case 'alphabetical-groups': 52 $type = 'alphabetical'; 53 break; 54 } 55 56 $per_page = isset( $_POST['max_groups'] ) ? intval( $_POST['max_groups'] ) : 5; 57 58 $groups_args = array( 59 'user_id' => 0, 60 'type' => $type, 61 'per_page' => $per_page, 62 'max' => $per_page, 63 ); 64 65 if ( bp_has_groups( $groups_args ) ) : ?> 66 <?php echo "0[[SPLIT]]"; ?> 67 <?php while ( bp_groups() ) : bp_the_group(); ?> 68 <li <?php bp_group_class(); ?>> 69 <div class="item-avatar"> 70 <a href="<?php bp_group_permalink() ?>"><?php bp_group_avatar_thumb() ?></a> 71 </div> 72 73 <div class="item"> 74 <div class="item-title"><?php bp_group_link(); ?></div> 75 <div class="item-meta"> 76 <?php if ( 'newest-groups' === $_POST['filter'] ) : ?> 77 <span class="activity" data-livestamp="<?php bp_core_iso8601_date( bp_get_group_date_created( 0, array( 'relative' => false ) ) ); ?>"> 78 <?php 79 /* translators: %s: date */ 80 printf( __( 'created %s', 'buddypress' ), bp_get_group_date_created() ); 81 ?> 82 </span> 83 <?php elseif ( 'popular-groups' === $_POST['filter'] ) : ?> 84 <span class="activity"><?php bp_group_member_count(); ?></span> 85 <?php else : ?> 86 <span class="activity" data-livestamp="<?php bp_core_iso8601_date( bp_get_group_last_active( 0, array( 'relative' => false ) ) ); ?>"> 87 <?php 88 /* translators: %s: last activity timestamp (e.g. "Active 1 hour ago") */ 89 printf( _x( 'Active %s', 'last time the group was active', 'buddypress' ), bp_get_group_last_active() ); 90 ?> 91 </span> 92 <?php endif; ?> 93 </div> 94 </div> 95 </li> 96 <?php endwhile; ?> 97 98 <?php wp_nonce_field( 'groups_widget_groups_list', '_wpnonce-groups' ); ?> 99 <input type="hidden" name="groups_widget_max" id="groups_widget_max" value="<?php echo esc_attr( $_POST['max_groups'] ); ?>" /> 100 101 <?php else: ?> 102 103 <?php echo "-1[[SPLIT]]<li>" . __( "No groups matched the current filter.", 'buddypress' ); ?> 104 105 <?php endif; 106 107 } 108 add_action( 'wp_ajax_widget_groups_list', 'groups_ajax_widget_groups_list' ); 109 add_action( 'wp_ajax_nopriv_widget_groups_list', 'groups_ajax_widget_groups_list' );
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Thu Nov 21 01:00:57 2024 | Cross-referenced by PHPXref 0.7.1 |