XF 1.5 Best way to implement ranking system?

Skisma

Member
Hi,

I was wondering if you xF veterans could provide some advise on the best way for me to go about my ranking system. What I'm wanting is a progression system that users go through as their post/message count increases overtime. The main thing I need is for the rank icon to display in the user's .userText box below their title, although it would be awesome if it could show in the user's user card and profile as well. As they rank up, their rank icon will automatically update. That's really it.

So far when doing my research I've found two ways to do it.

The first way requires that I purchase the Master Badge add-on, but the only issue with that is that it's based off of solely the trophy system, thus not allowing me to based my system off of message count. It would have to be based off of trophy points.

The second method basically just makes use of the user groups promotion system. I could just make each rank it's own user group, use the custom css option for the banner to place my images, and add users to the respective groups once they hit that post count. The issue with this is that it will only allow one user group to be displayed, and since the ranking system will be essentially overriding this, I could never use actual user groups/banners. Plus, this doesn't show up in the user cards (I'm referring to the pop-up that displays a user's information when you click a username).

Are there any other possibilities that I'm not seeing? Perhaps an add-on that does this all for me? Because it's unfortunate that I would have to either deal with using trophy points instead of message count, or sacrifice the user group feature to have my own ranking system feature.
 
If you are using message count as the main criteria perhaps use:
[Bd] Medals
In conjunction with user group promotions (core)based on the criteria of message counts.
 
Thanks for the suggestion!

There isn't a description for it though, I guess I'll have to install it and see.

See how you go. Setup User group promotions and demotions(if you need it). If you get stuck feel free to PM me with what you have done so far, with screenshots and information and ill see what i can do.
 
Hi,

I was wondering if you xF veterans could provide some advise on the best way for me to go about my ranking system. What I'm wanting is a progression system that users go through as their post/message count increases overtime. The main thing I need is for the rank icon to display in the user's .userText box below their title, although it would be awesome if it could show in the user's user card and profile as well. As they rank up, their rank icon will automatically update. That's really it.

So far when doing my research I've found two ways to do it.

The first way requires that I purchase the Master Badge add-on, but the only issue with that is that it's based off of solely the trophy system, thus not allowing me to based my system off of message count. It would have to be based off of trophy points.

The second method basically just makes use of the user groups promotion system. I could just make each rank it's own user group, use the custom css option for the banner to place my images, and add users to the respective groups once they hit that post count. The issue with this is that it will only allow one user group to be displayed, and since the ranking system will be essentially overriding this, I could never use actual user groups/banners. Plus, this doesn't show up in the user cards (I'm referring to the pop-up that displays a user's information when you click a username).

Are there any other possibilities that I'm not seeing? Perhaps an add-on that does this all for me? Because it's unfortunate that I would have to either deal with using trophy points instead of message count, or sacrifice the user group feature to have my own ranking system feature.
for ranking based on message count:
edit message_user_info template:
find:
Code:
<xen:if is="@messageShowTrophyPoints AND {$user.user_id} AND {$xenOptions.enableTrophies}">
                    <dl class="pairsJustified">
                        <dt>{xen:phrase trophy_points}:</dt>
                        <dd><a href="{xen:link 'members/trophies', $user}" class="OverlayTrigger concealed">{xen:number $user.trophy_points}</a></dd>
                    </dl>
                </xen:if>

