<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="he">
	<id>http://www.breslev.wiki/index.php?action=history&amp;feed=atom&amp;title=%D7%99%D7%97%D7%99%D7%93%D7%94%3ATNT</id>
	<title>יחידה:TNT - היסטוריית גרסאות</title>
	<link rel="self" type="application/atom+xml" href="http://www.breslev.wiki/index.php?action=history&amp;feed=atom&amp;title=%D7%99%D7%97%D7%99%D7%93%D7%94%3ATNT"/>
	<link rel="alternate" type="text/html" href="http://www.breslev.wiki/index.php?title=%D7%99%D7%97%D7%99%D7%93%D7%94:TNT&amp;action=history"/>
	<updated>2026-07-25T03:46:59Z</updated>
	<subtitle>היסטוריית הגרסאות של הדף הזה בוויקי</subtitle>
	<generator>MediaWiki 1.34.2</generator>
	<entry>
		<id>http://www.breslev.wiki/index.php?title=%D7%99%D7%97%D7%99%D7%93%D7%94:TNT&amp;diff=3722&amp;oldid=prev</id>
		<title>יענק'ל: יצירת דף עם התוכן &quot;-- -- ATTENTION: --    Please do NOT rename this module - it has to be identical on all wikis. --    This code is maintained at https://www.mediawiki.org/wiki/Mo...&quot;</title>
		<link rel="alternate" type="text/html" href="http://www.breslev.wiki/index.php?title=%D7%99%D7%97%D7%99%D7%93%D7%94:TNT&amp;diff=3722&amp;oldid=prev"/>
		<updated>2019-10-13T09:35:36Z</updated>

		<summary type="html">&lt;p&gt;יצירת דף עם התוכן &amp;quot;-- -- ATTENTION: --    Please do NOT rename this module - it has to be identical on all wikis. --    This code is maintained at https://www.mediawiki.org/wiki/Mo...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;דף חדש&lt;/b&gt;&lt;/p&gt;&lt;div&gt;--&lt;br /&gt;
