<?xml version='1.0' encoding='UTF-8'?>
<rss version='2.0'>
	<channel>
		<title>cotonti.com : Админка: переустановка / обновление плагинов (реализовано).</title>
		<link>https://www.cotonti.com</link>
		<description>Last topic posts</description>
		<generator>Cotonti</generator>
		<language>en</language>
		<pubDate>Wed, 08 Apr 2026 15:40:32 -0000</pubDate>

		<item>
			<title>Macik</title>
			<description><![CDATA[<p>
	Как всегда "спасибо" за развернутый ответ.</p>
<blockquote>
	<a href="https://www.cotonti.com/forums?m=posts&amp;p=32944%2332944">#32944</a> <strong>Trustmaster: </strong><br /><p>
		Совершенно неверно. Кнопка "Обновить" делает следующее:</p>
	<ol><li>
			Вычисляет разницу между установленной в базе версией плагина и версией setup-файла.</li>
		<li>
			Удаляет текущие хукочасти плагина и устанавливает все заново. Это нужно, если в плагине появились новые части или если старые были удалены / изменилась мета-информация (например, используемые хуки).</li>
		<li>
			Обновляет конфигурацию. Добавляет новые опции, если таковые появились. Удаляет опции, которые были удалены из плагина. Изменяет и сбрасывает те опции, для которых изменился тип. Остальные опции оставляет неизменными.</li>
		<li>
			То же самое производит с конфигурацией структуры.</li>
		<li>
			Обновляет маски Auth/lock для members и guests.</li>
		<li>
			Выполняет PHP и SQL патчи из папки setup последовательно, исходя из различий установленной и новой версии.</li>
		<li>
			Обновляет версию плагина в базе и очищает кеш.</li>
	</ol></blockquote>
<p>
	Надо бы внести это описание в один из разделов документации, например в "администрирование". Я, например, слежу за выходом почти каждого обновления, а таких особенностей не знал.</p>
<blockquote>
	<p>
		По поводу предложений.</p>
	<p>
		1. Это не нужно. Это не genoa и переустанавливать каждый раз не надо. Кнопка Update применяет разность между релизами, а не сносит всё и ставит заново. Для более тонких вещей, помимо конфигурации, хуков и авторизации, учитесь писать SQL и PHP патчи для перехода к новым версиям без потери данных. Примеров в стандартных модулях и плагинах предостаточно.</p>
</blockquote>
<p>
	Понял.</p>
<blockquote>
	<p>
		2. Речь идёт полном контроле версий для каждого файла или о контроле версий для расширений целиком? Если второе, то это уже работает. Просто нужно добавить отображение обеих версий (установленная и текущая) и уведомление об обновлении в админке.</p>
</blockquote>
<p>
	В таком случае, думаю, достаточно общей версии для расширения. Что касается версий каждого файла, то надо либо их упразднить, либо в "документации для разработчика плагинов" указать, что версии каждого файла существуют "для справки", а системой используется только "главная версия" из setup файла.</p>
<blockquote>
	<p>
		См. "Примечание для разработчиков расширений" <a href="http://www.cotonti.com/ru/docs/start/updating">здесь</a>.</p>
</blockquote>
<p>
	Спасибо. Надо продублировать в одной из файлов раздела: <a href="http://www.cotonti.com/ru/docs/ext/extensions/">http://www.cotonti.com/ru/docs/ext/extensions/</a></p>
<p>
	 </p>
]]></description>
			<pubDate>Fri, 03 Feb 2012 11:48:24 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/forums?m=posts&q=6749&d=0#post33024]]></link>
		</item>
		<item>
			<title>Trustmaster</title>
			<description><![CDATA[<blockquote>
	<p>
		<span style="color:rgb(68,68,68);font-family:sans-serif;font-size:13px;line-height:20px;text-align:left;background-color:rgb(238,238,238);">На сколько понимаю просто сбрасывает настройки плагина к настройкам по умолчанию. Почему ее перевели как "Обновить" не понятно.</span></p>
</blockquote>
<p>
	Совершенно неверно. Кнопка "Обновить" делает следующее:</p>
<ol><li>
		Вычисляет разницу между установленной в базе версией плагина и версией setup-файла.</li>
	<li>
		Удаляет текущие хукочасти плагина и устанавливает все заново. Это нужно, если в плагине появились новые части или если старые были удалены / изменилась мета-информация (например, используемые хуки).</li>
	<li>
		Обновляет конфигурацию. Добавляет новые опции, если таковые появились. Удаляет опции, которые были удалены из плагина. Изменяет и сбрасывает те опции, для которых изменился тип. Остальные опции оставляет неизменными.</li>
	<li>
		То же самое производит с конфигурацией структуры.</li>
	<li>
		Обновляет маски Auth/lock для members и guests.</li>
	<li>
		Выполняет PHP и SQL патчи из папки setup последовательно, исходя из различий установленной и новой версии.</li>
	<li>
		Обновляет версию плагина в базе и очищает кеш.</li>
</ol><p>
	<strong>Добавлено 9 минут спустя:</strong></p>
<p>
	По поводу предложений.</p>
<p>
	1. Это не нужно. Это не genoa и переустанавливать каждый раз не надо. Кнопка Update применяет разность между релизами, а не сносит всё и ставит заново. Для более тонких вещей, помимо конфигурации, хуков и авторизации, учитесь писать SQL и PHP патчи для перехода к новым версиям без потери данных. Примеров в стандартных модулях и плагинах предостаточно.</p>
<p>
	2. Речь идёт полном контроле версий для каждого файла или о контроле версий для расширений целиком? Если второе, то это уже работает. Просто нужно добавить отображение обеих версий (установленная и текущая) и уведомление об обновлении в админке.</p>
<p>
	3. См. пункт первый и объяснение работы обновления выше.</p>
<blockquote>
	<p>
		 </p>
	<p style="margin-top:.6em;margin-right:0px;margin-bottom:.6em;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;font-size:13px;vertical-align:baseline;background-color:rgb(238,238,238);line-height:1.6em;color:rgb(68,68,68);font-family:sans-serif;text-align:left;">
		Думаю в виду планов сделать некий общий репозиторий модулей, есть смысл обсудить и проработать механизм "удобной" установки / управления модулями. </p>
	<p style="margin-top:.6em;margin-right:0px;margin-bottom:.6em;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;font-size:13px;vertical-align:baseline;background-color:rgb(238,238,238);line-height:1.6em;color:rgb(68,68,68);font-family:sans-serif;text-align:left;">
		В идеале некая система типа пакетов в *nix системах, когда каждый пакет имеет версию и зависимости от других.</p>
</blockquote>
<p>
	Скачивание и установка расширений прямо из админки <a href="https://github.com/Cotonti/Cotonti/issues/760" rel="nofollow">планируется</a> уже давно. Трудно точно сказать, когда, но будет.</p>
<p>
	Каждое расширение уже с первых релизов Сиены имеет версию и зависимости от других. Работает это не так удобно, как менеджеры пакетов в *nix системах, но постепенно идёт к этому.</p>
<p><strong>Добавлено 2 минуты спустя:</strong></p><p>
	См. "Примечание для разработчиков расширений" <a href="http://www.cotonti.com/ru/docs/start/updating">здесь</a>.</p>
]]></description>
			<pubDate>Thu, 26 Jan 2012 13:42:56 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/forums?m=posts&q=6749&d=0#post32944]]></link>
		</item>
		<item>
			<title>Fox</title>
			<description><![CDATA[<p>
	Доступно и толково + ЗА</p>
]]></description>
			<pubDate>Tue, 24 Jan 2012 21:29:16 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/forums?m=posts&q=6749&d=0#post32929]]></link>
		</item>
		<item>
			<title>Macik</title>
			<description><![CDATA[<p>
	Сейчас в разделе настроек любого плагина (Управление сайтом / Расширения / Плагин) в разделе "Опции" есть кнопка <a class="ajax button special large" href="https://www.cotonti.com/rss/topics/6749#" style="margin-top:.5em;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:.3em;padding-right:.6em;padding-bottom:.375em;padding-left:.6em;color:rgb(255,255,255);text-decoration:none;border-top-width:1px;border-right-width:1px;border-bottom-width:1px;border-left-width:1px;border-top-style:solid;border-right-style:solid;border-bottom-style:solid;border-left-style:solid;border-top-color:rgb(59,110,34);border-right-color:rgb(59,110,34);border-left-color:rgb(59,110,34);border-bottom-color:rgb(44,81,21);text-align:center;font-family:'lucida grande', tahoma, verdana, arial, sans-serif;font-size:13px;font-weight:bold;white-space:nowrap;background-color:rgb(242,242,242);vertical-align:bottom;" title="Установка или сброс всех компонентов плагина в значения по умолчанию">Обновить</a></p>
<p>
	На сколько понимаю просто сбрасывает настройки плагина к настройкам по умолчанию. Почему ее перевели как "Обновить" не понятно.</p>
<p>
	Но это так, преамбула...</p>
<p>
	 </p>
<p>
	<strong><u>Предложения</u></strong> (они все перекликаются между собой поэтому надо выработать единый алгоритм)</p>
<p>
	1. Изменить функционал кнопки или добавить отдельную кнопку "переустановить/обновить плагин". По нажатию на которую плагин удаляется и устанавливается по новой в один клик.</p>
<p>
	Что мы получаем:</p>
<ul><li>
		при выходе новой версии плагина проще переустановить - для боьлшинства плагинов распаковал и нажал кнопку</li>
	<li>
		при создании плагинов (внесение изменений в файлы /  хуки / setup переменные плагина) - проще переустановить и протестировать</li>
	<li>
		в плагине обновилась пара строк и добавился новый хук, тогда достаточно просто заменить 1 файл на новый и нажать обновить. И не надо деинсталировать-инсталировать-настраивать по новой.</li>
</ul><p>
	2. Доработать алгоритм установки плагинов, чтобы сохранял в базу версии плагинов/модулей, тогда возможно будет проверять эти версии на соответствие текущим файлам (и, например, выводить иконку предупреждение о том, что некоторые файлы добавились или изменили свою версию).</p>
<p>
	Смысл идеи сделать более простым  добавление / обновление модулей. Закинул измененные файлы в папку плагина,<br />
	а система тебе в админке говорит - "! версии таких-то файлов отличаются от последней установки, обновить?", жмем "обновить"</p>
<p>
	3. При обновлении плагина должна существовать возможность не обнулять данные настроек плагина и (или) данных персональных таблиц БД. Тут думаю понятно из предыдущих пунктов - плагин изменился немоного, чтобы все не сносить просто обновляем...</p>
<p>
	 </p>
<p>
	Написал сумбурно, поэтому <strong>подытожу требования</strong>:</p>
<ol><li>
		обновление модулей в один клик</li>
	<li>
		версионность модулей и ее физический контроль </li>
	<li>
		сохранение настроек/данных модуля при его обновлении</li>
	<li>
		контроль зависимостей (уже решен в <a href="https://github.com/Cotonti/Cotonti/issues/768" rel="nofollow" style="font-family:sans-serif;font-size:13px;line-height:1.6em;text-align:left;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;vertical-align:baseline;color:rgb(0,121,193);text-decoration:none;">#768</a> )</li>
</ol><p>
	 </p>
<p>
	Думаю в виду планов сделать некий общий репозиторий модулей, есть смысл обсудить и проработать механизм "удобной" установки / управления модулями. </p>
<p>
	В идеале некая система типа пакетов в *nix системах, когда каждый пакет имеет версию и зависимости от других.</p>
<p>
	 </p>
]]></description>
			<pubDate>Tue, 24 Jan 2012 19:40:50 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/forums?m=posts&q=6749&d=0#post32928]]></link>
		</item>
	</channel>
</rss>