File "class-useragent.php"
Full path: /home/webcknlt/admissiontell.com/wp-content/plugins/vibes/includes/system/class-useragent.php
File
size: 8.98 B (8.98 KB bytes)
MIME-type: text/x-php
Charset: utf-8
Download Open Edit Advanced Editor &nnbsp; Back
<?php
/**
* UserAgent handling
*
* Handles all UserAgent operations and detection (via Device Detector).
*
* @package System
* @author Pierre Lannoy <https://pierre.lannoy.fr/>.
* @since 1.0.0
*/
namespace Vibes\System;
use Vibes\System\Favicon;
use Feather;
/**
* Define the UserAgent functionality.
*
* Handles all UserAgent operations and detection.
*
* @package System
* @author Pierre Lannoy <https://pierre.lannoy.fr/>.
* @since 1.0.0
*/
class UserAgent {
/**
* Initialize a device and return it.
*
* @param string $ua Optional. The user-agent string.
* @return object The device object.
* @since 1.0.0
*/
public static function get( $ua = '' ) {
if ( class_exists( 'PODeviceDetector\API\Device' ) && '-' !== $ua ) {
return \PODeviceDetector\API\Device::get( $ua );
} else {
return new static();
}
}
/**
* Get the url.
*
* @param array $fields Optional. The args to add.
* @param boolean $escape Optional. Forces url escaping.
* @return string The url.
* @since 1.0.0
*/
public static function get_analytics_url( $fields = [], $escape = true ) {
if ( ! class_exists( 'PODeviceDetector\API\Device' ) ) {
return '';
}
$params = [];
foreach ( $fields as $key => $arg ) {
$params[ $key ] = $arg;
}
$url = admin_url( 'admin.php?page=podd-viewer' );
foreach ( $params as $key => $arg ) {
if ( '' !== $arg ) {
$url .= '&' . $key . '=' . rawurlencode( $arg );
}
}
$url = str_replace( '"', '\'\'', $url );
if ( $escape ) {
$url = esc_url( $url );
}
return $url;
}
/**
* Initialize the class and set its properties.
*
* @since 1.0.0
*/
public function __construct() {
$this->class_is_mobile = wp_is_mobile();
$this->class_is_desktop = ! $this->class_is_mobile;
}
/**
* Get the brand icon base64 encoded.
*
* @return string The icon base64 encoded.
* @since 1.0.0
*/
public function brand_icon_base64() {
return Feather\Icons::get_base64( 'x', 'none', '#73879C' );
}
/**
* Get the brand icon html image tag.
*
* @return string The icon, as html image, ready to print.
* @since 1.0.0
*/
public function brand_icon_image() {
return '<img class="podd-brand-icon podd-brand-icon-none" style="width:16px;vertical-align:top;" src="' . $this->brand_icon_base64() . '" />';
}
/**
* Get the os icon base64 encoded.
*
* @return string The icon base64 encoded.
* @since 1.0.0
*/
public function os_icon_base64() {
return Feather\Icons::get_base64( 'x', 'none', '#73879C' );
}
/**
* Get the os icon html image tag.
*
* @return string The icon, as html image, ready to print.
* @since 1.0.0
*/
public function os_icon_image() {
return '<img class="podd-os-icon podd-os-icon-none" style="width:16px;vertical-align:top;" src="' . $this->os_icon_base64() . '" />';
}
/**
* Get the browser icon base64 encoded.
*
* @return string The icon base64 encoded.
* @since 1.0.0
*/
public function browser_icon_base64() {
return Feather\Icons::get_base64( 'x', 'none', '#73879C' );
}
/**
* Get the browser icon html image tag.
*
* @return string The icon, as html image, ready to print.
* @since 1.0.0
*/
public function browser_icon_image() {
return '<img class="podd-browser-icon podd-browser-icon-none" style="width:16px;vertical-align:top;" src="' . $this->browser_icon_base64() . '" />';
}
/**
* Get the bot icon base64 encoded.
*
* @return string The icon base64 encoded.
* @since 1.0.0
*/
public function bot_icon_base64() {
return Favicon::get_base64();
}
/**
* Get the bot icon html image tag.
*
* @return string The icon, as html image, ready to print.
* @since 1.0.0
*/
public function bot_icon_image() {
return '<img class="podd-bot-icon podd-bot-icon-none" style="width:16px;vertical-align:top;" src="' . $this->bot_icon_base64() . '" />';
}
/**
* @var boolean True if it's a bot, false otherwise.
* @since 1.0.0
*/
public $class_is_bot = false;
/**
* @var boolean True if it's a desktop, false otherwise.
* @since 1.0.0
*/
public $class_is_desktop = false;
/**
* @var boolean True if it's a mobile, false otherwise.
* @since 1.0.0
*/
public $class_is_mobile = false;
/**
* @var string The name of the class translated if translation exists, else in english.
* @since 1.0.0
*/
public $class_full_type = '';
/**
* @var boolean True if it's a smartphone, false otherwise.
* @since 1.0.0
*/
public $device_is_smartphone = false;
/**
* @var boolean True if it's a featurephone, false otherwise.
* @since 1.0.0
*/
public $device_is_featurephone = false;
/**
* @var boolean True if it's a tablet, false otherwise.
* @since 1.0.0
*/
public $device_is_tablet = false;
/**
* @var boolean True if it's a phablet, false otherwise.
* @since 1.0.0
*/
public $device_is_phablet = false;
/**
* @var boolean True if it's a console, false otherwise.
* @since 1.0.0
*/
public $device_is_console = false;
/**
* @var boolean True if it's a portable media player, false otherwise.
* @since 1.0.0
*/
public $device_is_portable_media_player = false;
/**
* @var boolean True if it's a car browser, false otherwise.
* @since 1.0.0
*/
public $device_is_car_browser = false;
/**
* @var boolean True if it's a tv, false otherwise.
* @since 1.0.0
*/
public $device_is_tv = false;
/**
* @var boolean True if it's a smart display, false otherwise.
* @since 1.0.0
*/
public $device_is_smart_display = false;
/**
* @var boolean True if it's a smart speaker, false otherwise.
* @since 1.0.0
*/
public $device_is_smart_speaker = false;
/**
* @var boolean True if it's a wearable, false otherwise.
* @since 1.0.0
*/
public $device_is_wearable = false;
/**
* @var boolean True if it's a peripheral, false otherwise.
* @since 1.0.0
*/
public $device_is_peripheral = false;
/**
* @var boolean True if it's a camera, false otherwise.
* @since 1.0.0
*/
public $device_is_camera = false;
/**
* @var string The name of the device type translated if translation exists, else in english.
* @since 1.0.0
*/
public $device_full_type = '';
/**
* @var boolean True if it's a browser, false otherwise.
* @since 1.0.0
*/
public $client_is_browser = false;
/**
* @var boolean True if it's a feed reader, false otherwise.
* @since 1.0.0
*/
public $client_is_feed_reader = false;
/**
* @var boolean True if it's a mobile app, false otherwise.
* @since 1.0.0
*/
public $client_is_mobile_app = false;
/**
* @var boolean True if it's a PIM, false otherwise.
* @since 1.0.0
*/
public $client_is_pim = false;
/**
* @var boolean True if it's a library, false otherwise.
* @since 1.0.0
*/
public $client_is_library = false;
/**
* @var boolean True if it's a media player, false otherwise.
* @since 1.0.0
*/
public $client_is_media_player = false;
/**
* @var string The name of the client type translated if translation exists, else in english.
* @since 1.0.0
*/
public $client_full_type = '';
/**
* @var boolean True if device has touch enabled, false otherwise.
* @since 1.0.0
*/
public $has_touch_enabled = false;
/**
* @var string The OS name.
* @since 1.0.0
*/
public $os_name = '';
/**
* @var string The OS short name.
* @since 1.0.0
*/
public $os_short_name = '';
/**
* @var string The OS version.
* @since 1.0.0
*/
public $os_version = '';
/**
* @var string The OS platform.
* @since 1.0.0
*/
public $os_platform = '';
/**
* @var string The client type.
* @since 1.0.0
*/
public $client_type = '';
/**
* @var string The client name.
* @since 1.0.0
*/
public $client_name = '';
/**
* @var string The client short name.
* @since 1.0.0
*/
public $client_short_name = '';
/**
* @var string The client version.
* @since 1.0.0
*/
public $client_version = '';
/**
* @var string The client engine.
* @since 1.0.0
*/
public $client_engine = '';
/**
* @var string The client engine version.
* @since 1.0.0
*/
public $client_engine_version = '';
/**
* @var string The brand name.
* @since 1.0.0
*/
public $brand_name = '';
/**
* @var string The brand short name.
* @since 1.0.0
*/
public $brand_short_name = '';
/**
* @var string The model name.
* @since 1.0.0
*/
public $model_name = '';
/**
* @var string The bot name.
* @since 1.0.0
*/
public $bot_name = '';
/**
* @var string The bot category.
* @since 1.0.0
*/
public $bot_category = '';
/**
* @var string The bot category translated if translation exists, else in english.
* @since 1.0.0
*/
public $bot_full_category = '';
/**
* @var string The bot url.
* @since 1.0.0
*/
public $bot_url = '';
/**
* @var string The bot producer name.
* @since 1.0.0
*/
public $bot_producer_name = '';
/**
* @var string The bot producer url.
* @since 1.0.0
*/
public $bot_producer_url = '';
}