<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://rtz.tsadra.org/index.php?action=history&amp;feed=atom&amp;title=Module%3AGetData</id>
	<title>Module:GetData - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://rtz.tsadra.org/index.php?action=history&amp;feed=atom&amp;title=Module%3AGetData"/>
	<link rel="alternate" type="text/html" href="https://rtz.tsadra.org/index.php?title=Module:GetData&amp;action=history"/>
	<updated>2026-10-18T01:27:11Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://rtz.tsadra.org/index.php?title=Module:GetData&amp;diff=129987&amp;oldid=prev</id>
		<title>Jeremi: (by SublimeText.Mediawiker)</title>
		<link rel="alternate" type="text/html" href="https://rtz.tsadra.org/index.php?title=Module:GetData&amp;diff=129987&amp;oldid=prev"/>
		<updated>2024-04-08T11:13:25Z</updated>

		<summary type="html">&lt;p&gt;(by SublimeText.Mediawiker)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
function p.set(frame)&lt;br /&gt;
&lt;br /&gt;
    if not mw.smw then&lt;br /&gt;
        return &amp;quot;mw.smw module not found&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
	local pSetData = mw.loadData(&amp;#039;Module:GetData/&amp;#039;..frame.args[&amp;#039;data&amp;#039;])&lt;br /&gt;
	local parentArgs = frame:getParent().args&lt;br /&gt;
    local props = parentArgs.prop&lt;br /&gt;
    local dataStore = {}&lt;br /&gt;
&lt;br /&gt;
    for propValue in string.gmatch(props, &amp;quot;([^;]+)&amp;quot;) do&lt;br /&gt;
    	if propValue and pSetData[propValue] then &lt;br /&gt;
            table.insert(dataStore, propValue .. &amp;#039;=&amp;#039; .. pSetData[propValue])&lt;br /&gt;
            if parentArgs.sep then&lt;br /&gt;
            	table.insert(dataStore, &amp;#039;+sep=&amp;#039; .. parentArgs.sep)&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
	local dataStored = mw.smw.set( dataStore )&lt;br /&gt;
&lt;br /&gt;
    if dataStored == true then&lt;br /&gt;
        return &amp;#039;&amp;#039;&lt;br /&gt;
    else&lt;br /&gt;
        return &amp;#039;An error occurred during the storage process. Message reads &amp;#039; .. dataStored.error&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
&lt;br /&gt;
    -- bringing in property values from the appropriate set for this item&lt;br /&gt;
	local pData = mw.loadData(&amp;#039;Module:GetData/&amp;#039;..frame.args[&amp;#039;data&amp;#039;])&lt;br /&gt;
&lt;br /&gt;
    -- bringing in the arguments passed to the parent templates&lt;br /&gt;
	local parentArgs = frame:getParent().args&lt;br /&gt;
&lt;br /&gt;
    -- bringing in the properties being requested and feeding into a table&lt;br /&gt;
    local props = parentArgs.prop&lt;br /&gt;
    local propTable = {}&lt;br /&gt;
    for propValue in string.gmatch(props, &amp;quot;([^;]+)&amp;quot;) do&lt;br /&gt;
        table.insert(propTable, propValue)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- checking if a single property called actually has a value, if not return nothing&lt;br /&gt;
    if #propTable == 1 then&lt;br /&gt;
        local valueCheck = propTable[1]&lt;br /&gt;
        if pData[valueCheck] == &amp;#039;&amp;#039; or pData[valueCheck] == nil then &lt;br /&gt;
            if parentArgs.default then&lt;br /&gt;
                return parentArgs.default&lt;br /&gt;
            else&lt;br /&gt;
                return &amp;#039;&amp;#039;&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- defining our output variable&lt;br /&gt;
    local finalString = &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    -- if an intro string has been defined, adding to output string now&lt;br /&gt;
    if parentArgs.intro then&lt;br /&gt;
        for k,v in ipairs(propTable) do&lt;br /&gt;
            if pData[v] ~= &amp;quot;&amp;quot; then&lt;br /&gt;
                finalString = parentArgs.intro&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- iterating through requested properties&lt;br /&gt;
    for i,prop in pairs(propTable) do&lt;br /&gt;
        if pData[prop] then&lt;br /&gt;
&lt;br /&gt;
            -- feeding property value into a variable&lt;br /&gt;
            local pdString = pData[prop]&lt;br /&gt;
&lt;br /&gt;
            -- checing if a &amp;quot;map&amp;quot; parameter has been defined&lt;br /&gt;
            if parentArgs.map then&lt;br /&gt;
                local pdTable = {}&lt;br /&gt;
&lt;br /&gt;
                -- checking if a sep parameter has been defined and splitting values accordingly&lt;br /&gt;
                if parentArgs.sep then&lt;br /&gt;
                    local sep = parentArgs.sep&lt;br /&gt;
                    for value in string.gmatch(pdString, &amp;quot;([^&amp;quot; .. sep .. &amp;quot;]+)&amp;quot;) do&lt;br /&gt;
                        table.insert(pdTable, value)&lt;br /&gt;
                    end&lt;br /&gt;
                else&lt;br /&gt;
                    table.insert(pdTable, pdString)&lt;br /&gt;
                end&lt;br /&gt;
&lt;br /&gt;
                -- mapping each value from above&lt;br /&gt;
                local map = parentArgs.map&lt;br /&gt;
                pdString = &amp;quot;&amp;quot;&lt;br /&gt;
                for k,v in pairs(pdTable) do&lt;br /&gt;
                    if v then&lt;br /&gt;
                        mapdVal = string.gsub(map, &amp;quot;@@@&amp;quot;, v)&lt;br /&gt;
                        pdString = pdString .. mapdVal&lt;br /&gt;
                    end&lt;br /&gt;
                end&lt;br /&gt;
            end&lt;br /&gt;
&lt;br /&gt;
            -- checking if a printsep parameter has been defined and separating each mapped value accordingly&lt;br /&gt;
            if parentArgs.printsep then&lt;br /&gt;
            	finalString = finalString .. parentArgs.printsep .. frame:preprocess( pdString )&lt;br /&gt;
            	if mw.ustring.sub(finalString, 1, 1) == parentArgs.printsep then&lt;br /&gt;
					finalString = mw.ustring.sub(finalString, 2)&lt;br /&gt;
				end&lt;br /&gt;
            else&lt;br /&gt;
            	finalString = finalString .. frame:preprocess( pdString )&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- if an outro string has been defined, adding to output string now&lt;br /&gt;
    if parentArgs.outro then&lt;br /&gt;
        for k,v in ipairs(propTable) do&lt;br /&gt;
            if pData[v] ~= &amp;quot;&amp;quot; then&lt;br /&gt;
                finalString = finalString .. parentArgs.outro&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- checking if a silent flag has been added, if so and string is empty anyways, return string, otherwise, check for default parent argument and return that.&lt;br /&gt;
    if parentArgs.silent ~= &amp;quot;yes&amp;quot; then&lt;br /&gt;
    	if finalString ~= &amp;quot;&amp;quot; and finalString ~= nil then&lt;br /&gt;
	        return finalString&lt;br /&gt;
	    else&lt;br /&gt;
	    	if parentArgs.default then&lt;br /&gt;
	    		return parentArgs.default&lt;br /&gt;
	    	end&lt;br /&gt;
	    end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Jeremi</name></author>
	</entry>
</feed>