Fandom Developers Wiki
Advertisement

Esta página, o partes de ella, siguen sin traducir. Por favor traduzcala al lenguaje apropriado (español).

Para información sobre la creación de módulos, véase UserTags/Extending.
Para un script con una funcionalidad similar, véase ProfileTags.

UserTags es un script que puede agregar, eliminar, modificar y reorganizar las etiquetas en las páginas de usuario (las etiquetas "Fundador", "Administrador", "Bloqueado", etc que aparecen junto a los nombres de los usuarios en su cabecera). Te permite agregar etiquetas además de las predeterminadas de Fandom y reorganizarlas y eliminarlas como desees. También puede inventar etiquetas personalizadas que puede otorgar a los usuarios por cualquier motivo que considere apropiado.

Este script reemplaza a InactiveUsers y UserBadges; solo debe usar uno de estos tres scripts para evitar conflictos. UserTags es el más nuevo y tiene la mayor cantidad de funciones y opciones de personalización.

Véase MessageWallUserTags para ver las "etiquetas" en el foro (no en las discusiones) y en los muros de mensajes .

Instalación[]

Nota: También deberá agregar el siguiente CSS a MediaWiki:Common.css:

a.tag {
    color: inherit;
}

Esto es suficiente para la funcionalidad básica; sin embargo, si desea personalizarlo, deberá leer la sección Configuración

Configuración[]

Este script tiene muchas características, por lo que la siguiente sección es algo larga. No es necesario utilizarlos todos; de hecho, puede ignorar los que no desee. Es posible que desee pasar a los Ejemplos y luego volver a leer la sección Configuración básica.

Configuración básica[]

Agregue esto a Common.js: (fuente)

window.UserTagsJS = {
	modules: {},
	tags: {},
	oasisPlaceBefore: ''
};

Lo primero que debe saber es que los usuarios están divididos en "grupos", que son cosas como "bloqueado", "administrador", "burócrata" o "inactivo". Estos son nombres internos utilizados por el software pero deben mostrarse en la pantalla al final, para hacer esto se convierten en "etiquetas". Las etiquetas describen lo que realmente se muestra en la pantalla después.

Hagamos un ejemplo simple, digamos que desea crear 3 etiquetas: "Editor del mes", "Destacado" y "Gurú de las plantillas". Para ello, crearemos los grupos "montheditor", "features" y "templates":

window.UserTagsJS = {
	modules: {},
	tags: {
		// group: { associated tag data }
		montheditor: { u:'Editor del mes' },
		featured: { u:'Destacado' },
		templates: { u:'Gurú de las plantillas' }
	}
};

Al crear nuevos grupos y etiquetas, esto generalmente es suficiente, excepto que estas etiquetas se colocarán al "final" de la fila en el encabezado. Tal vez desee colocar la etiqueta al inicio en su lugar, para controlar el orden, utilice la opción de configuración order.

window.UserTagsJS = {
	modules: {},
	tags: {
		montheditor: { u:'Editor del mes', order:-1/0 },
		featured: 'Destacado',
		templates: 'Gurú de las plantillas'
	}
};

El parámetro order es un número desde infinito negativo hasta infinito positivo, los números más bajos están más cerca del inicio. En este caso, -1/0 es infinito negativo, por lo que la etiqueta se colocará al inicio.

Puede utilizar cualquiera de los siguientes parámetros para diseñar sus etiquetas:

Parámetro Descripción Tipo Defecto
u El texto que se muestra cuando el usuario etiquetado tiene un género desconocido (no establecido en sus opciones). Texto Obligatorio
m El texto que se muestra cuando el usuario [etiquetado] es hombre Texto Si falta, se usará el valor u en su lugar
f El texto que se muestra cuando el usuario [etiquetado] es mujer Texto Si falta, se usará el valor u en su lugar
order Controla el orden de las etiquetas en la fila. Los números más bajos se colocan al principio y el número más grande al final. Número 10100
link Le permite convertir la etiqueta en un enlace a una página en el wiki o en cualquier lugar de internet. Acepta enlaces wiki normales como "Proyecto:Administradores" o URL completas como "https://www.google.com/". Si no se establece, la etiqueta se mostrará como texto sin formato. Tenga en cuenta que los enlaces interwiki (como "Wikipedia:Computadora") no funcionarán, use una URL http:// completa en su lugar. Texto en blanco
title Establece el texto que se muestra cuando el usuario pasa el mouse sobre la etiqueta. Texto en blanco

Las variantes masculinas/femeninas/desconocidas existen para admitir idiomas distintos del inglés, como el italiano, que tienen nombres diferentes para hombres/mujeres. En inglés u otros idiomas que no diferencian por género, solo puede necesitar usar el campo u (desconocido).


