Extension:PageTriage/pl

This page is a translated version of the page Extension:PageTriage and the translation is 8% complete.
Podręcznik rozszerzeń MediaWiki
OOjs UI icon advanced-invert.svg
PageTriage
Status wydania: stabilne
PagesFeedInfoFlyout.png
Realizacja Strona specjalna , Interfejs użytkownika
Opis Facilitates reviewing and approving new pages
Autor(zy) Ryan Kaldari, Benny Situ
Ostatnia wersja 0.3.0 (2018-06-26)
Polityka zgodności Snapshots releases along with MediaWiki. Master is not backward compatible.
MediaWiki 1.27+
Zmiany w bazie danych Tak
Tabele pagetriage_log
pagetriage_page
pagetriage_page_tags
pagetriage_tags
Licencja Licencja MIT
Pobieranie
Przykład Special:NewPagesFeed on the English Wikipedia
  • $wgPageTriageMaxAge
  • $wgTalkPageNoteTemplate
  • $wgPageTriageStickyStatsNav
  • $wgPageTriageNamespaces
  • $wgPageTriageMarkPatrolledLinkExpiry
  • $wgPageTriageDeletionTagsOptionsMessages
  • $wgPageTriageTagsOptionsMessages
  • $wgPageTriageEnabledEchoEvents
  • $wgPageTriageEnableOresFilters
  • $wgPageTriageInfiniteScrolling
  • $wgPageTriageEnableCopyvio
  • $wgPageTriageProjectLink
  • $wgPageTriageCurationModules
  • $wgPageTriageLearnMoreUrl
  • $wgPageTriageDraftNamespaceId
  • $wgPageTriageDeletionTagsOptionsContentLanguageMessages
  • $wgPtTemplatePath
  • $wgPageTriageEnableCurationToolbar
  • $wgPageTriageFeedbackUrl
  • $wgPageTriagePagesPerRequest
  • $wgPageTriageNoIndexUnreviewedNewArticles
  • $wgPageTriageStickyControlNav
  • pagetriage-copyvio
Przetłumacz rozszerzenie PageTriage jeżeli jest dostępne na translatewiki.net

Sprawdź wykorzystywanie i matrycę wersji.

Problemy Otwarte zadania · Zgłoś błąd

PageTriage is an extension that aims to provide a feature-rich interface for triaging newly-created articles. It is intended to replace the new page patrol core function while adding additional functionality for reviewing, tagging, and improving new articles. It adds a Special:NewPagesFeed page, and a page curation toolbar to new pages for those with the 'patrol' permission. It was developed by the Wikimedia Foundation's Features Engineering team. For additional details see Page Curation.

An important note is that some of the configuration and code is specific to the English-language Wikipedia's workflows and as it's constructed now the extension is pretty much impossible to internationalize. (See Phabricator:T50552.)

Pobieranie

The extension can be retrieved directly from Git

[?]:

  • Browse code
  • Some extensions have tags for stable releases.
  • Each branch is associated with a past MediaWiki release. There is also a "master" branch containing the latest alpha version (might require an alpha version of MediaWiki).

Extract the snapshot and place it in the extensions/PageTriage/ directory of your MediaWiki installation.

If you are familiar with Git and have shell access to your server, you can also obtain the extension as follows:

cd extensions/ git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/PageTriage.git

Instalacja

  • Pobierz i umieść plik(i) w katalogu o nazwie PageTriage w folderze extensions/.
  • Dodaj poniższy kod na dole swojego pliku LocalSettings.php :
    wfLoadExtension( 'PageTriage' );
    // These two settings are optional, and will enable the Articles-for-Creation mode.
    $wgExtraNamespaces[118] = 'Draft';
    $wgPageTriageDraftNamespaceId = 118;
    
  • Uruchom skrypt aktualizujący, który automatycznie stworzy potrzebne tabele dla tego rozszerzenia.
  •   Zrobione – Przejdź do Special:Version na swojej wiki, aby sprawdzić czy rozszerzenie zostało pomyślnie zainstalowane.

Do użytkowników mających wersję MediaWiki 1.24 lub wcześniejszą:

Powyższe instrukcje opisują nowy sposób instalowania tego rozszerzenia, poprzez wfLoadExtension(). Jeżeli chcesz zainstalować to rozszerzenie we wcześniejszych wersjach (MediaWiki 1.24 i wcześniejsze), zamiast wfLoadExtension( 'PageTriage' ); użyj:

require_once "$IP/extensions/PageTriage/PageTriage.php";

To actually see the extension working:

  • Add a new stub page as an anonymous user.

