Jump to content

Extension:QuickSurveys

From mediawiki.org
This page is a translated version of the page Extension:QuickSurveys and the translation is 98% complete.
Outdated translations are marked like this.
Manuel des extensions MediaWiki
QuickSurveys
État de la version : stable
Implémentation Interface utilisateur
Description sondages rapides dans les articles ou sondages externes. Interroger les lecteurs sur leurs avis.
Auteur(s) Jon Robson, Joaquin Hernandez, Rob Moen, Bahodir Mansurov, Sam Smith, Adam Wight
Dernière version 1.4.0
MediaWiki 1.26
Licence Licence MIT
Téléchargement
  • $wgQuickSurveysConfig
Traduire l’extension QuickSurveys sur translatewiki.net si elle y est disponible
Rôle Vagrant quicksurveys
Problèmes Tâches ouvertes · Signaler un bogue

L'extension QuickSurveys affiche des bannières dans les articles, permettant aux utilisateurs d'envoyer leurs commentaires.

Documentation et fonctionnalités

Depuis 2024, QuickSurveys peut :

  • cibler des lecteurs aléatoires
  • cibler les lecteurs d'une page spécifique
  • cibler en se basant sur le fait que vous êtes connecté ou pas
  • cibler en se basant sur le dépôt des modifications
  • cibler en se basant sur l'agent utilisateur
  • cibler en se basant sur la première et la dernière date d'édition (version >= 1.43)
  • poser des questions à choix multiple
  • collecter une ou plusieurs réponses aux questions (retenir la meilleure réponse avec vérifier l'ensemble concerné)
  • collecter facultativement les réponses fournies aux questions (version >= 1.43)
  • poser les questions qui n'apparaissent que si une certaine réponse a été fournie à une question précédente (version >= 1.43)
  • offrir un lien vers une autre page (par exemple pour fournir des informations sur un sondage plus long)
  • inclure un ou plusieurs sondages à un endroit paramétrable sur une page dédiée

Problèmes connus :

  • Certains logiciels qui filtrent les publicités et les scripts bloquent cette extension.
  • Définir un sondage nécessite l'aide d'un développeur.
  • La lecture des résultats du sondage nécessite l'aide de statisticiens ou d'un développeur.
  • Il n'y a pas de mécanisme standard pour cibler les utilisateurs dans un flux de travail arbitraire ou conditionnellement, par exemple en testant la clé mw.storage.

Prérequis

Jusqu'à la 1.38, QuickSurveys dépend de EventLogging et ne fonctionne pas sans lui. En 1.39 l'installation de EventLogging est facultative. Il est nécessaire pour les sondages internes et pour le suivi des tendances des sondages.

Installation

  • Téléchargez et placez le(s) fichier(s) dans un répertoire appelé QuickSurveys dans votre dossier extensions/.
    Les développeurs et les contributeurs au code doivent à la place installer l'extension à partir de Git en utilisant:
    cd extensions/
    git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/QuickSurveys
    
  • Ajoutez le code suivant à la fin de votre fichier LocalSettings.php  :
    wfLoadExtension( 'QuickSurveys' );
    
  • Yes Fait – Accédez à Special:Version sur votre wiki pour vérifier que l'extension a bien été installée.


Installer Vagrant :

  • Si vous utilisez Vagrant , installez avec vagrant roles enable quicksurveys --provision

Exécuter des sondages pénalise les performances

Lorsque vous faites un sondage, vous chargez Vue.js au chargement de la page, ce qui est connu pour pénaliser les performances. Pour cette raison, lorsque vous faites un sondage, assurez-vous que sa durée est limitée dans le temps à ce qui est strictement nécessaire. Veuillez vérifier lorsque vous démarrez un sondage qu'il existe une tâche pour l'arrêter, et n'oubliez pas de le suivre.

Configuration

version < 1.43

Informations pour configurer les versions des anciens MediaWiki sur une version plus ancienne de cette page.

version 1.43

Les configurations sont définies pour deux principaux types de sondages : les sondages internes qui affichent une question avec un ensemble de réponses possibles dans l'article lui-même, et les sondages externes qui pointent vers une autre plateforme (par exemple Google Forms).

const QS_ANSWERS_MULTI_CHOICE =  [
	[
		'label' => 'ext-quicksurveys-example-internal-survey-answer-positive',
		// libellé du texte libre facultatif de la réponse du formulaire
		'freeformTextLabel' => 'ext-quicksurveys-example-internal-survey-freeform-text-label',
	],
	[
		'label' => 'ext-quicksurveys-example-internal-survey-answer-neutral',
		// libellé du texte libre facultatif de la réponse du formulaire
		'freeformTextLabel' => 'ext-quicksurveys-example-internal-survey-freeform-text-label',
	],
	[
		'label' => 'ext-quicksurveys-example-internal-survey-answer-negative',
		// libellé du texte libre facultatif de la réponse du formulaire
		'freeformTextLabel' => 'ext-quicksurveys-example-internal-survey-freeform-text-label',
	],
];

// s'applique à tous les sondages
const QS_DEFAULTS = [
	// à qui s'adresse le sondage ? tous les champs sont facultatifs
	'audience' => [
		'minEdits' => 0,
		'anons' => false,
		'maxEdits' => 500,
        'userAgent' => [ 'KaiOS', 'Chrome' ],
		'registrationStart' => '2018-01-01',
		'registrationEnd' => '2080-01-31',
		// L'extension CentralNotice doit être installée pour limiter l'auditoire en fonction du pays
		// 'countries' => [ 'US', 'UK' ]
	],
	// clé i18n du texte de la police de confidentialité
	'privacyPolicy' => 'ext-quicksurveys-example-external-survey-privacy-policy',
	// indique que le sondage est activé
	'enabled' => true,
	// pourcentage des utilisateurs qui verront l'enquête
	'coverage' => 1,
	// pour chaque plateforme (bureau, mobile), à laquelle la version est destinée
	'platforms' => [
		'desktop',
		'mobile'
	],
];

$wgQuickSurveysConfig = [
	// exemple de sondage interne
	[
		// nom du sondage
		'name' => 'internal example survey',
		// lien interne ou externe du sondage ?
		'type' => 'internal',
		// liste de toutes les questions du sondage. Les enquêtes internes peuvent avoir plusieurs questions.
		'questions' => [
			[
				// champ obligatoire utilisé pour référencer des questions parmi d'autres questions.
				'name' => 'question-1',
				// clé de message de la question du sondage
				'question' => 'ext-quicksurveys-example-internal-survey-question',
				// l'utilisateur sondé peut choisir une réponse dans une liste.
				'layout' => 'single-answer',
				// clé de message de la description du sondage. Affiché directement sous la question du sondage.
				//'description' => 'ext-quicksurveys-example-internal-survey-description',
				// clés possibles du message de réponse pour le cas positif, neutre et négatif
				'answers' => QS_ANSWERS_MULTI_CHOICE,
				// indique s'il faut mélanger les réponses.
				'shuffleAnswersDisplay' => true,
			],
		],
	] + QS_DEFAULTS,

	[
		// nom du sondage
		'name' => 'internal multi answer example survey',
		// lien interne ou externe du sondage ?
		'type' => 'internal',
		// Liste de toutes les questions du sondage. Les sondages internes peuvent contenir plusieurs questions.
		'questions' => [
			[
				// champ obligatoire utilisé pour référencer des questions parmi d'autres questions.
				'name' => 'question-1',
				// clé de message de la question du sondage
				'question' => 'ext-quicksurveys-example-internal-survey-question',
				// l'utilisateur sondé peut choisir plusieurs réponses dans une liste.
				'layout' => 'multiple-answer',
				// clé de message de la description du sondage. Affiché directement sous la question du sondage.
				//'description' => 'ext-quicksurveys-example-internal-survey-description',
				// clés possibles du message de réponse pour le cas positif, neutre et négatif
				'answers' => QS_ANSWERS_MULTI_CHOICE,
				// indique s'il faut mélanger les réponses.
				'shuffleAnswersDisplay' => true,
			],
		],
	] + QS_DEFAULTS,

	// exemple de sondage externe
	[
		'name' => 'external example survey',
		// lien interne ou externe du sondage
		'type' => 'external',
		// Liste de toutes les questions du sondage. Les sondages internes peuvent contenir plusieurs questions.
		'questions' => [
			[
				// champ obligatoire utilisé pour référencer des questions parmi d'autres questions.
				'name' => 'question-1',
				// clé de message de la question du sondage
				'question' => 'ext-quicksurveys-example-external-survey-question',
				// clé i18n de la description du sondage
				'description' => 'ext-quicksurveys-example-external-survey-description',
				// Lien externe vers le sondage
				'link' => 'ext-quicksurveys-example-external-survey-link',
				// paramètre à ajouter au lien externe
				'instanceTokenParameterName' => 'parameterName',
				// clé de message de la réponse Yes
				'yesMsg' => 'ext-quicksurveys-example-external-survey-yes',
				// pas de clé de message
				'noMsg' => 'ext-quicksurveys-example-external-survey-no',
			],
		],
	] + QS_DEFAULTS,

	// Exemple de sondage interne à questions multiples
	[
		'name' => 'multi-question internal survey',
		'type' => 'internal',
		'confirmMsg' => 'ext-quicksurveys-survey-test-confirm-msg',
		'confirmDescription' => 'ext-quicksurveys-survey-test-confirm-description',
		'questions' => [
			// Question 1 - simple "yes", "no" et "not sure" prédéfini
			[
				// identifiant unique du nom
				'name' => 'question-1',
				'layout' => 'single-answer',
				'question' => 'ext-quicksurveys-my-question-1',
				// réponses possibles à la question ci-dessus
				'answers' => [
					// seuls les messages ci-dessous on des clés pour le libellé du message
					[ 'label' => 'ext-quicksurveys-answer-yes' ],
					[ 'label' => 'ext-quicksurveys-answer-no' ],
					[
						'label' => 'ext-quicksurveys-answer-not-sure',
						// libellé du texte libre facultatif de la réponse du formulaire
						'freeformTextLabel' => 'ext-quicksurveys-answer-not-sure-placeholder'
					]
				]
			],

			// Question 2 - dépend de la question 1 et la réponse doit être 'yes'
			[
				'name' => 'question-2',
				// Liste des dépendances, ce cas ne dépend que de la question 1 ET de la réponse 'yes'
				'dependsOn' => [
					[
						// Question à une seule dépendance - utiliser l'identifiant du nom
						'question' => 'question-1',
						// Liste de réponses et dépendance simple - si l'utilisateur a répondu ANY
						// si la réponse est dans la liste, le critère est satisfait.
						'answerIsOneOf' =>  [ 'ext-quicksurveys-answer-yes' ]
					]
				],
				'layout' => 'multiple-answer',
				'question' => 'ext-quicksurveys-my-question-2',
				'shuffleAnswersDisplay' => true,
				'answers' => [
					// réponses avec des clés de message et un texte libre facultatif
					[ 'label' => 'ext-quicksurveys-my-question-2-answer-1' ],
					[ 'label' => 'ext-quicksurveys-my-question-2-answer-2' ],
					[ 'label' => 'ext-quicksurveys-my-question-2-answer-3' ],
					[ 'label' => 'ext-quicksurveys-my-question-2-answer-4' ],
					[ 'label' => 'ext-quicksurveys-my-question-2-answer-5' ],
					[ 'label' => 'ext-quicksurveys-my-question-2-answer-6' ],
					[
						'label' => 'ext-quicksurveys-my-question-2-answer-7',
						// libellé du texte de réponse facultatif et libre du formulaire
						'freeformTextLabel' => 'ext-quicksurveys-my-question-2-answer-7-free-text-placeholder'
					],
					[ 'label' => 'ext-quicksurveys-answer-i-prefer-not-to-say' ]
 				],
			],
		]
	] + QS_DEFAULTS,
];

Définir un auditoire

Il est possible de définir l'auditoire d'un sondage basé sur le nombre de modifications faites par un utilisateur, son état — s'il est connecté ou anonyme — , sa date d'enregistrement et son pays (en fonction de l'adresse IP).

Le champ d'audience est facultatif et peut être omis si vous voulez que l'enquête soit affichée à tous (comme défini dans la couverture). Vous pouvez aussi inclure simplement certains paramètres. Par exemple, le fait d'inclure simplement minEdits va cibler les utilisateurs qui ont fait au moins ce nombre de modifications, sans définir de maximum.

Notez que l'auditoire n'est pas inclus dans l'échantillonnage, donc par exemple si la couverture est de 1/2 , 50% de tous les utilisateurs seront concernés par le sondage, mais dans ces derniers, seuls les utilisateurs qui correspondent à l'auditoire défini, verront le sondage.

Tous les auditoires clé sont additionnels.

Nous accepterons plusieurs clés :

  • userInGroup — which user groups the user must belong to. When multiple user groups are provided the user must belong to ALL of those groups. For example [ "sysop", "rollbacker"] requires the user to be a rollbacker AND a sysop. The wildcard star applies to all users. Default: [ "*" ]. This can also be used to target temporary users using ["temp"].
  • namespaces — the namespaces the survey can appear in. Please note that on certain pages surveys are not supported without the embedElementId option (see survey placement) Default: [ 0 ]
  • minEdits — nombre minimum de modifications qu'un utilisateur doit avoir fait. Par défaut : pas de minimum
  • maxEdits — le nombre maximum de modifications qu'un utilisateur doit avoir faites. Par défaut : pas de maximum
  • anons — le sondage concerne-t-il uniquement les utilisateurs anonymes (true) ou connectés (false) ? Par défaut : les utilisateurs anonymes et ceux connectés sont inclus.
  • registrationStart — si le sondage dépend de la date d'enregistrement, l'utilisateur doit s'être enregistré à partir de cette date. Date est au format AAAA-MM-JJ. Par défaut : pas de limite
  • registrationEnd — si le sondage dépend de la date d'enregistrement, l'utilisateur ne doit pas s'être enregistré après cette date. Date est au format AAAA-MM-JJ. Par défaut : aucune limite
  • countries — liste de codes de pays sur deux lettres, applicable à window.Geo.country. Par défaut : pas de filtre de pays
  • pageIds — liste d'identifiants d'articles, le sondage n'apparaît que sur les pages correspondantes. Par défaut : pas de filtre de page
  • firstEdit — un intervalle de dates est composé des clés 'from' (de) et 'to' (à) spécifiant la plage dans laquelle doit se trouver la première modification de l'utilisateur. Par défaut : pas de limite
  • lastEdit — un intervalle de dates est composé des clés 'from' (de) et 'to' (à) spécifiant la plage dans laquelle doit se trouver la dernière modification de l'utilisateur. Par défaut : pas de limite
  • userAgent — navigateurs autorisés à afficher le sondage rapide.
'audience' => [
	'minEdits' => 2,
	'maxEdits' => 5,
	'registrationStart' => '2018-01-01',
	'registrationEnd' => '2018-01-31',
	'namespaces' => [ 0 ],
	'userInGroup' => [ 'sysop' ],
	'pageIds' => [ 1234, 9876 ],
	'countries' => [ 'US', 'UK' ],
	'firstEdit' => [ 'from' => '2018-01-01', 'to' => '2018-12-31' ],
	'lastEdit' => [ 'from' => '2018-01-01', 'to' => '2018-12-31' ],
	'userAgent' => [ 'Chrome', 'KaiOS' ],
	'anons' => false,
],
  • platforms — This mandatory, top-level survey configuration field allows filtering for mobile or desktop views. It is a flat array that can be empty or contain the strings 'mobile' and/or 'desktop'. Note, platform should not be confused with mobile devices it corresponds to the mobile experience. If you want to target mobile edits please use userAgent. Note, for projects which do not have a separate mobile site e.g. wikifunctions.org platform must always be desktop since the platform experience is the same regardless of device.

Configuring Questions

Les champs de configuration suivants contrôlent l'affichage du sondage :

  • type => external — le sondage est hébergé sur un site web externe, seul un lien est affiché .
    Sondage externe
  • layout => single-answer — chaque choix est représenté par un bouton. En cliquant sur un choix vous envoyez et fermez immédiatement le sondage, sauf si une entrée textuelle de format libre est présente.
    Sondage à réponse unique
  • layout => multiple-answer — les différents choix sont présentés chacuns sous forme de cases à cocher. Vous pouvez choisir plusieurs cases. L'entrée d'un texte au format libre ne sera pas proposée.
    Sondage à réponses multiples
  • freeformTextLabel — L'utilisateur sondé peut entrer un texte au format libre en plus d'une réponse prédéfinie facultative.
    Sondage avec texte libre de l'utilisateur
  • shuffleAnswersDisplay — Les réponses seront choisies aléatoirement et affichées dans un ordre différent pour chaque personne sondée. Cela permet de mesurer un biais de réponse causé par l'ordre des réponses. Par défaut à true.

Survey Placement

By default surveys are placed after the first lead paragraph, or before the first .mw-heading, infobox or .thumb element. If there is no lead paragraph, heading or infoboxes the survey will refuse to display without further configuration. This will happen on the majority of special pages, on Wikimedia projects that use custom markup that is visually different from Wikipedia and most custom namespaces. They are optimized for Wikipedias so on other projects may display inappropriately while T393436 is unresolved.

You can override the placement by providing an ID of where the survey should z

  • embedElementId — Lorsque ce champ est présent, le sondage ne peut être injecté dans une page qu'avec un élément DOM correspondant à la valeur configurée par ID. Par exemple un sondage avec embedElementId: "survey-embed-point" sera affiché sur une page avec HTML <div id="survey-embed-point"></div>, juste après cet élément.Sondages inclus à un endroit précis You can use "embedElementId": "-" to ensure that the survey is not automatically appending to the page (see advanced surveys).
Survey embedded at a specific location

For running surveys on special pages the special page itself will need to provide a suitable area to run the survey. It is recommended that you add an element to the special page with the ID prefix mw-quicksurvey-container to keep this discoverable. Note the ID will need to be unique if you wish to exclude the survey from other special pages You can file a ticket against the appropriate special page using this Phabricator form.

Note, when using embedElementId or relying on the default survey placement, when running on non-Wikipedia you may also need to provide your own custom CSS to influence visual display.


Ajouter les clés des messages

Les messages peuvent être définis comme partie d'une extension par exemple WikimediaMessages ou par une page wiki. Par exemple, le message ext-quicksurveys-example-internal-survey-answer-positive peut être défini en éditant la page wiki MediaWiki:ext-quicksurveys-example-internal-survey-answer-positive

Pour l'édition des messages, vérifiez que vous avez les droits nécessaires. Vous devez avoir les droits edit-interface .

Running surveys outside Wikipedia

Following phab:T317841 QuickSurveys is enabled on all wikis. When using QuickSurveys outside Wikipedia it is important to bear in mind the guidance in the Survey Placement section.

Advanced surveys

If you have more advanced requirements that are not supported by the existing configuration you can enable a survey with embedElement set to "-". This ensures that the survey will not be automatically added to the page, as no HTML element will exist on the page with ID "-".

$wgQuickSurveysConfig = [
	[
		"name" => "Empty search experiment survey",
		"type" => "external",
		'enabled' => true,
		// Can be added programatically.
		'embedElementId' => '-',
		'coverage' => 0.5,
		'namespaces' => [ 0, -1 ],
		"privacyPolicy" => "ext-quicksurveys-empty-search-experiment-privacy-policy",
		'platforms' => [
			'desktop',
			'mobile'
		],
		'audience' => [
			"namespaces" => [ 0, -1 ],
		],
		"questions" => [
			[
				"name" => "Empty search experiment question",
				"layout" => "single-answer",
				"link" => 'ext-quicksurveys-empty-search-experiment-link',
				"question" => "ext-quicksurveys-empty-search-experiment-question",
				"description" => null,
				"yesMsg" => "ext-quicksurveys-empty-search-experiment-yes",
				"noMsg" => "ext-quicksurveys-empty-search-experiment-no",
			],
		],
	],
];

require( 'ext.quicksurveys.lib' ).showSurvey

The showSurvey method takes three parameters:

  • <string> name - name of survey
  • <string> id - id of element to insert survey
  • <bool> force - whether to override the survey's audience and sampling. This should be used for debugging purposes only. Ensure your surveys have defined an appropriate sample rate and define audience as an empty array if you want to override the audience requirements locally.

The method will return a boolean based on whether the survey was added to the page or not. The result will be false under the following circumstances:

  • the survey does not exist
  • the user is not in the current sample (if force parameter was not used)
  • the user does not meet the audience criteria (if force parameter was not used)

Displaying a survey with advanced targeting requirements

With the survey defined, code can be written in gadgets, WikimediaEvents or WikimediaMessages to add additional conditions and to insert the survey into the page.

const isUsingDarkMode = mw.user.options.get('vector-theme') === 'night';
const itsMorning = (new Date()).getHours() < 12;
// Show survey to users using dark mode during the morning period.
const shouldShowSurvey = isUsingDarkMode && itsMorning;

if ( mw.loader.getState( 'ext.quicksurveys.init' ) !== 'registered' ) {
    mw.loader.using('ext.quicksurveys.lib').then( ( require ) => {
        if ( shouldShowSurvey ) {
            // Will show survey if the user is in sample in the element with ID 'foo'
            require( 'ext.quicksurveys.lib' ).showSurvey( 'name', 'foo' );
        }
    })
}

Providing custom CSS on watchlist

After identifying a suitable HTML element on the page with an associated ID, when adding a survey you may also need to provide styling to control where the survey appears on the page using custom styling provided by the mw.util.addCSS function.

mw.loader.using(['ext.quicksurveys.lib', 'mediawiki.util']).then((require)=> {
    mw.util.addCSS(`.ext-quick-survey-panel { margin: 20px 0 20px 50px; }`)
    require('ext.quicksurveys.lib').showSurvey('Empty search experiment survey', 'mw-watchlist-form')

} )

Combining surveys

You can define multiple surveys and chain them together provided they have identical sampling rates. This can be useful if you want to ask follow up questions.

if ( mw.loader.getState( 'ext.quicksurveys.init' ) !== 'registered' ) {
    mw.loader.using('ext.quicksurveys.lib').then( ( require ) => {
        const showSurvey = require( 'ext.quicksurveys.lib' ).showSurvey;
        mw.hook( 'ext.quicksurveys.dismiss' ).add( () => {
           // when survey is dismissed  show the next question.
            showSurvey( 'name-2', 'foo' );
        });
        // Will show survey if the user is in sample in the element with ID 'foo'
        showSurvey( 'name-1', 'foo' );
    })
}

If you want to see a patchdemo of this in action you can use this example code: https://gerrit.wikimedia.org/r/c/mediawiki/extensions/WikimediaMessages/+/1202339

Running A/B tests

It might be desirable to show one survey 50% of the time, and another survey the other 50% of the time. You can combine the API with XLab to achieve this by creating two surveys which disable survey placement (by using embedElementId = '-') and programmatically displaying them based on the assigned group.

 const exp = mw.xLab.getExperiment( EXPERIMENT_NAME );
 if ( exp ) {
    if ( exp.isAssignedGroup( 'treatment' ) ) {
        require( 'ext.quicksurveys.lib' ).showSurvey( 'survey-treatment', 'body-content' );
    } else {
        require( 'ext.quicksurveys.lib' ).showSurvey( 'survey-nontreatment', 'body-content' );
    }
}

Guide du développeur

Règles pour afficher un sondage

Une grande partie de cette logique semble résider dans le client.

Pour voir la liste des sondages disponibles, voir le code source du module JavaScript ext.quicksurveys.lib module. Par exemple, dans la grappe bêta : https://en.wikipedia.beta.wmflabs.org/w/load.php?modules=ext.quicksurveys.lib&debug=true (chercher resources/ext.quicksurveys.lib/surveyData.json)

Résultats

Les tendances initiales et les réponses sont enregistrées dans EventLogging. Les tendances initiales sont dans le schéma QuickSurveyInitiation et les réponses sont dans QuickSurveysResponses. Le champ surveyCodeName dans les deux schémas correspond au name configuré des sondages.

Dépannage

Pour le développement local à l'aide de Docker , pour voir des enquêtes rapides rendues sur une page d'article, la page doit exister localement lorsque vous utilisez le fournisseur de contenu. Une fois la page locale créée, le sondage rapide sera visible si vous ajoutez les paramètres de la requête correspondants à l'URL.

Les sondages n'apparaissent pas

Vous pouvez voir les sondages disponibles en regardant la source du module ext.quicksurveys.lib par exemple https://en.wikipedia.beta.wmflabs.org/w/load.php?modules=ext.quicksurveys.lib&debug=true&only=scripts

Les sondages disponibles sont listés dans resources/ext.quicksurveys.lib/surveyData.json. Si votre sondage n'apparaît pas, le problème peut se situer dans la modification de votre configuration. Vérifiez attentivement les fautes de frappe.

Notes et références

  • window.Geo est fourni par CentralNotice . Pour éviter de configurer une extension, exécutez JSON.stringify( window.Geo ) en production et ajoutez window.Geo = <data>; à votre code.

Notez que le sondage ne s'affichera pas :

  • sur la page d'accueil
  • sur une page qui n'est pas un article
  • sur une page qui n'est pas une page d'article Soyez prudent quand vous utilisez le MobileFrontend content provider  !
  • si un sondage est externe et pointe vers un emplacement non https; cassé :
A FAIRE : T255291 en attente


Exemple de sondages effectifs

Notes de déploiement des sondages

  • Informations utiles sur le déploiement de sondages en version bêta et en production.
  • Ajouter de nouveaux messages d'enquête (comme de nouvelles questions) à WikiMediaMessages est un processus impliqué :
    • Les messages doivent être ajoutés à
      i18n/wikimedia/en.json
      
      et documentés dans
      i18n/wikimedia/qqq.json
      
    • Il faut accorder du temps et coordonner les efforts pour que ces messages soient traduits dans Translatewiki selon la priorité et les besoins de la communauté d'un projet donné.
    • Ces traductions de messages doivent être poussées de Translatewiki vers WikiMediaMessages et déployées dans un projet avant qu'elles ne soient disponibles à l'affichage dans un sondage
  • Les Questions Réponses (QR) des enquêtes sont un processus implémenté nécessitant la modification du media-wiki dépôt de la configuration.
    • PatchDemo ne peut pas être utilisé pour vérifier de nouveaux sondages parce que les sondages sont configurables, et PatchDemo ne l'est pas. Patchdemo ne peut être utilisé que dans les QR, pour la modification de l'interface utilisateur ou du code, pas pour les sondages eux-mêmes.
    • La grappe bêta est le seul environnement persistant pour le contenu des sondages QR.
    • Les sondages testés sur la version bêta avec une couverture élevée doivent se limiter aux identifiants de pages, comme les bacs à sable des utilisateurs.
    • Parce que la version bêta hérite de la configuration de production, vous devez vérifier si l'extension est activée sur en production en vérifiant le nom wiki bêta dans le tableau
      wmgUseQuickSurveys
      
      de
      wmf-config/InitialiseSettings.php
      
      . Si ce n'est pas le cas, vous devrez l'ajouter à
      wmf-config/InitialiseSettings-labs.php
      
  • Les enquêtes sont déployées dans la production comme arrière-ports, car ce sont des modifications de configuration :
    • Veuillez prendre connaissance du calendrier de déploiement pour les détails des fenêtres d'arrière-ports.
    • Pendant le déploiement de la fenêtre d'arrière-port, vous devrez vérifier que la modification a été déployée avec succès en utilisant un hôte mwdebug.
    • Les paramètres d'auditoire et de couverture peuvent impacter beaucoup le fait qu'un sondage puisse s'afficher sans pouvoir le forcer. Par exemple, en fonction des paramètres d'auditoire et de couverture, vous devrez peut-être créer un compte sur le projet de test et réaliser un nombre de modifications suffisant pour déclencher un sondage.
    • Préparez-vous à répondre au ticket Phabricator à propos de la couverture et de l'audience car l'affichage du sondage a un impact sur l'expérience utilisateur. Les personnes qui déploient peuvent refuser tout patch s'ils ne comprennent pas son impact. Aidez-vous d'un ami pour votre premier déploiement.