MediaWiki:Gadget-RelatedArticles.js — различия между версиями

Материал из rock63.ru
Перейти к: навигация, поиск
Строка 15: Строка 15:
 
         prop: 'linkshere',
 
         prop: 'linkshere',
 
         titles: articleTitles.join('|'),
 
         titles: articleTitles.join('|'),
 +
        lhshow: '!redirect',
 
         formatversion: 2
 
         formatversion: 2
 
     }).done(function(data) {
 
     }).done(function(data) {

Версия 00:18, 23 июля 2016

mw.loader.using('ext.cards').done(function() {
    var gateway = new mw.cards.CardsGateway({api: new mw.Api()});

    var relatedArticles = [],
        articleTitles = [];

    $('.firstHeading').each(function() {
        articleTitles.push($(this).text());
    });

    var api = new mw.Api();

    api.get({
        action: 'query',
        prop: 'linkshere',
        titles: articleTitles.join('|'),
        lhshow: '!redirect',
        formatversion: 2
    }).done(function(data) {
        if (data.query && data.query.pages) {
            $.map(data.query.pages, function(page) {
                if (page.linkshere) {
                    $.map(page.linkshere, function(linkhere) {
                        relatedArticles.push(linkhere.title);
                    });
                }
            });
        }

        if (relatedArticles.length) {
            relatedArticles.sort(function() {
                return 0.5 - Math.random()
            });
            if (relatedArticles.length > 3) {
                relatedArticles = relatedArticles.slice(0, 3);
            }
            gateway.getCards(relatedArticles, 200).done(function(cards) {
                $('#bodyContent').append(cards.$el);
            });
        }
    });
});