Reemplazo de etiquetas existentes[]

A veces, las etiquetas existentes pueden no ser adecuadas para sus necesidades; tal vez desee cambiar el texto, ordenarlas o convertirlas en un enlace. Puede hacerlo simplemente definiendo su propia etiqueta para el grupo existente:

window.UserTagsJS = {
	modules: {},
	tags: {
		bureaucrat: { u:'Bureaucrat Tag', link:'Project:Bureaucrats' },
		inactive: { u: 'Has not edited recently' }
	}
};

Esto cambiará la etiqueta de burócrata para decir "Etiqueta de burócrata" y la convertirá en un vínculo a la página Project:Burócratas y cambiará la etiqueta inactiva para que diga "No se ha editado recientemente" en lugar de solo "Inactivo". Alternativamente, tal vez usted solo quiere convertirlo en un enlace sin cambiar el texto, o simplemente cambiar el orden, también puede hacerlo:

window.UserTagsJS = {
	modules: {},
	tags: {
		bureaucrat: { link:'Project:Bureaucrats', order:1e101 }
	}
};

Esto convertirá la etiqueta de burócrata en un enlace y la moverá al final sin cambiar lo que dice. [NOTA: No configurar texto solo funciona con grupos integrados; para sus propios grupos inventados, especificando el texto de la etiqueta no es opcional]

NOTA: Cuando trabaje con grupos integrados que tienen un guión en su nombre, debe envolver el nombre entre comillas para que funcione:

window.UserTagsJS = {
	modules: {},
	tags: {
		// DON'T DO THIS, IT WILL NOT WORK
		bot-global: { link:'Project:Bots' }

		// THIS WILL WORK
		'bot-global': { link: 'Project:Bots' }
	}
};

Estilo/Apariencia[]

El script está diseñado para que sea más fácil dar a cada etiqueta una apariencia diferente. Cada etiqueta tiene una clase CSS basada en el grupo interno que la creó con 'usergroup-' agregado al inicio. Por ejemplo, la etiqueta bureaucrat tiene la clase CSS usergroup-bureucrat, la etiqueta inactive tiene la clase usergroup-inactive y así sucesivamente. Sus etiquetas personalizadas utilizarán los grupos que eligió, la etiqueta "Editor del mes" anterior tiene la clase CSS usergroup-montheditor.

Para cambiar los colores o la apariencia, simplemente agregue una regla a MediaWiki:Common.css, así:

.tag.usergroup-bureaucrat {
	background-color: gold !important;
	color: black !important;
}
.tag.usergroup-sysop {
        background-color: red !important;
        color: black !important;
}
.tag.usergroup-featured {
	background-color: blue !important;
	color: white !important;
}

Esto hará que las etiquetas de burócrata sean doradas y las etiquetas de "usuario destacado" azules. Puede usar las directivas CSS que desee, incluido el cambio de bordes, la adición de imágenes de fondo o lo que sea.

.tag.usergroup-bureaucrat {
	/* Display custom background on tag with a red square border */
	background-image: url("https://site.com/image.png");
	border: 3px red solid;
	border-radius: 0;
}
.tag.usergroup-featured:before {
	/* Add a magnifying glass icon to the left side of the "Featured" tag */
	content: url("https://site.com/magnifying-glass.gif");
}

La única advertencia es que los nombres de los grupos internos se reducirán a inglés simple, si tienes un grupo como 'asd%$ü@xyzüü', terminarás con usergroup-asdxyz pero no hay razón para utilizar caracteres del alfabeto que no sean del inglés en grupos internos, ya que no son visibles para los visitantes de su wiki.

Todas las etiquetas producidas o administradas por UserTags están contenidas en un elemento span con la clase CSS tag-container. Puede utilizar este hecho para mover todas las etiquetas a su propia línea configurando tag-container en display: block, por ejemplo. Puede ver los efectos que puede probar en la sección Ejemplos.

Finalmente, el encabezado del usuario tiene la clase CSS para la primera etiqueta en la línea agregada. Por ejemplo, si la etiqueta bureaucrat está al principio de la línea, entonces encontrará que #UserProfileMasthead tiene el 'usergroup-bureaucrat' clase que se le atribuye. Puede usar este hecho para agregar diferentes colores o imágenes de fondo al encabezado en función de los grupos en los que se encuentra el usuario. Tenga en cuenta que las etiquetas de Fandom están al principio de la línea de forma predeterminada, las etiquetas bloqueadas como "Staff" en particular no se pueden quitar desde el comienzo. Esto significa que los usuarios del Staff siempre recibirán 'usergroup-staff' incluso si tienen un puesto de administrador local.

