From 38757b1baafc0d2349c50368790b20ae30867ee8 Mon Sep 17 00:00:00 2001 From: Ryan Cramer Date: Fri, 15 Mar 2024 15:50:12 -0400 Subject: [PATCH] Fix behavior of PageFinder when selector has multiple fields before a != operator and no values after the operator, i.e. a|b|c!= --- wire/core/PageFinder.php | 4 +++- .../modules/Process/ProcessPageList/ProcessPageListRender.php | 4 +--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/wire/core/PageFinder.php b/wire/core/PageFinder.php index 87ef209a..871d9103 100644 --- a/wire/core/PageFinder.php +++ b/wire/core/PageFinder.php @@ -2146,7 +2146,9 @@ class PageFinder extends Wire { } else if($operator === '!=' || $operator === '<>') { // not equals - $whereType = 'AND'; + $whereType = count($selector->fields()) > 1 && $ft->isEmptyValue($field, $value) ? 'OR' : 'AND'; + // alternate and technically more consistent behavior, but doesn't seem useful: + // $whereType = count($selector->fields()) > 1 ? 'OR' : 'AND'; $zeroIsEmpty = $ft->isEmptyValue($field, "0"); $zeroIsNotEmpty = !$zeroIsEmpty; $value = (string) $value; diff --git a/wire/modules/Process/ProcessPageList/ProcessPageListRender.php b/wire/modules/Process/ProcessPageList/ProcessPageListRender.php index 071f0931..c7acd1b3 100644 --- a/wire/modules/Process/ProcessPageList/ProcessPageListRender.php +++ b/wire/modules/Process/ProcessPageList/ProcessPageListRender.php @@ -360,8 +360,7 @@ abstract class ProcessPageListRender extends Wire { } if(!empty($options['noTags']) && strpos($value, '<') !== false) { - // legacy code, appears to be impossible to reach - $value = strip_tags($value); + $value = strip_tags(str_replace('<', ' <', $value)); } return $icon . trim($value); @@ -573,4 +572,3 @@ abstract class ProcessPageListRender extends Wire { } } -