如果你看到本段文字,说明该页面未正常加载全局JS,部分功能将无法使用,请点击 刷新 重新加载页面。
如果打开页面显示缩略图创建出错,请点击刷新或页面右上WIKI功能中的刷新按钮清除页面缓存并刷新,如果还有问题,请多尝试几次。
全站通知:
模块:图鉴立绘
刷
历
编
跳到导航
跳到搜索
立绘面板
{{#invoke: 图鉴立绘 | 立绘面板 | 名称 = 平海 | 立绘 = 通常、泳装、中秋 | 通常 = [[File:平海立绘.jpg|200px]] | 泳装 = [[File:平海换装.jpg|200px]] | 中秋 = [[File:平海换装2.jpg|200px]] }}
或
{{#invoke: 图鉴立绘 | 立绘面板 | 名称 = 平海 | 立绘 = 通常、泳装、中秋 | 通常立绘 = [[File:平海立绘.jpg|200px]] | 泳装立绘 = [[File:平海换装.jpg|200px]] | 中秋立绘 = [[File:平海换装2.jpg|200px]] }}
兼容性与默认值
{{#invoke: 图鉴立绘 | 立绘面板 | 名称 = 平海 | 立绘 = }}
- 通常
- 换装
- 改造
- 结婚
请上传文件『平海结婚.jpg』,文件大小不超过2M。
模板内调用
若要在模板内添加调用模块,则可以直接将模块参数作为模板参数传递。
例如,在模板:示例模板中添加如下代码
{{#invoke: 图鉴立绘 | 模板入口}}
则在要引用模板的模板中添加如下代码
{{模板:示例模板 | 名称 = 平海 | 立绘 = 通常、泳装、中秋 | 通常立绘 = [[File:平海立绘.jpg|200px]] | 泳装立绘 = [[File:平海换装.jpg|200px]] | 中秋立绘 = [[File:平海换装2.jpg|200px]] | 其他参数 = .... }}
这相当于在模板:示例模板中直接添加了如下代码
{{#invoke: 图鉴立绘 | 立绘面板 | 名称 = 平海 | 立绘 = 通常、泳装、中秋 | 通常立绘 = [[File:平海立绘.jpg|200px]] | 泳装立绘 = [[File:平海换装.jpg|200px]] | 中秋立绘 = [[File:平海换装2.jpg|200px]] }}
HTML代码
模块生成如下的HTML代码。 配合MediaWiki:Common.css与MediaWiki:Common.js实现页面动态效果。
<div class="TabContainer"> <ul class=""> <li class="tab_li active"> 通常</li> <li class="tab_li"> 泳装</li> <li class="tab_li"> 中秋</li> </ul> <div class="Contentbox2"> <div class="tab_con active"> [[File:宁海立绘.jpg|200px]] </div><div class="tab_con"> [[File:宁海换装.jpg|200px]] </div><div class="tab_con"> [[File:宁海换装2.jpg|200px]] </div> </div> </div>
--[[
{{#invoke: 图鉴立绘 | 立绘面板
| 名称 = 平海
| 立绘 = 通常、泳装、中秋、结婚
| 通常 = [File:平海立绘.jpg]
| 泳装 = [File:平海换装.jpg]
| 中秋 = [File:平海换装2.jpg]
}}
]]
Text = mw.text
Text.IsNullOrEmpty = function(text)
return not text or Text.trim(text) == ''
end
SEPERTATOR = '、'
INFO_UPLOAD_FILE = '请上传文件『[[Special:上传文件|%s]]』,文件大小不超过2M。'
DEFAULT_FILE = '[[File:%s|350px|link=]]'
local p = {}
--------------------------------------------------
-- 主要过程
--------------------------------------------------
--解析参数列表
function ParsingParameters(arg)
local data = {all = {}}
local KEY_0 = '通常'
for key in Text.gsplit(arg['立绘'], SEPERTATOR) do
table.insert(data.all, key)
data[key] = arg[key..'立绘'] or arg[key]
end
local shipname = arg['名称']
if shipname and Text.IsNullOrEmpty(data[KEY_0]) then
data[KEY_0] = ifExist(shipname..'立绘.jpg', 'FILE')
and DEFAULT_FILE:format(shipname..'立绘.jpg')
or INFO_UPLOAD_FILE:format(shipname..'立绘.jpg');
end
return data
end
--生成默认参数
function GetDefaultParameters(shipname)
if Text.IsNullOrEmpty(shipname) then
return {
all = {'通常'};
['通常'] = INFO_UPLOAD_FILE:format('XX立绘.jpg');
}
end
return {
all = {'通常', '换装', '改造', '结婚'};
['通常'] = ifExist(shipname..'立绘.jpg', 'FILE')
and DEFAULT_FILE:format(shipname..'立绘.jpg')
or INFO_UPLOAD_FILE:format(shipname..'立绘.jpg');
['换装'] = ifExist(shipname..'换装.jpg', 'FILE')
and DEFAULT_FILE:format(shipname..'换装.jpg')
or INFO_UPLOAD_FILE:format(shipname..'换装.jpg');
['改造'] = ifExist(shipname..'改造.jpg', 'FILE')
and DEFAULT_FILE:format(shipname..'改造.jpg')
or INFO_UPLOAD_FILE:format(shipname..'改造.jpg');
['结婚'] = ifExist(shipname..'结婚.jpg', 'FILE')
and DEFAULT_FILE:format(shipname..'结婚.jpg')
or INFO_UPLOAD_FILE:format(shipname..'结婚.jpg');
}
end
--从数据包生成整个面板
--[[
TabContainer
ul
li.tab_li.active
li.tab_li
div
.tab_con.active
.tab_con
]]
function GenerateWholePanel(data)
local content = [[<div class="TabContainer"><ul>]]
for i, key in ipairs(data.all) do
content = content..([[<li class="tab_li %s">%s</li>]]
):format(
i == 1 and 'active' or '',
key
)
end
content = content .. [[</ul><div>]]
for i, key in ipairs(data.all) do
content = content..([[<div class="tab_con %s">%s</div>]]
):format(
i == 1 and 'active' or '',
data[key] or ''
)
end
return content..[[</div></div>]]
end
p.GenerateWholePanel = GenerateWholePanel
--------------------------------------------------
-- 函数入口
--------------------------------------------------
p['立绘面板'] = function (frame)
local data = Text.IsNullOrEmpty(frame.args['立绘'])
and GetDefaultParameters(frame.args['名称'])
or ParsingParameters(frame.args)
return GenerateWholePanel(data)
end
p['模板入口'] = function(frame)
return p['立绘面板'](frame:getParent())
end
p['测试'] = function (frame)
return Text.nowiki(p['立绘面板'](frame))
end
--------------------------------------------------
-- 工具函数
--------------------------------------------------
--页面是否存在
function ifExist(title, ns)
return mw.title.new(title, ns).exists
end
return p