[Support requis] Masquage activités et sélecteur si non membre du groupe public

5 sujets de 1 à 5 (sur un total de 5)
  • Auteur
    Messages
  • #9350
    Photo du profil de Hervé D
    Hervé D
    Participant

    Bonjour,

    Bon je pensai avoir trouvé le bon test mais j’ai un message d’erreur:
    « Fatal error: Call to undefined function bp_group_is_member() in /var/www/../wp-content/plugins/bp-custom.php on line 3 »

    L’objectif final étant de masquer le contenu et le sélecteur quand un membre arrive sur la page d’un groupe public auquel il n’a pas adhéré. De fait il verra juste le haut de la page, description et bouton pour rejoindre le groupe

    J’ai trouvé pour tester bp_group_is_member()
    http://buddypress.wp-a2z.org/oik_api/bp_group_is_member/
    Si je ne mets aucun argument, je comprends qu’il va tester si le membre fait parti du groupe (et je rajoute la condition d’être dans l’affichage un groupe ?

    if ( !bp_group_is_member() || bp_is_active('groups') )
     {echo "CURIEUX";}

    Tant que j’y suis pour aller plus loin, je pense mettre la fonctoin dont tu m’avais parlé. Je suis bien obligé de supprimer une à une toutes les affichage ?

    if ( !bp_group_is_member() || bp_is_active('groups') )
     {add_filter( 'bp_after_has_activities_parse_args', 'my_bp_activity_types_non-membre' );}
    
    function my_bp_activity_types_non-membre( $retval ) {
        $retval['action'] = array(        
            //'activity_comment',
    	//'activity_update',
    	//'created_group',
    	//'friendship_created', nouv relation entre membre
    	//'joined_group',
    	//'last_activity',
    	//'new_avatar',
    	//'new_blog_comment',
            //'new_blog_post',
    	//'new_member',
    	//'updated_profile',
    	//'rtmedia_update'       
        ); 
        return $retval;
    
    
    #9353
    Photo du profil de Dan
    Dan
    Admin bbPress

    Pour le check du membre dans le groupe, il faut être dans la boucle du groupe, mais aussi avoir un user ID.
    Par exemple

    $user_id = bp_loggedin_user_id();
    if ( is_user_logged_in() && bp_group_is_member() ) { // et on continue...

    Un peu plus sur le sujet ici.

    No comprendo ta deuxième question. Est-ce que tu as déjà lu cet article ?

    #9354
    Photo du profil de Hervé D
    Hervé D
    Participant

    j’ai le même message: « Fatal error: Call to undefined function bp_loggedin_user_id()  »

    Je n’avais pas lu cet article mais je n’utilises pas encore les nouveaux types de BP !
    Pour la 2ème question qui est juste dans la continuité du 1er test c’est quand même mieux une copie écran
    https://framapic.org/j4FYWFvZmHVI/sOyIzEz0Gl7F.png

    L’idée étant pour accéder au fil d’activités et autres menu du groupe visité d’obliger à s’inscrire sinon il ne voit que la description, l’avatar et le bouton pour rejoindre

    Ah par contre j’ai oublié de préciser que j’écris le code dans bp-custom.php

    #9357
    Photo du profil de Dan
    Dan
    Admin bbPress

    Je me suis penché sur ta question et trouvé qu’il y avait bien plus simple à faire.
    Plutôt que de t’embarasser à écrire des fonctions, tu pourrais simplement agir directement depuis le template principal des groupes qui est ici: bp-legacy/budypress/groups/single/home.php

    A la ligne 38, juste après </div><!-- #item-header --> tu colles ceci:

    <?php
    //$user_id = bp_loggedin_user_id();
    //$status = bp_get_group_status();
    //print_r($status);
    //if ( $status = 'public' && is_user_logged_in() && bp_group_is_member() ) :
    
    if ( is_user_logged_in() && bp_group_is_member() ) :
    ?>

    et à la ligne 156, juste après le tag php ouvrant, tu colles ça:

    else :
       echo 'Il faut faire partie du groupe pour voir cette page.';
    endif;

    Et le tour est joué !
    Quiconque n’est pas membre du groupe ne verra que l’en-tête, le bouton Join Group, la description, les avatars des admins et des modos et le message « il faut faire partie du groupe ».

    Dans le premier snippet, il y a des lignes commentées qui concernent le statut du groupe. A mon avis tu n’as pas besoin de t’en servir, le check sur bp_group_is_member est suffisant quel que soit le statut d’un groupe.

    #9360
    Photo du profil de Hervé D
    Hervé D
    Participant

    Salut
    Merci pour cette suggestion certainement fonctionnelle.
    Je vais encore chercher un peu pourquoi cela bloque par ailleurs car même si j’imagine que je peux bien l’intégrer au thème enfant. La multiplication des pages surchargée + les autres fichiers fait que j’ai de plus en plus de mal à gérer le suivi dans le temps sachant que je ne suis pas que des sites BP ni même WP!
    @+

5 sujets de 1 à 5 (sur un total de 5)
  • Le sujet ‘Masquage activités et sélecteur si non membre du groupe public’ est fermé à de nouvelles réponses.
Aller à la barre d’outils