qdev Опубликовано 6 сентября, 2017 Поделиться Опубликовано 6 сентября, 2017 При создании плагина создается файл dev/setup/install.php, но при формировании xml плагина он туда не попадает. Соответственно при установке ничего из этого файла не выполняется. Возможно ли и какие файлы/методы надо реализовать, чтобы выполнялись какие-то дополнительные шаги при установке плагина? И также с удалением: есть ли способ добавить свои шаги при удалении? Речь именно о плагине, не о приложении. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
MIXOH Опубликовано 6 сентября, 2017 Поделиться Опубликовано 6 сентября, 2017 (изменено) 13 минут назад, qdev сказал: Возможно ли и какие файлы/методы надо реализовать, чтобы выполнялись какие-то дополнительные шаги при установке плагина? И также с удалением: есть ли способ добавить свои шаги при удалении? В плагине так само есть "секции" с классами где вы описываете все действия при установке/обновлении/удалении. Посмотрите что-ли какой-нить для примера, думаю будет понятней чем на пальцах. Изменено 6 сентября, 2017 пользователем MIXOH Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
kgb Опубликовано 6 сентября, 2017 Поделиться Опубликовано 6 сентября, 2017 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' ); } Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
qdev Опубликовано 6 сентября, 2017 Автор Поделиться Опубликовано 6 сентября, 2017 1 hour ago, kgb said: Ну если в твоем коде есть синтаксическая ошибка, то не попадет. Это как проверить? Если при работе ошибок нет. Логи вроде тоже чистые. Куда копать, где искать? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
qdev Опубликовано 6 сентября, 2017 Автор Поделиться Опубликовано 6 сентября, 2017 Вроде разобрался. Надо сначала в Developer Center создать версию. в dev/setup появляется файл с номером версии. Он-то и попадает в итоговый xml. И спасибо за подсказку про uninstall.php Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
kgb Опубликовано 6 сентября, 2017 Поделиться Опубликовано 6 сентября, 2017 1 час назад, qdev сказал: . в dev/setup появляется файл с номером версии /dev появляется файл versions.json, а тот что в dev/setup с номером в принципе можно удалить, а все писать в install.php Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
qdev Опубликовано 6 сентября, 2017 Автор Поделиться Опубликовано 6 сентября, 2017 Может, что не так делаю, но то, что в install.php не попадает в xml Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
qdev Опубликовано 7 сентября, 2017 Автор Поделиться Опубликовано 7 сентября, 2017 14 hours ago, kgb said: /dev появляется файл versions.json, а тот что в dev/setup с номером в принципе можно удалить, а все писать в install.php хотя вы правы. Спасибо Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.