From 422c88b3703383fa209aa903a224b6349dffd141 Mon Sep 17 00:00:00 2001 From: antonkomarev Date: Sat, 11 Jul 2020 23:38:14 +0300 Subject: [PATCH] Fix dynamic length --- resources/views-count.svg | 6 +++--- src/CounterImageRendererService.php | 15 +++++++++++++++ 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/resources/views-count.svg b/resources/views-count.svg index 92a8e47..3e8c4cf 100644 --- a/resources/views-count.svg +++ b/resources/views-count.svg @@ -1,11 +1,11 @@ - + - + Profile views - %COUNT% + %COUNT% diff --git a/src/CounterImageRendererService.php b/src/CounterImageRendererService.php index f2f87a2..6880f6c 100644 --- a/src/CounterImageRendererService.php +++ b/src/CounterImageRendererService.php @@ -34,9 +34,24 @@ final class CounterImageRendererService $this->counterRepository->incrementCount(); $count = $this->counterRepository->getCount(); + $minImageWidth = 98; + $minCounterBackgroundWidth = 17; + $minCounterTextLength = 70; + $minCounterTextMarginLeft = 885; + + $countLength = $this->countIntegerLength($count); $counterImage = file_get_contents($this->sourceImagePath); $counterImage = str_replace('%COUNT%', $count, $counterImage); + $counterImage = str_replace('%IMAGE_WIDTH%', $minImageWidth + (8 * $countLength), $counterImage); + $counterImage = str_replace('%COUNTER_BACKGROUND_WIDTH%', $minCounterBackgroundWidth + (8 * $countLength), $counterImage); + $counterImage = str_replace('%COUNTER_TEXT_LENGTH%', $minCounterTextLength + (80 * $countLength), $counterImage); + $counterImage = str_replace('%COUNTER_TEXT_MARGIN_LEFT%', $minCounterTextMarginLeft + (40 * $countLength), $counterImage); return $counterImage; } + + private function countIntegerLength(int $integer): int + { + return strlen((string) $integer); + } }