Community profiles, connections, and activity streams for Joomla —
replacing Community Builder with native Joomla 5/6 architecture.
Core platform:
- Profiles with custom fields (EAV), avatars, and bio
- Bidirectional connections with approval workflow
- User lists/directory configurations
- DI container pattern, SubscriberInterface, PSR-4 namespaces
Registration Guard (ported from MokoCBRegGuard):
- 8 spam detection checks: IP frequency, StopForumSpam, DNSBL,
subnet burst, email domain, username patterns, IP reputation, birthday
- Weighted risk scoring with configurable thresholds
- Dual-mode: blocks high-risk before save, logs medium-risk after save
- Email notifications for flagged registrations
Field Privacy (ported from MokoCBPrivacy):
- Per-user Facebook-style field visibility overrides
- Privacy levels: public, registered, friends, private
- Floor enforcement: users can only tighten, never loosen admin defaults
- GDPR-ready export and delete methods
Activity Stream (Facebook-style):
- User-authored status posts with per-post visibility
- Facebook 6 reactions (like, love, haha, wow, sad, angry)
- 2-level threaded comments (comments + replies)
- Three feed types: news feed, community, profile
- Denormalized like/comment counts
Discussion Forum:
- Categories with sub-categories and ordering
- Topics with sticky, locked, status, view counts
- Threaded replies with post likes
- Read tracking via high-water mark (unread indicators)
- Activity stream integration for new topics/replies
User Groups (Facebook Groups / CB GroupJive):
- Three group types: open, closed, secret
- Role hierarchy: owner, admin, member
- Membership state machine: pending, active, invited, banned
- Group wall with posts, likes, flat comments
- Member management with approve/remove
- Secret groups hidden from non-member discovery
Infrastructure:
- 21 database tables with proper indexes
- 5 versioned SQL migrations (01.00.00–01.04.00)
- PHPStan level 5, Joomla coding standards
- 13 Gitea CI workflows
- Atomic user cleanup (all data removed in transaction on deletion)
Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>