Jump to content

Module:InfoboxImage: Difference between revisions

pc>Rob Kam
m 1 revision imported
 
Peoplesconcord (talk | contribs)
m 1 revision imported
Tags: Mobile edit Mobile web edit
 
(2 intermediate revisions by 2 users not shown)
Line 12: Line 12:
--    suppressplaceholder - if yes then checks to see if image is a placeholder and suppresses it
--    suppressplaceholder - if yes then checks to see if image is a placeholder and suppresses it
--    link - page to visit when clicking on image
--    link - page to visit when clicking on image
--    class - HTML classes to add to the image
-- Outputs:
-- Outputs:
--    Formatted image.
--    Formatted image.
Line 21: Line 22:
     "Blue - Replace this image female.svg",
     "Blue - Replace this image female.svg",
     "Blue - Replace this image male.svg",
     "Blue - Replace this image male.svg",
    "Female no free image yet.png",
     "Flag of None (square).svg",
     "Flag of None (square).svg",
     "Flag of None.svg",
     "Flag of None.svg",
Line 38: Line 38:
     "Red - Replace this image female.svg",
     "Red - Replace this image female.svg",
     "Red - Replace this image male.svg",
     "Red - Replace this image male.svg",
    "Replace this image female (blue).svg",
     "Replace this image female.svg",
     "Replace this image female.svg",
     "Replace this image male (blue).svg",
     "Replace this image male (blue).svg",
Line 88: Line 87:
"Project Trains no image.png",
"Project Trains no image.png",
"Image-request.png",
"Image-request.png",
"Noimage.gif",
}
}
local categories = {
url_image_links = "[[Category:Pages using infoboxes with URL in image parameter]]",
thumbnail_images = "[[Category:Pages using infoboxes with thumbnail images]]",
}
local function trackable()
local ns = mw.title.getCurrentTitle().nsText:lower()
return not (ns == 'user' or ns == 'user talk')
end


function i.IsPlaceholder(image)
function i.IsPlaceholder(image)
Line 124: Line 134:
     end
     end
     return false
     return false
end
local function isempty(x)
    return (not x) or x == ""
end
end


Line 129: Line 143:
     local image = frame.args["image"];
     local image = frame.args["image"];
      
      
     if image == "" or image == nil then
     if isempty(image) then
         return "";
         return "";
     end
     end
Line 140: Line 154:
         end
         end
     end
     end
 
      
     if mw.ustring.lower(mw.ustring.sub(image,1,5)) == "http:" then
     if string.find(image, "^%[*https?:") then
        return "";
-- Error category.
    end
return trackable() and categories.url_image_links or ""
     if mw.ustring.lower(mw.ustring.sub(image,1,6)) == "[http:" then
end
        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
     if mw.ustring.sub(image,1,2) == "[[" then
         -- search for thumbnail images and add to tracking cat if found
         -- search for thumbnail images and add to tracking cat if found
        local cat = "";
         if mw.title.getCurrentTitle().namespace == 0 and (mw.ustring.find(image, "|%s*thumb%s*[|%]]") or mw.ustring.find(image, "|%s*thumbnail%s*[|%]]")) then
         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]]";
             cat = trackable() and categories.thumbnail_images or ""
        elseif mw.title.getCurrentTitle().namespace == 0 then
            return image .. "[[Category:Pages using deprecated image syntax]]";
        else
            return image;
         end
         end
        return image .. cat;
     elseif mw.ustring.sub(image,1,2) == "{{" and mw.ustring.sub(image,1,3) ~= "{{{" then
     elseif mw.ustring.sub(image,1,2) == "{{" and mw.ustring.sub(image,1,3) ~= "{{{" then
         return image;
         return image;
     elseif mw.ustring.sub(image,1,1) == "<" then
     elseif mw.ustring.sub(image,1,1) == "<" then
         return image;
         return image;
     elseif mw.ustring.sub(image,1,5) == mw.ustring.char(127).."UNIQ" then
     elseif mw.ustring.sub(image,1,8) == mw.ustring.char(127).."'\"`UNIQ" then
        -- Found strip marker at begining, so pass don't process at all
        return image;
    elseif mw.ustring.sub(image,4,9) == "`UNIQ-" then
         -- Found strip marker at begining, so pass don't process at all
         -- Found strip marker at begining, so pass don't process at all
         return image;
         return image;
