public function testAdvancedRendering() { $containerEntity = new Container(); $containerEntity->setId(2); foreach (['key1' => true, 'key2' => 'false', 'key3' => false] as $key => $value) { $containerData = new ContainerData($key, $value); $containerEntity->addData($containerData); } $containerEntity->setWidth(400); $containerEntity->setHeight(300); $containerEntity->setCssClass('simple-css-class'); $containerEntity->setStyles('border: 1px solid red;'); $containerEntity->setName('simple_container'); $container = new SimpleContainer($containerEntity, $this->getRenderer()); $this->assertEquals($container->renderOpenTag(), '<div id="swp_container_2" class="swp_container simple-css-class" style="height: 300px;width: 400px;border: 1px solid red;" data-key1="1" data-key2="false" data-key3="" >'); }
public function getContainer($name, array $parameters = [], $createIfNotExists = true) { $containerEntity = $this->objectManager->getRepository('SWP\\Bundle\\TemplatesSystemBundle\\Model\\Container')->getByName($name)->getOneOrNullResult(); if (!$containerEntity && $createIfNotExists) { $containerEntity = $this->createNewContainer($name, $parameters); } elseif (!$containerEntity) { throw new \Exception('Container was not found'); } $widgets = []; $containerWidgets = $this->objectManager->getRepository('SWP\\Bundle\\TemplatesSystemBundle\\Model\\ContainerWidget')->getSortedWidgets(['container' => $containerEntity])->getResult(); foreach ($containerWidgets as $containerWidget) { $widgetModel = $containerWidget->getWidget(); $widgetClass = $widgetModel->getType(); if (is_a($widgetClass, '\\SWP\\Bundle\\TemplatesSystemBundle\\Widget\\TemplatingWidgetHandler', true)) { $widgetHandler = new $widgetClass($widgetModel, $this->serviceContainer->get('templating')); } else { $widgetHandler = new $widgetClass($widgetModel); } $widgets[] = $widgetHandler; } $container = new SimpleContainer($containerEntity, $this->getRenderer()); $container->setWidgets($widgets); return $container; }