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' => 'Удалить плагины',