Controlar dónde se colocan las etiquetas[]

La opción oasisPlaceBefore le permite controlar dónde se colocan las etiquetas en el encabezado de Oasis. Por defecto, siempre se colocan al final como los de Fandom, pero puedes cambiar esto especificando un selector CSS (jQuery) para esta opción. Por ejemplo, si desea colocar las etiquetas después de H1 (nombre de usuario), pero antes de H2 (nombre real), entonces debería hacer esto:

window.UserTagsJS = {
	modules: {},
	tags: {},
	oasisPlaceBefore: '> h2' // Place tags before the H2
};

Módulos[]

Para la documentación del desarrollador para la creación de nuevos módulos, véase UserTags/Extending.

Ahora que comprende los conceptos básicos, podemos pasar a las funciones reales. El script se divide en módulos que se pueden activar y desactivar por separado. No es necesario que lea todo esto, es posible que desee pasar a los ejemplos y luego volver para elegir cuáles desea.

Los módulos integrados y sus opciones de configuración se numeran a continuación. Es posible crear sus propios módulos o instalar módulos adicionales creados por otros desarrolladores. Si desea utilizar un módulo de terceros escrito por otra persona, entonces querrá leer la documentación relevante proporcionada por su desarrollador.

Inactivo[]

Habilitado de forma predeterminada:
Valor predeterminado: 30
Grupo/etiqueta asociado:inactivo
Funciona con usuarios anónimos:

Este módulo agrega el grupo inactive a los usuarios que no han editado dentro del intervalo configurado. Se necesita un número que especifica la cantidad de días que un usuario no debe haber editado para ser considerado inactivo:

UserTagsJS.modules.inactive = 50; // 50 days

Si tiene un conjunto de requisitos más estrictos, puede filtrar las ediciones por el espacio de nombres en el que se realizaron. Por ejemplo, si solo considera que las personas que editan páginas de artículos están "activas" y todos los demás están inactivos, incluso si han editado una página de discusión o tan recientemente, puede utilizar este formato de configuración en su lugar.

UserTagsJS.modules.inactive = {
	days: 30,
	namespaces: [0],
	zeroIsInactive: true // 0 article edits = inactive
};

0 es el espacio de nombres del artículo principal. La matriz de espacios de nombres puede contener varios valores y aceptará nombres de espacios de nombres simples como los de la barra de URL, por ejemplo:

UserTagsJS.modules.inactive = {
	days: 30,
	namespaces: [0, 'Talk', 'User talk', 'Forum'] // Edits must be to articles or talk pages or user talk pages or the forum to count, others don't count
};

Grupos de MediaWiki[]

Activado por defecto:
Valor predeterminado: ['blocked', 'bot', 'bureaucrat', 'threadmoderator', 'checkuser', 'content-moderator', 'helper', 'rollback', 'staff', 'sysop', 'threadmoderator', 'soap']
Grupo/etiqueta asociado: Como se numera en la matriz que proporciona
Funciona con usuarios anónimos: No

Este módulo agrega los grupos de MediaWiki del usuario a la lista de grupos internos y descargará automáticamente el texto de la etiqueta traducciones para esos grupos desde el servidor. Este módulo trata con grupos formales como bureaucrat, sysop, rollback, etc. El tipo de cosas que ves en Special:ListUsers. Este módulo toma una matriz que numera los grupos que desea incluir:

UserTagsJS.modules.mwGroups = ['bureaucrat', 'sysop', 'rollback'];

Cuentas globales sin modificaciones[]

Habilitado de forma predeterminada: No
Grupo/etiqueta asociado: no usuario
Funciona con usuarios anónimos:

Este módulo etiqueta a los usuarios que no tienen modificaciones. No es muy útil en Oasis, ya que puede ver el contador de contribuciones en el encabezado. No hay opciones de configuración, solo habilítelo si lo desea:

UserTagsJS.modules.nonuser = true; // Switch on

Cuentas recién registradas[]

Habilitado de forma predeterminada:
Grupo/etiqueta asociado: notautoconfirmed
Funciona con usuarios anónimos:No

Este módulo etiqueta a los usuarios que han creado su cuenta recientemente; es decir, solo han sido usuarios registrados de Fandom durante menos de 4 días y han realizado menos de 10 ediciones en cualquier wiki de Fandom. Esto puede ser útil para reconocer rápidamente cuentas de sockpuppet. Simplemente habilítelo si lo desea:

UserTagsJS.modules.autoconfirmed = true; // Switch on

