Jump to content

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

Featured Replies

Posted
comment_135894

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

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

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

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

comment_135896
13 минут назад, qdev сказал:

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

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

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

Edited by MIXOH

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' );
}

 

  • Author
comment_135906
1 hour ago, kgb said:

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

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

  • Author
comment_135924

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

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

comment_135936
1 час назад, qdev сказал:

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

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

  • 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.


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

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

  • No registered users viewing this page.