Source of file MobileDetectExtension.php
Size: 2,464 Bytes - Last Modified: 2021-12-24T06:33:51+00:00
/var/www/docs.ssmods.com/process/src/app/src/Extensions/MobileDetectExtension.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 | <?php namespace XD\Basic\Extensions; use Mobile_Detect; use SilverStripe\CMS\Controllers\ContentController; use SilverStripe\Control\Director; use SilverStripe\Core\Extension; use SilverStripe\View\Requirements; /** * Class MobileDetectExtension * * @property MobileDetectExtension|ContentController $owner */ class MobileDetectExtension extends Extension { protected $isMobile = false; protected $isPhone = false; protected $isTablet = false; /** * Add the detection to the ContentController * This way the methods get exposed to controllers extended on the ContentController */ public function onBeforeInit() { $detect = new Mobile_Detect(); $this->setIsMobile($detect->isMobile()); $this->setIsPhone($detect->isMobile() && !$detect->isTablet()); $this->setIsTablet($detect->isTablet()); Requirements::insertHeadTags(sprintf( "<script>window.isMobile=%s;window.isTablet=%s;window.isPhone=%s;</script>", (int)$this->getIsMobile(), (int)$this->getIsTablet(), (int)$this->getIsPhone() ), 'Mobile_Detect'); } /** * Check if the user is on a mobile device * * @return boolean */ public function getIsMobile() { return $this->isMobile; } /** * Check if the user is on a phone * * @return boolean */ public function getIsPhone() { return $this->isPhone; } /** * Check if the user is on a tablet device * * @return boolean */ public function getIsTablet() { return $this->isTablet; } /** * Return true for all environments except live * * @return bool */ public function getIsDev() { return !Director::isLive(); } /** * Set if the controller is requested by a mobile device * * @param boolean $isMobile */ public function setIsMobile($isMobile = false) { $this->isMobile = $isMobile; } /** * Set if the controller is requested by a phone * * @param $isPhone */ public function setIsPhone($isPhone = false) { $this->isPhone = $isPhone; } /** * Set if the controller is requested by a tablet * * @param $isTablet */ public function setIsTablet($isTablet = false) { $this->isTablet = $isTablet; } } |