Add modern, high-signal community feedback to every post.
As forum content written by real users becomes more valuable, engagement quality matters more than vanity metrics. Bastien59960 Reactions gives phpBB administrators a robust emoji reaction system with live UX, notification controls, digest emails, and unsubscribe-safe delivery flows.
- Increase member engagement with lightweight feedback on every post.
- Keep notifications useful with anti-spam digest timing and per-user preferences.
- Provide a smooth AJAX experience without full page reloads.
- Keep operational control from ACP with configurable limits and picker behavior.
- Emoji reactions under posts with counters and user tooltips.
- AJAX add/remove endpoints for fast interaction.
- Configurable background sync interval for near-real-time updates.
- Configurable picker behavior (size, categories, search, full emoji set loading).
- In-forum notifications for new reactions.
- Email digest cron task grouping reactions by recipient and by post.
- Anti-spam delay between digests (ACP setting).
- Run-time safeguards: processing window and per-run cap.
- Signed unsubscribe link in reaction digest emails.
GET /app.php/reactions/unsubscribeendpoint validates token and updates user preference.- Outcome-aware HTTP responses (
200,403,404) and user messaging. - Optional integration with AdminHelper log table (
unsubscribe_type = reactions_notify) when available.
- ACP settings for limits and display behavior:
- max reaction types per post
- max reactions per user per post
- digest delay
- picker and display parameters
- UCP preference support for email digest opt-in/out.
- Cleans up orphan/self-reaction notification candidates during cron processing.
- Marks handled reaction items to avoid repeated notifications.
- PHP
>= 7.4.0 - phpBB
>= 3.3.0 - MySQL/MariaDB with
utf8mb4recommended for full emoji coverage
- Copy
bastien59960/reactionsintoext/. - Enable the extension:
php bin/phpbbcli.php extension:enable bastien59960/reactionsAfter updating files:
php bin/phpbbcli.php db:migrate
php bin/phpbbcli.php cache:purgephp bin/phpbbcli.php extension:disable bastien59960/reactions
php bin/phpbbcli.php extension:purge bastien59960/reactionsIn ACP > Extensions > Reactions:
- Set digest delay (
bastien59960_reactions_spam_time). - Set per-post and per-user reaction limits.
- Tune picker width/height/icon sizes.
- Enable/disable category tabs, search, and full emoji JSON loading.
- Set refresh interval for live sync.
php /var/www/forum/bin/phpbbcli.php cron:runphp /var/www/forum/bin/phpbbcli.php cron:run cron.task.bastien59960.reactions.notificationbash ext/bastien59960/reactions/tools/check-crons.shMain storage points:
post_reactionstable: reaction events, emojis, timestamps, and digest handling flags.users.user_reactions_cron_email: member digest email preference.- phpBB notifications tables for in-forum and email notification methods.
- CSRF protections and permission checks apply to reaction actions.
- Unsubscribe token uses HMAC signature derived from forum secret material.
- Digest unsubscribe endpoint updates only reaction email preference.
- No API keys or server secrets are stored in extension files.
- Full emoji fidelity depends on
utf8mb4database configuration. - Email delivery timing depends on phpBB queue and cron regularity.
- AdminHelper log integration is conditional on AdminHelper log table availability.
Bastien (bastien59960)