make() public method

public make ( $property )
Ejemplo n.º 1
0
 public function apijs()
 {
     if (!defined('MW_NO_SESSION')) {
         define('MW_NO_SESSION', 1);
     }
     $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'];
         }
     }
     if (isset($_SERVER['HTTP_REFERER'])) {
         $cat_url = mw()->category_manager->get_category_id_from_url($_SERVER['HTTP_REFERER']);
         if ($cat_url != false) {
             if (!defined('CATEGORY_ID')) {
                 define('CATEGORY_ID', intval($cat_url));
             }
         }
     }
     $file = mw_includes_path() . 'api' . DS . 'api.js';
     $last_modified_time = $lastModified = filemtime($file);
     $ifModifiedSince = isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) ? $_SERVER['HTTP_IF_MODIFIED_SINCE'] : false;
     $etagHeader = isset($_SERVER['HTTP_IF_NONE_MATCH']) ? trim($_SERVER['HTTP_IF_NONE_MATCH']) : false;
     if (defined('MW_VERSION')) {
         $etag = md5(filemtime($file) . MW_VERSION);
     } else {
         $etag = filemtime($file);
     }
     $this->app->content_manager->define_constants($ref_page);
     $l = new \Microweber\View($file);
     $l = $l->__toString();
     $l = str_replace('{SITE_URL}', $this->app->url_manager->site(), $l);
     $l = str_replace('{MW_SITE_URL}', $this->app->url_manager->site(), $l);
     $l = str_replace('%7BSITE_URL%7D', $this->app->url_manager->site(), $l);
     $response = \Response::make($l);
     $response->header('Content-Type', 'application/javascript');
     $compile_assets = \Config::get('microweber.compile_assets');
     if ($compile_assets and defined('MW_VERSION')) {
         $userfiles_dir = userfiles_path();
         $hash = md5(site_url());
         $userfiles_cache_dir = normalize_path($userfiles_dir . 'cache' . DS . 'apijs');
         $userfiles_cache_filename = $userfiles_cache_dir . 'api.' . $hash . '.' . 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);
             }
         }
     }
     if (!$this->app->make('config')->get('app.debug')) {
         // enable caching if in not in debug mode
         $response->header('Etag', $etag);
         $response->header('Last-Modified', gmdate('D, d M Y H:i:s', $last_modified_time) . ' GMT');
         $response->setTtl(30);
     }
     return $response;
 }