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;
}