Extensión:CentralNotice

This page is a translated version of the page Extension:CentralNotice and the translation is 100% complete.
Manual de extensiones de MediaWiki
CentralNotice
Estado de la versión: estable
Implementación Página especial , API
Descripción Adds a central sitenotice
Autor(es) Andrew Russell Green, Matthew Walker, Adam Roses Wight Formerly: Brooke Vibber, Tomasz Finc, Trevor Parscal, Ryan Kaldari
Última versión 2.6.1 (continuous updates)
Política de compatibilidad Lanza instantáneas junto con MediaWiki. La rama maestra no es retrocompatible.
Cambios en la base de datos
Tablas 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
Licencia Licencia Pública General de GNU 2.0 o posterior
Descargar
Ejemplo 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
Descargas trimestrales 33 (Ranked 96th)
Wikis públicos que lo utilizan 1,012 (Ranked 228th)
Traduce la extensión CentralNotice si está disponible en translatewiki.net
Incidentes Tareas abiertas · Reportar un error

La extensión CentralNotice entrega anuncios (generalmente en forma de pancarta) a los wikis de Wikimedia. El equipo de Fundraising recurre mucho a ella para solicitar donaciones y para anuncios de interés para comunidades y usuarios de Wikimedia. CentralNotice puede segmentar los anuncios por país, idioma, proyecto, dispositivo y estado de inicio de sesión.

Esta página contiene información para desarrolladores de CentralNotice y administradores de wikis que desean instalar CentralNotice en sus propios sitios. Para aprender a crear y configurar campañas de CentralNotice, consulta Help:CentralNotice en Meta-Wiki. Para más información sobre la configuración de CentralNotice en el clúster de la Fundación Wikimedia, consulta CentralNotice en Wikitech.

CentralNotice permite la distribución centralizada de anuncios a muchos wikis (denominados wikis suscritos) desde un wiki central (el wiki de infraestructura). Si necesitas publicar mensajes a un solo wiki, considera utilizar más bien Sitenotice.

Instalación

CentralNotice solo está desarollado, testeado y desplegado (que se sepa) en wikis que no utilizan prefijos de table. Si tu configuración utiliza prefijos de tabla, no hay garantía de que esta extensión vaya a funcionar. Por favor, informa de cualquier error a Phabricator.

Para todos los wikis

  1. Descarga la última instantánea y extráela a tu directorio de extensiones.
  2. Añade a LocalSettings.php lo siguiente:
    wfLoadExtension( 'CentralNotice' );
    
  3. Por defecto, la búsqueda GeoIP está deshabilitada. Sin embargo, si la cookie Geo está precargada, se utilizará su valor. Para el desarrollo local, puedes habilitar una implementación del lado del cliente que utilice https://freegeoip.net como sigue: Para más información, consulta #Búsqueda GeoIP.
$wgCentralNoticeGeoIPBackgroundLookupModule = 'ext.centralNotice.freegeoipLookup';

El wiki de infraestructura

  1. Desde la línea de comando, ve al wiki raíz y ejecuta php maintenance/run.php update
  2. Edita LocalSettings.php y establece...
    1. $wgNoticeInfrastructure a true
    2. $wgNoticeProjects a una matriz de proyectos para su suscripción al wiki central. Por ejemplo, array( 'wikipedia', 'wiktionary' )
  3. Por defecto, el grupo sysop es el único grupo con la capacidad de administrar CentralNotice. Si se necesitan grupos adicionales, asígnales los permisos centralnotice-admin y edit-interface.

Los wikis suscritos

Edita LocalSettings.php y establece...

  1. $wgNoticeInfrastructure a false;
  2. $wgNoticeProject para que sea una entrada en $wgNoticeProjects;
  3. $wgCentralHost al protocolo (potencialmente neutral) y dominio del wiki central. Por ejemplo, //meta.wikimedia.org;
  4. $wgCentralSelectedBannerDispatcher a la URL de Special:BannerLoader en el wiki central, por ejemplo, //meta.wikimedia.org/w/index.php/Special:BannerLoader;
  5. ya sea $wgCentralDBname al nombre de la base de datos del wiki de infraestructura, o bien $wgCentralNoticeApiUrl al punto terminal de la API del wiki de infraestructura; y
  6. $wgCentralBannerRecorder a la URL de Special:RecordImpression en el wiki central. Por ejemplo, //meta.wikimedia.org/w/index.php/Special:RecordImpression.