Tenga en cuenta que el tiempo y el número de ediciones son decididos y controlados por Fandom; el módulo en sí no los elige y usted no tiene control sobre él.

Nuevos editores[]

Habilitado de forma predeterminada:
Valor predeterminado: {días: 4, ediciones: 10}
Grupo/etiqueta asociado: newuser
Funciona con usuarios anónimos:No

Este módulo etiqueta a los usuarios que no han estado en su wiki en particular durante el número de días especificado o que no han hecho el número especificado de ediciones. Esto es básicamente lo mismo que el módulo autoconfirmed excepto que se aplica a una wiki en lugar de a todas. Puede ser útil para reconocer a los títeres de carne, o simplemente a los nuevos editores que pueden haber estado en Fandom por un tiempo pero no conocen muy bien las políticas locales. Para configurarlo, puede establecer cualquiera de estos campos, omitiendo aquellos para los que desea mantener el valor predeterminado:

UserTagsJS.modules.newuser = {
	days: 5, // Must have been on the Wiki for 5 days
	edits: 10, // And have at least 10 edits to remove the tag
	namespace: 0 // Edits must be made to articles to count
};

Los parámetros son:

Parámetro Descripción Tipo Defecto
days El número de días desde su primera edición hasta que se quita la etiqueta. Número 4
edits El número de ediciones que deben realizar para eliminar la etiqueta. Número 10
namespace El espacio de nombres número en el que se deben realizar las ediciones antes de que cuenten. Establezca esto en 0 para que solo cuenten las ediciones de artículos (ignorando las ediciones realizadas en Sandboxes, Usuario, Discusión de usuario, Comentarios de artículo, Muros de mensajes, etc.). Número todos los espacios de nombres

Este módulo también admite opcionalmente un formato más potente que le permite definir su propia lógica de decisión. Necesitará una comprensión rudimentaria de JavaScript para usar esto, pero le permite definir relaciones complejas como Less than 3 days OR Less than 10 edits OR (Less than 30 edits AND Less than 5 days).

UserTagsJS.modules.newuser = {
	namespace: 0, // [Optional] Edits must be made to articles to count
	computation: function(days, edits) {
		// If the expression is true then they will be marked as a new user
		// If the expression is false then they won't.
		// In this example, newuser is removed as soon as the user gets 30 edits, OR as soon as they have been present for 10 days, whichever happens first
		return days < 10 && edits < 30;
	}
};

El parámetro de espacio de nombres aquí es el mismo que la primera sintaxis. Tenga en cuenta que los parámetros days y edits no hacen nada en absoluto en este segundo formulario, solo se utilizan cuando usted no defina usted mismo una función de cálculo.

Personalizado[]

Activado de forma predeterminada: No
Grupo/etiqueta asociado: Según lo especificado por usted
Funciona con usuarios anónimos:

Este módulo le permite adjuntar sus etiquetas personalizadas a los usuarios. Las etiquetas personalizadas son las que se le mostró cómo crear en la sección Configuración principal. También puede adjuntar cualquier grupo integrado si lo desea; es completamente aceptable agregar el grupo inactive a un usuario como un grupo personalizado si desea hacer eso (esto es equivalente a una lista "desaparecida"). También puede hacer cosas raras como agregar el grupo founder o bureaucrat a un usuario, en realidad no es ninguna de esas cosas. Este módulo es ligeramente complejo de configurar, asigna nombres de usuario a matrices de grupos:

UserTagsJS.modules.custom = {
	'UserName 1': ['montheditor', 'featured'], // Add Editor of the Month + Featured
	'UserName 2': ['featured'], // Add featured
	'UserName 3': ['featured', 'templates'], // Add featured + templates guru
	'UserName 4': ['inactive'] // Always inactive
};

Tenga en cuenta que el orden de los grupos en las listas aquí no tiene ningún efecto sobre cómo se muestran los grupos en la pantalla, solo importa el parámetro order de la etiqueta asociada.

Filtro de usuario[]

Habilitado de forma predeterminada: No
Grupo/etiqueta asociado: N/A, los elimina, no agrega
Funciona con usuarios anónimos:

Este módulo' elimina grupos de ciertos usuarios específicos, por ejemplo, si desea eliminar el grupo founder de alguien, o si habilita el inactive pero no desea que un usuario en particular se muestre como inactivo incluso cuando lo está. El formato es idéntico al custom anterior, excepto que el efecto es el contrario:

UserTagsJS.modules.userfilter = {
	'UserName 1': ['inactive'], // User is *never* inactive
	'UserName 2': ['founder'], // Remove the founder group
	'UserName 3': ['nonuser', 'newuser', 'inactive']
};

