PageRenderTime 59ms CodeModel.GetById 33ms RepoModel.GetById 1ms app.codeStats 0ms

/trunk/bp-groups/bp-groups-ajax.php

https://github.com/alvaropereyra/shrekcms
PHP | 271 lines | 214 code | 57 blank | 0 comment | 61 complexity | 2e69db2710e3dcd4231b56b4f41890e7 MD5 | raw file
  1. <?php
  2. function groups_ajax_invite_user() {
  3. global $bp;
  4. check_ajax_referer( 'groups_invite_uninvite_user' );
  5. if ( !$_POST['friend_id'] || !$_POST['friend_action'] || !$_POST['group_id'] )
  6. return false;
  7. if ( !groups_is_user_admin( $bp->loggedin_user->id, $_POST['group_id'] ) )
  8. return false;
  9. if ( !friends_check_friendship( $bp->loggedin_user->id, $_POST['friend_id'] ) )
  10. return false;
  11. if ( 'invite' == $_POST['friend_action'] ) {
  12. if ( !groups_invite_user( $_POST['friend_id'], $_POST['group_id'] ) )
  13. return false;
  14. $user = new BP_Core_User( $_POST['friend_id'] );
  15. echo '<li id="uid-' . $user->id . '">';
  16. echo attribute_escape( $user->avatar_thumb );
  17. echo '<h4>' . attribute_escape( $user->user_link ) . '</h4>';
  18. echo '<span class="activity">' . attribute_escape( $user->last_active ) . '</span>';
  19. echo '<div class="action">
  20. <a class="remove" href="' . wp_nonce_url( $bp->loggedin_user->domain . $bp->groups->slug . '/' . $_POST['group_id'] . '/invites/remove/' . $user->id, 'groups_invite_uninvite_user' ) . '" id="uid-' . attribute_escape( $user->id ) . '">' . __( 'Remove Invite', 'buddypress' ) . '</a>
  21. </div>';
  22. echo '</li>';
  23. } else if ( 'uninvite' == $_POST['friend_action'] ) {
  24. if ( !groups_uninvite_user( $_POST['friend_id'], $_POST['group_id'] ) )
  25. return false;
  26. return true;
  27. } else {
  28. return false;
  29. }
  30. }
  31. add_action( 'wp_ajax_groups_invite_user', 'groups_ajax_invite_user' );
  32. function groups_ajax_group_filter() {
  33. global $bp;
  34. check_ajax_referer( 'group-filter-box' );
  35. load_template( TEMPLATEPATH . '/groups/group-loop.php' );
  36. }
  37. add_action( 'wp_ajax_group_filter', 'groups_ajax_group_filter' );
  38. function groups_ajax_widget_groups_list() {
  39. global $bp;
  40. check_ajax_referer('groups_widget_groups_list');
  41. switch ( $_POST['filter'] ) {
  42. case 'newest-groups':
  43. if ( !$groups = wp_cache_get( 'newest_groups', 'bp' ) ) {
  44. $groups = groups_get_newest( $_POST['max-groups'], 1 );
  45. wp_cache_set( 'newest_groups', $groups, 'bp' );
  46. }
  47. break;
  48. case 'recently-active-groups':
  49. if ( !$groups = wp_cache_get( 'active_groups', 'bp' ) ) {
  50. $groups = groups_get_active( $_POST['max-groups'], 1 );
  51. wp_cache_set( 'active_groups', $groups, 'bp' );
  52. }
  53. break;
  54. case 'popular-groups':
  55. if ( !$groups = wp_cache_get( 'popular_groups', 'bp' ) ) {
  56. $groups = groups_get_popular( $_POST['max-groups'], 1 );
  57. wp_cache_set( 'popular_groups', $groups, 'bp' );
  58. }
  59. break;
  60. }
  61. if ( $groups['groups'] ) {
  62. echo '0[[SPLIT]]'; // return valid result.
  63. foreach ( (array) $groups['groups'] as $group_id ) {
  64. if ( !$group = wp_cache_get( 'groups_group_nouserdata_' . $group_id->group_id, 'bp' ) ) {
  65. $group = new BP_Groups_Group( $group_id->group_id, false, false );
  66. wp_cache_set( 'groups_group_nouserdata_' . $group_id->group_id, $group, 'bp' );
  67. }
  68. ?>
  69. <li>
  70. <div class="item-avatar">
  71. <?php echo bp_get_group_avatar_thumb( $group ) ?>
  72. </div>
  73. <div class="item">
  74. <div class="item-title"><a href="<?php echo bp_get_group_permalink( $group ) ?>" title="<?php echo bp_get_group_name( $group ) ?>"><?php echo bp_get_group_name( $group ) ?></a></div>
  75. <div class="item-meta">
  76. <span class="activity">
  77. <?php
  78. if ( 'newest-groups' == $_POST['filter'] ) {
  79. echo bp_core_get_last_activity( $group->date_created, __('created %s ago', 'buddypress') );
  80. } else if ( 'recently-active-groups' == $_POST['filter'] ) {
  81. echo bp_core_get_last_activity( groups_get_groupmeta( $group->id, 'last_activity' ), __('active %s ago', 'buddypress') );
  82. } else if ( 'popular-groups' == $_POST['filter'] ) {
  83. if ( $group->total_member_count == 1 )
  84. echo $group->total_member_count . __(' member', 'buddypress');
  85. else
  86. echo $group->total_member_count . __(' members', 'buddypress');
  87. }
  88. ?>
  89. </span>
  90. </div>
  91. </div>
  92. </li>
  93. <?php
  94. }
  95. } else {
  96. echo "-1[[SPLIT]]<li>" . __("No groups matched the current filter.", 'buddypress');
  97. }
  98. }
  99. add_action( 'wp_ajax_widget_groups_list', 'groups_ajax_widget_groups_list' );
  100. function groups_ajax_member_list() {
  101. global $bp;
  102. ?>
  103. <?php if ( bp_group_has_members( 'group_id=' . $_REQUEST['group_id'] ) ) : ?>
  104. <?php if ( bp_group_member_needs_pagination() ) : ?>
  105. <div id="member-count" class="pag-count">
  106. <?php bp_group_member_pagination_count() ?>
  107. </div>
  108. <div id="member-pagination" class="pagination-links">
  109. <?php bp_group_member_pagination() ?>
  110. </div>
  111. <?php endif; ?>
  112. <ul id="member-list" class="item-list">
  113. <?php while ( bp_group_members() ) : bp_group_the_member(); ?>
  114. <li>
  115. <?php bp_group_member_avatar() ?>
  116. <h5><?php bp_group_member_link() ?></h5>
  117. <span class="activity"><?php bp_group_member_joined_since() ?></span>
  118. <?php if ( function_exists( 'friends_install' ) ) : ?>
  119. <div class="action">
  120. <?php bp_add_friend_button( bp_group_member_id() ) ?>
  121. </div>
  122. <?php endif; ?>
  123. </li>
  124. <?php endwhile; ?>
  125. </ul>
  126. <?php else: ?>
  127. <div id="message" class="info">
  128. <p><?php _e( 'This group has no members.', 'buddypress' ) ?></p>
  129. </div>
  130. <?php endif; ?>
  131. <input type="hidden" name="group_id" id="group_id" value="<?php echo attribute_escape( $_REQUEST['group_id'] ); ?>" />
  132. <?php
  133. }
  134. add_action( 'wp_ajax_get_group_members', 'groups_ajax_member_list' );
  135. function groups_ajax_member_admin_list() {
  136. global $bp;
  137. ?>
  138. <?php if ( bp_group_has_members( 'group_id=' . $_REQUEST['group_id'] . '&per_page=' . $_REQUEST['num'] ) ) : ?>
  139. <?php if ( bp_group_member_needs_pagination() ) : ?>
  140. <div id="member-count" class="pag-count">
  141. <?php bp_group_member_pagination_count() ?>
  142. </div>
  143. <div id="member-admin-pagination" class="pagination-links">
  144. <?php bp_group_member_admin_pagination() ?>
  145. </div>
  146. <?php endif; ?>
  147. <ul id="members-list" class="item-list single-line">
  148. <?php while ( bp_group_members() ) : bp_group_the_member(); ?>
  149. <?php if ( bp_group_member_is_banned() ) : ?>
  150. <li class="banned-user">
  151. <?php bp_group_member_avatar_mini() ?>
  152. <h5><?php bp_group_member_link() ?> <?php _e( '(banned)', 'buddypress' ) ?> <span class="small"> &mdash; <a href="<?php bp_group_member_unban_link() ?>" title="<?php _e( 'Kick and ban this member', 'buddypress' ) ?>"><?php _e( 'Remove Ban', 'buddypress' ) ?></a> </h5>
  153. <?php else : ?>
  154. <li>
  155. <?php bp_group_member_avatar_mini() ?>
  156. <h5><?php bp_group_member_link() ?> <span class="small"> &mdash; <a href="<?php bp_group_member_ban_link() ?>" title="<?php _e( 'Kick and ban this member', 'buddypress' ) ?>"><?php _e( 'Kick &amp; Ban', 'buddypress' ) ?></a> | <a href="<?php bp_group_member_promote_link() ?>" title="<?php _e( 'Promote this member', 'buddypress' ) ?>"><?php _e( 'Promote to Moderator', 'buddypress' ) ?></a></span></h5>
  157. <?php endif; ?>
  158. </li>
  159. <?php endwhile; ?>
  160. </ul>
  161. <?php else: ?>
  162. <div id="message" class="info">
  163. <p><?php _e( 'This group has no members.', 'buddypress' ) ?></p>
  164. </div>
  165. <?php endif;?>
  166. <input type="hidden" name="group_id" id="group_id" value="<?php echo attribute_escape( $_REQUEST['group_id'] ); ?>" />
  167. <?php
  168. }
  169. add_action( 'wp_ajax_get_group_members_admin', 'groups_ajax_member_admin_list' );
  170. function bp_core_ajax_directory_groups() {
  171. global $bp;
  172. check_ajax_referer('directory_groups');
  173. load_template( TEMPLATEPATH . '/directories/groups/groups-loop.php' );
  174. }
  175. add_action( 'wp_ajax_directory_groups', 'bp_core_ajax_directory_groups' );
  176. function groups_ajax_joinleave_group() {
  177. global $bp;
  178. if ( groups_is_user_banned( $bp->loggedin_user->id, $_POST['gid'] ) )
  179. return false;
  180. if ( !$group = new BP_Groups_Group( $_POST['gid'], false, false ) )
  181. return false;
  182. if ( 'hidden' == $group->status )
  183. return false;
  184. if ( !groups_is_user_member( $bp->loggedin_user->id, $group->id ) ) {
  185. if ( 'public' == $group->status ) {
  186. check_ajax_referer( 'groups_join_group' );
  187. if ( !groups_join_group( $group->id ) ) {
  188. _e( 'Error joining group', 'buddypress' );
  189. } else {
  190. echo '<a id="group-' . attribute_escape( $group->id ) . '" class="leave-group" rel="leave" title="' . __( 'Leave Group', 'buddypress' ) . '" href="' . wp_nonce_url( bp_get_group_permalink( $group ) . '/leave-group', 'groups_leave_group' ) . '">' . __( 'Leave Group', 'buddypress' ) . '</a>';
  191. }
  192. } else if ( 'private' == $group->status ) {
  193. check_ajax_referer( 'groups_request_membership' );
  194. if ( !groups_send_membership_request( $bp->loggedin_user->id, $group->id ) ) {
  195. _e( 'Error requesting membership', 'buddypress' );
  196. } else {
  197. echo '<a id="group-' . attribute_escape( $group->id ) . '" class="membership-requested" rel="membership-requested" title="' . __( 'Membership Requested', 'buddypress' ) . '" href="' . bp_get_group_permalink( $group ) . '">' . __( 'Membership Requested', 'buddypress' ) . '</a>';
  198. }
  199. }
  200. } else {
  201. check_ajax_referer( 'groups_leave_group' );
  202. if ( !groups_leave_group( $group->id ) ) {
  203. _e( 'Error leaving group', 'buddypress' );
  204. } else {
  205. if ( 'public' == $group->status ) {
  206. echo '<a id="group-' . attribute_escape( $group->id ) . '" class="join-group" rel="join" title="' . __( 'Join Group', 'buddypress' ) . '" href="' . wp_nonce_url( bp_get_group_permalink( $group ) . '/join', 'groups_join_group' ) . '">' . __( 'Join Group', 'buddypress' ) . '</a>';
  207. } else if ( 'private' == $group->status ) {
  208. echo '<a id="group-' . attribute_escape( $group->id ) . '" class="request-membership" rel="join" title="' . __( 'Request Membership', 'buddypress' ) . '" href="' . wp_nonce_url( bp_get_group_permalink( $group ) . '/request-membership', 'groups_send_membership_request' ) . '">' . __( 'Request Membership', 'buddypress' ) . '</a>';
  209. }
  210. }
  211. }
  212. }
  213. add_action( 'wp_ajax_joinleave_group', 'groups_ajax_joinleave_group' );
  214. ?>