Jump to content

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

Featured Replies

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

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

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

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

Link to comment
https://ipbmafia.ru/topic/18249-ustanovkaudalenie-plagina/
Share on other sites
13 минут назад, qdev сказал:

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

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

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

Edited by MIXOH

Link to comment
https://ipbmafia.ru/topic/18249-ustanovkaudalenie-plagina/?&do=findComment&comment=135896
Share on other sites
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' );
}

 

Link to comment
https://ipbmafia.ru/topic/18249-ustanovkaudalenie-plagina/?&do=findComment&comment=135904
Share on other sites
1 hour ago, kgb said:

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

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

Link to comment
https://ipbmafia.ru/topic/18249-ustanovkaudalenie-plagina/?&do=findComment&comment=135906
Share on other sites

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

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

Link to comment
https://ipbmafia.ru/topic/18249-ustanovkaudalenie-plagina/?&do=findComment&comment=135924
Share on other sites
1 час назад, qdev сказал:

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

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

Link to comment
https://ipbmafia.ru/topic/18249-ustanovkaudalenie-plagina/?&do=findComment&comment=135936
Share on other sites

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

Link to comment
https://ipbmafia.ru/topic/18249-ustanovkaudalenie-plagina/?&do=findComment&comment=135946
Share on other sites
14 hours ago, kgb said:

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

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

Link to comment
https://ipbmafia.ru/topic/18249-ustanovkaudalenie-plagina/?&do=findComment&comment=135956
Share on other sites

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.


Guest
Ответить в этой теме...

Последние посетители 0

  • No registered users viewing this page.