پرش به محتوا

پودمان:FootballPlayer: تفاوت میان نسخه‌ها

از ویکی البرز
صفحه‌ای تازه حاوی «local p = {} local function add(t,h,l,d) if d and mw.text.trim(d) ~= '' then table.insert(t,{ header=h, label=l, data=d }) end end local function addHeader(t,text) table.insert(t,{ header=text }) end local function buildRows(args) local rows={} addHeader(rows,"اطلاعات فردی") add(rows,nil,"نام کامل",args["نام کامل"]) add(rows,nil,"تاریخ تولد",args["تاریخ تولد"]) ad...» ایجاد کرد
 
جزبدون خلاصۀ ویرایش
 
(یک نسخهٔ میانیِ ایجادشده توسط همین کاربر نشان داده نشد)
خط ۱: خط ۱:
local frame = mw.getCurrentFrame()
local styles = frame:extensionTag{
    name = "templatestyles",
    args = {
        src = "Module:FootballPlayer/styles.css"
    }
}
local p = {}
local p = {}


local function add(t,h,l,d)
local html = mw.html
if d and mw.text.trim(d) ~= '' then
 
table.insert(t,{
local function trim(v)
header=h,
if not v then
label=l,
return ""
data=d
})
end
end
return mw.text.trim(v)
end
local function has(v)
return trim(v) ~= ""
end
local function td(row,text,class)
row:tag("td")
:addClass(class or "")
:wikitext(text or "")
end
end


local function addHeader(t,text)
local function th(row,text,class)
table.insert(t,{
row:tag("th")
header=text
:addClass(class or "")
})
:wikitext(text or "")
end
end


local function buildRows(args)
local function addRow(tbl,label,value)
 
if not has(value) then
return
end
 
local row=tbl:tag("tr")
 
th(row,label,"football-label")
td(row,value,"football-data")
 
end
 
local function addHeader(tbl,title)
 
local row=tbl:tag("tr")
 
row:tag("th")
:attr("colspan","2")
:addClass("football-header")
:wikitext(title)
 
end
 
local function buildYouth(tbl,args)
 
local found=false
 
for i=1,10 do
 
if has(args["جوانان"..i]) then
found=true
break
end
 
end


local rows={}
if not found then
return
end


addHeader(rows,"اطلاعات فردی")
addHeader(tbl,"دوران جوانان")


add(rows,nil,"نام کامل",args["نام کامل"])
local row=tbl:tag("tr")
add(rows,nil,"تاریخ تولد",args["تاریخ تولد"])
add(rows,nil,"محل تولد",args["محل تولد"])
add(rows,nil,"قد",args["قد"])
add(rows,nil,"پست",args["پست"])
add(rows,nil,"ملیت",args["ملیت"])


addHeader(rows,"اطلاعات باشگاهی")
local cell=row:tag("td")
:attr("colspan","2")


add(rows,nil,"باشگاه کنونی",args["باشگاه کنونی"])
local t=html.create("table")
add(rows,nil,"شماره",args["شماره"])
:addClass("football-subtable")


local youth={}
local h=t:tag("tr")
 
h:tag("th"):wikitext("سال‌ها")
h:tag("th"):wikitext("باشگاه")
 
for i=1,10 do


for i=1,5 do
local years=args["سال‌های جوانان"..i]
local years=args["سال‌های جوانان"..i]
local club=args["جوانان"..i]
local club=args["جوانان"..i]


if (years and years~="") or (club and club~="") then
if has(years) or has(club) then
table.insert(youth,{
 
years=years or "",
local r=t:tag("tr")
club=club or ""
 
})
r:tag("td"):wikitext(years or "")
r:tag("td"):wikitext(club or "")
 
end
end
end
end


if #youth>0 then
cell:node(t)


addHeader(rows,"دوران جوانان")
end
local function buildClubCareer(tbl,args)


local txt='{| class="wikitable" style="width:100%;font-size:90%;"\n'
local found=false
txt=txt..'!سال‌ها!!باشگاه\n'


for _,v in ipairs(youth) do
for i=1,20 do
txt=txt.."|-\n"
 
txt=txt.."|"..v.years.."||"..v.club.."\n"
if has(args["باشگاه"..i]) then
found=true
break
end
end


