Current File : /home/resuelf/www/wp-content/plugins/starbox/classes/DisplayController.php
<?php defined('ABSPATH') || die('Cheatin\' uh?'); ?>
<?php

/**
 * The class handles the theme part in WP
 */
class ABH_Classes_DisplayController {

    private static $name;
    /** @var array all css js handles */
    private static $handles = array();

    /**
     * echo the css link from theme css directory
     *
     * @param string $filename The name of the css file or the entire uri path of the css file
     * @param string $media
     *
     * @return string
     */
    public static function loadMedia($filename = '', $params = array('trigger' => true), $media = 'all') {

        if (ABH_Classes_Tools::isAjax() || ABH_Classes_Tools::isApi()){
            return;
        }

        $css_uri = '';
        $js_uri = '';

        /* if is a custom css file */
        if (strpos($filename, '//') === false) {
            $filename = strtolower($filename);

            if (file_exists(_ABH_THEME_DIR_ . 'css/' . $filename . (ABH_DEBUG ? '' : '.min') . '.css')) {
                $css_uri = _ABH_THEME_URL_ . 'css/' . $filename . (ABH_DEBUG ? '' : '.min') . '.css?ver=' . ABH_VERSION ;
            }
            if (file_exists(_ABH_THEME_DIR_ . 'js/' . $filename . (ABH_DEBUG ? '' : '.min') . '.js')) {
                $js_uri = _ABH_THEME_URL_ . 'js/' . $filename . (ABH_DEBUG ? '' : '.min') . '.js?ver=' . ABH_VERSION;
            }
        } elseif (strpos($filename, '.css') !== FALSE)
            $css_uri = $filename;
        elseif (strpos($filename, '.js') !== FALSE) {
            $js_uri = $filename;
        }

        $handle = substr(md5($filename), 0, 10);

        //add the current handle in queue
        self::$handles[] = $handle;

        if ($css_uri <> '') {

            if (wp_style_is($handle)) {
                wp_dequeue_style($handle);
            }

            wp_enqueue_style($handle, $css_uri, null, ABH_VERSION, $media);

            if (is_admin() || isset($params['trigger']) && $params['trigger'] === true) {
                wp_print_styles(array($handle));
            }
        }

        if ($js_uri <> '') {

            if (wp_script_is($handle)) {
                wp_dequeue_script($handle);
            }

            wp_enqueue_script($handle, $js_uri, array('jquery'), ABH_VERSION, true);

            if (isset($params['trigger']) && $params['trigger'] === true) {
                wp_print_scripts(array($handle));
            }
        }
    }

    /**
     * Hook the styles and scripts
     * @return void
     */
    public function hookFooter(){
        if (is_admin() && !empty(self::$handles)) {
            wp_print_styles(self::$handles);
            wp_print_scripts(self::$handles);
        }
    }

    /**
     * Called for any class to show the block content
     *
     * @param string $block the name of the block file in theme directory (class name by default)
     *
     * @return string of the current class view
     */
    public function output($block, $obj) {
        self::$name = $block;
        echo $this->echoBlock($obj);
    }

    /**
     * echo the block content from theme directory
     *
     * @return string
     */
    public static function echoBlock($view) {
        global $post_ID;
        if (file_exists(_ABH_THEME_DIR_ . self::$name . '.php')) {
            ob_start();
            /* includes the block from theme directory */
            include(_ABH_THEME_DIR_ . self::$name . '.php');
            $block_content = ob_get_contents();
            ob_end_clean();

            return $block_content;
        }
    }

}