#871 - Admin achievements system (gamification)
0 guests and 0 members have recently viewed this.
The top 3 point earners from 21st Dec 2025 to 28th Dec 2025.
| PDStig |
|
|
|---|---|---|
| Gabri |
|
|
| Adam Edington |
|
|
There are no events at this time
It's obvious why it hasn't been prioritised, practical things like basic user experience, fixing bugs, features people really need, come first. But I'd argue that implementing this would do more to promote Composr use than say better drag and drop editing. So as soon as the project has the bandwidth to try something big, I think this should be considered.
I think for the time being it will be a non-bundled addon, but just like hybridauth and karma, it will show up on the Setup Wizard for immediate install if desired. I see it being useful, but not on a mass scale.
As far as its functionality, I think what I'll do is instead of everything being hooks, I'll use an XML configuration. The XML will define each achievement in a tag block with qualification tags inside (which all have to be met to receive the achievement, or perhaps I could also allow for simple "AND/OR" logic). Qualification tags can be focused on number of content types posted (and can define categories limited to, for example), pages accessed, or the values of custom profile fields. Maybe also allow for using a raw count of rows in a database table as a qualification. Hooks can define additional non-bundled XML configuration that can be used, for example, karma. Qualifications could also be other things, like usergroup membership or specific members for manual awarding.
Manual achievements can also be defined as well given the ability to define usergroups or specific members as the qualifications for earning. This could prove very useful for a manual account verification process to vet verified members, as an example.
In the future, the achievements system will need to have a special XML attribute for achievements specific to webmasters. Or perhaps I can just mark an attribute as visible only to the member who receives it, and that would be true for webmaster achievements.
An additional attribute would mark whether the achievement is visible publicly on a special page that would list the achievements that can be earned (and a member's progress towards that, if applicable).
Earned achievements would be public on a member's profile. I might re-do the rank tab a bit to accommodate achievements, and make rank public (but change it up when another member is viewing).
Example:
<qualifications>
<qualification name="content" types="image,video" galleries="nature" condition=">=" count="100" />
<qualification name="content" types="image" galleries="space,politics" condition=">=" count="10" />
</qualifications>
<qualifications>
<qualification name="content" types="post" forum="1" condition=">=" count="10" />
</qualifications>
<qualifications>
<qualification name="group" condition="in" id="1" />
<qualification name="group" condition="not_in" id="2" />
</qualifications>
This defines that the achievement is "earned" if:
- The member posted 100 or more collective images and videos in the nature gallery AND 10 or more images collectively in the space and politics galleries... OR
- The member made 10 or more posts in the forum ID 1... OR
- The member is in usergroup 1 but not usergroup 2
Let's say they made 10 image/video posts in nature, 1 image in space/politics, and 9 posts in forum ID 1. The member is in usergroup 3.
Qualification block 1 is only 10% complete. But qualification block 2 is 90% complete. And block 3 does not report a progress since progresses are not applicable to usergroups. Since only one block needs to be 100% to earn the achievement, we take the highest value (90%) as the overall progress towards this achievement.
While I do not have achievements for everything listed implemented by default, theoretically a large majority of the missing ones can be implemented especially with the actionlog hook for achievements.
I will think on whether to implement webmaster specific ones by default. This isn't practical right now since achievements is a non-bundled addon (I made the determination to set it non-bundled for now since configuring it requires some XML expertise; if multiple people declare they find this addon useful, I may move it bundled in the future).