Repository navigation
Releases: ernestdefoe/topic-map
Release list
v0.2.3
Fixed
- The topic map now sits inside the first post on every theme. It used to hang below the post: off the bottom of the article card on Masthead, and into the gap before the next post on the default theme. It now has its own row under the post's actions, lined up with the post body.
- The Links panel shows the site name and the address apart again (they ran together).
- On phones the stats fit on one row, with the Top replies button full width underneath.
- Top replies excerpts read as plain text: no more
**,[text](url), quoted replies or raw mention syntax. - Dependency security updates.
Updating
composer update ernestdefoe/topic-map
php flarum cache:clear
v0.2.2
Fixed
- Replies awaiting approval no longer show in the topic map. A post held for approval (spam, say) had its links listed, and once liked its excerpt appeared in Top Replies, for every reader. Posts awaiting approval are now left out of the links, read time, participants, likes count and Top Replies, and likes on hidden posts no longer count.
- Repeat views no longer fail on PostgreSQL. Every view after a discussion's first returned a 500 error on PostgreSQL. It now works on every database, and no longer raises an exception on each view elsewhere.
Update
composer update ernestdefoe/topic-map
php flarum cache:clear
v0.2.1 — works on forums with a table prefix
Fixed
The topic map returned a 500 on every discussion, on any forum installed with a database table prefix.
The Top Replies query built its SELECT and ORDER BY as raw SQL, and raw SQL is handed to the database verbatim — the query builder cannot prefix what it cannot parse. Every other call in that query is prefix-aware, which is exactly why the two raw fragments were easy to miss. On a prefixed install the query asked xyz_posts for a column called posts.id:
SQLSTATE[42S22]: Unknown column 'posts.id' in 'SELECT'
And because the controller builds the whole map in one pass, this did not degrade the Top Replies panel — it took the entire topic map down, on every discussion, for the life of the extension on that forum.
Only the aggregate genuinely needs raw SQL, so it now carries the prefixed table name explicitly and the four columns go through the builder.
Verified against a forum that runs a prefix on purpose: the endpoint went 500 → 200, Top Replies lists its ranked replies with like counts, and a discussion with no likes returns an empty list rather than an error. Forums without a prefix were never affected and see no change.
Also in this release
- The release announcer renders its Markdown instead of posting the raw source, and can be triggered manually.
v0.2.0 - fof/reactions support + avatar fix
- fof/reactions support — forums running reactions instead of flarum/likes get the engagement stat and Top Replies panel powered by \post_reactions\ (the stat relabels itself reactions). flarum/likes wins when both are installed.
- Avatar fix — participant and Top Replies avatars now render (the raw column value is a bare filename; URLs are now built through the User model accessor).
- README now includes a screenshot.
v0.1.2 - SubtreeRetainer fix
Registers a SubtreeRetainer check on the host post so the stats bar and panels actually re-render when the payload arrives — the v0.1.1 loading-spinner fix was necessary but not sufficient on real forums.
v0.1.1 - render reliability fix
Fixes the stats bar sticking on its loading spinner on forums where other extensions cause post-component remounts (the resolved payload is now cached module-side and renders synchronously), and gives the Top Replies / Links panel rows opaque backgrounds.
v0.1.0 - Discourse-style topic map
Topic Map for Flarum 2
A Discourse-style topic map under the first post of busy discussions:
- Stats bar — views · likes · outbound links · top participants (avatars) · minutes-to-read, shown once a discussion passes the reply threshold (admin setting).
- Top Replies — the most-liked replies with author + excerpt; click to jump straight to the post (needs
flarum/likes, hides without it). - Links panel — the discussion's outbound links grouped by URL.
- View counting built in — guests count, once per browser session, visibility-checked. Runs on
ernestdefoe/bespoke's counter when that's installed (one source of truth, never double-counted). - Server-side computed + cached; 400-post scan cap keeps huge topics cheap. Fully translatable. MIT.
composer require ernestdefoe/topic-map
php flarum migrate && php flarum cache:clear