Esempio n. 1
0
 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);
 }
Esempio n. 2
0
 /**
  * @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;
 }
Esempio n. 3
0
 /**
  * @param $grid
  * @return Grid
  */
 protected function createGrid($grid)
 {
     $gridEntity = new Grid();
     foreach ($grid as $fields) {
         $itemEntity = new Item();
         $type = $fields['type'];
         unset($fields['type']);
         $itemEntity->setItemType($this->createItemType($type, $fields));
         $gridEntity->addItem($itemEntity);
     }
     return $gridEntity;
 }