/** * get current id for an import id * * @param string $a_type target type ("PageObject" | "StructureObject" | * "GlossaryItem" | "MediaObject") * @param string $a_target import target id (e.g. "il_2_pg_22") * * @return string current target id (e.g. "il__pg_244") */ function _getIdForImportId($a_type, $a_target) { switch ($a_type) { case "PageObject": $id = ilLMObject::_getIdForImportId($a_target); if ($id > 0) { return "il__pg_" . $id; } break; case "StructureObject": $id = ilLMObject::_getIdForImportId($a_target); if ($id > 0) { return "il__st_" . $id; } break; case "GlossaryItem": $id = ilGlossaryTerm::_getIdForImportId($a_target); if ($id > 0) { return "il__git_" . $id; } break; case "MediaObject": $id = ilObjMediaObject::_getIdForImportId($a_target); if ($id > 0) { return "il__mob_" . $id; } break; case "RepositoryItem": $id = ilObject::_getIdForImportId($a_target); //echo "-$a_target-$id-"; // get ref id for object id // (see ilPageObject::insertInstIntoIDs for the export procedure) if ($id > 0) { $refs = ilObject::_getAllReferences($id); //var_dump($refs); foreach ($refs as $ref) { return "il__obj_" . $ref; } } break; } return false; }
/** * Get current id for an import id * * @param string $a_type target type ("PageObject" | "StructureObject" | * "GlossaryItem" | "MediaObject") * @param string $a_target import target id (e.g. "il_2_pg_22") * * @return string current target id (e.g. "il__pg_244") */ function _getIdForImportId($a_type, $a_target) { switch ($a_type) { case "PageObject": $id = ilLMObject::_getIdForImportId($a_target); if ($id > 0) { return "il__pg_" . $id; } break; case "StructureObject": $id = ilLMObject::_getIdForImportId($a_target); if ($id > 0) { return "il__st_" . $id; } break; case "GlossaryItem": $id = ilGlossaryTerm::_getIdForImportId($a_target); if ($id > 0) { return "il__git_" . $id; } break; case "WikiPage": // no import IDs for wiki pages (yet) //$id = ilGlossaryTerm::_getIdForImportId($a_target); $id = 0; if ($id > 0) { return "il__wpage_" . $id; } break; case "MediaObject": $id = ilObjMediaObject::_getIdForImportId($a_target); if ($id > 0) { return "il__mob_" . $id; } break; case "RepositoryItem": $tarr = explode("_", $a_target); $import_id = $a_target; // if a ref id part is given, strip this // since this will not be part of an import id if ($tarr[4] != "") { $import_id = $tarr[0] . "_" . $tarr[1] . "_" . $tarr[2] . "_" . $tarr[3]; } if (ilInternalLink::_extractInstOfTarget($a_target) == IL_INST_ID && IL_INST_ID > 0) { // does it have a ref id part? if ($tarr[4] != "") { return "il__obj_" . $tarr[4]; } } $id = ilObject::_getIdForImportId($import_id); //echo "-$a_target-$id-"; // get ref id for object id // (see ilPageObject::insertInstIntoIDs for the export procedure) if ($id > 0) { $refs = ilObject::_getAllReferences($id); //var_dump($refs); foreach ($refs as $ref) { return "il__obj_" . $ref; } } break; } return false; }
function _resolveInternalLink($internal_link) { if (preg_match("/il_(\\d+)_(\\w+)_(\\d+)/", $internal_link, $matches)) { include_once "./Services/Link/classes/class.ilInternalLink.php"; include_once "./Modules/LearningModule/classes/class.ilLMObject.php"; include_once "./Modules/Glossary/classes/class.ilGlossaryTerm.php"; switch ($matches[2]) { case "lm": $resolved_link = ilLMObject::_getIdForImportId($internal_link); break; case "pg": $resolved_link = ilInternalLink::_getIdForImportId("PageObject", $internal_link); break; case "st": $resolved_link = ilInternalLink::_getIdForImportId("StructureObject", $internal_link); break; case "git": $resolved_link = ilInternalLink::_getIdForImportId("GlossaryItem", $internal_link); break; case "mob": $resolved_link = ilInternalLink::_getIdForImportId("MediaObject", $internal_link); break; } if (strcmp($resolved_link, "") == 0) { $resolved_link = $internal_link; } } else { $resolved_link = $internal_link; } return $resolved_link; }