mirror of
https://github.com/Oreolek/ifhub.club.git
synced 2024-06-17 07:10:48 +03:00
Проверка наличия плагинов, указанные в xml-плагина как обязательные.
This commit is contained in:
parent
b704c34caa
commit
1fffd3f0a9
|
@ -112,6 +112,45 @@ class LsPlugin extends Module {
|
|||
$oPlugin=new $sClassName;
|
||||
|
||||
if($sAction=='Activate') {
|
||||
/**
|
||||
* Проверяем совместимость с версией LS
|
||||
*/
|
||||
if(defined('LS_VERSION')
|
||||
and version_compare(LS_VERSION,$aPlugins[$sPlugin]['property']->requires->livestreet,'=<')) {
|
||||
$this->Message_AddError(
|
||||
$this->Lang_Get(
|
||||
'plugins_activation_version_error',
|
||||
array(
|
||||
'version'=>$aPlugins[$sPlugin]['property']->requires->livestreet)
|
||||
),
|
||||
$this->Lang_Get('error'),
|
||||
true
|
||||
);
|
||||
return;
|
||||
}
|
||||
/**
|
||||
* Проверяем наличие require-плагинов
|
||||
*/
|
||||
if($aPlugins[$sPlugin]['property']->requires->plugins) {
|
||||
$aActivePlugins=$this->GetActivePlugins();
|
||||
$iConflict=0;
|
||||
foreach ($aPlugins[$sPlugin]['property']->requires->plugins->children() as $sReqPlugin) {
|
||||
if(!in_array($sReqPlugin,$aActivePlugins)) {
|
||||
$iConflict++;
|
||||
$this->Message_AddError(
|
||||
$this->Lang_Get('plugins_activation_requires_error',
|
||||
array(
|
||||
'plugin'=>ucfirst($sReqPlugin)
|
||||
)
|
||||
),
|
||||
$this->Lang_Get('error'),
|
||||
true
|
||||
);
|
||||
}
|
||||
}
|
||||
if($iConflict) { return; }
|
||||
}
|
||||
|
||||
/**
|
||||
* Проверяем, не вступает ли данный плагин в конфликт с уже активированными
|
||||
* (по поводу объявленных делегатов)
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
<requires>
|
||||
<livestreet>0.4.0</livestreet>
|
||||
<plugins>
|
||||
|
||||
|
||||
</plugins>
|
||||
</requires>
|
||||
<description>
|
||||
|
|
|
@ -778,6 +778,8 @@ return array(
|
|||
'plugins_unknown_action' => 'Указано неизвестное действие',
|
||||
'plugins_action_ok' => 'Успешно выполнено',
|
||||
'plugins_activation_overlap' => 'Конфликт с активированным плагином. Ресурс %%resource%% переопределен на %%delegate%% плагином %%plugin%%.',
|
||||
'plugins_activation_version_error' => 'Для работы плагина необходимо ядро LiveStreet версии не ниже %%version%%',
|
||||
'plugins_activation_requires_error' => 'Для работы плагина необходим активированный плагин <b>%%plugin%%</b>',
|
||||
'plugins_submit_delete' => 'Удалить плагины',
|
||||
'plugins_delete_confirm' => 'Вы уверены, что желаете удалить указанные плагины?',
|
||||
|
||||
|
|
Loading…
Reference in a new issue