コード例 #1
0
 /**
  * {@inheritdoc}
  */
 protected function copy(array $values)
 {
     unset($values['Id']);
     unset($values['CreatedAt']);
     $values['Content'] = $this->configurePermalinkForNewLanguage($values['Content']);
     $values['LanguageId'] = $this->languageManager->get()->getId();
     $result = $this->blockManager->set(null)->save($values);
     return $result;
 }
コード例 #2
0
 public function __construct(ContainerInterface $container, ParametersValidatorInterface $validator = null)
 {
     $this->container = $container;
     $eventsHandler = $container->get('red_kite_cms.events_handler');
     $factoryRepository = $container->get('red_kite_cms.factory_repository');
     $this->translator = $this->container->get('red_kite_cms.translator');
     parent::__construct($eventsHandler, $factoryRepository, $validator);
 }
コード例 #3
0
 /**
  * Constructor
  *
  * @param null|EventsHandlerInterface       $eventsHandler
  * @param null|FactoryRepositoryInterface   $factoryRepository
  * @param null|ParametersValidatorInterface $validator
  * @param null|TranslatorInterface          $translator
  */
 public function __construct(EventsHandlerInterface $eventsHandler = null, FactoryRepositoryInterface $factoryRepository = null, ParametersValidatorInterface $validator = null, TranslatorInterface $translator = null)
 {
     parent::__construct($eventsHandler, $factoryRepository, $validator);
     $this->translator = $translator;
 }
コード例 #4
0
 public function getExecuteInternalJavascript()
 {
     return null === $this->executeInternalJavascript ? parent::getExecuteInternalJavascript() : $this->executeInternalJavascript;
 }
コード例 #5
0
 public function renderIncludedBlock($key, BlockManager $parent = null, $type = "Text", $addWhenEmpty = false, $defaultContent = "", $editorExtraAttributes = "", $blockExtraOptions = array())
 {
     $blocksRepository = $this->container->get('red_kite_cms.factory_repository');
     $repository = $blocksRepository->createRepository('Block');
     $blocks = $repository->retrieveContents(null, null, $key);
     $blockManagerFactory = $this->container->get('red_kite_cms.block_manager_factory');
     $extraOptions = array('parent_slot_name' => $key);
     if (null !== $parent && preg_match('/' . $parent->get()->getId() . '\\-([0-9]+)/', $key, $matches)) {
         $extraOptions['parent_block_id'] = $parent->get()->getId();
         $extraOptions['key'] = $matches[1];
     }
     if (count($blocks) > 0) {
         $alBlock = $blocks[0];
         $type = $alBlock->getType();
         $blockManager = $blockManagerFactory->createBlockManager($type);
         if (null !== $blockManager) {
             $blockManager->set($alBlock);
             $blockManager->setBlockExtraOptions($blockExtraOptions);
             if (null !== $parent) {
                 $blockManager->setEditorDisabled($parent->getEditorDisabled());
             }
             return $this->renderBlock($blockManager, '_included_block.html.twig', true, $editorExtraAttributes, $extraOptions);
         }
         // @codeCoverageIgnoreStart
     }
     // @codeCoverageIgnoreEnd
     if (true === $addWhenEmpty) {
         if (null === $parent) {
             throw new RuntimeException($this->translator->translate('twig_extension_valid_block_manager_required', array(), 'RedKiteCmsBundle'));
         }
         $blockManager = $blockManagerFactory->createBlockManager($type);
         if (null !== $blockManager) {
             $blockManager->setEditorDisabled($parent->getEditorDisabled());
             $blockManager->setBlockExtraOptions($blockExtraOptions);
             $parentBlock = $parent->get();
             $values = array("PageId" => $parentBlock->getPageId(), "LanguageId" => $parentBlock->getLanguageId(), "SlotName" => $key, "Type" => $type, "ContentPosition" => 1);
             if (!empty($defaultContent)) {
                 $values["Content"] = $defaultContent;
             }
             $blockManager->save($values);
             return $this->renderBlock($blockManager, '_included_block.html.twig', true, $editorExtraAttributes, $extraOptions);
         }
         // @codeCoverageIgnoreStart
     }
     // @codeCoverageIgnoreEnd
     return sprintf('<div data-editor="enabled" data-block-id="0" data-slot-name="%s" data-included="1">%s</div>', $key, $this->translator->translate('twig_extension_empty_slot', array(), 'RedKiteCmsBundle'));
 }