<?xml version='1.0' encoding='UTF-8'?>
<rss version='2.0'>
	<channel>
		<title>cotonti.com : Произвольные элементы в настройках параметров плагинов (добавлено в #1058)</title>
		<link>https://www.cotonti.com</link>
		<description>Son konu mesajları</description>
		<generator>Cotonti</generator>
		<language>en</language>
		<pubDate>Mon, 13 Apr 2026 10:20:06 -0000</pubDate>

		<item>
			<title>Macik</title>
			<description><![CDATA[<p>
	Простой инструмент, который позволит плагинописателям (при необходимости) самим сформировать элементы настройки расширений. </p>
<p><strong>Добавлено 2 недели спустя:</strong></p><p>
	Вот, дошли руки. Смотрим пул реквест: <a href="https://github.com/Cotonti/Cotonti/pull/1058" rel="nofollow">https://github.com/Cotonti/Cotonti/pull/1058</a></p>
<p>
	В качестве иллюстрации возможностей сделал простое расширение: <a href="https://github.com/macik/cot-extdev_custom" rel="nofollow">https://github.com/macik/cot-extdev_custom</a></p>
<p>
	Выглядит так:</p>
<p>
	- в setup файле размещаем описание переменной с типом <strong>custom</strong> и именем пользовательской функции (в нашем примере color_select_input() ) для отрисовки элемента: </p>
<pre class="brush:plain;">
color_select=10:<span style="color:#ee82ee;"><strong>custom</strong></span>:<span style="color:#ff8c00;"><strong>color_select_input</strong>()</span>:#aabbcc:Simple color setup</pre>
<p>
	в функцию передаются имя переменой, ее значение, и следом прочие параметры указанные в setup файле. </p>
<p>
	При записи в БД вызывается cot_import со значением фильтра равным имени переменной.</p>
<p>
	В общем кому интересно смотрите пример плагина там все просто, всего 2 файла (2 функции).</p>
]]></description>
			<pubDate>Sal, 09 Eki 2012 14:31:43 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/tr/forums?m=posts&q=7151&d=0#post35757]]></link>
		</item>
		<item>
			<title>esclkm</title>
			<description><![CDATA[<p>
	чтото аццкое вы сочиняете.</p>
<p>
	Мне интересно что будет на выходе)</p>
]]></description>
			<pubDate>Sal, 09 Eki 2012 12:46:23 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/tr/forums?m=posts&q=7151&d=0#post35755]]></link>
		</item>
		<item>
			<title>Macik</title>
			<description><![CDATA[<p>
	Тут в <a href="http://www.cotonti.com/forums?m=posts&amp;q=7126">соседней теме</a> поговорили о необходимости расширения набора типов полей в настройках плагинов.</p>
<p>
	Еще одна идея родилась: может не заморачиваться внесением в движок дополнительных элементов типа «multiselect», а вместо этого прописать простой механизм позволяющий плагинописателям самим определять, какой элемент выводить и как обрабатывать пришедшие от него параметры?</p>
<p>
	Т.е нечто вроде колбеков: <code>var4=14:callback:cot_get_editors():markitup:Simple callback</code></p>
<p>
	Только с той разницей, что будет вызываться 2 функции - одна для формирования html кода элемента для отрисовки пользовательского элемента, а вторая будет вызываться для приема данных перед сохранением в базу.</p>
<p>
	На примере:</p>
<p>
	В plug.setup.php вводим переменную типа «<span style="color:#ff8c00;">user_def</span>»:  <code>plug_<span style="font-family:monospace;">var=01:<span style="color:#ff8c00;">user_def</span>:<span style="color:#800080;">my_new_ui()</span>:def_value:Simple user defined UI parameter</span></code></p>
<p>
	В <span style="color:#006400;">admin.config.php</span> добавляем код для обработки типа «<span style="color:#ff8c00;">user_def</span>» (по аналогии с<span style="color:#008000;"> callback</span>), который вызовет функцию «<strong><span style="color:#800080;"><span style="font-family:monospace;">my_new_ui_create()</span></span></strong>» для получения html кода нашего пользовательского элемента. </p>
<p>
	А при записи в БД вместо <code>$cfg_value = trim(cot_import($row['config_name'], 'P', 'NOC'));</code> вызывать пользовательскую функцию «<strong><span style="color:#800080;"><span style="font-family:monospace;">my_new_ui_</span>import<span style="font-family:monospace;">()</span></span></strong>» в которой автор плагина напишет необходимый код для обработки и фильтрации параметров. Хранить как и остальные значения просто текстом.</p>
<p>
	-----</p>
<p>
	Итого плюсы такого решения: </p>
<ul><li>
		минимальные доработки  <span style="color:rgb(0,100,0);">admin.config.php</span> (добавить 5-10 строк ) и <span style="color:rgb(0,100,0);">configuration.php</span> (добавить ~5 строк)</li>
	<li>
		всю головную боль по реализации конкретного нового элемента берет на себя плагинописатель (для ленивых можно выложить примеры кода)</li>
	<li>
		нет необходимости дальнейшего изменения кода, когда кто-то «захотел новый тип элементов ввода».</li>
</ul><p>
	 </p>
]]></description>
			<pubDate>Sal, 09 Eki 2012 10:30:27 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/tr/forums?m=posts&q=7151&d=0#post35753]]></link>
		</item>
	</channel>
</rss>