Mô đun:InfoboxImage
![]() | Mô đun Lua này được sử dụng ởkhoảng 1.100.000 trang, chiếm ≈ 6% tổng số trang. Để tránh gây lỗi trên quy mô lớn vàtải máy chủkhông cần thiết, tất cả thay đổi cần được thử nghiệm ở trang con/sandbox,/testcasescủa mô đun, hoặc ởchỗ thử mô đun.Các thay đổi đã được thử nghiệm có thể thêm vào mô đun bằng một sửa đổi duy nhất. Xin hãy thảo luận các thay đổi tạitrang thảo luậntrước khi áp dụng sửa đổi. |
![]() | Mô-đun này là loại cần được khóa. Nó là mộtmô-đ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ácthay 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. |
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ố trongSpecial: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}}} }}
[[File:{{{image}}}|page={{{page}}}|{{{size}}}|center|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 }}
[[File:{{{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 }}
[[File:{{{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 }}
[[File:{{{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ạiSpecial: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}}} }}
[[File:{{{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 }}
[[File:{{{image}}}|frameless|upright]]
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 }}
[[File:{{{image}}}|frameless|alt=Alt text|Alt text]]
Để biết thêm thông tin, xemen:Wikipedia:Extended image syntax.
Ví dụ sử dụng
|image = {{#invoke:InfoboxImage|InfoboxImage|image={{{image|}}}|upright={{{image_upright|1}}}|alt={{{alt|}}}}}
Ví dụ
{{#invoke:InfoboxImage|InfoboxImage}} | |
{{#invoke:InfoboxImage|InfoboxImage|image=}} | |
{{#invoke:InfoboxImage|InfoboxImage|image=Abbey Rd Studios.jpg}} |
![]() |
{{#invoke:InfoboxImage|InfoboxImage|image=Abbey Rd Studios.jpg|upright=yes}} |
![]() |
{{#invoke:InfoboxImage|InfoboxImage|image=Abbey Rd Studios.jpg|upright=1.2}} |
![]() |
{{#invoke:InfoboxImage|InfoboxImage|image=Abbey Rd Studios.jpg|size=100px}} |
![]() |
{{#invoke:InfoboxImage|InfoboxImage|image=[[Image:Abbey Rd Studios.jpg|200px]]}} | ![]() |
{{#invoke:InfoboxImage|InfoboxImage|image=[[Image:Abbey Rd Studios.jpg|200px]]|title=Abbey Road!}} | ![]() |
{{#invoke:InfoboxImage|InfoboxImage|image=Abbey Rd Studios.jpg|sizedefault=250px|alt=The front stairs and door of Abbey Road Studios}} | ![]() |
{{#invoke:InfoboxImage|InfoboxImage|image=Abbey Rd Studios.jpg|sizedefault=250|alt=The front stairs and door of Abbey Road Studios}} | ![]() |
{{#invoke:InfoboxImage|InfoboxImage|image=Abbey Rd Studios.jpg|sizedefault=250px|alt=The front stairs and door of Abbey Road Studios|title=Exterior, front view of Abbey Road studios}} | ![]() |
{{#invoke:InfoboxImage|InfoboxImage|image=Abbey Rd Studios.jpg|alt=The front stairs and door of Abbey Road Studios}} | ![]() |
{{#invoke:InfoboxImage|InfoboxImage|image=Abbey Rd Studios.jpg|size=100px|alt=The front stairs and door of Abbey Road Studios}} | ![]() |
{{#invoke:InfoboxImage|InfoboxImage|image=Bandera de Bilbao.svg|size=100|border=yes}} | ![]() |
{{#invoke:InfoboxImage|InfoboxImage|image=Image is needed male.svg}} | |
{{#invoke:InfoboxImage|InfoboxImage|image=Image is needed male.svg|suppressplaceholder=no}} | ![]() |
{{#invoke:InfoboxImage|InfoboxImage|image=[[File:Image is needed male.svg|200px]]}} | |
{{#invoke:InfoboxImage|InfoboxImage|image=[[File:Image is needed male.svg|200px]]|suppressplaceholder=no}} | ![]() |
{{#invoke:InfoboxImage|InfoboxImage|image=Abbey Rd Studios.jpg|size=50px|maxsize=100px}} | ![]() |
{{#invoke:InfoboxImage|InfoboxImage|image=Abbey Rd Studios.jpg|size=200px|maxsize=100px}} | ![]() |
{{#invoke:InfoboxImage|InfoboxImage|image=[[File:Abbey Rd Studios.jpg|200px]]|maxsize=100px}} | ![]() |
{{#invoke:InfoboxImage|InfoboxImage|image=Abbey Rd Studios.jpg|maxsize=100px|center=yes}} | ![]() |
{{#invoke:InfoboxImage|InfoboxImage|image=no such image|maxsize=100px|center=yes}} |
Hình ảnh giữ chỗ có thể bị chặn
Thể loại giám sát
-- 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
locali={};
localplaceholder_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",
"Replace this image.svg",
"Cricket no pic.png",
"CarersLogo.gif",
"Diagram Needed.svg",
"Example.jpg",
"Image placeholder.png",
"No male portrait.svg",
"Nocover-upload.png",
"NoDVDcover copy.png",
"Noribbon.svg",
"No portrait-BFD-test.svg",
"Placeholder barnstar ribbon.png",
"Project Trains no image.png",
"Image-request.png",
"Sin bandera.svg",
"Sin escudo.svg",
"Replace this image - temple.png",
"Replace this image butterfly.png",
"Replace this image.svg",
"Replace this image1.svg",
"Resolution angle.png",
"Image-No portrait-text-BFD-test.svg",
"Insert image here.svg",
"No image available.png",
"NO IMAGE YET square.png",
"NO IMAGE YET.png",
"No Photo Available.svg",
"No Screenshot.svg",
"No-image-available.jpg",
"Null.png",
"PictureNeeded.gif",
"Place holder.jpg",
"Unbenannt.JPG",
"UploadACopyrightFreeImage.svg",
"UploadAnImage.gif",
"UploadAnImage.svg",
"UploadAnImageShort.svg",
"CarersLogo.gif",
"Diagram Needed.svg",
"No male portrait.svg",
"NoDVDcover copy.png",
"Placeholder barnstar ribbon.png",
"Project Trains no image.png",
"Image-request.png",
"Noimage.gif",
}
functioni.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 |
ifmw.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
localallNames=mw.site.namespaces[6].aliases
allNames[#allNames+1]=mw.site.namespaces[6].name
allNames[#allNames+1]=mw.site.namespaces[6].canonicalName
fori,nameinipairs(allNames)do
ifmw.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);
fori,jinpairs(placeholder_image)do
ifimage==jthen
returntrue
end
end
returnfalse
end
functioni.InfoboxImage(frame)
localimage=frame.args["image"];
ifimage==""orimage==nilthen
return"";
end
ifimage==""then
returnimage;
end
ifframe.args["suppressplaceholder"]~="no"then
ifi.IsPlaceholder(image)==truethen
return"";
end
end
ifmw.ustring.lower(mw.ustring.sub(image,1,5))=="http:"then
return"";
end
ifmw.ustring.lower(mw.ustring.sub(image,1,6))=="[http:"then
return"";
end
ifmw.ustring.lower(mw.ustring.sub(image,1,7))=="[[http:"then
return"";
end
ifmw.ustring.lower(mw.ustring.sub(image,1,6))=="https:"then
return"";
end
ifmw.ustring.lower(mw.ustring.sub(image,1,7))=="[https:"then
return"";
end
ifmw.ustring.lower(mw.ustring.sub(image,1,8))=="[[https:"then
return"";
end
ifmw.ustring.sub(image,1,2)=="[["then
-- search for thumbnail images and add to tracking cat if found
localcat="";
ifmw.title.getCurrentTitle().namespace==0and(mw.ustring.find(image,"|%s*thumb%s*[|%]]")ormw.ustring.find(image,"|%s*thumbnail%s*[|%]]"))then
cat="[[Thể loại:Trang có hộp thông tin có hình nhỏ]]";
elseifmw.title.getCurrentTitle().namespace==0then
cat="[[Category:Pages using deprecated image syntax]]";
end
returnimage..cat;
elseifmw.ustring.sub(image,1,2)=="{{"andmw.ustring.sub(image,1,3)~="{{{"then
returnimage;
elseifmw.ustring.sub(image,1,1)=="<"then
returnimage;
elseifmw.ustring.sub(image,1,5)==mw.ustring.char(127).."UNIQ"then
-- Found strip marker at begining, so pass don't process at all
returnimage;
elseifmw.ustring.sub(image,4,9)=="`UNIQ-"then
-- Found strip marker at begining, so pass don't process at all
returnimage;
else
localresult="";
localpage=frame.args["page"];
localsize=frame.args["size"];
localmaxsize=frame.args["maxsize"];
localsizedefault=frame.args["sizedefault"];
localalt=frame.args["alt"];
locallink=frame.args["link"];
localtitle=frame.args["title"];
localborder=frame.args["border"];
localupright=frame.args["upright"]or"";
localthumbtime=frame.args["thumbtime"]or"";
localcenter=frame.args["center"];
-- remove prefix if exists
localallNames=mw.site.namespaces[6].aliases
allNames[#allNames+1]=mw.site.namespaces[6].name
allNames[#allNames+1]=mw.site.namespaces[6].canonicalName
fori,nameinipairs(allNames)do
ifmw.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
ifmaxsize~=""andmaxsize~=nilthen
-- if no sizedefault then set to maxsize
ifsizedefault==""orsizedefault==nilthen
sizedefault=maxsize
end
-- check to see if size bigger than maxsize
ifsize~=""andsize~=nilthen
localsizenumber=tonumber(mw.ustring.match(size,"%d*"))or0;
localmaxsizenumber=tonumber(mw.ustring.match(maxsize,"%d*"))or0;
ifsizenumber>maxsizenumberandmaxsizenumber>0then
size=maxsize;
end
end
end
-- add px to size if just a number
if(tonumber(size)or0)>0then
size=size.."px";
end
-- add px to sizedefault if just a number
if(tonumber(sizedefault)or0)>0then
sizedefault=sizedefault.."px";
end
result="[[File:"..image;
ifpage~=""andpage~=nilthen
result=result.."|page="..page;
end
ifsize~=""andsize~=nilthen
result=result.."|"..size;
elseifsizedefault~=""andsizedefault~=nilthen
result=result.."|"..sizedefault;
else
result=result.."|frameless";
end
ifcenter=="yes"then
result=result.."|center"
end
ifalt~=""andalt~=nilthen
result=result.."|alt="..alt;
end
iflink~=""andlink~=nilthen
result=result.."|link="..link;
end
ifborder=="yes"then
result=result.."|border";
end
ifupright=="yes"then
result=result.."|upright";
elseifupright~=""then
result=result.."|upright="..upright;
end
ifthumbtime~=""then
result=result.."|thumbtime="..thumbtime;
end
iftitle~=""andtitle~=nilthen
result=result.."|"..title;
elseifalt~=""andalt~=nilthen
result=result.."|"..alt;
end
result=result.."]]";
returnresult;
end
end
returni;