You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
1.5 KiB
PHP
49 lines
1.5 KiB
PHP
<?php
|
|
if ( ! defined( 'ABSPATH' ) ) {
|
|
exit;
|
|
}
|
|
|
|
class AWSM_Job_Openings_UI_Builder {
|
|
private static $instance = null;
|
|
|
|
public static function init() {
|
|
if ( is_null( self::$instance ) ) {
|
|
self::$instance = new self();
|
|
}
|
|
return self::$instance;
|
|
}
|
|
|
|
public static function generate_css( $styles, $wrap_tag = true ) {
|
|
$css = '';
|
|
if ( ! empty( $styles ) ) {
|
|
foreach ( $styles as $attrs ) {
|
|
if ( ! isset( $attrs['selector'] ) && ! isset( $attrs['declaration'] ) && ! isset( $attrs['media_query'] ) ) {
|
|
continue;
|
|
}
|
|
|
|
if ( isset( $attrs['selector'] ) && ! empty( $attrs['selector'] ) && isset( $attrs['declaration'] ) && is_array( $attrs['declaration'] ) ) {
|
|
$selector = $attrs['selector'];
|
|
$declaration_arr = $attrs['declaration'];
|
|
|
|
$declaration = '';
|
|
foreach ( $declaration_arr as $property => $value ) {
|
|
$declaration .= sprintf( '%1$s: %2$s;', $property, $value );
|
|
}
|
|
$css .= wp_strip_all_tags( sprintf( '%1$s { %2$s } ', $selector, $declaration ) );
|
|
} else {
|
|
$media_query = isset( $attrs['media_query'] ) ? $attrs['media_query'] : '';
|
|
if ( ! empty( $media_query ) && isset( $attrs['css'] ) && is_array( $attrs['css'] ) ) {
|
|
$css .= sprintf( '%1$s { %2$s } ', wp_strip_all_tags( $media_query ), self::generate_css( $attrs['css'], false ) );
|
|
}
|
|
}
|
|
}
|
|
|
|
$css = trim( $css );
|
|
if ( ! empty( $css ) && $wrap_tag ) {
|
|
$css = sprintf( '<style>%s</style>', $css );
|
|
}
|
|
}
|
|
return $css;
|
|
}
|
|
}
|