Перейти к содержанию
qdev

Установка/удаление плагина

Рекомендуемые сообщения

При создании плагина создается файл dev/setup/install.php, но при формировании xml плагина он туда не попадает. Соответственно при установке ничего из этого файла не выполняется.

Возможно ли и какие файлы/методы надо реализовать, чтобы выполнялись какие-то дополнительные шаги при установке плагина?

И также с удалением: есть ли способ добавить свои шаги при удалении?

Речь именно о плагине, не о приложении.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
13 минут назад, qdev сказал:

Возможно ли и какие файлы/методы надо реализовать, чтобы выполнялись какие-то дополнительные шаги при установке плагина?

И также с удалением: есть ли способ добавить свои шаги при удалении?

В плагине так само есть "секции" с классами где вы описываете все действия при установке/обновлении/удалении. Посмотрите что-ли какой-нить для примера, думаю будет понятней чем на пальцах.

Изменено пользователем MIXOH

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
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' );
}

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 hour ago, kgb said:

Ну если в твоем коде есть синтаксическая ошибка, то не попадет.

Это как проверить? Если при работе ошибок нет. Логи вроде тоже чистые. Куда копать, где искать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вроде разобрался. Надо сначала в Developer Center создать версию. в dev/setup появляется файл с номером версии. Он-то и попадает в итоговый xml. 

И спасибо за подсказку про uninstall.php

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 час назад, qdev сказал:

. в dev/setup появляется файл с номером версии

/dev появляется файл versions.json,  а тот что в dev/setup с номером в принципе можно удалить, а все писать в install.php

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
14 hours ago, kgb said:

/dev появляется файл versions.json,  а тот что в dev/setup с номером в принципе можно удалить, а все писать в install.php

хотя вы правы. Спасибо

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти


  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×