metrc-1.0.x-dev/modules/metrc_migrate/src/EventSubscriber/MetrcControllerAlterSubscriber.php

modules/metrc_migrate/src/EventSubscriber/MetrcControllerAlterSubscriber.php
<?php

namespace Drupal\metrc_migrate\EventSubscriber;

use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\HttpKernel\Event\GetResponseForControllerResultEvent;
use Symfony\Component\HttpKernel\KernelEvents;

/**
 * Class MetrcControllerAlterSubscriber.
 */
class MetrcControllerAlterSubscriber implements EventSubscriberInterface {

  /**
   * Alters the controller output.
   */
  public function onView(GetResponseForControllerResultEvent $event) {
    $request = $event->getRequest();
    $route = $request->attributes->get('_route');

    if ($route == 'entity.migration.overview_process') {
      $build = $event->getControllerResult();
      if (is_array($build)) {
        // alter controller build array
        $build['process']['historical'] = [
			'#type' => 'link',
			'#title' => $this->t('Run Historical'),
			'#url' => Url::fromRoute('entity.migration.process.historical', ['migration_group' => $migration_group->id(), 'migration' => $migration->id()]),
		  ];

        $event->setControllerResult($build);
      }
    }
  }

  /**
   * {@inheritdoc}
   */
  static function getSubscribedEvents() {
    // priority > 0 so that it runs before the controller output
    // is rendered by \Drupal\Core\EventSubscriber\MainContentViewSubscriber
    $events[KernelEvents::VIEW][] = ['onView', 50];
    return $events;
  }

}

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

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