Module:If not given or empty

-- This module's check_parameter function checks whether a parameter is given, empty, or nonempty in a template call. -- It is intended to be called from templates only, as -- This is similar to, but also checks if the parameter is *present* in the template call. -- before and after are added only for cases in which when= contains the codes NG (for not given), EM (given but empty), NE (given and not empty) local p = {}

function p.check_parameter(frame) local m_args = frame.args local t_args = frame:getParent.args

local check_param = m_args[1] and mw.text.trim(m_args[1]) or  '' if (check_param ~= '') then local s, c   if not t_args[check_param] then s = m_args.notgiven or '' c = 'NG' elseif t_args[check_param] == '' then s = m_args.empty or '' c = 'EM' else s = m_args.notempty or '' c = 'NE' end

local before = '' local after = '' local when = m_args.when or '' if when:find(c) then before = m_args[2] after = m_args[3] end return before .. s .. after end error("Function called without template's parameter name") end

return p