Skip to:
Content
Pages
Categories
Search
Top
Bottom

Search Results for 'hide admin in directory'

Viewing 3 results - 76 through 78 (of 78 total)
  • Author
    Search Results
  • #61121
    Bowe
    Participant

    I don’t have a solution for all your problems but assigning different “user” types to your site is easy:

    – Create a xprofile field in your BuddyPress admin. For example: What kind of user are you:

    a. Swimmer

    b. Skater

    c. Surfer

    – Install the BP Member filter plugin: https://buddypress.org/forums/topic/bp-member-filter

    – Users can now filter members on the member directory page to find certain usertypes

    The only thing you might want to look into is to show/hide specific xprofile fields for different groups. That’s more advanced and requires some new code to be written by someone ;)

    Good luck!

    edit: Maybe if you combine both tips from Boris and me you just got your solution ;)

    ps: I’m interested in the jquery profile fields stuff as well.. sounds handy!

    #59885
    Anonymous User 96400
    Inactive

    @Bowe

    setting up different group types is fairly easy. You just have to attach some groupmeta to the group, that basically let you add as many types as you’d like. Then you just check the metadata to figure out what type of group you’re in. Using the groups API you can then add different functionality for different groups.

    I’ve written a types-plugin for one of my sites. It doesn’t have an interface, though. The 3 types I needed are hardcoded into it, so it’s really not suited for a release at the moment. There’s also a lot of more stuff, like a shopping cart, part of that plugin. So, I’ve stripped the functions needed for group types out (hopefully al of them).

    First we need to add the addtional fields to our registration form:

    function sv_add_registration_group_types()
    {
    ?>
    <div id="account-type" class="register-section">
    <h3 class="transform"><?php _e( 'Choose your account type (required)', 'group-types' ) ?></h3>

    <script type="text/javascript" defer="defer">
    jQuery(document).ready(function(){
    jQuery("#account-type-normal_user").attr("checked", true);
    jQuery("#group-details").hide();
    jQuery("#account-type-type_one,#account-type-type_two,#account-type-type_three").click(function(){
    if (jQuery(this).is(":checked")) {
    jQuery("#group-details").slideDown("slow");
    } else {
    jQuery("#group-details").slideUp("slow");
    }
    });
    jQuery("#account-type-normal_user").click(function(){
    if (jQuery(this).is(":checked")) {
    jQuery("#group-details").slideUp("slow");
    } else {
    jQuery("#group-details").slideDown("slow");
    }
    });
    });
    </script>

    <?php do_action( 'bp_account_type_errors' ) ?>
    <label><input type="radio" name="account_type" id="account-type-normal_user" value="normal_user" checked="checked" /><?php _e( 'User', 'group-types' ) ?></label>
    <label><input type="radio" name="account_type" id="account-type-type_one" value="type_one" /><?php _e( 'Type 1', 'group-types' ) ?></label>
    <label><input type="radio" name="account_type" id="account-type-type_two" value="type_two" /><?php _e( 'Type 2', 'group-types' ) ?></label>
    <label><input type="radio" name="account_type" id="account-type-type_three" value="type_three" /><?php _e( 'Type 3', 'group-types' ) ?></label>

    <div id="group-details">
    <p><?php _e( 'We will automatically create a group for your business or organization. This group will be tailored to your needs! You can change the description and the news later in the admin section of your group.', 'group-types' ); ?></p>

    <?php do_action( 'bp_group_name_errors' ) ?>
    <label for="group_name"><?php _e( 'Group Name', 'scuba' ) ?> <?php _e( '(required)', 'buddypress' ) ?></label>
    <input type="text" name="group_name" id="group_name" value="" />
    <br /><small><?php _e( 'We suggest you use the name of your business or organization', 'group-types' ) ?></small>

    <label for="group_desc"><?php _e( 'Group Description', 'scuba' ) ?></label>
    <textarea rows="5" cols="40" name="group_desc" id="group_desc"></textarea>
    <br /><small><?php _e( 'This description will be visible on your group profile, so it could be used to present your mission statement for example.', 'group-types' ) ?></small>

    <label for="group_news"><?php _e( 'Group News', 'scuba' ) ?></label>
    <textarea rows="5" cols="40" name="group_news" id="group_news"></textarea>
    <br /><small><?php _e( 'Enter any news that you want potential members to see.', 'group-types' ) ?></small>
    </div>
    </div>
    <?php
    }
    add_action( 'bp_before_registration_submit_buttons', 'sv_add_registration_group_types' );

    Then we have to validate things and add some usermeta when a regitration happens:

    /**
    * Add custom userdata from register.php
    * @since 1.0
    */
    function sv_add_to_signup( $usermeta )
    {
    $usermeta['account_type'] = $_POST['account_type'];

    if( isset( $_POST['group_name'] ) )
    $usermeta['group_name'] = $_POST['group_name'];

    if( isset( $_POST['group_desc'] ) )
    $usermeta['group_desc'] = $_POST['group_desc'];

    if( isset( $_POST['group_news'] ) )
    $usermeta['group_news'] = $_POST['group_news'];

    return $usermeta;
    }
    add_filter( 'bp_signup_usermeta', 'sv_add_to_signup' );

    /**
    * Update usermeta with custom registration data
    * @since 1.0
    */
    function sv_user_activate_fields( $user )
    {
    update_usermeta( $user['user_id'], 'account_type', $user['meta']['account_type'] );

    if( isset( $user['meta']['group_name'] ) )
    update_usermeta( $user['user_id'], 'group_name', $user['meta']['group_name'] );

    if( isset( $user['meta']['group_desc'] ) )
    update_usermeta( $user['user_id'], 'group_desc', $user['meta']['group_desc'] );

    if( isset( $user['meta']['group_news'] ) )
    update_usermeta( $user['user_id'], 'group_news', $user['meta']['group_news'] );

    return $user;
    }
    add_filter( 'bp_core_activate_account', 'sv_user_activate_fields' );

    /**
    * Perform checks for custom registration data
    * @since 1.0
    */
    function sv_check_additional_signup()
    {
    global $bp;

    if( empty( $_POST['account_type'] ) )
    $bp->signup->errors['account_type'] = __( 'You need to choose your account type', 'group-types' );

    if( empty( $_POST['group_name'] ) && $_POST['account_type'] != 'normal_user' )
    $bp->signup->errors['group_name'] = __( 'You need to pick a group name', 'group-types' );

    if( ! empty( $_POST['group_name'] ) && $_POST['account_type'] != 'normal_user' )
    {
    $slug = sanitize_title_with_dashes( $_POST['group_name'] );
    $exist = groups_check_group_exists( $slug );
    if( $exist )
    $bp->signup->errors['group_name'] = __( 'This name is not available. If you feel this is a mistake, please <a href="/contact">contact us</a>.', 'group-types' );
    }
    }
    add_action( 'bp_signup_validate', 'sv_check_additional_signup' );

    And then we set up the group for the user (there are some constants in this function, so you’ll need to change that):

    /**
    * Create custom groups for skools, biz and org accounts
    * @since 1.0
    */
    function sv_init_special_groups( $user )
    {
    global $bp;

    // get account type
    $type = get_usermeta( $user['user_id'], 'account_type' );

    if( $type == 'normal_user' )
    {
    // Do nothing
    }
    elseif( $type == 'type_one' || $type == 'type_two' || $type == 'type_three' )
    {
    // get some more data from sign up
    $group_name = get_usermeta( $user['user_id'], 'group_name' );
    $group_desc = get_usermeta( $user['user_id'], 'group_desc' );
    $group_news = get_usermeta( $user['user_id'], 'group_news' );

    $slug = sanitize_title_with_dashes( $group_name );

    // create dive skool group
    $group_id = groups_create_group( array(
    'creator_id' => $user['user_id'],
    'name' => $group_name,
    'slug' => $slug,
    'description' => $group_desc,
    'news' => $group_news,
    'status' => 'public',
    'enable_wire' => true,
    'enable_forum' => true,
    'date_created' => gmdate('Y-m-d H:i:s')
    )
    );
    // add the type to our group
    groups_update_groupmeta( $group_id, 'group_type', $type );

    // delete now useless data
    delete_usermeta( $user['user_id'], 'group_name' );
    delete_usermeta( $user['user_id'], 'group_desc' );
    delete_usermeta( $user['user_id'], 'group_news' );

    // include PHPMailer
    require_once( SV_MAILER . 'class.phpmailer.php' );

    $mail = new PHPMailer();
    $mail->IsSMTP();
    $mail->Host = SV_SMTP;

    $auth = get_userdata( $user['user_id'] );
    $profile_link = $bp->root_domain . '/' . $bp->groups->slug . '/' . $slug . '/admin';

    $message = sprintf( __( 'Hello %s,

    we have created a group for your business or organization. To get more out of your presence on Yoursitenamehere please take some time to set it up properly.

    Please follow this link to fill in the rest of your profile: %s

    We wish you all the best. Should you have any questions regarding your new group, please contact us at support@yoursitenamehere.com.

    Your Yoursitenamehere Team', 'group-types' ), $auth->display_name, $profile_link );

    $mail->SetFrom("support@yoursitenamehere.com","Yoursitenamehere");
    $mail->AddAddress( $auth->user_email );

    $mail->Subject = __( 'Your new group pages on Yoursitenamehere', 'group-types' );
    $mail->Body = $message;
    $mail->WordWrap = 75;
    $mail->Send();
    }
    }
    add_action( 'bp_core_account_activated', 'sv_init_special_groups' );

    When you write a group extension we’ll have to swap the activation call with a function like the one below to be able to check for group types.

    /**
    * Replacement activation function for group extension classes
    */
    function activate_type_one()
    {
    global $bp;
    $type = groups_get_groupmeta( $bp->groups->current_group->id, 'group_type' );
    if( $type == 'type_one' )
    {
    $extension = new Group_Type_One;
    add_action( "wp", array( &$extension, "_register" ), 2 );
    }
    }
    add_action( 'plugins_loaded', 'activate_type_one' );

    The last thing we need to do is add our group type names to group and directory pages:

    /**
    * Modify the group type status
    */
    function sv_get_group_type( $type, $group = false )
    {
    global $groups_template;

    if( ! $group )
    $group =& $groups_template->group;

    $gtype = groups_get_groupmeta( $group->id, 'group_type' );
    if( $gtype == 'type_one' )
    $name = __( 'Type 1', 'group-types' );

    elseif( $gtype == 'type_two' )
    $name = __( 'Type 2', 'group-types' );

    elseif( $gtype == 'type_three' )
    $name = __( 'Type 3', 'group-types' );

    else
    $name = __( 'User Group', 'group-types' );

    if( 'public' == $group->status )
    {
    $type = sprintf( __( "%s (public)", "group-types" ), $name );
    }
    elseif( 'hidden' == $group->status )
    {
    $type = sprintf( __( "%s (hidden)", "group-types" ), $name );
    }
    elseif( 'private' == $group->status )
    {
    $type = sprintf( __( "%s (private)", "group-types" ), $name );
    }
    else
    {
    $type = ucwords( $group->status ) . ' ' . __( 'Group', 'buddypress' );
    }

    return $type;
    }
    add_filter( 'bp_get_group_type', 'sv_get_group_type' );

    /**
    * Modify the group type status on directory pages
    */
    function sv_get_the_site_group_type()
    {
    global $site_groups_template;

    return sv_get_group_type( '', $site_groups_template->group );
    }
    add_filter( 'bp_get_the_site_group_type', 'sv_get_the_site_group_type' );

    It’s quite a bit of code, but it should get you started. This hasn’t been tested with 1.2 btw.

    #44161

    In reply to: Antispam plugin

    Paul Wong-Gibbs
    Keymaster

    Possible user error.


    @Arturo
    – check this from the readme. You might have missed it to.

    To install in WordPress MU (Forced Activation/Site-Wide):

    1. Upload the wp-recaptcha folder to the /wp-content/mu-plugins directory

    1. **Move** the wp-recaptcha.php file out of the wp-recaptcha folder so that it is in /wp-content/mu-plugins

    1. Now you should have /wp-content/mu-plugins/wp-recaptcha.php and /wp-content/mu-plugins/wp-recaptcha/

    1. Go to the administrator menu and then go to **Site Admin > reCAPTCHA**

    1. Get the reCAPTCHA keys [here](http://recaptcha.net/api/getkey?domain=www.blaenkdenum.com&app=wordpress \”reCAPTCHA API keys\”) and/or the MailHide keys [here](http://mailhide.recaptcha.net/apikey \”MailHide keys\”)

Viewing 3 results - 76 through 78 (of 78 total)
Skip to toolbar