HEX
Server: Apache
System: Linux webd003.cluster128.gra.hosting.ovh.net 6.18.42-ovh-vps-grsec-zfs+ #1 SMP PREEMPT_DYNAMIC Wed Aug 5 15:59:48 CEST 2026 x86_64
User: slyfwmm (169339)
PHP: 8.1.34
Disabled: _dyuweyrj4,_dyuweyrj4r,dl
Upload Files
File: /home/slyfwmm/pianob/wp-content/themes/zk-monaco/inc/dynamic/static.css.php
<?php

/**
 * Auto create .css file from Theme Options
 * @author Fox
 * @version 1.0.0
 */

class CMSSuperHeroes_StaticCss
{

    public $scss;
    
    function __construct()
    {
        if(!class_exists('scssc')) return;
        global $smof_data;
        
        /* scss */
        $this->scss = new scssc();
        /* set paths scss */
        $this->scss->setImportPaths(get_template_directory() . '/assets/scss/');
        /* generate css over time */
        if (isset($smof_data['dev_mode']) && $smof_data['dev_mode'] === '1') {
            $this->generate_file();
        } else {
            /* save option generate css */
            add_action("redux/options/smof_data/saved", array(
                $this,
                'generate_file'
            ));
        }
    }

    /**
     * generate css file.
     *
     * @since 1.0.0
     */
    public function generate_file()
    {
        global $smof_data, $wp_filesystem, $woocommerce;

        if(!defined('FS_CHMOD_FILE'))
            define('FS_CHMOD_FILE',0644);
        
        if (! empty($smof_data) && ! empty($wp_filesystem)) {

            $options_scss = get_template_directory() . '/assets/scss/options.scss';
            
            /* delete files options.scss */
            $wp_filesystem->delete($options_scss);
            
            /* write options to scss file */
            $wp_filesystem->put_contents($options_scss, $this->css_render(), FS_CHMOD_FILE); // Save it
            
            /* minimize CSS styles */
            $this->scss->setFormatter('scss_formatter_compressed');
            
            /* compile scss to css */
            $css = $this->scss_render();
            
            $file = "static.css";
            
            if(isset($smof_data['presets_color']) && !empty($smof_data['presets_color']) && $smof_data['presets_color']){
                $file = "presets-".$smof_data['presets_color'].".css";
            }
            
            $file = get_template_directory() . '/assets/css/' . $file;
            
            /* delete files static.css */
            $wp_filesystem->delete($file);
            
            /* write static.css file */
            $wp_filesystem->put_contents($file, $css, FS_CHMOD_FILE); // Save it

             /* write woocommerce.css file */
            if($woocommerce){
                /* compile woo scss to css */
                $woo_css = $this->woo_scss_render();
                
                $woo_file = get_template_directory() . '/assets/css/woocommerce.css';
                /* delete files static.css */
                $wp_filesystem->delete($woo_file);
                /* write woocommerce.css file */
                $wp_filesystem->put_contents($woo_file, $woo_css, FS_CHMOD_FILE); // Save it
            }
        }
    }
    
    /**
     * scss compile
     * 
     * @since 1.0.0
     * @return string
     */
    public function scss_render(){
        /* compile scss to css */
        return $this->scss->compile('@import "master.scss"');
    }
    public function woo_scss_render(){
        global $woocommerce;
        /* compile scss to css */
        if($woocommerce){
            return $this->scss->compile('@import "woocommerce.scss"');
        }
    }
    
