public function register(Container $container)
 {
     $container['backendClass'] = function ($c) {
         $theme = $c['backendTheme'];
         if ($theme !== null) {
             return $theme->getClassName();
         }
         return 'RZ\\Roadiz\\CMS\\Controllers\\BackendController';
     };
     $container['backendTheme'] = function ($c) {
         if (isset($c['config']['install']) && false === $c['config']['install']) {
             return $c['em']->getRepository('RZ\\Roadiz\\Core\\Entities\\Theme')->findAvailableBackend();
         } else {
             return null;
         }
     };
     $container['frontendThemes'] = function ($c) {
         if (isset($c['config']['install']) && false === $c['config']['install']) {
             $themes = $c['em']->getRepository('RZ\\Roadiz\\Core\\Entities\\Theme')->findAvailableFrontends();
             if (count($themes) < 1) {
                 $defaultTheme = new Theme();
                 $defaultTheme->setClassName('RZ\\Roadiz\\CMS\\Controllers\\FrontendController');
                 $defaultTheme->setAvailable(true);
                 return [$defaultTheme];
             } else {
                 return $themes;
             }
         } else {
             return [];
         }
     };
     return $container;
 }
示例#2
0
 /**
  * Install theme and return its ID.
  *
  * @return integer
  */
 public function installFrontendTheme($classname)
 {
     $existing = $this->entityManager->getRepository('RZ\\Roadiz\\Core\\Entities\\Theme')->findOneByClassName($classname);
     if (null === $existing) {
         $feTheme = new Theme();
         $feTheme->setClassName($classname);
         $feTheme->setAvailable(true);
         $feTheme->setBackendTheme(false);
         $this->entityManager->persist($feTheme);
         $this->entityManager->flush();
         $this->clearResultCache();
         return $feTheme->getId();
     }
     return $existing->getId();
 }