Meta filtro[]

Habilitado de forma predeterminada:
Valor predeterminado: { sysop: ['bureaucrat', 'founder'], bureaucrat: ['founder'] }
Grupo/etiqueta asociado: N/A, los elimina, no agrega
Funciona con usuarios anónimos:

El meta-filtro es una versión más poderosa del filtro de usuario, en lugar de operar en nombres de usuario, opera en grupos. Por lo demás, el formato es similar, pero el efecto es mucho más impresionante:

UserTagsJS.modules.metafilter = {
	'inactive': ['sysop', 'bureaucrat'], // Remove inactive from all bureaucrats and sysops
	'sysop': ['bureaucrat'], // Remove "Admin" tag from bureaucrats
	// Remove Discussions moderator from admins as well as users who have BOTH patroller AND rollback
	'threadmoderator': ['sysop', ['patroller', 'rollback']]
};

Implode (Combinar)[]

Activado de forma predeterminada:No
Grupo/etiqueta asociado: Según lo especificado por usted
Funciona con usuarios anónimos:

Este módulo le permite detectar una combinación particular de grupos de usuarios y fusionarlos en un solo grupo. La idea es permitirle crear "metagrupos" como combinar bureaucrat y inactive para obtener "inactive-bureaucrat", o combinar threadmoderator y patroller para obtener "half-admin" o cualquier otra cosa que desee.

UserTagsJS.modules.implode = {
	'inactive-bureaucrat': ['bureaucrat', 'inactive'], // Adds 'inactive-bureaucrat' BUT also removes bureaucrat and inactive.
                                                           // i.e. Replaces bureaucrat and inactive with 'inactive-bureaucrat'
	'inactive-sysop': ['sysop', 'inactive'],
	'half-sysop': ['threadmoderator', 'patroller', 'rollback']
};

Como puede ver, el formato es básicamente el mismo que el meta-filtro anterior, excepto que hace lo contrario.

Explotar[]

Activado de forma predeterminada: No
Grupo/etiqueta asociado: Según lo especificado por usted
Funciona con usuarios anónimos:

Este módulo es el mismo que implode anterior, excepto sin la parte de combinación. Es decir, los grupos que utiliza no se eliminarán.

UserTagsJS.modules.explode = {
	'vandal-patrol': ['rollback', 'patroller'] // Adds 'vandal-patrol' group BUT does NOT remove rollback or patroller
};

Ocultar cuando está bloqueado[]

Habilitado por defecto: FORZADO SIEMPRE
Grupo/etiqueta asociado: N/A, los elimina, no agrega
Funciona con usuarios anónimos:

Este módulo elimina todos los grupos de los usuarios que están bloqueados, excepto el grupo blocked obviamente. Este módulo está habilitado a la fuerza a menos que lo desactive explícitamente. Por lo general, querrá dejar esto activado, ya que evitará que los usuarios bloqueados se marquen como inactivos o como un "nuevo editor" si no han cumplido con el número mínimo de ediciones antes de que fueran prohibidos.

UserTagsJS.modules.stopblocked = false; // Manually turn off

¿Está bloqueado?[]

Habilitado por defecto
Grupo/etiqueta asociado: N/A, los quita, no agrega
Funciona con usuarios anónimos:

Este módulo determina si un usuario está bloqueado o no.

UserTagsJS.modules.isblocked = false; // Turn off in Oasis (true (on) by default);

Etiquetas de Oasis[]

Este módulo existe internamente y no es configurable por el usuario. Aquí solo se indica para explicar el comportamiento del guión.

La función de este módulo es leer las etiquetas Oasis (generadas por Fandom) de la página e interpretar lo que significan (aquí es donde 'bloqueado' y los grupos predeterminados como 'sysop', 'staff', 'soap', etc vienen en Oasis). También recupera automáticamente los user-identity-box-group- mensajes para su conveniencia cuando se refiere a construido en grupos con el módulo custom y así sucesivamente.

Ejemplo[]

