24 include_once
'./Services/WebServices/ECS/classes/class.ilECSContentWriterException.php';
64 $this->content_obj = $a_cont_obj;
66 include_once(
'./Services/WebServices/ECS/classes/class.ilECSExport.php');
67 $this->export_settings =
new ilECSExport($this->content_obj->getId());
81 include_once(
'./Services/WebServices/ECS/classes/class.ilECSSettings.php');
86 include_once(
'./Services/WebServices/ECS/classes/class.ilECSExport.php');
88 foreach($a_subbtree_nodes as $node)
90 if(in_array($node[
'obj_id'],$exported))
97 $writer->deleteECSContent();
119 $this->exportable = $a_status;
143 $this->owner = $a_id;
166 $this->mids = $a_mids;
191 if($this->export_settings->isExported())
220 $this->log->write(__METHOD__.
': Error connecting to ECS server. '.$exc->getMessage());
225 $this->log->write(__METHOD__.
': Cannot update ECS content. '.$exc->getMessage());
242 if($this->export_settings->isExported())
255 $this->log->write(__METHOD__.
': Error connecting to ECS server. '.$exc->getMessage());
260 $this->log->write(__METHOD__.
': Cannot update ECS content. '.$exc->getMessage());
273 include_once(
'./Services/WebServices/ECS/classes/class.ilECSConnector.php');
274 include_once(
'./Services/WebServices/ECS/classes/class.ilECSConnectorException.php');
278 $this->log->write(__METHOD__.
': Start deleting ECS content...');
281 if(!$this->export_settings->getEContentId())
283 $this->log->write(__METHOD__.
': Missing eid. Aborting.');
286 $connector->deleteResource($this->export_settings->getEContentId());
287 $this->export_settings->setExported(
false);
288 $this->export_settings->save();
305 include_once(
'./Services/WebServices/ECS/classes/class.ilECSConnector.php');
306 include_once(
'./Services/WebServices/ECS/classes/class.ilECSConnectorException.php');
310 $this->log->write(__METHOD__.
': Starting course export...');
317 $econtent_id = $connector->addResource(json_encode($this->json));
319 $this->export_settings->setExported(
true);
320 $this->export_settings->setEContentId($econtent_id);
321 $this->export_settings->save();
347 include_once(
'./Services/WebServices/ECS/classes/class.ilECSEContentReader.php');
350 $content =
$reader->getEContent();
351 if(!is_array($content) or !is_object($content[0]))
353 $this->log->write(__METHOD__.
': Error reading EContent with id: '.$this->export_settings->getEContentId());
354 include_once(
'./Services/WebServices/ECS/classes/class.ilECSContentWriterException.php');
357 $this->json = $content[0];
360 #var_dump("<pre>",json_encode($this->json),"</pre>");
362 $connector->updateResource($this->export_settings->getEContentId(),json_encode($this->json));
378 include_once(
'Services/WebServices/ECS/classes/class.ilECSSettings.php');
380 if(!count($rcps = $settings->getApprovalRecipients()))
385 include_once(
'./Services/Mail/classes/class.ilMail.php');
386 include_once(
'./Services/Language/classes/class.ilLanguageFactory.php');
389 $lang->loadLanguageModule(
'ecs');
392 $message =
$lang->txt(
'ecs_export_created_body_a').
"\n\n";
393 $message .=
$lang->txt(
'title').
': '.$this->content_obj->getTitle().
"\n";
394 if(strlen($desc = $this->content_obj->getDescription()))
396 $message .=
$lang->txt(
'desc').
': '.$desc.
"\n";
400 $message .= (
"\n".$lang->txt(
'ecs_published_for'));
402 $export =
new ilECSExport($this->content_obj->getId());
405 include_once
'./Services/WebServices/ECS/classes/class.ilECSEContentReader.php';
410 foreach(
$reader->getEContent() as $econ)
412 foreach($econ->getEligibleMembers() as $member)
416 include_once
'./Services/WebServices/ECS/classes/class.ilECSCommunityReader.php';
419 $message .= (
"\n\n".$part->getParticipantName().
"\n");
420 $message .= ($part->getDescription());
429 $message .= (
' '.$lang->txt(
'ecs_not_published').
"\n\n");
434 $GLOBALS[
'ilLog']->write(__METHOD__.
': Cannot read approvements.');
438 $GLOBALS[
'ilLog']->write(__METHOD__.
': Cannot read approvements.');
441 include_once(
'classes/class.ilLink.php');
443 $message .=
$lang->txt(
"perma_link").
': '.$href.
"\n\n";
446 $error = $mail->sendMail($settings->getApprovalRecipientsAsString(),
448 $lang->txt(
'ecs_new_approval_subject'),
449 $message,array(),array(
'normal'));
462 include_once(
'./Services/WebServices/ECS/classes/class.ilECSEContent.php');
476 ######################################################
477 include_once(
'./classes/class.ilLink.php');
478 $this->json->setURL(
ilLink::_getLink($this->content_obj->getRefId(),$this->content_obj->getType()));
479 $this->json->setTitle($this->content_obj->getTitle());
482 ######################################################
483 if($this->mode == self::UPDATE_ALL)
492 $this->json->setEligibleMembers($members);
496 include_once(
'./Services/MetaData/classes/class.ilMDLanguage.php');
498 $this->json->setStatus($this->content_obj->isActivated() ?
'online' :
'offline');
499 $this->json->setInfo($this->content_obj->getDescription());
502 ######################################################
503 include_once(
'./Services/WebServices/ECS/classes/class.ilECSUtils.php');
504 include_once(
'./Services/WebServices/ECS/classes/class.ilECSDataMappingSettings.php');
505 include_once(
'./Services/AdvancedMetaData/classes/class.ilAdvancedMDValues.php');
506 include_once(
'./Services/AdvancedMetaData/classes/class.ilAdvancedMDFieldDefinition.php');
511 if($field = $mappings->getMappingByECSName(
'study_courses'))
513 $value = isset($values[$field]) ? $values[$field] :
'';
514 $this->json->setStudyCourses($value);
517 if($field = $mappings->getMappingByECSName(
'lecturer'))
519 $value = isset($values[$field]) ? $values[$field] :
'';
520 $this->json->setLecturers($value);
523 if($field = $mappings->getMappingByECSName(
'courseType'))
525 $value = isset($values[$field]) ? $values[$field] :
'';
526 $this->json->setCourseType($value);
529 if($field = $mappings->getMappingByECSName(
'courseID'))
531 $value = isset($values[$field]) ? $values[$field] :
'';
532 $this->json->setCourseID($value);
535 if($field = $mappings->getMappingByECSName(
'credits'))
537 $value = isset($values[$field]) ? $values[$field] :
'';
538 $this->json->setCredits($value);
541 if($field = $mappings->getMappingByECSName(
'semester_hours'))
543 $value = isset($values[$field]) ? $values[$field] :
'';
544 $this->json->setSemesterHours($value);
547 if($field = $mappings->getMappingByECSName(
'term'))
549 $value = isset($values[$field]) ? $values[$field] :
'';
550 $this->json->setTerm($value);
553 if($field = $mappings->getMappingByECSName(
'begin'))
555 $value = isset($values[$field]) ? $values[$field] :
'';
556 $this->json->getTimePlace()->setBegin($value);
558 if($field = $mappings->getMappingByECSName(
'end'))
560 $value = isset($values[$field]) ? $values[$field] :
'';
561 $this->json->getTimePlace()->setEnd($value);
563 if($field = $mappings->getMappingByECSName(
'room'))
565 $value = isset($values[$field]) ? $values[$field] :
'';
566 $this->json->getTimePlace()->setRoom($value);
568 if($field = $mappings->getMappingByECSName(
'cycle'))
570 $value = isset($values[$field]) ? $values[$field] :
'';
571 $this->json->getTimePlace()->setCycle($value);