File "customizer-out.php"
Full Path: /var/www/bvnghean.vn/save_bvnghean.vn/wp-content/plugins/sneeit-framework/includes/customizer/customizer-out.php
File size: 5.13 KB
MIME-type: text/x-php
Charset: utf-8
<?php
function sneeit_customize_cssout($setting_id, $setting_property, &$google_font_url, &$upload_font_url) {
if (!isset($setting_property['cssout'])) {
return '';
}
if (!isset($setting_property['type'])) {
$setting_property['type'] = 'text';
}
$setting_value = get_theme_mod($setting_id, isset($setting_property['default']) ? $setting_property['default']: '');
switch ($setting_property['type']) {
case 'font-family':
$setting_value = sneeit_get_font_family_css($setting_value, $google_font_url, $upload_font_url);
break;
case 'font':
$font_style = '';
$font_weight = '';
$font_size = '';
$font_name = '';
$setting_value = explode(' ', $setting_value);
foreach ($setting_value as $key => $value) {
if ($key == 0) {
$font_style = $value;
} else if ($key == 1) {
$font_weight = $value;
} else if ($key == 2) {
$font_size = $value;
if (strpos($font_size, 'px') === false) {
$font_size = $font_size.'px';
}
} else {
$font_name .= $value . ' ';
}
}
$font_name = sneeit_get_font_family_css($font_name, $google_font_url, $upload_font_url);
$setting_value = $font_style . ' ' . $font_weight . ' ' . $font_size . ' ' . $font_name;
break;
case 'box-padding-px':
if (is_rtl()) {
$setting_value = explode(' ', $setting_value);
if (count($setting_value) < 4) {
break;
}
$setting_value =
$setting_value[0] .' '.
$setting_value[3] .' '.
$setting_value[2] .' '.
$setting_value[1];
}
break;
default:
break;
}
if ($setting_value) {
return str_replace('%s', $setting_value, $setting_property['cssout']);
}
return '';
}
if (sneeit_is_gpsi()) {
global $google_font_url_enqueue;
$google_font_url_enqueue = '';
}
add_action('wp_head', 'sneeit_customizer_out_wp_enqueue_scripts', 1000);
function sneeit_customizer_out_wp_enqueue_scripts() {
global $Sneeit_Safe_Fonts;
global $Sneeit_Google_Fonts;
global $Sneeit_Upload_Fonts;
global $Sneeit_Customize_Declarations;
if (sneeit_is_gpsi()) {
global $google_font_url_enqueue;
}
$customizer_css_out = '';
$google_font_url = array();
$upload_font_url = array();
if (!is_array($Sneeit_Customize_Declarations)) {
return;
}
if ($Sneeit_Upload_Fonts == null && sneeit_customize_has_fonts($Sneeit_Customize_Declarations)) {
sneeit_get_uploaded_fonts();
}
foreach ($Sneeit_Customize_Declarations as $level_1_id => $level_1_value) :
// check if this is setting and it has cssout property
if (isset($level_1_value['cssout'])) {
$customizer_css_out .= sneeit_customize_cssout($level_1_id, $level_1_value, $google_font_url, $upload_font_url);
continue;
}
$level_1_next = array();
if (isset($level_1_value['sections'])) {
// this is a panel
$level_1_next = $level_1_value['sections'];
} else if (isset($level_1_value['settings'])) {
// this is a section
$level_1_next = $level_1_value['settings'];
}
// next level 1
foreach ($level_1_next as $level_2_id => $level_2_value) :
if (isset($level_2_value['cssout'])) {
$customizer_css_out .= sneeit_customize_cssout($level_2_id, $level_2_value, $google_font_url, $upload_font_url);
continue;
}
// level 2 is a section (we have no panel here)
if (isset($level_2_value['settings'])) {
// scan for last level of declaration
foreach ($level_2_value['settings'] as $level_3_id => $level_3_value) {
if (isset($level_3_value['cssout'])) {
$customizer_css_out .= sneeit_customize_cssout($level_3_id, $level_3_value, $google_font_url, $upload_font_url);
continue;
}
}
}
endforeach;
endforeach;
// enqueue to load fonts
// enqueue for google fonts
$google_font_url_enqueue = '';
foreach ($google_font_url as $font_url) {
if ($google_font_url_enqueue) {
$google_font_url_enqueue .= '|';
}
$google_font_url_enqueue .= $font_url;
}
// if (current_user_can('manage_options')) {
// echo $google_font_url_enqueue;
// $google_font_url_enqueue = 'Roboto:400,100,100italic,300,300italic,400italic,500,500italic,700,700italic,900,900italic|Oswald:400,300,700';
// }
if ($google_font_url_enqueue && !sneeit_is_gpsi()) {
// we can load a lot of families with 1 style request
wp_enqueue_style( 'sneeit-google-fonts', '//fonts.googleapis.com/css?family='.$google_font_url_enqueue, array(), SNEEIT_PLUGIN_VERSION );
}
// enqueue for upload fonts, with inline css
$upload_font_url_enqueue = '';
foreach ($upload_font_url as $font_name => $font_src) {
$upload_font_url_enqueue .= '@font-face {font-family: "'.$font_name.'";'.$font_src.'}';
}
$customizer_css_out = $upload_font_url_enqueue . $customizer_css_out;
echo '<style type="text/css">'. $customizer_css_out .'</style>';
}
if (sneeit_is_gpsi()) {
function customizer_out_wp_footer() {
wp_enqueue_style( 'sneeit-sneeit');
global $google_font_url_enqueue;
if ($google_font_url_enqueue && !sneeit_is_gpsi()) {
// we can load a lot of families with 1 style request
wp_enqueue_style( 'sneeit-google-fonts', '//fonts.googleapis.com/css?family='.$google_font_url_enqueue, array(), SNEEIT_PLUGIN_VERSION );
}
}
add_action( 'wp_footer', 'customizer_out_wp_footer');
}