From 061170204bd7db6a8720a6626b20cafc706053c2 Mon Sep 17 00:00:00 2001 From: Ryan Cramer Date: Thu, 20 Jun 2024 09:47:45 -0400 Subject: [PATCH] Update Lister/ListerPro for improved support of subfield labels --- .../ProcessPageLister.module | 41 +++++++++---------- 1 file changed, 20 insertions(+), 21 deletions(-) diff --git a/wire/modules/Process/ProcessPageLister/ProcessPageLister.module b/wire/modules/Process/ProcessPageLister/ProcessPageLister.module index 74544757..c2cdff44 100644 --- a/wire/modules/Process/ProcessPageLister/ProcessPageLister.module +++ b/wire/modules/Process/ProcessPageLister/ProcessPageLister.module @@ -1336,30 +1336,30 @@ class ProcessPageLister extends Process implements ConfigurableModule { $sep1 = '~~'; $sep2 = ' > '; $label = str_replace($sep1, ' ', $label); - + if($subname) { - $subfield = $fields->get($subname); - $sublabel = $subname; - - if($subfield) { - $sublabel = $subfield->getLabel(); - $sublabel = str_replace($sep1, ' ', $sublabel); - if(!$sublabel) $sublabel = $subname; - $subicon = $subfield->getIcon(true); - if($subicon) $icon = $subicon; - } else if($field && $useLabels) { + $sublabel = ''; + if($field && $useLabels) { $subinfo = $field->type->getSelectorInfo($field); if(!empty($subinfo['subfields'][$subname]['label'])) { $sublabel = $subinfo['subfields'][$subname]['label']; } } - - $label .= $sep1 . $sublabel; - - if($language) { - $label = $this->addLanguageLabel($label, $language); + if(!$sublabel) { + $subfield = $fields->get($subname); + if($subfield) { + $sublabel = $subfield->getLabel(); + $sublabel = str_replace($sep1, ' ', $sublabel); + if(!$sublabel) $sublabel = $subname; + $subicon = $subfield->getIcon(true); + if($subicon) $icon = $subicon; + } + if(!$sublabel) $sublabel = $subname; } - } else if($language) { + $label .= $sep1 . $sublabel; + } + + if($language) { $label = $this->addLanguageLabel($label, $language); } @@ -1456,7 +1456,6 @@ class ProcessPageLister extends Process implements ConfigurableModule { $subname = ''; $fullname = $name; $value = null; - $noEntities = false; $language = $languages ? $this->identifyLanguage($name, true) : null; if($language && $language->id == $this->wire()->user->language->id) $language = null; @@ -1576,7 +1575,7 @@ class ProcessPageLister extends Process implements ConfigurableModule { } else if($v instanceof Pagefile) { /** @var Pageimage $v */ $v = "$v->basename"; - } else if(!$noEntities) { + } else { $v = $sanitizer->entities($v); } $values[] = (string) $v; @@ -1619,7 +1618,7 @@ class ProcessPageLister extends Process implements ConfigurableModule { $value = $t->getLabel(); // include template name only if it differs from template label if($allowName && strtolower($t->name) != strtolower($value)) $value .= " ($t->name)"; - if(!$noEntities) $value = $sanitizer->entities1($value); + $value = $sanitizer->entities1($value); } else if($field && $field->type) { if($subname == 'data') $subname = ''; @@ -1631,7 +1630,7 @@ class ProcessPageLister extends Process implements ConfigurableModule { // other or unknown if($subname == 'data') $value = (string) $value; if($subname && is_object($value)) $value = $value->$subname; - $value = $noEntities ? $value : $sanitizer->entities($value); + $value = $sanitizer->entities($value); } if($isFirstCol) $value = $this->buildListerTableColActions($p, $value);