Avatar
Posts 445 1985

Reputation

Reputation

| | |

|:--|:--|

| Version | 1.0.4 |

| Type | Plugin |

| Category | Gamification |

| Author | Fred |

| common.license | MIT |

| Flatboard | 5.2.0 |


A community reputation system for Flatboard. Members earn points for their contributions, unlock levels and badges, and see their score directly on posts and user profiles.


Features

  • Points system — Points are awarded for configurable events: discussion created, reply posted, reaction received, best answer received.
  • 10 levels — From Beginner (0 pts) to Transcendent (50 000 pts), each with a distinct colour and name. Levels are assigned automatically and displayed everywhere.
  • 19 badges / achievements — Automatically awarded at milestones across five categories: posts, reactions, best answers, level achievements, and special actions.
  • Score badge on posts — A coloured trophy badge showing the member's point total appears next to the post count on every post in threads and reply lists. It uses the icon and colour of the member's last earned badge, links to their Reputation profile tab, and shows a tooltip with the current level name.
  • Score + level on profile — A reputation row (score and current level) is injected into the user profile statistics card.
  • Reputation profile tab — A dedicated tab on every user profile shows points, current level with progress bar, earned badges, and the last 20 history entries. Opening the tab directly via ?tab=reputation is supported.
  • Full history page/reputation/history lists all reputation events for the logged-in user, paginated (20/page). Admins can view any user's history at /reputation/history/{userId}. The page title includes the username.
  • Badges catalogue/reputation/badges lists all available badges (earned vs locked) and all levels with their point thresholds.
  • Leaderboard/reputation/leaderboard ranks members by total points with configurable limit and pagination.
  • Admin panel — Configure point values per event, enable/disable badges, levels and leaderboard, and set leaderboard limits from Admin → Plugins → Reputation → Settings.
  • Recalculate — One-click reputation recalculation from the admin panel reconstructs points and badges from actual stored data.
  • Notifications — Members receive a notification when they earn a new badge or reach a new level.
  • Multilingual — French, English, German, Portuguese, Chinese Simplified.

Simplified.


Levels

| # | FR / EN | Min. points | Colour |

|---|---|---|---|

| 1 | Débutant / Beginner | 0 | #6c757d |

| 2 | Actif / Active | 50 | #28a745 |

| 3 | Contributeur / Contributor | 200 | #17a2b8 |

| 4 | Expert / Expert | 500 | #ffc107 |

| 5 | Maître / Master | 1 000 | #dc3545 |

| 6 | Légende / Legend | 2 500 | #6f42c1 |

| 7 | Virtuose / Virtuoso | 5 000 | #e83e8c |

| 8 | Immortel / Immortal | 10 000 | #fd7e14 |

| 9 | Suprême / Supreme | 25 000 | #dc3545 |

| 10 | Transcendant / Transcendent | 50 000 | #6610f2 |


Badges

| ID | FR / EN | Category | Condition |

|---|---|---|---|

| first_post | Premier pas / First Step | Special | First post published |

| first_discussion | Démarreur / Starter | Special | First discussion created |

| 10_posts | Actif / Active | Posts | 10 posts published |

| 50_posts | Contributeur / Contributor | Posts | 50 posts published |

| 100_posts | Expert / Expert | Posts | 100 posts published |

| 500_posts | Maître / Master | Posts | 500 posts published |

| 10_reactions | Apprécié / Appreciated | Reactions | 10 reactions received |

| 50_reactions | Populaire / Popular | Reactions | 50 reactions received |

| 100_reactions | Adoré / Beloved | Reactions | 100 reactions received |

| first_best_answer | Oracle / Oracle | Best answers | First best answer received |

| 10_best_answers | Sage / Sage | Best answers | 10 best answers received |

| 50_best_answers | Titan / Titan | Best answers | 50 best answers received |

| level_5 | Champion / Champion | Levels | Reached level 5 |

| level_6 | Légende / Legend | Levels | Reached level 6 |

| level_7 | Virtuose / Virtuoso | Levels | Reached level 7 |

| level_8 | Immortel / Immortal | Levels | Reached level 8 |

| level_9 | Suprême / Supreme | Levels | Reached level 9 |

