Extension:PageTriage

This page is a translated version of the page Extension:PageTriage and the translation is 100% complete.
Other languages:
English • ‎Türkçe • ‎español • ‎français • ‎中文 • ‎日本語
MediaWiki manüel uzantıları
OOjs UI icon advanced.svg
PageTriage
Sürüm durumu: kararlı
PagesFeedInfoFlyout.png
Uygulama Özel sayfa , Kullanıcı arayüzü
Açıklama Yeni sayfaların incelenmesini ve onaylanmasını kolaylaştırır
Yazar(lar) Ryan Kaldari, Benny Situ
En son sürüm 0.3.0 (2018-06-26)
Uyumluluk politikası sürüm dalları
MediaWiki 1.27+
Veritabanı değişiklikleri Evet
Tablolar pagetriage_log
pagetriage_page
pagetriage_page_tags
pagetriage_tags
Lisans MIT Lisansı
İndir
Örnek Special:NewPagesFeed on the English Wikipedia
  • $wgPageTriageMaxAge
  • $wgTalkPageNoteTemplate
  • $wgPageTriageStickyStatsNav
  • $wgPageTriageNamespaces
  • $wgPageTriageMarkPatrolledLinkExpiry
  • $wgPageTriageDeletionTagsOptionsMessages
  • $wgPageTriageTagsOptionsMessages
  • $wgPageTriageEnabledEchoEvents
  • $wgPageTriageEnableOresFilters
  • $wgPageTriageInfiniteScrolling
  • $wgPageTriageEnableCopyvio
  • $wgPageTriageProjectLink
  • $wgPageTriageCurationModules
  • $wgPageTriageLearnMoreUrl
  • $wgPageTriageCacheVersion
  • $wgPageTriageDraftNamespaceId
  • $wgPageTriageDeletionTagsOptionsContentLanguageMessages
  • $wgPtTemplatePath
  • $wgPageTriageEnableCurationToolbar
  • $wgPageTriageFeedbackUrl
  • $wgPageTriagePagesPerRequest
  • $wgPageTriageNoIndexUnreviewedNewArticles
  • $wgPageTriageStickyControlNav
  • pagetriage-copyvio
Translatewiki.net adresinde mevcutsa, PageTriage uzantısını çevirin
Kullanım ve sürüm matrisini kontrol edin.
Sorunlar Açık görevler · Hata bildir

PageTriage, yeni oluşturulan maddelerin önceliklendirilmesi için zengin özelliklere sahip bir arayüz sağlamayı amaçlayan bir uzantıdır. Yeni maddeleri incelemek, etiketlemek ve geliştirmek için ek işlevler eklerken "yeni sayfa devriyesi" temel işlevinin yerini alması amaçlanmıştır. Bir Special:NewPagesFeed sayfası ve "patrol" iznine sahip olanlar için yeni sayfalara bir sayfa iyileştirme araç çubuğu ekler. Wikimedia Vakfı'nın Özellik Mühendislik ekibi tarafından geliştirilmiştir. Ek ayrıntılar için Page Curation sayfasına bakın.

Önemli bir not, yapılandırma ve kodun bir kısmının İngilizce Vikipedi'nin iş akışlarına özgü olduğu ve şu anda kurulduğu için uzantının uluslararasılaşmasının neredeyse imkansız olduğudur. (Phabricator:T50552 sayfasına bakın.)

İndir

