מדיה ויקי:Gadget-TemplatesExternalLinks.js: הבדלים בין גרסאות בדף

פכים קטנים
מ 166 גרסאות של הדף wikipedia:he:מדיה_ויקי:Gadget-TemplatesExternalLinks.js יובאו
 
(156 גרסאות ביניים של 14 משתמשים אינן מוצגות)
שורה 1: שורה 1:
function createAndInsertLinkTemplate(templateName, fields, isRef) {
//Adds wizard for using templates for external links
var par = ["{{" + templateName];
//Written by [[User:קיפודנחש]]
for (var i = 0; i < fields.length; i++)
if (($.inArray( mw.config.get( 'wgAction' ), ['edit', 'submit']) + 1)  && ( !$('#wpTextbox1').prop( 'readonly' ) ))  
par.push(fields[i].value);
mw.loader.using('jquery.textSelection', function() {
var code = par.join("|") + "}}";
if (isRef)
code = "{{הערה|1=" + code + "}}";
insertTags( "", "", code);
}


function popupPredefinedLinkTemplate(templateName, paramList, regexDict) {
function templates(templateName) {
var height = 100 + 30 * paramList.length + (regexDict ? 60 : 0);
var constants = ["",
for (i in paramList)
"שם המחבר",
height += 20 * (paramList[i].length / 40)
"כותרת המאמר",
var popup = window.open("", "popup", "height=" + height + ",width=500" );
"מספר (כפי שמופיע בקישור)",
var doc = popup.document;
"מידע נוסף, למשל תאריך. נסו לשמור על הפורמט '30 באוגוסט 1958'",
doc.title = " הוספת תבנית: " + templateName;
"מספר הסדרה",
doc.direction = doc.dir = "rtl";
"נתיב הדף - כמו שמופיע בקישור",
doc.templateName = templateName;
"מידע נוסף (לא תאריך)",
doc.allFields = [];
"ספר",
var form = doc.createElement("form");
"פרק",
var body = doc.body;
"פסוק",
if (regexDict) {
"מסכת",
body.appendChild(doc.createTextNode('הדביקו את הקישור כאן:'));
"דף",
var b = doc.createElement("input");
"עמוד",
b.urlInput = doc.createElement("input");
"משנה",
b.urlInput.type = "text";
"סימן",
b.urlInput.maxLength = 600;
"סעיף",
b.urlInput.style.width = "20em";
"הלכות",
body.appendChild(b.urlInput);
"שם",
b.type = "button";
"מספר הסדרה",
b.value = "חילוץ פרמטרים מן הקישור";
'מספר סדרת "ART"',
b.regexDict = regexDict;
"",
b.doc = doc;
"תאריך כתבה (בפורמט 1949/07/25, כפי שמופיע בקישור)",
b.onclick = function() {
"סוג הפרסום, כפי שמופיע בקישור אחרי '=EntityId'. בדרך כלל 'Ar' לכתבה רגילה, 'Pc' לתמונה ו־'Ad' לפרסומת",
var matches = this.urlInput.value.match(this.regexDict.regex);
"שם הספר",
if (matches) {
"קידומת סוג הכתבה",
for (var i = 1; i < matches.length; i++) {
"מזהה נושא הכתבה",
var fieldIndex = this.regexDict.params[i-1]; //parameters are counted from one, we count from 0.
"שם הערך",
if (fieldIndex && this.doc.allFields[fieldIndex-1])
"קוד כניסה חינם (כפי שמופיע בקישור)",
this.doc.allFields[fieldIndex-1].value = matches[i];
"כרך",
"הפניה לכתבה (כפי שמופיע בקישור)",
"הלכה",
"",
"חלק",
"כותרת הדף",
"שם החלל",
"מספר ה-folder כמו שמופיע בקישור",
"כותרת הספר/שם הקהילה",
"מספר גיליון, תאריך פרסום ומספרי עמודים",
"החלק השני של הקישור",
"מספר העמוד, כפי שמופיע באתר",
"שם האיש",
"שם האמן",
"שם העיתון",
"קוד העיתון באתר (שלוש אותיות לטיניות גדולות)",
"שם המין/זן",
"שם הרב",
"שם השיעור",
"השיעור כשם שמופיע בקישור",
"מספר גיליון, תאריך פרסום ומספרי עמודים",
"שם הערך בויקישיבה",
"קידומת הקישור, אם שונה מ-www",
"האותיות שמציינות את המדינה"
];
 
var templatesAr = [
{t: 'קישור כללי', np: [
['הכותב', 'שמות כותבי המאמר', 1],
['כותרת', 'שם המאמר המקושר'],
['כתובת', 'הקישור (כלומר ה-URL) עצמו'],
['תאריך', 'תאריך המאמר, בפורמט "30 באוגוסט 1958"', 1],
['עמודים', 'מספר העמודים', 1],
['מידע נוסף', 'מידע נוסף (לא תאריך)', 1],
['שפה', 'שפה (אם המאמר לא בעברית)', 1],
['ציטוט', 'ציטוט משפט מהדף המקושר (יכול לעזור במציאת הדף בעתיד, אם הקישור ישתנה)', 1]
]},
{t: 'הארץ', p: [1,2,3,4], r: /([.\d]+)$/i, rp: [3], bm: 1, op: [0,3]},
{t: 'דבר'},
{t: 'מעריב'},
{t: 'הצבי'},
{t: 'הצפירה'},
{t: 'המגיד'},
{t: 'חבצלת'},
{t: 'המליץ'},
{t: 'על המשמר'},
{t: 'היינט'},
{t: 'PalPost'},
            {t: 'חרות'},
{t: 'תנ"ך', p: [8,9,10], op:[2]},
{t: 'nrg', p: [1,2,3,4,0,19,20], r: /\/online\/([^\/]+)\/ART([^\/]*)\/([^\.]+).html/i, rp: [6,7,3], bm: 1, op:[3,4,5,6], nopop: 1},
{t: 'Mooma2', p: [42,3], r: /\?ArtistId=(\d+)/i, rp: [2]},
{t: 'בחדרי חרדים', p: [1,2,3,4], r: /\/Article\.aspx\?id=(\d+)/i, rp: [3], bm: 1, op: [3]},
{t: 'CIA factbook', p: [52]},
{t: 'mynet', p: [1,2,3,4,0,5], r: /articles\/(\d+),7340,L-(\d+),00\.html/i, rp: [6,3], op: [3,4,5,6]},
{t: 'NFC', p: [1,2,3,4], r: /Archive\/([^\.]+)\.html/i, rp: [3], op: [3], bm: 1},
{t: 'Onlife', p: [1,2,3,4], r: /onlife\.co\.il\/([^\/]+)\/(.*)/i, rp: [1,3], op: [3]},
{t: 'ynet', p: [1,2,3,4], def: {6: 0, 7: 'articles'}, r: /ynet\.co\.il\/([^\/]+)\/(\d+),7340,L-(\d+),00.html/i, rp: [7,6,3], bm: 1, op: [3,4,5,6]},
{t: 'Xnet', p: [1,2,3,4], def: {6: 0, 7: 'articles'}, r: /([^\/]+)\/(\d+),\d+,L-(\d+),00.html/i, rp: [7,6,3], bm: 1, op: [3,4,5,6]},
{t: 'וואלה!', p: [1,2,3,4,0,26], r: /\?w=\/(\d+)\/(\d+)/i, rp: [6,3], bm: 1, op: [3,4,5]},
{t: 'גלובס', p: [1,2,3,4], r: /\/news\/article.aspx\?did=(\d+)/i, rp: [3], bm: 1, op: [3]},
{t: 'כלכליסט', p: [1,2,3,4], r: /\/articles\/(\d+),7340,L-(\d+),00/i, rp: [6,3], op: [3,4,5,6], bm: 1},
{t: 'נענע10', p: [1,2,3,4,0,26], r: /http:\/\/([a-z]*)\.nana10\.co\.il\/Article\/\?ArticleID=(\d+)/i, rp: [6,3], bm: 1, op: [3,4,5,6]},
{t: 'תדהר', p: [29,13,27], op: [2]},
{t: 'אנשים ישראל', p: [1,2,3,4], r: /.*itemID=(\d+)&/i, rp: [3], op: [3]},
{t: 'אתר חיל האוויר', p: [1,2,3,4], r: /\/([^\/]*)-he\//i, rp: [3], op: [3]},
{t: 'בלדד השוחי', p: [3,2,4], r: /ArticleID(\d*)/i, rp: [1], op: [2]},
{t: 'בשבע', p: [1,2,3,4], r: /Article.aspx\/(\d+)/i, rp: [3], op: [3]},
{t: 'האייל הקורא', p: [1,2,3,4], r: /story(?:_|\?id=)(\d+)/i, rp: [3], op: [3]},
{t: 'הידען', p: [1,2,30,4], r: /hayadan\.org\.il\/([^\/]*)/i, rp: [3], op: [3]},
{t: 'המאסף', p: [1,2,3,4], r: /notimportant\.co\.il\/?p=(\d+)/i, rp: [3], op: [3]},
{t: 'חסקין', p: [3,2], r: /ArticleNum=(\d+)/i, rp: [1]},
{t: 'בבלי', p: [11,12,13], op: [2]},
{t: 'משנה', p: [11,9,14], op: [2]},
{t: 'רמב"ם', p: [8,17,9,31], op: [0,3]},
{t: 'ירושלמי', p: [11,9,31], op: [2]},
{t: 'שולחן ערוך', p: [33,15,16], op: [2]},
{t: 'מטח', p: [1,2,3,4], op: [3]},
{t: 'גלצ', p: [1,2,3,4], r: /NewsArticle\.aspx\?NewsId\=(\d+)/i, rp: [3], op: [3]},
{t: 'ישראל היום', p: [1,2,3,4], r: /newsletter_article\.php\?id=(\d+)/i, rp: [3], bm: 1, op: [3]},
{t: 'מממ', p: [1,2,3,4], r: /data\/pdf\/([^\.])\.pdf/i, rp: [3], op: [3]},
{t: 'נזכור', p: [35,3], r: /HalalKorot\.aspx\?id=(\d+)/i, rp: [2]},
{t: 'סגולה', p: [1,2,3,4], r: /view-article\.asp\?article=(\d+)/i, rp: [3], op: [3]},
{t: 'ספורט 5', p: [1,2,3,36,4], r: /articles\.aspx\?FolderID=(\d+)&docID=(\d+)/i, rp: [4,3], op: [3], op: [0,4]},
{t: 'ספסל', p: [3,18,0], r: /hplayer\.aspx\?id=(\d+)/i, rp: [1]},
{t: 'ספסל מאמן', p: [3,18,0], r: /hstaff\.aspx\?id=(\d+)/i, rp: [1]},
{t: 'ספרי יזכור', p: [1,37,3,4], r: /yizkor\.nypl\.org\/index\.php\?id=(\d+)/i, rp: [3], op: [3]},
{t: 'הספרייה הדיגיטלית', p: [1,24,3,4], r: /nnl\/dig\/books\/([^\.]+)\.html/i, rp: [3], op: [3]},
{t: 'אורות', p: [1,2,3,4], r: /Article\.aspx\?ID=(\d+)/i, rp: [3], op: [3]},
{t: 'הערוץ האקדמי', p: [1,34,3,4], r: /programs\/Item\.aspx\?it=(\d+)/i, rp: [3], bm: 1, op: [3]},
{t: 'עכבר העיר', p: [1,2,3,4], r: /CM\.articles_item,(.*),\.aspx/i, rp: [3], bm: 1, op: [3]},
{t: 'ערוץ7', p: [1,2,3,4], r: /News\.aspx\/(\d+)/i, rp: [3], bm: 1, op: [3]},
{t: 'פעמים', p: [1,2,3,38], r: /dbsAttachedFiles\/Article_(.*)\.pdf/i, rp: [3], op: [3], op: [0,3]},
{t: 'תכלת', p: [1,2,3,4], r: /article\.php\?id=(\d+)/i, rp: [3], op: [3]},
{t: 'אנצ דעת', p: [3,27], r: /value\.asp\?id1=(\d+)/i, rp: [1]},
{t: 'דעת', p: [1,39,2], r: /(?:www\.)?daat\.ac\.il\/(.*)/i, rp: [2]},
{t: 'ויקישיבה', p: [50]},
{t: 'HebrewBooks', p: [1,8,3,4], r: /hebrewbooks\.org\/(\d+)/i, rp: [3], op: [3]},
{t: 'גדולי ישראל', p: [29,40,41,13]},
{t: 'עיתונות יהודית היסטורית 2', p: [43,44,1,2,22,3,7,0,23], def: {9: "Ar"}, r: /(?:Key|BaseHref)=([A-Z]{3})\/(\d{4}\/\d{1,2}\/\d{1,2})(?:.*&EntityId=|\/\d+\/)([A-Z][a-z])(\d+)/i, rp: [2,5,9,6], replace: [[/%2F/gi,'/']], op: [6,8]},
{t: 'Iucnredlist', p: [45,3], r: /details(?:\.php)?\/(\d+)/, rp: [2]},
{t: 'העין השביעית', p: [1,34,6,4,25], r: /the7eye\.org\.il\/([^\/]+)\/Pages\/(.*)\.aspx/, rp: [5,3], bm: 1, op: [3,4]},
{t: 'One', p: [1,2,3,4], r: /(?:Article[\d\-\/,]*\/|id=)([\d\-\/,]*\d)/, rp: [3], bm: 1, op: [3]},
{t: 'קול הלשון - שיעור', p: [46,47,48,4], np: [['וידאו', '"וידאו": רשמו "כן" אם זה שיעור לצפייה'], ['תואר', 'תואר - אם תואר המרצה שונה מ"הרב"']], r: /(?:PathFile=|Source=)([^&]*)/i, rp: [3], op: [3]},
{t: 'ספר פרויקט גוטנברג', np: [["כותב", "שם כותב הספר", 1], ['שם הספר', 'שם הספר (ברירת מחדל: שם הערך)', 1], ['מספר', 'מספר הספר בפרויקט']], r: /ebooks\/(\d+)/i, rp: [3]},
{t: 'imdb title', np: [['id', 'המספר שמופיע בקישור'], ['title', 'הכותרת שתופיע בקישור (אופציונלי: ברירת מחדל - שם הערך', 1]], r: /title\/tt(\d+)/i, rp: [1]},
{t: 'imdb name', np: [['id', 'המספר שמופיע בקישור'], ['name', 'הכותרת שתופיע בקישור (אופציונלי: ברירת מחדל - שם הערך', 1]], r: /name\/nm(\d+)/i, rp: [1]},
{t: 'imdb company', np: [['id', 'המספר שמופיע בקישור'], ['company', 'הכותרת שתופיע בקישור']], r: /company\/co(\d+)/i, rp: [1]},
{t: 'Google book', np: [['מזהה','מזהה הספר באתר גוגל'],['כותב','שם כותב/י הספר', 1],['שם הספר','שם הספר (אופציונלי) - ללא הפרמטר יוצג שם הערך', 1]], r: /id=([^&]*)/, rp: [1]},
{t: 'TheMarker1', p: [1,2,3,4,51], r: /http:\/\/(?:www)?(.*)\.themarker\.com\/([^\?]+)/i, rp: [5,3], op: [3,4], bm: 1},
{t: 'מערכות', p: [1,2,3,49], r: /FILES\/(.*)\.pdf/i, rp: [3], op: [3]},
{t: 'mako', p: [1,2,3,6,4], r: /www\.mako\.co\.il\/(.*?)\/Article-(.*?)\.htm/i, rp: [4,3], bm: 1, op: [4]}
];
 
if (! templateName) {
var en = /^[a-z]/;
function compare(t1, t2) {
var gen = 'קישור כללי', a = t1.t.toLowerCase(), b = t2.t.toLowerCase();
if (a == gen ^ b == gen) return (b == gen) - (a == gen);
if (en.test(a) - en.test(b)) return en.test(a) - en.test(b); // all hebrew before all english
return a > b ? 1 : (a < b ? -1 : 0);
}
templatesAr.sort(compare);
return templatesAr;
}
 
var template;
for (var i in templatesAr)
if (templatesAr[i].t == templateName)
template = templatesAr[i];
 
var historic = {"דבר": "DAV", "מעריב": "MAR", "הצבי": "HZV", "הצפירה": "HZF", "המגיד": "MGD", "המליץ": "HMZ", "חבצלת": "HZT", "PalPost": "PLS", "על המשמר" : "AHR", "היינט": "HYT", "חרות": "HRT"};
if (historic[template.t]) {
var r = new RegExp('=HISTNAME/(\\d{4}/\\d{1,2}/\\d{1,2})(?:.*&EntityId=|/\\d+/)([A-Z][a-z])(\\d+)'.replace('HISTNAME', historic[template.t]));
$.extend(template, {p: [1,2,22,3,7,0,23], def: {7: "Ar"}, r: r, rp: [3,7,4], replace: [[/%2F/gi, '/']], op: [4,6]});
}
 
for (var i in template.p)
if (typeof template.p[i] == "number")
template.p[i] = constants[template.p[i]];
 
return template;
}
 
function templateDialog(dialog, template, values) {
var brainDamage = $.client.profile().name == 'msie' && $.client.profile().versionNumber < 8;
var orderedFields = [],
namedFields = [],
table = $('<table>'),
empty = {val: function(){return '';}, hasClass: function(){return 0;}};
 
function createWikiCode() {
var par = ["{{" + template.t];
for (var i = 0; i < orderedFields.length; i++)
par.push($.trim(orderedFields[i].val()).replace(/\|/g, '{{!}}').replace(/=/g, '{{=}}'));
 
if (template.def)
for (var parnum in template.def)
if (par[parnum] == template.def[parnum])
par[parnum] = '';
if (! template.nopop)
while (par.length && !par[par.length-1].length && orderedFields[par.length-2].length) // last condition is to avoid remving "emptys"
par.pop();
var code = par.join("|");
if (namedFields) {
var pairs = [];
for (j in namedFields) {
var val = $.trim(namedFields[j][1].val()).replace(/\|/g, '{{!}}');
if (val.length)
pairs.push(namedFields[j][0] + '=' + val);
}
}
if (pairs.length)
code += '|' + pairs.join('|');
}
}
code += "}}";
if ($('#ltw2_ref').prop('checked'))
return "{{הערה|" + code + "}}";
if ($('#ltw2_list').prop('checked'))
return "\n* " + code + "\n";
return code;
}
function updatePreview(){
$('#ltw2_preview').text(createWikiCode());
var canOK = 'enable';
var f = orderedFields.concat([]); //clone - we don't want to touch orderedFields.
for (var i in namedFields)
f.push(namedFields[i][1]);
for (var i in f)
if (f[i].hasClass('ltw_required') && $.trim(f[i].val()).length == 0)
canOK = 'disable';
$(".ui-dialog-buttonpane button:contains('אישור')").button(canOK);
$('#ltw2_list').attr('disabled', $('#ltw2_ref').prop('checked'));//disable list if ref
$('#ltw2_ref').attr('disabled', $('#ltw2_list').prop('checked'));//disable ref if list
if (brainDamage) { //IOW: internet explorer.
var width = $('#ltw_dialog').width() - 12;
$('.ui-dialog-titlebar').width(width);
$('.ui-dialog-buttonpane').width(width);
}
}
function addRow(labelText, paramName, optional) {
var inputField = $('<input>', {id: 'ltw2_inputfield_' + paramName, type: 'text', width: 600}).css({width: '28em'}).on('paste cut drop input change', updatePreview);
if (! (optional || 0))
inputField.addClass('ltw_required').css({border: '1px red solid'});
var tr = $('<tr>')
.append($('<td>').text(labelText).css({maxWidth: '20em'}))
.append($('<td>').css({width: '30em'}).append(inputField));
if (typeof paramName == 'number')
orderedFields.push(inputField);
else
namedFields.push([paramName, inputField]);
table.append(tr);
}
function extractParamsFromURL() {
var str = $('#ltw_urlinput').val();
if (template.replace)
for (var r in template.replace)
str = str.replace(template.replace[r][0], template.replace[r][1]);
var matches = str.match(template.r);
if (matches)
for (var i = 1; i < matches.length; i++)
$('#ltw2_inputfield_' + template.rp[i-1]).val(matches[i] || '');
updatePreview();
}
}
body.appendChild(b);
 
}
$('.ltw_disposable').remove();
var table = doc.createElement("table");
 
for (i in paramList) {
if (template.bm)
var param = paramList[i];
dialog.append($('<p>', {title: 'ראו דף "עזרה:בוקמרקלטים"'}).css({color: 'red', fontWeight: 'bold'})
if (param.length == 0) { // this allow defining an empty parameter. by use of a "pseudo field".
.text('קיים בוקמרקלט שמייצר תבנית "' + template.t + '" באופן אוטומטי. אנא שקלו להשתמש בו (ראו "עזרה:בוקמרקלטים").'))
doc.allFields.push({value:""});
.append($('<hr>'));
continue;
 
if (template.r)
dialog.append($('<span>').text('הדביקו את הקישור כאן:').css({width: '20em'}))
.append($('<input>', {type: "text", id: 'ltw_urlinput', maxLength: 600}).css({width: '26em'}).on('paste cut drop input change', extractParamsFromURL))
.append($('<hr>'))
 
dialog
.append($('<p>').text('השדות המסומנים באדום הם חובה, השאר אופציונליים'))
.append(table)
.append($('<p>').css({height: '2em'}))
.append($('<label>').text(' הערת שוליים '))
.append($('<input>', {type: 'checkbox', id: 'ltw2_ref'}).change(updatePreview))
.append($('<label>').css({width: '12em'}).text( ' פריט ברשימה '))
.append($('<input>', {type: 'checkbox', id: 'ltw2_list'}).change(updatePreview))
.append($('<p>').css({height: '1.5em'}))
.append($('<p>', {id: 'ltw2_preview'}).css({backgroundColor: "lightGreen", fontSize: '120%', maxWidth: '40em'}));
 
 
for (var i = 0; i < (template.p || []).length; i++)
if (template.p[i].length == 0) // this allow defining an empty parameter. by use of a "pseudo field".
orderedFields.push(empty);
else
addRow(template.p[i], parseInt(i, 10) + 1, template.op && ($.inArray(i, template.op)+1));
 
for (var i in template.np)
addRow(template.np[i][1], template.np[i][0], template.np[i][2]);
 
var valIndex = 0;
while (values && values.length) {
var next = values.shift();
var pair = next.split('=');
if (pair.length > 1) {
if (isNaN(pair[0])) {
for (var named in namedFields)
if (namedFields[named][0] == $.trim(pair[0]))
namedFields[named][1].val(pair[1]);
} else {
valIndex = parseInt(pair[0], 10);
if (valIndex <= orderedFields.length)
orderedFields[valIndex - 1].val(pair[1]);
}
} else
if (valIndex < orderedFields.length)
orderedFields[valIndex++].val(pair[0]);
}
}
var row = table.insertRow(-1);
 
var cell = row.insertCell(-1);
dialog.dialog('option', 'buttons', {
cell.innerHTML = param;
'ביטול':
cell.style.maxWidth = "12em";
function() {
var field = doc.createElement("input");
dialog.dialog('close');
field.type = "text";
},
field.maxLength = 120;
'אישור':
field.style.width = "20em";
function() {
cell = row.insertCell(-1);
$("#wpTextbox1").textSelection( 'encapsulateSelection', {peri: createWikiCode(), replace: true} );
cell.appendChild(field);
dialog.dialog('close');
doc.allFields.push(field);
}
});
$('.ui-dialog-buttonpane').css({backgroundColor: '#E0E0E0'});
dialog.dialog('option', {
height: 'auto',
width: 'auto',
position: [(window.width - dialog.width()) / 2, (window.height - dialog.height()) / 2]
});
$('.ui-dialog-buttonpane').children().css({float: 'right'});
updatePreview();
}
}
form.appendChild(table);
body.appendChild(form);
body.appendChild(doc.createElement("p"));
var refCheckBox = doc.createElement('input');
refCheckBox.type = "checkbox";
var label = doc.createElement('label');
label.htmlFor = refCheckBox;
label.innerHTML =  "מיקום התבנית בתוך הערת שוליים";
body.appendChild(label);
body.appendChild(refCheckBox);
body.appendChild(doc.createElement("p"));
var button = doc.createElement("input");
button.type = "button";
button.value = "אישור";
button.father = this;
button.doc = doc;
button.popup = popup;
button.refCheckBox = refCheckBox;
button.onclick = function() {
this.father.createAndInsertLinkTemplate(this.doc.templateName, this.doc.allFields, this.refCheckBox.checked);
this.popup.close();
}
body.appendChild(button);
var button = doc.createElement("input");
button.type = "button";
button.value = "ביטול";
button.popup = popup;
button.onclick = function() {
this.popup.close();
}
body.appendChild(button);
}


function createLinkTemplatesSelections() {
function fireDialog() {
var select = document.createElement("select");
select.id = "linkTemplatesList";
select.onchange = function() {
fireLinkTemplatePopup(this.value);
this.selectedIndex = 0;
return false;
}
var fullList = knownLinkTemplates();
var names = [], hnames = [];
var re = /[a-zA-Z]/;
for (x in fullList)
if (re.test(x.charAt(0)))
names.push(x);
else
hnames.push(x);
names.sort(); hnames.sort();
var allnames = hnames.concat(names);
select.options.add(new Option("בחרו קישור להוספה", ""));
for (var i = 0; i < allnames.length; i++)
select.options.add(new Option(allnames[i], allnames[i]));
var toolbar = document.getElementById("toolbar");
if (toolbar)
toolbar.appendChild(select);
}


function fireLinkTemplatePopup(templateName) {
var killold = $('#ltw_dialog').remove(), // kill existing popup when button is pressed again.
var linkTemplates = knownLinkTemplates();
title = 'יצירת תבנית קישור',
var templateParams = linkTemplates[templateName];
dialog = $('<div>', {id: 'ltw_dialog'}).css({backgroundColor: '#E8E8E8', maxWidth: '58em'}).dialog({
if (templateParams && templateParams.constructor == Array && templateParams.length > 0)
title: title,
popupPredefinedLinkTemplate(templateName, templateParams, templateRegex(templateName));
resizable: false,
}
close: function() {$(this).remove();}
}),
fullList = templates(false),
allTemplates = [];


function fromTemplate(text) {
var regex = new RegExp('\\{\\{(' + allTemplates.join('|') + ')([^}]*)');
match = text.match(regex);
if (match) {
template = match[1];
values = match[2].split('|');
values.shift();
templateDialog(dialog, templates(template), values);
return true;
}
return false;
}




for (var i in fullList)
allTemplates.push(fullList[i].t);


if (fromTemplate($("#wpTextbox1").textSelection('getSelection')))
return;


if (wgAction == 'edit')
var selector = $('<select>', {'class': 'ltw_disposable'}).change(function() { // class in quotes - reserved word.
addOnloadHook(createLinkTemplatesSelections);
if (! this.value) return;
function knownLinkTemplates() {
dialog.dialog('option', 'title', title + ' עבור ' + this.value);
var constants = [
$(this).remove();
"",
templateDialog(dialog, templates(this.value));
"שם המחבר",
});
"כותרת  המאמר",
selector.append($('<option>', {text: 'בחרו תבנית מהרשימה'}));
"מספר (כפי שמופע בקישור)",
for (var i in allTemplates)
"מידע נוסף (למשל תאריך)",
selector.append($('<option>', {text: allTemplates[i], value: allTemplates[i]}));
"מספר הסדרה",  
dialog.append(selector);
"קידומת",
dialog.append($('<p>', {'class': 'ltw_disposable'}).text('או הדביקו כאן תבנית לעריכה:'));
"מידע נוסף (לא תאריך)",
dialog.append($('<input>', {type: 'text', maxLength: 1000, 'class': 'ltw_disposable'}).css({width: '14em'}).on('paste cut drop input change', function() {fromTemplate(this.value);}));
"ספר",
}
"פרק",
"פסוק",
"מסכת",
"דף",
"עמוד",
"משנה",
"סימן",
"סעיף",
"הלכות",
"שם",
"מספר הסדרה",
'מספר סדרת "ART"',
"כותרת הכתבה. כאשר הכתבה משתרעת על פני דפים אחדים, יש לתת לכל חלק שאחר החלק הראשון את הכותרת 'המשך'",
"תאריך כתבה, בצורה 1949/07/25 (כפי שמופיע ב-URL של הכתבה)",
"ערך חלופי לסוג הפרסום, כשהקישור הוא לפרסומת או לתמונה ולא לכתבה. אם ה-URL כולל 'EntityId=Ad' או 'EntityId=Pc', יש למלא Ad או Pc",
"שם הספר",
"קידומת סוג הכתבה",
"מזהה נושא הכתבה",
"",
"",
"",
"",
"",
"",
];
var templatesDic = {
"ynet": [1,2,3,4,5,0,],
"הארץ": [1, 2, 3, 4],
"דבר": [1,2,22,3,6,23],
'תנ"ך': [8,9,10],
"nrg": [1,2,3,4,0,19,20],
"Mooma": [18],
"בחדרי חרדים": [1,2,3,4],
"CIA factbook":["האותיות שמציינות את המדינה"],
"Google book":["מזהה - מזהה הספר באתר גוגל", 24, 1],
"HebrewBooks":[1,25,3,4],
"mynet":[1,2,3,4,0,5],
"NFC":[1,2,3,4],
"Onlife":[1,2,3,4],
"PalPost":[1,2,12,3,4],
"TheMarker":[1,2,3,4],
"ynet":[1,2,3,4,0,5,25],
"וואלה!":[1,2,3,4,0,26],
"גלובס":[1,2,3,4],
"כלכליסט":[1,2,3,4,0,19],
"נענע10":[1,2,3,4,0,26],
/*
"":[],
"":[],
"":[],
"":[],
"":[],
"":[],
"":[],
"":[],
"":[],
"":[],
"":[],
"":[],
"":[],
"":[],
"":[],
"":[],
"":[],
*/
};
for (var key in templatesDic)
for (var i in templatesDic[key])
if (typeof(templatesDic[key][i]) == "number")
templatesDic[key][i] = constants[templatesDic[key][i]];
return templatesDic;
}


function templateRegex(templateName) {
if (mw.user.options.get('usebetatoolbar')) {
var regexes = {
var depend = ['ext.wikiEditor'];
"nrg": {regex: /http:\/\/(?:www\.){0,1}nrg\.co\.il\/online\/([^\/]+)\/ART([^\/]+)\/([^\.]+).html/i, params:[6,7,3]},
mw.loader.using(depend, function() {
"בחדרי חרדים" : { regex: /http:\/\/(?:www\.){0,1}bhol\.co\.il\/Article\.aspx\?id=(\d+)/i, params:[3]},
if(typeof $.wikiEditor != 'undefined')
"Google book": { regex: /http:\/\/books\.google\.com\/books\?id=([^&]+)/i, params:[1]},
$(function() {
"NFC": {regex: /http:\/\/(?:www\.){0,1}news1\.co\.il\/Archive\/([^\.]+)\.html/i, params:[3]},
$('#wpTextbox1').wikiEditor('addToToolbar', {
"HebrewBooks": {regex: /http:\/\/(?:www\.)hebrewbooks\.org\/(\d+)/i, params:[3]},
section: 'main',
"mynet": {regex: /http:\/\/(?:www\.){0,1}mynet\.co\.il\/articles\/(\d+),7340,L-(\d+),00\.html/i, params:[6,3]},
group: 'insert',
"Onlife": {regex: /http:\/\/onlife\.co\.il\/([^\/]+)\/(.*)/i, params:[1,3]},
tools: {
"PalPost": {regex: /http:\/\/(?:www\.){0,1}jpress\.org\.il\/Default\/Scripting\/ArticleWin.asp\?From=Archive&Source=Page&Skin=TAUHe&BaseHref=PLS\/(\d{4}\/\d{1,2}\/\d{1,2})&EntityId=Ar(\d+)/i, params:[3,4]},
'linkTemplatewizard': {
"TheMarker": {regex: /http:\/\/(?:www\.){0,1}themarker\.com\/tmc\/article\.jhtml\?ElementId=([^&\/\.]+)/i, params:[3]},
label: 'תבנית קישור',
"ynet": {regex: /http:\/\/(?:www\.){0,1}ynet\.co\.il\/([^\/]+)\/(\d+),7340,L-(\d+),00.html/i, params:[7,6,3]},
filters: [ 'body.ns-subject' ],
"וואלה!": {regex: /http:\/\/(?:www\.){0,1}news\.walla\.co\.il\/?w=\/(\d+)(?:\/)(\d+)/i, params:[6,2]},
type: 'button',
"גלובס": {regex: /http:\/\/(?:www\.){0,1}globes\.co\.il\/news\/article.aspx\?did=(\d+)/i, params:[3]},
icon: '//upload.wikimedia.org/wikipedia/commons/thumb/5/5e/Gnome-web-browser.svg/22px-Gnome-web-browser.svg.png',
"כלכליסט": {regex: /http:\/\/www.calcalist\.co\.il\/local\/articles\/(\d+),7340,L-(\d+),00/i, params:[6,3]},
action: {type: 'callback', execute: fireDialog}
"נענע10": {regex: /http:\/\/([a-z]*)\.nana10\.co\.il\/Article\/\?ArticleID=(\d+)/i, params:[6,3]},
}
"Mooma": {regex: /http:\/\/(?:www\.){0,1}mooma\.mako\.co\.il\/artist\.asp\?ArtistId=(\d+)/i, params:[1]},
}
"דבר": {regex: /http:\/\/(?:www\.){0,1}jpress\.org\.il\/Default\/Scripting\/ArticleWin.asp\?.*=DAV\/(\d{4}\/\d{1,2}\/\d{1,2})&EntityId=(Ar|Ad|Pc)(\d+)/i, params:[3,6,4]},
/*
"": {regex: //i, params:[]},
});
"": {regex: //i, params:[]},
$('[rel= "linkTemplatewizard"]').css('float','left');
"": {regex: //i, params:[]},
});
"": {regex: //i, params:[]},
});
"": {regex: //i, params:[]},
"": {regex: //i, params:[]},
"": {regex: //i, params:[]},
"": {regex: //i, params:[]},
"": {regex: //i, params:[]},
*/
}
}
return regexes[templateName];
else
}
mw.loader.using('mediawiki.toolbar', function() {
$(function() {
$('div #toolbar').append( // "old style"
$('<img>', {src: '//upload.wikimedia.org/wikipedia/commons/3/34/Button_LINK_HE1.png', title: 'תבנית קישור', 'class': 'mw-toolbar-editbutton'})
.css({cursor: 'pointer'})
.click(function() {mw.loader.using('jquery.ui', fireDialog);})
);
});
});
});