<?php
if ( !class_exists( 'Bizcor_CSS' ) ) :
class Bizcor_CSS {
protected $_selector = '';
protected $_selector_output = '';
protected $_css = '';
protected $_output = '';
protected $_media_query = null;
protected $_media_query_output = '';
public function set_selector( $selector = '' ) {
if( $this->_selector !== '' ){
$this->add_selector_rules_to_output();
}
$this->_selector = $selector;
return $this;
}
public function add_property( $property, $value, $og_default = false, $unit = false ) {
if ( $unit && '' !== $unit ) {
$value = $value . $unit;
if ( '' !== $og_default ) {
$og_default = $og_default . $unit;
}
}
if ( empty( $value ) || $og_default == $value )
return false;
$this->_css .= $property . ':' . $value . ';';
return $this;
}
public function start_media_query( $value ) {
$this->add_selector_rules_to_output();
if ( ! empty( $this->_media_query ) ) {
$this->add_media_query_rules_to_output();
}
$this->_media_query = $value;
return $this;
}
public function stop_media_query() {
return $this->start_media_query( null );
}
private function add_media_query_rules_to_output() {
if( !empty( $this->_media_query_output ) ) {
$this->_output .= sprintf( '@media %1$s{%2$s}', $this->_media_query, $this->_media_query_output );
$this->_media_query_output = '';
}
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 );
if ( ! empty( $this->_media_query ) ) {
$this->_media_query_output .= $selector_output;
$this->_css = '';
} else {
$this->_output .= $selector_output;
}
$this->_css = '';
}
return $this;
}
public function css_output()
{
$this->add_selector_rules_to_output();
return $this->_output;
}
}
endif;