לדלג לתוכן

יחידה:תבנית מידע/אישיות: הבדלים בין גרסאות בדף

מתוך צפונות ויקי
יצירת דף עם התוכן "local Infobox = require('Module:תבנית מידע').Infobox local LocationAndCountry = require('Module:LocationAndCountry') local PropertyLink = require('Modul..."
 
מאין תקציר עריכה
שורה 1: שורה 1:
local Infobox = require('Module:תבנית מידע').Infobox
local Infobox = require('Module:תבנית מידע').Infobox
local LocationAndCountry = require('Module:LocationAndCountry')
local LocationAndCountry = require('Module:LocationAndCountry')
local PropertyLink = require('Module:LocationAndCountry')
local PropertyLink = require('Module:PropertyLink')
local ageModule = require('Module:גיל לערכי אישים')
local ageModule = require('Module:גיל לערכי אישים')


function getBirthDetails(birthDate, deathDate, birthPlace)
function getEventDetails(birthDate, deathDate, eventPlace, propDate, propPlace, isBirth, usingWikidata)
local entityId = mw.wikibase.getEntityIdForCurrentPage()
local entityId = mw.wikibase.getEntityIdForCurrentPage()
local eventDate
if isBirth then
eventDate = birthDate
if deathDate==nil then
eventDate = eventDate .. ageModule.ageCalc(birthDate, deathDate, true)
end
else
eventDate = deathDate .. ageModule.ageCalc(birthDate, deathDate)
end
if birthDate==nil or birthDate=='' then
local formattedEvent = eventDate
birthDate = ageModule.ageCalc(birthDate, deathDate, true)
if eventPlace==nil or eventPlace=='' then
-- early termination
eventPlace = LocationAndCountry.displayFromParams( propPlace, entityId, propDate , 1)
if birthDate == nil then
usingWikidata = true
return nil
end
end
end
local formattedBirth = birthDate
if birthPlace==nil or birthPlace=='' then
if eventPlace~='' and eventPlace~=nil then
birthPlace = LocationAndCountry.displayFromParams('P19', entityId, 'P569', 1)
formattedEvent = formattedEvent..'<br/>' ..eventPlace
end
end
if birthPlace~='' and birthPlace~=nil then
if usingWikidata then
formattedBirth = formattedBirth..'<br/>' ..birthPlace
formattedEvent = formattedEvent .. '[[File:Blue pencil RTL.svg|15px|link=https://www.wikidata.org/wiki/'..entityId.. '?uselang=he#P569|עריכת הנתון בוויקינתונים]]'
end
end
 
return formattedEvent
return {
label='לידה',
data=formattedBirth
}
end
end


שורה 34: שורה 37:
local infoObj = Infobox:new()
local infoObj = Infobox:new()
infoObj:parseArgs(frame)
infoObj:parseArgs(frame)
 
