Code Monkey home page Code Monkey logo

kirby-device's Introduction

Kirby Device

Release License Issues

This plugin detects devices (such as desktop, tablet, mobile, tv, cars, console, ..), clients (browsers, feed readers, media players, PIMs, ..) as well as operating systems, brands and models.

Table of contents

Main features

kirby-device provides the device() function for parsing information from the target's user agent (UA) - the black-magic voodoo science of regular expressions then enables you to identify

Getting started

Use one of the following methods to install & use kirby-device:

Git submodule

If you know your way around Git, you can download this plugin as a submodule:

git submodule add https://github.com/S1SYPHOS/kirby-device.git site/plugins/kirby-device

Composer

composer require S1SYPHOS/kirby-device:dev-composer

Clone or download

  1. Clone or download this repository.
  2. Unzip / Move the folder to site/plugins.

Activate the plugin

Activate the plugin with the following line in your config.php:

c::set('plugin.kirby-device', true);

Configuration

Change kirby-device options to suit your needs:

Option Type Default Description
plugin.kirby-device.truncate-version String minor Defines the browser build or version format according to the semantic versioning specification (allowed values are major, minor, patch as well as build & none).
plugin.kirby-device.enable-filecache Boolean true Optionally enables / disables filecache.

Available methods

These methods are available to meet your device detection requirements:

// Configuration Methods
setCache()
setYamlParser()
discardBotInformation()
skipBotDetection()

// General Device Type Methods
isBot()
isMobile()
isDesktop()
isTouchEnabled() // win8 tablets only

// General Client Type Methods
getBot() // array
getClient() // array | optionally string, eg getClient('version'))
getOs() // array | optionally string, eg getOs('version')
getDevice()
getDeviceName()
getBrand()
getBrandName()
getModel()
getUserAgent()

// Specific Device Type Methods
isSmartphone()
isFeaturePhone()
isTablet()
isPhablet()
isConsole()
isPortableMediaPlayer()
isCarBrowser()
isTV()
isSmartDisplay()
isCamera()

// Specific Client Type Methods
isBrowser()
isFeedReader()
isMobileApp()
isPIM()
isLibrary()
isMediaPlayer()

Unless stated, all getSomething() methods return strings and all isSomething() methods return booleans.

Examples

Check for mobile environment

if (device()->isMobile()) {
  // Your code here.
}

Check for tablet device

if (device()->isTablet()) {
  // Your code here.
}

Only show code on desktop or tablet device

if(device()->isDesktop() || device()->isTablet()) {
    // Your desktop & tablet code here.
}

.. and much more!

// Get mobile device information
$brand = device()->getBrandName(); // eg 'Apple'
$model = device()->getModel(); // eg 'iPhone'

Feel free to write your own methods:

// Custom function detecting Chrome browser
function isChrome() {
  return device()->getClient('name') == 'Chrome' ? true : false;
}

For more information, see the project's repo or check out its demo page.

Credits / License

kirby-device is based on Matomo's DeviceDetector and was inspired by Sonja Broda's Kirby plugin kirby-mobile-detect (an implementation of Şerban Ghiţă's Mobile-Detect). It is licensed under the MIT License, but using Kirby in production requires you to buy a license. Are you ready for the next step?

Special Thanks

I'd like to thank everybody that's making great software - you people are awesome. Also I'm always thankful for feedback and bug reports :)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.