Utilisateur:Dr Brains/SearchPageList.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.SearchPageList = new Object();
SearchPageList.Textes = new Object();
SearchPageList.Params = new Object();
SearchPageList.Variables = new Object();
SearchPageList.Fonctions = new Object();
////////////////////////////// DEBUT DE LA PARTIE PERSONNALISABLE ////////////////////////////
SearchPageList.Params.SpecialPageName = "SearchPageList";
SearchPageList.Textes.SpecialPageText = "Rechercher pages";
SearchPageList.Textes.SpecialPageTitle = "Rechercher une liste de pages";
SearchPageList.Textes.SpecialPageOptionLegend = "Options de recherche";
SearchPageList.Textes.CheckboxAllPagesLabel = "Toutes les pages";
SearchPageList.Textes.CheckboxAllPagesOptionItemPrefixLabel = "Préfixe";
SearchPageList.Textes.CheckboxAllPagesOptionItemNamespaceLabel = "Espace de noms";
SearchPageList.Textes.CheckboxCategoryLabel = "Pages d’une catégorie";
SearchPageList.Textes.CheckboxCategoryOptionItemPrefixLabel = "Catégorie";
SearchPageList.Textes.RunSearchLabel = "Rechercher";
/////////////////////////////// FIN DE LA PARTIE PERSONNALISABLE /////////////////////////////
// Ajout d'un lien dans la boîte à outils
SearchPageList.Fonctions.Link = function(){
if(typeof(SearchPageList.Fonctions.LangCustom)=="function") SearchPageList.Fonctions.LangCustom();
if(typeof(SearchPageList.Fonctions.SiteCustom)=="function") SearchPageList.Fonctions.SiteCustom();
if(typeof(SearchPageList.Fonctions.UserCustom)=="function") SearchPageList.Fonctions.UserCustom();
var OngletsCactions = document.getElementById('p-tb');
if(OngletsCactions){
var CactionsUl = OngletsCactions.getElementsByTagName('ul')[0];
CactionsUl.innerHTML += '<li><a href="'+mw.config.get('wgArticlePath').split("$1").join("Special:"+SearchPageList.Params.SpecialPageName)+'" title="'+SearchPageList.Textes.SpecialPageTitle+'">'+SearchPageList.Textes.SpecialPageText+'</a></li>';
if(OngletsCactions.className){
OngletsCactions.className = OngletsCactions.className.replace(/[ ]*emptyPortlet[ ]*/, " ");
}
}
}
// Initialisation de la page spéciale
SearchPageList.Fonctions.Init = function(){
var Title = document.getElementsByTagName('title')[0];
if(Title) Title.innerHTML = SearchPageList.Textes.SpecialPageTitle;
var PageTitle = document.getElementsByTagName('h1')[0];
if(PageTitle) PageTitle.innerHTML = SearchPageList.Textes.SpecialPageTitle;
var Content = document.getElementById("bodyContent");
if(!Content) Content = document.getElementById("Article");
if(!Content) Content = document.getElementById("mw_contentholder");
if(!Content) Content = document.body;
while(Content.firstChild){ Content.removeChild(Content.firstChild); }
SearchPageList.Fonctions.CreatePage(Content);
}
// Création du corps la page spéciale
SearchPageList.Fonctions.CreatePage = function(Content){
var Fieldset = document.createElement("fieldset");
Content.appendChild(Fieldset);
var Legend = document.createElement("legend");
Legend.appendChild(document.createTextNode(SearchPageList.Textes.SpecialPageOptionLegend));
Fieldset.appendChild(Legend);
var Table = document.createElement("table");
Table.id = "SearchPageListOptionTable";
Table.setAttribute("style", "width:100%;text-align:center;");
var TR1 = document.createElement('tr');
Table.appendChild(TR1);
var TD11 = document.createElement('td');
TR1.appendChild(TD11);
var TD12 = document.createElement('td');
TR1.appendChild(TD12);
var TR2 = document.createElement('tr');
Table.appendChild(TR2);
var TD21 = document.createElement('td');
TR2.appendChild(TD21);
var TD22 = document.createElement('td');
TR2.appendChild(TD22);
var TR3 = document.createElement('tr');
Table.appendChild(TR3);
var TD31 = document.createElement('td');
TD31.setAttribute("colspan", "2");
TR3.appendChild(TD31);
Fieldset.appendChild(Table);
var CheckboxAllPages = document.createElement("input");
CheckboxAllPages.type = "checkbox";
CheckboxAllPages.id = "MenuCheckboxAllPages";
CheckboxAllPages.className = "MenuCheckbox";
CheckboxAllPages.onchange = function(){ SearchPageList.Fonctions.CheckboxCliqued("MenuCheckboxAllPages"); }
var CheckboxAllPagesLabel = document.createElement("label");
CheckboxAllPagesLabel.for="MenuCheckboxAllPages";
CheckboxAllPagesLabel.appendChild(document.createTextNode(SearchPageList.Textes.CheckboxAllPagesLabel));
TD11.appendChild(CheckboxAllPages);
TD11.appendChild(CheckboxAllPagesLabel);
var CheckboxCategory = document.createElement("input");
CheckboxCategory.type = "checkbox";
CheckboxCategory.id = "MenuCheckboxCategory";
CheckboxCategory.className = "MenuCheckbox";
CheckboxCategory.onchange = function(){ SearchPageList.Fonctions.CheckboxCliqued("MenuCheckboxCategory"); }
var CheckboxCategoryLabel = document.createElement("label");
CheckboxCategoryLabel.for="MenuCheckboxCategory";
CheckboxCategoryLabel.appendChild(document.createTextNode(SearchPageList.Textes.CheckboxCategoryLabel));
TD12.appendChild(CheckboxCategory);
TD12.appendChild(CheckboxCategoryLabel);
var CheckboxAllPagesOptionItems = document.createElement("div");
CheckboxAllPages.id = "MenuCheckboxAllPagesOptions";
var CheckboxAllPagesOptionItemPrefix = document.createElement("input");
CheckboxAllPagesOptionItemPrefix.type = "text";
CheckboxAllPagesOptionItemPrefix.id = "MenuCheckboxAllPagesOptionsPrefix";
var CheckboxAllPagesOptionItemPrefixLabel = document.createElement("label");
CheckboxAllPagesOptionItemPrefixLabel.for = "MenuCheckboxAllPagesOptionsPrefix";
CheckboxAllPagesOptionItemPrefixLabel.appendChild( document.createTextNode(SearchPageList.Textes.CheckboxAllPagesOptionItemPrefixLabel) );
var CheckboxAllPagesOptionItemNamespace = document.createElement("select");
CheckboxAllPagesOptionItemNamespace.id = "MenuCheckboxAllPagesOptionsNamespace";
for(var ns in mw.config.get('wgFormattedNamespaces')){
if(ns==-1) continue;
var Option = document.createElement('option');
Option.value = ns;
Option.innerHTML = mw.config.get('wgFormattedNamespaces')[ns];
CheckboxAllPagesOptionItemNamespace.appendChild(Option);
}
var CheckboxAllPagesOptionItemNamespaceLabel = document.createElement("label");
CheckboxAllPagesOptionItemNamespaceLabel.for = "MenuCheckboxAllPagesOptionsNamespace";
CheckboxAllPagesOptionItemNamespaceLabel.appendChild( document.createTextNode(SearchPageList.Textes.CheckboxAllPagesOptionItemNamespaceLabel) );
CheckboxAllPagesOptionItems.appendChild(CheckboxAllPagesOptionItemPrefix);
CheckboxAllPagesOptionItems.appendChild(CheckboxAllPagesOptionItemPrefixLabel);
CheckboxAllPagesOptionItems.appendChild(document.createElement("br"));
CheckboxAllPagesOptionItems.appendChild(CheckboxAllPagesOptionItemNamespace);
CheckboxAllPagesOptionItems.appendChild(CheckboxAllPagesOptionItemNamespaceLabel);
TD21.appendChild(CheckboxAllPagesOptionItems);
var CheckboxCategoryOptionItems = document.createElement("div");
CheckboxCategory.id = "MenuCheckboxCategoryOptions";
var CheckboxCategoryOptionItemCat = document.createElement("input");
CheckboxCategoryOptionItemCat.type = "text";
CheckboxCategoryOptionItemCat.id = "MenuCheckboxCategoryOptionsCat";
var CheckboxCategoryOptionItemCatLabel = document.createElement("label");
CheckboxCategoryOptionItemCatLabel.for = "MenuCheckboxCategoryOptionsCat";
CheckboxCategoryOptionItemCatLabel.appendChild( document.createTextNode(SearchPageList.Textes.CheckboxCategoryOptionItemCatLabel) );
CheckboxCategoryOptionItems.appendChild(CheckboxCategoryOptionItemCat);
TD22.appendChild(CheckboxCategoryOptionItems);
var ButtonGo = document.createElement("input");
ButtonGo.type = "button";
ButtonGo.value = SearchPageList.Textes.RunSearchLabel;
ButtonGo.onclick = function(){ SearchPageList.Fonctions.InitSearch(); };
ButtonGo.select = function(){ SearchPageList.Fonctions.InitSearch(); };
TD31.appendChild(ButtonGo);
var Liste = document.createElement("ol");
Liste.id = "SearchPageListOl";
Content.appendChild(Liste);
SearchPageList.Fonctions.getURLParams();
}
// Application des paramètres d'URL
SearchPageList.Fonctions.getURLParams = function(){
}
// Clic sur une checkbox
SearchPageList.Fonctions.CheckboxCliqued = function(id){
var TheCkeckbox = document.getElementById(id);
var Table = document.getElementById("SearchPageListOptionTable");
if(!TheCkeckbox || !Table) return;
var TheCkeckboxChecked = TheCkeckbox.checked;
var CheckBoxes = getElementsByClassName(Table, "input", "MenuCheckbox");
var OptionsType = new Array("select", "input", "textarea");
for(var a=0,l= CheckBoxes.length;a<l;a++){
var ThisCheckBox = CheckBoxes[a];
var IstItTheCheckbox = (ThisCheckBox==TheCkeckbox);
var ThisOptions = document.getElementById(id + "Options");
if(ThisOptions){
for(var b=0,m=OptionsType.length;b<m;a++){
var ThisOptionsItems = ThisOptions.getElementsByTagName(OptionsType[b]);
for(var c=0,n=ThisOptionsItems.length;c<n;c++){
ThisOptionsItems.disabled = ( IstItTheCheckbox ? false : "disabled" );
}
}
}
if( ThisCheckBox == TheCkeckbox ){
}else{
ThisCheckBox.checked = false;
}
}
}
// Lancement de la recherche
SearchPageList.Fonctions.InitSearch = function(){
}
// Fonction de lancement
if((mw.config.get('wgNamespaceNumber')==-1)&&(mw.config.get('wgTitle').indexOf(SearchPageList.Params.SpecialPageName)!=-1)){
addOnloadHook(SearchPageList.Fonctions.Init);
}else{
addOnloadHook(SearchPageList.Fonctions.Link);
}