Proyecto Phabricator: #Popups


Jump to: navigation, search
This page is a translated version of the page Extension:Popups and the translation is 17% complete.

Other languages:
català • ‎Deutsch • ‎English • ‎español • ‎suomi • ‎français • ‎italiano • ‎日本語 • ‎한국어 • ‎polski • ‎português • ‎português do Brasil • ‎русский • ‎sicilianu • ‎中文
MediaWiki extensions manualManual:Extensions
Crystal Clear action run.png

Release status:Extension status beta

HoverCard Inheritance.png
ImplementaciónTemplate:Extension#type Skin
DescripciónTemplate:Extension#description Displays popups when users hover over article links
Autor(es)Template:Extension#username Prateek Saxena, Yair Rand, Sam Smith, Joaquín Oltra Hernández, Bahodir Mansurov, Jon Robson, Piotr Miazga, Jeff Hobson (Prtksxnatalk)
MediaWikiTemplate:Extension#mediawiki 1.25+
PHPTemplate:Extension#php 5.4+
Cambios de la base de datosTemplate:Extension#needs-updatephp No
LicenciaTemplate:Extension#license GNU General Public License 2.0 or later
Hooks que usaTemplate:Extension#hook

Translate the Popups extension if it is available at

Verificar uso y versión de la matriz.


Tareas abiertas · Reportar un bug

The Popups extension displays page previews − summaries of an article's content when the user hovers over a link to that article.

This is an initiative of the Design team, inspired by the popular Navigation popups gadget. Currently this feature is available as a Beta Feature on Wikimedia wikis. A description of how the extension functions and more information on its use on Wikimedia projects is available at Page Previews.


This extension has a hard dependency on Extensión:TextExtractsExtension:TextExtracts and Extension:PageImagesExtension:PageImages. There are also optional dependencies on Funcionalidades en betaBeta Features (without BetaFeatures, it loads for all users), and Extension:EventLoggingExtension:EventLogging and Extension:WikimediaEventsExtension:WikimediaEvents (for instrumentation).


  • Descarga y extrae los archivos en el directorio «Popups» dentro del directorio extensions/ existente.
  • Añade el siguiente código a tu LocalSettings.php (preferiblemente al final):
    wfLoadExtension( 'Popups' );
  • Ejecuta el script de actualización, que creará automáticamente las tablas que necesita esta extensión en la base de datos.
  • YesY Listo - Navega a Special:Version en tu wiki para verificar que la apariencia se haya instalado correctamente.

Para quienes usan MediaWiki 1.24 o versiones anteriores:

Estas instrucciones describen la nueva forma de instalar extensiones usando wfLoadExtension(). Si necesitas instalar esta extensión en versiones anteriores (MediaWiki 1.24 y anteriores), debes usar lo siguiente en lugar de wfLoadExtension( 'Popups' );:

require_once "$IP/extensions/Popups/Popups.php";
  • Enable the beta feature
$wgPopupsBetaFeature = true;

Configuration options[edit]

Option Default value Useful for... Documentation
$wgPopupsBetaFeature true sysadmins Enables Popups as a beta feature
$wgPopupsExperiment true sysadmins Enables A/B experiments with Popups in desktop stable.
$wgPopupsExperimentConfig = [
        'name' => 'Popups A/B Test - May, 2016',
        'enabled' => true,
        'buckets' => [
                'control' => 0.5,
                'A' => 0.5
sysadmins Configuration for Popups A/B test

control and bucket determine which percentage of users will see Popups enabled. Bucketing is done per browser/device, not user accounts.

$wgPopupsExperiment will override the experiment setting enabling Popups if explicitly enabled in beta features.

$wgPopupsSchemaSamplingRate 0 sysadmins Frequency of sampling
$wgPopupsSurveyLink sysadmins URL for survey
$wgPopupsPageBlacklist sysadmins Disable page previews on certain pages


The popups show an image (if one is available), a small text excerpt and the timestamp of the last edit.


The image comes from the Extension:PageImages which returns the single most appropriate thumbnail associated with an article. It ignores maintenance templates, stubs, flag icons etc.


The text comes from the Extension:TextExtracts from which a plain-text extract is requested (see that extension for exclusions). Two sentences are requested from the intro section and a limit is put through CSS that makes sure that text doesn't overflow from the card. This is done by applying a max-height on that element. This approach would provide the same visual solution regardless of the language's script. A major con is that the text stops abruptly and ellipses can't be added.

Show/hide timing[edit]

The timing of the show/hide can currently be adjusted via code, which should be added to your local Special:MyPage/common.js or global.js file :

mw.loader.using( [ 'ext.popups' ], function() { // wait for popups to be loaded

// Time to wait in ms before showing a popup on hover. Default is 500.
mw.popups.render.POPUP_DELAY = 500;

// Time to wait in ms before closing a popup on de-hover. Default is 300.
mw.popups.render.POPUP_CLOSE_DELAY = 300;

// Time to wait in ms before starting the API queries on hover, must be <= POPUP_DELAY. Default is 50.
// Don't change this unless you know what you're doing.
mw.popups.render.API_DELAY = 50;



This extensions currently has only one renderer, that is for ordinary pages. New renderers for different kind of pages, or things like references can be easily added. One needs to create a new object with the following methods:

  • init
  • createPopup
  • getOffset
  • getClasses
  • processPopup

You can see details of these methods in ext.popups.renderer.article.js or this patch that adds a renderer for references.

Known problems[edit]

Users of the Translate extension should note that Page Previews requests previews in the content language of the page. If the preview contains a complete translatable block, then it will be translated. If, however, the preview contains an incomplete translateable block – because a sentence is cut off, say – then it isn't translated and will be displayed in the content language of the page. If you are observing this behavior, then you should consider marking up individual sentences in your lead section.

T167852 is for a technical audience but has more information on the underlying problem.


Why can't I copy and paste text from a preview?[edit]

At time of writing, the cons of doing so outweigh the pros. Essentially it boils down to decreasing the touch area to read the article in full. Once Page Previews is deployed on English and German Wikipedia, feel free to reopen this task and reignite the discussion, but right now we have no plans.

How can I remove content from a page preview?[edit]

TextExtracts will strip any element that is marked with the noexcerpt class. This class is one of the classes in the wgExtractsRemoveClasses configuration variable.