Использование анонимной функции: Вместо create_function используется анонимная функция, которая принимает $matches и возвращает нужное значение.

Проверка существования: Используется оператор "??", чтобы избежать ошибок, если ключ не существует в массиве $_REQUEST["demo_change"]. В этом случае будет возвращена пустая строка.
This commit is contained in:
2025-09-21 19:01:51 +05:00
parent 8e9d200b89
commit 21b617e722

View File

@@ -793,7 +793,7 @@
// для правильного вывода селектов
if (empty($form['mail_set']['receivers'])) $form['mail_set']['receivers'] = array(0 => array());
// Добавляем проверку, чтобы избежать ошибки
if (is_array($form['fields']))
{
@@ -936,7 +936,14 @@
// обновляем форму с данными примера
$this->form_save($fid);
// подставляем в шаблон новые id полей
$demo['form_tpl'] = preg_replace_callback('/\[tag:fld:(\d+)]/', create_function('$matches','return "[tag:fld:" . $_REQUEST["demo_change"][(int)$matches[1]] . "]";'),$demo['form_tpl']);
$demo['form_tpl'] = preg_replace_callback(
'/\[tag:fld:(\d+)]/',
function($matches) {
return "[tag:fld:" . ($_REQUEST["demo_change"][(int)$matches[1]] ?? '') . "]";
},
$demo['form_tpl']
);
$AVE_DB->Query("
UPDATE " . PREFIX . "_module_forms_forms
SET