Skip to content

ProfessionalWiki/PageApprovals

Repository files navigation

Page Approvals

GitHub Workflow Status Type Coverage Psalm level Latest Stable Version Download count

MediaWiki extension for approving pages.

Professional.Wiki, the creator of this extension, provides MediaWiki Development, MediaWiki Hosting, and MediaWiki Consulting.

Table of Contents

Usage Documentation

See the Page Approvals usage documentation.

Installation

Platform requirements:

  • PHP 8.1 or later (tested up to 8.3)
  • MediaWiki 1.39 or later (tested up to 1.43-dev)

The recommended way to install the Page Approvals extension is with Composer and MediaWiki's built-in support for Composer.

On the commandline, go to your wikis root directory. Then run these two commands:

COMPOSER=composer.local.json composer require --no-update professional-wiki/page-approvals:~1.0
composer update professional-wiki/page-approvals --no-dev -o

Then enable the extension by adding the following to the bottom of your wikis LocalSettings.php file:

wfLoadExtension( 'PageApprovals' );

You can verify the extension was enabled successfully by opening your wikis Special:Version page.

PHP Configuration

Configuration can be changed via LocalSettings.php.

See the Page Approvals configuration reference.

Development

Run composer install in extensions/PageApprovals/ to make the code quality tools available.

Running Tests and CI Checks

You can use the Makefile by running make commands in the PageApprovals directory.

  • make ci: Run everything
  • make test: Run all tests
  • make phpunit --filter FooBar: run only PHPUnit tests with FooBar in their name
  • make phpcs: Run all style checks
  • make cs: Run all style checks and static analysis
  • make lint-docker: Run all JavaScript and CSS linting

Updating Baseline Files

Sometimes Psalm and PHPStan generate errors or warnings we do not wish to fix. These can be ignored by adding them to the respective baseline file. You can update these files with make stan-baseline and make psalm-baseline.

Inserting Test Data

INSERT INTO approver_config (ac_user_id, ac_categories)
VALUES (1, 'TestCat|TestCat2');

Release Notes

Version 1.0.0 - 2024-0x-xx

  • Approval UI on regular wiki pages that shows the approval status and allows approvers to change said status
  • API endpoints to approve and unapprove pages
  • Automatic unapproval of pages when their displayed content changes
  • Detection of changes to displayed content via embedded constructs such as templates or SMW queries
  • Approver management page and associated MediaWiki right (Special:ManageApprovers)
  • Personalized list of pending approvals (Special:PendingApprovals)
  • Compatibility with MediaWiki 1.39 up to 1.43-dev
  • Compatibility with PHP 8.1 up to 8.3