مدیاویکی:Gadget-WikidataRecom.js
نکته: پس از انتشار ممکن است برای دیدن تغییرات نیاز باشد که حافظهٔ نهانی مرورگر خود را پاک کنید.
- فایرفاکس / سافاری: کلید Shift را نگه دارید و روی دکمهٔ Reload کلیک کنید، یا کلیدهای Ctrl-F5 یا Ctrl-R را با هم فشار دهید (در رایانههای اپل مکینتاش کلیدهای ⌘-R)
- گوگل کروم: کلیدهای Ctrl+Shift+R را با هم فشار دهید (در رایانههای اپل مکینتاش کلیدهای ⌘-Shift-R)
- اینترنت اکسپلورر/ Edge: کلید Ctrl را نگهدارید و روی دکمهٔ Refresh کلیک کنید، یا کلیدهای Ctrl-F5 را با هم فشار دهید
- اپرا: Ctrl-F5 را بفشارید.
if ( mw.config.get('wgPageName') === "ویژه:صفحهٔ_خالی/WikidataRecom" ) {
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 را وارد نکنید)',
align: 'top'
} ),
new OO.ui.FieldLayout( item, {
label: 'آیتم (Q را وارد نکنید)',
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%28COUNT%28DISTINCT%20%3Fsitelink%29%20AS%20%3Flinkcount%29%20%3FitemLabel%20WHERE%20%7B%0A%20%20%20%20%3Fitem%20wdt%3AP' + 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%22fa%22%20.%0A%20%20%20%20%3Farticle%20schema%3AisPartOf%20%3Chttps%3A%2F%2Ffa.wikipedia.org%2F%3E%0A%20%20%7D%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%0A%09%09bd%3AserviceParam%20wikibase%3Alanguage%20%22en%2Cfa%22%20.%0A%20%20%7D%0A%7D%0AGROUP%20BY%20%3Fitem%20%3FitemLabel%20%3Fenarticle%0AORDER%20BY%20DESC%28%3Flinkcount%29%0Alimit%20100';
$('#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 ));
});
});
});
}