Не доверяйте им!
Следующие сайты незаконно удаляют копирайты с плагинов и копирайты LiveStreet.
- b.nyash.me/
- ingushia.ru
- xazina.com
- w-pc.ru
/plugins/
. Система сравнивает текущую версию плагина с версией этого плагина в БД. И если версия в БД старее, то в админке появляется кнопка «Применить обновление», которая автоматически запустит необходимые скрипты для обновления./update/
, который в свою очередь содержит каталоги с номерами версий. Для каждой версии можно создать несколько скриптов с произвольным названием, главное, что нужно помнить — названия файлов должно быть уникальным в рамках всего плагина для всех его версий.ModulePluginManager_EntityUpdate
и название класса является производным от имени файла — Plugin[plugin_name]_Update_[file_name]. Например, для файла /update/1.0/CreateTable.php класс будет таким:<?php class PluginArticle_Update_CreateTable extends ModulePluginManager_EntityUpdate { /** * Выполняется при обновлении версии */ public function up() { if (!$this->isTableExists('prefix_article')) { /** * При активации выполняем SQL дамп */ $this->exportSQL(Plugin::GetPath(__CLASS__).'/dump.sql'); } } /** * Выполняется при откате версии */ public function down() { $this->exportSQLQuery('DROP TABLE prefix_article;'); } }
up
и down
. Первый выполняется при обновлении до версии, второй при откате версии. В этих методах может быть не только работа с БД, но и другая необходимая для обновления логика.Activate
и Deactivate
от лишней логики и дать удобный механизм обновления версий. Для корректной работы данного механизма, необходимо версии плагинов именовать используя вот этот стандарт — ru2.php.net/manual/ru/function.version-compare.php, он позволит правильно сортировать версии.