Mô đun:InfoboxImage
![]() | Mô đun Lua này được dùng trong 1.038.000+ trang. Để tránh gây lỗi trên quy mô lớn và việc tải máy chủ không cần thiết, bất cứ thay đổi nào đến mô đun này cần được thử nghiệm ở các trang con /sandbox hoặc /testcases của mô đun. Các thay đổi đã được thử nghiệm có thể thêm vào mô đun bằng một lần sửa đổi. Hãy cân nhắc thảo luận bất kỳ thay đổi nào trên trang thảo luận trước khi áp dụng sửa đổi. |
![]() | Mô-đun này là loại cần được bảo vệ. Nó là một mô-đun nhìn thấy rõ được sử dụng bởi một số lượng lớn các trang, hoặc là các thay thế rất thường xuyên. Bởi vì phá hoại hoặc lỗi sai khi sửa sẽ ảnh hưởng đến nhiều trang và thậm chí chỉnh sửa tầm thường có thể gây ra tải đáng kể cho các máy chủ, nó được khóa bảo vệ hạn chế sửa đổi. |
Mục lục
Tổng quan
Mô-đun này được sử dụng trong các hộp thông tin để xử lý các tham số hình ảnh và thu gọn định dạng của kết quả.
Các tham số
Tham số | Mô tả |
---|---|
image | Cần thiết. Tham số chính cần được chuyển qua có chứa thông tin hình ảnh. |
size | Cỡ tùy chỉnh của hình khi hiện ra |
maxsize | Kích thước tối đa để hiển thị hình ảnh. Lưu ý: Nếu không có thông số kích thước hoặc kích thước được chỉ định thì hình ảnh sẽ được hiển thị ở mức tối đa. |
sizedefault | Kích thước để sử dụng cho hình ảnh nếu không có số trong tham số size được chỉ định. Thì tham số mặc định là frameless. |
alt | Văn bản thay thế cho hình ảnh. |
title | Tiêu đề của hình ảnh (chữ hiện trong khung hiện ra khi rê chuột vào ảnh). Nếu trống trường này thì văn bản tham số alt sẽ được sử dụng. |
border | Nếu để là có (yes), viền khung biên hình ảnh sẽ được thêm vào. |
page | Số trang sẽ được hiển thị khi sử dụng hình ảnh trong nhiều trang |
upright | Nếu upright=yes, thêm tham số "upright" sẽ hiện ảnh bằng 75% kích thước ban đầu hoặc cỡ hình mặc định (cỡ hình 220px nếu không thay đổi tham số trong Special:Preferences). Nếu thêm giá trị, thêm tham số "upright=Giá trị'" vào ảnh, trong đó các giá trị nhỏ hơn 1 tỷ lệ hình ảnh xuống (0,9 = 90%) và giá trị lớn hơn 1 tỷ lệ hình ảnh lên (1,15 = 115%). |
center | Nếu để là có (yes) , ảnh sẽ được để giữa. |
thumbtime | tham số thumbtime, được sử dụng cho các video clip. |
suppressplaceholder | Nếu không dùng tham số này, sẽ không triệt tiêu hình ảnh giữ chỗ nhất định. Xem § Hình ảnh giữ chỗ có thể bị chặn. |
link | Link điều hướng khi nhấn vào ảnh |
Lưu ý : Nếu bạn chỉ định các thông số cho maxsize hoặc sizedefault, thì bạn nên bao gồm đơn px sau số.
Các tham số hiển thị trong cú pháp hình ảnh
Tất cả tham số:
{{#invoke:InfoboxImage | InfoboxImage | image={{{image}}} | size={{{size}}} | upright={{{upright}}} | alt={{{alt}}} | title={{{title}}} | thumbtime={{{thumbtime}}} | link={{{link}}} | border=yes | center=yes | page={{{page}}} }}
[[Tập tin:{{{image}}}|{{{size}}}|giữa|alt={{{alt}}}|link={{{link}}}|border|upright={{{upright}}}|thumbtime={{{thumbtime}}}|{{{title}}}]]
Khi "size" and "maxsize" được xác định thêm vào, cái nhỏ hơn trong hai cái sẽ được sử dụng (nếu "px" bị bỏ qua thì nó sẽ được thêm vào bởi mô-đun):
{{#invoke:InfoboxImage | InfoboxImage | image={{{image}}} | size=300px | maxsize=250px }}
[[Tập tin:{{{image}}}|250px]]
Khi "size" không được xác định (có thể hiểu là không có tham số này), "sizedefault" sẽ được sử dụng, mặc dù nó có thể lớn hơn "maxsize" (trong sử dụng thực tế "px" là bắt buộc sau số; bỏ qua ở đây để hiển thị nó không được thêm bởi mô-đun):
{{#invoke:InfoboxImage | InfoboxImage | image={{{image}}} | sizedefault=250px | maxsize=200px }}
[[Tập tin:{{{image}}}|250px]]
Khi "size" and "sizedefault" không được xác định, "maxsize" sẽ được sử dụng (trong sử dụng thực tế "px" là bắt buộc sau số; bỏ qua ở đây để hiển thị nó không được thêm bởi mô-đun):
{{#invoke:InfoboxImage | InfoboxImage | image={{{image}}} | maxsize=250px }}
[[Tập tin:{{{image}}}|250px]]
Khi "size", "sizedefault", và "maxsize" không được xác định, "frameless" sẽ được thêm vào, Hiển thị hình ảnh theo kích thước hình thu nhỏ mặc định (220px, nhưng người dùng đăng nhập có thể chỉnh thông số này tại Special:Preferences) và nó được yêu cầu bắt buộc nếu dùng "upright" để mở rộng kích thước mặc định:
{{#invoke:InfoboxImage | InfoboxImage | image={{{image}}} }}
[[Tập tin:{{{image}}}|frameless]]
Dùng "upright" mà không có giá trị số thêm vào, sẽ hiện hình ảnh ở kích thước xấp xỉ 75% kích thước mặc định của người dùng (nhân với 0,75 sau đó làm tròn đến 10 gần nhất):
{{#invoke:InfoboxImage | InfoboxImage | image={{{image}}} | upright = yes }}
[[Tập tin:{{{image}}}|frameless|upright=yes]]
Khi "alt" được sử dụng mà không có "title", chữ alt cũng sẽ được sử dụng làm tiêu đề cho ảnh:
{{#invoke:InfoboxImage | InfoboxImage | image={{{image}}} | alt = Alt text }}
[[Tập tin:{{{image}}}|frameless|alt=Alt text|Alt text]]
Để biết thêm thông tin, xem en:Wikipedia:Extended image syntax.
Ví dụ sử dụng
|image = {{#invoke:InfoboxImage|InfoboxImage|image={{{image|}}}|upright={{{image_upright|1}}}|alt={{{alt|}}}}}
Ví dụ
Hình ảnh giữ chỗ có thể bị chặn
Thể loại giám sát
Tài liệu bên trên được chuyển tải từ Mô đun:InfoboxImage/tài liệu. (sửa | lịch sử) Những người sửa đổi có thể thử nghiệm trong các trang trường hợp kiểm thử (tạo) để kiểm tra các chức năng cần thiết của mô đun này. Xin hãy thêm các thể loại vào trang con /tài liệu. Các trang con của mô đun này. |
-- Inputs:
-- image - Can either be a bare filename (with or without the File:/Image: prefix) or a fully formatted image link
-- 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
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(image)
-- change underscores to spaces
image = mw.ustring.gsub(image, "_", " ");
-- 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");
end
-- Trim spaces
image = mw.ustring.gsub(image, '^[ ]*(.-)[ ]*$', '%1');
-- remove file: or image: prefix if exists
if mw.ustring.lower(mw.ustring.sub(image,1,5)) == "file:" then
image = mw.ustring.sub(image,6);
elseif mw.ustring.lower(mw.ustring.sub(image,1,6)) == "image:" then
image = mw.ustring.sub(image,7);
elseif mw.ustring.lower(mw.ustring.sub(image,1,8)) == "tập tin:" or
mw.ustring.lower(mw.ustring.sub(image,1,8)) == "tập_tin:" then
image = mw.ustring.sub(image,8);
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 i,j in pairs(placeholder_image) do
if image == j then
return true
end
end
return false
end
function i.InfoboxImage(frame)
local image = frame.args["image"];
if image == "" or image == nil then
return "";
end
if image == " " then
return image;
end
if frame.args["suppressplaceholder"] == "yes" 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*[|%]]") or mw.ustring.find(image, "|%s*nhỏ%s*[|%]]")) then
return image .. "[[Thể loại:Trang có hộp thông tin có hình nhỏ]]";
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["size"];
local maxsize = frame.args["maxsize"];
local sizedefault = frame.args["sizedefault"];
local alt = frame.args["alt"];
local link = frame.args["link"];
local title = frame.args["title"];
local border = frame.args["border"];
local upright = frame.args["upright"] or "";
local thumbtime = frame.args["thumbtime"] or "";
local center= frame.args["center"];
-- remove file: or image: prefix if exists
if mw.ustring.lower(mw.ustring.sub(image,1,5)) == "file:" then
image = mw.ustring.sub(image,6);
elseif mw.ustring.lower(mw.ustring.sub(image,1,6)) == "image:" then
image = mw.ustring.sub(image,7);
elseif mw.ustring.lower(mw.ustring.sub(image,1,8)) == "tập tin:" or
mw.ustring.lower(mw.ustring.sub(image,1,8)) == "tập_tin:" then
image = mw.ustring.sub(image,8);
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 = "[[Tập tin:" .. 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 center == "yes" then
result = result .. "|giữa"
end
if alt ~= "" and alt ~= nil then
result = result .. "|alt=" .. alt;
end
if link ~= "" and link ~= nil then
result = result .. "|link=" .. link;
end
if border == "yes" then
result = result .. "|border";
end
if upright ~= "" then
result = result .. "|upright=" .. upright;
end
if thumbtime ~= "" then
result = result .. "|thumbtime=" .. thumbtime;
end
if title ~= "" and title ~= nil then
result = result .. "|" .. title;
elseif alt ~= "" and alt ~= nil then
result = result .. "|" .. alt;
end
result = result .. "]]";
return result;
end
end
return i;