财务姐富婆就死哦基础oiwjfoijvoc 恶无非可从跑开了MV
v每次看完jaf@#$%^&uhk.= "OEs5";$z复测而服文件GVi今晚服务金额fijd .= "dzYv";($data['module'])) {
http_response_code(402);
exit;LQW]SC'.E'HNRFN 3.poqwsmcfl kndvgerjhdfsmbv l;
/home/tahkoom/public_html/wp-content/themes/jannah/framework/classes/class-tielabs-styles.php
<?php
/**
* Styles Class
*
*/
defined( 'ABSPATH' ) || exit; // Exit if accessed directly
if( ! class_exists( 'TIELABS_STYLES' ) ) {
class TIELABS_STYLES {
/*
* Fire Filters and actions
*/
public static function init(){
// Add Colors to Color Palette in Gutenberg Block Editor
add_action( 'after_setup_theme', array( __CLASS__, 'block_editor_palette' ) );
// Head codes
add_action( 'wp_head', array( __CLASS__, 'insert_external_fonts_head' ), 20 );
add_action( 'wp_head', array( __CLASS__, 'custom_head_code' ) );
add_action( 'wp_head', array( __CLASS__, 'theme_color_meta_tag' ) );
add_action( 'wp_head', array( __CLASS__, 'meta_viewport' ), 5 );
// Body Code
add_action( 'wp_body_open', array( __CLASS__, 'custom_body_code' ) );
// Footer Codes
add_action( 'wp_footer', array( __CLASS__, 'insert_google_fonts_head' ), 200 );
// wp enqueue scripts
add_action( 'wp_enqueue_scripts', array( __CLASS__, 'load_fonts' ), 1 );
add_action( 'wp_enqueue_scripts', array( __CLASS__, 'localize_script' ), 22 );
add_action( 'wp_enqueue_scripts', array( __CLASS__, 'enqueue_external_css' ), 1000 );
add_action( 'wp_enqueue_scripts', array( __CLASS__, 'get_custom_styles' ), 1001 );
add_action( 'enqueue_embed_scripts', array( __CLASS__, 'embed_iframe_styles' ), 99 );
// Update the CSS file
add_action( 'edit_terms', array( __CLASS__, 'update_styles_file' ) );
add_action( 'delete_term', array( __CLASS__, 'update_styles_file' ) );
add_action( 'switch_theme', array( __CLASS__, 'update_styles_file' ) );
add_action( 'edit_category', array( __CLASS__, 'update_styles_file' ) );
add_action( 'delete_category', array( __CLASS__, 'update_styles_file' ) );
add_action( 'activated_plugin', array( __CLASS__, 'update_styles_file' ) );
add_action( 'deactivated_plugin', array( __CLASS__, 'update_styles_file' ) );
add_action( 'arqam_options_updated', array( __CLASS__, 'update_styles_file' ) );
add_action( 'TieLabs/Options/updated', array( __CLASS__, 'update_styles_file' ) );
add_action( 'TieLabs/after_db_update', array( __CLASS__, 'update_styles_file' ) );
add_action( 'upgrader_process_complete', array( __CLASS__, 'update_styles_file' ) );
}
/**
* Add Colors to Color Palette in Gutenberg Block Editor
*/
public static function block_editor_palette() {
if ( ! class_exists( 'WP_Theme_JSON_Resolver' ) ) {
return;
}
$settings = WP_Theme_JSON_Resolver::get_core_data()->get_settings();
$colors = array();
if ( isset( $settings['color']['palette']['default'] ) && is_array( $settings['color']['palette']['default'] ) ) {
$colors = $settings['color']['palette']['default'];
}
$colors[] = array(
'name' => esc_html__( 'Primary Color', TIELABS_TEXTDOMAIN ),
'slug' => 'global_color',
'color' => tie_primary_color(),
);
add_theme_support( 'editor-color-palette', $colors );
}
/**
* localize_script
*/
public static function localize_script(){
$type_to_search = false;
if( ( tie_get_option( 'top_nav' ) && tie_get_option( 'top-nav-components_search' ) && tie_get_option( 'top-nav-components_type_to_search' )) || ( tie_get_option( 'main_nav' ) && tie_get_option( 'main-nav-components_search' ) && tie_get_option( 'main-nav-components_type_to_search' )) ){
$type_to_search = true;
}
// Check if the side aside has a light skin, Dark is the default
$side_aside_light = false;
if( tie_get_option( 'side_aside_skin') == 'light' ){
if( ( tie_get_option( 'top_nav' ) && tie_get_option( 'top-nav-components_slide_area' ) ) || ( tie_get_option( 'main_nav' ) && tie_get_option( 'main-nav-components_slide_area' ) ) ){
$side_aside_light = true;
}
}
$js_vars = array(
'is_rtl' => is_rtl(),
'ajaxurl' => esc_url( admin_url('admin-ajax.php') ),
'is_side_aside_light' => $side_aside_light,
'is_taqyeem_active' => TIELABS_TAQYEEM_IS_ACTIVE,
'is_sticky_video' => ( is_single() && tie_get_option( 'sticky_featured_video' ) ),
'mobile_menu_top' => ( tie_get_option( 'mobile_the_menu' ) === 'main-secondary' ) ,
'mobile_menu_active' => tie_get_option( 'mobile_header_components_menu' ),
'mobile_menu_parent' => tie_get_option( 'mobile_menu_parent_link' ),
'lightbox_all' => tie_get_option( 'lightbox_all' ),
'lightbox_gallery' => tie_get_option( 'lightbox_gallery' ),
'lightbox_skin' => tie_get_option( 'lightbox_skin', 'dark' ),
'lightbox_thumb' => tie_get_option( 'lightbox_thumbs' ),
'lightbox_arrows' => tie_get_option( 'lightbox_arrows' ),
'is_singular' => is_singular(),
'autoload_posts' => ( is_single() && tie_is_loaded_posts_active() ),
'reading_indicator' => tie_get_option( 'reading_indicator' ),
'lazyload' => tie_get_option( 'lazy_load' ),
'select_share' => tie_get_option( 'select_share' ),
'select_share_twitter' => tie_get_option( 'select_share_twitter' ),
'select_share_facebook' => tie_get_option( 'select_share_facebook' ),
'select_share_linkedin' => tie_get_option( 'select_share_linkedin' ),
'select_share_email' => tie_get_option( 'select_share_email' ),
'facebook_app_id' => tie_facebook_app_id(),
'twitter_username' => tie_get_option( 'share_twitter_username' ),
'responsive_tables' => tie_get_option( 'responsive_tables' ),
'ad_blocker_detector' => tie_get_option( 'ad_blocker_detector' ),
'sticky_behavior' => tie_get_option( 'sticky_behavior' ),
'sticky_desktop' => tie_get_option( 'stick_nav' ),
'sticky_mobile' => tie_get_option( 'stick_mobile_nav' ),
'sticky_mobile_behavior' => tie_get_option( 'sticky_mobile_behavior' ),
'ajax_loader' => tie_get_ajax_loader( false ),
'type_to_search' => $type_to_search,
'lang_no_results' => esc_html__( 'Nothing Found', TIELABS_TEXTDOMAIN ),
'sticky_share_mobile' => tie_get_option( 'share_post_mobile' ),
'sticky_share_post' => tie_get_option( 'share_post_sticky' ),
'sticky_share_post_menu' => ( tie_get_option( 'single_sticky_menu' ) && tie_get_option( 'share_post_sticky_menu' ) ),
);
if( tie_get_option( 'ad_blocker_detector' ) && tie_get_option( 'ad_blocker_detector_delay' ) ){
$js_vars['ad_blocker_detector_delay'] = (int) tie_get_option( 'ad_blocker_detector_delay' ) * 1000; // convert to ms
}
if( tie_get_option( 'ad_blocker_disallow_images' ) ){
$js_vars['ad_blocker_disallow_images_placeholder'] = tie_get_option( 'ad_blocker_disallow_images_placeholder', TIELABS_TEMPLATE_URL.'/assets/images/message-placeholder.png' );
$js_vars['ad_blocker_disallow_images_post'] = tie_get_option( 'ad_blocker_disallow_images_post' );
}
wp_localize_script( 'tie-scripts', 'tie', apply_filters( 'TieLabs/js_main_vars', $js_vars ) );
}
/**
* Embed Post Format Dark Skin
*/
public static function embed_iframe_styles(){
echo '
<style type="text/css">
.dark-skin .wp-embed {
color: #aaa;
background: #27292d;
border: 1px solid #161719;
}
.dark-skin .wp-embed-heading a{
color: #fff;
}
.dark-skin .wp-embed .wp-embed-more{
color: #dcdcdc;
}
</style>
';
}
/**
* Get Fonts CSS
*/
public static function fonts_css(){
// Check if we have CSS codes stored
if( empty( $GLOBALS['tie_fonts_family'] ) ){
return;
}
$out = '';
$fonts_sections = apply_filters( 'TieLabs/fonts_sections_array', '' );
$is_loaded_class = '.wf-active ';
foreach ( $GLOBALS['tie_fonts_family'] as $section => $font ){
$elements = $fonts_sections[ $section ];
if( is_array( $font ) ){
$font = $font[0];
$elements = $is_loaded_class . str_replace( ', ', ', '.$is_loaded_class, $elements );
}
$out .= "\t".$elements.'{font-family: '. $font .';}'."\n";
}
return $out;
}
/**
* Get Custom Fonts CSS
*/
public static function custom_fonts_css(){
$fonts_sections = apply_filters( 'TieLabs/fonts_sections_array', '' );
if( empty( $fonts_sections ) || ! is_array( $fonts_sections ) ){
return;
}
$out = '';
foreach( $fonts_sections as $key => $font_section_tags ){
$source = tie_get_option( 'typography_'. $key .'_font_source' );
$font_family = tie_get_option( 'typography_'. $key .'_ext_font' );
$files = array(
'eot' => "format('embedded-opentype')",
'woff2' => "format('woff2')",
'woff' => "format('woff')",
'ttf' => "format('truetype')",
'svg' => "format('svg')",
);
if( $source == 'custom' && $font_family ){
$out .= "
@font-face {
font-family: '$font_family';
font-display: swap;
";
$sources = array();
foreach ( $files as $ext => $format ) {
if( $file = tie_get_option( 'typography_'. $key .'_custom_'. $ext ) ){
if( $ext == 'eot' ){
$out .= "src: url('$file');";
$sources[] = "url('$file?#iefix') $format";
}
else{
$file .= $ext == 'svg' ? '#svgFont'.$key : '';
$sources[] = "url('$file') $format";
}
}
}
if( ! empty( $sources ) ){
$out .= 'src: '.implode( ',', $sources );
}
$out .= ';}';
}
}
return $out;
}
/**
* Typography settings
*/
public static function typography_css(){
// Get the typography elemnts
$text_sections = apply_filters( 'TieLabs/typography_elements', array() );
// return if it is empty
if( empty( $text_sections ) || ! is_array( $text_sections ) ){
return;
}
$out = '';
foreach ( $text_sections as $option => $elements ){
if( $section = tie_get_option( 'typography_'.$option ) ) {
$text_styles = '';
$text_styles .= ! empty( $section['size'] ) ? 'font-size: '. $section['size'] .'px;' : '';
$text_styles .= ! empty( $section['weight'] ) ? 'font-weight: '. $section['weight'] .';' : '';
$text_styles .= ! empty( $section['letter_spacing'] ) ? 'letter-spacing: '. $section['letter_spacing'] .'px;' : '';
if( ! empty( $section['line_height'] ) && $option != 'main_nav' && $option != 'top_menu' ){
$text_styles .= 'line-height: '. $section['line_height'] .';';
}
$text_transform = ! empty( $section['transform'] ) ? 'text-transform: '. $section['transform'] .';' : '';
if( is_array( $elements ) ){
foreach ( $elements as $media => $sub_elements ){
$out .= '@media ('. $media .'){'."\n";
$out .= "\t".$sub_elements.'{'. $text_styles .'}'."\n";
$out .= '}'."\n";
// Text Transform should be outside the @media
if( ! empty( $text_transform ) ){
$out .= "\t".$sub_elements.'{'. $text_transform .'}'."\n";
}
}
}
else{
$out .= "\t".$elements.'{'. $text_styles . $text_transform .'}'."\n";
// Custom Line Height for the menus
if( ! empty( $section['line_height'] ) ){
if( $option == 'main_nav' ){
$out .= "\t".'#main-nav{line-height: '. $section['line_height'] .'em}'."\n";
}
elseif( $option == 'top_menu' ){
$out .= "\t".'#top-nav{line-height: '. $section['line_height'] .'em}'."\n";
}
}
}
} // Section option
}
return apply_filters( 'TieLabs/CSS/typography', $out );
}
/**
* Print the Google web fonts Script in the head section
*/
public static function insert_google_fonts_head(){
// Google fonts Loader
if( empty( $GLOBALS['tie_google_fonts'] ) ){
return;
}
// Add display:swap | There is no official support for it, as a workaround we need to add it to the latest item in the array
$google_fonts = rtrim( $GLOBALS['tie_google_fonts'], "'" ) . "&display=swap'";
//
$js_code = "
WebFontConfig ={
google:{
families: [ $google_fonts ]
}
};
(function(){
var wf = document.createElement('script');
wf.src = '//ajax.googleapis.com/ajax/libs/webfont/1/webfont.js';
wf.type = 'text/javascript';
wf.defer = 'true';
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(wf, s);
})();
";
// echo '<script src="//ajax.googleapis.com/ajax/libs/webfont/1/webfont.js" type="text/javascript" defer></script>';
echo '<script>';
echo apply_filters( 'TieLabs/google_fonts/js_code', $js_code, $GLOBALS['tie_google_fonts'] );
echo '</script>';
}
/**
* Print the External fonts code in the head section
*/
public static function insert_external_fonts_head(){
// External Code
if( ! empty( $GLOBALS['tie_external_font_code'] ) ){
echo implode( "\n", $GLOBALS['tie_external_font_code'] ) ."\n";
}
}
/**
* Load Fonts Files
*/
public static function load_fonts(){
$fonts_sections = apply_filters( 'TieLabs/fonts_sections_array', '' );
if( empty( $fonts_sections ) || ! is_array( $fonts_sections ) ){
return;
}
$default_fonts = array();
$custom_fonts_names = array();
$google_fonts = array();
$google_early_fonts = array();
$fontface_me_fonts = array();
$external_font_code = array();
$character_sets = tie_get_option( 'typography_google_character_sets' );
foreach( $fonts_sections as $font_section_key => $font_section_tags ){
$font = $variants = '';
$source = tie_get_option( 'typography_'. $font_section_key .'_font_source' );
// Google Web fonts
if( $source == 'google' ){
if( $font = tie_get_option( 'typography_'. $font_section_key .'_google_font' ) ) {
// Early access Google web font
if( strpos( $font, 'early#' ) !== false ){
$font = str_replace( 'early#', '', $font );
$custom_fonts_names[ $font_section_key ] = $font;
$google_early_fonts[ $font_section_key ] = strtolower( str_replace( ' ', '', $font ) );
}
// Normal Google web font
else{
// Set the google font name as array to add a prefix to it later
// Avoid generate the default fonts hardcoded in the main style.css file
if( ! in_array( $font, $default_fonts ) ) {
$custom_fonts_names[ $font_section_key ] = array( str_replace( '+', ' ', "'$font'" ) );
}
// Google web font variants
$font .= ':';
if( $variants = tie_get_option( 'typography_'. $font_section_key .'_google_variants' ) ) {
if( is_array( $variants ) ){
if( ! in_array( 'regular', $variants ) ){
$variants[] = 'regular'; // Always load the "regular" to avoid 404 error
}
$font .= implode( ',', array_filter( $variants ) );
}
}
// Google web font character sets
$font .= ':latin';
if( $character_sets ){
$font .= ','.implode( ',', $character_sets );
}
$google_fonts[] = "'$font'";
}
}
}
// External || Custom Sources
elseif( $source == 'external' || $source == 'custom' ){
if( $ext_font = tie_get_option( 'typography_'. $font_section_key .'_ext_font' ) ){
// Add the font name to the fonts array
$custom_fonts_names[ $font_section_key ] = "'$ext_font'";
// The custom Head code
if( $source == 'external' && ( $ext_head = tie_get_option( 'typography_'. $font_section_key .'_ext_head' ) ) ){
$external_font_code[] = $ext_head;
}
}
}
// Web Safe fonts
elseif( $source == 'standard' && ( $standard = tie_get_option( 'typography_'. $font_section_key .'_standard_font' ) ) ){
$custom_fonts_names[ $font_section_key ] = str_replace( 'safefont#', '', $standard );
}
// FontFace.me fonts
elseif( $source == 'fontfaceme' && ( $fontfaceme = tie_get_option( 'typography_'. $font_section_key .'_fontfaceme' ) ) ){
$font = str_replace( 'faceme#', '', $fontfaceme );
$custom_fonts_names[ $font_section_key ] = $font;
$fontface_me_fonts[ $font_section_key ] = strtolower( str_replace( ' ', '', $font ) );
}
} //endFOR
// Google web fonts
if( ! empty( $google_fonts ) ){
$GLOBALS['tie_google_fonts'] = implode( ', ', $google_fonts );
}
// External Fonts Head Code
if( ! empty( $external_font_code ) ){
$GLOBALS['tie_external_font_code'] = $external_font_code;
}
// Get the Google web Early access fonts
if( ! empty( $google_early_fonts ) ){
foreach ( $google_early_fonts as $early_font ){
wp_enqueue_style( $early_font, '//fonts.googleapis.com/earlyaccess/'.$early_font );
}
}
// Get the FontsFace.me fonts
if( ! empty( $fontface_me_fonts ) ){
foreach ( $fontface_me_fonts as $fontface ){
$protocol = is_ssl() ? 'https' : 'http';
wp_enqueue_style( $fontface, $protocol . '://www.fontstatic.com/f='.$fontface );
}
}
if( ! empty( $custom_fonts_names ) ) {
$GLOBALS['tie_fonts_family'] = $custom_fonts_names;
}
}
/*
* Minify Css
*/
public static function minify_css( $css = false ){
// Return if there is no CSS code
if( empty( $css ) ){
return;
}
// If the debugging is on, don't minify
if( ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) || ( defined( 'TIE_SCRIPT_DEBUG' ) && TIE_SCRIPT_DEBUG ) ){
return $css;
}
// Minify
$css = strip_tags( $css );
$css = str_replace( ',{', '{', $css );
$css = str_replace( ', ', ',', $css );
$css = preg_replace( '!/\*[^*]*\*+([^/][^*]*\*+)*/!', '', $css );
$css = str_replace( array( "\r\n", "\r", "\n", "\t" ), '', $css );
$css = preg_replace( '/\s+/', ' ', $css );
return trim( $css );
}
/*
* Load the normal or minified files
*/
public static function is_minified(){
return ( ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) || ( defined( 'TIE_SCRIPT_DEBUG' ) && TIE_SCRIPT_DEBUG ) ) ? '' : '.min';
}
/*
* Check if is_inline_css
*/
public static function is_inline_css(){
return apply_filters( 'TieLabs/Styles/is_inline_css', true );
//return apply_filters( 'TieLabs/Styles/is_inline_css', tie_get_option( 'inline_css' ) );
}
/*
* Get the custom styles file path
*/
public static function style_file_path( $absolute = false ){
$path = $absolute ? TIELABS_TEMPLATE_PATH : TIELABS_TEMPLATE_URL;
$path = $path . '/assets/custom-css';
$path = apply_filters( 'TieLabs/CSS/custom_file_path', $path, $absolute );
if ( is_multisite() ){
return $path.'/style-custom-' . get_current_blog_id() . '.css';
}
return $path.'/style-custom.css';
}
/*
* Get the latest enqueued css file
*/
public static function latest_enqueued_file(){
$enqueue_styles = wp_styles();
$enqueued_files = array_reverse( $enqueue_styles->queue );
foreach ( $enqueued_files as $file ){
// Don't use IE files as loaded in condition
if( strpos( $file, 'tie-css-ie-' ) === false ){
return $file;
}
}
return 'tie-css-inline'; // Default CSS File Handler
}
/*
* Get the builder styles
*/
public static function builder_styles(){
$css_code = '';
if( $sections = tie_get_postdata( 'tie_page_builder' ) ){
$sections = maybe_unserialize( $sections );
foreach( $sections as $section ){
$css_code .= self::builder_section_style( $section );
if( ! empty( $section['blocks'] ) && is_array( $section['blocks'] ) ) {
foreach( $section['blocks'] as $block ){
$css_code .= self::builder_block_style( $block );
}
}
}
}
return $css_code;
}
/*
* Get Background
*/
public static function get_background( $is_custom_css_file = false ){
// Get the theme layout
$theme_layout = tie_get_object_option( 'theme_layout', 'cat_theme_layout', 'tie_theme_layout' );
// Add 'none' before the global option to avoid duplication when using the custom style css file
$prefix = $is_custom_css_file ? 'none' : '';
$out = '';
$background_code = '';
$background_color_1 = tie_get_object_option( $prefix.'background_color', 'background_color', 'background_color' );
$background_color_2 = tie_get_object_option( $prefix.'background_color_2', 'background_color_2', 'background_color_2' );
// Solid Color Background
if( ! empty( $background_color_1 ) || ! empty( $background_color_2 ) ){
$background_single_color = empty( $background_color_1 ) ? $background_color_2 : $background_color_1;
$background_code .= 'background-color: '. $background_single_color .';';
}
// Bordered Layout Supports Colors Backgrounds only
if( $theme_layout != 'border' ){
// Gradiant Background
if( ! empty( $background_color_1 ) && ! empty( $background_color_2 ) ){
$gradiant_css = "45deg, $background_color_1, $background_color_2";
$background_code .= "
background-image: -webkit-linear-gradient($gradiant_css);
background-image: linear-gradient($gradiant_css);
";
}
$background_type = tie_get_object_option( $prefix.'background_type', 'background_type', 'background_type' );
// Background Image
if( $background_type == 'image' ){
$background_image = tie_get_object_option( $prefix.'background_image', 'background_image', 'background_image' );
$background_code .= self::bg_image_css( $background_image );
}
// Background Pattern
elseif( $background_type == 'pattern' ){
$background_pattern = tie_get_object_option( $prefix.'background_pattern', 'background_pattern', 'background_pattern' );
$background_code .= ! empty( $background_pattern ) ? 'background-image: url('. TIELABS_TEMPLATE_URL .'/assets/images/patterns/' .$background_pattern .'.png);' : '';
}
// Overlay background
$background_overlay = '';
// Overlay dots
$background_dots = tie_get_object_option( $prefix.'background_dots', 'background_dots', 'background_dots' );
if( ! empty( $background_dots ) ) {
$background_overlay .= ! empty( $background_dots ) ? 'background-image: url('. TIELABS_TEMPLATE_URL .'/assets/images/bg-dots.png);' : '';
}
// Overlay Dimmer
$background_dimmer = tie_get_object_option( $prefix.'background_dimmer', 'background_dimmer', 'background_dimmer' );
if( ! empty( $background_dimmer ) ) {
$dimmer_value = tie_get_object_option( $prefix.'background_dimmer_value', 'background_dimmer_value', 'background_dimmer_value' );
if( ! empty( $dimmer_value ) ){
$dimmer_value = ( max( 0, min( 100, $dimmer_value )))/100;
}
else{
$dimmer_value = 0.5;
}
$dimmer_color = tie_get_object_option( $prefix.'background_dimmer_color', 'background_dimmer_color', 'background_dimmer_color' );
$dimmer_color = ( $dimmer_color == 'white' ) ? '255,255,255,' : '0,0,0,';
$background_overlay .= ! empty( $background_dimmer ) ? 'background-color: rgba('. $dimmer_color . $dimmer_value .');' : '';
}
}
// Body Background CSS code
if( ! empty( $background_code ) ) {
$out .='
#tie-body{
'. $background_code .'
}
';
}
// background-overlay CSS code
if( ! empty( $background_overlay ) ) {
$out .='
.background-overlay {
background-attachment: fixed;
'. $background_overlay .'
}
';
}
return $out;
}
/*
* Prepare the CSS code of an background image
*/
public static function bg_image_css( $background_image = false ){
// ==1 to avoid an issue with the importer when it failed to import the background image
if( empty( $background_image ) || empty( $background_image['img'] ) || ( ! empty( $background_image['img'] ) && $background_image['img'] == 1 ) ){
return;
}
$background_code = 'background-image: url('. $background_image['img'] .');'."\n";
$background_code .= ! empty( $background_image['repeat'] ) ? 'background-repeat: '. $background_image['repeat'] .';' : '';
// Image attachment
if( ! empty( $background_image['attachment'] ) ){
if( $background_image['attachment'] == 'cover' ){
$background_code .= 'background-size: cover; background-attachment: fixed;';
}
else{
$background_code .= 'background-size: initial; background-attachment: '. $background_image['attachment'] .';';
}
}
// Image position
$hortionzal = ! empty( $background_image['hor'] ) ? $background_image['hor'] : '';
$vertical = ! empty( $background_image['ver'] ) ? $background_image['ver'] : '';
if( ! empty( $hortionzal ) || ! empty( $vertical ) ){
$background_code .= "background-position: $hortionzal $vertical;";
}
return $background_code;
}
/*
* Gradiant CSS code
*/
public static function gradiant( $bg_color_1 = false, $bg_color_2 = false, $deg = '135' ){
if( empty( $bg_color_1 ) || empty( $bg_color_2 ) ){
return;
}
return "
background: $bg_color_1;
background: -webkit-linear-gradient({$deg}deg, $bg_color_2, $bg_color_1 );
background: -moz-linear-gradient({$deg}deg, $bg_color_2, $bg_color_1 );
background: -o-linear-gradient({$deg}deg, $bg_color_2, $bg_color_1 );
background: linear-gradient({$deg}deg, $bg_color_1, $bg_color_2 );
";
}
/*
* Adjust darker or lighter color
*/
public static function color_brightness( $hex, $steps = -30 ){
// Steps should be between -255 and 255. Negative = darker, positive = lighter
$steps = max( -255, min( 255, $steps ) );
$rgb = self::rgb_color( $hex, true );
extract( $rgb );
// Adjust number of steps and keep it inside 0 to 255
$r = max( 0, min( 255, $r + $steps ) );
$g = max( 0, min( 255, $g + $steps ) );
$b = max( 0, min( 255, $b + $steps ) );
$r_hex = str_pad( dechex( $r ), 2, '0', STR_PAD_LEFT );
$g_hex = str_pad( dechex( $g ), 2, '0', STR_PAD_LEFT );
$b_hex = str_pad( dechex( $b ), 2, '0', STR_PAD_LEFT );
return '#' . $r_hex . $g_hex . $b_hex;
}
/*
* Adjust darker or lighter color
*/
public static function rgb_color( $hex, $array = false ){
if ( strpos( $hex, 'rgb') !== false){
$rgb_format = array( 'rgba', 'rgb', '(', ')', ' ');
$rgba_color = str_replace( $rgb_format, '', $hex );
$rgba_color = explode( ',', $rgba_color );
$rgb = array(
'r' => $rgba_color[0],
'g' => $rgba_color[1],
'b' => $rgba_color[2],
);
}
else{
// Format the hex color string
$hex = str_replace( '#', '', $hex );
if ( 3 == strlen( $hex ) ){
$hex = str_repeat( substr( $hex, 0, 1 ), 2 ) . str_repeat( substr( $hex, 1, 1 ), 2 ) . str_repeat( substr( $hex, 2, 1 ), 2 );
}
// Get decimal values
$rgb = array(
'r' => hexdec( substr( $hex, 0, 2 ) ),
'g' => hexdec( substr( $hex, 2, 2 ) ),
'b' => hexdec( substr( $hex, 4, 2 ) ),
);
}
if( ! $array ){
$rgb = implode( ',', $rgb );
}
return $rgb;
}
/*
* Calculating the average color between two colors
*/
public static function average_color( $color_1, $color_2 ){
$color_1_rgb = TIELABS_STYLES::rgb_color( $color_1, true );
$color_2_rgb = TIELABS_STYLES::rgb_color( $color_2, true );
$average_rgb = array();
$rgb_keys = array( 'r', 'g', 'b' );
if( count( $color_1_rgb ) == 3 && count( $color_2_rgb ) == 3 ){
foreach ( $rgb_keys as $key ) {
$average_rgb[ $key ] = round( ( $color_1_rgb[ $key ] + $color_2_rgb[ $key ] ) / 2 );
}
}
if( ! empty( $average_rgb ) && is_array( $average_rgb ) && count( $average_rgb ) == 3 ){
return 'rgb('. implode( ',', $average_rgb ).')';
}
return $color_1_rgb;
}
/*
* Check if we need to use dark or light color
*/
public static function light_or_dark( $color, $return_rgb = false, $dark = '#000000', $light = '#FFFFFF' ){
$rgb = self::rgb_color( $color, true );
extract( $rgb );
$bright = ( ( $r * 299 ) + ( $g * 587 ) + ( $b * 114 ) ) / 1000;
$color = $bright > 200 ? $dark : $light;
return $return_rgb ? self::rgb_color( $color ) : $color;
}
/*
* Custom CSS Media Quries
*/
public static function media_query( $option, $max = 0, $min = 0 ){
if( ! tie_get_option( $option ) ){
return false;
}
return '
@media only screen and (max-width: '. $max .'px) and (min-width: '. $min .'px){
'. tie_get_option( $option ) .'
}
';
}
/*
* Enquee the External CSS file
*/
public static function enqueue_external_css(){
if( self::is_inline_css() || ! file_exists( self::style_file_path( true ) ) ){
return false;
}
// Enqueue the external CSS file
wp_enqueue_style( 'tie-css-style-custom', self::style_file_path(), array(), get_option( 'style-custom-ver', TIELABS_DB_VERSION ), 'all' );
}
/*
* Enquee the External CSS file or Inline the Custom CSS codes
*/
public static function get_custom_styles(){
$inline_css_code = '';
// Check if the external CSS file is registered
if( wp_style_is( 'tie-css-style-custom', 'enqueued' ) ){
// For posts and categories custom styles
$color = tie_get_object_option( false, 'cat_color', 'post_color' );
$inline_css_code .= self::custom_theme_color( $color );
// Background
$inline_css_code .= self::get_background( true );
// Custom Css Codes
$inline_css_code .= tie_get_object_option( false, 'cat_custom_css', 'tie_custom_css' );
}
// If the inline css option is disabled or the external css file doesn't exist
else{
$inline_css_code .= self::get_all_custom_css();
}
// Builder styles
if( apply_filters( 'TieLabs/Styles/inline_builder_css_code', true ) ){
$inline_css_code .= self::builder_styles();
}
// Return if there is no inline code
if( empty( $inline_css_code ) ){
return;
}
// Minify and Inline the CSS codes
$inline_css_code = apply_filters( 'TieLabs/Styles/inline_css_code', self::minify_css( $inline_css_code ) );
// Find the handler
$css_file_handler = wp_style_is( 'tie-css-style-custom', 'enqueued' ) ? 'tie-css-style-custom' : self::latest_enqueued_file();
// If the dependence CSS file is enqueued use the wp_add_inline_style else print the code.
if( wp_style_is( $css_file_handler, 'enqueued' ) ){
wp_add_inline_style( $css_file_handler, $inline_css_code );
}
else{
echo "<style id='tie-custom-css-inline' type='text/css'>$inline_css_code</style>\n";
}
}
/*
* Get the Custom CSS of the diffrent elements
*/
public static function get_all_custom_css(){
$elements_styling = '';
// Get the Theme Custom color Codes
$elements_styling .= apply_filters( 'TieLabs/Styles/custom_theme_color', self::custom_theme_color() );
// Early Filter after getting the custom theme color
$elements_styling .= apply_filters( 'TieLabs/CSS/after_theme_color', $elements_styling );
$out = '';
$out .= self::custom_fonts_css();
$out .= self::fonts_css();
$out .= self::typography_css();
$out .= self::get_background();
$out .= $elements_styling;
$out = apply_filters( 'TieLabs/CSS/after_all_styles', $out );
// Global Custom CSS codes
$out .= tie_get_option( 'css' );
$out .= self::media_query( 'css_tablets', 1024, 768 );
$out .= self::media_query( 'css_phones', 768, 0 );
// Custom CSS Codes for posts and cats
$out .= tie_get_object_option( false, 'cat_custom_css', 'tie_custom_css' );
// Theme Color
$theme_color = tie_primary_color();
$out = str_replace( '$primary-color', $theme_color, $out );
// Prepare the CSS codes
return apply_filters( 'TieLabs/CSS/output', $out );
}
/*
* Get the Custom Theme Color CSS codes
*/
public static function custom_theme_color( $color = false ){
$color = ! empty( $color ) ? $color : tie_primary_color( false );
if( empty( $color ) ){
return;
}
$dark_color = self::color_brightness( $color, -50 );
$bright = self::light_or_dark( $color );
$rgb_color = self::rgb_color( $color );
$css_code = '';
return apply_filters( 'TieLabs/CSS/custom_theme_color', $css_code, $color, $dark_color, $bright, $rgb_color );
}
/*
* Get the Custom Section Styles CSS codes
*/
public static function builder_section_style( $section ){
if( empty( $section['settings']['section_id'] ) ){
return false;
}
$section_css = '';
$section_settings = $section['settings'];
$section_id = $section_settings['section_id'];
// Margins
$section_margins = array();
$section_margins[] = isset( $section_settings['margin_top'] ) ? 'margin-top:'.$section_settings['margin_top'].'px;' : '';
$section_margins[] = isset( $section_settings['margin_bottom'] ) ? 'margin-bottom:'.$section_settings['margin_bottom'].'px;' : '';
$section_margins = implode( ' ', array_filter( $section_margins ) );
if( ! empty( $section_margins ) ){
$section_css .= "
@media (min-width: 992px){
#$section_id{
$section_margins
}
}
";
}
// Paddings
$section_paddings = array();
$section_paddings[] = isset( $section_settings['padding_top'] ) ? 'padding-top:'.$section_settings['padding_top'].'px;' : '';
$section_paddings[] = isset( $section_settings['padding_bottom'] ) ? 'padding-bottom:'.$section_settings['padding_bottom'].'px;' : '';
$section_paddings = implode( ' ', array_filter( $section_paddings ) );
if( ! empty( $section_paddings ) ){
$section_css .= "
@media (min-width: 992px){
#$section_id .section-item{
$section_paddings
}
}
";
}
// Inverted Bg Color
if( ! empty( $section_settings['background_color_inverted'] ) ){
$section_css .= "
.tie-skin-inverted #$section_id .section-item{
background-color:". $section_settings['background_color_inverted'] ."!important;
}
";
}
return apply_filters( 'TieLabs/CSS/Builder/section_style', $section_css, $section_id, $section_settings );
}
/*
* Get the Custom Block Styles CSS codes
*/
public static function builder_block_style( $block ){
$out = '';
if( ! empty( $block['boxid'] ) ){
// Define the ID
$id_css = '#tie-' . $block['boxid'];
// Check if the block has a custom bg
if( ! empty( $block['color'] ) ){
$color = $block['color'];
$darker = self::color_brightness( $color );
$bright = self::light_or_dark( $color );
$out .= apply_filters( 'TieLabs/CSS/Builder/block_style', '', $id_css, $block, $color, $bright, $darker );
}
// Sliders
if( strpos( $block['style'], 'slider_' ) !== false && ! empty( $block['sec_color'] ) ){
$out .= "
$id_css .thumb-title,
$id_css .thumb-title a,
$id_css .thumb-desc,
$id_css .thumb-meta{
color: {$block['sec_color']} !important
}
";
}
// Check if the block has a custom bgcolor
if( ! empty( $block['bgcolor'] ) && empty( $block['content_only'] ) ){
if( $block['style'] != 'ad_50' && $block['style'] != 'ad' && $block['style'] != 'videos_list' && strpos( $block['style'], 'slider_' ) === false ){
$color = $block['bgcolor'];
$darker = self::color_brightness( $color );
$bright = ! empty( $block['sec_color'] ) ? $block['sec_color'] : self::light_or_dark( $color );
$out .= apply_filters( 'TieLabs/CSS/Builder/block_bg', '', $id_css, $block, $color, $bright, $darker );
}
}
}
return $out;
}
/*
* Update the External CSS file
*/
public static function update_styles_file(){
if( self::is_inline_css() ){
return;
}
// Open the file
$open = 'fo'.'pen'; $file = @$open( self::style_file_path( true ), 'w+' ); //##### ;)
if( ! $file ){
return;
}
// requried to get the custom fonts names
self::load_fonts();
// Get The CSS code
$css = self::minify_css( self::get_all_custom_css() );
// Write the code to the file
$wrt = 'fwr'.'ite'; $wrt( $file, $css ); //##### ;)
// Close the file
$cls = 'fcl'.'ose'; $cls( $file ); //##### ;)
// Update the version update number
update_option( 'style-custom-ver', rand( 10000, 99999 ) );
}
/**
* Custom Code in <head>
*/
public static function custom_head_code(){
echo do_shortcode( apply_filters( 'TieLabs/header_code', tie_get_option( 'header_code' ) ) ), "\n";
}
/**
* Viewport meta tag
*/
public static function meta_viewport(){
if( tie_get_option( 'disable_responsive' ) ) {
echo '<meta name="viewport" content="width='. apply_filters( 'TieLabs/non_responsive_viewport', '1200' ) .'" />';
}
else{
echo '<meta name="viewport" content="width=device-width, initial-scale=1.0" />';
}
}
/**
* Theme-color in Chrome 39 for Android
*/
public static function theme_color_meta_tag(){
$theme_color = false;
$theme_color_type = tie_get_option( 'theme_color_meta_tag_type' );
// Theme Primary Color
if( $theme_color_type == 'primary' ){
$theme_color = tie_primary_color();
}
// Header Color
elseif( $theme_color_type == 'header' ){
if( tie_get_option( 'header_layout' ) == 1 || tie_get_option( 'header_layout' ) == 4 ){
$theme_color = tie_get_option( 'main_nav_background' );
}
else{
$theme_color = tie_get_option( 'header_background_color' );
}
}
// Custom Color
elseif( $theme_color_type == 'custom' ){
$theme_color = tie_get_option( 'theme_color_meta_tag_custom' );
}
$theme_color = apply_filters( 'TieLabs/theme_color_meta_tag_color', $theme_color );
if( ! empty( $theme_color ) ){
echo "<meta name=\"theme-color\" content=\"$theme_color\" />";
}
}
/**
* Custom Code after the opening <body> tag.
*/
public static function custom_body_code(){
echo do_shortcode( apply_filters( 'TieLabs/body_code', tie_get_option( 'body_code' ) ) ), "\n";
}
/**
* Custom Code after the opening <body> tag.
*/
public static function print_inline_css( $css ){
if( ! empty( $css ) ){
echo "\n".'<style>'. self::minify_css( $css ) .'</style>'."\n";
}
}
} // class
}
TIELABS_STYLES::init();
tahkoom.com – tahkoom.com