diff --git a/composer.json b/composer.json index 4b6d54f..0fd29a8 100644 --- a/composer.json +++ b/composer.json @@ -6,5 +6,8 @@ "psr-4": { "UserFrosting\\Sprinkle\\UFTweaks\\": "src/" } + }, + "require": { + "mobiledetect/mobiledetectlib": "^3.74" } } \ No newline at end of file diff --git a/src/ServicesProvider/ServicesProvider.php b/src/ServicesProvider/ServicesProvider.php index 027de87..7a59ef3 100644 --- a/src/ServicesProvider/ServicesProvider.php +++ b/src/ServicesProvider/ServicesProvider.php @@ -17,6 +17,7 @@ use Psr\Http\Message\ResponseInterface as Response; use Psr\Http\Message\ServerRequestInterface as Request; use UserFrosting\Sprinkle\Core\Log\MixedFormatter; use UserFrosting\Sprinkle\UFTweaks\Twig\HasRoleExtension; +use UserFrosting\Sprinkle\UFTweaks\Twig\MobileDetectExtension; /** @@ -162,6 +163,7 @@ class ServicesProvider $twig = $view->getEnvironment(); $twig->addExtension(new HasRoleExtension($c)); + $twig->addExtension(new MobileDetectExtension($c)); return $view; }); diff --git a/src/Twig/MobileDetectExtension.php b/src/Twig/MobileDetectExtension.php new file mode 100644 index 0000000..0904c79 --- /dev/null +++ b/src/Twig/MobileDetectExtension.php @@ -0,0 +1,60 @@ +isMobile(); + }), + new TwigFunction('isTablet', function () { + $detect = new MobileDetect(); + return $detect->isTablet(); + }), + new TwigFunction('isDesktop', function () { + $detect = new MobileDetect(); + return !$detect->isTablet() && !$detect->isMobile(); + }), + ]; + } + + public function getGlobals() + { + return []; + } +}