diff --git a/fields/doc_from_rub_check/tpl/field.tpl b/fields/doc_from_rub_check/tpl/field.tpl index a10b489..0e1605a 100644 --- a/fields/doc_from_rub_check/tpl/field.tpl +++ b/fields/doc_from_rub_check/tpl/field.tpl @@ -35,4 +35,5 @@ + {/if} diff --git a/fields/doc_from_rub_list/tpl/field.tpl b/fields/doc_from_rub_list/tpl/field.tpl index c127347..a171f64 100644 --- a/fields/doc_from_rub_list/tpl/field.tpl +++ b/fields/doc_from_rub_list/tpl/field.tpl @@ -11,5 +11,5 @@ - + {/if} diff --git a/fields/doc_from_rub_tree/tpl/field.tpl b/fields/doc_from_rub_tree/tpl/field.tpl index 453d8f5..62403a5 100644 --- a/fields/doc_from_rub_tree/tpl/field.tpl +++ b/fields/doc_from_rub_tree/tpl/field.tpl @@ -13,5 +13,5 @@ - + {/if} diff --git a/fields/drop_down/tpl/field.tpl b/fields/drop_down/tpl/field.tpl index 05e0b5c..31902ee 100644 --- a/fields/drop_down/tpl/field.tpl +++ b/fields/drop_down/tpl/field.tpl @@ -8,4 +8,5 @@ + {/if} \ No newline at end of file diff --git a/fields/drop_down_key/tpl/field.tpl b/fields/drop_down_key/tpl/field.tpl index 5a0b6a9..9e7908c 100644 --- a/fields/drop_down_key/tpl/field.tpl +++ b/fields/drop_down_key/tpl/field.tpl @@ -9,4 +9,5 @@ + {/if} \ No newline at end of file diff --git a/fields/image_cascade/field.php b/fields/image_cascade/field.php index 15a9295..2a6d575 100644 --- a/fields/image_cascade/field.php +++ b/fields/image_cascade/field.php @@ -274,36 +274,41 @@ 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 $k => $v) // Добавлен $k для проверки заглушки + { + // Игнорируем элемент-заглушку + if ($k === '__empty__') { + continue; + } - // Если массив картинок пуст (все удалено), возвращаем пустую строку для сохранения в БД - if (empty($field_value_new)) - { - return ''; - } - else - { - // Если картинки есть, сериализуем массив строк и сохраняем - return @serialize($field_value_new); - } - break; + 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; case 'api': if (empty($field_value)) diff --git a/fields/image_cascade/tpl/field.tpl b/fields/image_cascade/tpl/field.tpl index 29dd400..957fb17 100644 --- a/fields/image_cascade/tpl/field.tpl +++ b/fields/image_cascade/tpl/field.tpl @@ -23,6 +23,7 @@
+ {if $show_upload} {/if} diff --git a/fields/multi_checkbox/tpl/field.tpl b/fields/multi_checkbox/tpl/field.tpl index 89f5544..afd54c3 100644 --- a/fields/multi_checkbox/tpl/field.tpl +++ b/fields/multi_checkbox/tpl/field.tpl @@ -17,4 +17,5 @@ + {/if} diff --git a/fields/multi_select/field.php b/fields/multi_select/field.php index 162dd27..f1bc73d 100644 --- a/fields/multi_select/field.php +++ b/fields/multi_select/field.php @@ -37,7 +37,6 @@ $items = array_diff($items, array('')); - // ✅ ИСПРАВЛЕНИЕ 1: Безопасная десериализация if (!empty($field_value)) { $field_value = @unserialize($field_value); } else { @@ -53,7 +52,7 @@ break; case 'doc': - // ✅ ИСПРАВЛЕНИЕ 2: Безопасная десериализация (устранение unserialize error) + $items = (!empty($field_value)) ? @unserialize($field_value) : array(); @@ -155,13 +154,32 @@ break; case 'api': - // ✅ ИСПРАВЛЕНИЕ 3: Безопасная десериализация + if (empty($field_value)) return $field_value; return @unserialize($field_value); break; + case 'save': + // Убираем заглушку, если она присутствует и нет других значений + if (isset($field_value) && is_array($field_value)) + { + $field_value = array_diff($field_value, array('__EMPTY__')); + } + + if (!empty($field_value) && is_array($field_value)) + { + // Сериализуем выбранные значения + return @serialize($field_value); + } + else + { + // Если после удаления заглушки массив пуст, возвращаем пустую строку. + return ''; + } + break; + case 'name': return $AVE_Template->get_config_vars('name'); break; diff --git a/fields/multi_select/tpl/field.tpl b/fields/multi_select/tpl/field.tpl index 96bb5c8..741e799 100644 --- a/fields/multi_select/tpl/field.tpl +++ b/fields/multi_select/tpl/field.tpl @@ -1,4 +1,5 @@ {if $items} + {/if} \ No newline at end of file diff --git a/fields/rubrics_templates_id/tpl/field.tpl b/fields/rubrics_templates_id/tpl/field.tpl index 7707437..3044748 100644 --- a/fields/rubrics_templates_id/tpl/field.tpl +++ b/fields/rubrics_templates_id/tpl/field.tpl @@ -12,5 +12,5 @@ - + {/if}