txt=txt.."|}"
end
 
if not found then
return
end
 
addHeader(tbl,"دوران باشگاهی")


add(rows,nil,nil,txt)
local row=tbl:tag("tr")


end
local cell=row:tag("td")
:attr("colspan","2")
 
local t=html.create("table")
:addClass("football-subtable")
 
local h=t:tag("tr")


local clubs={}
h:tag("th"):wikitext("سال‌ها")
h:tag("th"):wikitext("باشگاه")
h:tag("th"):wikitext("بازی")
h:tag("th"):wikitext("گل")


for i=1,10 do
for i=1,20 do


local years=args["سال‌ها"..i]
local years=args["سال‌ها"..i]
خط ۷۶: خط ۱۵۰:
local goals=args["گل"..i]
local goals=args["گل"..i]


if (years and years~="") or
if has(years) or has(club) or has(apps) or has(goals) then
  (club and club~="") or
 
  (apps and apps~="") or
local r=t:tag("tr")
  (goals and goals~="") then


table.insert(clubs,{
r:tag("td"):wikitext(years or "")
years=years or "",
r:tag("td"):wikitext(club or "")
club=club or "",
r:tag("td"):wikitext(apps or "")
apps=apps or "",
r:tag("td"):wikitext(goals or "")
goals=goals or ""
})


end
end
end
end


if #clubs>0 then
cell:node(t)


addHeader(rows,"دوران باشگاهی")
end


local txt='{| class="wikitable" style="width:100%;font-size:90%;"\n'
local function buildNationalCareer(tbl,args)
txt=txt..'!سال‌ها!!باشگاه!!بازی!!گل\n'


for _,v in ipairs(clubs) do
local found=false


txt=txt.."|-\n"
for i=1,10 do


txt=txt.."|"..
if has(args["تیم ملی"..i]) then
v.years.."||"..
found=true
v.club.."||"..
break
v.apps.."||"..
end
v.goals.."\n"


end
end
 
if not found then
return
end
 
addHeader(tbl,"تیم ملی")
 
local row=tbl:tag("tr")


txt=txt.."|}"
local cell=row:tag("td")
:attr("colspan","2")


add(rows,nil,nil,txt)
local t=html.create("table")
:addClass("football-subtable")


end
local h=t:tag("tr")


local national={}
h:tag("th"):wikitext("سال‌ها")
h:tag("th"):wikitext("تیم")
h:tag("th"):wikitext("بازی")
h:tag("th"):wikitext("گل")


for i=1,5 do
for i=1,10 do


local years=args["سال‌های ملی"..i]
local years=args["سال‌های ملی"..i]
خط ۱۲۵: خط ۲۰۸:
local goals=args["گل ملی"..i]
local goals=args["گل ملی"..i]


if (years and years~="") or
if has(years) or has(team) or has(apps) or has(goals) then
  (team and team~="") or
 
  (apps and apps~="") or
local r=t:tag("tr")
  (goals and goals~="") then


table.insert(national,{
r:tag("td"):wikitext(years or "")
years=years or "",
r:tag("td"):wikitext(team or "")
team=team or "",
r:tag("td"):wikitext(apps or "")
apps=apps or "",
r:tag("td"):wikitext(goals or "")
goals=goals or ""
})


end
end
end
end


if #national>0 then
cell:node(t)


addHeader(rows,"تیم ملی")
end
function p.main(frame)


local txt='{| class="wikitable" style="width:100%;font-size:90%;"\n'
local args=frame:getParent().args
txt=txt..'!سال‌ها!!تیم!!بازی!!گل\n'


for _,v in ipairs(national) do
local tbl=html.create("table")
:addClass("wikitable")
:addClass("infobox")
:addClass("football-infobox")
:css("width","320px")
:css("float","left")
:css("margin","0 0 1em 1em")


txt=txt.."|-\n"
local title=tbl:tag("caption")
:addClass("football-title")


txt=txt.."|"..
title:wikitext(
v.years.."||"..
has(args["نام"]) and args["نام"] or mw.title.getCurrentTitle().text
v.team.."||"..
)
v.apps.."||"..
v.goals.."\n"
 
end


txt=txt.."|}"
if has(args["تصویر"]) then


