acquia_commercemanager-8.x-1.122/modules/acm_sku/src/Entity/Controller/SKUViewBuilder.php

modules/acm_sku/src/Entity/Controller/SKUViewBuilder.php
<?php

namespace Drupal\acm_sku\Entity\Controller;

use Drupal\Core\Entity\EntityViewBuilder;

/**
 * SKUViewBuilder class.
 */
class SKUViewBuilder extends EntityViewBuilder {

  /**
   * {@inheritdoc}
   */
  public function build(array $build) {
    $build = parent::build($build);

    $sku = $build['#acm_sku'];
    $plugin_manager = \Drupal::service('plugin.manager.sku');
    $plugin_definition = $plugin_manager->pluginFromSKU($sku);

    if (empty($plugin_definition)) {
      return $build;
    }

    $plugin = $plugin_manager->createInstance($plugin_definition['id']);

    // Allow blocking of add to cart render.
    if (!isset($build['#no_add_to_cart']) || !($build['#no_add_to_cart'])) {
      // @TODO: remove custom form_builder once https://www.drupal.org/node/766146 is fixed.
      $build['add_to_cart'] = \Drupal::service('acm_sku.form_builder')->getForm($plugin, $sku);
      $build['add_to_cart']['#weight'] = 50;
    }

    $build = $plugin->build($build);

    return $build;
  }

}

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

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