Module:EditState: Difference between revisions

From wiki
Jump to navigation Jump to search
1>Xiplus-abot
m (已更改“Module:EditState”的保护设置:​高風險模板:393826引用<!-- 機器人3 -->([编辑=仅允许管理员](无限期)[移动=仅允许管理员](无限期)))
 
m (1 revision imported)
 
(No difference)

Latest revision as of 12:17, 23 April 2025

local p={} local lib_arg={}; local yesno = {}

function p.isPreview() local frame = mw.getCurrentFrame() local check_str = '337' if mw.isSubsting() then check_str = "337" end local Preview_mode = frame:preprocess(check_str); -- use magic word to get revision id return (Preview_mode == nil or mw.text.trim(Preview_mode or ) == ) -- if there is a value then this is not a preiview end

function p.previewNotice(frame) if mw.isSubsting() then return end local text = if type(frame) == type('string') then --type('string') avoid version change text = mw.text.trim(frame) else if type((frame or {}).args) ~= type({}) then frame.args = {} end text = mw.text.trim(frame.args['1'] or frame.args[1] or frame.args.text or frame['1'] or frame[1] or frame.text or ) end text = mw.text.trim(text) if text ~= then mw.addWarning(text) end return end

function p.isCreating() local frame = mw.getCurrentFrame() local check_str = '204' if mw.isSubsting() then check_str = "204" end local Preview_mode = frame:preprocess(check_str); return (Preview_mode == nil or mw.text.trim(Preview_mode or ) == ) end

function p.hasParent(layer) local frame = mw.getCurrentFrame() local times = tonumber(layer or ) or 0 local Parent = frame:getParent(); for i=2,tonumber(times) do Parent = Parent:getParent() if Parent == nil then break end end return not (Parent == nil or Parent == ) end

function p.getTitle(layer) local frame = mw.getCurrentFrame() local times = tonumber(layer or ) or 0 if times <= 0 then return frame:getTitle()end local Parent = frame:getParent(); for i=2,tonumber(times) do Parent = Parent:getParent() if Parent == nil then return end end return Parent:getTitle(); end

function p.nextSubst(frame) local args, working_frame

   if frame == mw.getCurrentFrame() then
       -- We're being called via #invoke. The args are passed through to the module
       -- from the template page, so use the args that were passed into the template.
       if lib_arg.getArgs == nil then lib_arg = require('Module:Arguments') end
       args = lib_arg.getArgs(frame, {
       	parentFirst=true,
       	trim = false,

removeBlanks = false

       })
       working_frame = frame
   else
       -- We're being called from another module or from the debug console, so assume
       -- the args are passed in directly.
       args = frame
       working_frame = mw.getCurrentFrame()
       if type(args) ~= type({}) then args = {frame} end
   end
   local input_data = args[1] or args['1']
   if mw.text.trim(input_data or ) ==  then return  end
   local num_args = {}

for key,value in pairs(args) do local num = tonumber(key) or 0 local stored = false if num then if num > 1 then num_args[key - 1] = value stored = true end if num == 1 then stored = true end end if stored ~= true then num_args[key] = value end end local str_args = mw.ustring.sub(require('Module:Template invocation').invocation(input_data, num_args),3,-3) if(mw.isSubsting())then return "{{subst:" .. str_args .. "}}" ; end return working_frame:preprocess("Template:" .. str args .. "") end

return p