! Topic privacy was fixed a week ago, but it broke post approvals in the process. Here's the thing: Wedge loads users, then boards, then permissions, then board permissions. It needs to determine board permissions before the board data is loaded, but board permissions are retrieved through the current board's profile ID, which is only accessible with a board table query. Too long, didn't read? The snake was biting its own nail. I could either separate post approvals from topic privacy tests (boo!), or add an extra super-fast query at the right time, and only when needed, to deal with it (Class-System). Let's see how it goes... (Class-System.php, Display.php, Load.php)

! Only increase a topic's view count if the user was actually able to read it. This topic privacy paradigm shift made everything more complicated for me. Also used the opportunity to redirect topic loading errors to rejectTopic(), that new handy function for hiding all topic details. (Display.php)

* Should admins be able to access topics that are off-limits to them..? Believe me, I'd love to say 'yes' and enforce that. Still, it's hard to do it for now, and I'd rather we start a talk about that on wedge.org, rather than just keep my 'false' hack in place. (Class-System.php)
* Slightly simplifying a regex. (Subs-BBC.php)

* Merged output buffer and page replacements into a single str_replace. (Subs-Template.php)