From 7b6932c6856c779ab8e3e077725cd41c20400edd Mon Sep 17 00:00:00 2001
From: Dorian Merz <merz@ub.uni-leipzig.de>
Date: Tue, 24 Mar 2020 10:55:50 +0100
Subject: [PATCH] refs #16788 [fid_bbi] list all tags * of records from the
 selected lists * for records an each list

---
 module/fid_bbi/src/fid_bbi/Db/Table/Tags.php             | 9 ++++++---
 .../RecordDriver/DefaultRecord/list-entry.phtml          | 4 ++--
 2 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/module/fid_bbi/src/fid_bbi/Db/Table/Tags.php b/module/fid_bbi/src/fid_bbi/Db/Table/Tags.php
index 04199f1d938..6a12ea30212 100644
--- a/module/fid_bbi/src/fid_bbi/Db/Table/Tags.php
+++ b/module/fid_bbi/src/fid_bbi/Db/Table/Tags.php
@@ -85,8 +85,10 @@ class Tags extends BaseTags
             );
             $select->group(['tag'])->order([new Expression('lower(tag)')]);
 
-            $select->where->equalTo('ur.user_id', $userId)
-                ->equalTo('rt.user_id', $userId);
+            // contrary to the VuFind core approach we want all
+            // TAGS of RECORDS from the list
+            // not only those tagged within the list
+            $select->where->equalTo('ur.user_id', $userId);
 
             if (null !== $source) {
                 $select->where->equalTo('r.source', $source);
@@ -96,7 +98,8 @@ class Tags extends BaseTags
                 $select->where->equalTo('r.record_id', $resourceId);
             }
             if (null !== $listId) {
-                $select->where->equalTo('rt.list_id', $listId);
+                // same as above: all TAGS of RECORDS from the list
+                $select->where->equalTo('ur.list_id', $listId);
             }
         };
         return $this->select($callback);
diff --git a/themes/fid_bbi/templates/RecordDriver/DefaultRecord/list-entry.phtml b/themes/fid_bbi/templates/RecordDriver/DefaultRecord/list-entry.phtml
index 44822387e0c..efd3d618374 100644
--- a/themes/fid_bbi/templates/RecordDriver/DefaultRecord/list-entry.phtml
+++ b/themes/fid_bbi/templates/RecordDriver/DefaultRecord/list-entry.phtml
@@ -93,9 +93,9 @@ if ($cover):
             }
           } ?>
 
-          <?php /*fid_bbi #16050*/
+          <?php /*fid_bbi #16050 and #16788*/
               $listTags = ($this->usertags()->getMode() !== 'disabled') ? $this->driver->getTags(
-                $list_id, $user_id, 'tag',$user_id
+                null, $user_id, 'tag',$user_id
               ) : array();
           ?>
 
-- 
GitLab