<?xml version='1.0' encoding='UTF-8'?>
<rss version='2.0'>
	<channel>
		<title>cotonti.com : Дополнительные настройки в админке. Как это делать?</title>
		<link>https://www.cotonti.com</link>
		<description>Laatste forum onderwerpen</description>
		<generator>Cotonti</generator>
		<language>en</language>
		<pubDate>Mon, 06 Apr 2026 19:39:44 -0000</pubDate>

		<item>
			<title>Kort</title>
			<description><![CDATA[Вообще, копипаст товарищу никто и не предлагал. Если надо запретить очевидное, то запрещаю.]]></description>
			<pubDate>Zo, 31 Jan 2010 01:39:20 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/nl/forums?m=posts&q=5200&d=30#post22484]]></link>
		</item>
		<item>
			<title>Trustmaster</title>
			<description><![CDATA[Я бы настоятельно рекомендовал сделать перевод <a href="http://www.cotonti.com/docs/en/plugins/">имеющихся статей по плагинам</a>, всё-таки их писали люди с многолетним опытом работы в системе.<br />
<br />
Что касается копипасты с seditio.by, на месте владельца последнего сайта я бы не стал её разрешать. На критически важные статьи можно проставлять ссылки (или даже redir).]]></description>
			<pubDate>Za, 30 Jan 2010 19:04:17 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/nl/forums?m=posts&q=5200&d=30#post22481]]></link>
		</item>
		<item>
			<title>Sergey</title>
			<description><![CDATA[Gunslinger! О переносе, пусть решит наш уважаемый админ, я свою мысль высказал, а куда логичней ее прилепить и так уж важна она, пусть он и решает. Пост сумбурен т.к. это все-таки не статья, а кусок темы в форме флуда, флуда, который начал не я. Но если вы решили сотворить статью, копипаствуйте.<br />
Что касаемо видеочата. Признаюсь, грешен, но я ни разу еще не пробовал так общаться (хотя все фирменное стоит аж с 2000 года). Проблема в том, что широкополосный доступ у меня всего год, а до этого страдал дуализмом в 16 килобит.]]></description>
			<pubDate>Za, 30 Jan 2010 14:32:39 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/nl/forums?m=posts&q=5200&d=30#post22479]]></link>
		</item>
		<item>
			<title>Gunslinger</title>
			<description><![CDATA[<strong>Dayver</strong>, <br />
<br />
<blockquote>но согласись что твой подход очень и очень не продуман изначально</blockquote>
<br />
Позволю себе не согласиться <img class="aux smiley" src="https://www.cotonti.com/./images/smilies/smile.gif" alt=":)" /> , ну да фиг с ним, беседы о нюансах психологии пока задвинем куда подальше. Разгоаоров о лирике и так уже под завязку. Поступим следующим образом. Я предлагаю со своей стороны подзаняться документацией по плагинам (хуки, система написания и т.д.) и описанию функций. В начатых мной темах я буду задавать вопросы, возникающие по ходу работы. Большая человеческая просьба отвечать на них в манере <strong>Sergey</strong>.<br />
<br />
П.С.<br />
<br />
Позволю себе некоторый оффтоп:<br />
<br />
Возникла необходимость прикрутить к Коту видеочат. Для общения по принципу скайпа. Ктонить сталкивался с таким вопросом? Может что-то подскажете?<br />
<br />
П.П.С.<br />
<strong>esclkm</strong>, пробежался по seditio.by Там в принципе целый комплект весьма интересных статей. Вопрос только в позволительности копипаста их сюда. Ну и заодно как ты предлагаеш их обработать? Просто собрать в кучу или как говорил Горбатый &quot;расшИрить и углУбить&quot; ?]]></description>
			<pubDate>Za, 30 Jan 2010 08:04:40 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/nl/forums?m=posts&q=5200&d=30#post22473]]></link>
		</item>
		<item>
			<title>Dayver</title>
			<description><![CDATA[<blockquote><a href="https://www.cotonti.com/forums.php?m=posts&amp;p=22467#22467">#</a> <strong>Gunslinger :</strong>
2. Невнимательность говориш зло? Именно. Смотрим:<br />
...<br />
О, заметили <img class="aux smiley" src="https://www.cotonti.com/./images/smilies/smile.gif" alt=":)" /> Вывод сам собой не напрашивается? Смотрим сюда:<br />
....<br />
</blockquote> Интересно по какому признаку ты считаешь что я только заметил это? Не нужно думать что команда судит о человеке по его показателю оставленых на форуме сообщений<br />
<blockquote><a href="https://www.cotonti.com/forums.php?m=posts&amp;p=22467#22467">#</a> <strong>Gunslinger :</strong>
<strong>Dayver</strong><br />
А теперь думаем над вопросом - с чего ты взял, что я это все затеял исключительно для себя? Потому лишь что я задаю вопросы? Неверный подход. Моя основная цель - добиться четкого, максимально детального и доходчивого для &quot;простых смертных&quot; , а глвавное структурированного четко по обсуждаемой тематике ( а не раскиданного по всему форуму) описания нескольких принципиальных для плагинописания моментов....<br />
</blockquote>
Ну если вообще я и думал об этом то наверное решил судя по характеру первого сообщения в топике:<br />
<blockquote><a href="https://www.cotonti.com/forums.php?m=posts&amp;p=22319#22319">#</a> <strong>Gunslinger :</strong>
Допустим, мне нужно в админке на закладке настройки форума добавить несколько новых (своих) параметров настройки. Эти параметры должны быть не вариантом плагина, а родными для движка (ну как &quot;количество постов на страницу форума&quot;, &quot;Скрывать приватные форумы&quot; и т.д.). Короче нужен хак админки. Поясните плз как это делать. <br />
П.С.<br />
Варианты плагинов не предлагать. Нужна информация именно о том, как добавлять свои настройки в движок.<br />
</blockquote>
Если это и так, то видать, ты таки хочешь помочь проекту. Дык давай делать это <a href="http://www.cotonti.com/forums.php?m=posts&amp;id=22464">более рациональнее чем создавать треды на форуме</a>. (Да да вижу ты там уже отписался что согласен ... но согласись что твой подход очень и очень не продуман изначально) ... ну или на крайняк написал бы что одна из целей топика - решить ситуацию с доками.<br />
<br />
<blockquote><a href="https://www.cotonti.com/forums.php?m=posts&amp;p=22467#22467">#</a> <strong>Gunslinger :</strong>
<strong>Dayver</strong><br />
Так же стоит учесть тот факт, что некоторые пользователи котонти (как не смешно это прозвучит) не рискуют задавать подобные вопросы боясь нарваться на именно такой, исполненный &quot;доброжелательности&quot;, ответ об их малограмотности со стороны искушенных в вопросах двигла гуру.<br />
</blockquote>
Тут вопрос неоднозначен ... если бы &quot;<span style="text-decoration:underline">искушенные в вопросах двигла гуру</span>&quot; были такие &quot;<span style="text-decoration:underline">исполненные &quot;доброжелательности&quot;</span>&quot; то навряд было бы создано сообщество и новый проект, а просто эти &quot;<span style="text-decoration:underline">искушенные в вопросах двигла гуру</span>&quot; собрались в закрытой группе и творили бы то что им нужно. Но нет они зачем то создают форум и по возможности помогают новичкам. *самйл демонстрирующий легкий налет иронии*<br />
<br />
С другой стороны это как кормление крокодила из рук ... ведь может и руку откусить. Это я про часть не совсем добросовестных участников которые приходят просят сначала показать откуда можно скачать движок, потом просят объяснить как распаковать архив с дивжком, потом возмущаются, а почему он запакован в 7zip, и потом же просят ПОМОЧЬ установить двиг на хост(хотя заканчивается тем что приходится сделать это самому) ... ну и панеслась, а как то, а как это ... надеюсь понимаешь о чем я.<br />
А ведь у каждого на лбу не написано кто есть кто.]]></description>
			<pubDate>Za, 30 Jan 2010 07:19:59 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/nl/forums?m=posts&q=5200&d=30#post22472]]></link>
		</item>
		<item>
			<title>Gunslinger</title>
			<description><![CDATA[<strong>esclkm</strong>. Конечно смогу. Но было бы неплохо определиться хотя бы с небольшим списком тем для подбора инфы. Да и здесь по форуму копнуть стоит. В процессе многих обсуждений всплывала целая куча интересных моментов и деталей, которые впринципе нгде не освещены. Раз их прочитаеш а потом либо ссылка теряется либо тема забывается и пиши пропало. <br />
<br />
Короче по ходу дела предлагаю следующее - если бродя по форуму найдете ссылочку на нечто полезное или интересное, то кидайте мне ее в ПМ а я уже буду накапливать информацию и пытаться ее структурировать. Потом по мере наполнения буду передавать на редакторскую проверку и правку.]]></description>
			<pubDate>Za, 30 Jan 2010 06:56:07 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/nl/forums?m=posts&q=5200&d=30#post22471]]></link>
		</item>
		<item>
			<title>esclkm</title>
			<description><![CDATA[Gunslinger - ты очень хорошую тему поднял<br />
многое по шаблонизатору сказано в блогах на seditio.by в принципе там и полезное по немногу копиться<br />
<br />
Если смогешь) организуй свое рода преобразование этого пласта в статьи. так как на форуме обычно многое терятеся]]></description>
			<pubDate>Za, 30 Jan 2010 06:44:45 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/nl/forums?m=posts&q=5200&d=30#post22469]]></link>
		</item>
		<item>
			<title>Gunslinger</title>
			<description><![CDATA[<strong>Dayver</strong><br />
1. Со мной можно на &quot;ты&quot;<br />
2. Невнимательность говориш зло? Именно. Смотрим:<br />
<blockquote> Я бы понял вашу позицию если бы вы впервые увидели движок но судя по форуму neocrome.ru в это поверить не реально.</blockquote>
 <br />
О, заметили <img class="aux smiley" src="https://www.cotonti.com/./images/smilies/smile.gif" alt=":)" /> Вывод сам собой не напрашивается? Смотрим сюда:<br />
<blockquote>Полагаю, будет не лишним предложить вынести содержимое ваших постов в виде отдельной статьи в раздел русскоязычной документации. На мой взгляд изложенная вами информация<strong> будет многим полезна</strong>. Ведь согласитесь, что если <strong>бороться за грамотное написание плагинов к движку то начинать стоит с четкого понимания основополагающих моментов структуры самого движка Котонти.</strong></blockquote>
<br />
А теперь думаем над вопросом - с чего ты взял, что я это все затеял исключительно для себя? Потому лишь что я задаю вопросы? Неверный подход. Моя основная цель - добиться четкого, максимально детального и доходчивого для &quot;простых смертных&quot; , а глвавное структурированного четко по обсуждаемой тематике ( а не раскиданного по всему форуму) описания нескольких принципиальных для плагинописания моментов. Ведь на данный момент в варианте Котонти применить ход &quot;Иди учи матчасть&quot; не выйдет. Описания матчасти в режиме &quot;не для Эйнштейна&quot; просто нету. А вот как раз эти две темы - простейший способ получить эту самую документацию что называется &quot;по ходу дела&quot;. И обсудили полезное и фактически доку сваяли. Тоесть время всех учавствовавшиш в дискуссии на самом деле потрачено с максимальной пользой.<br />
<br />
Ну, мне так кажется. Или я не прав? <br />
<br />
Так же стоит учесть тот факт, что некоторые пользователи котонти (как не смешно это прозвучит) не рискуют задавать подобные вопросы боясь нарваться на именно такой, исполненный &quot;доброжелательности&quot;, ответ об их малограмотности со стороны искушенных в вопросах двигла гуру.<br />
<br />
<blockquote>Чесн слово прозрачнее некуда.</blockquote>
Еще раз повторюсь: ты смотриш на это с точки зрения профессионала, перекопавшего уже вдоль и в поперек движок. Не забывай о том, что этот форум читают и менее подготовленные люди.<br />
<br />
<strong>Sergey</strong>, и снова благодарю. Не сочтите за наглость но вы не могли бы перенести последний пост именно в тему о хуках? Все-таки хотелось бы соблюсти логическую структурность информации.]]></description>
			<pubDate>Za, 30 Jan 2010 06:29:12 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/nl/forums?m=posts&q=5200&d=30#post22467]]></link>
		</item>
		<item>
			<title>Sergey</title>
			<description><![CDATA[<blockquote><a href="https://www.cotonti.com/forums.php?m=posts&amp;p=22458#22458">#</a> Gunslinger :<br />
И еще одно. Если вам не сложно, то обратите внимание еще на эту тему Система Hooks. <br />
</blockquote> Начнем издалека. Вот текст этой функции, которая загружает плагин <br />
<div class="highlight"><pre class="php">function sed_getextplugins($hook, $cond='R')
{
	global $sed_plugins, $usr;

	if (is_array($sed_plugins))
	{
		foreach($sed_plugins as $i =&gt; $k)
		{
			if($k&#091;'pl_hook'&#093;==$hook &amp;&amp; sed_auth('plug', $k&#091;'pl_code'&#093;, $cond))
			{
				$extplugins&#091;$i&#093; = $k;
			}
		}
	}
	return $extplugins;
}</pre></div>
<br />
 а теперь посмотрим типичный пример описания установки плагина<br />
<br />
 <div class="highlight"><pre class="php">Auth_guests=R
Lock_guests=W12345A
Auth_members=R
Lock_members=W12345A</pre></div>
<br />
типичный вызов:<br />
 <br />
<div class="highlight"><pre class="php">/* === Hook === */
$extp = sed_getextplugins('list.main');</pre></div>
<br />
Ведите, в вызове функции sed_getextplugins один параметр, а в описании их два. Что обозначает это вызов? Этот, типовой вызов обозначает,<br />
что это <br />
<br />
<div class="highlight"><pre class="php">Auth_guests=R
Lock_guests=W12345A
Auth_members=R
Lock_members=W12345A</pre></div>
<br />
системе пофиг, это выполняется одним образом $cond='R' т.е. всегда, если вы установили Auth в R .<br />
Имеется еще один момент. У функции sed_getextplugins($hook, $cond='R') проводится выборка по имени хука $hook всех активных (не отключенных) одноименных с хуком элементов плагинов. Выборка производится из массива $sed_plugins Выборка производится один раз по ключу  $cond. Следовательно, если у вас появилась мысль использовать плагин для группы &quot;доверенных товарищей&quot; вам придется позаботится об этом самим, т.е. написать особый плагин загрузки ваших плагинов для &quot;доверенных товарищей&quot;. <br />
<br />
вот вызов для получения правильного доступа по правам  из page.inc.php к категории (списку)<br />
<br />
list($usr['auth_read'], $usr['auth_write'], $usr['isadmin'], $usr['auth_download']) = sed_auth('page', $pag['page_cat'], 'RWA1');<br />
<br />
аналогично, должно быть и к плагину для группы товарищей.<br />
<br />
Следующий момент, это не понимание работы оператора (тут отвлеченный пример):<br />
<br />
<div class="highlight"><pre class="php">if (is_array($extp))
{ foreach($extp as $k =&gt; $pl) { include_once($cfg&#091;'plugins_dir'&#093;.'/'.$pl&#091;'pl_code'&#093;.'/'.$pl&#091;'pl_file'&#093;.'.php'); } }
</pre></div>
<br />
Оператор <strong>foreach</strong> коварен. Он вначале у себя внутри выбирает все элементы из $extp а потом их перебирает, поэтому !! вы не сможете уже переопределить массив $extp дальше. Конечно, надо несколько другой механизм применять, но необходимость этого встречается только в отдельных случаях, когда вы решили динамически подвинуть или исключить плагин. Не выйдет. <br />
<br />
Другое коварство заключается в именах переменных. Такие простенькие имена типа $i или $k могут использоваться и другими разработчиками других плагинов, особенно, состоящих из нескольких частей. Можно ненароком потереть или переопределить чужую переменную. В этом случае лучше перейти к своему классу или на худой конец оформить свой плагин функцией.]]></description>
			<pubDate>Za, 30 Jan 2010 04:39:53 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/nl/forums?m=posts&q=5200&d=30#post22463]]></link>
		</item>
		<item>
			<title>Dayver</title>
			<description><![CDATA[<blockquote><a href="https://www.cotonti.com/forums.php?m=posts&amp;p=22458#22458">#</a> <strong>Gunslinger :</strong>
И еще одно. Если вам не сложно, то обратите внимание еще на эту тему :<a href="http://www.cotonti.com/forums.php?m=posts&amp;q=5220&amp;n=last#bottom"> Система Hooks. Принцип работы.</a>.Как мне кажется она так же недостаточно прозрачна в плане понимания обычным пользователям.</blockquote>
Не внимательность - зло. Отсюда и непрозрачность. Чесн слово прозрачнее некуда. Я бы понял вашу позицию если бы вы впервые увидели движок но судя по форуму neocrome.ru в это поверить не реально. Вот все ругают котонти за отсутствие документации .... и ругают многие которые перешли с седа .. возникает вопрос как же все жилы раньше при седе? Ох почему то я не видел такого недовольства на неокроме. Многие новшества внедренные в котонти мало мальски документированы ... мало документации по тому функционалу который не изменился со времен седитио (Радует что в версиях 0.7.0 и 1.0.0 такого останется крайне мало).]]></description>
			<pubDate>Za, 30 Jan 2010 04:03:37 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/nl/forums?m=posts&q=5200&d=30#post22462]]></link>
		</item>
		<item>
			<title>Sergey</title>
			<description><![CDATA[Так уж принято кем-то и везде, что  выражение в шаблоне (template)  стоящие в фигурных скобках это тег. Тег (Tag), это то, что должен заменить парсер (часть шаблонизатора). Такое разделение шаблона и программных модулей сделано специально, чтобы программист выполнял свою часть, а скинмейкер свою: творил скины ( кожу - skin). Тег имеет имя, вместо которого парсер подставляет значение. В cotonti принято, что, что-то написанное большими буквами стоящим в фигурных скобках, а затем в шаблоне, то это тег,  который формируется парсером, например, так: <br />
<br />
$t-&gt;parse(&quot;MAIN.LIST_ROW&quot;);<br />
<br />
где MAIN это префикс  всех тегов в главной части шаблона, отвечающие выражению LIST_ROW и дальше, т.е<br />
<div class="highlight"><pre class="php">	&quot;LIST_ROW_URL&quot; =&gt; $pag&#091;'page_pageurl'&#093;,
	&quot;LIST_ROW_ID&quot; =&gt; $pag&#091;'page_id'&#093;,
	&quot;LIST_ROW_CAT&quot; =&gt; $pag&#091;'page_cat'&#093;,
	&quot;LIST_ROW_KEY&quot; =&gt; htmlspecialchars($pag&#091;'page_key'&#093;),
	&quot;LIST_ROW_TITLE&quot; =&gt; htmlspecialchars($pag&#091;'page_title'&#093;),
	&quot;LIST_ROW_DESC&quot; =&gt; $pag&#091;'page_desc'&#093;,
	&quot;LIST_ROW_DESC_OR_TEXT&quot; =&gt; sed_cutpost($pag&#091;'page_text'&#093;, 200, false),
	&quot;LIST_ROW_AUTHOR&quot; =&gt; htmlspecialchars($pag&#091;'page_author'&#093;),
	&quot;LIST_ROW_OWNER&quot; =&gt; sed_build_user($pag&#091;'page_ownerid'&#093;, htmlspecialchars($pag&#091;'user_name'&#093;)),
	&quot;LIST_ROW_DATE&quot; =&gt; @date($cfg&#091;'formatyearmonthday'&#093;, $pag&#091;'page_date'&#093; + $usr&#091;'timezone'&#093; * 3600),
	&quot;LIST_ROW_FILEURL&quot; =&gt; empty($pag&#091;'page_url'&#093;) ? '' : sed_url('page', 'id='.$pag&#091;'page_id'&#093;.'&amp;a=dl'),
	&quot;LIST_ROW_SIZE&quot; =&gt; $pag&#091;'page_size'&#093;,
	&quot;LIST_ROW_COUNT&quot; =&gt; $pag&#091;'page_count'&#093;,
	&quot;LIST_ROW_FILEICON&quot; =&gt; $pag&#091;'page_fileicon'&#093;,
	&quot;LIST_ROW_FILECOUNT&quot; =&gt; $pag&#091;'page_filecount'&#093;,
	&quot;LIST_ROW_JUMP&quot; =&gt; sed_url('page', $page_urlp.'&amp;a=dl'),
	&quot;LIST_ROW_COMMENTS&quot; =&gt; $pag&#091;'page_comments'&#093;,
	&quot;LIST_ROW_RATINGS&quot; =&gt; $list_ratings,
	&quot;LIST_ROW_ADMIN&quot; =&gt; $pag&#091;'admin'&#093;,
	&quot;LIST_ROW_ODDEVEN&quot; =&gt; sed_build_oddeven($jj),
    &quot;LIST_ROW_NUM&quot; =&gt; $jj</pre></div>
Однако, имеются переменные, которые вставляются как теги. Для этих тегов имеется правило:<br />
PHP.имя_переменной.ассоциативный_код<br />
вот пример из шаблона list.tpl <div class="highlight"><pre class="php">&lt;tr&gt;
	&lt;td class=&quot;coltop&quot;&gt;{LIST_TOP_TITLE} {LIST_TOP_COUNT}&lt;/td&gt;
	&lt;td class=&quot;coltop&quot; style=&quot;width:96px;&quot;&gt;{PHP.L.Comments}&lt;/td&gt;
	&lt;td class=&quot;coltop&quot; style=&quot;width:96px;&quot;&gt;{PHP.L.Ratings}&lt;/td&gt;
	&lt;td class=&quot;coltop&quot; style=&quot;width:96px;&quot;&gt;{LIST_TOP_DATE}&lt;/td&gt;
	&lt;td class=&quot;coltop&quot; style=&quot;width:128px;&quot;&gt;{LIST_TOP_AUTHOR}&lt;/td&gt;
&lt;/tr&gt;</pre></div> теги LIST_TOP_DATE и LIST_TOP_AUTHOR, а PHP.L.Comments и PHP.L.Ratings это переменные PHP:  <strong>$L['Comments'] и  $L['Ratings'].</strong>
<br />
Все теги которые не были &quot;запарсены&quot; префиксно, парсятся в конце модуля оператором<br />
<br />
$t-&gt;parse(&quot;MAIN&quot;);<br />
<br />
а выводится во внешний поток (на экран юзера) оператором<br />
<br />
$t-&gt;out(&quot;MAIN&quot;);<br />
<br />
Надо помнить, что сколько раз вы включили $t-&gt;parse() столько раз, эта часть шаблона парсится. Так получаются таблицы. Вот этот участок в list.inc.php<br />
<div class="highlight"><pre class="php">	$t-&gt; assign(array(
		&quot;LIST_ROWCAT_URL&quot; =&gt; sed_url('list', 'c='.$i),
		&quot;LIST_ROWCAT_TITLE&quot; =&gt; $x&#091;'title'&#093;,
		&quot;LIST_ROWCAT_DESC&quot; =&gt; $x&#091;'desc'&#093;,
		&quot;LIST_ROWCAT_ICON&quot; =&gt; $x&#091;'icon'&#093;,
		&quot;LIST_ROWCAT_COUNT&quot; =&gt; $sub_count,
		&quot;LIST_ROWCAT_ODDEVEN&quot; =&gt; sed_build_oddeven($kk),
        &quot;LIST_ROWCAT_NUM&quot; =&gt; $kk,
		));

		/* === Hook - Part2 : Include === */
		if (is_array($extp))
		{ foreach($extp as $k =&gt; $pl) { include($cfg&#091;'plugins_dir'&#093;.'/'.$pl&#091;'pl_code'&#093;.'/'.$pl&#091;'pl_file'&#093;.'.php'); } }
		/* ===== */


		$t-&gt;parse(&quot;MAIN.LIST_ROWCAT&quot;);</pre></div>
Имеется еще одно замечательное определение, точнее переопределение. До парсинга, у  тега можно изменить значение двумя способами, вот пример, обращение как элементу класса  через функцию $t-&gt; assign() и как к элементу массива через имя тега:<br />
<br />
$t-&gt;vars[&quot;ИМЯ_ТЕГА&quot;] <div class="highlight"><pre class="php">if	(isset($mesg_elink) and !empty ($mesg_elink))   // сообщение на странице отображения элемента
	{
	if	(isset($t-&gt;vars&#091;&quot;PAGE_MSG&quot;&#093;))
		{
		$t-&gt;vars&#091;&quot;PAGE_MSG&quot;&#093; .= &quot;&lt;br /&gt;&quot;.$mesg_elink;
		}
		else
			{
			$t-&gt;assign(array(&quot;PAGE_MSG&quot; =&gt; $mesg_elink));
			}
	}</pre></div> В этот примере определяется, был ли каким-то плагином, сформирован тег PAGE_MSG Если он не сформирован, то тег генерируется, а если тег есть, то он дополняется новым сообщением. Не заменяется, как в первом случае, а дополняется или модифицируется. <br />
Впрочем ссылка на шаблонизатор уже приведена.]]></description>
			<pubDate>Za, 30 Jan 2010 03:54:16 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/nl/forums?m=posts&q=5200&d=30#post22461]]></link>
		</item>
		<item>
			<title>Gunslinger</title>
			<description><![CDATA[<strong>Sergey, Trustmaster</strong>, большое спасибо за потраченное вами на ликбез время. <strong>Sergey</strong>, вам отдельная благодарность за детали. Вот теперь картина с плагинами и модулями обрела ясность. <br />
<br />
Полагаю, будет не лишним предложить вынести содержимое ваших постов в виде отдельной статьи в раздел русскоязычной документации. На мой взгляд изложенная вами информация будет многим полезна. Ведь согласитесь, что если бороться за грамотное написание плагинов к движку то начинать стоит с четкого понимания основополагающих моментов структуры самого движка Котонти.<br />
<br />
И еще одно. Если вам не сложно, то обратите внимание еще на эту тему :<a href="http://www.cotonti.com/forums.php?m=posts&amp;q=5220&amp;n=last#bottom"> Система Hooks. Принцип работы.</a>. Как мне кажется она так же недостаточно прозрачна в плане понимания обычным пользователям. Буду категорически признателен за ваши комментарии и пояснения.]]></description>
			<pubDate>Za, 30 Jan 2010 03:15:34 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/nl/forums?m=posts&q=5200&d=30#post22458]]></link>
		</item>
		<item>
			<title>Trustmaster</title>
			<description><![CDATA[<blockquote><a href="https://www.cotonti.com/forums.php?m=posts&amp;p=22455#22455">#</a> <strong>SunChase :</strong>
может слегка не в тему,но может ктото ткнуть на инфу по условиям типа PHP.tab и всё такое?<br />
</blockquote>
<a href="http://www.cotonti.com/docs/en/skins/xtemplate_introduction">http://www.cotonti.com/docs/en/skins/xtemplate_introduction</a>]]></description>
			<pubDate>Za, 30 Jan 2010 03:05:59 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/nl/forums?m=posts&q=5200&d=30#post22457]]></link>
		</item>
		<item>
			<title>SunChase</title>
			<description><![CDATA[может слегка не в тему,но может ктото ткнуть на инфу по условиям типа PHP.tab и всё такое?]]></description>
			<pubDate>Za, 30 Jan 2010 02:52:31 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/nl/forums?m=posts&q=5200&d=30#post22455]]></link>
		</item>
		<item>
			<title>Sergey</title>
			<description><![CDATA[<blockquote><a href="https://www.cotonti.com/forums.php?m=posts&amp;p=22451#22451">#</a> <strong>Gunslinger :</strong>
<strong>Sergey</strong><br />
С точки зрения програмного кода плагин по вашему не является тем же подключаемым модулем?<br />
</blockquote>
Вы не поняли, модуль подключается, точнее включается средствами браузера, а плагин средствами PHP.<br />
Однако, PHP имеет внутренний механизм организации нового потока, подменяющего ответ от браузера. Как бы вписывает строку  урла в браузере и тут же сам ее принимает. Вот рассмотрим этот необычно-стандартный участок, не только обработки ошибок.<div class="highlight"><pre class="php">if ($pag&#091;'page_state'&#093; == 1 &amp;&amp; !$usr&#091;'isadmin'&#093; &amp;&amp; $usr&#091;'id'&#093; != $pag&#091;'page_ownerid'&#093;)
{
	sed_log(&quot;Attempt to directly access an un-validated page&quot;, 'sec');
	header(&quot;Location: &quot; . SED_ABSOLUTE_URL . sed_url('message', &quot;msg=930&quot;, '', true));
	exit;
}

if (mb_substr($pag&#091;'page_text'&#093;, 0, 6)=='redir:')
	{
	$redir = str_replace('redir:', '', trim($pag&#091;'page_text'&#093;));
	$sql = sed_sql_query(&quot;UPDATE $db_pages SET page_filecount=page_filecount+1 WHERE page_id='&quot;.$pag&#091;'page_id'&#093;.&quot;'&quot;);
	header(&quot;Location: &quot; . SED_ABSOLUTE_URL . $redir);
	exit;
	}

elseif (mb_substr($pag&#091;'page_text'&#093;, 0, 8)=='include:')
	{
	$pag&#091;'page_text'&#093; = sed_readraw('datas/html/'.trim(mb_substr($pag&#091;'page_text'&#093;, 8, 255)));
	}</pre></div>
В группе операторов<div class="highlight"><pre class="php">if ($pag&#091;'page_state'&#093; == 1 &amp;&amp; !$usr&#091;'isadmin'&#093; &amp;&amp; $usr&#091;'id'&#093; != $pag&#091;'page_ownerid'&#093;)
{
	sed_log(&quot;Attempt to directly access an un-validated page&quot;, 'sec');
	header(&quot;Location: &quot; . SED_ABSOLUTE_URL . sed_url('message', &quot;msg=930&quot;, '', true));
	exit;
}</pre></div>
модуль определяет, что если входная страница  имеет статус не утвержденной страницы,  и что эта страница не юзера и что зашел не админ (модератор), то такую страницу читать нельзя (не положено).<br />
Выводится сообщение Attempt to directly access an un-validated page<br />
и производится перенаправление к загрузке модуля в SED_ABSOLUTE_URL для этого сайта это http_://www.cotonti.com т.е. в самое начало. НО, текущий процесс работы модуля идет! Оператор exit; прекращает его жизнь.<br />
Теперь посмотрим на другой участок <div class="highlight"><pre class="php">if (mb_substr($pag&#091;'page_text'&#093;, 0, 6)=='redir:')
	{
	$redir = str_replace('redir:', '', trim($pag&#091;'page_text'&#093;));
	$sql = sed_sql_query(&quot;UPDATE $db_pages SET page_filecount=page_filecount+1 WHERE page_id='&quot;.$pag&#091;'page_id'&#093;.&quot;'&quot;);
	header(&quot;Location: &quot; . SED_ABSOLUTE_URL . $redir);
	exit;
	}</pre></div> Он похож, но не совсем. Смотрим первых 6 знаков в тексте. Если эти знаки команды (наше правило движка) равны слову redir: то мы отсекаем из текста эти знаки а получившуюся часть складываем с SED_ABSOLUTE_URL что мы имеем, мы имеем переход на тот модуль в движке который нам нужен. Браузер через PHP выполняет команду-оператор  header. Текущий процесс обработки мы опять прекращаем exit; Этот метод имеет существенный недостаток - происходит перезагрузка всей системы движка, а не подгрузка части программного кода, например из другого модуля (т.е. не как плагина  к готовому целому). Происходит замена всего модуля на другой.<br />
Не надо обижаться - это обычный, не быстрый этап освоения профессии программиста. Инструкции по программированию готовят для тех, кто прежде всего, уже это делал не раз. И, следовательно, пережевка, мешает  заострить внимание.<br />
<br />
Gunslinger! Тут, в моем примере, есть и третий участок. (модуль page.inc.php) попробуйте разобраться, для начала, и вы откроете совсем необычную возможность движка это ...]]></description>
			<pubDate>Za, 30 Jan 2010 01:09:49 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/nl/forums?m=posts&q=5200&d=30#post22454]]></link>
		</item>
		<item>
			<title>Trustmaster</title>
			<description><![CDATA[Ликбез по хукам получился весьма неплохой, хоть и несколько сложноват.<br />
<br />
Модули и плагины рождают много путаницы, потому как в общем случае слова очень близкие по значению. Так что скорее всего модули придётся именовать как-то по-другому, например зонами (zones) или областями (areas). Но пока по привычке - модули - в Seditio/Cotonti это скрипты верхнего (корневого) уровня, реализующий некий фундаментальный функционал. Примеры: форумы, страницы, личные сообщения. Как правило, один модуль содержит несколько включаемых файлов (includes). Однако ни один модуль не может заведомо реализовать все возможные пожелания тех или иных пользователей, хотя бы потому, что все сайты разные и требуют разный функционал. Поэтому для каждой логически целостной части модуля имеются точки расширения - хуки. Вот к ним-то и подключаются плагины.<br />
<br />
Есть ещё один момент: standalone части плагинов, которые отличаются от модулей только тем, что на корневом уровне используют модуль plug.php и отличаются от модулей меньшим объёмом кода (хотя бывают и плагины с исходниками по 300kB текста), а также тем, что кроме standalone в них всё-таки есть и части, использующие хуки других модулей. Модули же не зависят друг от друга.<br />
<br />
Окончательно плагины и модули до сих пор не разведены по функциональности, а также не разорвана жёсткая связь базовых модулей с ядром, чтобы из них можно было собирать сайт как из кубиков конструктора.<br />
<br />
С документацией беда, да. Стараемся хотя бы на англ. документировать основные моменты. Но возможности ограничены.]]></description>
			<pubDate>Za, 30 Jan 2010 00:46:44 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/nl/forums?m=posts&q=5200&d=30#post22453]]></link>
		</item>
		<item>
			<title>Gunslinger</title>
			<description><![CDATA[<strong>Sergey</strong><br />
<blockquote>Ваш вопрос меня поверг своей наивностью и вот почему: в вашем вопросе содержится ответ на то, что вам еще пока не &quot;по зубам&quot; работать с PHP.</blockquote>
<br />
Пока работабю и мир от этого не рухнул. И что общего имеет концепция построения движка по которой вообще и в принципе нет человеческой документации (в следствие чего и возникают подобные вопросы) с языком программирования я не совсем понимаю. И еще одно. С точки зрения програмного кода плагин по вашему не является тем же подключаемым модулем?<br />
<br />
Сударь, я конечно польщен тем, что вы снизошли до пояснений полному профану. Премного благодарен. Я так понимаю вы совершенно не в курсе, что люди задают вопросы для того чтобы чему-то научиться?<br />
<br />
В краткой форме: по нормальному без демонстративного выпендрежа ответить можно?<br />
<br />
П.С.<br />
<br />
<strong>Sergey</strong>, Вот видите? У нас даже старожилы не понимают разници а вы в мой адрес приговоры выдаете.]]></description>
			<pubDate>Za, 30 Jan 2010 00:30:32 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/nl/forums?m=posts&q=5200&d=30#post22451]]></link>
		</item>
		<item>
			<title>Sergeich</title>
			<description><![CDATA[Вот чёрт, спасибо за ликбез. Теперь и я стал понимать чем модуль от плагина отличается :).]]></description>
			<pubDate>Za, 30 Jan 2010 00:26:17 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/nl/forums?m=posts&q=5200&d=30#post22450]]></link>
		</item>
		<item>
			<title>Sergey</title>
			<description><![CDATA[<blockquote><a href="https://www.cotonti.com/forums.php?m=posts&amp;p=22448#22448">#</a> <strong>Gunslinger :</strong>
ГХм... <br />
Народ, не обижайтесь, но ваши ответы иногда просто убивают <img class="aux smiley" src="https://www.cotonti.com/./images/smilies/smile.gif" alt=":)" /><br />
</blockquote>
Ваш вопрос меня поверг своей наивностью и вот почему: в вашем вопросе содержится ответ на то, что вам еще пока не &quot;по зубам&quot; работать с PHP. Вообще-то модуль, это (в общем случае) самостоятельная, заранее определенная часть, которая загружается по правилам обращений с ссылками в интернет. Если взять форум, то вот это обращение http_://www.cotonti.com/forums.php т.е. вызывается модуль forums.php из корневой части сайта www.cotonti.com. После знака ? идут ключи, по которым модуль определяет что делать дальше. <br />
Плагин, это пользовательская заплатка, которая подключается в модуле соответствующим образом, в соответствующим порядком и подключается к тому юзеру, которому предоставлено разрешение на то, чтобы воспользоваться этой заплаткой. Весь эффект основан на этой  стандартной части модуля по подключению плагина:<div class="highlight"><pre class="php">/* === Hook === */
$extp = sed_getextplugins('page.download.first');
if (is_array($extp))
{ foreach($extp as $k =&gt; $pl) { include_once($cfg&#091;'plugins_dir'&#093;.'/'.$pl&#091;'pl_code'&#093;.'/'.$pl&#091;'pl_file'&#093;.'.php'); } }</pre></div>
<br />
В массиве $extp содержатся указания на плагины, перебирая эти указания подключаются соответствующие плагины. Каждый модуль, условно, разбит на законченные логические части - это скелет.<br />
У такой части имеется наименование Hook (для примера это page.download.first - загрузи в странице первым) следовательно будут загружаться плагины помеченные как  page.download.first . Однако, плагинов к одной части может быть подключено много, для этого массив $extp, предварительно, сортируется по порядку Order и имени для одинаковых порядков. Исполняются вначале самые меньшие значения. Далее, ответ на мое утверждение &quot;вам еще пока не &quot;по зубам&quot; работать с PHP&quot; следует вызов этого плагина. Фактически оператор  include_once (единожды) загружает файл с кодом PHP. Имя и где его искать берутся как раз берутся из условий в массиве $extp и установок всего ресурса в целом ($cfg['plugins_dir']). Условия загрузки формируются при установке плагина, обработкой специальной части плагина Setup. <br />
Надо знать, что PHP это интерпретатор, который наперед не знает, что будет дальше. PHP просто берет это файл плагина включает в текст модуля и интерпретирует. Если,  в плагине будет свой механизм Hook, то это будет продолжено дальше, пока не будут исчерпаны все подключаемые плагины для данной части.<br />
Пройдя последний оператор плагина, интерпретатор возвратиться к исходному модулю и продолжит обработку его операторов, до следующего Hook]]></description>
			<pubDate>Vr, 29 Jan 2010 23:29:26 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/nl/forums?m=posts&q=5200&d=30#post22449]]></link>
		</item>
		<item>
			<title>Gunslinger</title>
			<description><![CDATA[ГХм... <br />
Народ, не обижайтесь, но ваши ответы иногда просто убивают <img class="aux smiley" src="https://www.cotonti.com/./images/smilies/smile.gif" alt=":)" /><br />
<br />
<br />
Еще раз: в чем <strong>разница</strong> между плагинами и модулями? Всего лиш в объеме кода??? <br />
<br />
А если разницы нет, то на кой икс здались модули? Или плагины...]]></description>
			<pubDate>Vr, 29 Jan 2010 22:38:48 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/nl/forums?m=posts&q=5200&d=30#post22448]]></link>
		</item>
		<item>
			<title>Sergeich</title>
			<description><![CDATA[если грубо, то модуль - большой плагин.]]></description>
			<pubDate>Vr, 29 Jan 2010 21:19:40 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/nl/forums?m=posts&q=5200&d=30#post22445]]></link>
		</item>
		<item>
			<title>Gunslinger</title>
			<description><![CDATA[Кстати в чем принципиальная разница между плагином и модулем?]]></description>
			<pubDate>Vr, 29 Jan 2010 21:05:16 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/nl/forums?m=posts&q=5200&d=30#post22444]]></link>
		</item>
		<item>
			<title>Sergeich</title>
			<description><![CDATA[Форум - это модуль. В будущих версиях планируется модульность довести до ума, поэтому сейчас нет смысла делать такие глубокие изменения.]]></description>
			<pubDate>Vr, 29 Jan 2010 18:28:37 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/nl/forums?m=posts&q=5200&d=30#post22442]]></link>
		</item>
		<item>
			<title>jcrush</title>
			<description><![CDATA[не зачем]]></description>
			<pubDate>Vr, 29 Jan 2010 16:41:19 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/nl/forums?m=posts&q=5200&d=0#post22441]]></link>
		</item>
		<item>
			<title>Aristei</title>
			<description><![CDATA[А можно сделать еще проще, сделайте форум плагином и пусть каждый курочет его как хочет, кому стандартной версии хвататет, загружай ставь, кому нужно с фишечками, дорабатывай и вот все у тебя в одном месте, а тем кому форум нафиг не нужен (мини соц сети на котонти, корпоративные сайты, сайты визитки и т.д.) тоже остануться в выигрыше.<br />
<br />
Эмм или форум так прочно вшит в движок, что это не реально?]]></description>
			<pubDate>Vr, 29 Jan 2010 16:24:50 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/nl/forums?m=posts&q=5200&d=0#post22440]]></link>
		</item>
		<item>
			<title>Gunslinger</title>
			<description><![CDATA[Вот сам плагин - <a href="http://www.cotonti.com/datas/users/powerban_551.zip">Баномет</a>. Хак сделан с целью после разбана возвращать автоматом юзера в ту группу в которой он был до бани. Правил файл двигла users.auth.ink.php Код хака:<br />
<br />
<br />
1.<br />
<pre class="code">
//Guns: ban system plugin hack
//	$sql = sed_sql_query(&quot;SELECT user_id, user_maingrp, user_banexpire, user_skin, user_theme, user_lang FROM $db_users WHERE user_password='$rmdpass' AND user_name='&quot;.sed_sql_prep($rusername).&quot;'&quot;);
	$sql = sed_sql_query(&quot;SELECT user_id, user_maingrp, user_banexpire, user_skin, user_theme, user_lang, user_unban_group FROM $db_users WHERE user_password='$rmdpass' AND user_name='&quot;.sed_sql_prep($rusername).&quot;'&quot;);
//Guns: End

</pre>
<br />
2.<br />
<br />
<pre class="code">//Guns: ban system plugin hack
//			$sql = sed_sql_query(&quot;UPDATE $db_users SET user_maingrp='4' WHERE user_id={$row&#091;'user_id'&#093;}&quot;);
			$sql = sed_sql_query(&quot;UPDATE $db_users SET user_maingrp='&quot;.$row&#091;'user_unban_group'&#093;.&quot;' WHERE user_id={$row&#091;'user_id'&#093;}&quot;);
//Guns: End
</pre>
<br />
Строки оригинального кода предварительно забиты коментариями для сохранности <img class="aux smiley" src="https://www.cotonti.com/./images/smilies/smile.gif" alt=":)" /><br />
<br />
Для установки плуга:<br />
<br />
1. SQL запрос <br />
<br />
<pre class="code">ALTER TABLE sed_users ADD COLUMN user_unban_group int(11) unsigned NOT NULL default '0';</pre>
В добавленном поле таблицы хранится группа юзера в которой он был до бана.<br />
<br />
2. Вышеописанный хак<br />
<br />
3. Стандартный инсталл самого плуга через админку.<br />
<br />
Модули самого плагина должны содержать комментарии. Вобщем жду замечаний и предложений. Просьба сильно не пинать. Все-таки первый блин самостоятельной выпечки <img class="aux smiley" src="https://www.cotonti.com/./images/smilies/smile.gif" alt=":)" /><br />
<br />
Тестировали работоспособность плагина трое: я, SunChase и еще один человек. Вроде все пашет хотя для уверенности статистики маловато <img class="aux smiley" src="https://www.cotonti.com/./images/smilies/smile.gif" alt=":)" /><br />
<br />
П.С.<br />
<br />
При попытке загрузить архив с плугом в свой ПФП на сайте возник трабл. Выбивало сообщение об ошибке до тех пор пока не создал внутри ПФП папку и не залил плуг туда. В корень ну никак не хотело. Я что-то намудрил или это известный косяк?]]></description>
			<pubDate>Vr, 29 Jan 2010 09:02:15 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/nl/forums?m=posts&q=5200&d=0#post22437]]></link>
		</item>
		<item>
			<title>esclkm</title>
			<description><![CDATA[<blockquote> Для начала попробую начать с простого. Соединю эти плуги: расширенная статистика форума, подписка на темы, бан пользователей по аккаунту.</blockquote>
это будет чрезвычайно полезно. но только объединяй плагины по профилю) так будет очень ползная наработка. Может и не совсем для всего. но это будет рельно удобно.<br />
<br />
Hook=tools - тут смотри сам: если у тебя банальная настройка - то выноси в банальные настройки.<br />
Но если глобальная работа с базами, сложные элементы, которые нельзя просто сохранить - то это то что надо<br />
<br />
первый плагин он на то и первый плагин) дальше проще)<br />
одно советую сразу накачай гору плагинов - чтобы смотреть как достигается тот или иной результат)<br />
<br />
про аякс- не спеши. у нас все меняется. стабильный вариант функций аякса будет уже скоро.притом документированный)<br />
плагин выкидывай и описывай словесно хак. оптимизировать поможем)]]></description>
			<pubDate>Vr, 29 Jan 2010 06:11:38 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/nl/forums?m=posts&q=5200&d=0#post22436]]></link>
		</item>
		<item>
			<title>Trustmaster</title>
			<description><![CDATA[<blockquote><strong>Gunslinger:</strong><hr />Согласен. Это можно сотворить без хака админки? Если да, то каков принцип?</blockquote>
Hook=tools]]></description>
			<pubDate>Thu, 28 Jan 2010 21:30:40 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/nl/forums?m=posts&q=5200&d=0#post22423]]></link>
		</item>
		<item>
			<title>Gunslinger</title>
			<description><![CDATA[<strong>Dayver, Trustmaster</strong> принцип вроде бы понял. Единственное &quot;но&quot; - я в аджаксе разбираюсь как чебурашка в астрофизике <img class="aux smiley" src="https://www.cotonti.com/./images/smilies/smile.gif" alt=":)" /> Руки еще не дошли.<br />
<br />
<blockquote>думаю так же может понадобится создать страницу в разделе &quot;Инструменты&quot; админки на которой могут размещаться более сложные элементы управления плагином нежели простые конфиги ... </blockquote>
<br />
Согласен. Это можно сотворить без хака админки? Если да, то каков принцип?<br />
<br />
Для начала попробую начать с простого. Соединю эти плуги: расширенная статистика форума, подписка на темы, бан пользователей по аккаунту.<br />
<br />
Легкий оффтоп: <br />
<br />
Кстати, может быть плагин бана по аккаунту на заданный срок включить уже в коробку? Или как родной функционал движка? А то я нифига не представляю себе форум, на котором все пользователи на столько праведны, что никогда и никого банить не придется <img class="aux smiley" src="https://www.cotonti.com/./images/smilies/smile.gif" alt=":)" /> Утопия ИМХО. Плагин я уже давно сделал (правда в нем есть таки один хак). Может глянете код на предмет улучшения и оптимизации? Он работает и под Седитио и под Котонти. Говорю сразу, что это была моя первая доработка на ПХП, так, что там вполне возможна целая куча промахов и нерациональностей.]]></description>
			<pubDate>Thu, 28 Jan 2010 18:57:35 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/nl/forums?m=posts&q=5200&d=0#post22416]]></link>
		</item>
		<item>
			<title>Sergeich</title>
			<description><![CDATA[Во, конструктивное предложение. Я за, не сказать что мне это очень нужно, но может быть полезно другим. Это однозначно лучше хака ядра <img class="aux smiley" src="https://www.cotonti.com/./images/smilies/smile.gif" alt=":)" />]]></description>
			<pubDate>Thu, 28 Jan 2010 02:53:01 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/nl/forums?m=posts&q=5200&d=0#post22396]]></link>
		</item>
		<item>
			<title>Dayver</title>
			<description><![CDATA[Согласен с Трастом плуги сливать не так уж и сложно .... главное начать - выделить два-три самых важных плагина(самые нужные функции\фичи которые будут востребованы на большинстве сайтов) и соответственно конфиги сосредотачивать в одном .... думаю так же может понадобится создать страницу в разделе &quot;Инструменты&quot; админки на которой могут размещаться более сложные элементы управления плагином нежели простые конфиги ... а еще можно создать часть плагина (файл с Hooks=ajax) которая будет генерировать аякс ответы, которыми можно усовершенствовать существующий функционал фич и рюшек ... но самое важное снабжать подробными пояснениями каждую настройку (благо в коте делать это чрезвычайно просто .... даже многоязычные) .... ну, а потом уже по надобности подтягивать остальные плагины в эту кучу]]></description>
			<pubDate>Thu, 28 Jan 2010 00:57:58 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/nl/forums?m=posts&q=5200&d=0#post22395]]></link>
		</item>
		<item>
			<title>Trustmaster</title>
			<description><![CDATA[Ну плагины - тот же PHP, дополнять их не сложнее, чем ядро. Скажем, всё, что должно размещаться в шапке и использовать хук header.tags объединяешь в одном файле myplugin.header.php, который дополняешь по мере поступления нового кода. Плагины, по сути - обычные include-файлы.]]></description>
			<pubDate>Thu, 28 Jan 2010 00:18:33 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/nl/forums?m=posts&q=5200&d=0#post22394]]></link>
		</item>
		<item>
			<title>Gunslinger</title>
			<description><![CDATA[<strong>Dayver</strong>, <br />
<blockquote>А можно и я таки выскажусь?</blockquote>
Вот в таком ключе не то что можно, а даже нужно.<br />
<br />
По поводу твоего предложения - тоже вполне пиемлемый вариант. Вот только необходимо хорошенько продумать систему слияния всех плугов в один функционал. Или отработать методику, которая позворлит наименее геморно присоединить к подобному глобальному плагину новые поступления <img class="aux smiley" src="https://www.cotonti.com/./images/smilies/smile.gif" alt=":)" /> Может что посоветуеш на эту тему?]]></description>
			<pubDate>Wo, 27 Jan 2010 23:06:13 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/nl/forums?m=posts&q=5200&d=0#post22393]]></link>
		</item>
		<item>
			<title>Dayver</title>
			<description><![CDATA[А можно и я таки выскажусь? Не буду разглагольствовать про то нужны ли фичи или нет форуму, а хочу спросить другое - может было бы более оптимальным вариантом не хакать (даже с умом) ядро а просто свести существующую кучу плагинов (для прикрутки фич) в один плуг (ведь плагин это не обязательно пара файлов повешенных на один-два хука, это может быть и десяток-два пхп файлов цепляющихся за пяток хуков). Тогда и куча настроек будет сосредоточена в одном месте = конфиг одного большого плагина (ведь это решает основную поставленную проблему) + не вызовет проблемы &quot;хаков&quot; - проблемы которая будет возникать при обновлении движка(и может в итоге доставить немало гемороя даже при грамотном навешивании хаков). Да и к тому же это не намного усложняет решение поставленной задачи ... ведь свести существующий функционал в кучу не намного сложнее чем похакать несколько файлов ядра.<br />
<br />
Я не пытаюсь что либо доказать или вступить в спор - просто выдвинул идею (надеюсь хорошую)]]></description>
			<pubDate>Wo, 27 Jan 2010 08:23:16 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/nl/forums?m=posts&q=5200&d=0#post22367]]></link>
		</item>
		<item>
			<title>Gunslinger</title>
			<description><![CDATA[<strong>Trustmaster</strong> <strong>БОЛЬШОЕ ЧЕЛОВЕЧЕСКОЕ СПАСИБО</strong><br />
<br />
П.С.<br />
<br />
Просьба темку пока не закрывать. Возможно, всплывут еще вопросы.]]></description>
			<pubDate>Di, 26 Jan 2010 22:57:23 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/nl/forums?m=posts&q=5200&d=0#post22355]]></link>
		</item>
		<item>
			<title>Trustmaster</title>
			<description><![CDATA[Открываем <em>sql/cotonti-0.6.3.sql</em>, ищем там &quot;INSERT INTO `sed_config`&quot;, находим премеры запросов добавления конфигов. Кроме SQL нужно ещё обновить функцию восстановления дефолтных настроек. Находится она в <em>system/functions.admin.php</em> и называется <strong>sed_loadconfigmap()</strong>.]]></description>
			<pubDate>Di, 26 Jan 2010 22:50:37 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/nl/forums?m=posts&q=5200&d=0#post22353]]></link>
		</item>
		<item>
			<title>Gunslinger</title>
			<description><![CDATA[<strong>jcrush</strong> говориш нормально форум сделан? Ок. Давай посмотрим. Берем коробочную версию кота и пробуем сделать следующее:<br />
<br />
1. Прикрепи мне в теме заглавный пост<br />
<br />
2. Мне необходимо забанить пользователя на 4 часа за флуд.<br />
<br />
Распиши ка подробно как это сделать в коробочном варианте? Мой же плагин баномета плиз не предлагать. В офф плугинах такой примочки к двиглу нет. Я так понимаю это нафиг не нужная весч на форуме да? <br />
<br />
Или это по твоему &quot;финтифлюшки&quot;?<br />
<br />
Кроме того, все что вы назвали &quot;рюшечками&quot; и &quot;финтифлюшками&quot; является таковым ровно до тех пор пока не возникнет необходжимость. Над проектами с которыми я работаю все перечисленное ранее есть необходимостью. Почему - мое личное дело, и личное дело заказчика.<br />
<br />
<strong>esclkm</strong><br />
<blockquote>Из своих замечаний: самые популярные сайты сейчас социальные сети</blockquote>
Социальные сети это вобще отдельная тема. <a href="http://stalker-portal.ru/" rel="nofollow">http://stalker-portal.ru/</a> категорически непопулярный сайт да?. Кроме того см. сайты, указанные <strong>SunChase</strong>. Или у тебя в списке популярности только фкантакты и одноклассники?<br />
Ну а если уж говорить о соцсетях то количество необходимых для этого доработок в котонти мягко говоря угнетает.<br />
<br />
<strong>Trustmaster</strong><br />
<blockquote>Не стоит оно того. </blockquote>
Спасибо за совет но у меня есть свои причины подходить именно так. И не только у меня.<br />
<br />
<blockquote>От хаков все ушли хотя бы потому, что их невозможно поддерживать от версии к версии, особенно на множестве сайтов.</blockquote>
<br />
Зависит от подхода. Если человек курочит движок так, что потом сам не может понять что и зачем делал то это его проблемы. У меня пока трудностей с обновлением не возникало, а хаков в ядре дофига.<br />
<br />
Самый простой пример перечисленных мной &quot;финтифлюшек&quot; - геймерский сайт. Или такие сайты - лажа не достойная внимания по вашему?<br />
<br />
<strong>Sergeich</strong><br />
<br />
 По поводу приведенных тобой офф сайтов разработчиков форумов. Ты вообще заглядывал в настройки этих форумов в коробочном варианте? Форум Джумлы видел в режиме настройки (или он в список популярных не входит?) ? Если да, то покажи мне хотя бы 10% этих возможностей в коте. Даже такую &quot;финтифлюшку&quot; как подфорумы и то только в варианте котонти склепали относительно по-человечески. Или она тоже никому нафиг не нужна? <br />
<br />
<br />
<blockquote>но сообщения о новичках и именинниках на форуме лично мне нафиг не нужно и я не понимаю кому оно вообще может быть нужно.</blockquote>
<br />
Вот мой сосед например не понимает почему имея жену и двух детей ему нельзя через день напиваться до белой горячки. Ну нипонимает и все тут. Лично его ведь это просто прет! Его дружки тоже не понимают чего жена убивается. <br />
<br />
Точно! Нафига люди аж целый плагин для такой ненужной фиговины наваяли? Удивительно просто. <br />
<br />
Кстати <a href="http://punbb.informer.com/forums/" rel="nofollow">http://punbb.informer.com/forums/</a> - смотреть подвал страницы страницы<br />
<br />
<br />
<br />
<br />
<strong>Короче к теме.</strong><br />
<br />
<br />
1. Я не просил оценивать мой подход и давать советы по идеологии. Почему я решил делать именно так - (как правильно заметил ранее Сергеич) мои личные проблемы.<br />
<br />
<span style="text-decoration:underline"><strong>Цитирую себя еще раз:</strong></span><br />
<br />
<blockquote>Еще раз повторюсь, что разделять мое видение ситуации не обязательно, просто если можете, то подскажите, как именно вставить все необходимое (новые пункты настроек) в админку. Остальное я сам в состоянии сделать.</blockquote>
<br />
то <strong>esclkm</strong><br />
<blockquote>Я не понимаю этой неосознанной тяги к сложному... </blockquote>
1. У меня пока все &quot;тяги&quot; вполне осознанны, а понимать их мотивацию тебя как бы никто не просит.<br />
2. <blockquote>мы не создаем системуу - сайт за 5 минут.</blockquote>
Угу. Пока получается сайт за полгода <img class="aux smiley" src="https://www.cotonti.com/./images/smilies/smile.gif" alt=":)" /><br />
3. <blockquote>я же написал где беруться настройки.</blockquote>
<br />
Да? Процитируй свой ответ, где конкретно и четко пояснено как добавить в адлминку новую настройку. Мой вопрос был именно таков.<br />
<br />
2. Народ я эту тему создавал чтобы получить <span style="text-decoration:underline"><strong>грамотную техническую консультацию</strong></span> по моему вопросу, а не мурыжить на 5 листов вопросы идеологии построения форума. Если мне будет нужно мнение общественности по поводу рациональности моей затеи - я об этом спрошу. В контексте данной темы лирика в стиле &quot;почему&quot; &quot;зачем&quot; &quot;и &quot;ты неправильно подходиш&quot; неуместна. Вопрос поставлен четко и ясно. Можете помочь - помогите конкретикой. Не можете или не хотите - проходите мимо темы. Тема претит религиозным взглядам админтима - закройте ее.]]></description>
			<pubDate>Di, 26 Jan 2010 22:31:00 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/nl/forums?m=posts&q=5200&d=0#post22352]]></link>
		</item>
		<item>
			<title>SunChase</title>
			<description><![CDATA[Меня интересует где в самом ядре прописывается сие дело.К примеру &quot;admin.php?m=config&quot; раздел &quot;Форум&quot;]]></description>
			<pubDate>Di, 26 Jan 2010 21:30:29 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/nl/forums?m=posts&q=5200&d=0#post22350]]></link>
		</item>
		<item>
			<title>esclkm</title>
			<description><![CDATA[я же написал где беруться настройки.]]></description>
			<pubDate>Di, 26 Jan 2010 21:18:52 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/nl/forums?m=posts&q=5200&d=0#post22349]]></link>
		</item>
		<item>
			<title>SunChase</title>
			<description><![CDATA[<blockquote><a href="https://www.cotonti.com/forums.php?m=posts&amp;p=22345#22345">#</a> <strong>Kort :</strong>
SunChase и Gunslinger, так вас же за руки никто не держит: работайте ручками, вы же умные ребята! А остальные дураки пусть пишут модули и плагины.<br />
</blockquote>
тоись возвращаемся к начальному вопросу к разработчикам <img class="aux smiley" src="https://www.cotonti.com/./images/smilies/smile.gif" alt=":)" /><br />
<br />
<blockquote>Короче нужен хак админки. Поясните плз как это делать</blockquote>
Такчто попрошу уточнить <strong>Где именно</strong> стоит копатся,а не ответы типа &quot;ну там в папке core поищи&quot;.<br />
<br />
<strong>Sergeich</strong> спасибо что поправил.]]></description>
			<pubDate>Di, 26 Jan 2010 21:00:42 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/nl/forums?m=posts&q=5200&d=0#post22347]]></link>
		</item>
	</channel>
</rss>