Configuración rápida para desarrolladores

Para la mayoría de las tareas de desarrollo, puedes utilizar un solo wiki tanto en el rol de infraestructura como en el de suscripción. He aquí líneas de ejemplo para incluir en LocalSetting.php. (Véanse las notas en los comentarios.)

wfLoadExtension( 'CentralNotice' );
$wgNoticeInfrastructure = true;
$wgNoticeProjects = array( 'centralnoticeproject' ); # 'centralnoticeproject' puede ser cualquier cadena
$wgNoticeProject = 'centralnoticeproject'; # debe coincidir con la anterior
$wgCentralHost = 'localhost';
$wgCentralSelectedBannerDispatcher = 'http://localhost/mw/index.php?title=Special:BannerLoader';
$wgCentralDBname = 'databasename'; # igual que $wgDBname
$wgCentralNoticeGeoIPBackgroundLookupModule = 'ext.centralNotice.freegeoipLookup';

Cualquier código que se ejecute en wikis suscritos debe someterse a pruebas con MobileFrontend para garantizar que funcionan en la versión móvil del sitio.

Dependencias

Algunas funcionalidades de CentralNotice requieren otras extensiones de MediaWiki, como EventLogging y Traducir .

Obtener ayuda

El equipo Fundraising tech de la Fundación Wikimedia se encarga de mantener CentralNotice. Para cualquier pregunta sobre la instalación, informe de error o uso de CentralNotice, envía un correo electrónico a la lista de correo wikitech-l@lists.wikimedia.org o contacta con nosotros en el canal IRC #wikimedia-fundraising connect.

Permisos

  • centralnotice-admin — Permiso requerido para modificar campañas y pancartas. Solo es relevante para los wikis de infraestructura (véase también bugzilla:26377).
    • edit-interface es necesario para editar el contenido de una pancarta.

Conceptos de diseño

Desde el punto de vista del usuario, los objetos de alto nivel de CentralNotice son campaigns (es decir, avisos) y banners (es decir, plantillas). Son afectados por los conceptos de sistema de selectors y allocation (asignación).

  • Banner (pancarta) — un único bloque de html/wikitext/css/javascript traducible que se mostrará en la parte superior de las páginas de Manual:$wgContentNamespaces . Los selectors de estado de usuario, tipo de dispositivo e idioma de la interfaz de usuario se aplican a las pancartas.
    • Las pancartas pueden agruparse por category (categoría). Todas las pancartas de una misma categoría comparten cookies del lado del cliente tales como la cookie de ocultación que se inicializa cuando un usuario hace clic en el botón de cierre de una pancarta.
  • Campaign (campaña) — una colección de pancartas. Los selectores de proyecto, país e idioma de contenido se aplican a nivel de campaña. El sistema admite tantas campañas activas concurrentes como quieras calculando dinámicamente una allocation por cada pancarta en una campaña activa. Las campañas se definen como activas si la hora del wiki central es mayor que la hora de inicio de la campaña, menor que la hora de final de la campaña y la campaña está marcada como activa.
    • A las pancartas de una campaña se les asigna un bucket (compartimento) y un weight (peso). Los buckets son otro selector más, y el peso afecta la asignación relativa de pancartas dentro de una campaña.
    • Hay cuatro niveles de prioridad en CentralNotice. Las campañas de prioridad más alta tendrán una mayor asignación de vistas de página.
    • Las campañas se pueden bloquear (locked), lo que impedirá que se pueda editar o eliminar la campaña, pero no así las pancartas de la campaña.
  • Selector — cualquier propiedad susceptible de ser filtrada para los propósitos de la asignación. Esto permite, por ejemplo, que se muestren pancartas diferentes a los usuarios que tienen una sesión activa y a los que no en Argentina que consultan Wikipedia en inglés.
    • Un vector de selección es el conjunto completo de selectores que un usuario presenta al wiki central al solicitar una pancarta.
  • Allocation (asignación) — La probabilidad de que se muestre una pancarta a un usuario con un vector de selección dado.

