plus-8.x-4.x-dev/src/Core/Extension/ThemeInstaller.php

src/Core/Extension/ThemeInstaller.php
<?php

namespace Drupal\plus\Core\Extension;

use Drupal\Core\Asset\AssetCollectionOptimizerInterface;
use Drupal\Core\Config\ConfigFactoryInterface;
use Drupal\Core\Config\ConfigInstallerInterface;
use Drupal\Core\Config\ConfigManagerInterface;
use Drupal\plus\Events\ThemeEvents;
use Drupal\Core\Extension\ModuleHandlerInterface;
use Drupal\Core\Extension\ThemeHandlerInterface;
use Drupal\Core\Extension\ThemeInstaller as CoreThemeInstaller;
use Drupal\Core\Routing\RouteBuilderInterface;
use Drupal\Core\State\StateInterface;
use Drupal\plus\Events\ThemeEvent;
use Psr\Log\LoggerInterface;
use Symfony\Component\EventDispatcher\EventDispatcherInterface;

/**
 * {@inheritdoc}
 */
class ThemeInstaller extends CoreThemeInstaller {

  /**
   * The Event Dispatcher service.
   *
   * @var \Symfony\Component\EventDispatcher\EventDispatcherInterface
   */
  protected $eventDispatcher;

  /**
   * {@inheritdoc}
   */
  public function __construct(ThemeHandlerInterface $theme_handler, ConfigFactoryInterface $config_factory, ConfigInstallerInterface $config_installer, ModuleHandlerInterface $module_handler, ConfigManagerInterface $config_manager, AssetCollectionOptimizerInterface $css_collection_optimizer, RouteBuilderInterface $route_builder, LoggerInterface $logger, StateInterface $state, EventDispatcherInterface $event_dispatcher) {
    parent::__construct($theme_handler, $config_factory, $config_installer, $module_handler, $config_manager, $css_collection_optimizer, $route_builder, $logger, $state);
    $this->eventDispatcher = $event_dispatcher;
  }

  /**
   * {@inheritdoc}
   */
  public function install(array $theme_list, $install_dependencies = TRUE) {
    // Install (before).
    $event = new ThemeEvent($theme_list);
    $this->eventDispatcher->dispatch(ThemeEvents::INSTALL, $event);
    if ($event->isPropagationStopped()) {
      return FALSE;
    }

    // Invoke original core method.
    $result = parent::install($theme_list, $install_dependencies);

    // Installed (after).
    $this->eventDispatcher->dispatch(ThemeEvents::INSTALLED, $event);

    return $result;
  }

  /**
   * {@inheritdoc}
   */
  public function uninstall(array $theme_list) {
    // Uninstall (before).
    $event = new ThemeEvent($theme_list);
    $this->eventDispatcher->dispatch(ThemeEvents::UNINSTALL, $event);
    if ($event->isPropagationStopped()) {
      return;
    }

    // Invoke original core method.
    parent::uninstall($theme_list);

    // Uninstalled (after).
    $this->eventDispatcher->dispatch(ThemeEvents::UNINSTALLED, $event);
  }

}

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

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