Module:Inligtingskasbeeld

Oorsig wysig

Die module word gebruik binne Inligtingskasse om die beeld se parameters te verwerk en en ook die formatering van die resultaat op te ruim.

Parameters wysig

Parameter Beskrywing
beeld Vereis. Die hoofparameter wat oorgedra moet word. Dit bevat die beeld se inligting.
grootte Grootte waarin die beeld vertoon gaan word.
maks_grootte Maksimum grootte om beeld in te vertoon. Nota: Indien geen grootte verskaf is nie of verstek grootte parameter gespesifiseer is sal die beeld teen die maksimum grootte vertoon word.
grootte_verstek Die grootte om te gebruik vir die beeld indien geen grootte parameter gespesifiseer is nie. Verstek na raamloos.
alt Alternatiewe teks vir beeld
raam Indien ja, dan sal 'n raam om die beeld bygevoeg word.
onderdruk_plekhouer Indien ja, dan sal sekere beeldplekhouers onderduk word.

NOTA: Indien jy die maks_grootte of grootte_verstek parameters spesifiseer, moet jy die px na die getal invoeg.

Toepassing voorbeeld wysig

|beeld = {{#invoke:Inligitngskasbeeld|Inligtingskasbeeld|beeld={{{beeld|}}}|beeld={{{beeld_grootte|}}}|grootte_verstek=raamloos|alt={{{alt|}}}}}

Voorbeelde wysig

{{#invoke:Inligtingskasbeeld|Inligtingskasbeeld}}
{{#invoke:Inligtingskasbeeld|Inligtingskasbeeld|beeld=}}
{{#invoke:Inligtingskasbeeld|Inligtingskasbeeld|beeld=[[Beeld:Abbey Rd Studios.jpg|200px]]}}
{{#invoke:Inligtingskasbeeld|Inligtingskasbeeld|beeld=Abbey Rd Studios.jpg}}
{{#invoke:Inligtingskasbeeld|Inligtingskasbeeld|beeld=Lêer:Abbey Rd Studios.jpg}}
{{#invoke:Inligtingskasbeeld|Inligtingskasbeeld|beeld=Beeld:Abbey Rd Studios.jpg}}
{{#invoke:Inligtingskasbeeld|Inligtingskasbeeld|beeld=Abbey Rd Studios.jpg|grootte=100px}}
{{#invoke:Inligtingskasbeeld|Inligtingskasbeeld|beeld=Abbey Rd Studios.jpg|grootte=100}}
{{#invoke:Inligtingskasbeeld|Inligtingskasbeeld|beeld=Abbey Rd Studios.jpg|grootte_verstek=250px|alt=The front stairs and door of Abbey Road Studios}} The front stairs and door of Abbey Road Studios
{{#invoke:Inligtingskasbeeld|Inligtingskasbeeld|beeld=Abbey Rd Studios.jpg|alt=The front stairs and door of Abbey Road Studios}} The front stairs and door of Abbey Road Studios
{{#invoke:Inligtingskasbeeld|Inligtingskasbeeld|beeld=Abbey Rd Studios.jpg|grootte=100px|alt=The front stairs and door of Abbey Road Studios}} The front stairs and door of Abbey Road Studios
{{#invoke:Inligtingskasbeeld|Inligtingskasbeeld|beeld=Bandera de Bilbao.svg|grootte=100|raam=ja}}
{{#invoke:Inligtingskasbeeld|Inligtingskasbeeld|beeld=Replace this image male.svg|onderdruk_plekhouer=ja}} Lua-fout: bad argument #1 to 'sub' (string expected, got nil)
{{#invoke:Inligtingskasbeeld|Inligtingskasbeeld|beeld=[[Beeld:replace this image male.svg|200px]]|onderdruk_plekhouer=ja}} Lua-fout: bad argument #1 to 'sub' (string expected, got nil)
{{#invoke:Inligtingskasbeeld|Inligtingskasbeeld|beeld=Abbey Rd Studios.jpg|grootte=50px|maks_grootte=100px}}
{{#invoke:Inligtingskasbeeld|Inligtingskasbeeld|beeld=Abbey Rd Studios.jpg|grootte=200px|maks_grootte=100px}}
{{#invoke:Inligtingskasbeeld|Inligtingskasbeeld|beeld=Abbey Rd Studios.jpg|maks_grootte=100px}}

-- Invoer:
--    beeld - 'n rou lêernaam wees (met of sonder die Lêer:/Beeld: voorvoegsel) of 'n volledig gevormde beeldskakel
--    grootte - die grootte om die beeld in te vertoon
--    maks_grootte - die maksimum grootte vir die beeld
--    grootte_verstek - die verstek grootte om die beeld in te vertoon indien die grootte parameter leeg gelaat is
--    alt - alternatiewe teks vir die beeld
--    onderdruk_plekhouer - indien ja dan word nagegaan of beeld 'n plekhouer is en onderdruk dan die beeld
-- Uitvoer:
--    Geformateerde beeld.
-- Meer inligting word verskaf by "Module:Inligtingskasbeeld/doc"

local i = {};

local placeholder_image = {
    "Blue - Replace this image female.svg",
    "Blue - Replace this image male.svg",
    "Female no free image yet.png",
    "Flag of None (square).svg",
    "Flag of None.svg",
    "Flag of.svg",
    "Green - Replace this image female.svg",
    "Green - Replace this image male.svg",
    "Image is needed female.svg",
    "Image is needed male.svg",
    "Location map of None.svg",
    "Male no free image yet.png",
    "Missing flag.png",
    "No flag.svg",
    "No free portrait.svg",
    "No portrait (female).svg",
    "No portrait (male).svg",
    "Red - Replace this image female.svg",
    "Red - Replace this image male.svg",
    "Replace this image female (blue).svg",
    "Replace this image female.svg",
    "Replace this image male (blue).svg",
    "Replace this image male.svg",
    "Silver - Replace this image female.svg",
    "Silver - Replace this image male.svg",
}

function i.IsPlaceholder(beeld)
    -- change underscores to spaces
    beeld= mw.ustring.gsub(beeld, "_", " ");
    -- if image starts with [[ then remove that and anything after |
    if mw.ustring.sub(beeld,1,2) == "[[" then
        beeld = mw.ustring.sub(beeld,3);
        beeld = mw.ustring.gsub(beeld, "([^|]*)|.*", "%1");
    end
    -- Trim spaces
    beeld = mw.ustring.gsub(beeld, '^[ ]*(.-)[ ]*$', '%1');
    -- remove prefix if exists
    local allNames = mw.site.namespaces[6].aliases
    allNames[#allNames + 1] = mw.site.namespaces[6].name
    allNames[#allNames + 1] = mw.site.namespaces[6].canonicalName
    for i, name in ipairs(allNames) do
        if mw.ustring.lower(mw.ustring.sub(image, 1, mw.ustring.len(name) + 1)) == mw.ustring.lower(name .. ":") then
            image = mw.ustring.sub(image, mw.ustring.len(name) + 2);
            break
        end
    end
    -- Trim spaces
    beeld = mw.ustring.gsub(beeld, '^[ ]*(.-)[ ]*$', '%1');
    -- capitalise first letter
    beeld = mw.ustring.upper(mw.ustring.sub(beeld,1,1)) .. mw.ustring.sub(beeld,2);

    for i,j in pairs(placeholder_image) do
        if beeld == j then
            return true
        end
    end
    return false
end

function i.Inligtingskasbeeld(frame)
    local image = frame.args["beeld"];
    
    if image == "" or image == nil then
        return "";
    end
    if image == " " then
        return image;
    end
    if frame.args["onderdruk_plekhouer"] == "ja" then
        if i.IsPlaceholder(image) == true then
            return "";
        end
    end

    if mw.ustring.lower(mw.ustring.sub(image,1,5)) == "http:" then
        return "";
    end
    if mw.ustring.lower(mw.ustring.sub(image,1,6)) == "[http:" then
        return "";
    end
    if mw.ustring.lower(mw.ustring.sub(image,1,7)) == "[[http:" then
        return "";
    end
    if mw.ustring.lower(mw.ustring.sub(image,1,6)) == "https:" then
        return "";
    end
    if mw.ustring.lower(mw.ustring.sub(image,1,7)) == "[https:" then
        return "";
    end
    if mw.ustring.lower(mw.ustring.sub(image,1,8)) == "[[https:" then
        return "";
    end

    if mw.ustring.sub(image,1,2) == "[[" then
        -- search for thumbnail images and add to tracking cat if found
        if mw.title.getCurrentTitle().namespace == 0 and (mw.ustring.find(image, "|%s*thumb%s*[|%]]") or mw.ustring.find(image, "|%s*thumbnail%s*[|%]]")) then
            return image .. "[[Category:Pages using infoboxes with thumbnail images]]";
        else
            return image;
        end
    elseif mw.ustring.sub(image,1,2) == "{{" and mw.ustring.sub(image,1,3) ~= "{{{" then
        return image;
    elseif mw.ustring.sub(image,1,1) == "<" then
        return image;
    elseif mw.ustring.sub(image,1,5) == mw.ustring.char(127).."UNIQ" then
        -- Found strip marker at begining, so pass don't process at all
        return image;
    else
        local result = "";
        local size = frame.args["grootte"];
        local maxsize = frame.args["maks_grootte"];
        local sizedefault = frame.args["grootte_verstek"];
        local alt = frame.args["alt"];
        local border = frame.args["raam"];
        
        -- remove file: or image: prefix if exists
        if mw.ustring.lower(mw.ustring.sub(image,1,5)) == "lêer:" then
            image = mw.ustring.sub(image,6);
        end
        if mw.ustring.lower(mw.ustring.sub(image,1,6)) == "beeld:" then
            image = mw.ustring.sub(image,7);
        end
        
        if maxsize ~= "" and maxsize ~= nil then
            -- if no sizedefault then set to maxsize
            if sizedefault == "" or sizedefault == nil then
                sizedefault = maxsize
            end
            -- check to see if size bigger than maxsize
            if size ~= "" and size ~= nil then
                local sizenumber = tonumber(mw.ustring.match(size,"%d*")) or 0;
                local maxsizenumber = tonumber(mw.ustring.match(maxsize,"%d*"));
                if sizenumber>maxsizenumber and maxsizenumber>0 then
                    size = maxsize;
                end
            end
        end
        -- add px to size if just a number
        if (tonumber(size) or 0) > 0 then
            size = size .. "px";
        end
        
        result = "[[File:" .. image;
        if size ~= "" and size ~= nil then
            result = result .. "|" .. size;
        elseif sizedefault ~= "" and sizedefault ~= nil then
            result = result .. "|" .. sizedefault;
        else
            result = result .. "|frameless";
        end
        if alt ~= "" and alt ~= nil then
            result = result .. "|alt=" .. alt;
        end
        if border == "ja" then
            result = result .. "|border";
        end
        result = result .. "]]";
        
        return result;
    end
end

return i;