Ugrás a tartalomhoz

„Modul:CSVParser” változatai közötti eltérés

Innen: MKOE wiki
Nincs szerkesztési összefoglaló
Nincs szerkesztési összefoglaló
14. sor: 14. sor:
     end
     end


    -- Osztályok: wikitable (Wiki stílus), sortable (sorba rendezhető), datatable (kereső/lapozó)
     local res = '{| class="wikitable sortable datatable-hook" style="width:100%; font-size:90%;"\n'
     local res = '{| class="wikitable sortable datatable-hook" style="width:100%; font-size:90%;"\n'
      
      
     for i, sor in ipairs(adatok) do
     for i, sor in ipairs(adatok) do
         res = res .. "|-\n"
         res = res .. "|-\n"
       
         local jel = (i == 1) and "!" or "|"
         local jel = (i == 1) and "!" or "|"
          
          
         -- 1. Sorszám oszlop hozzáadása
         -- 1. Sorszám oszlop
         if i == 1 then
         if i == 1 then
             res = res .. "! #\n" -- Fejlécben '#'
             res = res .. "! #\n"
         else
         else
             res = res .. "| " .. (i - 1) .. "\n" -- Sorokban a sorszám (i-1, mert az 1. a fejléc)
             res = res .. "| " .. (i - 1) .. "\n"
         end
         end
          
          
         -- 2. Az eredeti oszlopok generálása
         -- 2. Összevont oszlopok meghatározása (latin indexek az eredeti sorban)
         for _, cellatartalom in ipairs(sor) do
        -- Rend (1+2), Család (3+4), Alcsalád (5+6), Tribus (7), Subtribus (8), Nemzetség (9+10)
             local tiszta_cella = cellatartalom:gsub("^%s*(.-)%s*$", "%1")
        -- Megjegyzés: A Tribusnak és Subtribusnak az eredetiben nincs külön magyar oszlopa a leírásod szerint.
             if tiszta_cella == "" then tiszta_cella = " " end
        local oszlop_terv = {
            {lat = 1, hun = 2}, -- Rend
            {lat = 3, hun = 4}, -- Család
            {lat = 5, hun = 6}, -- Alcsalád
            {lat = 7, hun = nil}, -- Tribus
            {lat = 8, hun = nil}, -- Subtribus
            {lat = 9, hun = 10}  -- Nemzetség
        }
       
         for _, mapping in ipairs(oszlop_terv) do
             local latin = sor[mapping.lat] or ""
            local magyar = mapping.hun and sor[mapping.hun] or ""
           
            -- Tisztítás
            latin = latin:gsub("^%s*(.-)%s*$", "%1")
            magyar = magyar:gsub("^%s*(.-)%s*$", "%1")
           
            local cella_ertek = ""
           
             if i == 1 then
                -- Fejléc esetén csak a latin oszlop nevét használjuk (pl. "Rend")
                cella_ertek = latin
            else
                -- Adatsorok esetén
                if latin == "" then
                    cella_ertek = " "
                else
                    -- Ha Nemzetség (9), akkor dőlt
                    if mapping.lat == 9 then
                        cella_ertek = "''" .. latin .. "''"
                    else
                        cella_ertek = latin
                    end
                   
                    -- Ha van magyar név, zárójelben hozzáfűzzük
                    if magyar ~= "" and magyar ~= " " then
                        cella_ertek = cella_ertek .. " (" .. magyar .. ")"
                    end
                end
            end
              
              
             res = res .. jel .. " " .. tiszta_cella .. "\n"
             res = res .. jel .. " " .. cella_ertek .. "\n"
         end
         end
     end
     end

A lap 2026. január 4., 19:21-kori változata

A modult a Modul:CSVParser/doc lapon tudod dokumentálni

local p = {}

function p.megjelenit(frame)
    local status, adatModul = pcall(require, 'Modul:SzukkulensTaxonok')
    
    if not status then 
        return "Hiba: A 'Modul:SzukkulensTaxonok' nem található!" 
    end
    
    local adatok = adatModul.getAdatok()
    
    if not adatok or #adatok == 0 then 
        return "Hiba: Az adatok üresek!" 
    end

    local res = '{| class="wikitable sortable datatable-hook" style="width:100%; font-size:90%;"\n'
    
    for i, sor in ipairs(adatok) do
        res = res .. "|-\n"
        local jel = (i == 1) and "!" or "|"
        
        -- 1. Sorszám oszlop
        if i == 1 then
            res = res .. "! #\n"
        else
            res = res .. "| " .. (i - 1) .. "\n"
        end
        
        -- 2. Összevont oszlopok meghatározása (latin indexek az eredeti sorban)
        -- Rend (1+2), Család (3+4), Alcsalád (5+6), Tribus (7), Subtribus (8), Nemzetség (9+10)
        -- Megjegyzés: A Tribusnak és Subtribusnak az eredetiben nincs külön magyar oszlopa a leírásod szerint.
        local oszlop_terv = {
            {lat = 1, hun = 2}, -- Rend
            {lat = 3, hun = 4}, -- Család
            {lat = 5, hun = 6}, -- Alcsalád
            {lat = 7, hun = nil}, -- Tribus
            {lat = 8, hun = nil}, -- Subtribus
            {lat = 9, hun = 10}  -- Nemzetség
        }
        
        for _, mapping in ipairs(oszlop_terv) do
            local latin = sor[mapping.lat] or ""
            local magyar = mapping.hun and sor[mapping.hun] or ""
            
            -- Tisztítás
            latin = latin:gsub("^%s*(.-)%s*$", "%1")
            magyar = magyar:gsub("^%s*(.-)%s*$", "%1")
            
            local cella_ertek = ""
            
            if i == 1 then
                -- Fejléc esetén csak a latin oszlop nevét használjuk (pl. "Rend")
                cella_ertek = latin
            else
                -- Adatsorok esetén
                if latin == "" then
                    cella_ertek = " "
                else
                    -- Ha Nemzetség (9), akkor dőlt
                    if mapping.lat == 9 then
                        cella_ertek = "''" .. latin .. "''"
                    else
                        cella_ertek = latin
                    end
                    
                    -- Ha van magyar név, zárójelben hozzáfűzzük
                    if magyar ~= "" and magyar ~= " " then
                        cella_ertek = cella_ertek .. " (" .. magyar .. ")"
                    end
                end
            end
            
            res = res .. jel .. " " .. cella_ertek .. "\n"
        end
    end
    
    res = res .. "|}"
    return res
end

return p