-- ATTENTION:&lt;br /&gt;
--    Please do NOT rename this module - it has to be identical on all wikis.&lt;br /&gt;
--    This code is maintained at https://www.mediawiki.org/wiki/Module:TNT&lt;br /&gt;
--    Please do not modify it anywhere else, as it may get copied and override your changes.&lt;br /&gt;
--    Suggestions can be made at https://www.mediawiki.org/wiki/Module_talk:TNT&lt;br /&gt;
--&lt;br /&gt;
-- DESCRIPTION:&lt;br /&gt;
--    This module allows templates to use translations from the shared Datasets on Commons&lt;br /&gt;
--&lt;br /&gt;
--    The &amp;quot;msg&amp;quot; function uses a Commons dataset to translate a message&lt;br /&gt;
--    with a given key (e.g. source-table), plus optional arguments&lt;br /&gt;
--    to the wiki markup in the current content language.&lt;br /&gt;
--    Use lang=xx to set language.&lt;br /&gt;
--&lt;br /&gt;
--      {{#invoke:TNT | msg | Original/Template:Graphs.tab | source-table | param1 }}&lt;br /&gt;
--            uses https://commons.wikimedia.org/wiki/Data:Original/Template:Graphs.tab&lt;br /&gt;
--   &lt;br /&gt;
--    The &amp;quot;doc&amp;quot; function will generate the &amp;lt;templatedata&amp;gt; parameter documentation for templates.&lt;br /&gt;
--    This way all template parameters can be stored and localized in a single Commons dataset.&lt;br /&gt;
--    NOTE: &amp;quot;doc&amp;quot; assumes that all documentation is located in Data:Templatedata/* on Commons.&lt;br /&gt;
--&lt;br /&gt;
--      {{#invoke:TNT | doc | Graph:Lines }}&lt;br /&gt;
--            uses https://commons.wikimedia.org/wiki/Data:Templatedata/Graph:Lines.tab&lt;br /&gt;
--            if the current page is Template:Graph:Lines/doc&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
local i18nDataset = 'I18n/Module:TNT.tab'&lt;br /&gt;
&lt;br /&gt;
function p.msg(frame)&lt;br /&gt;
	local dataset, id&lt;br /&gt;
	local params = {}&lt;br /&gt;
	local lang = nil&lt;br /&gt;
	for k, v in pairs(frame.args) do&lt;br /&gt;
		if k == 1 then&lt;br /&gt;
			dataset = v&lt;br /&gt;
		elseif k == 2 then&lt;br /&gt;
			id = v&lt;br /&gt;
		elseif type(k) == 'number' then&lt;br /&gt;
			table.insert(params, v)&lt;br /&gt;
		elseif k == 'lang' and v ~= '_' then&lt;br /&gt;
			lang = v&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return formatMessage(dataset, id, params, lang)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Converts first parameter to a interwiki-ready link. For example, it converts&lt;br /&gt;
-- &amp;quot;Sandbox/Sample.tab&amp;quot; -&amp;gt; 'commons:Data:Sandbox/Sample.tab'&lt;br /&gt;
function p.link(frame)&lt;br /&gt;
	return link(frame.args[1])&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Given a dataset name, convert it to a title with the 'commons:data:' prefix&lt;br /&gt;
function link(dataset)&lt;br /&gt;
	dataset = 'Data:' .. (dataset or '')&lt;br /&gt;
	if mw.site.siteName == 'Wikimedia Commons' then&lt;br /&gt;
		return dataset&lt;br /&gt;
	else&lt;br /&gt;
		return 'commons:' .. dataset&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.doc(frame)&lt;br /&gt;
	dataset = 'Templatedata/' .. normalizeDataset(frame.args[1])&lt;br /&gt;
	-- TODO: add '_' parameter once lua starts reindexing properly for &amp;quot;all&amp;quot; languages&lt;br /&gt;
	local data = loadData(dataset)&lt;br /&gt;
	local names = {}&lt;br /&gt;
	for _, field in pairs(data.schema.fields) do&lt;br /&gt;
		table.insert(names, field.name)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local params = {}&lt;br /&gt;
	local paramOrder = {}&lt;br /&gt;
    for _, row in pairs(data.data) do&lt;br /&gt;
    	local newVal = {}&lt;br /&gt;
    	local name = nil&lt;br /&gt;
    	for pos, val in pairs(row) do&lt;br /&gt;
    		local columnName = names[pos]&lt;br /&gt;
    		if columnName == 'name' then&lt;br /&gt;
    			name = val&lt;br /&gt;
    		else&lt;br /&gt;
    			newVal[columnName] = val&lt;br /&gt;
    		end&lt;br /&gt;
    	end&lt;br /&gt;
    	if name then&lt;br /&gt;
    		params[name] = newVal&lt;br /&gt;
    		table.insert(paramOrder, name)&lt;br /&gt;
    	end&lt;br /&gt;
    end&lt;br /&gt;
	&lt;br /&gt;
	local templateData = {&lt;br /&gt;
		params=params,&lt;br /&gt;
		paramOrder=paramOrder,&lt;br /&gt;
		description=data.description&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	templateData = mw.text.jsonEncode(templateData)&lt;br /&gt;
&lt;br /&gt;
	return frame:extensionTag('templatedata', templateData) .. tntMessage('edit_doc', {link(dataset)})&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function formatMessage(dataset, key, params, lang)&lt;br /&gt;
    for _, row in pairs(loadData(dataset, lang).data) do&lt;br /&gt;
    	local id, msg = unpack(row)&lt;br /&gt;
    	if id == key then&lt;br /&gt;
    		local result = mw.message.newRawMessage(msg, unpack(params))&lt;br /&gt;
    		return result:plain()&lt;br /&gt;
    	end&lt;br /&gt;
    end&lt;br /&gt;
	if dataset == i18nDataset then&lt;br /&gt;
		-- Prevent cyclical calls&lt;br /&gt;
		error('Invalid message key &amp;quot;' .. key .. '&amp;quot;')&lt;br /&gt;
	else&lt;br /&gt;
		error(tntMessage('error_bad_msgkey', {key, link(dataset)}))&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function tntMessage(key, params)&lt;br /&gt;
	return formatMessage(i18nDataset, key, params)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function normalizeDataset(dataset)&lt;br /&gt;
	if not dataset or dataset == '' then&lt;br /&gt;
		error(tntMessage('error_no_dataset', {}))&lt;br /&gt;
	end&lt;br /&gt;
	if string.sub(dataset,-4) ~= '.tab' then&lt;br /&gt;
		dataset = dataset .. '.tab'&lt;br /&gt;
	end&lt;br /&gt;
	return dataset&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function loadData(dataset, lang)&lt;br /&gt;
	local data = mw.ext.data.get(dataset, lang)&lt;br /&gt;
	if data == false then&lt;br /&gt;
		if dataset == i18nDataset then&lt;br /&gt;
			-- Prevent cyclical calls&lt;br /&gt;
			error('Missing Commons dataset ' .. i18nDataset)&lt;br /&gt;
		else&lt;br /&gt;
			error(tntMessage('error_bad_dataset', {link(dataset)}))&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return data&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>יענק'ל</name></author>
		
	</entry>
</feed>