-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathmedia_fits.module
More file actions
93 lines (80 loc) · 2.72 KB
/
Copy pathmedia_fits.module
File metadata and controls
93 lines (80 loc) · 2.72 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
<?php
/**
* @file
* Contains fits.module.
*/
use Drupal\Core\Entity\EntityInterface;
use Drupal\Core\Routing\RouteMatchInterface;
use Drupal\media\Entity\Media;
/**
* Implements hook_help().
*/
function media_fits_help($route_name, RouteMatchInterface $route_match) {
switch ($route_name) {
// Main module help for the islandora_lite_fits module.
case 'help.page.islandora_lite_media_fits':
$output = '';
$output .= '<h3>' . t('About') . '</h3>';
$output .= '<p>' . t('This module represent DSU''s approach toward Fits in our Islandora Lite Stack') . '</p>';
return $output;
default:
}
}
/**
* Implements hook_theme().
*/
function media_fits_theme() {
return [
'islandora_lite_media_fits' => [
'render element' => 'children',
],
];
}
/**
* Implement media_fits_media_insert().
*/
function media_fits_media_insert(EntityInterface $entity) {
// Only extract Fits for File level only.
if ('Media' === $entity->getEntityType()->getLabel()->getUntranslatedString()
&& 1 === \Drupal::config('media_fits.fitsconfig')->get('fits-extract-ingesting')) {
media_fits_execute_media_fits_action($entity);
}
}
/**
* Implement media_fits_media_update().
*/
/*function media_fits_media_update(EntityInterface $entity) {
// Only extract Fits for File level only.
if ('Media' === $entity->getEntityType()->getLabel()->getUntranslatedString()
&& 1 === \Drupal::config('media_fits.fitsconfig')
->get('fits-extract-ingesting')) {
$media = Media::load($entity->id());
$source_field_name = $media->getSource()->getConfiguration()['source_field'];
$current_file_id = $media->get($source_field_name)->target_id;
$previous_revision_id = $media->getRevisionId() - 1;
$previous_revision = \Drupal::entityTypeManager()->getStorage('media')->loadRevision($previous_revision_id);
if (isset($source_field_name) && (isset($previous_revision) &&
$previous_revision->hasField($source_field_name))) {
$previous_file_id = $previous_revision->get($source_field_name)->target_id;
} else {
$previous_file_id = null; // or any other default value or action
}
if ($current_file_id !== $previous_file_id) {
// A new file ID was generated.
media_fits_execute_media_fits_action($entity);
}
}
}*/
/**
* Shared function call for execute Fits Action.
*/
function media_fits_execute_media_fits_action(EntityInterface $entity) {
// Fix warning when Config form hasn't been setup.
$config = \Drupal::config('media_fits.fitsconfig');
if (!isset($config) || empty($config->get('fits-advancedqueue_id'))) {
return;
}
$media = Media::load($entity->id());
$utils = \Drupal::service('media_fits.context_utils');
$utils->executeFileReactions('\Drupal\media_fits\Plugin\ContextReaction\MediaFitsReaction', $media);
}