The new page should appear, flagged as "Bez kategorii", "Sierota", etc. To see the page curation toolbar:

  • Login as a user with the 'sysop' permission, or add a group with the "patrol" permission, and add some user to that group, and login as that user.
  • Now you should see a "Przejrzyj" button next to the new page.
  • Click this and you should see the page curation toolbar on the new page.

Extension configuration

The extension is based on the 'patrol' right. For more information about configuring patrolling, see Manual:Patrolling .

The following configuration variables can be set from your LocalSettings.php file:

Variable Default Description
$wgPageTriageEnableCurationToolbar true Set to false to disable the curation toolbar
$wgPageTriageInfiniteScrolling true Whether or not to use infinite scrolling in the new pages feed
$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, NS_USER The namespaces that PageTriage is active in.
$wgPageTriageNoIndexUnreviewedNewArticles false Set this to true if new, unreviewed articles should be set to noindex. In other words, if they should not be indexed by search engines until they are reviewed.

See extension.json for the full list of config variables.

On-wiki configuration

It is possible to configure much of PageTriage on-wiki via the pages MediaWiki:PageTriageExternalDeletionTagsOptions.js and MediaWiki:PageTriageExternalTagsOptions.js, although the structure of the configuration may change in the future (to better accommodate wikis besides English Wikipedia).

You can get a general idea of how the configuration works by looking at the following:

Toolbar section Default file English Wikipedia customization
  Dodaj tagi modules/ext.pageTriage.defaultTagsOptions/ext.pageTriage.defaultTagsOptions.js en:MediaWiki:PageTriageExternalTagsOptions.js
  Nominate for deletion modules/ext.pageTriage.defaultDeletionTagsOptions/ext.pageTriage.defaultDeletionTagsOptions.js en:MediaWiki:PageTriageExternalDeletionTagsOptions.js

Both of these files operate in much the same way.

There are two top-level jQuery variables that define the curation templates that are listed in the curation toolbar under the   (add tags) and   (nominate for deletion) buttons. These are:

$.pageTriageTagsOptions = {};
$.pageTriageDeletionTagsOptions = { Main: {}, User: {} };

The 'Main' and 'User' refer to the namespace of the page being curated. Each sub-item in the three sets above defines the tabs shown at the left side of the toolbar, and has the following form:

{
    label: 'Short title',
    desc: 'A longer description.', // Text only, no HTML or Wikitext markup
    multiple: false, // Whether more than one of the tags can selected at once.
    tags: { tag1 = {}, tag2 = {} }
}

Then the actual templates that are listed are defined under the above tags variable. Each deletion template has the following form:

{
    tag: 'Actual_template_name', // Without the 'Template:' prefix.
    label: 'Friendly template title',
    desc: 'A longer description.', // Text only, no HTML or Wikitext markup
    code: '',
    params: {},
    anchor: '',
    talkpagenotiftopictitle: 'message-name', // The message name (e.g. pagetriage-del-tags-speedy-deletion-nomination-notify-topic-title) used as the section/topic title when posting to the editing user's talk page.  Usually, you can reuse one of the existing messages (currently pagetriage-del-tags-speedy-deletion-nomination-notify-topic-title, pagetriage-del-tags-prod-notify-topic-title, pagetriage-del-tags-xfd-notify-topic-title).  If you need a new one, file a task so $wgPageTriageDeletionTagsOptionsContentLanguageMessages or the PageTriage repository can be updated.
    talkpagenotiftpl: 'Template_name' // The template that will be added to the editing user's talk page, not including the talk page heading (handled by talkpagenotiftopictitle).
}

At the moment, some tags must be present:

  1. $.pageTriageDeletionTagsOptions.Main.xfd.tags.articlefordeletion

Przykład

So, if you don't want to use any of the built-in deletion templates (which can be imported from NewPagesFeed_Templates.xml, by the way) then you can replace them all with a single one by adding the following at the bottom of your MediaWiki:PageTriageExternalDeletionTagsOptions.js page:

var deletionSection = {
    label: 'Deletion',
    desc: 'Nominate for deletion.',
    multiple: false,
    tags: {
        articlefordeletion: {
            tag: 'delete',
            label: 'Delete',
            desc: 'Nominate this page for deletion.',
            code: '',
            params: {},
            anchor: '',
            talkpagenotiftopictitle: 'pagetriage-del-tags-xfd-notify-topic-title',
            talkpagenotiftpl: 'Deletion notification'
        }
    }
};
$.pageTriageDeletionTagsOptions = { Main: { xfd: deletionSection }, User: { xfd: deletionSection } };

Client-side hooks

PageTriage provides a specialized action queue system to allow other scripts and gadgets to integrate with it. This is similar to mw.hook except that it uses promises. This is done using the mw.pageTriage.actionQueue module. See the comments in the source code for documentation on how the system works.

