Index: units/images/image_tag_processor.php =================================================================== --- units/images/image_tag_processor.php (revision 14094) +++ units/images/image_tag_processor.php (working copy) @@ -87,15 +87,17 @@ // if we need primary thumbnail which is preloaded with category item's list $is_primary = $this->SelectParam($params, 'primary,Primary'); + $image_name = $this->SelectParam($params, 'name,Name'); + $image_field = $this->SelectParam($params, 'field,Field'); // ie. virtual names PrimaryImage, Image1, Image2 $image_id = $this->Application->GetVar($this->Prefix.'_id'); - + if ( // is primary, when primary mark set OR name & field not given - ($is_primary || !(isset($params['name']) || isset($params['field']))) && + ($is_primary || !($image_name || $image_field)) && // primary image is preloaded AND direct id not given isset($parent_item->Fields['ThumbPath']) && !$image_id - ) { + ) { $object->SetDefaultValues(); if (is_null($parent_item->GetDBField('SameImages'))) { @@ -113,7 +115,6 @@ $object->Loaded = true; } - } else { // if requested image is not primary thumbnail - load it directly $id_field = $this->Application->getUnitOption($this->Prefix, 'ForeignKey'); @@ -126,14 +127,14 @@ // by PrimaryImage mark $keys['DefaultImg'] = 1; } - elseif (getArrayValue($params, 'name')) { + elseif ($image_name) { // by ImageName - $keys['Name'] = $params['name']; + $keys['Name'] = $image_name; } - elseif (getArrayValue($params, 'field')) { + elseif ($image_field) { // by virtual field name in main object - $field_options = $parent_item->GetFieldOptions($params['field']); - $keys['Name'] = isset($field_options['original_field']) ? $field_options['original_field'] : $params['field']; + $field_options = $parent_item->GetFieldOptions( $image_field ); + $keys['Name'] = isset($field_options['original_field']) ? $field_options['original_field'] : $image_field; } elseif ($image_id) { // by ID @@ -146,8 +147,8 @@ $object->Load($keys); - if (isset($params['field'])) { - $image_src = $parent_item->GetDBField($params['field']); + if ( $image_field ) { + $image_src = $parent_item->GetDBField( $image_field ); // when image is uploaded to virtual field in main item, but not saved to db $object->SetDBField('ThumbPath', $image_src);