избавляемся от Warning и Deprecated
This commit is contained in:
@@ -117,7 +117,7 @@
|
||||
/**
|
||||
* Метод забирает форму из бд по алиасу/id
|
||||
*
|
||||
* @param $alias_id
|
||||
* @param $alias_id
|
||||
* @param bool $_fields
|
||||
*
|
||||
* @return array
|
||||
@@ -143,7 +143,8 @@
|
||||
$form['alias_id'] = $alias_id;
|
||||
|
||||
// получатели
|
||||
$form['mail_set'] = unserialize($form['mail_set']);
|
||||
// ИСПРАВЛЕНИЕ: Добавляем @ для подавления Warning при десериализации, т.к. пользователь сообщил о проблеме
|
||||
$form['mail_set'] = @unserialize($form['mail_set']);
|
||||
|
||||
if ($_fields === true)
|
||||
{
|
||||
@@ -165,18 +166,22 @@
|
||||
if (in_array($field['type'],array('doc','multidoc')) && !empty($field['setting']) && is_numeric($field['setting']))
|
||||
$field['setting'] = array(0 => $field['setting']);
|
||||
else
|
||||
$field['setting'] = unserialize($field['setting']) !== false ? unserialize($field['setting']) : array();
|
||||
// ИСПРАВЛЕНИЕ: Добавляем @ для подавления Warning при десериализации
|
||||
$field['setting'] = @unserialize($field['setting']) !== false ? @unserialize($field['setting']) : array();
|
||||
}
|
||||
// если тип поля поменялся, ставим пустую строку
|
||||
elseif (unserialize($field['setting']) !== false) $field['setting'] = '';
|
||||
// ИСПРАВЛЕНИЕ: Добавляем дополнительную проверку на то, что строка может быть сериализована (начинается с 'a', 'O', 's', 'i', 'd', 'b')
|
||||
elseif (is_string($field['setting']) && strlen($field['setting']) > 2 && in_array($field['setting'][0], ['a', 'O', 's', 'i', 'd', 'b']) && @unserialize($field['setting']) !== false) $field['setting'] = '';
|
||||
|
||||
// раскрываем массив опций по умолчанию для мультиселекта
|
||||
if ($field['type'] == 'multiselect')
|
||||
{
|
||||
$field['defaultval'] = unserialize($field['defaultval']) !== false ? unserialize($field['defaultval']) : array();
|
||||
// ИСПРАВЛЕНИЕ: Добавляем @ для подавления Warning при десериализации
|
||||
$field['defaultval'] = @unserialize($field['defaultval']) !== false ? @unserialize($field['defaultval']) : array();
|
||||
}
|
||||
// если тип поля поменялся, ставим пустую строку
|
||||
elseif (unserialize($field['defaultval']) !== false) $field['defaultval'] = '';
|
||||
// ИСПРАВЛЕНИЕ: Добавляем дополнительную проверку на то, что строка может быть сериализована
|
||||
elseif (is_string($field['defaultval']) && strlen($field['defaultval']) > 2 && in_array($field['defaultval'][0], ['a', 'O', 's', 'i', 'd', 'b']) && @unserialize($field['defaultval']) !== false) $field['defaultval'] = '';
|
||||
|
||||
// главные поля
|
||||
if (in_array($field['title'],$this->fields_main) && $field['main'])
|
||||
@@ -1215,16 +1220,21 @@ function _cleanvar($var)
|
||||
// формируем список получателей
|
||||
$recs = array();
|
||||
|
||||
// пользователь (отправка копии)
|
||||
if (
|
||||
($form['is_copy'] === true && $_POST['form-' . $alias_id][$form['fields_main']['copy']] == 1) ||
|
||||
$fields[$form['fields_main']['copy']]['defaultval'] == 1
|
||||
)
|
||||
// Определяем ID главных полей безопасно (Line 1225 fix preparation)
|
||||
$copy_field_id = isset($form['fields_main']['copy']) ? $form['fields_main']['copy'] : null;
|
||||
$email_field_id = isset($form['fields_main']['email']) ? $form['fields_main']['email'] : null;
|
||||
|
||||
// пользователь (отправка копии) - (Line 1225 fix)
|
||||
// Проверяем наличие ключа 'copy' и его значение в POST или в defaultval
|
||||
$send_copy_post = ($copy_field_id !== null && isset($_POST['form-' . $alias_id][$copy_field_id]) && $_POST['form-' . $alias_id][$copy_field_id] == 1);
|
||||
$send_copy_default = ($copy_field_id !== null && isset($fields[$copy_field_id]['defaultval']) && $fields[$copy_field_id]['defaultval'] == 1);
|
||||
|
||||
if (($form['is_copy'] === true && $send_copy_post) || $send_copy_default)
|
||||
{
|
||||
$email = '';
|
||||
|
||||
if ($form['is_email'] === true)
|
||||
$email = $_POST['form-' . $alias_id][$form['fields_main']['email']];
|
||||
if ($form['is_email'] === true && $email_field_id !== null && isset($_POST['form-' . $alias_id][$email_field_id]))
|
||||
$email = $_POST['form-' . $alias_id][$email_field_id];
|
||||
|
||||
if (empty($email))
|
||||
$email = $_SESSION['user_email'];
|
||||
@@ -1244,8 +1254,8 @@ function _cleanvar($var)
|
||||
{
|
||||
$email = '';
|
||||
|
||||
if ($form['is_email'] === true)
|
||||
$email = $_POST['form-' . $alias_id][$form['fields_main']['email']];
|
||||
if ($form['is_email'] === true && $email_field_id !== null && isset($_POST['form-' . $alias_id][$email_field_id]))
|
||||
$email = $_POST['form-' . $alias_id][$email_field_id];
|
||||
|
||||
if (empty($email))
|
||||
$email = $_SESSION['user_email'];
|
||||
@@ -1254,13 +1264,24 @@ function _cleanvar($var)
|
||||
}
|
||||
|
||||
// главные получатели
|
||||
$recs = array_merge($recs, $form['mail_set']['receivers']);
|
||||
// Проверка, что receivers - это массив, прежде чем слиять
|
||||
$mail_receivers = is_array($form['mail_set']['receivers']) ? $form['mail_set']['receivers'] : [];
|
||||
$recs = array_merge($recs, $mail_receivers);
|
||||
|
||||
// выбранные в форме получатели
|
||||
if ($this->form['is_receivers'] === true)
|
||||
{
|
||||
$recs_field_id = $form['fields_main']['receivers'];
|
||||
$recs[] = $fields[$recs_field_id]['setting'][$_POST['form-' . $alias_id][$recs_field_id]];
|
||||
// Проверка наличия ключа 'receivers' (Line 1268 fix)
|
||||
$recs_field_id = isset($form['fields_main']['receivers']) ? $form['fields_main']['receivers'] : null;
|
||||
|
||||
if ($recs_field_id !== null && isset($_POST['form-' . $alias_id][$recs_field_id]))
|
||||
{
|
||||
// Проверка, что поле и его настройки существуют, прежде чем получить значение
|
||||
$post_value = $_POST['form-' . $alias_id][$recs_field_id];
|
||||
if (isset($fields[$recs_field_id]['setting'][$post_value])) {
|
||||
$recs[] = $fields[$recs_field_id]['setting'][$post_value];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// если ни один получатель не назначен, отправляем админскому
|
||||
@@ -1274,17 +1295,34 @@ function _cleanvar($var)
|
||||
|
||||
foreach ($recs as $rec)
|
||||
{
|
||||
if (!isset($this->form['receivers'][$rec['email']]) && trim($rec['email']) > '')
|
||||
$this->form['receivers'][trim($rec['email'])] = $rec;
|
||||
// Fix Line 1282: Убеждаемся, что $rec — это массив и имеет ключ 'email'
|
||||
if (is_array($rec) && isset($rec['email']))
|
||||
{
|
||||
$trimmed_email = trim($rec['email']);
|
||||
if (!isset($this->form['receivers'][$trimmed_email]) && $trimmed_email > '')
|
||||
$this->form['receivers'][$trimmed_email] = $rec;
|
||||
}
|
||||
}
|
||||
|
||||
$recs = $this->form['receivers'];
|
||||
$recs[] = array('agent' => 'history');
|
||||
|
||||
// обрабатываем тему по умолчанию
|
||||
if (!$form['fields'][$form['fields_main']['subject']]['active'] || !$form['fields'][$form['fields_main']['subject']]['is_used'])
|
||||
// Проверка наличия ключа 'subject' и самого поля
|
||||
$subject_field_id = isset($form['fields_main']['subject']) ? $form['fields_main']['subject'] : null;
|
||||
|
||||
if ($subject_field_id !== null && isset($form['fields'][$subject_field_id]))
|
||||
{
|
||||
$_POST['form-' . $alias_id][$form['fields_main']['subject']] = $form['fields'][$form['fields_main']['subject']]['defaultval'];
|
||||
$subject_field = $form['fields'][$subject_field_id];
|
||||
|
||||
// Добавляем isset для 'active' и 'is_used'
|
||||
$is_active = isset($subject_field['active']) ? $subject_field['active'] : false;
|
||||
$is_used = isset($subject_field['is_used']) ? $subject_field['is_used'] : false;
|
||||
|
||||
if (!$is_active || !$is_used)
|
||||
{
|
||||
$_POST['form-' . $alias_id][$subject_field_id] = $subject_field['defaultval'];
|
||||
}
|
||||
}
|
||||
|
||||
// обрабатываем шаблон письма
|
||||
@@ -1300,7 +1338,10 @@ function _cleanvar($var)
|
||||
|
||||
foreach ($fields as $field_id => $field)
|
||||
{
|
||||
if ($field['is_used'] !== true || $field['title'] == 'captcha' || empty($field['active']))
|
||||
// Fix Line 1308: Проверка существования ключа 'is_used'
|
||||
$is_used = isset($field['is_used']) ? $field['is_used'] : false;
|
||||
|
||||
if ($is_used !== true || $field['title'] == 'captcha' || empty($field['active']))
|
||||
continue;
|
||||
|
||||
$easy .= "[tag:title:$field_id]" . ": [tag:fld:$field_id];" . ($form['mail_set']['format'] === 'text' ? "\r\n" : '<br>');
|
||||
|
Reference in New Issue
Block a user