The actionQueue module is available after the mw.hook ext.pageTriage.toolbar.ready fires. PageTriage will give the action queue handler an Object with the following data, in addition to other data as noted below:

  • pageidID of the page being reviewed.
  • titleTitle of the page, including namespace.
  • reviewerUsername of who is using PageTriage.
  • creatorUsername of the creator of the page.
  • reviewedWhether or not the page is currently or will be marked as reviewed.

Available actions

  • deleteFired when the reviewer tags a page for deletion. The data given to the handler also includes:
    • tagsAn object of all the templates added to the page. The keys are the template title, and the values are an object of metadata, including things like the speedy deletion code.
  • markFired when the review status of a page is changed. Also includes:
    • noteThe personal message the reviewer added for the creator of the page. This may be blank.
  • tagsFired when maintenance tags are added to the page. Also includes:
    • tagsAn array of the titles of all templates that were added to the page.
    • noteThe personal message the reviewer added for the creator of the page. This may be blank.

Przykład

To use the action queue, register a function to be ran when an aforementioned action is fired. PageTriage will wait for any asynchronous code to complete before doing anything else, such as refreshing the page. For example, to edit Sandbox after a page has been marked as reviewed, you could use:

$( 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 );
			} );
		} );
	} );
} );

API

PageTriage adds the following API endpoints which can be used:

  • api.php?action=pagetriageaction - Mark a page as reviewed or unreviewed.
  • api.php?action=pagetriagelist - Retrieves the list of pages in the queue, and each page's metadata, including their reviewed status. 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.
  • api.php?action=pagetriagestats - Retrieves stats about the number of pages in the queue and the top reviewers.
  • api.php?action=pagetriagetagcopyvio - Mark an article as a potential copyright violation.
  • api.php?action=pagetriagetagging - Add clean-up tags or deletion templates to a page.

Special:Log

The following logs are created by the extension:

Speical:Log log_type log_action Description Notes
Deletion tag log pagetriage-deletion delete Logs deletion tagging
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

SQL tables

Name Prefix Description Old entries are...
pagetriage_log ptrl_ Log of all "mark as reviewed", "mark as unreviewed", "patrolled", and "autopatroled" actions. One entry each time the status changes. Used by the pagetriagestats API to figure out who the top patrollers are. All entries deleted after 1 year.
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 30 days regardless of patrol status.
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 unreferenced tag ID. The tag ID is discovered by checking the pagetriage_tags table.

Examples of page_tags that can be stored for a page include: afc_state, afd_status, blp_prod_status, category_count, copyvio, csd_status, linkcount, page_len, prod_status, recreated, reference, rev_count, snippet, user_autoconfirmed, user_block_status, user_bot, user_creation_date, user_editcount, user_experience, user_id, user_name

All article metadata deleted once ptrp_reviewed > 0 (marked as reviewed) and older than 30 days. All redirect metadata deleted after 30 days regardless of patrol status.
pagetriage_tags ptrt_ A dictionary of the page_tags mentioned above, and their corresponding ID number.

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=pagetriagelist&page_id=$PAGEID, and check the patrol_status field. Follow the directions above to interpret the values of this field.

Sample JavaScript code:

async function isReviewed(pageID) {
	let api = new mw.Api();
	let response = await api.get( {
		action: 'pagetriagelist',
		format: 'json',
		page_id: pageID,
	} );

	// no result
	if ( response.pagetriagelist.result !== 'success' || response.pagetriagelist.pages.length === 0 ) {
		return true;
	// 1, 2, or 3
	} else if ( parseInt(response.pagetriagelist.pages[0].patrol_status) > 0 ) {
		return true;
	// 0
	} else {
		return false;
	}
}

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 above 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
/* For page_title, don't forget to use underscores instead of spaces. */
WHERE page_title = 'Živko_Kostadinović'
	AND page_namespace = 0

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.

  • If the wikitext has the __NOINDEX__ magic word, noindex the page if ALL of the following are true:
    • Page age is less than $wgPageTriageMaxAge
    • Page is in pagetriage_page table
  • If the wikitext doesn't have the __NOINDEX__ magic word, noindex the page if ALL of the following are true:
    • $wgPageTriageNoIndexUnreviewedNewArticles is turned on
    • Page age is less than $wgPageTriageMaxAge
    • Page is in pagetriage_page table
    • Page is marked as unpatrolled (ptrp_status = 0)

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 30 days old, regardless of patrol status
    • Another cron job deletes reviewed pages after 30 days of being reviewed
  • In a namespace that PageTriage is configured to patrol
  • Isn't an article that is so old it predates the installation of PageTriage

Zobacz też

Notes