الفرق بين المراجعتين لصفحة: «ميدياويكي:Gadget-BandeauxPortails.js»

تم حذف المحتوى تمت إضافة المحتوى
جديدة '// //<source lang=javascript> // Documentation : w:fr:Projet:JavaScript/Notices/BandeauxPortails // Code copié-collé depuis https://fr.wikipedia.org/wiki/MediaWiki:Gadget-Band...'
 
لا ملخص تعديل
 
سطر 1:
//*[[:fr:mediawiki:gadget-bandeauxportails.js]]*/
//
//<source lang=javascript>
 
// Documentation : [[w:fr:Projet:JavaScript/Notices/BandeauxPortails]]
// Code copié-collé depuis https://fr.wikipedia.org/wiki/MediaWiki:Gadget-BandeauxPortails.js
 
// Licence : Domaine public
السطر 35 ⟵ 34:
if(typeof window.BandeauxPortails_SkipConfirm === 'undefined') window.BandeauxPortails_SkipConfirm = false;
 
var BandeauxPortails_EditParams = new Array();
// Groupe nécessaire pour appliquer une balise
if(typeof window.BandeauxPortails_TagGroup === 'undefined') window.BandeauxPortails_TagGroup = "user";
 
// Balise à appliquer aux modifs
if(typeof window.BandeauxPortails_Tag === 'undefined'){
window.BandeauxPortails_Tag = "";
if(mw.config.get( 'wgServer' ) == '//fr.wikipedia.org') window.BandeauxPortails_Tag = "BandeauxPortails";
}
 
var BandeauxPortails_EditParams = {};
 
/////////////////////////////////////////////////////////////////////////////////// Édition
السطر 97 ⟵ 87:
Modele = Modele.replace(/\|\}/ig, "\}");
return Modele;
}
window.BandeauxPortails_gettag = function(){
if(!BandeauxPortails_Tag || !BandeauxPortails_TagGroup) return false;
var UserGroups = mw.config.get('wgUserGroups');
if(UserGroups === null) UserGroups = ["*"];
if(UserGroups.indexOf(BandeauxPortails_TagGroup) !== -1) return BandeauxPortails_Tag;
return false;
}
 
السطر 119 ⟵ 101:
 
