ميدياويكي: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 ));
            });
        });
    });
}