From 021030a32a5070dc7c9aea60539820160f697b31 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 09:47:26 +0200
Subject: [PATCH] refs #8705: * added check of getRvkMetadata() to hasTopics()
 in SolrMarcFincTrait to enable topic tab for RVK only records

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

diff --git a/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php b/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php
index 48eda402438..e40ddeb3b8d 100644
--- a/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php
+++ b/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php
@@ -1575,12 +1575,30 @@ trait SolrMarcFincTrait
             }
         }
 
+        if (empty($retval)) {
+            $retval = parent::getAllSubjectHeadings();
+        }
+
         // Remove duplicates and then send back everything we collected:
         return array_map(
             'unserialize', array_unique(array_map('serialize', $retval))
         );
     }
 
+    /**
+     * Check if Topics exists. Realized for instance of UBL only.
+     *
+     * @return boolean      True if topics exist.
+     * @access public
+     */
+    public function hasTopics()
+    {
+        $rvk = $this->getRvkWithMetadata();
+        return (parent::hasTopics()
+            || (is_array($rvk) && count($rvk) > 0)
+        );
+    }
+
     /**
      * Get specific marc information about topics. Unflexible solution
      * for UBL only implemented.
-- 
GitLab