Module:AchievementSystem: Difference between revisions

// via Wikitext Extension for VSCode
// via Wikitext Extension for VSCode
Line 225: Line 225:


--[[
--[[
Renders HTML for an achievement box to display in templates - ultra simplified version
Ultra simplified achievement box renderer - just shows "Test" directly
Simply shows numbered rows with the CSS setting content: "Test"


@param pageId string|number The page ID to render achievements for
@param pageId string|number The page ID to render achievements for
Line 232: Line 231:
]]
]]
function Achievements.renderAchievementBox(pageId)
function Achievements.renderAchievementBox(pageId)
     if not pageId or pageId == '' then return '' end
    -- For page ID 18451, return a simple test achievement
     if tostring(pageId) == "18451" then
        debugLog("Creating direct Test achievement for page ID 18451")
        return '<div style="padding: 5px; background-color: #f0f0f0; border: 1px solid #ccc; border-radius: 4px;">Test</div>'
    end
      
      
    -- Get achievements for other pages (if any)
     local data = Achievements.loadData()
     local data = Achievements.loadData()
     if not data or not data.user_achievements then return '' end
     if not data or not data.user_achievements then return '' end
Line 240: Line 244:
     local key = tostring(pageId)
     local key = tostring(pageId)
      
      
     -- Try with direct key first
     -- Check if user has achievements (direct key or n-prefix)
     local userAchievements = data.user_achievements[key] or {}
     local hasAchievements = (data.user_achievements[key] and #data.user_achievements[key] > 0) or
   
                          (key:match("^%d+$") and data.user_achievements["n" .. key] and #data.user_achievements["n" .. key] > 0)
    -- Try with n-prefix if not found (for backward compatibility)
    if #userAchievements == 0 and key:match("^%d+$") then
        local nKey = "n" .. key
        userAchievements = data.user_achievements[nKey] or {}
    end
   
    -- Special case for page ID 18451
    if key == "18451" and #userAchievements == 0 then
        debugLog("Creating simplified achievement display for 18451")
        return '<div class="achievement-box">' ..
              '<div class="achievement-box-title">Achievements</div>' ..
              '<div class="achievement-rows">' ..
              '<div class="achievement-row">1</div>' ..
              '</div></div>'
    end
   
    if #userAchievements == 0 then
        return ''
    end
   
    -- Create achievement box with numbered placeholders
    local html = '<div class="achievement-box">'
    html = html .. '<div class="achievement-box-title">Achievements</div>'
    html = html .. '<div class="achievement-rows">'
   
    -- Keep track of achievements we've processed (avoid duplicates)
    local processedTypes = {}
    local count = 0
      
      
     for _, achievement in ipairs(userAchievements) do
     -- If user has achievements, show the simplified box
        if achievement and achievement.type and not processedTypes[achievement.type] then
    if hasAchievements then
            processedTypes[achievement.type] = true
        return '<div style="padding: 5px; background-color: #f0f0f0; border: 1px solid #ccc; border-radius: 4px;">Test</div>'
            count = count + 1
           
            -- Just add numbered row - CSS will add "Test" text
            html = html .. string.format(
                '<div class="achievement-row">%d</div>',
                count
            )
        end
     end
     end
      
      
     html = html .. '</div></div>'
     -- Otherwise return empty string
     return html
     return ''
end
end