    /**
     * main css
     *
     * @since 1.0.0
     * @return string
     */
    public function css_render()
    {
        global $smof_data, $cms_base;
        
        ob_start();
        
        /* google fonts. */
        if(isset($smof_data['google-font-1'])){
            $cms_base->setGoogleFont($smof_data['google-font-1'], $smof_data['google-font-selector-1']);
        }
        if(isset($smof_data['google-font-2'])){
            $cms_base->setGoogleFont($smof_data['google-font-2'], $smof_data['google-font-selector-2']);
        }
        /* local fonts. */
        if(isset($smof_data['local-fonts-1'])){
            $cms_base->setFontFace($smof_data['local-fonts-1'], $smof_data['local-fonts-selector-1']);
        }
        if(isset($smof_data['local-fonts-2'])){
            $cms_base->setFontFace($smof_data['local-fonts-2'], $smof_data['local-fonts-selector-2']);
        }
        /* forward options to scss. */
        /* Header */
        if(!empty($smof_data['header_width'])){
            echo '$header_width:'.esc_attr($smof_data['header_width']).';';
        }
        /* Get menu first level color (Default Header), since V1.0.3 */
        
        if(!empty($smof_data['menu_first_level_typography'])){
            echo '$menu_first_level_typography_font_size:'.esc_attr($smof_data['menu_first_level_typography']['font-size']).';';
        }
        if(!empty($smof_data['menu_first_level_color'])){
            echo '$menu_first_level_color:'.esc_attr($smof_data['menu_first_level_color']['regular']).';';
        }
        if(!empty($smof_data['menu_first_level_color'])){
            echo '$menu_first_level_color_hover:'.esc_attr($smof_data['menu_first_level_color']['hover']).';';
        }
        if(!empty($smof_data['menu_first_level_color'])){
            echo '$menu_first_level_color_active:'.esc_attr($smof_data['menu_first_level_color']['active']).';';
        }
        if(!empty($smof_data['menu_first_level_color'])){
            echo '$menu_first_level_color_visited:'.esc_attr($smof_data['menu_first_level_color']['active']).';';
        }

        /* Get menu first level color (Sticky Header), since V1.0.3 */
        if(!empty($smof_data['sticky_menu_first_level_color'])){
            echo '$sticky_menu_first_level_color:'.esc_attr($smof_data['sticky_menu_first_level_color']['regular']).';';
        }
        if(!empty($smof_data['sticky_menu_first_level_color'])){
            echo '$sticky_menu_first_level_color_hover:'.esc_attr($smof_data['sticky_menu_first_level_color']['hover']).';';
        }
        if(!empty($smof_data['sticky_menu_first_level_color'])){
            echo '$sticky_menu_first_level_color_active:'.esc_attr($smof_data['sticky_menu_first_level_color']['active']).';';
        }
        if(!empty($smof_data['sticky_menu_first_level_color'])){
            echo '$sticky_menu_first_level_color_visited:'.esc_attr($smof_data['sticky_menu_first_level_color']['active']).';';
        }

        /* Get Dropdown menu config (Applied for Default/ Fixed / Sticky Header), since V1.0.3 */
        if(!empty($smof_data['menu_dropdown_background'])){
            echo '$menu_dropdown_background_color:'.esc_attr($smof_data['menu_dropdown_background']['background-color']).';';
        }
        if(!empty($smof_data['menu_dropdown_typography'])){
            echo '$menu_dropdown_typography_font_size:'.esc_attr($smof_data['menu_dropdown_typography']['font-size']).';';
        }
        
        if(!empty($smof_data['menu_dropdown_color'])){
            echo '$menu_dropdown_color:'.esc_attr($smof_data['menu_dropdown_color']['regular']).';';
        }
        if(!empty($smof_data['menu_dropdown_color'])){
            echo '$menu_dropdown_color_hover:'.esc_attr($smof_data['menu_dropdown_color']['hover']).';';
        }
        if(!empty($smof_data['menu_dropdown_color'])){
            echo '$menu_dropdown_color_active:'.esc_attr($smof_data['menu_dropdown_color']['active']).';';
        }

        /* Get Mobile menu config (Applied for menu on Mobile), since V1.0.3 */
        if(!empty($smof_data['menu_mobile_background'])){
            echo '$menu_mobile_background_color:'.esc_attr($smof_data['menu_mobile_background']['background-color']).';';
        }

        if(!empty($smof_data['menu_mobile_color'])){
            echo '$menu_mobile_color:'.esc_attr($smof_data['menu_mobile_color']['regular']).';';
        }
        if(!empty($smof_data['menu_mobile_color'])){
            echo '$menu_mobile_color_hover:'.esc_attr($smof_data['menu_mobile_color']['hover']).';';
        }
        if(!empty($smof_data['menu_mobile_color'])){
            echo '$menu_mobile_color_active:'.esc_attr($smof_data['menu_mobile_color']['active']).';';
        }
        if(!empty($smof_data['menu_mobile_hover_background'])){
            echo '$menu_mobile_hover_background_color:'.esc_attr($smof_data['menu_mobile_hover_background']['background-color']).';';
        }
        

        /* Preset Color */    
        if(!empty($smof_data['primary_color'])){
            echo '$primary_color:'.esc_attr($smof_data['primary_color']).';';
        }
        if(!empty($smof_data['secondary_color'])){
            echo '$secondary_color:'.esc_attr($smof_data['secondary_color']).';';
        }
        if(!empty($smof_data['link_color'])){
            //echo '$link_color:'.esc_attr($smof_data['link_color']).';';
        }
        if(!empty($smof_data['link_color_hover'])){
            //echo '$link_color_hover:'.esc_attr($smof_data['link_color_hover']).';';
        }
        return ob_get_clean();
    }
}

new CMSSuperHeroes_StaticCss();