<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="he">
	<id>https://tzefunotwiki.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=2.55.30.251</id>
	<title>צפונות ויקי - תרומות המשתמש [he]</title>
	<link rel="self" type="application/atom+xml" href="https://tzefunotwiki.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=2.55.30.251"/>
	<link rel="alternate" type="text/html" href="https://tzefunotwiki.com/index.php/%D7%9E%D7%99%D7%95%D7%97%D7%93:%D7%AA%D7%A8%D7%95%D7%9E%D7%95%D7%AA/2.55.30.251"/>
	<updated>2026-08-28T11:40:38Z</updated>
	<subtitle>תרומות המשתמש</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>https://tzefunotwiki.com/index.php?title=%D7%99%D7%97%D7%99%D7%93%D7%94:%D7%AA%D7%91%D7%A0%D7%99%D7%AA_%D7%9E%D7%99%D7%93%D7%A2/%D7%90%D7%99%D7%A9%D7%99%D7%95%D7%AA&amp;diff=13750</id>
		<title>יחידה:תבנית מידע/אישיות</title>
		<link rel="alternate" type="text/html" href="https://tzefunotwiki.com/index.php?title=%D7%99%D7%97%D7%99%D7%93%D7%94:%D7%AA%D7%91%D7%A0%D7%99%D7%AA_%D7%9E%D7%99%D7%93%D7%A2/%D7%90%D7%99%D7%A9%D7%99%D7%95%D7%AA&amp;diff=13750"/>
		<updated>2019-03-25T09:27:42Z</updated>

		<summary type="html">&lt;p&gt;2.55.30.251: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local Infobox = require(&#039;Module:תבנית מידע&#039;).Infobox&lt;br /&gt;
local LocationAndCountry require(&#039;Module:LocationAndCountry&#039;)&lt;br /&gt;
local PropertyLink = require(&#039;Module:PropertyLink&#039;)&lt;br /&gt;
local ageModule = require(&#039;Module:גיל לערכי אישים&#039;)&lt;br /&gt;
local hebrewDateModule = require(&#039;Module:תאריך עברי&#039;)&lt;br /&gt;
local WikidataCrossValidation = require(&#039;Module:WikidataCrossValidation&#039;)&lt;br /&gt;
&lt;br /&gt;
--[[ Get general date if known, otherwise guess from hebrew date.&lt;br /&gt;
]]&lt;br /&gt;
function getSpeculativeDate(generalDate, hebrewDate)&lt;br /&gt;
	if generalDate == &#039;-&#039; then return nil end&lt;br /&gt;
	if generalDate~=nil and generalDate~=&#039;&#039; then return generalDate end&lt;br /&gt;
	if hebrewDate~=nil and hebrewDate~=&#039;&#039; then&lt;br /&gt;
		local success, sepcDate = pcall(hebrewDateModule.pick, mw.getCurrentFrame():newChild{ args = {hebrew=hebrewDate, world=&#039;&#039;, exact=&#039;כן&#039; } })&lt;br /&gt;
		if not success or sepcDate==&#039;&#039; then return nil end&lt;br /&gt;
		return sepcDate&lt;br /&gt;
	end&lt;br /&gt;
	return nil&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getDeathLabel(deathCause, entityId)&lt;br /&gt;
	entityId = entityId or mw.wikibase.getEntityIdForCurrentPage()&lt;br /&gt;
	if deathCause == nil and entityId ~= nil then&lt;br /&gt;
		local deathCauseWikidata = mw.wikibase.getBestStatements(entityId, &#039;P1196&#039;)&lt;br /&gt;
		deathCauseWikidata = deathCauseWikidata and deathCauseWikidata[1] and deathCauseWikidata[1].mainsnak&lt;br /&gt;
		if deathCauseWikidata then&lt;br /&gt;
			deathCause = mw.wikibase.renderSnak(deathCauseWikidata)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	local gender = PropertyLink.getPropertyByOptions( &#039;P21&#039;, entityId )&lt;br /&gt;
	&lt;br /&gt;
	if deathCause and deathCause ~= &#039;&#039; then&lt;br /&gt;
		if deathCause == &#039;נהרג&#039; or deathCause == &#039;נהרגה&#039; then&lt;br /&gt;
			return (gender==&#039;נקבה&#039; and &#039;נהרגה&#039;) or &#039;נהרג&#039;&lt;br /&gt;
		elseif deathCause == &#039;נרצח&#039; or deathCause == &#039;נרצחה&#039; or deathCause == &#039;רצח&#039; then&lt;br /&gt;
			return (gender==&#039;נקבה&#039; and &#039;נרצחה&#039;) or &#039;נרצח&#039;&lt;br /&gt;
	        elseif deathCause == &#039;התאבד&#039; or deathCause == &#039; לולהתאבדה&#039; or deathCause == &#039;התאבדות&#039; then&lt;br /&gt;
			return (gender==&#039;נקבה&#039; and &#039;התאבדה&#039;) or &#039;התאבד&#039;&lt;br /&gt;
		elseif deathCause == &#039;הוצא להורג&#039; or deathCause == &#039;הוצאה להורג&#039; or deathCause == &#039;עונש מוות&#039; then&lt;br /&gt;
			return &#039;הוצאה להורג&#039;			&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return &#039;פטירה&#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function getEventDetails(generalDate, hebDate, eventPlace, propDate, propPlace, age, usingWikidata, entityId)&lt;br /&gt;
	entityId = entityId or mw.wikibase.getEntityIdForCurrentPage()&lt;br /&gt;
	age = age or &#039;&#039;&lt;br /&gt;
	local formattedEvent&lt;br /&gt;
	if generalDate~=nil and generalDate~=&#039;&#039; then&lt;br /&gt;
		formattedEvent = generalDate .. age&lt;br /&gt;
		if hebDate~=nil and hebDate~=&#039;&#039; then &lt;br /&gt;
			formattedEvent = formattedEvent ..&#039;&amp;lt;br/&amp;gt;&#039; ..hebDate&lt;br /&gt;
		end&lt;br /&gt;
	elseif  hebDate~=nil and hebDate~=&#039;&#039; then&lt;br /&gt;
		formattedEvent = hebDate .. age&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if (eventPlace == nil or eventPlace == &#039;&#039;) and entityId then&lt;br /&gt;
		local success, res  = pcall(LocationAndCountry.displayFromParams, propPlace, entityId, propDate , 1)&lt;br /&gt;
		if success and res and #res&amp;gt;0 then&lt;br /&gt;
			usingWikidata = true&lt;br /&gt;
			eventPlace = res&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if eventPlace~=&#039;&#039; and eventPlace~=nil and eventPlace~=&#039;-&#039; then&lt;br /&gt;
		formattedEvent = formattedEvent..&#039;&amp;lt;br/&amp;gt;&#039; ..eventPlace&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if usingWikidata and entityId then&lt;br /&gt;
		formattedEvent = formattedEvent .. &#039; [[File:Blue pencil RTL.svg|15px|link=https://www.wikidata.org/wiki/&#039;..entityId.. &#039;?uselang=he#P569|עריכת הנתון בוויקינתונים]]&#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return formattedEvent, usingWikidata&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function addMissingImage(infoObj, birthDate, deathDate)&lt;br /&gt;
	if infoObj.args.image ~= nil and #infoObj.args.image &amp;gt; 0 then return end  -- there is already image &lt;br /&gt;
	local latestDate = deathDate or birthDate&lt;br /&gt;
	if latestDate == nil then return end&lt;br /&gt;
	local dateModule = require(&#039;Module:תאריך&#039;)&lt;br /&gt;
	local success, res = pcall(dateModule.parseDateRange, latestDate, &#039;raw&#039;)&lt;br /&gt;
	if success==false then return end -- there is no known VALID date&lt;br /&gt;
	local yearsEstimated = res/(60*60*24*365)&lt;br /&gt;
	if yearsEstimated&amp;gt;150 then return end &lt;br /&gt;
	&lt;br /&gt;
	if infoObj.args.entityId == nil then&lt;br /&gt;
		return false -- no wikidata entity&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local gender = PropertyLink.getPropertyByOptions( &#039;P21&#039;, infoObj.args.entityId )&lt;br /&gt;
	local frame = mw.getCurrentFrame()&lt;br /&gt;
	infoObj.args.image = frame:expandTemplate{ title = &#039;אין תמונה&#039;, args = { gender, [&#039;יישור&#039;] = &#039;center&#039; } }&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function fillWikidataParam(templateArgs, paramName, property, infoObj)&lt;br /&gt;
	local usingWikidata = false&lt;br /&gt;
	if infoObj.args.entityId == nil then&lt;br /&gt;
		return false -- no wikidata entity&lt;br /&gt;
	end&lt;br /&gt;
	if templateArgs[paramName]==nil or templateArgs[paramName]==&#039;&#039; then&lt;br /&gt;
		templateArgs[paramName] = PropertyLink.getPropertyByOptions( property, infoObj.args.entityId )&lt;br /&gt;
		if templateArgs[paramName] and #templateArgs[paramName]&amp;gt;0 then&lt;br /&gt;
			usingWikidata = true&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		local matching = WikidataCrossValidation.crossValidate(templateArgs[paramName], property, infoObj.args.entityId )&lt;br /&gt;
		if matching then&lt;br /&gt;
			table.insert(infoObj.wikidataCats, WikidataCrossValidation.maintainceCategory(matching, property))&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return usingWikidata&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function addPersonDetails(frame, infoObj)&lt;br /&gt;
	local templateArgs = frame:getParent().args&lt;br /&gt;
	local usingBirthWikidata = false&lt;br /&gt;
	local usingDeathWikidata = false&lt;br /&gt;
	local birthLabel = &#039;לידה&#039;&lt;br /&gt;
	local deathLabel = &#039;פטירה&#039; &lt;br /&gt;
	&lt;br /&gt;
	-- fill birth/death dates from wikidata is missing&lt;br /&gt;
	usingBirthWikidata = fillWikidataParam(templateArgs, &#039;תאריך לידה&#039;, &#039;P569&#039;, infoObj)&lt;br /&gt;
	usingDeathWikidata = fillWikidataParam(templateArgs, &#039;תאריך פטירה&#039;, &#039;P570&#039;, infoObj)&lt;br /&gt;
	&lt;br /&gt;
	local birthDate = getSpeculativeDate(templateArgs[&#039;תאריך לידה&#039;], templateArgs[&#039;תאריך לידה עברי&#039;])&lt;br /&gt;
	local deathDate = getSpeculativeDate(templateArgs[&#039;תאריך פטירה&#039;], templateArgs[&#039;תאריך פטירה עברי&#039;])&lt;br /&gt;
	&lt;br /&gt;
	if birthDate~=nil then&lt;br /&gt;
		local age = nil&lt;br /&gt;
		if deathDate==nil then&lt;br /&gt;
			age = ageModule.ageCalc(birthDate, nil, true, false, true) or &#039;&#039;&lt;br /&gt;
		end&lt;br /&gt;
		local birthDetails, usingBirthWikidataEvent = getEventDetails(templateArgs[&#039;תאריך לידה&#039;], templateArgs[&#039;תאריך לידה עברי&#039;], templateArgs[&#039;מקום לידה&#039;], &#039;P569&#039;, &#039;P19&#039;, age, usingBirthWikidata, infoObj.args.entityId)&lt;br /&gt;
			table.insert(infoObj.templateStructure, 1, {&lt;br /&gt;
			label=&#039;לידה&#039;,&lt;br /&gt;
			data=birthDetails&lt;br /&gt;
		})&lt;br /&gt;
		usingBirthWikidata = usingBirthWikidata or usingBirthWikidataEvent&lt;br /&gt;
	 else&lt;br /&gt;
    	if templateArgs[&#039;מקום לידה&#039;]~= &#039;-&#039; and templateArgs[&#039;מקום לידה&#039;]~= &#039;&#039; and  templateArgs[&#039;מקום לידה&#039;]~=nil and #templateArgs[&#039;מקום לידה&#039;]&amp;gt;0 then&lt;br /&gt;
			table.insert(infoObj.templateStructure, 1, {&lt;br /&gt;
	    	label=birthLabel,&lt;br /&gt;
	    	data= templateArgs[&#039;מקום לידה&#039;]&lt;br /&gt;
		}) &lt;br /&gt;
	  end&lt;br /&gt;
    end&lt;br /&gt;
	&lt;br /&gt;
	if deathDate~=nil then&lt;br /&gt;
		deathLabel = getDeathLabel(templateArgs[&#039;סיבת המוות&#039;], infoObj.args.entityId)&lt;br /&gt;
		local age =  ageModule.ageCalc(birthDate, deathDate, false, false, true) or &#039;&#039;&lt;br /&gt;
		local deathDetails, usingDeathWikidataEvent = getEventDetails(templateArgs[&#039;תאריך פטירה&#039;], templateArgs[&#039;תאריך פטירה עברי&#039;], templateArgs[&#039;מקום פטירה&#039;], &#039;P570&#039;, &#039;P20&#039;, age, usingDeathWikidata, infoObj.args.entityId)&lt;br /&gt;
			table.insert(infoObj.templateStructure, 2, {&lt;br /&gt;
			label=deathLabel,&lt;br /&gt;
			data=deathDetails&lt;br /&gt;
		})&lt;br /&gt;
		usingDeathWikidata = usingDeathWikidata or usingDeathWikidataEvent&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if infoObj.isSelfUse then&lt;br /&gt;
			table.insert(infoObj.templateStructure, 1, {&lt;br /&gt;
			label=birthLabel,&lt;br /&gt;
			data=&#039;{{{תאריך לידה}}}&amp;lt;br/&amp;gt;{{{מקום לידה}}}&#039;&lt;br /&gt;
			})&lt;br /&gt;
		table.insert(infoObj.templateStructure, 2, {&lt;br /&gt;
			label=deathLabel,&lt;br /&gt;
			data=&#039;{{{תאריך פטירה}}} &amp;lt;br/&amp;gt;{{{מקום פטירה}}}&#039;&lt;br /&gt;
			})&lt;br /&gt;
	end	&lt;br /&gt;
	&lt;br /&gt;
	if usingBirthWikidata or usingDeathWikidata then&lt;br /&gt;
		infoObj.args.usingWikidata = true&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if frame.args[&#039;כותרת0&#039;] then&lt;br /&gt;
		table.insert(infoObj.templateStructure, 1, {&lt;br /&gt;
			header=1,&lt;br /&gt;
			data=frame.args[&#039;כותרת0&#039;],&lt;br /&gt;
			rowstyle=frame.args[&#039;עיצוב-שורה0&#039;],&lt;br /&gt;
			rowclass=frame.args[&#039;מחלקה-שורה0&#039;],&lt;br /&gt;
			headerstyle=frame.args[&#039;כותרת0-עיצוב&#039;]&lt;br /&gt;
		})&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if frame.args[&#039;תמונה&#039;]~=&#039;-&#039; then&lt;br /&gt;
		addMissingImage(infoObj, birthDate, deathDate)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function infobox(frame)&lt;br /&gt;
	local infoObj = Infobox:new()&lt;br /&gt;
	frame.args[&#039;תמונה-גודל&#039;] = frame.args[&#039;תמונה-גודל&#039;]  or &#039;220&#039;&lt;br /&gt;
	infoObj:parseArgs(frame)&lt;br /&gt;
	&lt;br /&gt;
	if infoObj.args.title~=&#039;-&#039; then&lt;br /&gt;
		addPersonDetails(frame, infoObj)&lt;br /&gt;
	end&lt;br /&gt;
	return infoObj:render()&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
return 	{&lt;br /&gt;
	[&#039;מידע&#039;]=infobox,&lt;br /&gt;
	[&#039;addPersonDetails&#039;] = addPersonDetails&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>2.55.30.251</name></author>
	</entry>
</feed>