diff --git a/engine/modules/plugin/Plugin.class.php b/engine/modules/plugin/Plugin.class.php
index fa1386a7..d24e8d58 100644
--- a/engine/modules/plugin/Plugin.class.php
+++ b/engine/modules/plugin/Plugin.class.php
@@ -282,7 +282,10 @@ class ModulePlugin extends Module {
unset($aActivePlugins[array_shift($aIndex)]);
}
}
- $this->SetActivePlugins($aActivePlugins);
+ if (!$this->SetActivePlugins($aActivePlugins)) {
+ $this->Message_AddError($this->Lang_Get('plugins_activation_file_write_error'),$this->Lang_Get('error'),true);
+ return;
+ }
}
return $bResult;
@@ -318,7 +321,10 @@ class ModulePlugin extends Module {
/**
* Записываем данные в файл PLUGINS.DAT
*/
- file_put_contents($this->sPluginsDir.self::PLUGIN_ACTIVATION_FILE, implode(PHP_EOL,$aPlugins));
+ if (@file_put_contents($this->sPluginsDir.self::PLUGIN_ACTIVATION_FILE, implode(PHP_EOL,$aPlugins))) {
+ return true;
+ }
+ return false;
}
/**
diff --git a/templates/language/english.php b/templates/language/english.php
index 0ae19dad..375db668 100644
--- a/templates/language/english.php
+++ b/templates/language/english.php
@@ -781,6 +781,7 @@ return array(
'plugins_activation_overlap' => 'Conflict with an active plugin. Resource %%resource%% reconfigured to %%delegate%% by %%plugin%% plugin.',
'plugins_activation_overlap_inherit' => 'Conflict with an active plugin. Resource %%resource%% used as inheritor in %%plugin%% plugin.',
'plugins_activation_file_not_found' => 'Plugin not found',
+ 'plugins_activation_file_write_error' => 'Plugin file is not writable',
'plugins_activation_version_error' => 'Plugin requires LiveStreet kernel ver. %%version%% or higher',
'plugins_activation_requires_error' => 'Plugin requires activated %%plugin%% plugin',
'plugins_submit_delete' => 'Delete plugins',
diff --git a/templates/language/russian.php b/templates/language/russian.php
index fa294c3f..25858797 100644
--- a/templates/language/russian.php
+++ b/templates/language/russian.php
@@ -781,6 +781,7 @@ return array(
'plugins_activation_overlap' => 'Конфликт с активированным плагином. Ресурс %%resource%% переопределен на %%delegate%% плагином %%plugin%%.',
'plugins_activation_overlap_inherit' => 'Конфликт с активированным плагином. Ресурс %%resource%% используется как наследник в плагине %%plugin%%.',
'plugins_activation_file_not_found' => 'Файл плагина не найден',
+ 'plugins_activation_file_write_error' => 'Файл плагина не доступен для записи',
'plugins_activation_version_error' => 'Для работы плагина необходимо ядро LiveStreet версии не ниже %%version%%',
'plugins_activation_requires_error' => 'Для работы плагина необходим активированный плагин %%plugin%%',
'plugins_submit_delete' => 'Удалить плагины',