Убежище
Advertisement
Убежище
35 994
страницы

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

-- [[Template:Игры]] — Отрисовываем иконки, используя [[template:Abb]]
local p = {}

function p.split (inputstr, sep) --> Функция разделения строки на массив
	local t = {}
	for str in string.gmatch(inputstr, "([^"..sep.."]+)") do
		table.insert(t, str)
	end
	return t
end

function p.getabb(frame, name, size) --> Template: Abb
	return frame:expandTemplate{ title = 'Abb', args = { mode = 'icon', icon_size = size, name } }
end

function p.titleicons(frame) --> Точка входа. Формируем списки иконок
    local preview = ''
    local fullsize = ''

    local list = p.split(frame.args[1], ',')

	for key,value in pairs(list) do

	    fullsize = fullsize .. p.getabb(frame, value, '64x64px')

		if key <= 6 then --> Максимальное число иконок в превью
	    	preview = preview .. p.getabb(frame, value, '48x48px')
	    end

	end

    return p.render(preview, fullsize)
end

function p.render(preview, fullsize) --> Выводим результат

	local result = [[
			
		<div class="va-titleicons" style="display:none">
		
			<div class="va-titleicons-preview">
				]] .. preview .. [[
			</div>
		
			<div class="va-titleicons-fullsize"><div class="va-titleicons-fullsize-content">
				]] .. fullsize .. [[
			</div></div>
		
		</div>

	]]

	result = string.gsub(result, '[\n\t] *', '') --> Оптимизируем html для устранения пустых строк

	return result

end

return p