Example #1
0
 /**
  * Boot method, called right before the request route.
  *
  * @return array
  */
 public function boot()
 {
     if (Settings::get('ajax_flash_message_enabled', false)) {
         \Event::listen('cms.page.beforeDisplay', function ($controller) {
             $controller->getTwig()->addExtension(new TwigExtension());
             $controller->addJs('/plugins/ebussola/statefull/assets/js/ajax-flash-message.min.js', ['id' => 'ebussola-statefull-ajax-flash-message-script', 'data-domain' => trim(\Config::get('app.url'), '/ '), 'data-wrapper' => Settings::get('ajax_flash_message_element_wrapper', 'body'), 'data-delay' => Settings::get('ajax_flash_message_delay', '4500')]);
         });
     }
     $this->registerConsoleCommand('statefull:cache:refresh', '\\ebussola\\statefull\\commands\\StatefullCacheRefresh');
     $this->registerConsoleCommand('statefull:cache:clean', '\\ebussola\\statefull\\commands\\StatefullCacheClean');
 }
 public function onRun()
 {
     $this->ajaxPageContainer = Settings::get('ajax_page_container', Settings::ajaxPageContainerDefault);
 }
Example #3
0
            Route::get('/{route}', function ($route) use($cachePath) {
                \eBussola\Statefull\Plugin::$routerActive = true;
                $file = $cachePath . '/' . $route . '.html';
                if (file_exists($file)) {
                    return file_get_contents($file);
                } else {
                    try {
                        /**
                         * For development purpose, you must set the loopbackUrl on config to use a different baseURL for internal php server.
                         * Because it can handle only one request at a time, you need to open 2 servers with different port or hostname.
                         */
                        $responseRaw = file_get_contents(Config::get('app.loopbackUrl', Config::get('app.url')) . '/' . $route . '?nocache=1');
                    } catch (ErrorException $e) {
                        if (strstr($e->getMessage(), '404 Not Found')) {
                            $controller = App::make('Cms\\Classes\\Controller');
                            $response = $controller->run('/404');
                            $response->setStatusCode(404);
                            return $response;
                        } else {
                            throw $e;
                        }
                    }
                    if (\Ebussola\Statefull\Models\Settings::get('cache_lazy_cache', false)) {
                        (new CacheFileHandler())->saveCacheFile($route, $responseRaw);
                    }
                    return $responseRaw;
                }
            })->where('route', '^(?!backend)(?!combine)' . $blacklist . '.*');
        }
    }
}
 /**
  * @param $request
  * @param $responseRaw
  */
 private function tryLazyCache($pagePath, $responseRaw)
 {
     if (\Ebussola\Statefull\Models\Settings::get('cache_lazy_cache', false)) {
         (new CacheFileHandler())->saveCacheFile($pagePath, $responseRaw);
     }
 }