Modulvita:CitPer

Legutóbb hozzászólt Tacsipacsi 8 évvel ezelőtt a(z) ifexist:lan témában


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)Válasz

Valószínű, frame:callParserFunction{ name = '#ifexist', args = { 'Sablon:' .. lan, lan } } akart lenni. – 94.21.122.135 (vita) 2016. április 24., 20:38 (CEST)Válasz
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)Válasz
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)Válasz

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)Válasz

Igaz! Sokkal jobb (hacsak nem akarjuk összehangolni az else ággal). – 94.21.122.135 (vita) 2016. április 25., 00:34 (CEST)Válasz
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 a frame:expandTemplate{ title = 'Nyelvcímke', args = { lan } } mellett kidobható az egész lans 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)Válasz
Visszatérés a(z) „CitPer” laphoz.