모듈:Ensemblestars

최근 편집: 2018년 2월 1일 (목) 20:48
낙엽1124 (토론 | 기여)님의 2018년 2월 1일 (목) 20:48 판 (새 문서: local p = {} ------------------------------------- local function _card(args, frame) local returnText, images, showBoth = '', {} if args['개화'] == '전' then images[#images+1...)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)

이 모듈에 대한 설명문서는 모듈:Ensemblestars/설명문서에서 만들 수 있습니다

local p = {}

-------------------------------------
local function _card(args, frame)
	local returnText, images, showBoth = '', {}

	if args['개화'] == '전' then
		images[#images+1] = '개화 전'
	elseif args['개화'] == '후' then
		images[#images+1] = '개화 후'
	elseif args['개화'] == '전후' then
		images[#images+1] = '개화 전'
		images[#images+1] = '개화 후'
	else
		images[#images+1] = '개화 전'
	end

	returnText = returnText .. '{| style="display:inline-block;"\n'

	local width = (args['크기'] == '작게' and 80 or 160), 0

	returnText = returnText .. '|-'

	for i, v in ipairs(images) do
		returnText = returnText .. '\n| style="border-width:0;width:'..width..'px;height:'..(width/4*5)..'px" | '
		local file  = mw.title.new('파일:'..args[1]..' '..v..'.png')
		
		if file.exists then 
			returnText = returnText .. '[[파일:'..args[1]..' '..v..'.png|'..width..'x'..(width/4*5)..'픽셀'

			local link = args['이미지 링크']
			if link ~= nil then 
				returnText = returnText .. '|링크='..args['이미지 링크']
			end

			returnText = returnText .. ']]'
		else
			local msg = args['크기'] == '작게' and '이미지 없음' or '이미지가 없습니다. 이미지를 업로드해 주세요.'
			returnText = returnText .. '[[파일:'..args[1]..' '..v..'.png|'..msg..']]'
		end
	end

	if args['크기'] ~= '작게' then
		returnText = returnText .. '\n|-\n| style="border-width:0;width:160px;text-align:center;" '
		if #images == 2 then 
			returnText = returnText .. 'colspan=2'
		end
		returnText = returnText .. '|[['..args[1]..']]'
	end

	returnText = returnText .. '\n|}'
	
	return returnText
end

-------------------------------------
-- frame 객체가 틀에서 호출되어 생긴 frame인지 바로 모듈이 호출되어 생긴 frame인지와 무관하게 args를 찾습니다.
-- @param frame 호출되면서 자동으로 만들어진 frame 객체.
-- @return args 호출되면서 전달받은 전달인자.
-------------------------------------
local function safeArgs(frame)
	if frame.args[1] ~= nil then --frame은 metatable이라 next(frame.args)가 안 된다고 하여 이리 되었습니다.
		return frame.args
	else
		return frame:getParent().args
	end
end

function p.card(frame)
	return _card(safeArgs(frame), frame)
end

return p