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);
 }
Beispiel #3
0
<?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;">для&nbsp;iPhone</a>.</p> 
            <p style="font-size:20px; font-weight:400;">Мы обязательно напишем вам, когда появится приложение для&nbsp;<?php 
echo $os_name === Os::ANDROID ? 'Android' : 'других смартфонов';
?>
.</p>
        </div>
    </div>
 /**
  *
  * @param Model\UserAgent        $device
  * @param BrowserDetector\Os     $osRaw
  * @param BrowserDetector\Device $deviceRaw
  */
 private function hydrateDevice(Model\Device $device, BrowserDetector\Os $osRaw, BrowserDetector\Device $deviceRaw)
 {
     $device->setModel($this->getRealResult($deviceRaw->getName(), 'device', 'model'));
     if ($osRaw->isMobile() === true) {
         $device->setIsMobile(true);
     }
 }