Modul:ShowItem

Izvor: abcDNK
Skoči na:orijentacija, traži

Documentation for this module may be created at Modul:ShowItem/doc

local p = {} --p stands for package

function p.show(frame)
	ret = ""
	--ret = '<div style="display: none;">[[File:AbcDNKhr_large_centar_photo.jpg]]</div>'
	entity_id = nil
	if frame.args.title ~= nil and frame.args.title ~= "" then
		entity_id = mw.wikibase.getEntityIdForTitle(frame.args.title)
	elseif frame.args.id ~= nil and frame.args.id ~= "" then
		entity_id = frame.args.id
	end
	if entity_id ~= nil and mw.wikibase.isValidEntityId(entity_id) and mw.wikibase.entityExists(entity_id) then
		if frame.args.part == "first" then
			ret = ret .. '<div class="row archive-item archive-item-first-part">'
		else
			ret = ret .. '<div class="row archive-item">'
		end
		entity = mw.wikibase.getEntity(entity_id)
		
		
		args_catetory = nil
		
		if entity ~= nil and entity["claims"] ~= nil and entity["claims"]["P1"] ~= nil and 1 == 1 then
			args_catetory = entity["claims"]["P1"][1]["mainsnak"]["datavalue"]["value"]["id"]
		end

		if frame.args.part == "first" then

			ret = ret .. '<div class="col-12">'
			ret = ret .. '<div class="row align-items-center archive-filter-first-row" style="justify-content: space-between;">'
		
			active = ""
			if args_catetory == 'Q83' or args_catetory == 'Q94' or args_catetory == 'Q1332' or args_catetory == 'Q172' or args_catetory == 'Q2140' or args_catetory == 'Q235' or args_catetory == 'Q5918' or args_catetory == 'Q225' or args_catetory == 'Q2357' or args_catetory == 'Q1905' or args_catetory == 'Q82' or args_catetory == 'Q1894' or args_catetory == 'Q2008' or args_catetory == 'Q206' then
				active = ' active'
			end
			ret = ret .. '<div class="col text-center' .. active .. '" style="flex-grow: unset; white-space: nowrap;">'
			ret = ret .. '[' .. frame.args.page_url .. '?category=Q83' .. ' ' .. 'PUBLIKACIJE' .. ']'
			ret = ret .. '</div>'
			
			active = ""
			if args_catetory == 'Q2996' then
				active = ' active'
			end
			ret = ret .. '<div class="col text-center' .. active .. '" style="flex-grow: unset; white-space: nowrap;">'
			ret = ret .. '[' .. frame.args.page_url .. '?category=Q2996' .. ' ' .. 'SITNI TISAK' .. ']'
			ret = ret .. '</div>'
			
			active = ""
			if args_catetory == 'Q144' or args_catetory == 'Q143' or args_catetory == 'Q2472' then
				active = ' active'
			end
			ret = ret .. '<div class="col text-center' .. active .. '" style="flex-grow: unset; white-space: nowrap;">'
			ret = ret .. '[' .. frame.args.page_url .. '?category=Q144' .. ' ' .. 'AUDIO VIDEO' .. ']'
			ret = ret .. '</div>'
			
			active = ""
			if args_catetory == 'Q85' then
				active = ' active'
			end
			ret = ret .. '<div class="col text-center' .. active .. '" style="flex-grow: unset; white-space: nowrap;">'
			ret = ret .. '[' .. frame.args.page_url .. '?category=Q85' .. ' ' .. 'PLAKATI' .. ']'
			ret = ret .. '</div>'
			
			active = ""
			if args_catetory == 'Q10990' then
				active = ' active'
			end
			ret = ret .. '<div class="col text-center' .. active .. '" style="flex-grow: unset; white-space: nowrap;">'
			ret = ret .. '[' .. frame.args.page_url .. '?category=Q10990' .. ' ' .. 'USMENA POVIJEST' .. ']'
			ret = ret .. '</div>'
			
			active = ""
			if args_catetory == 'Q1000000' then
				active = ' active'
			end
			--ret = ret .. '<div class="col text-center' .. active .. '" style="flex-grow: unset; white-space: nowrap;">'
			--ret = ret .. '[' .. frame.args.page_url .. '?category=Q1000000' .. ' ' .. 'HEMEROTEKE' .. ']'
			--ret = ret .. '</div>'
			
			ret = ret .. '</div>'
			
			if args_catetory == 'Q83' or args_catetory == 'Q94' or args_catetory == 'Q1332' or args_catetory == 'Q172' or args_catetory == 'Q2140' or args_catetory == 'Q235' or args_catetory == 'Q5918' or args_catetory == 'Q225' or args_catetory == 'Q2357' or args_catetory == 'Q1905' or args_catetory == 'Q82' or args_catetory == 'Q1894' or args_catetory == 'Q2008' or args_catetory == 'Q206' then
				ret = ret .. '<div class="row align-items-center archive-filter-second-row">'
				ret = ret .. '<div class="col-12">'
				
				active = ""
				if args_catetory == 'Q94' then
					active = ' active'
				end
				ret = ret .. '<span class="' .. active .. '" style="white-space: nowrap;">'
				ret = ret .. '[' .. frame.args.page_url .. '?category=Q94' .. ' ' .. 'ČASOPISI' .. ']'
				ret = ret .. '</span>&nbsp;&nbsp;/&nbsp;&nbsp;'
				
				active = ""
				if args_catetory == 'Q1332' then
					active = ' active'
				end
				ret = ret .. '<span class="' .. active .. '" style="white-space: nowrap;">'
				ret = ret .. '[' .. frame.args.page_url .. '?category=Q1332' .. ' ' .. 'KNJIGE' .. ']'
				ret = ret .. '</span>&nbsp;&nbsp;/&nbsp;&nbsp;'
				
				active = ""
				if args_catetory == 'Q172' then
					active = ' active'
				end
				ret = ret .. '<span class="' .. active .. '" style="white-space: nowrap;">'
				ret = ret .. '[' .. frame.args.page_url .. '?category=Q172' .. ' ' .. 'KATALOZI' .. ']'
				ret = ret .. '</span>&nbsp;&nbsp;/&nbsp;&nbsp;'
				
				active = ""
				if args_catetory == 'Q2140' then
					active = ' active'
				end
				ret = ret .. '<span class="' .. active .. '" style="white-space: nowrap;">'
				ret = ret .. '[' .. frame.args.page_url .. '?category=Q2140' .. ' ' .. 'ISTRAŽIVANJA' .. ']'
				ret = ret .. '</span>&nbsp;&nbsp;/&nbsp;&nbsp;'
				
				active = ""
				if args_catetory == 'Q235' then
					active = ' active'
				end
				ret = ret .. '<span class="' .. active .. '" style="white-space: nowrap;">'
				ret = ret .. '[' .. frame.args.page_url .. '?category=Q235' .. ' ' .. 'OSTALE PUBLIKACIJE' .. ']'
				ret = ret .. '</span>&nbsp;&nbsp;/&nbsp;&nbsp;'
				
				active = ""
				if args_catetory == 'Q5918' then
					active = ' active'
				end
				ret = ret .. '<span class="' .. active .. '" style="white-space: nowrap;">'
				ret = ret .. '[' .. frame.args.page_url .. '?category=Q5918' .. ' ' .. 'NOVINE' .. ']'
				ret = ret .. '</span>&nbsp;&nbsp;/&nbsp;&nbsp;'
				
				active = ""
				if args_catetory == 'Q225' then
					active = ' active'
				end
				ret = ret .. '<span class="' .. active .. '" style="white-space: nowrap;">'
				ret = ret .. '[' .. frame.args.page_url .. '?category=Q225' .. ' ' .. 'ORGANIZACIJSKE PUBLIKACIJE' .. ']'
				ret = ret .. '</span>&nbsp;&nbsp;/&nbsp;&nbsp;'
				
				active = ""
				if args_catetory == 'Q2357' then
					active = ' active'
				end
				ret = ret .. '<span class="' .. active .. '" style="white-space: nowrap;">'
				ret = ret .. '[' .. frame.args.page_url .. '?category=Q2357' .. ' ' .. 'STRIPOVI' .. ']'
				ret = ret .. '</span>&nbsp;&nbsp;/&nbsp;&nbsp;'
				
				active = ""
				if args_catetory == 'Q1905' then
					active = ' active'
				end
				ret = ret .. '<span class="' .. active .. '" style="white-space: nowrap;">'
				ret = ret .. '[' .. frame.args.page_url .. '?category=Q1905' .. ' ' .. 'ZBORNICI TEKSTOVA' .. ']'
				ret = ret .. '</span>&nbsp;&nbsp;/&nbsp;&nbsp;'
				
				active = ""
				if args_catetory == 'Q82' then
					active = ' active'
				end
				ret = ret .. '<span class="' .. active .. '" style="white-space: nowrap;">'
				ret = ret .. '[' .. frame.args.page_url .. '?category=Q82' .. ' ' .. 'FANZINI' .. ']'
				ret = ret .. '</span>&nbsp;&nbsp;/&nbsp;&nbsp;'
				
				active = ""
				if args_catetory == 'Q1894' then
					active = ' active'
				end
				ret = ret .. '<span class="' .. active .. '" style="white-space: nowrap;">'
				ret = ret .. '[' .. frame.args.page_url .. '?category=Q1894' .. ' ' .. 'PRIRUČNICI' .. ']'
				ret = ret .. '</span>&nbsp;&nbsp;/&nbsp;&nbsp;'
				
				active = ""
				if args_catetory == 'Q2008' then
					active = ' active'
				end
				ret = ret .. '<span class="' .. active .. '" style="white-space: nowrap;">'
				ret = ret .. '[' .. frame.args.page_url .. '?category=Q2008' .. ' ' .. 'NEWSLETTERI' .. ']'
				ret = ret .. '</span>&nbsp;&nbsp;/&nbsp;&nbsp;'
				
				active = ""
				if args_catetory == 'Q206' then
					active = ' active'
				end
				ret = ret .. '<span class="' .. active .. '" style="white-space: nowrap;">'
				ret = ret .. '[' .. frame.args.page_url .. '?category=Q206' .. ' ' .. 'PROJEKTNE PUBLIKACIJE' .. ']'
				ret = ret .. '</span>'
				
				ret = ret .. '</div>'
				ret = ret .. '</div>'
			end
			
			if args_catetory == 'Q144' or args_catetory == 'Q143' or args_catetory == 'Q2472' then
				ret = ret .. '<div class="row align-items-center archive-filter-second-row">'
				ret = ret .. '<div class="col-12">'
				
				active = ""
				if args_catetory == 'Q143' then
					active = ' active'
				end
				ret = ret .. '<span class="' .. active .. '" style="white-space: nowrap;">'
				ret = ret .. '[' .. frame.args.page_url .. '?category=Q143' .. ' ' .. 'RADIJSKE EMISIJE' .. ']'
				ret = ret .. '</span>&nbsp;&nbsp;/&nbsp;&nbsp;'
				
				active = ""
				if args_catetory == 'Q2472' then
					active = ' active'
				end
				ret = ret .. '<span class="' .. active .. '" style="white-space: nowrap;">'
				ret = ret .. '[' .. frame.args.page_url .. '?category=Q2472' .. ' ' .. 'AUDIO' .. ']'
				ret = ret .. '</span>'
				
				ret = ret .. '</div>'
				ret = ret .. '</div>'
			end
			ret = ret .. '</div>'
		end
		
		
		
		if frame.args.part == "first" then
			ret = ret .. '<div class="offset-sm-1 col-sm-10" style="padding-top: 29px;">'
		else
			ret = ret .. '<div class="offset-sm-1 col-sm-10">'
		end
		
		if frame.args.part == "first" then
			label = entity:getLabel()
			ret = ret .. '<div class="title">'
			if label ~= nil then
				ret = ret .. label .. " (" .. entity_id .. ")"
			end
			description = entity:getDescription()
			if description ~= nil then
				ret = ret .. "<br>" .. description
			end
			ret = ret .. '</div>'
		end
		
		--[[
		ret = ret .. '<div class="row row-property">'
		
		ret = ret .. '<div class="col-3">'
		ret = ret .. '<div class="highlight-property">'
		ret = ret .. '<div class="property-name pt-4 pb-4 pl-4 pr-4">'
		ret = ret .. 'Jezik'
		ret = ret .. '</div>'
		ret = ret .. '<div class="property-value pt-4 pb-4 pl-4 pr-4">'
		ret = ret .. 'hrvatski'
		ret = ret .. '</div>'
		ret = ret .. '</div>'
		ret = ret .. '</div>'
		
		ret = ret .. '<div class="col-3">'
		ret = ret .. '<div class="highlight-property">'
		ret = ret .. '<div class="property-name pt-4 pb-4 pl-4 pr-4">'
		ret = ret .. 'Jezik'
		ret = ret .. '</div>'
		ret = ret .. '<div class="property-value pt-4 pb-4 pl-4 pr-4">'
		ret = ret .. 'hrvatski'
		ret = ret .. '</div>'
		ret = ret .. '</div>'
		ret = ret .. '</div>'
		
		ret = ret .. '<div class="col-3">'
		ret = ret .. '<div class="highlight-property">'
		ret = ret .. '<div class="property-name pt-4 pb-4 pl-4 pr-4">'
		ret = ret .. 'Jezik'
		ret = ret .. '</div>'
		ret = ret .. '<div class="property-value pt-4 pb-4 pl-4 pr-4">'
		ret = ret .. 'hrvatski'
		ret = ret .. '</div>'
		ret = ret .. '</div>'
		ret = ret .. '</div>'
		
		ret = ret .. '<div class="col-3">'
		ret = ret .. '<div class="highlight-property">'
		ret = ret .. '<div class="property-name pt-4 pb-4 pl-4 pr-4">'
		ret = ret .. 'Jezik'
		ret = ret .. '</div>'
		ret = ret .. '<div class="property-value pt-4 pb-4 pl-4 pr-4">'
		ret = ret .. 'hrvatski'
		ret = ret .. '</div>'
		ret = ret .. '</div>'
		ret = ret .. '</div>'
		
		ret = ret .. '</div>'
		
		ret = ret .. '<div class="subtitle mt-4">IZVADCI</div>'
		--]]
		
		--properties = entity:getProperties()
		properties = {}
		if frame.args.part == "first" then
			if args_catetory == 'Q10990' then
				properties = {"P36", "P16", "P81", "P83", "P21"}
			else
				properties = {"P40", "P79", "P1", "P36", "P26", "P16", "P78", "P24", "P4", "P74", "P25", "P27", "P6", "P13", "P32", "P11", "P7", "P35", "P76", "P75"}
			end
		end
		if frame.args.part == "second" then
			if args_catetory == 'Q10990' then
				properties = {"P43", "P79", "P35", "P86", "P1", "P40", "P26", "P78", "P24", "P4", "P74", "P25", "P27", "P6", "P13", "P32", "P11", "P7", "P76", "P75"}
			else
				properties = {}
			end
		end
		for _, property in pairs(properties) do
			if entity ~= nil and entity["claims"] ~= nil and entity["claims"][property] ~= nil then
				ret = ret .. '<div class="row row-property">'
				ret = ret .. '<div class="property">'
				
				wikibase_item = false;
				label = ""
				value = ""
				for _, prop_value in pairs(entity["claims"][property]) do
					if prop_value["mainsnak"] ~= nil then
						if prop_value["mainsnak"]["datatype"] == "wikibase-item" then
							if wikibase_item == false then
								wikibase_item = true
							else
								--value = value .. "<br>"
							end
							if label == "" then
								label = mw.wikibase.getLabel(property)
							end
							tmp_value = mw.wikibase.getLabel(prop_value["mainsnak"]["datavalue"]["value"]["id"])
							if tmp_value ~= nil then
								--value = value .. "<span>[[/Arhiv:Item?id=" .. prop_value["mainsnak"]["datavalue"]["value"]["id"] .. " " .. tmp_value .. "]]</span>"
								value = value .. '<span class="property-value-item">[https://abcdnk.hr/Arhiv/' .. prop_value["mainsnak"]["datavalue"]["value"]["id"] .. ' ' .. tmp_value .. ']</span>'
							end
						else
							break
						end
					end
				end
				if wikibase_item == false then
					fs = entity:formatStatements(property)
					label = fs['label']
					value = fs['value']
				end
				
				ret = ret .. '<div class="col-sm-3 property-name pt-4 pb-4 pl-4 pr-4">'
				--ret = ret .. mw.wikibase.getLabel(property) .. ": "
				--fs = entity:formatStatements(property)
				--ret = ret .. fs['label']
				ret = ret .. label
				ret = ret .. '</div>'
				ret = ret .. '<div class="col-sm-9 property-value pt-4 pb-4 pl-4 pr-4">'
				--ret = ret .. fs['value']
				--ret = ret .. string.gsub(fs['value'], "</span>, <span>", "</span><br> <span>")
				ret = ret .. value
				ret = ret .. '</div>'
				ret = ret .. '</div>'
				ret = ret .. '</div>'
			end
		end
		
		if frame.args.part == "second"  then
			if args_catetory == 'Q10990' then
				properties = {"P36", "P16", "P81", "P83", "P21", "P43", "P79", "P35", "P86", "P1", "P40", "P26", "P78", "P24", "P4", "P74", "P25", "P27", "P6", "P13", "P32", "P11", "P7", "P76", "P75"}
			else
				properties = {"P40", "P79", "P1", "P36", "P26", "P16", "P78", "P24", "P4", "P74", "P25", "P27", "P6", "P13", "P32", "P11", "P7", "P35", "P76", "P75"}
			end
			properties2 = entity:getProperties()
			for _, property in pairs(properties2) do
				found = false
				for _, property2 in pairs(properties) do
					if property == property2 then
						found = true
						break
					end
				end
				if found == false then
					if entity ~= nil and entity["claims"] ~= nil and entity["claims"][property] ~= nil then
						ret = ret .. '<div class="row row-property">'
						ret = ret .. '<div class="property">'
						
						wikibase_item = false;
						label = ""
						value = ""
						for _, prop_value in pairs(entity["claims"][property]) do
							if prop_value["mainsnak"] ~= nil then
								if prop_value["mainsnak"]["datatype"] == "wikibase-item" then
									if wikibase_item == false then
										wikibase_item = true
									else
										--value = value .. "<br>"
									end
									if label == "" then
										label = mw.wikibase.getLabel(property)
									end
									tmp_value = mw.wikibase.getLabel(prop_value["mainsnak"]["datavalue"]["value"]["id"])
									if tmp_value ~= nil then
										--value = value .. "<span>[[/Arhiv:Item?id=" .. prop_value["mainsnak"]["datavalue"]["value"]["id"] .. " " .. tmp_value .. "]]</span>"
										value = value .. '<span class="property-value-item">[https://abcdnk.hr/Arhiv/' .. prop_value["mainsnak"]["datavalue"]["value"]["id"] .. ' ' .. tmp_value .. ']</span>'
									end
								else
									break
								end
							end
						end
						if wikibase_item == false then
							fs = entity:formatStatements(property)
							label = fs['label']
							value = fs['value']
						end
						
						ret = ret .. '<div class="col-sm-3 property-name pt-4 pb-4 pl-4 pr-4">'
						--ret = ret .. mw.wikibase.getLabel(property) .. ": "
						--fs = entity:formatStatements(property)
						--ret = ret .. fs['label']
						ret = ret .. label
						ret = ret .. '</div>'
						ret = ret .. '<div class="col-sm-9 property-value pt-4 pb-4 pl-4 pr-4">'
						--ret = ret .. fs['value']
						--ret = ret .. string.gsub(fs['value'], "</span>, <span>", "</span><br> <span>")
						ret = ret .. value
						ret = ret .. '</div>'
						ret = ret .. '</div>'
						ret = ret .. '</div>'
					end
				end
			end
		end
		ret = ret .. '</div>'
		ret = ret .. '</div>'
		--ret = ret .. '<div class="row justify-content-center imgc-fluid" style="margin-top: 60px;">https://abcdnk.hr/images/4/46/Odr%C5%BEan_otvoreni_razgovor_o_sada%C5%A1njosti_i_budu%C4%87nosti_dubrova%C4%8Dke_nezavisne_kulturne_scene_1.png<div>'
	end
	return ret
end

return p