<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://wiki.fetbuk.ru/w/index.php?action=history&amp;feed=atom&amp;title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%3AVotes</id>
	<title>Модуль:Votes - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.fetbuk.ru/w/index.php?action=history&amp;feed=atom&amp;title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%3AVotes"/>
	<link rel="alternate" type="text/html" href="https://wiki.fetbuk.ru/w/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Votes&amp;action=history"/>
	<updated>2026-05-06T16:10:15Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.36.1</generator>
	<entry>
		<id>https://wiki.fetbuk.ru/w/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Votes&amp;diff=933&amp;oldid=prev</id>
		<title>Lanmikeman: 1 версия импортирована</title>
		<link rel="alternate" type="text/html" href="https://wiki.fetbuk.ru/w/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Votes&amp;diff=933&amp;oldid=prev"/>
		<updated>2022-03-09T19:25:14Z</updated>

		<summary type="html">&lt;p&gt;1 версия импортирована&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&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: #202122; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия 19:25, 9 марта 2022&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>Lanmikeman</name></author>
	</entry>
	<entry>
		<id>https://wiki.fetbuk.ru/w/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Votes&amp;diff=932&amp;oldid=prev</id>
		<title>https://ru.wikipedia.org/wiki/&gt;Jaguar K: отмена правки от 20:46, 8 февраля 2022 участника Jaguar K (обс.): не работает</title>
		<link rel="alternate" type="text/html" href="https://wiki.fetbuk.ru/w/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Votes&amp;diff=932&amp;oldid=prev"/>
		<updated>2022-02-08T21:34:03Z</updated>

		<summary type="html">&lt;p&gt;&lt;a href=&quot;https://ru.wikipedia.org/wiki/%C3%97&quot; class=&quot;extiw&quot; title=&quot;вп:×&quot;&gt;отмена&lt;/a&gt; правки от &lt;a href=&quot;/wiki/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F/119907673&quot; title=&quot;Служебная:Изменения/119907673&quot;&gt;20:46, 8 февраля 2022&lt;/a&gt; участника &lt;a href=&quot;/wiki/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/Jaguar_K&quot; title=&quot;Служебная:Вклад/Jaguar K&quot;&gt;Jaguar K&lt;/a&gt; (&lt;a href=&quot;/w/index.php?title=UT:Jaguar_K&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;UT:Jaguar K (страница не существует)&quot;&gt;обс.&lt;/a&gt;): не работает&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt; ---- Этот модуль подсчитывает голоса в секциях голосования&lt;br /&gt;
