@@ -118,18 +118,18 @@ function os2web_edoc_esdh_mm_import_meeting($meeting) {
118
118
);
119
119
$ meeting_agendas = $ manifest ->xpath ("/Meeting/MeetingAgendaTypes/MeetingAgendaType/MeetingAgendaItems " );
120
120
$ meeting_state = $ manifest ->xpath ('/Meeting/MeetingState ' );
121
- $ meeting ['state ' ] = (string ) $ meeting_state [0 ];
122
121
$ meeting_type = $ manifest ->xpath ('/Meeting/MeetingAgendaTypes/MeetingAgendaType/AgendaType ' );
123
- $ meeting ['type ' ] = (string ) $ meeting_type [0 ];
124
122
$ meeting_pdf = $ manifest ->xpath ('/Meeting/MeetingAgendaTypes/MeetingAgendaType/PDFDocument ' );
123
+ $ meeting ['state ' ] = (string ) $ meeting_state [0 ];
124
+ $ meeting ['type ' ] = (string ) $ meeting_type [0 ];
125
125
$ meeting ['pdf ' ] = (string ) $ meeting_pdf [0 ];
126
126
if (empty ($ meeting_agendas )) {
127
127
watchdog ('eDoc MM ' , 'Empty list of import items in %file. ' , array ('%file ' => $ file ), WATCHDOG_WARNING );
128
128
}
129
129
130
130
foreach ($ meeting_agendas as $ meeting_agenda ) {
131
+ #error_log(print_r($meeting_agenda, 1));
131
132
$ imported = _os2web_edoc_esdh_mm_import_meeting_agenda ($ meeting , $ meeting_agenda );
132
- error_log ("du er her " );
133
133
if (is_array ($ imported )) {
134
134
$ imported ['publish ' ] = TRUE ;
135
135
$ meetings [] = $ imported ;
@@ -157,17 +157,22 @@ error_log("du er her");
157
157
*/
158
158
function _os2web_edoc_esdh_mm_import_meeting_agenda (&$ meeting , $ agenda_xml ) {
159
159
$ meeting ['items ' ] = array ();
160
-
160
+ $ agenda = $ meeting ;
161
161
// Only add the agenda if its PDF exists.
162
162
if (file_exists (drupal_realpath ($ meeting ['uri ' ] . $ meeting ['pdf ' ]))) {
163
163
$ agenda ['full_doc ' ] = array (
164
164
'uri ' => $ meeting ['uri ' ] . $ meeting ['pdf ' ],
165
165
'title ' => $ meeting ['committee ' ],
166
166
);
167
167
// Import all agenda items.
168
- foreach ($ agenda_xml ->xpath ("/MeetingAgendaItems/MeetingAgendaItem " ) as $ agenda_item ) {
168
+ #error_log(print_r($agenda_xml, 1));
169
+ $ agenda_bullet = $ agenda_xml ;
170
+ #error_log(print_r($agenda_xml, 1));
171
+ foreach ($ agenda_bullet ->MeetingAgendaItem as $ agenda_item ) {
172
+ #error_log(print_r($agenda_item, 1));
169
173
if (($ item = _os2web_edoc_esdh_mm_import_meeting_agenda_item ($ meeting , $ agenda_item )) !== FALSE ) {
170
174
$ agenda ['items ' ][] = $ item ;
175
+ ## error_log(print_r($agenda_item, 1));
171
176
}
172
177
}
173
178
// Apply defaults, just in case we missed something.
@@ -191,27 +196,29 @@ function _os2web_edoc_esdh_mm_import_meeting_agenda(&$meeting, $agenda_xml) {
191
196
* The imported item.
192
197
*/
193
198
function _os2web_edoc_esdh_mm_import_meeting_agenda_item ($ meeting , $ xml ) {
194
- $ xml_item_number = (int ) array_shift ($ xml ->xpath ("/AgendaItemNumber " ));
195
- $ xml_item_pdf = (string ) array_shift ($ agenda_xml ->xpath ('/PDFDocument ' ));
196
- $ xml_item_name = (string ) array_shift ($ agenda_xml ->xpath ('/Document/NeutralTitle ' ));
197
- $ document_type = (string ) array_shift ($ agenda_xml ->xpath ('/Document/PublishingType ' ));
199
+ $ xml_item ['number ' ] = (int ) $ xml ->AgendaItemNumber ;
200
+ $ xml_item ['pdf ' ] = (string ) $ xml ->PDFDocument ;
201
+ $ xml_item_document = $ xml ->Document ;
202
+ $ xml_item ['name ' ] = (string ) $ xml_item_document ->NeutralTitle ;
203
+ $ xml_item ['document_type ' ] = (string ) $ xml_item_document ->PublishingType ;
198
204
205
+ #error_log(print_r($meeting, 1));
199
206
$ item = array (
200
- 'id ' => $ xml_item_number ,
201
- 'title ' => 'Punkt ' . $ xml_item_number . ' ' . $ xml_item_name ,
202
- 'access ' => $ document_type ,
207
+ 'id ' => $ xml_item [ ' number ' ] ,
208
+ 'title ' => 'Punkt ' . $ xml_item [ ' number ' ] . ' ' . $ xml_item [ ' name ' ] ,
209
+ 'access ' => $ xml_item [ ' document_type ' ] ,
203
210
'bullets ' => array (),
204
211
'enclosures ' => array (),
205
212
'doc ' => array (
206
213
'uri ' => implode ('/ ' , array (
207
- variable_get ('os2web_edoc_esdh_mm_path ' , MM_IMPORT_DIR ),
208
- $ meeting ['sys_id ' ],
209
- $ xml_item_pdf )),
210
- 'title ' => $ xml_item_name ,
214
+ trim ($ meeting ['uri ' ], "/ " ),
215
+ $ xml_item ['pdf ' ])),
216
+ 'title ' => $ xml_item ['name ' ],
211
217
),
212
218
);
219
+
213
220
// Deny closed content.
214
- if ($ document_type === 'SKAL PUBLICERES ' ) {
221
+ if ($ item [ ' access ' ] === 'SKAL PUBLICERES ' ) {
215
222
// Process attachments.
216
223
// foreach ($xml->xpath("table[@name='bullet']") as $bullet_xml) {
217
224
// if (($bullet = _os2web_edoc_esdh_import_bullet($info, $bullet_xml)) !== FALSE) {
@@ -224,21 +231,26 @@ function _os2web_edoc_esdh_mm_import_meeting_agenda_item($meeting, $xml) {
224
231
// }
225
232
// }
226
233
// Process attachments.
227
- foreach ($ xml ->xpath ("/Document/Attachments'] " ) as $ enclosure ) {
228
- $ filename_in = (string ) array_shift ($ enclosure ->xpath ("/PDFDocument " ));
229
- $ access = (string ) array_shift ($ enclosure ->xpath ("/PublishingType " ));
230
- if (strlen ($ filename_in ) > 0 && $ access === 'SKAL PUBLICERES ' ) {
231
- $ item ['enclosures ' ][] = array (
232
- 'uri ' => implode ('/ ' , array (
233
- variable_get ('os2web_edoc_esdh_mm_path ' , MM_IMPORT_DIR ),
234
- $ info ['filesfolder ' ],
235
- $ filename_in )),
236
- 'title ' => trim ((string ) array_shift ($ enclosure ->xpath ("/NeutralTitle " ))),
237
- 'access ' => TRUE ,
238
- );
234
+ #error_log(print_r($xml_item_document->Attachments, 1 ));
235
+ foreach ($ xml_item_document ->Attachments as $ enclosures ) {
236
+ #error_log(print_r($enclosure, 1 ));
237
+ foreach ($ enclosures ->Attachment as $ enclosure ) {
238
+ #error_log(print_r($enclosure, 1 ));
239
+ $ enclosure_item ['filename_in ' ] = (string ) $ enclosure ->PDFDocument ;
240
+ $ enclosure_item ['access ' ] = (string ) $ enclosure ->PublishingType ;
241
+ if (strlen ($ enclosure_item ['filename_in ' ]) > 0 && $ enclosure_item ['access ' ] === 'SKAL PUBLICERES ' ) {
242
+ $ item ['enclosures ' ][] = array (
243
+ 'uri ' => implode ('/ ' , array (
244
+ trim ($ meeting ['uri ' ], "/ " ),
245
+ $ enclosure_item ['filename_in ' ])),
246
+ 'title ' => trim ((string ) $ enclosure ->NeutralTitle ),
247
+ 'access ' => TRUE ,
248
+ );
249
+ }
239
250
}
240
251
}
241
252
}
253
+ #error_log(print_r($item, 1));
242
254
$ item += os2web_esdh_provider_default_item ();
243
255
return $ item ;
244
256
}
@@ -283,19 +295,19 @@ function _os2web_edoc_esdh_mm_order_addenums($drush = FALSE) {
283
295
// Find all meetings and gather meeting and agenda_ids.
284
296
$ query = new EntityFieldQuery ();
285
297
$ query ->entityCondition ('entity_type ' , 'node ' , '= ' )
286
- ->propertyCondition ('type ' , 'meeting ' , '= ' );
298
+ ->propertyCondition ('type ' , 'os2web_meetings_meeting ' , '= ' );
287
299
$ nodes_result = $ query ->execute ();
288
300
289
301
if (!isset ($ nodes_result ['node ' ])) {
290
302
return ;
291
303
}
292
304
$ nodes = $ nodes_result ['node ' ];
293
-
305
+ error_log ( print_r ( $ nodes , 1 ));
294
306
// Load necessary fields into the node object.
295
307
$ fields = field_info_instances ('node ' , 'meeting ' );
296
- field_attach_load ('node ' , $ nodes , FIELD_LOAD_CURRENT , array ('field_id ' => $ fields ['field_addenum_to ' ]['field_id ' ]));
297
- field_attach_load ('node ' , $ nodes , FIELD_LOAD_CURRENT , array ('field_id ' => $ fields ['field_meeting_id ' ]['field_id ' ]));
298
- field_attach_load ('node ' , $ nodes , FIELD_LOAD_CURRENT , array ('field_id ' => $ fields ['field_meeting_sub_id ' ]['field_id ' ]));
308
+ field_attach_load ('node ' , $ nodes , FIELD_LOAD_CURRENT , array ('field_id ' => $ fields ['field_os2web_meetings_addendum ' ]['field_id ' ]));
309
+ field_attach_load ('node ' , $ nodes , FIELD_LOAD_CURRENT , array ('field_id ' => $ fields ['field_os2web_meetings_id ' ]['field_id ' ]));
310
+ field_attach_load ('node ' , $ nodes , FIELD_LOAD_CURRENT , array ('field_id ' => $ fields ['field_os2web_meetings_sub_id ' ]['field_id ' ]));
299
311
300
312
// Meetings as: $meetings[<meeting_id>][<system_id>][<node_id>] .
301
313
$ meetings = array ();
@@ -305,12 +317,12 @@ function _os2web_edoc_esdh_mm_order_addenums($drush = FALSE) {
305
317
$ debug && error_log ('MM Import - Retrieve nodes with addendums from ' . count ($ nodes ) . ' nodes - ' . timer_read ('_os2web_edoc_esdh_mm_order_addenums ' ) . 'ms - ' . memory_get_usage ());
306
318
// Loop through all meeting nodes, and generate an array with meeting grouped.
307
319
foreach ($ nodes as $ node ) {
308
- $ addenum_to = field_get_items ('node ' , $ node , 'field_addenum_to ' );
320
+ $ addenum_to = field_get_items ('node ' , $ node , 'field_os2web_meetings_addendum ' );
309
321
if (isset ($ addenum_to [0 ]['nid ' ]) && is_numeric ($ addenum_to [0 ]['nid ' ])) {
310
322
$ nids_with_addendums [$ node ->nid ] = $ node ->nid ;
311
323
}
312
- $ meeting_id = field_get_items ('node ' , $ node , 'field_meeting_id ' );
313
- $ meeting_sub_id = field_get_items ('node ' , $ node , 'field_meeting_sub_id ' );
324
+ $ meeting_id = field_get_items ('node ' , $ node , 'field_os2web_meetings_id ' );
325
+ $ meeting_sub_id = field_get_items ('node ' , $ node , 'field_os2web_meetings_sub_id ' );
314
326
if (!isset ($ meeting_id [0 ]['value ' ]) || !isset ($ meeting_sub_id [0 ]['value ' ])) {
315
327
$ debug && error_log ('MM Import - Missing meeting_id or meeting_sub_id for nid= ' . $ node ->nid );
316
328
continue ;
@@ -335,22 +347,22 @@ function _os2web_edoc_esdh_mm_order_addenums($drush = FALSE) {
335
347
}
336
348
// Lowest system id is primary.
337
349
$ primary = $ nodes [array_shift ($ meeting )];
338
- $ addenum_to = field_get_items ('node ' , $ primary , 'field_addenum_to ' );
350
+ $ addenum_to = field_get_items ('node ' , $ primary , 'field_os2web_meetings_addendum ' );
339
351
if (!empty ($ addenum_to [0 ]['nid ' ])) {
340
- $ primary ->field_addenum_to [LANGUAGE_NONE ] = array ();
352
+ $ primary ->field_os2web_meetings_addendum [LANGUAGE_NONE ] = array ();
341
353
node_save ($ primary );
342
354
}
343
355
while ($ next = array_shift ($ meeting )) {
344
356
// Set up references for addenum agendas.
345
357
$ node = $ nodes [$ next ];
346
358
if ($ primary ) {
347
- $ addenum_to = field_get_items ('node ' , $ node , 'field_addenum_to ' );
359
+ $ addenum_to = field_get_items ('node ' , $ node , 'field_os2web_meetings_addendum ' );
348
360
$ addenum_to = is_array ($ addenum_to ) ? array_shift (array_shift ($ addenum_to )) : FALSE ;
349
361
// Save time by only updating what is needed.
350
362
if ($ addenum_to != $ primary ->nid ) {
351
- // error_log(basename(__FILE__) . ':' . __LINE__ . ' Var: $primary = ' . print_r($primary->nid, 1));
352
- // error_log(basename(__FILE__) . ':' . __LINE__ . ' Var: $addenum_to = ' . print_r($addenum_to, 1));
353
- $ node ->field_addenum_to [LANGUAGE_NONE ][0 ]['nid ' ] = $ primary ->nid ;
363
+ error_log (basename (__FILE__ ) . ': ' . __LINE__ . ' Var: $primary = ' . print_r ($ primary ->nid , 1 ));
364
+ error_log (basename (__FILE__ ) . ': ' . __LINE__ . ' Var: $addenum_to = ' . print_r ($ addenum_to , 1 ));
365
+ $ node ->field_os2web_meetings_addendum [LANGUAGE_NONE ][0 ]['nid ' ] = $ primary ->nid ;
354
366
node_save ($ node );
355
367
}
356
368
}
@@ -377,7 +389,7 @@ function _os2web_edoc_esdh_mm_order_addenums($drush = FALSE) {
377
389
foreach ($ nids_with_addendums as $ nid ) {
378
390
// Load the node from the local variable.
379
391
$ node = $ nodes [$ nid ];
380
- $ node ->field_addenum_to = array ();
392
+ $ node ->field_os2web_meetings_addendum = array ();
381
393
node_save ($ node );
382
394
if ($ drush === TRUE ) {
383
395
drush_log ("Resetting $ nid.. " , 'ok ' );
0 commit comments