Modul:CitLib
Megjelenés
CitLib[mi ez?] • [dokumentáció: mutat, ] • [tesztek: létrehozás]
--Version 2014_09_02
local ds =require("Modul:Dátumszűrés")
local chISBN = require("Modul:CheckISBN")
local args = {}
local lang = mw.getContentLanguage()
local ou = ''
function pop(mi,mv1,mv2,mv3,mv4,mv5) -- idézőjeles rész és 5 bővítmény az ou számára
if not mi then return else ou = ou..mi..'\n ' end
if not mv1 then return else ou = ou..mv1..'\n' end
if not mv2 then return else ou = ou..mv2..'\n' end
if not mv3 then return else ou = ou..mv3..'\n' end
if not mv4 then return else ou = ou..mv4..'\n' end
if not mv5 then return else ou = ou..mv5..'\n' end
end
function isRoman(v)
if type(v) ~= 'string' then return false end -- római számok stringek
for i = 1,string.len(v) do -- végig a stringen
j, l = string.find ("IVXLCDM",string.sub(v,i,i)) -- az i-edik római?
if j == nil then return false end
end --do ciklus, lejárt, tehát minden karakter római számnak felel meg
return true
end
local lans={}
lans["an"] = "van"
lans["ar"] = "van"
lans["aze"] = "van"
lans["be"] = "van"
lans["bg"] = "van"
lans["bn"] = "van"
lans["bs"] = "van"
lans["ca"] = "van"
lans["chm"] = "van"
lans["cy"] = "van"
lans["cs"] = "van"
lans["da"] = "van"
lans["de"] = "van"
lans["ee"] = "van"
lans["el"] = "van"
lans["en"] = "van"
lans["eo"] = "van"
lans["es"] = "van"
lans["et"] = "van"
lans["eu"] = "van"
lans["fa"] = "van"
lans["fi"] = "van"
lans["fo"] = "van"
lans["fr"] = "van"
lans["fy"] = "van"
lans["ga"] = "van"
lans["gd"] = "van"
lans["gl"] = "van"
lans["grc"] = "van"
lans["gu"] = "van"
lans["he"] = "van"
lans["hi"] = "van"
lans["hr"] = "van"
lans["ht"] = "van"
lans["hu"] = "van"
lans["hy"] = "van"
lans["hz"] = "van"
lans["id"] = "van"
lans["is"] = "van"
lans["it"] = "van"
lans["ja"] = "van"
lans["jp"] = "van"
lans["ka"] = "van"
lans["kk"] = "van"
lans["km"] = "van"
lans["kn"] = "van"
lans["ko"] = "van"
lans["ku"] = "van"
lans["ky"] = "van"
lans["lat"] = "van"
lans["lb"] = "van"
lans["lo"] = "van"
lans["lit"] = "van"
lans["lv"] = "van"
lans["mk"] = "van"
lans["mn"] = "van"
lans["mo"] = "van"
lans["ms"] = "van"
lans["mt"] = "van"
lans["my"] = "van"
lans["ne"] = "van"
lans["nl"] = "van"
lans["nn"] = "van"
lans["no"] = "van"
lans["oc"] = "van"
lans["pa"] = "van"
lans["pl"] = "van"
lans["pt"] = "van"
lans["rm"] = "van"
lans["ro"] = "van"
lans["ru"] = "van"
lans["rue"] = "van"
lans["sa"] = "van"
lans["sah"] = "van"
lans["scn"] = "van"
lans["se"] = "van"
lans["sh"] = "van"
lans["sk"] = "van"
lans["slo"] = "van"
lans["sm"] = "van"
lans["sq"] = "van"
lans["sr"] = "van"
lans["sv"] = "van"
lans["tam"] = "van"
lans["te"] = "van"
lans["tet"] = "van"
lans["tg"] = "van"
lans["th"] = "van"
lans["tk"] = "van"
lans["tag"] = "van"
lans["to"] = "van"
lans["tr"] = "van"
lans["tat"] = "van"
lans["ty"] = "van"
lans["uk"] = "van"
lans["ur"] = "van"
lans["uz"] = "van"
lans["vi"] = "van"
lans["yi"] = "van"
lans["zh"] = "van"
function val_to_str(v)
if type(v) == 'string' then
v = mw.ustring.gsub(v, '\n', '\\n')
if mw.ustring.match(mw.ustring.gsub(v, '[^\'"]', ''), '^"+$') then
return "'" .. v .. "'"
end
return '"' .. mw.ustring.gsub(v, '"', '\\"' ) .. '"'
else
return type(v) == 'table' and table_to_str(v) or tostring(v)
end
end
hibavan = false
kategorizalas_van = false
function error(kategorizalas_kell,about )
-- Enclose errorMsg with <span>
-- Precondition:
-- about -- string
hibavan = true
if kategorizalas_kell then kategorizalas_van = true end
local r = about
if type( about ) == "string" then
if #about == 0 then
r = "Error in Lua"
end
else
r = tostring( about )
end
return "<span class=\'error\'>" .. r .. "</span>, "
-- "<font color=\"red\">" ..' ('.. r..') ' .. "</font> "
--"<small><font color=\"black\">" ..' ('.. r..') ' .. "</font></small> "
end -- error()
function trim(str)
if str.args then
str = str.args[1]
end
if str == nil then
return nil
else
return (str:gsub("^%s*(.-)%s*$", "%1")) -- extra brackets are necessary because gsub returns multiple values
end
end
function isArabic(v)
if tonumber(v)== nil then return false else return true end
end
local function getArg(le,arg,alternativarg, assign ) -- itt eredetileg a frame nem paraméter
-- Retrieve template argument
-- Precondition:
-- le true értékkel jelzi, hogy levágható a paraméter végéről a felesleges vessző és pont
-- arg -- string or number; argument identifier
-- alternativarg -- a paraméternek a másik neve
-- assign -- any, optional; default value
local r1 = args[ arg ]
local r2 = nil
if alternativarg ~= nil then r2 = args[ alternativarg ] end
if r1 == '' or r1 ==nil then r = r2 else r = r1 end
if r == '' then r = nil end
if type( r ) ~= "string" then
if type( assign ) == nil then
r = "{{{<" .. arg .. ">}}}" --ha r nem string tipus, azaz és assign nil érték
else
r = assign -- ha r nem string tipus, és assign nem nil
end
else -- r típusa string
if #r > 1 then -- ha r strint típus és legalább két karaktert tartalmaz
local utso_karakter = string.sub(r,-1,-1);
if le then
if utso_karakter == '.' or utso_karakter == ',' then r=string.sub(r,1,-2) end --lecsípjük az utólsó pontot, vagy vesszőt
end
end
end
return r
end
local function getConf(conf,alternativconf, assign ) -- itt eredetileg a frame nem paraméter
-- Retrieve template argument
-- Precondition:
-- le true értékkel jelzi, hogy levágható a paraméter végéről a felesleges vessző és pont
-- arg -- string or number; argument identifier
-- alternativarg -- a paraméternek a másik neve
-- assign -- any, optional; default value
local r1 = config[ conf ]
local r2 = nil
if alternativconf ~= nil then r2 = config[ alternativconf ] end
if r1 == '' or r1 ==nil then r = r2 else r = r1 end
if r == '' then r = nil end
if type( r ) ~= "string" then
if type( assign ) == nil then
r = "{{{<" .. conf .. ">}}}" --ha r nem string tipus, azaz és assign nil érték
else
r = assign -- ha r nem string tipus, és assign nem nil
end
else -- r típusa string
end
return r
end
local function is_set( var ) -- lekérdezi, hogy a változónak adtunk-e értéket.
--Ha a változó értéke nil, vagy üres string, akkor false értéket ad, kben true
-- azaz a var sem nil, sem üres
return not (var == nil or var == '');
end
-- Gets the display text for a wikilink like [[A|B]] or [[B]] gives B
function removewikilink( str )
return (str:gsub( "%[%[([^%[%]]*)%]%]", function(l)
return l:gsub( "^[^|]*|(.*)$", "%1" ):gsub("^%s*(.-)%s*$", "%1");
end));
end
local OCinSoutput = setmetatable( {}, {
__newindex = function(self, key, value)
if is_set(value) then
rawset( self, #self+1, table.concat{ key, '=', mw.uri.encode( removewikilink( value ) ) } );
--> OCinSoutput[1],[2],[3]... dagad
-- az egész konstrukció a rawset és a __newindex segítségével növeli e táblát a key value párokkal
-- pop("mit tesz a concat:", self[#self]); --> rft_val_fmt=info:ofi/fmt:kev:mtx:book
end
end
});
--local function isISBN10( str)
--local function isISBN13( str)
--local function isI(str)
--local function isISBN( str)
local function _citlib(frame)
local alkategoriak = {}
local cap,capaut, capaut2, capaut3,szerzo, szerzo2, szerzo3,tit,subtit, cim, alcim = nil
local ass,ass2,ass3, edi,red, red2, loc, loc2, ev, oldal,ser,ser2,isbn,misc, url,accd,aurl,archd, lan=nil
local aut,aut2,aut3 =nil
local hiba_jelzes = ''
local alkategoriak_kellenek=getConf('alkategóriák kellenek')
--pop("Kellenek az alkategóriák??", alkategoriak_kellenek) -- igen, vagy nem a lehetséges válasz
if alkategoriak_kellenek then
if alkategoriak_kellenek == 'igen' then
--pop("Kellenek az alkategóriák", alkategoriak_kellenek)
alkategoriak_kellenek=true
else alkategoriak_kellenek=false
end
end
local sablon_kimenetek_kellenek=getConf('sablon kimenetek kellenek') -- kívánságra kikapcsolható
--pop("Sablon kimenetek kellenek?", sablon_kimenetek_kellenek) -- igen, vagy nem a lehetséges válasz
if sablon_kimenetek_kellenek then
if sablon_kimenetek_kellenek == 'igen' then
--pop("Kellenek az alkategóriák", alkategoriak_kellenek)
sablon_kimenetek_kellenek=true
else sablon_kimenetek_kellenek=false
end
else sablon_kimenetek_kellenek=true -- ha a getConf nil értékkel tért vissza.
end
cap= getArg(true,'cap','fejezetcím')
capaut= getArg(true,'capaut','fejezetszerző')
capaut2= getArg(true,'capaut2','fejezetszerző2')
capaut3= getArg(true,'capaut3','fejezetszerző3')
szerzo= getArg(true,"szerző","aut")
szerzo2= getArg(true,"szerző2","aut2")
szerzo3= getArg(true,"szerző3","aut3")
cim= getArg(true,"cím","tit")
alcim= getArg(true,"alcím","subtit")
ass = getArg(true,'ass','közreműködők')
ass2 = getArg(true,'ass2','közreműködők2')
ass3 = getArg(true,'ass3','közreműködők3')
isbn = getArg(true,'isbn')
edi = getArg(true,'edi','kiadás')
loc = getArg(true,'loc','hely')
loc2 = getArg(true,'loc2','hely2')
red = getArg(true,'red','kiadó')
red2 = getArg(true,'red2','kiadó2')
ev= getArg(true,"év","ann")
--if ev then ev = string.gsub(ev,"[%[%]]",'')end Pasztilla közlése szerint
oldal= getArg(true,"oldal","pag")
ser = getArg(true,'ser','sorozat')
sernr = getArg(true,'sernr','sorozatszám')
misc=getArg(true,"egyéb","misc")
url= getArg(false,"url")
accd=getArg(true,"elér","accd")
if accd then accd = string.gsub(accd,"[%[%]]",'') end
aurl=getArg(true,"archívurl","aurl")
archd=getArg(true,"archívdátum","archd")
if archd then archd = string.gsub(archd,"[%[%]]",'') end
lan=getArg(true,"nyelvkód","lan")
-- fejezetszerzők összeállítása capautban
local c=''
if capaut then c = capaut end
if capaut2 then
if c == '' then c = capaut2 else c = c..' – '..capaut2 end
end
if capaut3 then
if c == '' then c = capaut3 else c = c..' – '..capaut3 end
end
if c == '' then capaut = nil else capaut = c..': 'end
-- fejezetcím
if cap then CoinS_cap = cap end
-- szerzők összeállítása
local c=''
local CoinS_szerzo = nil
if szerzo then c = szerzo ; OCinSoutput["rft.au"] = szerzo;end
if szerzo2 then OCinSoutput["rft.au"] = szerzo2
if c == '' then c = szerzo2; else c = c..' – '..szerzo2 end
end
if szerzo3 then OCinSoutput["rft.au"] = szerzo3
if c == '' then c = szerzo3 else c = c..' – '..szerzo3 end
end
if c == '' then szerzo = nil else CoinS_szerzo = c ; szerzo = c..': ' end
--cím és alcím
local terminator
local CoinS_cim = nil
if cim
then cim = trim(lang:ucfirst(cim))
else cim = "(cím?)";
hiba_jelzes = hiba_jelzes..' '.. error (true,"nincs elsődleges cím")
table.insert(alkategoriak,"[[Kategória: Hibásan használt CitLib – cím nélkül]]")
end
--pop("megkérdőjelezte a címet", cim)
if alcim then
alcim=lang:ucfirst(alcim)
if (cim ~= nil and string.sub(cim,-1,-1) ~= ":")then
cim= cim..": "..alcim
else cim= cim.." "..alcim
end
end
terminator = string.sub(cim,-1,-1)
if (terminator ~= '.') then CoinS_cim = string.sub(cim, 1,-2) end
if (terminator ~= '?' and terminator ~= '!'and terminator ~= ',' and terminator ~= '.' and terminator ~= '\166' )
then cim= cim..". " end
cim ="\'\'"..cim.."\'\'"
--pop("cím in italic", cim)
-- asszisztencia
local c=''
if ass then c = ass end
if ass2 then
if c == '' then c = ass2 else c = c.."–"..ass2 end
end
if ass3 then
if c == '' then c = ass3 else c = c.."–"..ass3 end
end
if c == '' then ass = nil else ass = lang:ucfirst(c)..'. 'end
-- edi
local CoinS_edi = nil
if edi then CoinS_edi = edi ; edi = edi .. '. 'end
c = ''
if loc then
if loc2 then
if red then
if red2 then --loc,loc2,red,red2
c = c..' '..loc..': '.. red..'; '.. loc2..': '.. red2..'.'
CoinS_loc = loc ; CoinS_red = red
else --loc,loc2,red,not red2
c = c..' '..loc..'; '.. loc2..': '.. red..'.'
end
else
if red2 then --loc,loc2,not red, red2
c = c..' '..loc..': (kiadó nélkül); '.. loc2..': '.. red2..'.'
CoinS_loc = loc2 ; CoinS_red = red2
else --loc,loc2,not red, not red2
c = c..' '..loc..'; '.. loc2..': '.. '(kiadó nélkül)'..'.'
end
end
else
if red then
if red2 then --loc,not loc2, red, red2
c = c..' '..loc..': '.. red..'; '.. '(hely nélkül)'..': '.. red2..'.'
CoinS_loc = loc ; CoinS_red = red
else --loc,not loc2, red, not red2
c = c..' '..loc..': '.. red..'.'
CoinS_loc = loc ; CoinS_red = red
end
else
if red2 then --loc,not loc2, not red, red2
c = c..' '..loc..': '.. '(kiadó nélkül)'..'; '..'(hely nélkül)'..': '.. red2..'.'
else --loc,not loc2, not red, not red2
c = c..' '..loc..': '.. '(kiadó nélkül)'..'.'
end
end
end
else
if loc2 then
if red then
if red2 then --not loc,loc2, red,red2
c = c..' '..'(hely nélkül)'..': '.. red..'; '..loc2..': '.. red2..'.'
CoinS_loc = loc2 ; CoinS_red = red2
else --not loc,loc2,red, not red2
c = c..' '..'(hely nélkül)'..': '.. red..'; '..loc2..': '.. '(kiadó nélkül)'..'.'
end
else
if red2 then --not loc,loc2, not red,red2
c = c..' '..loc2..': '.. red2..'.'
CoinS_loc = loc2 ; CoinS_red = red2
else --not loc,loc2, not red,not red2
c = c..' '..loc2..': '.. '(kiadó nélkül).'
end
end
else
if red then
if red2 then --not loc, not loc2, red,red2
c = c..' '..'(hely nélkül)'..': '.. red..';'.. red2..'.'
else --not loc, not loc2, red, not red2
c = c..' '..'(hely nélkül)'..': '.. red..'.'
end
else
if red2 then --not loc, not loc2, not red,red2
c = c..' '..'(hely nélkül)'..': '.. red2..'.'
else --not loc, not loc2, not red, not red2
end
end
end
end
local kiadas = c
--]]
--==============================================================================================================
--[=[ loc és red párok EZ VOLT AZ EREDETI. FENTEBB AZ ÚJ.
local c= ''
if loc2 then c = loc2 end
if red2 then
if c == '' then
if not loc then c = '(Hely nélkül):'..red2 else end
c = '(Hely nélkül):'..red2 else c = c..': '..red2 end
else
if loc2 then
if red then c = c..': '..red
else
c = c..': '..('kiadó nélkül')-- hiba_jelzes = hiba_jelzes..' '.. error(true,'Hely kiadó nélkül')
-- table.insert(alkategoriak,"[[Kategória:Hibásan használt CitLib – hely kiadó nélkül]]")
end
end
end
local locred2
if c == '' then locred2 = nil else locred2 = c end -- "hely2: red2"
--kiadás: hely: kiadó; hely2: kiadó2.
c= ''
if loc then c = loc end
if red then
if c == '' then c = '(Hely nélkül):'..red else CoinS_loc = c ;c = c..': '..red ; CoinS_red = red end
else
if loc then c = "(kiadó?)" ; CoinS_red = nil
hiba_jelzes = hiba_jelzes..' '.. error(true,'Hely kiadó nélkül')
table.insert(alkategoriak, "[[Kategória:Hibásan használt CitLib – hely kiadó nélkül]]")
end
end
local locred
if c == '' then locred = nil else locred = c end --"hely: red"
local c= ''
if locred then c = locred end
if locred2 then
if c == '' then c = locred2 else c = c ..'; '..locred2 end
end
local kiadas
if c == '' then kiadas = nil else kiadas = c..'. ' end -- a loc:red párok végén a .
--]=]
-- év
local CoinS_ev = nil
if ev then
local count='' -- szämlälja a csereeket
ev = string.gsub(ev,"[%-]",'–') -- kiskötőjelből nagy kötőjel
ev, count=string.gsub(ev,"[^%–%[%]0123456789]",'') -- az évben csak számjegyek és nagy kötőjel valamint szögletes zárójelek maradhat
if count == 0 then
else
table.insert(alkategoriak,"[[Kategória:Hibásan használt CitLib – tiltott karakter az év paraméterben]]")
hiba_jelzes = hiba_jelzes..' '.. error (false,"tiltott karakter az év paraméterben")
end
pop('ev a gsubolása után után', ev)
CoinS_ev = ev
end
-- oldal adatok
local CoinS_oldal = nil
if oldal then
oldal = string.gsub (oldal, '-' , '–') -- kiskötőjelből nagy
oldal = string.gsub (oldal, '—' , '–') -- hetvenkvirtesből nagy
oldal = string.gsub (oldal, '%.,' , ',') -- pontot követő veszőből vesszőt
oldal = string.gsub (oldal, '%.' , '') -- pontból üreset
oldal = string.gsub (oldal, ',' , '.,') -- végül vesszőből ponot kovető vesszőt
CoinS_oldal = oldal
oldal =" "..oldal..". o. "
end
-- sorozat lekezelése
local sernum_van_de_ser_nincs = false
local CoinS_ser = nil
local CoinS_sernr = nil
if sernr~=nil and ser==nil then sernum_van_de_ser_nincs = true end
if ser then CoinS_ser = ser ;ser = '= '..ser..', ' end
local proba_sernr
if sernum_van_de_ser_nincs then
sernr="(sorozatszám?)" ;
hiba_jelzes=hiba_jelzes..' '.. error(true,"sorozatszám sorozat nélkül")
table.insert(alkategoriak,"[[Kategória:Hibásan használt CitLib – sorozatszám sorozat nélkül]]")
else
if sernr then proba_sernr=string.gsub(sernr,'[^%dIVXLCDM]','')
local nr= tonumber(proba_sernr)
if nr then CoinS_sernr = sernr
sernr= sernr..'. '
else
if not isRoman(proba_sernr) then
hiba_jelzes=hiba_jelzes..' '.. error(true,"helytelen sorozatszám ")
table.insert(alkategoriak,"[[Kategória:Hibásan használt CitLib – helytelen sorozatszám]]")
end
end
end
end
-- ISBN lekezelése
local CoinS_isbn= nil
if isbn then
pop("van isbn paraméter", isbn)
isbn=string.gsub(isbn,"ISBN",'') -- a beleírt ISBN szövegeket kivesszük
local helyes=true
local isbn_str, hiba_str=''
helyes,isbn_str, hiba_str= chISBN.isISBN(isbn)
isbn = string.gsub(isbn_str, 'ISBN ([%dXx]+)', '[[Speciális:Könyvforrások/%1|ISBN %1]]') .. ' '
CoinS_isbn = isbn_str
hiba_jelzes=hiba_jelzes..hiba_str
if helyes then pop ("helyesek a paraméterek") else
hibavan = true
table.insert(alkategoriak,"[[Kategória:Hibásan használt CitLib – helytelen ISBN kód]]")
end
end
-- URL lekezelése
local CoinS_url= nil
if url then CoinS_url= url
-- SZÜKSÉGES CSERÉK:cím=[http://crypto.com/papers/jbug-Usenix06-final.pdf Keyboards and Covert Channels"]
--newline [ ] | Ezek kellenek, mert az URL ráhúzásakor bezavarnak
--space [ ] |
--pop("tud-e az url-ről?", url)
url = string.gsub(url, '%s','%%20')-- URL kódolása
url = string.gsub(url, '\"','%%22')
url = string.gsub(url, "\'",'%%27')
url = string.gsub(url, "<",'%%3c')
url = string.gsub(url, ">",'%%3e')
url = string.gsub(url, "%[",'%%5b')
url = string.gsub(url, "%]",'%%5d')
url = string.gsub(url, "{",'%%7b')
url = string.gsub(url, "|",'%%7c')
url = string.gsub(url, "}",'%%7d')
--pop("ráhúzás előtti cím", cim)
if cap then
cap = string.gsub(cap,'\n',' ')
cap = string.gsub(cap,'%[','[')
cap = string.gsub(cap,'%]',']')
cap = string.gsub(cap,'%|','|')
cap = "[" .. url .. " " .. cap .. "]"
else
if cim then --QQQQQQQQQQQQQQQQQQQQQQQQ
cim = string.gsub(cim,'\n',' ')
cim = string.gsub(cim,'%[','[')
cim = string.gsub(cim,'%]',']')
cim = string.gsub(cim,'%|','|')
cim = "[" .. url .. " " .. cim .. "]"
--pop("ráhúzza?", cim)
end -- nem nil a cím
end -- ha cap nem üres
end -- nem nil az url
if cap then
cap = cap .. '. In '
end
local LetezoLansablon = false
if lan then
if (lan ~= nil ) and (cim==nil) --ha nincs cím akkor értelmetlen
then -- hiba_jelzes = hiba_jelzes..' '..error(true,"nyelv cím nélkül")..' '
else
if lans[lan] ~= nil then -- ha fenn van a listánkon, akkor nem jöhet PARANCSFÁJL HIBA
LetezoLansablon = frame:callParserFunction{ name = '#ifexist',args = { 'lan', lan }}
if LetezoLansablon then nyelv = frame:expandTemplate{ title = lan, args = {lan } } ..' 'end
--frame:expandTemplate{ title = 'template', args = { 'arg1', 'arg2', name = 'arg3' } }
else -- különben mi magunk kiírjuk , mert így beszédesebb
nyelv = lan -- legyen maga a megadott paraméter pl. "krixkrax"
hiba_jelzes = hiba_jelzes..' '..error(true,"ismeretlen nyelvkód")..' '
table.insert(alkategoriak,"[[Kategória:Hibásan használt CitLib – ismeretlen nyelvkód]]")
end
end
end
-- archívdátum -- archívurl
if archd then -- ha van dátum
local outarchd, dou
dou= select(2, ds.datumszuro(archd))
if dou
then outarchd = ds.honapnevesdate(dou)
if aurl then
aurl = string.gsub(aurl, '%s','%%20') -- URL ÁTKÓDOLÁSA
aurl = string.gsub(aurl, '\"','%%22')
aurl = string.gsub(aurl, "\'",'%%27')
aurl = string.gsub(aurl, "<",'%%3c')
aurl = string.gsub(aurl, ">",'%%3e')
aurl = string.gsub(aurl, "%[",'%%5b')
aurl = string.gsub(aurl, "%]",'%%5d')
aurl = string.gsub(aurl, "{",'%%7b')
aurl = string.gsub(aurl, "|",'%%7c')
aurl = string.gsub(aurl, "}",'%%7d')
archd = "<span title=\""..outarchd.."\">["..aurl.." arch".."]</span>"
else hiba_jelzes = hiba_jelzes..' '..error(true,"archívdátum van, de archívurl nélkül")
table.insert(alkategoriak,"[[Kategória:Hibásan használt CitLib – archívdátum archívurl nélkül]]")
end
else hiba_jelzes = hiba_jelzes..' '..error(true,"hibás archívdátum")
table.insert(alkategoriak,"[[Kategória:Hibásan használt CitLib – hibás archívdátum]]")
end -- if dou
end -- if archd
-- elérés dátuma
if accd then -- ha van elérés
local outaccd
local nyom=''
local nyom,dou= ds.datumszuro(accd)
--pop("a dátumszűrés eredménye",nyom)
if dou
then outaccd = ds.honapnevesdate(dou)
accd = "Hozzáférés: "..outaccd ..' '
else
hiba_jelzes = hiba_jelzes..' '..error(true,"hibás elérési dátum")
table.insert(alkategoriak,"[[Kategória:Hibásan használt CitLib – hibás elérési dátum]]")
end -- if dou
end -- if accd
-- Coins
local empty_span = '<span style="display:none;"> </span>';
local this_page = mw.title.getCurrentTitle();
local ctx_ver = "Z39.88-2004";
local coins=nil
OCinSoutput["rft.atitle"] = CoinS_cap;
OCinSoutput.rft_val_fmt = "info:ofi/fmt:kev:mtx:book";
OCinSoutput["rft.genre"] = "book"
--OCinSoutput["rft.au"] = CoinS_szerzo;
OCinSoutput["rft.btitle"] = CoinS_cim;
OCinSoutput["rft.place"] = CoinS_loc
OCinSoutput["rft.date"] = CoinS_ev
OCinSoutput["rft.series"] = CoinS_ser
OCinSoutput["rft.issue"] = CoinS_sernr
OCinSoutput["rft.pages"] = CoinS_oldal
OCinSoutput["rft.edition"] = CoinS_edi
OCinSoutput["rft.pub"] = CoinS_red;
OCinSoutput["rft.isbn"] = CoinS_isbn;
OCinSoutput.rft_id = CoinS_url
OCinSoutput.rfr_id = table.concat{ "info:sid/", mw.site.server:match( "[^/]*$" ), ":", this_page.prefixedText };
OCinSoutput = setmetatable( OCinSoutput, nil );
-- sort with version string always first, and combine.
table.sort( OCinSoutput );
table.insert( OCinSoutput, 1, "ctx_ver=" .. ctx_ver ); -- such as "Z39.88-2004"
coins = table.concat(OCinSoutput, "&");
--<small><font color=\"red\">" ..' ('.. r..') ' .. "</font></small> "
coins = '<small><span title="' .. coins .. '" class="Z3988">' .. empty_span .. '</span></small>';
-- output összeállítása
s=' '
if sablon_kimenetek_kellenek then
if capaut then s = s..capaut..' ' end
if cap then s = s..cap..' ' end
if szerzo then s = s.. szerzo..' ' end
if cim then s = s..cim..' ' end
if nyelv then s = s..nyelv..' ' end
if ass then s = s..ass..' ' end
if edi then s = s..edi..' ' end
if kiadas then s = s..kiadas..' ' end
if ev then s = s..' '..ev..'. ' end
if oldal then s = s..oldal..' ' end
if ser then s = s..ser..' ' end
if sernr then s = s..sernr..' ' end
if isbn then s = s..isbn..' ' end
if archd then s = s..archd..' ' end
if accd then s = s..accd..' ' end
if misc then s = s..misc..' ' end
if coins then s = s..coins..' ' end
-- if ou then s = s..ou end --ez csak nyomkövetésnél kell, de akkor nagyon
end
if alkategoriak_kellenek then s = s ..' '..table.concat(alkategoriak,";")..' ' end
-- vagy, vagy: azaz,ha az alkategóriák kellenek,
--akkor nem adunk hibajelzést, különben igen
--else if hibavan then s = s ..' '..hiba_jelzes..' '
if hibavan then s = s ..' '..hiba_jelzes..' ' end
-- a fölérendelt kategória marad hiba esetén
if kategorizalas_van then s = s .. ' '.. "[[Kategória:Hibás paraméterezésű CitLib-et tartalmazó lapok]]" end
return trim(s)
end
function run(frame)
local pframe = frame:getParent()
args = pframe.args -- azok a paraméterek, amelyek a sablont kisérik a Pepo41/CCitPer --sablon hivása oldalon
config = frame.args -- az #invoke utasításban átadott paraméterek
return _citlib(frame)
end
local p = {
run = run, -- az egyetlen átadadndó funkció a táblából
}
return p