Manual:Forzar previsualización
Forzar previsualización es código JavaScript que impide que determinadas personas o grupos puedan guardar los cambios realizados en una página del wiki sin previsualizarla antes al menos una vez.
Para usar este código, insértalo en la página MediaWiki:Common.js de tu wiki.
Ten en cuenta que este método no es del todo fiable. Si un usuario desactiva la ejecución de JavaScript en su navegador, el código no llegará a ejecutarse y por tanto no podrá obligarle a usar la previsualización. Si quieres asegurarte del cumplimiento de esta norma, deberías considerar Extensión:ForcePreview .
NOTE: some of these scripts are outdated and use addOnloadHook
that is deprecated.
For MediaWiki 1.23 or newer
// Force Preview and Edit-Summary - Start
if (mw.config.get("wgAction") === "edit")
$.when(mw.loader.using("user.options"), $.ready).then(function () {
var $wpSave = $("#wpSave"),
$wpPreview = $("#wpPreview"),
saveVal = $wpSave.val(),
classNames = "oo-ui-widget-enabled oo-ui-flaggedElement-progressive oo-ui-flaggedElement-primary";
if (!mw.user.options.get("forceeditsummary") || mw.user.options.get("previewonfirst"))
mw.loader.using("mediawiki.api", function () {
new mw.Api().saveOptions({forceeditsummary: 1, previewonfirst: 0});
});
if (!$("#wikiPreview,#wikiDiff").is(":visible") && $wpSave.length && $wpPreview.length) {
$wpSave.prop("disabled", true)
.val("Save page (use preview first)")
.parent().removeClass(classNames).addClass("oo-ui-widget-disabled");
$wpPreview.one("click", function (e) { // re-enable
$wpSave.prop("disabled", false)
.val(saveVal)
.parent().removeClass("oo-ui-widget-disabled").addClass(classNames);
}).parent().addClass(classNames);
}
});
// Force Preview and Edit-Summary - End
Para MediaWiki 1.17 o posteriores
Not right working with LivePreview (v.1.17) and OOUI (v.1.23).
// -------------------------------------------------------------------------------
// Forzar previsualización - Inicio de código JavaScript
//
// Para permitir que algún grupo pueda saltarse esta norma,
// introduce el nombre del grupo en la matriz permittedGroups.
// Ejemplos:
// var permittedGroups = []; // obligar a todo el mundo
// var permittedGroups = [ "user"]; // no obligar a los usuarios identificados
// var permittedGroups = [ "sysop", "bureaucrat"]; // no obligar a los administradores y burócratas
// -------------------------------------------------------------------------------
var permittedGroups = [];
function forcePreview() {
if ( mw.config.get( "wgAction" ) !== "edit" ) return;
if ( mw.config.get( "wgUserGroups" ).filter(function(group) {
return permittedGroups.indexOf(group) > -1;
}).length ) return;
var saveButton = document.getElementById( "wpSave" );
if ( !saveButton ) return;
saveButton.disabled = true;
saveButton.value = "Save page (use preview first)";
saveButton.style.fontWeight = "normal";
document.getElementById("wpPreview").style.fontWeight = "bold";
}
jQuery(document).ready( forcePreview );
// -----------------------------------------------------
// Forzar previsualización - Fin de código JavaScript
// -----------------------------------------------------
Para MediaWiki 1.14 o posteriores
El siguiente código te permite decidir a quién se le obliga a usar la previsualización. Te permite definir uno o más grupos que no se verán afectados por esta norma y podrán guardar directamente. Para dar este permiso a un grupo de usuarios, añade el nombre del grupo a la matriz permittedGroups tal como se indica en los comentarios del código JavaScript.
// -------------------------------------------------------------------------------
// Forzar previsualización - Inicio de código JavaScript
//
// Para permitir que algún grupo pueda saltarse esta norma,
// introduce el nombre del grupo en la matriz permittedGroups.
// Ejemplos:
// var permittedGroups = []; // obligar a todo el mundo
// var permittedGroups = [ "user"]; // no obligar a los usuarios identificados
// var permittedGroups = [ "sysop", "bureaucrat"]; // no obligar a los administradores y burócratas
// -------------------------------------------------------------------------------
var permittedGroups = [];
function forcePreview()
{
if( wgAction !== "edit") return;
if( wgUserGroups === null) {
wgUserGroups = [];
}
if( wgUserGroups.filter(function(group) {
return permittedGroups.indexOf(group) > -1;
}).length ) {
return;
}
var saveButton = document.getElementById("wpSave");
if( !saveButton )
return;
saveButton.disabled = true;
saveButton.value = "Save page (use preview first)";
saveButton.style.fontWeight = "normal";
document.getElementById("wpPreview").style.fontWeight = "bold";
}
addOnloadHook(forcePreview);
// -----------------------------------------------------
// Forzar previsualización - Fin de código JavaScript
// -----------------------------------------------------
Versiones más antiguas
Los scripts mostrados a continuación están basados en el script de Marc Mongenet, de fr.wikipedia.org
.
Forzar previsualización usando wgUserGroups, requiere MW 1.10 o posteriores
function forcePreview() {
if (wgUserGroups === "user" || wgAction !== "edit") return;
saveButton = document.getElementById("wpSave");
if (!saveButton) return;
saveButton.disabled = true;
saveButton.value = "Save page (use preview first)";
saveButton.style.fontWeight = "normal";
document.getElementById("wpPreview").style.fontWeight = "bold";
}
addOnloadHook(forcePreview);
Si quieres indicar excepciones para ciertos grupos, simplemente cambia los signos == (IGUAL A) por != (DISTINTO DE).
if (wgUserGroups !== "user" || wgAction !== "edit") return;
Las opciones más comunes son "user", "bureaucrat", "sysop" y otras, dependiendo de tu configuración.
Forzar previsualización de Marc Mongenet, usando wgUserName, requiere MW > 1.6
/* Forzar previsualización para usuarios anónimos */
/* por Marc Mongenet, 2006, fr.wikipedia */
function forcePreview() {
if (wgUserName !== null || wgAction !== "edit") return;
saveButton = document.getElementById("wpSave");
if (!saveButton) return;
saveButton.disabled = true;
saveButton.value = "Save page (use preview first)";
saveButton.style.fontWeight = "normal";
document.getElementById("wpPreview").style.fontWeight = "bold";
}
addOnloadHook(forcePreview);
/* Fin de forcePreview */
Véase también
- Manual:Preguntas frecuentes
- Extensión:ForcePreview - Una extensión para MediaWiki que realiza la misma función pero que no puede saltarse desactivando el JavaScript.