Extension:TableProgressTracking
![]() Release status: betaCategory:Beta status extensions |
|
---|---|
Implementation | Parser extensionCategory:Parser extensions |
Author(s) | Telepedia (Original Authoritytalk) |
Latest version | 1.1.0 (2025/07/13) |
Compatibility policy | Main branch maintains backward compatibility.Category:Extensions with master compatibility policy |
MediaWiki | 1.43+Category:Extensions with manual MediaWiki version |
PHP | 8.0+ |
Database changes | Yes |
Tables | table_progress_tracking |
License | Apache License 2.0 |
Download | GitHub: README |
TableProgressTracking is an extension which allows users to track their progress against certain criteria through MediaWiki tables, such as achievements earned in a game, books read, or episodes watched of a television show.
It is an open-source implementation of the Fandom extension "ProgressTracking", and aims to retain backwards compatibility with that feature set; progress tracking tables created on Fandom's version of the extension should work with this version.
Installation
- Download and place the file(s) in a directory called
TableProgressTracking
in yourextensions/
folder. - Add the following code at the bottom of your LocalSettings.php file:
wfLoadExtension( 'TableProgressTracking' );
Done – Navigate to Special:Version on your wiki to verify that the extension is successfully installed.
Usage
To add progress tracking to a MediaWiki table, it simply needs to be wrapped in the <table-progress-tracking></table-progress-tracking>
parser tags. An example table is as such:
<table-progress-tracking table-id="1" unique-column-index="1"> {| class="wikitable sortable" |- ! Column 1 !! Column 2 !! Column 3 |- | Row1-1 || Row1-2 || Row1-3 |- | Row2-1 || Row2-2 || Row2-3 |- | Row3-1 || Row3-2 || Row3-3 |- | Row4-1 || Row4-2 || Row4-3 |} </table-progress-tracking>
The extension will automatically add the checkboxes; these are Codex checkboxes added with CSS only styles, therefore this extension requires MediaWiki 1.43 or above.
There are several arguments that can (or must) be passed to the table for it to be displayed:
- table-id
This is a required argument that identifies this table on the article. It must be provided, and it must be an integer. It should be unique on the page and two tables should not share the same table-id (at present, they can, and no error will be thrown, but tracking won't work properly).
- unique-column-index
This argument identifies which column should be used for tracking purposes to identify which of the columns should be checked off. It can be any number between up until the number of columns within the table. It is best if this is set to a column in which the data will not change frequently. If this is set to a value such as "1" then the data in column 1 will be used for tracking purposes. If the value of column 1 changes after the column is checked, then that progress will be lost.
This is not a required argument, however if this is not provided, each row must provide a data-row-id
(see below).
- data-row-id
Instead of using a unique column index (as above) you may opt to use a data-row-id
. This detaches the tracking from the content inside the table, and is best used where the data in the table may change frequently and is therefore not suitable to be used as an identifier. It is used as such:
<table-progress-tracking table-id="1"> {| class="wikitable sortable" |- ! Column 1 !! Column 2 !! Column 3 |- | data-row-id="1" | Row1-1 || Row2-2 || Row3-3 |- | data-row-id="2" | Row1-1 || Row2-2 || Row3-3 |- | data-row-id="3" | Row1-1 || Row2-2 || Row3-3 |- | data-row-id="4" | Row1-1 || Row2-2 || Row3-3 |} </table-progress-tracking>
If you use data-row-id
then you must provide a data-row-id for each row in the table. If this is provided, then this becomes the identifier and even when the data in the table changes, as long as the id for that row is not changed, progress will not be lost.
If you provide both a unique column index and the data row id, the unique column index will be ignored in favour of the data row id.
- header-label
By default, the header for the column where the checkboxes appear will be a Codex check icon. If you do not want this, and wish to provide your own header (such as Completed?) then you may pass a custom header in the header-label
argument.
Limitations
- There is no validation during the saving of a page with a progress table on it. As such, the page will save, however the table will not render and an error box will display where the table should be (caching will also be disabled for that page until the table is fixed). It is planned to have validation when saving a page in the future.
- There is no cleanup done when a table is removed from an article. This can lead to left over data in the database even when the table is not currently being used.
See also
- Table Progress Tracking - the Fandom extension that this extension is based on.