(Imported by PageSync) |
k (1 revision imported) |
(geen verschil)
|
Huidige versie van 15 mrt 2024 om 12:05
Documentatie voor deze module kan aangemaakt worden op de volgende pagina: Module:VersionHistoryItems/doc
local p = {} --p stands for package
--[[
function p.get( frame )
{{#invoke:VersionHistoryItems|get|page=..}}
* if page is empty, current page is used
* this function return an array with parameters:
* Current version description (text)
* Current version number (text)
* Current version date (text)
* versionHistory (holds subarrays with values from "version History item" multiple instance templates)
Debug console tests:
without page parameter:
=p.get(mw.getCurrentFrame():newChild{title="test"})
with page parameter (use current page):
=p.get(mw.getCurrentFrame():newChild{title="test",args={["page"]="Persoon/1"}})
with empty page parameter (use current page):
=p.get(mw.getCurrentFrame():newChild{title="test",args={["page"]=""}})
--]]
function p.get( frame )
local result = { [1] = {} } -- all results are placed inside the [1] subtable to make this work with ArrayFunctions #af_foreach, might be changed later
-- get page from frame or default to current page
local page = frame.args['page']
if page == nil or page =='' then
mw.log('page is empty, using current page')
page = mw.title.getCurrentTitle().fullText
end
mw.log('page = ' .. page)
-- get version history instances from ws-base-props slot
local baseProps = mw.slots.slotTemplates( 'ws-base-props', page )
if baseProps == nil then return mw.af.export(result) end
local versionHistory = baseProps['Base properties'][1]['Version history']
if versionHistory == nil then return mw.af.export(result) end
local versionHistoryItems = versionHistory['Version history item']
result[1]['Version history'] = versionHistoryItems
result[1]['Version history unparsed'] = versionHistory['_text']
result[1]['Current version number'] = versionHistoryItems[1]['Version number']['_text']
result[1]['Current version description'] = versionHistoryItems[1]['Version description']['_text']
result[1]['Current version date'] = versionHistoryItems[1]['Version date']['_text']
mw.log('result =')
mw.logObject(result)
return mw.af.export(result)
end
--[[
function p.processDescriptionInput(frame)
frame args used:
1 (string) description with comma's around it, like ",example dscription,"
output:
description without comma's around it, like "example description"
A somewhat complicated subst template is used (Template:Add version history item) to be able to add
a template instance to the source code without requiring an instances form that shows all of the
history items. Because of this, the description will get comma's around it that need to be filtered
out.
example use case:
{{#invoke:VersionHistoryItems|processDescriptionInput|,example dscription,}}
debug console tests:
=p.processDescriptionInput(mw.getCurrentFrame():newChild{title="Test",args={",example,,descripti,on,"}})
=p.processDescriptionInput(mw.getCurrentFrame():newChild{title="Test",args={"example description"}})
==]]
function p.processDescriptionInput(frame)
local description = frame.args[1]
if description == nil then return "" end
-- check the first and last character to see if they are comma's. If so, remove them and then return
-- the modified description string
if mw.ustring.sub(description,1,1) == "," and mw.ustring.sub(description,-1,-1) == "," then
description = mw.ustring.sub(description,2,-2)
end
return description
end
return p;