%PDF- %PDF-
Direktori : /proc/1857783/root/var/www/cwg/wp-content/plugins/wp-grid-builder/includes/ |
Current File : //proc/1857783/root/var/www/cwg/wp-content/plugins/wp-grid-builder/includes/class-icons.php |
<?php /** * Icons * * @package WP Grid Builder * @author Loïc Blascos * @copyright 2019-2021 Loïc Blascos */ namespace WP_Grid_Builder\Includes; // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) { exit; } /** * Hook into svg icons * * @class WP_Grid_Builder\Includes\Icons * @since 1.0.0 */ class Icons { /** * Holds registered icons * * @since 1.0.0 * @var array */ private static $icons; /** * Defaults icons. * * @since 1.0.0 * @access public */ private static function defaults() { return [ 'wpgb' => [ 'path' => WPGB_PATH . 'frontend/assets/svg/', 'url' => WPGB_URL . 'frontend/assets/svg/', 'sprite' => WPGB_URL . 'frontend/assets/svg/sprite.svg', 'icons' => [ 'animals/bug', 'animals/bear', 'animals/cat', 'animals/chicken', 'animals/crab', 'animals/dog', 'animals/octopus', 'animals/panda', 'animals/paw', 'animals/rat', 'clothes/cap', 'clothes/corset', 'clothes/dress', 'clothes/shirt', 'clothes/shoe', 'clothes/slacks', 'clothes/sock', 'clothes/tie', 'clothes/tshirt', 'clothes/underwear', 'social-media/behance', 'social-media/blogger', 'social-media/buffer', 'social-media/dribbble', 'social-media/dropbox', 'social-media/email', 'social-media/evernote', 'social-media/facebook', 'social-media/flickr', 'social-media/github', 'social-media/google-plus', 'social-media/instagram', 'social-media/linkedin', 'social-media/messenger', 'social-media/paypal', 'social-media/pinterest', 'social-media/reddit', 'social-media/rss', 'social-media/skype', 'social-media/slack', 'social-media/soundcloud', 'social-media/spotify', 'social-media/tumblr', 'social-media/twitter', 'social-media/vimeo', 'social-media/vine', 'social-media/vkontakte', 'social-media/whatsapp', 'social-media/wordpress', 'social-media/yelp', 'social-media/youtube', 'business/bag-1', 'business/bag-2', 'business/bag-3', 'business/bag-add', 'business/basket-1', 'business/basket-2', 'business/basket-add', 'business/cart-1', 'business/cart-2', 'business/cart-3', 'business/cart-add', 'business/coupon', 'business/credit-card', 'business/currency-dollar', 'business/currency-euro', 'business/currency-pound', 'business/currency-yen', 'business/delivery-fast', 'business/discount-1', 'business/discount-2', 'business/gift', 'business/money-coins', 'business/piggy-bank', 'business/shop', 'business/tag-content', 'business/tag-cut', 'business/wallet-1', 'business/wallet-2', 'technology/android', 'technology/battery-level', 'technology/controller', 'technology/cursor', 'technology/desktop-screen', 'technology/disk-reader', 'technology/engine-start', 'technology/headphones', 'technology/keyboard', 'technology/laptop', 'technology/mobile', 'technology/mouse', 'technology/printer', 'technology/sim-card', 'technology/tv-old', 'technology/watch-circle', 'technology/watch', 'technology/wifi', 'design/box', 'design/code', 'design/drop', 'design/image-1', 'design/image-2', 'design/layers', 'design/oval-shape', 'design/paint-brush', 'design/paint-bucket-1', 'design/paint-bucket-2', 'design/paint-roller', 'design/palette', 'design/polygon-shape', 'design/rectangle-shape', 'design/ruler', 'design/triangle-shape', 'files/file-download', 'files/file-upload', 'files/folder-1', 'files/folder-2', 'files/single-content', 'files/single-copies', 'files/single-copy', 'user-interface/add-circle-glyph', 'user-interface/add-circle', 'user-interface/add-outline', 'user-interface/add-square-glyph', 'user-interface/add-square', 'user-interface/add', 'user-interface/calendar-1', 'user-interface/calendar-2', 'user-interface/calendar-3', 'user-interface/calendar-4', 'user-interface/calendar-5-glyph', 'user-interface/clip-1', 'user-interface/clip-2', 'user-interface/clock-1', 'user-interface/clock-2', 'user-interface/clock-3-glyph', 'user-interface/comment-1-glyph', 'user-interface/comment-1', 'user-interface/comment-2-glyph', 'user-interface/comment-2', 'user-interface/comment-3-glyph', 'user-interface/comment-3', 'user-interface/comment-4-glyph', 'user-interface/comment-4', 'user-interface/comment-5-glyph', 'user-interface/comment-5', 'user-interface/cross-circle-glyph', 'user-interface/cross-circle', 'user-interface/cross-outline', 'user-interface/cross-square-glyph', 'user-interface/cross-square', 'user-interface/cross', 'user-interface/curved-next-glyph', 'user-interface/curved-next', 'user-interface/curved-previous-glyph', 'user-interface/curved-previous', 'user-interface/download-cloud', 'user-interface/download-square', 'user-interface/email', 'user-interface/filter-1-glyph', 'user-interface/filter-1', 'user-interface/filter-2-glyph', 'user-interface/filter-2', 'user-interface/heart-add-glyph', 'user-interface/heart-add', 'user-interface/heart-glyph', 'user-interface/heart-remove-glyph', 'user-interface/heart-remove', 'user-interface/heart', 'user-interface/link-1', 'user-interface/link-2', 'user-interface/link-3', 'user-interface/link-4', 'user-interface/link-5', 'user-interface/link-6', 'user-interface/link-7', 'user-interface/link-8', 'user-interface/padlock-close', 'user-interface/padlock-glyph', 'user-interface/padlock-open-glyph', 'user-interface/padlock-open', 'user-interface/quote-1-glyph', 'user-interface/quote-2', 'user-interface/quote-3-glyph', 'user-interface/settings-glyph', 'user-interface/settings', 'user-interface/share-1-glyph', 'user-interface/share-1', 'user-interface/share-2', 'user-interface/share-3', 'user-interface/star-add-glyph', 'user-interface/star-add', 'user-interface/star-glyph', 'user-interface/star-remove-glyph', 'user-interface/star-remove', 'user-interface/star', 'user-interface/upload-cloud', 'user-interface/zoom-1', 'user-interface/zoom-2', 'user-interface/zoom-3', 'user-interface/zoom-4', 'user-interface/zoom-in-1', 'user-interface/zoom-in-2', 'user-interface/zoom-in-3', 'user-interface/zoom-in-4', 'user-interface/zoom-out-1', 'user-interface/zoom-out-2', 'user-interface/zoom-out-3', 'user-interface/zoom-out-4', 'arrows/arrow-back', 'arrows/arrow-down', 'arrows/arrow-left', 'arrows/arrow-loop', 'arrows/arrow-right', 'arrows/arrow-up', 'arrows/enlarge-1', 'arrows/enlarge-2', 'arrows/enlarge-diagonal-1', 'arrows/enlarge-diagonal-2', 'arrows/enlarge-diagonal-3', 'arrows/enlarge-diagonal-4', 'arrows/tail-down', 'arrows/tail-left', 'arrows/tail-right', 'arrows/tail-up', 'emoticons/emoticon-puzzled', 'emoticons/emoticon-sad', 'emoticons/emoticon-smile', 'emoticons/emoticon-speechless', 'emoticons/finger-like-glyph', 'emoticons/finger-like', 'emoticons/finger-unlike-glyph', 'emoticons/finger-unlike', 'multimedia/action', 'multimedia/audio-mic', 'multimedia/button-play-1-glyph', 'multimedia/button-play-1', 'multimedia/button-play-2-glyph', 'multimedia/button-play-2', 'multimedia/button-play-3-glyph', 'multimedia/button-play-3', 'multimedia/camera', 'maps/bookmark', 'maps/compass', 'maps/flag-points', 'maps/flag', 'maps/gps', 'maps/map', 'maps/marker', 'maps/pin', 'home/air-conditioner', 'home/apartment', 'home/armchair', 'home/bath-tub', 'home/bed-2', 'home/bed-side', 'home/bed', 'home/bedroom', 'home/books', 'home/broom', 'home/cabinet', 'home/cactus', 'home/chair-2', 'home/chair', 'home/coat-hanger', 'home/coffee', 'home/cradle', 'home/crane', 'home/curtains', 'home/desk-drawer', 'home/desk', 'home/detached-property', 'home/door', 'home/drawer-2', 'home/drawer', 'home/escalator', 'home/fridge', 'home/furnished-property', 'home/gym', 'home/hanger-clothes', 'home/hanger', 'home/heater', 'home/iron', 'home/lamp-2', 'home/lamp-floor', 'home/lamp', 'home/library', 'home/lift', 'home/light-2', 'home/light', 'home/mixer', 'home/new-construction', 'home/oven', 'home/photo-frame', 'home/safe', 'home/shower', 'home/sink-wash', 'home/sink', 'home/smart-house', 'home/sofa', 'home/spray', 'home/stairs', 'home/storage-hanger', 'home/storage', 'home/switcher', 'home/table', 'home/telephone', 'home/terrace', 'home/time-alarm', 'home/time-clock', 'home/toilet-paper', 'home/toilet', 'home/trash', 'home/tv-stand', 'home/wardrobe', 'home/wash-2', 'home/wash', 'home/weight-scale', ], ], ]; } /** * Register icons * * @since 1.0.0 * @access public * * @return array */ public static function register() { // if icons already registered. if ( self::$icons ) { return; } $defaults = self::defaults(); self::$icons = (array) apply_filters( 'wp_grid_builder/icon_sets', $defaults ); } /** * Get icon(s) * * @since 1.0.0 * @access public * * @param string $key Icon key slug. * @return mixed */ public static function get( $key = '' ) { self::register(); // Get all icons. if ( empty( $key ) ) { return self::$icons; } $set = explode( '/', $key ); $set = reset( $set ); $icon = str_replace( $set . '/', '', $key ); if ( isset( self::$icons[ $set ]['icons'] ) && in_array( $icon, self::$icons[ $set ]['icons'], true ) ) { return [ 'path' => self::$icons[ $set ]['path'] . $icon . '.svg', 'url' => self::$icons[ $set ]['url'] . $icon . '.svg#' . $set . '-icon', ]; } return ''; } /** * Display icon * * @since 1.0.0 * @access public * * @param string $key Icon key slug. * @param boolean $svg_use Display icon as svg use. * @return mixed */ public static function display( $key = '', $svg_use = true ) { global $is_IE, $is_edge; $svg_use = $svg_use && ! $is_IE && ! $is_edge; $svg_use = apply_filters( 'wp_grid_builder/svg_use', $svg_use ); if ( empty( $key ) ) { return; } $icon = self::get( $key ); if ( empty( $icon ) ) { return; } if ( $svg_use ) { echo '<svg><use xlink:href="' . esc_url( $icon['url'] ) . '"/></svg>'; return; } if ( ! file_exists( $icon['path'] ) ) { return; } $icon = wp_normalize_path( $icon['path'] ); ob_start(); include $icon; $icon = ob_get_clean(); $icon = preg_replace( '#\s(id)="[^"]+"#', '', $icon ); echo $icon; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped } }