Перейти к содержанию
Главное меню
Главное меню
переместить в боковую панель
скрыть
Навигация
Заглавная страница
Указатели
Свежие правки
Случайная страница
Справка по MediaWiki
Народные Сказки
Поиск
Найти
Создать учётную запись
Войти
Персональные инструменты
Создать учётную запись
Войти
Страницы для неавторизованных редакторов
узнать больше
Вклад
Обсуждение
Редактирование:
Модуль:CategoryForProfession
Модуль
Обсуждение
English
Читать
Править код
История
Инструменты
Инструменты
переместить в боковую панель
скрыть
Действия
Читать
Править код
История
Общие
Ссылки сюда
Связанные правки
Служебные страницы
Сведения о странице
Внимание:
Вы не вошли в систему. Ваш IP-адрес будет общедоступен, если вы запишете какие-либо изменения. Если вы
войдёте
или
создадите учётную запись
, её имя будет использоваться вместо IP-адреса, наряду с другими преимуществами.
Анти-спам проверка.
Не
заполняйте это!
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] = '[[Категория:' .. 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 '' -- [[Категория:Википедия:Страницы с ошибками скриптов, использующих Викиданные]] 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
Описание изменений:
Пожалуйста, учтите, что любой ваш вклад в проект «Народные Сказки» может быть отредактирован или удалён другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см.
РуСказки:Авторские права
).
НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!
Отменить
Справка по редактированию
(в новом окне)
Отобразить/Скрыть ограниченную ширину содержимого