/** * Boots the factory * * @param \RedKiteCms\Configuration\ConfigurationHandler $configurationHandler */ public static function boot(ConfigurationHandler $configurationHandler) { $pluginDirs = $configurationHandler->pluginFolders(); foreach ($pluginDirs as $pluginDir) { self::$blocks += self::parse($pluginDir); } }
private static function initRouter(ConfigurationHandler $configurationHandler) { if ($configurationHandler->isProduction()) { return new RoutingFrontend($configurationHandler); } return new RoutingBackend($configurationHandler); }
/** * {@inheritdoc} */ public function loadUserByUsername($username) { $json = FilesystemTools::readFile(sprintf('%s/users/users.json', $this->configurationHandler->siteDir())); $users = json_decode($json, true); if (array_key_exists($username, $users)) { $userData = $users[$username]; return new User($username, $userData["password"], $userData["salt"], $userData["roles"]); } throw new UsernameNotFoundException(sprintf('Username "%s" does not exist.', $username)); }
/** * Generated the site map * * @param string $websiteUrl * @return string */ protected function generateSiteMap() { $urls = array(); $siteName = $this->configurationHandler->siteName(); foreach ($this->pagesCollectionParser->pages() as $page) { foreach ($page["seo"] as $seo) { $urls[] = array('href' => $siteName . '/' . $seo["permalink"], 'frequency' => $seo["sitemap_frequency"], 'priority' => $seo["sitemap_priority"]); } } return $this->twig->render('RedKiteCms/Resources/views/Sitemap/sitemap.html.twig', array('urls' => $urls)); }
/** * Returns the current signed in user * @param \Symfony\Component\Security\Core\SecurityContextInterface $security * @param \RedKiteCms\Configuration\ConfigurationHandler $configurationHandler * * @return \RedKiteCms\Bridge\Security\User */ public function fetchUser(SecurityContextInterface $security, ConfigurationHandler $configurationHandler) { $user = null; if ($configurationHandler->isTheme()) { return $user; } $token = $security->getToken(); if (null !== $token) { $user = $token->getUser(); } return $user; }
/** * Implements the action to show the user dashboard interface * @param array $options * * @return \Symfony\Component\HttpFoundation\Response */ public function show(array $options) { $resolver = new OptionsResolver(); $this->configureOptions($resolver); $this->options = $resolver->resolve($options); $userName = "******"; $templateAssets = $this->options["template_assets"]; $templateAssets->boot('dashboard'); $template = 'RedKiteCms/Resources/views/Dashboard/user.html.twig'; return $options["twig"]->render($template, array("template_assets_manager" => $templateAssets, "user" => $userName, "version" => ConfigurationHandler::getVersion())); }
/** * Implements the action to render the CMS dashboard * @param array $options * * @return \Symfony\Component\HttpFoundation\Response */ public function show(array $options) { $resolver = new OptionsResolver(); $this->configureOptions($resolver); $this->options = $resolver->resolve($options); $this->options["template_assets"]->boot('dashboard'); $backRoute = $this->options["request"]->getSession()->get('last_route'); if (!in_array($backRoute, $this->options["routes"]["pages"])) { $backRoute = $this->options["routes"]["homepage"]; } $template = 'RedKiteCms/Resources/views/Dashboard/home.html.twig'; return $options["twig"]->render($template, array("template_assets_manager" => $this->options["template_assets"], "version" => ConfigurationHandler::getVersion(), "back_route" => $backRoute)); }
/** * Implements the action to show the page collection dashboard interface * @param array $options * * @return \Symfony\Component\HttpFoundation\Response */ public function show(array $options) { $resolver = new OptionsResolver(); $this->configureOptions($resolver); $this->options = $resolver->resolve($options); $pagesParser = $this->options["pages_collection_parser"]; $pages = $pagesParser->contributor($this->options["username"])->parse()->pages(); $this->options["template_assets"]->boot('dashboard'); $templates = $this->options["theme"]->templates(); $formFactory = $this->options['form_factory']; $form = $formFactory->create(new PageType(array_combine($templates, $templates))); $pageForm = $form->createView(); $form = $formFactory->create(new SeoType()); $seoForm = $form->createView(); $template = 'RedKiteCms/Resources/views/Dashboard/pages.html.twig'; $languages = $this->options["configuration_handler"]->languages(); return $options["twig"]->render($template, array("template_assets_manager" => $this->options["template_assets"], "pages" => rawurlencode(json_encode($pages)), "pageForm" => $pageForm, "seoForm" => $seoForm, "version" => ConfigurationHandler::getVersion(), "home_template" => $this->options["theme"]->homepageTemplate(), "languages" => $languages)); }
/** * Implements the action to show the themes dashboard interface * @param array $options * * @return \Symfony\Component\HttpFoundation\Response */ public function show(array $options) { $resolver = new OptionsResolver(); $this->configureOptions($resolver); $this->options = $resolver->resolve($options); $templateAssets = $this->options["template_assets"]; $templateAssets->boot('dashboard'); $themes = array(); $themePlugins = $this->options["plugin_manager"]->getThemePlugins(); foreach ($themePlugins as $themePlugin) { if ($themePlugin->getName() == $this->options["configuration_handler"]->theme()) { $themes["active_theme"] = $themePlugin; continue; } $themes["available_themes"][] = $themePlugin; } $template = 'RedKiteCms/Resources/views/Dashboard/themes.html.twig'; return $options["twig"]->render($template, array("template_assets_manager" => $templateAssets, "themes" => $themes, "isTheme" => $this->options["configuration_handler"]->isTheme(), "version" => ConfigurationHandler::getVersion())); }
public function testConfigurationOptions() { $this->init(); $configurationHandler = new ConfigurationHandler(vfsStream::url('RedKiteCMS'), 'redkitecms.com', 'vendor/redkitecms-framework'); $configurationHandler->setConfigurationOptions(array('web_dir' => 'public_folder', 'uploads_dir' => '/files')); $configurationHandler->boot(); $this->assertEquals('public_folder', $configurationHandler->webDirname()); $this->assertEquals('vfs://RedKiteCMS/public_folder/files/redkitecms.com/backend', $configurationHandler->uploadAssetsDir()); $this->assertEquals('vfs://RedKiteCMS/public_folder/files/redkitecms.com/production', $configurationHandler->uploadAssetsDirProduction()); }