Bug 12478: working on authority results
[koha-ffzg.git] / Koha / MetadataRecord.pm
index 8b0d8a4..1b2f4aa 100644 (file)
@@ -87,17 +87,8 @@ sub new {
         return;
     }
 
-    my $record = $params->{ record };
-    my $schema = $params->{ schema };
-    my $format = $params->{ format } // 'MARC';
-    my $id     = $params->{ id };
-
-    my $self = $class->SUPER::new({
-        record => $record,
-        schema => $schema,
-        format => $format,
-        id     => $id
-    });
+    $params->{format} //= 'MARC';
+    my $self = $class->SUPER::new($params);
 
     bless $self, $class;
     return $self;
@@ -117,4 +108,29 @@ sub createMergeHash {
     }
 }
 
+sub getKohaField {
+    my ($self, $kohafield) = @_;
+
+    if ($self->schema =~ m/marc/) {
+        my $relations = C4::Context->marcfromkohafield->{''};
+        my $tagfield = $relations->{$kohafield};
+
+        return '' if ref($tagfield) ne 'ARRAY';
+
+        my ($tag, $subfield) = @$tagfield;
+        my @kohafield;
+        foreach my $field ( $self->record->field($tag) ) {
+            if ( $field->tag() < 10 ) {
+                push @kohafield, $field->data();
+            } else {
+                foreach my $contents ( $field->subfield($subfield) ) {
+                    push @kohafield, $contents;
+                }
+            }
+        }
+
+        return join ' | ', @kohafield;
+    }
+}
+
 1;