From d48c4fcfe0734193a6304da1bfaadd5b5b14d6f5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andr=C3=A9=20Lahmann?= <lahmann@ub.uni-leipzig.de>
Date: Fri, 23 Sep 2016 10:22:22 +0200
Subject: [PATCH] refs #8725: * added $g as alternative to $v to
 getHierarchyParentTitle in SolrMarcFincTrait

---
 .../finc/RecordDriver/SolrMarcFincTrait.php    | 18 ++++++++++++++----
 1 file changed, 14 insertions(+), 4 deletions(-)

diff --git a/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php b/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php
index 90355818367..2e437f94649 100644
--- a/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php
+++ b/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php
@@ -1006,7 +1006,7 @@ trait SolrMarcFincTrait
 
      /**
      * Return a local signature via an consortial defined field with subfield $f.
-     * Marc field depends on library e.g. 986 for GFZK 
+     * Marc field depends on library e.g. 986 for GFZK
      *
      * @return array
      * @link   https://intern.finc.info/fincproject/issues/8146
@@ -1027,7 +1027,7 @@ trait SolrMarcFincTrait
         }
         return $retval;
     }
-    
+
     /**
      * Get an array of musical heading based on a swb field
      * at the marc field.
@@ -1503,6 +1503,16 @@ trait SolrMarcFincTrait
     {
         $parentTitle = [];
 
+        // https://intern.finc.info/issues/8725
+        $vgSelect = function ($field) {
+            if ($field->getSubfield('v')) {
+                return $field->getSubfield('v')->getData();
+            } elseif ($field->getSubfield('g')) {
+                return $field->getSubfield('g')->getData();
+            }
+            return false;
+        };
+
         // start with 490 (https://intern.finc.info/issues/8704)
         $fields = $this->getMarcRecord()->getFields('490');
         foreach($fields as $field) {
@@ -1543,7 +1553,7 @@ trait SolrMarcFincTrait
                 $parentTitle[] =
                     ($field->getSubfield('a') ?        $field->getSubfield('a')->getData() : '') .
                     ($field->getSubfield('t') ? ': ' . $field->getSubfield('t')->getData() : '') .
-                    ($field->getSubfield('v') ? ' ; ' . $field->getSubfield('v')->getData() : '')
+                    ($vgSelect($field)        ? ' ; ' . $vgSelect($field)                  : '')
                 ; // {800a: }{800t}{ ; 800v}
             }
         }
@@ -1553,7 +1563,7 @@ trait SolrMarcFincTrait
         foreach($fields as $field) {
             $parentTitle[] =
                 ($field->getSubfield('a') ?         $field->getSubfield('a')->getData() : '') .
-                ($field->getSubfield('v') ? ' ; ' . $field->getSubfield('v')->getData() : '')
+                ($vgSelect($field)        ? ' ; ' . $vgSelect($field)                   : '')
             ; // {830a}{ ; 830v}
         }
 
-- 
GitLab