diff --git a/modules/dcx_unpublish_media/dcx_unpublish_media.info.yml b/modules/dcx_unpublish_media/dcx_unpublish_media.info.yml deleted file mode 100644 index bfbc1ca..0000000 --- a/modules/dcx_unpublish_media/dcx_unpublish_media.info.yml +++ /dev/null @@ -1,7 +0,0 @@ -name: DC-X Unpublish Media -type: module -description: 'Handels the behavior if a media is unpublished' -core: '8.x' -package: dcx -dependencies: - - drupal:media (>= 8.4) diff --git a/modules/dcx_unpublish_media/dcx_unpublish_media.links.task.yml b/modules/dcx_unpublish_media/dcx_unpublish_media.links.task.yml deleted file mode 100644 index 803418c..0000000 --- a/modules/dcx_unpublish_media/dcx_unpublish_media.links.task.yml +++ /dev/null @@ -1,5 +0,0 @@ -dcx_unpublish_media.unpublish_media_settings: - title: Unpublish Media - route_name: dcx_unpublish_media.unpublish_media_settings - base_route: dcx_integration.json_client_settings - weight: 1 diff --git a/modules/dcx_unpublish_media/dcx_unpublish_media.module b/modules/dcx_unpublish_media/dcx_unpublish_media.module deleted file mode 100644 index 626dd57..0000000 --- a/modules/dcx_unpublish_media/dcx_unpublish_media.module +++ /dev/null @@ -1,82 +0,0 @@ -bundle()) { - return; - } - - // Do not care about clones of media:images. Clones have a parent. - if ($entity->field_parent_media && NULL !== $entity->field_parent_media->target_id) { - return; - } - - $file = file_load($entity->getSource()->getSourceFieldValue($entity)); - - if (!$entity->status->value && $entity->original->status->value) { - $target_fileuri = str_replace('public://', 'private://', $file->getFileUri()); - // Remove everything after the last / and itself. - $target_dir = preg_replace('#' . DIRECTORY_SEPARATOR . '[^' . DIRECTORY_SEPARATOR . ']+$#', '', $target_fileuri); - if (!is_dir($target_dir)) { - mkdir($target_dir); - } - - // Do not care about image styles here. File move takes care of this by - // invoking hook image_file_move(). - file_move($file, $target_fileuri); - } - elseif ($entity->status->value && !$entity->original->status->value) { - $target_fileuri = str_replace('private://', 'public://', $file->getFileUri()); - // Remove everything after the last / and itself. - $target_dir = preg_replace('#' . DIRECTORY_SEPARATOR . '[^' . DIRECTORY_SEPARATOR . ']+$#', '', $target_fileuri); - if (!is_dir($target_dir)) { - mkdir($target_dir); - } - file_move($file, $target_fileuri); - - /** @var \Drupal\Core\Cache\CacheTagsInvalidatorInterface $cache */ - $cache = \Drupal::service('cache_tags.invalidator'); - - $setting = \Drupal::config('dcx_unpublish_media.unpublishmediasettings'); - - $cache->invalidateTags(['media:' . $setting->get('default_image')]); - } -} - -/** - * Implements hook_ENTITY_TYPE_build_defaults_alter(). - */ -function dcx_unpublish_media_media_build_defaults_alter(array &$build, EntityInterface $entity, $view_mode) { - - $mediaBundleStorage = \Drupal::entityTypeManager() - ->getStorage('media_type'); - $bundle = $mediaBundleStorage->load($entity->bundle()); - - if ($bundle->get('source') == 'image' && !$entity->status->value) { - - $setting = \Drupal::config('dcx_unpublish_media.unpublishmediasettings'); - - $mediaStorage = \Drupal::entityTypeManager()->getStorage('media'); - $media = $mediaStorage->load($setting->get('default_image')); - - if ($media) { - $renderController = \Drupal::entityTypeManager()->getViewBuilder('media'); - $build = $renderController->view($media, $view_mode); - } - else { - $build = []; - } - - } -} diff --git a/modules/dcx_unpublish_media/dcx_unpublish_media.routing.yml b/modules/dcx_unpublish_media/dcx_unpublish_media.routing.yml deleted file mode 100644 index a36ee36..0000000 --- a/modules/dcx_unpublish_media/dcx_unpublish_media.routing.yml +++ /dev/null @@ -1,9 +0,0 @@ -dcx_unpublish_media.unpublish_media_settings: - path: 'admin/config/dcx_integration/unpublishmediasettings' - defaults: - _form: '\Drupal\dcx_unpublish_media\Form\UnpublishMediaSettings' - _title: 'Unpublish Media' - requirements: - _permission: 'administer site configuration' - options: - _admin_route: TRUE diff --git a/modules/dcx_unpublish_media/dcx_unpublish_media.services.yml b/modules/dcx_unpublish_media/dcx_unpublish_media.services.yml deleted file mode 100644 index f57e896..0000000 --- a/modules/dcx_unpublish_media/dcx_unpublish_media.services.yml +++ /dev/null @@ -1,6 +0,0 @@ -services: - dcx_unpublish_media.default: - class: Drupal\dcx_unpublish_media\EventSubscriber\RequestSubscriber - arguments: ['@request_stack', '@entity_type.manager'] - tags: - - { name: event_subscriber } diff --git a/modules/dcx_unpublish_media/src/EventSubscriber/RequestSubscriber.php b/modules/dcx_unpublish_media/src/EventSubscriber/RequestSubscriber.php deleted file mode 100644 index 3c6bbba..0000000 --- a/modules/dcx_unpublish_media/src/EventSubscriber/RequestSubscriber.php +++ /dev/null @@ -1,90 +0,0 @@ -request = $requestStack->getCurrentRequest(); - $this->entityTypeManager = $entityTypeManager; - } - - /** - * {@inheritdoc} - */ - public static function getSubscribedEvents() { - $events['kernel.request'] = ['kernelRequest']; - - return $events; - } - - /** - * This method is called whenever the kernel.request event is dispatched. - * - * @param \Symfony\Component\EventDispatcher\Event $event - * Kernel request event. - */ - public function kernelRequest(Event $event) { - - $publicPath = PublicStream::basePath(); - - $uri = $this->request->getRequestUri(); - - if (strpos($uri, $publicPath . DIRECTORY_SEPARATOR . 'styles') !== FALSE) { - - $path = parse_url($uri)['path']; - $filename = pathinfo($path)['basename']; - - $query = $this->entityTypeManager->getStorage('file')->getQuery(); - $query->condition('filename', $filename); - $fids = $query->execute(); - - if ($fids) { - $bundles = $this->entityTypeManager->getStorage('media_type')->loadMultiple(); - foreach ($bundles as $bundle) { - if ($bundle->get('source') == 'image') { - - $field = $bundle->get('type_configuration')['source_field']; - - $query = $this->entityTypeManager->getStorage('media')->getQuery(); - $query->condition("$field.target_id", current($fids)); - $mids = $query->execute(); - - if ($mids) { - $media = $this->entityTypeManager->getStorage('media')->load(current($mids)); - - if (!$media->status->value) { - $event->setResponse(new Response(NULL, 410)); - } - } - } - } - } - } - } - -} diff --git a/modules/dcx_unpublish_media/src/Form/UnpublishMediaSettings.php b/modules/dcx_unpublish_media/src/Form/UnpublishMediaSettings.php deleted file mode 100644 index 60919fe..0000000 --- a/modules/dcx_unpublish_media/src/Form/UnpublishMediaSettings.php +++ /dev/null @@ -1,104 +0,0 @@ -entityTypeManager = $entityTypeManager; - } - - /** - * {@inheritdoc} - */ - public static function create(ContainerInterface $container) { - return new static( - $container->get('config.factory'), - $container->get('entity_type.manager') - ); - } - - /** - * {@inheritdoc} - */ - protected function getEditableConfigNames() { - return [ - 'dcx_unpublish_media.unpublishmediasettings', - ]; - } - - /** - * {@inheritdoc} - */ - public function getFormId() { - return 'dcx_unpublish_media'; - } - - /** - * {@inheritdoc} - */ - public function buildForm(array $form, FormStateInterface $form_state) { - - $config = $this->config('dcx_unpublish_media.unpublishmediasettings'); - - /** @var \Drupal\media\MediaTypeInterface[] $bundles */ - $bundles = $this->entityTypeManager - ->getStorage('media_type') - ->loadMultiple(); - $imageBundles = []; - foreach ($bundles as $bundle) { - if ($bundle->get('source') == 'image') { - $imageBundles[] = $bundle->id(); - } - } - $defaultValue = NULL; - if ($config->get('default_image')) { - $defaultValue = $this->entityTypeManager->getStorage('media')->load($config->get('default_image')); - } - - $form['default_image'] = [ - '#type' => 'entity_autocomplete', - '#title' => $this->t('Default image'), - '#default_value' => $defaultValue, - '#target_type' => 'media', - '#selection_settings' => ['target_bundles' => $imageBundles], - ]; - - return parent::buildForm($form, $form_state); - } - - /** - * {@inheritdoc} - */ - public function submitForm(array &$form, FormStateInterface $form_state) { - parent::submitForm($form, $form_state); - - $this->config('dcx_unpublish_media.unpublishmediasettings') - ->set('default_image', $form_state->getValue('default_image')) - ->save(); - } - -}