s1syphos / kirby-device
Comprehensive user agent & device detection for Kirby
Installs: 11
Dependents: 0
Suggesters: 0
Security: 0
Stars: 12
Watchers: 2
Forks: 0
Open Issues: 0
Type:kirby-plugin
Requires
- doctrine/cache: ^1.7
- piwik/device-detector: ^3.10
This package is auto-updated.
Last update: 2021-12-19 04:11:50 UTC
README
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
- 1. Main features
- 2. Getting started
- 3. Configuration
- 4. Available methods
- 5. Examples
- 6. Credits / License
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
- operating systems
- browsers
- browser engines
- libraries (eg cURL, Perl, Wget, ..)
- media players
- personal information managers (PIMs)
- feed readers
- brands & devices
- .. and of course: bots
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
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 :)