Extension:CentralNotice

This page is a translated version of the page Extension:CentralNotice and the translation is 73% complete.
MediaWiki-Erweiterungen
CentralNotice
Freigabestatus: stabil
Einbindung Spezialseite , API
Beschreibung Adds a central sitenotice
Autor(en) Andrew Russell Green, Matthew Walker, Adam Roses Wight Formerly: Brooke Vibber, Tomasz Finc, Trevor Parscal, Ryan Kaldari
Letzte Version 2.6.1 (continuous updates)
Kompatibilitätspolitik Snapshots werden zusammen mit MediaWiki veröffentlicht. Der Master ist nicht abwärtskompatibel.
MediaWiki >= 1.43
Datenbankänderungen Ja
Tabellen cn_notices
cn_assignments
cn_templates
cn_notice_languages
cn_notice_projects
cn_notice_countries
cn_notice_regions
cn_template_mixins
cn_notice_mixins
cn_notice_mixin_params
cn_known_devices
cn_template_devices
cn_known_mobile_carriers
cn_notice_mobile_carriers
cn_notice_log
cn_template_log
Lizenz GNU General Public License 2.0 oder neuer
Herunterladen
Beispiel Special:CentralNotice on Meta (read-only)
  • $wgNoticeBannerMaxAge
  • $wgNoticeBannerReducedMaxAge
  • $wgNoticeHideUrls
  • $wgCentralNoticeCategoriesUsingLegacy
  • $wgNoticeUseLanguageConversion
  • $wgNoticeCookieDurations
  • $wgCentralNoticeBannerMixins
  • $wgCentralMobileSelectedBannerDispatcher
  • $wgNoticeInfrastructure
  • $wgCentralBannerRecorder
  • $wgNoticeBucketExpiry
  • $wgNoticeCookieDomain
  • $wgNoticeTranslateDeployStates
  • $wgCentralNoticeAdminGroup
  • $wgCentralNoticeCampaignTypes
  • $wgCentralNoticeImpressionEventSampleRate
  • $wgCentralNoticeESITestString
  • $wgCentralNoticeFallbackHideCookieDuration
  • $wgCentralSelectedBannerDispatcher
  • $wgCentralHost
  • $wgNoticeProject
  • $wgNoticeTabifyPages
  • $wgCentralNoticeGeoIPBackgroundLookupModule
  • $wgCentralNoticeApiUrl
  • $wgNoticeProjects
  • $wgCentralNoticeMessageProtectRight
  • $wgCentralNoticeMaxCampaignFallback
  • $wgCentralNoticeContentSecurityPolicy
  • $wgCentralNoticeCampaignMixins
  • $wgCentralDBname
  • $wgCentralNoticeSampleRate
  • $wgCentralNoticePerCampaignBucketExtension
  • $wgNoticeNumberOfControllerBuckets
  • $wgNoticeNumberOfBuckets
  • $wgNoticeUseTranslateExtension
  • $wgCentralNoticeHideBannersP3P
  • $wgCentralNoticeLoader
Quarterly downloads 40 (Ranked 100th)
Public wikis using 1,012 (Ranked 228th)
Übersetze die CentralNotice-Erweiterung, wenn sie auf translatewiki.net verfügbar ist
Probleme Offene Aufgaben · Einen Fehler melden

Die CentralNotice-Erweiterung liefert Ankündigungen (normalerweise in Form von Bannern) an Wikimedia-Wikis. Sie wird vom Fundraising-Team intensiv genutzt, um um Spenden zu werben und um Ankündigungen zu machen, die für die Wikimedia-Gemeinschaften und -Nutzer von Interesse sind. CentralNotice kann Ankündigungen nach Land, Sprache, Projekt, Gerät und eingeloggtem Status ausrichten.

