Ugrás a tartalomhoz

Modul:SimpleTaxobox

Innen: MKOE wiki
A lap korábbi változatát látod, amilyen Dr. Gyúró Zoltán (vitalap | szerkesztései) 2025. november 23., 10:57-kor történt szerkesztése után volt. (Új oldal, tartalma: „-- Modul:SimpleTaxobox (A logikai motor a Modul:TaxonData használatával) local p = {} -- Betölti a központi adatmodult, amiben a hierarchia szerepel. local TaxonData = require('Modul:TaxonData') function p.buildTaxobox(frame) local args = frame:getParent().args local currentTaxon = args.taxon local hierarchy = {} local taxon = currentTaxon if not currentTaxon then return "'''Taxobox Hiba:''' Hiányzó taxon paraméter." end…”)
(eltér) ← Régebbi változat | Aktuális változat (eltér) | Újabb változat→ (eltér)

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

-- Modul:SimpleTaxobox (A logikai motor a Modul:TaxonData használatával)
local p = {}

-- Betölti a központi adatmodult, amiben a hierarchia szerepel.
local TaxonData = require('Modul:TaxonData')

function p.buildTaxobox(frame)
    local args = frame:getParent().args
    local currentTaxon = args.taxon 
    local hierarchy = {}
    local taxon = currentTaxon

    if not currentTaxon then
        return "'''Taxobox Hiba:''' Hiányzó taxon paraméter."
    end
    
    -- 1. Rekurzív adatgyűjtés a Modul:TaxonData-ból
    while taxon do
        local data = TaxonData.getData(taxon) -- Itt történik az adatkiolvasás
        
        -- A legalsó szint (faj) esetén a szülő adatot először nem a táblából olvassuk ki,
        -- hanem a 'data' változó tartalmazza a rangot és a szülőt a rekurzióhoz.
        if data then
            table.insert(hierarchy, { 
                rank = data.rank, 
                name = taxon 
            })
            taxon = data.parent -- Áttérés a szülőre (PARENT_ID)
        else
            -- Ha a legalsó szintnél nincs 'data' (vagy a lánc vége/hiba)
            -- és van már eleme a hierarchiának, akkor megállunk.
            if #hierarchy > 0 then
                break
            else
                -- Ha a legelső elemre sincs adat, hiba.
                return 'Taxobox Hiba: Nem található adat a "' .. currentTaxon .. '" taxonhoz a Modul:TaxonData-ban.'
            end
        end
    end
    
    -- 2. Wikitext Taxobox táblázat felépítése
    local output = '{| class="infobox biota" style="text-align: left; width: 20em;"\n'
    output = output .. '|+ Rendszertani besorolás\n'
    
    -- A hierarchia fordított sorrendben van (fajtól a Doménig). Felülről lefelé haladunk.
    for i = #hierarchy, 1, -1 do
        local item = hierarchy[i]
        
        local name_display = item.name
        -- Kiemeljük az aktuális cikk tárgyát (ami a hierarchia legalján van)
        if i == 1 then
            name_display = "'''" .. name_display .. "'''"
        end
        
        output = output .. '|-\n'
        output = output .. '| style="text-align: right;" | ' .. item.rank .. '\n'
        output = output .. '| ' .. name_display .. '\n'
    end
    
    output = output .. '|}\n'
    
    return output
end

return p