Difference between revisions of "Module:HerbGallery"
From A Wiki in the Desert
| (30 intermediate revisions by the same user not shown) | |||
| Line 4: | Line 4: | ||
if not mw.smw then | if not mw.smw then | ||
return "mw.smw module not found" | return "mw.smw module not found" | ||
| − | + | end | |
if frame:getParent().args[1] == nil then | if frame:getParent().args[1] == nil then | ||
| Line 10: | Line 10: | ||
end | end | ||
| − | local | + | local queryResult = mw.smw.getQueryResult( '[[Herb/'..mw.text.trim(frame:getParent().args[1])..']]|?Is similar to=name|?Is similar to.Has image=image' ) |
| − | + | ||
| − | + | if queryResult == nil then | |
| + | return "(no values)" | ||
end | end | ||
| + | |||
| + | local imageIndex = 1 | ||
| + | local textIndex = 2 | ||
| + | local galleryArgs = { | ||
| + | width="200", | ||
| + | height="200", | ||
| + | mode="packed" | ||
| + | } | ||
| − | return | + | if type( queryResult ) == "table" then |
| + | for k,v in pairs( queryResult.results ) do | ||
| + | if type( v ) == "table" and type(v.printouts) == "table" then | ||
| + | for kR,vR in pairs( v.printouts.image ) do | ||
| + | galleryArgs[imageIndex] = vR.fulltext | ||
| + | imageIndex = imageIndex + 2 | ||
| + | end | ||
| + | |||
| + | for kR,vR in pairs( v.printouts.name ) do | ||
| + | galleryArgs[textIndex] = '[['..vR.fulltext..'|'..mw.text.split(vR.fulltext, "\/")[2]..']]' | ||
| + | textIndex = textIndex + 2 | ||
| + | end | ||
| + | end | ||
| + | end | ||
| + | |||
| + | mw.logObject(galleryArgs) | ||
| + | return frame:expandTemplate{ title = 'Gallery', args = galleryArgs } | ||
| + | end | ||
| + | |||
| + | return "" | ||
end | end | ||
return p | return p | ||
Latest revision as of 03:48, 15 May 2021
Documentation for this module may be created at Module:HerbGallery/doc
local p = {} --p stands for package
function p.gallery( frame )
if not mw.smw then
return "mw.smw module not found"
end
if frame:getParent().args[1] == nil then
return "no parameter found"
end
local queryResult = mw.smw.getQueryResult( '[[Herb/'..mw.text.trim(frame:getParent().args[1])..']]|?Is similar to=name|?Is similar to.Has image=image' )
if queryResult == nil then
return "(no values)"
end
local imageIndex = 1
local textIndex = 2
local galleryArgs = {
width="200",
height="200",
mode="packed"
}
if type( queryResult ) == "table" then
for k,v in pairs( queryResult.results ) do
if type( v ) == "table" and type(v.printouts) == "table" then
for kR,vR in pairs( v.printouts.image ) do
galleryArgs[imageIndex] = vR.fulltext
imageIndex = imageIndex + 2
end
for kR,vR in pairs( v.printouts.name ) do
galleryArgs[textIndex] = '[['..vR.fulltext..'|'..mw.text.split(vR.fulltext, "\/")[2]..']]'
textIndex = textIndex + 2
end
end
end
mw.logObject(galleryArgs)
return frame:expandTemplate{ title = 'Gallery', args = galleryArgs }
end
return ""
end
return p