diff --git a/fields/teasers/field.php b/fields/teasers/field.php index a2fac27..205430e 100644 --- a/fields/teasers/field.php +++ b/fields/teasers/field.php @@ -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 : '') ); } diff --git a/fields/teasers/tpl/field.tpl b/fields/teasers/tpl/field.tpl index 11fdf93..af1f355 100644 --- a/fields/teasers/tpl/field.tpl +++ b/fields/teasers/tpl/field.tpl @@ -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} {else} @@ -21,7 +22,8 @@ {foreach from=$items key=key item=item}