From 57edc9a635450c772baba97793b9fdde26c31940 Mon Sep 17 00:00:00 2001
From: Robert Lange <robert.lange@uni-leipzig.de>
Date: Mon, 11 Oct 2021 13:14:33 +0200
Subject: [PATCH] refs #19208_merge [fid_adlr] map icons by config

* move logic from templates to record view helper
* keep special case for source id 56
* combine key by Format and Access and concatenate facet values
* map icons in separate config file iconMapping.ini
---
 fid_adlr/config/vufind/iconMapping.ini        | 57 +++++++++++++
 .../DefaultRecord/record-icon-class.phtml     | 84 -------------------
 .../DefaultRecord/record-icon.phtml           |  9 --
 3 files changed, 57 insertions(+), 93 deletions(-)
 create mode 100644 fid_adlr/config/vufind/iconMapping.ini
 delete mode 100644 themes/fid_adlr/templates/RecordDriver/DefaultRecord/record-icon-class.phtml

diff --git a/fid_adlr/config/vufind/iconMapping.ini b/fid_adlr/config/vufind/iconMapping.ini
new file mode 100644
index 00000000000..78bc61c0b1d
--- /dev/null
+++ b/fid_adlr/config/vufind/iconMapping.ini
@@ -0,0 +1,57 @@
+;####################################################################
+;##################### DO NOT DELETE THIS HEADER ####################
+;################### Leipzig University Library © 2021 ##############
+;
+; This is the SIGEL-instance-specific default INI-file and inherits
+; all the settings from the INI-file defined in [Parent_Config] which
+; points to the default INI-file located in the folder vufind2/local
+;
+
+[Parent_Config]
+relative_path = ../../../fid/config/vufind/iconMapping.ini
+
+[StyleBasedIcons]
+; combine format facet and facet avail to one string
+type = "Formats_FacetAvail"
+concatenateKeys = true
+Formats[default] = ""
+Formats[unknown] = ""
+Formats_FacetAvail[articleearticlelocal] = "iconcategory-article-offline"
+Formats_FacetAvail[articleearticleonline] = "iconcategory-article-online"
+Formats_FacetAvail[articleearticleonlinefree] = "iconcategory-article-online"
+Formats_FacetAvail[audiolocal] = "iconcategory-audio-offline"
+Formats_FacetAvail[audioonline] = "iconcategory-audio-online"
+Formats_FacetAvail[bookebooklocal] = "iconcategory-book-offline"
+Formats_FacetAvail[bookebookonline] = "iconcategory-book-online"
+Formats_FacetAvail[bookebookonlinefree] = "iconcategory-book-online"
+Formats_FacetAvail[bookebookvideolocal] = "iconcategory-book-offline"
+Formats_FacetAvail[bookebookvideoonline] = "iconcategory-book-online"
+Formats_FacetAvail[default] = "iconcategory-generic"
+Formats_FacetAvail[journalejournallocal] = "iconcategory-journal-offline"
+Formats_FacetAvail[journalejournalonline] = "iconcategory-journal-online"
+Formats_FacetAvail[journalejournalonlinefree] = "iconcategory-journal-online"
+Formats_FacetAvail[microformlocal] = "iconcategory-microfilm"
+Formats_FacetAvail[microformonline] = "iconcategory-microfilm"
+Formats_FacetAvail[musicalscorelocal] = "iconcategory-notes-offline"
+Formats_FacetAvail[musicalscoreonline] = "iconcategory-notes-online"
+Formats_FacetAvail[notatedmusiclocal] = "iconcategory-notes-offline"
+Formats_FacetAvail[notatedmusiconline] = "iconcategory-notes-online"
+Formats_FacetAvail[softwarelocal] = "iconcategory-software"
+Formats_FacetAvail[softwareonline] = "iconcategory-software"
+Formats_FacetAvail[thesisbookebooklocal] = "iconcategory-thesis-offline"
+Formats_FacetAvail[thesislocal] = "iconcategory-thesis-offline"
+Formats_FacetAvail[thesisbookebookonlinefree] = "iconcategory-thesis-online"
+Formats_FacetAvail[thesisonline] = "iconcategory-thesis-online"
+Formats_FacetAvail[thesisonlinefree] = "iconcategory-thesis-online"
+Formats_FacetAvail[videolocal] = "iconcategory-video-offline"
+Formats_FacetAvail[videoonline] = "iconcategory-video-online"
+Formats_FacetAvail[videoonlinefree] = "iconcategory-video-online"
+Formats_FacetAvail[videovideolocal] = "iconcategory-video-offline"
+Formats_FacetAvail[videovideoonline] = "iconcategory-video-online"
+Formats_FacetAvail[visualmedialocal] = "iconcategory-image-offline"
+Formats_FacetAvail[visualmediaonline] = "iconcategory-image-online"
+Formats_FacetAvail[visualmediaonlinefree] = "iconcategory-image-online"
+Formats_FacetAvail[website] = "iconcategory-website"
+Formats_FacetAvail[websitelocal] = "iconcategory-website"
+Formats_FacetAvail[websiteonline] = "iconcategory-website"
+Formats_FacetAvail[unknown] = "iconcategory-generic"
diff --git a/themes/fid_adlr/templates/RecordDriver/DefaultRecord/record-icon-class.phtml b/themes/fid_adlr/templates/RecordDriver/DefaultRecord/record-icon-class.phtml
deleted file mode 100644
index 2abdf79c988..00000000000
--- a/themes/fid_adlr/templates/RecordDriver/DefaultRecord/record-icon-class.phtml
+++ /dev/null
@@ -1,84 +0,0 @@
-<?
-$normalizedValue = preg_replace('/[^a-z0-9]/', '', strtolower($this->value));
-
-// Convert normalizedValue to styles
-// finc: same list of states for icons like in de_15 #13704 - VE
-switch ($normalizedValue) {
-  case 'articleearticlelocal':
-    echo 'iconcategory-article-offline';
-    break;
-  case 'articleearticleonline':
-  case 'articleearticleonlinefree':
-    echo 'iconcategory-article-online';
-    break;
-  case 'bookebooklocal':
-  case 'bookebookvideolocal':
-    echo 'iconcategory-book-offline';
-    break;
-  case 'bookebookonline':
-  case 'bookebookonlinefree':
-  case 'bookebookvideoonline':
-    echo 'iconcategory-book-online';
-    break;
-  case 'audiolocal':
-    echo 'iconcategory-audio-offline';
-    break;
-  case 'audioonline':
-    echo 'iconcategory-audio-online';
-    break;
-  case 'journalejournallocal':
-    echo 'iconcategory-journal-offline';
-    break;
-  case 'journalejournalonline':
-  case 'journalejournalonlinefree':
-    echo 'iconcategory-journal-online';
-    break;
-  case 'videolocal':
-  case 'videovideolocal':
-    echo 'iconcategory-video-offline';
-    break;
-  case 'videoonline':
-  case 'videoonlinefree':
-  case 'videovideoonline':
-    echo 'iconcategory-video-online';
-    break;
-  case 'thesislocal':
-    echo 'iconcategory-thesis-offline';
-    break;
-  case 'thesisonline':
-  case 'thesisonlinefree':
-    echo 'iconcategory-thesis-online';
-    break;
-  case 'visualmedialocal':
-    echo 'iconcategory-image-offline';
-    break;
-  case 'visualmediaonline':
-  case 'visualmediaonlinefree':
-    echo 'iconcategory-image-online';
-    break;
-  case 'softwarelocal':
-  case 'softwareonline':
-    echo 'iconcategory-software';
-    break;
-  case 'notatedmusiclocal':
-  case 'musicalscorelocal':
-    echo 'iconcategory-notes-offline';
-    break;
-  case 'notatedmusiconline':
-  case 'musicalscoreonline':
-    echo 'iconcategory-notes-online';
-    break;
-  case 'microformlocal':
-  case 'microformonline':
-    echo 'iconcategory-microfilm';
-    break;
-  case 'website':
-  case 'websitelocal':
-  case 'websiteonline':
-    echo 'iconcategory-website';
-    break;
-  default:
-    echo 'iconcategory-generic';
-    break;
-}
-?>
diff --git a/themes/fid_adlr/templates/RecordDriver/DefaultRecord/record-icon.phtml b/themes/fid_adlr/templates/RecordDriver/DefaultRecord/record-icon.phtml
index e6b471fb660..852918bc2cc 100644
--- a/themes/fid_adlr/templates/RecordDriver/DefaultRecord/record-icon.phtml
+++ b/themes/fid_adlr/templates/RecordDriver/DefaultRecord/record-icon.phtml
@@ -4,15 +4,6 @@
 $sid = $this->driver->getSourceID();
 if ($sid == '51') {
     $iconClass = 'iconcategory-book-offline';
-} else {
-    /* finc: solr field facet_avail instead of access_facet (field deprecated) #15375 - GG */
-    $format = $this->driver->getFormats();
-    $format = count($format) > 1 ? $format[0] : $format;
-    $format = is_array($format) ? $format : [$format];
-    $facetAvail = $this->driver->getFacetAvail();
-    $iconValue = array_merge($format, $facetAvail);
-    $iconValue = implode('', $iconValue);
-    $iconClass = $this->record($this->driver)->getRecordIconClass($iconValue);
 }
 ?>
 <span class="access-icon hidden-print">
-- 
GitLab