// Core configuration. We add 2 custom tags and change what the built-in sysop tag says.
window.UserTagsJS = {
	modules: {},
	tags: {
		hello: { m: 'Male', f:'Female', u: 'No Gender Set', order: -1/0, link:'https://en.wikipedia.org/wiki/Gender' },
		muckraker: 'Muckraker',
		sysop: { u:'Addermin', link:'Project:Administrators' }, // Change "Administrator" to "Addermin"
		'mini-sysop': { u: 'Half Administrator', link:'Project:HalfAdmins' },
		'vandal-patrol': { u: 'Spamdal Janitor', link:'Project:Janitors' }
	}
};
// Add custom groups to several users
UserTagsJS.modules.custom = {
	'John Doe': ['muckraker', 'hello'],
	'Someone': ['hello'],
	'You': ['inactive'], // Force inactive group instead of relying on the inactive module
	'Other User': ['hello', 'muckraker']
};
UserTagsJS.modules.autoconfirmed = true;
UserTagsJS.modules.newuser = true;
UserTagsJS.modules.inactive = 35; // Inactive if no edits in 35 days
UserTagsJS.modules.mwGroups = ['bureaucrat']; // Add bureaucrat group to bureaucrats
UserTagsJS.modules.metafilter = {
	sysop: ['bureaucrat'], // Remove administrator group from bureaucrats
	hello: ['muckraker'], // Remove hello group from people with muckraker group
	'vandal-patrol': ['mini-sysop'] // Remove vandal-patrol from mini-sysops
};
UserTagsJS.modules.userfilter = {
	'John Smith': ['inactive'] // John Smith is never inactive, even when he is
};
UserTagsJS.modules.implode = {
	'mini-sysop': ['patroller', 'rollback', 'threadmoderator'] // Remove patroller, rollback and threadmoderator, if ALL 3 exist, and replace with 'mini-sysop'
};
UserTagsJS.modules.explode = {
	'vandal-patrol': ['patroller', 'rollback'] // Add 'vandal-patrol' to everyone who has BOTH patroller and rollback
};

Esto demuestra todos los módulos, no es particularmente práctico, pero es de esperar que tenga una idea básica de cómo usarlo. Usted crea sus etiquetas personalizadas dentro de la sección tags y luego agrega bloques de configuración separados para cada módulo que desea usar después. Solo necesita usar los módulos que desee, probablemente no quiera todos los que están aquí y definitivamente no desea usar esto tal como está.

Para un ejemplo más práctico, aquí está la configuración predeterminada que el script usa internamente cuando no configura uno usted mismo:

window.UserTagsJS = {
	modules: {},
	tags: {}
};
UserTagsJS.modules.inactive = 30;
UserTagsJS.modules.newuser = true;
UserTagsJS.modules.autoconfirmed = true;
UserTagsJS.modules.mwGroups = ['bureaucrat', 'threadmoderator', 'patroller', 'rollback', 'sysop', 'bot', 'bot-global'];
UserTagsJS.modules.metafilter = {
	sysop: ['bureaucrat', 'founder'],
	bureaucrat: ['founder'],
	threadmoderator: ['sysop', 'bureaucrat']
};

Tenga en cuenta que esta configuración predeterminada solo se utiliza cuando NO se proporcionan ajustes. Es muy recomendable que copie todo este bloque en su MediaWiki:Common.js y luego lo personalice desde allí, agregando y eliminando entradas de módulo adicionales y creando nuevas etiquetas según sea necesario.

Tutorial[]

Para un tutorial, le mostraré cómo crear las etiquetas que se muestran en la imagen a continuación:

UserBadges Example

Hay 3 etiquetas personalizadas en esta imagen, "JavaScript", "CSS" y "Plantillas", así como 2 grupos de MediaWiki: "sysop" y "bureaucrat". También tome nota del orden: la etiqueta "Administrador" está al principio, luego "Burócrata" y así sucesivamente.

Comenzaremos configurando el script y agregaremos los colores más tarde. El primer paso es crear los grupos y etiquetas personalizados:

window.UserTagsJS = {
	modules: {},
	tags: {
		jshelper: { u: 'JavaScript' },
		csshelper: { u: 'CSS' },
		templatehelper: { u: 'Templates' }
	}
};

Razonablemente sencillo, los nombres de grupo que elegí son arbitrarios, puede usar cualquier nombre en inglés simple que desee (letras A-Z a-z 0-9), aunque debe recordar que es sensible a mayúsculas y minúsculas si mezcla mayúsculas. Si intenta usar espacios o guiones, deberá envolver el nombre entre comillas para que funcione. Esto no es suficiente, también queremos que las etiquetas también tengan un orden determinado, por lo que tendremos que agregar parámetros de orden:

window.UserTagsJS = {
	modules: {},
	tags: {
		jshelper: { u: 'JavaScript', order: 100 },
		csshelper: { u: 'CSS', order: 101 },
		templatehelper: { u: 'Templates', order: 102 },
		bureaucrat: { order: 1 } // Normal order is 0
	}
};

