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

من كوبتيكبيديا
اذهب إلى التنقل اذهب إلى البحث

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

  • فايرفوكس / سافاري: أمسك Shift أثناء ضغط Reload، أو اضغط على إما Ctrl-F5 أو Ctrl-R (⌘-R على ماك)
  • جوجل كروم: اضغط Ctrl-Shift-R (⌘-Shift-R على ماك)
  • إنترنت إكسبلورر/إيدج: أمسك Ctrl أثناء ضغط Refresh، أو اضغط Ctrl-F5
  • أوبرا: اضغط Ctrl-F5.
if ( mw.config.get('wgPageName') === "خاص:صفحة_فارغة/متعلقات_ناقصة" ) {
    mw.loader.using( 'oojs-ui-core' ).done( function () {
        $( function () {
            // From: http://stackoverflow.com/questions/19491336/get-url-parameter-jquery-or-how-to-get-query-string-values-in-js
            var getUrlParameter = function getUrlParameter(sParam) {
                var sPageURL = decodeURIComponent(window.location.search.substring(1)),
                    sURLVariables = sPageURL.split('&'),
                    sParameterName,
                    i;

                for (i = 0; i < sURLVariables.length; i++) {
                    sParameterName = sURLVariables[i].split('=');

                    if (sParameterName[0] === sParam) {
                        return sParameterName[1] === undefined ? true : sParameterName[1];
                    }
                }
            };
            var property = new OO.ui.TextInputWidget({
                validate: 'integer',
                indicator: 'required',
                value: getUrlParameter('p')
            });
            var item = new OO.ui.TextInputWidget({
                validate: 'integer',
                indicator: 'required',
                value: getUrlParameter('q')
            });
            var fieldset = new OO.ui.FieldsetLayout( {
                classes: [ "container" ]
            } );
            var submit = new OO.ui.ButtonInputWidget( {
                label: 'اقترح',
                flags: ['primary', 'progressive']
            } );
            fieldset.addItems( [
                new OO.ui.FieldLayout( property, {
                    label: 'الخاصية (P) - مثلا للغة: 364',
                    align: 'top'
                } ),
                new OO.ui.FieldLayout( item, {
                    label: 'المادة (Q) - مثلا للعربية: 13955',
                    align: 'top'
                } ),
                new OO.ui.FieldLayout( submit )
            ] );
            $('#mw-content-text').html('');
            $('#mw-content-text').append(fieldset.$element);
            submit.on('click', function () {
                var pValid, qValid;
                property.getValidity().fail( function() {
                    pValid = false;
                });
                item.getValidity().fail( function() {
                    qValid = false;
                });
                if ( pValid === false || qValid === false ) {
                    alert('معطيات خاطئة!');
                    return;
                }
                var url = 'https://query.wikidata.org/embed.html#SELECT%20%3Fitem%20%3Fenarticle%20(COUNT(DISTINCT%20%3Fsitelink)%20AS%20%3Flinkcount)%20%3FitemLabel%20WHERE%20{%0A%20%20%20%20%3Fitem%20wdt:P' + property.getValue() + '%20wd%3AQ' + item.getValue() + '%20.%0A%20%20%20%20%3Fsitelink%20schema%3Aabout%20%3Fitem%20.%0A%20%20%20%20optional%20%7B%20%3Fenarticle%20%20%20schema%3Aabout%20%3Fitem%20%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20schema%3AisPartOf%20%3Chttps%3A%2F%2Fen.wikipedia.org%2F%3E%20.%7D%0A%20%20minus%20%7B%0A%20%20%20%20%3Farticle%20schema%3Aabout%20%3Fitem%20.%0A%20%20%20%20%3Farticle%20schema%3AinLanguage%20%22ar%22%20.%0A%20%20%20%20%3Farticle%20schema%3AisPartOf%20%3Chttps%3A%2F%2Far.wikipedia.org%2F%3E%0A%20%20%7D%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%0A%09%09bd%3AserviceParam%20wikibase%3Alanguage%20%22en%2Car%22%20.%0A%20%20%7D%0A%7D%0AGROUP%20BY%20%3Fitem%20%3FitemLabel%20%3Fenarticle%0AORDER%20BY%20DESC%28%3Flinkcount%29%0Alimit%201000';
                $('#mw-content-text').append('<br><br>');
                $('#sparqlquery').remove();
                $('#mw-content-text').append($( '<iframe scrolling="yes" frameborder="0" id="sparqlquery">' ).attr( 'src', url ).width( "100%" ).height( 2000 ));
            });
        });
    });
}