Module:GetRels: Difference between revisions

From Bodhicitta
((by SublimeText.Mediawiker))
((by SublimeText.Mediawiker))
Line 15: Line 15:
    for _, data in ipairs( pdata ) do
    for _, data in ipairs( pdata ) do
    local relatedString = ''
    local relatedString = ''
    local wikipageEnc = mw.uri.anchorEncode( data.wikipage )
    local wikipage = frame:preprocess( '{{PAGENAME:' .. data.wikipage .. '}}' )
    if wikipageEnc == pagenameEnc then
    if wikipage == pagename then
for relatedTo in string.gmatch(data.RelatedTo, "([^;]+)") do
for relatedTo in string.gmatch(data.RelatedTo, "([^;]+)") do
relatedString = relatedString .. '<div> [[' .. relatedTo .. ']]</div>'
relatedString = relatedString .. '<div> [[' .. relatedTo .. ']]</div>'

Revision as of 17:20, 3 July 2024

Documentation for this module may be created at Module:GetRels/doc

local p = {}

function p.main(frame)

	local pagename = mw.title.getCurrentTitle().subpageText
    local pagenameEnc = mw.uri.anchorEncode( pagename )
	local pdata = mw.loadData('Module:GetData/relationships')
	local pargs = frame:getParent().args
	if not pdata then
		return 'No relationships!'
	else
		local output = '<h1>Relationships</h1><table class="smwtable-clean th-top-right th-nowrap border">'

		if type(pdata) == "table" then
		    for _, data in ipairs( pdata ) do
		    	local relatedString = ''
		    	local wikipage = frame:preprocess( '{{PAGENAME:' .. data.wikipage .. '}}' )
		    	if wikipage == pagename then
					for relatedTo in string.gmatch(data.RelatedTo, "([^;]+)") do
						relatedString = relatedString .. '<div> [[' .. relatedTo .. ']]</div>'
					end
		    		output = output .. '<tr><th>' .. data.Relationship .. '</th><td><i class="fa-duotone fa-arrow-right" style="color: blue;"></i></td><td>' .. relatedString .. '</td></tr>'
		    	else
		    		output = output .. '<tr><th>' .. data.RelatedTo .. '</th><td><i class="fa-duotone fa-arrow-right" style="color: green;"></i></td><td>' .. data.Relationship .. ' <i>this work</i></td></tr>'
		    	end
		    end
		end

		output = output .. '</table>'

		return output
	end
end

return p