Microweber\Controllers\DefaultController::apijs_settings PHP Method

apijs_settings() public method

public apijs_settings ( )
    public function apijs_settings()
    {
        if (!defined('MW_NO_SESSION')) {
            define('MW_NO_SESSION', 1);
        }
        $lastModified = time() - 120;
        $etagFile = md5(serialize($_REQUEST));
        $ifModifiedSince = isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) ? $_SERVER['HTTP_IF_MODIFIED_SINCE'] : false;
        //get the HTTP_IF_NONE_MATCH header if set (etag: unique file hash)
        $etagHeader = isset($_SERVER['HTTP_IF_NONE_MATCH']) ? trim($_SERVER['HTTP_IF_NONE_MATCH']) : false;
        //set last-modified header
        // header("Last-Modified: " . gmdate("D, d M Y H:i:s", $lastModified) . " GMT");
        // header('Cache-Control: public');
        // header("Etag: $etagFile");
        if (@strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']) == $lastModified || $etagHeader == $etagFile) {
            // header("HTTP/1.1 304 Not Modified");
            // return;
            // exit;
        }
        $ref_page = false;
        if (isset($_REQUEST['id'])) {
            $ref_page = $this->app->content_manager->get_by_id($_REQUEST['id']);
        } elseif (isset($_SERVER['HTTP_REFERER'])) {
            $ref_page = $_SERVER['HTTP_REFERER'];
            if ($ref_page != '') {
                $ref_page = $this->app->content_manager->get_by_url($ref_page);
                $page_id = $ref_page['id'];
            }
        }
        $cat_url = false;
        if (isset($_REQUEST['category_id'])) {
            $cat_url = intval($_REQUEST['category_id']);
        } elseif (isset($_SERVER['HTTP_REFERER'])) {
            $cat_url = mw()->category_manager->get_category_id_from_url($_SERVER['HTTP_REFERER']);
            $cat_url = intval($cat_url);
        }
        if ($cat_url != false) {
            if (!defined('CATEGORY_ID')) {
                define('CATEGORY_ID', intval($cat_url));
            }
        }
        // header("Content-type: text/javascript");
        $file = mw_includes_path() . 'api' . DS . 'api_settings.js';
        $this->app->content_manager->define_constants($ref_page);
        $l = new \Microweber\View($file);
        $l = $l->__toString();
        $compile_assets = \Config::get('microweber.compile_assets');
        if ($compile_assets and defined('MW_VERSION')) {
            $userfiles_dir = userfiles_path();
            $userfiles_cache_dir = normalize_path($userfiles_dir . 'cache' . DS . 'apijs');
            $userfiles_cache_filename = $userfiles_cache_dir . 'api_settings.' . md5(site_url() . template_dir()) . '.' . MW_VERSION . '.js';
            if (!is_file($userfiles_cache_filename)) {
                if (!is_dir($userfiles_cache_dir)) {
                    mkdir_recursive($userfiles_cache_dir);
                }
                if (is_dir($userfiles_cache_dir)) {
                    @file_put_contents($userfiles_cache_filename, $l);
                }
            } else {
                $fmd5 = md5_file($userfiles_cache_filename);
                $fmd = md5($l);
                if ($fmd5 != $fmd) {
                    @file_put_contents($userfiles_cache_filename, $l);
                }
            }
        }
        $response = \Response::make($l);
        $response->header('Content-Type', 'application/javascript');
        return $response;
        // return;
    }