﻿<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>http://xn--90aogluj.xn--p1ai/index.php?action=history&amp;feed=atom&amp;title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%3ACategoryForProfession</id>
	<title>Модуль:CategoryForProfession - История изменений</title>
	<link rel="self" type="application/atom+xml" href="http://xn--90aogluj.xn--p1ai/index.php?action=history&amp;feed=atom&amp;title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%3ACategoryForProfession"/>
	<link rel="alternate" type="text/html" href="http://xn--90aogluj.xn--p1ai/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:CategoryForProfession&amp;action=history"/>
	<updated>2026-06-10T19:12:06Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.34.0</generator>
	<entry>
		<id>http://xn--90aogluj.xn--p1ai/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:CategoryForProfession&amp;diff=9600&amp;oldid=prev</id>
		<title>Peandre2: 1 версия импортирована</title>
		<link rel="alternate" type="text/html" href="http://xn--90aogluj.xn--p1ai/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:CategoryForProfession&amp;diff=9600&amp;oldid=prev"/>
		<updated>2020-02-21T12:19:48Z</updated>

		<summary type="html">&lt;p&gt;1 версия импортирована&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Версия 12:19, 21 февраля 2020&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Peandre2</name></author>
		
	</entry>
	<entry>
		<id>http://xn--90aogluj.xn--p1ai/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:CategoryForProfession&amp;diff=9599&amp;oldid=prev</id>
		<title>ru&gt;Putnik: хм, не тут ли проблема, что все статьи попадают в категорию</title>
		<link rel="alternate" type="text/html" href="http://xn--90aogluj.xn--p1ai/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:CategoryForProfession&amp;diff=9599&amp;oldid=prev"/>
		<updated>2017-07-22T15:56:47Z</updated>

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