categoryforprofession

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

local p = {}  local ListOfProfessions = mw.loadData( 'Модуль:ListOfProfessions' ) local ListOfCountries = mw.loadData( 'Модуль:ListOfCountries' )  local ProfessionsCategoryByAlphabet = {} for k, v in pairs(ListOfProfessions) do ProfessionsCategoryByAlphabet[k] = '[[Category:' .. v .. ' алапатах]]' end  local ProfessionsCategoriesByCountry = {} local QQQ = {} for i, j in pairs(ListOfCountries) do QQQ = {} for k, v in pairs(ListOfProfessions) do QQQ[k] = '[[Category:' .. v ..' ' .. j ..']]' end ProfessionsCategoriesByCountry[i] = QQQ end  local function MakeGeneralCategories(professionsList, dict) local res = '' for i, prof in pairs(professionsList) do local cat=nil if(prof.mainsnak.datavalue) then -- если значение свойства "значение неизвестно", то datavalue nil id = 'Q' .. prof.mainsnak.datavalue.value['numeric-id'] cat = dict[id]; end if cat ~= nil then res = res .. cat; end end     return res end  local function MakeCountriesCategories(countriesList, professionsList) local res = '' for i, cant in pairs(countriesList) do if cant.mainsnak.datavalue ~= nil then id = 'Q' .. cant.mainsnak.datavalue.value['numeric-id'] local professionsCategories = ProfessionsCategoriesByCountry[id]; if professionsCategories ~= nil then res = res .. MakeGeneralCategories(professionsList, professionsCategories); end end end     return res end  function p.mainFunction(frame) local result = '' local wbStatus, entity = pcall( mw.wikibase.getEntity )  if wbResult ~= true then return '' -- [[Category:Википеди:Страницы с ошибками скриптов, использующих Викиданные]] end  if entity ~= nil and entity.claims ~= nil then if entity.claims[ 'P106' ] ~= nil then professions = entity.claims[ 'P106' ] result = result .. MakeGeneralCategories(professions, ProfessionsCategoryByAlphabet) if entity.claims[ 'P27' ] ~= nil then countries = entity.claims[ 'P27' ] result = result .. MakeCountriesCategories(countries, professions) end end local args = {} if frame == mw.getCurrentFrame() then if frame.args['без категорий'] == nil then frame = frame:getParent(); end if frame ~= nil then args = frame.args; end else args = frame end -- исключаем ненужные категории указанные в параметре через точку с запятой     local excude = args['без категорий'];     if excude ~= nil and excude ~= '' then     exclude = mw.text.split(excude, '%s*;%s*' ) for i, v in ipairs(exclude) do  local cat = mw.ustring.gsub( v, "([%(%)%.%%%+%-%*%?%[%^%$%]])", "%%%1" ); -- маскируем спецсимволы result = mw.ustring.gsub(result, '%[%[Категория:' .. cat .. '%]%]', ''); end     end; end return result end  return p 

Tags:

🔥 Trending searches on Wiki ГӀалгӀай:

ГӀалгӀай мохкФерменташХIиндонезиБайтулмакъдисМархаПаччахьалкхеБельгиБолгарой моттХаЧан-тар 1ХьамискИдал1971 шуТуркий мохк1920 шу1911 шуБоготаМалхШира МисареЛатиний моттГеографе координаташЭрсий МоттХӀиранКиноКхалсагФордгӀалой моттДжакарта1983 шуФаьрсий моттКавказа лоамаш1937 шуСахьата оасаАрктикаТанаГаРума империНоргехьеАлмазхийАьшкан замаФаьренгий моттАрхитектураРеспублика (Эрсече)ГӀалгӀайчен пхьешМухьаммад ПайхамарЗаьзгакъонгий-КоаФилософиМексикаАьшкХьонкВикиЗӀилбухера ЕвропаМ (кириллица)ВенесуэлаБерлинМаьждигКонгоЭрмалой мотт1955 шуАнархизмХӀабишАлгебраИрак5КубаЕврази1954 шу🡆 More