var OldText = TextArea.value;
OldText = OldText.replace(/\{\{Portailشريط بوابة /ig, "\{\{Portailشريط بوابات\|"); // Cas d'un bandeau unique : {{Portail Truc}} -> {{Portail|Truc}}
 
if((OldText.indexOf('{{Portailشريط بوابة|')!=-1)||(OldText.indexOf('{{portailشريط بوابات|')!=-1)){
// ==================================================================================== Il y a déjà un modèle {{Portail}}
var AvantModeleUp = OldText.substring(0, OldText.indexOf('{{Portailشريط بوابة'));
var AvantModeleLow = OldText.substring(0, OldText.indexOf('{{portailشريط بوابات'));
var ApresModele = OldText.split(AvantModeleUp).join('').split(AvantModeleLow).join('');
var DebutModele = OldText.split(ApresModele).join('');
السطر 134 ⟵ 116:
if(AddPortalText){
if(((OldModele.indexOf('|'+AddPortalText+'|')!=-1)||(OldModele.indexOf('|'+AddPortalText+'}')!=-1))){
alert('Le portailبوابة ' + AddPortalText + ' est déjà présentموجودة.');
document.editform.style.display = "";
return;
السطر 144 ⟵ 126:
NouveauModele = NouveauModele.split('|' +RemovePortalText+ '}}').join('}}');
NouveauModele = NouveauModele.split('}}').join('|' + AddPortalText + '}}');
var Sommaire = 'Changement rapide de {{portail}}حذف [[قالب:شريط -بوابات|بوابة]] '+RemovePortalText+' , +وإضافة '+AddPortalText.replace(/\|/g," , +، ");
}else if(RemovePortalText){
var NouveauModele = OldModele;
NouveauModele = NouveauModele.split('|' +RemovePortalText+ '|').join('|');
NouveauModele = NouveauModele.split('|' +RemovePortalText+ '}}').join('}}');
var Sommaire = 'Retrait rapide de {{portail}}حذف [[قالب:شريط -بوابات|بوابة]] '+RemovePortalText;
}else if(AddPortalText){
var NouveauModele = OldModele.split('}}').join('|' + AddPortalText + '}}');
var Sommaire = 'Ajout rapide de {{portail}}إضافة [[قالب:شريط +بوابات|بوابة]] '+AddPortalText.replace(/\|/g," , +، ");
}
NouveauModele = BandeauxPortails_CleanModele(NouveauModele);
if(NouveauModele.indexOf('|')==-1){
if(BandeauxPortails_SkipConfirm || confirm('Erreurخطأ :\nLenيجب modèleإضافة {{Portail}}بوابة doitواحدة avoirعلى au moins un paramètreالأقل.\n\nSupprimernأتريد leإزالة modèle[[قالب:شريط {{Portail}}بوابات|قالب ?البوابات]]؟')){
NouveauModele = "";
}else{
السطر 166 ⟵ 148:
// ==================================================================================== Il n'y a pas de modèle {{Portail}}
if(!AddPortalText){
alert('Pasما deمن portailبوابة à ajouterللإضافة.');
document.editform.style.display = "";
return;
}
var NouveauModele = '{{Portailشريط بوابات|' + AddPortalText + '}}\n\n';
var Sommaire = 'Ajout rapide de {{portail}}إضافة [[قالب:شريط +بوابات|بوابة]] '+AddPortalText.replace(/\|/g," , + ");
if((OldText.indexOf('{{DEFAULTSORT:')!=-1)||(OldText.indexOf('[[Catégorie{{ترتيب_افتراضي:')!=-1)||(OldText.indexOf('{{ترتيب_غيابي:')!=-1)||(OldText.indexOf('[[catégorieتصنيف:')!=-1)||(OldText.indexOf('[[CategorieCategory:')!=-1)||(OldText.indexOf('[[categoriecategory:')!=-1)){
// ------------------------------------------------------------------------------------ Il y a des catégories
var DebutModele1 = OldText.substring(0, OldText.indexOf('{{DEFAULTSORT:'));
var DebutModele2 = OldText.substring(0, OldText.indexOf('[[Catégorie{{ترتيب_افتراضي:'));
var DebutModele3 = OldText.substring(0, OldText.indexOf('[[catégorie{{ترتيب_غيابي:'));
var DebutModele4 = OldText.substring(0, OldText.indexOf('[[Categorieتصنيف:'));
var DebutModele5 = OldText.substring(0, OldText.indexOf('[[categorieCategory:'));
var DebutModele6 = OldText.substring(0, OldText.indexOf('[[category:'));
var SuiteModele = OldText.split(DebutModele1).join('').split(DebutModele2).join('').split(DebutModele3).join('').split(DebutModele4).join('').split(DebutModele5).join('').split(DebutModele6).join('');
var DebutModele = OldText.split(SuiteModele).join('');
}else{
السطر 204 ⟵ 187:
}
var TexteFinal = DebutModele + NouveauModele + SuiteModele;
var SommaireFinal = Sommaire + ' ; avec ([[Projetوب:JavaScript/Notices/BandeauxPortailsشب|BandeauxPortailsشريط البوابات]])';
document.getElementById('wpMinoredit').checked = BandeauxPortails_MinorEdit;
if(BandeauxPortails_Watchthis==1) document.getElementById('wpWatchthis').checked = "checked";
السطر 210 ⟵ 193:
document.getElementById('wpTextbox1').value = TexteFinal;
document.getElementById('wpSummary').value = SommaireFinal;
if(BandeauxPortails_AutoEdit){document.editform.submit();
var watchthisparam = {};
watchthisparam[-1] = "nochange";
watchthisparam[ 0] = "unwatch";
watchthisparam[ 1] = "watch";
var datas = {
action : 'edit',
title : mw.config.get('wgPageName'),
text : TexteFinal,
summary : SommaireFinal,
minor : (document.editform.wpMinoredit.checked ? 1 : 0),
watchlist : watchthisparam[BandeauxPortails_Watchthis],
token : document.editform.wpEditToken.value
};
var ApplyTag = BandeauxPortails_gettag();
if(ApplyTag){
datas.summary = Sommaire;
datas.tags = ApplyTag;
}
var api = new mw.Api();
api.post( datas, {'contentType':'application/x-www-form-urlencoded'} ).then( function ( data ) {
window.location.reload();
});
}
}
 
السطر 250 ⟵ 210:
 
function BandeauxPortails_Update(){
var URLurl = mw.config.get( 'wgServer' ) + mw.config.get( 'wgScript' ) + '?title=' + encodeURIComponent(mw.config.get( 'wgPageName' ).replace(/&/g, "%26") + '&oldid='+ mw.config.get( 'wgCurRevisionId' ) + '&action=raw';
var BandeauxPortails_Request = sajax_init_object();
BandeauxPortails_ajax.http({url: URL, onSuccess:BandeauxPortails_UpdateDone});
BandeauxPortails_Request.open("GET", url, true);
}
BandeauxPortails_Request.onreadystatechange = function() {
window.BandeauxPortails_UpdateDone = function(Req, data){
if(BandeauxPortails_Request.readyState != 4 || BandeauxPortails_Request.status != 200) return;
var Contenu = Req.responseText;
if( var Contenu =='') returnBandeauxPortails_Request.responseText;
if(Contenu=='') return;
Contenu = Contenu.replace(/\{\{portail/ig, "\{\{Portail");
Contenu = Contenu.replace(/\{\{Portailشريط بوابة/ig, "\{\{Portail\|شريط بوابات");
Contenu = Contenu.replace(/\{\{بوابة /ig, "\{\{شريط بوابات\|");
if(Contenu.indexOf('{{Portail|')==-1) return;
var ParamsModele = if(Contenu.splitindexOf('{{Portailشريط بوابات|')[==-1].split('}}')[0] + '|'return;
var ParamsModele = BandeauxPortails_CleanModeleContenu.split(ParamsModele'{{شريط بوابات|')[1].split('}}')[0] + '|';
ParamsModele = BandeauxPortails_CleanModele(ParamsModele);
var AllParamsModele = new Array();
var AllParamsModele = new Array();
while(ParamsModele.indexOf('|')!=-1){
var NewParam = while(ParamsModele.splitindexOf('|')[0];!=-1){
if( var NewParam! ='') AllParamsModeleParamsModele.pushsplit(NewParam'|')[0];
ParamsModele = ParamsModele.split if(NewParam+!='|')[1] AllParamsModele.push(NewParam);
ParamsModele = ParamsModele.split(NewParam+'|')[1];
}
}
for(var m=0;m<AllParamsModele.length;m++){
var Span = document.getElementById('lienPortail_'+m);
if(!Span) continue;
var LienRemove = Span.getElementsByTagName('a')[1];
LienRemove.href= "javascript:BandeauxPortails_SupprOne(\'"+encodeURIComponent(AllParamsModele[m]).replace(/'/g,"ZAPPOSTROPHE")+"\')";
LienRemove.title= "Supprimer le bandeauحذف deوصلة portailبوابة "+AllParamsModele[m];
var LienModify = Span.getElementsByTagName('a')[2];
LienModify.href= "javascript:BandeauxPortails_ModifyOne(\'"+m+"\',\'"+encodeURIComponent(AllParamsModele[m]).replace(/'/g,"ZAPPOSTROPHE")+"\')";
LienModify.title= "Modifier le bandeauتعديل deوصلة portailبوابة "+AllParamsModele[m];
}
};
BandeauxPortails_Request.send(null);
}
 
السطر 291 ⟵ 254:
window.BandeauxPortails_SupprOne = function(Portail){
Portail = Portail.replace(/ZAPPOSTROPHE/g,"'");
if (BandeauxPortails_SkipConfirm || confirm('Voulez-vousأتريد vraimentحذف supprimerوصلة le bandeau «بوابة '+Portail+' » ?؟')) {
BandeauxPortails_EditParams["PortalToRemove"] = Portail;
BandeauxPortails_Edit();
السطر 329 ⟵ 292:
 
Form.style.display ="inline";
Form.innerHTML = '<select id="SelectModify_'+id+'" style="display:none;" title="Suggestionsاقتراحات de bandeauxالبوابات" />'
+'<input id="InputModify_'+id+'" type="text" value="'+portail+'" '
+'onkeyup="BandeauxPortails_TextChanged(\'SelectModify_'+id+'\')" />'
السطر 335 ⟵ 298:
+'onclick="BandeauxPortails_ModifyThatOne(\''+id+'\',\''+portail.replace(/'/g,"ZAPPOSTROPHE")+'\');" '
+'onselect="BandeauxPortails_ModifyThatOne(\''+id+'\',\''+portail.replace(/'/g,"ZAPPOSTROPHE")+'\');" '
+'value="OKأكد"/>'
+'<input type="button" '
+'onclick="BandeauxPortails_Cancel(\'lienPortail_'+id+'\')" '
+'onselect="BandeauxPortails_Cancel(\'lienPortail_'+id+'\')" '
+'value="Annulerألغ"/>';
Span.parentNode.insertBefore(Form,Span);
document.getElementById('InputModify_'+id).focus() ;
السطر 368 ⟵ 331:
return false;
} ;
Form.innerHTML = '<select id="SelectAdd" style="display:none;" title="Suggestionsاقتراحات de bandeauxالبوابات" />'
+'<input id="InputAdd" type="text" value="" onkeyup="BandeauxPortails_TextChanged(\'SelectAdd\')" />'
+'<input type="button" '
+'onclick="BandeauxPortails_AddThatOne();" '
+'onselect="BandeauxPortails_AddThatOne();" '
+'value="OKأكد"/>'
+'<input type="button" '
+'onclick="BandeauxPortails_Cancel(\'BandeauxPortails_Add\')" '
+'onselect="BandeauxPortails_Cancel(\'BandeauxPortails_Add\')" '
+'value="Annulerألغ"/>';
Span.parentNode.insertBefore(Form,Span);
document.getElementById('InputAdd').focus() ;
السطر 489 ⟵ 452:
}
 
function BandeauxPortails_TextChanged_Merge(id, Value){
var UpResults = BandeauxPortails_Up_Results;
var LowResults = BandeauxPortails_Low_Results;
السطر 500 ⟵ 463:
UpResults[b] = BandeauxPortails_TextChanged_MergeNoaccent(UpResults[b])+"|"+UpResults[b];
}
var ValueSortKey = BandeauxPortails_TextChanged_MergeNoaccent(Value);
UpResults.sort();
for(var b=0;b<UpResults.length;b++){
if (UpResults[b] < ValueSortKey) continue;
var ThisPage = UpResults[b];
ThisPage = ThisPage.replace(/.*\|/g, "");
السطر 510 ⟵ 471:
ThisPage = ThisPage.substr(0,1).toLowerCase() + ThisPage.substr(1,ThisPage.length);
}
if(ResultArray.lengthb<=BandeauxPortails_TailleListe){
ResultArray.push(ThisPage);
}
السطر 522 ⟵ 483:
Value = Value.substr(0,1).toUpperCase() + Value.substr(1,Value.length);
var Redirect = (BandeauxPortails_ShowRedirect ? "" : "&apfilterredir=nonredirects");
var URLurl = mw.config.get( 'wgServer' ) + mw.config.get( 'wgScriptPath' ) + '/api.php?format=xml&action=query&list=allpages&apnamespace=10&aplimit='+BandeauxPortails_TailleListe+ Redirect +'&apfrom=Portail%20'+encodeURIComponent(Value);
var BandeauxPortails_Request = sajax_init_object();
BandeauxPortails_ajax.http({url : URL,
BandeauxPortails_Request.open("GET", url, true);
onSuccess : BandeauxPortails_TextChanged_RequestUpBis,
BandeauxPortails_Request.onreadystatechange = function() {
value : Value,
if(BandeauxPortails_Request.readyState != 4) return;
id : id
BandeauxPortails_Up_Results = [];
});
var ObjetXML = BandeauxPortails_Request.responseXML;
}
var AllPages = ObjetXML.getElementsByTagName('p');
for(var b=0;b<AllPages.length;b++){
function BandeauxPortails_TextChanged_RequestUpBis(Req, data){
var Titre = AllPages[b].getAttribute('title').replace(/قالب:شريط بوابة /, "");
var Value = data.value;
var TitreUp = Titre.substr(0,1).toUpperCase() + Titre.substr(1,Titre.length);
var id = data.id;
if(Titre==TitreUp && Titre.indexOf("قالب:")==-1){
BandeauxPortails_Up_Results = [];
BandeauxPortails_Up_Results.push(Titre);
var ObjetXML = Req.responseXML;
}
var AllPages = ObjetXML.getElementsByTagName('p');
for(var b=0;b<AllPages.length;b++){
var Titre = AllPages[b].getAttribute('title').replace(/Modèle:Portail /, "");
var TitreUp = Titre.substr(0,1).toUpperCase() + Titre.substr(1,Titre.length);
if(Titre==TitreUp && Titre.indexOf("Modèle:")==-1){
BandeauxPortails_Up_Results.push(Titre);
}
BandeauxPortails_TextChanged_running_Up = 0;
}
if(BandeauxPortails_TextChanged_running_Low==0) BandeauxPortails_TextChanged_Merge(id);
BandeauxPortails_TextChanged_running_Up = 0;
};
if(BandeauxPortails_TextChanged_running_Low==0) BandeauxPortails_TextChanged_Merge(id, Value);
BandeauxPortails_Request.send(null);
}
 
السطر 552 ⟵ 509:
Value = Value.substr(0,1).toLowerCase() + Value.substr(1,Value.length);
var Redirect = (BandeauxPortails_ShowRedirect ? "" : "&apfilterredir=nonredirects");
var URLurl = mw.config.get( 'wgServer' ) + mw.config.get( 'wgScriptPath' ) + '/api.php?format=xml&action=query&list=allpages&apnamespace=10&aplimit='+BandeauxPortails_TailleListe+Redirect+'&apfrom=Portailشريط%20بوابة%20'+encodeURIComponent(Value);
var BandeauxPortails_Request = sajax_init_object();
BandeauxPortails_ajax.http({url : URL,
BandeauxPortails_Request.open("GET", url, true);
onSuccess : BandeauxPortails_TextChanged_RequestLowBis,
BandeauxPortails_Request.onreadystatechange = function() {
value : Value,
if(BandeauxPortails_Request.readyState != 4) return;
id : id
BandeauxPortails_Low_Results = [];
});
var ObjetXML = BandeauxPortails_Request.responseXML;
}
var AllPages = ObjetXML.getElementsByTagName('p');
for(var b=0;b<AllPages.length;b++){
function BandeauxPortails_TextChanged_RequestLowBis(Req, data){
var Titre = AllPages[b].getAttribute('title').replace(/قالب:شريط بوابة /, "");
var Value = data.value;
var TitreLow = Titre.substr(0,1).toLowerCase() + Titre.substr(1,Titre.length);
var id = data.id;
if(Titre==TitreLow && Titre.indexOf("قالب:")==-1){
BandeauxPortails_Low_Results = [];
BandeauxPortails_Low_Results.push(Titre);
var ObjetXML = Req.responseXML;
}
var AllPages = ObjetXML.getElementsByTagName('p');
for(var b=0;b<AllPages.length;b++){
var Titre = AllPages[b].getAttribute('title').replace(/Modèle:Portail /, "");
var TitreLow = Titre.substr(0,1).toLowerCase() + Titre.substr(1,Titre.length);
if(Titre==TitreLow && Titre.indexOf("Modèle:")==-1){
BandeauxPortails_Low_Results.push(Titre);
}
BandeauxPortails_TextChanged_running_Low = 0;
}
if(BandeauxPortails_TextChanged_running_Up==0) BandeauxPortails_TextChanged_Merge(id);
BandeauxPortails_TextChanged_running_Low = 0;
};
if(BandeauxPortails_TextChanged_running_Up==0) BandeauxPortails_TextChanged_Merge(id, Value);
BandeauxPortails_Request.send(null);
}
 
window.BandeauxPortails_TextChanged = function(id){
if(BandeauxPortails_TailleListe==0) return;
 
var Select = document.getElementById( id ) ;
var idInput = id.split('Select').join('Input');
السطر 609 ⟵ 563:
var Lien = Li.getElementsByTagName('a')[1];
if(Lien){
var TitreDecode = Lien.title.split('Portailبوابة:').join('');
TitreDecode = TitreDecode.replace(/ \(pageصفحة inexistanteغير موجودة\)/g, "");
var Titre = encodeURIComponent(TitreDecode);
var SpanLien = Lien.parentNode;
SpanLien.id = 'lienPortail_' + a;
SpanLien.innerHTML += '&nbsp;'
+'<a href="javascript:BandeauxPortails_SupprOne(\''+Titre+'\')" title="Supprimerحذف leوصلة bandeau de portailبوابة '+TitreDecode+'">(-)</a>'
+'&nbsp;'
+'<a href="javascript:BandeauxPortails_ModifyOne(\''+a+'\',\''+Titre+'\')" title="Modifierتعديل leوصلة bandeau de portailبوابة '+TitreDecode+'">(±)</a>';
}
}
السطر 624 ⟵ 578:
if($(BandeauInexistant[a-100]).hasClass('new')){
var Lien = BandeauInexistant[(a-100)];
if(Lien.title.indexOf("Portailبوابة:")==-1){
var TitreDecode = Lien.innerHTML.split('Modèleقالب:Portailشريط بوابة').join('');
TitreDecode = TitreDecode.replace(/^ /,'');
Titre = encodeURIComponent(TitreDecode).replace(/'/g,"ZAPPOSTROPHE");
السطر 632 ⟵ 586:
+'<a class="new" href="' + Lien.href + '" title="'+Lien.title+'" >'+TitreDecode+'</a>'
+' • '
+'<a href="javascript:BandeauxPortails_SupprOne(\''+Titre+'\')" title="Supprimerحذف leوصلة bandeau de portailبوابة '+TitreDecode+'">(-)</a>'
+' • '
+'<a href="javascript:BandeauxPortails_ModifyOne(\''+a+'\',\''+Titre+'\')" title="Modifierتعديل leوصلة bandeau de portailبوابة '+TitreDecode+'">(±)</a>';
Lien.parentNode.insertBefore(NewLi, Lien);
Lien.parentNode.removeChild(Lien);
السطر 644 ⟵ 598:
AddLi.innerHTML += '<span class="bandeau-portail-element">'
+'<span class="bandeau-portail-texte" id="BandeauxPortails_Add" >'
+'<a href="javascript:BandeauxPortails_AddOne()" title="Ajouterإضافة unوصلة bandeau de portailبوابة" >(+)</a>'
+'</span>'
+'</span>';