/**
  * @return bool|string
  * @throws \SystemException
  */
 public function getContent()
 {
     switch ($this->popup->content_type) {
         case 'imageUrl':
             return "<img src='{$this->popup->content_image_url}'>";
             break;
         case 'imageUpload':
             return '<img src="' . MediaLibrary::instance()->getPathUrl($this->popup->content_image_upload) . '">';
             break;
         case 'page':
             /** @var Page $page */
             $page = Page::load(Theme::getActiveTheme(), $this->popup->content_page);
             $cms = new CmsController();
             return $cms->run($page->url)->getContent();
             break;
         case 'markdown':
             return \Markdown::parse($this->popup->content_markdown);
             break;
     }
 }
 public function register()
 {
     if ($this->app->runningInConsole()) {
         return;
     }
     /**
      * @var \Illuminate\Http\Request $request
      */
     $request = $this->app->make('request');
     /**
      * @var \Illuminate\Contracts\Config\Repository $config
      */
     $config = $this->app->make('config');
     /**
      * @var \Illuminate\Contracts\Events\Dispatcher $eventDispatcher
      */
     $eventDispatcher = $this->app->make('events');
     $backendUri = $config->get('cms.backendUri');
     if ($request && $request->is($backendUri . '*')) {
         $eventDispatcher->listen('backend.form.extendFields', function ($widget) {
             if (!$widget->getController() instanceof \Cms\Controllers\Index) {
                 return;
             }
             if (!$widget->model instanceof \Cms\Classes\Page) {
                 return;
             }
             $widget->addFields(['settings[is_public]' => ['label' => 'This page is public and can be cached', 'tab' => 'Caching', 'type' => 'checkbox']], 'primary');
         });
         $eventDispatcher->listen('cms.template.save', function ($controller, $template, $type) {
             if ($type === 'page') {
             }
             if ($type === 'asset') {
             }
         });
         return;
     }
     $this->app->singleton('Keios\\HttpCacheSupport\\Classes\\HttpCacheSupportMiddleware', function () {
         return new HttpCacheSupportMiddleware();
     });
     CmsController::extend(function (CmsController $controller) {
         $controller->middleware('Keios\\HttpCacheSupport\\Classes\\HttpCacheSupportMiddleware');
     });
     $eventDispatcher->listen('cms.page.display', function ($controller, $url, Page $page, $response) {
         $page->addVisible('is_public');
         if ($page->is_public) {
             $this->app->make('Keios\\HttpCacheSupport\\Classes\\HttpCacheSupportMiddleware')->addCachingHeader();
         }
     });
 }