visualn-8.x-1.x-dev/src/Core/DrawerSkinWithJsBase.php

src/Core/DrawerSkinWithJsBase.php
<?php

namespace Drupal\visualn\Core;

use Drupal\visualn\Core\DrawerSkinBase;
use Drupal\visualn\Core\DrawerSkinWithJsInterface;
use Drupal\visualn\ResourceInterface;
use Drupal\visualn\ChainPluginJsTrait;

/**
 * Base class for VisualN Drawer Skin plugins using js.
 *
 * @see \Drupal\visualn\Core\DrawerSkinWithJsInterface
 *
 * @ingroup drawer_skin_plugins
 */
abstract class DrawerSkinWithJsBase extends DrawerSkinBase implements DrawerSkinWithJsInterface {

  use ChainPluginJsTrait;

  /**
   * @inheritdoc
   */
  public function prepareBuild(array &$build, $vuid, ResourceInterface $resource) {
    $drawer_skin_config =  $this->getConfiguration();
    $this->prepareJsConfig($drawer_skin_config);
    $suid = $this->getSkinUid();
    $build['#attached']['drupalSettings']['visualn']['drawings'][$vuid]['skins'][$suid]['config'] = $drawer_skin_config;

    // defaults to plugin id if not overriden in drawer skin plugin class
    $drawer_skin_js_id = $this->jsId();
    $build['#attached']['drupalSettings']['visualn']['drawings'][$vuid]['skins'][$suid]['skinId'] = $drawer_skin_js_id;
    // @todo: this setting is just for reference, review
    $build['#attached']['drupalSettings']['visualn']['handlerItems']['skins'][$drawer_skin_js_id][$suid] = $vuid;

    return $resource;
  }

}

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

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