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