<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="he">
	<id>https://text.chabadpedia.com/index.php?action=history&amp;feed=atom&amp;title=%D7%99%D7%97%D7%99%D7%93%D7%94%3ALocationAndCountry</id>
	<title>יחידה:LocationAndCountry - היסטוריית גרסאות</title>
	<link rel="self" type="application/atom+xml" href="https://text.chabadpedia.com/index.php?action=history&amp;feed=atom&amp;title=%D7%99%D7%97%D7%99%D7%93%D7%94%3ALocationAndCountry"/>
	<link rel="alternate" type="text/html" href="https://text.chabadpedia.com/index.php?title=%D7%99%D7%97%D7%99%D7%93%D7%94:LocationAndCountry&amp;action=history"/>
	<updated>2026-05-11T16:36:16Z</updated>
	<subtitle>היסטוריית הגרסאות של הדף הזה בוויקי</subtitle>
	<generator>MediaWiki 1.40.3</generator>
	<entry>
		<id>https://text.chabadpedia.com/index.php?title=%D7%99%D7%97%D7%99%D7%93%D7%94:LocationAndCountry&amp;diff=23667&amp;oldid=prev</id>
		<title>מ. רובין: גרסה אחת יובאה</title>
		<link rel="alternate" type="text/html" href="https://text.chabadpedia.com/index.php?title=%D7%99%D7%97%D7%99%D7%93%D7%94:LocationAndCountry&amp;diff=23667&amp;oldid=prev"/>
		<updated>2025-09-07T08:02:23Z</updated>

		<summary type="html">&lt;p&gt;גרסה אחת יובאה&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;he&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;→ הגרסה הקודמת&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;גרסה מ־11:02, 7 בספטמבר 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;he&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(אין הבדלים)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>מ. רובין</name></author>
	</entry>
	<entry>
		<id>https://text.chabadpedia.com/index.php?title=%D7%99%D7%97%D7%99%D7%93%D7%94:LocationAndCountry&amp;diff=23666&amp;oldid=prev</id>
		<title>ויקיטקסט&gt;Effib: משמש תבנית סופר</title>
		<link rel="alternate" type="text/html" href="https://text.chabadpedia.com/index.php?title=%D7%99%D7%97%D7%99%D7%93%D7%94:LocationAndCountry&amp;diff=23666&amp;oldid=prev"/>
		<updated>2022-05-12T10:57:55Z</updated>

		<summary type="html">&lt;p&gt;משמש תבנית סופר&lt;/p&gt;