add after:
Code:
<!-- rank images -->
                                <xen:if is="{$user.message_count} > 12500">
                    <dl class="pairsInline">
                        <dd><img src="/images/imagename.png" height="40px" class="Tooltip" title="12,500+ Posts"></dd>
                    </dl>
                <xen:elseif is="{$user.message_count} > 10000" />
                    <dl class="pairsInline">
                        <dd><img src="/images/imagename.png" height="40px" class="Tooltip" title="10,000+ Posts"></dd>
                    </dl>
                <xen:elseif is="{$user.message_count} > 9500" />
                    <dl class="pairsInline">
                        <dd><img src="/images/imagename.png" height="40px" class="Tooltip" title="9,500+ Posts"></dd>
                    </dl>
                                <xen:elseif is="{$user.message_count} > 8500" />
                    <dl class="pairsInline">
                        <dd><img src="/images/imagename.png" height="40px" class="Tooltip" title="8,500+ Posts></dd>
                    </dl>
                <xen:elseif is="{$user.message_count} > 8000" />
                    <dl class="pairsInline">
                        <dd><img src="/images/imagename.png" height="40px" class="Tooltip" title="8,000+ Posts"></dd>
                    </dl>
                <xen:elseif is="{$user.message_count} > 7250" />
                    <dl class="pairsInline">
                        <dd><img src="/images/imagename.png" height="40px" class="Tooltip" title="7,250+ Posts"></dd>
                    </dl>
                                <xen:elseif is="{$user.message_count} > 6500" />
                    <dl class="pairsInline">
                        <dd><img src="/images/imagename.png" height="40px" class="Tooltip" title="6,500+ Posts"></dd>
                    </dl>
                <xen:elseif is="{$user.message_count} > 5750" />
                    <dl class="pairsInline">
                        <dd><img src="/images/imagename.png" height="40px" class="Tooltip" title="5,750+ Posts"></dd>
                    </dl>
                <xen:elseif is="{$user.message_count} > 5000" />
                    <dl class="pairsInline">
                        <dd><img src="/images/imagename.png" height="40px" class="Tooltip" title="5,000+ Posts"></dd>
                    </dl>
                                <xen:elseif is="{$user.message_count} > 4250" />
                    <dl class="pairsInline">
                        <dd><img src="/images/imagename.png" height="40px" class="Tooltip" title="4,250+ Posts"></dd>
                    </dl>
                <xen:elseif is="{$user.message_count} > 3500" />
                    <dl class="pairsInline">
                        <dt>Rank:</dt>
                        <dd><img src="/images/imagename.png" height="40px" class="Tooltip" title="3,500+ Posts"></dd>
                    </dl>
                <xen:elseif is="{$user.message_count} > 2500" />
                    <dl class="pairsInline">
                        <dd><img src="/images/imagename.png" height="40px" class="Tooltip" title="2,500+ Posts"></dd>
                    </dl>
                                 <xen:elseif is="{$user.message_count} > 1250" />
                    <dl class="pairsInline">
                        <dd><img src="/images/imagename.png" height="40px" class="Tooltip" title="1,250+ Posts"></dd>
                    </dl>
                <xen:elseif is="{$user.message_count} > 750" />
                    <dl class="pairsInline">
                        <dd><img src="/images/imagename.png" height="40px" class="Tooltip" title="750+ Posts"></dd>
                    </dl>
                <xen:elseif is="{$user.message_count} > 500" />
                    <dl class="pairsInline">
                        <dd><img src="/images/imagename.png" height="40px" class="Tooltip" title="500+ Posts"></dd>
                    </dl>
                                <xen:elseif is="{$user.message_count} > 350" />
                    <dl class="pairsInline">
                        <dd><img src="/images/imagename.png" height="40px" class="Tooltip" title="350+ Posts"></dd>
                    </dl>
                <xen:elseif is="{$user.message_count} > 275" />
                    <dl class="pairsInline">
                        <dd><img src="/images/imagename.png" height="40px" class="Tooltip" title="275+ Posts"></dd>
                    </dl>
                <xen:elseif is="{$user.message_count} > 230" />
                    <dl class="pairsInline">
                        <dd><img src="/images/imagename.png" height="40px" class="Tooltip" title="230+ Posts"></dd>
                    </dl>
                                <xen:elseif is="{$user.message_count} > 190" />
                    <dl class="pairsInline">
                        <dd><img src="/images/imagename.png" height="40px" class="Tooltip" title="190+ Posts"></dd>
                    </dl>
                <xen:elseif is="{$user.message_count} > 160" />
                    <dl class="pairsInline">
                        <dd><img src="/images/imagename.png" height="40px" class="Tooltip" title="160+ Posts"></dd>
                    </dl>
                <xen:elseif is="{$user.message_count} > 125" />
                    <dl class="pairsInline">
                        <dd><img src="/images/imagename.png" height="40px" class="Tooltip" title="125+ Posts"></dd>
                    </dl>
                                <xen:elseif is="{$user.message_count} > 100" />
                    <dl class="pairsInline">
                        <dd><img src="/images/imagename.png" height="40px" class="Tooltip" title="100+ Posts"></dd>
                    </dl>
                <xen:elseif is="{$user.message_count} > 80" />
                    <dl class="pairsInline">
                        <dd><img src="/images/imagename.png" height="40px" class="Tooltip" title="80+ Posts"></dd>
                    </dl>
                <xen:elseif is="{$user.message_count} > 60" />
                    <dl class="pairsInline">
                        <dd><img src="/images/imagename.png" height="40px" class="Tooltip" title="60+ Posts"></dd>
                    </dl>
                                <xen:elseif is="{$user.message_count} > 40" />
                    <dl class="pairsInline">
                        <dd><img src="/images/imagename.png" height="40px" class="Tooltip" title="40+ Posts"></dd>
                    </dl>
                <xen:elseif is="{$user.message_count} > 25" />
                    <dl class="pairsInline">
                        <dd><img src="/images/imagename.png" height="40px" class="Tooltip" title="25+ Posts"></dd>
                    </dl>
                <xen:else />
                                <dl class="pairsInline">
                                <dd><img src="/images/imagename.png" height="40px" class="Tooltip" title="NooB"></dd>
                                </dl>
                </xen:if>
