MediaWiki:Common.js
Zur Navigation springen
Zur Suche springen
Hinweis: Leere nach dem Speichern den Browser-Cache, um die Änderungen sehen zu können.
- Firefox/Safari: Umschalttaste drücken und gleichzeitig Aktualisieren anklicken oder entweder Strg+F5 oder Strg+R (⌘+R auf dem Mac) drücken
- Google Chrome: Umschalttaste+Strg+R (⌘+Umschalttaste+R auf dem Mac) drücken
- Internet Explorer: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
- Opera: Gehe zu Menü → Einstellungen (Opera → Einstellungen auf dem Mac) und dann auf Datenschutz & Sicherheit → Browserdaten löschen → Gespeicherte Bilder und Dateien.
/* Cualquier código JavaScript escrito aquí se cargará para todos los usuarios en cada carga de página */ function moveSearchBar( $content ) { // Sélectionner l'élément #p-search var pSearchElement = document.getElementById('p-search'); // Sélectionner l'élément #mw-page-base var mwPageBaseElement = document.getElementById('mw-page-base'); // Vérifier si les deux éléments existent if (pSearchElement && mwPageBaseElement) { // Déplacer #p-search avant #mw-page-base mwPageBaseElement.parentNode.insertBefore(pSearchElement, mwPageBaseElement); // Ajouter display: block à #p-search pSearchElement.style.display = 'block'; } } mw.hook( 'wikipage.content' ).add( moveSearchBar ); $(document).ready(function() { // Copier le sommaire dans le menu latéral en supprimant les éléments toc-level-2 var toc = $('#toc'); var sidetoc = toc.clone().attr('id', 'sidetoc'); sidetoc.find('.toclevel-2').remove(); var panel = $('#mw-panel'); panel.append(sidetoc); $('#sidetoc').hide(); }); $(window).scroll(function() { var breadcrumb = $(document).find('#fil-ariane'); var mwPanelElement = $('#mw-panel'); var mwPanelOffset = mwPanelElement.offset().top + mwPanelElement.outerHeight(); var scrollTop = $(window).scrollTop(); if (mwPanelOffset < scrollTop) { if (breadcrumb.length) { var breadcrumbHeight = $('#fil-ariane').height(); var sidetocOffset = breadcrumbHeight; $('#sidetoc').css('top', sidetocOffset + 'px'); $('#sidetoc').show(); } else { $('#sidetoc').show(); } } else { $('#sidetoc').hide(); } }); $(document).ready(function() { var h2Elements = $('#bodyContent h2'); var toctextElements = $('#sidetoc .toclevel-1 a .toctext'); function updateActiveElement() { var activeElementIndex = -1; var mouseY = $(window).scrollTop() + $(window).height() / 2; h2Elements.each(function(index) { var currentH2 = $(this); var nextH2 = h2Elements.eq(index + 2); var currentH2Offset = currentH2.offset().top; var nextH2Offset = nextH2.length ? nextH2.offset().top : $(document).height(); if (currentH2Offset <= mouseY && nextH2Offset > mouseY) { activeElementIndex = index; return false; // Sortir de la boucle each } }); // Appliquer le style aux éléments du sommaire en fonction de l'élément actif toctextElements.removeClass('active'); if (activeElementIndex !== -1) { toctextElements.eq(activeElementIndex).addClass('active'); } } $(window).scroll(function() { updateActiveElement(); }); $(window).mousemove(function() { updateActiveElement(); }); }); /* Pour créer un menu déroulant dans la barre personnelle */ function personalDropdown() { // Toujours forcer l’affichage inline du bloc #p-personal var personalBlock = document.getElementById('p-personal'); if (personalBlock) { personalBlock.style.display = 'inline'; } // Vérifier si l’utilisateur est connecté ou anonyme var userPage = document.getElementById('pt-userpage'); if (userPage) { // Cas utilisateur connecté var ul = document.querySelector('.vector-menu-content-list'); var startElement = document.getElementById('pt-mytalk'); var endElement = document.getElementById('pt-logout'); var dropdownLi = document.createElement('li'); dropdownLi.style.position = 'relative'; dropdownLi.style.paddingTop = '2px'; var dropdownLink = document.createElement('a'); dropdownLink.href = '#'; dropdownLink.style.cursor = 'pointer'; dropdownLink.style.height = '24px'; dropdownLink.style.display = 'inline-block'; var avatarSpan = document.createElement('span'); avatarSpan.style.backgroundImage = 'linear-gradient(transparent,transparent),url(/w/skins/Vector/resources/skins.vector.styles/images/user-avatar.svg?b7f58)'; avatarSpan.style.backgroundRepeat = 'no-repeat'; avatarSpan.style.width = '24px'; avatarSpan.style.height = '26px'; avatarSpan.style.display = 'inline-block'; avatarSpan.style.opacity = '0.85'; var arrowSpan = document.createElement('span'); arrowSpan.style.backgroundImage = 'linear-gradient(transparent,transparent),url(/w/skins/Vector/resources/skins.vector.styles/images/arrow-down.svg?e7827)'; arrowSpan.style.height = '20px'; arrowSpan.style.width = '12px'; arrowSpan.style.display = 'inline-block'; arrowSpan.style.backgroundRepeat = 'no-repeat'; arrowSpan.style.opacity = '0.85'; dropdownLink.appendChild(avatarSpan); dropdownLink.appendChild(arrowSpan); dropdownLi.appendChild(dropdownLink); var dropdownMenu = document.createElement('ul'); dropdownMenu.style.display = 'none'; dropdownMenu.className = 'pt-dropdown'; var currentElement = startElement; while (currentElement && currentElement !== endElement.nextElementSibling) { var nextElement = currentElement.nextElementSibling; dropdownMenu.appendChild(currentElement); currentElement = nextElement; } dropdownLi.appendChild(dropdownMenu); var notificationsNotice = document.getElementById('pt-notifications-notice'); notificationsNotice.parentNode.insertBefore(dropdownLi, notificationsNotice.nextSibling); dropdownLink.onclick = function(e) { e.preventDefault(); if (dropdownMenu.style.display === 'block') { dropdownMenu.style.display = 'none'; } else { dropdownMenu.style.display = 'block'; } }; document.addEventListener('click', function(e) { if (!dropdownLi.contains(e.target)) { dropdownMenu.style.display = 'none'; } }); } else { // Cas utilisateur anonyme var ul = document.querySelector('.vector-menu-content-list'); var startElement = document.getElementById('pt-anontalk'); var endElement = document.getElementById('pt-login'); var dropdownLi = document.createElement('li'); dropdownLi.style.position = 'relative'; dropdownLi.style.paddingTop = '2px'; var dropdownLink = document.createElement('a'); dropdownLink.href = '#'; dropdownLink.style.cursor = 'pointer'; dropdownLink.style.height = '24px'; dropdownLink.style.display = 'inline-block'; var avatarSpan = document.createElement('span'); avatarSpan.style.backgroundImage = 'linear-gradient(transparent,transparent),url(/w/skins/Vector/resources/skins.vector.styles/images/user-avatar.svg?b7f58)'; avatarSpan.style.backgroundRepeat = 'no-repeat'; avatarSpan.style.height = '21px'; avatarSpan.style.width = '24px'; avatarSpan.style.display = 'inline-block'; avatarSpan.style.opacity = '0.85'; var arrowSpan = document.createElement('span'); arrowSpan.style.backgroundImage = 'linear-gradient(transparent,transparent),url(/w/skins/Vector/resources/skins.vector.styles/images/arrow-down.svg?e7827)'; arrowSpan.style.height = '21px'; arrowSpan.style.width = '12px'; arrowSpan.style.display = 'inline-block'; arrowSpan.style.backgroundRepeat = 'no-repeat'; arrowSpan.style.verticalAlign = 'middle'; arrowSpan.style.opacity = '0.85'; dropdownLink.appendChild(avatarSpan); dropdownLink.appendChild(arrowSpan); dropdownLi.appendChild(dropdownLink); var dropdownMenu = document.createElement('ul'); dropdownMenu.style.display = 'none'; dropdownMenu.className = 'pt-dropdown'; var currentElement = startElement; while (currentElement && currentElement !== endElement.nextElementSibling) { var nextElement = currentElement.nextElementSibling; dropdownMenu.appendChild(currentElement); currentElement = nextElement; } dropdownLi.appendChild(dropdownMenu); var anonUserPage = document.getElementById('pt-anonuserpage'); anonUserPage.parentNode.insertBefore(dropdownLi, anonUserPage.nextSibling); dropdownLink.onclick = function(e) { e.preventDefault(); if (dropdownMenu.style.display === 'block') { dropdownMenu.style.display = 'none'; } else { dropdownMenu.style.display = 'block'; } }; document.addEventListener('click', function(e) { if (!dropdownLi.contains(e.target)) { dropdownMenu.style.display = 'none'; } }); } } personalDropdown(); /* global mw, $ */ (function () { function buildLangMenu() { var $userPageItem = $('#pt-userpage'); if (!$userPageItem.length) { return; } // ✅ Si aucun lien interlangue, on arrête tout var $interwikiLinks = $('li.interlanguage-link'); if ($interwikiLinks.length === 0) { clearInterval(waitForReady); return; } /* -------- Construction du bloc -------- */ var $menuWrapper = $('<div>').addClass('menu-langues'); var $icon = $('<span>').addClass('menu-langues-icon'); var $toggle = $('<span>') .addClass('menu-langues-toggle') .text('Deutsch'); // Remplace ul par un div var $dropdown = $('<div>') .addClass('languages-dropdown') .css('display', 'none'); var $header = $('<div>') .addClass('langues-disponibles') .text($interwikiLinks.length > 0 ? 'Andere Sprachen' : 'Keine weiteren Sprachen verfügbar') .css('cursor', 'default'); $dropdown.append($header); // Nouveau <ul> pour y insérer les liens interlangues if ($interwikiLinks.length > 0) { var $list = $('<ul>'); $interwikiLinks.appendTo($list); $dropdown.append($list); } /* -------- Bouton « Modifier les liens interlangues » -------- */ var $editButton = $('#bouton-modifier-interlangue'); if ($editButton.length) { var $link = $editButton.find('a').first(); if ($link.length) { var $newLink = $link.clone() .text('Modifier les liens interlangues') .css({ color: 'inherit', textDecoration: 'none', cursor: 'pointer' }); $('<div>') .addClass('modifier-langues') .append($newLink) .appendTo($dropdown); } $editButton.remove(); } /* -------- Assemblage final -------- */ $menuWrapper .append($icon) .append($toggle) .append($dropdown); $userPageItem.before($menuWrapper); /* -------- Comportement déroulant -------- */ $menuWrapper.on('click', function (e) { e.stopPropagation(); $dropdown.toggle(); $menuWrapper.toggleClass('open'); }); $(document).on('click', function () { $dropdown.hide(); $menuWrapper.removeClass('open'); }); clearInterval(waitForReady); } var waitForReady = setInterval(buildLangMenu, 300); })();