dev
Documentation icon Module documentation
[create]

The documentation for this module is missing. Click here to create it.

-- <pre>
-- infobox-related utils. it's iboxu (unlike lboxu)

local p = {}

function p.updated(frame)
    -- returns list of dates for mediawiki:pagename.* and mediawiki:pagename/*
    -- dpl-dependant
    -- format: date (code)
    -- 1: pagename: default: rootpagename; otherwise: root of {1}
    -- 2: format: #time-compatible date format; default: Y.m.d
    -- 3: uselang: language code; default: en
    -- 4: notrans: do not list translation page (i18n.json); default: false
    --5: order: dpl ordermethod; default: lastedit
    local args = frame.args
    local pagename = args['pagename'] or args[1] or args['1'] or mw.title.getCurrentTitle().rootText
    local fmt = args['format'] or args[2] or args['2'] or 'Y.m.d'
    local lang = args['uselang'] or args[3] or args['3'] or 'en'
    local trans = args['notrans'] or args[4] or args['4'] or ''
    local order = args['order'] or args[5] or args['5'] or 'lastedit'
    if #mw.text.trim(tostring(trans)) > 0 then
        trans = ''
    else
        trans = '(Custom\-)?'
    end
    pagename = mw.ustring.match(pagename, '[^/]*')-- rootpagename
    local timeq = '{{#time:' .. fmt .. '|%date%|' .. lang .. '}}'
    local dplq = '{{#dpl:suppresserrors=1|allowcachedresults=1|namespace=MediaWiki|titleregexp=^' .. trans .. pagename ..'/+{{!}}^'  .. trans .. pagename .. '\\.|ordermethod=' .. order ..'|addeditdate=1|userdateformat=Ymdhis|mode=userformat|replaceintitle=(.*?/),|format=,%DATE%{{!}}%TITLE%,\\n}}'
    local dplo = frame:preprocess(dplq)
    local ret, page, upd, pos = '', '', '', 0
    for m in mw.ustring.gmatch(mw.text.trim(dplo), '[^\n]+') do
        pos = mw.ustring.find(m, '|') or 0
        if pos < 1 then-- wrong dpl output
            return ret
        end
        upd = mw.ustring.sub(m, 0, pos - 1)
        page = mw.ustring.sub(m, pos + 1)
        ret = ret .. mw.ustring.gsub(timeq, '%%date%%', upd) .. ' (' .. page .. ')<br>'
    end
    ret = mw.ustring.gsub(ret, '(.*)<br>$', '%1')-- strip last \n\n
    return frame:preprocess(ret)
end-- updated

function p.about(frame)
    return [[iboxu
returns list of dates for mediawiki:pagename.* and mediawiki:pagename/*
dpl-dependant
format: date (code)
1: pagename: default: rootpagename; otherwise: root of {1}
2: format: #time-compatible date format; default: Y.m.d
3: uselang: language code; default: en
4: notrans: do not list translation page (i18n.json); default: false
5: order: dpl ordermethod; default: lastedit
]]
end -- about
return p