« Utilisatrice:Vive la Rosière/vector.js » : différence entre les versions

Contenu supprimé Contenu ajouté
mAucun résumé des modifications
Aucun résumé des modifications
Ligne 258 :
mw.util.addPortletLink('p-tb', 'https://fr.wiktionary.org/w/index.php?title=Spécial%3ACentralAuth&target=', 'SUL', 'Lien vers SUL');
});
 
// Lien vers WikiData
mw.loader.using(['jquery.ui'], function () {
// Gadget activé uniquement sur les pages de l’espace principal (0).
if (mw.config.get("wgNamespaceNumber") === 0) {
let item = mw.config.get('wgRelevantPageName');
let variable = "l";
let limit = 10;
 
// Envoi d’une requête get asynchrone vers le serveur de requêtage de Wikidata
$.get(
// Requête HTTP
"https://query.wikidata.org/sparql",
// Données de la requête HTTP
{
// Requête SPARQL
"query": `
SELECT ?${variable} WHERE {
?${variable} a ontolex:LexicalEntry;
wikibase:lemma ?lemma . FILTER regex (?lemma, "^${item}$")
} ORDER BY ?${variable} LIMIT ${limit}`,
// Format des données du résultat
"format": "json",
},
// Fonction appelée à la réception de la réponse du serveur
function (result) {
// On teste si la requête SPARQL a retourné un résultat
if (result.results.bindings.length) {
let list, timeless = false;
 
// Timeless
let timelessSection = $("#p-pagemisc");
if (timelessSection.length) {
let section = $(`
<div role="navigation" class="mw-portlet" id="p-lexemes" aria-labelledby="p-lexemes-label">
<h3 id="p-lexemes-label" lang="fr" dir="ltr">Lexèmes</h3>
<div class="mw-portlet-body">
<ul lang="fr" dir="ltr">
</ul>
</div>
</div>`);
timelessSection.after(section);
list = $("#p-lexemes ul");
timeless = true;
} // Autres
else if ($("#p-tb").length) {
list = $('#p-tb ul');
}
 
// On parcours les lexèmes
for (let item of result.results.bindings) {
let href = item[variable].value;
let lexeme = href.substring(href.lastIndexOf("/") + 1);
let id = `t-lexeme-${lexeme}`;
let text;
 
if (timeless) {
text = `<span>${lexeme}</span>`;
}
else {
text = `Lexème (${lexeme})`;
}
if (list) {
// Ajout de l’item dans la liste du menu
list.append(`<li><a id="${id}" href="${href}">${text}</a></li>`);
}
}
}
},
// Type des données retournées par le serveur
"json"
);
}
});
 
// </nowiki>