4 include_once
"Services/Object/classes/class.ilObject2.php";
35 public function __construct($a_id = 0, $a_call_by_reference =
true)
39 parent::__construct($a_id, $a_call_by_reference);
53 include_once
'Modules/RemoteCourse/classes/class.ilObjRemoteCourse.php';
57 include_once
'Modules/RemoteCategory/classes/class.ilObjRemoteCategory.php';
61 include_once
'Modules/RemoteFile/classes/class.ilObjRemoteFile.php';
65 include_once
'Modules/RemoteGlossary/classes/class.ilObjRemoteGlossary.php';
69 include_once
'Modules/RemoteGroup/classes/class.ilObjRemoteGroup.php';
73 include_once
'Modules/RemoteLearningModule/classes/class.ilObjRemoteLearningModule.php';
77 include_once
'Modules/RemoteWiki/classes/class.ilObjRemoteWiki.php';
81 include_once
'Modules/RemoteTest/classes/class.ilObjRemoteTest.php';
89 return parent::beforeCreate();
116 $query =
"SELECT organization FROM " . static::DB_TABLE_NAME .
117 " WHERE obj_id = " . $ilDB->quote($a_obj_id,
'integer') .
" ";
120 return $row->organization;
141 $this->organization = $a_organization;
171 $this->local_information = $a_info;
204 $query =
"SELECT mid FROM " . static::DB_TABLE_NAME .
205 " WHERE obj_id = " . $ilDB->quote($a_obj_id,
'integer') .
" ";
220 $this->remote_link = $a_link;
245 include_once
'./Services/WebServices/ECS/classes/class.ilECSImport.php';
249 include_once(
'./Services/WebServices/ECS/classes/class.ilECSUser.php');
251 $ecs_user_data = $user->toGET();
252 $GLOBALS[
'ilLog']->write(__METHOD__ .
': Using ecs user data ' . $ecs_user_data);
255 include_once
'./Services/WebServices/ECS/classes/class.ilECSParticipantSetting.php';
257 if (!$part->isTokenEnabled()) {
262 $ecs_url_hash =
'ecs_hash_url=' . urlencode(
$server->getServerURI() .
'/sys/auths/' .
$auth_hash);
269 $GLOBALS[
'ilLog']->write(__METHOD__ .
': ECS full link: ' . $link);
283 include_once
'./Services/WebServices/ECS/classes/class.ilECSAuth.php';
284 include_once
'./Services/WebServices/ECS/classes/class.ilECSConnector.php';
285 include_once
'./Services/WebServices/ECS/classes/class.ilECSImport.php';
286 include_once
'./Services/WebServices/ECS/classes/class.ilECSSetting.php';
294 $auth->setPid($import_info->getMID());
297 $realm = sha1($a_plain_realm);
298 $GLOBALS[
'ilLog']->write(__METHOD__ .
': Using realm ' . $a_plain_realm);
299 $auth->setRealm($realm);
300 $GLOBALS[
'ilLog']->write(__METHOD__ .
' Mid is ' . $this->
getMID());
301 $this->auth_hash = $connector->addAuth(@json_encode(
$auth), $this->
getMID());
304 $ilLog->write(__METHOD__ .
': Caught error from ECS Auth resource: ' . $exc->getMessage());
318 "local_information" =>
array(
"text",
""),
319 "remote_link" =>
array(
"text",
""),
320 "mid" =>
array(
"integer", 0),
321 "organization" =>
array(
"text",
"")
374 include_once(
'./Services/WebServices/ECS/classes/class.ilECSImport.php');
378 " WHERE obj_id = " . $this->db->quote($this->
getId(),
'integer') .
" ";
379 $ilDB->manipulate(
$query);
388 " WHERE obj_id = " . $this->db->quote($this->
getId(),
'integer') .
" ";
423 include_once
'./Services/WebServices/ECS/classes/class.ilECSUtils.php';
431 include_once
'./Services/WebServices/ECS/classes/class.ilECSCategoryMapping.php';
451 $ilLog->write(
'updateFromECSContent: ' . print_r($a_ecs_content,
true));
454 $organisation = null;
456 include_once
'./Services/WebServices/ECS/classes/class.ilECSUtils.php';
458 $ilLog->write(
'found organisation: ' . $organisation);
463 $this->
setTitle($a_ecs_content->title);
467 $ilLog->write(
'updateCustomFromECSContent');
472 $ilLog->write(
'ilObject->update()');
475 include_once
'./Services/WebServices/ECS/classes/class.ilECSUtils.php';
484 include_once
'./Services/WebServices/ECS/classes/class.ilECSCategoryMapping.php';
504 $ilLog->write(
"importing metadata from json: " . print_r($a_json,
true));
506 include_once(
'./Services/WebServices/ECS/classes/class.ilECSDataMappingSettings.php');
507 include_once(
'./Services/AdvancedMetaData/classes/class.ilAdvancedMDValues.php');
508 include_once(
'./Services/AdvancedMetaData/classes/class.ilAdvancedMDFieldDefinition.php');
512 foreach ($values_records as $values_record) {
514 $values_record->read();
519 foreach ($a_definition as
$id =>
$type) {
520 if (is_array(
$type)) {
528 if ($field = $mappings->getMappingByECSName($a_mapping_mode,
$id)) {
531 foreach ($values_records as $values_record) {
532 $adv_md_defs = $values_record->getDefinitions();
533 if (isset($adv_md_defs[$field])) {
534 $adv_md_def = $adv_md_defs[$field];
542 $raw_value = $a_json->$target;
545 if (!is_object($timePlace)) {
546 include_once(
'./Services/WebServices/ECS/classes/class.ilECSTimePlace.php');
547 if (is_object($raw_value)) {
549 $timePlace->loadFromJSON($raw_value);
554 $raw_value = $timePlace;
557 if ($adv_md_def->importFromECS(
$type, $raw_value,
$id)) {
564 foreach ($values_records as $values_record) {
566 foreach ($values_record->getADTGroup()->getElements() as $element_id => $element) {
567 if (!$element->isNull()) {
593 include_once(
'./Services/WebServices/ECS/classes/class.ilECSExport.php');
594 include_once(
'./Services/WebServices/ECS/classes/class.ilECSImport.php');
615 return $this->
handleUpdate($a_server, $a_econtent_id, $a_mids);
633 include_once(
'./Services/WebServices/ECS/classes/class.ilECSEContentDetails.php');
641 $ilLog->write(__METHOD__ .
': Handling delete of deprecated remote object. DONE');
645 $ilLog->write(__METHOD__ .
': Receivers are ' . print_r($details->getReceivers(),
true));
646 $ilLog->write(__METHOD__ .
': Senders are ' . print_r($details->getSenders(),
true));
649 include_once(
'./Services/WebServices/ECS/classes/class.ilECSParticipantSettings.php');
651 $ilLog->write(
'Ignoring disabled participant. MID: ' . $details->getOwner());
656 include_once
'Services/WebServices/ECS/classes/class.ilECSImport.php';
657 include_once
'Services/WebServices/ECS/classes/class.ilECSConnector.php';
658 foreach (array_intersect($a_mids, $details->getReceivers()) as
$mid) {
665 $json =
$res->getResult();
666 $GLOBALS[
'ilLog']->write(__METHOD__ .
': Received json: ' . print_r($json,
true));
667 if (!is_object($json)) {
670 if (!is_object($json)) {
675 $ilLog->write(__METHOD__ .
': Error parsing result. ' . $exc->getMessage());
684 $ilLog->write(__METHOD__ .
': Handling update for existing object');
687 $ilLog->write(__METHOD__ .
': Cannot instantiate remote object. Got object type ' . $remote->getType());
690 $remote->updateFromECSContent($a_server, $json, $details->getMySender());
692 $GLOBALS[
'ilLog']->write(__METHOD__ .
': my sender ' . $details->getMySender() .
'vs mid' .
$mid);
694 $ilLog->write(__METHOD__ .
': Handling create for non existing object');
698 $ilLog->write(__METHOD__ .
': Updating import status');
699 include_once(
'./Services/WebServices/ECS/classes/class.ilECSImport.php');
703 $import->setMID($mid);
706 $ilLog->write(__METHOD__ .
': Sending notification');
711 $ilLog->write(__METHOD__ .
': done');
720 include_once(
'Services/WebServices/ECS/classes/class.ilECSSetting.php');
722 if (!count($rcps = $settings->getEContentRecipients())) {
726 include_once(
'./Services/Mail/classes/class.ilMail.php');
727 include_once(
'./Services/Language/classes/class.ilLanguageFactory.php');
730 $lang->loadLanguageModule(
'ecs');
732 $mail =
new ilMail(self::MAIL_SENDER);
739 include_once(
'./Services/Link/classes/class.ilLink.php');
741 $message .=
$lang->txt(
"perma_link") .
': ' . $href .
"\n\n";
745 $settings->getEContentRecipientsAsString(),
748 $lang->txt(
'ecs_new_econtent_subject'),
770 include_once(
'./Services/WebServices/ECS/classes/class.ilECSImport.php');
775 $ilLog->write(__METHOD__ .
': Received obj_ids ' . print_r($obj_ids,
true));
777 foreach ($obj_ids as $obj_id) {
779 foreach ($references as
$ref_id) {
781 $ilLog->write(__METHOD__ .
': Deleting obsolete remote course: ' . $tmp_obj->getTitle());
783 $tree->deleteTree($tree->getNodeData($ref_id));
803 include_once
'./Services/WebServices/ECS/classes/class.ilECSConnector.php';
805 $connector->addHeader(
'X-EcsQueryStrings', $a_sender_only ?
'sender=true' :
'all=true');
808 return $list->getResult()->getLinkIds();
811 $ilLog->write(__METHOD__ .
': Error getting resource list. ' . $exc->getMessage());
const TYPE_REMOTE_CATEGORY
static getInstancesForObjectId($a_obj_id, $a_obj_type=null, $a_sub_type="-", $a_sub_id=0)
Get instances for given object id.
doDelete()
Delete remote object.
sendNewContentNotification($a_server_id)
send notifications about new EContent
static getInstanceByServerId($a_server_id)
Get singleton instance.
static lookupParticipantName($a_owner, $a_server_id)
Lookup participant name.
if(isset($_REQUEST['delete'])) $list
getTableName()
Get db table name.
getOrganization()
get organization
static _lookupEContentId($a_obj_id)
get econent_id
static getInstanceByServerId($a_server_id)
Get singleton instance per server.
doCreateCustomFields(array &$a_fields)
Add custom fields to db insert.
getRemoteLink()
get remote link
static _isRemote($a_server_id, $a_econtent_id)
is remote object
Representation of ECS EContent Time Place.
Remote glossary app class.
__construct($a_id=0, $a_call_by_reference=true)
Constructor.
getServerId()
Get current server id.
handleCreate(ilECSSetting $a_server, $a_econtent_id, array $a_mids)
Handle creation.
static _getStaticLink( $a_ref_id, $a_type='', $a_fallback_goto=true, $append="")
Get static link.
doUpdateCustomFields(array &$a_fields)
Add custom fields to db update.
$GLOBALS['loaded']
Global hash that tracks already loaded includes.
static _lookupMID($a_obj_id)
lookup owner mid
handleDelete(ilECSSetting $a_server, $a_econtent_id, $a_mid=0)
Handle delete event.
static handleUpdate($a_obj_id, $a_server_id, $a_matchable_content)
Handle update of ecs content and create references.
setRemoteLink($a_link)
set remote link
updateCustomFromECSContent(ilECSSetting $a_server, $ecs_content)
update remote object settings from ecs content
Presentation of ecs content details (http://...campusconnect/courselinks/id/details) ...
Remote learning module app class.
getImportId()
get import id
setPermissions($a_parent_ref)
getECSObjectType()
Get ECS resource identifier, e.g.
doReadCustomFields($a_row)
Read custom fields from db row.
getRealmPlain()
Get realm plain.
static _deleteByObjId($a_obj_id)
Delete by obj_id.
static getInstanceByEventType($a_type)
Get instance by ilECSEvent(QueueReader) type.
static _getAllReferences($a_id)
get all reference ids of object
importMetadataFromJson($a_json, ilECSSetting $a_server, array $a_definition, $a_mapping_mode)
Add advanced metadata to json (export)
static getInstanceByServerId($a_server_id)
Get instance by server id.
isLocalObject()
Is remote object from same installation?
static getMatchableContent($a_resource_id, $a_server_id, $a_ecs_content, $a_owner)
Convert ECS content to rule matchable values.
static _getLanguage($a_lang_key='')
Get langauge object.
catch(Exception $e) $message
setOrganization($a_organization)
set organization
foreach($_POST as $key=> $value) $res
setLocalInformation($a_info)
set local information
static getMatchingCategory($a_server_id, $a_matchable_content)
get matching category
This class handles base functions for mail handling.
getFullRemoteLink()
get full remote link Including ecs generated hash and auth mode
Storage of ECS imported objects.
static _isImported($a_server_id, $a_econtent_id, $a_mid, $a_sub_id=null)
check if econtent is imported for a specific mid
static lookupServerId($a_obj_id)
Lookup server id of imported content <type> $ilDB.
Remote object app base class.
static getInstanceByObjId($a_obj_id, $stop_on_error=true)
get an instance of an Ilias object by object id
const TYPE_REMOTE_LEARNING_MODULE
Create styles array
The data for the language used.
static _lookupOrganization($a_obj_id)
lookup organization
createAuthResource($a_plain_realm)
create authentication resource on ecs server
const TYPE_REMOTE_GLOSSARY
handleUpdate(ilECSSetting $a_server, $a_econtent_id, array $a_mids)
Handle update event.
static _lookupObjIds($a_server_id, $a_econtent_id)
Lookup obj_id.
static _getAutoGeneratedMessageString(ilLanguage $lang=null)
Get auto generated info string.
setEContentId($a_id)
set econtent id
static getInstanceByRefId($a_ref_id, $stop_on_error=true)
get an instance of an Ilias object by reference id
doUpdate()
Update remote object.
Class ilObject2 This is an intermediate progress of ilObject class.
createFromECSEContent(ilECSSetting $a_server, $a_ecs_content, $a_owner)
create remote object from ECSContent object
Remote category app class.
static getInstance($a_server_id, $a_econtent_id, $a_resource_type)
Get data from server.
const HTTP_CODE_NOT_FOUND
getAllResourceIds(ilECSSetting $a_server, $a_sender_only=false)
Get all available resources.
Stores relevant user data.
doCreate()
Create remote object.
updateFromECSContent(ilECSSetting $a_server, $a_ecs_content, $a_owner)
update remote object settings from ecs content
getLocalInformation()
get local information