Mercurial > hg > isophonics-drupal-site
diff core/modules/media/src/Routing/MediaRouteProvider.php @ 18:af1871eacc83
Update to Drupal core 8.7.1
author | Chris Cannam |
---|---|
date | Thu, 09 May 2019 15:33:08 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/core/modules/media/src/Routing/MediaRouteProvider.php Thu May 09 15:33:08 2019 +0100 @@ -0,0 +1,55 @@ +<?php + +namespace Drupal\media\Routing; + +use Drupal\Core\Config\ConfigFactoryInterface; +use Drupal\Core\Entity\EntityFieldManagerInterface; +use Drupal\Core\Entity\EntityTypeInterface; +use Drupal\Core\Entity\EntityTypeManagerInterface; +use Drupal\Core\Entity\Routing\AdminHtmlRouteProvider; +use Symfony\Component\DependencyInjection\ContainerInterface; + +/** + * Provides HTML routes for media pages. + */ +class MediaRouteProvider extends AdminHtmlRouteProvider { + + /** + * The media settings config. + * + * @var \Drupal\Core\Config\ImmutableConfig + */ + protected $config; + + /** + * {@inheritdoc} + */ + public function __construct(EntityTypeManagerInterface $entity_type_manager, EntityFieldManagerInterface $entity_field_manager, ConfigFactoryInterface $config_factory) { + parent::__construct($entity_type_manager, $entity_field_manager); + $this->config = $config_factory->get('media.settings'); + } + + /** + * {@inheritdoc} + */ + public static function createInstance(ContainerInterface $container, EntityTypeInterface $entity_type) { + return new static( + $container->get('entity_type.manager'), + $container->get('entity_field.manager'), + $container->get('config.factory') + ); + } + + /** + * {@inheritdoc} + */ + protected function getCanonicalRoute(EntityTypeInterface $entity_type) { + if ($this->config->get('standalone_url')) { + return parent::getCanonicalRoute($entity_type); + } + else { + return parent::getEditFormRoute($entity_type); + } + } + +}