Открыть меню
Открыть персональное меню
Вы не представились системе
Your IP address will be publicly visible if you make any edits.

Модуль:Yesno: различия между версиями

Материал из Create Wiki
qqq>Hachimitsu
(Created page with "-- Function allowing for consistent treatment of boolean-like wikitext input. -- It works similarly to the template {{yesno}}. return function (val, default) -- If your wiki...")
 
wp>Jack who built the house
(-«x»: решили, что это плохой вариант для true, так как может ассоциироваться как раз с false, при этом, насколько помню, он так нигде и не стал использоваться)
Строка 13: Строка 13:
or val == 'y'
or val == 'y'
or val == 'true'
or val == 'true'
or val == 't'
or val == 'да'
or val == 'д'
        or val == '+'
or tonumber(val) == 1
or tonumber(val) == 1
then
then
Строка 20: Строка 24:
or val == 'n'
or val == 'n'
or val == 'false'
or val == 'false'
or val == 'f'
or val == 'нет'
or val == 'н'
or val == '-'
or tonumber(val) == 0
or tonumber(val) == 0
then
then

Версия от 13:23, 16 июня 2018

Ошибка Lua в Модуль:DependencyList на строке 565: attempt to index field 'smw' (a nil value).


Module:Yesno provides a consistent interface for processing boolean or boolean-style string input. While Lua allows the true and false boolean values, wikicode templates can only express boolean values through strings such as "yes", "no", etc. This module processes these kinds of strings and turns them into boolean input for Lua to process. It also returns nil values as nil, to allow for distinctions between nil and false. The module also accepts other Lua structures as input, i.e. booleans, numbers, tables, and functions. If it is passed input that it does not recognise as boolean or nil, it is possible to specify a default value to return.


-- Function allowing for consistent treatment of boolean-like wikitext input.
-- It works similarly to the template {{yesno}}.

return function (val, default)
	-- If your wiki uses non-ascii characters for any of "yes", "no", etc., you
	-- should replace "val:lower()" with "mw.ustring.lower(val)" in the
	-- following line.
	val = type(val) == 'string' and val:lower() or val
	if val == nil then
		return nil
	elseif val == true 
		or val == 'yes'
		or val == 'y'
		or val == 'true'
		or val == 't'
		or val == 'да'
		or val == 'д'
        or val == '+'
		or tonumber(val) == 1
	then
		return true
	elseif val == false
		or val == 'no'
		or val == 'n'
		or val == 'false'
		or val == 'f'
		or val == 'нет'
		or val == 'н'
		or val == '-'
		or tonumber(val) == 0
	then
		return false
	else
		return default
	end
end
Сайт использует Cookie для нормальной работы