<?php // No direct access, please if ( ! defined( 'ABSPATH' ) ) exit; if ( ! class_exists( 'GeneratePress_Backgrounds_CSS' ) ) { class GeneratePress_Backgrounds_CSS { protected $_selector = ''; protected $_selector_output = ''; protected $_css = ''; protected $_output = ''; public function set_selector( $selector = '' ) { // Render the css in the output string everytime the selector changes if ( $this->_selector !== '' ) { $this->add_selector_rules_to_output(); } $this->_selector = $selector; return $this; } public function add_property( $property, $value, $url = '' ) { // If we don't have a value or our value is the same as our og default, bail if ( empty( $value ) ) { return false; } // Set up our background image URL param if needed $url_start = ( '' !== $url ) ? "url('" : ""; $url_end = ( '' !== $url ) ? "')" : ""; $this->_css .= $property . ':' . $url_start . $value . $url_end . ';'; return $this; } private function add_selector_rules_to_output() { if ( ! empty( $this->_css ) ) { $this->_selector_output = $this->_selector; $selector_output = sprintf( '%1$s{%2$s}', $this->_selector_output, $this->_css ); $this->_output .= $selector_output; // Reset the css $this->_css = ''; } return $this; } public function css_output() { // Add current selector's rules to output $this->add_selector_rules_to_output(); // Output minified css return $this->_output; } } }