public function testBuildSiteHandlingTheme() { $folders = array('RedKiteCMS' => array('app' => array('cache' => array(), 'config' => array(), 'data' => array('redkitecms.com' => array('config' => array(), 'pages' => array('pages' => array()), 'roles' => array(), 'slots' => array(), 'users' => array())), 'logs' => array(), 'plugins' => array('RedKiteCms' => array('Block' => array(), 'Theme' => array())), 'RedKiteCms.php' => 'class RedKiteCms extends RedKiteCmsBase{}'), 'src' => array(), 'web' => array())); vfsStream::setup('www', null, $folders); $siteBuilder = new SiteBuilder(vfsStream::url('www/RedKiteCMS'), 'redkitecms.com'); $siteBuilder->theme("FooTheme")->handleTheme(true)->build(); $structure = vfsStream::inspect(new \org\bovigo\vfs\visitor\vfsStreamStructureVisitor())->getStructure(); $siteStructure = array("redkitecms.com" => array("config" => array(), "pages" => array("pages" => array()), "roles" => array("roles.json" => '["ROLE_ADMIN"]'), "slots" => array(), "users" => array("users.json" => '{"admin":{"roles":["ROLE_ADMIN"],"password":"******","salt":"q4mfgrnsn2occ4kw4k008cskkwkg800"}}'), "RedKiteCms.php" => 'class RedKiteCms extends RedKiteCmsBase{}', "site.json" => '{"theme":"FooTheme","homepage":"homepage","locale_default":"en_GB","homepage_permalink":"en-gb-homepage","languages":["en_GB"],"handled_theme":"FooTheme"}', "incomplete.json" => null)); $this->assertEquals($siteStructure, $structure["www"]["RedKiteCMS"]["app"]["data"]); }
public function start(array $options) { $resolver = new OptionsResolver(); $this->configureOptions($resolver); $this->options = $resolver->resolve($options); $siteDir = $this->options["configuration_handler"]->siteDir(); $fs = new Filesystem(); $fs->remove($siteDir); $themeName = $options["request"]->get('theme'); $siteBuilder = new SiteBuilder($this->options["configuration_handler"]->rootDir(), $this->options["configuration_handler"]->siteName()); if ($this->options["configuration_handler"]->isTheme()) { $siteBuilder->handleTheme(); } $siteBuilder->theme($themeName)->build(); return $this->buildJSonResponse(array()); }
private function initCmsRequiredServices() { $configurationOptions = $this->configure(); $this->app["red_kite_cms.configuration_handler"] = new ConfigurationHandler($this->app["red_kite_cms.root_dir"], $this->siteName); $this->app["red_kite_cms.configuration_handler"]->setConfigurationOptions($configurationOptions); $siteNameDir = $this->app["red_kite_cms.root_dir"] . '/app/data/' . $this->siteName; if (!is_dir($siteNameDir)) { $siteBuilder = new SiteBuilder($this->app["red_kite_cms.root_dir"], $this->siteName); $siteBuilder->build(); } $this->app["red_kite_cms.configuration_handler"]->boot(); $this->frameworkAbsoluteDir = $this->app["red_kite_cms.configuration_handler"]->frameworkAbsoluteDir(); }