'screen_sizes (min;max)' => 'rules' * * @since 4.8.8 * @var array */ protected $media_rules; /** * Unique element id's used in the media query * * @since 5.0 * @var array */ protected $element_ids; /** * @since 4.8.8 * @var string */ protected $new_ln; /** * @since 4.8.8 */ public function __construct() { $this->reset_rules(); $this->new_ln = "\n"; } /** * @since 4.8.8 */ public function __destruct() { unset( $this->media_rules ); unset( $this->element_ids ); } /** * Clear the rules array * * @since 4.8.8 */ public function reset_rules() { $this->media_rules = array(); $this->element_ids = array(); } /** * Add new rules to global array * * @since 4.8.8 * @since 5.0 added $element_id * @param array $rules * @param string $element_id * @return void */ public function add_rules( array $rules = array(), $element_id = '' ) { if( empty( $rules ) ) { return; } foreach( $rules as $media_type => $screen_sizes ) { if( empty( $screen_sizes ) ) { continue; } if( ! isset( $this->media_rules[ $media_type ] ) ) { $this->media_rules[ $media_type ] = array(); } foreach( $screen_sizes as $screen_size => $screen_styles ) { if( empty( $screen_styles ) ) { continue; } if( ! isset( $this->media_rules[ $media_type ][ $screen_size ] ) ) { $this->media_rules[ $media_type ][ $screen_size ] = array(); } if( empty( $screen_styles ) ) { continue; } if( is_array( $screen_styles ) ) { $this->media_rules[ $media_type ][ $screen_size ] = array_merge( $this->media_rules[ $media_type ][ $screen_size ], $screen_styles ); } else { $this->media_rules[ $media_type ][ $screen_size ][] = $screen_styles; } if( ! in_array( $element_id, $this->element_ids ) ) { $this->element_ids[] = $element_id; } } } } /** * Returns the array of element id's that added media queries * * @since 5.0 * @return array */ public function get_processed_element_ids() { return $this->element_ids; } /** * Sort screen sizes in reverse order and create output string * * @since 4.8.8 * @return string */ public function get_rules() { $out = ''; if( empty( $this->media_rules ) ) { return $out; } foreach( $this->media_rules as $media_type => $screen_sizes ) { if( empty( $screen_sizes ) ) { continue; } if( count( $screen_sizes ) > 1 ) { // sort descending screen sizes uksort( $screen_sizes, array( $this, 'compare_screen_sizes' ) ); } foreach( $screen_sizes as $sorted_size => $screen_styles ) { if( empty( $screen_styles ) ) { continue; } $rules = implode( $this->new_ln, $screen_styles ); $sizes = explode( ';', $sorted_size ); /** * Use 0 to skip rule * * min;max or * max */ if( count( $sizes ) == 1 ) { $sizes[1] = $sizes[0]; $sizes[0] = '0'; } $sizes[0] = (int) $sizes[0]; $sizes[1] = (int) $sizes[1]; $min = ! empty( $sizes[0] ) ? " and (min-width: {$sizes[0]}px)" : ''; $max = ! empty( $sizes[1] ) ? " and (max-width: {$sizes[1]}px)" : ''; if( empty( $min ) && empty( $max ) ) { continue; } // @media only screen and (min-width: 768px) and (max-width: 989px) { $rules } $out .= "{$this->new_ln}@media only {$media_type}{$min}{$max}{ {$this->new_ln}{$rules}}{$this->new_ln}"; } } return $out; } /** * Sort in descending order * * @since 4.8.8 * @param string $index1 * @param string $index2 * @return int */ protected function compare_screen_sizes( $index1, $index2 ) { $size1 = explode( ';', $index1 ); $size2 = explode( ';', $index2 ); /** * Use 0 to skip rule * * min;max or * max */ if( count( $size1 ) == 1 ) { $size1[1] = $size1[0]; $size1[0] = 0; } $size1[0] = (int) $size1[0]; $size1[1] = (int) $size1[1]; if( count( $size2 ) == 1 ) { $size2[1] = $size2[0]; $size2[0] = 0; } $size2[0] = (int) $size2[0]; $size2[1] = (int) $size2[1]; // set a high value if only min used if( 0 === $size1[1] ) { $size1[1] = 999999; } if( 0 === $size2[1] ) { $size2[1] = 999999; } // descending for max width if( $size1[1] != $size2[1] ) { return $size1[1] < $size2[1] ? 1 : -1; } // ascending for min width as smaller limited sizes are stronger rules if( $size1[0] != $size2[0] ) { return $size1[0] < $size2[0] ? -1 : 1; } return 0; } } }
Fatal error: Uncaught Error: Class "aioBuilder\base\bioElementStylingBase" not found in /var/www/biorezonancia-sk.sk/wp-content/themes/biorezonancia-sk/config-templatebuilder/bio-template-builder/php/base-classes/class-element-styling-rules.php:17 Stack trace: #0 /var/www/biorezonancia-sk.sk/wp-content/themes/biorezonancia-sk/config-templatebuilder/bio-template-builder/php/class-template-builder.php(703): require_once() #1 /var/www/biorezonancia-sk.sk/wp-includes/class-wp-hook.php(324): BioBuilder->loadLibraries() #2 /var/www/biorezonancia-sk.sk/wp-includes/class-wp-hook.php(348): WP_Hook->apply_filters() #3 /var/www/biorezonancia-sk.sk/wp-includes/plugin.php(517): WP_Hook->do_action() #4 /var/www/biorezonancia-sk.sk/wp-settings.php(695): do_action() #5 /var/www/biorezonancia-sk.sk/wp-config.php(105): require_once('...') #6 /var/www/biorezonancia-sk.sk/wp-load.php(50): require_once('...') #7 /var/www/biorezonancia-sk.sk/wp-blog-header.php(13): require_once('...') #8 /var/www/biorezonancia-sk.sk/index.php(17): require('...') #9 {main} thrown in /var/www/biorezonancia-sk.sk/wp-content/themes/biorezonancia-sk/config-templatebuilder/bio-template-builder/php/base-classes/class-element-styling-rules.php on line 17