local usingBirthWikidata = false
local birthDetails = getBirthDetails(templateArgs['תאריך לידה'], templateArgs['תאריך פטירה'], templateArgs['מקום לידה'])
local usingDeathWikidata = false
table.insert(infoObj.templateStructure, 1, birthDetails)
if templateArgs['תאריך לידה']==nil or templateArgs['תאריך לידה']=='' then
templateArgs['תאריך לידה'] = PropertyLink.getProperty( 'P569' )
if templateArgs['תאריך לידה'] then
usingBirthWikidata = true
end
end
if templateArgs['תאריך פטירה']==nil or templateArgs['תאריך פטירה']=='' then
templateArgs['תאריך פטירה'] = PropertyLink.getProperty( 'P570' )
if templateArgs['תאריך פטירה'] then
usingDeathWikidata = true
end
end
if templateArgs['תאריך לידה']~=nil and templateArgs['תאריך לידה']~='' then
local birthDetails = getEventDetails(templateArgs['תאריך לידה'], templateArgs['תאריך פטירה'], templateArgs['מקום לידה'], 'P569', 'P19', true, usingBirthWikidata)
table.insert(infoObj.templateStructure, 1, {
label='לידה',
data=birthDetails
})
end
if templateArgs['תאריך פטירה']~=nil and templateArgs['תאריך פטירה']~='' then
local deathDetails = getEventDetails(templateArgs['תאריך לידה'], templateArgs['תאריך פטירה'], templateArgs['מקום פטירה'], 'P570', 'P20', false, usingDeathWikidata)
table.insert(infoObj.templateStructure, 2, {
label='פטירה',
data=deathDetails
})
end
--[[
--[[
TODO:
TODO:

גרסה מ־22:35, 21 באוקטובר 2017

יחידה זו מרחיבה את יחידה:תבנית מידע עבור תבניות מידע של אישים. היחידה כוללת תמיכה אוטומטית בפרמטרים האופיינים לאישים כדוגמת תאריכים ומקומות של לידה/פטירה, יחד עם ציון גיל.


local Infobox = require('Module:תבנית מידע').Infobox
local LocationAndCountry = require('Module:LocationAndCountry')
local PropertyLink = require('Module:PropertyLink')
local ageModule = require('Module:גיל לערכי אישים')

function getEventDetails(birthDate, deathDate, eventPlace, propDate, propPlace, isBirth, usingWikidata)
	local entityId = mw.wikibase.getEntityIdForCurrentPage()
	local eventDate
	if isBirth then
		eventDate = birthDate
		if deathDate==nil then
			eventDate = eventDate .. ageModule.ageCalc(birthDate, deathDate, true)
		end
	else
		eventDate = deathDate .. ageModule.ageCalc(birthDate, deathDate)
	end
	
	local formattedEvent = eventDate
	if eventPlace==nil or eventPlace=='' then
		eventPlace = LocationAndCountry.displayFromParams( propPlace, entityId, propDate , 1)
		usingWikidata = true
	end
	
	if eventPlace~='' and eventPlace~=nil then
		formattedEvent = formattedEvent..'<br/>' ..eventPlace
	end
	
	if usingWikidata then
		formattedEvent = formattedEvent .. '[[File:Blue pencil RTL.svg|15px|link=https://www.wikidata.org/wiki/'..entityId.. '?uselang=he#P569|עריכת הנתון בוויקינתונים]]'
	end
	return formattedEvent
end

function infobox(frame)
	local templateArgs = frame:getParent().args
	
	local infoObj = Infobox:new()
	infoObj:parseArgs(frame)
	local usingBirthWikidata = false
	local usingDeathWikidata = false
	if templateArgs['תאריך לידה']==nil or templateArgs['תאריך לידה']=='' then
		templateArgs['תאריך לידה'] = PropertyLink.getProperty( 'P569' )
		if templateArgs['תאריך לידה'] then
			usingBirthWikidata = true
		end
	end
	if templateArgs['תאריך פטירה']==nil or templateArgs['תאריך פטירה']=='' then
		templateArgs['תאריך פטירה'] = PropertyLink.getProperty( 'P570' )
		if templateArgs['תאריך פטירה'] then
			usingDeathWikidata = true
		end
	end
	
	if templateArgs['תאריך לידה']~=nil and templateArgs['תאריך לידה']~='' then
		local birthDetails = getEventDetails(templateArgs['תאריך לידה'], templateArgs['תאריך פטירה'], templateArgs['מקום לידה'], 'P569', 'P19', true, usingBirthWikidata)
			table.insert(infoObj.templateStructure, 1, {
			label='לידה',
			data=birthDetails
		})
	end
	
	if templateArgs['תאריך פטירה']~=nil and templateArgs['תאריך פטירה']~='' then
		local deathDetails = getEventDetails(templateArgs['תאריך לידה'], templateArgs['תאריך פטירה'], templateArgs['מקום פטירה'], 'P570', 'P20', false, usingDeathWikidata)
			table.insert(infoObj.templateStructure, 2, {
			label='פטירה',
			data=deathDetails
		})
	end
	
	--[[	
	TODO:
	table.insert(infoObj.templateStructure, 2, deathDetails(frame))
	infoObj.args.usingWikidata
	infoObj.wikidataCats
	]]
	return infoObj:render()
end


return 	{
	['מידע']=infobox
}