Модуль:CategoryForProfession
Зовнішній вигляд
| У документації цього модуля не вистачає або відсутній опис його функціоналу, або параметрів у його коді. Будь ласка, допоможіть покращити її. |
| Цей модуль Lua використовується на близько 97 000 сторінках або близько 2% всіх сторінок. Для уникнення великомасштабних збоїв та непотрібного навантаження на сервер, будь-які зміни спочатку потрібно перевірити на підсторінках /пісочниці та /тестів цього модуля, або у вашій пісочниці модуля. Потім перевірені зміни можуть бути впроваджені на цій сторінці єдиним редагуванням. Будь ласка, обговорюйте будь-які зміни на сторінці обговорення перед їхнім впровадженням. |
| Цей модуль позначений як К:реліз, готовий до загального вжитку (278). Він досягнув стадії готовності й вважається, що вільний від помилок і може використовуватись всюди, де знадобиться. Його можна згадувати на довідкових сторінках та інших сторінках Вікіпедії як можливість для навчання новачків. Аби зменшити навантаження на сервери та некоректний показ сторінок, його потрібно вдосконалювати через тестування у пісочниці[en], а не через застосування спроб і помилок. |
| Цей модуль позначено як К:такий, що потребує захищеного статусу (136). Завершені модулі використовуються в дуже великій кількості статей, або часто використовуються як підстановки. Позаяк акти вандалізму або помилки можуть вплинути на багато сторінок і навіть незначне редагування призведе до істотного навантаження на сервери, вони підлягають захисту від редагувань. |
| Цей модуль залежить від наступних модулів: |
Документація вище включена з Модуль:CategoryForProfession/документація. (ред. | історія)
Дописувачі можуть експериментувати на підсторінках пісочниці (ред. | різн.) та тести (створити) цього модуля.
Будь ласка, додавайте категорії до підсторінки /документація. Підсторінки цієї сторінки.
Дописувачі можуть експериментувати на підсторінках пісочниці (ред. | різн.) та тести (створити) цього модуля.
Будь ласка, додавайте категорії до підсторінки /документація. Підсторінки цієї сторінки.
local p = {}
local ListOfProfessions = mw.loadData('Модуль:ListOfProfessions')
--local ListOfCountries = mw.loadData('Модуль:ListOfCountries')
local ProfessionsCategoryByAlphabet = {}
for k, v in pairs(ListOfProfessions) do
ProfessionsCategoryByAlphabet[k] = '[[Категорія:' .. v .. ' за алфавітом]]'
end
--[[local ProfessionsCategoriesByCountry = {}
local QQQ = {}
for i, j in pairs(ListOfCountries) do
QQQ = {}
for k, v in pairs(ListOfProfessions) do--]]
--QQQ[k] = '[[Категорія:' .. j ..' ' .. v ..']]'
--[[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
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()
local result = ''
local entity = mw.wikibase.getEntityObject()
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
end
return result
end
return p