bootstrap_layouts-8.x-5.2/src/Plugin/BootstrapLayouts/Updates/BootstrapLayoutsUpdate8401.php

src/Plugin/BootstrapLayouts/Updates/BootstrapLayoutsUpdate8401.php
<?php

namespace Drupal\bootstrap_layouts\Plugin\BootstrapLayouts\Updates;

use Drupal\bootstrap_layouts\BootstrapLayout;
use Drupal\bootstrap_layouts\Plugin\BootstrapLayouts\BootstrapLayoutsUpdateBase;

/**
 * Bootstrap Layouts Update 8401
 *
 * Upgrade existing Bootstrap Layout instances.
 *
 * @BootstrapLayoutsUpdate(
 *   id = "bootstrap_layouts_update_8401",
 *   schema = 8401
 * )
 */
class BootstrapLayoutsUpdate8401 extends BootstrapLayoutsUpdateBase {

  /**
   * {@inheritdoc}
   */
  public function processExistingLayout(BootstrapLayout $layout, array $data = [], $display_messages = TRUE) {
    // Fix any typos and replace hyphens with underscores.
    $id = preg_replace('/\-+/', '_', preg_replace('/^booststrap/', 'bootstrap', $layout->getId()));

    // Immediately return if existing layout identifier doesn't match
    // one of the old "bootstrap_layouts" layouts.
    if (!isset($data['bootstrap_layouts_update_map'][$id])) {
      return;
    }

    $layout_map = $data['bootstrap_layouts_update_map'][$id];

    // Set the new layout identifier.
    $layout->setId($layout_map['id']);

    // Only update the path if it's actually set.
    $path = $layout->getPath();
    if (isset($path)) {
      $layout->setPath($this->getPath() . '/templates/3.0.0');
    }

    // Set default layout wrapper, attributes and classes.
    $layout->setSetting('layout.wrapper', 'div');
    $layout->setSetting('layout.classes', ['row', 'clearfix']);
    $layout->setSetting('layout.attributes', '');

    // Rename existing region and set region wrapper, attributes and classes.
    foreach ($layout_map['regions'] as $old_region => $new_region) {
      if ($old_region !== $new_region && ($region_data = $layout->getRegion($old_region))) {
        $layout->setRegion($new_region, $region_data);
        $layout->unsetRegion($old_region);
      }
      $layout->setSetting("regions.$new_region.wrapper", 'div');
      $layout->setSetting("regions.$new_region.classes", $layout_map['classes'][$new_region]);
      $layout->setSetting("regions.$new_region.attributes", '');
    }
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc