Utilisateur:Appaches/common.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.if(typeof(LiveRC_AddHook)==="function"){ // DÉBUT IF
LiveRC_Config["InstalledLiveRCExtensions"].push("InserisciTemplate");
/* ************************************************************************************************************************************************ */
window.Custom_lstMyTemplate = {};
window.lstMyTemplate = {
'Ébauche': {
template:'Ébauche',
string:'Ébauche',
where:'top',
noinclude: false,
subst: false,
parameters: {
"1": {name: 'Thème 1', type: 'select'},
"2": {name: 'Thème 2', type: 'select'},
"3": {name: 'Thème 3', type: 'select'},
"4": {name: 'Thème 4', type: 'select'},
"5": {name: 'Thème 5', type: 'select'},
"6": {name: 'Thème 6', type: 'select'}
}
},
'À fusionner':{
template:'À fusionner',
string:'À fusionner',
where:'top',
noinclude: false,
subst: false,
parameters: {
"1": {name: 'Article 1', type: 'string'},
"2": {name: 'Article 2', type: 'string'},
"3": {name: 'Article 3', type: 'string'},
"4": {name: 'Article 4', type: 'string'},
"5": {name: 'Article 5', type: 'string'},
"6": {name: 'Article 6', type: 'string'},
"section FT": {name: 'Titre de section', type: 'string'}
}
},
'Fusion technique':{
template:'Fusion technique',
string:'Fusion technique',
where:'top',
noinclude: false,
subst: false,
parameters: {
"1": {name: 'Article 1', type: 'string'},
"2": {name: 'Article 2', type: 'string'},
"3": {name: 'Article 3', type: 'string'},
"4": {name: 'Article 4', type: 'string'},
"5": {name: 'Article 5', type: 'string'},
"6": {name: 'Article 6', type: 'string'},
"section FT": {name: 'Titre de section', type: 'string'}
}
}
};
mw.loader.addStyleTag("" +
".InserisciTemplate_TemplateDiv {" +
" border: 1px solid #808080;" +
" padding: 0.5em;" +
" margin: 2px;" +
"} " +
".InserisciTemplate_template {" +
" font-size:150%;" +
" font-weight:bold;" +
"}"
);
window.AddComplexTemplateExtension_Init = function(){
var GoodActions = (mw.config.get('wgAction')=="view"||mw.config.get('wgAction')=="purge");
if(!GoodActions) return;
var ThisPage = mw.config.get('wgPageName').replace(/_/g, " ");
var lrcPage = ( ThisPage === lrcMakeParam("PageTitle") );
var installPage = ( ThisPage === LiveRC_Config["InstallationPage"]);
var userCustomPage = ( ThisPage === lrcGetNamespaceName(2)+":"+mw.config.get('wgUserName')+LiveRC_Config["UserParamPage"]+".js");
if(!lrcPage && !installPage && !userCustomPage ) return;
AddComplexTemplateExtension_getEbaucheParams();
}
LiveRC_AddHook("AfterGotUserInfos", AddComplexTemplateExtension_Init);
// ===== GET PARAMS FOR {{Ébauche}} =====
window.AddComplexTemplateExtension_getEbaucheParams = function(ParamList, apcontinue){
if(!ParamList){
ParamList = new Array();
ParamList.push("");
}
if(!apcontinue) apcontinue = "";
var URL = lrcGetAPIURL('format=xml&action=query')
+ '&list=allpages'
+ '&apnamespace=10'
+ '&aplimit='+LiveRC_Config["UserInfos"].APIlimit
+ '&apprefix=Ébauche/paramètres%20'
+ '&apfilterredir=nonredirects'
+ apcontinue;
wpajax.http({url:URL,
onSuccess:AddComplexTemplateExtension_getEbaucheParamsDone,
list:ParamList
});
}
window.AddComplexTemplateExtension_getEbaucheParamsDone = function(Req, data){
var ParamList = data.list;
var ObjectXML = Req.responseXML;
var pages = ObjectXML.getElementsByTagName('p');
for(var a=0,l=pages.length;a<l;a++){
var page = pages[a];
var title = page.getAttribute("title").split('Ébauche/paramètres ')[1];
if(!title || title == "?" ) continue;
if(ParamList.indexOf(title)==-1) ParamList.push(title);
}
var MustContinue = ObjectXML.getElementsByTagName('query-continue')[0];
if(MustContinue && MustContinue.getElementsByTagName("allpages")[0]){
var apcontinue = "&apcontinue=" + encodeURIComponent(MustContinue.getElementsByTagName("allpages")[0].getAttribute("apcontinue"));
AddComplexTemplateExtension_getEbaucheParams(ParamList, apcontinue);
}else{
try{
var Params = lstMyTemplate['Ébauche'].parameters;
for(var paramname in Params){
if(!Params.hasOwnProperty(paramname)) continue;
lstMyTemplate['Ébauche'].parameters[paramname].value = ParamList;
}
}catch(e){
lrcDisplayDebug("Failed to get {{Ébauche}} params");
};
InserisciTemplate_PopulateConfigPanel();
}
}
// ####################################################################################################################
// ####################################################################################################################
// Add options in the "Tag" form
window.lrcRunInsertTemplate = function(data){
var TagSelect = document.getElementById('LiveTagReason');
var TemplateList = Custom_lstMyTemplate;
if(!lrcGetObjectLength(TemplateList)) TemplateList = lstMyTemplate;
jQuery.each(TemplateList, function(i, val) {
var optTag = document.createElement('option');
optTag.value = i;
optTag.className = "InserisciTemplateExtension";
optTag.innerHTML = val.string;
TagSelect.appendChild(optTag);
});
// setup dialog
mw.loader.using(['jquery.ui'], function () {
$('<div>')
.attr('id', 'gtb-dialog')
.appendTo('body');
});
}
LiveRC_AddHook("AfterPreviewArticle", lrcRunInsertTemplate);
// Function launched when choosing one of this extension options
getLiveTagFunctions["InserisciTemplateExtension"] = function(page, option){
lrcDisableLink("LiveTagReason");
lrcDisableLink("LiveTagLink");
var TemplateList = Custom_lstMyTemplate;
if(!lrcGetObjectLength(TemplateList)) TemplateList = lstMyTemplate;
var message = TemplateList[option.value];
wpajax.http({ url: mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/api.php?format=xml'
+ '&action=query&prop=info&intoken=edit'
+ '&inprop=protection'
+ '&titles=' + encodeURIComponent(page),
onSuccess: InserisciTemplate_PostTagPage,
page: page,
message: message});
return false;
}
// Get page edit token and protection status
window.InserisciTemplate_PostTagPage = function(xmlreq, data){
var page = data.page;
var message = data.message;
ObjetXML = xmlreq.responseXML;
var Isprotected = false;
var PR = ObjetXML.getElementsByTagName("pr");
for(var a=0,l=PR.length;a<l;a++){
var Type = PR[a].getAttribute("type");
var Level = PR[a].getAttribute("level");
if(Type=="edit" && mw.config.get('wgUserGroups').indexOf(Level)==-1) Isprotected = true;
}
if(Isprotected){
LiveRC_alert("<b>"+lrcMakeText("PROTECTEDPAGE").split("$1").join(page)+"</b>");
return;
}
var Page = ObjetXML.getElementsByTagName("page")[0];
LiveRC_Config["edittoken"] = Page.getAttribute("edittoken");
// show dialog
var tpl = InserisciTemplate_showDialog(message, page);
}
// Show the dialog in order to ask for the template parameters.
window.InserisciTemplate_showDialog = function(data, page) {
var $dialog, $fieldset;
// create the dialog html
$dialog = $('#gtb-dialog').html(lrcMakeText("IT_InsertTemplate1"));
$('<a>')
.attr('href', mw.config.get('wgArticlePath').split("$1").join(lrcGetNamespaceName(10)) + data.template)
.attr('target', '_blank')
.attr('tabindex', '-1')
.css('color', '#2e45ad')
.text(data.template)
.appendTo($dialog);
$dialog.append(lrcMakeText("IT_InsertTemplate2"));
$fieldset = $('<fieldset>').css('border-color', 'gray').appendTo($dialog);
$('<legend>').text(lrcMakeText('IT_InsertTemplateParams')).appendTo($fieldset);
$.each(data.parameters, function (id, val) {
var inputEl = InserisciTemplate_buildInputEl(id, val);
$('<label>')
.attr('for', id)
.text(inputEl.label + ':')
.appendTo($fieldset);
$fieldset
.append('<br/>')
.append(inputEl.el)
.append('<br/>');
});
// show the dialog
var Buttons = new Object();
var OKText = lrcMakeText('OK');
var CancelText = lrcMakeText('Cancel');
Buttons[OKText] = function () {
var params = {};
$dialog.find('input:text,select').each(function () {
params[this.id] = this.value.trim();
});
var text = InserisciTemplate_dumpTemplate(data, params);
$(this).dialog('close');
InserisciTemplate_postTemplate(data, text, page);
};
Buttons[CancelText] = function () {
$(this).dialog('close');
};
$dialog.dialog({
title: lrcMakeIcon("LogoIcon") + ' ' + data.string,
width: 500,
resizable: false,
modal: true,
zIndex: 10000,
buttons: Buttons
});
}
window.InserisciTemplate_buildInputEl = function(id, data) {
var label, inputEl;
if (data.type == 'string') {
label = data.name;
inputEl = $('<input/>')
.attr('id', id)
.attr('type', 'text')
.attr('size', 50)
.attr('value', (data.value || ''));
} else if (data.type == 'select') {
label = data.name;
inputEl = $('<select>')
.attr('id', id)
.css('width', '200px');
$.each(data.value, function (i, option) {
$('<option>')
.html(option)
.appendTo(inputEl);
});
}
return { label: label, el: inputEl };
}
// Check the dialog box and create the wikitext from the template and its params
window.InserisciTemplate_dumpTemplate = function(template, params) {
var text, templateParams = "";
templateParams = LiveRC_FormatTemplateParams(params || {});
text = (template.noinclude ? '<noinclude>' : '') +
'{{' + (template.subst ? 'subst:' : '') +
template.template + '|' +
(templateParams) +
'}}' +
(template.noinclude ? '</noinclude>' : '') + '\n';
return text;
}
window.LiveRC_FormatTemplateParams = function(params) {
var text = new Array();
for(var arg in params){
if(params.hasOwnProperty(arg)) text.push(arg+"="+params[arg]);
}
return text.join("|");
}
// Save the edit
window.InserisciTemplate_postTemplate = function(data, text, page){
lrcDisableLink("LiveTagReason");
lrcDisableLink("LiveTagLink");
var EditParam = new Array();
EditParam["token"] = LiveRC_Config["edittoken"];
if (data.where == 'top')
EditParam["prependtext"] = text+"\n";
else if (data.where == 'bottom')
EditParam["appendtext"] = "\n"+text;
else //default = top
EditParam["prependtext"] = text+"\n";
EditParam["summary"] = lrcMakeText("RESUMESTART") + lrcMakeText("TAG_RESUME") + ' ' + data.template;
EditParam["title"] = page;
EditParam["watchlist"] = "preferences";
EditParam["notminor"] = "1";
EditParam["nocreate"] = "1";
if(lrcMakeParam("BypassWatchdefault")) EditParam["watchlist"] = "nochange";
var Params = new Array();
for(var Param in EditParam){
Params.push(Param+"="+encodeURIComponent(EditParam[Param]));
}
Params = Params.join("&");
var headers = new Array();
headers['Content-Type'] = 'application/x-www-form-urlencoded';
wpajax.http({ url: mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/api.php?action=edit',
method: "POST", headers: headers,
data: Params,
onSuccess: InserisciTemplate_PostTagPageDone,
params:EditParam,
where: data.where
});
}
window.InserisciTemplate_PostTagPageDone = function(Req, data){
var params = data.params;
var where = data.where;
var text = "<b>" +params["title"]+ " : " + lrcMakeText("TAG_DONE") + "</b> <small>("+params[(where=='bottom')?"appendtext":"prependtext"]+")</small>";
LiveRC_alert(text);
}
/* ########################################## CONFIGURATION PANEL ################################## */
// ===== Create a fieldset in the configuration panel =====
window.InserisciTemplate_CreateConfigPanel = function(){
var InserisciTemplateUl = LiveRC_ManageParams_CreateNewListMenu("InserisciTemplateLegend", LiveRC_ManageParams_CreateActionButtons());
if(!InserisciTemplateUl) return;
InserisciTemplateUl.parentNode.removeChild(InserisciTemplateUl);
var ThisFieldset = document.getElementById("LiveRC_OptionsContent_InserisciTemplateLegend");
var TargetFieldset = document.getElementById("LiveRC_OptionsContent_lstParamMenuTabs");
if(ThisFieldset && TargetFieldset) TargetFieldset.parentNode.insertBefore(ThisFieldset, TargetFieldset);
}
LiveRC_AddHook("AfterCreateParamPanel", InserisciTemplate_CreateConfigPanel);
window.InserisciTemplate_PopulateConfigPanel = function(){
var InserisciTemplateFieldset = document.getElementById("LiveRC_OptionsContent_InserisciTemplateLegend");
if(!InserisciTemplateFieldset) InserisciTemplate_CreateConfigPanel();
var Target = lrcGetElementsByClass("LiveRC_ParamMenuPart", InserisciTemplateFieldset, "div")[0];
if(!Target) return;
while(Target.firstChild){ Target.removeChild(Target.firstChild); }
var Templates = Custom_lstMyTemplate;
if(!Templates || lrcGetObjectLength(Templates)==0) Templates = lstMyTemplate;
for(var temp in Templates){
if(!Templates.hasOwnProperty(temp)) continue;
var Template = Templates[temp];
var TemplateForm = InserisciTemplate_CreateTemplateConfigPanel(Template);
Target.appendChild(TemplateForm);
}
var NewTemplate = document.createElement('p');
NewTemplate.id = "InserisciTemplate_AddNeTemplateP";
var NewTemplateLink = document.createElement('a');
NewTemplateLink.innerHTML = "(+)";
NewTemplateLink.title = lrcMakeText("IT_AddTemplate");
NewTemplateLink.href = "javascript:;";
NewTemplateLink.onclick = function(){ InserisciTemplate_AddNewTemplate(); };
NewTemplate.appendChild(NewTemplateLink);
Target.appendChild(NewTemplate);
}
window.InserisciTemplate_AddNewTemplate = function(){
var P = document.getElementById("InserisciTemplate_AddNeTemplateP");
if(!P) return;
var BlankTemplate = { template:'',
string:'',
where:'top',
noinclude: false,
subst: false,
parameters: {}
};
var NewDiv = InserisciTemplate_CreateTemplateConfigPanel(BlankTemplate);
P.parentNode.insertBefore(NewDiv, P);
}
window.InserisciTemplate_DeleteTemplate = function(DeleteLink){
var Div = DeleteLink;
while(Div){
if(lrcHasClass(Div, "InserisciTemplate_TemplateDiv")) break;
Div = Div.parentNode;
}
if(!Div) return;
Div.parentNode.removeChild(Div);
}
window.InserisciTemplate_CreateTemplateConfigPanel = function(Template){
var TemplateDiv = document.createElement('div');
TemplateDiv.className = "InserisciTemplate_TemplateDiv ParamMenuLi";
var Legend = document.createElement('p');
var Title = document.createElement('a')
Title.className = "InserisciTemplate_template";
Title.innerHTML = "{{"+Template.template+"}} ";
Title.target = "_blank";
Title.href = lrcGetPageURL(lrcGetNamespaceName(10)+":"+Template.template);
Title.title = lrcGetNamespaceName(10)+":"+Template.template;
Title.onclick = function(){ liveArticle(lrcGetNamespaceName(10)+":"+Template.template); return false; };
Legend.appendChild(Title);
var DeleteTemplateLink = document.createElement('a');
DeleteTemplateLink.innerHTML = "(-)";
DeleteTemplateLink.title = lrcMakeText("IT_DeleteTemplate");
DeleteTemplateLink.href = "javascript:;";
DeleteTemplateLink.onclick = function(){ InserisciTemplate_DeleteTemplate(this); };
Legend.appendChild(DeleteTemplateLink);
TemplateDiv.appendChild(Legend);
var TemplateForm = document.createElement('form');
TemplateForm.className = "InserisciTemplate_TemplateForm";
TemplateDiv.appendChild(TemplateForm);
var UL = document.createElement('ul');
TemplateForm.appendChild(UL);
var LI_Template = document.createElement('li');
UL.appendChild(LI_Template);
// 'template': name of the template to be inserted
var Label_template = document.createElement('label');
Label_template.setAttribute('for', 'template');
Label_template.innerHTML = "template : ";
LI_Template.appendChild(Label_template);
var Input_template = document.createElement('input');
Input_template.id = 'template';
Input_template.type = "text";
Input_template.value = (Template.template || "");
LI_Template.appendChild(Input_template);
LI_Template.appendChild(document.createTextNode(" - "));
// 'string': option label in the template combo box
var Label_string = document.createElement('label');
Label_string.setAttribute('for', 'string');
Label_string.innerHTML = "string : ";
LI_Template.appendChild(Label_string);
var Input_string = document.createElement('input');
Input_string.id = 'string';
Input_string.type = "text";
Input_string.value = (Template.string || "");
LI_Template.appendChild(Input_string);
LI_Template.appendChild(document.createTextNode(" - "));
// 'where': where to insert the template in the page (top or bottom)
var Label_where = document.createElement('label');
Label_where.setAttribute('for', 'where');
Label_where.innerHTML = "where : ";
LI_Template.appendChild(Label_where);
var Select_where = document.createElement('select');
Select_where.id = 'where';
var Opts = ["top", "bottom"];
for(var a=0,l=Opts.length;a<l;a++){
var OptValue = Opts[a];
var Opt = document.createElement('option');
Opt.innerHTML = OptValue;
Opt.value = OptValue;
if(OptValue == Template.where) Opt.selected = "selected";
Select_where.appendChild(Opt);
}
LI_Template.appendChild(Select_where);
LI_Template.appendChild(document.createTextNode(" - "));
// 'noinclude': whether the template shall be tagged with "noinclude"
var Label_noinclude = document.createElement('label');
Label_noinclude.setAttribute('for', 'noinclude');
Label_noinclude.innerHTML = "noinclude : ";
LI_Template.appendChild(Label_noinclude);
var Input_noinclude = document.createElement('input');
Input_noinclude.id = 'noinclude';
Input_noinclude.type = "checkbox";
if(Template.noinclude) Input_noinclude.checked = "checked";
LI_Template.appendChild(Input_noinclude);
LI_Template.appendChild(document.createTextNode(" - "));
// 'subst': whether the template shall be "substed"
var Label_subst = document.createElement('label');
Label_subst.setAttribute('for', 'subst');
Label_subst.innerHTML = "subst : ";
LI_Template.appendChild(Label_subst);
var Input_subst = document.createElement('input');
Input_subst.id = 'subst';
Input_subst.type = "checkbox";
if(Template.subst) Input_subst.checked = "checked";
LI_Template.appendChild(Input_subst);
// 'parameters'
var LI_parameters = document.createElement('li');
UL.appendChild(LI_parameters);
var Label_parameters = document.createElement('label');
Label_parameters.setAttribute('for', 'parameters');
Label_parameters.innerHTML = "parameters : ";
LI_parameters.appendChild(Label_parameters);
var ParamsUL = document.createElement('ul');
ParamsUL.id = 'parameters';
LI_parameters.appendChild(ParamsUL);
for(var param in Template.parameters){
if(!Template.parameters.hasOwnProperty(param)) continue;
var LI_Param = InserisciTemplate_CreateNewParam(param, Template.parameters[param]);
ParamsUL.appendChild(LI_Param);
}
var Li_NewParam = document.createElement('li');
var Link_NewParam = document.createElement('a');
Link_NewParam.innerHTML = "(+)";
Link_NewParam.title = lrcMakeText("IT_AddParam");
Link_NewParam.href = "javascript:;";
Link_NewParam.onclick = function(){ InserisciTemplate_AddParamToTemplate(this); };
Li_NewParam.appendChild(Link_NewParam);
ParamsUL.appendChild(Li_NewParam);
return TemplateDiv;
}
window.InserisciTemplate_AddParamToTemplate = function(AddParamLink){
var Li = AddParamLink.parentNode;
var NewParams = {name: '', type: 'string', value: ''};
var NewParamLi = InserisciTemplate_CreateNewParam("", NewParams);
Li.parentNode.insertBefore(NewParamLi, Li);
}
window.InserisciTemplate_CreateNewParam = function(param, Params){
var ParamName = Params.name;
var ParamType = Params.type;
var ParamValue = Params.value;
var LI_Param = document.createElement('li');
LI_Param.className = "LI_parameters_li";
var DeleteParamLink = document.createElement('a');
DeleteParamLink.innerHTML = "(-)";
DeleteParamLink.title = lrcMakeText("IT_DeleteParam");
DeleteParamLink.href = "javascript:;";
DeleteParamLink.onclick = function(){ InserisciTemplate_DeleteParamFromTemplate(this); };
LI_Param.appendChild(DeleteParamLink);
LI_Param.appendChild(document.createTextNode(" - "));
//// parameters id
var Label_id = document.createElement('label');
Label_id.setAttribute('for', 'Param_id');
Label_id.innerHTML = "id : ";
LI_Param.appendChild(Label_id);
var Input_id = document.createElement('input');
Input_id.id = 'Param_id';
Input_id.type = "text";
Input_id.value = (param || "");
LI_Param.appendChild(Input_id);
LI_Param.appendChild(document.createTextNode(" - "));
//// parameters.name
var Label_name = document.createElement('label');
Label_name.setAttribute('for', 'Param_name');
Label_name.innerHTML = "name : ";
LI_Param.appendChild(Label_name);
var Input_name = document.createElement('input');
Input_name.id = 'Param_name';
Input_name.type = "text";
Input_name.value = (ParamName || "");
LI_Param.appendChild(Input_name);
LI_Param.appendChild(document.createTextNode(" - "));
//// parameters.type
var Label_type = document.createElement('label');
Label_type.setAttribute('for', 'Param_type');
Label_type.innerHTML = "type : ";
LI_Param.appendChild(Label_type);
var Select_type = document.createElement('select');
Select_type.id = 'Param_type';
var Opts = ["string", "select"];
for(var a=0,l=Opts.length;a<l;a++){
var OptValue = Opts[a];
var Opt = document.createElement('option');
Opt.innerHTML = OptValue;
Opt.value = OptValue;
if(OptValue == ParamType) Opt.selected = "selected";
Select_type.appendChild(Opt);
}
Select_type.onchange = function(){ InserisciTemplate_ChageValueType(this); }
LI_Param.appendChild(Select_type);
LI_Param.appendChild(document.createTextNode(" - "));
//// parameters.value
var Label_value = document.createElement('label');
Label_value.setAttribute('for', 'Param_value');
Label_value.innerHTML = "value : ";
LI_Param.appendChild(Label_value);
if(ParamType == "string"){
var Input_value = document.createElement('input');
Input_value.id = 'Param_value';
Input_value.type = "text";
Input_value.size = "30";
Input_value.value = (ParamValue || "");
LI_Param.appendChild(Input_value);
}else if(ParamType == "select"){
var Select_value = document.createElement('select');
Select_value.id = 'Param_value';
Select_value.style.width = '206px';
var Opts = ParamValue;
if(typeof(Opts) ==="object"){
for(var a=0,l=Opts.length;a<l;a++){
var OptValue = Opts[a];
var Opt = document.createElement('option');
Opt.innerHTML = OptValue;
Opt.value = OptValue;
Select_value.appendChild(Opt);
}
}
LI_Param.appendChild(Select_value);
LI_Param.appendChild(document.createTextNode(" "));
var DeleteOptionLink = document.createElement('a');
DeleteOptionLink.innerHTML = "(-)";
DeleteOptionLink.title = lrcMakeText("IT_DeleteOption");
DeleteOptionLink.href = "javascript:;";
DeleteOptionLink.onclick = function(){ InserisciTemplate_DeleteOptionFromSelect(this); };
LI_Param.appendChild(DeleteOptionLink);
LI_Param.appendChild(document.createTextNode(" "));
var AddOptionLink = document.createElement('a');
AddOptionLink.innerHTML = "(+)";
AddOptionLink.title = lrcMakeText("IT_AddOption");
AddOptionLink.href = "javascript:;";
AddOptionLink.onclick = function(){ InserisciTemplate_AddOptionToSelect(this); };
LI_Param.appendChild(AddOptionLink);
}
return LI_Param;
}
window.InserisciTemplate_ChageValueType = function(Select){
var NewType = Select.value;
var Li = Select.parentNode;
var Labels = Li.getElementsByTagName('label');
var LastLabel = Labels[(Labels.length-1)];
while(LastLabel.nextSibling){ LastLabel.nextSibling.parentNode.removeChild(LastLabel.nextSibling); }
if(NewType == "string"){
var Input_value = document.createElement('input');
Input_value.id = 'Param_value';
Input_value.type = "text";
Input_value.size = "30";
Input_value.value = "";
LastLabel.parentNode.appendChild(Input_value);
}else{
var Select_value = document.createElement('select');
Select_value.id = 'Param_value';
Select_value.style.width = '206px';
var Opt = document.createElement('option');
Opt.innerHTML = "";
Opt.value = "";
Select_value.appendChild(Opt);
LastLabel.parentNode.appendChild(Select_value);
LastLabel.parentNode.appendChild(document.createTextNode(" "));
var DeleteOptionLink = document.createElement('a');
DeleteOptionLink.innerHTML = "(-)";
DeleteOptionLink.title = lrcMakeText("IT_DeleteOption");
DeleteOptionLink.href = "javascript:;";
DeleteOptionLink.onclick = function(){ InserisciTemplate_DeleteOptionFromSelect(this); };
LastLabel.parentNode.appendChild(DeleteOptionLink);
LastLabel.parentNode.appendChild(document.createTextNode(" "));
var AddOptionLink = document.createElement('a');
AddOptionLink.innerHTML = "(+)";
AddOptionLink.title = lrcMakeText("IT_AddOption");
AddOptionLink.href = "javascript:;";
AddOptionLink.onclick = function(){ InserisciTemplate_AddOptionToSelect(this); };
LastLabel.parentNode.appendChild(AddOptionLink);
}
}
window.InserisciTemplate_DeleteOptionFromSelect = function(DeleteOptionLink){
var Li = DeleteOptionLink.parentNode;
var Selects = Li.getElementsByTagName('select');
for(var a=0,l=Selects.length;a<l;a++){
var Select = Selects[a];
if(!Select.id || Select.id != 'Param_value') continue;
var SelectedOpt = Select.value;
var Options = Select.getElementsByTagName('option');
for(var b=0,m=Options.length;b<m;b++){
var thisOpt = Options[b];
if(thisOpt.value != SelectedOpt) continue;
thisOpt.parentNode.removeChild(thisOpt);
}
}
}
window.InserisciTemplate_AddOptionToSelect = function(AddOptionLink){
var AddOptionForm = document.createElement('span');
var AddOptionInput = document.createElement('input');
AddOptionInput.type = 'text';
AddOptionForm.appendChild(AddOptionInput);
var AddOptionInputOK = document.createElement('input');
AddOptionInputOK.type = 'button';
AddOptionInputOK.value = lrcMakeText("OK");
AddOptionInputOK.onclick = function(){ InserisciTemplate_AddOptionToSelect_OK(this); };
AddOptionInputOK.onselect = function(){ InserisciTemplate_AddOptionToSelect_OK(this); };
AddOptionForm.appendChild(AddOptionInputOK);
var AddOptionInputCancel = document.createElement('input');
AddOptionInputCancel.type = 'button';
AddOptionInputCancel.value = lrcMakeText("Cancel");
AddOptionInputCancel.onclick = function(){ InserisciTemplate_AddOptionToSelect_Cancel(this); };
AddOptionInputCancel.onselect = function(){ InserisciTemplate_AddOptionToSelect_Cancel(this); };
AddOptionForm.appendChild(AddOptionInputCancel);
AddOptionLink.parentNode.insertBefore(AddOptionForm, AddOptionLink);
AddOptionLink.style.display = "none";
}
window.InserisciTemplate_AddOptionToSelect_Cancel = function(AddOptionInputCancel){
var Span = AddOptionInputCancel.parentNode;
var Link = Span.nextSibling;
Span.parentNode.removeChild(Span);
Link.style.display = "";
}
window.InserisciTemplate_AddOptionToSelect_OK = function(AddOptionInputOK){
var Input = AddOptionInputOK.previousSibling;
var NewOption = Input.value;
var Li = AddOptionInputOK.parentNode.parentNode;
var Selects = Li.getElementsByTagName('select');
for(var a=0,l=Selects.length;a<l;a++){
var Select = Selects[a];
if(!Select.id || Select.id != 'Param_value') continue;
var Option = document.createElement('option');
Option.innerHTML = NewOption;
Option.value = NewOption;
Select.appendChild(Option);
}
InserisciTemplate_AddOptionToSelect_Cancel(AddOptionInputOK)
}
window.InserisciTemplate_DeleteParamFromTemplate = function(DeleteParamLink){
var Li = DeleteParamLink.parentNode;
Li.parentNode.removeChild(Li);
}
// ===== Check the fieldset and add a text to be saved in /LiveRCparam.js page =====
window.InserisciTemplate_CheckConfigPanel = function(){
var ITConfigPanel = document.getElementById('LiveRC_OptionsContent_InserisciTemplateLegend');
if(!ITConfigPanel) return;
var ElementForms = lrcGetElementsByClass("InserisciTemplate_TemplateForm", ITConfigPanel, "form");
var Items = new Object();
for(var a=0,l=ElementForms.length;a<l;a++){
var ThisForm = ElementForms[a];
var NewItem = new Object();
NewItem.template = getElementWithId('template', 'input', ThisForm).value;
NewItem.string = getElementWithId('string', 'input', ThisForm).value;
NewItem.where = getElementWithId('where', 'select', ThisForm).value;
NewItem.noinclude = (getElementWithId('noinclude', 'input', ThisForm).checked ? true : false );
NewItem.subst = (getElementWithId('subst', 'input', ThisForm).checked ? true : false );
NewItem.parameters = new Object();
var ParamLIs = lrcGetElementsByClass("LI_parameters_li", ThisForm, "li");
for(var b=0,m=ParamLIs.length;b<m;b++){
var ParamLi = ParamLIs[b];
var NewParam = new Object();
var NewParamId = getElementWithId('Param_id', 'input', ParamLi).value;
NewParam.name = getElementWithId('Param_name', 'input', ParamLi).value;
NewParam.type = getElementWithId('Param_type', 'select', ParamLi).value;
if(NewParam.type == "string"){
NewParam.value = getElementWithId('Param_value', 'input', ParamLi).value.unhtmlize();
if(!NewParam.value) delete NewParam.value;
}else{
NewParam.value = new Array();
var ParamValueSelect = getElementWithId('Param_value', 'select', ParamLi);
var Opt = ParamValueSelect.getElementsByTagName('option');
for(var c=0,k=Opt.length;c<k;c++){
NewParam.value.push(Opt[c].value.unhtmlize());
}
}
NewItem.parameters[NewParamId] = NewParam;
}
Items[NewItem.template] = NewItem;
}
var TextToSave = InserisciTemplate_CompareNewParams(Items);
if(!TextToSave) return;
var SavedText = "\nCustom_lstMyTemplate = {\n";
var SavedItems = new Array();
for(var item in Items){
var SavedItem = " '"+item+"':{\n";
var ThisTemplate = Items[item];
for(var tempParam in ThisTemplate){
SavedItem += " "+tempParam+" : ";
var tempParamValue = ThisTemplate[tempParam];
if(tempParam!="parameters"){
SavedItem += ( typeof(tempParamValue)=="string" ? lrcEscapeStrHTML(tempParamValue) : tempParamValue ) + ",\n";
}else{
SavedItem += "{\n";
var tempParameters = new Array();
for(var parameter in tempParamValue){
var thisparam = tempParamValue[parameter];
var ParamItems = new Array();
for(var paramItem in thisparam){
var thisparamItemValue = thisparam[paramItem];
if(paramItem!="value" || typeof(thisparamItemValue)=="string"){
ParamItems.push( paramItem + ":" + lrcEscapeStrHTML(thisparamItemValue) );
}else{
var ThisParamValue = new Array();
for(var a=0,l=thisparamItemValue.length;a<l;a++){
ThisParamValue.push(lrcEscapeStrHTML(thisparamItemValue[a]));
}
ParamItems.push( paramItem +": [" + ThisParamValue.join(",") + "]" );
}
}
tempParameters.push(" " + lrcEscapeStrHTML(parameter) + " : {" + ParamItems.join(",") + "}");
}
SavedItem += tempParameters.join(",\n");
SavedItem += "\n }";
}
}
SavedItem += "\n }";
SavedItems.push(SavedItem);
}
SavedText += SavedItems.join(",\n");
SavedText += "};\n\n";
LiveRC_Config["BeforeParamPanelSavedHookResult"] += SavedText;
}
LiveRC_AddHook("BeforeParamPanelSaved", InserisciTemplate_CheckConfigPanel);
window.InserisciTemplate_CompareNewParams = function(NewItems){
var OldItems = lstMyTemplate;
for(var template in OldItems){
if(typeof(NewItems[template])==="undefined") return true;
for(var item in OldItems[template]){
if(item != "parameters"){
if(OldItems[template][item] !== NewItems[template][item]) return true;
}else{
if(lrcGetObjectLength(OldItems[template][item]) != lrcGetObjectLength(NewItems[template][item])) return true;
for(var param in OldItems[template][item]){
if(!NewItems[template][item][param]) return true;
for(var paramitem in OldItems[template][item][param]){
if(paramitem != "value" || (typeof(OldItems[template][item][param][paramitem]) != "object" && typeof(NewItems[template][item][param][paramitem]) != "object")){
if(OldItems[template][item][param][paramitem] !== NewItems[template][item][param][paramitem]) return true;
}else{
if(OldItems[template][item][param][paramitem].length != NewItems[template][item][param][paramitem].length) return true;
for(var a=0, l=OldItems[template][item][param][paramitem].length;a<l;a++){
if(OldItems[template][item][param][paramitem][a] != NewItems[template][item][param][paramitem][a]) return true;
}
}
}
}
}
}
}
for(var template in NewItems){
if(typeof(OldItems[template])==="undefined") return true;
}
return false;
}
// ===== Vars for configuration panel fieldset =====
// Texts
try{
lrcTexts["IT_InsertTemplate1"] = "Inserisce il template {{";
lrcTexts["IT_InsertTemplate2"] = "}} nella pagina.";
lrcTexts["IT_InsertTemplateParams"] = "Parametri";
lrcTexts["IT_AddTemplate"] = "Aggiungi un nuovo template";
lrcTexts["IT_DeleteTemplate"] = "Cancella questo template";
lrcTexts["IT_AddParam"] = "Aggiungi un nuovo parametro";
lrcTexts["IT_DeleteParam"] = "Cancella questo parametro";
lrcTexts["IT_DeleteOption"] = "Cancella l'opzione selezionata";
lrcTexts["IT_AddOption"] = "Aggiungi una nuova opzione";
}catch(e){ }
// Descriptions
try{
lrcParamDesc["DescIT_InsertTemplate1"] = "[InserisciTemplate] Inserisci la parte 1 della frase del template";
lrcParamDesc["DescIT_InsertTemplate2"] = "[InserisciTemplate] Inserisci la parte 2 della frase del template";
lrcParamDesc["DescIT_InsertTemplateParams"] = "[InserisciTemplate] Parametri";
lrcParamDesc["DescIT_AddTemplate"] = "[InserisciTemplate] Frase Aggiungi un nuovo template";
lrcParamDesc["DescIT_DeleteTemplate"] = "[InserisciTemplate] Frase Cancella questo template";
lrcParamDesc["DescIT_AddParam"] = "[InserisciTemplate] Frase Aggiungi un nuovo parametro";
lrcParamDesc["DescIT_DeleteParam"] = "[InserisciTemplate] Frase Cancella questo parametro";
lrcParamDesc["DescIT_DeleteOption"] = "[InserisciTemplate] Frase Cancella l'opzione selezionata";
lrcParamDesc["DescIT_AddOption"] = "[InserisciTemplate] Frase Aggiungi una nuova opzione";
lrcParamDesc["DescInserisciTemplateLegend"] = "Parametri per l'estensione InserisciTemplate";
lrcParamDesc["DescInserisciTemplateLegend_short"] = "InserisciTemplate";
}catch(e){ }
// Hide/Show tabs panel item
addParamMenuTab("InserisciTemplateLegend", true);
/* ************************************************************************************************************************************************ */
} // FIN IF
<source lang=javascript> */
if(typeof(LiveRC_AddHook)==="function"){ // DÉBUT IF
LiveRC_Config["InstalledLiveRCExtensions"].push("HotCatsMulti");
/* ************************************************************************************************************************************************ */
///////////////////////// VARIABLES ////////////////////////////////////////////////////////
//// PARAMÈTRES PERSONNALISABLES ////
window.lrcHotCatsVariables = {
HC_MinoreditState : "1", // Modification mineure ( -1 = défaut ; 0 = jamais ; 1 = toujours )
HC_WatchthisState : "nochange", // Suivre la page modifiée ( "watch", "unwatch", "preferences", "nochange" )
HC_docURL : "//fr.wikipedia.org/wiki/Projet:JavaScript/Notices/HotCatsMulti#Fonctionnement", // Lien vers la documentation
HC_NoCatTemplate : "À catégoriser",
HC_suggestion_delay : 200, // Délai avant les suggestions, en ms
HC_list_size : 10, // Taille de la liste déroulante (en items)
HC_list_items : 50, // Nombre de catégories suggérées lors de la recherche (maximum autorisé : 4999 pour les sysop et les bots, 499 pour les autres utilisateurs)
HC_list_down : false, // Permet d'afficher la liste de suggestion vers le bas
HC_autocommit : true, // Permet d'enregistrer automatiquement la modification
HC_AutoMulti : false, // Activation automatique du mode "multi"
HC_ShowLegend : false, // Afficher de la légende
HC_ShowInline : false, // Afficher sur une seule ligne
HC_SkipRecap : false // Ne pas afficher le récapitulatif
}
//// TEXTES ////
lrcTexts["HC_MultiLinkText"] = "(±)";
lrcTexts["HC_MultiLinkTitle"] = "Modifier plusieurs catégories";
lrcTexts["HC_MultiInputOK"] = "Valider";
lrcTexts["HC_MultiInputCancel"] = "Annuler";
lrcTexts["HC_Minoredit"] = "Édition mineure";
lrcTexts["HC_Watchthis"] = "Suivre cette page";
lrcTexts["HC_RadioNoChange"] = "Pas de changement";
lrcTexts["HC_RadioDefault"] = "Préférences";
lrcTexts["HC_RadioYes"] = "Oui";
lrcTexts["HC_RadioNo"] = "Non";
lrcTexts["HC_LabelText"] = "Légende";
lrcTexts["HC_LabelTitle"] = "Voir la page d’aide (nouvelle fenêtre)";
lrcTexts["HC_DefaultSortText"] = "(D)";
lrcTexts["HC_DefaultSortTitle"] = "Ajouter/modifier/supprimer la clef de tri principale";
lrcTexts["HC_RemoveLinkText"] = "(–)";
lrcTexts["HC_RemoveLinkTitle"] = "Supprimer la catégorie";
lrcTexts["HC_RemoveConfirm"] = "Voulez-vous vraiment supprimer la catégorie";
lrcTexts["HC_ModifyLinkText"] = "(±)";
lrcTexts["HC_ModifyLinkTitle"] = "Modifier la catégorie";
lrcTexts["HC_AddLinkText"] = "(+)";
lrcTexts["HC_AddLinkTitle"] = "Ajouter une catégorie";
lrcTexts["HC_ParentTitle"] = "Suggérer les catégories-mères";
lrcTexts["HC_ParentText"] = "↑";
lrcTexts["HC_DaughterTitle"] = "Suggérer les catégories-filles";
lrcTexts["HC_DaughterText"] = "↓";
lrcTexts["HC_InputOK"] = "OK";
lrcTexts["HC_InputCancel"] = "Annuler";
lrcTexts["HC_RecapTitle"] = 'Récapitulatif :';
lrcTexts["HC_RecapRemove"] = 'Catégories à supprimer';
lrcTexts["HC_RecapModify"] = 'Catégories à modifier';
lrcTexts["HC_RecapAdd"] = 'Catégories à ajouter';
lrcTexts["HC_RecapSort"] = 'Clef de tri globale';
lrcTexts["HC_AlertProblem1"] = "Impossible de trouver la catégorie « $1 » - elle est peut-être incluse via un modèle.";
lrcTexts["HC_AlertProblem2"] = "La catégorie « $1 » est déjà présente.";
lrcTexts["HC_AlertProblem3"] = "Plusieurs occurrences de la catégorie « $1 » trouvées.";
UnTranslatedTexts["HC_ResumeScript"] = "[[Projet:JavaScript/Notices/HotCatsMulti|HotCatsMulti]] : ";
// Paramètres de personnalisation
lrcParamDesc["DesclrcHotCatsVariables"] = "Paramètres de l’extension HotCats";
lrcParamDesc["DesclrcHotCatsVariables_short"] = "HotCats";
lrcParamDesc["DescHC_MinoreditState"] = "Modification mineure";
lrcParamDesc["DescHC_WatchthisState"] = "Suivre la page modifiée";
lrcParamDesc["DescHC_suggestion_delay"] = "Délai avant les suggestions, en ms";
lrcParamDesc["DescHC_list_size"] = "Nombre d’items dans la liste déroulante";
lrcParamDesc["DescHC_list_items"] = "Nombre de catégories suggérées lors de la recherche";
lrcParamDesc["DescHC_docURL"] = "Lien vers la documentation";
lrcParamDesc["DescHC_list_down"] = "Permet d’afficher la liste de suggestion vers le bas";
lrcParamDesc["DescHC_autocommit"] = "Permet d’enregistrer automatiquement la modification";
lrcParamDesc["DescHC_AutoMulti"] = "Activation automatique du mode \"multi\"";
lrcParamDesc["DescHC_ShowLegend"] = "Afficher de la légende";
lrcParamDesc["DescHC_ShowInline"] = "Afficher sur une seule ligne";
lrcParamDesc["DescHC_SkipRecap"] = "Ne pas demander de confirmation";
lrcParamDesc["DescHC_MultiLinkText"] = "[HotCatsMulti] Texte du lien pour modifier plusieurs catégories";
lrcParamDesc["DescHC_MultiLinkTitle"] = "[HotCatsMulti] Infobulle du lien pour modifier plusieurs catégories";
lrcParamDesc["DescHC_MultiInputOK"] = "[HotCatsMulti] Texte du bouton de validation";
lrcParamDesc["DescHC_MultiInputCancel"] = "[HotCatsMulti] Texte du bouton d’annulation";
lrcParamDesc["DescHC_Minoredit"] = "[HotCatsMulti] Infobulle pour boutons \"Édition mineure\"";
lrcParamDesc["DescHC_Watchthis"] = "[HotCatsMulti] Infobulle pour boutons \"Suivre cette page\"";
lrcParamDesc["DescHC_RadioNoChange"] = "[HotCatsMulti] Infobulle pour boutons : Pas de changement";
lrcParamDesc["DescHC_RadioDefault"] = "[HotCatsMulti] Infobulle pour boutons : Préférences";
lrcParamDesc["DescHC_RadioYes"] = "[HotCatsMulti] Infobulle pour boutons : Oui";
lrcParamDesc["DescHC_RadioNo"] = "[HotCatsMulti] Infobulle pour boutons : Non";
lrcParamDesc["DescHC_LabelText"] = "[HotCatsMulti] Titre de la légende";
lrcParamDesc["DescHC_LabelTitle"] = "[HotCatsMulti] Infobulle du lien vers la page de documentation";
lrcParamDesc["DescHC_DefaultSortText"] = "[HotCatsMulti] Texte du lien pour ajouter/modifier/supprimer la clef de tri principale";
lrcParamDesc["DescHC_DefaultSortTitle"] = "[HotCatsMulti] Infobulle du lien pour ajouter/modifier/supprimer la clef de tri principale";
lrcParamDesc["DescHC_RemoveLinkText"] = "[HotCatsMulti] Texte du lien pour supprimer la catégorie";
lrcParamDesc["DescHC_RemoveLinkTitle"] = "[HotCatsMulti] Infobulle du lien pour supprimer la catégorie";
lrcParamDesc["DescHC_RemoveConfirm"] = "[HotCatsMulti] Confirmation de suppression de catégorie";
lrcParamDesc["DescHC_ModifyLinkText"] = "[HotCatsMulti] Texte du lien pour modifier la catégorie";
lrcParamDesc["DescHC_ModifyLinkTitle"] = "[HotCatsMulti] Infobulle du lien pour modifier la catégorie";
lrcParamDesc["DescHC_AddLinkText"] = "[HotCatsMulti] Texte du lien pour ajouter une catégorie";
lrcParamDesc["DescHC_AddLinkTitle"] = "[HotCatsMulti] Infobulle du lien pour ajouter une catégorie";
lrcParamDesc["DescHC_ParentTitle"] = "[HotCatsMulti] Infobulle du bouton pour suggérer les catégories-mères";
lrcParamDesc["DescHC_ParentText"] = "[HotCatsMulti] Texte du bouton pour suggérer les catégories-mères";
lrcParamDesc["DescHC_DaughterTitle"] = "[HotCatsMulti] Infobulle du bouton pour suggérer les catégories-filles";
lrcParamDesc["DescHC_DaughterText"] = "[HotCatsMulti] Texte du bouton pour suggérer les catégories-filles";
lrcParamDesc["DescHC_InputOK"] = "[HotCatsMulti] Texte du bouton de validation";
lrcParamDesc["DescHC_InputCancel"] = "[HotCatsMulti] Texte du bouton d’annulation";
lrcParamDesc["DescHC_RecapTitle"] = "[HotCatsMulti] Titre du récapitulatif";
lrcParamDesc["DescHC_RecapRemove"] = "[HotCatsMulti] Section \"Catégories à supprimer\" du récapitulatif";
lrcParamDesc["DescHC_RecapModify"] = "[HotCatsMulti] Section \"Catégories à modifier\" du récapitulatif";
lrcParamDesc["DescHC_RecapAdd"] = "[HotCatsMulti] Section \"Catégories à ajouter\" du récapitulatif";
lrcParamDesc["DescHC_RecapSort"] = "[HotCatsMulti] Section \"Clef de tri globale\" du récapitulatif";
lrcParamDesc["DescHC_AlertProblem1"] = "[HotCatsMulti] Alerte \"Impossible de trouver la catégorie « $1 » - elle est peut-être incluse via un modèle.\"";
lrcParamDesc["DescHC_AlertProblem2"] = "[HotCatsMulti] Alerte \"La catégorie « $1 » est déjà présente.\"";
lrcParamDesc["DescHC_AlertProblem3"] = "[HotCatsMulti] Alerte \"Plusieurs occurrences de la catégorie « $1 » trouvées.\"";
lrcParamDesc["DescHC_ResumeScript"] = "[HotCatsMulti] HotCats : Début du résumé de modif";
lrcParamDesc["DescHC_NoCatTemplate"] = "[HotCatsMulti] Modèle pour pages sans catégorie";
//// VARIABLES NON PERSONNALISABLES ////
LiveRC_Config["HotCats"] = new Object();
LiveRC_Config["HotCats"]["Matrix"] = {
Span : new Array(),
CatLink : new Array(),
CatLinkIsRed : new Array(),
RemoveLink : new Array(),
ModifyLink : new Array(),
Form : new Array(),
Text : new Array(),
List : new Array(),
Exist : new Array(),
CatName : new Array(),
Sort : new Array()
};
LiveRC_Config["HotCats"]["Multi_Edit"] = false ;
LiveRC_Config["HotCats"]["suggest_running"] = 0 ;
LiveRC_Config["HotCats"]["running"] = 0 ;
LiveRC_Config["HotCats"]["last_v"] = "" ;
LiveRC_Config["HotCats"]["last_key"] = "";
LiveRC_Config["HotCats"]["OldDefaultSort"] = "";
LiveRC_Config["HotCats"]["OldPageContent"] = false;
LiveRC_Config["HotCats"]["Form_Index"] = 1000;
LiveRC_Config["HotCats"]["NewCatsIndex"] = 2000;
LiveRC_Config["HotCats"]["CurrentPage"] = false;
LiveRC_Config["HotCats"]["WatchStatus"] = false;
LiveRC_Config["HotCats"]["MinorEditStatus"] = false;
LiveRC_Config["HotCats"]["IsEditMode"] = false;
LiveRC_Config["HotCats"]["CaseSensitive"] = false;
LiveRC_Config["HotCats"]["HiddenCatsLinkID"] = "mw-hidden-cats-link"; // ID du lien pour les catégories cachées
LiveRC_Config["HotCats"]["ChangesToDo"] = {
RemovedCategories : false,
ModifiedCategories_from : false,
ModifiedCategories_to : false,
AddedCategories : false,
DefaultSort : false
};
// Messages système
LiveRC_addNeededMessages("pagecategorieslink");
LiveRC_addNeededMessages("categories");
LiveRC_addNeededMessages("pagecategories");
LiveRC_addNeededMessages("red-link-title");
// Mots magiques
LiveRC_addNeededMagicWord("defaultsort");
window.lrcHotCatsVariables_Custom = new Object();
window.Custom_lrcHotCatsVariables = new Object();
window.LiveRC_getHotCatsVariables = function(id){
if(typeof(lrcHotCatsVariables_Custom[id])!="undefined") return lrcHotCatsVariables_Custom[id];
if(typeof(Custom_lrcHotCatsVariables[id])!="undefined") return Custom_lrcHotCatsVariables[id];
return lrcHotCatsVariables[id];
}
///////////////////////// LANCEMENT ////////////////////////////////////////////////////////
mw.loader.addStyleTag("" +
".RemovedCategory {" +
" text-decoration:line-through;" +
" background-color:#FF9999;" +
"} " +
".ModifiedCategory {" +
" background-color:#CCCC77;" +
"} " +
".AddedCategory {" +
" background-color:#99FF99;" +
"} " +
".ModifiedDefaultSort {" +
" background-color:#CCCC77;" +
"} " +
"#catlinks {" +
" text-align:left !important;" +
"} " +
"#catlinks div {" +
" text-align:left !important;" +
"} "
);
window.lrcRunHotCatsMulti = function(data){
LiveRC_Config["HotCats"]["IsEditMode"] = false;
LiveRC_Config["HotCats"]["Multi_Edit"] = false
LiveRC_Config["HotCats"]["WatchStatus"] = LiveRC_getHotCatsVariables("HC_WatchthisState");
LiveRC_Config["HotCats"]["MinorEditStatus"] = LiveRC_getHotCatsVariables("HC_MinoreditState");
var Preview = document.getElementById("livePreview");
if(!Preview || !data) return;
LiveRC_Config["HotCats"]["CurrentPage"] = data.page
lrcHotCats_getOldPageContent(LiveRC_Config["HotCats"]["CurrentPage"], true);
for(var El in LiveRC_Config["HotCats"]["Matrix"]){
while(LiveRC_Config["HotCats"]["Matrix"][El].length!=0) LiveRC_Config["HotCats"]["Matrix"][El].pop();
}
for(var El in LiveRC_Config["HotCats"]["ChangesToDo"]){
LiveRC_Config["HotCats"]["ChangesToDo"][El] = false;
}
var catlinks = getElementWithId("catlinks", "div", Preview);
if(!catlinks){
catlinks = document.createElement("div");
catlinks.id = "catlinks";
catlinks.className = "catlinks";
catlinks = Preview.appendChild(catlinks);
}else{
lrcRemoveClass(catlinks, "catlinks-allhidden");
}
var catline = getElementWithId('mw-normal-catlinks', "div", catlinks);
if ( !catline || catline == null || typeof catline == 'undefined' ){
catline = catlinks.insertBefore(document.createElement("div"), catlinks.firstChild);
catline.id = "mw-normal-catlinks";
}
lrcHotCats_append_firstlink(catline);
lrcHotCats_modify_existing(catline);
lrcHotCats_append_add_span(catline);
lrcHotCats_append_multiedit_span(catline);
}
window. lrcHotCats_AvoidEditMode = function(){
LiveRC_Config["HotCats"]["IsEditMode"] = false;
}
window.lrcHotCats_getCatCase = function(){
if( LiveRC_Config["MediawikiNamespaces"]["14"]["case"] == "case-sensitive") LiveRC_Config["HotCats"]["CaseSensitive"] = true;
}
////////////////////////////////////////// HOOKS
LiveRC_AddHook("AfterPreviewArticle", lrcRunHotCatsMulti);
LiveRC_AddHook("AfterPreviewDiff", lrcHotCats_AvoidEditMode);
LiveRC_AddHook("AfterPreviewHistory", lrcHotCats_AvoidEditMode);
LiveRC_AddHook("AfterPreviewContribs", lrcHotCats_AvoidEditMode);
LiveRC_AddHook("AfterPreviewDeletedContribs", lrcHotCats_AvoidEditMode);
LiveRC_AddHook("AfterPreviewLog", lrcHotCats_AvoidEditMode);
LiveRC_AddHook("AfterPreviewFilter", lrcHotCats_AvoidEditMode);
LiveRC_AddHook("AfterPreviewMove", lrcHotCats_AvoidEditMode);
LiveRC_AddHook("AfterPreviewProtect", lrcHotCats_AvoidEditMode);
LiveRC_AddHook("AfterPreviewDelete", lrcHotCats_AvoidEditMode);
LiveRC_AddHook("AfterPreviewBlock", lrcHotCats_AvoidEditMode);
LiveRC_AddHook("AfterPreviewRevisiondelete", lrcHotCats_AvoidEditMode);
LiveRC_AddHook("AfterPreviewWhatlinkshere", lrcHotCats_AvoidEditMode);
LiveRC_AddHook("AfterPreviewFeedback", lrcHotCats_AvoidEditMode);
LiveRC_AddHook("AfterPreviewStabilization", lrcHotCats_AvoidEditMode);
LiveRC_AddHook("AfterPreviewInterwiki", lrcHotCats_AvoidEditMode);
LiveRC_AddHook("AfterOptions", lrcHotCats_getCatCase);
window.defineCustomHotCatsVariable = function(textcode, HotCatsVariable){
if(typeof(lrcHotCatsVariables[textcode])!=="undefined") Custom_lrcHotCatsVariables[textcode] = HotCatsVariable;
}
LiveRC_AddHook("AfterFillParamPanel", function(){
LiveRC_ManageParams_Fill(lrcHotCatsVariables, "lrcHotCatsVariables", "defineCustomHotCatsVariable");
});
window.lrcHotCats_TransformOptions = function(){
var InputsToTransform = new Array();
var WLOptions = [
{value:"nochange",text:lrcMakeText("HC_RadioNoChange")},
{value:"preferences",text:lrcMakeText("HC_RadioDefault")},
{value:"unwatch",text:lrcMakeText("HC_RadioNo")},
{value:"watch",text:lrcMakeText("HC_RadioYes")}
];
InputsToTransform["HC_WatchthisState"] = WLOptions;
var MEOptions = [
{value:"-1",text:lrcMakeText("HC_RadioDefault")},
{value:"0",text:lrcMakeText("HC_RadioNo")},
{value:"1",text:lrcMakeText("HC_RadioYes")}
];
InputsToTransform["HC_MinoreditState"] = MEOptions;
LiveRC_ManageParams_CheckInputsToTransform(InputsToTransform)
}
LiveRC_AddHook("AfterCreateParamPanel", lrcHotCats_TransformOptions);
//<source lang=javascript><pre><nowiki>
// RÉCUPÉRATION CLEF DE TRI GLOBALE
window.lrcHotCats_defaultSort_getOld = function(ID){
var Page = LiveRC_Config["HotCats"]["OldPageContent"];
for(var a=0;a<LiveRC_Config["MediawikiMagicwords"]["defaultsort"].length;a++){
var DefaultSortWord = LiveRC_Config["MediawikiMagicwords"]["defaultsort"][a];
if(Page.indexOf('{{'+DefaultSortWord)!=-1){
var AvantCle = Page.substring(0,Page.indexOf('{{'+DefaultSortWord));
var Cle = Page.split(AvantCle).join('');
Cle = Cle.substring(0,Cle.indexOf("}"));
Cle = Cle.substring((Cle.indexOf(":")+1),Cle.length);
LiveRC_Config["HotCats"]["OldDefaultSort"] = Cle;
var OldDefaultSpan = document.getElementById(ID);
if(OldDefaultSpan) OldDefaultSpan.innerHTML = Cle;
return;
}
}
}
// RÉCUPÉRATION CLEF DE TRI PARTICULIÈRE
window.lrcHotCats_defaultSort_getOneOld = function(TargetCategory){
var Page = LiveRC_Config["HotCats"]["OldPageContent"];
var Key = "";
var CurrentKey = "";
var REGEXP = lrcHotCats_CreateRegExp(TargetCategory);
var matches = Page.match(REGEXP);
if (matches != null && matches.length == 1){
CurrentKey = Page.replace(REGEXP, "DEFAULTKEYstart$2DEFAULTKEYend");
if((CurrentKey.indexOf("DEFAULTKEYstart")!=-1)&&(CurrentKey.indexOf("DEFAULTKEYend")!=-1)){
var Before = CurrentKey.split("DEFAULTKEYstart")[0]+"DEFAULTKEYstart";
var After = "DEFAULTKEYend"+CurrentKey.split("DEFAULTKEYend")[1];
CurrentKey = CurrentKey.split(Before).join("");
CurrentKey = CurrentKey.split(After).join("");
if(CurrentKey.indexOf('|')!=-1) Key = CurrentKey;
}
}
return Key;
}
// RÉCUPÉRATION DU CONTENU ACTUEL DE LA PAGE PREVISUALISEE (asynchrone ou synchrone)
window.lrcHotCats_getOldPageContent = function(Page, Mode){
var URL = lrcGetUglyPageURL(Page,'&action=raw');
wpajax.http({ url: URL,
async : Mode,
onSuccess: lrcHotCats_UpdateOldPageContent
});
}
window.lrcHotCats_UpdateOldPageContent = function(Req, data){
try{
LiveRC_Config["HotCats"]["OldPageContent"] = Req.responseText;
}catch(e){
LiveRC_Config["HotCats"]["OldPageContent"] = "";
}
lrcHotCats_defaultSort_getOld("OldDefaultSortSpan");
return LiveRC_Config["HotCats"]["OldPageContent"];
}
///////////////////////// TRANSFORMATIONS ////////////////////////////////////////////////////////
// CRÉATION DU LIEN "CATÉGORIES"
window.lrcHotCats_append_firstlink = function( catline, plural) {
if (!catline.firstChild ){
var a = document.createElement('a');
a.href = lrcGetPageURL(lrcGetMediawikiMessage("pagecategorieslink"));
a.title = lrcGetMediawikiMessage("categories", true);
a.appendChild(document.createTextNode(lrcHotCats_PLURAL(lrcGetMediawikiMessage("pagecategories", true), plural)));
catline.appendChild(a);
catline.appendChild(document.createTextNode(' : '));
}else{
catline.firstChild.title = lrcGetMediawikiMessage("categories", true);
}
}
// MODIFICATION DE LA BARRE DE CATÉGORIES
window.lrcHotCats_modify_existing = function( catline) {
var ul = catline.getElementsByTagName ( "ul" )[0];
if(!ul){ // ( Mediawiki < 1.18 )
var spans = catline.getElementsByTagName ( "span" );
for ( var i = 0, l= spans.length; i < l ; i++ ) {
lrcHotCats_modify_span ( spans[i], i ) ;
}
return;
}
var lis = ul.getElementsByTagName ( "li" ) ;
for ( var i = 0, l= lis.length; i < l ; i++ ) {
var li = lis[i];
var cat_link = li.getElementsByTagName('a')[0];
var span = document.createElement('span');
li.appendChild(span);
span.appendChild(cat_link);
lrcHotCats_modify_span ( span, i ) ;
}
}
// AJOUT DES LIENS (–) ET (±)
window.lrcHotCats_modify_span = function( span, i ) {
var cat_link = span.getElementsByTagName('a')[0];
if(!cat_link) return;
cat_link.id = "CatLink_"+i;
var cat_title = cat_link.title;
if(!cat_title) return;
cat_title = cat_title.split(lrcGetNamespaceName(14)+':').join('');
cat_title = cat_title.replace(lrcGetMediawikiMessage("red-link-title").split('$1').join(''), "").split(" (live)").join("");
var sep1 = document.createTextNode ( " " ) ;
span.id = "lrcHotCats_Span_" + i ;
var a1 = document.createTextNode ( "(–)" ) ;
var remove_link = document.createElement ( "a" ) ;
var remove_id = "lrcHotCats_remove_" + i ;
remove_link.id = remove_id;
remove_link.href = "javascript:lrcHotCats_remove(\"" + cat_title + "\","+i+");" ;
remove_link.title = lrcMakeText("HC_RemoveLinkTitle")+" « "+cat_title+" »";
remove_link.appendChild ( a1 ) ;
span.appendChild ( sep1 ) ;
span.appendChild ( remove_link ) ;
var mod_id = "lrcHotCats_modify_" + i ;
var sep2 = document.createTextNode ( " " ) ;
var a2 = document.createTextNode ( "(±)" ) ;
var modify_link = document.createElement ( "a" ) ;
modify_link.id = mod_id ;
modify_link.href = "javascript:lrcHotCats_modify(\""+cat_title+"\"," + i + ");" ;
modify_link.title = lrcMakeText("HC_ModifyLinkTitle")+" « "+cat_title+" »";
modify_link.appendChild ( a2 ) ;
span.appendChild ( sep2 ) ;
span.appendChild ( modify_link ) ;
LiveRC_Config["HotCats"]["Matrix"].Span[i] = span;
LiveRC_Config["HotCats"]["Matrix"].CatLink[i] = cat_link;
LiveRC_Config["HotCats"]["Matrix"].CatLinkIsRed[i] = !!(lrcHasClass(cat_link, "new"));
LiveRC_Config["HotCats"]["Matrix"].CatName[i] = cat_title;
LiveRC_Config["HotCats"]["Matrix"].RemoveLink[i] = remove_link;
LiveRC_Config["HotCats"]["Matrix"].ModifyLink[i] = modify_link;
}
// AJOUT DU LIEN (+)
window.lrcHotCats_append_add_span = function(catline) {
var Spans = catline.getElementsByTagName('span');
var span_add = document.createElement('span');
var a_add = document.createElement ( "a" ) ;
var a_text = document.createTextNode ( lrcMakeText("HC_AddLinkText") ) ;
span_add.id = "lrcHotCats_add" ;
a_add.id = "lrcHotCats_addlink" ;
a_add.href = "javascript:lrcHotCats_add_new("+LiveRC_Config["HotCats"]["Form_Index"]+")" ;
a_add.title = lrcMakeText("HC_AddLinkTitle") ;
a_add.appendChild( a_text ) ;
span_add.appendChild( a_add ) ;
if(Spans[0]) catline.appendChild(document.createTextNode(' | '));
catline.appendChild(span_add);
LiveRC_Config["HotCats"]["Matrix"].Span[LiveRC_Config["HotCats"]["Form_Index"]] = span_add;
LiveRC_Config["HotCats"]["Form_Index"]++
}
///////////////////////// ÉDITION SIMPLE ////////////////////////////////////////////////////////
// FONCTION DE RETRAIT D'UNE CATÉGORIE
window.lrcHotCats_remove = function( cat_title, Index ) {
if(!LiveRC_Config["HotCats"]["Multi_Edit"]){
var RemovedCategories = new Array();
var ModifiedCategories_from = new Array();
var ModifiedCategories_to = new Array();
var AddedCategories = new Array();
RemovedCategories.push(cat_title);
var TextRecap = lrcMakeText("HC_RemoveConfirm")+" « " + cat_title + " » ?";
var LaunchEditFunction = function(){
lrcHotCats_Edit(RemovedCategories, ModifiedCategories_from, ModifiedCategories_to, AddedCategories, LiveRC_Config["HotCats"]["OldDefaultSort"]);
}
if(LiveRC_getHotCatsVariables("HC_SkipRecap")){
LaunchEditFunction();
}else{
LiveRC_confirm(TextRecap, LaunchEditFunction);
}
}else{
var Span = LiveRC_Config["HotCats"]["Matrix"].Span[Index];
if(lrcHasClass(Span, "AddedCatSpan")){
Span.parentNode.removeChild(Span);
}else{
var FirstLink = LiveRC_Config["HotCats"]["Matrix"].CatLink[Index];
var OldCat = LiveRC_Config["HotCats"]["Matrix"].CatName[Index];
FirstLink.innerHTML = OldCat;
FirstLink.title = lrcGetNamespaceName(14)+':'+OldCat;
FirstLink.href = lrcGetPageURL(lrcGetNamespaceName(14)+':'+OldCat);
lrcAddClass(FirstLink, 'RemovedCategory');
lrcRemoveClass(FirstLink, "ModifiedCategory")
if(LiveRC_Config["HotCats"]["Matrix"].CatLinkIsRed[Index]){
if(!lrcHasClass(FirstLink, "new")) lrcAddClass(FirstLink, "new");
}else{
lrcRemoveClass(FirstLink, "new");
}
}
lrcHotCats_Multi_CheckForChanges();
}
}
// MODIFICATION D'UNE CATÉGORIE
window.lrcHotCats_modify = function( catname, Index ) {
var link = LiveRC_Config["HotCats"]["Matrix"].CatLink[Index] ;
var span = LiveRC_Config["HotCats"]["Matrix"].Span[Index] ;
var Links = span.getElementsByTagName('a');
for(a=0;a<Links.length;a++){
Links[a].style.display = "none";
}
span.firstChild.style.display = "none" ;
lrcHotCats_create_new_span ( span , catname, Index ) ;
lrcHotCatsText_changed(Index);
}
// AJOUT D'UNE CATÉGORIE
window.lrcHotCats_add_new = function(Index) {
var span_add = document.getElementById( "lrcHotCats_add" ) ;
span_add.getElementsByTagName('a')[0].style.display = "none";
lrcHotCats_create_new_span ( span_add , "", Index ) ;
}
// CRÉATION DU FORMULAIRE DE MODIFICATION OU D'AJOUT D'UNE CATÉGORIE
window.lrcHotCats_create_new_span = function( thespan , init_text, Index ) {
var DefaultSort = lrcHotCats_defaultSort_getOneOld(init_text);
if(lrcHasClass(thespan, "AddedCatSpan" )) DefaultSort = LiveRC_Config["HotCats"]["Matrix"].Sort[Index];
LiveRC_Config["HotCats"]["Matrix"].CatName[Index] = init_text;
var form = document.createElement ( "form" ) ;
form.id = "lrcHotCats_form" + Index;
form.method = "post" ;
form.onsubmit = function () {
var FormIndex = lrcHotCats_getIndex(this);
lrcHotCats_ok(FormIndex);
return false;
} ;
form.style.display = "inline" ;
var text = document.createElement ( "input" ) ;
text.size = 40 ;
text.id = "lrcHotCats_text" + Index ;
text.type = "text" ;
text.value = init_text + DefaultSort ;
text.onkeyup = function () {
var FormIndex = lrcHotCats_getIndex(this);
window.setTimeout("lrcHotCatsText_changed("+FormIndex+");", LiveRC_getHotCatsVariables("HC_suggestion_delay") );
} ;
var list = document.createElement ( "select" ) ;
list.id = "lrcHotCats_list" + Index ;
list.style.display = "none" ;
list.onclick = function () {
var FormIndex = lrcHotCats_getIndex(this);
lrcHotCatsText_replace(FormIndex);
} ;
var exists = document.createElement ( "span" ) ;
exists.id = "lrcHotCats_exists" + Index ;
exists.className = "lrcHotCats_NoExists" ;
exists.innerMTML = lrcMakeIcon("SuggestNoExistIcon").split("$1").join("").split(" ").join(" ");
var ParentCats = document.createElement ( "input" ) ;
ParentCats.id = "lrcHotCats_parents" + Index ;
ParentCats.type = "button" ;
ParentCats.value = lrcMakeText("HC_ParentText") ;
ParentCats.title = lrcMakeText("HC_ParentTitle") ;
ParentCats.onclick = function(){
var FormIndex = lrcHotCats_getIndex(this);
lrcHotCatsText_changed(FormIndex, "UP");
}
var DaughterCats = document.createElement ( "input" ) ;
DaughterCats.id = "lrcHotCats_daughters" + Index ;
DaughterCats.type = "button" ;
DaughterCats.value = lrcMakeText("HC_DaughterText") ;
DaughterCats.title = lrcMakeText("HC_DaughterTitle") ;
DaughterCats.onclick = function(){
var FormIndex = lrcHotCats_getIndex(this);
lrcHotCatsText_changed(FormIndex, "DOWN");
}
var OK = document.createElement ( "input" ) ;
OK.id = "lrcHotCats_OK" + Index ;
OK.type = "button" ;
OK.value = lrcMakeText("HC_InputOK") ;
OK.onclick = function(){
var FormIndex = lrcHotCats_getIndex(this);
lrcHotCats_ok(FormIndex) ;
}
var cancel = document.createElement ( "input" ) ;
cancel.id = "lrcHotCats_cancel" + Index ;
cancel.type = "button" ;
cancel.value = lrcMakeText("HC_InputCancel") ;
cancel.onclick = function(){
var FormIndex = lrcHotCats_getIndex(this);
lrcHotCats_cancel(FormIndex) ;
}
form.appendChild ( text ) ;
form.appendChild ( list ) ;
form.appendChild ( exists ) ;
form.appendChild ( ParentCats ) ;
form.appendChild ( DaughterCats ) ;
form.appendChild ( OK ) ;
form.appendChild ( cancel ) ;
thespan.appendChild ( form ) ;
text.focus () ;
lrcHotCats_upDate_FormPositions();
LiveRC_Config["HotCats"]["Matrix"].Form[Index] = form;
LiveRC_Config["HotCats"]["Matrix"].Text[Index] = text;
LiveRC_Config["HotCats"]["Matrix"].List[Index] = list;
LiveRC_Config["HotCats"]["Matrix"].Exist[Index] = exists;
lrcHotCatsText_changed(Index);
}
// VALIDATION DU FORMULAIRE
window.lrcHotCats_ok = function(Index) {
var Form = LiveRC_Config["HotCats"]["Matrix"].Form[Index];
var Input = LiveRC_Config["HotCats"]["Matrix"].Text[Index];
var TheSpan = LiveRC_Config["HotCats"]["Matrix"].Span[Index] ;
var CatLink = LiveRC_Config["HotCats"]["Matrix"].CatLink[Index];
var IfExist = LiveRC_Config["HotCats"]["Matrix"].Exist[Index];
var OldCatName = LiveRC_Config["HotCats"]["Matrix"].CatName[Index];
var OldDefaultSort = lrcHotCats_defaultSort_getOneOld(OldCatName);
var NewCatName = Input.value.ucFirst().replace(/\|.*/, "") ;
var NewDefaultSort = Input.value.ucFirst().split(NewCatName).join("");
LiveRC_Config["HotCats"]["Matrix"].Sort[Index] = NewDefaultSort;
if ( NewCatName == "" ) {
lrcHotCats_cancel(Index) ;
return ;
}
if(LiveRC_Config["HotCats"]["Multi_Edit"]==false){
if((OldCatName+OldDefaultSort)==(NewCatName+NewDefaultSort)) return;
var RemovedCategories = new Array();
var ModifiedCategories_from = new Array();
var ModifiedCategories_to = new Array();
var AddedCategories = new Array();
if ( TheSpan.id != "lrcHotCats_add" ) {
ModifiedCategories_from.push(OldCatName+OldDefaultSort);
ModifiedCategories_to.push(NewCatName+NewDefaultSort);
}else{
AddedCategories.push(NewCatName+NewDefaultSort);
}
lrcHotCats_Edit(RemovedCategories, ModifiedCategories_from, ModifiedCategories_to, AddedCategories, LiveRC_Config["HotCats"]["OldDefaultSort"]);
}else{
var Exist = lrcHasClass(IfExist, "lrcHotCats_Exists");
if(TheSpan.id!="lrcHotCats_add"){
CatLink.innerHTML = NewCatName;
CatLink.title = lrcGetNamespaceName(14)+':'+NewCatName;
CatLink.href = lrcGetPageURL(lrcGetNamespaceName(14)+':'+NewCatName);
if((!lrcHasClass(CatLink, "AddedCategory"))&&(!lrcHasClass(CatLink, "ModifiedCategory"))) lrcAddClass(CatLink,"ModifiedCategory");
if((OldCatName+OldDefaultSort)==(NewCatName+NewDefaultSort)){
lrcRemoveClass(CatLink,"ModifiedCategory");
}
lrcRemoveClass(CatLink,"RemovedCategory");
}else{
LiveRC_Config["HotCats"]["NewCatsIndex"]++
LiveRC_Config["HotCats"]["Matrix"].CatName[LiveRC_Config["HotCats"]["NewCatsIndex"]] = NewCatName;
LiveRC_Config["HotCats"]["Matrix"].Sort[LiveRC_Config["HotCats"]["NewCatsIndex"]] = NewDefaultSort;
var NewSpan = document.createElement('span');
NewSpan.id = "lrcHotCats_Span_"+LiveRC_Config["HotCats"]["NewCatsIndex"];
NewSpan.className = "AddedCatSpan";
CatLink = document.createElement('a');
CatLink.id = "CatLink_"+LiveRC_Config["HotCats"]["NewCatsIndex"];
CatLink.innerHTML = NewCatName;
CatLink.title = lrcGetNamespaceName(14)+':'+NewCatName;
CatLink.href = lrcGetPageURL(lrcGetNamespaceName(14)+':'+NewCatName);
lrcAddClass(CatLink,"AddedCategory");
var RemoveLink = document.createElement('a');
RemoveLink.innerHTML = lrcMakeText("HC_RemoveLinkText");
RemoveLink.id = "lrcHotCats_remove_"+LiveRC_Config["HotCats"]["NewCatsIndex"];
RemoveLink.title = lrcMakeText("HC_RemoveLinkTitle")+" « "+NewCatName+" »";
RemoveLink.href = "javascript:lrcHotCats_remove(\"" + NewCatName+ "\","+LiveRC_Config["HotCats"]["NewCatsIndex"]+");";
var ModifyLink = document.createElement('a');
ModifyLink.innerHTML = lrcMakeText("HC_ModifyLinkText");
ModifyLink.id = "lrcHotCats_modify_"+LiveRC_Config["HotCats"]["NewCatsIndex"];
ModifyLink.title = lrcMakeText("HC_ModifyLinkTitle")+" « "+NewCatName+" »";
ModifyLink.href = "javascript:lrcHotCats_modify(\""+NewCatName+"\","+LiveRC_Config["HotCats"]["NewCatsIndex"]+ ")";
NewSpan.appendChild(CatLink);
NewSpan.appendChild(document.createTextNode(" "));
NewSpan.appendChild(RemoveLink);
NewSpan.appendChild(document.createTextNode(" "));
NewSpan.appendChild(ModifyLink);
NewSpan.appendChild(document.createTextNode(" | "));
TheSpan.parentNode.insertBefore(NewSpan, TheSpan);
LiveRC_Config["HotCats"]["Matrix"].Span[LiveRC_Config["HotCats"]["NewCatsIndex"]] = NewSpan;
LiveRC_Config["HotCats"]["Matrix"].CatLink[LiveRC_Config["HotCats"]["NewCatsIndex"]] = CatLink;
LiveRC_Config["HotCats"]["Matrix"].RemoveLink[LiveRC_Config["HotCats"]["NewCatsIndex"]] = RemoveLink;
LiveRC_Config["HotCats"]["Matrix"].ModifyLink.push[LiveRC_Config["HotCats"]["NewCatsIndex"]] = ModifyLink;
}
if(!Exist){
lrcAddClass(CatLink,"new");
}else{
lrcRemoveClass(CatLink,"new");
}
var Links = TheSpan.getElementsByTagName('a');
for(var a=0;a<Links.length;a++){
Links[a].style.display = "";
}
TheSpan.removeChild(Form);
lrcHotCats_Multi_CheckForChanges();
lrcHotCats_upDate_FormPositions();
if(TheSpan.id!="lrcHotCats_add"){
document.getElementById("lrcHotCats_modify_"+Index).focus();
}else{
document.getElementById("lrcHotCats_addlink").focus();
}
}
}
// ANNULATION DU FORMULAIRE
window.lrcHotCats_cancel = function(Index) {
var Form = LiveRC_Config["HotCats"]["Matrix"].Form[Index];
var Input = LiveRC_Config["HotCats"]["Matrix"].Text[Index];
var TheSpan = LiveRC_Config["HotCats"]["Matrix"].Span[Index] ;
var CatLink = LiveRC_Config["HotCats"]["Matrix"].CatLink[Index];
var IfExist = LiveRC_Config["HotCats"]["Matrix"].Exist[Index];
var OldCatLink = LiveRC_Config["HotCats"]["Matrix"].RemoveLink[Index];
TheSpan.removeChild ( Form ) ;
var Links = TheSpan.getElementsByTagName('a');
for(a=0;a<Links.length;a++){
Links[a].style.display = "";
}
TheSpan.firstChild.style.display = "" ;
lrcHotCats_Multi_CheckForChanges();
lrcHotCats_upDate_FormPositions();
if(TheSpan.id!="lrcHotCats_add"){
document.getElementById("lrcHotCats_modify_"+Index).focus();
}else{
document.getElementById("lrcHotCats_addlink").focus();
}
}
///////////////////////// ÉDITION MULTIPLE ////////////////////////////////////////////////////////
// AJOUT DU LIEN (±)
window.lrcHotCats_append_multiedit_span = function( CatLine ){
var FirstLink = CatLine.getElementsByTagName('a')[0];
var Span = document.createElement('span');
Span.id ='lrcHotCats_modify_multi_span';
var Link = document.createElement('a');
Link.id = "lrcHotCats_modify_multi_Link";
Link.innerHTML = lrcMakeText("HC_MultiLinkText");
Link.title = lrcMakeText("HC_MultiLinkTitle");
Link.href = "javascript:lrcHotCats_multiedit_createForm();";
Span.appendChild(Link);
FirstLink.parentNode.insertBefore(Span, FirstLink.nextSibling);
FirstLink.parentNode.insertBefore(document.createTextNode(" "), FirstLink.nextSibling);
var DefaultSortSpan = document.createElement('span');
DefaultSortSpan.id ='lrcHotCats_DefaultSort_span';
var DefaultSortLink = document.createElement('a');
DefaultSortLink.id = "lrcHotCats_DefaultSort_Link";
DefaultSortLink.innerHTML = lrcMakeText("HC_DefaultSortText");
DefaultSortLink.title = lrcMakeText("HC_DefaultSortTitle");
DefaultSortLink.href = "javascript:lrcHotCats_defaultSort_createForm();";
DefaultSortSpan.appendChild(DefaultSortLink);
var OldDefaultSortSpan = document.createElement('span');
OldDefaultSortSpan.style.display = "none";
OldDefaultSortSpan.id = "OldDefaultSortSpan";
DefaultSortSpan.appendChild(OldDefaultSortSpan);
Span.parentNode.insertBefore(DefaultSortSpan, Span.nextSibling);
Span.parentNode.insertBefore(document.createTextNode(" "), Span.nextSibling);
if(LiveRC_getHotCatsVariables("HC_AutoMulti")) lrcHotCats_multiedit_createForm();
}
// CREATION DU FORMULAIRE "MULTI"
window.lrcHotCats_multiedit_createForm = function(){
var OldForms = document.getElementById('mw-normal-catlinks').getElementsByTagName('form');
while(OldForms[0]) OldForms[0].parentNode.removeChild(OldForms[0]);
var OldLinks = document.getElementById('mw-normal-catlinks').getElementsByTagName('a');
for(var a=0;a<OldLinks.length;a++){
OldLinks[a].style.display="";
}
for(var a=0;a<LiveRC_Config["HotCats"]["Matrix"].CatLink.length;a++){
if(!LiveRC_Config["HotCats"]["Matrix"].CatLink[a]) continue;
if(LiveRC_Config["HotCats"]["Matrix"].CatLinkIsRed[a]){
if(!lrcHasClass(LiveRC_Config["HotCats"]["Matrix"].CatLink[a], "new")) lrcAddClass(LiveRC_Config["HotCats"]["Matrix"].CatLink[a], "new");
}else{
lrcRemoveClass(LiveRC_Config["HotCats"]["Matrix"].CatLink[a], "new");
}
}
var OldSpans = document.getElementById('mw-normal-catlinks').getElementsByTagName('span');
for(var a=0;a<OldSpans.length;a++){
if(OldSpans[a].id != 'OldDefaultSortSpan') OldSpans[a].style.display="";
}
if(!document.getElementById("lrcHotCats_addlink")) lrcHotCats_add_new ( document.getElementById("lrcHotCats_add") );
var Legend = "";
if(LiveRC_getHotCatsVariables("HC_ShowLegend")){
Legend = '<small>'
+ '<a href="'+LiveRC_getHotCatsVariables("HC_docURL")+'" title="'+lrcMakeText("HC_LabelTitle")+'" target="_blank" '
+ 'style="color:#002BB8;padding:0.2em;margin-left:'+(LiveRC_getHotCatsVariables("HC_ShowInline") ? 5 :100 )+'px;">'
+ ' <b>'+lrcMakeText("HC_LabelText")+'</b> :'
+ ' <span class="RemovedCategory">'+lrcMakeText("HC_RecapRemove")+'</span>'
+ ' <span class="ModifiedCategory">'+lrcMakeText("HC_RecapModify")+'</span>'
+ ' <span class="AddedCategory">'+lrcMakeText("HC_RecapAdd")+'</span>'
+ '</a>'
+ '</small>'
}
var BR = "";
if(!LiveRC_getHotCatsVariables("HC_ShowInline")) BR = "<br />";
var RadioBoxes = "";
var MinorValue = LiveRC_Config["HotCats"]["MinorEditStatus"];
var WatchValue = LiveRC_Config["HotCats"]["WatchStatus"];
var MinorOneChecked = ( (MinorValue=="-1") ? 'checked="checked" ' : '' );
var MinorTwoChecked = ( (MinorValue=="0") ? 'checked="checked" ' : '' );
var MinorThreeChecked = ( (MinorValue=="1") ? 'checked="checked" ' : '' );
var WatchOneChecked = ( (WatchValue=="preferences") ? 'checked="checked" ' : '' );
var WatchTwoChecked = ( (WatchValue=="unwatch") ? 'checked="checked" ' : '' );
var WatchThreeChecked = ( (WatchValue=="watch") ? 'checked="checked" ' : '' );
var WatchFourChecked = ( (WatchValue=="nochange") ? 'checked="checked" ' : '' );
RadioBoxes = '<span id="lrcHotCats_RadioBoxes">'
+ ' '
+ '<span style="border:1px dotted silver;padding:0.2em;padding-top:0.5em">'
+ '<label for="MinorEditStatus">'+lrcMakeText("HC_Minoredit")+'</label>'
+ ' '
+ '<input value="-1" type="radio" name="MinorEditStatus" '+MinorOneChecked+' style="cursor:pointer;" '
+ 'title="'+lrcMakeText("HC_Minoredit")+' : '+lrcMakeText("HC_RadioDefault")+'" />'
+ '<input value="0" type="radio" name="MinorEditStatus" '+MinorTwoChecked+' style="cursor:pointer;" '
+ 'title="'+lrcMakeText("HC_Minoredit")+' : '+lrcMakeText("HC_RadioNo")+'" />'
+ '<input value="1" type="radio" name="MinorEditStatus" '+MinorThreeChecked+' style="cursor:pointer;" '
+ 'title="'+lrcMakeText("HC_Minoredit")+' : '+lrcMakeText("HC_RadioYes")+'" />'
+ '</span>'
+ ' '
+ '<span style="border:1px dotted silver;padding:0.2em;padding-top:0.5em">'
+ '<label for="WatchStatus">'+lrcMakeText("HC_Watchthis")+'</label>'
+ ' '
+ '<input value="preferences" type="radio" name="WatchStatus" '+WatchOneChecked+' style="cursor:pointer;" '
+ 'title="'+lrcMakeText("HC_Watchthis")+' : '+lrcMakeText("HC_RadioDefault")+'" />'
+ '<input value="unwatch" type="radio" name="WatchStatus" '+WatchTwoChecked+' style="cursor:pointer;" '
+ 'title="'+lrcMakeText("HC_Watchthis")+' : '+lrcMakeText("HC_RadioNo")+'" />'
+ '<input value="watch" type="radio" name="WatchStatus" '+WatchThreeChecked+' style="cursor:pointer;" '
+ 'title="'+lrcMakeText("HC_Watchthis")+' : '+lrcMakeText("HC_RadioYes")+'" />'
+ '<input value="nochange" type="radio" name="WatchStatus" '+WatchFourChecked+' style="cursor:pointer;" '
+ 'title="'+lrcMakeText("HC_Watchthis")+' : '+lrcMakeText("HC_RadioNoChange")+'" />'
+ '</span>'
+ '</span>';
var Link = document.getElementById('lrcHotCats_modify_multi_Link');
var Span = Link.parentNode;
var Form = document.createElement('form');
Form.id = "lrcHotCats_modify_multi_form";
Form.style.display = "inline";
Form.innerHTML = ''
+ Legend
+ BR
+ '<input id="lrcHotCats_modify_multi_InputOK" type="button" disabled="disabled" '
+ 'value="'+lrcMakeText("HC_MultiInputOK")+'" '
+ 'onclick="lrcHotCats_multiedit_FormOK()" onselect="lrcHotCats_multiedit_FormOK()" />'
+ '<input id="lrcHotCats_modify_multi_InputCancel" type="button" '
+ 'value="'+lrcMakeText("HC_MultiInputCancel")+'" '
+ 'onclick="lrcHotCats_multiedit_CancelForm()" onselect="lrcHotCats_multiedit_CancelForm()" />'
+ RadioBoxes
+ BR
Span.appendChild(Form);
Link.style.display = "none";
LiveRC_Config["HotCats"]["Multi_Edit"] = true;
var LP = document.getElementById( 'livePreview' );
if(LP) LP.scrollTop = parseInt(LP.style.height.split("px").join(""));
document.getElementById("lrcHotCats_modify_multi_InputCancel").focus();
}
// ANNULATION DU FORMULAIRE "MULTI" + MODIFICATION DES LIENS, FONCTIONS ET IDS DE LA BARRE DE CATÉGORIES
window.lrcHotCats_multiedit_CancelForm = function(){
var Link = document.getElementById('lrcHotCats_modify_multi_Link');
var Form = document.getElementById('lrcHotCats_modify_multi_form');
if(Link) Link.style.display = "inline";
var CatForms = document.getElementById('mw-normal-catlinks').getElementsByTagName('form');
while(CatForms[0]){
CatForms[0].parentNode.removeChild(CatForms[0]);
}
var CatSpans = document.getElementById('mw-normal-catlinks').getElementsByTagName('span');
var SpanToRemove = new Array();
for(var a=1;a<CatSpans.length;a++){
if(lrcHasClass(CatSpans[a], "AddedCatSpan")) SpanToRemove.push(CatSpans[a]);
}
for(var a=0;a<SpanToRemove.length;a++){
SpanToRemove[a].parentNode.removeChild(SpanToRemove[a]);
}
var CatLinks = document.getElementById('mw-normal-catlinks').getElementsByTagName('a');
for(var a=0;a<CatLinks.length;a++){
CatLinks[a].style.display = "inline";
lrcRemoveClass(CatLinks[a], "RemovedCategory");
if(lrcHasClass(CatLinks[a], "ModifiedCategory")){
var Index = lrcHotCats_getIndex( CatLinks[a] )
var Parent = CatLinks[a].parentNode;
var OldCatName = LiveRC_Config["HotCats"]["Matrix"].CatName[Index];
var OldDefaultSort = lrcHotCats_defaultSort_getOneOld(OldCatName);
LiveRC_Config["HotCats"]["Matrix"].Sort[Index] = OldDefaultSort;
CatLinks[a].innerHTML = OldCatName;
CatLinks[a].title = lrcGetNamespaceName(14)+':'+OldCatName;
CatLinks[a].href = lrcGetPageURL(lrcGetNamespaceName(14)+':'+OldCatName);
lrcRemoveClass(CatLinks[a], "ModifiedCategory");
}
if(lrcHasClass(CatLinks[a], "ModifiedDefaultSort")){
var DefaultSortSpan = document.getElementById("OldDefaultSortSpan");
DefaultSortSpan.innerHTML = LiveRC_Config["HotCats"]["OldDefaultSort"];
lrcRemoveClass(CatLinks[a], "ModifiedDefaultSort");
}
}
for(var a=0;a<LiveRC_Config["HotCats"]["Matrix"].CatLink.length;a++){
if(!LiveRC_Config["HotCats"]["Matrix"].CatLink[a]) continue;
if(LiveRC_Config["HotCats"]["Matrix"].CatLinkIsRed[a]){
if(!lrcHasClass(LiveRC_Config["HotCats"]["Matrix"].CatLink[a], "new")) lrcAddClass(LiveRC_Config["HotCats"]["Matrix"].CatLink[a], "new");
}else{
lrcRemoveClass(LiveRC_Config["HotCats"]["Matrix"].CatLink[a], "new");
}
}
LiveRC_Config["HotCats"]["Multi_Edit"] = false;
Link.focus();
}
// VALIDATION DU FORMULAIRE "MULTI" + LISTING DES CATÉGORIES À ENLEVER/MODIFIER/AJOUTER
window.lrcHotCats_multiedit_FormOK = function(){
var RemovedCategories = new Array();
var ModifiedCategories_from = new Array();
var ModifiedCategories_to = new Array();
var AddedCategories = new Array();
var DefaultSort = LiveRC_Config["HotCats"]["OldDefaultSort"];
var CatLinks = document.getElementById('mw-normal-catlinks').getElementsByTagName('a');
for(var a=0;a<CatLinks.length;a++){
var Link = CatLinks[a];
var Index = lrcHotCats_getIndex( Link );
if(lrcHasClass(Link, "RemovedCategory")){
var RemovedCat = (LiveRC_Config["HotCats"]["CaseSensitive"] ? Link.innerHTML : Link.innerHTML.ucFirst());
RemovedCategories.push(RemovedCat);
}
if(lrcHasClass(Link, "ModifiedCategory")){
var NewCatName = (LiveRC_Config["HotCats"]["CaseSensitive"] ? Link.innerHTML : Link.innerHTML.ucFirst());
var OldCatName = LiveRC_Config["HotCats"]["Matrix"].CatName[Index];
var OldDefaultSort = lrcHotCats_defaultSort_getOneOld(OldCatName);
var NewDefaultSort = LiveRC_Config["HotCats"]["Matrix"].Sort[Index];
if((OldCatName+OldDefaultSort)!=(NewCatName+NewDefaultSort)){
ModifiedCategories_from.push((OldCatName+OldDefaultSort));
ModifiedCategories_to.push((NewCatName+NewDefaultSort));
}
}
if(lrcHasClass(Link, "AddedCategory")){
var NewDefaultSort = LiveRC_Config["HotCats"]["Matrix"].Sort[Index];
var AddedCat = (LiveRC_Config["HotCats"]["CaseSensitive"] ? Link.innerHTML : Link.innerHTML.ucFirst());
AddedCategories.push(AddedCat+NewDefaultSort);
}
if(lrcHasClass(Link, "ModifiedDefaultSort")){
var DefaultSortSpan = document.getElementById("OldDefaultSortSpan");
DefaultSort = DefaultSortSpan.innerHTML;
}
}
var TextrecapTitle = '<h6>' + lrcMakeText("HC_RecapTitle")+'</h6>';
var TextRecap = TextrecapTitle;
if(RemovedCategories[0]){
TextRecap += '<p>' + lrcMakeText("HC_RecapRemove")+' :</p><ul>'
for(var a=0;a<RemovedCategories.length;a++){
TextRecap += '<li> « '+RemovedCategories[a]+' »</li>';
}
TextRecap += '</ul>';
}
if(ModifiedCategories_to[0]){
TextRecap += '<p>' + lrcMakeText("HC_RecapModify")+' :</p><ul>'
for(var a=0;a<ModifiedCategories_to.length;a++){
TextRecap += '<li> « '+ModifiedCategories_from[a]+' » -> « '+ModifiedCategories_to[a]+' »</li>';
}
TextRecap += '</ul>';
}
if(AddedCategories[0]){
TextRecap += '<p>' + lrcMakeText("HC_RecapAdd")+' :</p><ul>'
for(var a=0;a<AddedCategories.length;a++){
TextRecap += '<li> « '+AddedCategories[a]+' »</li>';
}
TextRecap += '</ul>';
}
if(DefaultSort!=LiveRC_Config["HotCats"]["OldDefaultSort"]){
TextRecap += '<p>' + lrcMakeText("HC_RecapSort")+' :</p><ul>'
TextRecap += '<li> « '+LiveRC_Config["HotCats"]["OldDefaultSort"]+' » -> « '+DefaultSort+' »</li>';
TextRecap += '</ul>';
}
if(TextRecap == TextrecapTitle) return;
var RadioNameTexts = {"MinorEditStatus":"HC_Minoredit","WatchStatus":"HC_Watchthis"};
var RadioValueTexts = {"watch":"HC_RadioYes","unwatch":"HC_RadioNo","preferences":"HC_RadioDefault","nochange":"HC_RadioNoChange","1":"HC_RadioYes","0":"HC_RadioNo","-1":"HC_RadioDefault"};
var RadioBoxesSpan = document.getElementById("lrcHotCats_RadioBoxes");
if(RadioBoxesSpan){
var RadioBoxes = RadioBoxesSpan.getElementsByTagName('input');
for(var a=0;a<RadioBoxes.length;a++){
var Radio = RadioBoxes[a];
if(Radio.type!="radio") continue;
if(!Radio.checked) continue;
var BoxName = Radio.name;
var Value = Radio.value;
LiveRC_Config["HotCats"][BoxName] = Value;
TextRecap += "<p>"+lrcMakeText(RadioNameTexts[BoxName])+" :</p><ul>"
+ "<li>"+lrcMakeText(RadioValueTexts[Value]) + "</li>"
+"</ul>";
}
}
var LaunchEditFunction = function(){
lrcHotCats_Edit(RemovedCategories, ModifiedCategories_from, ModifiedCategories_to, AddedCategories, DefaultSort);
}
if(LiveRC_getHotCatsVariables("HC_SkipRecap")){
LaunchEditFunction();
}else{
LiveRC_confirm(TextRecap, LaunchEditFunction);
}
}
// VÉRIFICATION DES CHANGEMENTS EFFECTUÉS
window.lrcHotCats_Multi_CheckForChanges = function(){
if(!LiveRC_Config["HotCats"]["Multi_Edit"]) return;
var CatLinks = document.getElementById('mw-normal-catlinks').getElementsByTagName('a');
var AnythingChanged = false;
for(var a=0;a<CatLinks.length;a++){
var Link = CatLinks[a];
if((lrcHasClass(Link, "RemovedCategory"))||(lrcHasClass(Link, "ModifiedCategory"))||(lrcHasClass(Link, "AddedCategory"))||(lrcHasClass(Link, "ModifiedDefaultSort"))){
AnythingChanged = true;
}
}
var Input = document.getElementById('lrcHotCats_modify_multi_InputOK');
if(!Input) return;
if(AnythingChanged){
Input.disabled = "";
}else{
Input.disabled = "disabled";
}
}
///////////////////////// CLEFS DE TRI ////////////////////////////////////////////////////////
// CRÉATION FORMULAIRE CLEF DE TRI GLOBALE
window.lrcHotCats_defaultSort_createForm = function(){
lrcHotCats_defaultSort_getOld("OldDefaultSortSpan");
var thespan = document.getElementById('lrcHotCats_DefaultSort_span');
var OldDefaultSort = thespan.getElementsByTagName('span')[0].innerHTML;
thespan.getElementsByTagName('a')[0].style.display = "none";
var form = document.createElement ( "form" ) ;
form.id = "lrcHotCats_form_Default";
form.method = "post" ;
form.onsubmit = function () {
lrcHotCats_Default_ok(this) ;
return false;
} ;
form.style.display = "inline" ;
var text = document.createElement ( "input" ) ;
text.size = 40 ;
text.id = "lrcHotCatsText.Default" ;
text.type = "text" ;
text.value = OldDefaultSort ;
var OK = document.createElement ( "input" ) ;
OK.type = "button" ;
OK.value = lrcMakeText("HC_InputOK") ;
OK.onclick = function(){
lrcHotCats_Default_ok(this.parentNode) ;
}
var cancel = document.createElement ( "input" ) ;
cancel.type = "button" ;
cancel.value = lrcMakeText("HC_InputCancel") ;
cancel.onclick = function(){
var Form = this.parentNode;
lrcHotCats_Default_Cancel(Form) ;
}
form.appendChild ( text ) ;
form.appendChild ( OK ) ;
form.appendChild ( cancel ) ;
thespan.appendChild ( form ) ;
lrcHotCats_upDate_FormPositions();
text.focus () ;
}
// ANNULATION FORMULAIRE CLEF DE TRI GLOBALE
window.lrcHotCats_Default_Cancel = function(Form){
var Span = Form.parentNode;
Form.parentNode.getElementsByTagName('a')[0].style.display = "";
Form.parentNode.removeChild(Form) ;
if(LiveRC_Config["HotCats"]["Multi_Edit"]){
Span.getElementsByTagName('span')[0].innerHTML = LiveRC_Config["HotCats"]["OldDefaultSort"];
lrcRemoveClass(Span.getElementsByTagName('a')[0], "ModifiedDefaultSort");
Span.getElementsByTagName('a')[0].style.display = "";
lrcHotCats_Multi_CheckForChanges();
}
document.getElementById("lrcHotCats_DefaultSort_Link").focus();
}
// VALIDATION FORMULAIRE CLEF DE TRI GLOBALE
window.lrcHotCats_Default_ok = function(Form){
var Text = document.getElementById("lrcHotCatsText.Default");
var OldDefaultSort = LiveRC_Config["HotCats"]["OldDefaultSort"];
var NewDefaultSort = Text.value;
if(!LiveRC_Config["HotCats"]["Multi_Edit"]){
if(OldDefaultSort==NewDefaultSort){
lrcHotCats_Default_Cancel(Form)
return;
}else{
var RemovedCategories = new Array();
var ModifiedCategories_from = new Array();
var ModifiedCategories_to = new Array();
var AddedCategories = new Array();
var DefaultSort = NewDefaultSort ;
lrcHotCats_Edit(RemovedCategories, ModifiedCategories_from, ModifiedCategories_to, AddedCategories, DefaultSort);
}
}else{
if(OldDefaultSort==NewDefaultSort){
lrcHotCats_Default_Cancel(Form)
return;
}else{
var Span = Form.parentNode;
Span.getElementsByTagName('span')[0].innerHTML = Text.value;
var Link = Span.getElementsByTagName('a')[0]
Link.style.display = "";
lrcAddClass(Link, "ModifiedDefaultSort");
Form.parentNode.removeChild(Form) ;
lrcHotCats_Multi_CheckForChanges();
lrcHotCats_upDate_FormPositions();
document.getElementById("lrcHotCats_DefaultSort_Link").focus();
}
}
}
///////////////////////// ÉDITION ////////////////////////////////////////////////////////
window.lrcHotCats_Edit = function(RemovedCategories, ModifiedCategories_from, ModifiedCategories_to, AddedCategories, DefaultSort){
LiveRC_Config["HotCats"]["ChangesToDo"] = {
RemovedCategories : (RemovedCategories? RemovedCategories :false),
ModifiedCategories_from : (ModifiedCategories_from ? ModifiedCategories_from : false),
ModifiedCategories_to : (ModifiedCategories_to ? ModifiedCategories_to : false),
AddedCategories : (AddedCategories ? AddedCategories : false),
DefaultSort : (DefaultSort ? DefaultSort : false)
};
LiveRC_Config["HotCats"]["IsEditMode"] = true;
liveEdit(LiveRC_Config["HotCats"]["CurrentPage"]);
}
window.lrcHotCats_DoEdit = function(){
var Preview = document.getElementById("livePreview");
if(!Preview || !LiveRC_Config["HotCats"]["IsEditMode"]) return;
var RemovedCategories = LiveRC_Config["HotCats"]["ChangesToDo"].RemovedCategories;
var ModifiedCategories_from = LiveRC_Config["HotCats"]["ChangesToDo"].ModifiedCategories_from;
var ModifiedCategories_to = LiveRC_Config["HotCats"]["ChangesToDo"].ModifiedCategories_to;
var AddedCategories = LiveRC_Config["HotCats"]["ChangesToDo"].AddedCategories;
var DefaultSort = LiveRC_Config["HotCats"]["ChangesToDo"].DefaultSort;
var prevent_autocommit = 0;
if(LiveRC_getHotCatsVariables("HC_autocommit")) getElementWithId("editform", "form", Preview).style.display = "none";
var OldText = getElementWithId("wpTextbox1", "textarea", Preview).value;
var summary = new Array();
for(var a=0;a<RemovedCategories.length;a++){
var OldCatName = RemovedCategories[a];
var OldCatNameUnsorted = OldCatName.replace(/\|.*/, "");
var REGEXP = lrcHotCats_CreateRegExp(OldCatName);
var matchesCatName = OldText.match(REGEXP);
if (matchesCatName != null && matchesCatName.length == 1) {
OldText = OldText.replace(REGEXP, "");
summary.push( " – [[" + lrcGetNamespaceName(14)+':'+OldCatNameUnsorted + "]]" ) ;
}else{
prevent_autocommit = 1
if(matchesCatNameUnsorted == null){
LiveRC_alert(lrcMakeText("HC_AlertProblem1").split('$1').join(OldCatNameUnsorted));
}else if(matchesCatNameUnsorted.length > 1){
LiveRC_alert(lrcMakeText("HC_AlertProblem3").split('$1').join(OldCatNameUnsorted));
}
}
}
if((RemovedCategories[0])&&((ModifiedCategories_from[0])||(AddedCategories[0]))) summary.push(" |");
for(var a=0;a<ModifiedCategories_from.length;a++){
var OldCatName = ModifiedCategories_from[a];
var OldCatNameUnsorted = OldCatName.replace(/\|.*/, "");
var NewCatName = ModifiedCategories_to[a];
var NewCatNameUnsorted = NewCatName.replace(/\|.*/, "");
var REGEXP_OLD = lrcHotCats_CreateRegExp(OldCatName);
var REGEXP_NEW = lrcHotCats_CreateRegExp(NewCatNameUnsorted);
var matchesOldCatName = OldText.match(REGEXP_OLD);
var matchesNewCatName = OldText.match(REGEXP_NEW);
if( ((matchesNewCatName == null)||(OldCatNameUnsorted==NewCatNameUnsorted)) && matchesOldCatName != null && matchesOldCatName.length == 1) {
OldText = OldText.replace(REGEXP_OLD, "$1[[" + lrcGetNamespaceName(14)+':'+NewCatName + "]]");
summary.push ( " ± [["+lrcGetNamespaceName(14)+':'+OldCatNameUnsorted+"]]->[["+lrcGetNamespaceName(14)+':'+ NewCatNameUnsorted+"]]");
}else{
prevent_autocommit = 1
if(matchesOldCatName == null){
LiveRC_alert(lrcMakeText("HC_AlertProblem1").split('$1').join(OldCatNameUnsorted));
}else if(matchesOldCatName.length > 1){
LiveRC_alert(lrcMakeText("HC_AlertProblem3").split('$1').join(OldCatNameUnsorted));
}else if((matchesNewCatName != null)&&(OldCatNameUnsorted!=NewCatNameUnsorted)){
LiveRC_alert(lrcMakeText("HC_AlertProblem2").split('$1').join(NewCatNameUnsorted));
}
}
}
if((AddedCategories[0])&&(ModifiedCategories_from[0])) summary.push(" |");
for(var a=0;a<AddedCategories.length;a++){
var NewCatName = AddedCategories[a];
var NewCatNameUnsorted = NewCatName.replace(/\|.*/, "");
var REGEXP = lrcHotCats_CreateRegExp(NewCatNameUnsorted);
var matchesCatNameUnsorted = OldText.match(REGEXP);
if (matchesCatNameUnsorted != null){
LiveRC_alert(lrcMakeText("HC_AlertProblem2").split('$1').join(NewCatNameUnsorted));
prevent_autocommit = 1
continue;
}
var re = new RegExp("\\[\\[(?:"+lrcGetNamespaceName(14)+"|Category):[^\\]]+\\]\\]", "ig")
var index = -1;
while (re.exec(OldText) != null) index = re.lastIndex;
var txt = "[[" + lrcGetNamespaceName(14)+':'+NewCatName + "]]" ;
if (index < 0) { // no category
var interWiki = new RegExp('^\\s*\\[\\[([a-z][a-z].?(x?-[^\\]]+)?|simple|tokipona):([^\\]]*)\\]\\]\\s*$');
var blank = new RegExp('^\\s*$');
var lines = OldText.split('\n');
var DebutModele = '';
var SuiteModele = '';
var FoundInterwiki = false;
for (var lineId = lines.length - 1; lineId >= 0; --lineId){
if (!interWiki.exec(lines[lineId]) && !blank.exec(lines[lineId])){
DebutModele = lines.slice(0, lineId + 1).join('\n');
SuiteModele = lines.slice(lineId + 1).join('\n');
break;
}
}
DebutModele = DebutModele + '\n\n';
while(SuiteModele.indexOf('\n\n')!=-1){
SuiteModele = SuiteModele.split("\n\n").join("\n");
}
SuiteModele = SuiteModele.replace(/^\n/, "");
OldText = DebutModele + txt + '\n\n' + SuiteModele;
}else{
OldText = OldText.substring(0, index) + '\n' + txt + OldText.substring(index);
}
summary.push ( " + [[" + lrcGetNamespaceName(14)+':'+NewCatNameUnsorted + "]]" ) ;
}
if((DefaultSort!=LiveRC_Config["HotCats"]["OldDefaultSort"])&&(DefaultSort!="undefined")){
var NewDefaultSort = "{{DEFAULTSORT:"+DefaultSort+"}}\n";
var HasDefaultSort = null;
for(var d=0;d<LiveRC_Config["MediawikiMagicwords"]["defaultsort"].length;d++){
if(OldText.indexOf(LiveRC_Config["MediawikiMagicwords"]["defaultsort"][d])!=-1) HasDefaultSort = LiveRC_Config["MediawikiMagicwords"]["defaultsort"][d];
}
if(HasDefaultSort!=null){
if(!DefaultSort){
NewDefaultSort = "";
summary.push ("; – " + LiveRC_Config["HotCats"]["OldDefaultSort"] ) ;
}else{
summary.push ("; ± {{DEFAULTSORT:}} : " + LiveRC_Config["HotCats"]["OldDefaultSort"] + " -> " + DefaultSort) ;
}
OldText = OldText.split("{{"+HasDefaultSort+LiveRC_Config["HotCats"]["OldDefaultSort"]+"}}\n").join(NewDefaultSort);
OldText = OldText.split("{{"+HasDefaultSort+LiveRC_Config["HotCats"]["OldDefaultSort"]+"}}").join(NewDefaultSort);
}else if(DefaultSort){
var re = new RegExp("\\[\\[(?:"+lrcGetNamespaceName(14)+"|Category):[^\\]]+\\]\\]", "ig")
var index = re.exec(OldText);
if(index ==null ) {
var interWiki = new RegExp('^\\s*\\[\\[([a-z][a-z].?(x?-[^\\]]+)?|simple|tokipona):([^\\]]*)\\]\\]\\s*$');
var blank = new RegExp('^\\s*$');
var lines = OldText.split('\n');
var DebutModele = '';
var SuiteModele = '';
var FoundInterwiki = false;
for (var lineId = lines.length - 1; lineId >= 0; --lineId){
if (!interWiki.exec(lines[lineId]) && !blank.exec(lines[lineId])){
DebutModele = lines.slice(0, lineId + 1).join('\n');
SuiteModele = lines.slice(lineId + 1).join('\n');
break;
}
}
SuiteModele = SuiteModele.replace(/^\n/, "");
OldText = DebutModele+ '\n\n' + NewDefaultSort + '\n' + SuiteModele;
}else{
var lastindex = (re.lastIndex);
var compile = re.compile(re);
var FirstCat = re.exec(OldText).toString();
FirstCat = FirstCat.replace(/\n/g, "");
var Before = OldText.substring(0, lastindex).replace(FirstCat, "");
var After = FirstCat+OldText.substring(lastindex)
OldText = Before + NewDefaultSort + After;
}
summary.push ("; + " + NewDefaultSort ) ;
}
}
var cat = new RegExp("\\[\\[(?:"+lrcGetNamespaceName(14)+"|Category):[^\\]]+\\]\\]", "ig");
var NoCatTemplate = LiveRC_getHotCatsVariables("HC_NoCatTemplate");
var nocat1 = "{{"+NoCatTemplate.ucFirst()+"}}\n";
var nocat1Bis = "{{"+NoCatTemplate.lcFirst()+"}}\n";
var nocat2 = "{{"+NoCatTemplate.ucFirst()+"}}";
var nocat2Bis = "{{"+NoCatTemplate.lcFirst()+"}}";
if(cat.exec(OldText) != null){
OldText = OldText.split(nocat1).join("");
OldText = OldText.split(nocat1Bis).join("");
OldText = OldText.split(nocat2).join("");
OldText = OldText.split(nocat2Bis).join("");
}
var Summary = lrcMakeText("RESUMESTART") + lrcMakeText("HC_ResumeScript") + summary.join("");
var IsMinor = LiveRC_Config["HotCats"]["MinorEditStatus"];
var MinorEditCheckBox = getElementWithId("wpMinoredit", "input", Preview);
var MustWatchthis = LiveRC_Config["HotCats"]["WatchStatus"];
var WathThisCheckBox = getElementWithId("wpWatchthis", "input", Preview);
getElementWithId("wpTextbox1", "textarea", Preview).value = OldText;
getElementWithId("wpSummary", "input", Preview).value = Summary;
if(IsMinor==="1") MinorEditCheckBox.checked = true;
if(IsMinor==="0") MinorEditCheckBox.checked = false;
if(MustWatchthis=="watch") WathThisCheckBox.checked = true;
if(MustWatchthis=="unwatch") WathThisCheckBox.checked = false;
if(MustWatchthis=="nochange") WathThisCheckBox.checked = !!(LiveRC_Config["Suivi"][LiveRC_Config["HotCats"]["CurrentPage"]]);
if((LiveRC_getHotCatsVariables("HC_autocommit"))&&(prevent_autocommit != 1)){
var Input = getElementWithId("Live_wpSave", "input", Preview);
if(Input){
var Params = getFormParams(Preview);
var EditParam = new Array();
EditParam["token"] = document.getElementsByName("wpEditToken")[0].value;
EditParam["text"] = OldText;
EditParam["summary"] = Summary;
EditParam["title"] = LiveRC_Config["HotCats"]["CurrentPage"];
EditParam["watchlist"] = LiveRC_Config["HotCats"]["WatchStatus"];
EditParam[((MinorEditCheckBox.checked ? "" : "not")+"minor")] = "1";
EditParam["nocreate"] = "1";
var ParamsInURL = new Array();
for(var P in EditParam){
if(typeof(EditParam[P])=="string") ParamsInURL.push(P+"="+encodeURIComponent(EditParam[P]));
}
ParamsInURL = ParamsInURL.join("&")+"&wpSave=1";
var action = lrcGetAPIURL('action=edit');
var headers = new Array();
headers['Content-Type'] = 'application/x-www-form-urlencoded';
wpajax.http({ url: action,
method: "POST",
headers: headers,
data: ParamsInURL,
onSuccess:lrcHotCats_EditDone,
page:EditParam["title"]
});
}else{
prevent_autocommit = 1;
}
}
if(prevent_autocommit == 1) getElementWithId("editform", "form", Preview).style.display = "";
LiveRC_Config["HotCats"]["IsEditMode"] = false;
}
LiveRC_AddHook("AfterPreviewEdit", lrcHotCats_DoEdit);
window.lrcHotCats_EditDone = function(Req, data){
var Page = data.page;
liveArticle(Page);
}
///////////////////////// SUGGESTIONS ////////////////////////////////////////////////////////
// REQUÊTE DE SUGGESTIONS
window.lrcHotCatsText_changed = function(FormIndex, Mode, titles, catContinue) {
if ( LiveRC_Config["HotCats"]["suggest_running"] ) return ;
if(!Mode) Mode = false;
if((!FormIndex)||(FormIndex=="")) FormIndex = "0";
if(!titles) titles = new Array () ;
if(!catContinue) catContinue = "";
var text = LiveRC_Config["HotCats"]["Matrix"].Text[FormIndex];
if(!text){LiveRC_alert('PB lrcHotCatsText_changed () : ' + FormIndex); return; }
var v = text.value
v = lrcHotCats_deleteUnwantedUnicodeChars(v);
if(getNamespaceInfoFromPage(v) == 14) v = getNamespaceInfoFromPage(v, "PageName");
v = (LiveRC_Config["HotCats"]["CaseSensitive"] ? v : v.ucFirst());
text.value = v;
if(v.indexOf("|")!=-1) v = v.split("|")[0];
var APILimit = LiveRC_Config["UserInfos"].APIlimit;
if(LiveRC_getHotCatsVariables("HC_list_items")>APILimit) lrcHotCatsVariables_Custom.list_items = APILimit; // API max
if(Mode=="UP"){ // Suggestions catégories-mères
var URL = "format=xml&action=query&prop=categories&titles=" + lrcGetNamespaceName(14)+':'+encodeURIComponent(v) + "&cllimit=" + LiveRC_getHotCatsVariables("HC_list_items");
var TagName = "cl";
var Replace = false;
}else if(Mode=="DOWN"){ // Suggestions catégories-filles
var URL = "format=xml&action=query&list=categorymembers&cmnamespace=14&cmtitle=" + lrcGetNamespaceName(14)+':'+encodeURIComponent(v) + "&cmlimit=" + APILimit + catContinue;
var TagName = "cm";
var Replace = false;
}else{ // Suggestions normales
var URL = "format=xml&action=query&list=allpages&apnamespace=14&apfrom=" + encodeURIComponent(v) + "&aplimit=" + LiveRC_getHotCatsVariables("HC_list_items");
var TagName = "p";
var Replace = true;
}
if ( v != "" ) {
LiveRC_Config["HotCats"]["suggest_running"] = 1 ;
wpajax.http({ url: lrcGetAPIURL(URL),
onSuccess: lrcHotCatsText_changed_getSuggests,
mode:Mode,
tag:TagName,
index:FormIndex,
replace:Replace,
titles:titles
});
} else {
lrcHotCats_show_suggestions ( titles , FormIndex, Replace ) ;
}
}
// RECEPTION REQUETE
window.lrcHotCatsText_changed_getSuggests = function(Req, data){
var Mode = data.mode;
var TagName = data.tag;
var FormIndex = data.index;
var Replace = data.replace;
var titles = data.titles;
var xml = Req.responseXML ;
if ( xml == null ){ LiveRC_Config["HotCats"]["suggest_running"] = 0; return; }
var pages = xml.getElementsByTagName( TagName ) ;
for ( var i = 0 ; i < pages.length ; i++ ) {
var s = pages[i].getAttribute("title");
if(s.indexOf(lrcGetNamespaceName(14)+':')!=-1){
s = s.split(lrcGetNamespaceName(14)+':').join('');
titles.push ( s ) ;
}
}
var CanContinue = xml.getElementsByTagName("query-continue")[0];
if(Mode=="DOWN"&&CanContinue){
CanContinueId = "&cmcontinue="+encodeURIComponent(CanContinue.firstChild.getAttribute("cmcontinue"));
LiveRC_Config["HotCats"]["suggest_running"] = 0 ;
lrcHotCatsText_changed(FormIndex, Mode, titles ,CanContinueId) ;
}else{
lrcHotCats_show_suggestions(titles, FormIndex, Replace);
}
LiveRC_Config["HotCats"]["suggest_running"] = 0;
}
// AFFICHAGE DES SUGGESTIONS
window.lrcHotCats_show_suggestions = function( titles, FormIndex, Replace, Mode ) {
var text = LiveRC_Config["HotCats"]["Matrix"].Text[FormIndex] ;
var list = LiveRC_Config["HotCats"]["Matrix"].List[FormIndex] ;
var icon = LiveRC_Config["HotCats"]["Matrix"].Exist[FormIndex] ;
if((!text)||(!list)||(!icon)) { LiveRC_alert('PB lrcHotCats_show_suggestions() : ' + FormIndex); return; }
if(titles.length==0){
list.style.display = "none" ;
if(Replace){
icon.innerHTML = lrcMakeIcon("SuggestNoExistIcon").split("$1").join("").split(" ").join(" ");
$(icon).addClass("lrcHotCats_NoExists");
$(icon).removeClass("lrcHotCats_Exists");
}
return ;
}
var TailleListe = LiveRC_getHotCatsVariables("HC_list_size");
if (titles.length < TailleListe ) TailleListe = titles.length;
var listh = TailleListe * 20 ;
list.size = TailleListe ;
list.style.align = "left" ;
list.style.zIndex = 5 ;
list.style.position = "relative" ;
list.style.width = text.offsetWidth + "px" ;
list.style.height = listh + "px" ;
if (LiveRC_getHotCatsVariables("HC_list_down")) {
list.style.top = parseInt(text.offsetHeight) + "px";
list.style.marginBottom = "-" + ((TailleListe * 20) + parseInt(text.offsetHeight)) + "px" ;
}else{
list.style.marginTop = "-" + (TailleListe * 20) + "px" ;
}
list.style.marginLeft = "-" + text.offsetWidth + "px" ;
while ( list.firstChild ) list.removeChild ( list.firstChild ) ;
for ( var i = 0 ; i < titles.length ; i++ ) {
var opt = document.createElement ( "option" ) ;
var ot = document.createTextNode ( titles[i] ) ;
opt.appendChild ( ot ) ;
opt.value = titles[i];
list.appendChild ( opt ) ;
}
list.onkeyup = lrcHotCats_KeypressedOnList;
list.style.display = "inline" ;
var first_title = titles.shift () ;
LiveRC_Config["HotCats"]["last_v"] = ( LiveRC_Config["HotCats"]["CaseSensitive"] ? text.value : text.value.ucFirst());
var last_v_Split = LiveRC_Config["HotCats"]["last_v"];
if(LiveRC_Config["HotCats"]["last_v"].indexOf('|')!=-1){
LiveRC_Config["HotCats"]["last_key"] = LiveRC_Config["HotCats"]["last_v"].substring(LiveRC_Config["HotCats"]["last_v"].indexOf("|"), LiveRC_Config["HotCats"]["last_v"].length);
last_v_Split = LiveRC_Config["HotCats"]["last_v"].split(LiveRC_Config["HotCats"]["last_key"]).join('');
}else{
LiveRC_Config["HotCats"]["last_key"] = "";
}
icon.innerHTML = lrcMakeIcon("SuggestExistIcon").split("$1").join(first_title).split(" ").join(" ") ;
$(icon).addClass("lrcHotCats_Exists");
$(icon).removeClass("lrcHotCats_NoExists");
if ( first_title == last_v_Split ) return ;
if(Replace){
var suggestion = first_title;
if(suggestion.indexOf(last_v_Split)==-1){
icon.innerHTML = lrcMakeIcon("SuggestNoExistIcon").split("$1").join(suggestion).split(" ").join(" ");
$(icon).addClass("lrcHotCats_NoExists");
$(icon).removeClass("lrcHotCats_Exists");
return;
}
text.value = suggestion + LiveRC_Config["HotCats"]["last_key"] ;
if (text.createTextRange) {
var ra = text.createTextRange();
ra.moveStart("character", LiveRC_Config["HotCats"]["last_v"].length);
ra.moveEnd("character", suggestion.length);
ra.select();
} else if( text.setSelectionRange ) {
text.setSelectionRange( LiveRC_Config["HotCats"]["last_v"].length, suggestion.length );
} else {
text.selectionStart = LiveRC_Config["HotCats"]["last_v"].length ;
text.selectionEnd = suggestion.length ;
}
}else{
list.focus()
}
}
// MISE A JOUR DE LA POSITION DES LISTES DE SUGGESTIONS
window.lrcHotCats_upDate_FormPositions = function(){
var AllForms = document.getElementById('mw-normal-catlinks').getElementsByTagName('form');
for(var a=0;a<AllForms.length;a++){
if(AllForms[a].id == "lrcHotCats_modify_multi_form") continue;
if(AllForms[a].id == "lrcHotCats_form_Default") continue;
var ThisForm = AllForms[a];
var ThisSelect = ThisForm.getElementsByTagName('select')[0];
var Options = ThisSelect.getElementsByTagName('option');
var ThisInput = ThisForm.getElementsByTagName('input')[0];
var TailleListe = LiveRC_getHotCatsVariables("HC_list_size") * 20 ;
if (Options.length < LiveRC_getHotCatsVariables("HC_list_size")) {
TailleListe = Options.length * 20 ;
}
ThisSelect.style.position = "relative" ;
ThisSelect.style.width = ThisInput.offsetWidth + "px" ;
if (LiveRC_getHotCatsVariables("HC_list_down")) {
ThisSelect.style.top = parseInt(ThisInput.offsetHeight) + "px";
ThisSelect.style.marginBottom = "-" + ((TailleListe * 20) + parseInt(ThisInput.offsetHeight)) + "px" ;
}else{
ThisSelect.style.marginTop = "-" + (TailleListe * 20) + "px" ;
}
ThisSelect.style.marginLeft = "-" + ThisInput.offsetWidth + "px" ;
}
}
// SÉLECTION D'UNE SUGGESTION AU CLAVIER
window.lrcHotCats_KeypressedOnList = function(e){
if (!e) var e = window.event;
if (e.keyCode != 13) return;
lrcHotCatsText_replace(lrcHotCats_getIndex(this))
}
// REMPLACEMENT DU CHAMP DE TEXTE PAR UNE SUGGESTION
window.lrcHotCatsText_replace = function(Index){
var Text = LiveRC_Config["HotCats"]["Matrix"].Text[Index];
var TextValue = Text.value;
var List = LiveRC_Config["HotCats"]["Matrix"].List[Index];
var Options = List.getElementsByTagName('option');
for(var a=0;a<Options.length;a++){
if(Options[a].selected){
var ListValue = Options[a].value;
if(TextValue.indexOf('|')!=-1){
LiveRC_Config["HotCats"]["last_key"] = TextValue.substring(TextValue.indexOf("|"), TextValue.length);
}
Text.value = ListValue + LiveRC_Config["HotCats"]["last_key"];
lrcHotCatsText_changed(Index) ;
Text.focus();
return;
}
}
}
///////////////////////// DIVERS ////////////////////////////////////////////////////////
// RÉCUPÉRATION DU N° D'INDEX
window.lrcHotCats_getIndex = function( Element ){
return parseInt(Element.id.replace(/[^0-9]/g, ""));
}
// GESTION {{PLURAL:}} (MESSAGES SYSTÈME)
window.lrcHotCats_PLURAL = function(Text, Plural){
var PluralRegExp = new RegExp("\\{\\{PLURAL[^\\}]+\\}\\}", "ig")
var Matches = Text.match(PluralRegExp);
if(Matches!=null){
for(var b=0,m=Matches.length;b<m;b++){
var Match = Matches[b];
var Params = Match.split('}}').join('').split('|');
var Result = "";
if(Plural){
Result = Params[2];
}else{
Result = Params[1];
}
if(!Result) Result = "";
Text = Text.replace(Match, Result);
}
}
return Text;
}
// GESTION {{GENDER:}} (MESSAGES SYSTÈME)
window.lrcHotCats_GENDER = function(Text, Gender){
var PluralRegExp = new RegExp("\\{\\{GENDER[^\\}]+\\}\\}", "ig")
var Matches = Text.match(PluralRegExp);
if(Matches!=null){
for(var b=0,m=Matches.length;b<m;b++){
var Match = Matches[b];
var Params = Match.split('}}').join('').split('|');
var Result = "";
if(Gender=="male"){
Result = Params[1];
}else if(Gender=="female"){
Result = Params[2];
}else{
Result = Params[3];
}
if(!Result) Result = "";
Text = Text.replace(Match, Result);
}
}
return Text;
}
// FONCTION : création RegExp
window.lrcHotCats_CreateRegExp = function(Cat){
Cat = (LiveRC_Config["HotCats"]["CaseSensitive"] ? Cat : Cat.ucFirst() );
var CatRegExp = new RegExp("(\\s*)\\[\\[( |_)*(?:"+lrcGetNamespaceName(14)+"|Category)( |_)*:( |_)*" + Cat.replace(/([\\\^\$\*\+\?\.\|\{\}\[\]\(\)])/g, "\\$1")+"( |_)*(\\|[^\\]]*)?\\]\\]", "g");
return CatRegExp;
}
// PREMIÈRE LETTRE EN MAJUSCULE
String.prototype.ucFirst = function () {
return this.substr(0,1).toUpperCase() + this.substr(1,this.length);
}
// PREMIÈRE LETTRE EN MINUSCULE
String.prototype.lcFirst = function () {
return this.substr(0,1).toLowerCase() + this.substr(1,this.length);
}
// Retrait de caractères unicode indésirables
window.lrcHotCats_deleteUnwantedUnicodeChars = function(Text){
return Text.replace(/\u200E|\u200F|\u202A|\u202B|\u202C|\u202D|\u202E/g, '');
}
/* ************************************************************************************************************************************************ */
} // FIN IF
//</source>