Diese Seite enthält Informationen für CentralNotice-Entwickler und Wiki-Administratoren, die CentralNotice auf ihren eigenen Websites installieren möchten. Wie Sie CentralNotice-Kampagnen erstellen und konfigurieren können, erfahren Sie unter Help:CentralNotice auf Meta-Wiki. Für Informationen über die Einrichtung von CentralNotice auf dem Cluster der Wikimedia Foundation siehe CentralNotice on Wikitech.

CentralNotice ermöglicht die zentrale Verteilung von Ankündigungen von einem zentralen Wiki (dem Infrastruktur-Wiki) aus an viele Wikis (die abonnierten Wikis genannt). Sind nur Nachrichten an ein einziges Wiki zu richten, sollte stattdessen Sitenotice verwendet werden.

Installation

CentralNotice wurde entwickelt, getestet und ist dafür bekannt, dass es nur auf Wikis eingesetzt wird, die keine Tabellenpräfixe verwenden. Verwendet das Setup Tabellen-Präfixe, gibt es keine Garantie dafür, dass diese Erweiterung funktioniert. Bitte melde alle Fehler an Phabricator.

Für alle Wikis

  1. Lade den neuesten Snapshot herunter und entpacke ihn in das Extensions Verzeichnis.
  2. Füge zu LocalSettings.php dies hinzu:
    wfLoadExtension( 'CentralNotice' );
    
  3. Standardmäßig ist die GeoIP-Suche deaktiviert. Wenn der Cookie Geo jedoch Daten beinhaltet, wird sein Wert verwendet. Für lokale Entwicklung kannst du eine Client-Side-Implementierung aktivieren, die https://freegeoip.net wie folgt verwendet. Für detailliertere Informationen schau bitte unter #GeoIP lookup.
$wgCentralNoticeGeoIPBackgroundLookupModule = 'ext.centralNotice.freegeoipLookup';

Das Infrastruktur-Wiki

  1. Begib dich mit der Kommando-Konsole in das Stammverzeichnis der Wiki und führe php maintenance/update.php aus.
  2. Bearbeite LocalSettings.php und setze ...
    1. $wgNoticeInfrastructure auf wahr
    2. $wgNoticeProjects zu einer Reihe von Projekten, die das zentrale Wiki abonnieren. Beispielsweise array( 'wikipedia', 'wiktionary' )
  3. Standardmäßig ist die Gruppe sysop die einzige Gruppe mit der Möglichkeit, CentralNotice zu verwalten. Wenn weitere Gruppen benötigt werden, benötigen diese die Berechtigungen centralnotice-admin und edit-interface.

Abonnierende Wiki

Bearbeite LocalSettings.php und setze…

  1. Füge $wgNoticeInfrastructure zu false hinzu.
  2. $wgNoticeProject ist ein Eintrag in $wgNoticeProjects;
  3. $wgCentralHost zum Protokoll (potenziell neutral) und Domäne des zentralen Wiki. Beispielsweise //meta.wikimedia.org;
  4. $wgCentralSelectedBannerDispatcher auf die URL von Special:BannerLoader auf dem zentralen Wiki, zum Beispiel: //meta.wikimedia.org/w/index.php/Special:BannerLoader;
  5. entweder $wgCentralDBname zum Namen der Datenbank des Infrastrukturwiki oder $wgCentralNoticeApiUrl zum API-Endpunkt des Infrastrukturwikis; und
  6. $wgCentralBannerRecorder auf die URL von Special:RecordImpression auf dem zentralen Wiki. Beispielsweise: //meta.wikimedia.org/w/index.php/Special:RecordImpression.

Schnelleinrichtung für Entwickler

Für die meisten Entwicklungsarbeiten können Sie sowohl in Infrastruktur als auch in Abonnementsrollen ein einzelnes Wiki verwenden. Im Folgenden findest du die Muster-Zeilen zum einfügen in LocalSetting.php. (Siehe Anmerkungen.)