&lt;p&gt;&lt;b&gt;דף חדש&lt;/b&gt;&lt;/p&gt;&lt;div&gt;--[[Adapted from ro:Modul:LocationAndCountry with changes:&lt;br /&gt;
* Using PropertyLink for linking format&lt;br /&gt;
* No use of external modules that exist in rowiki but have different version in hewiki such as wikidata and date modules&lt;br /&gt;
   * findLinkToItem/findDateValues/findClaimForTimestamp is local instead of wikidata module&lt;br /&gt;
* disabled capabilities:&lt;br /&gt;
	* outputReferences&lt;br /&gt;
	* offical/short name&lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
-- will display a wikidata property representing a location, followed by a comma and the name of the country, both with wikilinks&lt;br /&gt;
-- the first argument specifies the parameter to be displayed&lt;br /&gt;
-- the second argument specifies the entity ID&lt;br /&gt;
-- the third argument specifies a timestamp showing the moment in time for which the country is to be identified&lt;br /&gt;
-- the fourth argument specifies the maximum number of values to be processed (default 1)&lt;br /&gt;
-- the fifth argument specifies the separator to use when displaying multiple values&lt;br /&gt;
local getArgs = require(&amp;#039;Module:Arguments&amp;#039;).getArgs&lt;br /&gt;
local HeDateUtils = require(&amp;#039;Module:תאריך&amp;#039;)&lt;br /&gt;
local TableTools = require(&amp;#039;Module:TableTools&amp;#039;)&lt;br /&gt;
local PropertyLink = require(&amp;#039;Module:PropertyLink&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
function emptyToNil(args)&lt;br /&gt;
	local str = args[1]&lt;br /&gt;
	if str == &amp;#039;&amp;#039; then return nil end&lt;br /&gt;
	return str&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function isValueSnak(snak)&lt;br /&gt;
	return snak and snak.snaktype == &amp;#039;value&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function hasValueSnak(claim)&lt;br /&gt;
	return claim and claim.type == &amp;#039;statement&amp;#039; and isValueSnak(claim.mainsnak)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function findDateValues(propertyId, entityId)&lt;br /&gt;
	entityId = entityId or mw.wikibase.getEntityIdForCurrentPage()&lt;br /&gt;
	&lt;br /&gt;
	if entityId then&lt;br /&gt;
		local bestclaims = mw.wikibase.getBestStatements(entityId, propertyId)&lt;br /&gt;
		local bestdates = {}&lt;br /&gt;
		&lt;br /&gt;
		if bestclaims then for k, v in pairs(bestclaims) do&lt;br /&gt;
			if hasValueSnak(v) and v.mainsnak.datatype == &amp;#039;time&amp;#039; then&lt;br /&gt;
				local d = HeDateUtils.newFromWikidataValue(v.mainsnak.datavalue.value)&lt;br /&gt;
				d.claim = v&lt;br /&gt;
				table.insert(bestdates, d)&lt;br /&gt;
			elseif hasValueSnak(v) then&lt;br /&gt;
				local d = {}&lt;br /&gt;
				d.claim = v&lt;br /&gt;
				table.insert(bestdates, d)&lt;br /&gt;
			end&lt;br /&gt;
		end end&lt;br /&gt;
		return bestdates&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
local timestampComparator = function(p1, p2)&lt;br /&gt;
	if p1 and p2 then&lt;br /&gt;
		local q1 = p1.qualifiers&lt;br /&gt;
		local q2 = p2.qualifiers&lt;br /&gt;
		local d1 = nil&lt;br /&gt;
		local d2 = nil&lt;br /&gt;
		if q1 and q2 then&lt;br /&gt;
			if q1[&amp;#039;P580&amp;#039;] and q1[&amp;#039;P580&amp;#039;][1] and q1[&amp;#039;P580&amp;#039;][1].datavalue then&lt;br /&gt;
				d1 = HeDateUtils.newFromWikidataValue(q1[&amp;#039;P580&amp;#039;][1].datavalue.value)&lt;br /&gt;
			end&lt;br /&gt;
			if q2[&amp;#039;P580&amp;#039;] and q2[&amp;#039;P580&amp;#039;][1] and q2[&amp;#039;P580&amp;#039;][1].datavalue then&lt;br /&gt;
				d2 = HeDateUtils.newFromWikidataValue(q2[&amp;#039;P580&amp;#039;][1].datavalue.value)&lt;br /&gt;
			end&lt;br /&gt;
			&lt;br /&gt;
			if d1 and d2 then return not HeDateUtils.le(d2, d1, true)&lt;br /&gt;
			elseif d1 then return true&lt;br /&gt;
			elseif d2 then return false end&lt;br /&gt;
		elseif q1 then return true&lt;br /&gt;
		elseif q2 then return false&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		if p1 then return true end&lt;br /&gt;
		if p2 then return false end&lt;br /&gt;
	end&lt;br /&gt;
	return false&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function findSortedClaimsForProperty(entity, propertyId)&lt;br /&gt;
	if entity == nil then entity = mw.wikibase.getEntityIdForCurrentPage() end&lt;br /&gt;
	local rawClaims = mw.wikibase.getAllStatements(entity, propertyId)&lt;br /&gt;
	if rawClaims == nil then return {} end&lt;br /&gt;
	&lt;br /&gt;
	table.sort(rawClaims, timestampComparator)&lt;br /&gt;
	return rawClaims&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function findClaimForTimestamp(entityId, propertyId, timestamp)&lt;br /&gt;
	local propClaims = findSortedClaimsForProperty(entityId, propertyId)&lt;br /&gt;
	local bestClaims = {}&lt;br /&gt;
	local bestNoTimeClaim&lt;br /&gt;
	&lt;br /&gt;
	if propClaims then for _,eachPropClaim in ipairs(propClaims) do&lt;br /&gt;
		if hasValueSnak(eachPropClaim)&lt;br /&gt;
			and mw.wikibase.entity.claimRanks[&amp;#039;RANK_&amp;#039; .. mw.ustring.upper(eachPropClaim.rank)] &amp;gt;= mw.wikibase.entity.claimRanks.RANK_NORMAL then&lt;br /&gt;
			&lt;br /&gt;
			if eachPropClaim.mainsnak.datavalue.type ~= &amp;#039;monolingualtext&amp;#039; or eachPropClaim.mainsnak.datavalue.value.language == &amp;#039;he&amp;#039; then&lt;br /&gt;
				local before = nil&lt;br /&gt;
				local after = nil&lt;br /&gt;
				if eachPropClaim.qualifiers then&lt;br /&gt;
					if eachPropClaim.qualifiers[&amp;#039;P580&amp;#039;] and eachPropClaim.qualifiers[&amp;#039;P580&amp;#039;][1] and isValueSnak(eachPropClaim.qualifiers[&amp;#039;P580&amp;#039;][1]) then&lt;br /&gt;
						before = HeDateUtils.julianToGregorian(HeDateUtils.newFromWikidataValue(eachPropClaim.qualifiers[&amp;#039;P580&amp;#039;][1].datavalue.value))&lt;br /&gt;
						--after = GregorianDate.convertToGregorianIfInInterval(DateUtils.extractDateFromWikidataSnak(eachPropClaim.qualifiers[&amp;#039;P580&amp;#039;][1]))&lt;br /&gt;
					end&lt;br /&gt;
					if eachPropClaim.qualifiers[&amp;#039;P582&amp;#039;] and eachPropClaim.qualifiers[&amp;#039;P582&amp;#039;][1] and isValueSnak(eachPropClaim.qualifiers[&amp;#039;P582&amp;#039;][1]) then&lt;br /&gt;
						after = HeDateUtils.julianToGregorian(HeDateUtils.newFromWikidataValue(eachPropClaim.qualifiers[&amp;#039;P582&amp;#039;][1].datavalue.value))&lt;br /&gt;
						--before = GregorianDate.convertToGregorianIfInInterval(DateUtils.extractDateFromWikidataSnak(eachPropClaim.qualifiers[&amp;#039;P582&amp;#039;][1]))&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
&lt;br /&gt;
				if timestamp then&lt;br /&gt;
					if after == nil and before and not HeDateUtils.le(timestamp, before) then&lt;br /&gt;
						table.insert(bestClaims, eachPropClaim)&lt;br /&gt;
					elseif after and before and not HeDateUtils.le(timestamp, before) and HeDateUtils.le(timestamp, after)  then &lt;br /&gt;
						table.insert(bestClaims, eachPropClaim) &lt;br /&gt;
					elseif after and before == nil and HeDateUtils.le(timestamp, after) then&lt;br /&gt;
						table.insert(bestClaims, eachPropClaim) &lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
				if not bestNoTimeClaim or mw.wikibase.entity.claimRanks[&amp;#039;RANK_&amp;#039; .. mw.ustring.upper(bestNoTimeClaim.rank)] &amp;lt; mw.wikibase.entity.claimRanks[&amp;#039;RANK_&amp;#039; .. mw.ustring.upper(eachPropClaim.rank)] &lt;br /&gt;
						or (mw.wikibase.entity.claimRanks[&amp;#039;RANK_&amp;#039; .. mw.ustring.upper(bestNoTimeClaim.rank)] &amp;lt; mw.wikibase.entity.claimRanks[&amp;#039;RANK_&amp;#039; .. mw.ustring.upper(eachPropClaim.rank)] and not after) then&lt;br /&gt;
					&lt;br /&gt;
					bestNoTimeClaim = eachPropClaim&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end end&lt;br /&gt;
&lt;br /&gt;
	if #bestClaims==0 and bestNoTimeClaim then&lt;br /&gt;
		return bestNoTimeClaim&lt;br /&gt;
	end&lt;br /&gt;
	if #bestClaims==1 then&lt;br /&gt;
		return bestClaims[1]&lt;br /&gt;
	elseif (#bestClaims&amp;gt;1) and timestamp then&lt;br /&gt;
		-- disambig: return null and log it&lt;br /&gt;
		mw.log(&amp;#039;לא ניתן לשייך מיקום ליישות &amp;#039;..entityId .. &amp;#039; כיוון שקיימות מספר טענות מתאימות שנכונות ל&amp;#039;..timestamp:toString()..&amp;#039;. ניתן לציין מבחין להגדרה חד ערכית.&amp;#039;)&lt;br /&gt;
		return nil&lt;br /&gt;
	else&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function missingLabelCategory(propertyName)&lt;br /&gt;
	return &amp;#039;[[קטגוריה:ויקינתונים:ערכים_חסרי_תווית_בעברית: &amp;#039; .. (mw.wikibase.label( propertyName) or propertyName) .. &amp;#039;]][[קטגוריה:ויקינתונים:ערכים_חסרי_תווית_בעברית]]&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
p.displayFromParams = function(param, entity, timestamp, maxvalues, separator)&lt;br /&gt;
	if param == nil then return &amp;#039;&amp;#039; end&lt;br /&gt;
	local claims = nil&lt;br /&gt;
	local workingEntityId = nil&lt;br /&gt;
	local countryProperty = &amp;#039;P17&amp;#039;&lt;br /&gt;
	local administrativeUnitProperty = &amp;#039;P131&amp;#039;&lt;br /&gt;
	if type(entity) == &amp;#039;table&amp;#039; then&lt;br /&gt;
		workingEntityId = entity.id&lt;br /&gt;
		claims = entity:getBestStatements(param)&lt;br /&gt;
	else&lt;br /&gt;
		workingEntityId = entity&lt;br /&gt;
		if not workingEntityId then workingEntityId = mw.wikibase.getEntityIdForCurrentPage() end&lt;br /&gt;
		if type(entity) == &amp;#039;number&amp;#039; then workingEntityId = &amp;#039;Q&amp;#039; .. tostring(entity) end&lt;br /&gt;
		if workingEntityId == nil then return &amp;#039;&amp;#039; end&lt;br /&gt;
		claims = mw.wikibase.getBestStatements(workingEntityId, param)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local valueList = {}&lt;br /&gt;
	local valueCount = 0&lt;br /&gt;
	local missingLabel = false&lt;br /&gt;
	if claims and 0 &amp;lt; #claims then&lt;br /&gt;
		for claimIdx, actualClaim in pairs(claims) do&lt;br /&gt;
			valueCount = valueCount + 1&lt;br /&gt;
			local locationEntitiesIds = {}&lt;br /&gt;
			local locationNames = {} &lt;br /&gt;
			if actualClaim.mainsnak and actualClaim.mainsnak.snaktype == &amp;#039;value&amp;#039; and actualClaim.mainsnak.datavalue.type == &amp;#039;wikibase-entityid&amp;#039; then&lt;br /&gt;
				local locationEntityId =actualClaim.mainsnak.datavalue.value.id&lt;br /&gt;
				table.insert(locationEntitiesIds, locationEntityId)&lt;br /&gt;
				&lt;br /&gt;
				--attempt to also load administrative unit, but only if present as a qualifier&lt;br /&gt;
				local unitQualifier = actualClaim.qualifiers and actualClaim.qualifiers[administrativeUnitProperty] and actualClaim.qualifiers[administrativeUnitProperty][1]&lt;br /&gt;
				if unitQualifier and unitQualifier.snaktype == &amp;#039;value&amp;#039; then&lt;br /&gt;
					table.insert(locationEntitiesIds, unitQualifier.datavalue.value.id)&lt;br /&gt;
					locationNames[unitQualifier.datavalue.value.id] = PropertyLink.formatEntity(unitQualifier.datavalue.value.id)&lt;br /&gt;
				end&lt;br /&gt;
				&lt;br /&gt;
				-- attempt to identify country in the qualifier first, but if it&amp;#039;s not, go to the entity&lt;br /&gt;
				local countryQualifier = actualClaim.qualifiers and actualClaim.qualifiers[countryProperty] and actualClaim.qualifiers[countryProperty][1]&lt;br /&gt;
				local countryId = nil&lt;br /&gt;
				local ts = nil&lt;br /&gt;
				if countryQualifier and countryQualifier.snaktype == &amp;#039;value&amp;#039; then&lt;br /&gt;
					table.insert(locationEntitiesIds, countryQualifier.datavalue.value.id)&lt;br /&gt;
					locationNames[countryQualifier.datavalue.value.id] = PropertyLink.formatEntity(countryQualifier.datavalue.value.id)&lt;br /&gt;
				else&lt;br /&gt;
					local countryClaim = nil&lt;br /&gt;
					if timestamp then&lt;br /&gt;
						if type(timestamp) == &amp;#039;string&amp;#039; and mw.ustring.gmatch(timestamp, &amp;#039;P%d+&amp;#039;) then&lt;br /&gt;
							local wdDates = findDateValues(timestamp, workingEntityId)&lt;br /&gt;
							if wdDates and 0 &amp;lt; #wdDates then&lt;br /&gt;
								local wdDateIdx = 1&lt;br /&gt;
								while wdDateIdx &amp;lt;= #wdDates and (wdDates[wdDateIdx].claim.type ~= &amp;#039;statement&amp;#039; or wdDates[wdDateIdx].claim.mainsnak.snaktype ~= &amp;#039;value&amp;#039;) do&lt;br /&gt;
									wdDateIdx = wdDateIdx + 1&lt;br /&gt;
								end&lt;br /&gt;
								if wdDateIdx &amp;lt;= #wdDates and (wdDates[wdDateIdx].claim.type == &amp;#039;statement&amp;#039; and wdDates[wdDateIdx].claim.mainsnak.snaktype == &amp;#039;value&amp;#039;) then&lt;br /&gt;
									--wdDates[wdDateIdx] = GregorianDate.convertToGregorianIfInInterval(wdDates[wdDateIdx])&lt;br /&gt;
									wdDates[wdDateIdx] = HeDateUtils.julianToGregorian(wdDates[wdDateIdx])&lt;br /&gt;
									ts = wdDates[wdDateIdx]&lt;br /&gt;
								end&lt;br /&gt;
							end&lt;br /&gt;
						end&lt;br /&gt;
						if ts == nil and type(timestamp) == &amp;#039;string&amp;#039; then&lt;br /&gt;
							ts = HeDateUtils.parseYear(timestamp)&lt;br /&gt;
						elseif ts == nil and type(timestamp) == &amp;#039;table&amp;#039; and timestamp.year then&lt;br /&gt;
							ts = timestamp&lt;br /&gt;
						end&lt;br /&gt;
					end&lt;br /&gt;
					&lt;br /&gt;
					countryClaim = findClaimForTimestamp(locationEntityId, countryProperty, ts)&lt;br /&gt;
					if countryClaim and countryClaim.mainsnak and countryClaim.mainsnak.snaktype == &amp;#039;value&amp;#039; then&lt;br /&gt;
						countryId = countryClaim.mainsnak.datavalue.value.id&lt;br /&gt;
						table.insert(locationEntitiesIds, countryId)&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
				locationEntitiesIds = TableTools.removeDuplicates(locationEntitiesIds)&lt;br /&gt;
				local locationNamesList = {}&lt;br /&gt;
				&lt;br /&gt;
				for _,eachLocationId in ipairs(locationEntitiesIds) do&lt;br /&gt;
					local missingEntityLabel = false&lt;br /&gt;
					if not locationNames[eachLocationId] then&lt;br /&gt;
						locationNames[eachLocationId], missingEntityLabel = PropertyLink.formatEntity(eachLocationId)&lt;br /&gt;
						missingLabel = missingLabel or missingEntityLabel&lt;br /&gt;
						&lt;br /&gt;
						--[[ Disabled feature from ro wiki: show the offical name/short name in that timestamp&lt;br /&gt;
						local correspindingShortNameClaim = findClaimForTimestamp(eachLocationId, &amp;#039;P1813&amp;#039;, ts)&lt;br /&gt;
						if correspindingShortNameClaim then&lt;br /&gt;
							locationNames[eachLocationId]= correspindingShortNameClaim.mainsnak.datavalue.value.text&lt;br /&gt;
						else&lt;br /&gt;
							local correspondingOfficialNameClaim = findClaimForTimestamp(eachLocationId, &amp;#039;P1448&amp;#039;, ts)&lt;br /&gt;
							if correspondingOfficialNameClaim then &lt;br /&gt;
								locationNames[eachLocationId] = correspondingOfficialNameClaim.mainsnak.datavalue.value.text&lt;br /&gt;
							end&lt;br /&gt;
						end&lt;br /&gt;
						]]&lt;br /&gt;
					end&lt;br /&gt;
&lt;br /&gt;
					-- don&amp;#039;t show in case of missing label &lt;br /&gt;
					if not missingEntityLabel then&lt;br /&gt;
						table.insert(locationNamesList, locationNames[eachLocationId])&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
				if 0 &amp;lt; #locationNamesList then&lt;br /&gt;
					table.insert(&lt;br /&gt;
						valueList,&lt;br /&gt;
						--appendToString({&lt;br /&gt;
							emptyToNil({table.concat(locationNamesList, &amp;#039;, &amp;#039;)})&lt;br /&gt;
							-- wikidata.outputReferences(actualClaim)&lt;br /&gt;
						--})&lt;br /&gt;
					)&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end	&lt;br /&gt;
	end&lt;br /&gt;
	if #valueList == 0 then return &amp;#039;&amp;#039; end&lt;br /&gt;
	if separator == nil then separator = &amp;#039;; &amp;#039; end&lt;br /&gt;
	if maxvalues &amp;gt; #valueList then maxvalues = #valueList end&lt;br /&gt;
	if missingLabel then&lt;br /&gt;
		return table.concat(valueList, separator, 1, maxvalues) .. missingLabelCategory(param)&lt;br /&gt;
	else&lt;br /&gt;
		return table.concat(valueList, separator, 1, maxvalues)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
p.displayFromArgs = function(args)&lt;br /&gt;
	local param = nil&lt;br /&gt;
	local entity = nil&lt;br /&gt;
	local timestamp = nil&lt;br /&gt;
	local maxvalues = 1&lt;br /&gt;
	local separator = &amp;#039;; &amp;#039;&lt;br /&gt;
	if args[1] or args[&amp;#039;param&amp;#039;] then&lt;br /&gt;
		param = args[1] or args[&amp;#039;param&amp;#039;]&lt;br /&gt;
	end&lt;br /&gt;
	if args[2] or args[&amp;#039;entityId&amp;#039;] then&lt;br /&gt;
		entity = args[2] or args[&amp;#039;entityId&amp;#039;]&lt;br /&gt;
	end&lt;br /&gt;
	if args[3] or args[&amp;#039;timestamp&amp;#039;] then&lt;br /&gt;
		timestamp = args[3] or args[&amp;#039;timestamp&amp;#039;]&lt;br /&gt;
	end&lt;br /&gt;
	if args[4] or args[&amp;#039;maxvalues&amp;#039;] then&lt;br /&gt;
		maxvalues = tonumber(args[4] or args[&amp;#039;maxvalues&amp;#039;])&lt;br /&gt;
	end&lt;br /&gt;
	if args[5] or args[&amp;#039;separator&amp;#039;] then&lt;br /&gt;
		separator = args[5] or args[&amp;#039;separator&amp;#039;]&lt;br /&gt;
	end&lt;br /&gt;
	return p.displayFromParams(param, entity, timestamp, maxvalues, separator)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
p.displayFromFrame = function(frame)&lt;br /&gt;
	local args = getArgs(frame, { frameOnly = true })&lt;br /&gt;
	return p.displayFromArgs(args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
p.displayFromParentFrame = function(frame)&lt;br /&gt;
	local args = getArgs(frame, { parentOnly = true})&lt;br /&gt;
	return p.displayFromArgs(args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>ויקיטקסט&gt;Effib</name></author>
	</entry>
</feed>