Example #1
0
 /**
  * @param LayoutPageVariantInterface $page_variant
  * @return array
  */
 public static function getGroupedBlockArrays(LayoutPageVariantInterface $page_variant)
 {
     $grouped = $page_variant->getRegionAssignments();
     $regions = $page_variant->getLayoutRegions();
     $data = array('id' => $page_variant->id(), 'layout' => $page_variant->getLayoutId());
     foreach ($regions as $region_id => $region) {
         // $region->init($page_variant);
         $options = $region->getOptions();
         if (isset($options['admin-width'])) {
             $options['width'] = self::calculateAdminWidthPercentage($options['admin-width']);
         }
         $plugin_definition = $region->getPluginDefinition();
         $region_data = array('id' => $region_id, 'label' => is_object($region->label()) ? (string) $region->label() : $region->label(), 'parent' => $region->getParentRegionId(), 'plugin_id' => $plugin_definition['id'], 'weight' => $region->getWeight(), 'actions' => self::getRegionActions($page_variant, $region), 'options' => $options, 'blocks' => array());
         $blocks = isset($grouped[$region_id]) && is_array($grouped[$region_id]) ? $grouped[$region_id] : array();
         foreach ($blocks as $block_id => $block) {
             $block_info = PageLayout::blockToArray($block);
             $region_data['blocks'][] = $block_info;
         }
         $data['regions'][] = $region_data;
     }
     return $data;
 }