Utilisateur:Dr Brains/PageManager.js
Note : après avoir enregistré la page, vous devrez forcer le rechargement complet du cache de votre navigateur pour voir les changements.
Mozilla / Firefox / Konqueror / Safari : maintenez la touche Majuscule (Shift) en cliquant sur le bouton Actualiser (Reload) ou pressez Maj-Ctrl-R (Cmd-R sur Apple Mac) ;
Chrome / Internet Explorer / Opera : maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl-F5.// {{Projet:JavaScript/Script}}
///////////////////////////////// STYLES ///////////////////////
if(typeof(SkinManagerCSSLOaded)=="undefined"){
importStylesheetURI('http://fr.wikipedia.org/w/index.php?action=raw&ctype=text/css&title=User:Dr Brains/SkinManager.css');
var SkinManagerCSSLOaded = true;
}
/* **************************************** SKIN MANAGER **************************************** */
$(GetSkinManager);
function GetSkinManager(){
var SkinManagerlinkDiv = document.getElementById('Skin_Manager_Div');
if(!SkinManagerlinkDiv){
SkinManagerlinkDiv = document.createElement("div");
SkinManagerlinkDiv.className = "Skin_Manager";
SkinManagerlinkDiv.id = "Skin_Manager_Div";
var sitenoticeDiv = document.getElementById("siteNotice");
if(!sitenoticeDiv) return;
sitenoticeDiv.parentNode.insertBefore(SkinManagerlinkDiv,sitenoticeDiv);
var LiensManager = document.createElement('ul');
LiensManager.id = "Skin_Manager_Ul";
SkinManagerlinkDiv.appendChild(LiensManager);
}
PageManager();
}
/* **************************************** Lien **************************************** */
var PageManager_Text_Link = "Informations";
var PageManager_Title_Link = "Obtenir des informations sur la page courante";
function PageManager(){
if(mw.config.get('wgNamespaceNumber')<0) return;
addLinkToSkinManager();
addLinkToSkinManager( PageManager_Text_Link , 'javascript:PageManager_GetOptions()', PageManager_Title_Link);
}
/* **************************************** Menu **************************************** */
function PageManager_GetOptions(){
var OldDiv = document.getElementById("PageManager_Div");
if(OldDiv){
OldDiv.parentNode.removeChild(OldDiv);
return;
}
var PageManagerDiv = document.createElement('div');
PageManagerDiv.id = "PageManager_Div";
var HR1 = document.createElement('hr');
PageManagerDiv.appendChild(HR1);
var TopDiv = document.createElement('div');
TopDiv.id = "PageManager_Top";
PageManagerDiv.appendChild(TopDiv);
var SelectDiv = document.createElement('span');
SelectDiv.id = "PageManager_SelectDiv";
TopDiv.appendChild(SelectDiv);
var BasicInfoDiv = document.createElement('div');
BasicInfoDiv.id = "PageManager_Basic";
TopDiv.appendChild(BasicInfoDiv);
var HR2 = document.createElement('hr');
PageManagerDiv.appendChild(HR2);
var BottomDiv = document.createElement('div');
BottomDiv.id = "PageManager_Bottom";
PageManagerDiv.appendChild(BottomDiv);
var SkinManagerDiv = document.getElementById('Skin_Manager_Div');
if(SkinManagerDiv){
SkinManagerDiv.appendChild(PageManagerDiv);
PageManager_MakeOptions();
PageManager_Ajax_PageInfo();
}
}
/* **************************************** Options **************************************** */
var PageManager_Ajax_Options_Text = "Autres informations";
var PageManager_Ajax_Options = new Array();
var PageManager_Ajax_Functions = new Array();
function PageManager_MakeOptions(){
var SelectDiv = document.getElementById("PageManager_SelectDiv");
if(!SelectDiv) return;
var Select = document.createElement('select');
var FirstOption = document.createElement('option');
FirstOption.value = PageManager_Ajax_Options_Text;
FirstOption.appendChild(document.createTextNode(PageManager_Ajax_Options_Text));
FirstOption.disabled = "disabled";
FirstOption.selected = "selected";
Select.appendChild(FirstOption);
for(var a=0;a<PageManager_Ajax_Options.length;a++){
var Option = document.createElement('option');
Option.value = PageManager_Ajax_Options[a]
Option.appendChild(document.createTextNode(PageManager_Ajax_Options[a]));
if(PageManager_Ajax_Functions[a]){
Option.onclick = PageManager_Ajax_Functions[a];
}else{
Option.disabled = "disabled";
}
Select.appendChild(Option);
}
SelectDiv.appendChild(Select);
}
/* **************************************** API **************************************** */
var PageManager_APILimit = ( ((mw.config.get('wgUserGroups').indexOf("sysop")!=-1)||(mw.config.get('wgUserGroups').indexOf("bot")!=-1)) ? 4999 : 499);
///////////////////////////////// Page Info
var PageManager_Ajax_Text_Yes = "oui";
var PageManager_Ajax_Text_No = "non";
var PageManager_Ajax_Text_Namespace = "Espace de noms : ";
var PageManager_Ajax_Text_Url = "Adresse : ";
var PageManager_Ajax_Text_EditUrl = "Adresse d'édition : ";
var PageManager_Ajax_Text_Exist = "Cette page existe ? : ";
var PageManager_Ajax_Text_Redirect = "Cette page est une redirection ? : ";
var PageManager_Ajax_Text_Watched = "Vous suivez cette page ? : ";
var PageManager_Ajax_Text_Length = "Poids du wikitexte : ";
var PageManager_Ajax_Text_LengthUnit = " octets";
var PageManager_Ajax_Text_Date = "Dernière modification : ";
var PageManager_Ajax_Text_Oldid = "Oldid : ";
function PageManager_Ajax_PageInfo(Page){
if(!Page) Page = mw.config.get('wgPageName');
var AdresseRequete = mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/api.php?format=xml&action=query&prop=info&inprop='
+ 'protection|talkid|watched|subjectid|url'
+'&titles=' + Page.replace(/&/g, "%26");
var Requete = sajax_init_object();
Requete.open("GET", AdresseRequete, true);
Requete.onreadystatechange = function() {
if(Requete.readyState != 4) return;
var ObjetXML = Requete.responseXML;
if(!ObjetXML) return;
var Infos = ObjetXML.getElementsByTagName('page')[0];
var Exist = ( Infos.getAttribute("missing")=="" ? PageManager_Ajax_Text_No : PageManager_Ajax_Text_Yes );
var Redirect = ( Infos.getAttribute("redirect")=="" ? PageManager_Ajax_Text_Yes : PageManager_Ajax_Text_No );
var Watched = ( Infos.getAttribute("watched")=="" ? PageManager_Ajax_Text_Yes : PageManager_Ajax_Text_No );
var Ns = parseInt(Infos.getAttribute('ns'));
var URL = Infos.getAttribute('fullurl');
var EditURL = Infos.getAttribute('editurl');
var Length = parseInt(Infos.getAttribute('length'));
var Oldid = Infos.getAttribute('lastrevid');
var Touched = PageManager_ManageTimestamp(Infos.getAttribute('touched'));
var Result = new Array();
Result.push(PageManager_Ajax_Text_Namespace + mw.config.get('wgFormattedNamespaces')[Ns] + " ("+Ns+")");
Result.push(PageManager_Ajax_Text_Url + '<a href="'+URL+'">'+decodeURIComponent(URL)+'</a>');
Result.push(PageManager_Ajax_Text_EditUrl + '<a href="'+EditURL+'">'+decodeURIComponent(EditURL)+'</a>');
Result.push(PageManager_Ajax_Text_Exist + Exist);
Result.push(PageManager_Ajax_Text_Redirect + Redirect);
Result.push(PageManager_Ajax_Text_Watched + Watched);
if(Length) Result.push(PageManager_Ajax_Text_Length + Length + PageManager_Ajax_Text_LengthUnit);
if(Oldid) Result.push(PageManager_Ajax_Text_Oldid + '<a href="'+mw.config.get('wgScript')+'?title='+encodeURIComponent(Page)+'&diff=prev&oldid='+ Oldid+'">'+Oldid+'</a>');
if(Touched) Result.push(PageManager_Ajax_Text_Date + Touched );
var Ul = document.createElement('ul');
for(var a=0;a<Result.length;a++){
var Li = document.createElement('li');
Li.innerHTML = Result[a];
Ul.appendChild(Li);
}
var Div = document.getElementById("PageManager_Basic");
if(Div) Div.appendChild(Ul);
}
Requete.send(null);
}
///////////////////////////////// Historique
PageManager_Ajax_Options.push("Historique");
PageManager_Ajax_Functions.push(function (){ PageManager_Ajax_Revisions();});
var PageManager_Ajax_Text_FormatRevisions = "$PAGE ($DIFF) ($SIZE octets) – $USER ($TALKU|$CONTRIBS) — $BOT$MINOR « $COMMENT »";
var PageManager_Ajax_Revisions_Limit = 20;
function PageManager_Ajax_Revisions(RVStartID, NewRevisionLimit){
if(!RVStartID){
var OldDiv = document.getElementById("PageManager_Bottom");
if(OldDiv){
while(OldDiv.firstChild){ OldDiv.removeChild(OldDiv.firstChild);}
}
}
if(NewRevisionLimit) PageManager_Ajax_Revisions_Limit = NewRevisionLimit;
var Page = mw.config.get('wgPageName').replace(/_/g, " ");
if(!RVStartID) RVStartID = "";
var AdresseRequete = mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/api.php?format=xml&action=query&prop=revisions&rvlimit='+PageManager_Ajax_Revisions_Limit+'&rvprop='
+ 'ids|flags|timestamp|user|size|comment|parsedcomment|content|tags'
+'&titles=' + Page.replace(/&/g, "%26") + (RVStartID == "" ? "" : "&rvstartid=" + RVStartID);
var Requete = sajax_init_object();
Requete.open("GET", AdresseRequete, true);
Requete.onreadystatechange = function() {
if(Requete.readyState != 4) return;
var ObjetXML = Requete.responseXML;
if(!ObjetXML) return;
var OldLinks = document.getElementById("PM_Next");
if(OldLinks) OldLinks.parentNode.parentNode.removeChild(OldLinks.parentNode);
var Revisions = new Array();
var Infos = ObjetXML.getElementsByTagName('rev');
for(var a=0;a<Infos.length;a++){
var ThisInfo = Infos[a];
var User = ThisInfo.getAttribute("user");
var Minor = ( ThisInfo.getAttribute("minor")=="" ? "<b>m</b>" : "" );
var Bot = ( ThisInfo.getAttribute("bot")=="" ? "<b>b</b>" : "" );
var Comment = ( ThisInfo.getAttribute("comment") ? ThisInfo.getAttribute("comment") : "" );
var ParsedComment = ( ThisInfo.getAttribute("parsedcomment") ? PageManager_Parse(ThisInfo.getAttribute("parsedcomment"), true, true) : "" );
var Size = parseInt(ThisInfo.getAttribute('size'));
var TimeStamp = PageManager_ManageTimestamp(ThisInfo.getAttribute('timestamp'));
var Oldid = ThisInfo.getAttribute('revid');
var ThisRevision = PageManager_Ajax_Text_FormatRevisions;
ThisRevision = ThisRevision.split('$MINOR').join(Minor);
ThisRevision = ThisRevision.split('$BOT').join(Bot);
ThisRevision = ThisRevision.split('$DIFF').join(PageManager_ManagePageDiffLink(Page, Oldid, "prev", "diff"));
ThisRevision = ThisRevision.split('$PAGE').join(PageManager_ManagePageOldidLink(Page, Oldid, TimeStamp));
ThisRevision = ThisRevision.split('$SIZE').join(Size);
ThisRevision = ThisRevision.split('$USER').join(PageManager_ManageUserLink(User));
ThisRevision = ThisRevision.split('$TALKU').join(PageManager_ManageUserTalkLink(User, "D", "Discussion"));
ThisRevision = ThisRevision.split('$CONTRIBS').join(PageManager_ManageUserContribLink(User, "C", "Contributions"));
ThisRevision = ThisRevision.split('$COMMENT').join(ParsedComment);
Revisions.push(ThisRevision);
}
var RevisionContinue = ObjetXML.getElementsByTagName('query-continue')[0];
if(RevisionContinue){
var RevisionContinueID = RevisionContinue.getElementsByTagName('revisions')[0].getAttribute('rvstartid');
var AfterLink20 = '<a href="javascript:PageManager_Ajax_Revisions(\''+RevisionContinueID+'\', 20);" >20 révisions suivantes</a>';
var AfterLink50 = '<a "href="javascript:PageManager_Ajax_Revisions(\''+RevisionContinueID+'\', 50);" >50 révisions suivantes</a>';
var AfterLink100 = '<a "href="javascript:PageManager_Ajax_Revisions(\''+RevisionContinueID+'\', 100);" >100 révisions suivantes</a>';
Revisions.push('<h5 id="PM_Next">'+ AfterLink20 +' | '+ AfterLink50 +' | '+ AfterLink100 + '</h5>');
}
var Ul = document.createElement('ul');
for(var a=0;a<Revisions.length;a++){
var Li = document.createElement('li');
Li.innerHTML = Revisions[a];
Ul.appendChild(Li);
}
var Div = document.getElementById("PageManager_Bottom");
if(Div) Div.appendChild(Ul);
}
Requete.send(null);
}
///////////////////////////////// Pages liées
PageManager_Ajax_Options.push("Liens vers cette page");
PageManager_Ajax_Functions.push(function (){ PageManager_Ajax_BackLinks(false);});
PageManager_Ajax_Options.push("Redirections vers cette page");
PageManager_Ajax_Functions.push(function (){ PageManager_Ajax_BackLinks(true);});
var PageManager_Ajax_Text_FormatBackLinks = "$TITLE ; Espace de noms : $NS";
var PageManager_Ajax_BackLinks_Limit = 20;
function PageManager_Ajax_BackLinks(Redirect, BLStartID, NewBackLinksLimit){
if(!BLStartID){
var OldDiv = document.getElementById("PageManager_Bottom");
if(OldDiv){
while(OldDiv.firstChild){ OldDiv.removeChild(OldDiv.firstChild);}
}
}else{
BLStartID = BLStartID.replace(/ZAPPOSTROPHE/g, "'");
}
if(NewBackLinksLimit) PageManager_Ajax_BackLinks_Limit = NewBackLinksLimit ;
var Page = mw.config.get('wgPageName').replace(/_/g, " ");
if(!BLStartID) BLStartID = "";
var AdresseRequete = mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/api.php?format=xml&action=query&list=backlinks&bllimit='+PageManager_Ajax_BackLinks_Limit+ '&blfilterredir=nonredirects&blnamespace=&bltitle=' + Page.replace(/&/g, "%26") + (BLStartID == "" ? "" : "&blcontinue=" + BLStartID) ;
var Requete = sajax_init_object();
Requete.open("GET", AdresseRequete, true);
Requete.onreadystatechange = function() {
if(Requete.readyState != 4 ) return;
var ObjetXML = Requete.responseXML;
if(!ObjetXML) return;
var OldLinks = document.getElementById("PM_Next");
if(OldLinks) OldLinks.parentNode.parentNode.removeChild(OldLinks.parentNode);
var BackLinks = new Array();
if(Redirect){
var Infos = ObjetXML.getElementsByTagName('redirlinks');
for(var a=0;a<Infos.length;a++){
var ThisInfo = Infos[a].parentNode;
var NS = ThisInfo.getAttribute("ns");
var Title = ThisInfo.getAttribute("title");
var ThisBackLink = PageManager_Ajax_Text_FormatBackLinks;
ThisBackLink = ThisBackLink.split('$TITLE').join(PageManager_ManagePageLink(Title));
ThisBackLink = ThisBackLink.split('$NS').join( ( mw.config.get('wgFormattedNamespaces')[NS]=="" ? '(Principal)' :mw.config.get('wgFormattedNamespaces')[NS]) );
BackLinks.push(ThisBackLink);
}
}else{
var Infos = ObjetXML.getElementsByTagName('bl');
for(var a=0;a<Infos.length;a++){
var ThisInfo = Infos[a];
var NS = ThisInfo.getAttribute("ns");
var Title = ThisInfo.getAttribute("title");
var ThisBackLink = PageManager_Ajax_Text_FormatBackLinks;
ThisBackLink = ThisBackLink.split('$TITLE').join(PageManager_ManagePageLink(Title));
ThisBackLink = ThisBackLink.split('$NS').join(( mw.config.get('wgFormattedNamespaces')[NS]=="" ? '(Principal)' :mw.config.get('wgFormattedNamespaces')[NS]));
BackLinks.push(ThisBackLink);
}
}
var BackLinksContinue = ObjetXML.getElementsByTagName('query-continue')[0];
if(BackLinksContinue){
var BackLinksContinueID = BackLinksContinue.getElementsByTagName('backlinks')[0].getAttribute('blcontinue').replace(/'/g, "ZAPPOSTROPHE");
var AfterLink20 = '<a href="javascript:PageManager_Ajax_BackLinks('+Redirect+',\''+BackLinksContinueID+'\', 20);" >20 pages suivantes</a>';
var AfterLink50 = '<a "href="javascript:PageManager_Ajax_BackLinks('+Redirect+',\''+BackLinksContinueID+'\', 50);" >50 pages suivantes</a>';
var AfterLink100 = '<a "href="javascript:PageManager_Ajax_BackLinks('+Redirect+',\''+BackLinksContinueID+'\', 100);" >100 pages suivantes</a>';
BackLinks.push('<h5 id="PM_Next">'+ AfterLink20 +' | '+ AfterLink50 +' | '+ AfterLink100 + '</h5>');
}
if(!BackLinks[0]&& BLStartID=="") BackLinks[0] = "<h5>Aucune page ne renvoie vers "+PageManager_ManagePageLink(mw.config.get('wgPageName'))+"</h5>";
var Ul = document.createElement('ul');
for(var a=0;a<BackLinks.length;a++){
var Li = document.createElement('li');
Li.innerHTML = BackLinks[a];
Ul.appendChild(Li);
}
var Div = document.getElementById("PageManager_Bottom");
if(Div) Div.appendChild(Ul);
}
Requete.send(null);
}
///////////////////////////////// Inclusions
PageManager_Ajax_Options.push("Inclusions de cette page");
PageManager_Ajax_Functions.push(function (){ PageManager_Ajax_Embeddedin();});
var PageManager_Ajax_Text_FormatEmbeddedin = "$TITLE ; Espace de noms : $NS";
var PageManager_Ajax_Embeddedin_Limit = 20;
function PageManager_Ajax_Embeddedin(EMStartID, NewEmbeddedinLimit){
if(!EMStartID){
var OldDiv = document.getElementById("PageManager_Bottom");
if(OldDiv){
while(OldDiv.firstChild){ OldDiv.removeChild(OldDiv.firstChild);}
}
EMStartID = "";
}else{
EMStartID = EMStartID.replace(/ZAPPOSTROPHE/g, "'");
}
if(NewEmbeddedinLimit) PageManager_Ajax_Embeddedin_Limit = NewEmbeddedinLimit ;
var Page = mw.config.get('wgPageName').replace(/_/g, " ");
var AdresseRequete = mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/api.php?format=xml&action=query&list=embeddedin&eilimit='+PageManager_Ajax_Embeddedin_Limit+ '&einamespace=&eititle=' + Page.replace(/&/g, "%26") + (EMStartID == "" ? "" : "&eicontinue=" + EMStartID) ;
var Requete = sajax_init_object();
Requete.open("GET", AdresseRequete, true);
Requete.onreadystatechange = function() {
if(Requete.readyState != 4 ) return;
var ObjetXML = Requete.responseXML;
if(!ObjetXML) return;
var OldLinks = document.getElementById("PM_Next");
if(OldLinks) OldLinks.parentNode.parentNode.removeChild(OldLinks.parentNode);
var Embeddedin = new Array();
var Infos = ObjetXML.getElementsByTagName('ei');
for(var a=0;a<Infos.length;a++){
var ThisInfo = Infos[a];
var NS = ThisInfo.getAttribute("ns");
var Title = ThisInfo.getAttribute("title");
var ThisEmbeddedin = PageManager_Ajax_Text_FormatEmbeddedin;
ThisEmbeddedin = ThisEmbeddedin.split('$TITLE').join(PageManager_ManagePageLink(Title));
ThisEmbeddedin = ThisEmbeddedin.split('$NS').join(( mw.config.get('wgFormattedNamespaces')[NS]=="" ? '(Principal)' :mw.config.get('wgFormattedNamespaces')[NS]));
Embeddedin.push(ThisEmbeddedin);
}
var EmbeddedinContinue = ObjetXML.getElementsByTagName('query-continue')[0];
if(EmbeddedinContinue){
var EmbeddedinContinueID = EmbeddedinContinue.getElementsByTagName('embeddedin')[0].getAttribute('eicontinue').replace(/'/g, "ZAPPOSTROPHE");
var AfterLink20 = '<a href="javascript:PageManager_Ajax_Embeddedin(\''+EmbeddedinContinueID+'\', 20);" >20 pages suivantes</a>';
var AfterLink50 = '<a "href="javascript:PageManager_Ajax_Embeddedin(\''+EmbeddedinContinueID+'\', 50);" >50 pages suivantes</a>';
var AfterLink100 = '<a "href="javascript:PageManager_Ajax_Embeddedin(\''+EmbeddedinContinueID+'\', 100);" >100 pages suivantes</a>';
Embeddedin.push('<h5 id="PM_Next">'+ AfterLink20 +' | '+ AfterLink50 +' | '+ AfterLink100 + '</h5>');
}
if(!Embeddedin[0]&& EMStartID=="") Embeddedin[0] = "<h5>Aucune page n'inclue "+PageManager_ManagePageLink(mw.config.get('wgPageName'))+"</h5>";
var Ul = document.createElement('ul');
for(var a=0;a<Embeddedin.length;a++){
var Li = document.createElement('li');
Li.innerHTML = Embeddedin[a];
Ul.appendChild(Li);
}
var Div = document.getElementById("PageManager_Bottom");
if(Div) Div.appendChild(Ul);
}
Requete.send(null);
}
///////////////////////////////// Liens
PageManager_Ajax_Options.push("Liens internes de cette page");
PageManager_Ajax_Functions.push(function (){ PageManager_Ajax_Links();});
var PageManager_Ajax_Text_FormatLinks = "$TITLE ; Espace de noms : $NS";
var PageManager_Ajax_Links_Limit = 20;
function PageManager_Ajax_Links(LinksStartID, NewLinksLimit){
if(!LinksStartID){
var OldDiv = document.getElementById("PageManager_Bottom");
if(OldDiv){
while(OldDiv.firstChild){ OldDiv.removeChild(OldDiv.firstChild);}
}
LinksStartID = "";
}else{
LinksStartID = LinksStartID.replace(/ZAPPOSTROPHE/g, "'");
}
if(NewLinksLimit) PageManager_Ajax_Links_Limit = NewLinksLimit;
var Page = mw.config.get('wgPageName').replace(/_/g, " ");
var AdresseRequete = mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/api.php?format=xml&action=query&prop=links&pllimit='+PageManager_Ajax_Links_Limit+'&titles=' + Page.replace(/&/g, "%26") + (LinksStartID == "" ? "" : "&plcontinue=" + LinksStartID) ;
var Requete = sajax_init_object();
Requete.open("GET", AdresseRequete, true);
Requete.onreadystatechange = function() {
if(Requete.readyState != 4 ) return;
var ObjetXML = Requete.responseXML;
if(!ObjetXML) return;
var OldLinks = document.getElementById("PM_Next");
if(OldLinks) OldLinks.parentNode.parentNode.removeChild(OldLinks.parentNode);
var AllLinks = new Array();
var Infos = ObjetXML.getElementsByTagName('pl');
for(var a=0;a<Infos.length;a++){
var ThisInfo = Infos[a];
var NS = ThisInfo.getAttribute("ns");
var Title = ThisInfo.getAttribute("title");
var ThisLink = PageManager_Ajax_Text_FormatLinks;
ThisLink = ThisLink.split('$TITLE').join(PageManager_ManagePageLink(Title));
ThisLink = ThisLink.split('$NS').join(( mw.config.get('wgFormattedNamespaces')[NS]=="" ? '(Principal)' :mw.config.get('wgFormattedNamespaces')[NS]));
AllLinks.push(ThisLink);
}
var LinksContinue = ObjetXML.getElementsByTagName('query-continue')[0];
if(LinksContinue){
var LinksContinueID = LinksContinue.getElementsByTagName('links')[0].getAttribute('plcontinue').replace(/'/g, "ZAPPOSTROPHE");
var AfterLink20 = '<a href="javascript:PageManager_Ajax_Links(\''+LinksContinueID+'\', 20);" >20 pages suivantes</a>';
var AfterLink50 = '<a "href="javascript:PageManager_Ajax_Links(\''+LinksContinueID+'\', 50);" >50 pages suivantes</a>';
var AfterLink100 = '<a "href="javascript:PageManager_Ajax_Links(\''+LinksContinueID+'\', 100);" >100 pages suivantes</a>';
AllLinks.push('<h5 id="PM_Next">'+ AfterLink20 +' | '+ AfterLink50 +' | '+ AfterLink100 + '</h5>');
}
if(!AllLinks[0]&& LinksStartID=="") AllLinks[0] = "<h5>Aucun lien interne dans la page "+PageManager_ManagePageLink(mw.config.get('wgPageName'))+"</h5>";
var Ul = document.createElement('ul');
for(var a=0;a<AllLinks.length;a++){
var Li = document.createElement('li');
Li.innerHTML = AllLinks[a];
Ul.appendChild(Li);
}
var Div = document.getElementById("PageManager_Bottom");
if(Div) Div.appendChild(Ul);
}
Requete.send(null);
}
///////////////////////////////// Liens externes
PageManager_Ajax_Options.push("Liens externes de cette page");
PageManager_Ajax_Functions.push(function (){ PageManager_Ajax_ExternalLinks();});
var PageManager_Ajax_ExternalLinks_Limit = 20;
function PageManager_Ajax_ExternalLinks(ExternalLinksStartID, NewExternalLinksLimit){
if(!ExternalLinksStartID){
var OldDiv = document.getElementById("PageManager_Bottom");
if(OldDiv){
while(OldDiv.firstChild){ OldDiv.removeChild(OldDiv.firstChild);}
}
ExternalLinksStartID = "";
}else{
ExternalLinksStartID = ExternalLinksStartID.replace(/ZAPPOSTROPHE/g, "'");
}
if(NewExternalLinksLimit) PageManager_Ajax_ExternalLinks_Limit = NewExternalLinksLimit;
var Page = mw.config.get('wgPageName').replace(/_/g, " ");
var AdresseRequete = mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/api.php?format=xml&action=query&prop=extlinks&ellimit='+PageManager_Ajax_ExternalLinks_Limit+'&titles=' + Page.replace(/&/g, "%26") + (ExternalLinksStartID == "" ? "" : "&eloffset=" + ExternalLinksStartID) ;
var Requete = sajax_init_object();
Requete.open("GET", AdresseRequete, true);
Requete.onreadystatechange = function() {
if(Requete.readyState != 4 ) return;
var ObjetXML = Requete.responseXML;
if(!ObjetXML) return;
var OldLinks = document.getElementById("PM_Next");
if(OldLinks) OldLinks.parentNode.parentNode.removeChild(OldLinks.parentNode);
var AllLinks = new Array();
var Infos = ObjetXML.getElementsByTagName('el');
for(var a=0;a<Infos.length;a++){
var Title = ( Infos[a].firstChild ? Infos[a].firstChild.nodeValue : "");
if(Title != "") AllLinks.push('<a class="external text" href="' + Title + '" target="_blank">'+Title+'</a>');
}
var LinksContinue = ObjetXML.getElementsByTagName('query-continue')[0];
if(LinksContinue){
var LinksContinueID = LinksContinue.getElementsByTagName('extlinks')[0].getAttribute('eloffset').replace(/'/g, "ZAPPOSTROPHE");
var AfterLink20 = '<a href="javascript:PageManager_Ajax_ExternalLinks(\''+LinksContinueID+'\', 20);" >20 pages suivantes</a>';
var AfterLink50 = '<a "href="javascript:PageManager_Ajax_ExternalLinks(\''+LinksContinueID+'\', 50);" >50 pages suivantes</a>';
var AfterLink100 = '<a "href="javascript:PageManager_Ajax_ExternalLinks(\''+LinksContinueID+'\', 100);" >100 pages suivantes</a>';
AllLinks.push('<h5 id="PM_Next">'+ AfterLink20 +' | '+ AfterLink50 +' | '+ AfterLink100 + '</h5>');
}
if(!AllLinks[0] && ExternalLinksStartID=="") AllLinks[0] = "<h5>Aucun lien externe dans la page "+PageManager_ManagePageLink(mw.config.get('wgPageName'))+"</h5>";
var Ul = document.createElement('ul');
for(var a=0;a<AllLinks.length;a++){
var Li = document.createElement('li');
Li.innerHTML = AllLinks[a];
Ul.appendChild(Li);
}
var Div = document.getElementById("PageManager_Bottom");
if(Div) Div.appendChild(Ul);
}
Requete.send(null);
}
///////////////////////////////// Modèles
PageManager_Ajax_Options.push("Modèles de cette page");
PageManager_Ajax_Functions.push(function (){ PageManager_Ajax_Templates();});
var PageManager_Ajax_Text_FormatTemplates = "$TITLE ; Espace de noms : $NS";
var PageManager_Ajax_Templates_Limit = 20;
function PageManager_Ajax_Templates(TemplatesStartID, NewTemplatesLimit){
if(!TemplatesStartID){
var OldDiv = document.getElementById("PageManager_Bottom");
if(OldDiv){
while(OldDiv.firstChild){ OldDiv.removeChild(OldDiv.firstChild);}
}
TemplatesStartID = "";
}else{
TemplatesStartID = TemplatesStartID.replace(/ZAPPOSTROPHE/g, "'");
}
if(NewTemplatesLimit) PageManager_Ajax_Templates_Limit = NewTemplatesLimit;
var Page = mw.config.get('wgPageName').replace(/_/g, " ");
var AdresseRequete = mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/api.php?format=xml&action=query&prop=templates&tllimit='+PageManager_Ajax_Templates_Limit+'&titles=' + Page.replace(/&/g, "%26") + (TemplatesStartID == "" ? "" : "&tlcontinue=" + TemplatesStartID) ;
var Requete = sajax_init_object();
Requete.open("GET", AdresseRequete, true);
Requete.onreadystatechange = function() {
if(Requete.readyState != 4 ) return;
var ObjetXML = Requete.responseXML;
if(!ObjetXML) return;
var OldLinks = document.getElementById("PM_Next");
if(OldLinks) OldLinks.parentNode.parentNode.removeChild(OldLinks.parentNode);
var AllTemplates = new Array();
var Infos = ObjetXML.getElementsByTagName('tl');
for(var a=0;a<Infos.length;a++){
var ThisInfo = Infos[a];
var NS = ThisInfo.getAttribute("ns");
var Title = ThisInfo.getAttribute("title");
var ThisTemplate = PageManager_Ajax_Text_FormatTemplates;
ThisTemplate = ThisTemplate.split('$TITLE').join(PageManager_ManagePageLink(Title));
ThisTemplate = ThisTemplate.split('$NS').join(( mw.config.get('wgFormattedNamespaces')[NS]=="" ? '(Principal)' :mw.config.get('wgFormattedNamespaces')[NS]));
AllTemplates.push(ThisTemplate);
}
var TemplatesContinue = ObjetXML.getElementsByTagName('query-continue')[0];
if(TemplatesContinue){
var TemplatesContinueID = TemplatesContinue.getElementsByTagName('templates')[0].getAttribute('tlcontinue').replace(/'/g, "ZAPPOSTROPHE");
var AfterLink20 = '<a href="javascript:PageManager_Ajax_Templates(\''+TemplatesContinueID+'\', 20);" >20 pages suivantes</a>';
var AfterLink50 = '<a "href="javascript:PageManager_Ajax_Templates(\''+TemplatesContinueID+'\', 50);" >50 pages suivantes</a>';
var AfterLink100 = '<a "href="javascript:PageManager_Ajax_Templates(\''+TemplatesContinueID+'\', 100);" >100 pages suivantes</a>';
AllTemplates.push('<h5 id="PM_Next">'+ AfterLink20 +' | '+ AfterLink50 +' | '+ AfterLink100 + '</h5>');
}
if(!AllTemplates[0] && TemplatesStartID=="") AllTemplates[0] = "<h5>Aucun modèle dans la page "+PageManager_ManagePageLink(mw.config.get('wgPageName'))+"</h5>";
var Ul = document.createElement('ul');
for(var a=0;a<AllTemplates.length;a++){
var Li = document.createElement('li');
Li.innerHTML = AllTemplates[a];
Ul.appendChild(Li);
}
var Div = document.getElementById("PageManager_Bottom");
if(Div) Div.appendChild(Ul);
}
Requete.send(null);
}
///////////////////////////////// Images
PageManager_Ajax_Options.push("Images de cette page");
PageManager_Ajax_Functions.push(function (){ PageManager_Ajax_Images();});
var PageManager_Ajax_Images_Limit = 20;
function PageManager_Ajax_Images(ImagesStartID, NewImagesLimit){
if(!ImagesStartID){
var OldDiv = document.getElementById("PageManager_Bottom");
if(OldDiv){
while(OldDiv.firstChild){ OldDiv.removeChild(OldDiv.firstChild);}
}
ImagesStartID = "";
}else{
ImagesStartID = ImagesStartID.replace(/ZAPPOSTROPHE/g, "'");
}
if(NewImagesLimit) PageManager_Ajax_Images_Limit = NewImagesLimit;
var Page = mw.config.get('wgPageName').replace(/_/g, " ");
var AdresseRequete = mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/api.php?format=xml&action=query&prop=images&imlimit='+PageManager_Ajax_Images_Limit+'&titles=' + Page.replace(/&/g, "%26") + (ImagesStartID == "" ? "" : "&imcontinue=" + ImagesStartID) ;
var Requete = sajax_init_object();
Requete.open("GET", AdresseRequete, true);
Requete.onreadystatechange = function() {
if(Requete.readyState != 4 ) return;
var ObjetXML = Requete.responseXML;
if(!ObjetXML) return;
var OldLinks = document.getElementById("PM_Next");
if(OldLinks) OldLinks.parentNode.parentNode.removeChild(OldLinks.parentNode);
var AllImages = new Array();
var Infos = ObjetXML.getElementsByTagName('im');
for(var a=0;a<Infos.length;a++){
var ThisInfo = Infos[a];
var Title = ThisInfo.getAttribute("title");
var ThisImage = PageManager_ManagePageLink(Title);
AllImages.push(ThisImage);
}
var ImagesContinue = ObjetXML.getElementsByTagName('query-continue')[0];
if(ImagesContinue){
var ImagesContinueID = ImagesContinue.getElementsByTagName('images')[0].getAttribute('imcontinue').replace(/'/g, "ZAPPOSTROPHE");
var AfterLink20 = '<a href="javascript:PageManager_Ajax_Images(\''+ImagesContinueID+'\', 20);" >20 pages suivantes</a>';
var AfterLink50 = '<a "href="javascript:PageManager_Ajax_Images(\''+ImagesContinueID+'\', 50);" >50 pages suivantes</a>';
var AfterLink100 = '<a "href="javascript:PageManager_Ajax_Images(\''+ImagesContinueID+'\', 100);" >100 pages suivantes</a>';
AllImages.push('<h5 id="PM_Next">'+ AfterLink20 +' | '+ AfterLink50 +' | '+ AfterLink100 + '</h5>');
}
if(!AllImages[0] && ImagesStartID=="") AllImages[0] = "<h5>Aucune image dans la page "+PageManager_ManagePageLink(mw.config.get('wgPageName'))+"</h5>";
var Ul = document.createElement('ul');
for(var a=0;a<AllImages.length;a++){
var Li = document.createElement('li');
Li.innerHTML = AllImages[a];
Ul.appendChild(Li);
}
var Div = document.getElementById("PageManager_Bottom");
if(Div) Div.appendChild(Ul);
}
Requete.send(null);
}
///////////////////////////////// Catégories
PageManager_Ajax_Options.push("Catégories de cette page");
PageManager_Ajax_Functions.push(function (){ PageManager_Ajax_Categories();});
var PageManager_Ajax_Text_FormatCategories = "$TITLE ; clé de tri : $CLE ; $CACHE ";
var PageManager_Ajax_Categories_Limit = 20;
function PageManager_Ajax_Categories(CategoriesStartID, NewCategoriesLimit){
if(!CategoriesStartID){
var OldDiv = document.getElementById("PageManager_Bottom");
if(OldDiv){
while(OldDiv.firstChild){ OldDiv.removeChild(OldDiv.firstChild);}
}
CategoriesStartID = "";
}else{
CategoriesStartID = CategoriesStartID.replace(/ZAPPOSTROPHE/g, "'");
}
if(NewCategoriesLimit) PageManager_Ajax_Categories_Limit = NewCategoriesLimit;
var Page = mw.config.get('wgPageName').replace(/_/g, " ");
var AdresseRequete = mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/api.php?format=xml&action=query&prop=categories&cllimit='+PageManager_Ajax_Categories_Limit+'&clprop=hidden|sortkey&titles=' + Page.replace(/&/g, "%26") + (CategoriesStartID == "" ? "" : "&clcontinue=" + CategoriesStartID) ;
var Requete = sajax_init_object();
Requete.open("GET", AdresseRequete, true);
Requete.onreadystatechange = function() {
if(Requete.readyState != 4 ) return false;
var ObjetXML = Requete.responseXML;
if(!ObjetXML) return;
var OldLinks = document.getElementById("PM_Next");
if(OldLinks) OldLinks.parentNode.parentNode.removeChild(OldLinks.parentNode);
var AllCategories = new Array();
var Infos = ObjetXML.getElementsByTagName('cl');
for(var a=0;a<Infos.length;a++){
var ThisInfo = Infos[a];
var Title = ThisInfo.getAttribute("title");
var Hidden = ThisInfo.getAttribute("hidden");
var SortKey = ThisInfo.getAttribute("sortkey");
var ThisCategorie = PageManager_Ajax_Text_FormatCategories;
ThisCategorie = ThisCategorie.split('$TITLE').join(PageManager_ManagePageLink(Title));
ThisCategorie = ThisCategorie.split('$CLE').join(SortKey);
ThisCategorie = ThisCategorie.split('$CACHE').join((Hidden=="" ? "<small>Catégorie cachée</small>" : ""));
AllCategories.push(ThisCategorie);
}
var CategoriesContinue = ObjetXML.getElementsByTagName('query-continue')[0];
if(CategoriesContinue){
var CategoriesContinueID = CategoriesContinue.getElementsByTagName('categories')[0].getAttribute('clcontinue').replace(/'/g, "ZAPPOSTROPHE");
var AfterLink20 = '<a href="javascript:PageManager_Ajax_Categories(\''+CategoriesContinueID+'\', 20);" >20 pages suivantes</a>';
var AfterLink50 = '<a "href="javascript:PageManager_Ajax_Categories(\''+CategoriesContinueID+'\', 50);" >50 pages suivantes</a>';
var AfterLink100 = '<a "href="javascript:PageManager_Ajax_Categories(\''+CategoriesContinueID+'\', 100);" >100 pages suivantes</a>';
AllCategories.push('<h5 id="PM_Next">'+ AfterLink20 +' | '+ AfterLink50 +' | '+ AfterLink100 + '</h5>');
}
if(!AllCategories[0] && CategoriesStartID=="") AllCategories[0] = "<h5>Aucune catégorie dans la page "+PageManager_ManagePageLink(mw.config.get('wgPageName'))+"</h5>";
var Ul = document.createElement('ul');
for(var a=0;a<AllCategories.length;a++){
var Li = document.createElement('li');
Li.innerHTML = AllCategories[a];
Ul.appendChild(Li);
}
var Div = document.getElementById("PageManager_Bottom");
if(Div) Div.appendChild(Ul);
}
Requete.send(null);
}
/* **************************************** Fonctions **************************************** */
function PageManager_ManageTimestamp(TimeStamp){
if(!TimeStamp) return false;
var DateUgly = TimeStamp.replace(/Z/g, "").split("T")[0];
var Time = TimeStamp.split("T")[1].replace(/Z/g, "");
var Date = DateUgly.split("-");
var Year = Date[0];
var Month = Date[1];
var Day = Date[2];
var Text = Day + "/" + Month + "/" + Year + " à " + Time;
return Text;
}
function PageManager_Parse(Text, nobr, notags ){
Text = Text.replace(/&/g, "&");
if(notags){
Text = Text.replace(/</g, "<");
Text = Text.replace(/>/g, ">");
}else{
Text = Text.replace(/</g, "<");
Text = Text.replace(/>/g, ">");
}
if(nobr) Text = Text.replace(/<br/g, "<br").replace(/<\/br/g, "<\/br");
return Text;
}
///////////////////////////////////////////////////////////////// Création des liens //////////////////////////////////
function PageManager_ManagePageLink(Page, Text, Title){
Page = Page.replace(/_/g, " ");
if(!Text) Text = Page;
if(!Title) Title = Page;
var EncodedPage = encodeURIComponent(Page);
var PageLink = '<a class="PM_PageLink" href="' + mw.config.get('wgServer') + mw.config.get('wgArticlePath').split('$1').join(EncodedPage) + '" title="' + Title + '">' + Text + '</a>';
return PageLink;
}
function PageManager_ManagePageOldidLink(Page, Oldid, Text, Title){
Page = Page.replace(/_/g, " ");
if(!Text) Text = Page;
if(!Title) Title = Page;
var EncodedPage = encodeURIComponent(Page);
var PageLink = '<a class="PM_OldidLink" href="' + mw.config.get('wgServer') + mw.config.get('wgScript')+ '?title=' + EncodedPage + '&oldid=' + Oldid + '" title="' + Title + '">' + Text + '</a>';
return PageLink;
}
function PageManager_ManagePageDiffLink(Page, Oldid, Diff, Text, Title){
Page = Page.replace(/_/g, " ");
if(!Diff) Diff = "prev";
if(!Text) Text = Page;
if(!Title) Title = Page;
var EncodedPage = encodeURIComponent(Page);
var PageLink = '<a class="PM_DiffLink" href="' + mw.config.get('wgServer') + mw.config.get('wgScript')+ '?title=' + EncodedPage + '&oldid=' + Oldid + '&diff=' + Diff +'" title="' + Title + '">' + Text + '</a>';
return PageLink;
}
function PageManager_ManageUserLink(User, Text, Title){
User = User.replace(/_/g, " ");
if(!Text) Text = User;
if(!Title) Title = User;
var EncodedUser = encodeURIComponent(User);
var UserLink = '<a class="PM_UserLink" href="'+ mw.config.get('wgServer') + mw.config.get('wgArticlePath').split('$1').join(mw.config.get('wgFormattedNamespaces')[2]+':'+User) + '" title="'+Title+'">'+Text+'</a>';
return UserLink;
}
function PageManager_ManageUserTalkLink(User, Text, Title){
User = User.replace(/_/g, " ");
if(!Text) Text = User;
if(!Title) Title = User;
var EncodedUser = encodeURIComponent(User);
var UserTalkLink = '<a class="PM_UserTalkLink" href="'+ mw.config.get('wgServer') + mw.config.get('wgArticlePath').split('$1').join(mw.config.get('wgFormattedNamespaces')[3]+':'+User) + '" title="'+Title+'">'+Text+'</a>';
return UserTalkLink;
}
function PageManager_ManageUserContribLink(User, Text, Title){
User = User.replace(/_/g, " ");
if(!Text) Text = User;
if(!Title) Title = User;
var EncodedUser = encodeURIComponent(User);
var UserContribLink = '<a class="PM_UserContribLink" href="'+ mw.config.get('wgServer') + mw.config.get('wgArticlePath').split('$1').join('Special:Contributions/'+User) + '" title="'+Title+'">'+Text+'</a>';
return UserContribLink;
}
/////////////////////////////////////////////////////////// Gestion des espaces de noms ///////////////////////////////////////
/*
function PageManager_GetNamespaceNumber(Page){
var Namespace = 0;
for(var NS in mw.config.get('wgFormattedNamespaces')){
if(Page.indexOf(mw.config.get('wgFormattedNamespaces')[NS]+":"!=-1)
Namespace = parseInt(NS);
}
return Namespace;
}
function PageManager_GetNamespaceName(Page){
var Namespace = "";
for(var NS in mw.config.get('wgFormattedNamespaces')){
if(Page.indexOf(mw.config.get('wgFormattedNamespaces')[NS]+":"!=-1)
Namespace = mw.config.get('wgFormattedNamespaces')[NS];
}
return Namespace;
}
function PageManager_GetTalkNamespaceName(Page){
var Namespace = 0;
for(var NS in mw.config.get('wgFormattedNamespaces')){
if(Page.indexOf(mw.config.get('wgFormattedNamespaces')[NS]+":"!=-1)
Namespace = parseInt(NS);
}
if(Namespace==-1) return false;
if(Namespace%2){
return (Namespace+1);
}else[
return Namespace;
}
}
function PageManager_GetSubjectNamespaceName(Page){
var Namespace = 0;
for(var NS in mw.config.get('wgFormattedNamespaces')){
if(Page.indexOf(mw.config.get('wgFormattedNamespaces')[NS]+":"!=-1)
Namespace = parseInt(NS);
}
if(Namespace==-1) return -1;
if(Namespace%2){
return Namespace;
}else[
return (Namespace-1);
}
}
*/
/* **************************************** AJOUT D'UN LIEN AU SKIN MANAGER **************************************** */
if(typeof(addLinkToSkinManager)=="undefined")
function addLinkToSkinManager( TextLink, HrefLink, TitleLink, TextBefore, TextAfter, Position){
if(!Position) Position = -1;
var LiensManager = document.getElementById('Skin_Manager_Ul');
if(!LiensManager) return;
var NewLinkInSkinManager = document.createElement('li');
if((!TextLink)&&(!HrefLink)){
NewLinkInSkinManager.innerHTML = " ";
}else{
if(!TitleLink) TitleLink = HrefLink;
if(!TextBefore) TextBefore = "";
if(!TextAfter) TextAfter = "";
if(HrefLink.indexOf("javascript:")==-1) HrefLink = "/wiki/" + HrefLink.replace(/ /g,"_");
var NewLink = document.createElement('a');
NewLink.href = HrefLink;
NewLink.title = TitleLink;
NewLink.appendChild(document.createTextNode(TextLink));
NewLinkInSkinManager.appendChild(document.createTextNode(TextBefore));
NewLinkInSkinManager.appendChild(NewLink);
NewLinkInSkinManager.appendChild(document.createTextNode(TextAfter));
}
if(Position==-1){
LiensManager.appendChild(NewLinkInSkinManager);
}else{
var Cible = LiensManager.getElementsByTagName('li')[Position];
if(!Cible){
}else{
LiensManager.insertBefore(NewLinkInSkinManager, Cible);
}
}
}