wfLoadExtension( 'CentralNotice' );
$wgNoticeInfrastructure = true;
$wgNoticeProjects = array( 'centralnoticeproject' ); # 'centralnoticeproject' kann eine Zeichenkette (string) sein
$wgNoticeProject = 'centralnoticeproject'; # muss gleich sein wie oben
$wgCentralHost = 'localhost';
$wgCentralSelectedBannerDispatcher = 'http://localhost/mw/index.php?title=Special:BannerLoader';
$wgCentralDBname = 'databasename'; # gleich wie $wgDBname
$wgCentralNoticeGeoIPBackgroundLookupModule = 'ext.centralNotice.freegeoipLookup';

Alle Codes, die auf abonnierenden Wikis werden, sollten mit MobileFrontend getestet werden, um sicherzustellen, dass sie auf der mobilen Version der Website funktionieren.

Abhängigkeiten

Einige Funktionen von CentralNotice erfordern andere MediaWiki-Erweiterungen, darunter EventLogging und Übersetzen .

Hilfe erhalten

Das Team der WMF Fundraising tech ist die Verwalter von CentralNotice. Für Fragen zur Installation, Fehlerberichte, oder Benutzung von CentralNotice, schicke uns bitte eine E-Mail an die Liste wikitech-l@lists.wikimedia.org. Oder besuche uns im IRC channel #wikimedia-fundraising connect.

Berechtigungen

  • centralnotice-admin - Erlaubnis zur Änderung von Kampagnen und Banner erforderlich. Nur für die Infrastruktur-Wikis (siehe auch bugzilla:26377).
    • edit-interface ist erforderlich, um den Inhalt des Banners zu bearbeiten.

Designideen

Aus der Perspektive des Benutzers sind die High-Level-Objekte von CentralNotice campaigns (Hinweise) und banners (Vorlagen). Diese werden von den Back-End-Konzepten von selectors und allocation beeinflusst.

  • Banner - ein einzelner übersetzbarer Block html/wikitext/css/javascript, der oben auf den Handbuch:$wgContentNamespaces Seiten angezeigt wird. Der Benutzerstatus, der Gerätentypen, die Benutzeroberfläche selectors werden auf Banner angewendet.
    • Banners können nach category gruppiert werden. Alle Banner einer Kategorie teilen Benutzerseiten-Cookies, wie zum Beispiel das versteckende Cookie, das eingestellt wird, wenn ein Benutzer auf einen Schließ-Button am Banner klickt.
  • Campaign - eine Sammlung von Bannern. Die Projekt-, Länder- und Inhaltssprachen-Selektoren gelten auf Kampagnenebene. Das System ermöglicht so viele aktive Kampagnen gleichzeitig, wie gewünscht, um dynamisch einen allocation für jedes Banner in einer aktiven Kampagne zu berechnen. Kampagnen werden als aktiv definiert, wenn die zentrale Wiki-Zeit größer als die Kampagnenstartzeit, geringer als die Kampagnenendzeit und die Kampagne als aktiviert gekennzeichnet ist.
    • Bannern in einer Kampagne werden ein bucket und ein weight zugewiesen. Buckets sind ein weiterer Auswählfaktor, und die Gewichtung beeinflusst die relative Zuordnung von Bannern innerhalb einer Kampagne.
    • Es gibt vier Stufen der Priorität in CentralNotice. Höher priorisierte Kampagnen erhalten eine größere Zuordnung der Seitenansichten.
    • Kampagnen können gesperrt sein, um das Bearbeiten oder Löschen der Kampagne zu verhindern; jedoch nicht die Banner innerhalb der Kampagne.
  • Selector — jegliche Eigenschaft, die für die Zwecke der Zuweisung gefiltert werden kann. Dies ermöglicht es beispielsweise, verschiedene Banner anzeigen zu lassen für eingeloggte und ausgeloggte Benutzer, die aus Argentinien stammen und Wikipedia in Englischer Sprache anzeigen lassen.
    • A selection vector is the complete set of selectors a user presents to the central wiki when requesting a banner.
  • Allocation — The chance a banner will be shown to a user under a given selection vector.

GeoIP nachschlagen