<!-- end rank images -->

you may need to adapt it to your post counts per user group and change the title to your preference
 
for ranking based on message count:
edit message_user_info template:
find:
Code:
<xen:if is="@messageShowTrophyPoints AND {$user.user_id} AND {$xenOptions.enableTrophies}">
                    <dl class="pairsJustified">
                        <dt>{xen:phrase trophy_points}:</dt>
                        <dd><a href="{xen:link 'members/trophies', $user}" class="OverlayTrigger concealed">{xen:number $user.trophy_points}</a></dd>
                    </dl>
                </xen:if>

add after:
Code:
<!-- rank images -->
                                <xen:if is="{$user.message_count} > 12500">
                    <dl class="pairsInline">
                        <dd><img src="/images/imagename.png" height="40px" class="Tooltip" title="12,500+ Posts"></dd>
                    </dl>
                <xen:elseif is="{$user.message_count} > 10000" />
                    <dl class="pairsInline">
                        <dd><img src="/images/imagename.png" height="40px" class="Tooltip" title="10,000+ Posts"></dd>
                    </dl>
                <xen:elseif is="{$user.message_count} > 9500" />
                    <dl class="pairsInline">
                        <dd><img src="/images/imagename.png" height="40px" class="Tooltip" title="9,500+ Posts"></dd>
                    </dl>
                                <xen:elseif is="{$user.message_count} > 8500" />
                    <dl class="pairsInline">
                        <dd><img src="/images/imagename.png" height="40px" class="Tooltip" title="8,500+ Posts></dd>
                    </dl>
                <xen:elseif is="{$user.message_count} > 8000" />
                    <dl class="pairsInline">
                        <dd><img src="/images/imagename.png" height="40px" class="Tooltip" title="8,000+ Posts"></dd>
                    </dl>
                <xen:elseif is="{$user.message_count} > 7250" />
                    <dl class="pairsInline">
                        <dd><img src="/images/imagename.png" height="40px" class="Tooltip" title="7,250+ Posts"></dd>
                    </dl>
                                <xen:elseif is="{$user.message_count} > 6500" />
                    <dl class="pairsInline">
                        <dd><img src="/images/imagename.png" height="40px" class="Tooltip" title="6,500+ Posts"></dd>
                    </dl>
                <xen:elseif is="{$user.message_count} > 5750" />
                    <dl class="pairsInline">
                        <dd><img src="/images/imagename.png" height="40px" class="Tooltip" title="5,750+ Posts"></dd>
                    </dl>
                <xen:elseif is="{$user.message_count} > 5000" />
                    <dl class="pairsInline">
                        <dd><img src="/images/imagename.png" height="40px" class="Tooltip" title="5,000+ Posts"></dd>
                    </dl>
                                <xen:elseif is="{$user.message_count} > 4250" />
                    <dl class="pairsInline">
                        <dd><img src="/images/imagename.png" height="40px" class="Tooltip" title="4,250+ Posts"></dd>
                    </dl>
                <xen:elseif is="{$user.message_count} > 3500" />
                    <dl class="pairsInline">
                        <dt>Rank:</dt>
                        <dd><img src="/images/imagename.png" height="40px" class="Tooltip" title="3,500+ Posts"></dd>
                    </dl>
                <xen:elseif is="{$user.message_count} > 2500" />
                    <dl class="pairsInline">
                        <dd><img src="/images/imagename.png" height="40px" class="Tooltip" title="2,500+ Posts"></dd>
                    </dl>
                                 <xen:elseif is="{$user.message_count} > 1250" />
                    <dl class="pairsInline">
                        <dd><img src="/images/imagename.png" height="40px" class="Tooltip" title="1,250+ Posts"></dd>
                    </dl>
                <xen:elseif is="{$user.message_count} > 750" />
                    <dl class="pairsInline">
                        <dd><img src="/images/imagename.png" height="40px" class="Tooltip" title="750+ Posts"></dd>
                    </dl>
                <xen:elseif is="{$user.message_count} > 500" />
                    <dl class="pairsInline">
                        <dd><img src="/images/imagename.png" height="40px" class="Tooltip" title="500+ Posts"></dd>
                    </dl>
                                <xen:elseif is="{$user.message_count} > 350" />
                    <dl class="pairsInline">
                        <dd><img src="/images/imagename.png" height="40px" class="Tooltip" title="350+ Posts"></dd>
                    </dl>
                <xen:elseif is="{$user.message_count} > 275" />
                    <dl class="pairsInline">
                        <dd><img src="/images/imagename.png" height="40px" class="Tooltip" title="275+ Posts"></dd>
                    </dl>
                <xen:elseif is="{$user.message_count} > 230" />
                    <dl class="pairsInline">
                        <dd><img src="/images/imagename.png" height="40px" class="Tooltip" title="230+ Posts"></dd>
                    </dl>
                                <xen:elseif is="{$user.message_count} > 190" />
                    <dl class="pairsInline">
                        <dd><img src="/images/imagename.png" height="40px" class="Tooltip" title="190+ Posts"></dd>
                    </dl>
                <xen:elseif is="{$user.message_count} > 160" />
                    <dl class="pairsInline">
                        <dd><img src="/images/imagename.png" height="40px" class="Tooltip" title="160+ Posts"></dd>
                    </dl>
                <xen:elseif is="{$user.message_count} > 125" />
                    <dl class="pairsInline">
                        <dd><img src="/images/imagename.png" height="40px" class="Tooltip" title="125+ Posts"></dd>
                    </dl>
                                <xen:elseif is="{$user.message_count} > 100" />
                    <dl class="pairsInline">
                        <dd><img src="/images/imagename.png" height="40px" class="Tooltip" title="100+ Posts"></dd>
                    </dl>
                <xen:elseif is="{$user.message_count} > 80" />
                    <dl class="pairsInline">
                        <dd><img src="/images/imagename.png" height="40px" class="Tooltip" title="80+ Posts"></dd>
                    </dl>
                <xen:elseif is="{$user.message_count} > 60" />
                    <dl class="pairsInline">
                        <dd><img src="/images/imagename.png" height="40px" class="Tooltip" title="60+ Posts"></dd>
                    </dl>
                                <xen:elseif is="{$user.message_count} > 40" />
                    <dl class="pairsInline">
                        <dd><img src="/images/imagename.png" height="40px" class="Tooltip" title="40+ Posts"></dd>
                    </dl>
                <xen:elseif is="{$user.message_count} > 25" />
                    <dl class="pairsInline">
                        <dd><img src="/images/imagename.png" height="40px" class="Tooltip" title="25+ Posts"></dd>
                    </dl>
                <xen:else />
                                <dl class="pairsInline">
                                <dd><img src="/images/imagename.png" height="40px" class="Tooltip" title="NooB"></dd>
                                </dl>
                </xen:if>
