Replies
Hi Jay,
Is it not allowing you to add more than 1193, There is no limit(It is being stored in options table which is a mysql longtext field(which is around 4GB and should allow more than 100K emails(not great for performance though as we load it as array)).Can you please explain the current behavior( anyone can register with any email?)
- Brajesh Singh on February 1, 2016 at 7:22 pm in reply to: [Resolved] Mediapress – Predefined User Galleries #2477
You are most welcome. It a pleasure to support MediaPress 🙂
Have you removed the old code and action from last step? If yes, then it should only create 3 galleries per user.
if there was an older gallery, then that will exists. Can you please try it by creating a new user and then logging as the user and visiting his/her profile.
- Brajesh Singh on February 1, 2016 at 6:30 pm in reply to: [Resolved] Mediapress – Predefined User Galleries #2474
Hi,
Thank you. The code below is modified code from last step.Here, we have broken the auto creation into 2 functions to make it even simpler.
/** * Creates a gallery * * @param array $args * @type int $creator_id owner of the gallery * @type string $title gallery title * @type string $description gallery description * @type string $status possible values( public, private, loggedin etc) * @type string $component possible values( 'members', 'groups' etc) * @type int $component_id owner id( user_id or group id depending on specified $component) * @type string $type media type( possible values photo, audio, video, doc) * * @return int|boolean|WP_Error */ function mpp_custom_create_gallery( $args ) { $user_id = get_current_user_id(); $default = array( 'creator_id' => $user_id, 'title' => '', '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" ); $args = wp_parse_args( $args, $default ); $gallery_id = mpp_create_gallery( $args ); return $gallery_id; } 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 ) ) { $gallery_id = mpp_custom_create_gallery( array( 'title' => 'Smple Gallery 1', 'type' => 'photo', //can be 'audio', 'video', 'doc' 'status'=> mpp_get_default_status() ) ); //let us keep the id in usermeta to avoid creating it again, right? if ( $gallery_id && ! 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 //2nd gallery if ( ! get_user_meta( $user_id, '_mpp_predefined_gallery_photo_2', true ) ) { $gallery_id = mpp_custom_create_gallery( array( 'title' => 'Smple Gallery 2', 'type' => 'photo', //can be 'audio', 'video', 'doc' 'status'=> mpp_get_default_status() ) ); //let us keep the id in usermeta to avoid creating it again, right? if ( $gallery_id && ! is_wp_error( $gallery_id ) ) { update_user_meta( $user_id, '_mpp_predefined_gallery_photo_2', $gallery_id ); //you can change the key to anything } } //3rd gallery if ( ! get_user_meta( $user_id, '_mpp_predefined_gallery_photo_3', true ) ) { $gallery_id = mpp_custom_create_gallery( array( 'title' => 'Smple Gallery 3', 'type' => 'photo', //can be 'audio', 'video', 'doc' 'status'=> mpp_get_default_status() ) ); //let us keep the id in usermeta to avoid creating it again, right? if ( $gallery_id && ! is_wp_error( $gallery_id ) ) { update_user_meta( $user_id, '_mpp_predefined_gallery_photo_3', $gallery_id ); //you can change the key to anything } } //and so on } add_action( 'mpp_actions', 'mpp_custom_auto_create_gallery' );So, please use this code for the last part instead of the previous. I hope, It gives you better idea.
- Brajesh Singh on February 1, 2016 at 5:17 pm in reply to: [Resolved] Mediapress – Predefined User Galleries #2472
Hi,
No problem. I can do that in a minute. Can you please give me the Name for galleries and type for these galleries.Thank you
Brajesh - Brajesh Singh on February 1, 2016 at 5:10 pm in reply to: [Resolved] Mediapress – Predefined User Galleries #2470
Thank you. I am happy it is working. Please do let me know how it went.
Hi Kenny,
You can. what is the change in code that you have made? I don’t need the stripe code, just a skeleton idea.Thank you
Brajesh- Brajesh Singh on February 1, 2016 at 4:04 pm in reply to: [Resolved] Mediapress – Predefined User Galleries #2467
Hi,
My mistake, I forgot the code block to attach the creation functionPlease add this line too
add_action( 'mpp_actions', 'mpp_custom_auto_create_gallery' ); - Brajesh Singh on February 1, 2016 at 3:06 pm in reply to: [Resolved] Mediapress – Predefined User Galleries #2464
Thank you. I am looking forward to hear your experience. Please do let me know if you need further assistance.
- Brajesh Singh on February 1, 2016 at 2:36 pm in reply to: [Resolved] Mediapress – Predefined User Galleries #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.
- Brajesh Singh on February 1, 2016 at 2:27 pm in reply to: [Resolved] Mediapress – Predefined User Galleries #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 5 years, 7 months ago by
Brajesh Singh. Reason: updated to fix the gallery creation. Was missing the template redirect hook attachment
- This reply was modified 5 years, 7 months ago by