1
0
Fork 0
mirror of https://github.com/Oreolek/ifhub.club.git synced 2024-06-26 03:30:48 +03:00

Рефакторинг управления плагинами

This commit is contained in:
Mzhelskiy Maxim 2014-09-14 22:14:38 +07:00
parent a0b83b9534
commit 2c1658123e
6 changed files with 19 additions and 30 deletions

View file

@ -83,17 +83,6 @@ class ActionAdmin extends Action {
*/
protected function EventPlugins() {
$this->sMenuHeadItemSelect='plugins';
/**
* Обработка удаления плагинов
*/
if (isPost('submit_plugins_del')) {
$this->Security_ValidateSendForm();
$aPluginsDelete=getRequest('plugin_del');
if (is_array($aPluginsDelete)) {
$this->Plugin_Delete(array_keys($aPluginsDelete));
}
}
/**
* Получаем название плагина и действие
*/
@ -103,7 +92,7 @@ class ActionAdmin extends Action {
/**
* Получаем список блогов
*/
$aPlugins=$this->Plugin_GetList(array('order'=>'name'));
$aPlugins=$this->PluginManager_GetPluginsItems(array('order'=>'name'));
/**
* Загружаем переменные в шаблон
*/
@ -122,14 +111,22 @@ class ActionAdmin extends Action {
*/
protected function SubmitManagePlugin($sPlugin,$sAction) {
$this->Security_ValidateSendForm();
if(!in_array($sAction,array('activate','deactivate'))) {
if(!in_array($sAction,array('activate','deactivate','remove'))) {
$this->Message_AddError($this->Lang_Get('admin.plugins.notices.unknown_action'),$this->Lang_Get('error'),true);
Router::Location(Router::GetPath('plugins'));
Router::Location(Router::GetPath('admin/plugins'));
}
$bResult=false;
/**
* Активируем\деактивируем плагин
*/
if($bResult=$this->Plugin_Toggle($sPlugin,$sAction)) {
if ($sAction=='activate') {
$bResult=$this->PluginManager_ActivatePlugin($sPlugin);
} elseif ($sAction=='deactivate') {
$bResult=$this->PluginManager_DeactivatePlugin($sPlugin);
} elseif ($sAction=='remove') {
$bResult=$this->PluginManager_RemovePlugin($sPlugin);
}
if($bResult) {
$this->Message_AddNotice($this->Lang_Get('admin.plugins.notices.action_ok'),$this->Lang_Get('attention'),true);
} else {
if(!($aMessages=$this->Message_GetErrorSession()) or !count($aMessages)) $this->Message_AddErrorSingle($this->Lang_Get('system_error'),$this->Lang_Get('error'),true);

View file

@ -1614,7 +1614,7 @@ return array(
'plugin_activate' => 'Активировать',
'plugin_deactivate' => 'Деактивировать',
'plugin_settings' => 'Настройки',
'submit_delete' => '___common.remove___',
'plugin_delete' => '___common.remove___',
// Сообщения
'notices' => array(
@ -1626,6 +1626,8 @@ return array(
'activation_file_write_error' => 'Файл плагина не доступен для записи',
'activation_version_error' => 'Для работы плагина необходимо ядро LiveStreet версии не ниже %%version%%',
'activation_requires_error' => 'Для работы плагина необходим активированный плагин <b>%%plugin%%</b>',
'activation_already_error' => 'Плагин уже активирован',
'deactivation_already_error' => 'Плагин не активирован',
'deactivation_requires_error' => 'От плагина зависит другой плагин, сначала отключите его - <b>%%plugin%%</b>',
)
),

View file

@ -11,11 +11,9 @@
{/block}
{block 'layout_content'}
<form action="{router page='admin'}plugins/" method="post" id="form_plugins_list">
<table class="table table-plugins">
<thead>
<tr>
<th class="cell-checkbox"><input type="checkbox" name="" onclick="ls.tools.checkAll('form_plugins_checkbox', this, true);" /></th>
<th>{$aLang.admin.plugins.plugin_name}</th>
<th>{$aLang.admin.plugins.plugin_version}</th>
<th>{$aLang.admin.plugins.plugin_author}</th>
@ -27,7 +25,6 @@
<tbody>
{foreach $aPlugins as $aPlugin}
<tr {if $aPlugin.is_active}class="active"{/if}>
<td class="cell-checkbox"><input type="checkbox" name="plugin_del[{$aPlugin.code}]" class="form_plugins_checkbox" /></td>
<td>
<h3>{$aPlugin.property->name->data}</h3>
{$aPlugin.property->description->data}
@ -52,17 +49,10 @@
{else}
<a href="{router page='admin'}plugins/?plugin={$aPlugin.code}&action=activate&security_ls_key={$LIVESTREET_SECURITY_KEY}" class="button button-primary">{$aLang.admin.plugins.plugin_activate}</a>
{/if}
<a href="{router page='admin'}plugins/?plugin={$aPlugin.code}&action=remove&security_ls_key={$LIVESTREET_SECURITY_KEY}" class="button" onclick="return confirm('{$aLang.common.remove_confirm}');">{lang name='admin.plugins.plugin_delete'}</a>
</td>
</tr>
{/foreach}
</tbody>
</table>
<input type="hidden" name="security_ls_key" value="{$LIVESTREET_SECURITY_KEY}" />
<input type="submit"
name="submit_plugins_del"
value="{lang name='admin.plugins.submit_delete'}"
class="button"
onclick="return (jQuery('.form_plugins_checkbox:checked').length==0)?false:confirm('{$aLang.common.remove_confirm}');" />
</form>
{/block}

View file

@ -29,7 +29,7 @@ abstract class AbstractFixtures
{
$this->oEngine = $oEngine;
$this->aReferences = $aReferences;
$this->aActivePlugins = $oEngine->Plugin_GetActivePlugins();
$this->aActivePlugins = $oEngine->PluginManager_GetPluginsActive();
}
/**

View file

@ -210,7 +210,7 @@ class BaseFeatureContext extends BehatContext
*/
public function CheckIsPluginActive($sPluginName)
{
$activePlugins = $this->getEngine()->Plugin_GetActivePlugins();
$activePlugins = $this->getEngine()->PluginManager_GetPluginsActive();
if (!in_array($sPluginName, $activePlugins)) {
throw new ExpectationException( sprintf('Plugin %s is not active', $sPluginName), $this->getMinkContext()->getSession());

@ -1 +1 @@
Subproject commit 856759497a9157a738801ebc9643418147d0bb81
Subproject commit a013a770e97037621e99bbb5d8bbfaef49d963bc