From 50d56f000709d36079306f2122a87d9b69a221bf Mon Sep 17 00:00:00 2001 From: Alexey Skobkin Date: Tue, 28 Mar 2023 23:41:04 +0300 Subject: [PATCH] Ported PointUrlExtension Twig extension. --- config/services.yaml | 2 + .../Twig/PointUrlExtension.php | 100 ------------------ src/Twig/PointUrlExtension.php | 88 +++++++++++++++ 3 files changed, 90 insertions(+), 100 deletions(-) delete mode 100644 old/src/PointToolsBundle/Twig/PointUrlExtension.php create mode 100644 src/Twig/PointUrlExtension.php diff --git a/config/services.yaml b/config/services.yaml index 6667f72..ed11dfe 100644 --- a/config/services.yaml +++ b/config/services.yaml @@ -15,6 +15,8 @@ services: # Telegram Bot API $telegramToken: '' # Point API + $pointDomain: 'point.im' + $pointScheme: 'https' $pointApiDelay: '' $pointAppUserId: '' $pointApiClient: '@app.point.http_client' diff --git a/old/src/PointToolsBundle/Twig/PointUrlExtension.php b/old/src/PointToolsBundle/Twig/PointUrlExtension.php deleted file mode 100644 index 742677a..0000000 --- a/old/src/PointToolsBundle/Twig/PointUrlExtension.php +++ /dev/null @@ -1,100 +0,0 @@ -pointDomain = $pointDomain; - $this->pointScheme = $pointScheme; - $this->pointBaseUrl = $pointBaseUrl; - } - - public function getFunctions() - { - return [ - new \Twig_SimpleFunction('point_avatar', [$this, 'avatarFunction']), - new \Twig_SimpleFunction('point_avatar_small', [$this, 'avatarSmallFunction']), - new \Twig_SimpleFunction('point_avatar_medium', [$this, 'avatarMediumFunction']), - new \Twig_SimpleFunction('point_avatar_large', [$this, 'avatarLargeFunction']), - new \Twig_SimpleFunction('point_user_url', [$this, 'userUrl']), - new \Twig_SimpleFunction('point_user_blog_url', [$this, 'userBlogUrl']), - new \Twig_SimpleFunction('point_post_url', [$this, 'postUrl']), - ]; - } - - public function getFilters() - { - return [ - new \Twig_SimpleFilter('point_avatar', [$this, 'avatarFunction']), - new \Twig_SimpleFilter('point_avatar_small', [$this, 'avatarSmallFunction']), - new \Twig_SimpleFilter('point_avatar_medium', [$this, 'avatarMediumFunction']), - new \Twig_SimpleFilter('point_avatar_large', [$this, 'avatarLargeFunction']), - new \Twig_SimpleFilter('point_user_url', [$this, 'userUrl']), - new \Twig_SimpleFilter('point_user_blog_url', [$this, 'userBlogUrl']), - new \Twig_SimpleFilter('point_post_url', [$this, 'postUrl']), - ]; - } - - public function avatarSmallFunction(string $login): string - { - return $this->avatarFunction($login, User::AVATAR_SIZE_SMALL); - } - - public function avatarMediumFunction(string $login): string - { - return $this->avatarFunction($login, User::AVATAR_SIZE_MEDIUM); - } - - public function avatarLargeFunction(string $login): string - { - return $this->avatarFunction($login, User::AVATAR_SIZE_LARGE); - } - - public function avatarFunction(string $login, $size): string - { - return $this->getAvatarUrlByLogin($login, $size); - } - - public function userUrl(string $login): string - { - return sprintf('%s://%s.%s/', $this->pointScheme, $login, $this->pointDomain); - } - - public function userBlogUrl(string $login): string - { - return sprintf('%s://%s.%s/blog/', $this->pointScheme, $login, $this->pointDomain); - } - - public function postUrl(string $postId): string - { - return sprintf('%s://%s/%s', $this->pointScheme, $this->pointDomain, $postId); - } - - private function getAvatarUrlByLogin(string $login, string $size): string - { - if (!in_array($size, [User::AVATAR_SIZE_SMALL, User::AVATAR_SIZE_MEDIUM, User::AVATAR_SIZE_LARGE], true)) { - throw new \InvalidArgumentException('Avatar size must be one of restricted variants. See User::AVATAR_SIZE_* constants.'); - } - - return sprintf('%s://%s/avatar/%s/%s', $this->pointScheme, $this->pointDomain, urlencode($login), $size); - } -} \ No newline at end of file diff --git a/src/Twig/PointUrlExtension.php b/src/Twig/PointUrlExtension.php new file mode 100644 index 0000000..38051e3 --- /dev/null +++ b/src/Twig/PointUrlExtension.php @@ -0,0 +1,88 @@ +avatarFunction($login, User::AVATAR_SIZE_SMALL); + } + + public function avatarMediumFunction(string $login): string + { + return $this->avatarFunction($login, User::AVATAR_SIZE_MEDIUM); + } + + public function avatarLargeFunction(string $login): string + { + return $this->avatarFunction($login, User::AVATAR_SIZE_LARGE); + } + + public function avatarFunction(string $login, $size): string + { + return $this->getAvatarUrlByLogin($login, $size); + } + + public function userUrl(string $login): string + { + return sprintf('%s://%s.%s/', $this->pointScheme, $login, $this->pointDomain); + } + + public function userBlogUrl(string $login): string + { + return sprintf('%s://%s.%s/blog/', $this->pointScheme, $login, $this->pointDomain); + } + + public function postUrl(string $postId): string + { + return sprintf('%s://%s/%s', $this->pointScheme, $this->pointDomain, $postId); + } + + private function getAvatarUrlByLogin(string $login, string $size): string + { + if (!in_array($size, [User::AVATAR_SIZE_SMALL, User::AVATAR_SIZE_MEDIUM, User::AVATAR_SIZE_LARGE], true)) { + throw new \InvalidArgumentException('Avatar size must be one of restricted variants. See User::AVATAR_SIZE_* constants.'); + } + + return sprintf('%s://%s/avatar/%s/%s', $this->pointScheme, $this->pointDomain, urlencode($login), $size); + } +}