ILIAS  release_5-4 Revision v5.4.26-12-gabc799a52e6
class.ilRemoteObjectBase.php
Go to the documentation of this file.
1 <?php
2 /* Copyright (c) 1998-2010 ILIAS open source, Extended GPL, see docs/LICENSE */
3 
4 include_once "Services/Object/classes/class.ilObject2.php";
5 
15 abstract class ilRemoteObjectBase extends ilObject2
16 {
17  protected $local_information;
18  protected $remote_link;
19  protected $organization;
20  protected $mid;
21  protected $auth_hash = '';
22 
23  protected $realm_plain = '';
24 
25  const MAIL_SENDER = 6;
26  const OBJECT_OWNER = 6;
27 
35  public function __construct($a_id = 0, $a_call_by_reference = true)
36  {
37  global $DIC;
38 
39  $ilDB = $DIC['ilDB'];
40 
41  parent::__construct($a_id, $a_call_by_reference);
42  $this->db = $ilDB;
43  }
44 
51  public static function getInstanceByEventType($a_type)
52  {
53  switch ($a_type) {
55  include_once 'Modules/RemoteCourse/classes/class.ilObjRemoteCourse.php';
56  return new ilObjRemoteCourse();
57 
59  include_once 'Modules/RemoteCategory/classes/class.ilObjRemoteCategory.php';
60  return new ilObjRemoteCategory();
61 
63  include_once 'Modules/RemoteFile/classes/class.ilObjRemoteFile.php';
64  return new ilObjRemoteFile();
65 
67  include_once 'Modules/RemoteGlossary/classes/class.ilObjRemoteGlossary.php';
68  return new ilObjRemoteGlossary();
69 
71  include_once 'Modules/RemoteGroup/classes/class.ilObjRemoteGroup.php';
72  return new ilObjRemoteGroup();
73 
75  include_once 'Modules/RemoteLearningModule/classes/class.ilObjRemoteLearningModule.php';
76  return new ilObjRemoteLearningModule();
77 
79  include_once 'Modules/RemoteWiki/classes/class.ilObjRemoteWiki.php';
80  return new ilObjRemoteWiki();
81 
83  include_once 'Modules/RemoteTest/classes/class.ilObjRemoteTest.php';
84  return new ilObjRemoteTest();
85  }
86  }
87 
88  public function beforeCreate()
89  {
90  $this->setOwner(self::OBJECT_OWNER);
91  return parent::beforeCreate();
92  }
93 
99  abstract protected function getTableName();
100 
106  abstract protected function getECSObjectType();
107 
114  public static function _lookupOrganization($a_obj_id)
115  {
116  global $DIC;
117 
118  $ilDB = $DIC['ilDB'];
119 
120  $query = "SELECT organization FROM " . static::DB_TABLE_NAME .
121  " WHERE obj_id = " . $ilDB->quote($a_obj_id, 'integer') . " ";
122  $res = $ilDB->query($query);
123  while ($row = $res->fetchRow(ilDBConstants::FETCHMODE_OBJECT)) {
124  return $row->organization;
125  }
126  return '';
127  }
128 
133  public function getRealmPlain()
134  {
135  return $this->realm_plain;
136  }
137 
143  public function setOrganization($a_organization)
144  {
145  $this->organization = $a_organization;
146  }
147 
153  public function getOrganization()
154  {
155  return $this->organization;
156  }
157 
163  public function getLocalInformation()
164  {
166  }
167 
173  public function setLocalInformation($a_info)
174  {
175  $this->local_information = $a_info;
176  }
177 
183  public function getMID()
184  {
185  return $this->mid;
186  }
187 
193  public function setMID($a_mid)
194  {
195  $this->mid = $a_mid;
196  }
197 
204  public static function _lookupMID($a_obj_id)
205  {
206  global $DIC;
207 
208  $ilDB = $DIC['ilDB'];
209 
210  $query = "SELECT mid FROM " . static::DB_TABLE_NAME .
211  " WHERE obj_id = " . $ilDB->quote($a_obj_id, 'integer') . " ";
212  $res = $ilDB->query($query);
213  while ($row = $res->fetchRow(ilDBConstants::FETCHMODE_OBJECT)) {
214  return $row->mid;
215  }
216  return 0;
217  }
218 
224  public function setRemoteLink($a_link)
225  {
226  $this->remote_link = $a_link;
227  }
228 
234  public function getRemoteLink()
235  {
236  return $this->remote_link;
237  }
238 
246  public function getFullRemoteLink()
247  {
248  global $DIC;
249 
250  $ilUser = $DIC['ilUser'];
251 
252 
253  include_once './Services/WebServices/ECS/classes/class.ilECSImport.php';
254  $server_id = ilECSImport::lookupServerId($this->getId());
256 
257  include_once('./Services/WebServices/ECS/classes/class.ilECSUser.php');
258  $user = new ilECSUser($ilUser);
259  $ecs_user_data = $user->toGET();
260  $GLOBALS['DIC']['ilLog']->write(__METHOD__ . ': Using ecs user data ' . $ecs_user_data);
261 
262  // check token mechanism enabled
263  include_once './Services/WebServices/ECS/classes/class.ilECSParticipantSetting.php';
264  $part = new ilECSParticipantSetting($server_id, $this->getMID());
265  if (!$part->isTokenEnabled()) {
266  return $this->getRemoteLink();
267  }
268 
269  $auth_hash = $this->createAuthResource($this->getRemoteLink() . $user->toREALM());
270  $ecs_url_hash = 'ecs_hash_url=' . urlencode($server->getServerURI() . '/sys/auths/' . $auth_hash);
271 
272  if (strpos($this->getRemoteLink(), '?')) {
273  $link = $this->getRemoteLink() . '&ecs_hash=' . $auth_hash . $ecs_user_data . '&' . $ecs_url_hash;
274  } else {
275  $link = $this->getRemoteLink() . '?ecs_hash=' . $auth_hash . $ecs_user_data . '&' . $ecs_url_hash;
276  }
277  $GLOBALS['DIC']['ilLog']->write(__METHOD__ . ': ECS full link: ' . $link);
278  return $link;
279  }
280 
287  public function createAuthResource($a_plain_realm)
288  {
289  global $DIC;
290 
291  $ilLog = $DIC['ilLog'];
292 
293  include_once './Services/WebServices/ECS/classes/class.ilECSAuth.php';
294  include_once './Services/WebServices/ECS/classes/class.ilECSConnector.php';
295  include_once './Services/WebServices/ECS/classes/class.ilECSImport.php';
296  include_once './Services/WebServices/ECS/classes/class.ilECSSetting.php';
297 
298  try {
299  $server_id = ilECSImport::lookupServerId($this->getId());
300  $import_info = new ilECSImport($server_id, $this->getId());
301 
302  $connector = new ilECSConnector(ilECSSetting::getInstanceByServerId($server_id));
303  $auth = new ilECSAuth();
304  $auth->setPid($import_info->getMID());
305  // URL is deprecated
306  $auth->setUrl($this->getRemoteLink());
307  $realm = sha1($a_plain_realm);
308  $GLOBALS['DIC']['ilLog']->write(__METHOD__ . ': Using realm ' . $a_plain_realm);
309  $auth->setRealm($realm);
310  $GLOBALS['DIC']['ilLog']->write(__METHOD__ . ' Mid is ' . $this->getMID());
311  $this->auth_hash = $connector->addAuth(@json_encode($auth), $this->getMID());
312  return $this->auth_hash;
313  } catch (ilECSConnectorException $exc) {
314  $ilLog->write(__METHOD__ . ': Caught error from ECS Auth resource: ' . $exc->getMessage());
315  return false;
316  }
317  }
318 
322  public function doCreate()
323  {
324  global $DIC;
325 
326  $ilDB = $DIC['ilDB'];
327 
328  $fields = array(
329  "obj_id" => array("integer", $this->getId()),
330  "local_information" => array("text", ""),
331  "remote_link" => array("text", ""),
332  "mid" => array("integer", 0),
333  "organization" => array("text", "")
334  );
335 
336  $this->doCreateCustomFields($fields);
337 
338  $ilDB->insert($this->getTableName(), $fields);
339  }
340 
345  protected function doCreateCustomFields(array &$a_fields)
346  {
347  }
348 
352  public function doUpdate()
353  {
354  global $DIC;
355 
356  $ilDB = $DIC['ilDB'];
357 
358  $fields = array(
359  "local_information" => array("text", $this->getLocalInformation()),
360  "remote_link" => array("text", $this->getRemoteLink()),
361  "mid" => array("integer", $this->getMID()),
362  "organization" => array("text", $this->getOrganization())
363  );
364 
365  $this->doUpdateCustomFields($fields);
366 
367  $where = array("obj_id" => array("integer", $this->getId()));
368 
369  $ilDB->update($this->getTableName(), $fields, $where);
370  }
371 
376  protected function doUpdateCustomFields(array &$a_fields)
377  {
378  }
379 
383  public function doDelete()
384  {
385  global $DIC;
386 
387  $ilDB = $DIC['ilDB'];
388 
389  //put here your module specific stuff
390  include_once('./Services/WebServices/ECS/classes/class.ilECSImport.php');
392 
393  $query = "DELETE FROM " . $this->getTableName() .
394  " WHERE obj_id = " . $this->db->quote($this->getId(), 'integer') . " ";
395  $ilDB->manipulate($query);
396  }
397 
401  public function doRead()
402  {
403  $query = "SELECT * FROM " . $this->getTableName() .
404  " WHERE obj_id = " . $this->db->quote($this->getId(), 'integer') . " ";
405  $res = $this->db->query($query);
406  while ($row = $res->fetchRow(ilDBConstants::FETCHMODE_OBJECT)) {
407  $this->setLocalInformation($row->local_information);
408  $this->setRemoteLink($row->remote_link);
409  $this->setMID($row->mid);
410  $this->setOrganization($row->organization);
411 
412  $this->doReadCustomFields($row);
413  }
414  }
415 
420  protected function doReadCustomFields($a_row)
421  {
422  }
423 
431  public function createFromECSEContent(ilECSSetting $a_server, $a_ecs_content, $a_owner)
432  {
433  $this->create();
434 
435  // won't work for personal workspace
436  $this->createReference();
437  $this->setPermissions($a_server->getImportId());
438 
439  include_once './Services/WebServices/ECS/classes/class.ilECSUtils.php';
440  $matchable_content = ilECSUtils::getMatchableContent(
441  $this->getECSObjectType(),
442  $a_server->getServerId(),
443  $a_ecs_content,
444  $a_owner
445  );
446 
447  include_once './Services/WebServices/ECS/classes/class.ilECSCategoryMapping.php';
449  $a_server->getServerId(),
450  $matchable_content
451  ));
452 
453  $this->updateFromECSContent($a_server, $a_ecs_content, $a_owner);
454  }
455 
463  public function updateFromECSContent(ilECSSetting $a_server, $a_ecs_content, $a_owner)
464  {
465  global $DIC;
466 
467  $ilLog = $DIC['ilLog'];
468 
469  $ilLog->write('updateFromECSContent: ' . print_r($a_ecs_content, true));
470 
471  // Get organisation for owner (ObjectListGUI performance)
472  $organisation = null;
473  if ($a_owner) {
474  include_once './Services/WebServices/ECS/classes/class.ilECSUtils.php';
475  $organisation = ilECSUtils::lookupParticipantName($a_owner, $a_server->getServerId());
476  $ilLog->write('found organisation: ' . $organisation);
477  }
478 
479  $this->setMID($a_owner); // obsolete?
480  $this->setOrganization($organisation);
481  $this->setTitle($a_ecs_content->title);
482  $this->setDescription($a_ecs_content->abstract);
483  $this->setRemoteLink($a_ecs_content->url);
484 
485  $ilLog->write('updateCustomFromECSContent');
486  $this->updateCustomFromECSContent($a_server, $a_ecs_content);
487 
488  // we are updating late so custom values can be set
489 
490  $ilLog->write('ilObject->update()');
491  $this->update();
492 
493  include_once './Services/WebServices/ECS/classes/class.ilECSUtils.php';
494  $matchable_content = ilECSUtils::getMatchableContent(
495  $this->getECSObjectType(),
496  $a_server->getServerId(),
497  $a_ecs_content,
498  $a_owner
499  );
500 
501  // rule-based category mapping
502  include_once './Services/WebServices/ECS/classes/class.ilECSCategoryMapping.php';
504  $this->getId(),
505  $a_server->getServerId(),
506  $matchable_content
507  );
508  }
509 
518  protected function importMetadataFromJson($a_json, ilECSSetting $a_server, array $a_definition, $a_mapping_mode)
519  {
520  global $DIC;
521 
522  $ilLog = $DIC['ilLog'];
523 
524  $ilLog->write("importing metadata from json: " . print_r($a_json, true));
525 
526  include_once('./Services/WebServices/ECS/classes/class.ilECSDataMappingSettings.php');
527  include_once('./Services/AdvancedMetaData/classes/class.ilAdvancedMDValues.php');
528  include_once('./Services/AdvancedMetaData/classes/class.ilAdvancedMDFieldDefinition.php');
529 
531  $values_records = ilAdvancedMDValues::getInstancesForObjectId($this->getId(), $this->getType());
532  foreach ($values_records as $values_record) {
533  // this correctly binds group and definitions
534  $values_record->read();
535  }
536 
537  $do_save = false;
538 
539  foreach ($a_definition as $id => $type) {
540  if (is_array($type)) {
541  $target = $type[1];
542  $type = $type[0];
543  } else {
544  $target = $id;
545  }
546 
547  $timePlace = null;
548  if ($field = $mappings->getMappingByECSName($a_mapping_mode, $id)) {
549  // find element in records
550  $adv_md_def = null;
551  foreach ($values_records as $values_record) {
552  $adv_md_defs = $values_record->getDefinitions();
553  if (isset($adv_md_defs[$field])) {
554  $adv_md_def = $adv_md_defs[$field];
555  break;
556  }
557  }
558  if (!$adv_md_def) {
559  continue;
560  }
561 
562  $raw_value = $a_json->$target;
563 
565  if (!is_object($timePlace)) {
566  include_once('./Services/WebServices/ECS/classes/class.ilECSTimePlace.php');
567  if (is_object($raw_value)) {
568  $timePlace = new ilECSTimePlace();
569  $timePlace->loadFromJSON($raw_value);
570  } else {
571  $timePlace = new ilECSTimePlace();
572  }
573  }
574  $raw_value = $timePlace;
575  }
576 
577  if ($adv_md_def->importFromECS($type, $raw_value, $id)) {
578  $do_save = true;
579  }
580  }
581  }
582 
583  if ($do_save) {
584  foreach ($values_records as $values_record) {
585  $additional = array();
586  foreach ($values_record->getADTGroup()->getElements() as $element_id => $element) {
587  if (!$element->isNull()) {
588  $additional[$element_id] = array("disabled" => array("integer", 1));
589  }
590  }
591  $values_record->write($additional);
592  }
593  }
594  }
595 
602  protected function updateCustomFromECSContent(ilECSSetting $a_server, $ecs_content)
603  {
604  }
605 
611  public function isLocalObject()
612  {
613  include_once('./Services/WebServices/ECS/classes/class.ilECSExport.php');
614  include_once('./Services/WebServices/ECS/classes/class.ilECSImport.php');
618  )) {
619  return false;
620  }
621  return true;
622  }
623 
633  public function handleCreate(ilECSSetting $a_server, $a_econtent_id, array $a_mids)
634  {
635  return $this->handleUpdate($a_server, $a_econtent_id, $a_mids);
636  }
637 
648  public function handleUpdate(ilECSSetting $a_server, $a_econtent_id, array $a_mids)
649  {
650  global $DIC;
651 
652  $ilLog = $DIC['ilLog'];
653 
654  // get content details
655  include_once('./Services/WebServices/ECS/classes/class.ilECSEContentDetails.php');
657  $a_server->getServerId(),
658  $a_econtent_id,
659  $this->getECSObjectType()
660  );
661  if (!$details instanceof ilECSEContentDetails) {
662  $this->handleDelete($a_server, $a_econtent_id);
663  $ilLog->write(__METHOD__ . ': Handling delete of deprecated remote object. DONE');
664  return;
665  }
666 
667  $ilLog->write(__METHOD__ . ': Receivers are ' . print_r($details->getReceivers(), true));
668  $ilLog->write(__METHOD__ . ': Senders are ' . print_r($details->getSenders(), true));
669 
670  // check owner (sender mid)
671  include_once('./Services/WebServices/ECS/classes/class.ilECSParticipantSettings.php');
672  if (!ilECSParticipantSettings::getInstanceByServerId($a_server->getServerId())->isImportAllowed($details->getSenders())) {
673  $ilLog->write('Ignoring disabled participant. MID: ' . $details->getOwner());
674  return true;
675  }
676 
677  // new mids
678  include_once 'Services/WebServices/ECS/classes/class.ilECSImport.php';
679  include_once 'Services/WebServices/ECS/classes/class.ilECSConnector.php';
680  foreach (array_intersect($a_mids, $details->getReceivers()) as $mid) {
681  try {
682  $connector = new ilECSConnector($a_server);
683  $res = $connector->getResource($this->getECSObjectType(), $a_econtent_id);
684  if ($res->getHTTPCode() == ilECSConnector::HTTP_CODE_NOT_FOUND) {
685  continue;
686  }
687  $json = $res->getResult();
688  $GLOBALS['DIC']['ilLog']->write(__METHOD__ . ': Received json: ' . print_r($json, true));
689  if (!is_object($json)) {
690  // try as array (workaround for invalid content)
691  $json = $json[0];
692  if (!is_object($json)) {
693  throw new ilECSConnectorException('invalid json');
694  }
695  }
696  } catch (ilECSConnectorException $exc) {
697  $ilLog->write(__METHOD__ . ': Error parsing result. ' . $exc->getMessage());
698  $ilLog->logStack();
699  return false;
700  }
701 
702  // Update existing
703 
704  // Check receiver mid
705  if ($obj_id = ilECSImport::_isImported($a_server->getServerId(), $a_econtent_id, $mid)) {
706  $ilLog->write(__METHOD__ . ': Handling update for existing object');
707  $remote = ilObjectFactory::getInstanceByObjId($obj_id, false);
708  if (!$remote instanceof ilRemoteObjectBase) {
709  $ilLog->write(__METHOD__ . ': Cannot instantiate remote object. Got object type ' . $remote->getType());
710  continue;
711  }
712  $remote->updateFromECSContent($a_server, $json, $details->getMySender());
713  } else {
714  $GLOBALS['DIC']['ilLog']->write(__METHOD__ . ': my sender ' . $details->getMySender() . 'vs mid' . $mid);
715 
716  $ilLog->write(__METHOD__ . ': Handling create for non existing object');
717  $this->createFromECSEContent($a_server, $json, $details->getMySender());
718 
719  // update import status
720  $ilLog->write(__METHOD__ . ': Updating import status');
721  include_once('./Services/WebServices/ECS/classes/class.ilECSImport.php');
722  $import = new ilECSImport($a_server->getServerId(), $this->getId());
723  $import->setEContentId($a_econtent_id);
724  // Store receiver mid
725  $import->setMID($mid);
726  $import->save();
727 
728  $ilLog->write(__METHOD__ . ': Sending notification');
729  $this->sendNewContentNotification($a_server->getServerId());
730  }
731  }
732 
733  $ilLog->write(__METHOD__ . ': done');
734  return true;
735  }
736 
740  protected function sendNewContentNotification($a_server_id)
741  {
742  include_once('Services/WebServices/ECS/classes/class.ilECSSetting.php');
743  $settings = ilECSSetting::getInstanceByServerId($a_server_id);
744  if (!count($rcps = $settings->getEContentRecipients())) {
745  return;
746  }
747 
748  include_once('./Services/Mail/classes/class.ilMail.php');
749  include_once('./Services/Language/classes/class.ilLanguageFactory.php');
750 
752  $lang->loadLanguageModule('ecs');
753 
754  $mail = new ilMail(self::MAIL_SENDER);
755  $message = $lang->txt('ecs_' . $this->getType() . '_created_body_a') . "\n\n";
756  $message .= $lang->txt('title') . ': ' . $this->getTitle() . "\n";
757  if (strlen($desc = $this->getDescription())) {
758  $message .= $lang->txt('desc') . ': ' . $desc . "\n";
759  }
760 
761  include_once('./Services/Link/classes/class.ilLink.php');
762  $href = ilLink::_getStaticLink($this->getRefId(), $this->getType(), true);
763  $message .= $lang->txt("perma_link") . ': ' . $href . "\n\n";
765 
766  $mail->sendMail(
767  $settings->getEContentRecipientsAsString(),
768  '',
769  '',
770  $lang->txt('ecs_new_econtent_subject'),
771  $message,
772  array(),
773  array('normal')
774  );
775  }
776 
787  public function handleDelete(ilECSSetting $a_server, $a_econtent_id, $a_mid = 0)
788  {
789  global $DIC;
790 
791  $tree = $DIC['tree'];
792  $ilLog = $DIC['ilLog'];
793 
794 
795  include_once('./Services/WebServices/ECS/classes/class.ilECSImport.php');
796 
797  // there is no information about the original mid anymore.
798  // Therefor delete any remote objects with given econtent id
799  $obj_ids = ilECSImport::_lookupObjIds($a_server->getServerId(), $a_econtent_id);
800  $ilLog->write(__METHOD__ . ': Received obj_ids ' . print_r($obj_ids, true));
801 
802  foreach ($obj_ids as $obj_id) {
803  $references = ilObject::_getAllReferences($obj_id);
804  foreach ($references as $ref_id) {
805  if ($tmp_obj = ilObjectFactory::getInstanceByRefId($ref_id, false)) {
806  $ilLog->write(__METHOD__ . ': Deleting obsolete remote course: ' . $tmp_obj->getTitle());
807  $tmp_obj->delete();
808  $tree->deleteTree($tree->getNodeData($ref_id));
809  }
810  unset($tmp_obj);
811  }
812  }
813  return true;
814  }
815 
823  public function getAllResourceIds(ilECSSetting $a_server, $a_sender_only = false)
824  {
825  global $DIC;
826 
827  $ilLog = $DIC['ilLog'];
828 
829  try {
830  include_once './Services/WebServices/ECS/classes/class.ilECSConnector.php';
831  $connector = new ilECSConnector($a_server);
832  $connector->addHeader('X-EcsQueryStrings', $a_sender_only ? 'sender=true' : 'all=true'); // #11301
833  $list = $connector->getResourceList($this->getECSObjectType());
834  if ($list instanceof ilECSResult) {
835  return $list->getResult()->getLinkIds();
836  }
837  } catch (ilECSConnectorException $exc) {
838  $ilLog->write(__METHOD__ . ': Error getting resource list. ' . $exc->getMessage());
839  }
840  }
841 }
Remote test app class.
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.
putInTree($a_parent_ref)
static lookupParticipantName($a_owner, $a_server_id)
Lookup participant name.
if(isset($_REQUEST['delete'])) $list
Definition: registry.php:41
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
setDescription($a_desc)
static _isRemote($a_server_id, $a_econtent_id)
is remote object
Representation of ECS EContent Time Place.
Remote file app class.
Remote glossary app class.
__construct($a_id=0, $a_call_by_reference=true)
Constructor.
getServerId()
Get current server id.
global $DIC
Definition: saml.php:7
handleCreate(ilECSSetting $a_server, $a_econtent_id, array $a_mids)
Handle creation.
doUpdateCustomFields(array &$a_fields)
Add custom fields to db update.
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.
$server
Definition: sabredav.php:48
static _deleteByObjId($a_obj_id)
Delete by obj_id.
static getInstanceByEventType($a_type)
Get instance by ilECSEvent(QueueReader) type.
$auth
Definition: fileserver.php:48
Remote wiki app class.
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?
const TYPE_TIMEPLACE
setOwner($a_owner)
static getMatchableContent($a_resource_id, $a_server_id, $a_ecs_content, $a_owner)
Convert ECS content to rule matchable values.
$a_type
Definition: workflow.php:92
static _getLanguage($a_lang_key='')
Get langauge object.
catch(Exception $e) $message
setOrganization($a_organization)
set organization
create()
create
foreach($_POST as $key=> $value) $res
setLocalInformation($a_info)
set local information
static getMatchingCategory($a_server_id, $a_matchable_content)
get matching category
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
$ilUser
Definition: imgupload.php:18
$query
setTitle($a_title)
static lookupServerId($a_obj_id)
Lookup server id of imported content <type> $ilDB.
Remote object app base class.
$user
Definition: migrateto20.php:57
Remote course app class.
$additional
Definition: goto.php:50
static getInstanceByObjId($a_obj_id, $stop_on_error=true)
get an instance of an Ilias object by object id
Remote group app class.
static _lookupOrganization($a_obj_id)
lookup organization
$row
createAuthResource($a_plain_realm)
create authentication resource on ecs server
handleUpdate(ilECSSetting $a_server, $a_econtent_id, array $a_mids)
Handle update event.
static _lookupObjIds($a_server_id, $a_econtent_id)
Lookup obj_id.
global $ilDB
static _getAutoGeneratedMessageString(ilLanguage $lang=null)
Get auto generated info string.
for($i=1; $i<=count($kw_cases_sel); $i+=1) $lang
Definition: langwiz.php:349
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.
createFromECSEContent(ilECSSetting $a_server, $a_ecs_content, $a_owner)
create remote object from ECSContent object
Remote category app class.
$target
Definition: test.php:19
static getInstance($a_server_id, $a_econtent_id, $a_resource_type)
Get data from server.
getAllResourceIds(ilECSSetting $a_server, $a_sender_only=false)
Get all available resources.
Stores relevant user data.
$GLOBALS['JPEG_Segment_Names']
Global Variable: XMP_tag_captions.
doCreate()
Create remote object.
updateFromECSContent(ilECSSetting $a_server, $a_ecs_content, $a_owner)
update remote object settings from ecs content
getLocalInformation()
get local information