[On y travaille] Masquage activités et sélecteur

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

    Bonsoir

    IL y a quelques temps tu avais fournis un bout de code afin d’enlever des affichages de l’activité ***
    1/ Je galère depuis quelques temps avec rtmedias (mais je pense que ce serait la même chose avec un autre plugin). L’affichage des images d’une note ne se fait pas. J’ai trouvé l’astuce d’ajouter manuellement ‘rtmedia_update’ mais cela ne fonctionne a nouveau plus depuis quelques semaines
    Je me demande si l’évolution de BP n’a pas eu des répercussions sur cette astuce !??

    2/Et/ou je constate que le filtrage en haut de la page à droite « Afficher par activité: » avec le sélecteur n’a jamais bien fonctionné après l’application de cette astuce
    Merci pour ton aide

    ***

    add_filter( 'bp_after_has_activities_parse_args', 'my_bp_activity_types' );
    function my_bp_activity_types( $retval ) {
        $retval['action'] = array(        
            'activity_comment',
    	'activity_update',
    	'created_group',
    	//'friendship_created'
    	'joined_group',
    	'last_activity',
    	//'new_avatar',
    	'new_blog_comment',
            'new_blog_post',
    	//'new_member',
    	'updated_profile',
    	'rtmedia_update' // ajout important sinon on perd l'affichage des médiaq                
        ); 
        return $retval;
    }

    ***

    #9141
    Photo du profil de Dan
    Dan
    Admin bbPress

    Hello @hdcms,

    1) je ne connais pas rtmedia autrement que de nom.
    2) La fonction que tu utilises pour afficher des activités est toujours d’actualité.

    Mais cette fonction ne fait que gérer l’affichage des activités, elle n’ajoute pas de sélecteur au filtre existant. Pour cela, il faut utiliser des fonctions supplémentaires, comme expliqué sur le codex.

    Pour illustrer le propos, voici un exemple pour afficher un nouvel item au sélecteur et déclencher l’affichage dans les activités du site.

    
    /* on créé un nouveau sélecteur pour le filtre d'activités */
    function bpfr_custom_activity_filter_options() {
        if ( is_user_logged_in() )
             echo '<option value="personal">Personnel</option>';
    }
    add_action( 'bp_activity_filter_options', 'bpfr_custom_activity_filter_options' );
    
    /* on déclenche l'affichage de la nouvelle activité */
    function bpfr_custom_ajax_querystring( $query_string, $object ) {
    
    	if ( 'activity' != $object ) 
    		return $query_string;
    
    	if ( ! bp_is_activity_directory() ) 
    		return $query_string;
    
    	$query_args = wp_parse_args( $query_string, array() );
    
    	if( isset( $query_args['action'] ) && $query_args['action'] == 'personal' ) {
    	
    		$query_args = array();
    		$query_args['user_id'] = bp_loggedin_user_id();
    		$query_string = http_build_query( $query_args );
    
    	}
    	
    	return $query_string;
    
    }
    add_filter( 'bp_ajax_querystring', 'bpfr_custom_ajax_querystring', 20, 2 );

    Essaye de changer le nom de l’action (personal) en rtmedia_update.

    Voilà pour la théorie. Maintenant, je suis très étonné que rtMedia ne propose pas cela en natif. Je te conseille donc de te tourner vers le support, avant de faire quoi que ce soit de ton côté. Ce sera le meilleur moyen d’en avoir le coeur net et pour obtenir des informations exploitables.

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

    Bonjour,
    Merci pour ce tips.
    Je l’ai mis en œuvre, seul problème il m’affiche aussi des notes avec events manager mais je suis en contact avec rtmedias pour la suite

    Mais là ou je passe pas de temps et qui ne fonctionne pas depuis quelques mois, c’est le sélecteur des options dès que j’active « add_filter( ‘bp_after_has_activities_parse_args’, ‘my_bp_activity_types’ ); ».
    Ce dernier me filtrant bien les éléments basiques de BP
    Il faut donc que j’applique probablement la même chose sur le sélecteur

    J’ai vu sur le forum tu avais aidé quelqu’un a enlever l’affichage de bbpress, mais je n’arrive pas à transposer aux éléments que je ne veux pas afficher de BP (‘friendship_created’, ‘new_avatar’, ‘new_member’ )

    add_action( 'bp_init', 'bpfr_remove_activity_dropdown_label', 8 );
    function bpfr_remove_activity_dropdown_label() {
     // remove_action( 'bp_register_activity_actions', 'friends_register_activity_actions' ); 
    }
    
    #9159
    Photo du profil de Dan
    Dan
    Admin bbPress

    Bon, y’a du boulot là.
    – Le sélecteur n’agit que sur des activités existantes. Tu peux ajouter ou retirer autant d’ptions que tu veux au select, si aucune activité ne correspond, ça ne fonctionne pas.

    Quand tu utilises bp_parse_args, ça n’a rien à voir avec le sélecteur. Cette fonction affiche les activités que tu lui demandes de traiter.

    Par exemple tu retires les infos concernant les updates. Elles seront retirées de l’affichage des activités mais ça n’aura aucune incidence sur l’affichage du filtre Updates dans le sélecteur. Et tu auras beau cliquer dessus, il ne se passera rien, puisque tu as parsé les updates.

    J’ai trouvé ce snippet chez rtMedia et il fait exactement ce qu’il doit faire: ajouter une option au sélecteur d’activité. Et je n’utilise pas rtMedia.

    function add_media_show_filter( $filters, $context ) {
        $filters['rtmedia_update'] = 'rtMedia Updates';
        return $filters;
    } 
    add_filter('bp_get_activity_show_filters_options', 'add_media_show_filter', 10, 2 );

    Je pense que tu as un problème avec la terminologie. Ce n’est pas parce qu’il y a le mot filtre que ça va filtrer ce que tu imagines. Le terme, dans le cas de ce snippet, s’applique au filtre qui gère l’affichage du HTML du sélecteur. C’est explicite pourtant bp_get_activity_show_filters_options, non ? Dans le code source de BP (bp-activity-template.php), ça donne ceci:

    if ( ! empty( $filters ) ) {
       foreach ( $filters as $value => $filter ) {
          $output .= '' . "\n";
       }
    }

    Ce qui donne au final (snippet rtMedia + BP) dans le code source de la page: <option value="rtmedia_update">rtMedia Updates</option> que tu vois dans le sélecteur de tri.

    A présent, voici comment enlever un option du sélecteur. Comme tu l’as sans doute remarqué, il s’affiche un peu partout, mais ne contient pas les mêmes éléments, selon le contexte. Activité du site ou activité d’un groupe par exemple ne sont pas identiques. Tu liras les détails dans les commentaires du snippet.

    function bpfr_remove_filters_options( $filters, $context ) { 
    /*
     * @param string $context Context for the filter. 'activity', 'member', 'member_groups', 'group'. */
       if ( 'activity' == $context ) {
                // commenter les lignes qu'on veut afficher
    		$remove_these = array(
    		//	'New Members'		=> __( 'New Members', 	   'buddypress' ),
    			'Profile Updates'	=> __( 'Profile Updates',  'buddypress' ),
    		//	'Updates'		=> __( 'Updates', 	   'buddypress' ),
    			'Friendships'		=> __( 'Friendships', 	   'buddypress' ),
    		//	'Group Updates'		=> __( 'Group Updates',    'buddypress' ),
    			'New Groups'		=> __( 'New Groups',       'buddypress' ),
    			'Group Memberships'     => __( 'Group Memberships','buddypress' ),
    		//	'Posts'		        => __( 'Posts', 	   'buddypress' ),
    			'Comments'	        => __( 'Comments', 	   'buddypress' ),
    		); 
    		
    		foreach ( $filters as $key => $val ) {
    		
    			if ( in_array( $val, $remove_these ) )
    				unset( $filters[ $key ] );			
    		}	
    	} 
       return $filters;     
    } 
    add_filter( 'bp_get_activity_show_filters_options', 'bpfr_remove_filters_options', 10, 2 );

    En relisant tout le sujet tu devrais à présent pouvoir t’en sortir, au moins pour gérer la partie BuddyPress.
    La fonction de ton premier post gère les activités du site à un niveau global.
    Et dans ce post tu as de quoi ajouter et retirer des options au sélecteur contextuel d’affichage des activités (à ne pas confondre avec le sélecteur des annuaires de membres, de groupes ou de blogs).

    Bon week-end !

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

    Bonjour
    Bon un peu de recul fais du bien.
    J’avais bien compris la différence entre l’affichage des contenus dans le fil et le sélecteur. Mais voilà perturbé par la recherche d’ajout de l’option pour rtmedias. Ton code fonctionne bien dans un thème twenty mais pas dans le thème acheté. C’est toujours mieux que le code fourni par rtmedias qui ne fonctionne pas du tout (il me demande de le mettre dans le thème parent!).

    add_filter( 'bp_get_activity_show_filters_options', 'add_rtmedia_update_into_bp_activity_filter', 10, 2 );
    function add_rtmedia_update_into_bp_activity_filter( $filters, $context ){
        if( isset( $filters['activity_update'] ) ){
            $filters['activity_update, rtmedia_update'] = $filters['activity_update'];
            unset( $filters['activity_update'] );
        }
        return $filters;
    }

    Bon je vais voir maintenant avec les développeurs du thème 🙁
    Sinon j’ai vu que tu as fait une super mise à jour de http://snippetbarn.bp-fr.net/ .Je regarde en même temps.
    Merci

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