ميدياويكي:Gadget-WikidataTab.js

من ويكي مصدر، المكتبة الحرة

ملاحظة: بعد النشر، أنت قد تحتاج إلى إفراغ الكاش الخاص بمتصفحك لرؤية التغييرات.

  • فايرفوكس / سافاري: أمسك Shift أثناء ضغط Reload، أو اضغط على إما Ctrl-F5 أو Ctrl-R (⌘-R على ماك)
  • جوجل كروم: اضغط Ctrl-Shift-R (⌘-Shift-R على ماك)
  • إنترنت إكسبلورر/إيدج: أمسك Ctrl أثناء ضغط Refresh، أو اضغط Ctrl-F5
  • أوبرا: اضغط Ctrl-F5.
/**
 * WikiDataTab
 * 
 * حدثها: حبيشان
 */
if (location.search.indexOf( 'printable=yes' ) === -1 
&& [
	'wikibase-item',
	'wikibase-property',
	'wikibase-lexeme',
	'flow-board',
	'EntitySchema',
	'proofread-index',
	'proofread-page'
].indexOf( mw.config.get( 'wgPageContentModel' ) ) === -1) {
$(function($) {
	var translate = {
		'ar': {
			notfound: "لا عنصر في ويكي بيانات",
			nolabel: "(لا عنوان)",
			nodescription: "(لا وصف)"
		},
		'en': {
			notfound: "Wikidata item not found",
			nolabel: "(No label)",
			nodescription: "(no description given)"
		}
	},
	wikidataImg = (mw.config.get('skin') == 'vector-2022') && '/w/load.php?modules=oojs-ui.styles.icons-wikimedia&image=logoWikidata' || '//upload.wikimedia.org/wikipedia/commons/e/e8/Wikidata-favicon.png',
	qid = mw.config.get('wgWikibaseItemId'),
    lang = (translate[mw.config.get( 'wgUserLanguage' )] && mw.config.get( 'wgUserLanguage' )) || mw.config.get( 'wgContentLanguage' ),
    namespace = mw.config.get( 'wgNamespaceNumber' ),
    m = translate[lang] || translate.ar;
    var d = $("<li>")
        .addClass("mw-list-item")
        .appendTo("#p-views ul");

    if (qid) {
        mw.loader.using( ['mediawiki.api'], function () {
            var wdapi = new mw.ForeignApi('https://www.wikidata.org/w/api.php');
            wdapi.get({
                action: 'wbgetentities',
                ids: qid,
                props: 'labels|descriptions|aliases',
                languages: lang
            }).done( function ( data ) {
                if (data.success) {
                    var m = translate[lang] || translate.ar;
                    for (var i in data.entities) {
                        var item = data.entities[i],
                            aliases = [];
                        try {
                            for (; i < item.aliases[lang].length; i++) {
                                aliases.push(item.aliases[lang][i].value);
                            }
                        } catch (e) { }
                        var a = $("<a>")
                                .attr("href", "//www.wikidata.org/wiki/" + qid)
                                .attr("title", ((item.labels && item.labels[lang]) ? item.labels[lang].value : m.nolabel) + " (" + qid + "):" + ((item.descriptions && item.descriptions[lang]) ? item.descriptions[lang].value : m.nodescription));
                        if (mw.config.get('skin')=='vector-2022') {
                            a.attr("class", 'cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only')
                            .append(
                                $("<span>")
                                .addClass("vector-icon")
                                .attr("style", "background-image:url(" + wikidataImg + ");")
                                );
                        } else {
                            a.append(
                                $("<img>")
                                .attr("src", wikidataImg)
                            );
                        }							
                    a.appendTo(d);
                    }
                }
            });
        });
    } else if ([ -1, 2, 6, 8].indexOf( namespace ) === -1 &&  namespace % 2 == 0) {
        pagename = mw.config.get('wgPageName').replace(/_/g, " ");
        var a = $("<a>")
            .attr("href", "//www.wikidata.org/wiki/Special:CreateItem?setlang=ar&label=" + pagename + "&site=" + mw.config.get('wgWikiID') + "&page=" + pagename)
            .attr("title", m.notfound);
        if (mw.config.get('skin')=='vector-2022') {
            a.attr("class", 'cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only')
            .append(
                $("<span>")
                .addClass("vector-icon")
                .attr("style", "background-image:url(" + wikidataImg + ");opacity:0.3;")
                );
        } else {
            a.append(
                $("<img>")
                .attr("src", wikidataImg)
                .attr("style", "opacity:0.3;")
            );
        }							
        a.appendTo(d);
    }
}); // ready
} //if