Index: trunk/core/units/general/helpers/image_helper.php =================================================================== diff -u -N -r8705 -r8719 --- trunk/core/units/general/helpers/image_helper.php (.../image_helper.php) (revision 8705) +++ trunk/core/units/general/helpers/image_helper.php (.../image_helper.php) (revision 8719) @@ -208,11 +208,13 @@ if ($item_image['DefaultImg'] == 1 || $item_image['Name'] == 'main') { // process primary image separately $object->SetDBField('PrimaryImage', $image_path); + $object->SetOriginalField('PrimaryImage', $image_path); $object->Fields['PrimaryImage']['original_field'] = $item_image['Name']; continue; } $object->SetDBField('Image'.$image_counter, $image_path); + $object->SetOriginalField('Image'.$image_counter, $image_path); $object->Fields['Image'.$image_counter]['original_field'] = $item_image['Name']; $image_counter++; } @@ -276,6 +278,23 @@ $i++; } } + + /** + * Preserves cloned item images to be rewrited with original item images + * + * @param Array $field_values + */ + function PreserveItemImages(&$field_values) + { + foreach ($field_values as $field_name => $field_value) { + if (!is_array($field_value)) continue; + + if (isset($field_value['upload']) && ($field_value['error'] == UPLOAD_ERR_NO_FILE)) { + // this is upload field, but nothing was uploaded this time + unset($field_values[$field_name]); + } + } + } } ?> \ No newline at end of file