« MediaWiki:Gadget-HotCatsMulti.js » : différence entre les versions
Contenu supprimé Contenu ajouté
m amélioration code de lancement |
Correction problème avec requêtes synchrones ; sauvegarde messages système et alias de DEFAULTSORT dans cookie |
||
Ligne 210 :
///////////////////////// REQUÊTES PRÉLIMINAIRES ////////////////////////////////////////////////////////
// RÉCUPÉRATION ALIAS DE LA CLEF DE TRI GLOBALE ET DES MESSAGES SYSTEME
// Mise à jour du cookie
window.hotcat_SetCookie = function(cookieName, cookieValue) {
var now = new Date();
var nextYear = new Date(now.getTime() + 1000 * 60 * 60 * 24 * 365 );
return jQuery.cookie(cookieName, cookieValue, {expires:nextYear, path:"/"});
}
// Interrogation du cookie
window.hotcat_GetCookie = function(cookieName) {
return jQuery.cookie(cookieName);
}
window.
var meta = [];
var otherparams = {};
var missingmessages = [];
var CookieMessages = hotcat_GetCookie("hotcatmessages");
if(CookieMessages){
CookieMessages = CookieMessages.split("||");
for(var Message in hotcat_text_SystemMessage){
var found = false;
for(var a=0,l=CookieMessages.length;a<l;a++){
if(CookieMessages[a].indexOf(Message+"::") !== 0) continue;
found = true;
hotcat_text_SystemMessage[Message] = CookieMessages[a].split("::")[1];
}
if(!found) missingmessages.push(Message);
}
}else{
for(var Message in hotcat_text_SystemMessage){
missingmessages.push(Message);
}
}
if(missingmessages.length > 0){
meta.push("allmessages");
otherparams["ammessages"] = missingmessages.join("|");
var CookieDefaultsortAliases = hotcat_GetCookie("hotcatdefaultsortaliases");
if(CookieDefaultsortAliases){
hotcat_DefaultsortAliases = CookieDefaultsortAliases.split("||");
}
if(hotcat_DefaultsortAliases.length === 0){
meta.push("siteinfo");
otherparams["siprop"] = "magicwords";
}
if(meta.length === 0){
hotcat_getOldPageContent();
return;
}
var URL = mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/api.php?format=xml&action=query&meta=' + meta.join("|");
for(var paramname in otherparams){
URL += "&" + paramname + "=" + otherparams[paramname];
}
hotcat_ajax.http({url : URL,
onSuccess : hotcat_receiveDefaultsortAliasesAndMessages,
nextcallback : hotcat_getOldPageContent
});
};
window.
var MagicWords = Response.getElementsByTagName('magicword');
for(var a=0;a<MagicWords.length;a++){
var MagicWordName = MagicWords[a].getAttribute('name');
if(MagicWordName=="defaultsort"){
var Aliases = MagicWords[a].getElementsByTagName('alias');
for(var b=0;b<Aliases.length;b++){
var ThisAlias = Aliases[b].firstChild.nodeValue;
ThisAlias = ThisAlias.replace(/:/g, "");
if(hotcat_DefaultsortAliases.indexOf(ThisAlias)==-1) hotcat_DefaultsortAliases.push(ThisAlias);
}
}
}
hotcat_SetCookie("hotcatdefaultsortaliases", hotcat_DefaultsortAliases.join("||"));
}
var Messages = Response.getElementsByTagName('message');
if(Messages.length > 0){
var cookievalue = [];
for(var a=0;a<Messages.length;a++){
var MessageName = Messages[a].getAttribute('name');
var MessageContent = (Messages[a].firstChild ? Messages[a].firstChild.nodeValue : "");
for(var Message in hotcat_text_SystemMessage){
if(MessageName == Message){
hotcat_text_SystemMessage[Message] = MessageContent;
cookievalue.push(Message+"::"+MessageContent);
}
}
}
hotcat_SetCookie("hotcatmessages", cookievalue.join("||"));
}
if(typeof(data.nextcallback) === "function") data.nextcallback(data);
};
// RÉCUPÉRATION DU CONTENU ACTUEL DE LA PAGE (asynchrone ou synchrone)
window.
var URL = mw.config.get('wgServer') + mw.config.get('wgScript') + '?title=' + encodeURIComponent(mw.config.get('wgPageName')) + '&action=raw&oldid=' + mw.config.get('wgCurRevisionId');
hotcat_ajax.http({url : URL, onSuccess : hotcat_receiveOldPageContent });
};
window.
};
Ligne 338 ⟶ 379 :
SectionNumber = parseInt(SectionNumber);
hotcat_Multi_IsSection = SectionNumber;
var SectionRegExp = new RegExp("[^=\\|\\{\n]*={1,6}[^=\n]+={1,6}\n", "ig");
var Sections = hotcat_OldPageContent.match(SectionRegExp);
Ligne 1 015 ⟶ 1 055 :
window.hotcat_defaultSort_getOld = function(ID){
var OldDefaultSpan = document.getElementById(ID);
if(!OldDefaultSpan) return;
Ligne 1 037 ⟶ 1 074 :
window.hotcat_defaultSort_getOneOld = function(TargetCategory){
var Page = hotcat_OldPageContent;
var Key = "";
Ligne 1 773 ⟶ 1 809 :
}
if(!hotcat_CanEdit) return;
// Définition styles CSS
mw.loader.addStyleTag("" +
Ligne 1 799 ⟶ 1 829 :
// Lancement
mw.loader.implement( "HotCatsModules", HCMmodules, {}, {}, {} );
mw.loader.using("HotCatsModules", function(){ $(
}
|