MediaWiki:Common.js

De Clash of Clans Wiki
Ir a la navegación Ir a la búsqueda

Nota: Después de publicar, quizás necesite actualizar la caché de su navegador para ver los cambios.

  • Firefox/Safari: Mantenga presionada la tecla Shift mientras pulsa el botón Actualizar, o presiona Ctrl+F5 o Ctrl+R (⌘+R en Mac)
  • Google Chrome: presione Ctrl+Shift+R (⌘+Shift+R en Mac)
  • Internet Explorer/Edge: mantenga presionada Ctrl mientras pulsa Actualizar, o presione Ctrl+F5
  • Opera: Presiona Ctrl+F5.
/* Cualquier JavaScript aquí se cargará para todos los usuarios en cada carga de la página. */
/* Imports */
mw.loader.load(mw.util.getUrl('MediaWiki:Numeral.js', { action: 'raw' }) + '&ctype=text/javascript', 'text/javascript'); // Defines num.format('<fmt>')
mw.loader.load(mw.util.getUrl('MediaWiki:GemCalculators.js', { action: 'raw' }) + '&ctype=text/javascript', 'text/javascript');
mw.loader.load(mw.util.getUrl('MediaWiki:GoldPass.js', { action: 'raw' }) + '&ctype=text/javascript', 'text/javascript');
mw.loader.load(mw.util.getUrl('MediaWiki:Protection.js', { action: 'raw' }) + '&ctype=text/javascript', 'text/javascript');
mw.loader.load(mw.util.getUrl('MediaWiki:ClanHouseGenerator.js', { action: 'raw' }) + '&ctype=text/javascript', 'text/javascript');
mw.loader.load(mw.util.getUrl('MediaWiki:Toggle.js', { action: 'raw' }) + '&ctype=text/javascript', 'text/javascript');

// To provide a string locally, provide window.clashLocalI18n (map[module -> map[name -> string]]).
window.ClashCreateI18nInterface = function (module, strings) {
    var lang = mw.config.get('wgPageContentLanguage');
    var localStrings = window.arkLocalI18n && window.arkLocalI18n[module];
    return function (key) {
        return (
            // try from local store
            (localStrings && localStrings[key])
            // try from script store
            || (strings[lang] && strings[lang][key] || strings['en'][key])
            // fallback
            || '<' + key + '>'
        );
    };
};
window.ClashCreateI18nInterfaceEx = function (module, strings) {
    var lang = mw.config.get('wgPageContentLanguage');
    var localStrings = window.arkLocalI18n && window.arkLocalI18n[module];

    return Object.assign(
        {},
        strings['en'],
        strings[lang],
        localStrings
    );
};

$(function(){
    // #region Make sidebar sections collapsible
    $("#mw-panel .portal").each(function(index, el){
        var $el = $(el);
        var $id = $el.attr("id");
        if(!$id){
            return;
        }
        if(localStorage.getItem('sidebar_c_'+$id) === "y"){
            $el.addClass('collapsed').find('.body').slideUp(0);
        }
    });

    $("#mw-panel .portal").on("click", "h3", function(event){
        var $el = $(this).parent();
        var $id = $el.attr("id");
        if(!$id){
            return;
        }
        event.stopPropagation();
        $el.toggleClass('collapsed');
        if($el.hasClass('collapsed')){ // more consistent between class and slide status.
            $el.find('.body').slideUp('fast');
            localStorage.setItem('sidebar_c_'+$id, "y");
        }
        else{
            $el.find('.body').slideDown('fast');
            localStorage.setItem('sidebar_c_'+$id, "n");
        }
    });
});