Documentos de diseño

Búsqueda GeoIP

Por defecto, CentralNotice no tiene configurado ningún servicio de búsqueda GeoIP del lado del cliente. Esto está optimizado para la configuración de producción de la Fundación Wikimedia, donde Varnish inicializa la cookie Geo desde el lado del servidor. (Véase wikitech:Geolocation.) Puedes configurar CentralNotice para utilizar una fuente de datos personalizada desde el lado del cliente mediante la variable de configuración CentralNoticeGeoIPBackgroundLookupModule. Esta variable espera recibir el nombre de un módulo ResourceLoader que exporta una función. La función recibirá una llamada sin parámetros y debería devolver una promesa que se resuelva con un objeto con las siguientes propiedades:

  • country: cadena - Código de dos letras de país.
  • region: cadena - Dependiente de la implementación.
  • city: cadena - Nombre de ciudad.
  • lat: número.
  • lon: número.

Uso

Las instrucciones completas de uso se encuentran en meta:Help:CentralNotice.

Nueva pancarta

  1. Carga Special:CentralNoticeBanners
  2. Haz clic en el enlace de añadir pancarta en la parte inferior de la página (debes tener activa una sesión de administrador).
  3. Introduce un nombre y el HTML en crudo de la pancarta dada.
    1. Si se va a traducir esta pancarta, encierra cualquier texto traducible entre triples paréntesis - {{{FOO}}}.
  4. Envía

(POR HACER: trasladar y expandir este fragmento)

  • Cada pancarta tiene su definición almacenada en MediaWiki:Centralnotice-template-<name>
  • Todos sus mensajes están almacenados debajo de la pancarta definida en MediaWiki:Centralnotice-template-<name>-<message>/<language_code>

Nueva campaña

  1. Carga Especial:CentralNotice
  2. Añade una campaña con una hora de inicio dada en la parte inferior de la página, deja un comentario y haz clic en enviar.
    1. Si esta campaña solo se va a llevar a cabo en un wiki o idioma concreto, selecciónalo en los menús desplegables.
  3. Haz clic en la nueva campaña y añade las pancartas que deseas en la misma con sus pesos respectivos.
  4. Si todo tiene un aspecto adecuado, marca esta campaña como activa y se mostrará a la hora correspondiente.

Redefinir la selección

Añade cualquiera de los siguientes parámetros de URL para previsualizar una determinada pancarta, anular esquemas «dietéticos» o depurar la selección pseudoaleatoria de pancartas.

banner
Puedes hacer pruebas sobre una pancarta directamente en cualquier wiki añadiendo ?banner=<bannername> al final de la URL.
randomcampaign
Un número decimal entre 0 y 1 utilizado a modo de semilla pseudoaleatoria para elegir una campaña.
randombanner
Un número decimal entre 0 y 1 utilizado a modo de semilla pseudoaleatoria para elegir una pancarta de entre las disponibles en la campaña elegida.
country
Redefine el código de país antes del filtrado de campañas geosegmentadas. Acepta códigos de dos letras ISO 3166-1.
uselang
Su uso habitual en MediaWiki, que determina qué pancartas se te podrán mostrar. Ten en cuenta la diferencia entre idioma de contenido e idioma de usuario.
force
Anula cualquier código que oculte la pancarta, por lo que muestra a la fuerza la pancarta.
reset
Llena de ceros cualquier cookie utilizada para personalizar la visualización de pancartas (por ejemplo, el contador de impresiones entregadas).

Por ejemplo,

Depuración de pancartas problemáticas

Si hay alguna pancarta problemática en la página, puedes identificar qué pancarta está activa abriendo la consola de desarrollador e inspeccionando el valor de mw.centralNotice.bannerData.bannerName.

Limitaciones

Las pancartas no se muestran en páginas del espacio de nombres Special, así como en páginas de edición y páginas de diferencia entre ediciones.

API

CentralNotice añade dos módulos de API: centralnoticechoicedata y centralnoticequerycampaign. (El módulo centralnoticeallocations fue declarado obsoleto y eliminado en 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)


Véase también