fix поля Изображение Каскад
This commit is contained in:
@@ -17,8 +17,8 @@
|
||||
|
||||
global $AVE_Template, $img_pixel;
|
||||
|
||||
$fld_dir = dirname(__FILE__) . '/';
|
||||
$tpl_dir = $fld_dir . 'tpl/';
|
||||
$fld_dir = dirname(__FILE__) . '/';
|
||||
$tpl_dir = $fld_dir . 'tpl/';
|
||||
$fld_name = basename($fld_dir);
|
||||
|
||||
$lang_file = $fld_dir . 'lang/' . (defined('ACP')
|
||||
@@ -42,9 +42,12 @@
|
||||
|
||||
if ($_REQUEST['action'] != 'new')
|
||||
{
|
||||
$items = unserialize($field_value);
|
||||
|
||||
if($items != false)
|
||||
if (!empty($field_value))
|
||||
{
|
||||
$items = @unserialize($field_value);
|
||||
}
|
||||
|
||||
if($items !== false && is_array($items))
|
||||
{
|
||||
foreach($items as $k => $v)
|
||||
{
|
||||
@@ -73,7 +76,7 @@
|
||||
|
||||
$show_upload = true;
|
||||
|
||||
// Строка 76: разделяем строку на массив
|
||||
// Строка 76: разделяем строку на массив
|
||||
$default = explode('|', $default);
|
||||
|
||||
// Строка 78: используем оператор объединения с null (??) для безопасного извлечения значений
|
||||
@@ -125,14 +128,21 @@
|
||||
break;
|
||||
|
||||
case 'doc':
|
||||
|
||||
$items = array();
|
||||
|
||||
$items = (isset($field_value))
|
||||
? unserialize($field_value)
|
||||
: array();
|
||||
if (!empty($field_value))
|
||||
{
|
||||
$temp_items = @unserialize($field_value);
|
||||
if ($temp_items !== false)
|
||||
{
|
||||
$items = $temp_items;
|
||||
}
|
||||
}
|
||||
|
||||
$res = array();
|
||||
|
||||
if ($items != false)
|
||||
if (!empty($items))
|
||||
{
|
||||
foreach ($items as $image_item)
|
||||
{
|
||||
@@ -156,13 +166,13 @@
|
||||
$tpl
|
||||
);
|
||||
|
||||
$image_item = preg_replace_callback(
|
||||
'/\[tag:watermark:(.+?):([a-zA-Z]+):([0-9]+)\]/',
|
||||
function($m) {
|
||||
return watermarks($m[1], $m[2], $m[3]);
|
||||
},
|
||||
$image_item
|
||||
);
|
||||
$image_item = preg_replace_callback(
|
||||
'/\[tag:watermark:(.+?):([a-zA-Z]+):([0-9]+)\]/',
|
||||
function($m) {
|
||||
return watermarks($m[1], $m[2], $m[3]);
|
||||
},
|
||||
$image_item
|
||||
);
|
||||
|
||||
$image_item = preg_replace_callback('/\[tag:([r|c|f|t|s]\d+x\d+r*):(.+?)]/', 'callback_make_thumbnail', $image_item);
|
||||
}
|
||||
@@ -192,11 +202,20 @@
|
||||
break;
|
||||
|
||||
case 'req':
|
||||
$items = unserialize($field_value);
|
||||
$items = array();
|
||||
|
||||
if (!empty($field_value))
|
||||
{
|
||||
$temp_items = @unserialize($field_value);
|
||||
if ($temp_items !== false)
|
||||
{
|
||||
$items = $temp_items;
|
||||
}
|
||||
}
|
||||
|
||||
$res = array();
|
||||
|
||||
if ($items != false)
|
||||
if (!empty($items))
|
||||
{
|
||||
foreach ($items as $image_item)
|
||||
{
|
||||
@@ -220,13 +239,13 @@
|
||||
$tpl
|
||||
);
|
||||
|
||||
$image_item = preg_replace_callback(
|
||||
'/\[tag:watermark:(.+?):([a-zA-Z]+):([0-9]+)\]/',
|
||||
function($m) {
|
||||
return watermarks($m[1], $m[2], $m[3]);
|
||||
},
|
||||
$image_item
|
||||
);
|
||||
$image_item = preg_replace_callback(
|
||||
'/\[tag:watermark:(.+?):([a-zA-Z]+):([0-9]+)\]/',
|
||||
function($m) {
|
||||
return watermarks($m[1], $m[2], $m[3]);
|
||||
},
|
||||
$image_item
|
||||
);
|
||||
|
||||
$image_item = preg_replace_callback('/\[tag:([r|c|f]\d+x\d+r*):(.+?)]/', 'callback_make_thumbnail', $image_item);
|
||||
}
|
||||
@@ -255,36 +274,36 @@
|
||||
|
||||
break;
|
||||
|
||||
case 'save':
|
||||
// Инициализируем $field_value_new как пустой массив.
|
||||
$field_value_new = [];
|
||||
|
||||
// Гарантируем, что $field_value является массивом перед foreach
|
||||
$field_value = is_array($field_value) ? $field_value : [];
|
||||
|
||||
foreach ($field_value as $v)
|
||||
{
|
||||
if (! empty($v['url']))
|
||||
{
|
||||
// Убедимся, что данные очищены перед сериализацией
|
||||
$description = $v['descr'] ? stripslashes(htmlspecialchars($v['descr'], ENT_QUOTES)) : '';
|
||||
|
||||
// Собираем элемент в строку: URL|DESCR
|
||||
$field_value_new[] = $v['url'] . ($description ? '|' . $description : '');
|
||||
}
|
||||
}
|
||||
case 'save':
|
||||
// Инициализируем $field_value_new как пустой массив.
|
||||
$field_value_new = [];
|
||||
|
||||
// Гарантируем, что $field_value является массивом перед foreach
|
||||
$field_value = is_array($field_value) ? $field_value : [];
|
||||
|
||||
foreach ($field_value as $v)
|
||||
{
|
||||
if (! empty($v['url']))
|
||||
{
|
||||
// Убедимся, что данные очищены перед сериализацией
|
||||
$description = $v['descr'] ? stripslashes(htmlspecialchars($v['descr'], ENT_QUOTES)) : '';
|
||||
|
||||
// Собираем элемент в строку: URL|DESCR
|
||||
$field_value_new[] = $v['url'] . ($description ? '|' . $description : '');
|
||||
}
|
||||
}
|
||||
|
||||
// Если массив картинок пуст (все удалено), возвращаем пустую строку для сохранения в БД
|
||||
if (empty($field_value_new))
|
||||
{
|
||||
return '';
|
||||
}
|
||||
else
|
||||
{
|
||||
// Если картинки есть, сериализуем массив строк и сохраняем
|
||||
return @serialize($field_value_new);
|
||||
}
|
||||
break;
|
||||
// Если массив картинок пуст (все удалено), возвращаем пустую строку для сохранения в БД
|
||||
if (empty($field_value_new))
|
||||
{
|
||||
return '';
|
||||
}
|
||||
else
|
||||
{
|
||||
// Если картинки есть, сериализуем массив строк и сохраняем
|
||||
return @serialize($field_value_new);
|
||||
}
|
||||
break;
|
||||
|
||||
case 'api':
|
||||
if (empty($field_value))
|
||||
@@ -294,9 +313,9 @@ case 'save':
|
||||
|
||||
if (! empty($field_value))
|
||||
{
|
||||
$images = unserialize($field_value);
|
||||
$images = @unserialize($field_value);
|
||||
|
||||
if (! $images)
|
||||
if ($images === false) // Проверка на неудачную десериализацию
|
||||
return false;
|
||||
|
||||
foreach ($images AS $k => $v)
|
||||
@@ -304,8 +323,9 @@ case 'save':
|
||||
$_item = explode('|', $v);
|
||||
|
||||
$items[$k] = [
|
||||
'url' => $_item[0],
|
||||
'descr' => (isset($_item[1]) ? $_item[2] : ''),
|
||||
'url' => $_item[0],
|
||||
// Проверка на существование индекса [1]
|
||||
'descr' => (isset($_item[1]) ? $_item[1] : ''),
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -333,11 +353,11 @@ case 'save':
|
||||
$replace[] = date('Y');
|
||||
|
||||
$default = explode('|', $default);
|
||||
// извлечение элементов массива $default
|
||||
$path_upload = $default[0] ?? '';
|
||||
$watermark = $default[1] ?? false;
|
||||
$position = $default[2] ?? null;
|
||||
$transparency = $default[3] ?? null;
|
||||
// извлечение элементов массива $default
|
||||
$path_upload = $default[0] ?? '';
|
||||
$watermark = $default[1] ?? false;
|
||||
$position = $default[2] ?? null;
|
||||
$transparency = $default[3] ?? null;
|
||||
|
||||
if (! empty($path_upload))
|
||||
$path_upload = str_replace($search, $replace, $path_upload);
|
||||
|
||||
Reference in New Issue
Block a user