לדלג לתוכן

משתמש:מוטי/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'));
            });
    });
});
});