Advertisement
imath

Restrict blog posts content to BuddyPress Group members

Jun 18th, 2012
248
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.28 KB | None | 0 0
  1. /**
  2. * Le shortcode à utiliser dans l'article se présentera sous cette forme :
  3. * [abba_restrict group_id="1"]
  4. * le contenu de l'article à masquer
  5. * [/abba_restrict]
  6. */
  7.  
  8.  
  9. add_shortcode('abba_restrict','abba_restrict_access_to_group_members');
  10.  
  11. function abba_restrict_access_to_group_members($atts, $content){
  12.     global $bp;
  13.    
  14.     // si $bp n'est pas set alors, BuddyPress ne doit pas être installé ! Evitons des fatals errors !
  15.     if(!$bp)
  16.         return $content;
  17.            
  18.     extract(shortcode_atts( array( 'group_id' => 0 ), $atts) );
  19.    
  20.    
  21.     // si le groupe id n'a pas été spécifié, c'est que le contenu est public !
  22.     if( empty( $group_id ) )
  23.         return $content;
  24.    
  25.     // si l'utilisateur n'est pas loggé, on lui demande de le faire...
  26.     if( !is_user_logged_in() )
  27.         return __('Vous devez vous connecter pour accéder à ce contenu.');
  28.        
  29.     $user_id = $bp->loggedin_user->id;
  30.    
  31.     // il est membre du groupe !   
  32.     if ( groups_is_user_member( $user_id, $group_id ) )
  33.         return $content;
  34.        
  35.     else {
  36.        
  37.         $group = groups_get_group( 'group_id='.$group_id );
  38.         $group_home = bp_get_group_permalink( $group );
  39.         $group_name = $group->name;
  40.        
  41.         return sprintf(__('Vous devez être membre du groupe %s pour pouvoir accéder à ce contenu'), '<a href='.$group_home.'>'.$group_name.'</a>');
  42.        
  43.     }
  44.  
  45. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement