Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
108 changes: 40 additions & 68 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,33 +1,21 @@
## phpbbmodders Wiki

This is an extension for the phpBB forums software. It adds a simple wiki to
your forum. On each edit the old version is saved, so you can compare the
difference between versions and approve or reject a pending edit before it
goes live.

This fork carries forward and repairs [tas2580](https://tas2580.net)'s
original Wiki extension by way of
[Crizz0/phpBB.de's 3.2.x fork](https://github.com/phpbb-de/wiki) — see
Acknowledgments below.

DESCRIPTION
-------
Adds a simple wiki to your forum. On each edit the old version is saved and
you can compare the difference between versions.

To add a new article, use the "New article title" box on the Wiki overview
page, or write a link like
```[url=https://your-domain.tld/app.php/wiki/new-article]New article[/url]```
and click it — either way you land on the edit form for that article.

Articles with unapproved edits show up in a "Pending articles" section on
the overview page (visible to users with the `m_wiki_view_inactive`
permission), with direct Approve/Reject actions. Approving a pending version
that is older than the currently live one is blocked in favor of a forced
review, so a stale draft can't silently overwrite newer content.

SCREENSHOTS
-------
# phpBB Modders Wiki

[![Tests](https://github.com/phpbbmodders/phpbb-ext-wiki/actions/workflows/tests.yml/badge.svg)](https://github.com/phpbbmodders/phpbb-ext-wiki/actions/workflows/tests.yml) [![Lint](https://github.com/phpbbmodders/phpbb-ext-wiki/actions/workflows/lint.yml/badge.svg)](https://github.com/phpbbmodders/phpbb-ext-wiki/actions/workflows/lint.yml)

A wiki for phpBB with version history, side-by-side compare, and a moderation queue for edits.

## Features

- A wiki at `/wiki`, with an overview page listing its articles.
- Start an article from the overview page's **New article title** box, or by linking to `/wiki/<article-name>` and following the link.
- Every edit is saved as a new version; compare any two versions side by side.
- Edits can wait for approval: moderators get a **Pending articles** list with Approve and Reject. Approving a version older than the live one is blocked, so a stale draft can't overwrite newer content.
- Moderators can take an article offline or delete it, and articles can be made sticky or set to redirect.
- Notifications when an edit is waiting for approval.
- Separate permissions for viewing, editing, version history, deleting and moderating.

## Screenshots

| Overview | Article |
|---|---|
| [![Wiki overview page](docs/images/wiki-overview.png)](docs/images/wiki-overview.png) | [![Article view](docs/images/wiki-article-view.png)](docs/images/wiki-article-view.png) |
Expand All @@ -46,15 +34,22 @@ an active article offline or deleting it entirely:

[![Moderator controls dropdown: set article inactive, delete article](docs/images/wiki-moderator-controls.png)](docs/images/wiki-moderator-controls.png)

INSTALLATION
----------
To install this extension, download it and upload the files to your forum
under <b>/ext/phpbbmodders/wiki</b>. Then go to the Admin panel of your forum and
navigate to Customise -> Extension Management -> Extensions. Find this
extension in the list and click Enable.
## Requirements

- phpBB 3.3.0 or later (also tested on phpBB 4.0)
- PHP 7.4 or later

Tested versions and compatibility notes: [docs/compatibility.md](docs/compatibility.md).

## Installation

1. Copy the extension to `/ext/phpbbmodders/wiki`
2. In the Administration Control Panel, go to **Customise → Manage extensions**
3. Enable the **phpBB Modders Wiki** extension
4. Set who can view and edit the wiki under the usual Permissions screens

### Upgrading from `tas2580/wiki`

UPGRADING FROM tas2580/wiki
----------
This extension used to be installed as `tas2580/wiki`. It is now
`phpbbmodders/wiki`. To switch an existing board without losing any
articles, versions, permissions or notification settings:
Expand All @@ -71,31 +66,6 @@ If you disable the old extension from the command line (`bin/phpbbcli.php`)
instead of the ACP, run `bin/phpbbcli.php cache:purge` before enabling the
new one; the command-line disable doesn't clear the cache.

COMPATIBILITY
-------
Verified working, end to end (create/edit/versioning/compare/approve-reject/
notifications), on:

- phpBB 3.3.x (tested on 3.3.18-dev)
- phpBB 4.0.0-a3-dev

phpBB 3.2.x compatibility is **not independently verified by this fork** —
it's carried forward from Crizz0/phpBB.de's original claim for their branch.
The `pattern:`/`%parameter%` YAML fixes and other changes here target 3.3.x
and 4.0 specifically; 3.2.x may or may not still work as-is.

phpBB 3.3.x and 4.0 both bundle a stricter Symfony YAML parser than this
extension originally targeted, and phpBB 4.0 additionally ships a much
newer Symfony (7.x) and removes Flash BBCode support. Both are accounted
for in this fork.

One known forward-compatibility note: `\phpbb\user::__get('lang')` (the
`$user->lang['KEY']` array-access shorthand this extension used to rely on
throughout) is marked `@deprecated ... To be removed: 4.0.0` in phpBB core
itself. This fork already uses the non-deprecated `$user->lang('KEY')` method
call everywhere instead, so it isn't exposed to that removal whenever it
happens in a later 4.0 build.

## TODO

Ideas not yet built, practical and speculative alike: [`docs/TODO.md`](docs/TODO.md).
Expand All @@ -108,8 +78,8 @@ Contributions are welcome!
- **Everything else** (questions, feature requests, ideas, general discussion): [Use Discussions](https://github.com/orgs/phpbbmodders/discussions), or the [community forum](https://www.phpbbmodders.com/community/).
- Pull requests are welcome for bug fixes or discussed features.

ACKNOWLEDGMENTS
-------
## Acknowledgments

- Original extension by [tas2580](https://tas2580.net).
- Updated for phpBB 3.2.x (notification API fixes, textreparser support) by
Christian Schnegelberger ([Crizz0](https://www.crizzo.de)) in the
Expand All @@ -120,6 +90,8 @@ ACKNOWLEDGMENTS
moderation queue for pending articles, and general bug fixes.
- Code review, bug fixes, and documentation assisted by [Claude](https://www.anthropic.com/claude).

LICENSE
-------
<a href="http://opensource.org/licenses/gpl-2.0.php">GNU General Public License v2</a>
## License

This extension is licensed under the **GNU General Public License v2.0**.

See [license.txt](license.txt) for more information.
2 changes: 1 addition & 1 deletion composer.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "phpbbmodders/wiki",
"type": "phpbb-extension",
"description": "A simple wiki",
"description": "A wiki for phpBB with version history, side-by-side compare, and a moderation queue for edits.",
"homepage": "https://www.phpbbmodders.com/",
"version": "1.1.0",
"keywords": [
Expand Down
24 changes: 24 additions & 0 deletions docs/compatibility.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Compatibility

Verified working, end to end (create/edit/versioning/compare/approve-reject/
notifications), on:

- phpBB 3.3.x (tested on 3.3.18-dev)
- phpBB 4.0.0-a3-dev

phpBB 3.2.x compatibility is **not independently verified by this fork** —
it's carried forward from Crizz0/phpBB.de's original claim for their branch.
The `pattern:`/`%parameter%` YAML fixes and other changes here target 3.3.x
and 4.0 specifically; 3.2.x may or may not still work as-is.

phpBB 3.3.x and 4.0 both bundle a stricter Symfony YAML parser than this
extension originally targeted, and phpBB 4.0 additionally ships a much
newer Symfony (7.x) and removes Flash BBCode support. Both are accounted
for in this fork.

One known forward-compatibility note: `\phpbb\user::__get('lang')` (the
`$user->lang['KEY']` array-access shorthand this extension used to rely on
throughout) is marked `@deprecated ... To be removed: 4.0.0` in phpBB core
itself. This fork already uses the non-deprecated `$user->lang('KEY')` method
call everywhere instead, so it isn't exposed to that removal whenever it
happens in a later 4.0 build.
Loading