From 3e6840748bee40dc01ceeec6406406b88c8101bb Mon Sep 17 00:00:00 2001 From: Ryan Cramer Date: Thu, 22 Mar 2018 07:46:02 -0400 Subject: [PATCH] Update FieldtypeInteger so that it will still convert to integer even if number prefixed with USD or EUR symbol. --- wire/modules/Fieldtype/FieldtypeInteger.module | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/wire/modules/Fieldtype/FieldtypeInteger.module b/wire/modules/Fieldtype/FieldtypeInteger.module index f20aa71e..3fada98c 100644 --- a/wire/modules/Fieldtype/FieldtypeInteger.module +++ b/wire/modules/Fieldtype/FieldtypeInteger.module @@ -54,8 +54,13 @@ class FieldtypeInteger extends Fieldtype { if(is_string($value) && strlen($value) && !ctype_digit(ltrim($value, '-'))) { // string value with one or more non-digit characters $value = trim($value); + // trim off common currency symbols + $value = trim($value, '$€ '); - if(preg_match('/^(\de\d|0x\d+|\+\d+)/', $value)) { + if(ctype_digit("$value")) { + // trimming reduced it to an int + + } else if(preg_match('/^(\de\d|0x\d+|\+\d+)/', $value)) { // likely a valid number, but in a non-native format to PW // examples: 1e123213, 0x1234, +123 (intval handles these) $value = intval($value);