fix поля изображение Каскад (Массовое удаление изображений теперь работает)
This commit is contained in:
@@ -256,32 +256,35 @@
|
||||
break;
|
||||
|
||||
case 'save':
|
||||
|
||||
// Инициализируем $field_value_new, чтобы избежать предупреждений,
|
||||
// если цикл не выполняется
|
||||
$field_value_new = [];
|
||||
|
||||
// ИСПРАВЛЕНИЕ: Гарантируем, что $field_value является массивом перед foreach (Строка 259)
|
||||
$field_value = is_array($field_value) ? $field_value : [];
|
||||
|
||||
foreach ($field_value as $v)
|
||||
{
|
||||
if (! empty($v['url']))
|
||||
{
|
||||
$field_value_new[] = $v['url'] . ($v['descr'] ? '|' . $v['descr'] : '');
|
||||
}
|
||||
}
|
||||
// Инициализируем $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 (isset($field_value_new))
|
||||
{
|
||||
return @serialize($field_value_new);
|
||||
}
|
||||
else
|
||||
{
|
||||
return $field_value_new = '';
|
||||
}
|
||||
|
||||
break;
|
||||
// Если массив картинок пуст (все удалено), возвращаем пустую строку для сохранения в БД
|
||||
if (empty($field_value_new))
|
||||
{
|
||||
return '';
|
||||
}
|
||||
else
|
||||
{
|
||||
// Если картинки есть, сериализуем массив строк и сохраняем
|
||||
return @serialize($field_value_new);
|
||||
}
|
||||
break;
|
||||
|
||||
case 'api':
|
||||
if (empty($field_value))
|
||||
@@ -330,8 +333,11 @@ case 'save':
|
||||
$replace[] = date('Y');
|
||||
|
||||
$default = explode('|', $default);
|
||||
|
||||
list($path_upload, $watermark, $position, $transparency) = $default;
|
||||
// извлечение элементов массива $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);
|
||||
|
||||
@@ -53,16 +53,19 @@ var Cascad = {
|
||||
cascad_del_all_item: function() {
|
||||
$('.del_all').on('click', function(event) {
|
||||
event.preventDefault();
|
||||
var c_id = $(this).parent().parent().parent('.cascad').attr("data-id");
|
||||
var d_id = $(this).parent().parent().parent('.cascad').attr("data-doc");
|
||||
var $cascad_div = $(this).parent().parent().parent('.cascad');
|
||||
var c_id = $cascad_div.attr("data-id");
|
||||
var d_id = $cascad_div.attr("data-doc");
|
||||
|
||||
jConfirm(
|
||||
del_all_c,
|
||||
del_all_h,
|
||||
function(b) {
|
||||
if (b) {
|
||||
$('#cascad_' + d_id + '_' + c_id).children('.cascad_sortable').children('.cascad_item').each(function() {
|
||||
$(this).remove();
|
||||
});
|
||||
$cascad_div.children('.cascad_sortable').children('.cascad_item').remove();
|
||||
var empty_input_name = 'feld[' + c_id + ']';
|
||||
$cascad_div.find('input[name="' + empty_input_name + '"]').remove();
|
||||
$cascad_div.append('<input type="hidden" name="' + empty_input_name + '" value="" />');
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
{assign var=cascad_new value="load" scope="global"}
|
||||
{/if}
|
||||
|
||||
<div class="cascad" id="cascad_{$doc_id}_{$field_id}" data-id="{$field_id}" data-doc="{$doc_id}" data-rubric="{$smarty.request.rubric_id}">
|
||||
<div class="cascad" id="cascad_{$doc_id}_{$field_id}" data-id="{$field_id}" data-doc="{$doc_id}" data-rubric="{if isset($smarty.request.rubric_id)}{$smarty.request.rubric_id}{/if}">
|
||||
<input type="hidden" value="" id="cascad__{$field_id}_{$doc_id}">
|
||||
{if $show_upload}
|
||||
<input type="file" class="cascade_upload cascade_upload_field_{$field_id}_{$doc_id}" multiple="multiple" name="cascade_files_{$field_id}_{$doc_id}[]" style="visibility: hidden; display: none;" data-max-files="{$max_files}" />
|
||||
|
||||
Reference in New Issue
Block a user