При установке языка по умолчанию, добавлена проверка на наличие папки с ленг файлами . При отсутствии языковых файлов действие будет отменено. Ранее такое действие вызывало вылет из админки с фатальной ошибкой.

This commit is contained in:
2026-02-28 23:22:21 +05:00
parent 06a5830a12
commit 601b9df349
3 changed files with 53 additions and 25 deletions

View File

@@ -192,4 +192,8 @@ SETTINGS_CACHE_T_QUERIES = "Данные запросов"
SETTINGS_CACHE_T_DOCS = "Данные документов"
SETTINGS_CACHE_T_COMPILED = "Данные скомпилированных документов"
SETTINGS_LANG_FLAG = "Флаг"
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 = "Отмена действия"

View File

@@ -85,13 +85,17 @@
<span class="icon_sprite ico_blanc"></span>
{/if}
</td>
<td align="center">
{if $lang.lang_default!=1 && $lang.lang_status==1}
<a class="topleftDir icon_sprite ico_globus" title="{#SETTINGS_LANG_ADEFAULT#}" dir="{#SETTINGS_LANG_ADEFAULT#}" name="{#SETTINGS_LANG_ADEFAULT_HINT#}" 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 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>
</tr>
{/foreach}
</tbody>
@@ -102,4 +106,18 @@
</div>
</div>
{include file="$codemirror_connect"}
{include file="$codemirror_connect"}
<script type="text/javascript">
$(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(errorText, errorTitle);
});
});
</script>

View File

@@ -549,26 +549,32 @@ foreach ($conditional_keys as $key) {
* Метод отображения списка языков
*
*/
function settingsLanguageList()
{
global $AVE_DB, $AVE_Template;
function settingsLanguageList()
{
global $AVE_DB, $AVE_Template;
$sql = $AVE_DB->Query("
SELECT
*
FROM
" . PREFIX . "_settings_lang
ORDER BY lang_default DESC, lang_status ASC, lang_key ASC
");
$sql = $AVE_DB->Query("
SELECT
*
FROM
" . PREFIX . "_settings_lang
ORDER BY lang_default DESC, lang_status ASC, lang_key ASC
");
$language = array();
$language = array();
while ($row = $sql->FetchAssocArray())
array_push($language, $row);
while ($row = $sql->FetchAssocArray()) {
if ($row) {
$lang_path = BASE_DIR . '/admin/lang/' . $row['lang_key'];
$row['no_files'] = !is_dir($lang_path) ? 1 : 0;
array_push($language, $row);
}
}
$AVE_Template->assign('language', $language);
$AVE_Template->assign('content', $AVE_Template->fetch('settings/settings_lang.tpl'));
}
$AVE_Template->assign('language', $language);
$AVE_Template->assign('content', $AVE_Template->fetch('settings/settings_lang.tpl'));
}
/**