/** * {@inheritdoc} */ public function main(App $app) { $app['system'] = $this; $app['isAdmin'] = false; $app->factory('finder', function () { return Finder::create(); }); $app['db.em']; // -TODO- fix me $theme = $this->config('site.theme'); foreach (array_merge($this->config['extensions'], (array) $theme) as $module) { try { $app['module']->load($module); } catch (\RuntimeException $e) { $app['log']->warn("Unable to load extension: {$module}"); } } if (!($app['theme'] = $app->module($theme))) { $app['theme'] = new Module(['name' => 'default-theme', 'path' => '', 'config' => [], 'layout' => 'views:system/blank.php']); } $app->extend('view', function ($view) use($app) { $theme = $app->isAdmin() ? $app->module('system/theme') : $app['theme']; $view->map('layout', $theme->get('layout', 'views:template.php')); return $view->addGlobal('theme', $app['theme']); }); }
/** * {@inheritdoc} */ public function main(App $app) { $app['system'] = $this; $app['isAdmin'] = false; $app->factory('finder', function () { return Finder::create(); }); $app['db.em']; // -TODO- fix me $app->extend('view', function ($view) use($app) { $theme = $app->isAdmin() ? $app->module('system/theme') : $app['theme']; $view->map('layout', $theme->get('layout', 'views:template.php')); return $view->addGlobal('theme', $app['theme']); }); $app->extend('assets', function ($factory) use($app) { $secret = $this->config['secret']; $version = substr(sha1($app['version'] . $secret), 0, 4); $factory->setVersion($version); return $factory; }); $theme = $this->config('site.theme'); $app['module']->addLoader(function ($module) use($app, $theme) { if (in_array($module['name'], $this->config['extensions'])) { $module['type'] = 'extension'; $app['locator']->add("{$module['name']}:", $module['path']); $app['locator']->add("views:{$module['name']}", "{$module['path']}/views"); } else { if ($module['name'] == $theme) { $module['type'] = 'theme'; $app['locator']->add('theme:', $module['path']); $app['locator']->add('views:', "{$module['path']}/views"); } } return $module; }); foreach (array_merge($this->config['extensions'], (array) $theme) as $module) { try { $app['module']->load($module); } catch (\RuntimeException $e) { $module = ucfirst($module); $app['log']->error("[{$module} exception]: {$e->getMessage()}"); } } if (!($app['theme'] = $app->module($theme))) { $app['theme'] = new Module(['name' => 'theme-default', 'type' => 'theme', 'path' => '', 'config' => [], 'layout' => 'views:system/blank.php']); } }
/** * Puts the page in maintenance mode. */ public function onRequest($event, $request) { if (!$event->isMasterRequest()) { return; } $site = App::module('system/site'); if ($site->config('maintenance.enabled') && !(App::isAdmin() || $request->attributes->get('_maintenance') || App::user()->hasAccess('site: maintenance access'))) { $message = $site->config('maintenance.msg') ?: __("We'll be back soon."); $response = App::view('system/theme:views/maintenance.php', compact('message')); $request->attributes->set('_disable_debugbar', true); $types = $request->getAcceptableContentTypes(); if ('json' == $request->getFormat(array_shift($types))) { $response = App::response()->json($message, 503); } else { $response = App::response($response, 503); } $event->setResponse($response); } }
/** * Puts the page in maintenance mode. */ public function onRequest($event, $request) { if (!$event->isMasterRequest()) { return; } $site = App::module('system/site'); if ($site->config('maintenance.enabled') && !(App::isAdmin() || $request->attributes->get('_maintenance') || App::user()->hasAccess('site: maintenance access') || App::user()->hasAccess('system: access admin area'))) { $message = $site->config('maintenance.msg') ?: __("We'll be back soon."); $logo = $site->config('maintenance.logo') ?: 'app/system/assets/images/pagekit-logo-large-black.svg'; $response = App::view('system/theme:views/maintenance.php', compact('message', 'logo')); $request->attributes->set('_disable_debugbar', true); $types = $request->getAcceptableContentTypes(); if (!App::user()->isAuthenticated() && $request->isXMLHttpRequest()) { App::abort('401', 'Unauthorized'); } elseif ('json' == $request->getFormat(array_shift($types))) { $response = App::response()->json($message, 503); } else { $response = App::response($response, 503); } $event->setResponse($response); } }