Esto colocará todas las etiquetas en el orden que se muestra en la imagen, notará que también agregué una etiqueta "parcial" para el grupo bureaucrat, esto se debe a que bureaucrat es un grupo integrado, por lo que ya tiene traducciones de texto que no necesito cambiar. No necesito hacer nada por el grupo de sysop ya que su orden por defecto es cero como todos los grupos de MediaWiki. Recuerde que las etiquetas están ordenadas por sus valores de order dados desde el más pequeño (inicio) hasta el más grande (final). Los números que elegí son arbitrarios, en realidad no importan siempre que cada etiqueta tenga un número diferente; Las etiquetas que tienen el mismo número de order se ordenarán aleatoriamente [estarán en el lugar correcto en relación con las otras etiquetas con valores de order "diferentes", pero aleatorios con respecto a las etiquetas que comparten el mismo order]. También hay varios números específicos que pueden resultarle útiles:

Número Importancia
0 Las etiquetas con este valor generalmente estarán cerca del inicio. Todos las etiquetas de grupo de MediaWiki comparten este valor por defecto. Recuerde que las etiquetas que comparten el mismo orden se organizarán aleatoriamente entre sí.
1e100 10 100. Este es el valor predeterminado para las etiquetas, obviamente es bastante grande, por lo que las etiquetas desordenadas generalmente terminarán al final, excepto las etiquetas de los grupos newuser/nonuser/notautoconfirmed que tienen 10 101 como su orden.
1/0 Infinito positivo. Este es el valor más grande posible. Cualquier etiqueta con este valor estará siempre al final absoluto. inactive usa este valor por defecto.
-1/0 Infinito negativo. Este es el valor más pequeño posible. Las etiquetas con este valor estarán al principio, excepto las etiquetas de la lista negra.

Ahora que tenemos nuestros grupos y etiquetas configurados correctamente, podemos pasar a "usarlos" realmente. Para usar nuestros grupos/etiquetas personalizados, obviamente necesitamos usar el módulo personalizado, así que lo configuraremos ahora:

UserTagsJS.modules.custom = {
	'Lunarity': ['csshelper', 'templatehelper', 'jshelper'] // NOTE: order of list here does NOT matter
};

Si ha leído la descripción del módulo personalizado, puede ver que esto agrega 3 grupos al usuario seleccionado. No es muy difícil, si quisiéramos agregar grupos a varios usuarios, entonces podríamos numerar más de ellos.

Estamos a mitad de camino ahora, solo necesitamos agregar las etiquetas Bureaucrat y Admin. Para hacer eso, usaremos el módulo Grupos de MediaWiki. Grupos de MediaWiki solicita al servidor los grupos de usuarios automáticamente para que no tengamos que completar manualmente los grupos de cada usuario en las listas personalizadas, lo que sería una tediosa pérdida de tiempo.

UserTagsJS.modules.mwGroups = ['bureaucrat', 'sysop'];

Realmente bastante simple. El script ahora le pedirá al servidor la pertenencia a grupos del usuario y agregará automáticamente los grupos "bureaucrat" y "sysop" si el servidor dice que el usuario está en ellos. [También recupera implícitamente las traducciones de texto para las etiquetas bureaucrat y sysop del servidor, de aquí es de donde proviene el texto interno predeterminado]

Finalmente, necesitamos configurar los colores para que coincidan con lo que vemos en la imagen. Para hacer eso, crearemos un par de reglas CSS personalizadas en MediaWiki:Common.css. Cada etiqueta de la interfaz de usuario tiene una clase CSS basada en el grupo que la generó; por ejemplo, la etiqueta "Bureaucrat" tiene una clase CSS usergroup-bureaucrat. Para nuestras etiquetas personalizadas, las clases CSS serán usergroup-jshelper, usergroup-csshelper, usergroup-templatehelper.

.tag.usergroup-jshelper {
	background-color: #720 !important;
}
.tag.usergroup-csshelper {
	background-color: green !important;
}
.tag.usergroup-templatehelper {
	background-color: yellow !important;
	color: black !important;
}

Y hemos terminado.

El JavaScript final en MediaWiki:Common.js se ve así:

window.UserTagsJS = {
	modules: {},
	tags: {
		jshelper: { u: 'JavaScript', order: 100 },
		csshelper: { u: 'CSS', order: 101 },
		templatehelper: { u: 'Templates', order: 102 },
		bureaucrat: { order: 1 }
	}
};
UserTagsJS.modules.custom = {
	'Lunarity': ['csshelper', 'templatehelper', 'jshelper'] // NOTE: order of list here does NOT matter
};
UserTagsJS.modules.mwGroups = ['bureaucrat', 'sysop'];

