Modulvita:CitPer
ifexist:lan
szerkesztés@Pepo41: Most derült ki, hogy a 673. sorban lévő frame:callParserFunction{ name = '#ifexist',args = { 'lan', lan }}
(láthatatlan) piros linkeket generál. Egyáltalán mi az értelme? Ha jól gondolom, ez a {{#ifexist:lan|hu}}
wikikóddal lenne egyenlő (bár ehhez képest használja a megfelelő sablonokat…). Jó lenne valami dokumentáció (vagy javítás, ha tényleg nem jó). --Tacsipacsi vita 2016. április 24., 19:41 (CEST)
- Valószínű,
frame:callParserFunction{ name = '#ifexist', args = { 'Sablon:' .. lan, lan } }
akart lenni. – 94.21.122.135 (vita) 2016. április 24., 20:38 (CEST) - Az utánalévő if mindig igaz lesz, mert a callParserFunction üres string-et ad vissza, ha nincs olyan sablon. A probléma onnan ered, hogy a
{{huuu}}
piros link lesz, de a
frame:expandTemplate{ title = 'huuu' }
-ra elszáll a Lua. Piros link kéne, költséges ellenőrzés nélkül, de úgy látszik, nem lehet. – 94.21.122.135 (vita) 2016. április 24., 23:35 (CEST) - Hacsak így nem:
if lans[lan] ~= nil then -- ha fenn van a listánkon, akkor nem jöhet PARANCSFÁJL HIBA
LetezoLansablon, nyelv = pcall(frame.expandTemplate, frame, { title = lan })
if not LetezoLansablon then
nyelv = '[[Sablon:' .. lang:ucfirst(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("ismeretlen nyelvkód")..' '
end
– 94.21.122.135 (vita) 2016. április 25., 00:13 (CEST)
Szerintem a frame:preprocess('{{' .. lan .. '}}')
is jó, ez pontosan azt adja vissza, mint ha wikiszövegből hívnánk: a sablon kibontva vagy piros link. (Egyébként nem szeretnél regisztrálni? Lenne mit bütykölni a modulokon errefelé…) --Tacsipacsi vita 2016. április 25., 00:25 (CEST)
- Igaz! Sokkal jobb (hacsak nem akarjuk összehangolni az else ággal). – 94.21.122.135 (vita) 2016. április 25., 00:34 (CEST)
- Sőt: a
{{hu}}
a{{nyelvcímke}}
(?) sablont hívja meg, ami viszont ismeretlen paraméternél magát a paramétert adja vissza. Úgyhogy aframe:expandTemplate{ title = 'Nyelvcímke', args = { lan } }
mellett kidobható az egészlans
tömb, és pontosan a fenti tíz sornyi kóddal megegyező végeredményt ad. Pl.:{{nyelvcímke|hu}}
(?) → (magyarul),{{nyelvcímke|angolul és németül}}
(?) → (angolul és németül). --Tacsipacsi vita 2016. április 25., 19:55 (CEST)
- Sőt: a