Module:Class/Periodical issue
{"Has initial":"R","Has sort label":"robbedoes vlaams 1939 0012¶","Title":"Robbedoes (Vlaams) 0012 (1939)","Title plain":"Robbedoes (Vlaams) 0012 (1939)"}
local p = {}
local mSlot = require("Module:Slot")
local mFormatForSorting= require("Module:Format for sorting")
--[[
-->{{#slottemplates:ws-page-props|{{{TijdschriftID|}}}|@periodical-props }}<!--
-->{{#vardefine:@label1|<i>{{#caprint:@periodical-props[Periodical][Titel]}}</i> {{{VolgNr|}}} ({{{Jaar|jaar onbekend}}}) }}<!--
-->{{#vardefine:@label2|{{#caprint:@periodical-props[Periodical][Titel]}} {{{VolgNr|}}} ({{{Jaar|jaar onbekend}}}) }}<!--
year first then issue number
-->{{#vardefine:@sort title|{{Strip title for sorting|1={{lc:{{#caprint:@periodical-props[Periodical][Titel]}}}} }} {{{Jaar|}}} {{{VolgNr|}}} }}<!--
|Title={{#var:@label1}}
|Title plain={{#var:@label2}}
|Has sort label={{#var:@sort title}}¶
|Has initial={{uc:{{#sub:{{#var:@sort title}}|0|1}}}}
-->{{DISPLAYTITLE:{{#var:@label1}}}}<!--
-->{{DEFAULTSORT:{{#var:@sort title}}}}<!--
]]--
p.set = function(frame)
local tijdschriftid = frame.args["tijdschriftid"] or nil
local volgnr = frame.args["volgnr"] or ""
local jaar = frame.args["jaar"] or ""
-- mSlot.
local set = {}
local labelforTitle = ""
local labelforTitlePlain = ""
local sortTitle = ""
if tijdschriftid ~= nil then
local periodicalTitle = mSlot.getValueFromTemplateData( "ws-page-props", tijdschriftid, "Periodical", "Titel" )
labelforTitle = "<i>" .. periodicalTitle .. "</i>" .. " " .. volgnr .. " (" .. jaar .. ")"
labelforTitlePlain = periodicalTitle .. " " .. volgnr .. " (" .. jaar .. ")"
sortTitle = mFormatForSorting.flatten( periodicalTitle ) .. " " .. jaar .. " " .. volgnr
set = {
["Title"] = labelforTitle,
["Title plain"] = labelforTitlePlain,
["Has sort label"] = sortTitle .. "¶",
["Has initial"] = mw.ustring.upper( mw.ustring.sub( sortTitle, 1, 1 ) )
}
end
local debugmode = frame.args.debugmode or "false"
if debugmode == "true" then
return "<pre>" .. mw.text.jsonEncode( set ) .. "</pre>"
end
-- #set
local setResult = nil
if mw.smw then
setResult = mw.smw.set( set )
end
if tijdschriftid == nil then return "" end
-- DISPLAYTITLE and DEFAULTSORT
mw.ext.displaytitle.set( labelforTitle )
frame:callParserFunction( 'DEFAULTSORT', { sortTitle } )
end
return p