Uzantı doğrudan Git'ten alınabilir [?]:

  • Kodu göz at
  • Bazı uzantıların kararlı sürümler için etiketleri vardır.
  • Her dal geçmiş bir MediaWiki sürümüyle ilişkilendirilmiştir. Ayrıca en son alfa sürümünü içeren bir "ana" dalı da vardır (MediaWiki'nin alfa sürümünü gerektirebilir).

Anlık görüntüyü ayıklayın ve MediaWiki kurulumunuzun extensions/PageTriage/ dizinine yerleştirin.

Git'e aşina iseniz ve sunucunuza kabuk erişiminiz varsa, uzantıyı aşağıdaki gibi elde edebilirsiniz:

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

Kurulum

  • Dosyaları indirin ve extensions/ klasörünüzdeki PageTriage adlı dizine yerleştirin.
  • LocalSettings.php dosyanızın altına aşağıdaki kodu ekleyin:
    wfLoadExtension( 'PageTriage' );
    // These two settings are optional, and will enable the Articles-for-Creation mode.
    $wgExtraNamespaces[118] = 'Draft';
    $wgPageTriageDraftNamespaceId = 118;
    
  • Bu uzantının ihtiyaç duyduğu gerekli veritabanı tablolarını otomatik olarak oluşturacak betik güncelleme komutunu çalıştırın.
  •   Yapıldı – Uzantının başarıyla yüklendiğini doğrulamak için vikinizde Special:Version seçeneğine gidin.

MediaWiki 1.24 veya önceki bir sürümü çalıştıran kullanıcılara:

Yukarıdaki talimatlar, bu eklentiyi wfLoadExtension() kullanarak kurmanın yeni yolunu açıklar. Bu uzantıyı önceki sürümlerine (MediaWiki 1.24 ve önceki sürümler) yüklemeniz gerekirse, wfLoadExtension( 'PageTriage' ); yerine kullanmanız gerekir:

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

Uzantının gerçekten çalıştığını görmek için:

  • Anonim bir kullanıcı olarak yeni bir taslak sayfası ekleyin.
  • Special:NewPagesFeed sayfasını ziyaret edin

Yeni sayfa "Kategorisiz", "Öksüz" vb. olarak işaretlenmiş şekilde görünmelidir. Sayfa iyileştirme araç çubuğunu görmek için:

  • "sysop" iznine sahip bir kullanıcı olarak oturum açın veya "patrol" iznine sahip bir grup ekleyin ve bu gruba bir kullanıcı ekleyin ve bu kullanıcı olarak oturum açın.
  • Special:NewPagesFeed sayfasını ziyaret edin
  • Şimdi yeni sayfanın yanında bir "İncele" düğmesi görmelisiniz.
  • Bunu tıklayın ve yeni sayfada sayfa iyileştirme araç çubuğunu görmelisiniz.

Uzantı yapılandırması

Uzantı, 'patrol' hakkına dayanmaktadır. Devriye gezintisini yapılandırma hakkında daha fazla bilgi için, bkz. Manual:Patrolling sayfasına bakın.

Aşağıdaki yapılandırma değişkenleri LocalSettings.php dosyanızdan ayarlanabilir:

  • $wgPageTriageEnableCurationToolbar: İyileştirme araç çubuğunu devre dışı bırakmak için false olarak ayarlayın (varsayılan true)
  • $wgPageTriageInfiniteScrolling: Yeni sayfa beslemesinde sonsuz kaydırmanın kullanılıp kullanılmayacağı (varsayılan true)
  • $wgPageTriageNoIndexUnreviewedNewArticles: Yeni, incelenmemiş maddelerin noindex olarak ayarlanması gerekiyorsa bunu true olarak ayarlayın. Diğer bir deyişle, incelenene kadar arama motorları tarafından indekslenmemeleri gerekiyor. (varsayılan false)
  • $wgPageTriageMaxAge: The age (in days) at which PageTriage allows unreviewed articles to become indexed by search engines (if $wgPageTriageNoIndexUnreviewedNewArticles is true) (default is 90).
  • $wgPageTriageNamespaces: The namespaces that PageTriage is active in. (default is NS_MAIN and NS_USER).

Yapılandırma değişkenlerinin tam listesi için extension.json sayfasına bakın.

Viki üzerinde yapılandırma

PageTriage'in çoğunu viki üzerinde MediaWiki:PageTriageExternalDeletionTagsOptions.js ve $ i2 sayfaları üzerinden yapılandırmak mümkündür, ancak yapılandırmanın yapısı gelecekte değişebilir (İngilizce Vikipedi'nin yanı sıra vikilere daha iyi uyum sağlamak için).

Aşağıdakilere bakarak yapılandırmanın nasıl çalıştığı hakkında genel bir fikir edinebilirsiniz:

Araç çubuğu bölümü Varsayılan dosya İngilizce Vikipedi özelleştirmesi
  Etiket ekle modules/ext.pageTriage.defaultTagsOptions/ext.pageTriage.defaultTagsOptions.js en:MediaWiki:PageTriageExternalTagsOptions.js
  Silme için aday göster modules/ext.pageTriage.defaultDeletionTagsOptions/ext.pageTriage.defaultDeletionTagsOptions.js en:MediaWiki:PageTriageExternalDeletionTagsOptions.js

Bu dosyaların her ikisi de aynı şekilde çalışır.

  (etiket ekle) ve   (silme için aday göster) düğmelerinin altındaki iyileştirme araç çubuğunda listelenen iyileştirme şablonlarını tanımlayan iki üst düzey jQuery değişkeni vardır. Bunlar:

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

