Module:CRTGallery: Difference between revisions

Fix delimiter splitting bug — use mw.text.split with plain match instead of gmatch character class (via update-page on MediaWiki MCP Server)
Rewrite to use mw.smw.getPropertyValues for direct Lua access to semantic properties — avoids frame:preprocess parsing issues (via update-page on MediaWiki MCP Server)
Line 5: Line 5:
     local mode = args.mode or "packed"
     local mode = args.mode or "packed"
     local heights = args.heights or "160"
     local heights = args.heights or "160"
     local pageName = args.page or mw.title.getCurrentTitle().fullText
     local pageName = args.page
 
    if not pageName or pageName == "" then
    -- Query all "Has images" values stored by {{CRT model}} on this page
        pageName = mw.title.getCurrentTitle().fullText
     local delim = "~!~"
     end
    local query = string.format(
        '{{#ask:[[%s]]|?Has images|mainlabel=-|headers=hide|link=none|sep=%s|limit=50}}',
        pageName, delim
    )
    local result = frame:preprocess(query)


     if not result or result == "" then
    -- Use SMW Lua API to get image values directly
    local values = mw.smw.getPropertyValues(pageName, "Has images")
     if not values or #values == 0 then
         return ""
         return ""
     end
     end


    -- Split on delimiter using plain string match
    local parts = mw.text.split(result, delim, true)
     local lines = {}
     local lines = {}
     for _, part in ipairs(parts) do
     for _, val in ipairs(values) do
         local trimmed = mw.text.trim(part)
         local trimmed = mw.text.trim(tostring(val))
         if trimmed ~= "" then
         if trimmed ~= "" then
             -- Ensure File: prefix
             -- Ensure File: prefix
MediaWiki Appliance - Powered by TurnKey Linux