1
0
mirror of https://github.com/processwire/processwire.git synced 2025-08-09 08:17:12 +02:00

Update Lister/ListerPro for improved support of subfield labels

This commit is contained in:
Ryan Cramer
2024-06-20 09:47:45 -04:00
parent 6d225f3c99
commit 061170204b

View File

@@ -1338,28 +1338,28 @@ class ProcessPageLister extends Process implements ConfigurableModule {
$label = str_replace($sep1, ' ', $label); $label = str_replace($sep1, ' ', $label);
if($subname) { if($subname) {
$subfield = $fields->get($subname); $sublabel = '';
$sublabel = $subname; if($field && $useLabels) {
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) {
$subinfo = $field->type->getSelectorInfo($field); $subinfo = $field->type->getSelectorInfo($field);
if(!empty($subinfo['subfields'][$subname]['label'])) { if(!empty($subinfo['subfields'][$subname]['label'])) {
$sublabel = $subinfo['subfields'][$subname]['label']; $sublabel = $subinfo['subfields'][$subname]['label'];
} }
} }
if(!$sublabel) {
$label .= $sep1 . $sublabel; $subfield = $fields->get($subname);
if($subfield) {
if($language) { $sublabel = $subfield->getLabel();
$label = $this->addLanguageLabel($label, $language); $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); $label = $this->addLanguageLabel($label, $language);
} }
@@ -1456,7 +1456,6 @@ class ProcessPageLister extends Process implements ConfigurableModule {
$subname = ''; $subname = '';
$fullname = $name; $fullname = $name;
$value = null; $value = null;
$noEntities = false;
$language = $languages ? $this->identifyLanguage($name, true) : null; $language = $languages ? $this->identifyLanguage($name, true) : null;
if($language && $language->id == $this->wire()->user->language->id) $language = 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) { } else if($v instanceof Pagefile) {
/** @var Pageimage $v */ /** @var Pageimage $v */
$v = "<a target='_blank' href='$v->url'>$v->basename</a>"; $v = "<a target='_blank' href='$v->url'>$v->basename</a>";
} else if(!$noEntities) { } else {
$v = $sanitizer->entities($v); $v = $sanitizer->entities($v);
} }
$values[] = (string) $v; $values[] = (string) $v;
@@ -1619,7 +1618,7 @@ class ProcessPageLister extends Process implements ConfigurableModule {
$value = $t->getLabel(); $value = $t->getLabel();
// include template name only if it differs from template label // include template name only if it differs from template label
if($allowName && strtolower($t->name) != strtolower($value)) $value .= " ($t->name)"; 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) { } else if($field && $field->type) {
if($subname == 'data') $subname = ''; if($subname == 'data') $subname = '';
@@ -1631,7 +1630,7 @@ class ProcessPageLister extends Process implements ConfigurableModule {
// other or unknown // other or unknown
if($subname == 'data') $value = (string) $value; if($subname == 'data') $value = (string) $value;
if($subname && is_object($value)) $value = $value->$subname; 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); if($isFirstCol) $value = $this->buildListerTableColActions($p, $value);