לדלג לתוכן
תפריט ראשי
תפריט ראשי
העברה לסרגל הצד
הסתרה
ניווט
עמוד ראשי
ברוכים הבאים
שינויים אחרונים
פורטלים
ערך אקראי
צור קשר/תרומה
קהילה
עזרה
ייעוץ
אולם דיונים
לוח מודעות
ספר אורחים
חב"דפדיה
חיפוש
חיפוש
מראה
יצירת חשבון
כניסה לחשבון
כלים אישיים
יצירת חשבון
כניסה לחשבון
דפים לעורכים שלא נכנסו לחשבון
מידע נוסף
תרומות
שיחה
עריכת הדף "
יחידה:Photo montage
"
יחידה
שיחה
English
קריאה
עריכת קוד מקור
גרסאות קודמות
כלים
כלים
העברה לסרגל הצד
הסתרה
פעולות
קריאה
עריכת קוד מקור
גרסאות קודמות
כללי
דפים המקושרים לכאן
שינויים בדפים המקושרים
דפים מיוחדים
מידע על הדף
מראה
העברה לסרגל הצד
הסתרה
אזהרה:
אינכם מחוברים לחשבון. כתובת ה־IP שלכם תוצג בפומבי אם תבצעו עריכות כלשהן. אם
תיכנסו לחשבון
או
תיצרו חשבון
, העריכות שלכם תיוחסנה לשם המשתמש שלכם ותקבלו גם יתרונות אחרים.
בדיקת אנטי־ספאם.
אין
למלא שדה זה!
-- implements [[template:photomontage]] local p = {} local function isnotempty(s) return s and s:match( '^%s*(.-)%s*$' ) ~= '' end local function photomontage( frame ) local tracking = '' local args = frame:getParent().args local size = tonumber(args['size'] or '200') or 200 local border = tonumber(args['border'] or '1') or 1 local spacing = tonumber(args['spacing'] or '1') or 1 local color = args['color'] or 'black' local color_border = args['color_border'] or 'black' local position = (args['position'] or ''):lower() local caption = args['text'] or '' local text_background = isnotempty(args['text_background']) and args['text_background'] or '#F8F8FF' local foot_montage = args['foot_montage'] or '' local lastnum = nil local rownum = nil local floatstyle = nil if( position == 'left' or position == 'right' or position == 'none') then floatstyle = 'float:' .. position tracking = tracking .. '[[Category:Pages using photo montage without center alignment|' .. position .. ']]' else floatstyle = 'margin-left: auto; margin-right: auto;' end if isnotempty(foot_montage) then local div = mw.html.create('div') div:css('font-size', '95%') :wikitext(foot_montage) foot_montage = '\n' .. tostring(div) end local lettertonumber = { a = '01', b = '02', c = '03', d = '04', e = '05', f = '06', g = '07', h = '08', i = '09', j = '10', k = '11', l = '12', m = '13', n = '14', o = '15', p = '16', q = '17', r = '18', s = '19', t = '20', u = '21', v = '22', w = '23', x = '26', y = '27', z = '28' } local letters = { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z' } -- find all the nonempty photo numbers local photos = {} local photocount = 0 for k, v in pairs( args ) do local i = tonumber(tostring(k):match( '^%s*photo([%d]+)[a-z]%s*$' ) or '0') if( i > 0 and isnotempty(v) ) then local c = lettertonumber[tostring(k):match( '^%s*photo[%d]+([a-z])%s*$' )] table.insert( photos, tonumber(i .. '.' .. c ) ) photocount = photocount + 1 end end -- sort the photo numbers table.sort(photos) -- compute the number of the photos in each row local count = {} lastnum = -1 rownum = 0 for k=1,photocount do local num = math.floor(photos[k]) if(num == lastnum) then count[rownum] = count[rownum] + 1 else rownum = rownum + 1 count[rownum] = 1 end lastnum = num end if(photocount > 0) then -- start table root = mw.html.create('div') root :css('background-color', color) :css('border-collapse', 'collapse') :css('border', border .. 'px solid ' .. color_border) :css('width', size .. 'px') :css('display', 'table') :cssText(floatstyle) local innercell = root :tag('div'):css('display', 'table-row') :tag('div'):css('display', 'table-cell') :css('border-top', 0) :css('padding', spacing .. 'px 0 0 ' .. spacing .. 'px') -- loop over the photos lastnum = -1 rownum = 0 local row for k=1,photocount do local num = math.floor(photos[k]) local c = letters[math.floor(0.5 + 100*(photos[k] - num))] if(num ~= lastnum) then rownum = rownum + 1 row = innercell :tag('div'):css('display', 'table') :css('background-color', color) :css('border-collapse', 'collapse') :tag('div'):css('display', 'table-row') end local altstr = (args['alt' .. num .. c] or '') ~= '' and '|alt=' .. args['alt' .. num .. c] or '' local image = string.format( '[[File:%s%s|%dpx]]', args['photo' .. num .. c], altstr, (size - spacing*(count[rownum] - 1))/count[rownum] ) row :tag('div'):css('display', 'table-cell') :css('border-top', 0) :css('padding', '0 ' .. spacing .. 'px ' .. spacing .. 'px ' .. '0') :wikitext(image) lastnum = num end if isnotempty(caption) then root :tag('div'):css('display', 'table-row') :tag('div'):css('display', 'table-cell') :addClass('thumbcaption') :css('background-color', text_background) :css('font-size', '95%') :wikitext(caption) end -- end table end -- if photocount < 2 then -- tracking = tracking .. '[[Category:Pages using photo montage with one or fewer images|' .. photocount ..']]' -- end return tostring(root or '') .. foot_montage .. tracking end function p.montage( frame ) return photomontage( frame ) end return p
תקציר
?
לתשומת ליבך: תרומתך לאתר חב"דפדיה תפורסם לפי תנאי הרישיון GNU Free Documentation License 1.2 (אפשר לעיין בדף
חב"דפדיה:זכויות יוצרים
לפרטים נוספים). אם אינך רוצה שעבודתך תהיה זמינה לעריכה על־ידי אחרים, שתופץ לעיני כול, ושאחרים יוכלו להעתיק ממנה תוך ציון המקור – אין לפרסם אותה פה.
כמו־כן, שמירת העריכה משמעה הבטחה שכתבת את הטקסט הזה בעצמך או העתקת אותו ממקור בנחלת הכלל (שאינו מוגבל בזכויות יוצרים) או מקור חופשי דומה.
אין לשלוח חומר מוגבל בזכויות יוצרים ללא רשות!
ביטול
עזרה בעריכה
(נפתח בחלון חדש)
הדף הבא מוכלל בדף זה:
יחידה:Photo montage/תיעוד
(
עריכה
)