/* Fires when DOM is ready */
$(function () {
    (function () {
        if (mw.config.get('wgIsArticle')
            && !mw.config.get('wgIsMainPage') /* handled by Extension:StructuredData */
            && mw.config.get('wgContentNamespaces').indexOf(mw.config.get('wgNamespaceNumber')) >= 0) {
            var ogImage = document.querySelector('meta[property="og:image"]');
            var script = document.createElement('script');
            script.type = "application/ld+json";
            script.innerHTML = JSON.stringify({
                "@context": "http://www.schema.org",
                "@type": "Article",
                name: mw.config.get('wgTitle'),
                headline: mw.config.get('wgTitle'),
                image: {
                    "@type": "ImageObject",
                    url: ogImage ? ogImage.getAttribute('content') : "https://clashofclans.wiki.gg/es/images/e/e6/Site-logo.png"
                },
                author: {
                    "@type": "Organization",
                    name: 'Contribuidores de ' + mw.config.get('wgSiteName'),
                    url: mw.config.get('wgServer')
                },
                publisher: {
                    "@type": "Organization",
                    name: mw.config.get('wgSiteName'),
                    url: mw.config.get('wgServer'),
                    logo: {
                        "@type": "ImageObject",
                        url: "https://clashofclans.wiki.gg/es/images/e/e6/Site-logo.png"
                    }
                },
                potentialAction: {
                    "@type": "SearchAction",
                    target: mw.config.get('wgServer') + "/es/wiki/Special:Search?search={search_term}",
                    "query-input": "required name=search_term"
                },
                mainEntityOfPage: mw.config.get('wgPageName')
            });
            document.body.appendChild(script);
        }
    })();

    // #region Sidebar ToC
    (function () {
        var tocListElement = document.querySelector('#toc > ul');
        if (tocListElement) {
            var tocHeadingText = document.querySelector('#mw-toc-heading').textContent;
            var sidebarToc = document.createElement('div'),
                sidebarTocHeading = document.createElement('h3'),
                sidebarTocLabel = document.createElement('span'),
                sidebarTocContent = document.createElement('div');
            sidebarToc.id = 'p-stoc';
            sidebarToc.className = 'vector-menu mw-portlet mw-portlet-stoc vector-menu-portal';
            sidebarToc.setAttribute('aria-labelledby', 'p-stoc-label');
            sidebarToc.setAttribute('role', 'navigation');
            sidebarTocHeading.id = 'p-stoc-label';
            sidebarTocHeading.className = 'vector-menu-heading';
            sidebarTocLabel.className = 'vector-menu-heading-label';
            sidebarTocLabel.textContent = tocHeadingText;
            sidebarTocContent.className = 'vector-menu-content';

            sidebarTocHeading.appendChild(sidebarTocLabel);
            sidebarTocContent.append(tocListElement.cloneNode(true));
            sidebarToc.appendChild(sidebarTocHeading);
            sidebarToc.appendChild(sidebarTocContent);
            document.querySelector('#mw-panel').appendChild(sidebarToc);
        }
    })();
    // #endregion

    // Clash Royale, Brawl Stars and Clash Quest topic interwiki links
    var elements = '#ClashRoyaleLink, #BrawlStarsLink, #ClashQuestLink';
    if ($('.mw-indicators').length) {
        $(elements).prependTo(".mw-indicators").css({ "display": "inline-block" });
    }
});

/* #region Comments Link 
  ---------------------- */
$(document).ready(function() {
    var nombrePagina = mw.config.get('wgTitle');
    $('#ca-talk a').attr('href', '/es/wiki/' + nombrePagina + '#Comentarios');
    $('#ca-talk a').attr('title', 'Sección de comentarios');
    $('#ca-talk a').on('click', function(e) {
        e.preventDefault();
        var comentariosSection = $('.cs-comments');
        if (comentariosSection.length > 0) {
            $('html, body').animate({
                scrollTop: comentariosSection.offset().top
            }, 1000);
            window.location.hash = 'Comentarios';
        }
    });
});/* #end-region-comments-links */

/* Extension:RelatedArticles 
    -------------------------- */
$(document).ready(function() {
    var readMoreContainer = $('.read-more-container');
    var contentBody = $('#bodyContent');

    if (readMoreContainer.length > 0 && contentBody.length > 0) {
        readMoreContainer.appendTo(contentBody); // Move
    }
});/* #end-region-related-articles-script-move */

/* Mover Historial al Menú 
    ------------------------- */
var historyElement = $('#ca-history');

if (historyElement.length > 0) {
    var actionsMenuContentList = $('#p-cactions .vector-menu-content-list');

    if (actionsMenuContentList.length > 0) {
        actionsMenuContentList.append(historyElement);
    }
}