Por supuesto, probablemente también desee habilitar Inactive Users y varios otros módulos.

Rediseño de la cabecera de Oasis[]

UserTags CSS Example

La imagen de arriba utilizó la siguiente configuración:

window.UserTagsJS = {
	modules: {},
	tags: {
		a: { u: 'Test Tag 1', order:1 },
		b: { u: 'Test Tag 2', order:2 },
		c: { u: 'Test Tag 3', order:3 },
		d: { u: 'Test Tag 4', order:4 },
		e: { u: 'Test Tag 5', order:5 }
	},
	oasisPlaceBefore: '> h1'
};
UserTagsJS.modules.custom = {
	'Lunarity': ['a', 'b', 'c', 'd', 'e', 'inactive']
};

La apariencia se formó utilizando las siguientes reglas CSS:

.tag-container {
	display: block;
	background-image: url("https://images.wikia.nocookie.net/railgunscript/images/e/e8/Railgun_Top_Bar.png");
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	border-radius: 5px 5px 0 0;
}
.tag-container > .tag {
	background: rgba(0,0,0,0.6) !important;
}
.UserProfileMasthead .masthead-info hgroup {
	padding-top: 20px;
	background: rgba(32,64,150,0.66);
	background-image: linear-gradient(to top left, rgba(0,0,0,0.5) 0%, rgba(140,140,141,0.8) 100%);
}
.UserProfileMasthead .masthead-info {
	background: url("https://images.wikia.com/railgunscript/images/c/cb/Seamless-space.jpg") 0 20% black;
	color: white;
}
.UserProfileMasthead .tally {
	border-radius: 10px;
	background: rgba(0,0,0,0.5);
	padding: 3px 1em;
}
.UserProfileMasthead .masthead-info-lower:before {
	border-color: rgba(0,0,0,0.7) rgba(0,0,0,0.7) transparent transparent;
}
#WikiaUserPagesHeader {
	background-image: linear-gradient(to bottom, white 0%, #888 25%, black 75%);
}

Lista completa de grupos[]

Esta es una lista de todos los grupos integrados como referencia si desea cambiar el texto o evitar elegir accidentalmente un nombre ya usado para un grupo personalizado:

  • inactive
  • nonuser
  • newuser
  • notautoconfirmed
  • founder
  • staff
  • soap
  • authenticated
  • patroller
  • rollback
  • sysop
  • bureaucrat
  • bot-global

También se sabe que existen los siguientes grupos de MediaWiki, por lo que probablemente también quieras evitarlos a menos que intentes cambiar intencionalmente lo que las etiquetas dicen de ellos:

  • autoconfirmed
  • emailconfirmed
  • user
  • bot
  • checkuser
  • util

Tenga en cuenta que todos los grupos en esta segunda lista no tienen texto predeterminado a menos que tenga el módulo mwGroups configurado para buscarlos. El módulo de Grupos de MediaWiki descargará el texto de la etiqueta "a pedido" únicamente; de lo contrario, solo estará disponible el texto predeterminado para los grupos de la primera lista.

Limitaciones[]

Algunas etiquetas generadas por Fandom están protegidas, los siguientes grupos no se pueden agregar ni eliminar de ningún usuario.

  • staff — Staff de Fandom
  • soap — Spam Obliteration and Prevention
  • authenticated — Cuentas de relaciones públicas oficiales para empresas

Las etiquetas de estos grupos siempre se conservarán y siempre se dejarán al principio de la fila; sin embargo, usted puede convertir las etiquetas para estos grupos en enlaces y agregarles texto flotante como de costumbre, solo se restringe el cambio de texto y el orden.

Todas las demás etiquetas generadas por Fandom como "Fundador", "Admin", "Bloqueado", etc. pueden manipularse normalmente.

Para cambiar el texto de la cara en las etiquetas de los grupos protegidos anteriores, puede editar los mensajes de MediaWiki en el servidor que contienen los datos de traducción de texto para ellos. Estos mensajes se pueden encontrar aquí:

Preste especial atención y utilice el sentido común al editarlos; existen para hacer que el Staff y los miembros de SOAP sean fáciles de encontrar y reconocer, cambiar lo que dicen las etiquetas hará que sea más difícil y confuso para las personas que no están familiarizadas con el wiki.

NOTA: UserTags tiene un caché interno, puede tomar hasta 1 hora para que aparezcan los cambios en los grupos de identidad anteriores. También puede haber fallas como hacer que la etiqueta Staff sea un enlace que no funcione en absoluto hasta que se purgue la caché. La caché está en localStorage, puede forzar su eliminación borrando sus cookies; aunque eso no se recomienda

Advertisement