Zum Inhalt springen

MediaWiki:Common.js

Aus Pixopedia

Hinweis: Leere nach dem Veröffentlichen 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
  • Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
mw.loader.using(['jquery', 'mediawiki.util', 'mediawiki.user']).done(function () {
    $(function () {
        var $body = $('body');

        /***********************
         * Eigenen Header einfügen
         ***********************/
        var headerHtml =
            '<div id="pixo-custom-header">' +
                '<div id="pixo-custom-header-inner">' +
                    '<div id="pixo-custom-header-left"></div>' +
                    '<div id="pixo-custom-header-center"></div>' +
                    '<div id="pixo-custom-header-right"></div>' +
                '</div>' +
            '</div>';

        $body.prepend(headerHtml);

        var $left   = $('#pixo-custom-header-left');
        var $center = $('#pixo-custom-header-center');
        var $right  = $('#pixo-custom-header-right');

        /***********************
         * 1) Suche: nur den Typeahead-Container in den Header holen
         ***********************/
        (function () {
            // Standard-Suchbereich (#p-search) im Vector-Header
            var $searchPortlet = $('#p-search').first();
            if (!$searchPortlet.length) {
                console.warn('#p-search (Standard-Suche) nicht gefunden');
                return;
            }

            // inneren Typeahead-Container suchen
            var $typeahead = $searchPortlet.find('.vector-typeahead-search-container').first();
            if (!$typeahead.length) {
                console.warn('.vector-typeahead-search-container nicht gefunden');
                return;
            }

            // Container aus dem Portlet herauslösen und in den Header verschieben
            $typeahead.appendTo($left);

            // Option: komplettes ursprüngliches Portlet unsichtbar machen
            $searchPortlet.css({
                display: 'none'
            });
        })();

        /***********************
         * 2) Logo + Titel in die Mitte
         ***********************/
        var $logoLink = $('.mw-logo').first();
        if ($logoLink.length) {
            $logoLink.appendTo($center).css({ margin: 0 });
        } else {
            var $home = $('<a>', {
                href: mw.util.getUrl('Start'),
                class: 'pixo-header-icon',
                title: 'Startseite'
            }).text('Pixopedia');
            $center.append($home);
        }

        /***********************
         * 3) Benutzerbereich rechts
         ***********************/
        var userName = mw.config.get('wgUserName');

        if (userName) {
            var $userPage = $('#p-vector-user-menu-userpage').first();
            var $userMenu = $('#vector-user-links-dropdown').first();

            if ($userPage.length) {
                $userPage.appendTo($right).addClass('pixo-header-icon');
            }
            if ($userMenu.length) {
                $userMenu.appendTo($right).addClass('pixo-header-icon');
            }
        } else {
            var $register = $('<a>', {
                href: mw.util.getUrl('Special:CreateAccount'),
                class: 'pixo-header-icon',
                title: 'Benutzer registrieren'
            }).text('✚');

            var $login = $('<a>', {
                href: mw.util.getUrl('Special:UserLogin'),
                class: 'pixo-header-icon',
                title: 'Benutzeranmeldung'
            }).text('⮞');

            $right.append($register, $login);
        }
    });
});