public function getIndex() { $browser = new Browser(); $os = new Os(); $isMac = $os->getName() === Os::OSX; // We going to be optimistic and assume that browsers support pasting unless we know they don't $browserName = $browser->getName(); $crapBrowsers = []; $canPaste = !$os->isMobile() && !in_array($browserName, $crapBrowsers); return View::make('uploader.index', ['isMac' => $isMac, 'canPaste' => $canPaste]); }
/** * @param string $event * @param array $properties * * @internal param array $data */ public function track($event, $properties = []) { $browserInfo = new Browser(); $osInfo = new Os(); $deviceInfo = new Device(); $browserVersion = trim(str_replace('unknown', '', $browserInfo->getName() . ' ' . $browserInfo->getVersion())); $osVersion = trim(str_replace('unknown', '', $osInfo->getName() . ' ' . $osInfo->getVersion())); $hardwareVersion = trim(str_replace('unknown', '', $deviceInfo->getName())); $data = ['Url' => $this->request->getUri(), 'Operating System' => $osVersion, 'Hardware' => $hardwareVersion, '$browser' => $browserVersion, 'Referrer' => $this->request->header('referer'), '$referring_domain' => $this->request->header('referer') ? parse_url($this->request->header('referer'))['host'] : null, 'ip' => $this->request->ip()]; $data = array_filter($data); $properties = array_filter($properties); if (!array_key_exists('$browser', $data) && $browserInfo->isRobot()) { $data['$browser'] = 'Robot'; } parent::track($event, $data + $properties); }
<?php require_once 'vendor/autoload.php'; use Sinergi\BrowserDetector\Os; $os = new Os(); $os_name = $os->getName(); if (!in_array($os_name, array(Os::ANDROID, Os::WINDOWS_PHONE, Os::WINDOWS))) { // тут записываем, что пользователь ушел в аппстор // и редиректим echo "Ты - " . $os_name . ", и мы отправим тебя в Аппстор!"; die; } // тут запоминаем, что этот телефон - не айфон, // и показываем сообщение: // "извините, напишем вам, когда будет для вашей платформы" $page_styles = array(); require_once 'header.php'; ?> <header class="jumbotron header--full-h"> <div class="container"> <div class="<?php echo cl('data'); ?> "> <p>К сожалению, приложение DOC+ пока доступно только <a href="#" style="color:#FFF; text-decoration:underline;">для iPhone</a>.</p> <p style="font-size:20px; font-weight:400;">Мы обязательно напишем вам, когда появится приложение для <?php echo $os_name === Os::ANDROID ? 'Android' : 'других смартфонов'; ?> .</p> </div> </div>
/** * * @param Model\OperatingSystem $os * @param BrowserDetector\Os $osRaw */ private function hydrateOperatingSystem(Model\OperatingSystem $os, BrowserDetector\Os $osRaw) { $os->setName($this->getRealResult($osRaw->getName())); $os->getVersion()->setComplete($this->getRealResult($osRaw->getVersion())); }