Extension:CentralNotice
CentralNotice État de la version : stable |
|
---|---|
Implémentation | Page spéciale , API |
Description | Adds a central sitenotice |
Auteur(s) | Andrew Russell Green, Matthew Walker, Adam Roses Wight Formerly: Brooke Vibber, Tomasz Finc, Trevor Parscal, Ryan Kaldari |
Dernière version | 2.6.1 (continuous updates) |
Politique de compatibilité | Versions ponctuelles alignées avec MediaWiki. Le master n'est pas compatible arrière. |
MediaWiki | >= 1.43 |
Modifie la base de données |
Oui |
Tables | 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 |
Licence | Licence publique générale GNU v2.0 ou supérieur |
Téléchargement | |
Exemple | Special:CentralNotice on Meta (read-only) |
|
|
Téléchargements trimestriels | 40 (Ranked 99th) |
Utilisé par les wikis publics | 1,012 (Ranked 228th) |
Traduire l’extension CentralNotice sur translatewiki.net si elle y est disponible | |
Problèmes | Tâches ouvertes · Signaler un bogue |
L'extension CentralNotice délivre des annonces (habituellement sous la forme de bannières) sur les wikis Wikimedia. Elle est beaucoup utilisée par l'équipe Fundraising pour solliciter des donnations, et pour des annonces présentant un certain intérêt pour les communautés Wikimedia et les utilisateurs. CentralNotice peut cibler les annonces par pays, par langue, par projet, par appareil et selon l'état de connexion de l'utilisateur.
Cette page contient des informations pour les développpeurs de CentralNotice et pour les administrateurs de wikis qui veulent installer CentralNotice sur leur propres sites. Pour apprendre comment créer et configurer les campagnes CentralNotice, voir Help:CentralNotice sur Meta-Wiki. Pour les informations concernant la configuration de CentralNotice sur la grappe de la Fondation Wikimedia, voir CentralNotice sur Wikitech.
CentralNotice permet la distribution centrale d'annonces vers plusieurs wikis (appelés wikis abonnés) à partir d'un wiki central (le wiki d' infrastructure). Si vous devez adresser vos messages à un seul wiki, utilisez plutôt Sitenotice à la place.
Installation
Pour les wikis
- Téléchargez le dernier instantané et développez le dans le répertoire de votre extension.
- Ajoutez à LocalSettings.php ceci :
wfLoadExtension( 'CentralNotice' );
- Par défaut, la recherche GeoIP est désactivée. Néanmoins si le cookie
Geo
est pré-populé, sa valeur sera utilisée. Pour le développement local, vous pouvez activer une implémentation côté client qui utilise https://freegeoip.net comme suit. Pour plus d'informations, voir Recherche GeoIP.
$wgCentralNoticeGeoIPBackgroundLookupModule = 'ext.centralNotice.freegeoipLookup';
Le wiki d'infrastructure
- A partir de la ligne de commande, allez à la racine du wiki et exécutez
php maintenance/update.php
- Modifiez
LocalSettings.php
et initialisez...$wgNoticeInfrastructure
àtrue
$wgNoticeProjects
à un tableau de projets qui vont s'abonner au wiki central. Par exemplearray( 'wikipedia', 'wiktionary' )
- Par défaut le groupe
sysop
est le seul groupe pouvant administrer CentralNotice. Si vous avez besoin de groupes supplémentaires, assignez leur les droitscentralnotice-admin
etedit-interface
.
Les wikis abonnés
Modifiez LocalSettings.php
et initialisez...
$wgNoticeInfrastructure
àfalse
;$wgNoticeProject
pour être une entrée de$wgNoticeProjects
;$wgCentralHost
au protocole (potentionellement neutre) et au domaine du wiki central. Par exemple//meta.wikimedia.org
;$wgCentralSelectedBannerDispatcher
avec l'URL de Special:BannerLoader du wiki central, par exemple ://meta.wikimedia.org/w/index.php/Special:BannerLoader
;- soit
$wgCentralDBname
avec le nom de la base de données du wiki d'infrastructure, soit$wgCentralNoticeApiUrl
avec le point de terminaison d'API du wiki d'infrastructure; et $wgCentralBannerRecorder
avec l'URL de Special:RecordImpression du wiki central. Par exemple ://meta.wikimedia.org/w/index.php/Special:RecordImpression
.
Configuration rapide du développeur
Pour la plupart des tâches de développement, vous pouvez utiliser un wiki unique pour les deux rôles d'infrastructure et d'abonné.
Voici des lignes d'exemple à inclure dans LocalSetting.php
.
(Voir les notes dans les commentaires.)
wfLoadExtension( 'CentralNotice' );
$wgNoticeInfrastructure = true;
$wgNoticeProjects = array( 'centralnoticeproject' ); # 'centralnoticeproject' peut être une chaîne quelconque
$wgNoticeProject = 'centralnoticeproject'; # doit être le même que ci-dessus
$wgCentralHost = 'localhost';
$wgCentralSelectedBannerDispatcher = 'http://localhost/mw/index.php?title=Special:BannerLoader';
$wgCentralDBname = 'databasename'; # le même que $wgDBname
$wgCentralNoticeGeoIPBackgroundLookupModule = 'ext.centralNotice.freegeoipLookup';
Tout code qui s'exécute sur les wikis abonnés devrait être testé avec MobileFrontend , pour s'assurer qu'il fonctionne avec la version mobile du site.
Dépendances
Certaines fonctionalités de CentralNotice nécessitent d'autres extensions MediaWiki, y compris EventLogging et Translate .
Obtenir de l'aide
L'équipe Fundraising tech de la Fondation Wikimedia est composée des mainteneurs de CentralNotice. Pour les questions concernant l'installation, la remontée des bogues, ou l'utilisation de CentralNotice, veuillez adresser vos courriels à la liste de diffusion wikitech-l@lists.wikimedia.org ou nous rejoindre sur IRC canal #wikimedia-fundraising connecter.
Droits
centralnotice-admin
— autorisation nécessaire pour modifier les campagnes et les bannières. N'a de sens que que pour les wikis d'infrastrusture (voir aussi bugzilla:26377).edit-interface
est nécessaire pour modifier le contenu de la bannière.
Concepts d'architecture
D'un point de vue utilisateur, les objets CentralNotice de niveau supérieur sont des campaigns (c'est à dire des notices) et des banners (les modèles). Ils dépendent des fonctions du système selectors et allocation.
- Banner — un bloc unique de html/wikitext/css/javascript traductible qui va s'afficher en haut des pages de Manuel:$wgContentNamespaces . Les selectors de l'état connecté de l'utilisateur, le type de l'appareil, la langue de l'interface utilisateur, sont appliqués aux bannières.
- Les bannières peuvent être groupées par category. Toutes les bannières d'une catégorie partagent les cookies du côté utilisateur, telles que le cookie de masquage qui est créé quand un utilisateur clique sur le bouton de fermeture d'une bannière.
- Campaign — une collection de bannières. Les sélecteurs de projet, pays, et de langue du contenu, s'appliquent au niveau de la campagne. Le système autorise dynamiquement autant de campagnes actives que vous désirez à un même moment en calculant une allocation pour chaque bannière dans une campagne active. Les campagnes sont définies actives si l'heure du wiki central est postérieure à la date de début de la campagne, antérieure à la date de fin de la campagne, et que la campagne est marquée comme étant active.
- Un bucket (compartiment) et un weight (poids) sont assignés aux bannières d'une campagne. Les 'buckets' sont cependant un autre sélecteur, et les poids affectent les allocations relatives des bannières à l'intérieur d'une campagne.
- Il existe quatre niveaux de priorité dans CentralNotice. Les campagnes des priorités les plus hautes auront une place plus importante à l'affichage des pages.
- Les campagnes peuvent être closes (locked) ce qui empêchera la modification et la suppression de la campagne; mais non pas des bannières à l'intérieur d'une campagne.
- Selector — toute propriété qui peut être fitrée en vue de l'allocation. Ceci permet par exemple, à différentes bannières d'être affichées aux utilisateurs connectés (respectivement à ceux qui ne le sont pas), en Argentine, et qui consultent la wikipédia anglaise.
- Un vecteur de sélection est l'ensemble complet des sélecteurs qu'un utilisateur présente au wiki central lorsqu'il demande une bannière.
- Allocation — La probabilité qu'une bannière soit affichée à un utilisateur pour un vecteur de sélection donné.
Documents de conception
- Projet de recherche d'architecture 2017
- Algorithme d'allocation des bannières
- Schéma de la base de données / structure des tables
Recherche GeoIP
Par défaut, CentralNotice n'a pas de service de recherche GeoIP configuré coté client.
Ceci est optimisé pour la configuration de production de la Fondation Wikimedia où Varnish initialise le cookie Geo
à partir du côté serveur.
(Voir wikitech:Geolocation).
Vous pouvez configurer CentralNotice pour qu'il utilise une source de donnée personnalisée côté client au travers de la variable de configuration CentralNoticeGeoIPBackgroundLookupModule
.
Cette variable reçoit le nom d'un module ResourceLoader qui exporte une fonction.
La fonction sera appelée sans paramètre et doit retourner une promesse qui se résoud avec un objet contenant les propriétés suivantes :
- country: chaîne - code du pays sur deux lettres.
- region: chaîne - dépend de l'implémentation.
- city: chaîne - nom de ville.
- lat: nombre - lattitude.
- lon: nombre - longitude.
Utilisation
Les instructions complètes d'utilisation se trouvent sur meta:Help:CentralNotice.
Nouvelle bannière
- Chargez Special:CentralNoticeBanners
- Cliquez sur le lien d'addition de bannière en bas de la page (vous devez être connecté en tant qu'administrateur).
- Entrer un nom et le HTML brut de la bannière concernée.
- Si cette bannière devra être traduite, entourez les texte correspondant avec des triples parenthèses - {{{FOO}}}.
- Soumettre
(A FAIRE: déplacer et développer cet extrait de code)
- Chaque bannière possède sa définition enregistrée dans MediaWiki:Centralnotice-template-<name>
- Tous ses messages sont rangés sous la bannière définie dans MediaWiki:Centralnotice-template-<name>-<message>/<language_code>
Nouvelle campagne
- Charger Special:CentralNotice
- Ajoutez une campagne, avec une date de début donnée en bas de la partie inférieure de la page, laissez un commentaire, et cliquez pour soumettre.
- Si cette campagne ne s'exécute que sur un seul wiki et/ou ne concerne qu'une seule langue, alors sélectionnez ces valeurs dans les menus déroulants.
- Cliquez sur la nouvelle campagne et ajoutez les bannières que vous voulez y voir figurer avec leur poids respectif.
- Si tout est cohérent, activez alors cette campagne et elle s'affichera le moment voulu.
Ecraser la sélection
Ajoutez tout paramètre d'URL suivant pour prévisualiser une bannière spécifique, défier les régimes diététiques, ou déboguer la sélection de bannière pseudo-aléatoire.
- banner
- Vous pouvez tester une bannière directement sur n'importe quel wiki en ajoutant
?banner=<bannername>
à la fin de l'URL.
- randomcampaign
- Un nombre décimal (random seed) entre 0 et 1, utilisé pour générer les séquences aléatoires pour choisir une campagne.
- randombanner
- Un nombre décimal (random seed) entre 0 et 1, utilisé pour choisir une bannière parmi les bannières disponibles pour la campgne sélectionnée.
- country
- Réécrase le code du pays, avant de filtrer les campagnes ciblées géographiquement. Accepte deux caractères du code ISO 3166-1.
- uselang
- sa signification habituelle dans MediaWiki, ceci détermine quelles bannières vous pouvez afficher. En fonction de la langue du contenu par rapport à la langue de l'utilisateur.
- force
- Réécrase tout code de masquage de la bannière, affiche la bannière
- reset
- Efface tout cookie utilisé pour personnaliser l'affichage de la bannière (par exemple fourniture du compteur d'impression).
Par exemple,
Deboguer les bannières qui posent problème
Si une bannière pose problème sur la page, vous pouvez identifier quelle banière est active en ouvrant votre console développeur et en vérifiant la valeur de mw.centralNotice.bannerData.bannerName
.
Limitations
Les bannières ne s'affichent pas sur les pages de l'espace de noms Special
, ni sur les pages de modification, ni sur celles des diffs.
API
CentralNotice ajoute deux modules API, centralnoticechoicedata
et centralnoticequerycampaign
.
(Le module d'API centralnoticeallocations est obsolète et a été supprimé dans MediaWiki 1.25.)
La documentation qui suit est le résultat de Special: |
action=centralnoticechoicedata
- This module requires read rights.
- Source: CentralNotice
- License: GPL-2.0-or-later
Get data needed to choose a banner for a given project and language
- 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.
- Get the data for choosing a banner for English Wikipedia users.
- api.php?action=centralnoticechoicedata&project=wikipedia&language=en [open in sandbox]
La documentation qui suit est le résultat de Special: |
action=centralnoticequerycampaign
- This module requires read rights.
- Source: CentralNotice
- License: GPL-2.0-or-later
Get all configuration settings for a campaign.
- campaign
Campaign name. Separate multiple values with a "|" (vertical bar).
- Default: (empty)
- Show campaign "Plea_US"
- api.php?action=centralnoticequerycampaign&format=json&campaign=Plea_US [open in sandbox]
Voir aussi
- Help:CentralNotice et Modifications après restructuration (septembre 2015) sur méta
- Extension:CentralNotice/Campaign and banner selection
- Extension:CentralNotice/Impression diet
- Extension:CentralNotice/Special:RecordImpression
- Extension:CentralNotice/Statuses, reasons and status codes
- Extension:CentralNotice/Banner_mixins
- Requests for comment/CentralNotice Caching Overhaul - Frontend Proxy
- Extension:CentralNotice/Notes/Miscelaneous doc bits
- Extension:CentralNotice/Notes/Documentation rewrite
- Extension:CentralNotice/Notes/Campaign-associated_mixins_and_banner_history
- Extension:CentralNotice/Notes/Banner controller refactoring
- Autres sous-pages de cette page (attention: beaucoup sont obsolètes)
Cette extension est utilisée par au moins un des projets Wikimédia. Cela signifie probablement que l’extension est assez stable et fonctionnelle pour être utilisée sur des sites à fort trafic. Recherchez le nom de cette extension dans le CommonSettings.php de Wikimédia et dans le fichier de configuration InitialiseSettings.php pour situer les endroits où elle est installée. Une liste complète des extensions installées sur un Wiki donné peut être visualisée sur la page Special:Version de ce wiki. |
Cette extension est incluse dans les fermes de wikis ou les hôtes suivants et / ou les paquets : Cette liste ne fait pas autorité. Certaines fermes de wikis ou hôtes et / ou paquets peuvent contenir cette extension même s'ils ne sont pas listés ici. Vérifiez toujours cela avec votre ferme de wikis ou votre hôte ou votre paquet avant de confirmer. |