<?xml version="1.0" encoding="windows-1251"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<atom:link href="https://neilpapaevamama.rusff.me/export.php?type=rss" rel="self" type="application/rss+xml" />
		<title>pommap</title>
		<link>http://neilpapaevamama.rusff.me/</link>
		<description>pommap</description>
		<language>ru-ru</language>
		<lastBuildDate>Sat, 05 Jul 2025 13:37:03 +0300</lastBuildDate>
		<generator>MyBB/mybb.ru</generator>
		<item>
			<title>Короткое названия</title>
			<link>http://neilpapaevamama.rusff.me/viewtopic.php?pid=68#p68</link>
			<description>&lt;p&gt;Check additional info&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Fumuse)</author>
			<pubDate>Sat, 05 Jul 2025 13:37:03 +0300</pubDate>
			<guid>http://neilpapaevamama.rusff.me/viewtopic.php?pid=68#p68</guid>
		</item>
		<item>
			<title>Список персонажей</title>
			<link>http://neilpapaevamama.rusff.me/viewtopic.php?pid=66#p66</link>
			<description>&lt;div class=&quot;characters-list-pub&quot; id=&quot;block-1&quot;&gt;&lt;/div&gt;</description>
			<author>mybb@mybb.ru (test)</author>
			<pubDate>Tue, 27 Aug 2024 22:45:08 +0300</pubDate>
			<guid>http://neilpapaevamama.rusff.me/viewtopic.php?pid=66#p66</guid>
		</item>
		<item>
			<title>Генератор заданий</title>
			<link>http://neilpapaevamama.rusff.me/viewtopic.php?pid=65#p65</link>
			<description>&lt;div class=&quot;quests-generator-pub&quot; id=&quot;block-2&quot;&gt;&lt;/div&gt;</description>
			<author>mybb@mybb.ru (test)</author>
			<pubDate>Sat, 24 Aug 2024 17:49:59 +0300</pubDate>
			<guid>http://neilpapaevamama.rusff.me/viewtopic.php?pid=65#p65</guid>
		</item>
		<item>
			<title>Конструктор эпизодов</title>
			<link>http://neilpapaevamama.rusff.me/viewtopic.php?pid=64#p64</link>
			<description>&lt;div class=&quot;episode-constructor-pub&quot; id=&quot;block-3&quot;&gt;&lt;/div&gt;</description>
			<author>mybb@mybb.ru (test)</author>
			<pubDate>Fri, 23 Aug 2024 22:51:22 +0300</pubDate>
			<guid>http://neilpapaevamama.rusff.me/viewtopic.php?pid=64#p64</guid>
		</item>
		<item>
			<title>Генератор эпизодов</title>
			<link>http://neilpapaevamama.rusff.me/viewtopic.php?pid=63#p63</link>
			<description>&lt;div class=&quot;episode-generator-pub&quot; id=&quot;block-4&quot;&gt;&lt;p&gt;Объясняющий генератор текст&lt;/p&gt;&lt;/div&gt;</description>
			<author>mybb@mybb.ru (test)</author>
			<pubDate>Thu, 22 Aug 2024 20:06:11 +0300</pubDate>
			<guid>http://neilpapaevamama.rusff.me/viewtopic.php?pid=63#p63</guid>
		</item>
		<item>
			<title>Тестовое сообщение</title>
			<link>http://neilpapaevamama.rusff.me/viewtopic.php?pid=62#p62</link>
			<description>&lt;p&gt;&lt;strong&gt;Скрытие текста для определённых групп:&lt;/strong&gt;&lt;/p&gt;&lt;hr /&gt;&lt;div class=&quot;code-box&quot;&gt;&lt;strong class=&quot;legend&quot;&gt;Код:&lt;/strong&gt;&lt;div class=&quot;blockcode&quot;&gt;&lt;div class=&quot;scrollbox&quot; style=&quot;height: 6em&quot;&gt;&lt;pre&gt;[ghide]текст[/ghide]
[ghide=3,4]текст[/ghide]&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;
						&lt;p&gt;&lt;strong&gt;Скрипт:&lt;/strong&gt;&lt;/p&gt;&lt;div class=&quot;code-box&quot;&gt;&lt;strong class=&quot;legend&quot;&gt;Код:&lt;/strong&gt;&lt;div class=&quot;blockcode&quot;&gt;&lt;div class=&quot;scrollbox&quot; style=&quot;height: 35em&quot;&gt;&lt;pre&gt;&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;
