Modul:Kembox/Chembox Related
Megjelenés
Kembox/Chembox Related[mi ez?] • [dokumentáció: mutat, ] • [tesztek: létrehozás]
local csopfej = "Rokon vegyületek"
local boxtbl = { -- a paraméterek sorrendje és infóboxbeli felirata. Az 1-es sorszám fenntartva csopfej-nek
OtherAnions = { 2, "Azonos [[kation]]" },
OtherCations = { 3, "Azonos [[ion|anion]]" },
OtherFunctn = { 4, "Rokon" }, -- a Function nevű paramétert Rokon mögé kell konkatenálni
OtherCpds = { 5, "Rokon vegyületek" },
}
boxtbl["AzonosKation"] = boxtbl.OtherAnions -- Chembox_új
boxtbl["azonos_kationnal"] = boxtbl.OtherAnions -- Vegyület_infobox
boxtbl["AzonosAnion"] = boxtbl.OtherCations -- Chembox_új
boxtbl["azonos_anionnal"] = boxtbl.OtherCations -- Vegyület_infobox
boxtbl["MásFunkciósCsop"] = boxtbl.OtherFunctn -- Chembox_új
boxtbl["MásVegyület"] = boxtbl.OtherCpds -- Chembox_új
boxtbl["rokon_vegyületek"] = boxtbl.OtherCpds -- Vegyület_infobox
local munka = {} -- { { sorsz, címke }, érték }
-- Egy név/érték paraméter tárolása munka-ban
local function egysor(nev,ertek,partbl)
n = string.gsub(nev,' ','_')
if boxtbl[n] -- a boxtbl tábla (lásd feljebb) az ismert paramétereket és azok sorrendjét tartalmazza
then cimke = boxtbl[n]
if n == 'OtherFunctn' -- chembox_new
then str = partbl['Function']
if str and #str > 0 then cimke[2] = cimke[2]..' '..str end
end
if n == 'MásFunkciósCsop' -- chembox_új
then str = partbl['FunkciósCsop']
if str and #str > 0 then cimke[2] = cimke[2]..' '..str end
end
if ertek and #ertek > 0 then table.insert(munka,{cimke,ertek}) end -- az üres paramétereket nem írjuk ki
-- else -- a hívó sablon hibás paramétert kapott a szócikkből
end
end
local eredm = {} -- { címke, érték } rendezve
-- A munka-beli értékek rendezése és kiírása
local function rendez(hivo)
if next(munka)
then -- van megadott paraméter
local kozos = require("Module:Kembox/kozos")
eredm[1] = csopfej
kozos.adatcsoport(munka,eredm) -- munka rendezése és átmásolása eredm-be
return kozos.kiir(eredm,hivo)
end
return ""
end
-- A kívülről hívható függvények következnek
local p = {}
-- Hívás sablonból
function p.Chembox_Related(frame)
local hivo = frame.args['infobox'] -- hívó sablon
local szulo = frame:getParent() -- a chembox_related sablon által kapott paraméterek
for nev,ertek in szulo:argumentPairs()
do egysor(nev,ertek,szulo.args)
end
return rendez(hivo)
end
-- Hívás modulból
function p.lua(partbl,hivo)
for nev,ertek in pairs(partbl)
do egysor(nev,ertek,partbl)
end
return rendez(hivo)
end
return p;