Utilisateur:Dr Brains/AutresDiscussions.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.//<source lang="javascript">
//<pre><nowiki>
//////// STYLES CSS
// position absolute
if(skin=="vector"){
var AutresDiscussions_Position_Left = '50px';
var AutresDiscussions_Position_Top = '2.5em';
var AutresDiscussions_Position_OtherStyles = 'background-image:none !important;line-height:1em !important;height:1.2em;font-size:0.8em !important;';
}else if(skin=="monobook"){
var AutresDiscussions_Position_Left = '90px';
var AutresDiscussions_Position_Top = '1.8em';
var AutresDiscussions_Position_OtherStyles = '';
}else{
var AutresDiscussions_Position_Left = '150px';
var AutresDiscussions_Position_Top = '3em';
var AutresDiscussions_Position_OtherStyles = 'color:#0000C2';
}
document.write('<style type="text/css">'
+'#ca-talk ul li{display: block !important;width: 100% !important;min-width: 10em !important;border: 0px;margin: 0px !important;padding: .1em !important;border: 1px solid #aaaaaa !important;border-collapse: collapse;text-align: center;background-color: #F8FCFF !important;white-space: nowrap !important;'+AutresDiscussions_Position_OtherStyles+'}'
+'#ca-talk ul {display: none !important;width: auto;z-index: 50;position: absolute;top:'+AutresDiscussions_Position_Top+';left:'+AutresDiscussions_Position_Left+';margin: 0px;background-color: grey;background-image:none !important;}'
+'#ca-talk * {-moz-border-radius: 0px !important;}'
+'#ca-talk:hover ul {display: block !important;}'
+'#ca-talk ul li:hover {background-color: #e8ecef !important;}'
+'#ca-talk ul a {background-color: transparent !important;margin:0 !important;padding:0 !important;}'
+'#ca-talk a.new {color: red !important;}'
+'#ca-talk a.new span{color: red !important;}'
+'#ca-talk a.mw-redirect {color: green !important;}'
+'</style>');
//////// VARIABLES (url + textes liens + affichage pages inexistantes)
var Autres_discut_Links = new Array(); // Titre complet de la page, titre remplacé par "$1"
var Autres_discut_Text = new Array(); // Texte du lien
var Autres_discut_VisibleIfNew = new Array(); // Afficher la page si elle n'existe pas (true ou false)
Autres_discut_Links.push("$1/À faire");
Autres_discut_Text.push("À faire");
Autres_discut_VisibleIfNew.push(true);
Autres_discut_Links.push("$1/Archives");
Autres_discut_Text.push("Archives");
Autres_discut_VisibleIfNew.push(false);
Autres_discut_Links.push("$1/Article de qualité");
Autres_discut_Text.push("Article de qualité");
Autres_discut_VisibleIfNew.push(false);
Autres_discut_Links.push("$1/Bon article");
Autres_discut_Text.push("Bon article");
Autres_discut_VisibleIfNew.push(false);
Autres_discut_Links.push("$1/Droit d'auteur");
Autres_discut_Text.push("Droit d'auteur");
Autres_discut_VisibleIfNew.push(false);
Autres_discut_Links.push("$1/Évaluation");
Autres_discut_Text.push("Évaluation");
Autres_discut_VisibleIfNew.push(false);
Autres_discut_Links.push("$1/Lumière sur");
Autres_discut_Text.push("Lumière sur");
Autres_discut_VisibleIfNew.push(false);
Autres_discut_Links.push("$1/Neutralité");
Autres_discut_Text.push("Neutralité");
Autres_discut_VisibleIfNew.push(false);
Autres_discut_Links.push("$1/Suppression");
Autres_discut_Text.push("Suppression");
Autres_discut_VisibleIfNew.push(false);
Autres_discut_Links.push("$1/Traduction");
Autres_discut_Text.push("Traduction");
Autres_discut_VisibleIfNew.push(false);
Autres_discut_Links.push("Special:Index/$1/");
Autres_discut_Text.push("Autres discussions");
Autres_discut_VisibleIfNew.push(true);
// Autres variables
if((mw.config.get('wgNamespaceNumber')==0)||(mw.config.get('wgNamespaceNumber')==100)){
var Autres_discut_ArticleNS = mw.config.get('wgNamespaceNumber');
var Autres_discut_TalkNS = mw.config.get('wgNamespaceNumber') +1;
}else{
var Autres_discut_ArticleNS = mw.config.get('wgNamespaceNumber') -1;
var Autres_discut_TalkNS = mw.config.get('wgNamespaceNumber');
}
var Autres_discut_Menu = '';
var Autres_discut_Length = -1;
//////// FONCTIONS
// Requêtes sous-pages
function Autres_discut_API(){
var PageTitle = mw.config.get('wgTitle').split('/')[0];
var PageName = mw.config.get('wgFormattedNamespaces')[Autres_discut_TalkNS] + ':' + PageTitle;
var PageExist = new Array();
var AdresseRequete = mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/api.php?format=xml&action=query&list=allpages&aplimit=499&apnamespace='+Autres_discut_TalkNS+'&apprefix=' + encodeURIComponent(PageTitle) ;
var NouvelleRequete = new XMLHttpRequest();
NouvelleRequete.open("GET", AdresseRequete, true);
NouvelleRequete.onreadystatechange = function() {
if(NouvelleRequete.readyState != 4) return;
//alert('Reçu');
var ObjetXML = NouvelleRequete.responseXML;
var Pages = ObjetXML.getElementsByTagName('p');
for(var a=0;a<Pages.length;a++){
var Title = Pages[a].getAttribute("title");
PageExist.push(Title);
}
for(var b=0;b<Autres_discut_Links.length;b++){
var Link = Autres_discut_Links[b].split('$1').join(PageName);
var LinkClassName = "new";
for(var c=0;c<PageExist.length;c++){
if(Link==PageExist[c]){
LinkClassName = "";
}
}
if((LinkClassName!="new")||(Autres_discut_VisibleIfNew[b])){
if(b==(Autres_discut_Links.length-1)) LinkClassName = "";
Autres_discut_Length++
Autres_discut_Menu += '<li style="display:block !important;">'
+'<a class="'+LinkClassName+'" '
+'href="'+mw.config.get('wgServer')+mw.config.get('wgArticlePath').split('$1').join(Link)+'" '
+'>'
+Autres_discut_Text[b]
+'</a>'
+'</li>';
}
}
var TalkLinkClassName = "new";
for(var d=0;d<PageExist.length;d++){
if(PageExist[d]==PageName){
TalkLinkClassName = "";
}
}
Autres_discut(TalkLinkClassName);
}
NouvelleRequete.send(null);
}
// Création Menu
function Autres_discut(TalkLinkClassName) {
var Talk = document.getElementById("ca-talk");
if (Talk){
var TalkLink = Talk.getElementsByTagName('a')[0];
if($(Talk).hasClass("new")){
$(Talk).removeClass("new");
}
TalkLink.className = TalkLinkClassName;
var TalkURL = mw.config.get('wgServer') + mw.config.get('wgArticlePath').split('$1').join(mw.config.get('wgFormattedNamespaces')[Autres_discut_TalkNS]+':'+mw.config.get('wgTitle').split('/')[0]);
TalkLink.href = TalkURL;
TalkLink.title = "";
var AutresDiscussions = '<ul id="ca-Autres_discut_UL" >'+Autres_discut_Menu+'</ul>';
Talk.innerHTML += AutresDiscussions;
}
var Article = document.getElementById("ca-nstab-main");
if(!Article) Article = document.getElementById("ca-nstab-portail");
if (Article){
if($(Article).hasClass("new")){
$(Article).removeClass("new");
}
var ArticleLink = Article.getElementsByTagName('a')[0];
if(mw.config.get('wgNamespaceNumber')<2){
var ArticleURL = mw.config.get('wgServer') + mw.config.get('wgArticlePath').split('$1').join(mw.config.get('wgTitle').split('/')[0]);
}else{
var ArticleURL = mw.config.get('wgServer') + mw.config.get('wgArticlePath').split('$1').join(mw.config.get('wgFormattedNamespaces')[Autres_discut_ArticleNS]+':'+mw.config.get('wgTitle').split('/')[0]);
}
ArticleLink.href = ArticleURL;
}
}
// Lancement
if( (mw.config.get('wgNamespaceNumber') == 0)||(mw.config.get('wgNamespaceNumber') == 1)||(mw.config.get('wgNamespaceNumber') == 100)||(mw.config.get('wgNamespaceNumber') == 101) ){
addOnloadHook(Autres_discut_API);
}
//</nowiki></pre></source>