You are here

private static function UpdateLayoutRequestHandler::updatePanelsDisplay in Panels 8.4

Same name and namespace in other branches
  1. 8.3 panels_ipe/src/Helpers/UpdateLayoutRequestHandler.php \Drupal\panels_ipe\Helpers\UpdateLayoutRequestHandler::updatePanelsDisplay()

Updates the current Panels display based on the changes done in our app.

Parameters

\Drupal\panels\Plugin\DisplayVariant\PanelsDisplayVariant $panels_display: The current Panels display.

array $layout_model: The decoded LayoutModel from our App.

Return value

\Drupal\panels\Plugin\DisplayVariant\PanelsDisplayVariant

1 call to UpdateLayoutRequestHandler::updatePanelsDisplay()
UpdateLayoutRequestHandler::updateLayout in panels_ipe/src/Helpers/UpdateLayoutRequestHandler.php
Changes the layout for the given Panels Display.

File

panels_ipe/src/Helpers/UpdateLayoutRequestHandler.php, line 49

Class

UpdateLayoutRequestHandler

Namespace

Drupal\panels_ipe\Helpers

Code

private static function updatePanelsDisplay(PanelsDisplayVariant $panels_display, array $layout_model) {

  // Set our weight and region based on the metadata in our Backbone app.
  foreach ($layout_model['regionCollection'] as $region) {
    $weight = 0;
    foreach ($region['blockCollection'] as $block) {

      /** @var \Drupal\Core\Block\BlockBase $block_instance */
      $block_instance = $panels_display
        ->getBlock($block['uuid']);
      $block_instance
        ->setConfigurationValue('region', $region['name']);
      $block_instance
        ->setConfigurationValue('weight', ++$weight);
      $panels_display
        ->updateBlock($block['uuid'], $block_instance
        ->getConfiguration());
    }
  }
  return $panels_display;
}