local votes = {}&lt;br /&gt;
&lt;br /&gt;
function votes.count(frame)&lt;br /&gt;
    local new_args = votes._getParameters( frame.args, { &amp;#039;page&amp;#039;, &amp;#039;level&amp;#039;, &amp;#039;support&amp;#039;, &amp;#039;oppose&amp;#039;, &amp;#039;neutral&amp;#039;, &amp;#039;namespace&amp;#039;, &amp;#039;format&amp;#039;, &amp;#039;template&amp;#039;, &amp;#039;unordered&amp;#039; } );&lt;br /&gt;
    local page = mw.ustring.gsub(new_args[&amp;#039;page&amp;#039;] or &amp;#039;&amp;#039;, &amp;#039;_&amp;#039;, &amp;#039; &amp;#039;);&lt;br /&gt;
    local namespace = new_args[&amp;#039;namespace&amp;#039;] or &amp;#039;&amp;#039;;&lt;br /&gt;
    local level = new_args[&amp;#039;level&amp;#039;] or 3;&lt;br /&gt;
    local fmt =  new_args[&amp;#039;format&amp;#039;] or &amp;#039;row&amp;#039;;&lt;br /&gt;
    local template = new_args[&amp;#039;template&amp;#039;] or &amp;#039;&amp;#039;;&lt;br /&gt;
    local unordered = new_args[&amp;#039;unordered&amp;#039;] or false;&lt;br /&gt;
    local sections = {&lt;br /&gt;
        support = { name = new_args[&amp;#039;support&amp;#039;] or &amp;#039;За&amp;#039;, count = 0},&lt;br /&gt;
        oppose  = { name = new_args[&amp;#039;oppose&amp;#039;]  or &amp;#039;Против&amp;#039;, count = 0},&lt;br /&gt;
        neutral = { name = new_args[&amp;#039;neutral&amp;#039;] or &amp;#039;Воздержались&amp;#039;, count = 0}&lt;br /&gt;
    }&lt;br /&gt;
    local pagepointer;&lt;br /&gt;
    local pattern = &amp;quot;\n#[^#*:][^\n]+&amp;quot;; -- подсчёт нумерованных списков&lt;br /&gt;
    if page == &amp;#039;&amp;#039; then&lt;br /&gt;
        pagepointer=mw.title.getCurrentTitle()&lt;br /&gt;
        assert(pagepointer,&amp;quot;failed to access getCurrentTitle&amp;quot;)&lt;br /&gt;
    else&lt;br /&gt;
        pagepointer=mw.title.new(page, namespace)&lt;br /&gt;
        assert(pagepointer,&amp;quot;failed to access mw.title.new(&amp;quot;..tostring(page)..&amp;quot;)&amp;quot;)&lt;br /&gt;
    end&lt;br /&gt;
    if type( unordered ) == &amp;#039;string&amp;#039; and unordered ~= &amp;#039;false&amp;#039; and unordered ~= &amp;#039;no&amp;#039; and unordered ~= &amp;#039;0&amp;#039; then&lt;br /&gt;
    	pattern = &amp;quot;\n%*[^#*:][^\n]+&amp;quot;; -- подсчёт ненумерованных списков&lt;br /&gt;
    end &lt;br /&gt;
    local text=pagepointer.getContent(pagepointer);&lt;br /&gt;
    if text ~= nil then&lt;br /&gt;
	    text= mw.ustring.gsub( text, &amp;quot;&amp;lt;!%-%-.-%-%-&amp;gt;&amp;quot;, &amp;quot;&amp;quot; ); -- убираем HTML комментарии&lt;br /&gt;
	    local hpref = mw.ustring.rep(&amp;quot;=&amp;quot;, tonumber(level));&lt;br /&gt;
	    for k, v in pairs(sections) do &lt;br /&gt;
	    	local name = mw.ustring.gsub( v.name, &amp;quot;([%(%)%.%%%+%-%*%?%[%^%$%]])&amp;quot;, &amp;quot;%%%1&amp;quot; );&lt;br /&gt;
	        local t = mw.ustring.match(text, &amp;quot;\n&amp;quot; .. hpref .. &amp;quot;[^=]-&amp;quot; .. name .. &amp;quot;[^=]-&amp;quot; .. hpref ..&amp;quot;(\n.-)\n=&amp;quot;);&lt;br /&gt;
	        if t ~= nil then&lt;br /&gt;
	            t, v.count = mw.ustring.gsub(t, pattern, &amp;quot;&amp;quot;); -- количество голосов&lt;br /&gt;
	        end&lt;br /&gt;
	    end&lt;br /&gt;
	end&lt;br /&gt;
    local percent;&lt;br /&gt;
    if sections.support.count == 0 then&lt;br /&gt;
        percent = &amp;quot;0&amp;amp;nbsp;%&amp;quot;&lt;br /&gt;
    else&lt;br /&gt;
        percent = mw.ustring.format(&amp;quot;%.2f&amp;amp;nbsp;%%&amp;quot;, sections.support.count * 100 / (sections.support.count + sections.oppose.count))&lt;br /&gt;
    end&lt;br /&gt;
    if template ~= &amp;#039;&amp;#039; then&lt;br /&gt;
    	local targs = {};&lt;br /&gt;
    	local pframe = frame:getParent();&lt;br /&gt;
    	if pframe ~= nil then&lt;br /&gt;
    		for key, value in pairs(pframe.args) do&lt;br /&gt;
    			targs[key] =  value;&lt;br /&gt;
    		end&lt;br /&gt;
    	end&lt;br /&gt;
    	targs[&amp;#039;за&amp;#039;] = tostring(sections.support.count);&lt;br /&gt;
    	targs[&amp;#039;против&amp;#039;] = tostring(sections.oppose.count);&lt;br /&gt;
    	targs[&amp;#039;воздержались&amp;#039;] = tostring(sections.neutral.count);&lt;br /&gt;
    	targs[&amp;#039;page&amp;#039;] = page;&lt;br /&gt;
    	return frame:expandTemplate{ title = template, args = targs }&lt;br /&gt;
    end	&lt;br /&gt;
    if fmt == &amp;#039;mini&amp;#039; then&lt;br /&gt;
		return sections.support.count .. &amp;#039;/&amp;#039; .. sections.oppose.count .. &amp;#039;/&amp;#039; .. sections.neutral.count .. &amp;#039;&amp;amp;nbsp;—&amp;amp;nbsp;&amp;#039; .. percent;&lt;br /&gt;
    else&lt;br /&gt;
		return &amp;quot;\n&amp;lt;tr&amp;gt;&amp;quot; ..&lt;br /&gt;
	      &amp;quot;&amp;lt;td class=\&amp;quot;criteriaCheck-supportVotesCount\&amp;quot;&amp;gt;&amp;quot; .. sections.support.count .. &amp;quot; &amp;lt;/td&amp;gt;&amp;quot; ..&lt;br /&gt;
	      &amp;quot;&amp;lt;td class=\&amp;quot;criteriaCheck-opposeVotesCount\&amp;quot;&amp;gt;&amp;quot; .. sections.oppose.count .. &amp;quot; &amp;lt;/td&amp;gt;&amp;quot; ..&lt;br /&gt;
	      &amp;quot;&amp;lt;td class=\&amp;quot;criteriaCheck-neutralVotesCount\&amp;quot;&amp;gt;&amp;quot; .. sections.neutral.count .. &amp;quot; &amp;lt;/td&amp;gt;&amp;quot; ..&lt;br /&gt;
	      &amp;quot;&amp;lt;td class=\&amp;quot;criteriaCheck-supportPercent\&amp;quot;&amp;gt;&amp;quot; .. percent .. &amp;quot; &amp;lt;/td&amp;gt;&amp;quot; ..&lt;br /&gt;
	     &amp;quot;&amp;lt;/tr&amp;gt;&amp;quot;;&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Таблица параметров&lt;br /&gt;
function votes._getParameters( frame_args, arg_list )&lt;br /&gt;
    local new_args = {};&lt;br /&gt;
    local index = 1;&lt;br /&gt;
    local value;&lt;br /&gt;
 &lt;br /&gt;
    for i,arg in ipairs( arg_list ) do&lt;br /&gt;
        value = frame_args[arg]&lt;br /&gt;
        if value == nil then&lt;br /&gt;
            value = frame_args[index];&lt;br /&gt;
            index = index + 1;&lt;br /&gt;
        end&lt;br /&gt;
        new_args[arg] = value;&lt;br /&gt;
    end&lt;br /&gt;
 &lt;br /&gt;
    return new_args;&lt;br /&gt;
end  &lt;br /&gt;
&lt;br /&gt;
return votes&lt;/div&gt;</summary>
		<author><name>https://ru.wikipedia.org/wiki/&gt;Jaguar K</name></author>
	</entry>
</feed>