You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Squashed all prior 3.0.x migrations into a single release migration; canonical version is now `ext::RT_VERSION` (class constant), no `rt_version` row in `phpbb_config`
5
-
- Forum visibility in Recent Topics includes forums where the user holds `f_list_topics` ("Can see topics") permission without `f_read` — topic titles are shown to entice login while content remains gated by phpBB's normal read check
6
-
- For the full feature history of the 3.0.x line see the git log
3
+
- 3.0.0 (31/05/2026) — relaunch under avathar/recenttopics namespace, consolidating everything since the avathar fork of paybas/recenttopics
4
+
5
+
New features
6
+
-[NEW] Display Recent Topics on viewforum (top/bottom) in addition to the index page (#178)
7
+
-[NEW] Standalone pages: `/app.php/rt` (full) and `/app.php/rt/simple` (iframe-embeddable), with a dedicated ACP toggle independent of index display (#155)
8
+
-[NEW] Optional advertisement / HTML block on the index page, with ACP toggle and textarea (#160)
9
+
-[NEW] Postlove integration — like counts in the topic list when `avathar/postlove` is installed (#162); ACP toggle to enable/disable (#164)
10
+
-[NEW] ACP toggle to show/hide date in side view (#163)
11
+
-[NEW]`modify_ads_code` event so third-party extensions can inject advertisement content (#175)
12
+
-[NEW] Backward-compat `paybas.recenttopics.*` event aliases — downstream extensions written against the original fork keep working (#169)
13
+
-[NEW] Forum visibility widened: forums where the user has `f_list_topics` ("Can see topics") but not `f_read` now also appear — exposes titles to entice login while content stays gated (#182)
14
+
-[NEW] Slovak (sk) and Swedish (sv) translations; grammar / spelling sweep across all locales
15
+
-[NEW]`contrib/cleanup_recenttopics.sql` script for removing legacy installs
16
+
17
+
Changes
18
+
-[CHG] Renamed namespace from the legacy `recenttopicsav` to `recenttopics` — the "av" suffix from the paybas-era fork is no longer needed since the vendor namespace is already `avathar`
19
+
-[CHG] Migration history squashed to a single release migration; canonical version is now `ext::RT_VERSION` (class constant), no `rt_version` row in `phpbb_config`
20
+
-[CHG] Donate link moved from PayPal to Patreon
21
+
-[CHG] PHP 8.1 and phpBB 3.3.0 minimum enforced via `is_enableable()` with clear error messages (#171)
**What this event is for:** phpBB stores the *last post subject* in the topic row rather than the topic title. When someone replies, the last post subject is "Re: Original Title". This event fires once per row so that a listener can strip the "Re: " prefix and display a clean title. Recent Topics includes a built-in listener for exactly this purpose — it is the only case where the extension listens to its own event.
89
-
90
-
- **Placement:** `core\recenttopics::fill_template()`, once per topic row
91
-
- **Since:** 3.0.0
92
-
- **Arguments:**
93
-
- `row`(array) — The raw topic row data. The built-in listener reads and writes `row['topic_last_post_subject']`.
**What this event is for:** Just before the topic title is assembled for display, this event provides a chance to prepend a label or badge. The `prefix` argument starts as an empty string; your listener can set it to any HTML fragment and it will appear before the topic title in the output.
88
+
**What this event is for:** Just before the topic title is assembled for display, this event provides a chance to prepend a label or badge AND to strip prefixes from the last-post subject. The `prefix` argument starts as an empty string; your listener can set it to any HTML fragment and it will appear before the topic title in the output. The built-in `topictitle_remove_re` listener also subscribes here to strip the "Re: " prefix from `row['topic_last_post_subject']`.
101
89
102
90
**Example use case:** An extension that adds a topic type label ("Announcement", "Sticky") could set `prefix` to a small badge here.
103
91
104
92
- **Placement:** `core\recenttopics::fill_template()`, once per topic row
105
93
- **Since:** 3.0.0
106
94
- **Arguments:**
107
-
- `row`(array) — The raw topic row data (read only).
95
+
- `row`(array) — The raw topic row data. Listeners may read and write back; the built-in listener writes `row['topic_last_post_subject']`.
108
96
- `prefix`(string) — The prefix string to prepend to the title. Set this and write it back to add content.
**What this event is for:** This is the most commonly used hook. It fires once per topic row, just before the template variable array for that row is assigned to the `recent_topics` block. By this point Recent Topics has already built a complete `tpl_ary` with all its own variables (topic URL, title, author, last post time, unread flag, etc.). Your listener can add extra keys to `tpl_ary` and they will be available in the template.
116
104
@@ -125,14 +113,14 @@ If you are building an extension that wants to add a column, filter out certain
125
113
126
114
---
127
115
128
-
### 1.7 `avathar.recenttopics.modify_ads_code`
116
+
### 1.6 `avathar.recenttopics.modify_ads_code`
129
117
130
118
**What this event is for:** Fires just before the advertisement block HTML is assigned to the `ADS_INDEX_CODE` template variable. Recent Topics pre-populates `ads_index_code` from its own ACP setting (`rt_ads_enable` / `rt_ads_code`). A listener can read and replace this value to inject ad content from another source — for example, a style extension that manages its own ad configuration.
131
119
132
120
**Example use case:** The `paybas/pbwowext` style extension stores its own ad HTML in its ACP. It listens here and writes its content into `ads_index_code`, becoming the ad content provider for pbWoW3 users without needing to assign `ADS_INDEX_CODE` directly from a different event.
133
121
134
122
- **Placement:** `core\recenttopics::display_recent_topics()`, after the RT ad config is read, before `assign_vars()`
135
-
- **Since:** 3.0.6
123
+
- **Since:** 3.0.0
136
124
- **Arguments:**
137
125
- `ads_index_code`(string|false) — The ad HTML to render, pre-set from RT's own config or `false` if RT ads are disabled. Override this to provide content from another source.
138
126
- **Known listeners:** `paybas/pbwowext`
@@ -240,7 +228,7 @@ This section lists every phpBB event that Recent Topics subscribes to in order t
240
228
| `core.acp_manage_forums_initialise_data` | `acp_manage_forums_initialise_data()` | Sets the default value ("included") for newly created forums |
241
229
| `core.acp_manage_forums_display_form` | `acp_manage_forums_display_form()` | Passes the stored per-forum setting to the ACP template so the checkbox shows the right state |
242
230
| `core.permissions` | `add_permission()` | Registers the `u_rt_view`, `u_rt_enable`, and `u_rt_location` permissions in phpBB's ACL system |
243
-
| `avathar.recenttopics.topictitle_remove_re` | `topictitle_remove_re()` | A self-listener: strips the "Re: " prefix from last-post subject lines |
231
+
| `avathar.recenttopics.modify_topictitle` | `topictitle_remove_re()` | A self-listener: strips the "Re: " prefix from last-post subject lines (merged here from the old `topictitle_remove_re` event for efficiency) |
0 commit comments