add(rows,nil,nil,txt)
local row=tbl:tag("tr")


end
local cell=row:tag("td")
:attr("colspan","2")
:addClass("football-image")


return rows
local img="[[پرونده:"..args["تصویر"]


end
if has(args["اندازه تصویر"]) then
local function buildInfoboxArgs(frame,args)
img=img.."|"..args["اندازه تصویر"]
else
img=img.."|250px"
end


local infobox={}
img=img.."]]"


infobox.title=args["نام"] or mw.title.getCurrentTitle().text
cell:wikitext(img)


if args["تصویر"] and args["تصویر"]~="" then
if has(args["توضیح تصویر"]) then
infobox.image="[[پرونده:"..args["تصویر"].."]]"
end


infobox.caption=args["توضیح تصویر"]
cell:tag("div")
:addClass("football-caption")
:wikitext(args["توضیح تصویر"])


local rows=buildRows(args)
local n=1
for _,row in ipairs(rows) do
if row.header then
infobox["header"..n]=row.header
else
infobox["label"..n]=row.label
infobox["data"..n]=row.data
end
end


n=n+1
end


end
addHeader(tbl,"اطلاعات فردی")


return infobox
addRow(tbl,"نام کامل",args["نام کامل"])
addRow(tbl,"تاریخ تولد",args["تاریخ تولد"])
addRow(tbl,"محل تولد",args["محل تولد"])
addRow(tbl,"قد",args["قد"])
addRow(tbl,"پست",args["پست"])
addRow(tbl,"ملیت",args["ملیت"])


end
addHeader(tbl,"اطلاعات باشگاهی")


function p.main(frame)
addRow(tbl,"باشگاه کنونی",args["باشگاه کنونی"])
addRow(tbl,"شماره",args["شماره"])


local args
buildYouth(tbl,args)


if frame==mw.getCurrentFrame() then
buildClubCareer(tbl,args)
args=frame:getParent().args
else
args=frame
end


local infoboxArgs=buildInfoboxArgs(frame,args)
buildNationalCareer(tbl,args)


return require("Module:Infobox").infoboxTemplate(infoboxArgs)
return styles .. tostring(tbl)


end
end


return p
return p

نسخهٔ کنونی تا ‏۳۰ ژوئن ۲۰۲۶، ساعت ۱۱:۳۵

توضیحات این پودمان می‌تواند در پودمان:FootballPlayer/توضیحات قرار گیرد.

local frame = mw.getCurrentFrame()

local styles = frame:extensionTag{
    name = "templatestyles",
    args = {
        src = "Module:FootballPlayer/styles.css"
    }
}
local p = {}

local html = mw.html

local function trim(v)
	if not v then
		return ""
	end
	return mw.text.trim(v)
end

local function has(v)
	return trim(v) ~= ""
end

local function td(row,text,class)
	row:tag("td")
		:addClass(class or "")
		:wikitext(text or "")
end

local function th(row,text,class)
	row:tag("th")
		:addClass(class or "")
		:wikitext(text or "")
end

local function addRow(tbl,label,value)

	if not has(value) then
		return
	end

	local row=tbl:tag("tr")

	th(row,label,"football-label")
	td(row,value,"football-data")

end

local function addHeader(tbl,title)

	local row=tbl:tag("tr")

	row:tag("th")
		:attr("colspan","2")
		:addClass("football-header")
		:wikitext(title)

end

local function buildYouth(tbl,args)

	local found=false

	for i=1,10 do

		if has(args["جوانان"..i]) then
			found=true
			break
		end

	end

	if not found then
		return
	end

	addHeader(tbl,"دوران جوانان")

	local row=tbl:tag("tr")

	local cell=row:tag("td")
		:attr("colspan","2")

	local t=html.create("table")
		:addClass("football-subtable")

	local h=t:tag("tr")

	h:tag("th"):wikitext("سال‌ها")
	h:tag("th"):wikitext("باشگاه")

	for i=1,10 do

		local years=args["سال‌های جوانان"..i]
		local club=args["جوانان"..i]

		if has(years) or has(club) then

			local r=t:tag("tr")

			r:tag("td"):wikitext(years or "")
			r:tag("td"):wikitext(club or "")

		end

	end

	cell:node(t)

