Раздел Системные настройки -> Управление языками. Все действия перенесены в модальное окно с AJAX сохранением , добавлена валидация полей при заполнении формы, замена иконок по их логическому смыслу (удалить это удалить, а не включить / выключить) , добавлена возможность удалять языки кроме дефолтного.
This commit is contained in:
@@ -197,3 +197,14 @@ SETTINGS_LANG_FLAG = "Флаг"
|
||||
SETTINGS_SET_LANG_DEF_ERR_A = "Ошибка: Не найдены языковые файлы!<br>Папка <b>admin/lang/"
|
||||
SETTINGS_SET_LANG_DEF_ERR_B = "/</b> отсутствует или пуста."
|
||||
SETTINGS_SET_LANG_DEF_ERR_C = "Отмена действия"
|
||||
|
||||
|
||||
SETTINGS_LANG_DELETE_HINT = "Удалить язык"
|
||||
SETTINGS_LANG_DELETE_CONFIRM = "Вы уверены, что хотите полностью и безвозвратно удалить язык"
|
||||
SETTINGS_LANG_DELETE_SUCCESS = "Язык успешно удален из системы"
|
||||
SETTINGS_LANG_DELETE_ERROR = "Не удалось удалить язык. Возможно, он защищен или произошел сбой БД."
|
||||
SETTINGS_JS_FILL_ERR = "Заполните все поля и выберите файл флага"
|
||||
SETTINGS_JS_FILL_HEAD = "Ошибка заполнения"
|
||||
SETTINGS_JS_NOTIFY = "Уведомление"
|
||||
SETTINGS_JS_SERVER_ERR = "Ошибка сервера при сохранении"
|
||||
SETTINGS_JS_WIN_CLOSE = "Закрыть окно"
|
||||
@@ -68,7 +68,7 @@
|
||||
}
|
||||
break;
|
||||
|
||||
case 'language':
|
||||
case 'language':
|
||||
if(check_permission_acp('gen_settings_languages'))
|
||||
{
|
||||
if (isset($_REQUEST['func']))
|
||||
@@ -106,8 +106,11 @@ case 'language':
|
||||
case 'save':
|
||||
$AVE_Settings->settingsLanguageEditSave();
|
||||
exit;
|
||||
|
||||
case 'deletelang':
|
||||
$AVE_Settings->settingsLanguageDelete();
|
||||
exit;
|
||||
|
||||
// !!! ДОБАВЛЕНО !!!
|
||||
case 'editlang':
|
||||
$AVE_Settings->settingsLanguageEdit();
|
||||
break;
|
||||
|
||||
@@ -2,41 +2,41 @@
|
||||
|
||||
<div class="widget" style="margin-top: 0px;">
|
||||
<div class="body">
|
||||
{#SETTINGS_LANG_TITLE#}
|
||||
{#SETTINGS_LANG_TITLE#}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="breadCrumbHolder module">
|
||||
<div class="breadCrumb module">
|
||||
<ul>
|
||||
<li class="firstB"><a href="index.php" title="{#MAIN_PAGE#}">{#MAIN_PAGE#}</a></li>
|
||||
<li><a href="index.php?do=settings&cp={$sess}">{#SETTINGS_MAIN_TITLE#}</a></li>
|
||||
<li>{#SETTINGS_LANG_EDIT#}</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="breadCrumb module">
|
||||
<ul>
|
||||
<li class="firstB"><a href="index.php" title="{#MAIN_PAGE#}">{#MAIN_PAGE#}</a></li>
|
||||
<li><a href="index.php?do=settings&cp={$sess}">{#SETTINGS_MAIN_TITLE#}</a></li>
|
||||
<li>{#SETTINGS_LANG_EDIT#}</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="widget first">
|
||||
<div class="body">
|
||||
{if check_permission('cache_clear')}<a class="button redBtn clearCacheSess" href="javascript:void(0);">{#MAIN_STAT_CLEAR_CACHE_FULL#}</a> {/if}
|
||||
{if check_permission('cache_thumb')}<a class="button redBtn clearThumb" href="javascript:void(0);">{#MAIN_STAT_CLEAR_THUMB#}</a> {/if}
|
||||
{if check_permission('document_revisions')}<a class="button redBtn clearRev" href="javascript:void(0);">{#MAIN_STAT_CLEAR_REV#}</a> {/if}
|
||||
{if check_permission('gen_settings')}<a class="button redBtn clearCount" href="javascript:void(0);">{#MAIN_STAT_CLEAR_COUNT#}</a> {/if}
|
||||
{if check_permission('gen_settings_robots')}<a data-dialog="robots" data-title="{#SETTINGS_FILE_ROBOTS#}" data-height="650" data-modal="true" class="button greenBtn openDialog" href="index.php?do=settings&action=robots&cp={$sess}">{#SETTINGS_FILE_ROBOTS#}</a> {/if}
|
||||
{if check_permission('gen_settings_fcustom')}<a data-dialog="custom" data-title="{#SETTINGS_FILE_CUSTOM#}" data-height="650" data-modal="true" class="button greenBtn openDialog" href="index.php?do=settings&action=custom&cp={$sess}">{#SETTINGS_FILE_CUSTOM#}</a>{/if}
|
||||
</div>
|
||||
<div class="body">
|
||||
{if check_permission('cache_clear')}<a class="button redBtn clearCacheSess" href="javascript:void(0);">{#MAIN_STAT_CLEAR_CACHE_FULL#}</a> {/if}
|
||||
{if check_permission('cache_thumb')}<a class="button redBtn clearThumb" href="javascript:void(0);">{#MAIN_STAT_CLEAR_THUMB#}</a> {/if}
|
||||
{if check_permission('document_revisions')}<a class="button redBtn clearRev" href="javascript:void(0);">{#MAIN_STAT_CLEAR_REV#}</a> {/if}
|
||||
{if check_permission('gen_settings')}<a class="button redBtn clearCount" href="javascript:void(0);">{#MAIN_STAT_CLEAR_COUNT#}</a> {/if}
|
||||
{if check_permission('gen_settings_robots')}<a data-dialog="robots" data-title="{#SETTINGS_FILE_ROBOTS#}" data-height="650" data-modal="true" class="button greenBtn openDialog" href="index.php?do=settings&action=robots&cp={$sess}">{#SETTINGS_FILE_ROBOTS#}</a> {/if}
|
||||
{if check_permission('gen_settings_fcustom')}<a data-dialog="custom" data-title="{#SETTINGS_FILE_CUSTOM#}" data-height="650" data-modal="true" class="button greenBtn openDialog" href="index.php?do=settings&action=custom&cp={$sess}">{#SETTINGS_FILE_CUSTOM#}</a>{/if}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="widget first">
|
||||
|
||||
<ul class="inact_tabs">
|
||||
{if check_permission('gen_settings')}<li><a href="index.php?do=settings&cp={$sess}">{#SETTINGS_MAIN_SETTINGS#}</a></li>{/if}
|
||||
{if check_permission('gen_settings_more')}<li><a href="index.php?do=settings&sub=case&cp={$sess}">{#SETTINGS_CASE_TITLE#}</a></li>{/if}
|
||||
{if check_permission('gen_settings_countries')}<li><a href="index.php?do=settings&sub=countries&cp={$sess}">{#MAIN_COUNTRY_EDIT#}</a></li>{/if}
|
||||
{if check_permission('gen_settings_languages')}<li class="activeTab"><a href="index.php?do=settings&sub=language&cp={$sess}">{#SETTINGS_LANG_EDIT#}</a></li>{/if}
|
||||
<li><a href="index.php?do=settings&action=paginations&cp={$sess}">{#SETTINGS_PAGINATION#}</a></li>
|
||||
<li><a href="index.php?do=settings&action=showcache&cp={$sess}">{#SETTINGS_SHOWCACHE#}</a></li>
|
||||
</ul>
|
||||
<ul class="inact_tabs">
|
||||
{if check_permission('gen_settings')}<li><a href="index.php?do=settings&cp={$sess}">{#SETTINGS_MAIN_SETTINGS#}</a></li>{/if}
|
||||
{if check_permission('gen_settings_more')}<li><a href="index.php?do=settings&sub=case&cp={$sess}">{#SETTINGS_CASE_TITLE#}</a></li>{/if}
|
||||
{if check_permission('gen_settings_countries')}<li><a href="index.php?do=settings&sub=countries&cp={$sess}">{#MAIN_COUNTRY_EDIT#}</a></li>{/if}
|
||||
{if check_permission('gen_settings_languages')}<li class="activeTab"><a href="index.php?do=settings&sub=language&cp={$sess}">{#SETTINGS_LANG_EDIT#}</a></li>{/if}
|
||||
<li><a href="index.php?do=settings&action=paginations&cp={$sess}">{#SETTINGS_PAGINATION#}</a></li>
|
||||
<li><a href="index.php?do=settings&action=showcache&cp={$sess}">{#SETTINGS_SHOWCACHE#}</a></li>
|
||||
</ul>
|
||||
|
||||
<table cellpadding="0" cellspacing="0" width="100%" class="tableStatic mainForm">
|
||||
<col width="30" />
|
||||
@@ -49,75 +49,165 @@
|
||||
<col width="20" />
|
||||
<col width="20" />
|
||||
<col width="20" />
|
||||
<col width="20" />
|
||||
<thead>
|
||||
<tr>
|
||||
<td>{#SETTINGS_LANG_ID#}</td>
|
||||
<td>{#SETTINGS_LANG_FLAG#}</td>
|
||||
<td>{#SETTINGS_LANG_SYSTEM#}</td>
|
||||
<td>{#SETTINGS_LANG_PREFIX#}</td>
|
||||
<td>{#SETTINGS_LANG_NAME#}</td>
|
||||
<td>{#SETTINGS_LANG_DEFAULT#}</td>
|
||||
<td> </td>
|
||||
<td colspan="3">{#SETTINGS_LANG_ACTION#}</td>
|
||||
<td>{#SETTINGS_LANG_ID#}</td>
|
||||
<td>{#SETTINGS_LANG_FLAG#}</td>
|
||||
<td>{#SETTINGS_LANG_SYSTEM#}</td>
|
||||
<td>{#SETTINGS_LANG_PREFIX#}</td>
|
||||
<td>{#SETTINGS_LANG_NAME#}</td>
|
||||
<td>{#SETTINGS_LANG_DEFAULT#}</td>
|
||||
<td> </td>
|
||||
<td colspan="4">{#SETTINGS_LANG_ACTION#}</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{foreach from=$language item=lang name=l}
|
||||
<tr>
|
||||
<td align="center">{$lang.Id}</td>
|
||||
<td align="center"><img src="{$ABS_PATH}lib/flags/{$lang.lang_key}.png" /></td>
|
||||
<td align="center">{$lang.lang_key}</td>
|
||||
<td align="center">{$lang.lang_alias_pref}</td>
|
||||
<td>{$lang.lang_name}</td>
|
||||
<td align="center">{if $lang.lang_default==1}<span title="" class="topleftDir icon_sprite ico_ok"></span>{/if}</td>
|
||||
<td></td>
|
||||
<td align="center">
|
||||
<a class="topleftDir icon_sprite ico_edit" title="{#SETTINGS_LANG_AEDIT#}" href="javascript:void(0);" onclick="windowOpen('index.php?do=settings&sub=language&func=editlang&Id={$lang.Id}&pop=1&cp={$sess}','800','400','1','settings');"></a>
|
||||
</td>
|
||||
<td align="center">
|
||||
{if $lang.lang_default!=1}
|
||||
{if $lang.lang_status==1}
|
||||
<a class="topleftDir icon_sprite ico_delete" title="{#SETTINGS_LANG_AOFF#}" dir="{#SETTINGS_LANG_AOFF#}" name="{#SETTINGS_LANG_AOFF#}" href="index.php?do=settings&sub=language&func=off&Id={$lang.Id}&cp={$sess}"></a>
|
||||
{else}
|
||||
<a class="topleftDir icon_sprite ico_delete_no" title="{#SETTINGS_LANG_AON#}" dir="{#SETTINGS_LANG_AON#}" name="{#SETTINGS_LANG_AON#}" href="index.php?do=settings&sub=language&func=on&Id={$lang.Id}&cp={$sess}"></a>
|
||||
{/if}
|
||||
{else}
|
||||
<span class="icon_sprite ico_blanc"></span>
|
||||
{/if}
|
||||
</td>
|
||||
{foreach from=$language item=lang name=l}
|
||||
<tr>
|
||||
<td align="center">{$lang.Id}</td>
|
||||
<td align="center"><img src="{$ABS_PATH}lib/flags/{$lang.lang_key}.png" width="16" height="11"/></td>
|
||||
<td align="center">{$lang.lang_key}</td>
|
||||
<td align="center">{$lang.lang_alias_pref}</td>
|
||||
<td>{$lang.lang_name}</td>
|
||||
<td align="center">{if $lang.lang_default==1}<span title="" class="topleftDir icon_sprite ico_ok"></span>{/if}</td>
|
||||
<td></td>
|
||||
|
||||
<td align="center">
|
||||
{if isset($lang.lang_default) && $lang.lang_default != 1 && $lang.lang_status == 1}
|
||||
<a class="topleftDir icon_sprite ico_globus {if isset($lang.no_files) && $lang.no_files}check-lang{/if}"
|
||||
title="{#SETTINGS_LANG_ADEFAULT#}"
|
||||
data-langkey="{$lang.lang_key|default:''}"
|
||||
href="index.php?do=settings&sub=language&func=default&Id={$lang.Id}&cp={$sess}"
|
||||
id="{$lang.Id}"></a>
|
||||
{else}
|
||||
<span class="icon_sprite ico_blanc"></span>
|
||||
{/if}
|
||||
<a class="topleftDir icon_sprite ico_edit openDialog"
|
||||
title="{#SETTINGS_LANG_AEDIT#}"
|
||||
href="index.php?do=settings&sub=language&func=editlang&Id={$lang.Id}&pop=1&cp={$sess}&onlycontent=1"
|
||||
data-dialog="edit-lang"
|
||||
data-width="800"
|
||||
data-height="450"
|
||||
data-modal="true"
|
||||
data-title="{#SETTINGS_LANG_AEDIT#}">
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
|
||||
<td align="center">
|
||||
{if $lang.lang_default!=1}
|
||||
{if $lang.lang_status==1}
|
||||
<a class="topleftDir icon_sprite ico_unlock" title="{#SETTINGS_LANG_AOFF#}" href="index.php?do=settings&sub=language&func=off&Id={$lang.Id}&cp={$sess}"></a>
|
||||
{else}
|
||||
<a class="topleftDir icon_sprite ico_lock" title="{#SETTINGS_LANG_AON#}" href="index.php?do=settings&sub=language&func=on&Id={$lang.Id}&cp={$sess}"></a>
|
||||
{/if}
|
||||
{else}
|
||||
<span class="icon_sprite ico_blanc"></span>
|
||||
{/if}
|
||||
</td>
|
||||
|
||||
<td align="center">
|
||||
{if isset($lang.lang_default) && $lang.lang_default != 1 && $lang.lang_status == 1}
|
||||
<a class="topleftDir icon_sprite ico_globus {if isset($lang.no_files) && $lang.no_files}check-lang{/if}"
|
||||
title="{#SETTINGS_LANG_ADEFAULT#}"
|
||||
data-langkey="{$lang.lang_key|default:''}"
|
||||
href="index.php?do=settings&sub=language&func=default&Id={$lang.Id}&cp={$sess}"
|
||||
id="{$lang.Id}"></a>
|
||||
{else}
|
||||
<span class="icon_sprite ico_blanc"></span>
|
||||
{/if}
|
||||
</td>
|
||||
|
||||
<td align="center">
|
||||
{if $lang.lang_default != 1}
|
||||
<a class="topleftDir icon_sprite ico_delete delete-lang"
|
||||
title="{#SETTINGS_LANG_DELETE_HINT#}"
|
||||
href="index.php?do=settings&sub=language&func=deletelang&Id={$lang.Id}&cp={$sess}"
|
||||
data-id="{$lang.Id}"
|
||||
data-name="{$lang.lang_name}"></a>
|
||||
{else}
|
||||
<span class="icon_sprite ico_blanc"></span>
|
||||
{/if}
|
||||
</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<div class="rowElem">
|
||||
<input type="submit" class="basicBtn" value="{#SETTINGS_LANG_ADD#}" onclick="windowOpen('index.php?do=settings&sub=editlang&pop=1&cp={$sess}','800','400','1','settings');" />
|
||||
<a class="button basicBtn openDialog"
|
||||
href="index.php?do=settings&sub=language&func=editlang&pop=1&cp={$sess}&onlycontent=1"
|
||||
data-dialog="add-lang"
|
||||
data-width="800"
|
||||
data-height="450"
|
||||
data-modal="true"
|
||||
data-title="{#SETTINGS_LANG_ADD#}">
|
||||
<span>{#SETTINGS_LANG_ADD#}</span>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
{include file="$codemirror_connect"}
|
||||
|
||||
<script type="text/javascript">
|
||||
var lang_msg = {
|
||||
error_a: '{#SETTINGS_SET_LANG_DEF_ERR_A#}',
|
||||
error_b: '{#SETTINGS_SET_LANG_DEF_ERR_B#}',
|
||||
error_c: '{#SETTINGS_SET_LANG_DEF_ERR_C#}',
|
||||
confirm_del: '{#SETTINGS_LANG_DELETE_CONFIRM#}',
|
||||
success_del: '{#SETTINGS_LANG_DELETE_SUCCESS#}',
|
||||
error_del: '{#SETTINGS_LANG_DELETE_ERROR#}',
|
||||
success_head: '{#SETTINGS_SUCCESS#}',
|
||||
error_head: '{#SETTINGS_ERROR#}',
|
||||
server_err: '{#SETTINGS_CACHE_ERROR_T#}'
|
||||
};
|
||||
|
||||
{literal}
|
||||
$(document).ready(function() {
|
||||
$('.check-lang').on('click', function(e) {
|
||||
e.preventDefault();
|
||||
|
||||
let langKey = $(this).data('langkey');
|
||||
let errorText = '{#SETTINGS_SET_LANG_DEF_ERR_A#}' + langKey + '{#SETTINGS_SET_LANG_DEF_ERR_B#}';
|
||||
let errorTitle = '{#SETTINGS_SET_LANG_DEF_ERR_C#}';
|
||||
jAlert(lang_msg.error_a + langKey + lang_msg.error_b, lang_msg.error_c);
|
||||
});
|
||||
|
||||
jAlert(errorText, errorTitle);
|
||||
$('.delete-lang').on('click', function(e) {
|
||||
e.preventDefault();
|
||||
var $btn = $(this);
|
||||
var url = $btn.attr('href');
|
||||
var langName = $btn.data('name');
|
||||
|
||||
jConfirm(lang_msg.confirm_del + ' "' + langName + '"?', lang_msg.error_c, function(r) {
|
||||
if (r) {
|
||||
$.ajax({
|
||||
url: url,
|
||||
type: 'GET',
|
||||
dataType: 'json',
|
||||
beforeSend: function() {
|
||||
$.alerts._overlay('show');
|
||||
},
|
||||
success: function(response) {
|
||||
if (response.status == 'success') {
|
||||
$.jGrowl(lang_msg.success_del, {
|
||||
header: lang_msg.success_head,
|
||||
theme: 'accept',
|
||||
life: 3000
|
||||
});
|
||||
$btn.closest('tr').fadeOut(400, function() {
|
||||
$(this).remove();
|
||||
});
|
||||
} else {
|
||||
$.jGrowl(response.message || lang_msg.error_del, {
|
||||
header: lang_msg.error_head,
|
||||
theme: 'error',
|
||||
life: 5000
|
||||
});
|
||||
}
|
||||
},
|
||||
error: function() {
|
||||
$.jGrowl(lang_msg.server_err, {
|
||||
header: lang_msg.error_head,
|
||||
theme: 'error',
|
||||
life: 3000
|
||||
});
|
||||
},
|
||||
complete: function() {
|
||||
$.alerts._overlay('hide');
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
{/literal}
|
||||
</script>
|
||||
@@ -3,72 +3,140 @@
|
||||
<div class="title"><h5>{#SETTINGS_LANG_EDIT#}</h5></div>
|
||||
|
||||
<div class="widget" style="margin-top: 0px;">
|
||||
<div class="body">
|
||||
{#SETTINGS_LANG_TITLE#}
|
||||
</div>
|
||||
<div class="body">
|
||||
{#SETTINGS_LANG_TITLE#}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="breadCrumbHolder module">
|
||||
<div class="breadCrumb module">
|
||||
<ul>
|
||||
<li class="firstB"><a href="index.php?pop=1" title="{#MAIN_PAGE#}">{#MAIN_PAGE#}</a></li>
|
||||
<li>{#SETTINGS_LANG_EDIT#}</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="breadCrumb module">
|
||||
<ul>
|
||||
<li class="firstB"><a href="index.php?pop=1" title="{#MAIN_PAGE#}">{#MAIN_PAGE#}</a></li>
|
||||
<li>{#SETTINGS_LANG_EDIT#}</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<form method="post" class="mainForm" enctype="multipart/form-data" action="index.php?do=settings&sub=language&func=save&cp={$sess}">
|
||||
<form method="post" id="lang_save_form" class="mainForm" enctype="multipart/form-data" action="index.php?do=settings&sub=language&func=save&cp={$sess}">
|
||||
|
||||
<div class="widget first">
|
||||
<table cellpadding="0" cellspacing="0" width="100%" class="tableStatic">
|
||||
<col width="50" />
|
||||
<col width="100" />
|
||||
<col width="200" />
|
||||
<thead>
|
||||
<tr>
|
||||
<td>{#SETTINGS_LANG_SYSTEM#}</td>
|
||||
<td>{#SETTINGS_LANG_PREFIX#}</td>
|
||||
<td>{#SETTINGS_LANG_NAME#}</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tr>
|
||||
<td><div class="pr12"><input {if ($smarty.request.Id|default:'')!=''}readonly{/if} type="text" name="lang_key" id="lang_key" value="{$items->lang_key|default:''}" /></div></td>
|
||||
<td><div class="pr12"><input type="text" name="lang_alias_pref" id="lang_alias_pref" value="{$items->lang_alias_pref|default:''}" /></div></td>
|
||||
<td><div class="pr12"><input type="text" name="lang_name" id="lang_name" value="{$items->lang_name|default:''}" /></div></td>
|
||||
</tr>
|
||||
|
||||
<div class="widget first">
|
||||
<table cellpadding="0" cellspacing="0" width="100%" class="tableStatic">
|
||||
<col width="50" />
|
||||
<col width="100" />
|
||||
<col width="200" />
|
||||
<thead>
|
||||
<tr>
|
||||
<td>
|
||||
{#SETTINGS_LANG_FLAG#}:
|
||||
|
||||
{* Если это режим редактирования, показываем текущий флаг *}
|
||||
{if !empty($items->lang_key)}
|
||||
<span style="margin-left: 5px;">
|
||||
<img src="/lib/flags/{$items->lang_key}.png" alt="{$items->lang_name|default:''}" style="width: 16px; height: 11px; vertical-align: middle;" />
|
||||
</span>
|
||||
{/if}
|
||||
</td>
|
||||
<td>{#SETTINGS_LANG_SYSTEM#}</td>
|
||||
<td>{#SETTINGS_LANG_PREFIX#}</td>
|
||||
<td>{#SETTINGS_LANG_NAME#}</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><div class="pr12"><input {if ($smarty.request.Id|default:'')!=''}readonly{/if} type="text" name="lang_key" id="lang_key" value="{$items->lang_key|default:''}" /></div></td>
|
||||
<td><div class="pr12"><input type="text" name="lang_alias_pref" id="lang_alias_pref" value="{$items->lang_alias_pref|default:''}" /></div></td>
|
||||
<td><div class="pr12"><input type="text" name="lang_name" id="lang_name" value="{$items->lang_name|default:''}" /></div></td>
|
||||
</tr>
|
||||
|
||||
<td>
|
||||
<div class="pr12">
|
||||
<input type="file" name="lang_flag" id="lang_flag" class="greyishBtn"/>
|
||||
</div>
|
||||
</td>
|
||||
|
||||
<td>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="3">
|
||||
<input type="hidden" name="Id" value="{$smarty.request.Id|default:''}" />
|
||||
{if ($smarty.request.Id|default:'')==''}
|
||||
<input type="submit" value="{#SETTINGS_LANG_ADD#}" class="basicBtn" />
|
||||
{else}
|
||||
<input type="submit" value="{#SETTINGS_LANG_SAVE#}" class="basicBtn" />
|
||||
{/if}
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<div class="fix"></div>
|
||||
</div>
|
||||
</form>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
{#SETTINGS_LANG_FLAG#}:
|
||||
{if !empty($items->lang_key)}
|
||||
<span style="margin-left: 5px;">
|
||||
<img src="/lib/flags/{$items->lang_key}.png" alt="{$items->lang_name|default:''}" style="width: 16px; height: 11px; vertical-align: middle;" />
|
||||
</span>
|
||||
{/if}
|
||||
<div class="pr12" style="display:inline-block; margin-left:10px;">
|
||||
<input type="file" name="lang_flag" id="lang_flag" class="greyishBtn"/>
|
||||
</div>
|
||||
</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="3">
|
||||
<input type="hidden" name="Id" value="{$smarty.request.Id|default:''}" />
|
||||
|
||||
<a href="javascript:void(0);" class="button basicBtn blueBtn" id="submit_lang_form">
|
||||
<span>{if ($smarty.request.Id|default:'')==''}{#SETTINGS_LANG_ADD#}{else}{#SETTINGS_LANG_SAVE#}{/if}</span>
|
||||
</a>
|
||||
|
||||
<a href="javascript:void(0);" class="button basicBtn redBtn CloseLangDialog" style="margin-left:10px;">
|
||||
<span>{#SETTINGS_JS_WIN_CLOSE#}</span>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="fix"></div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<script type="text/javascript">
|
||||
{literal}
|
||||
$(document).ready(function() {
|
||||
$('#submit_lang_form').on('click', function(e) {
|
||||
e.preventDefault();
|
||||
|
||||
var lKey = $.trim($('#lang_key').val());
|
||||
var lPref = $.trim($('#lang_alias_pref').val());
|
||||
var lName = $.trim($('#lang_name').val());
|
||||
var lFile = $('#lang_flag').val();
|
||||
var isNew = $('input[name="Id"]').val() == '';
|
||||
|
||||
if (lKey == '' || lPref == '' || lName == '' || (isNew && lFile == '')) {
|
||||
$.jGrowl('{/literal}{#SETTINGS_JS_FILL_ERR#}{literal}', {
|
||||
header: '{/literal}{#SETTINGS_JS_FILL_HEAD#}{literal}',
|
||||
theme: 'error',
|
||||
life: 3000
|
||||
});
|
||||
return false;
|
||||
}
|
||||
|
||||
var $form = $('#lang_save_form');
|
||||
var formData = new FormData($form[0]);
|
||||
|
||||
$.ajax({
|
||||
url: $form.attr('action'),
|
||||
type: 'POST',
|
||||
data: formData,
|
||||
processData: false,
|
||||
contentType: false,
|
||||
beforeSend: function() {
|
||||
$.alerts._overlay('show');
|
||||
},
|
||||
success: function() {
|
||||
$.jGrowl('{/literal}{#SETTINGS_SAVED#}{literal}', {
|
||||
header: '{/literal}{#SETTINGS_JS_NOTIFY#}{literal}',
|
||||
theme: 'accept',
|
||||
life: 3000
|
||||
});
|
||||
},
|
||||
error: function() {
|
||||
$.jGrowl('{/literal}{#SETTINGS_JS_SERVER_ERR#}{literal}', {
|
||||
header: '{/literal}{#SETTINGS_ERROR#}{literal}',
|
||||
theme: 'error',
|
||||
life: 5000
|
||||
});
|
||||
},
|
||||
complete: function() {
|
||||
$.alerts._overlay('hide');
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
$(".CloseLangDialog").on('click', function(e) {
|
||||
e.preventDefault();
|
||||
var $dialog = $(this).closest('.ui-dialog-content');
|
||||
if ($dialog.length) $dialog.dialog('close');
|
||||
});
|
||||
|
||||
var $container = $(".CloseLangDialog").closest('.ui-dialog-content');
|
||||
if ($container.length) {
|
||||
$container.off("dialogclose").on("dialogclose", function() {
|
||||
if (window.parent) window.parent.location.reload();
|
||||
else window.location.reload();
|
||||
});
|
||||
}
|
||||
});
|
||||
{/literal}
|
||||
</script>
|
||||
@@ -680,10 +680,56 @@ function settingsLanguageEditSave()
|
||||
// 3. Очистка кэша и закрытие окна
|
||||
$AVE_DB->clearCache('langs');
|
||||
|
||||
echo "<script>window.opener.location.reload(); window.close();</script>";
|
||||
header('Content-Type: application/json');
|
||||
echo json_encode(['status' => 'success']);
|
||||
exit;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Метод удаления языка
|
||||
*/
|
||||
function settingsLanguageDelete()
|
||||
{
|
||||
global $AVE_DB;
|
||||
|
||||
while (ob_get_level()) {
|
||||
ob_end_clean();
|
||||
}
|
||||
|
||||
$lang_id = (int)($_REQUEST['id'] ?? $_REQUEST['Id'] ?? 0);
|
||||
|
||||
header('Content-Type: application/json; charset=utf-8');
|
||||
|
||||
if ($lang_id <= 0) {
|
||||
die(json_encode(['status' => 'error', 'message' => 'ID не передан']));
|
||||
}
|
||||
|
||||
$result = $AVE_DB->Query("
|
||||
SELECT lang_default, lang_key
|
||||
FROM " . PREFIX . "_settings_lang
|
||||
WHERE Id = '" . $lang_id . "'
|
||||
");
|
||||
|
||||
if ($result && $row = $result->FetchRow()) {
|
||||
if ($row->lang_default == 1) {
|
||||
die(json_encode(['status' => 'error', 'message' => 'Нельзя удалить основной язык']));
|
||||
}
|
||||
|
||||
$AVE_DB->Query("DELETE FROM " . PREFIX . "_settings_lang WHERE Id = '" . $lang_id . "'");
|
||||
|
||||
$flag = BASE_DIR . '/lib/flags/' . $row->lang_key . '.png';
|
||||
if (file_exists($flag)) @unlink($flag);
|
||||
|
||||
$AVE_DB->clearCache('langs');
|
||||
|
||||
die(json_encode(['status' => 'success']));
|
||||
} else {
|
||||
die(json_encode(['status' => 'error', 'message' => 'Язык не найден']));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function settingsPaginationsList()
|
||||
{
|
||||
global $AVE_DB, $AVE_Template;
|
||||
|
||||
Reference in New Issue
Block a user