Skip to content

Build See Notes 1.0.0-dev - #7

Merged
bonelifer merged 10 commits into
mainfrom
build-extension
Nov 8, 2026
Merged

bonelifer merged 10 commits into
mainfrom
build-extension

Conversation

@bonelifer

@bonelifer bonelifer commented Nov 8, 2026 •

Copy link
Copy Markdown
Contributor

Builds the extension described in docs/design.md, with the change asked for in the design review (#2).

What it adds

  • ACP → Extensions → See Notes: the list of reasons (description, color, order, on/off switch) and the settings (label, require a description, allow deleting a reason with all its entries).
  • Seven starter reasons, added on first enable in the board's default language: Moderation queue, Spam watch, Warez, Conduct, Possible returning member, Staff in contact and General. A board that already has reasons gets none.
  • MCP → Moderator notes and ACP → Manage users → Moderator notes: give a member a reason, choose the current one or none, add, edit and delete notes, and delete an entry. The member's latest phpBB user notes show read-only below.
  • Notes use BBCode, smilies and links with the board's private message settings, so a PM sent to the member can be pasted into a quote (Design review: See Notes #2).
  • Staff see "SEE NOTES: Moderation queue (2)" on profiles, next to posts, on the MCP post, report and approval queue pages, and in the MCP topic view. A member with no current reason shows "SEE NOTES: NONE", which links to the form that gives one.
  • Separate moderator and administrator permissions, moderator logging, and clean-up when a member is deleted or renamed.
  • Screenshots in the README and in docs/images/screenshots.

Testing

Claude ran:

  • PHPUnit (22 tests) against phpBB 3.3.x and master.
  • EPV against 3.3.x and master, the code sniffer with both rulesets, and php -l on PHP 7.4 and 8.4.
  • A new feature check (29 checks, added to phpbbmodders/phpbb-release-tools) on phpBB 3.3 and 4.0, each with SQLite, MySQL, MariaDB, PostgreSQL and MSSQL, including disable, purge and enable.
  • axe-core and keyboard checks on the See Notes pages at desktop and phone widths.
  • The validation prompt. Its findings are fixed in this branch, along with a phpBB 4.0 bug the feature check found: 4.0 dropped an argument from generate_text_for_storage(), which blocked quotes in notes.

Closes #2


Investigated and written by Claude on behalf of William Jacoby (bonelifer).

bonelifer and others added 7 commits November 7, 2026 22:19
Staff-only reasons with dated notes, as described in docs/design.md:
ACP reasons and settings, MCP Moderator notes tab, ACP Manage users
page, the reason line on profiles, posts and MCP post pages, separate
moderator and admin permissions, moderator logging, and clean-up on
member deletion and renames. Notes use BBCode with the board's private
message settings, as asked for in the design review.

Closes #2

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Members without a current reason show "SEE NOTES: NONE" to staff,
  linking to the Give a reason form.
- phpBB 4.0 dropped generate_text_for_storage()'s flash argument;
  call it with the right arguments on each branch, so quotes work
  in notes on 4.0.
- Check reason name and description length as stored (escaped), so
  they always fit their columns.
- Renames only update names saved by the renamed member.
- Escape language strings in attributes, enlarge link targets,
  give the notes-page forms ids, drop unused template variables.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The tap-target rule made the profile's reason link an inline block,
which dropped it below its label; keep it for note action links only.
Notes in the MCP now use the size of post text.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The read-only user notes box printed raw log keys such as
{LOG USER WARNING BODY}: load acp/common, as core's notes page does.
In the ACP, quotes in notes get a frame and words no longer break
mid-word.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
phpBB's MSSQL driver returns NULL as ''; the page already treats both
as a deleted member, so the test now does too.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@bonelifer

Copy link
Copy Markdown
Contributor Author

Pushed a56b17e: the MSSQL jobs failed on one unit test, because phpBB's MSSQL driver returns '' instead of NULL for a missing LEFT JOIN row. The page already treats both as a deleted member; the test now accepts either.


Investigated and written by Claude on behalf of William Jacoby (bonelifer).

bonelifer and others added 3 commits November 7, 2026 23:22
A new migration adds Moderation queue, Spam watch, Warez, Conduct,
Possible returning member, Staff in contact and General, with
descriptions and colors, in the board's default language (English
when the extension does not ship it). A board that already has
reasons gets none.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@bonelifer

Copy link
Copy Markdown
Contributor Author

Pushed 66894fe, bd6d580 and 826aee7: enabling the extension now adds seven starter reasons (Moderation queue, Spam watch, Warez, Conduct, Possible returning member, Staff in contact, General) with descriptions and colors, in the board's default language. A separate migration adds them and skips any board that already has reasons, so nothing is duplicated. The Spam watch color is darker so it passes WCAG AA contrast, and the screenshots were retaken.

Claude tested a fresh install and a board that already had reasons on phpBB 3.3 and 4.0, and ran the feature check on both branches with SQLite, MySQL, MariaDB, PostgreSQL and MSSQL.


Investigated and written by Claude on behalf of William Jacoby (bonelifer).

@bonelifer
bonelifer merged commit 55e3924 into main Nov 8, 2026
57 checks passed
@bonelifer
bonelifer deleted the build-extension branch November 8, 2026 05:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Design review: See Notes

1 participant