|
|
(33 versions intermédiaires par le même utilisateur non affichées) |
Ligne 1 : |
Ligne 1 : |
| /* Tout JavaScript ici sera chargé avec les pages accédées par les utilisateurs de l’habillage MonoBook uniquement. */ | | /* Tout JavaScript ici sera chargé avec les pages accédées par les utilisateurs de l’habillage MonoBook uniquement. */ |
|
| |
|
| |
| /* Note: cette page n'est pas indispensable au fonctionnement du site, */
| |
| /* en cas d'erreur bloquante elle peut être vidée dans l'urgence. */
| |
|
| |
|
| |
|
| |
|
| |
| /*--------------------------------------------------------------------------------*/
| |
|
| |
| /* Ajoute lien Agora dans le menu Navigation (si connecté)
| |
| /* et lien index des pages dans menu Navigation */
| |
|
| |
| function addlinkportletmenu() {
| |
| if (wgUserName != null)
| |
| addPortletLink("p-navigation", "https://fr.boywiki.org/wiki/BoyWiki:Agora", "Agora", "n-agora", "échanger ou se documenter sur la gestion et la rédaction de BoyWiki");
| |
| addPortletLink("p-navigation", "https://fr.boywiki.org/wiki/BoyWiki:Index des pages","Index des pages","n-idxallpg","toutes les pages articles",'',document.getElementById('n-randompage'));
| |
| }
| |
|
| |
| addOnloadHook(addlinkportletmenu);
| |
|
| |
|
| |
| /*--------------------------------------------------------------------------------*/
| |
|
| |
|
| |
| /* Pour les pages 'dialogue' affecte la classe dialog à body */
| |
| /* utilisé par css pour l'encadrement colorisé des dialogues indentés dans Agora */
| |
|
| |
| function attrib_class_dialog() {
| |
| /* seulement pour les pages Agora ou discussion */
| |
| var bodyclass = document.body.className;
| |
| if (bodyclass.match(/page-BoyWiki_Agora/)
| |
| || bodyclass.match(/page-Discussion_/)
| |
| || bodyclass.match(/page-Discuter_/))
| |
| document.body.className = bodyclass + ' dialog';
| |
| }
| |
|
| |
| addOnloadHook(attrib_class_dialog);
| |
|
| |
|
| |
| /*--------------------------------------------------------------------------------*/
| |
|
| |
|
| |
| /* Pages Agora : si création nouvelle sous-page ajoute un lien-titre-date principal (appelé sur submit) */
| |
|
| |
| function pgagora_insert_topsection() {
| |
| /* seulement pages agora nouvelle et ayant droit en écriture */
| |
| if (wgAction != 'edit' && wgAction != 'submit') return true;
| |
| if (wgUserGroups == null || wgUserGroups.join(" ").match(/scribe|sysop|fsc|bureaucrat/) == null) return true;
| |
| if (wgPageName == null || wgPageName.match(/^BoyWiki:Agora\//) == null) return true;
| |
| if (wgTitle == null) return true;
| |
| if (wgArticleId != 0) return true;
| |
| if (document.forms['editform'].elements['wpSummary'] == undefined) return true;
| |
| if (document.getElementById('wpSummaryLabel').firstChild.firstChild.data.match(/Sujet\/titre/) == null) return true;
| |
|
| |
| /* récup texte */
| |
| var content = document.forms['editform'].elements['wpTextbox1'].value;
| |
| /* si lien titre déjà présent */
| |
| if (content.match(/^\n?=\[\[[^\]\/]*Agora\/[^\]]*\]\]=/)) return true;
| |
| /* sinon copie sujet sous-titre */
| |
| var sujet = document.forms['editform'].elements['wpSummary'].value;
| |
| document.forms['editform'].elements['wpSummary'].value = "";
| |
| if (sujet.length) sujet = "=="+sujet+"==\n";
| |
| /* et insère titre en début page et sujet en dessous */
| |
| var titre = "=[[BoyWiki:"+wgTitle+"|"+wgTitle+"]]=\n";
| |
| document.forms['editform'].elements['wpTextbox1'].value = titre + sujet + content;
| |
| return true;
| |
| }
| |
|
| |
|
| |
| /*--------------------------------------------------------------------------------*/
| |
|
| |
|
| |
| /* Ajoute un message d'aide sur la page création de compte */
| |
|
| |
| function pgcreataccount_addmsg() {
| |
| if (wgPageName != 'Special:Connexion') return;
| |
| var ulg = document.getElementById('userlogin2');
| |
| if (ulg == null) return;
| |
|
| |
| var p = document.createElement('p');
| |
| p.innerHTML = "<i><b>Afin que vous puissiez modifier des articles ou en créer de nouveaux, votre compte devra être promu au niveau “scribe”. À cet effet, merci de contacter fr.info@boywiki.org (prévoyez cependant un délai pouvant se compter en jours pour obtenir une réponse à votre courriel).</b></i>";
| |
| ulg.appendChild(p);
| |
| }
| |
|
| |
| addOnloadHook (pgcreataccount_addmsg);
| |
|
| |
|
| |
| /*--------------------------------------------------------------------------------*/
| |
|
| |
|
| |
| /* Montrer/Masquer les liens dans les citations (appelé par bouton en haut de page ou bandeau citation) */
| |
| /* ajout ou retrait de la classe masquelien au(x) div citation longue pour application style */
| |
|
| |
| function togglevisibilitylink() {
| |
| var divs = document.getElementById('bodyContent').getElementsByTagName('div');
| |
| for (var i = 0; i < divs.length ; i++) {
| |
| if (divs[i].className.match(/^citelong.+masquelien/)) {
| |
| divs[i].className = divs[i].className.replace(/ masquelien/,'');
| |
| document.getElementById('togglevisibilitylink').firstChild.value = 'Masquer les liens dans les citations';
| |
| }
| |
| else if (divs[i].className.match(/^citelong/)) {
| |
| divs[i].className = divs[i].className + ' masquelien';
| |
| document.getElementById('togglevisibilitylink').firstChild.value = 'Afficher les liens dans les citations';
| |
| }
| |
| }
| |
| }
| |
|
| |
|
| |
| /* Montrer les liens dans les citations imposé pour le mode prévisualiser */
| |
| /* retrait de la classe masquelien au(x) div citation longue */
| |
|
| |
| function togglevisibilitylinkpreview() {
| |
| if (wgAction != 'submit' || wgPageName.match(/Agora/)) return;
| |
| var divs = document.getElementById('bodyContent').getElementsByTagName('div');
| |
| for (var i = 0; i < divs.length ; i++) {
| |
| if (divs[i].className.match(/^citelong/)) {
| |
| divs[i].className = divs[i].className.replace(/ masquelien/,'');
| |
| }
| |
| }
| |
| }
| |
|
| |
| addOnloadHook(togglevisibilitylinkpreview);
| |
|
| |
|
| |
| /* Création en haut de page bouton Montrer/Masquer liens pour les citations (haut de page ou bandeau citation)
| |
| */
| |
|
| |
| function creatogglevisibilitylink() {
| |
| if (wgAction != 'view' || !wgIsArticle || wgPageName.match(/Agora/)) return;
| |
| var cont = document.getElementById('bodyContent');
| |
| var divs = cont.getElementsByTagName('div');
| |
| /* seulement si un espace citation présent et option sanslien absente */
| |
| for (var i = 0; i < divs.length ; i++) {
| |
| if (divs[i].className.match(/citelong/) && !divs[i].className.match(/sanslien/)) {
| |
| var btn = document.getElementById('togglevisibilitylink');
| |
| /* si div inexistant ajout en haut de page (div existe si bouton dans bandeau) */
| |
| if(!btn) {
| |
| var idx = document.getElementById('bandeaucite');
| |
| if (!idx) idx = document.getElementById('jump-to-nav');
| |
| if (!idx) idx = document.getElementById('contentSub');
| |
| btn = document.createElement('div');
| |
| btn.setAttribute('id', 'togglevisibilitylink');
| |
| }
| |
| btn.innerHTML = '<input type="button" value="Afficher les liens dans les citations" title="Montrer/Masquer les liens qui ont été rajoutés au texte originel pour naviguer vers d’autres pages de BoyWiki" onclick="togglevisibilitylink()" />';
| |
| if (idx) cont.insertBefore(btn, idx.nextSibling);
| |
| break;
| |
| }
| |
| }
| |
| }
| |
|
| |
| addOnloadHook(creatogglevisibilitylink);
| |
|
| |
|
| |
| /*--------------------------------------------------------------------------------*/
| |
|
| |
|
| |
| /* Pour les pages 'édition' ajout de boutons à la barre d'outils */
| |
| /* utilise mwCustomEditButtons variable déclarée dans commons/wikibits.js */
| |
|
| |
| function addCustomButton(imageFile, imageText, tagOpen, tagClose, insertText) {
| |
| mwCustomEditButtons[mwCustomEditButtons.length] = {"imageFile": imageFile,
| |
| "speedTip": imageText,
| |
| "tagOpen": tagOpen,
| |
| "tagClose": tagClose,
| |
| "sampleText": insertText};
| |
| }
| |
|
| |
|
| |
| addCustomButton('http://media.boywiki.org/w/images/0/04/Button_array.png','Assistant Tableau','\n{|\n|-\n|\n|\n|}','','');
| |
| addCustomButton('http://media.boywiki.org/w/images/e/eb/Button_plantilla.png','Liste des Modèles','\{\{','\}\}','nom de modèle ou page à inclure');
| |
| addCustomButton('http://media.boywiki.org/w/images/5/59/Button_replace.png','Chercher-Remplacer','','','');
| |
| addCustomButton('http://media.boywiki.org/w/images/c/c9/Button_strike.png','Rayé','<s>','</s>','');
| |
| addCustomButton('http://media.boywiki.org/w/images/8/88/Btn_toolbar_enum.png','Liste énumération','\n# ','\n# B\n# C','A');
| |
| addCustomButton('http://media.boywiki.org/w/images/1/11/Btn_toolbar_liste.png','Liste à puces','\n* ','\n* B\n* C','A');
| |
| addCustomButton('http://media.boywiki.org/w/images/c/c4/Button_ref.png','Référence','<ref group="groupe de notes">','</ref>','référence, citation, lien');
| |
| addCustomButton('http://media.boywiki.org/w/images/6/64/Buttonrefvs8.png','Index des références','== Notes et références ==\n<references group="groupe de notes" />','','');
| |
| // addCustomButton('http://media.boywiki.org/w/images/0/0c/Button_Link_DifferentName.png','Catégorie','\[\[catégorie:','\|\]\]','nom de catégorie');
| |
| addCustomButton('http://media.boywiki.org/w/images/1/13/Button_enter.png','Saut à la ligne','<br />','','');
| |
| addCustomButton('http://media.boywiki.org/w/images/2/26/Button_latinas.png','Guillemets','« ',' »','texte');
| |
| addCustomButton('http://media.boywiki.org/w/images/5/50/Button_hellip.png','Points de suspension','…','','');
| |
| addCustomButton('http://media.boywiki.org/w/images/2/2d/Button_ndash.png','Tiret demi-cadratin','–','','');
| |
| addCustomButton('http://media.boywiki.org/w/images/c/cd/Button_mdash.png','Tiret cadratin','—','','');
| |
| addCustomButton('http://media.boywiki.org/w/images/5/55/Button_nbsp_1.png','Espace insécable (inutile avec : ; ! ? % « »)',' \;','','');
| |
|
| |
|
| |
| /*--------------------------------------------------------------------------------*/
| |
|
| |
|
| |
| /* Pour les pages 'édition' ajoute une liste déroulante pour afficher des jeux de caractères spéciaux */
| |
| /* version simplifiée inspirée de [http://fr.wikipedia.org/wiki/Utilisateur:Zelda/Edittools] */
| |
|
| |
| var CustomEditCharsetMenu = new Array();
| |
|
| |
| /* Insertion dans la page : barre 'caractères spéciaux', liste déroulante et jeux de caractères */
| |
| function addcharsetmenu() {
| |
| /* Création espace d'accueil dans la page si existe pas */
| |
| if (getElementsByClassName(document, 'div', 'mw-editTools').length == 1) {
| |
| var specialchars = document.getElementById('specialcharsets');
| |
| if (specialchars == null) {
| |
| specialchars = document.createElement('div');
| |
| specialchars.setAttribute('id', 'specialcharsets');
| |
| document.getElementById('bodyContent').insertBefore(specialchars,document.getElementById('editform'));
| |
| }
| |
| }
| |
| if (specialchars == null) return;
| |
|
| |
| /* Création liste déroulante */
| |
| var charsetselect = document.createElement('select');
| |
| charsetselect.setAttribute('style', 'display:inline');
| |
| charsetselect.onchange = function () {changecharset(this.selectedIndex);};
| |
|
| |
| for (var i = 0; i < CustomEditCharsetMenu.length ; i++) {
| |
| /* Création paragraphes par jeu de caractères */
| |
| var p = document.createElement('p');
| |
| p.style.display = 'none';
| |
| p.innerHTML = CustomEditCharsetMenu[i][1];
| |
| specialchars.appendChild(p);
| |
|
| |
| /* Ajout noms des jeux de caractères dans liste déroulante */
| |
| var opt = document.createElement('option');
| |
| var txt = document.createTextNode(CustomEditCharsetMenu[i][0]);
| |
| opt.appendChild(txt);
| |
| charsetselect.appendChild(opt);
| |
| }
| |
| specialchars.insertBefore(charsetselect, specialchars.childNodes[0]);
| |
|
| |
| /* Choix par défaut */
| |
| changecharset(0);
| |
| }
| |
|
| |
|
| |
| /* Affichage des caractères du jeu sélectionné */
| |
| function changecharset(index) {
| |
| var p = document.getElementById('specialcharsets').getElementsByTagName('p');
| |
| for (var i = 0; i < p.length ; i++) {
| |
| /* Init et affiche jeu de caractères sélectionné */
| |
| if (i == index) {
| |
| initcharsubset(p[i]);
| |
| p[i].style.display = 'inline';
| |
| p[i].style.visibility = 'visible';
| |
| }
| |
| else {
| |
| /* cache les autres */
| |
| p[i].style.display = 'none';
| |
| p[i].style.visibility = 'hidden';
| |
| }
| |
| }
| |
| }
| |
|
| |
|
| |
| /* Init jeu de caractères sélectionné - transforme chaque chaine en lien actif */
| |
| function initcharsubset(p) {
| |
| var spans = p.getElementsByTagName("span");
| |
| if (!spans) return;
| |
|
| |
| /* Pour chaque <span> du paragraphe */
| |
| for (var j = 0; j < spans.length; j++) {
| |
| if (spans[j].childNodes.length == 0 || spans[j].childNodes[0].nodeType != 3) continue;
| |
| /* Pour chaque chaine du <span> séparée par un espace */
| |
| var chars = spans[j].childNodes[0].nodeValue.split(' ');
| |
| for (var k = 0; k < chars.length; k++) {
| |
| var a = document.createElement('a');
| |
| var tags = chars[k];
| |
|
| |
| /* création du lien insertTag(tagBegin, tagEnd, defaultValue) */
| |
| var tagBegin = tags;
| |
| var tagEnd = '';
| |
| var defaultValue = '';
| |
| a.href = "javascript:insertTags('" + tagBegin + "','" + tagEnd + "', '" + defaultValue + "')";
| |
| a.appendChild(document.createTextNode(tagBegin + tagEnd));
| |
| spans[j].appendChild(a);
| |
| spans[j].appendChild(document.createTextNode(" "));
| |
| }
| |
| /* suppression ancien contenu */
| |
| spans[j].removeChild(spans[j].firstChild);
| |
| }
| |
| }
| |
|
| |
|
| |
| /* Ajout des jeux de caractères dans la barre 'caractères spéciaux' */
| |
| /* charsetname: nom du jeu de carctères affiché dans la liste déroulante */
| |
| /* charlist: liste des caractères séparés par un espace et encadrée par <span> </span>*/
| |
| function addCustomCharsetMenu(charsetname, charlist) {
| |
| var nextitem = CustomEditCharsetMenu.length;
| |
| CustomEditCharsetMenu[nextitem] = new Array(2);
| |
| CustomEditCharsetMenu[nextitem][0] = charsetname;
| |
| CustomEditCharsetMenu[nextitem][1] = charlist;
| |
| }
| |
|
| |
| addOnloadHook(addcharsetmenu);
| |
|
| |
|
| |
| addCustomCharsetMenu('Français', '<span>À à  â Ä ä Æ æ É é È è Ê ê Ë ë Î î Ï ï Ô ô Ö ö Œ œ Ù ù Û û Ü ü Ç ç ’</span>');
| |
| addCustomCharsetMenu('Autres (Latin)', '<span>Å å Ã ã Á á Ā ā Ă ă Ć ć Č č Đ đ Ē ē Ĕ ĕ Í í Ì ì Ī ī Ĭ ĭ İ ı Ł ł Ñ ñ Õ õ Ò ò Ó ó Ō ō Ŏ ŏ Ǿ ǿ Ø ø Ś ś Š š Ş ş ŭ Ú ú Ū ū Ŭ ŭ Ý ý ÿ</span>');
| |
| addCustomCharsetMenu('Allemand', '<span>Ä ä Ö ö ß Ü ü</span>');
| |
| addCustomCharsetMenu('Arabe (transcription)', '<span>’ ‘ ° Å å Ā ā ã À à Á á ä ą Ċ ċ Đ đ Ḍ ḍ Ğ ğ Ġ ġ Ħ ħ Ḥ ḥ Ī ī ĩ Ì ì Í í ł Ø ø Š š Ṣ ṣ Ŧ ŧ Ṭ ṭ ẗ Ū ū ũ ù ú ẃ ý Ż ż Ẓ ẓ</span>');
| |
| addCustomCharsetMenu('Cyrillique', '<span>А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я а б в г д е ж з и й к л м н о п р с т у ф х ц ч ш щ ъ ы ь э ю я</span>');
| |
| addCustomCharsetMenu('Espagnol', '<span>¿? ¡! Á á É é Í í Ñ ñ Ó ó Ú ú Ü ü ª º</span>');
| |
| addCustomCharsetMenu('Esperanto', '<span>Ĉ ĉ Ĝ ĝ Ĥ ĥ Ĵ ĵ Ŝ ŝ Ŭ ŭ</span>');
| |
| addCustomCharsetMenu('Grec (alphabet)', '<span>Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Ψ Ω</span> - <span>Ϝ Ϻ ϟ Ϡ Ϛ Ϸ Ῥ</span> - <span>α β ϐ γ δ ε ζ η θ ϑ ι κ ϰ λ μ ν ξ ο π ϖ ρ ϱ σ ς τ υ φ ϕ χ ψ ω</span> - <span>ϝ ϻ ϟ ϡ ϛ ϸ ῤ ῥ</span>');
| |
| addCustomCharsetMenu('Grec (sans esprit)', 'accent aigu <span>Ά Έ Ή Ί Ό Ύ Ώ</span> - <span>ά έ ή ί ό ύ ώ</span> - <span>ᾴ ῄ ῴ</span> accent grave <span>Ὰ Ὲ Ὴ Ὶ Ὸ Ὺ Ὼ</span> - <span>ὰ ὲ ὴ ὶ ὸ ὺ ὼ</span> - <span>ᾲ ῂ ῲ</span> accent circonflexe <span>ᾶ ῆ ῖ ῦ ῶ</span> - <span>ᾷ ῇ ῷ</span> tréma <span>ῗ ῧ</span> - <span>ῒ ῢ</span> - <span>ΐ ΰ</span> diphtongues <span>ᾼ ῌ ῼ</span> - <span>ᾳ ῃ ῳ</span> voyelles courtes <span>Ᾰ ᾰ Ῐ ῐ Ῠ ῠ</span> voyelles longues <span>Ᾱ ᾱ Ῑ ῑ Ῡ ῡ</span>');
| |
| addCustomCharsetMenu('Grec (esprit doux)', 'sans accent <span>Ἀ Ἐ Ἠ Ἰ Ὀ Υ̓ Ὠ</span> - <span>ᾈ ᾘ ᾨ</span> - <span>ἀ ἐ ἠ ἰ ὀ ὐ ὠ</span> - <span>ᾀ ᾐ ᾠ</span> accent aigu <span>Ἄ Ἔ Ἤ Ἴ Ὄ Ὤ</span> - <span>ᾌ ᾜ ᾬ</span> - <span>ἄ ἔ ἤ ἴ ὄ ὔ ὤ</span> - <span>ᾄ ᾔ ᾤ</span> accent grave <span>Ἂ Ἒ Ἢ Ἲ Ὂ Ὢ</span> - <span>ᾊ ᾚ ᾪ</span> - <span>ἂ ἒ ἢ ἲ ὂ ὒ ὢ</span> - <span>ᾂ ᾒ ᾢ</span> accent circonflexe <span>Ἆ Ἦ Ἶ Ὦ</span> - <span>ᾎ ᾞ ᾮ</span> - <span>ἆ ἦ ἶ ὖ ὦ</span> - <span>ᾆ ᾖ ᾦ</span>');
| |
| addCustomCharsetMenu('Grec (esprit rude)', 'sans accent <span>Ἁ Ἑ Ἡ Ἱ Ὁ Ὑ Ὡ</span> - <span>ἁ ἑ ἡ ἱ ὁ ὑ ὡ</span> accent aigu <span>Ἅ Ἕ Ἥ Ἵ Ὅ Ὕ Ὥ</span> - <span>ᾍ ᾝ ᾭ</span> - <span>ἅ ἕ ἥ ἵ ὅ ὕ ὥ</span> - <span>ᾅ ᾕ ᾥ</span> accent grave <span>Ἃ Ἓ Ἣ Ἳ Ὃ Ὓ Ὣ</span> - <span>ᾋ ᾛ ᾫ</span> - <span>ἃ ἓ ἣ ἳ ὃ ὓ ὣ</span> - <span>ᾃ ᾓ ᾣ</span> accent circonflexe <span>Ἇ Ἧ Ἷ Ὗ</span> - <span>ᾏ ᾟ ᾯ</span> - <span>ἇ ἧ ἷ ὗ ὧ</span> - <span>ᾇ ᾗ ᾧ</span>');
| |
| addCustomCharsetMenu('Néerlandais', '<span>Ä ä Ë ë Ï ï Ö ö Ü ü Ÿ ÿ Á á É é Í í Ó ó Ú ú À à È è Ì ì Ò ò Ù ù Â â Ê ê Î î Ô ô Û û IJ ij ſ ƒ €</span>');
| |
| addCustomCharsetMenu('Phonétique', '<span>a ɑ e ɛ ə i o ɔ u y ø œ ɔ̃ ɑ̃ ɛ̃ œ̃ j w ɥ ː ‿ _́ _̀ _̌ _̂ b k ʃ d f ɡ h ʒ l m n ɲ ŋ p r s t v z ʀ ʁ</span>');
| |
| addCustomCharsetMenu('Symboles', '<span>© ℅ € № ® ™ º ¹ ² ³ ⁿ ª † ‡ ¼ ½ ¾ ⅛ ⅜ ⅝ ⅞ ‘ ’ “ ” „ ‰ ‹ › ≤ ≥ ‼ ± × ÷ ≈ ≠ ≡ ≅ ← → ↔ ⇐ ⇒ ⇔ □ ▪ ▫ ◊ ● • ◦</span>');
| |
|
| |
|
| |
| /*--------------------------------------------------------------------------------*/
| |
|
| |
|
| |
| /* Popup 'infobulle' sur les liens 'ref' affichant les notes de citations en pied de page */
| |
|
| |
| var popupreftimout; /* utilisée par timeout */
| |
|
| |
|
| |
| /* Pour chaque lien ref de la page installe gestion event onmouse */
| |
| function initeventlinkref() {
| |
| /* seulement dans la partie utile de la page */
| |
| var page = document.getElementById('bodyContent');
| |
| if (page == null) return;
| |
| /* pour tout les liens de la page */
| |
| var lnk = page.getElementsByTagName('a');
| |
| for (var i = 0; i < lnk.length ; i++) {
| |
| /* seulement les lien vers note citation */
| |
| if (lnk[i].getAttribute('href') && lnk[i].getAttribute('href').match(/#cite_note-|#refnote-/)) {
| |
| lnk[i].onmouseover = delaypopupref;
| |
| /*lnk[i].onmouseout = closepopupref;*/
| |
| lnk[i].onmouseout = function(e) {clearTimeout(popupreftimout); closepopup('popup_ref'); };
| |
| }
| |
| }
| |
| }
| |
|
| |
| /* Récup position souris et Temporisation affichage popup */
| |
| function delaypopupref(e) {
| |
| var event = e || window.event;
| |
| var x = event.clientX;
| |
| var y = event.clientY;
| |
| if (event.target) var tgt = event.target;
| |
| else if (event.srcElement) var tgt = event.srcElement;
| |
| if (tgt.href) popupreftimout = setTimeout (function() { openpopupref(x,y,tgt.href); }, 300);
| |
| }
| |
|
| |
| /* Création et affichage popup */
| |
| function openpopupref(x,y,adr) {
| |
| /* récup texte contenu dans destination du lien qui pointe vers id=n°_de_note */
| |
| var dest = adr.split ('#');
| |
| if (!document.getElementById(dest[1])) return;
| |
| var content = document.getElementById(dest[1]).innerHTML;
| |
| content = content.replace(/.? ?<sup><a[^<]*<\/a><\/sup>/gi,'');
| |
| content = content.replace(/^<a[^<]*<\/a>/i,'');
| |
| /* création */
| |
| var popup = document.createElement('div');
| |
| popup.setAttribute('id', 'popup_ref');
| |
| popup.innerHTML = content;
| |
| document.body.appendChild(popup);
| |
| /* positionnement */
| |
| var xpage = x + (document.body.scrollLeft || document.documentElement.scrollLeft);
| |
| var ypage = y + (document.body.scrollTop || document.documentElement.scrollTop);
| |
| var popwidth = document.getElementById('popup_ref').offsetWidth;
| |
| var left = xpage - (popwidth * Math.min(x / document.body.clientWidth, 0.98));
| |
| var top = ypage + 15;
| |
| positionpopup(popup,top,left);
| |
| }
| |
|
| |
| /* Suppression popup (fonction générique) */
| |
| function closepopup(name) {
| |
| while (document.getElementById(name))
| |
| document.body.removeChild(document.getElementById(name));
| |
| }
| |
|
| |
| /* Passage des attributs top et left du popup selon navigateur (fonction générique) */
| |
| function positionpopup(elem,top,left) {
| |
| if (document.all) {
| |
| elem.style.top = top +'px';
| |
| elem.style.left = left +'px';
| |
| } else {
| |
| elem.setAttribute('style', 'top:'+top+'px; left:'+left+'px;');
| |
| }
| |
| }
| |
|
| |
| addOnloadHook(initeventlinkref);
| |
|
| |
|
| |
| /*--------------------------------------------------------------------------------*/
| |
|
| |
|
| |
| /* Popup paramètres (dialogbox) - init event onclick pour les boutons du toolbar */
| |
|
| |
| /* Délai exécution nécessaire: les boutons toolbox sont installés par js (onload) */
| |
| function initeventtoolbarbutton() {
| |
| var x = setTimeout("initeventtoolbarbutton_run()",800);
| |
| }
| |
|
| |
| /* Installe gestion event onclick sur les boutons désignés - appelé au chargement (onload) */
| |
| function initeventtoolbarbutton_run() {
| |
| /* si toolbar existe */
| |
| var tb = document.getElementById('toolbar');
| |
| if (tb == null) return;
| |
| for (var n = 0; n < mwCustomEditButtons.length ; n++) {
| |
| /* bouton 'Assistant Tableau' si existe dans toolbar */
| |
| if (mwCustomEditButtons[n]['speedTip'].match(/Assistant [tT]ableau/)) {
| |
| var links = tb.getElementsByTagName('img');
| |
| /* cherche le noeud icone tableau */
| |
| for (var i = 0; i < links.length ; i++) {
| |
| if (links[i].getAttribute('title').match(/Assistant [tT]ableau/)) {
| |
| links[i].onclick = openpopuparamtable;
| |
| break;
| |
| }
| |
| }
| |
| }
| |
| /* bouton 'Liste Modèles' si existe dans toolbar */
| |
| if (mwCustomEditButtons[n]['speedTip'].match(/Liste .*[mM]odèle/)) {
| |
| var links = tb.getElementsByTagName('img');
| |
| /* cherche le noeud icone modele (plantilla) */
| |
| for (var i = 0; i < links.length ; i++) {
| |
| if (links[i].getAttribute('title').match(/Liste .*[mM]odèle/)) {
| |
| links[i].onclick = openpopuparamtemplate;
| |
| break;
| |
| }
| |
| }
| |
| }
| |
| /* bouton 'Chercher-Remplacer' si existe dans toolbar */
| |
| if (mwCustomEditButtons[n]['speedTip'].match(/[Rr]emplace/)) {
| |
| var links = tb.getElementsByTagName('img');
| |
| /* cherche le noeud icone remplace */
| |
| for (var i = 0; i < links.length ; i++) {
| |
| if (links[i].getAttribute('title').match(/[Rr]emplace/)) {
| |
| links[i].onclick = openpopupsearchreplace;
| |
| break;
| |
| }
| |
| }
| |
| }
| |
| }
| |
| }
| |
|
| |
| addOnloadHook(initeventtoolbarbutton);
| |
|
| |
|
| |
| /* Assistant construction tableau - suite click bouton 'Assistant Tableau' dans 'toolbox' */
| |
| /* Création popup paramétrage tableau */
| |
| function openpopuparamtable(e) {
| |
| /* position bouton */
| |
| var event = e || window.event;
| |
| var x = event.clientX + (document.body.scrollLeft || document.documentElement.scrollLeft);
| |
| var y = event.clientY + (document.body.scrollTop || document.documentElement.scrollTop);
| |
| /* si un popup déjà ouvert */
| |
| if (document.getElementById('popup_param')) return;
| |
| /* création fenêtre */
| |
| var popup = document.createElement('div');
| |
| popup.setAttribute('id', 'popup_param');
| |
| var content = '<p id="titr">Paramètres du tableau</p>';
| |
| content += '<form method="post" action="#" name="popup_param_frm"><table>';
| |
| content += '<tr><td colspan="2">Style <select name="tabclass"><option value="wikitable" selected>Wikitable</option><option value="alterne">Alterné</option><option value="noborder">Sans bordure </option><option value="encadre">Encadré</option></select></td></tr>';
| |
| content += '<tr><td colspan="2">Position <input name="tabpos" type="radio" value="centre" checked />centre<input name="tabpos" type="radio" value="gauche" />gauche<input name="tabpos" type="radio" value="droite" />droite</td></tr>';
| |
| content += '<tr><td colspan="2">Intitulé <input name="tabintitul" type="text" size="25" /></td></tr>';
| |
| content += '<tr><td>Largeur relative</td><td><input name="tabwidth" type="text" size="1" /> %</td></tr>';
| |
| content += '<tr><td>Nombre de lignes</td><td><input name="tabnbrow" type="text" size="1" value="0" /></td></tr>';
| |
| content += '<tr><td>Nombre de colonnes</td><td><input name="tabnbcol" type="text" size="1" value="0" /></td></tr>';
| |
| content += '<tr><td>Titres de lignes</td><td><input name="tabtitlrow" type="checkbox" /></td></tr>';
| |
| content += '<tr><td>Titres de colonnes</td><td><input name="tabtitlcol" type="checkbox" /></td></tr>';
| |
| content += '<tr><td colspan="2">Justifié <input name="tabalign" type="radio" value="cellcentre" />centre<input name="tabalign" type="radio" value="cellgauche" checked />gauche<input name="tabalign" type="radio" value="celldroite" />droite</td></tr>';
| |
| content += '</table>';
| |
| content += '<span id="btn"><input type="button" value="Insérer" onclick="creatwikitable()" /><input type="button" value="Annuler" onclick="closepopup(\'popup_param\')" /><input type="button" value="?" onclick="helpopuparamtable()" /></span>';
| |
| content += '</form>';
| |
| popup.innerHTML = content;
| |
| document.body.appendChild(popup);
| |
| positionpopup(popup,(y+10),(x-20));
| |
|
| |
| /* IE - recup position curseur avant popup */
| |
| text_cursor_position = getpositiontxtcursor(document.forms['editform'].elements['wpTextbox1']);
| |
| popup.focus();
| |
| }
| |
|
| |
|
| |
| /* Création code tableau syntaxe wiki insertion dans zone édition - appelé par bouton 'Insérer' du popup param tableau */
| |
| function creatwikitable() {
| |
| var row, col, wdt, pos, align;
| |
| var frm = document.forms['popup_param_frm'];
| |
| if (frm.elements['tabnbrow'].value.match(/^[0-9]+$/)) row = frm.elements['tabnbrow'].value;
| |
| if (frm.elements['tabnbcol'].value.match(/^[0-9]+$/)) col = frm.elements['tabnbcol'].value;
| |
| if (row < 1 || col < 1) return;
| |
| if (frm.elements['tabwidth'].value.match(/^[0-9]{1,3}$/)) wdt = frm.elements['tabwidth'].value;
| |
| if (wdt == undefined || wdt == 0) wdt = '';
| |
| else if (wdt < 10) wdt = 'width="10%"';
| |
| else if (wdt > 99) wdt = 'width="99%"';
| |
| else wdt = 'width="'+wdt+'%"';
| |
| /* récup sélection bouton radio */
| |
| for (var i = 0; i < frm.elements['tabpos'].length; i++) {
| |
| if (frm.elements['tabpos'][i].checked) pos = frm.elements['tabpos'][i].value;
| |
| }
| |
| for (var i = 0; i < frm.elements['tabalign'].length; i++) {
| |
| if (frm.elements['tabalign'][i].checked) align = frm.elements['tabalign'][i].value;
| |
| }
| |
| /* init début tableau + classes et style */
| |
| var result = '{| class="'+frm.elements["tabclass"].value+' '+pos+' '+align+'" '+wdt+'\n';
| |
| if (frm.elements['tabintitul'].value.length) result += '|+ '+frm.elements["tabintitul"].value+'\n';
| |
| result += '|------------------\n';
| |
| /* init entêtes de colonnes */
| |
| if (frm.elements['tabtitlcol'].checked) {
| |
| var x = 0;
| |
| if (frm.elements['tabtitlrow'].checked) x = -1;
| |
| for (var c = x; c < col ; c++) {
| |
| if (c == -1) {
| |
| result += '! scope=col |\n';
| |
| } else {
| |
| result += '! scope=col | Titre_col_'+(c+1)+'\n';
| |
| }
| |
| }
| |
| result += '|------------------\n';
| |
| }
| |
| /* cas style couleurs lignes alternées */
| |
| var enlight = 0;
| |
| if (frm.elements["tabclass"].value.match(/alterne/)) enlight = 1;
| |
| /* init cellules */
| |
| for (var r = 0; r < row ; r++){
| |
| if (frm.elements['tabtitlrow'].checked) result += '! scope=row | Titre_ligne_'+(r+1)+'\n';
| |
| for (var c = 0; c < col ; c++) result += '|Cellule_c'+(c+1)+'_r'+(r+1)+'\n';
| |
| if (enlight && !(r%2)) {
| |
| result += '|------ class="enlight"\n';
| |
| } else {
| |
| result += '|------------------\n';
| |
| }
| |
| }
| |
| result += '|}\n';
| |
|
| |
| /* IE - positionne le curseur dans zone édition à position initiale avant insertion */
| |
| if (document.selection && document.selection.createRange) { // IE
| |
| insertxtatcursorpos(document.forms['editform'].elements['wpTextbox1'], text_cursor_position, result);
| |
| } else {
| |
| insertTags('', '', result);
| |
| }
| |
| closepopup('popup_param');
| |
| }
| |
|
| |
|
| |
| /* Affiche aide en ligne - appelé par bouton '?' du popup param tableau */
| |
| function helpopuparamtable() {
| |
| var popup = document.getElementById('popup_param');
| |
| /* si aide deja ouverte */
| |
| if (popup.innerHTML.match(/<ul id=.?aide/i)) return;
| |
| var aidetxt = "<ul id='aide'>";
| |
| aidetxt += "<li><b>Style</b> choisi parmi les modèles graphiques prédéfinis</li>";
| |
| aidetxt += "<li><b>Position</b> du tableau dans la page ('flottant' pour gauche et droite)</li>";
| |
| aidetxt += "<li><b>Intitulé</b> légende optionnelle du tableau</li>";
| |
| aidetxt += "<li><b>Largeur relative</b> du tableau en % de la page (optionnelle)</li>";
| |
| aidetxt += "<li><b>Titres lignes et colonnes</b> ajoutent les entêtes respectives (optionnels)</li>";
| |
| aidetxt += "<li><b>Justification</b> du texte dans les cellules</li>";
| |
| aidetxt += "</ul>";
| |
| popup.innerHTML += aidetxt;
| |
| }
| |
|
| |
|
| |
| /*---------------------------------*/
| |
|
| |
| /* Liste et aide sur les modèles disponibles - suite click bouton 'Liste Modèles' dans 'toolbox' */
| |
| /* Création popup liste modèles */
| |
| function openpopuparamtemplate(e) {
| |
| /* position bouton */
| |
| var event = e || window.event;
| |
| var x = event.clientX + (document.body.scrollLeft || document.documentElement.scrollLeft);
| |
| var y = event.clientY + (document.body.scrollTop || document.documentElement.scrollTop);
| |
| /* si un popup deja ouvert */
| |
| if (document.getElementById('popup_param')) return;
| |
|
| |
| /* init requete serveur cherche liste des modèles */
| |
| var xhr_object = createxhrobject();
| |
| if (xhr_object == null) return;
| |
| xhr_object.open('GET', '/w/index.php?title=Special%3AIndex&from=&namespace=10', true);
| |
|
| |
| /* prépare action sur réponse liste différée */
| |
| xhr_object.onreadystatechange = function() {
| |
| if (xhr_object.readyState == 4 && xhr_object.status == 200) {
| |
| /* filtre zone utile dans la page réponse */
| |
| var lstmodl = xhr_object.responseText.match(/<hr.{0,3}>(\n)?<table.*<\/table>/i);
| |
| /* retire les tags */
| |
| lstmodl = lstmodl[0].replace(/<hr[^>]*>(\n)?<table[^>]*>|(\n)?(<tr>)?<td><a |(\n)?(<tr>)?<td><div[^>]*><a |>[^<]*<\/a>(<\/div>)?<\/td>(<\/tr>)?|(\n)?<\/table>/gi,'');
| |
| /* inverse ordre des champs pour tri alpha sur le titre */
| |
| lstmodl = lstmodl.replace(/href="([^"]*)" ?title="([^"]*)" ?/gi,' titl=$2 href=$1');
| |
| /* remplace accentué en début de mot pour tri alpha correct */
| |
| lstmodl = lstmodl.replace(/Modèle:[ÈÉÊËèéêë]/g, 'Modèle:E');
| |
| /* résultat mis en tableau et tri */
| |
| var tabmodl = lstmodl.split(/ titl=/);
| |
| tabmodl = tabmodl.sort();
| |
| tabmodl[0] = '<Choisir un modèle>';
| |
|
| |
| /* remplit liste déroulante avec résultat */
| |
| var lsd = document.forms['popup_param_frm'].elements['list'];
| |
| lsd.removeChild(lsd.firstChild);
| |
| for (var i = 0; i < tabmodl.length ; i++) {
| |
| /* n'affiche pas les sous-pages documentation */
| |
| if (tabmodl[i].match(/Modèle:.*\/Documentation href=/)) continue;
| |
| /* ajoute option dans liste */
| |
| var opt = document.createElement('option');
| |
| opt.setAttribute('value', tabmodl[i].replace(/.*href=/,''));
| |
| var val = document.createTextNode(tabmodl[i].replace(/Modèle:(.*) href=.*/,'$1'));
| |
| opt.appendChild(val);
| |
| lsd.appendChild(opt);
| |
| }
| |
|
| |
| /* action sur sélection dans liste */
| |
| lsd.onchange = function () {
| |
| var adrdoc = this.value;
| |
| var txtnod = document.getElementById('popup_param_txt');
| |
| var xhr_object2 = createxhrobject();
| |
| if (xhr_object2 == null) return;
| |
|
| |
| /* requete serveur doc du modèle sélectionné */
| |
| xhr_object2.open('GET', adrdoc, true);
| |
|
| |
| /* prépare action sur réponse doc différée */
| |
| xhr_object2.onreadystatechange = function() {
| |
| if (xhr_object2.readyState == 4 && xhr_object2.status == 200) {
| |
| /* filtre zone utile dans la page réponse */
| |
| var usesyntx = xhr_object2.responseText;
| |
| /* copie contenu <pre>...</pre> en conservant les \n */
| |
| var idxpre = usesyntx.search(/<pre>/i);
| |
| if (idxpre >0) {
| |
| var strpre = '';
| |
| for (var i = idxpre; i < usesyntx.length; i++) {
| |
| strpre += usesyntx[i];
| |
| if (usesyntx[i] == '>' && usesyntx[i-1] == 'e' && usesyntx[i-2] == 'r' && usesyntx[i-3] == 'p' && usesyntx[i-4] == '/' && usesyntx[i-5] == '<') break;
| |
| }
| |
| }
| |
| /* seulement paragraphes utilisation et syntaxe */
| |
| var usesyntx = usesyntx.replace(/\n/g, '');
| |
| usesyntx = usesyntx.match(/<dl><dt> ?(Utilisation|But).*<dt> ?Paramètre|<dl><dt> ?(Utilisation|But).*<dt> ?Exemple|<dl><dt> ?(Utilisation|But).*<dt> ?Voir aussi|<dl><dt> ?(Utilisation|But).*<\/dd><\/dl>/i);
| |
| if (usesyntx == null) txtnod.innerHTML = '(no text)';
| |
| else {
| |
| usesyntx = usesyntx[0].replace(/(<dl>)?<dt> ?(Paramètre|Exemple|Voir aussi)/i, '');
| |
| /* recopie contenu <pre>...</pre> avec les \n */
| |
| usesyntx = usesyntx.replace(/<pre>.*<\/pre>/i, strpre);
| |
| txtnod.innerHTML = usesyntx;
| |
| }
| |
| }
| |
| }
| |
| xhr_object2.send('');
| |
| txtnod.innerHTML = 'Requête en cours...';
| |
| }
| |
| }
| |
| }
| |
|
| |
| xhr_object.send('');
| |
|
| |
| /* création objet */
| |
| var popup = document.createElement('div');
| |
| popup.setAttribute('id', 'popup_param');
| |
| var content = '<p id="titr">Liste des Modèles</p>';
| |
| content += '<form method="post" action="#" name="popup_param_frm">';
| |
| content += '<div id="espace">';
| |
| content += '<select name="list" id="list"><option value="0" selected>Recherche en cours...</option></select>';
| |
| content += '<span id="popup_param_txt"></span>';
| |
| content += '</div>';
| |
| content += '<span id="btn"><input type="button" value="Insérer" onclick="insertselpopuptemplate(eval(\'xhr_object2.responseText\'))" /><input type="button" value="Ouvrir" onclick="opendocpopuptemplate(eval(\'xhr_object2.responseText\'))" /><input type="button" value="Annuler" onclick="closepopup(\'popup_param\')" /></span>';
| |
| content += '</form>';
| |
| popup.innerHTML = content;
| |
| document.body.appendChild(popup);
| |
| positionpopup(popup,(y+10),(x-20));
| |
|
| |
| /* IE - recup position curseur avant popup */
| |
| text_cursor_position = getpositiontxtcursor(document.forms['editform'].elements['wpTextbox1']);
| |
| popup.focus();
| |
| }
| |
|
| |
|
| |
| /* Ouvre fenêtre doc complète modèle sélectionné */
| |
| function opendocpopuptemplate(page) {
| |
| if (page == null) return;
| |
| var popdoc = window.open('about:blank','popupdoctemplate','height=600,width=900,scrollbars=yes,dependent=yes');
| |
| popdoc.document.write(page);
| |
| popdoc.document.close();
| |
| }
| |
|
| |
|
| |
| /* Insère dans zone édit le modèle choisi - appelé par bouton 'insérer' du popup liste modèles */
| |
| function insertselpopuptemplate(page) {
| |
| if (page == null) return;
| |
| /* filtre champs syntaxe */
| |
| var modl = page.replace(/\n/g,'');
| |
| modl = modl.match(/<.?d[ld]><dt>Syntaxe[^{]*\{\{[^}{]*(\{\{[^}]*\}\})*[^}]*\}\}/gi);
| |
| modl = modl[0].replace(/^[^{]*/g,'');
| |
|
| |
| /* IE - positionne le curseur dans zone édition à position initiale avant insertion */
| |
| if (document.selection && document.selection.createRange) {
| |
| insertxtatcursorpos(document.forms['editform'].elements['wpTextbox1'], text_cursor_position, modl);
| |
| } else {
| |
| insertTags('', '', modl);
| |
| }
| |
| closepopup('popup_param');
| |
| }
| |
|
| |
|
| |
| /*---------------------------------*/
| |
|
| |
| /* Chercher-Remplacer - suite click bouton 'Chercher-Remplacer' dans 'toolbox' */
| |
| /* Création popup remplacer */
| |
| function openpopupsearchreplace(e) {
| |
| /* position bouton */
| |
| var event = e || window.event;
| |
| var x = event.clientX + (document.body.scrollLeft || document.documentElement.scrollLeft);
| |
| var y = event.clientY + (document.body.scrollTop || document.documentElement.scrollTop);
| |
| /* si un popup déjà ouvert */
| |
| if (document.getElementById('popup_param')) return;
| |
| /* création fenêtre */
| |
| var popup = document.createElement('div');
| |
| popup.setAttribute('id', 'popup_param');
| |
|
| |
| var content = '<p id="titr">Chercher-Remplacer</p>';
| |
| content += '<form method="post" action="#" name="popup_param_frm"><table>';
| |
| content += '<tr><td><input name="srchrepl" type="radio" value="1"/></td><td>remplace espaces simples par insécables après "«" et<br>avant "»" dans un lien local</td></tr>';
| |
| content += '<tr><td><input name="srchrepl" type="radio" value="2"/></td><td>remplace espaces simples par insécables après tiret quadratin<br>en début de ligne</td></tr>';
| |
| content += '<tr><td><input name="srchrepl" type="radio" value="0" checked/></td><td>remplacement libre :</td></tr>';
| |
| content += '<tr><td>expr. </td><td><input name="srchrplC" type="text" size="48" /></td></tr>';
| |
| content += '<tr><td>repl. </td><td><input name="srchrplR" type="text" size="48" /></td></tr>';
| |
| content += '</table>';
| |
| content += '<span id="btn"><input type="button" value="Remplacer" onclick="execsearchreplace()" /><input type="button" value="Rétablir" onclick="undosearchreplace()" /><input type="button" value="Fermer" onclick="closepopup(\'popup_param\')" /><input type="button" value="?" onclick="helpopupsearchreplace()" /></span>';
| |
| content += '</form>';
| |
| popup.innerHTML = content;
| |
| document.body.appendChild(popup);
| |
| positionpopup(popup,(y+10),(x-20));
| |
|
| |
| /* IE - recup position curseur avant popup */
| |
| //text_cursor_position = getpositiontxtcursor(document.forms['editform'].elements['wpTextbox1']);
| |
| popup.focus();
| |
| }
| |
|
| |
|
| |
| /* Exec chercher-remplacer - appelé par bouton 'Remplacer' du popup remplacer */
| |
| var contentsearchreplace;
| |
| function execsearchreplace() {
| |
| var content = document.forms['editform'].elements['wpTextbox1'].value;
| |
| contentsearchreplace = content;
| |
| var frm = document.forms['popup_param_frm'];
| |
| /* récup sélection bouton radio */
| |
| for (var i = 0; i < frm.elements['srchrepl'].length; i++) {
| |
| if (frm.elements['srchrepl'][i].checked) var sel = frm.elements['srchrepl'][i].value;
| |
| }
| |
| switch (sel) {
| |
| case '1':
| |
| content=content.replace(/(\[\[[^|]+\|)(« )([^»]+)( »)([^\]]*\]\])/g, '$1« $3 »$5');
| |
| break;
| |
| case '2':
| |
| content=content.replace(/(\n\:)(—\s)|(\n)(—\s)|(\n\{\{p\|)(—\s)|(\n\{\{p\|([^\|]+\|){1,3})(—\s)/g, '$1$3$5$7— ');
| |
| break;
| |
| case '0':
| |
| var sch = frm.elements['srchrplC'].value;
| |
| var rpl = frm.elements['srchrplR'].value;
| |
| if (sch.length >0) {
| |
| var fl = "g";
| |
| var re = new RegExp(sch, fl);
| |
| content = content.replace(re, rpl);
| |
| }
| |
| break;
| |
| }
| |
|
| |
| // insertion modifs dans zone edit
| |
| document.forms['editform'].elements['wpTextbox1'].value = content;
| |
| //closepopup('popup_param');
| |
| }
| |
|
| |
|
| |
| /* Exec chercher-remplacer - appelé par bouton 'Défaire' du popup remplacer */
| |
| function undosearchreplace() {
| |
| document.forms['editform'].elements['wpTextbox1'].value = contentsearchreplace;
| |
| }
| |
|
| |
|
| |
| /* Affiche aide en ligne - appelé par bouton '?' du popup remplacer */
| |
| function helpopupsearchreplace() {
| |
| var popup = document.getElementById('popup_param');
| |
| /* si aide deja ouverte */
| |
| if (popup.innerHTML.match(/<ul id=.?aide/i)) return;
| |
| var aidetxt = "<ul id='aide'>";
| |
| aidetxt += "<li>Supporte les expressions régulières de la méthode js replace()";
| |
| aidetxt += "<br> (voir http://www.pagecolumn.com/tool/regtest.htm).</li>";
| |
| aidetxt += "<li>Par défaut le remplacement est global sur l'ensemble de la page.</li>";
| |
| aidetxt += "<li>Quelques motifs de remplacement courants sont pré-définis.</li>";
| |
| aidetxt += "</ul>";
| |
| popup.innerHTML += aidetxt;
| |
| }
| |
|
| |
|
| |
| /*--------------------------------------------------------------------------------*/
| |
|
| |
|
| |
| /* Choix du mode d'affichage des références bibliographiques
| |
| /* (l'ordre de cette liste doit correspondre a celui du Modèle:Édition) */
| |
|
| |
| function addBibSubsetMenu() {
| |
| var specialBib = document.getElementById('specialBib');
| |
| if (specialBib) {
| |
| specialBib.style.display = 'block';
| |
| var menu = "<select style=\"display:inline;\" onChange=\"chooseBibSubset(selectedIndex)\">";
| |
| menu += "<option>Liste</option>";
| |
| menu += "<option selected>ISBD</option>";
| |
| menu += "<option>ISBDmod</option>";
| |
| menu += "<option>Référence courte</option>";
| |
| menu += "</select>";
| |
| specialBib.innerHTML = specialBib.innerHTML + menu;
| |
| }
| |
| /* sélection par défaut */
| |
| chooseBibSubset(1);
| |
| }
| |
|
| |
| /* Sélection affichage norme biblio */
| |
| function chooseBibSubset(s) {
| |
| var lst = document.getElementsByTagName('div');
| |
| for (var i = 0; i < lst.length ; i++) {
| |
| if(lst[i].className == 'BibList') lst[i].style.display = s == 0 ? 'block' : 'none';
| |
| else if(lst[i].className == 'ISBD') lst[i].style.display = s == 1 ? 'block' : 'none';
| |
| else if(lst[i].className == 'ISBDmod') lst[i].style.display = s == 2 ? 'block' : 'none';
| |
| else if(lst[i].className == 'BibRef') lst[i].style.display = s == 3 ? 'block' : 'none';
| |
| }
| |
| }
| |
|
| |
| addOnloadHook(addBibSubsetMenu);
| |
|
| |
|
| |
| /*--------------------------------------------------------------------------------*/
| |
|
| |
|
| |
| /* Gestion aide création références bibliographiques */
| |
| /* Affichage formulaire de saisie */
| |
| /* Création de sous-page édition et maj page oeuvre */
| |
|
| |
| importScript('Utilisateur:Pinocchio/création_référence_biblio.js');
| |
|
| |
|
| |
| /*--------------------------------------------------------------------------------*/
| |
|
| |
|
| |
| /* Gestion citation et image du jour */
| |
| /* - rafraichissement journalier
| |
| /* - tirage aléatoire et préparation jours futurs
| |
| /* - identification, ajout num id aléatoire dans {{Extrait}} et {{Image texte}} à la création */
| |
| /* Formulaire commentaire des images */
| |
|
| |
| importScript('Utilisateur:Pinocchio/citation_du_jour.js');
| |
|
| |
|
| |
| /*--------------------------------------------------------------------------------*/
| |
|
| |
|
| |
| /* Gestion index des pages articles */
| |
|
| |
| importScript('Utilisateur:Pinocchio/index_pages_articles.js');
| |
|
| |
|
| |
| /*--------------------------------------------------------------------------------*/
| |
|
| |
|
| |
| /* Gestion pseudo modèle Navigtemps (ex yearnav) */
| |
|
| |
| importScript('Utilisateur:Pinocchio/yearnav.js');
| |
|
| |
|
| |
| /*--------------------------------------------------------------------------------*/
| |
|
| |
|
| |
| /* Init Timeline */
| |
|
| |
| importScript('Utilisateur:Pinocchio/timeline_init.js');
| |
|
| |
|
| |
| /*--------------------------------------------------------------------------------*/
| |
|
| |
|
| |
| /* Gestion infographie - chargement du code si nécessaire */
| |
|
| |
| function infographic_load() {
| |
| if (document.getElementById('infographic') && (wgAction == 'view' || wgAction == 'submit')) {
| |
| importScript('Utilisateur:Pinocchio/infographie.js');
| |
| var x = setTimeout("infographic_load_wait()",500);
| |
| }
| |
| }
| |
|
| |
| function infographic_load_wait() {
| |
| if (typeof(infographic_change_scale) == 'function') infographic_init();
| |
| else var x = setTimeout("infographic_load_wait()",500);
| |
| }
| |
|
| |
| addOnloadHook(infographic_load);
| |
|
| |
| /*--------------------------------------------------------------------------------*/
| |
|
| |
|
| |
|
| |
| /* Insère appel à fonction() sur action submit avant envoi de la page */
| |
|
| |
| function initeventpostform() {
| |
| if (wgAction == 'edit' || wgAction == 'submit') {
| |
| if (document.forms['editform'] == undefined || document.forms['editform'].elements['wpTextbox1'] == undefined) return;
| |
| document.forms['editform'].onsubmit = function() {
| |
| /* pour les pages de citations ajoute un identifiant aux nouveaux modèles Extrait */
| |
| ident_citation_du_jour();
| |
| /* pour les pages commentaires images ajoute un identifiant aux nouveaux modèles */
| |
| ident_image_du_jour();
| |
| /* pour les pages années maj du tableau des dates lors de la création */
| |
| yearnav_collect();
| |
| /* pour pages agora: ajout titre date si nouvelle page */
| |
| pgagora_insert_topsection();
| |
| }
| |
| }
| |
| }
| |
|
| |
| addOnloadHook(initeventpostform);
| |