<?xml version='1.0' encoding='UTF-8'?>
<rss version='2.0'>
	<channel>
		<title>cotonti.com : Просто несколько мыслей вслух</title>
		<link>https://www.cotonti.com</link>
		<description>Neueste Themenbeiträge</description>
		<generator>Cotonti</generator>
		<language>en</language>
		<pubDate>Sun, 12 Apr 2026 14:12:53 -0000</pubDate>

		<item>
			<title>Kopusha</title>
			<description><![CDATA[<p>Дружище - это написанное на заказ, где 10 раз продуманный каждый нюанс и это стоит стоит больших денег.</p>
<p class="updated"><strong>Added 21 minutes later:</strong></p><p>Я скорее имел в виду - особенно начинающие - пишите доки. У меня для проекта любого доков больше чем кода иногда.</p>

<p> </p>
]]></description>
			<pubDate>Fr, 23 Feb 2024 20:59:39 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/de/forums?m=posts&q=9327&d=0#post47800]]></link>
		</item>
		<item>
			<title>vpktz</title>
			<description><![CDATA[<p>Именно такой уровень документации крайне не хватает, именно это я и хотел что бы было.</p>

<p>Вот была бы версия cotonti с полными комментариями ко всем переменным, циклам, условиям и тд.</p>

<p>Получилось бы изумительная книга - МАНУАЛ с большой буквы.</p>

<p> </p>

<p>И не так что редкие  комментарии к каким то огромным блокам или страницам а подробно, к  каждой строке, условию, циклу каждой страницы  и тд...</p>

<p> </p>
]]></description>
			<pubDate>Fr, 23 Feb 2024 17:29:37 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/de/forums?m=posts&q=9327&d=0#post47799]]></link>
		</item>
		<item>
			<title>Kopusha</title>
			<description><![CDATA[<p>Особенно будет полезно новичкам, осваивающим движек<br />
Покажу кусочек кода и потом напишу что про него думаю</p>

<pre class="brush:php;">
if (!in_array($usr['id'], $cfg['admin_user_ids']) &amp;&amp; !in_array($usr['id'], $cfg['test_user_ids']) &amp;&amp; !in_array($usr['id'], $cfg['moder_user_ids']))
{
	$isadmin = 0;
}
else
{
	$isadmin = 1;
}

</pre>

<p>Тут в режиме проверки id юзера вычисляют права доступа к некой функциональности<br />
Очевидно где то есть $cfg['test_user_ids'] = array(63,4); и тд</p>

<p>Далее это используют так</p>

<pre class="brush:php;">
		if (!$isadmin)
		{
			cot_die_message(404);
		}
</pre>

<p>То есть если ты не в списке тестеров админов модераторов - cot_die_message</p>

<p>или так</p>

<pre class="brush:php;">
			if (!$isadmin)
			{
				$wide = cot_import('wide', 'G', 'ALP');
			}
			else
			{
				$accuracy = cot_import('accuracy', 'G', 'ALP');
			}
</pre>

<p>То есть если ты не в списке тестеров админов модераторов - получи wide а иначе accuracy</p>

<p> </p>

<p>А затем такой кусочек</p>

<pre class="brush:php;">
				$where = array();
				$users_in_blocked = array();
				$users_in_blocked = cot_blocked_all_blockedme((int)$usr['id']);//array (32,4,900);
				//no check if (!$isadmin)
				//admins (real admins) can not be blocked, but if a tester or moderator is blocked ($cfg['test_user_ids']) he can not see stories
				$where_condition = "AND item_userid NOT IN (".$users_in_blocked.")";
</pre>

<p>или такой</p>

<pre class="brush:php;">
				//no check if (!$isadmin) use if (!$usr['isadmin']) instead
				//admins (real admins) can see hidden, but if a tester or moderator is blocked ($cfg['test_user_ids']) he can not see stories only 4 friends
				if (!$usr['isadmin'])
				{
					$where_friends = "AND (s.item_only_friends=0 OR s.item_userid=".$usr['id']." OR s.item_userid IN (".implode(',', $friends_ids)."))";
				}
</pre>

<p>Тут используется if (!$usr['isadmin']) вместо if (!$isadmin) - потому что это не надо видеть модерам и тестерам<br />
<br />
Что я всем этим хотел сказать - пишите комментарии к коду. Особенно если это что то не очевидное и вдруг в коде что то внезапно делается по другому. Не только другие люди скажут вам спасибо, вы сами, вернувшись к коду через год будете рады. Не жалейке строчек.</p>
]]></description>
			<pubDate>Fr, 23 Feb 2024 09:39:51 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/de/forums?m=posts&q=9327&d=0#post47798]]></link>
		</item>
	</channel>
</rss>