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

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

Материал из Create Wiki
cwfan>Reviksedy
(Новая страница: «if not _G.mwLogFuncChanged then local oldLog = mw.log mw.oldLog = oldLog local function allToString(...) local t = { ... } for i = 1, select('#', ...) do t[i] = tostring(t[i]) end return table.concat(t, ' ') end function mw.log(...) return oldLog(getCodeLocation(), allToString(...)) end function mw.logObject(...) return oldLog(getCodeLocation(), mw.dumpObject(...)) end _G.mwLogFuncChanged = true end local list_t = { true, 't...»)
м (1 версия импортирована)
 
(не показано 6 промежуточных версий 2 участников)
Строка 1: Строка 1:
if not _G.mwLogFuncChanged then
-- Imported from: https://en.wikipedia.org/wiki/Module:Yesno
local oldLog = mw.log
mw.oldLog = oldLog
local function allToString(...)
local t = { ... }
for i = 1, select('#', ...) do
t[i] = tostring(t[i])
end
return table.concat(t, ' ')
end
function mw.log(...)
return oldLog(getCodeLocation(), allToString(...))
end
function mw.logObject(...)
return oldLog(getCodeLocation(), mw.dumpObject(...))
end
_G.mwLogFuncChanged = true
end


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


local list_t = {
return function (val, default)
    true, 'true', 't', 'tru',
    'yes', 'y',
    'on',
    'valid',
    '1', 1
}
 
local list_f = {
    false, 'false', 'f',
    'no', 'n',
    'not',
    'off',
    '0', 0
}
 
return function (val, default, nil_default)
     -- If your wiki uses non-ascii characters for any of "yes", "no", etc., you
     -- 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
     -- should replace "val:lower()" with "mw.ustring.lower(val)" in the
     -- following line.
     -- following line.
    if not nil_default and default then nil_default = default end
     val = type(val) == 'string' and val:lower() or val
     val = type(val) == 'string' and val:lower() or val
 
    if val == nil then
     local function contains(array, value)
        return nil
         for i=1,#array do
     elseif val == true
             if array[i] == value then return true end
            or val == 'yes'
        end
            or val == 'y'
            or val == 'true'
            or val == 't'
            or val == 'on'
            or val == 'ja'
            or tonumber(val) == 1
    then
         return true
    elseif val == false
            or val == 'no'
            or val == 'n'
            or val == 'false'
            or val == 'f'
            or val == 'off'
            or val == 'nein'
             or tonumber(val) == 0
    then
         return false
         return false
     end
     else
 
         return default
    if val == nil then
         if nil_default then return nil_default else return nil end
    elseif contains(list_t, val) then return true
    elseif contains(list_f, val) then return false
    else return default
     end
     end
end
end

Текущая версия от 15:16, 27 августа 2023

Ошибка 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.


-- Imported from: https://en.wikipedia.org/wiki/Module:Yesno

-- 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 == 'on'
            or val == 'ja'
            or tonumber(val) == 1
    then
        return true
    elseif val == false
            or val == 'no'
            or val == 'n'
            or val == 'false'
            or val == 'f'
            or val == 'off'
            or val == 'nein'
            or tonumber(val) == 0
    then
        return false
    else
        return default
    end
end
Сайт использует Cookie для нормальной работы