/**
  * @param string $htmlContent
  * @param string $language
  * @param string $routePattern
  *
  * @return Node
  */
 protected function generateNodeGlobal($htmlContent, $language, $routePattern)
 {
     $nodeError503Block = new Block();
     $nodeError503Block->setLabel('Wysiwyg');
     $nodeError503Block->setComponent(TinyMCEWysiwygStrategy::NAME);
     $nodeError503Block->setAttributes(array("htmlContent" => $htmlContent));
     $nodeError503Block = $this->generateBlock($nodeError503Block);
     $main = new Area();
     $main->addBlock($nodeError503Block);
     $header = $this->createHeader();
     $footer = $this->createFooter();
     $nodeError503 = $this->createBaseNode();
     $nodeError503->setArea('main', $main);
     $nodeError503->setArea('footer', $footer);
     $nodeError503->setArea('header', $header);
     $nodeError503->setNodeType(NodeInterface::TYPE_ERROR);
     $nodeError503->setLanguage($language);
     $nodeError503->setNodeId(NodeInterface::ERROR_503_NODE_ID);
     $nodeError503->setName('Error 503');
     $nodeError503->setCreatedBy('fake_admin');
     $nodeError503->setParentId(NodeInterface::ROOT_PARENT_ID);
     $nodeError503->setRoutePattern($routePattern);
     $nodeError503->setInFooter(false);
     $nodeError503->setInMenu(false);
     $nodeError503->setOrder(-1);
     return $nodeError503;
 }
 /**
  * @param string $htmlContent
  * @param string $name
  * @param string $language
  * @param string $routePattern
  *
  * @return Node
  */
 protected function generateNodeGlobal($htmlContent, $name, $language, $routePattern)
 {
     $nodeAutoPublishBlock = new Block();
     $nodeAutoPublishBlock->setLabel('Wysiwyg');
     $nodeAutoPublishBlock->setComponent(TinyMCEWysiwygStrategy::NAME);
     $nodeAutoPublishBlock->setAttributes(array("htmlContent" => $htmlContent));
     $nodeAutoPublishBlock = $this->generateBlock($nodeAutoPublishBlock);
     $main = new Area();
     $main->addBlock($nodeAutoPublishBlock);
     $header = $this->createHeader();
     $footer = $this->createFooter();
     $nodeAutoPublish = $this->createBaseNode();
     $nodeAutoPublish->setArea('main', $main);
     $nodeAutoPublish->setArea('footer', $footer);
     $nodeAutoPublish->setArea('header', $header);
     $nodeAutoPublish->setNodeId('fixture_auto_unpublish');
     $nodeAutoPublish->setName($name);
     $nodeAutoPublish->setLanguage($language);
     $nodeAutoPublish->setParentId(NodeInterface::ROOT_NODE_ID);
     $nodeAutoPublish->setOrder(15);
     $nodeAutoPublish->setRoutePattern($routePattern);
     $nodeAutoPublish->setInFooter(false);
     $nodeAutoPublish->setInMenu(false);
     return $nodeAutoPublish;
 }
 /**
  * @param string        $name
  * @param string        $language
  * @param ObjectManager $manager
  * @param string        $htmlBody
  * @param string        $pattern
  *
  * @return NodeInterface
  */
 public function generateSimpleNode($name, $language, ObjectManager $manager, $htmlBody = null, $pattern = null)
 {
     $areaHeader = $this->generateHeaderArea();
     $areaContent = $this->generateContentArea();
     $areaFooter = $this->generateFooterArea();
     $titleBlock = new Block();
     $titleBlock->setClass('block-body-header');
     $titleBlock->setComponent(TinyMCEWysiwygStrategy::TINYMCEWYSIWYG);
     $titleBlock->setAttributes(array('htmlContent' => '<h1>' . $name . '</h1>'));
     $contentBlock = new Block();
     $contentBlock->setClass('block-body');
     $contentBlock->setComponent(TinyMCEWysiwygStrategy::TINYMCEWYSIWYG);
     $contentBlock->setAttributes(array('htmlContent' => $htmlBody));
     $areaContent->addBlock(array('nodeId' => 0, 'blockId' => 0));
     $areaContent->addBlock(array('nodeId' => 0, 'blockId' => 1));
     $node = $this->generateNode($name, NodeInterface::ROOT_NODE_ID, $pattern, $name, $language);
     $node->addArea($areaHeader);
     $node->addArea($areaContent);
     $node->addArea($areaFooter);
     $node->addBlock($titleBlock);
     $node->addBlock($contentBlock);
     $node->setInMenu(true);
     $routes = $this->updateRoute->createForNode($node);
     foreach ($routes as $route) {
         $manager->persist($route);
     }
     $manager->persist($node);
 }
 /**
  * @param string $htmlContent
  * @param string $language
  * @param string $routePattern
  *
  * @return Node
  */
 protected function generateNodeGlobal($htmlContent, $language, $routePattern)
 {
     $nodeHomeBlock = new Block();
     $nodeHomeBlock->setLabel('Wysiwyg');
     $nodeHomeBlock->setComponent(TinyMCEWysiwygStrategy::NAME);
     $nodeHomeBlock->setAttributes(array("htmlContent" => $htmlContent));
     $nodeHomeBlock = $this->generateBlock($nodeHomeBlock);
     $main = new Area();
     $main->addBlock($nodeHomeBlock);
     $header = $this->createHeader();
     $header->addBlock($this->fixture->getReference('Language list'));
     $footer = $this->createFooter();
     $nodeHome = $this->createBaseNode();
     $keyReference = "node-" . NodeInterface::ROOT_NODE_ID . '-' . $language . '-' . $this->version;
     if ($this->fixture->hasReference($keyReference)) {
         $nodeHome = $this->fixture->getReference($keyReference);
     }
     $nodeHome->setArea('main', $main);
     $nodeHome->setArea('footer', $footer);
     $nodeHome->setArea('header', $header);
     $nodeHome->setLanguage($language);
     $nodeHome->setNodeId(NodeInterface::ROOT_NODE_ID);
     $nodeHome->setCreatedBy('fake_admin');
     $nodeHome->setParentId(NodeInterface::ROOT_PARENT_ID);
     $nodeHome->setOrder(0);
     $nodeHome->setRoutePattern($routePattern);
     $nodeHome->setInFooter(false);
     $nodeHome->setInMenu(true);
     $nodeHome->setSitemapChangefreq('hourly');
     $nodeHome->setSitemapPriority('0.8');
     $nodeHome->setName('Orchestra ?');
     $nodeHome->setVersion($this->version);
     $nodeHome->setStatus($this->fixture->getReference($this->status));
     if ('status-published' == $this->status) {
         $nodeHome->setCurrentlyPublished(true);
     }
     return $nodeHome;
 }
 /**
  * @param string $blockType
  * @param string $id
  *
  * @return Block
  */
 protected function generateBlock($blockType)
 {
     $block = new Block();
     $block->setComponent($blockType);
     static::$kernel->getContainer()->get('object_manager')->persist($block);
     static::$kernel->getContainer()->get('object_manager')->flush();
     return $block;
 }
 /**
  * @param string $component
  * @param array  $value
  *
  * @dataProvider provideComponentAndDataAndTransformedValue
  */
 public function testMultipleBlockWithDataTransformation($component, $value)
 {
     $block = new Block();
     $block->setComponent($component);
     $formType = static::$kernel->getContainer()->get('open_orchestra_backoffice.generate_form_manager')->getFormType($block);
     $form = $this->formFactory->create($formType, $block, array('csrf_protection' => false));
     $submittedValue = array_merge(array('style' => 'default'), $value);
     $value['contentSearch']['keywords'] = $this->replaceKeywordLabelById($value['contentSearch']['keywords']);
     $form->submit($submittedValue);
     $this->assertTrue($form->isSynchronized());
     /** @var BlockInterface $data */
     $data = $form->getConfig()->getData();
     $this->assertBlock($data);
     foreach ($value as $key => $receivedData) {
         $this->assertSame($receivedData, $data->getAttribute($key));
     }
 }
 /**
  * @param string $htmlContent
  * @param string $name
  * @param string $language
  * @param string $routePattern
  *
  * @return Node
  */
 protected function generateNodeGlobal($htmlContent, $name, $language, $routePattern)
 {
     $nodeCommunityBlock = new Block();
     $nodeCommunityBlock->setLabel('Wysiwyg');
     $nodeCommunityBlock->setComponent(TinyMCEWysiwygStrategy::NAME);
     $nodeCommunityBlock->setAttributes(array("htmlContent" => $htmlContent));
     $nodeCommunityBlock = $this->generateBlock($nodeCommunityBlock);
     $main = new Area();
     $main->addBlock($nodeCommunityBlock);
     $header = $this->createHeader();
     $footer = $this->createFooter();
     $nodeCommunity = $this->createBaseNode();
     $nodeCommunity->setArea('main', $main);
     $nodeCommunity->setArea('footer', $footer);
     $nodeCommunity->setArea('header', $header);
     $nodeCommunity->setNodeId('fixture_page_community');
     $nodeCommunity->setLanguage($language);
     $nodeCommunity->setName($name);
     $nodeCommunity->setParentId(NodeInterface::ROOT_NODE_ID);
     $nodeCommunity->setOrder(3);
     $nodeCommunity->setRoutePattern($routePattern);
     $nodeCommunity->setTheme('themePresentation');
     $nodeCommunity->setInFooter(false);
     $nodeCommunity->setInMenu(true);
     return $nodeCommunity;
 }
    /**
     * @param ObjectManager $manager
     */
    protected function generateGlobalBlock(ObjectManager $manager)
    {
        $siteBlockLogo = new Block();
        $siteBlockLogo->setLabel('Wysiwyg logo');
        $siteBlockLogo->setStyle('default');
        $siteBlockLogo->setComponent(TinyMCEWysiwygStrategy::NAME);
        $orchestraTitle = "Open Orchestra";
        if ($this->hasReference('logo-orchestra')) {
            $orchestraTitle = '[media=original]' . $this->getReference('logo-orchestra')->getId() . '[/media]';
        }
        $siteBlockLogo->setAttributes(array("htmlContent" => '<a href="/" id="myLogo">' . $orchestraTitle . '</a>'));
        $this->generateBlock($manager, $siteBlockLogo);
        $siteBlockMainMenu = new Block();
        $siteBlockMainMenu->setLabel('Menu');
        $siteBlockMainMenu->setComponent('menu');
        $siteBlockMainMenu->setStyle('default');
        $this->generateBlock($manager, $siteBlockMainMenu);
        $siteBlockFooter = new Block();
        $siteBlockFooter->setLabel('Wysiwyg footer');
        $siteBlockFooter->setComponent(TinyMCEWysiwygStrategy::NAME);
        $siteBlockFooter->setAttributes(array("htmlContent" => <<<EOF
<div class='footer-networks'>
    <h4>Networks</h4>
    <ul>
        <li><a href="http://www.businessdecision.fr/">http://www.businessdecision.fr/</a></li>
        <li><a href="http://www.interakting.com/">http://www.interakting.com/</a></li>
    </ul>
</div>
<div class="footer-contact">
    <h4>Contact</h4>
    <ul>
        <li>Interakting</li>
        <li>153 Rue de Courcelles</li>
        <li>75017 Paris France</li>
        <li>01 56 21 21 21</li>
        <li><a href='/node/fixture_page_contact'>contact@interakting.com</a></li>
    </ul>
</div>
EOF
));
        $this->generateBlock($manager, $siteBlockFooter);
        $siteBlockFooterMenu = new Block();
        $siteBlockFooterMenu->setLabel('footer menu');
        $siteBlockFooterMenu->setStyle('default');
        $siteBlockFooterMenu->setComponent(FooterStrategy::NAME);
        $this->generateBlock($manager, $siteBlockFooterMenu);
        $siteBlockContact = new Block();
        $siteBlockContact->setLabel('Contact');
        $siteBlockContact->setComponent('contact');
        $siteBlockContact->setStyle('default');
        $this->generateBlock($manager, $siteBlockContact);
        $siteBlockLanguage = new Block();
        $siteBlockLanguage->setLabel('Language list');
        $siteBlockLanguage->setComponent(LanguageListStrategy::NAME);
        $this->generateBlock($manager, $siteBlockLanguage);
    }