Line 182: Line 177:
         local result = "";
         local result = "";
         local page = frame.args["page"];
         local page = frame.args["page"];
        local upright = frame.args["upright"] or ""
         local size = frame.args["size"];
         local size = frame.args["size"];
         local maxsize = frame.args["maxsize"];
         local maxsize = frame.args["maxsize"];
Line 189: Line 185:
         local title = frame.args["title"];
         local title = frame.args["title"];
         local border = frame.args["border"];
         local border = frame.args["border"];
        local upright = frame.args["upright"] or "";
         local thumbtime = frame.args["thumbtime"] or "";
         local thumbtime = frame.args["thumbtime"] or "";
         local center= frame.args["center"];
         local center = frame.args["center"];
        local class = frame.args["class"];
          
          
         -- remove prefix if exists
         -- remove prefix if exists
Line 204: Line 200:
         end
         end
          
          
         if maxsize ~= "" and maxsize ~= nil then
         if not isempty(maxsize) then
             -- if no sizedefault then set to maxsize
             -- if no sizedefault nor upright, then set to maxsize
             if sizedefault == "" or sizedefault == nil then
             if isempty(sizedefault) and isempty(upright) then
                 sizedefault = maxsize
                 sizedefault = maxsize
             end
             end
             -- check to see if size bigger than maxsize
             -- check to see if size bigger than maxsize
             if size ~= "" and size ~= nil then
             local maxsizenumber = tonumber(mw.ustring.match(maxsize,"%d*")) or 0;
            if not isempty(size) then
                 local sizenumber = tonumber(mw.ustring.match(size,"%d*")) or 0;
                 local sizenumber = tonumber(mw.ustring.match(size,"%d*")) or 0;
                local maxsizenumber = tonumber(mw.ustring.match(maxsize,"%d*")) or 0;
                 if sizenumber > maxsizenumber and maxsizenumber > 0 then
                 if sizenumber>maxsizenumber and maxsizenumber>0 then
                     size = maxsize;
                     size = maxsize;
                end
            end
            -- check to see if upright bigger than maxsize (at default preferred size)
            if not isempty(upright) then
                local uprightnumber = tonumber(upright) or (upright == "yes" and 0.75) or 0
                if uprightnumber*220 > maxsizenumber and maxsizenumber > 0 then
                    upright = tostring(maxsizenumber/220)
                 end
                 end
             end
             end
Line 228: Line 231:
          
          
         result = "[[File:" .. image;
         result = "[[File:" .. image;
         if page ~= "" and page ~= nil then
         if not isempty(page) then
             result = result .. "|page=" .. page;
             result = result .. "|page=" .. page;
         end
         end
         if size ~= "" and size ~= nil then
         if not isempty(size) then
             result = result .. "|" .. size;
             result = result .. "|" .. size;
         elseif sizedefault ~= "" and sizedefault ~= nil then
         elseif not isempty(sizedefault) and isempty(upright) then
             result = result .. "|" .. sizedefault;
             result = result .. "|" .. sizedefault;
         else
         else
Line 241: Line 244:
             result = result .. "|center"
             result = result .. "|center"
         end
         end
         if alt ~= "" and alt ~= nil then
         if not isempty(alt) then
             result = result .. "|alt=" .. alt;
             result = result .. "|alt=" .. alt;
         end
         end
         if link ~= "" and link ~= nil then
         if not isempty(link) then
             result = result .. "|link=" .. link;
             result = result .. "|link=" .. link;
         end
         end
Line 258: Line 261:
             result = result .. "|thumbtime=" .. thumbtime;
             result = result .. "|thumbtime=" .. thumbtime;
         end
         end
         if title ~= "" and title ~= nil then
         if not isempty(class) then
            result = result .. "|class=" .. class;
        end
        -- if alt value is a keyword then do not use as a description
        if alt == "thumbnail" or alt == "thumb" or alt == "frameless" or alt == "left" or alt == "center" or alt == "right" or alt == "upright" or alt == "border" or mw.ustring.match(alt or "", '^[0-9]*px$', 1) ~= nil then
            alt = nil;
        end
        if not isempty(title) then
            -- does title param contain any templatestyles? If yes then set to blank.
            if mw.ustring.match(frame:preprocess(title), 'UNIQ%-%-templatestyles', 1) ~= nil then
                title = nil;
            end
        end
        if not isempty(title) then
             result = result .. "|" .. title;
             result = result .. "|" .. title;
        elseif alt ~= "" and alt ~= nil then
            result = result .. "|" .. alt;
         end
         end
         result = result .. "]]";
         result = result .. "]]";
Cookies help us deliver our services. By using our services, you agree to our use of cookies.