/*
* Hide blocks for groups
* Made exclusively for http://magia-frpg.ru/
* Copying prohibited!
* Developer: Fumuse (https://forumd.ru/profile.php?id=7907 | https://fumuse.ru/)
*/
class HideBlock {
	userGroup = 3;
	groupLists = [
    {&amp;quot;id&amp;quot;: 2, &amp;quot;name&amp;quot;: &amp;quot;Модераторы&amp;quot;},
    {&amp;quot;id&amp;quot;: 3, &amp;quot;name&amp;quot;: &amp;quot;Гость&amp;quot;},
    {&amp;quot;id&amp;quot;: 4, &amp;quot;name&amp;quot;: &amp;quot;Игроки&amp;quot;},
    {&amp;quot;id&amp;quot;: 5, &amp;quot;name&amp;quot;: &amp;quot;Реклама&amp;quot;},
    {&amp;quot;id&amp;quot;: 6, &amp;quot;name&amp;quot;: &amp;quot;Новички&amp;quot;},
    {&amp;quot;id&amp;quot;: 7, &amp;quot;name&amp;quot;: &amp;quot;Читатель&amp;quot;},
    {&amp;quot;id&amp;quot;: 8, &amp;quot;name&amp;quot;: &amp;quot;Бан&amp;quot;},
	];
	blockList = [];