<!-- end rank images -->

you may need to adapt it to your post counts per user group and change the title to your preference

Awesome! Now is this regarding being able to rank up based on post count from within the Master Badge add-on? Or is it regarding my second option where I talk about user groups? If it's for user groups I can already achieve this by default, I just prefer not to because it won't allow me to use user groups for other things. If so, what does this code do differently?
 
What am I missing here? The trophy system allows you to award trophies based purely on post count.

Yes, but I think the issue is mainly that the leveling system of this add-on is based off of points and that's what I would ideally be using for my ranks. I guess I could technically use the badges portion for ranks, as long as it's not required to have X amount of trophies = one badge. Idk, it's all kinda confusing to explain and maybe I just don't fully understand what all the add-on can do. I wish I could test it out before purchasing.

Ultimately, I want a rank progression system that is solely based on post count (except for some ranks that require both a post count and point count) that will display next to each user's post below their user title. I also want a trophy system that awards user's for doing a numerous amount of things. These two things would ideally be seperate from one another, but I may be able to get away with having trophies be trophies and badges be ranks. Then I guess I just wouldn't use the leveling system at all.

Here's where the conversation started on this add-on's discussion page: Master Badge [Paid]
 
Yes, but I think the issue is mainly that the leveling system of this add-on is based off of points and that's what I would ideally be using for my ranks.
Why do you need an Haddon at all?

