public function render(Grid $grid = null, $set = null, $onlyRenderTypes = null) { if ($grid === null) { return ''; } $html = array(); $items = $grid->getItems(); if ($items) { /** @var $item Item */ foreach ($items as $item) { $type = $item->getType(); if (!is_array($onlyRenderTypes)) { if ($onlyRenderTypes == $type || $onlyRenderTypes == null) { $data = $item->getItemType(); $template = $this->resolver->getTemplate($type, $set); $html[] = $this->getEngine()->render($template, array('data' => $data)); } } else { foreach ($onlyRenderTypes as $onlyRenderType) { if ($onlyRenderType == $type) { $data = $item->getItemType(); $template = $this->resolver->getTemplate($type, $set); $html[] = $this->getEngine()->render($template, array('data' => $data)); } } } } } return join('', $html); }
/** * @param Grid|null $originalResource * @return Grid */ public function duplicate($originalResource) { if (!$originalResource) { return null; } /** @var Grid $newGrid */ $newGrid = $this->createNew(); /** @var Item $item */ foreach ($originalResource->getItems() as $item) { $newItemType = $this->itemTypeFactory->duplicate($item->getItemType()); $newItem = new Item(); $newItem->setOrder($item->getOrder()); $newItem->setConfiguration($item->getConfiguration()); $newItem->setType($item->getType()); $newItem->setItemType($newItemType); $newGrid->addItem($newItem); } return $newGrid; }