Utilisatrice:Danÿa/test.js
Apparence
Remarque: après avoir sauvegardé, vous devez vider le cache de votre navigateur pour que les changements prennent effet. Mozilla, cliquez sur Actualiser (ou ctrl-r). Internet Explorer / Opera: ctrl-f5. Safari: cmd-r. Konqueror ctrl-r.
// Création d'une page de flexions en français depuis le lien rouge dans la page principale
//<nowiki>
mw.loader.load("//fr.wiktionary.org/wiki/MediaWiki:Gadget-CommonWikt.js?action=raw&ctype=text/javascript");
// activation du gadget dans l'espace principal
//if ( mw.config.get('wgNamespaceNumber') === 0 )
CreerFlexionsIt_ChangerLiensRouges();
// création de liens vers le gadget en remplaçant les liens rouges
// dans les infobox ayant la classe flextable-it-mfsp
function CreerFlexionsIt_ChangerLiensRouges()
{
var genre_pagename;
// genre du mot de la page courante ? On cherche le mot en gras dans la boite de flexions
var flextable_vedette = $('.flextable-it-mfsp .selflink').length;
console.log("flextable_vedette:", flextable_vedette)
if ( flextable_vedette && $('.flextable-it-mfsp .selflink').first().parents('.flextable-it-m').length ) {
genre_pagename = 'm';
} else if ( flextable_vedette && $('.flextable-it-mfsp .selflink').first().parents('.flextable-it-f').length ) {
genre_pagename = 'f';
}
console.log("genre_pagename:", genre_pagename);
$(".flextable-it-mfsp .new").each(function() {
var flex = $(this).text();
// Une boite de flexions pour noms communs contient deux lemmes différents :
// celui au masculin et au féminin : on ne colore dans ce cas que les formes
// du genre correspondant au nom de la page
var isNomCommun = false;
var typeDeMot = $(this).parents('.flextable-it-mfsp').prevAll('h3').first()
.find('.titredef').text();
console.log("typeDeMot:", typeDeMot);
if ( typeDeMot == 'Nom commun' || typeDeMot == 'Locution nominale' ) {
isNomCommun = true;
console.log("nom commun");
}
// genre du mot en lien rouge ?
var genre_lien_rouge;
if ( $(this).parents('.flextable-it-m').length ) {
genre_lien_rouge = 'm';
} else if ( $(this).parents('.flextable-it-f').length ) {
genre_lien_rouge = 'f';
}
console.log("genre lien rouge:", genre_lien_rouge);
// On ne surligne pas les liens qui ne sont pas des flexions du mot courant
// genre_lien_rouge est undefined dans le cas de fr-rég, où le genre n'est pas indiqué dans le tableau de flexions
if (isNomCommun && (genre_lien_rouge != genre_pagename && genre_lien_rouge !== undefined)) {
console.log("arrivederci");
return;
}
// sinon on surligne
$(this).css('background-color','#00ff00');
$(this).prop('title', 'Cliquez pour créer « ' + flex + ' » avec le gadget');
$(this).click(function(e) {
// l'utilisateur a cliqué sur le lien surligné, on empêche le navigateur de le suivre
e.preventDefault();
// on appelle la fonction de création de la page de flexion
CreerFlexionsIt_CreerFlexion1( flex.replace(/ /g, ' ') );
});
});
}
// mot concerné
var CreerFlexionsIt_Mot = '';
// nom flexion
var CreerFlexionsIt_Flexion = '';
function CreerFlexionsIt_CreerFlexion1(flx)
{
console.log("CreerFlexionsIt_CreerFlexion1");
// on sauve les valeurs concernées
CreerFlexionsIt_Mot = mw.config.get('wgPageName').replace(/_/g," ");
CreerFlexionsIt_Flexion = flx;
// construction et appel de la requête pour obtenir le contenu de l'article
var urlMot = mw.config.get('wgServer') + mw.config.get('wgScript')
+ '?title=' + encodeURIComponent(CreerFlexionsIt_Mot);
CommonWikt_ajax.http({
url: urlMot + '&action=raw',
onSuccess: CreerFlexionsIt_CreerFlexion2
});
}
function CreerFlexionsIt_CreerFlexion2(Req, data)
{
console.log('CreerFlexionsIt_CreerFlexion2');
}
//</nowiki>