-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy patheasyddb_dams.module
More file actions
132 lines (118 loc) · 3.22 KB
/
easyddb_dams.module
File metadata and controls
132 lines (118 loc) · 3.22 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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
<?php
/**
* @file
* Code for DAMS module.
*/
/**
* Implements hook_menu().
*/
function easyddb_dams_menu() {
$items = array();
$items['admin/easyddb_dams_media_manager'] = array(
'title' => 'Media manager',
'description' => 'Upload and manage the media library',
'page arguments' => array(),
'page callback' => 'easyddb_dams_media_manager_page',
'access arguments' => array('use easyddb dams'),
'type' => MENU_NORMAL_ITEM,
);
return $items;
}
/**
* Implements hook_permission().
*/
function easyddb_dams_permission() {
return array(
'use easyddb dams' => array(
'title' => t('Use easyddb dams.'),
'description' => t('Allows use easyddb dams.'),
),
);
}
/**
* Implements hook_secure_permissions().
*/
function easyddb_dams_secure_permissions($role) {
$permissions = array(
'administrators' => array(
'access media browser',
'use easyddb dams',
),
'editor' => array(
'access media browser',
'use easyddb dams',
),
'local administrator' => array(
'access media browser',
'use easyddb dams',
),
'local editor' => array(
'access media browser',
'use easyddb dams',
),
'guest blogger' => array(
'access media browser',
'use easyddb dams',
),
);
if (isset($permissions[$role])) {
return $permissions[$role];
}
}
/**
* Media manager page.
*/
function easyddb_dams_media_manager_page() {
$content = '';
if (module_exists('media')) {
module_load_include('inc', 'media', 'includes/media.browser');
$content = media_browser();
}
return $content;
}
/**
* Implements hook_page_alter().
*/
function easyddb_dams_page_alter(&$page) {
$args = arg();
$media_page = $args[0] == 'admin' && $args[1] == 'easyddb_dams_media_manager';
$media_browser = $args[0] == 'media' && $args[1] == 'browser';
if ($media_page || $media_browser) {
$css_file = drupal_get_path('module', 'easyddb_dams') . '/css/easyddb_dams.css';
drupal_add_css($css_file);
$js_file = drupal_get_path('module', 'easyddb_dams') . '/js/easyddb_dams.scripts.js';
drupal_add_js($js_file, array('scope' => 'footer'));
}
if ($media_page) {
$page['#theme'] = 'media_dialog_page';
}
}
/**
* Implements hook_form_alter().
*/
function easyddb_dams_form_alter(&$form, &$form_state, $form_id) {
if ($form_id == 'file_entity_add_upload' && arg(1) == 'easyddb_dams_media_manager') {
array_unshift($form['#submit'], 'easyddb_dams_add_upload_submit');
}
elseif($form_id == 'media_youtube_add') {
$form['#action'] = $form['#action'] . '#media-youtube-search-tab';
}
}
/**
* Custom submit for file upload.
*
* @see easyddb_dams_form_alter()
*/
function easyddb_dams_add_upload_submit($form, $form_state) {
// If file uploaded form DAMS page redirect to it, not to default page.
$_GET['destination'] = 'admin/easyddb_dams_media_manager';
}
/**
* Implements hook_media_wysiwyg_token_to_markup_alter().
*/
function easyddb_dams_media_wysiwyg_token_to_markup_alter(&$element, $tag_info, $settings) {
$is_image = (empty(file_validate_is_image($tag_info['file'])));
if ('node' == arg(0) && $is_image && 'teaser' == $tag_info['view_mode']) {
unset($element['content']['file']['#path']);
}
}