模組:Football squad
外观
| 此模块已评为beta版,可广泛使用。因其新近完成,请谨慎使用,以确保输出结果符合预期。 |
Implements Template:Football squad. Can be invoked directly using
{{#invoke:Football squad|navbox}}
使用方法
[编辑]{{Football squad}} is designed to be used within squad list templates (typically placed at the bottom of a player page) in order to make editing and standardisation easier. If you want to use this template first set up a new template for your squad, typically called something like Template:(team name) squad.
- name:需使用模板的名稱,不含Template:。此欄用作顯示左上角的模板維護連結。
- teamname:球隊名稱一欄請使用該球會在維基百科條目所使用的名稱,以英格蘭足球會「西汉姆联足球俱乐部」(West Ham)為例,應使用「西汉姆联足球俱乐部」避免連結出現錯誤。
- title:球隊顯示名稱,name一欄已為title一欄提供連結,title一欄需使用球隊的常用名稱。球隊名稱可加入手工轉換標籤
-{zh-hans:簡體字譯名;zh-hant:繁體字譯名;zh-hk:香港譯名;zh-tw:台灣譯名;zh-sg:新馬譯名;zh-mo:香港譯名;}-以作用詞處理。
球員條目連結應使用[[球員條目名稱|-{zh-hans:簡體字譯名;zh-hant:繁體字譯名;zh-hk:香港譯名;zh-tw:台灣譯名;zh-sg:新馬譯名;zh-mo:香港譯名;}-的方法處理。
Templates useful for formatting the list are:
- {{football squad2 player}} - takes parameters "no" (number) and "name" (player name).
- {{football squad manager}} - takes the parameter "name" (manager name) and the optional parameter "title" (defaults to "Manager"). Has no bullet mark afterward, use only as the last entry on a list.
{{football squad
|name={{subst:PAGENAME}}
|teamname=利物浦足球俱乐部
|title=利物浦
|bgcolor=red
|textcolor=white
|bordercolor=gold
|list=<div>
{{football squad2 player|no=2|name=[[安德雷亚·多塞纳|多塞纳]]}}
{{football squad2 player|no=3|name=[[史蒂夫·芬南|芬南]]}}
{{football squad2 player|no=4|name=[[萨米·海皮亚|海皮亚]]}}
{{football squad2 player|no=5|name=[[丹尼尔·阿格|阿格]]}}
{{football squad2 player|no=8|name=[[史蒂文·杰拉德|杰拉德]]}}
{{football squad2 player|no=9|name=[[费尔南多·托雷斯|费尔南多·托雷斯]]}}
{{football squad manager|name=[[拉法埃尔·贝尼特斯|贝尼特斯]]}}
</div>}}
效果:
-- This implements Template:Football squad
local p = {}
local getArgs = require('Module:Arguments').getArgs
local Navbox = require('Module:Navbox')
local function buildList(args, listType)
local list={}
for k, v in pairs(args) do
if (type(k) == 'string') and (mw.ustring.match((v or ''),'%S') ~= nil) then
local prefix, n = k:sub(1,string.len(listType)), k:sub(string.len(listType)+1)
if prefix == listType and (tonumber(n) or n == '') then
if listType == 'manager' then
n = (args['manager_type' .. n] or "Manager") .. ':'
end
if k == listType then k = listType .. '1' end
local row = string.format('* <span class="nowrap agent vcard fbsquad_%s">%s <span class="fn">%s</span></span>', k, n, v)
table.insert(list, row)
end
end
end
table.sort(list, function (x, y) return tonumber(string.match(x, 'fbsquad_' .. listType .. '(%d*)"')) < tonumber(string.match(y, 'fbsquad_' .. listType .. '(%d*)"')) end )
return table.concat(list, "\n") .. "\n"
end
function p.navbox(frame)
local args = getArgs(frame)
args.name = args.name or "{{{name}}}"
args.state = args.state or "autocollapse"
args.teamname = args.teamname or "{{{teamname}}}"
args.bgcolor = args.bgcolor or "#ccf"
args.textcolor = args.textcolor or "#000"
args.bordercolor = args.bordercolor or ""
args.list1 = buildList(args, 'p') .. (args.list1 or args.list or '') .. buildList(args, 'manager')
if args.list1 == '' then args.list1 = '{{{list}}}' end
args.titlestyle = args.titlestyle or ("background:" .. args.bgcolor ..
"; color:" .. args.textcolor ..
"; box-shadow: inset 1px 1px 0 " .. args.bordercolor .. ", inset -1px -1px 0 " .. args.bordercolor ..
"; width:87%;")
args.title = args.title or args.teamdisplay or args.teamname
args.title = "[[" .. args.teamname .. "|<span style=\"color:" .. args.textcolor .. ";\">" .. args.title .. "</span>]] <span style=\"color:" .. args.textcolor .. ";\"> – 现役球员名单</span>"
return Navbox._navbox({
name = args.name,
state = args.state,
bodystyle = nil,
bodyclass = "vcard",
titleclass = "fn org",
listclass = "hlist",
titlestyle = args.titlestyle,
title = args.title,
list1 = args.list1
})
end
return p