Розширення:PageTriage
PageTriage Статус релізу: стабільний |
|
---|---|
Реалізація | Спеціальна сторінка , Інтерфейс користувача |
Опис | Полегшує перегляд і затвердження нових сторінок |
Автор(и) | Ryan Kaldari, Benny Situ |
Compatibility policy | Snapshots releases along with MediaWiki. Master is not backward compatible. |
MediaWiki | >= 1.43.0 |
Зміни в БД | Так |
Таблиці | pagetriage_log pagetriage_page pagetriage_page_tags pagetriage_tags |
Ліцензія | MIT License |
Завантажити | |
Приклад | Special:NewPagesFeed on the English Wikipedia |
|
|
|
|
|
|
Quarterly downloads | 16 (Ranked 121st) |
Translate the PageTriage extension if it is available at translatewiki.net | |
Issues | Open tasks · Report a bug |
PageTriage — розширення, що спрямоване на забезпечення багатого інтерфейсу для відсіву новостворених сторінок. Воно призначене замінити основну функцію патрулювання нових сторінок, додаючи додаткову функціональність для перегляду, позначення та поліпшення нових статей. Воно додає сторінку Спеціальна:Стрічка_нових_сторінок, а також панель інструментів кураторства сторінок, до нових сторінок для користувачів із дозволом «патрульний». Його розробила Features Engineering team Фонду Вікімедіа. Детальніше див. «Кураторство сторінок».
Важливо відзначити, що частина конфігурації та коду є специфічною для робочих процесів англомовної Вікіпедії, і те, як розширення сконструйоване зараз, майже унеможливлює його інтернаціоналізацію. (див. Phabricator:T50552).
Встановлення
- Завантажте і розмістіть файли в каталозі з назвою
PageTriage
у вашійextensions/
папці.
Розробники та автори коду повинні замість цього встановити розширення з Git, використовуючи:cd extensions/
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/PageTriage - Додайте такий код унизу вашого файлу LocalSettings.php :
wfLoadExtension( 'PageTriage' );
- Запустіть скрипт оновлення, який автоматично створить необхідні таблиці бази даних, які потрібні цьому розширенню.
- Готово – Перейдіть до Special:Version вашої вікі, щоб переконатися, що розширення встановлено успішно.
Checking for successful install
Щоб побачити роботу розширення:
- Створіть нову сторінку, що містить лише кілька речень тексту, як анонімний користувач.
- Відвідайте Спеціальна:Стрічка_нових_сторінок
Повинна з'явитися нова сторінка з позначками «Немає категорій», «Можлива сирота» тощо. Щоб побачити панель інструментів кураторства сторінок:
- Увійдіть як користувач із дозволом «адміністратор», або додайте групу з дозволом «патрульний», і додайте котрогось користувача до цієї групи, й увійдіть як цей користувач.
- Відвідайте Спеціальна:Стрічка_нових_сторінок
- Тепер ви повинні побачити кнопку «Перевірити» поруч із новою сторінкою.
- Натисніть на неї, і ви повинні побачити панель інструментів кураторства сторінок на новій сторінці.
Розширене встановлення
Додаткові розширення
Для повної функціональності вам також потрібно встановити деякі додаткові розширення, хоча PageTriage працює без них.
- Echo - Allows users to receive notifications for things like when an article they created has been marked as reviewed.
- ORES - In Special:NewPagesFeed, allows filtering by "predicted class" (
articlequality
: stub, start, c-class, b-class, good, featured) and "potential issues" (draftquality
: vandalism, spam, attack, copyvio). The predictions are done with machine learning (except for copyvio, which is done via a third party bot using an API, but is included here becausedraftquality
needs to be turned on). ORES AI is typically trained by editors via https://labels.wmflabs.org/ui/, or by analyzing reverts. The ORES database provides probabilities which are accessed via the ORES extension. A threshold (tolerable false positive rate) is applied to this data, and some of the thresholds are set in the ORES extension's extension.json file. - WikiLove - Adds a button to the Page Curation toolbar that allows you to leave a person a barnstar more easily.
Enabling draft namespace
By default, the draft namespace is disabled, but can be enabled with the following update to LocalSettings.php
// These three settings are optional, and will enable the Articles-for-Creation mode.
$wgPageTriageDraftNamespaceId = 118;
$wgExtraNamespaces[ $wgPageTriageDraftNamespaceId ] = 'Draft';
$wgExtraNamespaces[ $wgPageTriageDraftNamespaceId + 1 ] = 'Draft_talk';
When enabled, a new "articles for creation" tab will show up on Special:NewPagesFeed.
By default pages edited in the draft namespace will be "unsubmitted".
Articles in the draft namespace can be submitted for review by adding [[Category:Pending_AfC_submissions]] to the draft page. At which point they will show up under "awaiting review".
Note the toolbar controlled by the configuration variable $wgPageTriageEnableCurationToolbar does not show up in the draft namespace.
Cron jobs
To make sure old articles are eventually taken out of the new pages feed, you should set up a cron job to run the following file every 48 hours: cron/updatePageTriageQueue.php
Manual testing
Special:NewPagesFeed -> Articles for Creation
- Enable draftspace by following the directions above in the section #Enabling draft namespace.
- In Special:NewPagesFeed, to place a draft in one of the AFC states, you need to create a page in the "Draft" namespace, and add it to the following categories:
- Unsubmitted: (no category)
- Awaiting review: Category:Pending AfC submissions
- Under review: Category:Pending AfC submissions being reviewed now
- Declined: Category:Declined AfC submissions
Note: The Page Curation toolbar does not display for drafts.
ORES
Enwiki has the ORES extension installed, which provides machine learning predictions of an article's quality and of some common issues. ORES works fine in production, but requires some setup if you want to test in a localhost environment. It can be desirable to test with ORES turned on, for example, if you are changing the layout of Special:NewPagesFeed. Here is a localhost testing procedure:
- Clone Extension:ORES and add
wfLoadExtension( 'ORES' );
inLocalSettings.php
- Add this to
LocalSettings.php
$wgPageTriageEnableOresFilters = true;
$wgOresWikiId = 'enwiki';
$wgOresModels = [
'articlequality' => [ 'enabled' => true, 'namespaces' => [ 0 ], 'cleanParent' => true ],
'draftquality' => [ 'enabled' => true, 'namespaces' => [ 0 ], 'types' => [ 1 ] ]
];
- Run
php extensions/ORES/maintenance/BackfillPageTriageQueue.php
Determining if a page is reviewed
Status codes
There are status codes used to track whether a page is reviewed or not. These are the values given when you query patrol_status
, ptrp_reviewed
, and ptrl_reviewed
:
- Unreviewed
- 0 - unreviewed
- Reviewed
- 1 - reviewed (someone clicked the green check mark in the Page Curation toolbar)
- 2 - patrolled (someone clicked the "Mark as patrolled" link at the bottom right corner of a page)
- 3 - autopatrolled (someone with the
autopatrol
user right created the page, or moved the page from a non-tracked namespace to a tracked namespace) - no result - will occur if the page is not in a tracked namespace (mainspace, userspace, and draftspace), if the article was created before PageTriage was installed, or if the article was reviewed for longer than 30 days (these records are deleted by a cron job)
Via the API
To check the review status of pages using an API query, you can use api.php?action=query&prop=isreviewed
.
Sample JavaScript code:
/**
* @param {number} pageID The page ID number. A positive number with no commas.
*/
async isReviewed(pageID) {
let api = new mw.Api();
let response = await api.get( {
action: 'query',
format: 'json',
formatversion: '2',
prop: 'isreviewed',
pageids: pageID,
} );
return response.query.pages[0].isreviewed;
}
/**
* @param {string} title One title. Can include namespace. Example: User:Test
*/
async function isReviewed(title) {
let api = new mw.Api();
let response = await api.get( {
action: 'query',
format: 'json',
formatversion: '2',
prop: 'isreviewed',
titles: title,
} );
return response.query.pages[0].isreviewed;
}
Via SQL
To check the review status of pages using an SQL query, you need to query the pagetriage_page
table and the ptrp_reviewed
field.
Follow the directions in #Status codes to interpret the values of this field.
/* By page_id */
SELECT ptrp_reviewed
FROM pagetriage_page
WHERE ptrp_page_id = 71318376
/* By page_title and page_namespace */
SELECT ptrp_reviewed
FROM pagetriage_page
JOIN page ON page_id = ptrp_page_id
WHERE page_title = 'Živko_Kostadinović' -- underscores, not spaces
AND page_namespace = 0
SQL
SQL tables
Name | Prefix | Description | Old entry deletion strategy | Service classes (when refactoring, SQL queries should be moved to here) | Data classes |
---|---|---|---|---|---|
pagetriage_page | ptrp_ | The main table. Log of all pages created after PageTriage was installed. One entry per page. Stores the "mark as reviewed" statuses mentioned above. Also stores the last time a tag was placed on the page by PageTriage. Query ptrp_reviewed > 0 in this table to figure out if a page is marked as reviewed. No entry also means the page is reviewed.
|
All articles deleted once ptrp_reviewed > 0 (marked as reviewed) and older than 30 days. All redirects deleted after 180 days regardless of patrol status.
|
QueueManager, QueueLookup | QueueRecord |
pagetriage_page_tags | ptrpt_ | Stores metadata about pages, to make the filters in the Page Curation toolbar work. For example, if you pick the filter "Were previously deleted", then PageTriage will query this table looking for the recreated tag ID. The tag ID is discovered by checking the pagetriage_tags table. See #pagetriage_page_tags for list of tags.
|
All article metadata deleted once ptrp_reviewed > 0 (marked as reviewed) and older than 30 days. All redirect metadata deleted after 180 days regardless of patrol status.
|
||
pagetriage_tags | ptrt_ | A dictionary of page_tags, and their corresponding ID number. See #pagetriage_page_tags for list of tags. |
pagetriage_page_tags
pagetriage_page_tags
data is updated by calling ArticleCompileProcessor::newFromPageId( [ $pageId ] )->compileMetadata()
. This is called in the following hooks:
onPageMoveComplete()
- runs when moving a pageonLinksUpdateComplete()
- runs when saving an editonMarkPatrolledComplete()
- runs when clicking the "Mark this page as patrolled" link in bottom right corner of certain pages
It is called asynchronously. The user will see that their edit succeeded and can continue browsing the website, and the page tags update will occur in the background, invisibly to the user.
List of tags
The pagetriage_page_tags
are as follows:
- Author information
- user_id
- user_name - there's a filter where you can type in their username
- user_editcount
- user_creation_date
- user_autoconfirmed
- user_experience - Experience level: newcomer (non-autoconfirmed), learner (newly autoconfirmed), experienced, or anonymous. These experience levels are baked into core and can be accessed with
MediaWikiServices::getInstance()->getUserFactory()->newFromUserIdentity( $performer )->getExperienceLevel()
- user_bot
- user_block_status
- Deletion tags - will display a black trash can icon if marked for deletion
- afd_status
- blp_prod_status
- csd_status
- prod_status
- Special:NewPagesFeed red warning text
- category_count - No categories
- linkcount - Orphan
- reference - No citations
- recreated - Previously deleted
- user_block_status - Blocked
- Page information
- page_len - size of article, in bytes
- rev_count - number of edits to the article
- snippet - text from beginning of article, used in Special:NewPagesFeed to preview the article
- afc_state - 1 unsubmitted, 2 pending, 3 under review, 4 declined
- copyvio - latest revision ID that has been tagged as a likely copyright violation, if any
PHP
Конфігурування розширення
Розширення засноване на праві «патрульний». Докладніше про конфігурування патрулювання див. Manual:Патрулювання .
Наступні конфігураційні змінні можна задати у вашому файлі LocalSettings.php:
Variable | Default | Description |
---|---|---|
$wgPageTriageEnableCurationToolbar
|
true
|
Встановіть у хибність для вимкнення панелі інструментів кураторства |
$wgPageTriageInfiniteScrolling
|
true
|
Чи використовувати нескінчене прокручування у стрічці нових сторінок |
$wgPageTriageMaxAge
|
90 | The age (in days) at which PageTriage allows unreviewed articles to become indexed by search engines (if $wgPageTriageNoIndexUnreviewedNewArticles is true). |
$wgPageTriageNamespaces
|
NS_MAIN | The namespaces that PageTriage is active in. |
$wgPageTriageNoIndexUnreviewedNewArticles
|
false
|
Встановіть це в істину, якщо нові, непереглянуті статті повинні встановлюватися в noindex. Іншими словами, якщо вони не повинні індексуватися пошуковими системами до їх перегляду. |
Повний список конфігураційних змінних див. у extension.json.
API
PageTriage додає наступні кінцеві точки API, якими можна користуватися:
API | Description | Type | Triggering action |
---|---|---|---|
pagetriageaction | Позначає сторінку переглянутою чи непереглянутою, та журналює дію в Special:Log. | Write |
|
pagetriagelist | Видобуває список сторінок у черзі, а також метадані кожної сторінки, включно зі статусом їхнього перегляду. To retrieve one page, you must provide the page_id . To provide multiple pages, you must select one of showreviewed /showunreviewed , and one of showredirs /showdeleted /showothers , or no pages will be returned.
|
Read |
|
pagetriagestats | Видобуває статистики про кількість сторінок у черзі для використання в заголовку Спеціальна:Стрічка_нових_сторінок. | Read |
|
pagetriagetagcopyvio | Mark an article as a potential copyright violation, and logs the action in Special:Log. | Write |
|
pagetriagetagging | Додає шаблони упорядкування чи вилучення на сторінку, та журналює дію в Special:Log. | Write |
|
Special:Log
The following logs are created by the extension:
Special:Log | log_type
|
log_action
|
Description | Notes |
---|---|---|---|---|
Page curation log | pagetriage-curation | delete, enqueue, reviewed, tag, unreviewed | Logs deletion tagging, maintenance tagging, marking page as reviewed, marking page as unreviewed | |
Potential copyright violation log | pagetriage-copyvio | insert | Allows a bot to log potential copyright violations | Doesn't display unless you set $wgPageTriageEnableCopyvio to true
|
Точки входу
Риси розширення можуть бути викликані різними діями:
Entry point type | File location | Notes |
---|---|---|
5 APIs | includes/Api/* | |
1 special page | includes/SpecialNewPagesFeed.php | |
20 hooks |
|
|
1 cron job | cron/updatePageTriageQueue.php | runs every 48 hours |
7 maintenance scripts | maintenance/* | need to be run manually |
Here is a list of some actions and the corresponding entry points they trigger:
Action | Entry points used |
---|---|
View Main page |
|
Save an edit to the Main page |
|
Type in search box, triggering search suggestions |
|
View Special:NewPagesFeed |
|
View an unreviewed article while logged in
and having the |
|
Hooks
File | Group | Hook | Actions it performs |
---|---|---|---|
Hooks.php | Move page | onPageMoveComplete | Changes patrolled status, updates cache, updates metadata in pagetriage_page_tags table.
|
Edit page | onRevisionFromEditComplete | Handles marking redirects that flip to articles as unreviewed. DeferredUpdate. | |
onPageSaveComplete | Add new articles to the New Pages Feed and pagetriage_page table.
| ||
onLinksUpdateComplete | DeferredUpdate of metadata / pagetriage_page_tags table.
| ||
Every page load | onArticleViewFooter |
| |
Help:Patrolled edits | onMarkPatrolledComplete | Marking as patrolled (the patrol link shows up in template namespace, for example) will also mark as reviewed in PageTriage. | |
Blocking and unblocking | onBlockIpComplete | Update article metadata / pagetriage_page_tags when a user gets blocked or unblocked. This is so Special:NewPagesFeed can display "Blocked" by articles created by blocked users.
| |
onUnblockUserComplete | |||
onResourceLoaderGetConfigVars | Adjusts some config vars related to draft namespace ID. | ||
Extension:Echo | onBeforeCreateEchoEvent | Code that makes PageTriage Echo notifications work. For example, the notification to article creators that their article was marked as reviewed. | |
onEchoGetDefaultNotifiedUsers | |||
onLocalUserCreated | |||
Extension:ORES | onORESCheckModels | Code that makes PageTriage ORES filters in Special:NewPagesFeed work. For example, filtering by article size or by predicted vandalism/spam/copyvio. | |
Help:Tags | onListDefinedTags | Code that makes PageTriage tags work. Tags can be attached to individual revisions to show that a tool helped make the edit. For PageTriage, it tags edits "PageTriage". | |
onChangeTagsAllowedAdd | |||
onChangeTagsListActive | |||
API | onApiMain__moduleManager | Disables the pagetriagetagging API, if that feature is turned off in PageTriage's settings. | |
Delete or undelete page | onPageDeleteComplete | If a page is deleted, also delete its data from the PageTriage queue, and remove it from the cache. | |
HookHandlers/
UndeleteHookHandler.php |
onArticleUndelete | If a page is undeleted, add it back to the PageTriage queue, regardless of autopatrol status. Fixes a bug where undeleted pages were automatically marked as reviewed. | |
HookHandlers/ Schema.php | SQL | onLoadExtensionSchemaUpdates |
|
Cron jobs and maintenance scripts
File | What it does | Why run it? When is it useful? | Safe to delete maintenance script? |
---|---|---|---|
cron/updatePageTriageQueue.php | Every 48 hours, remove some items from the new pages feed after certain time limits. Removed items can be re-added by clicking "Add to the New Pages Feed". | Keeps the SQL tables from getting too big. | |
maintenance/cleanupPageTriage.php | Remove page with namespace other than NS_MAIN/NS_USER from pagetriage queue. | Fix a bug? T321982 | |
maintenance/cleanupPageTriageLog.php | Maintenance script that updates parameter name from '4::tags' to 'tags' in pagetriage-curation log and (now defunct) pagetriage-deletion log | One time conversion of old log entries to modern format? Logs are now always written in the new format. [1]. | Probably |
maintenance/cleanupPageTriagePageTags.php | Remove page from pagetriage_page_tags if they are not in pagetriage_page
|
Fix a bug that made it into production. All solved now. [2]. | Probably |
maintenance/DeleteAfcStates.php | Delete the afc_state tag value for every page in the queue (drafts and non-drafts). Normally all pages have this tag even if they're not drafts. | Fix a bug that made it into production. All solved now. [3]. T203184#4592953. | Probably |
maintenance/FixNominatedForDeletion.php | Set pagetriage_page.ptrp_deleted if the page is has any pagetriage_page_tags related to deletion (e.g. prod_status, blp_prod_status, etc.)
|
Fix a bug that made it into production. All solved now. [4]. T202582. | Probably |
maintenance/populateDraftQueue.php | Add missing Draft namespace pages to the AfC triage queue. | Related to deploying PageTriage's draftspace feature into an environment that already has a draftspace. [5]. | |
maintenance/updateUserMetadata.php | Former cron job. Update expired user metadata in the pagetriage_page_tags table
|
[6]. T341432. |
NOINDEX
NOINDEX refers to the HTML code <meta name="robots" content="noindex">
, which can be inserted into a page to stop the page from appearing in search engine results. In default installations of MediaWiki, all pages are indexed unless they contain the wikicode __NOINDEX__
. When $wgPageTriageNoIndexUnreviewedNewArticles
is set to true, PageTriage will take over deciding what pages are indexed. The logic that determines this is located in includes/Hooks.php
, in the onArticleViewFooter()
method.
First check
- First check: Noindex the page if ALL of the following are true:
$wgPageTriageNoIndexUnreviewedNewArticles
is turned on- Page age is less than
$wgPageTriageMaxAge
(set to 90 days on enwiki) - Page is in
pagetriage_page
table[1] - Page is marked as unpatrolled (ptrp_status = 0)
Second check
- Second check: If the wikitext has the
__NOINDEX__
magic word, noindex the page if ALL of the following are true:- Page age is less than
$wgPageTriageMaxNoIndexAge
(set to 90 days on enwiki) - If
$wgPageTriageMaxNoIndexAge
is not null, page is inpagetriage_page
table[2]
- Page age is less than
The main use case for the __NOINDEX__ magic word is in deletion templates and maintenance tag templates that are transcluded into mainspace or draftspace. See this search.
Is the page in the pagetriage_page
table?
In regards to the requirement "Page is in pagetriage_page
table", there are several ways a for a page to get into this table:
- Not been deleted by a PageTriage cron job
- One cron job deletes redirects older than
$wgPageTriageRedirectAutoreviewAge
days old (default 180 days as of Sep 2022), regardless of patrol status. In other words, this cron job autopatrols them. - Another cron job deletes reviewed pages after 30 days of being reviewed
- One cron job deletes redirects older than
- In a namespace that PageTriage is configured to patrol
- Isn't an article that is so old it predates the installation of PageTriage
JavaScript
Directory structure
- /modules/
- ext.pageTriage.article - related to marking an article as reviewed
- ext.pageTriage.defaultTagsOptions - lists of deletion tags and maintenance tags used by the Page Curation toolbar
- ext.pageTriage.init - creates a mw.pageTriage object
- ext.pageTriage.newPagesFeed - Special:NewPagesFeed
- ext.pageTriage.sidebarLink - related to the "Add to the New Pages feed" link that shows up in the left menu toolbox, and the ooui alert box it generates
- ext.pageTriage.toolbar - Page Curation toolbar
- ext.pageTriage.toolbarStartup - ActionQueue and toolbar startup code
- ext.pageTriage.util - Backbone.js models (article, revision, stats)
- external - contains external libraries including backbone, jquery.tipoff, jquery.badge, jquery.waypoint, and underscore
Панель інструментів
The toolbar has three states: maximized
, minimized
, and hidden
. The maximized toolbar is the full-size toolbar with all buttons. The minimized toolbar still displays and floats, but simply says "Curation" and has an X you can click to close it. The hidden toolbar doesn't display at all, and can be re-opened by clicking the "Open Page Curation" link in the left menu.
External libraries
- front end
- old (moving away from)
- Backbone.js
- jQuery
- jQuery Badge
- jQuery Waypoints
- jQuery UI
- Mustache (template system)
- OOUI - used in modules/ext.PageTriage.enqueue (codesearch)
- Underscore.js
- new (moving towards)
- Codex
- Moment.js
- Vue
- old (moving away from)
Backbone and Underscore are unusual libraries to use in MediaWiki extensions, and jQuery UI is deprecated. Long term, we are interested in replacing these front end libraries, to make the extension easier to maintain.
Клієнтські гачки
mw.hook
ext.pageTriage.toolbar.ready
mw.pageTriage.actionQueue
PageTriage забезпечує систему черги спеціалізованих дій, для уможливлення інтеграції інших сценаріїв і додатків із ним.
Це схоже на mw.hook
за винятком того, що воно використовує обіцянки.
Це робиться за допомогою модуля mw.pageTriage.actionQueue
.
Документацію про роботу системи див. у коментарі у джерельному коді.
It is not currently used by any scripts or gadgets on enwiki, but it is used internally by PageTriage.
Модуль actionQueue доступний після спрацювання mw.hook ext.pageTriage.toolbar.ready
.
PageTriage дасть опрацьовувачеві черги дій Object із наступними даними, на додачу до інших даних, як зазначено нижче:
pageid
— ID сторінки, що переглядається.title
— Назва сторінки, включно з простором імен.reviewer
— Ім'я користувача PageTriage.creator
— Користувацьке ім'я творця сторінки.reviewed
— Чи позначена сторінка, зараз або в майбутньому, переглянута.
Доступні дії
delete
— Спрацьовує, коли переглядач висуває сторінку на вилучення. Дані, що передаються опрацьовувачеві, також включають:tags
— Об'єкт усіх шаблонів, доданих до сторінки. Ключі — назви шаблонів, а значення — об'єкти метаданних, включно з такими речами, як код швидкого вилучення.
mark
— Спрацьовує в разі зміни статусу перегляду сторінки. Також уключає:note
— Особисте повідомлення, яке переглядач додає творцеві сторінки. Може бути порожнім.
tags
— Спрацьовує, коли шаблони підтримки додаються до сторінки. Також уключає:tags
— Масив назв усіх шаблонів, які додаються до сторінки.note
— Особисте повідомлення, яке переглядач додає творцеві сторінки. Може бути порожнім.
Приклад
Для використання черги дій, зареєструйте функцію, що запуститься після спрацювання вищезгаданої дії. PageTriage чекатиме на завершення будь-якого асинхронного коду перш, ніж робити будь-що інше, як-от оновити сторінку. Наприклад, для редагування пісочниці після позначення сторінки патрульованою, можна використати:
$( function () {
// You must first listen for the ext.pageTriage.toolbar.ready event using mw.hook, to ensure your handler is registered at the right time.
mw.hook( 'ext.pageTriage.toolbar.ready' ).add( function ( queue ) {
// Listen for the 'mark' action.
queue.add( 'mark', function ( data ) {
return new mw.Api().edit( 'Sandbox', function ( revision ) {
// Replace 'foo' with the note the reviewer left.
return revision.content.replace( 'foo', data.note );
} );
} );
} );
} );
Where are preferences stored?
Preferences such as the user's Special:NewPagesFeed selected filters are stored as MediaWiki user preferences. The preference name is userjs-NewPagesFeedFilterOptions
. It is set using mw.Api().saveOption()
and read using mw.user.options.get()
. This data ends up in the SQL user_properties
table. Temporary accounts (IP masking) will not be able to store their preferences.
Installation on WMF wikis
This extension was designed for English Wikipedia. There is interest in changing its code and making it more useful to other wikis (phab:T50552), however this is challenging from a technical perspective and progress is slow. For now, the following are true:
- PageTriage is allowed to be installed on other wikis[3] (although as of 2024 this hasn't happened yet).
- The setting
$wgPageTriageEnableExtendedFeatures
can be set tofalse
to turn off English Wikipedia-specific features such as maintenance tags and deletion tags in the Page Curation toolbar. - There are concerns that the noindex features (controlled by
$wgPageTriageNoIndexUnreviewedNewArticles
and$wgPageTriageMaxNoIndexAge
) create search engine optimization problems, and these noindex features should not be enabled on new wikis without first discussing it with product manager Samwalton9 (WMF). - Like most other WMF-deployed extensions, PageTriage supports internationalization, and has its interface translated into many other languages.
Див. також
Notes
- ↑ Checked by
isPageUnreviewed()
- ↑ Checked by
isNewEnoughToNoIndex()
, if it doesn't exit early due to$wgPageTriageMaxNoIndexAge
beingnull
. - ↑ https://meta.wikimedia.org/w/index.php?title=Limits_to_configuration_changes&diff=prev&oldid=26121135
Це розширення використовується в одному або декількох проєктах Вікімедіа. Це, мабуть, означає, що розширення стабільне і працює досить добре, щоб його могли використовувати веб-сайти з великим трафіком. Шукайте назву цього розширення у файлах конфігурації Wikimedia CommonSettings.php та InitialiseSettings.php, щоб побачити, де це встановлене. Повний перелік розширень, встановлених на певній вікі, можна переглянути на сторінці Special:Version вікі. |
Це розширення включено до таких вікі-ферм/хостів та/або пакетів: Це не авторитетний список. Деякі вікі-ферми/хости та/або пакунки можуть містити це розширення, навіть якщо вони не вказані тут. Завжди звертайтеся до своїх вікі-ферм/хостів або комплекту для підтвердження. |
- Stable extensions/uk
- Special page extensions/uk
- User interface extensions/uk
- MIT licensed extensions/uk
- Extensions in Wikimedia version control/uk
- ApiMain::moduleManager extensions/uk
- ArticleViewFooter extensions/uk
- BeforeCreateEchoEvent extensions/uk
- BlockIpComplete extensions/uk
- ChangeTagsAllowedAdd extensions/uk
- ChangeTagsListActive extensions/uk
- LinksUpdateComplete extensions/uk
- ListDefinedTags extensions/uk
- LoadExtensionSchemaUpdates extensions/uk
- LocalUserCreated extensions/uk
- MarkPatrolledComplete extensions/uk
- ORESCheckModels extensions/uk
- PageDeleteComplete extensions/uk
- PageMoveComplete extensions/uk
- PageSaveComplete extensions/uk
- PageUndeleteComplete extensions/uk
- ResourceLoaderGetConfigVars extensions/uk
- RevisionFromEditComplete extensions/uk
- UnblockUserComplete extensions/uk
- All extensions/uk
- Extensions used on Wikimedia/uk
- Extensions included in Miraheze/uk
- Extensions included in WikiForge/uk
- API extensions/uk