Members follow each other: a Follow/Unfollow button on every profile, a /following page, and a notification when
someone you follow starts a new topic.

Where it shows up

  • a Follow / Unfollow button in the member action row on profiles and member cards (region.member.actions);
  • /following: the members you follow, newest first, paginated, each with an Unfollow button;
  • a Following link in the user menu (region.header.user_menu);
  • notifications: started following you (kind tabre_follow) and started a new topic (kind tabre_follow_topic),
    rendered through the core notification list.

Rules

  • You must be signed in; you cannot follow yourself and you cannot follow an inactive member.
  • The button is a POST to /follow/{id} with the CSRF token; the back field is limited to a local path.
  • A new follower notifies the member once per pair: follow → unfollow → follow does not ring the bell again.
  • A new topic notifies every follower of its author in one batch (notify_many()), and only for new topics, not for
    replies or edits. Review-held topics notify when they go public.
  • The notification preference of each member is honoured by the core; notifications can be switched off entirely in the
    plugin settings.

Settings

SettingMeaning
Notify members about new followers and new topicsBoth notification kinds; on by default.

Data and uninstall

One row per edge in plugin_tabre_follow (follower, followee, created_at), unique on the pair, indexed by followee.
Uninstalling drops the table; the notification rows written earlier stay in the core and their links still work.

The manifest uses region.member.actions, region.header.user_menu, topic.after_save, notification.kinds and the
routes /follow/{id} and /following.