BuddyDev

Search

[Resolved] Mediapress – Predefined User Galleries

  • Participant
    Level: Initiated
    Posts: 12
    NeoLeo on #2455

    Hi,

    I need to have a set of predefined user galleries. Users will NOT be allowed to create any more new galleries, instead will upload necessary images under the predefined gallery. (eg: Official photos, recreational photos, religious photos, etc. and all the users will see ONLY these albums in their profiles where they can upload new images).

    Additionally, I need to split the images and videos into separate entities. Currently it’s all in one.

    Appreciated if you can provide me a solution for this ASAP.

    Thanks!

  • Keymaster
    (BuddyDev Team)
    Posts: 24593
    Brajesh Singh on #2456

    Hi,
    Thank you for asking. I have a few questions before I can put the sample code for you.

    1. Do you want users to be able to upload from activity or not?

    2. Do you want to allow users to delete the predefined galleries or not?

    3. Can you please explain what do you mean by

    “Additionally, I need to split the images and videos into separate entities. Currently it’s all in one.”

    MediaPress does not allow uploading video/photo to one gallery. It is the default behaviour to have separate galleries for each of the type.

    Thank you
    Brajesh

  • Participant
    Level: Initiated
    Posts: 12
    NeoLeo on #2457

    Brajesh,

    Thank you for your prompt attention. Following are the answers for the questions you’ve raised:

    1. Do you want users to be able to upload from activity or not?
    A: Not from the activity. Instead, I want them to upload from a separate link / section / menu item.

    2. Do you want to allow users to delete the predefined galleries or not?
    A: Users should NOT be able to delete or add or modify the predefined galleries. All they can do is add new images into the existing galleries (which serves as a virtual category)

    3. Can you please explain what do you mean by

    “Additionally, I need to split the images and videos into separate entities. Currently it’s all in one.”

    A: I noticed that when you are to upload new videos/images, on the upload section it is given an option to select whether it’s an image or video. Instead, I do not want that to be in a drop down, and I want them to be in separate sections. You select “Video upload” it will be the video upload section. If you select “Image upload” it will be the image upload section.

    I hope I’ve made clear your doubts. Appreciate your prompt input.

    Thanks!

  • Keymaster
    (BuddyDev Team)
    Posts: 24593
    Brajesh Singh on #2458

    Thank you. That makes it clear. I will have some code in 30 mins to an hour.

    Thank you
    Brajesh

  • Participant
    Level: Initiated
    Posts: 12
    NeoLeo on #2459

    Thank you Brajesh!

    Looking forward for it!

    Cheers!

  • Keymaster
    (BuddyDev Team)
    Posts: 24593
    Brajesh Singh on #2460

    Thank you. Here we go with the code. Please put these code blocks in your bp-custom.php

    1. Let us stop user from creating gallery

    
    
    // Stop gallery creation, only superadmin can
    function mpp_custom_check_gallery_create_permission( $can_do, $component,  $user_id ) {
    	
    	if ( is_super_admin() ) {
    		$can_do = true; //ok super admin can create it
    	} else {
    		$can_do = false;//no one else can
    	}
    	
    	return $can_do;
    }
    
    add_filter( 'mpp_user_can_create_gallery', 'mpp_custom_check_gallery_create_permission', 10, 3 );
    
    

    That will stop users from creating gallery. Site admins can still create it.

    2. Let us stop users from editing gallery

    
    // Restrict gallery editing
    function mpp_custom_check_gallery_edit_permission( $can, $gallery, $user_id ){
    	// only superadmin can
    	if ( is_super_admin() ) {
    		$can =  true;
    	} else {
    		$can = false;
    	}
    	
    	return $can;//do not allow it at all
    }
    
    add_filter( 'mpp_user_can_edit_gallery', 'mpp_custom_check_gallery_edit_permission', 10, 3 );
    
    

    That will stop users from editing gallery but allow siteadmins to do so.

    Step 3: Let us stop users from deleting gallery

    
    
    // Restrict gallery deletion
    function mpp_custom_check_gallery_delete_permission( $can, $user_id ){
    	// only superadmin can
    	if ( is_super_admin() ) {
    		$can =  true;
    	} else {
    		$can = false;
    	}
    	
    	return $can;//do not allow it at all
    }
    
    add_filter( 'mpp_user_can_delete_gallery', 'mpp_custom_check_gallery_delete_permission', 10, 2 );
    

    and the final step, let us create the predefined galleries automatically for the user.
    In this example, I have created only one gallery, you can modify the repeatable block(make sure to change the user meta key for each) and create as many predefined galleries as you want. When a user visits his/her own profile, the galleries will be created.

    
    function mpp_custom_auto_create_gallery() {
    	
    	if ( ! bp_is_my_profile() ) {
    		return ;
    	}
    	
    	//make sure that user gallery functions are available
    	if ( ! function_exists( 'mpp_create_gallery' ) ) {
    		return;
    	}
    	
    	
    	$user_id = get_current_user_id();
    		
    	//does this user has predefined gallery?
    	//we use this check to avoid same type of gallery again and again for the user
    	if ( ! get_user_meta(  $user_id, '_mpp_predefined_gallery_photo_1', true ) ) {
    		//No, then we need to create it.
    		
    		//repeat it as you want
    		$gallery_id = mpp_create_gallery( array(
    			'creator_id'	 => $user_id,
    			'title'			 => __( 'Predefined Photo Gallery' ),
    			'description'	 => '', //add description if any
    			'status'		 => mpp_get_default_status(),//can use any of the status e.g. 'public' , 'private', 'loggedin', 'friends' etc
    			'component'		 => 'members',//for user
    			'component_id'	 => $user_id,//no need to change
    			'type'			 => 'photo', //can change to "audio", "video", "doc"
    		) );
    	
    		//let us keep the id in usermeta to avoid creating it again, right?
    		if ( !  is_wp_error( $gallery_id ) ) {
    			update_user_meta( $user_id, '_mpp_predefined_gallery_photo_1', $gallery_id ); //you can change the key to anything
    
    		}
    		
    	}//end of repeatable block
    	
    	//go ahead, do it for other types too
    	
    	
    	
    }
    add_action( 'bp_template_redirect', 'mpp_custom_auto_create_gallery');
    
    

    Please do let me know how it goes for you.

    Thank you
    Brajesh

    • This reply was modified 4 years, 3 months ago by Brajesh Singh. Reason: updated to fix the gallery creation. Was missing the template redirect hook attachment
  • Participant
    Level: Initiated
    Posts: 12
    NeoLeo on #2461

    Thank you so much for getting back with the code Brajesh.

    One thing i need to know is, “make sure to change the user meta key for each”. Can you please make it a bit more clear before I proceed?

    Thanks!

  • Keymaster
    (BuddyDev Team)
    Posts: 24593
    Brajesh Singh on #2462

    Thank you.

    As you might see, I am using usermeta to avoid creating the same gallery again and again for the user.
    Since you are going to create multiple galleries(and in future you may want to even add some more), so my idea was to use 1 user meta per gallery to avoid duplicate but keep the options open for user.

    Using a different usermeta key for each gallery will allow you to achieve that goal. Hope that helps.

  • Participant
    Level: Initiated
    Posts: 12
    NeoLeo on #2463

    Ok Thank you Brajesh. I will mingle with the coding and will let you know the outcome.

    Thanks again!

    Cheers!

  • Keymaster
    (BuddyDev Team)
    Posts: 24593
    Brajesh Singh on #2464

    Thank you. I am looking forward to hear your experience. Please do let me know if you need further assistance.

The topic ‘ [Resolved] Mediapress – Predefined User Galleries’ is closed to new replies.

This topic is: resolved