משתמש:מוטי/U:קיפודנחש/search-count.js
מראה
לתשומת ליבך: לאחר הפרסום, ייתכן שיהיה צורך לנקות את זיכרון המטמון (cache) של הדפדפן כדי להבחין בשינויים.
- פיירפוקס / ספארי: להחזיק את המקש Shift בעת לחיצה על טעינה מחדש (Reload) או ללחוץ על צירוף המקשים Ctrl-F5 או Ctrl-R (במחשב מק: ⌘-R).
- גוגל כרום: ללחוץ על צירוף המקשים Ctrl-Shift-R (במחשב מק: ⌘-Shift-R).
- אדג': להחזיק את המקש Ctrl בעת לחיצה על רענן (Refresh) או ללחוץ על צירוף המקשים Ctrl-F5.
$(function() {
if ($('.hewiki-searchcount-search').length)
mw.loader.using('mediawiki.api').done(function() {
function escapeSearch(search) {
search = search
.replace('<', '\\<')
.replace('>', '\\>');
if (/insource:\//.test(search)) {
var parts = search.split('/');
if (parts.length > 3) { // replace any / expcet first and last with \/
var inside = parts.splice(1, parts.length - 3).map(x => x + '\\/');
inside.push(parts[parts.length - 2])
search = parts[0] + '/' + inside.join('') + '/' + parts[parts.length - 1];
}
}
return search;
}
var api = new mw.Api();
$('.hewiki-searchcount-search').each(function() {
var
span = $(this),
search = escapeSearch(span.data('search'));
param = {
list: 'search',
srsearch: search,
srlimit: 1,
srinfo: 'totalhits'
};
search = escapeSearch(search);
if (span.data('search-namespaces')) param.srnamespace = span.data('search-namespaces').toString().replace(/[, ]+/g, '|');
api.get(param).done(function(result) {
var count = result && result.query && result.query.searchinfo && result.query.searchinfo.totalhits;
if (count || count === 0 || count === "0") span.find('.hewiki-searchcount-count').text(count.toLocaleString('he'));
});
});
});
});