Just use trophy points based on post count (not likes) to implement the user rank.
 
Why do you need an Haddon at all?

Just use trophy points based on post count (not likes) to implement the user rank.

That's the thing, I want to my user's to be awarded trophy points for their actual trophies. I'm going to have trophies for getting a certain amount of points, featured content, their birthdays, etc. I still want these trophies to have point values and that will interfere with the ranking system if it's based off of points.

Are you saying to just make certain trophies the ranks themselves? This way I wouldn't have to worry about point values at all and could just use post values? If so, how would I feature these trophies below their user title and on their profile?
 
Awesome! Now is this regarding being able to rank up based on post count from within the Master Badge add-on? Or is it regarding my second option where I talk about user groups? If it's for user groups I can already achieve this by default, I just prefer not to because it won't allow me to use user groups for other things. If so, what does this code do differently?

this is a simple template edit that has nothing to do with any add-on.....guess I shouldn't have used the term "user groups" but instead "posting milestones". The template edit above will check to see if user exceeded the certain# of posts and if they do then shows a rank image.
image.webp





What am I missing here? The trophy system allows you to award trophies based purely on post count.
To the best of my knowledge xenforo by default doesn't show these medals/trophies/ranks in the user's postbit similar how custom user profile fields are handled.
 
this is a simple template edit that has nothing to do with any add-on.....guess I shouldn't have used the term "user groups" but instead "posting milestones". The template edit above will check to see if user exceeded the certain# of posts and if they do then shows a rank image.
View attachment 120005






To the best of my knowledge xenforo by default doesn't show these medals/trophies/ranks in the user's postbit similar how custom user profile fields are handled.

Ok, that's good to know! I'm sure I could also use the exsisting code for post count and modify it slightly to include point count as well, right? Because for the final rank of each division it will require a post count and a point count.

If it's not in the postbit, where is it at in your screenshot? Is that the user's info box at the top right side of the fourms page? Would I be able to add some code to make it display in the postbit (I'm assuming this is the official name of the area of each user's post that includes their info)?

Sorry to be swarming you with questions :(
 
Ok, that's good to know! I'm sure I could also use the exsisting code for post count and modify it slightly to include point count as well, right? Because for the final rank of each division it will require a post count and a point count.

If it's not in the postbit, where is it at in your screenshot? Is that the user's info box at the top right side of the fourms page? Would I be able to add some code to make it display in the postbit (I'm assuming this is the official name of the area of each user's post that includes their info)?

Sorry to be swarming you with questions :(
yes its in the postbit area...the template Message_User_info is the equivalent to vB postbit Legacy template.
 
yes its in the postbit area...the template Message_User_info is the equivalent to vB postbit Legacy template.

Oh okay sweet! I was just confused because you said that by default xF doesn't put it there. So guess I'd have to modify something else?

To the best of my knowledge xenforo by default doesn't show these medals/trophies/ranks in the user's postbit similar how custom user profile fields are handled.

Am I correct with what I think the postbit area is? The area to the left of this message that contains my info? And can I use the code you provided and modify it to include point count as well for some ranks? Lastly, can I modify something somewhere else to include this in 3 places (postbit, user card and profile)?
 
Oh okay sweet! I was just confused because you said that by default xF doesn't put it there. So guess I'd have to modify something else?

no, nothing else to modify...xF doesn't have this option ( from the custom user field option]
image.webp


to place trophies/medals/rank images in the postbit by default but with above template edit...it will.
Am I correct with what I think the postbit area is? The area to the left of this message that contains my info? And can I use the code you provided and modify it to include point count as well for some ranks? Lastly, can I modify something somewhere else to include this in 3 places (postbit, user card and profile)?

yes to the first Q and perhaps...but I just installed xenforo on a test site myself and am still on the steep learning curve with it...but I'm sure there are far more knowledgeable members here that could answer that.
 
Okay I know that just before posting this thread I was looking at a page where I could set criteria to automatically place a user in a group. Now I can't find it anywhere...

I just realized that you can display all applicable user group banners rather than just the one that has the highest priority, so this means I can just make my ranking system based off of user groups! ...as soon as I can find that page.

Anyone care to assist a n00b?
 
Back
Top Bottom