Bu modulun sənədləşdirmə səhifəsi səhifəsində yaradıla bilər

local i = {}

local placeholder_image = {
	"Blue - Replace this image female.svg",
	"Blue - Replace this image male.svg",
	"CarersLogo.gif",
	"Cricket no pic.png",
	"Diagram Needed.svg",
	"Example.jpg",
	"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",
	"Image placeholder.png",
	"Image-No portrait-text-BFD-test.svg",
	"Image-request.png",
	"Insert image here.svg",
	"Location map of None.svg",
	"Male no free image yet.png",
	"Missing flag.png",
	"No flag.svg",
	"No free portrait.svg",
	"No image available.png",
	"NO IMAGE YET square.png",
	"NO IMAGE YET.png",
	"No male portrait.svg",
	"No Photo Available.svg",
	"No portrait (female).svg",
	"No portrait (male).svg",
	"No portrait-BFD-test.svg",
	"No Screenshot.svg",
	"No-image-available.jpg",
	"Nocover-upload.png",
	"NoDVDcover copy.png",
	"Noimage.gif",
	"Noribbon.svg",
	"Null.png",
	"PictureNeeded.gif",
	"Place holder.jpg",
	"Placeholder barnstar ribbon.png",
	"Project Trains no image.png",
	"Red - Replace this image female.svg",
	"Red - Replace this image male.svg",
	"Replace this image.svg",
	"Replace this image - temple.png",
	"Replace this image butterfly.png",
	"Replace this image female.svg",
	"Replace this image female (blue).svg",
	"Replace this image male.svg",
	"Replace this image male (blue).svg",
	"Replace this image1.svg",
	"Resolution angle.png",
	"Silver - Replace this image female.svg",
	"Silver - Replace this image male.svg",
	"Sin bandera.svg",
	"Sin escudo.svg",
	"Unbenannt.JPG",
	"UploadACopyrightFreeImage.svg",
	"UploadAnImage.gif",
	"UploadAnImage.svg",
	"UploadAnImageShort.svg",
}

local function IsPlaceholder(image)
	-- Change underscores to spaces.
	image = mw.ustring.gsub(image, "_", " ")
	assert(image ~= nil, 'mw.ustring.gsub(image, "_", " ") must not return nil')
	-- If image starts with [[ then remove that and anything after |.
	if mw.ustring.sub(image, 1, 2) == "[[" then
		image = mw.ustring.sub(image, 3)
		image = mw.ustring.gsub(image, "([^|]*)|.*", "%1")
		assert(image ~= nil, 'mw.ustring.gsub(image, "([^|]*)|.*", "%1") must not return nil')
	end
	-- Trim spaces.
	image = mw.ustring.gsub(image, '^[ ]*(.-)[ ]*$', '%1')
	assert(image ~= nil, "mw.ustring.gsub(image, '^[ ]*(.-)[ ]*$', '%1') must not return nil")
	-- 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 _, 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.
	image = mw.ustring.gsub(image, '^[ ]*(.-)[ ]*$', '%1')
	-- Capitalise first letter.
	image = mw.ustring.upper(mw.ustring.sub(image,1,1)) .. mw.ustring.sub(image,2)

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

--- Inputs:
----	image - Can either be a bare filename (with or without the File:/Image: prefix) or a fully formatted image link.
----	page - page to display for multipage images (DjVu).
----	size - size to display the image.
----	maxsize - maximum size for image.
----	sizedefault - default size to display the image if size param is blank.
----	alt - alt text for image.
----	title - title text for image.
----	border - set to yes if border.
----	center - set to yes, if the image has to be centered.
----	upright - upright image param.
----	suppressplaceholder - if yes then checks to see if image is a placeholder and suppresses it.
----	link - page to visit when clicking on image.
--- Outputs:
----	Formatted image.
--- More details available at the "Module:InfoboxImage/doc" page.
--- @param args table
function i._InfoboxImage(args)
	local image = args.image

	if image == "" or image == nil then
		return ""
	end

	if image == " " then
		return image
	end

	if args.suppressplaceholder ~= "no" and IsPlaceholder(image) == true then
		return "";
	end

	if string.find(image, "^%[*http") then
		-- Error category.
		return "[[Category:Pages using infoboxes with url links]]"
	end

	if mw.ustring.sub(image, 1, 2) == "[[" then
		-- 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
			cat = "[[Category:Pages using infoboxes with thumbnail images]]"
		end
		return image .. cat
	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 beginning, so pass don't process at all.
		return image
	elseif mw.ustring.sub(image, 4, 9) == "`UNIQ-" then
		-- Found strip marker at beginning, so pass don't process at all.
		return image
	end

	-- 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 _, 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

	local size = args.size
	local maxSize = args.maxsize
	local sizeDefault = args.sizedefault
	if maxSize and maxSize ~= "" then
		-- If no sizeDefault then set to maxsize.
		if not sizeDefault or sizeDefault == "" then
			sizeDefault = maxSize
		end

		-- Check to see if size is bigger than maxsize.
		if size and size ~= "" then
			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
				size = maxSize
			end
		end
	end

	-- Add px to size if just a number.
	if (tonumber(size) or 0) > 0 then
		size = size .. "px"
	end

	-- Add px to sizeDefault if just a number.
	if (tonumber(sizeDefault) or 0) > 0 then
		sizeDefault = sizeDefault .. "px"
	end

	local result = "[[File:" .. image
	if args.page and args.page ~= "" then
		result = result .. "|page=" .. args.page
	end

	if size and size ~= "" then
		result = result .. "|" .. size
	elseif sizeDefault and sizeDefault ~= "" then
		result = result .. "|" .. sizeDefault
	else
		result = result .. "|frameless"
	end

	if args.center == "yes" then
		result = result .. "|center"
	end

	local alt = args.alt
	if alt == "none" then
		result = result .. "|alt="
	elseif alt and alt ~= "" then
		result = result .. "|alt=" .. alt
	end

	if args.link == "none" then
		result = result .. "|link="
	elseif args.link and args.link ~= "" then
		result = result .. "|link=" .. args.link
	end

	if args.border == "yes" then
		result = result .. "|border"
	end

	if args.upright == "yes" then
		result = result .. "|upright"
	elseif args.upright and args.upright ~= "" then
		result = result .. "|upright=" .. args.upright
	end

	if args.thumbtime and args.thumbtime ~= "" then
		result = result .. "|thumbtime=" .. args.thumbtime
	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 alt == "none" or mw.ustring.match(alt or "", '^[0-9]*px$', 1) ~= nil then
		alt = nil
	end

	local title = args.title
	if title and title ~= "" then
		-- Does title param contain any templatestyles? If yes then set to blank.
		if mw.ustring.match(mw.getCurrentFrame():preprocess(title), 'UNIQ%-%-templatestyles', 1) ~= nil then
			title = nil
		end
	end

	if title and title ~= "" then
		result = result .. "|" .. title
	elseif alt and alt ~= "" then
		result = result .. "|" .. alt
	end

	result = result .. "]]"

	return result

end

function i.InfoboxImage(frame)
	return i._InfoboxImage(require('Module:Arguments').getArgs(frame))
end

return i
Mənbə — ""

Informasiya Melumat Axtar

Anarim.Az

Sayt Rehberliyi ile Elaqe

Saytdan Istifade Qaydalari

Anarim.Az 2004-2023