end
local function buildClubCareer(tbl,args)

	local found=false

	for i=1,20 do

		if has(args["باشگاه"..i]) then
			found=true
			break
		end

	end

	if not found then
		return
	end

	addHeader(tbl,"دوران باشگاهی")

	local row=tbl:tag("tr")

	local cell=row:tag("td")
		:attr("colspan","2")

	local t=html.create("table")
		:addClass("football-subtable")

	local h=t:tag("tr")

	h:tag("th"):wikitext("سال‌ها")
	h:tag("th"):wikitext("باشگاه")
	h:tag("th"):wikitext("بازی")
	h:tag("th"):wikitext("گل")

	for i=1,20 do

		local years=args["سال‌ها"..i]
		local club=args["باشگاه"..i]
		local apps=args["بازی"..i]
		local goals=args["گل"..i]

		if has(years) or has(club) or has(apps) or has(goals) then

			local r=t:tag("tr")

			r:tag("td"):wikitext(years or "")
			r:tag("td"):wikitext(club or "")
			r:tag("td"):wikitext(apps or "")
			r:tag("td"):wikitext(goals or "")

		end

	end

	cell:node(t)

end

local function buildNationalCareer(tbl,args)

	local found=false

	for i=1,10 do

		if has(args["تیم ملی"..i]) then
			found=true
			break
		end

	end

	if not found then
		return
	end

	addHeader(tbl,"تیم ملی")

	local row=tbl:tag("tr")

	local cell=row:tag("td")
		:attr("colspan","2")

	local t=html.create("table")
		:addClass("football-subtable")

	local h=t:tag("tr")

	h:tag("th"):wikitext("سال‌ها")
	h:tag("th"):wikitext("تیم")
	h:tag("th"):wikitext("بازی")
	h:tag("th"):wikitext("گل")

	for i=1,10 do

		local years=args["سال‌های ملی"..i]
		local team=args["تیم ملی"..i]
		local apps=args["بازی ملی"..i]
		local goals=args["گل ملی"..i]

		if has(years) or has(team) or has(apps) or has(goals) then

			local r=t:tag("tr")

			r:tag("td"):wikitext(years or "")
			r:tag("td"):wikitext(team or "")
			r:tag("td"):wikitext(apps or "")
			r:tag("td"):wikitext(goals or "")

		end

	end

	cell:node(t)

end
function p.main(frame)

	local args=frame:getParent().args

	local tbl=html.create("table")
		:addClass("wikitable")
		:addClass("infobox")
		:addClass("football-infobox")
		:css("width","320px")
		:css("float","left")
		:css("margin","0 0 1em 1em")

	local title=tbl:tag("caption")
		:addClass("football-title")

	title:wikitext(
		has(args["نام"]) and args["نام"] or mw.title.getCurrentTitle().text
	)

	if has(args["تصویر"]) then

		local row=tbl:tag("tr")

		local cell=row:tag("td")
			:attr("colspan","2")
			:addClass("football-image")

		local img="[[پرونده:"..args["تصویر"]

		if has(args["اندازه تصویر"]) then
			img=img.."|"..args["اندازه تصویر"]
		else
			img=img.."|250px"
		end

		img=img.."]]"

		cell:wikitext(img)

		if has(args["توضیح تصویر"]) then

			cell:tag("div")
				:addClass("football-caption")
				:wikitext(args["توضیح تصویر"])

		end

	end

	addHeader(tbl,"اطلاعات فردی")

	addRow(tbl,"نام کامل",args["نام کامل"])
	addRow(tbl,"تاریخ تولد",args["تاریخ تولد"])
	addRow(tbl,"محل تولد",args["محل تولد"])
	addRow(tbl,"قد",args["قد"])
	addRow(tbl,"پست",args["پست"])
	addRow(tbl,"ملیت",args["ملیت"])

	addHeader(tbl,"اطلاعات باشگاهی")

	addRow(tbl,"باشگاه کنونی",args["باشگاه کنونی"])
	addRow(tbl,"شماره",args["شماره"])

	buildYouth(tbl,args)

	buildClubCareer(tbl,args)

	buildNationalCareer(tbl,args)

return styles .. tostring(tbl)

end

return p