From 23710d9f896d8faed19d38aa4842b2a7bfd33824 Mon Sep 17 00:00:00 2001
From: Alexander Purr <purr@ub.uni-leipzig.de>
Date: Fri, 1 Jul 2022 14:41:34 +0200
Subject: [PATCH] refs #22002 [finc] moving base css icon class from template
 into icon mapping configuration

* view helper loads additional property from ini and adds css class to view variable

co-authored by: Robert Lange <robert.lange@uni-leipzig.de>
* code styles
---
 local/config/vufind/iconMapping.ini           |  3 +++
 .../finc/src/finc/View/Helper/Root/Record.php | 26 +++++++++++++++----
 .../DefaultRecord/record-icon.phtml           |  2 +-
 3 files changed, 25 insertions(+), 6 deletions(-)

diff --git a/local/config/vufind/iconMapping.ini b/local/config/vufind/iconMapping.ini
index 892e76ad27f..22871da5a77 100644
--- a/local/config/vufind/iconMapping.ini
+++ b/local/config/vufind/iconMapping.ini
@@ -18,6 +18,9 @@ concatenateKeys = false
 ; Formats[default] = ""
 ; Formats[unknown] = ""
 
+; prepending special icon css class
+baseIconClass = "fa"
+
 ; finc default mapping for facet_avail
 FacetAvail[marcfincpda] = "fa-home passive"
 FacetAvail[object] = "fa-home object"
diff --git a/module/finc/src/finc/View/Helper/Root/Record.php b/module/finc/src/finc/View/Helper/Root/Record.php
index bc2a88b87ac..76d54ff4777 100644
--- a/module/finc/src/finc/View/Helper/Root/Record.php
+++ b/module/finc/src/finc/View/Helper/Root/Record.php
@@ -106,6 +106,14 @@ class Record extends \VuFind\View\Helper\Root\Record
      */
     protected $concatKeysForIconMapping;
 
+    /**
+     * Base css class for displaying icons
+     * Like 'fa' needed by font awesome
+     *
+     * @var string
+     */
+    protected $baseIconClass;
+
     /**
      * Constructor
      *
@@ -144,6 +152,8 @@ class Record extends \VuFind\View\Helper\Root\Record
                     ->StyleBasedIcons->concatenateKeys
             ) && $this->iconConfig
                 ->StyleBasedIcons->concatenateKeys ? true : false;
+            $this->baseIconClass = $this->iconConfig->StyleBasedIcons
+                    ->baseIconClass ?? 'fa';
         }
     }
 
@@ -161,7 +171,10 @@ class Record extends \VuFind\View\Helper\Root\Record
     ): string {
         $iconType = $this->getRecordIconType();
         $iconClass = $this->getRecordIconClass($iconType);
-        return $this->renderTemplate($tpl . '.phtml', ['iconClass' => $iconClass])
+        return $this->renderTemplate(
+            $tpl . '.phtml',
+            ['iconClass' => $this->baseIconClass . ' ' . $iconClass]
+        )
             . ($addText ? $this->getRecordIconText($iconType, $iconClass) : '');
     }
 
@@ -212,8 +225,7 @@ class Record extends \VuFind\View\Helper\Root\Record
     protected function getRecordIconType()
     {
         $recordType = $this->driver->getRecordType();
-        switch ($recordType)
-        {
+        switch ($recordType) {
         case 'lido':
             return "object";
         case 'missing':
@@ -226,7 +238,9 @@ class Record extends \VuFind\View\Helper\Root\Record
                 $recordTypes = $this->driver->tryMethod("get{$type}") ?? ['default'];
                 $recordTypes = $this->concatKeysForIconMapping ?
                   implode('', $recordTypes) : $recordTypes[0] ?? 'default';
-                $recordType .= strtolower(str_replace([' ','-',','], '', $recordTypes));
+                $recordType .= strtolower(
+                    str_replace([' ','-',','], '', $recordTypes)
+                );
             }
             return $recordType;
         }
@@ -525,7 +539,9 @@ class Record extends \VuFind\View\Helper\Root\Record
                         $onlineEditions[] = $add;
                     }
                 } elseif (isset($add['related_records'])) {
-                    foreach ($add['related_records']['first_results'] as $linkedRecord) {
+                    foreach (
+                        $add['related_records']['first_results'] as $linkedRecord
+                    ) {
                         $link = $recordLinkHelper->getTabUrl($linkedRecord);
                         if (!empty($link)) {
                             //overwrite link in entry and add to result array
diff --git a/themes/finc/templates/RecordDriver/DefaultRecord/record-icon.phtml b/themes/finc/templates/RecordDriver/DefaultRecord/record-icon.phtml
index bfa3afa3183..6cd2fbe8890 100644
--- a/themes/finc/templates/RecordDriver/DefaultRecord/record-icon.phtml
+++ b/themes/finc/templates/RecordDriver/DefaultRecord/record-icon.phtml
@@ -1,7 +1,7 @@
 <!-- finc: recordDriver - DefaultRecord - record-icon  -->
 <?php if (!empty($iconClass)): ?>
   <span class="access-icon hidden-print">
-    <i aria-hidden="true" class="fa <?=$iconClass?>"></i>
+    <i aria-hidden="true" class="<?=$iconClass?>"></i>
     <?php /* separate access text from icon - moved to cover.phtml */ ?>
   </span>
 <?php endif; ?>
-- 
GitLab