| level_10 | Transcendant / Transcendent | Levels | Reached level 10 |


Configuration

| Setting | Description | Default |

|---|---|---|

| Points per discussion | Points earned when a member creates a discussion | 10 |

| Points per reply | Points earned when a member posts a reply | 3 |

| Points per reaction received | Points earned when another member reacts to your post | 1 |

| Points per reaction given | Points earned when you react to someone else's post | 0 |

| Points per best answer | Points earned when your reply is marked as best answer | 20 |

| Enable badges | Award badges on milestones | off |

| Enable levels | Display levels based on points | off |

| Enable leaderboard | Show the leaderboard page | off |

| Leaderboard limit | Maximum users ranked in the leaderboard | 50 |

| Leaderboard per page | Items per page on the leaderboard | 20 |


Hooks registered

| Hook | Purpose |

|---|---|

| router.plugins.register | Register public routes (/reputation, /reputation/history, /reputation/badges, /reputation/leaderboard) |

| view.admin.sidebar.items | Add Reputation entry to the admin sidebar |

| view.users.profile.content | Inject Reputation tab + tab content into user profiles |

| view.post.user.stats | Inject the score badge next to the post count in threads |

| view.profile.stats | Inject the score + level row in the profile statistics card |

| visitor.page_info | Provide page context for the presence indicator on reputation URLs |

| post.after_create | Award points on new reply |

| discussion.after_create | Award points on new discussion |

| reaction.after_create | Award points on reaction received / given |

| best_answer.after_set | Award points on best answer |


Installation

  1. Download the plugin archive.
  2. Go to Admin → Plugins → Install a plugin and upload the .zip.
    Or extract the folder into plugins/Reputation/ and activate it from the admin panel.
  3. Configure point values and features via Admin → Plugins → Reputation → Settings.

Edited on  Mar 17, 2026  By  Fred .

  • points-system achievements leaderboard user-levels
Avatar
Posts 445 1985

1.0.5 — 2026-03-29

Changed

  • Added update_url and changelog_url fields to plugin.json. Flatboard now detects available updates and displays them in Admin Panel > Tools > Updates. The changelog_url links to the plugin's resource page on flatboard.org.
  • Updated minimum Flatboard requirement from >=5.0.0 to >=5.2.0 in plugin.json.
Avatar
Posts 102 520

Download after Payment not working. Blank Screen.

Avatar
Posts 445 1985

JPRuehmann
Thank you for your message.

We’re sorry for the inconvenience you experienced with the download after payment. The issue causing the blank screen has now been resolved.

You can try again, and the download should work normally this time. We recommend accessing it again via your confirmation email or by refreshing the original page.

We’ve also taken this opportunity to release a plugin update to prevent this issue from happening again and to improve overall stability.

If you still encounter any difficulties, please don’t hesitate to contact us and we’ll assist you promptly.

Thank you for your patience.

Best regards

1.0.9 — 2026-04-19

Fixed

  • Logged-in users shown "Se connecter" panel on reputation page — The sidebar condition was $userId && $userReputation. Users with zero activity have an empty reputation array ([]), which is falsy in PHP, so the logged-in block was skipped even for authenticated users. Changed the condition to $userId alone; the content already uses ?? 0 fallbacks so displaying 0 points is handled correctly. Files changed: views/index.php.

1.0.8 — 2026-04-18

Fixed

  • CSRF token not transmitted in the recalculate fetch — The admin "Recalculate reputation" button sends a JSON body; $_POST is empty for JSON requests and custom headers can be stripped by proxies. The token is now included in the JSON payload (csrf_token), and Controller::verifyCsrf() checks the JSON body as a fallback before the header. Files changed: views/dashboard.php.

1.0.7 — 2026-04-17

Security

  • CSRF on admin write endpointsverifyCsrf() added to saveConfig() and recalculateReputation(). The recalculate AJAX call in the admin dashboard view now sends the X-CSRF-Token header. Files changed: ReputationController.php, views/dashboard.php.
Visitor, reply to this topic…
Log in to reply
Navigation
4 Posts
post #1
17 Mar 2026
By Utilisateur
Statistics
170
Discussions
939
Replies
20
Flatboarders
1
Contributors
New member : cescob4119
Online
4 Guests online