<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fi">
	<id>https://wiki.kosmikon.fi/index.php?action=history&amp;feed=atom&amp;title=Moduuli%3ATietolaatikkoKuva</id>
	<title>Moduuli:TietolaatikkoKuva - Muutoshistoria</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.kosmikon.fi/index.php?action=history&amp;feed=atom&amp;title=Moduuli%3ATietolaatikkoKuva"/>
	<link rel="alternate" type="text/html" href="https://wiki.kosmikon.fi/index.php?title=Moduuli:TietolaatikkoKuva&amp;action=history"/>
	<updated>2026-05-14T05:00:58Z</updated>
	<subtitle>Tämän sivun muutoshistoria</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://wiki.kosmikon.fi/index.php?title=Moduuli:TietolaatikkoKuva&amp;diff=9587&amp;oldid=prev</id>
		<title>Jarnon: Ak: Uusi sivu: -- Määreet: --    kuva - voi olla pelkkä tiedostonimi (ilman tai kera Tiedosto-alukkeen) tai täydellinen tiedostolinkki hakasulkeineen --    paate - vaihtoehtoinen parametri ti...</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmikon.fi/index.php?title=Moduuli:TietolaatikkoKuva&amp;diff=9587&amp;oldid=prev"/>
		<updated>2018-04-10T09:41:50Z</updated>

		<summary type="html">&lt;p&gt;Ak: Uusi sivu: -- Määreet: --    kuva - voi olla pelkkä tiedostonimi (ilman tai kera Tiedosto-alukkeen) tai täydellinen tiedostolinkki hakasulkeineen --    paate - vaihtoehtoinen parametri ti...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Uusi sivu&lt;/b&gt;&lt;/p&gt;&lt;div&gt;-- Määreet:&lt;br /&gt;
