From f7879126da6cab81d3944c5e9f9326c79ec0d6bf Mon Sep 17 00:00:00 2001 From: Ryan Cramer Date: Thu, 9 Jul 2020 11:06:19 -0400 Subject: [PATCH] Attempt fix for issue mentioned by @Rayden in processwire/processwire-issues#1207 --- wire/modules/Fieldtype/FieldtypeFile.module | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/wire/modules/Fieldtype/FieldtypeFile.module b/wire/modules/Fieldtype/FieldtypeFile.module index 65d63b47..01b93d6d 100644 --- a/wire/modules/Fieldtype/FieldtypeFile.module +++ b/wire/modules/Fieldtype/FieldtypeFile.module @@ -771,7 +771,7 @@ class FieldtypeFile extends FieldtypeMulti implements ConfigurableModule { /** * Get match query * - * @param DatabaseQuerySelect $query + * @param DatabaseQuerySelect|PageFinderDatabaseQuerySelect $query * @param string $table * @param string $subfield * @param string $operator @@ -789,6 +789,7 @@ class FieldtypeFile extends FieldtypeMulti implements ConfigurableModule { $isFindOperator = $compareType & Selector::compareTypeFind; $isInvalidOperator = false; $isInvalidSubfield = false; + $originalOperator = $operator; unset($schema['keys'], $schema['xtra']); @@ -838,6 +839,12 @@ class FieldtypeFile extends FieldtypeMulti implements ConfigurableModule { $isInvalidSubfield = true; } } + + if($operator !== $originalOperator) { + // operator can change above (i.e. getMatchQuerySubfield) + $compareType = Selectors::getOperators(array('getValueType' => 'compareType', 'operator' => $operator)); + $isFindOperator = $compareType & Selector::compareTypeFind; + } if($isInvalidSubfield) { throw new PageFinderSyntaxException("Property '$subfield' not recognized in: $query->selector");