From 85003687ebed0453abe7d283db004ed5afc43f6a Mon Sep 17 00:00:00 2001 From: igraziatto Date: Wed, 11 Mar 2020 12:08:26 -0400 Subject: [PATCH 1/3] Use formatService->getPlainTextLength to get plain text length --- plugins/Signatures/class.signatures.plugin.php | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/plugins/Signatures/class.signatures.plugin.php b/plugins/Signatures/class.signatures.plugin.php index bf1ebd7bf..df80608a5 100644 --- a/plugins/Signatures/class.signatures.plugin.php +++ b/plugins/Signatures/class.signatures.plugin.php @@ -22,6 +22,8 @@ * @package Addons */ +use \Vanilla\Formatting\FormatService; + class SignaturesPlugin extends Gdn_Plugin { const Unlimited = 'Unlimited'; @@ -31,9 +33,16 @@ class SignaturesPlugin extends Gdn_Plugin { /** @var bool */ public $Disabled = false; + /** @var FormatService */ + private $formatService; + /** @var array List of config settings can be overridden by sessions in other plugins */ private $overriddenConfigSettings = ['MaxNumberImages', 'MaxLength']; + public function __construct(FormatService $formatService) { + parent::__construct(); + $this->formatService = $formatService; + } /** * Add mapper methods @@ -248,12 +257,13 @@ public function checkSignatureLength($fields, &$sender) { $maxLength = intval($maxLength); $format = config('Plugin.Signatures.Format', Gdn_Format::defaultFormat()); $body = val('Plugin.Signatures.Sig', $fields, ''); - $formatted = Gdn_Format::to($body, $format); - $plainText = trim(Gdn_format::text($formatted)); + //$formatted = Gdn_Format::to($body, $format); + //$plainText = trim(Gdn_format::text($formatted)); + $plainTextLength = $this->formatService->getPlainTextLength($body, $format); // Validate the amount of text. - $length = strlen($plainText); - $difference = $length - $maxLength; + //$length = strlen($plainText); + $difference = $plainTextLength - $maxLength; if ($difference > 0) { $sender->Form->addError(sprintf( t('ValidateLength'), From 2bde2bc08e3a2e4100ef61ee3f8e9f531fe4fc60 Mon Sep 17 00:00:00 2001 From: igraziatto Date: Wed, 11 Mar 2020 13:17:19 -0400 Subject: [PATCH 2/3] qa --- plugins/Signatures/class.signatures.plugin.php | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/plugins/Signatures/class.signatures.plugin.php b/plugins/Signatures/class.signatures.plugin.php index df80608a5..765ca9434 100644 --- a/plugins/Signatures/class.signatures.plugin.php +++ b/plugins/Signatures/class.signatures.plugin.php @@ -39,6 +39,10 @@ class SignaturesPlugin extends Gdn_Plugin { /** @var array List of config settings can be overridden by sessions in other plugins */ private $overriddenConfigSettings = ['MaxNumberImages', 'MaxLength']; + /** + * SignaturesPlugin constructor. + * @param FormatService $formatService + */ public function __construct(FormatService $formatService) { parent::__construct(); $this->formatService = $formatService; @@ -257,12 +261,9 @@ public function checkSignatureLength($fields, &$sender) { $maxLength = intval($maxLength); $format = config('Plugin.Signatures.Format', Gdn_Format::defaultFormat()); $body = val('Plugin.Signatures.Sig', $fields, ''); - //$formatted = Gdn_Format::to($body, $format); - //$plainText = trim(Gdn_format::text($formatted)); $plainTextLength = $this->formatService->getPlainTextLength($body, $format); - // Validate the amount of text. - //$length = strlen($plainText); + // Validate the amount of text $difference = $plainTextLength - $maxLength; if ($difference > 0) { $sender->Form->addError(sprintf( From 0ed506525d9bf1cfa694c3b29fbe0e8f7a6bcbbc Mon Sep 17 00:00:00 2001 From: igraziatto Date: Wed, 11 Mar 2020 15:57:20 -0400 Subject: [PATCH 3/3] qa --- plugins/Signatures/class.signatures.plugin.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/Signatures/class.signatures.plugin.php b/plugins/Signatures/class.signatures.plugin.php index 765ca9434..5006e795e 100644 --- a/plugins/Signatures/class.signatures.plugin.php +++ b/plugins/Signatures/class.signatures.plugin.php @@ -259,7 +259,7 @@ public function checkSignatureLength($fields, &$sender) { $maxLength = self::getMaximumTextLength(); if ($maxLength !== null && $maxLength > 0) { $maxLength = intval($maxLength); - $format = config('Plugin.Signatures.Format', Gdn_Format::defaultFormat()); + $format = isset($fields['Format']) ? $fields['Format'] : Gdn_Format::defaultFormat(); $body = val('Plugin.Signatures.Sig', $fields, ''); $plainTextLength = $this->formatService->getPlainTextLength($body, $format);