예제 #1
0
 /**
  * Constructor
  *
  * @param TemplateManager            $templateManager
  * @param FactoryRepositoryInterface $factoryRepository
  */
 public function __construct(TemplateManager $templateManager, FactoryRepositoryInterface $factoryRepository)
 {
     $this->templateManager = $templateManager;
     $this->factoryRepository = $factoryRepository;
     $this->languagesRepository = $this->factoryRepository->createRepository('Language');
     $this->pagesRepository = $this->factoryRepository->createRepository('Page');
 }
예제 #2
0
 /**
  * Constructor
  *
  * @param EventsHandlerInterface       $eventsHandler
  * @param FactoryRepositoryInterface   $factoryRepository
  * @param BlockManagerFactoryInterface $blockManagerFactory
  * @param ParametersValidatorInterface $validator
  */
 public function __construct(EventsHandlerInterface $eventsHandler, FactoryRepositoryInterface $factoryRepository, BlockManagerFactoryInterface $blockManagerFactory = null, ParametersValidatorInterface $validator = null)
 {
     $blockManagerFactory = null === $blockManagerFactory ? new BlockManagerFactory($eventsHandler) : $blockManagerFactory;
     parent::__construct($eventsHandler, $blockManagerFactory, $validator);
     $this->factoryRepository = $factoryRepository;
     $this->blockRepository = $this->factoryRepository->createRepository('Block');
     $this->dispatcher = $eventsHandler->getEventDispatcher();
 }
예제 #3
0
 /**
  * Constructor
  *
  * @param Slot                       $slot
  * @param PageBlocksInterface        $pageContentsContainer
  * @param FactoryRepositoryInterface $factoryRepository
  *
  * @api
  */
 public function __construct(Slot $slot, PageBlocksInterface $pageContentsContainer, FactoryRepositoryInterface $factoryRepository)
 {
     $this->slot = $slot;
     $this->pageContentsContainer = $pageContentsContainer;
     $this->factoryRepository = $factoryRepository;
     $this->languageRepository = $this->factoryRepository->createRepository('Language');
     $this->pageRepository = $this->factoryRepository->createRepository('Page');
     $this->blockRepository = $this->factoryRepository->createRepository('Block');
     $slotBlocks = $this->pageContentsContainer->getSlotBlocks($this->slot->getSlotName());
     $this->blocksToArray($slotBlocks);
 }
예제 #4
0
 /**
  * Constructor
  *
  * @param TemplateAssetsManager        $templateAssetsManager
  * @param ActiveThemeInterface       $activeTheme
  * @param TemplateManager            $templateManager
  * @param PageBlocksInterface        $pageBlocks
  * @param FactoryRepositoryInterface $factoryRepository
  *
  * @api
  */
 public function __construct(TemplateAssetsManager $templateAssetsManager, ActiveThemeInterface $activeTheme, TemplateManager $templateManager, PageBlocksInterface $pageBlocks, FactoryRepositoryInterface $factoryRepository)
 {
     $this->assetsManager = $templateAssetsManager;
     $this->activeTheme = $activeTheme;
     $this->theme = $activeTheme->getActiveThemeBackend();
     $this->templateManager = $templateManager;
     $this->pageBlocks = $pageBlocks;
     $this->factoryRepository = $factoryRepository;
     $this->languageRepository = $this->factoryRepository->createRepository('Language');
     $this->pageRepository = $this->factoryRepository->createRepository('Page');
     $this->blockRepository = $this->factoryRepository->createRepository('Block');
 }
예제 #5
0
 private function seoRepository()
 {
     if (null === $this->seoRepository) {
         $this->seoRepository = $this->factoryRepository->createRepository('Seo');
     }
     return $this->seoRepository;
 }
예제 #6
0
 public function showAction(Request $request)
 {
     $this->kernel = $this->container->get('kernel');
     $pageTree = $this->container->get('red_kite_cms.page_tree');
     $isSecure = null !== $this->get('security.context')->getToken() ? true : false;
     $this->factoryRepository = $this->container->get('red_kite_cms.factory_repository');
     $this->languageRepository = $this->factoryRepository->createRepository('Language');
     $this->pageRepository = $this->factoryRepository->createRepository('Page');
     $this->seoRepository = $this->factoryRepository->createRepository('Seo');
     $bootstrapVersion = $this->container->get('red_kite_cms.active_theme')->getThemeBootstrapVersion();
     $params = array('template' => 'RedKiteCmsBundle:Cms:Welcome/welcome.html.twig', 'templateStylesheets' => null, 'templateJavascripts' => null, 'available_blocks' => null, 'internal_stylesheets' => null, 'internal_javascripts' => null, 'skin_path' => $this->getSkin(), 'is_secure' => $isSecure, 'page' => 0, 'language' => 0, 'available_languages' => $this->container->getParameter('red_kite_cms.available_languages'), 'frontController' => $this->getFrontcontroller($request));
     if (null !== $pageTree) {
         $pageId = 0;
         $languageId = 0;
         $pageName = '';
         $languageName = '';
         $page = $pageTree->getPage();
         $language = $pageTree->getLanguage();
         if (null !== $page) {
             $pageId = $page->getId();
             $pageName = $page->getPageName();
         }
         if (null !== $language) {
             $languageId = $language->getId();
             $languageName = $language->getLanguageName();
         }
         $blocksAddedMenu = $this->container->get('red_kite_cms.blocks_adder_menu');
         $template = $this->findTemplate($pageTree);
         $params = array_merge($params, array('metatitle' => $pageTree->getMetaTitle(), 'metadescription' => $pageTree->getMetaDescription(), 'metakeywords' => $pageTree->getMetaKeywords(), 'internal_stylesheets' => $pageTree->getInternalStylesheets(), 'internal_javascripts' => $pageTree->getInternalJavascripts(), 'template' => $template, 'pages' => ChoiceValues::getPages($this->pageRepository), 'languages' => ChoiceValues::getLanguages($this->languageRepository), 'permalinks' => ChoiceValues::getPermalinks($this->seoRepository, $languageId), 'page' => $pageId, 'language' => $languageId, 'page_name' => $pageName, 'language_name' => $languageName, 'base_template' => $this->container->getParameter('red_kite_labs_theme_engine.base_template'), 'templateStylesheets' => $pageTree->getExternalStylesheets(), 'templateJavascripts' => $this->fixAssets($pageTree->getExternalJavascripts()), 'available_blocks' => $blocksAddedMenu->build($this->container->get('red_kite_cms.block_manager_factory')->getBlocks())));
     } else {
         $configuration = $this->container->get('red_kite_cms.configuration');
         $cmsLanguage = $configuration->read('language');
         $message = $this->container->get('translator')->trans('cms_controller_page_not_exists_for_given_language', array('%page%' => $request->get('page'), '%language%' => $request->get('_locale')), 'RedKiteCmsBundle', $cmsLanguage);
         $this->container->get('session')->getFlashBag()->add('notice', $message);
     }
     $response = $this->render(sprintf('RedKiteCmsBundle:Bootstrap:%s/Template/Cms/template.html.twig', $bootstrapVersion), $params);
     return $this->dispatchEvents($request, $response);
 }
