מדיה ויקי:סקריפטים/71.js
קפיצה לניווט
קפיצה לחיפוש
הערה: לאחר השמירה, ייתכן שיהיה צורך לנקות את זיכרון המטמון (cache) של הדפדפן כדי להבחין בשינויים.
- פיירפוקס / ספארי: להחזיק את המקש Shift בעת לחיצה על טעינה מחדש (Reload), או ללחוץ על צירוף המקשים Ctrl-F5 או Ctrl-R (במחשב מק: ⌘-R).
- גוגל כרום: ללחוץ על צירוף המקשים Ctrl-Shift-R (במחשב מק: ⌘-Shift-R).
- אינטרנט אקספלורר: להחזיק את המקש Ctrl בעת לחיצה על רענן (Refresh), או ללחוץ על צירוף המקשים Ctrl-F5.
- אופרה: לפתוח תפריט ← הגדרות (במחשב מק: Opera ← העדפות) ואז ללחוץ על פרטיות ואבטחה ← מחק היסטוריית גלישה ← Cached images and files.
// סקריפט 71: הוספת כפתור "תאריכי הוספה" לקטגוריה //Written by [[User:ערן]] if (mw.config.get('wgNamespaceNumber') == 14) mw.loader.using( ['mediawiki.util', 'mediawiki.api'] ).done( function() { function tsToDate(rc) { var date = new Date(rc.timestamp); if (isNaN(date)) {// all sane browsers can just do new Date(rc.timestanp). only IE refuses. dar = rc.timestamp.split(/[^\d]/); // timestamp looks like so: "2011-05-05T18:56:27Z" var month = parseInt(dar[1],10) - 1; // "Date" expexts months in the range of 0..11, timestamp is more conventional. var minutes = parseInt(dar[4], 10) - new Date().getTimezoneOffset();//ts is UTC, but new Date(y,M,d,h,m,s) assumes local TZ date = new Date(dar[0],month,dar[2],dar[3],minutes,dar[5]); } return date; } function ago(rec) { var ms = now - tsToDate(rec); var s = ms / 1000; if (s < 100) return {c:0, s:'ברגע זה'}; var ranges = [ {r: 60, t: 'דקות', s: 'דקה', d: 'שתי דקות'}, {r: 60, t: 'שעות', s: 'שעה', d: 'שעתיים'}, {r: 24, t: 'ימים', s: 'יממה', d: 'יומיים'}, {r: 7, t: 'שבועות', s: 'שבוע', d: 'שבועיים'}, {r: 52, t: 'שנים', s: 'שנה', d: 'שנתיים'} ]; var est = '', num; for (var i = 0; i < ranges.length; i++) { var range = ranges[i]; s /= range.r; if (s < 1) break; num = ''; if (s < 2) est = range.s; else if (s < 3 && range.d) est = range.d; else { num = '-' + Math.floor(s) + ' '; est = range.t; } } return {c: i, s: 'לפני כ' + num + est}; } { var now = new Date(); if (window.auto_cat_dates) doit(); else mw.util.addPortletLink('p-cactions','#','תאריכי הוספה','queryAdded').onclick = doit; function doit(){ var catQuery={ list:'categorymembers', cmtitle:mw.config.get('wgPageName'), cmprop:'timestamp|title|type', cmtype:'page|subcat|file', cmlimit:500 }, catRegex = /^קטגוריה:/, colors = ['red', 'red', 'red', 'red', 'orange', 'green']; if (mw.util.getParamValue('pagefrom')) catQuery.cmstartsortkey=mw.util.getParamValue('pagefrom'); var api=new mw.Api(); api.get(catQuery).done(function(data){ var linkTitle={}, catTitle = {}; $('#mw-pages a, #mw-category-media a').each(function(){ linkTitle[this.title] = this; }); $('#mw-subcategories a').each(function(){ catTitle[$(this).text()] = this; }); $(data.query.categorymembers).each(function(index, item) { var when = ago(item), span = $('<span>', {title:item.timestamp}) .css({fontSize: '70%', color: colors[when.c], cursor: 'pointer' }) .text(' ' + when.s + ' ') .click(function() { var target = mw.util.getUrl(item.title, { action: 'history', limit:1, offset: item.timestamp.replace(/[:TZ-]/g, '') }); window.location.href = target; }); if (item.type == 'subcat') $(catTitle[item.title.replace(catRegex, '')]).after(span); else $(linkTitle[item.title]).after(span); }); }); }; } });