Ukraine map
Материал из ВикиВоины
Для документации этого модуля может быть создана страница Модуль:Ukraine map/doc
local p = {} local cacheModule = require('Module:Countries/Cache') function p.generateAllCodes(frame) local result = '' local args = frame:getParent().args -- Список всех стран и соответствующих параметров local countries = { {name = 'Винницкая область', id = 'Vinnytsya'}, {name = 'Волынская область', id = 'Volyn'}, {name = 'Днепропетровская область', id = 'Dnipr'}, {name = 'Донецкая область', id = 'Donetsk'}, {name = 'Житомирская область', id = 'Zhytomyr'}, {name = 'Закарпатская область', id = 'Transcarpathia'}, {name = 'Запорожская область', id = 'Zaporizhzhya'}, {name = 'Ивано-Франковская область', id = 'Ivano-Frankivsk'}, {name = 'Киев', id = 'Kiev-City'}, {name = 'Киевская область', id = 'Kiev'}, {name = 'Кировоградская область', id = 'Kirovohrad'}, {name = 'Крым', id = 'Crimea'}, {name = 'Луганская область', id = 'Luhansk'}, {name = 'Львовская область', id = 'Lviv'}, {name = 'Николаевская область', id = 'Mykolayiv'}, {name = 'Одесская область', id = 'Odessa'}, {name = 'Полтавская область', id = 'Poltava'}, {name = 'Ровненская область', id = 'Rivne'}, {name = 'Севастополь', id = 'Sevastopol'}, {name = 'Сумская область', id = 'Sumy'}, {name = 'Тернопольская область', id = 'Ternopil'}, {name = 'Харьковская область', id = 'Kharkiv'}, {name = 'Херсонская область', id = 'Kherson'}, {name = 'Хмельницкая область', id = 'Khmelnytskyy'}, {name = 'Черкасская область', id = 'Cherkasy'}, {name = 'Черниговская область', id = 'Chernihiv'}, {name = 'Черновицкая область', id = 'Chernivtsi'}, } -- Перебираем все страны и генерируем код для каждой for i, country in ipairs(countries) do local countryImage = args[country.name .. '-изображение'] or '' local countryTitle = args[country.name .. '-заголовок'] or '' local countryText = args[country.name .. '-текст'] or '' if countryImage ~= '' then local countryCode = p.generateCountryCode(frame, country.name, country.id, countryImage, countryTitle, countryText) result = result .. countryCode end end return result end function p.generateCountryCode(frame, country, id, image, title, text) local idAttr = mw.uri.encode(id) local cdPopupCode = mw.html.create() :tag('div') :addClass('cd-popup') :attr('id', idAttr) :tag('div') :addClass('cd-popup-container') :tag('div') :addClass('popup-content') :wikitext("[[File:" .. id .. ".png|30px|]] " .. country .. " ") :done() :tag('div') :addClass('cd-popup-image') :wikitext(image) :done() :tag('div') :addClass('title') :wikitext(title) :done() :tag('div') :addClass('height-popup-limit') :wikitext('\n' .. text) :done() :done() local rowWrap = mw.html.create() :tag('div') :addClass('row-wrap') :tag('div') :addClass('row valign-middle wikitable-row') :tag('div') :addClass('large-2 columns table-image') :wikitext(image) :done() :tag('div') :addClass('large-2 columns') :wikitext(title) :done() :tag('div') :addClass('large-8 columns') :tag('div') :addClass('height-limit') :wikitext('\n* Область: ' .. ' ' .. ("[[File:" .. id .. ".png|30px|]] " .. country .. " ")) :wikitext('\n' .. text) :done() :done() :done() local result = mw.html.create() :node(rowWrap) :node(cdPopupCode) return tostring(result) end function p.saveToCache(frame) local key = frame:preprocess('{{PAGENAME}}') local data = p.generateAllCodes(frame) cacheModule.saveData(key, data) return '' end return p