Jump to content

Promote Members by Reputation Points/Likes


Adriano Faria

Recommended Posts

%7Boption%7D



File Name: Promote Members by Reputation Points/Likes

File Submitter: Adriano Faria

File Submitted: 25 Feb 2013

File Category: Promotion

Supported Versions: IP.Board 3.4.x



This hook will promote members when they reach the number of reputation points/likes set for each group on Manage Member Groups.

A new tab will be (named Promote) added on Manage Member Groups. There you can choose for which group those users will be promoted and you will type the number of reputation points/likes that each user must gain in order to be promoted.

Compatibility:

  • IP.Board 3.4.X
  • IP.Board 3.3.X



here to download this file

Link to comment
Share on other sites

  • 3 weeks later...
  • 1 month later...

Hey, Adriano - I just purchased this and it is not working... I uploaded into the root folder and it is not showing into the "Applications Not Installed". Can you check if you included everything needed into the zip file? Thanks.

Edit: Never mind - it is a hook not an app. You should update the installation instructions. It seems to work as intended.

Link to comment
Share on other sites

  • 2 months later...

This plugin isn't quite working. It seems to be also including secondary groups when deciding to promote users. So let's say I have three levels of users A > B > C that promote in this order. A requires a min of 0 rep, B requires 500 rep, and C requires 1000 rep..

If C happens to have A as a secondary group C will be *switched* to B even though it already has enough reputation to remain at C. Also it doesn't seem as though the second level of promotion even works. If A is promoted to B that's where it ends.. the B to C never happens.

Link to comment
Share on other sites

It doesn't check secondary groups. It works exacly like reputation thingy (by posts) from IP.Board:

            if ( $user['g_promotion_reps'] != '' )
            {
                list( $gid, $reps ) = explode( '&', $user['g_promotion_reps'] );
                        
                if ( $gid > 0 and $reps > 0 )
                {
                    if ( $user['pp_reputation_points'] >= $reps )
                    {
                        IPSMember::save( $member_id, array( 'core' => array( 'member_group_id' => $gid ) ) );
                    }
                }
            }

It creates a new column on groups table and compare everytime a like/positive reputation point is given, it checks with that column to change the member_group_id.

Link to comment
Share on other sites

  • 1 month later...

Yes, it will work, since they are different stuff. I just don't think it's a good thing to do. You can mess things. Example: you set Group X to 50 posts and Group Y to 100 posts. But if you set 100 likes to Group X, user will come back to Group X.... And when he posts again, will go to Group Y again. Next reputation point, Group X.

The ideal is user one OR another.

Link to comment
Share on other sites

  • 5 months later...
  • 2 months later...

Yes but like this lets say this is what i really want to do:
I have rank Newbie and rank Member now
I put on newbie 25 posts to promote to member
And i put on your hook 50 rep to promote newbie to member

So it will work then to promote newbie to member on 25 posts and 50 reps or it will promote it directly when it hits 25 posts? :S

Link to comment
Share on other sites

Nope... one thing works regardless the other. So if you use 25 POSTS to go from newbie to members and 50 LIKES from members to something else, it will work... UNLESS you allow newbie to receive reputation and the user got 50 likes before 25 posts... that's what I say that can confuse you... in this case, he'll go from newbie to something else, skipping MEMBERS. Do you understand ?

Link to comment
Share on other sites

if ( $user['pp_reputation_points'] >= $reps )
                    {
                        IPSMember::save( $member_id, array( 'core' => array( 'member_group_id' => $gid ) ) );

to something like

if ( $user['pp_reputation_points'] >= $reps && $user['pp_posts'] >= $posts )
                    {
                        IPSMember::save( $member_id, array( 'core' => array( 'member_group_id' => $gid ) ) );

this is not correct for sure $user['pp_posts'] idk how is it managed in ipb :smile:

And users could just ignore default feature or remove it or edit it idk ?

Link to comment
Share on other sites

  • 8 months later...

Archived

This topic is now archived and is closed to further replies.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...