--    kuva - voi olla pelkkä tiedostonimi (ilman tai kera Tiedosto-alukkeen) tai täydellinen tiedostolinkki hakasulkeineen&lt;br /&gt;
--    paate - vaihtoehtoinen parametri tiedostopäätteelle kuten gif, jpg, jpeg, png, svg.&lt;br /&gt;
--    oletuspaate - vaihtoehtoinen parametri oletustiedostopäättteelle.&lt;br /&gt;
--    leveys - kuvan esittämisleveys&lt;br /&gt;
--    maksimileveys - kuvan suurin sallittu leveys&lt;br /&gt;
--    oletusleveys - kuvan oletusleveys jos leveys-parametrille ei määritellä arvoa&lt;br /&gt;
--    alt - kuvan alt-teksti&lt;br /&gt;
--    otsikko - kuvan otsikkoteksti&lt;br /&gt;
--    reunus - anna arvoksi kyllä jos haluat kuvaan reunuksen&lt;br /&gt;
--    keskitys - anna arvoksi kyllä jos haluat kuvan asettuvan keskitetysti&lt;br /&gt;
--    pysty - kuva pystyasennossa? (Suhteuttaa leveyden.)&lt;br /&gt;
--    piilotasijainen - anna arvoksi kyllä jos haluat sijaiskuvan piilottuvan&lt;br /&gt;
&lt;br /&gt;
-- Tuloste:&lt;br /&gt;
--    Kuvan koodi.&lt;br /&gt;
&lt;br /&gt;
local i = {};&lt;br /&gt;
&lt;br /&gt;
local sijaiskuva = {&lt;br /&gt;
    &amp;quot;Blue - Replace this image female.svg&amp;quot;,&lt;br /&gt;
    &amp;quot;Blue - Replace this image male.svg&amp;quot;,&lt;br /&gt;
    &amp;quot;Female no free image yet.png&amp;quot;,&lt;br /&gt;
    &amp;quot;Flag of None (square).svg&amp;quot;,&lt;br /&gt;
    &amp;quot;Flag of None.svg&amp;quot;,&lt;br /&gt;
    &amp;quot;Flag of.svg&amp;quot;,&lt;br /&gt;
    &amp;quot;Green - Replace this image female.svg&amp;quot;,&lt;br /&gt;
    &amp;quot;Green - Replace this image male.svg&amp;quot;,&lt;br /&gt;
    &amp;quot;Image is needed female.svg&amp;quot;,&lt;br /&gt;
    &amp;quot;Image is needed male.svg&amp;quot;,&lt;br /&gt;
    &amp;quot;Location map of None.svg&amp;quot;,&lt;br /&gt;
    &amp;quot;Male no free image yet.png&amp;quot;,&lt;br /&gt;
    &amp;quot;Missing flag.png&amp;quot;,&lt;br /&gt;
    &amp;quot;No flag.svg&amp;quot;,&lt;br /&gt;
    &amp;quot;No free portrait.svg&amp;quot;,&lt;br /&gt;
    &amp;quot;No portrait (female).svg&amp;quot;,&lt;br /&gt;
    &amp;quot;No portrait (male).svg&amp;quot;,&lt;br /&gt;
    &amp;quot;Red - Replace this image female.svg&amp;quot;,&lt;br /&gt;
    &amp;quot;Red - Replace this image male.svg&amp;quot;,&lt;br /&gt;
    &amp;quot;Replace this image female (blue).svg&amp;quot;,&lt;br /&gt;
    &amp;quot;Replace this image female.svg&amp;quot;,&lt;br /&gt;
    &amp;quot;Replace this image male (blue).svg&amp;quot;,&lt;br /&gt;
    &amp;quot;Replace this image male.svg&amp;quot;,&lt;br /&gt;
    &amp;quot;Silver - Replace this image female.svg&amp;quot;,&lt;br /&gt;
    &amp;quot;Silver - Replace this image male.svg&amp;quot;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function i.IsPlaceholder(kuva)&lt;br /&gt;
    -- vaihtaa alaviivat välilyönneiksi&lt;br /&gt;
    kuva = mw.ustring.gsub(kuva, &amp;quot;_&amp;quot;, &amp;quot; &amp;quot;);&lt;br /&gt;
    -- jos parametrin arvo alkaa [[, poistaa sulkeet ja kaiken merkin | jälkeen&lt;br /&gt;
    if mw.ustring.sub(kuva,1,2) == &amp;quot;[[&amp;quot; then&lt;br /&gt;
        kuva = mw.ustring.sub(kuva,3);&lt;br /&gt;
        kuva = mw.ustring.gsub(kuva, &amp;quot;([^|]*)|.*&amp;quot;, &amp;quot;%1&amp;quot;);&lt;br /&gt;
    end&lt;br /&gt;
    -- poistaa ylimääräiset välilyönnit&lt;br /&gt;
    kuva = mw.ustring.gsub(kuva, &amp;#039;^[ ]*(.-)[ ]*$&amp;#039;, &amp;#039;%1&amp;#039;);&lt;br /&gt;
    -- poistaa etuliitteen file: tai tiedosto: tai kuva:&lt;br /&gt;
    if mw.ustring.lower(mw.ustring.sub(kuva,1,5)) == &amp;quot;file:&amp;quot; then&lt;br /&gt;
        kuva = mw.ustring.sub(kuva,6);&lt;br /&gt;
    end&lt;br /&gt;
    if mw.ustring.lower(mw.ustring.sub(kuva,1,6)) == &amp;quot;tiedosto:&amp;quot; then&lt;br /&gt;
        kuva = mw.ustring.sub(kuva,7);&lt;br /&gt;
    end&lt;br /&gt;
    if mw.ustring.lower(mw.ustring.sub(kuva,1,8)) == &amp;quot;kuva:&amp;quot; then&lt;br /&gt;
        kuva = mw.ustring.sub(kuva,9);&lt;br /&gt;
    end&lt;br /&gt;
    -- poistaa ylimääräiset välilyönnit&lt;br /&gt;
    kuva = mw.ustring.gsub(kuva, &amp;#039;^[ ]*(.-)[ ]*$&amp;#039;, &amp;#039;%1&amp;#039;);&lt;br /&gt;
    -- ensimmäinen kirjain isolla&lt;br /&gt;
    kuva = mw.ustring.upper(mw.ustring.sub(kuva,1,1)) .. mw.ustring.sub(kuva,2);&lt;br /&gt;
&lt;br /&gt;
    for i,j in pairs(sijaiskuva) do&lt;br /&gt;
        if kuva == j then&lt;br /&gt;
            return true&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    return false&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function i.ValidateEnding (f)&lt;br /&gt;
    -- analysoi Wikipediassa sallitut kuvatiedostojen päätteet &lt;br /&gt;
    -- sivun http://commons.wikimedia.org/wiki/Commons:File_types mukaan &lt;br /&gt;
    -- poislukien tiff, koska se ei toimi kaikilla selaimilla &lt;br /&gt;
    -- xcf toimii vain MediaWikissä&lt;br /&gt;
    if f == &amp;quot;gif&amp;quot; or f == &amp;quot;jpg&amp;quot; or f == &amp;quot;jpeg&amp;quot; or f == &amp;quot;png&amp;quot; or f == &amp;quot;svg&amp;quot; then &lt;br /&gt;
        return true&lt;br /&gt;
    else return false&lt;br /&gt;
    end    &lt;br /&gt;
end    &lt;br /&gt;
&lt;br /&gt;
function i.AddEnding (kuva, paate, oletuspaate)&lt;br /&gt;
        -- testaa onko kuvan arvossa jo pääte&lt;br /&gt;
        local f = kuva:gsub(&amp;quot;^(.*)%.&amp;quot;,&amp;quot;&amp;quot;) &lt;br /&gt;
        f = mw.ustring.lower(f)  -- kirjaimet pieniksi&lt;br /&gt;
        if i.ValidateEnding(f) == true then &lt;br /&gt;
            return kuva  -- jos on pääte, palauttaa arvon sellaisenaan&lt;br /&gt;
        end&lt;br /&gt;
        -- lisää tiedostopäätteen kuvan nimeen&lt;br /&gt;
        if paate ~=&amp;quot;&amp;quot; and paate ~=nil then&lt;br /&gt;
            if i.ValidateEnding(paate) == true then &lt;br /&gt;
                kuva = kuva .. &amp;quot;.&amp;quot; .. paate&lt;br /&gt;
            end    &lt;br /&gt;
        elseif oletuspaate ~=&amp;quot;&amp;quot; and oletuspaate ~=nil then&lt;br /&gt;
            if i.ValidateEnding(oletuspaate) == true then &lt;br /&gt;
                kuva = kuva .. &amp;quot;.&amp;quot; .. oletuspaate&lt;br /&gt;
            end    &lt;br /&gt;
        end  &lt;br /&gt;
        return kuva&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function i.TietolaatikkoKuva(frame)&lt;br /&gt;
    local kuva = frame.args[&amp;quot;kuva&amp;quot;];&lt;br /&gt;
    &lt;br /&gt;
    if kuva == &amp;quot;&amp;quot; or kuva == nil then&lt;br /&gt;
        return &amp;quot;&amp;quot;;&lt;br /&gt;
    end&lt;br /&gt;
    if kuva == &amp;quot;&amp;amp;nbsp;&amp;quot; then&lt;br /&gt;
        return kuva;&lt;br /&gt;
    end    &lt;br /&gt;
    if frame.args[&amp;quot;piilotasijainen&amp;quot;] == &amp;quot;kyllä&amp;quot; then&lt;br /&gt;
        if i.IsPlaceholder(kuva) == true then&lt;br /&gt;
            return &amp;quot;&amp;quot;;&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if mw.ustring.lower(mw.ustring.sub(kuva,1,5)) == &amp;quot;http:&amp;quot; then&lt;br /&gt;
        return &amp;quot;&amp;quot;;&lt;br /&gt;
    end&lt;br /&gt;
    if mw.ustring.lower(mw.ustring.sub(kuva,1,6)) == &amp;quot;[http:&amp;quot; then&lt;br /&gt;
        return &amp;quot;&amp;quot;;&lt;br /&gt;
    end&lt;br /&gt;
    if mw.ustring.lower(mw.ustring.sub(kuva,1,7)) == &amp;quot;[[http:&amp;quot; then&lt;br /&gt;
        return &amp;quot;&amp;quot;;&lt;br /&gt;
    end&lt;br /&gt;
    if mw.ustring.lower(mw.ustring.sub(kuva,1,6)) == &amp;quot;https:&amp;quot; then&lt;br /&gt;
        return &amp;quot;&amp;quot;;&lt;br /&gt;
    end&lt;br /&gt;
    if mw.ustring.lower(mw.ustring.sub(kuva,1,7)) == &amp;quot;[https:&amp;quot; then&lt;br /&gt;
        return &amp;quot;&amp;quot;;&lt;br /&gt;
    end&lt;br /&gt;
    if mw.ustring.lower(mw.ustring.sub(kuva,1,8)) == &amp;quot;[[https:&amp;quot; then&lt;br /&gt;
        return &amp;quot;&amp;quot;;&lt;br /&gt;
    end&lt;br /&gt;
    if mw.ustring.sub(kuva,1,2) == &amp;quot;[[&amp;quot; then&lt;br /&gt;
    -- etsii pienoiskuvaa (thumbnail) and add to tracking cat if found&lt;br /&gt;
        if mw.title.getCurrentTitle().namespace == 0 and (mw.ustring.find(kuva, &amp;quot;|%s*thumb%s*[|%]]&amp;quot;) or mw.ustring.find(kuva, &amp;quot;|%s*thumbnail%s*[|%]]&amp;quot;) or mw.ustring.find(kuva, &amp;quot;|%s*eta%s*[|%]]&amp;quot;)) then&lt;br /&gt;
            return kuva .. &amp;quot;[[Luokka:Pages using infoboxes with thumbnail images]]&amp;quot;;&lt;br /&gt;
        else&lt;br /&gt;
            return kuva;&lt;br /&gt;
        end&lt;br /&gt;
    elseif mw.ustring.sub(kuva,1,2) == &amp;quot;{{&amp;quot; and mw.ustring.sub(kuva,1,3) ~= &amp;quot;{{{&amp;quot; then&lt;br /&gt;
        return kuva;&lt;br /&gt;
    elseif mw.ustring.sub(kuva,1,1) == &amp;quot;&amp;lt;&amp;quot; then&lt;br /&gt;
        return kuva;&lt;br /&gt;
    elseif mw.ustring.sub(kuva,1,5) == mw.ustring.char(127)..&amp;quot;UNIQ&amp;quot; then&lt;br /&gt;
        -- jos alussa strip marker, ohittaa ja palauttaa annetun arvon sellaisenaan&lt;br /&gt;
        return kuva;        &lt;br /&gt;
    else&lt;br /&gt;
        local result = &amp;quot;&amp;quot;;&lt;br /&gt;
        local paate = frame.args[&amp;quot;paate&amp;quot;];&lt;br /&gt;
        local oletuspaate = frame.args[&amp;quot;oletuspaate&amp;quot;];&lt;br /&gt;
        local leveys = frame.args[&amp;quot;leveys&amp;quot;];&lt;br /&gt;
        local maksimileveys = frame.args[&amp;quot;maksimileveys&amp;quot;];        &lt;br /&gt;
        local oletusleveys = frame.args[&amp;quot;oletusleveys&amp;quot;];&lt;br /&gt;
        local alt = frame.args[&amp;quot;alt&amp;quot;];&lt;br /&gt;
        local otsikko = frame.args[&amp;quot;otsikko&amp;quot;];&lt;br /&gt;
        local reunus = frame.args[&amp;quot;reunus&amp;quot;];&lt;br /&gt;
        local pysty = frame.args[&amp;quot;pysty&amp;quot;] or &amp;quot;&amp;quot;;&lt;br /&gt;
        local keskitys = frame.args[&amp;quot;keskitys&amp;quot;]&lt;br /&gt;
        &lt;br /&gt;
        -- poistaa alukkeen file: tai tiedosto: or kuva:&lt;br /&gt;
        if mw.ustring.lower(mw.ustring.sub(kuva,1,5)) == &amp;quot;file:&amp;quot; then&lt;br /&gt;
            kuva = mw.ustring.sub(kuva,6);&lt;br /&gt;
        end&lt;br /&gt;
        if mw.ustring.lower(mw.ustring.sub(kuva,1,6)) == &amp;quot;tiedosto:&amp;quot; then&lt;br /&gt;
            kuva = mw.ustring.sub(kuva,7);&lt;br /&gt;
        end&lt;br /&gt;
        if mw.ustring.lower(mw.ustring.sub(kuva,1,8)) == &amp;quot;kuva:&amp;quot; then&lt;br /&gt;
            kuva = mw.ustring.sub(kuva,9);&lt;br /&gt;
        end        &lt;br /&gt;
&lt;br /&gt;
        if maksimileveys ~= &amp;quot;&amp;quot; and maksimileveys ~= nil then&lt;br /&gt;
            -- jos ei oletusleveysa, aseta kuvan leveys maksimileveyson&lt;br /&gt;
            if oletusleveys == &amp;quot;&amp;quot; or oletusleveys == nil then&lt;br /&gt;
                oletusleveys = maksimileveys&lt;br /&gt;
            end&lt;br /&gt;
            -- tarkista onko leveys suurempi kuin maksimileveys&lt;br /&gt;
            if leveys ~= &amp;quot;&amp;quot; and leveys ~= nil then&lt;br /&gt;
                local sizenumber = tonumber(mw.ustring.match(leveys,&amp;quot;%d*&amp;quot;)) or 0;&lt;br /&gt;
                local maxsizenumber = tonumber(mw.ustring.match(maksimileveys,&amp;quot;%d*&amp;quot;));&lt;br /&gt;
                if sizenumber&amp;gt;maxsizenumber and maxsizenumber&amp;gt;0 then&lt;br /&gt;
                    leveys = maksimileveys;&lt;br /&gt;
                end&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
        -- lisää leveysmääreeseen &amp;quot;px&amp;quot; jos puuttuu&lt;br /&gt;
        if (tonumber(leveys) or 0) &amp;gt; 0 then&lt;br /&gt;
            leveys = leveys .. &amp;quot;px&amp;quot;;&lt;br /&gt;
        end&lt;br /&gt;
        kuva = i.AddEnding (kuva,paate,oletuspaate)&lt;br /&gt;
        &lt;br /&gt;
        result = &amp;quot;[[Tiedosto:&amp;quot; .. kuva;&lt;br /&gt;
        if leveys ~= &amp;quot;&amp;quot; and leveys ~= nil then&lt;br /&gt;
            result = result .. &amp;quot;|&amp;quot; .. leveys;&lt;br /&gt;
        elseif oletusleveys ~= &amp;quot;&amp;quot; and oletusleveys ~= nil then&lt;br /&gt;
            result = result .. &amp;quot;|&amp;quot; .. oletusleveys;&lt;br /&gt;
        else&lt;br /&gt;
            result = result .. &amp;quot;|frameless&amp;quot;;&lt;br /&gt;
        end&lt;br /&gt;
        if keskitys == &amp;quot;kyllä&amp;quot; then&lt;br /&gt;
            result = result .. &amp;quot;|center&amp;quot;&lt;br /&gt;
        end&lt;br /&gt;
        if alt ~= &amp;quot;&amp;quot; and alt ~= nil then&lt;br /&gt;
            result = result .. &amp;quot;|alt=&amp;quot; .. alt;&lt;br /&gt;
        end&lt;br /&gt;
        if reunus == &amp;quot;kyllä&amp;quot; then&lt;br /&gt;
            result = result .. &amp;quot;|border&amp;quot;;&lt;br /&gt;
        end&lt;br /&gt;
        if pysty ~= &amp;quot;&amp;quot; then&lt;br /&gt;
            result = result .. &amp;quot;|upright=&amp;quot; .. upright;&lt;br /&gt;
        end    &lt;br /&gt;
        if otsikko ~= &amp;quot;&amp;quot; and otsikko ~= nil then&lt;br /&gt;
            result = result .. &amp;quot;|&amp;quot; .. otsikko;&lt;br /&gt;
        elseif alt ~= &amp;quot;&amp;quot; and alt ~= nil then&lt;br /&gt;
            result = result .. &amp;quot;|&amp;quot; .. alt;&lt;br /&gt;
        end          &lt;br /&gt;
        result = result .. &amp;quot;]]&amp;quot;;&lt;br /&gt;
        &lt;br /&gt;
        return result;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return i;&lt;/div&gt;</summary>
		<author><name>Jarnon</name></author>
	</entry>
</feed>