Semantic MediaWikiDit bericht verdwijnt nadat alle relevante taken zijn afgerond.

Er is één onvoltooide of openstaande taak, die nodig is om het bijwerken van Semantic MediaWiki te voltooien. Een beheerder of gebruiker met voldoende rechten kan deze uitvoeren. Dit moet worden gedaan voordat nieuwe gegevens worden toegevoegd om tegenstrijdigheden te voorkomen.

Geen bewerkingssamenvatting
Geen bewerkingssamenvatting
Regel 24: Regel 24:
local titelid = frame.args.titelid or ""
local titelid = frame.args.titelid or ""
local boekid = frame.args.boekid or ""
local boekid = frame.args.boekid or ""
 
local titelGew = "Geen titel"
local titelGew = "Geen titel"
local titelBiblio = "Geen titel"
local titelBiblio = titelGew
local labelForSort = ""
local labelForSort = titelGew
local displayTitle = "Geen titel"
local displayTitle = titelGew
local initial = "G"
local initial = "G"
local sortLabelByAuthor = ""
local sortLabelByAuthor = ""
Regel 36: Regel 36:
if titelGew ~= "" then
if titelGew ~= "" then
displayTitle = titelGew
displayTitle = titelGew
end
if titelBiblio ~= "" then
initial = mw.ustring.upper(
initial = mw.ustring.upper(
mw.ustring.sub( titelBiblio, 1, 1 )
mw.ustring.sub( titelBiblio, 1, 1 )
)
)
labelForSort = mFormatForSorting.flatten( mw.text.trim( titelBiblio ) )
end
end
labelForSort = mFormatForSorting.flatten( mw.text.trim( titelBiblio ) )
local firstAuthorNameBiblio = ""
local firstAuthorNameBiblio = ""
Regel 49: Regel 51:
end
end
sortLabelByAuthor = mTitle.createSortLabelByAuthor( titelBiblio, firstAuthorNameBiblio )
sortLabelByAuthor = mTitle.createSortLabelByAuthor( titelBiblio, firstAuthorNameBiblio )
end
end
Regel 57: Regel 58:
["Has sort label"] = labelForSort,
["Has sort label"] = labelForSort,
["Has sort label by author"] = mw.ustring.sub( sortLabelByAuthor, 1, 200 ) .. "¶",
["Has sort label by author"] = mw.ustring.sub( sortLabelByAuthor, 1, 200 ) .. "¶",
["Has initial"] = ""
["Has initial"] = initial
}
}

Versie van 28 okt 2025 15:38

Module:Class/Book contribution




example
{"Has initial":"W","Title":"De wereld in","Has sort label":"wereld in de","Title plain":"De wereld in","Has sort label by author":" - wereld in de¶"}
{"Has initial":"O","Title":"Onvoltooide engelen","Has sort label":"onvoltooide engelen","Title plain":"Onvoltooide engelen","Has sort label by author":" - onvoltooide engelen¶"}

local p = {}
local mSlot = require("Module:Slot")
local mFormatForSorting = require("Module:Format for sorting")
local mTitle = require("Module:Class/Title")
local mPerson = require("Module:Class/Person")

--[[
-->{{#slottemplates:ws-page-props |{{{TitelID|}}} | @title-props }}<!--
-->{{#vardefine:@titel|{{#caprint:@title-props[Title][TitelGew]}} }}<!--
-->{{#vardefine:@sort title|{{Strip title for sorting|{{lc:{{#caprint:@title-props[Title][TitelBiblio]}}}} }} }}<!--
-->{{DISPLAYTITLE:{{#var:@titel|Geen titel}}}}<!--

|Has publication year={{#show:{{{BoekID|}}} |?Has publication year}}
|Has publication year (date)={{#show:{{{BoekID|}}} |?Has publication year (date)}}
|Title={{#var:@titel|Geen titel}}
|Title plain={{#var:@titel|Geen titel}}
|Has sort label={{#var:@sort title}}¶
|Has sort label by author={{#show:{{{TitelID|-}}}|?Has sort label by author=|link=none}}
|Has initial={{uc:{{#sub:{{#var:@sort title}}|0|1}}}}

]]--
	
p.set = function( frame )
	local titelid = frame.args.titelid or ""
	local boekid = frame.args.boekid or ""

	local titelGew = "Geen titel"
	local titelBiblio = titelGew
	local labelForSort = titelGew
	local displayTitle = titelGew
	local initial = "G"
	local sortLabelByAuthor = ""
	if titelid ~= "" then
		titelGew = mSlot.getValueFromTemplateData( "ws-page-props", titelid, "Title", "TitelGew" )
		titelBiblio = mSlot.getValueFromTemplateData( "ws-page-props", titelid, "Title", "TitelBiblio" )
		if titelGew ~= "" then
			displayTitle = titelGew
		end
		if titelBiblio ~= "" then
			initial = mw.ustring.upper(
				mw.ustring.sub( titelBiblio, 1, 1 )
			)
			labelForSort = mFormatForSorting.flatten( mw.text.trim( titelBiblio ) )
		end
		
		local firstAuthorNameBiblio = ""
		local schrijverNrs = mSlot.getValueFromTemplateData( "ws-page-props", titelnr, "Title", "SchrijverNr" )
		if schrijverNrs ~= "" then
			--authorNames = mPerson.getAuthorNames( schrijverNrs )
			firstAuthorNameBiblio = mPerson.getFirstAuthorNameBiblio( schrijverNrs )
		end
		sortLabelByAuthor = mTitle.createSortLabelByAuthor( titelBiblio, firstAuthorNameBiblio )
	end
	
	local set = {
		["Title"] = displayTitle,
		["Title plain"] = displayTitle,
		["Has sort label"] = labelForSort,
		["Has sort label by author"] = mw.ustring.sub( sortLabelByAuthor, 1, 200 ) .. "¶",
		["Has initial"] = initial
	}
	
	local debugmode = frame.args.debugmode or "false"
	if debugmode == "true" then
		return "<pre>" .. mw.text.jsonEncode( set ) .. "</pre>"
	end
	
	local setResult = nil
	if mw.smw then
		setResult = mw.smw.set( set )
	end
	
	mw.ext.displaytitle.set( displayTitle )

end

return p