Posted 6 сентября, 20177 yr comment_135894 При создании плагина создается файл dev/setup/install.php, но при формировании xml плагина он туда не попадает. Соответственно при установке ничего из этого файла не выполняется. Возможно ли и какие файлы/методы надо реализовать, чтобы выполнялись какие-то дополнительные шаги при установке плагина? И также с удалением: есть ли способ добавить свои шаги при удалении? Речь именно о плагине, не о приложении.
6 сентября, 20177 yr comment_135896 13 минут назад, qdev сказал: Возможно ли и какие файлы/методы надо реализовать, чтобы выполнялись какие-то дополнительные шаги при установке плагина? И также с удалением: есть ли способ добавить свои шаги при удалении? В плагине так само есть "секции" с классами где вы описываете все действия при установке/обновлении/удалении. Посмотрите что-ли какой-нить для примера, думаю будет понятней чем на пальцах. Edited 6 сентября, 20177 yr by MIXOH
6 сентября, 20177 yr comment_135904 50 минут назад, qdev сказал: айл dev/setup/install.php, но при формировании xml плагина он туда не попадает Ну если в твоем коде есть синтаксическая ошибка, то не попадет. А еще возможно версию задать принудительно при создании плагина. 52 минуты назад, qdev сказал: И также с удалением: есть ли способ добавить свои шаги при удалении? Создаешь в паке плагина файл uninstall.php и пишешь там код на удаление. Вот пример одного из моих плагинов <?php /* To prevent PHP errors (extending class does not exist) revealing path */ if ( !defined( '\IPS\SUITE_UNIQUE_KEY' ) ) { header( ( isset( $_SERVER['SERVER_PROTOCOL'] ) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0' ) . ' 403 Forbidden' ); exit; } if( \IPS\Db::i()->checkForColumn( 'cms_database_fields', 'field_validator_extra' ) ) { \IPS\Db::i()->dropColumn( 'cms_database_fields', 'field_validator_extra' ); } if( \IPS\Db::i()->checkForColumn( 'core_pfields_data', 'pf_validator_extra' ) ) { \IPS\Db::i()->dropColumn( 'core_pfields_data', 'pf_validator_extra' ); }
6 сентября, 20177 yr Author comment_135906 1 hour ago, kgb said: Ну если в твоем коде есть синтаксическая ошибка, то не попадет. Это как проверить? Если при работе ошибок нет. Логи вроде тоже чистые. Куда копать, где искать?
6 сентября, 20177 yr Author comment_135924 Вроде разобрался. Надо сначала в Developer Center создать версию. в dev/setup появляется файл с номером версии. Он-то и попадает в итоговый xml. И спасибо за подсказку про uninstall.php
6 сентября, 20177 yr comment_135936 1 час назад, qdev сказал: . в dev/setup появляется файл с номером версии /dev появляется файл versions.json, а тот что в dev/setup с номером в принципе можно удалить, а все писать в install.php
6 сентября, 20177 yr Author comment_135946 Может, что не так делаю, но то, что в install.php не попадает в xml
7 сентября, 20177 yr Author comment_135956 14 hours ago, kgb said: /dev появляется файл versions.json, а тот что в dev/setup с номером в принципе можно удалить, а все писать в install.php хотя вы правы. Спасибо
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.