Перейти к содержанию

Модуль:Игроки клуба

Материал из Наро-Фоминский Футбол
Версия от 16:33, 20 октября 2026; Bot (обсуждение | вклад) (Название категории игроков по странице клуба (для {{Футбольный клуб}}))
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)

Для документации этого модуля может быть создана страница Модуль:Игроки клуба/doc

-- Категория игроков футбольного клуба по названию его страницы.
-- «Название (футбольный клуб, Место[, год])» → «Игроки ФК «Название» (Место[, год])»;
-- приставка «ФК » в начале названия отбрасывается («ФК Сокол» → «Сокол»).
-- Используется в {{Футбольный клуб}}: строка «Игроки» со ссылкой на категорию.
local p = {}

function p.category(title)
	local base, place = mw.ustring.match(title or '', '^(.-) %(футбольный клуб, (.+)%)$')
	if not base then
		return nil
	end
	base = mw.ustring.gsub(base, '^ФК ', '')
	return 'Игроки ФК «' .. base .. '» (' .. place .. ')'
end

-- {{#invoke:Игроки клуба|link}} — ссылка «все игроки клуба», если категория существует;
-- необязательный параметр 1 — название страницы клуба (по умолчанию текущая страница).
function p.link(frame)
	local args = frame.args
	local page = args[1]
	if not page or page == '' then
		page = mw.title.getCurrentTitle().text
	end
	local cat = p.category(page)
	if not cat then
		return ''
	end
	local t = mw.title.new(cat, 14)
	if not t or not t.exists then
		return ''
	end
	local text = args.text
	if not text or text == '' then
		text = 'все игроки клуба'
	end
	return '[[:Категория:' .. cat .. '|' .. text .. ']]'
end

-- {{#invoke:Игроки клуба|name}} — только название категории (без пространства имён).
function p.name(frame)
	local page = frame.args[1]
	if not page or page == '' then
		page = mw.title.getCurrentTitle().text
	end
	return p.category(page) or ''
end

return p