"Ana" ve "Kullanıcı", iyileştirme yapılan sayfanın ad alanını ifade eder. Yukarıdaki üç kümedeki her bir alt öğe, araç çubuğunun sol tarafında gösterilen sekmeleri tanımlar ve aşağıdaki forma sahiptir:

{
    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 = {} }
}

Ardından, listelenen gerçek şablonlar yukarıdaki tags değişkeni altında tanımlanır. Her silme şablonu aşağıdaki forma sahiptir:

{
    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).
}

Şu anda bazı etiketlerin bulunması gerekir:

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

Örnek

Dolayısıyla, yerleşik silme şablonlarından herhangi birini kullanmak istemiyorsanız (NewPagesFeed_Templates.xml üzerinden içe aktarılabilir) ardından, MediaWiki:PageTriageExternalDeletionTagsOptions.js sayfanızın altına aşağıdakileri ekleyerek hepsini tek bir tane ile değiştirebilirsiniz:

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 } };

İstemci tarafı kancalar

PageTriage, diğer betiklerin ve araçların onunla bütünleşmesine izin vermek için özel bir eylem kuyruğu sistemi sağlar. Bu, vaatleri kullanması dışında mw.hook ile benzer. Bu, mw.pageTriage.actionQueue modülü kullanılarak yapılır. Nasıl yapılacağına ilişkin belgeler için kaynak kodu içindeki sistem nasıl çalıştığını yorumlara bakın.

actionQueue modülü, mw.hook ext.pageTriage.toolbar.ready tetikledikten sonra kullanılabilir. PageTriage, eylem kuyruğu işleyicisine aşağıda belirtilen diğer verilere ek olarak aşağıdaki verileri içeren bir Nesne verecektir:

  • pageid — İncelenen sayfanın kimliği.
  • title — Ad alanı dahil sayfanın başlığı.
  • reviewer — PageTriage kullananların kullanıcı adı.
  • creator — Sayfayı oluşturan kişinin kullanıcı adı.
  • reviewed — Sayfanın şu anda incelenmiş olarak işaretlenip işaretlenmeyeceği.

Kullanılabilir eylemler

  • delete — İnceleyen, bir sayfayı silmek için etiketlediğinde tetiklenir. İşleyiciye verilen veriler ayrıca şunları içerir:
    • tags — Sayfaya eklenen tüm şablonların bir nesnesi. Anahtarlar şablon başlığıdır ve değerler, hızlı silme kodu gibi şeyler dahil olmak üzere bir meta veri nesnesidir.
  • mark — Bir sayfanın inceleme durumu değiştiğinde tetiklenir. Ayrıca şunları içerir:
    • note — İnceleyicinin, sayfayı oluşturan kişi için eklediği kişisel mesaj. Bu boş olabilir.
  • tags — Sayfaya bakım etiketleri eklendiğinde tetiklenir. Ayrıca şunları içerir:
    • tags — Sayfaya eklenen tüm şablonların başlıkları dizisi.
    • note — İnceleyicinin, sayfayı oluşturan kişi için eklediği kişisel mesaj. Bu boş olabilir.

Örnek

Eylem kuyruğunu kullanmak için, yukarıda belirtilen bir eylem başlatıldığında çalıştırılacak bir işlevi kaydedin. PageTriage, sayfayı yenilemek gibi başka bir şey yapmadan önce eşzamansız kodların tamamlanmasını bekler. Örneğin, bir sayfa incelendi olarak işaretlendikten sonra Sandbox ile düzenlemek için şunu kullanabilirsiniz:

$( 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 kullanılabilen 5 API uç noktası ekler:

  • api.php?action=pagetriagestats - Sıradaki sayfaların sayısı ve en iyi yorumcularla ilgili istatistikleri alır
  • api.php?action=pagetriagelist - Kuyruktaki sayfaların listesini ve ilişkili meta verileri alır
  • api.php?action=pagetriageaction - Bir sayfayı incelendi veya incelenmedi olarak işaretleyin
  • api.php?action=pagetriagetagging - Bir sayfaya temizleme etiketleri veya silme şablonları ekleyin
  • api.php?action=pagetriagetemplate - JS uygulamasında kullanılmak üzere Backbone şablonlarını getirmek için dahili API

Ayrıca bakınız