• This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn more.

XF 1.3 Anniversary Badge / Award - How To Automate?

ProCom

Well-known member
#1
I'd like to display a custom image / badge / award for our members with certain years anniversaries on our forum.

Is the best way to automatically do this to do the following:
  1. Create a new usergroup called "5 year award"
  2. Create a new user banner and custom css image for the group: http://xenforo.com/community/resources/user-ranks-with-images.2054/
  3. Setup an automated promotion so that when a member hits 5 years they are automatically added into this group
Is this the best way to do this?
 

ProCom

Well-known member
#2
Doh, I think I already discovered a problem...

If the user gets promoted for "5 Year Award" and then gets to "6 Year Award" there doesn't seem to be an automated way to remove their "5 year award" (i.e., remove them from that group when promoted to the other group). Is this accurate?
 

Brogan

XenForo moderator
Staff member
#3
You can use "User is NOT a member of any of the selected user groups:" for the 5 year promotion and set it as the 6 year group.

Once they get promoted to the 6 year group, the 5 year promotion will be removed.
 

ProCom

Well-known member
#4
Thanks @Brogan !

Sorry for this follow up question, but I just want to make sure I understand: What causes the 5 year promotion to be automatically removed as the 6 year is applied? Is it either because:
  1. The 5 year group promotion removes itself when the criteria is no longer met?
  2. Something in the 6 year promotion removes the 5 year award?
I'm guessing it's something in #2, but this makes me wonder how to ensure that other groups are also not removed, but just a single group is removed during the promotion?

Hopefully that makes sense?
 

Brogan

XenForo moderator
Staff member
#5
It is this: "User is NOT a member of any of the selected user groups".

The promotion will only be applied if the user is not a member of user group 6.
 

ProCom

Well-known member
#6
Ok, but I'm still confused how someone is automatically demoted out of a group.

For example: Let's say a moderator is automatically promoted to group "5 year" and then a year later I want them removed from group "5 year" into group "6 year" , how is that done?
 

Brogan

XenForo moderator
Staff member
#7
I'm not sure where the confusion arises.

If a member is registered for 5 years, the 5 year promotion will be applied.

When they are registered for 6 years, the 6 year promotion will be applied.

As the 5 year promotion has "User is NOT a member of any of the selected user groups - 6" set, they will automatically be demoted from the 5 year promotion as they are now a member of user group 6.
 

ProCom

Well-known member
#8
Ok, thanks for the clarification Brogan... I was reading that wrong.

So, the cron will run and:
  1. Apply the 5 year promotion
  2. A year later...
  3. Apply the 6 year promotion
  4. Then the 5 year promotion will run and see that the user is also in the 6 year group and remove the 5 year group
Am I correct now?

(thanks for your patience) :)
 

CarpCharacin

Well-known member
#11
I have been trying to do the same thing, but I limited it to administrators. I have been trying to do a 6 year award and a 9 year award, but it won't remove the 6 year award. In the 6 year award promotion, I put 9 year in "user is not a member of any of the selected groups", but it didn't remove the year promotion when the 9 year promotion was applied.
 

ProCom

Well-known member
#12
The process above is working fine for active users, but as we posted in this thread here, we haven't been able to find a way to get members that haven't logged on to have their usergroups promoted properly.

We've run "Rebuild User Group Promotions", but this hasn't changed the user's that are in multiple promoted "anniversary" groups.

Any other suggestions on how to "touch" all the user accounts so we don't have members in multiple promoted groups?

Thank you in advance for any help you can provide!