-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathartesis_netarchive.install
More file actions
106 lines (89 loc) · 2.57 KB
/
artesis_netarchive.install
File metadata and controls
106 lines (89 loc) · 2.57 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
<?php
/**
* @file
* Perform functionality on module enable/distable.
*/
/**
* Implements hook_enable().
*/
function artesis_netarchive_enable() {
artesis_netarchive_create_field();
}
function artesis_netarchive_create_field() {
// Associate created field before creating it.
field_cache_clear();
$field_name = 'netarchive_link';
field_associate_fields($field_name);
if (field_info_field($field_name)) {
return;
}
$field = array(
'field_name' => $field_name,
'type' => $field_name,
);
field_create_field($field);
$instance = array(
'field_name' => $field_name,
'entity_type' => 'ting_object',
'label' => t('NetArchive link'),
'bundle' => 'ting_object',
'settings' => array(
'text_processing' => FALSE,
),
'widget' => array(
'type' => 'hidden',
),
'display' => array(
'default' => array(
'label' => 'hidden',
'type' => 'link_field',
'weight' => 2,
),
'search_result' => array(
'label' => 'hidden',
'type' => 'link_field',
'weight' => 21,
),
),
);
field_create_instance($instance);
// Add netarchive link to the content group.
$groups = field_group_read_groups(
array(
'entity_type' => 'ting_object',
'bundle' => 'ting_object',
'view_mode' => 'search_result'
)
);
$group_content = $groups['ting_object']['ting_object']['search_result']['group_content'];
$group_content->children[] = 'netarchive_link';
field_group_group_save($group_content);
// Add field to group.
$query = db_select('field_group', 'fg');
$query->condition('group_name', 'group_content')
->condition('entity_type', 'ting_object')
->condition('mode', 'search_result')
->fields('fg', array('id', 'data'));
$result = $query->execute()->fetchAssoc();
$config = unserialize($result['data']);
if (!in_array('netarchive_link', $config['children'])) {
$config['children'][] = 'netarchive_link';
$config = serialize($config);
db_update('field_group')
->fields(array('data' => $config))
->condition('id', $result->id, '=')
->execute();
}
// Clear ting_object cache.
cache_clear_all("field:ting_object:*", 'cache_field', TRUE);
}
/**
* Move netarchive link to group_content.
*/
function artesis_netarchive_update_7002() {
$instance_info = field_info_instance('ting_object', 'artesis_netarchive_link', 'ting_object');
field_delete_instance($instance_info);
artesis_netarchive_create_field();
// Clear ting_object cache.
cache_clear_all("field:ting_object:*", 'cache_field', TRUE);
}