Server IP : 170.150.155.74 / Your IP : 3.145.45.174 Web Server : Apache/2.4.53 (Debian) System : Linux b22bf132354b 5.4.0-162-generic #179-Ubuntu SMP Mon Aug 14 08:51:31 UTC 2023 x86_64 User : www-data ( 33) PHP Version : 7.4.29 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : OFF | Perl : ON | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/html/wp-content/themes/neve/inc/views/inline/ |
Upload File : |
<?php /** * Author: Andrei Baicus <andrei@themeisle.com> * Created on: 29/08/2018 * * @package Neve\Views\Inline */ namespace Neve\Views\Inline; /** * Class Base_Inline * * @deprecated Functionality replaced with the subscriber mechanism, we keep it only for compatibility with the pro version. * @package Neve\Views\Inline */ abstract class Base_Inline { /** * Mobile style (default). * * @var array */ private $style = array( 'mobile' => '', 'tablet' => '', 'desktop' => '', ); /** * Base_Inline constructor. */ final public function __construct() { $this->init(); } /** * Do all actions necessary. * * @return mixed */ abstract public function init(); /** * Add single style. * * @param array $styles styles. * @param string $selectors css selectors. * @param string $media_query media query. */ final protected function add_style( $styles, $selectors, $media_query = 'mobile' ) { if ( ! in_array( $media_query, array( 'mobile', 'tablet', 'desktop' ), true ) ) { return; } if ( empty( $styles ) || empty( $selectors ) ) { return; } $use_style = false; foreach ( $styles as $style ) { /* Allow 0 values through, but don't allow empty style or undefined. */ if ( ! isset( $style['value'] ) || ( empty( $style['value'] ) && ( $style['value'] !== 0 && $style['value'] !== '0' ) ) ) { continue; } $use_style = true; } if ( $use_style === false ) { return; } $css = $selectors . '{'; foreach ( $styles as $style ) { if ( isset( $style['suffix'] ) && is_array( $style['suffix'] ) ) { $style['suffix'] = $style['suffix'][ $media_query ]; } $css .= $this->add_styles( $style ); } $css .= '}'; $this->style[ $media_query ] .= $css; } /** * Add responsive style. * * @param array $styles styles. * @param string $selectors css selectors. */ final protected function add_responsive_style( $styles, $selectors ) { $media_queries = array( 'mobile', 'tablet', 'desktop' ); foreach ( $media_queries as $media_query ) { $settings = $styles; foreach ( $settings as $index => $setting ) { if ( ! isset( $setting['value'] ) || ! isset( $setting['value'][ $media_query ] ) ) { continue; } $settings[ $index ]['value'] = $setting['value'][ $media_query ]; } $this->add_style( $settings, $selectors, $media_query ); } } /** * Add color. * * Example parameters: * array( * 'border-top-color-desktop' => array( * 'css_prop' => 'border-top-color', * 'selectors' => '#nv-primary-navigation .sub-menu', * 'media-query' => 'desktop', * ) * ), $color ); * * @param array $args parameters. * @param string $value value. */ final protected function add_color( $args, $value ) { $default = array( 'selectors' => '', 'css_prop' => '', 'media_query' => 'mobile', 'value' => $value ? $value : null, 'suffix' => '', 'prefix' => '', ); foreach ( $args as $style ) { $style = wp_parse_args( $style, $default ); $setup = array( array( 'css_prop' => esc_attr( $style['css_prop'] ), 'value' => esc_attr( $style['prefix'] . $value ), 'suffix' => esc_attr( $style['suffix'] ), ), ); $this->add_style( $setup, $style['selectors'], $style['media_query'] ); } } /** * Add styles. * * @param array $style [css_prop, value]. * * @return string */ private function add_styles( $style ) { if ( ! isset( $style['css_prop'] ) || ! isset( $style['value'] ) || ( empty( $style['value'] ) && $style['value'] !== 0 && $style['value'] !== '0' ) ) { return ''; } $suffix = isset( $style['suffix'] ) ? $style['suffix'] : ''; if ( in_array( $style['css_prop'], array( 'font-family', 'content', ), true ) && ! in_array( $style['value'], neve_get_standard_fonts(), true ) ) { return esc_attr( $style['css_prop'] ) . ':"' . esc_attr( $style['value'] ) . '"' . esc_attr( $suffix ) . ';'; } return esc_attr( $style['css_prop'] ) . ':' . esc_attr( $style['value'] ) . esc_attr( $suffix ) . ';'; } /** * Get the style. * * @param string $context ['mobile','desktop','tablet']. * * @return string */ final public function get_style( $context ) { $allowed_contexts = array( 'mobile', 'desktop', 'tablet' ); if ( ! in_array( $context, $allowed_contexts, true ) ) { return ''; } if ( ! array_key_exists( $context, $this->style ) ) { return ''; } return $this->style[ $context ]; } }