In den Standardeinstellungen ist für CentralNotice kein GeoIP-Service konfiguriert. Dies ist für die Produktionskonfiguration der Wikimedia Foundation optimiert, bei der Varnish das Geo-Cookie serverseitig mit Inhalten füllt. (Siehe wikitech:Geolocation.) Du kannst CentralNotice in der Konfigurationsvariablen CentralNoticeGeoIPBackgroundLookupModule konfigurieren, eine benutzerdefinierte client-seitige Datenquelle zu nutzen. Diese Variable erwartet den Namen eines ResourceLoader-Moduls, das eine Funktion exportiert. Die Funktion wird ohne Parameter aufgerufen und sollte ein Promise zurückgeben, das mit einem Objekt, welches die folgenden Eigenschaften enthält, gelöst wird:

  • country: Zeichenkette (string)- Ländercode mit 2 Buchstaben.
  • region: Zeichenkette (string) - Implementierungsspezifisch.
  • city: Zeichenkette (str)- Stadtname.
  • lat: Zahl.
  • lon: Zahl.

Verwendung

Die vollständigen Nutzungsanweisungen sind unter meta:Help:CentralNotice zu finden.

Neuer Banner

  1. Öffne Special:CentralNoticeBanners
  1. Click on the add banner link at the bottom of the page (must be logged in as an admin).
  1. Enter in a name and the raw HTML for the given banner.
    1. If this banner is going to be translated then enclose any text to be translated with triple parens - {{{FOO}}}.
  1. Submit

(TODO: move and expand this snippet)

  • Each banner has its banner definition stored in MediaWiki:Centralnotice-template-<name>
  • All of its messages are stored below the banner defined in MediaWiki:Centralnotice-template-<name>-<message>/<language_code>

Neue Kampagne

  1. Add a campaign with a given start time at the bottom portion of the page, leave a comment, and click submit.
    1. If this campaign is only run on a specific wiki and or language then select it from the pull downs.
  1. Click on the new campaign and add the banners you want within this running campaign and their respective weights.
  1. If all looks well then set this campaign to enabled and it will show at the corresponding time.

Auswahl überschreiben

Add any of the following URL parameters to preview a specific banner, defeat "diet" schemes, or debug pseudorandom banner selection.

banner
You can test a banner directly on any wiki by adding ?banner=<bannername> to the end of the URL.
randomcampaign
A decimal number between 0 and 1, to be used as the "random" seed for choosing a campaign.
randombanner
A decimal number between 0 and 1, to be used as the "random" seed for choosing a banner among banners available in the chosen campaign.
country
Override the country code, before filtering to geotargeted campaigns. Accepts two-character ISO 3166-1 codes.
uselang
Its usual meaning in MediaWiki, this determines which banners you may be shown. Beware of content language vs. user language.
force
Override any banner hiding code, show the banner.
reset
Zero out any cookies being used to customize banner display (e.g. delivered impression count).

For example,

Debugging problematic banners

If there is a problematic banner in the page, you can identify which banner is active by opening your developer console and inspecting the value of: mw.centralNotice.bannerData.bannerName.

Einschränkungen

Banners do not display on pages in the Special namespace, as well as edit pages and diff pages.

API

CentralNotice adds two API modules, centralnoticechoicedata and centralnoticequerycampaign. (The API module centralnoticeallocations was deprecated and removed in MediaWiki 1.25.)


action=centralnoticechoicedata

(main | centralnoticechoicedata)

Get data needed to choose a banner for a given project and language

Specific parameters:
Other general parameters are available.
project

The project to get banner choice data for.

This parameter is required.
language

The language to get banner choice data for.

This parameter is required.
Example:
Get the data for choosing a banner for English Wikipedia users.
api.php?action=centralnoticechoicedata&project=wikipedia&language=en [open in sandbox]



action=centralnoticequerycampaign

(main | centralnoticequerycampaign)

Get all configuration settings for a campaign.

Specific parameter:
Other general parameters are available.
campaign

Campaign name. Separate multiple values with a "|" (vertical bar).

Default: (empty)


Siehe auch