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

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


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

При создании плагина создается файл 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

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

Может, что не так делаю, но то, что в install.php не попадает в xml

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

14 hours ago, kgb said:

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

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

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

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

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

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