	constructor() {
    this.blockList = document.querySelectorAll(&#039;.hideblock&#039;);
    this.userGroup = window[&amp;quot;GroupID&amp;quot;] || 3;
    this.hideBlock();
    this.bbButton();
	}

	hideBlock () {
    if (this.blockList.length &amp;lt;= 0) return;

    this.blockList.forEach((block, index) =&amp;gt; {
    	this.blockChangeDom(block);
    	let groups = this.parseGroups(block.dataset.group);

    	//hide from guests
    	if (groups.length === 0) groups = [3];
    	let hasAccess = this.checkUserAccess(groups);

    	if (!hasAccess) {
        this.hiddenBlockContent(block);
    	}
    })
	}

	/**
	 * Изменение вёрстки блока для большей схожести с блоком скрытого текста
	 * @param block
	 */
	blockChangeDom (block) {
    let html = block.innerHTML;
    block.innerHTML = &amp;quot;&amp;lt;cite&amp;gt;Скрытый текст:&amp;lt;/cite&amp;gt;&amp;lt;blockquote&amp;gt;&amp;quot; + html + &amp;quot;&amp;lt;/blockquote&amp;gt;&amp;quot;;
	}

	/**
	 * Разбор строки-настроек в блоке со скрытым текстом
	 * @param groups
	 * @returns {*[]|*|string[]}
	 */
	parseGroups (groups) {
    if (!groups) return [];
    groups = groups.split(&amp;quot;,&amp;quot;);
    if (groups.length &amp;gt; 0) {
    	groups.forEach((group, index) =&amp;gt; {
        groups[index] = Number(group);
    	});

    	return groups;
    }

    return [];
	}

	/**
	 * Проверка доступа к блоку со скрытым текстом
	 * @param groups
	 * @returns {*}
	 */
	checkUserAccess (groups) {
    return !groups.includes(this.userGroup);
	}

	/**
	 * Скрытие блока от групп, которые не могут видеть этот блок
	 * @param block
	 */
	hiddenBlockContent (block) {
    block.querySelector(&amp;quot;blockquote&amp;quot;).innerHTML = &amp;quot;&amp;lt;p&amp;gt;Этот текст доступен для просмотра только определённым группам.&amp;lt;/p&amp;gt;&amp;quot;;
	}

	/**
	 * Кнопка группового скрытия на панели бб-кодов
	 */
	bbButton () {
    let buttonPanelHide = document.getElementById(&#039;button-hide&#039;);
    if (!buttonPanelHide) return;

    this.bbButtonPanel();

    let newButton = document.createElement(&#039;td&#039;);
    newButton.id = &#039;button-grouphide&#039;;
    newButton.innerHTML = &#039;&amp;lt;img onclick=&amp;quot;FORUM.get(\&#039;editor.grouphide.onclick()\&#039;)&amp;quot; src=&amp;quot;/i/blank.gif&amp;quot;&amp;gt;&#039;;

    buttonPanelHide.parentElement.insertBefore(newButton, buttonPanelHide);
	}

	/**
	 * Открывающийся блок после нажатия на кнопку на бб-панели
	 */
	bbButtonPanel () {
    let __this = this;
    let editor = FORUM.get(&#039;editor&#039;);
    editor.grouphide = {
    	name: &amp;quot;Скрытый текст для групп&amp;quot;,
    	onclick: () =&amp;gt; {
        __this.panelToggle(&amp;quot;grouphide-area&amp;quot;);
    	},
    };

    let tagsContainer = document.getElementById(&#039;tags&#039;);
    let container = document.createElement(&#039;div&#039;);
    container.id = &amp;quot;grouphide-area&amp;quot;;
    container.classList.add(&amp;quot;container&amp;quot;);
    container.style.display = &#039;none&#039;;

    tagsContainer.append(container);
    this.bbButtonPanelGroupsList(container);
    this.bbButtonPanelEndButton(container);
	}

	/**
	 * Отрисовка списка групп на открывающейся бб-панели
	 * @param container
	 */
	bbButtonPanelGroupsList (container) {
    this.groupLists.forEach(group =&amp;gt; {
    	let element = document.createElement(&#039;label&#039;);
    	element.innerHTML = &#039;&amp;lt;input type=&amp;quot;checkbox&amp;quot; value=&amp;quot;&#039; + group.id + &#039;&amp;quot; /&amp;gt; &#039; + group.name;

    	container.append(element);
    });
	}

	/**
	 * Итоговая кнопка на бб-панели
	 * @param container
	 */
	bbButtonPanelEndButton (container) {
    let __this = this;
    let button = document.createElement(&#039;input&#039;);
    button.type = &#039;button&#039;;
    button.classList.add(&#039;button&#039;);
    button.value = &#039;Скрыть текст для выделенных групп&#039;;

    button.addEventListener(&#039;click&#039;, function () {
    	let parent = this.closest(&#039;#grouphide-area&#039;);
    	let linked = [];
    	let inputs = parent.querySelectorAll(&#039;input[type=&amp;quot;checkbox&amp;quot;]&#039;);
    	inputs.forEach(input =&amp;gt; {
        if (!input.checked) return;
        linked.push(input.value);
        input.checked = false;
    	});

    	if (linked.length &amp;lt;= 0) bbcode(&#039;[ghide]&#039;,&#039;[/ghide]&#039;);
    	else {
        bbcode(&#039;[ghide=&#039; + linked.join(&#039;,&#039;) + &#039;]&#039;,&#039;[/ghide]&#039;);
    	}

    	__this.panelToggle(&amp;quot;grouphide-area&amp;quot;);
    });

    container.append(button);
	}

	/**
	 * Открытие панели с выбором групп
	 * @param e
	 */
	panelToggle (e) {
    let t = document.getElementById(e);
    null != t &amp;amp;&amp;amp; void 0 !== t &amp;amp;&amp;amp; (&amp;quot;none&amp;quot; == t.style.display ? $(t).show() : $(t).hide())
	}
}

const hideBlock = new HideBlock();
&amp;lt;/script&amp;gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;
						&lt;p&gt;&lt;strong&gt;Стили:&lt;/strong&gt;&lt;/p&gt;&lt;div class=&quot;code-box&quot;&gt;&lt;strong class=&quot;legend&quot;&gt;Код:&lt;/strong&gt;&lt;div class=&quot;blockcode&quot;&gt;&lt;div class=&quot;scrollbox&quot; style=&quot;height: 35em&quot;&gt;&lt;pre&gt;/** ===========================
 *  Скрытый текст для групп
 *  ===========================
*/

.hideblock {
    margin: 5px 0;
    padding: 2px 10px;
    position: relative;
    background-color: rgb(49 55 72 / 10%);
    border: 4px double #a19c98;
    border-radius: 10px;
}

.hideblock cite {
    display: block;
    padding-left: 15px;
    margin-top: 8px;
    padding-top: 3px;    
    padding-bottom: 5px;
    font-size: 14px;
    font-family: Lora;
    background: rgb(199 191 179 / 90%);
    border-radius: 15px;
}

.hideblock p {
    display: none;
}

.hideblock blockquote p {
    display: inherit;
}

#grouphide-area {
    margin-top: 30px;
    padding: 20px;
    background-color: #c1b9ad;
    border: 1px solid #04395873;
    border-radius: 5px;
}

#grouphide-area &amp;gt; * {
    display: block;
}

#grouphide-area .button {
    margin: 15px 0 0;
}

#button-grouphide {
    background: url(https://i.imgur.com/GKlm9lY.png) center center no-repeat;
}&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</description>
			<author>mybb@mybb.ru (test)</author>
			<pubDate>Wed, 30 Nov 2022 16:13:26 +0300</pubDate>
			<guid>http://neilpapaevamama.rusff.me/viewtopic.php?pid=62#p62</guid>
		</item>
		<item>
			<title>new new new</title>
			<link>http://neilpapaevamama.rusff.me/viewtopic.php?pid=40#p40</link>
			<description>&lt;p&gt;щупалки!&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Reader Reader)</author>
			<pubDate>Sat, 29 Jan 2022 22:36:15 +0300</pubDate>
			<guid>http://neilpapaevamama.rusff.me/viewtopic.php?pid=40#p40</guid>
		</item>
		<item>
			<title>Новая тема с длинным, допустим, названием</title>
			<link>http://neilpapaevamama.rusff.me/viewtopic.php?pid=30#p30</link>
			<description>&lt;p&gt;тестовое сообщение, чтоб былооооооооо&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Reader Reader)</author>
			<pubDate>Wed, 26 Jan 2022 22:08:56 +0300</pubDate>
			<guid>http://neilpapaevamama.rusff.me/viewtopic.php?pid=30#p30</guid>
		</item>
	</channel>
</rss>
