annotate sites/all/modules/custom/digitalobjects/digitalobjects.module @ 0:015d06b10d37 default tip

initial
author dwinter
date Wed, 31 Jul 2013 13:49:13 +0200
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
015d06b10d37 initial
dwinter
parents:
diff changeset
1 <?php
015d06b10d37 initial
dwinter
parents:
diff changeset
2 /* Implements hook_menu */
015d06b10d37 initial
dwinter
parents:
diff changeset
3
015d06b10d37 initial
dwinter
parents:
diff changeset
4
015d06b10d37 initial
dwinter
parents:
diff changeset
5 /* TODOS
015d06b10d37 initial
dwinter
parents:
diff changeset
6 *
015d06b10d37 initial
dwinter
parents:
diff changeset
7 *
015d06b10d37 initial
dwinter
parents:
diff changeset
8 */
015d06b10d37 initial
dwinter
parents:
diff changeset
9 include('digitalobject_reader.php');
015d06b10d37 initial
dwinter
parents:
diff changeset
10 include('digitalobjects.import.php');
015d06b10d37 initial
dwinter
parents:
diff changeset
11
015d06b10d37 initial
dwinter
parents:
diff changeset
12 /**
015d06b10d37 initial
dwinter
parents:
diff changeset
13 * Implementation of hook_enable().
015d06b10d37 initial
dwinter
parents:
diff changeset
14 */
015d06b10d37 initial
dwinter
parents:
diff changeset
15 function digitalobjects_enable() {
015d06b10d37 initial
dwinter
parents:
diff changeset
16
015d06b10d37 initial
dwinter
parents:
diff changeset
17 #adds a field for the current collection
015d06b10d37 initial
dwinter
parents:
diff changeset
18 // Check if our field is not already created.
015d06b10d37 initial
dwinter
parents:
diff changeset
19 if (!field_info_field('field_digitalobjects_cid')) {
015d06b10d37 initial
dwinter
parents:
diff changeset
20 $field = array(
015d06b10d37 initial
dwinter
parents:
diff changeset
21 'field_name' => 'field_digitalobjects_cid',
015d06b10d37 initial
dwinter
parents:
diff changeset
22 'type' => 'digitalobjects_digitalcollection',
015d06b10d37 initial
dwinter
parents:
diff changeset
23 );
015d06b10d37 initial
dwinter
parents:
diff changeset
24 field_create_field($field);
015d06b10d37 initial
dwinter
parents:
diff changeset
25
015d06b10d37 initial
dwinter
parents:
diff changeset
26 // Create the instance on the bundle.
015d06b10d37 initial
dwinter
parents:
diff changeset
27 $instance = array(
015d06b10d37 initial
dwinter
parents:
diff changeset
28 'field_name' => 'field_digitalobjects_cid',
015d06b10d37 initial
dwinter
parents:
diff changeset
29 'entity_type' => 'user',
015d06b10d37 initial
dwinter
parents:
diff changeset
30 'label' => 'Current collection',
015d06b10d37 initial
dwinter
parents:
diff changeset
31 'bundle' => 'user',
015d06b10d37 initial
dwinter
parents:
diff changeset
32 // If you don't set the "required" property then the field wont be required by default.
015d06b10d37 initial
dwinter
parents:
diff changeset
33 'required' => False,
015d06b10d37 initial
dwinter
parents:
diff changeset
34 'settings' => array(
015d06b10d37 initial
dwinter
parents:
diff changeset
35 // Here you inform either or not you want this field showing up on the registration form.
015d06b10d37 initial
dwinter
parents:
diff changeset
36 'user_register_form' => 1,
015d06b10d37 initial
dwinter
parents:
diff changeset
37 ),
015d06b10d37 initial
dwinter
parents:
diff changeset
38 'widget' => array(
015d06b10d37 initial
dwinter
parents:
diff changeset
39 'type' => 'digitalcollection_default_textfield',
015d06b10d37 initial
dwinter
parents:
diff changeset
40 ),
015d06b10d37 initial
dwinter
parents:
diff changeset
41 );
015d06b10d37 initial
dwinter
parents:
diff changeset
42 field_create_instance($instance);
015d06b10d37 initial
dwinter
parents:
diff changeset
43 }
015d06b10d37 initial
dwinter
parents:
diff changeset
44 }
015d06b10d37 initial
dwinter
parents:
diff changeset
45
015d06b10d37 initial
dwinter
parents:
diff changeset
46 function digitalobjects_menu(){
015d06b10d37 initial
dwinter
parents:
diff changeset
47
015d06b10d37 initial
dwinter
parents:
diff changeset
48 $items['digitalcollections/manageCurrent'] = array(
015d06b10d37 initial
dwinter
parents:
diff changeset
49 'description' => 'show an object.',
015d06b10d37 initial
dwinter
parents:
diff changeset
50 'page callback' => 'digitalobjects_digitalcollectionsManage',
015d06b10d37 initial
dwinter
parents:
diff changeset
51 'access arguments' => array('access content'),
015d06b10d37 initial
dwinter
parents:
diff changeset
52 'file' => 'digitalobjects.collections.inc',
015d06b10d37 initial
dwinter
parents:
diff changeset
53
015d06b10d37 initial
dwinter
parents:
diff changeset
54 );
015d06b10d37 initial
dwinter
parents:
diff changeset
55
015d06b10d37 initial
dwinter
parents:
diff changeset
56
015d06b10d37 initial
dwinter
parents:
diff changeset
57 $items['digitalobject'] = array(
015d06b10d37 initial
dwinter
parents:
diff changeset
58 'description' => 'show an object.',
015d06b10d37 initial
dwinter
parents:
diff changeset
59 'page callback' => 'digitalobjects_page',
015d06b10d37 initial
dwinter
parents:
diff changeset
60 'access arguments' => array('access content'),
015d06b10d37 initial
dwinter
parents:
diff changeset
61
015d06b10d37 initial
dwinter
parents:
diff changeset
62 );
015d06b10d37 initial
dwinter
parents:
diff changeset
63 $items['admin/config/media/digitalobjects'] = array(
015d06b10d37 initial
dwinter
parents:
diff changeset
64 'title' => 'Digitalobject',
015d06b10d37 initial
dwinter
parents:
diff changeset
65 'description' => 'Set path to the metadaprovider for digitalobjects',
015d06b10d37 initial
dwinter
parents:
diff changeset
66 'weight' => 10,
015d06b10d37 initial
dwinter
parents:
diff changeset
67 'page callback' => 'drupal_get_form',
015d06b10d37 initial
dwinter
parents:
diff changeset
68 'page arguments' => array('digitalobjects_settings'),
015d06b10d37 initial
dwinter
parents:
diff changeset
69 'access arguments' => array('administrate digitalobjects'),
015d06b10d37 initial
dwinter
parents:
diff changeset
70 'file' => 'digitalobjects.admin.inc',
015d06b10d37 initial
dwinter
parents:
diff changeset
71
015d06b10d37 initial
dwinter
parents:
diff changeset
72 );
015d06b10d37 initial
dwinter
parents:
diff changeset
73
015d06b10d37 initial
dwinter
parents:
diff changeset
74
015d06b10d37 initial
dwinter
parents:
diff changeset
75
015d06b10d37 initial
dwinter
parents:
diff changeset
76 $items['user/%/collections'] = array(
015d06b10d37 initial
dwinter
parents:
diff changeset
77 'title' => 'Collections',
015d06b10d37 initial
dwinter
parents:
diff changeset
78 'description' => 'Set path to the metadaprovider for digitalobjects',
015d06b10d37 initial
dwinter
parents:
diff changeset
79 'weight' => 10,
015d06b10d37 initial
dwinter
parents:
diff changeset
80 'page callback' => 'digitalobjects_user_admin_collection',
015d06b10d37 initial
dwinter
parents:
diff changeset
81 'page arguments' => array(1),
015d06b10d37 initial
dwinter
parents:
diff changeset
82 'access arguments' => array('manage private collections'),
015d06b10d37 initial
dwinter
parents:
diff changeset
83 'file' => 'digitalobjects.collections.inc',
015d06b10d37 initial
dwinter
parents:
diff changeset
84 'type' => MENU_LOCAL_TASK,
015d06b10d37 initial
dwinter
parents:
diff changeset
85 );
015d06b10d37 initial
dwinter
parents:
diff changeset
86
015d06b10d37 initial
dwinter
parents:
diff changeset
87
015d06b10d37 initial
dwinter
parents:
diff changeset
88
015d06b10d37 initial
dwinter
parents:
diff changeset
89 $items['digitalobject/%/view'] = array(
015d06b10d37 initial
dwinter
parents:
diff changeset
90 'title' => 'View',
015d06b10d37 initial
dwinter
parents:
diff changeset
91 'description' => 'show an object.',
015d06b10d37 initial
dwinter
parents:
diff changeset
92 'page callback' => 'digitalobjects_page',
015d06b10d37 initial
dwinter
parents:
diff changeset
93 'access arguments' => array('access content'),
015d06b10d37 initial
dwinter
parents:
diff changeset
94 'page arguments' => array(1),
015d06b10d37 initial
dwinter
parents:
diff changeset
95
015d06b10d37 initial
dwinter
parents:
diff changeset
96 'access arguments' => array('access content'),
015d06b10d37 initial
dwinter
parents:
diff changeset
97 'type' => MENU_LOCAL_TASK,
015d06b10d37 initial
dwinter
parents:
diff changeset
98
015d06b10d37 initial
dwinter
parents:
diff changeset
99 );
015d06b10d37 initial
dwinter
parents:
diff changeset
100
015d06b10d37 initial
dwinter
parents:
diff changeset
101 $items['digitalobject/%/edit'] = array(
015d06b10d37 initial
dwinter
parents:
diff changeset
102 'title' => 'Edit',
015d06b10d37 initial
dwinter
parents:
diff changeset
103 'description' => 'Set path to the metadaprovider for digitalobjects',
015d06b10d37 initial
dwinter
parents:
diff changeset
104 'weight' => 10,
015d06b10d37 initial
dwinter
parents:
diff changeset
105 'page callback' => 'digitalobjects_edit',
015d06b10d37 initial
dwinter
parents:
diff changeset
106 'page arguments' => array(1),
015d06b10d37 initial
dwinter
parents:
diff changeset
107
015d06b10d37 initial
dwinter
parents:
diff changeset
108 'access arguments' => array('administrate digitalobjects'),
015d06b10d37 initial
dwinter
parents:
diff changeset
109 'type' => MENU_LOCAL_TASK,
015d06b10d37 initial
dwinter
parents:
diff changeset
110
015d06b10d37 initial
dwinter
parents:
diff changeset
111 );
015d06b10d37 initial
dwinter
parents:
diff changeset
112
015d06b10d37 initial
dwinter
parents:
diff changeset
113 $items['digitalobject/%/usage'] = array(
015d06b10d37 initial
dwinter
parents:
diff changeset
114 'title' => 'Usage',
015d06b10d37 initial
dwinter
parents:
diff changeset
115 'description' => 'Set path to the metadaprovider for digitalobjects',
015d06b10d37 initial
dwinter
parents:
diff changeset
116 'weight' => 10,
015d06b10d37 initial
dwinter
parents:
diff changeset
117 'page callback' => 'digitalobjects_show_usage',
015d06b10d37 initial
dwinter
parents:
diff changeset
118 'page arguments' => array(1),
015d06b10d37 initial
dwinter
parents:
diff changeset
119
015d06b10d37 initial
dwinter
parents:
diff changeset
120 'access arguments' => array('access content'),
015d06b10d37 initial
dwinter
parents:
diff changeset
121 'type' => MENU_LOCAL_TASK,
015d06b10d37 initial
dwinter
parents:
diff changeset
122
015d06b10d37 initial
dwinter
parents:
diff changeset
123 );
015d06b10d37 initial
dwinter
parents:
diff changeset
124
015d06b10d37 initial
dwinter
parents:
diff changeset
125 $items['digitalobject/%/add'] = array(
015d06b10d37 initial
dwinter
parents:
diff changeset
126 'title' => 'Add',
015d06b10d37 initial
dwinter
parents:
diff changeset
127 'description' => 'Add an object to the current collection',
015d06b10d37 initial
dwinter
parents:
diff changeset
128 'weight' => 10,
015d06b10d37 initial
dwinter
parents:
diff changeset
129 'page callback' => 'digitalobjects_addToCurrentCollection',
015d06b10d37 initial
dwinter
parents:
diff changeset
130 'page arguments' => array(1),
015d06b10d37 initial
dwinter
parents:
diff changeset
131
015d06b10d37 initial
dwinter
parents:
diff changeset
132 'access arguments' => array('administrate digitalobjects'),
015d06b10d37 initial
dwinter
parents:
diff changeset
133 'file' => 'digitalobjects.collections.inc',
015d06b10d37 initial
dwinter
parents:
diff changeset
134 'type' => MENU_LOCAL_TASK,
015d06b10d37 initial
dwinter
parents:
diff changeset
135
015d06b10d37 initial
dwinter
parents:
diff changeset
136 );
015d06b10d37 initial
dwinter
parents:
diff changeset
137 return $items;
015d06b10d37 initial
dwinter
parents:
diff changeset
138
015d06b10d37 initial
dwinter
parents:
diff changeset
139 }
015d06b10d37 initial
dwinter
parents:
diff changeset
140
015d06b10d37 initial
dwinter
parents:
diff changeset
141
015d06b10d37 initial
dwinter
parents:
diff changeset
142 function digitalobjects_create_primary_node($objid){
015d06b10d37 initial
dwinter
parents:
diff changeset
143 $node = new stdClass();
015d06b10d37 initial
dwinter
parents:
diff changeset
144 $node->type = 'digitalobject';
015d06b10d37 initial
dwinter
parents:
diff changeset
145 node_object_prepare($node);
015d06b10d37 initial
dwinter
parents:
diff changeset
146 global $user;
015d06b10d37 initial
dwinter
parents:
diff changeset
147 #dpm($user);
015d06b10d37 initial
dwinter
parents:
diff changeset
148 #$node->uid=$user->uid;
015d06b10d37 initial
dwinter
parents:
diff changeset
149 $node->field_single_objid['und'][0]['objid']=$objid;
015d06b10d37 initial
dwinter
parents:
diff changeset
150
015d06b10d37 initial
dwinter
parents:
diff changeset
151 $node->title = $objid;
015d06b10d37 initial
dwinter
parents:
diff changeset
152
015d06b10d37 initial
dwinter
parents:
diff changeset
153 $node->language = LANGUAGE_NONE;
015d06b10d37 initial
dwinter
parents:
diff changeset
154 #$node = node_submit($node);
015d06b10d37 initial
dwinter
parents:
diff changeset
155
015d06b10d37 initial
dwinter
parents:
diff changeset
156 #$node->field_object_type['und'][0]=array('tid'=> '6');
015d06b10d37 initial
dwinter
parents:
diff changeset
157
015d06b10d37 initial
dwinter
parents:
diff changeset
158 $foo = taxonomy_get_term_by_name('primary');
015d06b10d37 initial
dwinter
parents:
diff changeset
159 foreach($foo as $term) {
015d06b10d37 initial
dwinter
parents:
diff changeset
160
015d06b10d37 initial
dwinter
parents:
diff changeset
161 if(($term->vocabulary_machine_name) == 'digitalobject_types') {
015d06b10d37 initial
dwinter
parents:
diff changeset
162
015d06b10d37 initial
dwinter
parents:
diff changeset
163 $node->field_object_type['und'][]['tid'] = $term->tid;
015d06b10d37 initial
dwinter
parents:
diff changeset
164 }
015d06b10d37 initial
dwinter
parents:
diff changeset
165 }
015d06b10d37 initial
dwinter
parents:
diff changeset
166 $node = node_submit($node);
015d06b10d37 initial
dwinter
parents:
diff changeset
167
015d06b10d37 initial
dwinter
parents:
diff changeset
168 node_save($node);
015d06b10d37 initial
dwinter
parents:
diff changeset
169
015d06b10d37 initial
dwinter
parents:
diff changeset
170 return $node;
015d06b10d37 initial
dwinter
parents:
diff changeset
171 }
015d06b10d37 initial
dwinter
parents:
diff changeset
172
015d06b10d37 initial
dwinter
parents:
diff changeset
173 function digitalobjects_edit($objid){
015d06b10d37 initial
dwinter
parents:
diff changeset
174 #suche ob es schon ein locales object zu dieser id gibt.
015d06b10d37 initial
dwinter
parents:
diff changeset
175 $query = new EntityFieldQuery();
015d06b10d37 initial
dwinter
parents:
diff changeset
176 $entities = $query->entityCondition('entity_type', 'node')
015d06b10d37 initial
dwinter
parents:
diff changeset
177 ->entityCondition('bundle', 'digitalobject')
015d06b10d37 initial
dwinter
parents:
diff changeset
178 ->fieldCondition('field_single_objid', 'objid', $objid,"=")
015d06b10d37 initial
dwinter
parents:
diff changeset
179 ->execute();
015d06b10d37 initial
dwinter
parents:
diff changeset
180
015d06b10d37 initial
dwinter
parents:
diff changeset
181 if ($entities == null) #existiert noch nicht, dann anlegen
015d06b10d37 initial
dwinter
parents:
diff changeset
182 {
015d06b10d37 initial
dwinter
parents:
diff changeset
183 $node =digitalobjects_create_primary_node($objid);
015d06b10d37 initial
dwinter
parents:
diff changeset
184 #$node->field_object_type['und'][0]=array('tid'=> 'autocreate',
015d06b10d37 initial
dwinter
parents:
diff changeset
185 #'name' => "primary",
015d06b10d37 initial
dwinter
parents:
diff changeset
186 #'vocabulary_machine_name' => 'digitialobject_types');
015d06b10d37 initial
dwinter
parents:
diff changeset
187
015d06b10d37 initial
dwinter
parents:
diff changeset
188 } else {
015d06b10d37 initial
dwinter
parents:
diff changeset
189
015d06b10d37 initial
dwinter
parents:
diff changeset
190
015d06b10d37 initial
dwinter
parents:
diff changeset
191 $nodes = node_load_multiple(array_keys($entities['node']));
015d06b10d37 initial
dwinter
parents:
diff changeset
192
015d06b10d37 initial
dwinter
parents:
diff changeset
193 #gibt es eins, dann gib dieses zum editieren zurück
015d06b10d37 initial
dwinter
parents:
diff changeset
194 #TODO falls mehrere existieren, was dann??
015d06b10d37 initial
dwinter
parents:
diff changeset
195
015d06b10d37 initial
dwinter
parents:
diff changeset
196 #gehe durch alle gefundene
015d06b10d37 initial
dwinter
parents:
diff changeset
197 foreach ($nodes as $node){
015d06b10d37 initial
dwinter
parents:
diff changeset
198 #$typeTag = $entity->object_type['und']
015d06b10d37 initial
dwinter
parents:
diff changeset
199
015d06b10d37 initial
dwinter
parents:
diff changeset
200 if (isset($node->field_object_type['und'])){
015d06b10d37 initial
dwinter
parents:
diff changeset
201 $tid = $node->field_object_type['und'][0]['tid'];
015d06b10d37 initial
dwinter
parents:
diff changeset
202 $tax =taxonomy_term_load($tid);
015d06b10d37 initial
dwinter
parents:
diff changeset
203 if ($tax->name == "primary"){ #'primary gefunden'
015d06b10d37 initial
dwinter
parents:
diff changeset
204 module_load_include('inc', 'node', 'node.pages');
015d06b10d37 initial
dwinter
parents:
diff changeset
205 return drupal_get_form('digitalobject_node_form', $node);
015d06b10d37 initial
dwinter
parents:
diff changeset
206 }}
015d06b10d37 initial
dwinter
parents:
diff changeset
207 } # keine primary dann lege diese an:
015d06b10d37 initial
dwinter
parents:
diff changeset
208
015d06b10d37 initial
dwinter
parents:
diff changeset
209 $node =digitalobjects_create_primary_node($objid);
015d06b10d37 initial
dwinter
parents:
diff changeset
210
015d06b10d37 initial
dwinter
parents:
diff changeset
211 #$vals = array_values($nodes);
015d06b10d37 initial
dwinter
parents:
diff changeset
212 #$node= array_shift($vals);
015d06b10d37 initial
dwinter
parents:
diff changeset
213 }
015d06b10d37 initial
dwinter
parents:
diff changeset
214
015d06b10d37 initial
dwinter
parents:
diff changeset
215 $node = node_submit($node);
015d06b10d37 initial
dwinter
parents:
diff changeset
216
015d06b10d37 initial
dwinter
parents:
diff changeset
217 #node_save($node);
015d06b10d37 initial
dwinter
parents:
diff changeset
218 module_load_include('inc', 'node', 'node.pages');
015d06b10d37 initial
dwinter
parents:
diff changeset
219
015d06b10d37 initial
dwinter
parents:
diff changeset
220 return drupal_get_form('digitalobject_node_form', $node);
015d06b10d37 initial
dwinter
parents:
diff changeset
221
015d06b10d37 initial
dwinter
parents:
diff changeset
222 }
015d06b10d37 initial
dwinter
parents:
diff changeset
223
015d06b10d37 initial
dwinter
parents:
diff changeset
224
015d06b10d37 initial
dwinter
parents:
diff changeset
225 function digitalobjects_show_usage($objid){
015d06b10d37 initial
dwinter
parents:
diff changeset
226 $query = new EntityFieldQuery();
015d06b10d37 initial
dwinter
parents:
diff changeset
227 $entities = $query->entityCondition('entity_type', 'node')
015d06b10d37 initial
dwinter
parents:
diff changeset
228 ->fieldCondition('field_objid', 'objid', $objid,"=")
015d06b10d37 initial
dwinter
parents:
diff changeset
229 ->execute();
015d06b10d37 initial
dwinter
parents:
diff changeset
230
015d06b10d37 initial
dwinter
parents:
diff changeset
231
015d06b10d37 initial
dwinter
parents:
diff changeset
232 $data = array();
015d06b10d37 initial
dwinter
parents:
diff changeset
233
015d06b10d37 initial
dwinter
parents:
diff changeset
234 #treffer gefunden
015d06b10d37 initial
dwinter
parents:
diff changeset
235 if (isset($entities['node'])){
015d06b10d37 initial
dwinter
parents:
diff changeset
236
015d06b10d37 initial
dwinter
parents:
diff changeset
237 $nodes = node_load_multiple(array_keys($entities['node']));
015d06b10d37 initial
dwinter
parents:
diff changeset
238
015d06b10d37 initial
dwinter
parents:
diff changeset
239
015d06b10d37 initial
dwinter
parents:
diff changeset
240 foreach ($nodes as $node){
015d06b10d37 initial
dwinter
parents:
diff changeset
241 $data[$node->nid] = $node->title;
015d06b10d37 initial
dwinter
parents:
diff changeset
242
015d06b10d37 initial
dwinter
parents:
diff changeset
243 }
015d06b10d37 initial
dwinter
parents:
diff changeset
244
015d06b10d37 initial
dwinter
parents:
diff changeset
245
015d06b10d37 initial
dwinter
parents:
diff changeset
246 $output['digitalobjects_item_usage']= array(
015d06b10d37 initial
dwinter
parents:
diff changeset
247 '#theme' => 'digitalobjects_item_usage',
015d06b10d37 initial
dwinter
parents:
diff changeset
248 '#data' => $data);
015d06b10d37 initial
dwinter
parents:
diff changeset
249
015d06b10d37 initial
dwinter
parents:
diff changeset
250 return $output;
015d06b10d37 initial
dwinter
parents:
diff changeset
251 }
015d06b10d37 initial
dwinter
parents:
diff changeset
252
015d06b10d37 initial
dwinter
parents:
diff changeset
253 return "<h2> object not used in a collection </h2>";
015d06b10d37 initial
dwinter
parents:
diff changeset
254 }
015d06b10d37 initial
dwinter
parents:
diff changeset
255
015d06b10d37 initial
dwinter
parents:
diff changeset
256
015d06b10d37 initial
dwinter
parents:
diff changeset
257 function digitalobjects_page($keys = ''){
015d06b10d37 initial
dwinter
parents:
diff changeset
258
015d06b10d37 initial
dwinter
parents:
diff changeset
259
015d06b10d37 initial
dwinter
parents:
diff changeset
260 #suche ob es schon ein locales object zu dieser id gibt.
015d06b10d37 initial
dwinter
parents:
diff changeset
261 $query = new EntityFieldQuery();
015d06b10d37 initial
dwinter
parents:
diff changeset
262 $entities = $query->entityCondition('entity_type', 'node')
015d06b10d37 initial
dwinter
parents:
diff changeset
263 ->entityCondition('bundle', 'digitalobject')
015d06b10d37 initial
dwinter
parents:
diff changeset
264 ->fieldCondition('field_single_objid', 'objid', $keys,"=")
015d06b10d37 initial
dwinter
parents:
diff changeset
265 ->execute();
015d06b10d37 initial
dwinter
parents:
diff changeset
266
015d06b10d37 initial
dwinter
parents:
diff changeset
267 if ($entities == null) #existiert noch nicht, dann generische Anzeige
015d06b10d37 initial
dwinter
parents:
diff changeset
268 {
015d06b10d37 initial
dwinter
parents:
diff changeset
269
015d06b10d37 initial
dwinter
parents:
diff changeset
270 $output['digitalobjects_item']= array(
015d06b10d37 initial
dwinter
parents:
diff changeset
271 '#theme' => 'digitalobjects_item',
015d06b10d37 initial
dwinter
parents:
diff changeset
272 '#objid' => $keys);
015d06b10d37 initial
dwinter
parents:
diff changeset
273
015d06b10d37 initial
dwinter
parents:
diff changeset
274 return $output;
015d06b10d37 initial
dwinter
parents:
diff changeset
275 } else {
015d06b10d37 initial
dwinter
parents:
diff changeset
276 $nodes = node_load_multiple(array_keys($entities['node']));
015d06b10d37 initial
dwinter
parents:
diff changeset
277
015d06b10d37 initial
dwinter
parents:
diff changeset
278 #gibt es eins, dann gib dieses zum editieren zurück
015d06b10d37 initial
dwinter
parents:
diff changeset
279 #TODO falls mehrere existieren, was dann??
015d06b10d37 initial
dwinter
parents:
diff changeset
280
015d06b10d37 initial
dwinter
parents:
diff changeset
281 #gehe durch alle gefundene
015d06b10d37 initial
dwinter
parents:
diff changeset
282 foreach ($nodes as $node){
015d06b10d37 initial
dwinter
parents:
diff changeset
283 if (isset($node->field_object_type['und'])){
015d06b10d37 initial
dwinter
parents:
diff changeset
284 $tid = $node->field_object_type['und'][0]['tid'];
015d06b10d37 initial
dwinter
parents:
diff changeset
285 $tax =taxonomy_term_load($tid);
015d06b10d37 initial
dwinter
parents:
diff changeset
286
015d06b10d37 initial
dwinter
parents:
diff changeset
287 if ($tax->name == "primary"){ #'primary gefunden'
015d06b10d37 initial
dwinter
parents:
diff changeset
288 return node_view($node, $view_mode = 'full');
015d06b10d37 initial
dwinter
parents:
diff changeset
289 }
015d06b10d37 initial
dwinter
parents:
diff changeset
290 }
015d06b10d37 initial
dwinter
parents:
diff changeset
291 }
015d06b10d37 initial
dwinter
parents:
diff changeset
292 #keine primary node gefunden, generische ausgabe
015d06b10d37 initial
dwinter
parents:
diff changeset
293 $output['digitalobjects_item']= array(
015d06b10d37 initial
dwinter
parents:
diff changeset
294 '#theme' => 'digitalobjects_item',
015d06b10d37 initial
dwinter
parents:
diff changeset
295 '#objid' => $keys);
015d06b10d37 initial
dwinter
parents:
diff changeset
296 return $output;
015d06b10d37 initial
dwinter
parents:
diff changeset
297 }
015d06b10d37 initial
dwinter
parents:
diff changeset
298 }
015d06b10d37 initial
dwinter
parents:
diff changeset
299
015d06b10d37 initial
dwinter
parents:
diff changeset
300 /* implements digitalobject_theme */
015d06b10d37 initial
dwinter
parents:
diff changeset
301
015d06b10d37 initial
dwinter
parents:
diff changeset
302 function digitalobjects_theme(){
015d06b10d37 initial
dwinter
parents:
diff changeset
303
015d06b10d37 initial
dwinter
parents:
diff changeset
304 return array(
015d06b10d37 initial
dwinter
parents:
diff changeset
305 'digitalobjects_item' => array(
015d06b10d37 initial
dwinter
parents:
diff changeset
306 'variables' => array('objid' => NULL),
015d06b10d37 initial
dwinter
parents:
diff changeset
307 'file' => 'digitalobjects.item.inc',
015d06b10d37 initial
dwinter
parents:
diff changeset
308 'template' => 'digitalobjects-item',
015d06b10d37 initial
dwinter
parents:
diff changeset
309 ),
015d06b10d37 initial
dwinter
parents:
diff changeset
310 'digitalobjects_item_short' => array(
015d06b10d37 initial
dwinter
parents:
diff changeset
311 'variables' => array('objid' => NULL),
015d06b10d37 initial
dwinter
parents:
diff changeset
312 'file' => 'digitalobjects.item.inc',
015d06b10d37 initial
dwinter
parents:
diff changeset
313 'template' => 'digitalobjects-item-short',
015d06b10d37 initial
dwinter
parents:
diff changeset
314 ),
015d06b10d37 initial
dwinter
parents:
diff changeset
315 'digitalobjects_item_tools' => array(
015d06b10d37 initial
dwinter
parents:
diff changeset
316 'variables' => array('objid' => NULL),
015d06b10d37 initial
dwinter
parents:
diff changeset
317 'template' => 'digitalobjects-item-tools',
015d06b10d37 initial
dwinter
parents:
diff changeset
318 ),
015d06b10d37 initial
dwinter
parents:
diff changeset
319 'digitalobjects_item_usage' => array(
015d06b10d37 initial
dwinter
parents:
diff changeset
320 'variables' => array('data' => NULL),
015d06b10d37 initial
dwinter
parents:
diff changeset
321 'template' => 'digitalobjects-item-usage',
015d06b10d37 initial
dwinter
parents:
diff changeset
322 ),
015d06b10d37 initial
dwinter
parents:
diff changeset
323
015d06b10d37 initial
dwinter
parents:
diff changeset
324 'digitalobjects_currentCollection_block' => array(
015d06b10d37 initial
dwinter
parents:
diff changeset
325 'variables' => array('node' => NULL),
015d06b10d37 initial
dwinter
parents:
diff changeset
326 'template' => 'digitalobjects-current-collection',
015d06b10d37 initial
dwinter
parents:
diff changeset
327 ),
015d06b10d37 initial
dwinter
parents:
diff changeset
328 /* 'digitalobjects_user_admin_page' => array(
015d06b10d37 initial
dwinter
parents:
diff changeset
329 'variables' => array('digitalobjects_user_admin','uid' =>1),
015d06b10d37 initial
dwinter
parents:
diff changeset
330 'template' => 'digitalobjects-user-admin-form'
015d06b10d37 initial
dwinter
parents:
diff changeset
331 ),*/
015d06b10d37 initial
dwinter
parents:
diff changeset
332 );
015d06b10d37 initial
dwinter
parents:
diff changeset
333 }
015d06b10d37 initial
dwinter
parents:
diff changeset
334
015d06b10d37 initial
dwinter
parents:
diff changeset
335 function digitalobjects_forms($form_id, $args) {
015d06b10d37 initial
dwinter
parents:
diff changeset
336
015d06b10d37 initial
dwinter
parents:
diff changeset
337 $forms['digitalobjects_user_admin_form']= array(
015d06b10d37 initial
dwinter
parents:
diff changeset
338 'callback' => 'digitalobjects_user_admin',
015d06b10d37 initial
dwinter
parents:
diff changeset
339 'callback arguments' => array('digitalobjects_user_admin_page'),
015d06b10d37 initial
dwinter
parents:
diff changeset
340 );
015d06b10d37 initial
dwinter
parents:
diff changeset
341 return $forms;
015d06b10d37 initial
dwinter
parents:
diff changeset
342 };
015d06b10d37 initial
dwinter
parents:
diff changeset
343
015d06b10d37 initial
dwinter
parents:
diff changeset
344
015d06b10d37 initial
dwinter
parents:
diff changeset
345
015d06b10d37 initial
dwinter
parents:
diff changeset
346
015d06b10d37 initial
dwinter
parents:
diff changeset
347 function digitalobjects_user_admin(array $form, array &$form_state) {
015d06b10d37 initial
dwinter
parents:
diff changeset
348
015d06b10d37 initial
dwinter
parents:
diff changeset
349 $form['digitalcollection'] = array(
015d06b10d37 initial
dwinter
parents:
diff changeset
350 '#type' => 'textfield',
015d06b10d37 initial
dwinter
parents:
diff changeset
351 '#title' => t('Active collection'),
015d06b10d37 initial
dwinter
parents:
diff changeset
352 '#size' => 15,
015d06b10d37 initial
dwinter
parents:
diff changeset
353 '#default_value' => 'xxxx',
015d06b10d37 initial
dwinter
parents:
diff changeset
354 '#attributes' => array('title' => t('Enter the terms id of the current collection.')),
015d06b10d37 initial
dwinter
parents:
diff changeset
355 );
015d06b10d37 initial
dwinter
parents:
diff changeset
356
015d06b10d37 initial
dwinter
parents:
diff changeset
357
015d06b10d37 initial
dwinter
parents:
diff changeset
358 $form['userid'] = array(
015d06b10d37 initial
dwinter
parents:
diff changeset
359 '#type' => 'hidden',
015d06b10d37 initial
dwinter
parents:
diff changeset
360 );
015d06b10d37 initial
dwinter
parents:
diff changeset
361 #$form['actions'] = array('#type' => 'actions');
015d06b10d37 initial
dwinter
parents:
diff changeset
362 $form['submit'] = array('#type' => 'submit', '#value' => t('Save'));
015d06b10d37 initial
dwinter
parents:
diff changeset
363 $form['submit']['#submit'][] = 'digitalobjects_user_admin_form_submit';
015d06b10d37 initial
dwinter
parents:
diff changeset
364
015d06b10d37 initial
dwinter
parents:
diff changeset
365 return $form;
015d06b10d37 initial
dwinter
parents:
diff changeset
366 }
015d06b10d37 initial
dwinter
parents:
diff changeset
367 /* implements a new field type for the digitalobject id */
015d06b10d37 initial
dwinter
parents:
diff changeset
368
015d06b10d37 initial
dwinter
parents:
diff changeset
369 function digitalobjects_field_info(){
015d06b10d37 initial
dwinter
parents:
diff changeset
370
015d06b10d37 initial
dwinter
parents:
diff changeset
371 return array('digitalobjects_digitalobject' => array (
015d06b10d37 initial
dwinter
parents:
diff changeset
372 'label' => t('Digital Object ID'),
015d06b10d37 initial
dwinter
parents:
diff changeset
373 'description' => t('This field stores a digital object ID'),
015d06b10d37 initial
dwinter
parents:
diff changeset
374 'settings' => array('max_length' =>20),
015d06b10d37 initial
dwinter
parents:
diff changeset
375 'instance_settings' => array('text_processing' => 0),
015d06b10d37 initial
dwinter
parents:
diff changeset
376 'default_widget' => 'digitalobject_default_textfield',
015d06b10d37 initial
dwinter
parents:
diff changeset
377 'default_formatter' => 'digitalobjects_fullmetadata',
015d06b10d37 initial
dwinter
parents:
diff changeset
378 ),
015d06b10d37 initial
dwinter
parents:
diff changeset
379 'digitalobjects_digitalcollection' => array (
015d06b10d37 initial
dwinter
parents:
diff changeset
380 'label' => t('Digital Collection ID'),
015d06b10d37 initial
dwinter
parents:
diff changeset
381 'description' => t('This field stores a digital object ID'),
015d06b10d37 initial
dwinter
parents:
diff changeset
382 'settings' => array('max_length' =>20),
015d06b10d37 initial
dwinter
parents:
diff changeset
383 'instance_settings' => array('text_processing' => 0),
015d06b10d37 initial
dwinter
parents:
diff changeset
384 'default_widget' => 'digitalcollection_default_textfield',
015d06b10d37 initial
dwinter
parents:
diff changeset
385 'default_formatter' => 'digitalcollection_fullmetadata',
015d06b10d37 initial
dwinter
parents:
diff changeset
386 ),
015d06b10d37 initial
dwinter
parents:
diff changeset
387
015d06b10d37 initial
dwinter
parents:
diff changeset
388 );
015d06b10d37 initial
dwinter
parents:
diff changeset
389 }
015d06b10d37 initial
dwinter
parents:
diff changeset
390
015d06b10d37 initial
dwinter
parents:
diff changeset
391 function digitalobjects_field_formatter_info() {
015d06b10d37 initial
dwinter
parents:
diff changeset
392
015d06b10d37 initial
dwinter
parents:
diff changeset
393 return array(
015d06b10d37 initial
dwinter
parents:
diff changeset
394 // This formatter shows the obejct with fullmetadata
015d06b10d37 initial
dwinter
parents:
diff changeset
395 'digitalobjects_fullmetadata' => array(
015d06b10d37 initial
dwinter
parents:
diff changeset
396 'label' => t('Fullmetadata formatter'),
015d06b10d37 initial
dwinter
parents:
diff changeset
397 'field types' => array('digitalobjects_digitalobject'),
015d06b10d37 initial
dwinter
parents:
diff changeset
398 ),
015d06b10d37 initial
dwinter
parents:
diff changeset
399 'digitalobjects_label' => array(
015d06b10d37 initial
dwinter
parents:
diff changeset
400 'label' => t('Lable formatter'),
015d06b10d37 initial
dwinter
parents:
diff changeset
401 'field types' => array('digitalobjects_digitalobject'),
015d06b10d37 initial
dwinter
parents:
diff changeset
402 )
015d06b10d37 initial
dwinter
parents:
diff changeset
403 );
015d06b10d37 initial
dwinter
parents:
diff changeset
404 }
015d06b10d37 initial
dwinter
parents:
diff changeset
405
015d06b10d37 initial
dwinter
parents:
diff changeset
406
015d06b10d37 initial
dwinter
parents:
diff changeset
407
015d06b10d37 initial
dwinter
parents:
diff changeset
408
015d06b10d37 initial
dwinter
parents:
diff changeset
409
015d06b10d37 initial
dwinter
parents:
diff changeset
410
015d06b10d37 initial
dwinter
parents:
diff changeset
411 function digitalobjects_field_formatter_view($entity_type, $entity, $field, $instance, $langcode, $items, $display) {
015d06b10d37 initial
dwinter
parents:
diff changeset
412 $element = array();
015d06b10d37 initial
dwinter
parents:
diff changeset
413
015d06b10d37 initial
dwinter
parents:
diff changeset
414
015d06b10d37 initial
dwinter
parents:
diff changeset
415 switch ($display['type']) {
015d06b10d37 initial
dwinter
parents:
diff changeset
416 // This formatter simply outputs the field as text and with a color.
015d06b10d37 initial
dwinter
parents:
diff changeset
417 case 'digitalobjects_fullmetadata':
015d06b10d37 initial
dwinter
parents:
diff changeset
418 foreach ($items as $delta => $item) {
015d06b10d37 initial
dwinter
parents:
diff changeset
419 if ($item['objid']!=""){
015d06b10d37 initial
dwinter
parents:
diff changeset
420 $element[$delta]['#markup'] = theme('digitalobjects_item_tools', array("objid" => $item['objid']));
015d06b10d37 initial
dwinter
parents:
diff changeset
421 $element[$delta]['#markup'] .= theme('digitalobjects_item', array("objid" => $item['objid']));
015d06b10d37 initial
dwinter
parents:
diff changeset
422
015d06b10d37 initial
dwinter
parents:
diff changeset
423 }
015d06b10d37 initial
dwinter
parents:
diff changeset
424 }
015d06b10d37 initial
dwinter
parents:
diff changeset
425 break;
015d06b10d37 initial
dwinter
parents:
diff changeset
426
015d06b10d37 initial
dwinter
parents:
diff changeset
427 case 'digitalobjects_label':
015d06b10d37 initial
dwinter
parents:
diff changeset
428 foreach ($items as $delta => $item) {
015d06b10d37 initial
dwinter
parents:
diff changeset
429 if ($item['objid']!=""){
015d06b10d37 initial
dwinter
parents:
diff changeset
430
015d06b10d37 initial
dwinter
parents:
diff changeset
431 $element[$delta]['#markup'] = theme('digitalobjects_item_short', array("objid" => $item['objid']));
015d06b10d37 initial
dwinter
parents:
diff changeset
432 $element[$delta]['#markup'] .= theme('digitalobjects_item_tools', array("objid" => $item['objid']));
015d06b10d37 initial
dwinter
parents:
diff changeset
433 }
015d06b10d37 initial
dwinter
parents:
diff changeset
434 }
015d06b10d37 initial
dwinter
parents:
diff changeset
435 break;
015d06b10d37 initial
dwinter
parents:
diff changeset
436 }
015d06b10d37 initial
dwinter
parents:
diff changeset
437 return $element;
015d06b10d37 initial
dwinter
parents:
diff changeset
438 }
015d06b10d37 initial
dwinter
parents:
diff changeset
439
015d06b10d37 initial
dwinter
parents:
diff changeset
440
015d06b10d37 initial
dwinter
parents:
diff changeset
441 function digitalobjects_field_widget_info() {
015d06b10d37 initial
dwinter
parents:
diff changeset
442 #TODO:both types should check if field is valid
015d06b10d37 initial
dwinter
parents:
diff changeset
443 return array(
015d06b10d37 initial
dwinter
parents:
diff changeset
444 'digitalobject_default_textfield' => array(
015d06b10d37 initial
dwinter
parents:
diff changeset
445 'label' => t('digitalobject id'),
015d06b10d37 initial
dwinter
parents:
diff changeset
446 'field types' => array('digitalobjects_digitalobject'),
015d06b10d37 initial
dwinter
parents:
diff changeset
447 ),
015d06b10d37 initial
dwinter
parents:
diff changeset
448 'digitalcollection_default_textfield' => array(
015d06b10d37 initial
dwinter
parents:
diff changeset
449 'label' => t('digitalobject id'),
015d06b10d37 initial
dwinter
parents:
diff changeset
450 'field types' => array('digitalobjects_digitalcollection'),
015d06b10d37 initial
dwinter
parents:
diff changeset
451 )
015d06b10d37 initial
dwinter
parents:
diff changeset
452 );
015d06b10d37 initial
dwinter
parents:
diff changeset
453 }
015d06b10d37 initial
dwinter
parents:
diff changeset
454
015d06b10d37 initial
dwinter
parents:
diff changeset
455 function digitalobjects_field_widget_form(&$form, &$form_state, $field, $instance, $langcode, $items, $delta, $element) {
015d06b10d37 initial
dwinter
parents:
diff changeset
456
015d06b10d37 initial
dwinter
parents:
diff changeset
457
015d06b10d37 initial
dwinter
parents:
diff changeset
458 $field_name = $field['field_name'];
015d06b10d37 initial
dwinter
parents:
diff changeset
459 $field_type = $field['type'];
015d06b10d37 initial
dwinter
parents:
diff changeset
460
015d06b10d37 initial
dwinter
parents:
diff changeset
461
015d06b10d37 initial
dwinter
parents:
diff changeset
462 $value = isset($items[$delta]['objid']) ? $items[$delta]['objid'] : '';
015d06b10d37 initial
dwinter
parents:
diff changeset
463
015d06b10d37 initial
dwinter
parents:
diff changeset
464 $widget = $element;
015d06b10d37 initial
dwinter
parents:
diff changeset
465 $widget['#delta'] = $delta;
015d06b10d37 initial
dwinter
parents:
diff changeset
466
015d06b10d37 initial
dwinter
parents:
diff changeset
467 switch ($instance['widget']['type']) {
015d06b10d37 initial
dwinter
parents:
diff changeset
468
015d06b10d37 initial
dwinter
parents:
diff changeset
469
015d06b10d37 initial
dwinter
parents:
diff changeset
470
015d06b10d37 initial
dwinter
parents:
diff changeset
471 case 'digitalobject_default_textfield':
015d06b10d37 initial
dwinter
parents:
diff changeset
472 $widget += array(
015d06b10d37 initial
dwinter
parents:
diff changeset
473 '#type' => 'textfield',
015d06b10d37 initial
dwinter
parents:
diff changeset
474 '#default_value' => $value,
015d06b10d37 initial
dwinter
parents:
diff changeset
475 '#size' => 20,
015d06b10d37 initial
dwinter
parents:
diff changeset
476 '#maxlength' => 20,
015d06b10d37 initial
dwinter
parents:
diff changeset
477 );
015d06b10d37 initial
dwinter
parents:
diff changeset
478 $element['objid'] = $widget;
015d06b10d37 initial
dwinter
parents:
diff changeset
479 break;
015d06b10d37 initial
dwinter
parents:
diff changeset
480
015d06b10d37 initial
dwinter
parents:
diff changeset
481 case 'digitalcollection_default_textfield':
015d06b10d37 initial
dwinter
parents:
diff changeset
482 $widget += array(
015d06b10d37 initial
dwinter
parents:
diff changeset
483 '#type' => 'textfield',
015d06b10d37 initial
dwinter
parents:
diff changeset
484 '#default_value' => $value,
015d06b10d37 initial
dwinter
parents:
diff changeset
485 '#size' => 20,
015d06b10d37 initial
dwinter
parents:
diff changeset
486 '#maxlength' => 20,
015d06b10d37 initial
dwinter
parents:
diff changeset
487 );
015d06b10d37 initial
dwinter
parents:
diff changeset
488 break;
015d06b10d37 initial
dwinter
parents:
diff changeset
489
015d06b10d37 initial
dwinter
parents:
diff changeset
490
015d06b10d37 initial
dwinter
parents:
diff changeset
491 }
015d06b10d37 initial
dwinter
parents:
diff changeset
492
015d06b10d37 initial
dwinter
parents:
diff changeset
493
015d06b10d37 initial
dwinter
parents:
diff changeset
494
015d06b10d37 initial
dwinter
parents:
diff changeset
495
015d06b10d37 initial
dwinter
parents:
diff changeset
496 return $element;
015d06b10d37 initial
dwinter
parents:
diff changeset
497 }
015d06b10d37 initial
dwinter
parents:
diff changeset
498
015d06b10d37 initial
dwinter
parents:
diff changeset
499
015d06b10d37 initial
dwinter
parents:
diff changeset
500 function digitalobjects_field_is_empty($item, $field){
015d06b10d37 initial
dwinter
parents:
diff changeset
501 return empty($item['objid']);
015d06b10d37 initial
dwinter
parents:
diff changeset
502 }
015d06b10d37 initial
dwinter
parents:
diff changeset
503
015d06b10d37 initial
dwinter
parents:
diff changeset
504
015d06b10d37 initial
dwinter
parents:
diff changeset
505
015d06b10d37 initial
dwinter
parents:
diff changeset
506 function digitalobjects_user_admin_form_submit($form,$formstate){
015d06b10d37 initial
dwinter
parents:
diff changeset
507 $value = $formstate['values']['digitalcollection'];
015d06b10d37 initial
dwinter
parents:
diff changeset
508 $userid = $formstate['values']['userid'];
015d06b10d37 initial
dwinter
parents:
diff changeset
509
015d06b10d37 initial
dwinter
parents:
diff changeset
510 $user=user_load($userid);
015d06b10d37 initial
dwinter
parents:
diff changeset
511
015d06b10d37 initial
dwinter
parents:
diff changeset
512
015d06b10d37 initial
dwinter
parents:
diff changeset
513 $user->field_digitalobjects_cid['und'][0]['objid'] = $value;
015d06b10d37 initial
dwinter
parents:
diff changeset
514
015d06b10d37 initial
dwinter
parents:
diff changeset
515 user_save($user);
015d06b10d37 initial
dwinter
parents:
diff changeset
516
015d06b10d37 initial
dwinter
parents:
diff changeset
517 }
015d06b10d37 initial
dwinter
parents:
diff changeset
518
015d06b10d37 initial
dwinter
parents:
diff changeset
519 function digitalobjects_block_info(){
015d06b10d37 initial
dwinter
parents:
diff changeset
520 $blocks['digitalobjects_currentCollection'] = array(
015d06b10d37 initial
dwinter
parents:
diff changeset
521 'info' => t('Current Collection'),
015d06b10d37 initial
dwinter
parents:
diff changeset
522 'visibility' => BLOCK_VISIBILITY_PHP,
015d06b10d37 initial
dwinter
parents:
diff changeset
523 'pages' => '<?php global $user; if ($user->uid == 0) return FALSE; else return TRUE; ?>'
015d06b10d37 initial
dwinter
parents:
diff changeset
524 );
015d06b10d37 initial
dwinter
parents:
diff changeset
525 return $blocks;
015d06b10d37 initial
dwinter
parents:
diff changeset
526 }
015d06b10d37 initial
dwinter
parents:
diff changeset
527
015d06b10d37 initial
dwinter
parents:
diff changeset
528 function digitalobjects_block_view($delta){
015d06b10d37 initial
dwinter
parents:
diff changeset
529
015d06b10d37 initial
dwinter
parents:
diff changeset
530 switch($delta){
015d06b10d37 initial
dwinter
parents:
diff changeset
531
015d06b10d37 initial
dwinter
parents:
diff changeset
532 case 'digitalobjects_currentCollection':
015d06b10d37 initial
dwinter
parents:
diff changeset
533 /* display current cullection */
015d06b10d37 initial
dwinter
parents:
diff changeset
534
015d06b10d37 initial
dwinter
parents:
diff changeset
535 global $user;
015d06b10d37 initial
dwinter
parents:
diff changeset
536
015d06b10d37 initial
dwinter
parents:
diff changeset
537 $user_full=user_load($user->uid);
015d06b10d37 initial
dwinter
parents:
diff changeset
538
015d06b10d37 initial
dwinter
parents:
diff changeset
539 if (isset($user_full->field_digitalobjects_cid['und'][0]['objid'])){
015d06b10d37 initial
dwinter
parents:
diff changeset
540 $val = $user_full->field_digitalobjects_cid['und'][0]['objid'];
015d06b10d37 initial
dwinter
parents:
diff changeset
541 } else {
015d06b10d37 initial
dwinter
parents:
diff changeset
542 return;
015d06b10d37 initial
dwinter
parents:
diff changeset
543 }
015d06b10d37 initial
dwinter
parents:
diff changeset
544 $node = node_load($val);
015d06b10d37 initial
dwinter
parents:
diff changeset
545
015d06b10d37 initial
dwinter
parents:
diff changeset
546 #$title = $node=>title;
015d06b10d37 initial
dwinter
parents:
diff changeset
547
015d06b10d37 initial
dwinter
parents:
diff changeset
548 $block['content'] = theme('digitalobjects_currentCollection_block',array('node' => $node));
015d06b10d37 initial
dwinter
parents:
diff changeset
549
015d06b10d37 initial
dwinter
parents:
diff changeset
550 $form['submit'] = array('#type' => 'submit', '#value' => t('Save'));
015d06b10d37 initial
dwinter
parents:
diff changeset
551 $form['submit']['#submit'][] = 'digitalobjects_user_admin_collection';
015d06b10d37 initial
dwinter
parents:
diff changeset
552
015d06b10d37 initial
dwinter
parents:
diff changeset
553 $submitForm=drupal_get_form('digitalobjects_change_collection_button_form');
015d06b10d37 initial
dwinter
parents:
diff changeset
554 $block['content'] .= drupal_render($submitForm);
015d06b10d37 initial
dwinter
parents:
diff changeset
555 }
015d06b10d37 initial
dwinter
parents:
diff changeset
556
015d06b10d37 initial
dwinter
parents:
diff changeset
557
015d06b10d37 initial
dwinter
parents:
diff changeset
558 return $block;
015d06b10d37 initial
dwinter
parents:
diff changeset
559 }
015d06b10d37 initial
dwinter
parents:
diff changeset
560
015d06b10d37 initial
dwinter
parents:
diff changeset
561 function digitalobjects_change_collection_button_form(){
015d06b10d37 initial
dwinter
parents:
diff changeset
562 include_once 'digitalobjects.collections.inc';
015d06b10d37 initial
dwinter
parents:
diff changeset
563 global $user;
015d06b10d37 initial
dwinter
parents:
diff changeset
564 $form['userid'] = array(
015d06b10d37 initial
dwinter
parents:
diff changeset
565
015d06b10d37 initial
dwinter
parents:
diff changeset
566 '#type' => 'hidden',
015d06b10d37 initial
dwinter
parents:
diff changeset
567 '#value' => $user->uid
015d06b10d37 initial
dwinter
parents:
diff changeset
568 );
015d06b10d37 initial
dwinter
parents:
diff changeset
569
015d06b10d37 initial
dwinter
parents:
diff changeset
570 $form['submit'] = array('#type' => 'submit', '#value' => t('change'));
015d06b10d37 initial
dwinter
parents:
diff changeset
571 $form['submit']['#submit'][] = 'digitalobjects_user_admin_collection_submit';
015d06b10d37 initial
dwinter
parents:
diff changeset
572
015d06b10d37 initial
dwinter
parents:
diff changeset
573 return $form;
015d06b10d37 initial
dwinter
parents:
diff changeset
574 }
015d06b10d37 initial
dwinter
parents:
diff changeset
575
015d06b10d37 initial
dwinter
parents:
diff changeset
576 function digitalobjects_permission() {
015d06b10d37 initial
dwinter
parents:
diff changeset
577 return array(
015d06b10d37 initial
dwinter
parents:
diff changeset
578 'manage private collections' => array(
015d06b10d37 initial
dwinter
parents:
diff changeset
579 'title' => t('Manage private collections'),
015d06b10d37 initial
dwinter
parents:
diff changeset
580 'description' => t('Allow users create and manage private collections.'),
015d06b10d37 initial
dwinter
parents:
diff changeset
581 ),
015d06b10d37 initial
dwinter
parents:
diff changeset
582 'administrate digitalobjects' => array(
015d06b10d37 initial
dwinter
parents:
diff changeset
583 'title' => t('Administrate digitalobjects'),
015d06b10d37 initial
dwinter
parents:
diff changeset
584 'description' => t('Can add commentaries to digital objects.'),
015d06b10d37 initial
dwinter
parents:
diff changeset
585 ),
015d06b10d37 initial
dwinter
parents:
diff changeset
586 );
015d06b10d37 initial
dwinter
parents:
diff changeset
587 }
015d06b10d37 initial
dwinter
parents:
diff changeset
588
015d06b10d37 initial
dwinter
parents:
diff changeset
589
015d06b10d37 initial
dwinter
parents:
diff changeset
590 function digitalobjects_pathologic_alter(&$url_params, $parts, $settings){
015d06b10d37 initial
dwinter
parents:
diff changeset
591 #bilder ohne jegliche pfad angaben werden auf sites/default/files/..
015d06b10d37 initial
dwinter
parents:
diff changeset
592 if (preg_match('~^([^/]*)\.(png|gif|jpe?g)$~', $url_params['path'])){
015d06b10d37 initial
dwinter
parents:
diff changeset
593
015d06b10d37 initial
dwinter
parents:
diff changeset
594 $url_params['path'] = 'sites/default/files/' . $url_params['path'];
015d06b10d37 initial
dwinter
parents:
diff changeset
595 }
015d06b10d37 initial
dwinter
parents:
diff changeset
596
015d06b10d37 initial
dwinter
parents:
diff changeset
597 if (preg_match('~^./([^/]*)\.pt$~', $url_params['path'],$matches)){
015d06b10d37 initial
dwinter
parents:
diff changeset
598
015d06b10d37 initial
dwinter
parents:
diff changeset
599 $url_params['path'] = 'harriot/maps/' . $matches[1] . '.pt';
015d06b10d37 initial
dwinter
parents:
diff changeset
600 }
015d06b10d37 initial
dwinter
parents:
diff changeset
601
015d06b10d37 initial
dwinter
parents:
diff changeset
602 }