예제 #7
0
 /**
  * @param  string|int|Page        $page
  * @return Page
  * @throws InvalidArgumentException
  */
 private function fetchPage($page)
 {
     if ($page instanceof Page) {
         return $page;
     }
     $pageRepository = $this->factoryRepository->createRepository('Page');
     if (is_string($page)) {
         $page = $pageRepository->fromPageName($page);
         $this->checkNull($page, 'exception_page_not_found');
         return $page;
     }
     if (is_numeric($page)) {
         $page = $pageRepository->fromPK($page);
         $this->checkNull($page, 'exception_page_not_found');
         return $page;
     }
     throw new InvalidArgumentException('exception_page_not_retrieved');
 }
예제 #8
0
 private function doSetFactoryRepository($factoryRepository)
 {
     $this->factoryRepository = $factoryRepository;
     $this->blockRepository = null !== $this->factoryRepository ? $this->factoryRepository->createRepository('Block') : null;
 }
예제 #9
0
 /**
  * Constructor
  *
  * @param \RedKiteLabs\RedKiteCms\RedKiteCmsBundle\Core\EventsHandler\EventsHandlerInterface           $eventsHandler
  * @param \RedKiteLabs\RedKiteCms\RedKiteCmsBundle\Core\Repository\Factory\FactoryRepositoryInterface  $factoryRepository
  * @param \RedKiteLabs\RedKiteCms\RedKiteCmsBundle\Core\Content\Validator\ParametersValidatorInterface $validator
  *
  * @api
  */
 public function __construct(EventsHandlerInterface $eventsHandler, FactoryRepositoryInterface $factoryRepository, ParametersValidatorInterface $validator = null)
 {
     parent::__construct($eventsHandler, $validator);
     $this->factoryRepository = $factoryRepository;
     $this->seoRepository = $this->factoryRepository->createRepository('Seo');
 }
 /**
  * Constructor
  *
  * @param FactoryRepositoryInterface $factoryRepository
  *
  * @api
  */
 public function __construct(FactoryRepositoryInterface $factoryRepository)
 {
     $this->languageRepository = $factoryRepository->createRepository('Language');
 }
예제 #11
0
 /**
  * Constructor
  *
  * @param FactoryRepositoryInterface $factoryRepository
  *
  * @api
  */
 public function __construct(FactoryRepositoryInterface $factoryRepository)
 {
     $this->factoryRepository = $factoryRepository;
     $this->blockRepository = $this->factoryRepository->createRepository('Block');
 }
예제 #12
0
 /**
  * Constructor
  *
  * @param EventsHandlerInterface             $eventsHandler
  * @param FactoryRepositoryInterface         $factoryRepository
  * @param ParametersValidatorLanguageManager $validator
  *
  * @api
  */
 public function __construct(EventsHandlerInterface $eventsHandler, FactoryRepositoryInterface $factoryRepository, ParametersValidatorLanguageManager $validator = null)
 {
     parent::__construct($eventsHandler, $validator);
     $this->factoryRepository = $factoryRepository;
     $this->languageRepository = $this->factoryRepository->createRepository('Language');
 }
예제 #13
0
 /**
  * Constructor
  *
  * @param FactoryRepositoryInterface $factoryRepository
  */
 public function __construct(FactoryRepositoryInterface $factoryRepository)
 {
     $this->factoryRepository = $factoryRepository;
     $this->configurationRepository = $this->factoryRepository->createRepository('Configuration');
 }
예제 #14
0
 /**
  * Constructor
  *
  * @param SeoManager                 $seoManager
  * @param FactoryRepositoryInterface $factoryRepository
  *
  * @api
  */
 public function __construct(SeoManager $seoManager, FactoryRepositoryInterface $factoryRepository)
 {
     $this->seoManager = $seoManager;
     $this->languageRepository = $factoryRepository->createRepository('Language');
 }