fix for PHP-8.4 поле "Тизеры"

This commit is contained in:
2025-11-26 10:56:58 +05:00
parent b4a3d2fe4e
commit 4413f97a80
2 changed files with 22 additions and 16 deletions

View File

@@ -38,7 +38,7 @@
$tpl_file = get_field_tpl($tpl_dir, $field_id, 'admin', $_tpl);
$AVE_Template->assign('doc_id', $_REQUEST['Id']);
$AVE_Template->assign('doc_id', (isset($_REQUEST['Id'])) ? $_REQUEST['Id'] : 0);
$AVE_Template->assign('items', $items);
$AVE_Template->assign('field_dir', $fld_name);
$AVE_Template->assign('field_id', $field_id);
@@ -101,24 +101,28 @@
return $AVE_Template->get_config_vars('name');
break;
case 'search':
case 'search':
$field_default = explode(',', $default);
$zap_1 = ($field_default[0]) ? ',' : '';
$zap_2 = ($field_default[0] && $field_default[1]) ? ',' : '';
// ✅ ИСПРАВЛЕНИЕ: Безопасная проверка существования ключей [0] и [1]
$use_field_0 = isset($field_default[0]) && $field_default[0];
$use_field_1 = isset($field_default[1]) && $field_default[1];
$sel_1 = ($field_default[0]) ? 'b.field_value as b1' : '';
$sel_2 = ($field_default[1]) ? 'c.field_value as c1' : '';
$zap_1 = ($use_field_0) ? ',' : '';
$zap_2 = ($use_field_0 && $use_field_1) ? ',' : '';
$from_1 = ($field_default[0]) ? PREFIX . '_document_fields b' : '';
$from_2 = ($field_default[1]) ? PREFIX . '_document_fields c' : '';
$sel_1 = ($use_field_0) ? 'b.field_value as b1' : '';
$sel_2 = ($use_field_1) ? 'c.field_value as c1' : '';
$search_1 = ($field_default[0]) ? "AND (b.document_id=a.Id AND b.rubric_field_id = " . $field_default[0] . ")" : '';
$search_2 = ($field_default[1]) ? "AND (c.document_id=a.Id AND c.rubric_field_id = " . $field_default[1] . ")" : '';
$from_1 = ($use_field_0) ? PREFIX . '_document_fields b' : '';
$from_2 = ($use_field_1) ? PREFIX . '_document_fields c' : '';
$or_1 = ($field_default[0]) ? "OR (UPPER(b.field_value) LIKE UPPER('%" . $_REQUEST['q'] . "%'))" : '';
$or_2 = ($field_default[1]) ? "OR (UPPER(c.field_value) LIKE UPPER('%" . $_REQUEST['q'] . "%'))" : '';
$search_1 = ($use_field_0) ? "AND (b.document_id=a.Id AND b.rubric_field_id = " . $field_default[0] . ")" : '';
$search_2 = ($use_field_1) ? "AND (c.document_id=a.Id AND c.rubric_field_id = " . $field_default[1] . ")" : '';
$or_1 = ($use_field_0) ? "OR (UPPER(b.field_value) LIKE UPPER('%" . $_REQUEST['q'] . "%'))" : '';
$or_2 = ($use_field_1) ? "OR (UPPER(c.field_value) LIKE UPPER('%" . $_REQUEST['q'] . "%'))" : '';
$sql = $AVE_DB->Query("
SELECT
@@ -157,8 +161,8 @@
$doc_finded[] = array(
'doc_id' => $row->Id,
'doc_title' => $row->document_title,
'doc_name' => (($field_default[0]) ? $row->b1 : $row->document_title),
'doc_article' => (($field_default[1]) ? $row->c1 : '')
'doc_name' => (($use_field_0) ? $row->b1 : $row->document_title),
'doc_article' => (($use_field_1) ? $row->c1 : '')
);
}

View File

@@ -1,6 +1,7 @@
{if $analoque != 'load'}
{assign var=teasers value='' scope="global"}
{if $smarty.request.outside}
{* ИСПРАВЛЕНИЕ 1: Добавляем проверку isset() для $smarty.request.outside *}
{if isset($smarty.request.outside) && $smarty.request.outside}
<script src="{$ABS_PATH}fields/{$field_dir}/js/outside.js" type="text/javascript"></script>
{else}
<script src="{$ABS_PATH}fields/{$field_dir}/js/field.js" type="text/javascript"></script>
@@ -21,7 +22,8 @@
{foreach from=$items key=key item=item}
<div class="analoque_list fix mb10" id="analoque_list_{$doc_id}_{$field_id}_{$key}" data-docid="{$doc_id}" data-fieldid="{$field_id}" data-id="{$key}">
<input type="text" class="mousetrap search_analoque" value="{$item.param}" name="feld[{$field_id}][{$key}][param]" placeholder="{#param#}" data-docid="{$doc_id}" data-fieldid="{$field_id}" data-id="{$key}" style="width: 450px;"/>&nbsp;&nbsp;Id:&nbsp;<input type="text" class="mousetrap field_{$doc_id}_{$field_id}_{$key}" value="{$item.value}" name="feld[{$field_id}][{$key}][value]" placeholder="{#value#}" style="width: 50px;" readonly />&nbsp;&nbsp;{if $key == 0}<a href="javascript:void(0);" class="button basicBtn topDir AddButton" title="{#add#}">+</a>{else}<a href="javascript:void(0);" data-id="{$doc_id}_{$field_id}_{$key}" class="button redBtn topDir DelButton" title="{#delete#}">&times;</a>{/if}
{* ИСПРАВЛЕНИЕ 2: Используем |default:'' для безопасного извлечения ключей param и value *}
<input type="text" class="mousetrap search_analoque" value="{$item.param|default:''}" name="feld[{$field_id}][{$key}][param]" placeholder="{#param#}" data-docid="{$doc_id}" data-fieldid="{$field_id}" data-id="{$key}" style="width: 450px;"/>&nbsp;&nbsp;Id:&nbsp;<input type="text" class="mousetrap field_{$doc_id}_{$field_id}_{$key}" value="{$item.value|default:''}" name="feld[{$field_id}][{$key}][value]" placeholder="{#value#}" style="width: 50px;" readonly />&nbsp;&nbsp;{if $key == 0}<a href="javascript:void(0);" class="button basicBtn topDir AddButton" title="{#add#}">+</a>{else}<a href="javascript:void(0);" data-id="{$doc_id}_{$field_id}_{$key}" class="button redBtn topDir DelButton" title="{#delete#}">&times;</a>{/if}
<div class="handle" style="float: left; display: inline-block; margin: 4px 7px; cursor: move;"><span class="icon_sprite ico_move"></span></div>
</div>