Example #1
0
 public function rebuild(View $view)
 {
     $widgetMap = array();
     if ($view->getTemplate()) {
         $widgetMap = $view->getTemplate()->getWidgetMap();
     }
     foreach ($view->getWidgets() as $widget) {
         if (!isset($widgetMap[$widget->getSlot()])) {
             $widgetMap[$widget->getSlot()] = array();
         }
         //create the new widget map
         $widgetMapEntry = new WidgetMap();
         $widgetMapEntry->setAction(WidgetMap::ACTION_CREATE);
         $widgetMapEntry->setWidgetId($widget->getId());
         $widgetMapEntry->setAsynchronous($widget->isAsynchronous());
         $widgetMapEntry = $this->helper->generateWidgetPosition($widgetMapEntry, $widget, $widgetMap, null);
         $widgetMap[$widget->getSlot()][] = $widgetMapEntry;
     }
     $widgetMapAsArray = array();
     foreach ($widgetMap as $slotId => $widgetMapItems) {
         foreach ($widgetMapItems as $widgetMapItem) {
             $widgetMapAsArray[$slotId][] = $this->widgetMapTransformer->transform($widgetMapItem);
         }
     }
     $view->setWidgetMap($widgetMapAsArray);
 }